DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌套表格拖拽排序

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏+關注哦 ??

共同探索軟件研發!敬請關注【寶碼香車】
關注描述

csdngif標識

目錄

  • DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌套表格拖拽排序
    • ??前言
    • ??頁面效果
      • ??組件代碼
    • ??代碼測試
    • ??測試代碼正常跑通,附其他基本代碼
      • ??編寫路由 src\router\index.js
      • ??編寫展示入口 src\App.vue
    • ??頁面效果


??????????????????????????????????????????????????????·正文開始??·???????????????????????????????? ??0??1??2??3??4??5??6??7??8??9??????*??#??

DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌套表格拖拽排序

??前言

Transformer 架構自 2017 年被提出以來,憑借其在自然語言處理任務中的卓越表現,成為了眾多先進模型的底層基石。DeepSeek 也深深扎根于 Transformer 架構,并在其基礎上進行了大膽創新和優化,形成了獨具特色的模型架構。

??頁面效果

DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加行拖拽排序功能示例9,TableView16_09 嵌套表格拖拽排序

??組件代碼

<!-- TableView16_09.vue 嵌套表格拖拽示例 -->
<template><div class="drag-demo"><h2>09. 嵌套表格拖拽排序</h2><Table:data="parentTasks":columns="columns"draggable@update:data="handleParentUpdate"row-key="id"borderstripeexpandable:expanded-keys="expandedKeys"@update:expandedKeys="handleExpandChange"><template #cell-task="{ row }"><div class="parent-task"><span class="expand-icon" @click.stop="toggleExpand(row)">{{ isExpanded(row) ? '▼' : '?' }}</span>{{ row.task }}</div></template><template #expanded-row="{ row }"><div class="sub-table-container"><h4>子任務列表</h4><Table:data="row.children":columns="subColumns"draggable@update:data="(newData) => handleSubUpdate(row, newData)"row-key="id"borderclass="sub-table"/></div></template></Table></div>
</template><script setup>
import { ref } from 'vue'
import Table from '@/components/Table/Table.vue'const parentTasks = ref([{id: 1,task: '設計階段',children: [{ id: 11, task: '原型設計', owner: '張三' },{ id: 12, task: 'UI設計', owner: '李四' },]},{id: 2,task: '開發階段',children: [{ id: 21, task: '前端開發', owner: '王五' },{ id: 22, task: '后端開發', owner: '趙六' },]},{id: 3,task: '測試階段',children: [{ id: 31, task: '單元測試', owner: '錢七' },{ id: 32, task: '集成測試', owner: '孫八' },]}
])const columns = [{ title: '父任務', dataIndex: 'task', width: '200px' }
]const subColumns = [{ title: '子任務', dataIndex: 'task', width: '180px' },{ title: '負責人', dataIndex: 'owner', width: '120px' }
]const expandedKeys = ref([1]) // 默認展開第一個節點const isExpanded = (row) => {return expandedKeys.value.includes(row.id)
}const toggleExpand = (row) => {const index = expandedKeys.value.indexOf(row.id)if (index > -1) {expandedKeys.value.splice(index, 1)} else {expandedKeys.value.push(row.id)}
}const handleExpandChange = (keys) => {expandedKeys.value = keys
}const handleParentUpdate = (newData) => {parentTasks.value = newData
}const handleSubUpdate = (parentRow, newSubData) => {const parentIndex = parentTasks.value.findIndex(p => p.id === parentRow.id)if (parentIndex > -1) {// 創建新數組以觸發響應式更新const newParentTasks = [...parentTasks.value]newParentTasks[parentIndex] = {...newParentTasks[parentIndex],children: newSubData}parentTasks.value = newParentTasks}
}
</script><style scoped>
.drag-demo {padding: 20px;max-width: 800px;margin: 0 auto;
}.parent-task {display: flex;align-items: center;
}.expand-icon {width: 20px;height: 20px;display: inline-flex;align-items: center;justify-content: center;margin-right: 8px;cursor: pointer;user-select: none;
}.sub-table-container {padding: 15px;background: #f8f8f8;border-radius: 4px;
}.sub-table-container h4 {margin-top: 0;margin-bottom: 12px;color: #555;font-size: 14px;
}.sub-table {margin-bottom: 0;
}
</style>

??代碼測試

運行正常

??測試代碼正常跑通,附其他基本代碼

  • 添加路由
  • 頁面展示入口

??編寫路由 src\router\index.js

\router\index.js

import { createRouter, createWebHistory } from 'vue-router'
import RightClickMenuView from '../views/RightClickMenuView.vue'
import RangePickerView from '../views/RangePickerView.vue'const router = createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: '/',name: 'progress',component:  () => import('../views/ProgressView.vue'),},{path: '/tabs',name: 'tabs',// route level code-splitting// this generates a separate chunk (About.[hash].js) for this route// which is lazy-loaded when the route is visited.// 標簽頁(Tabs)component: () => import('../views/TabsView.vue'),},{path: '/accordion',name: 'accordion',// 折疊面板(Accordion)component: () => import('../views/AccordionView.vue'),},{path: '/timeline',name: 'timeline',// 時間線(Timeline)component: () => import('../views/TimelineView.vue'),},{path: '/backToTop',name: 'backToTop',component: () => import('../views/BackToTopView.vue')},{path: '/notification',name: 'notification',component: () => import('../views/NotificationView.vue')},{path: '/card',name: 'card',component: () => import('../views/CardView.vue')},{path

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/73900.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/73900.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/73900.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

QML中使用Image顯示圖片和使用QQuickItem顯示圖片

在QML中顯示圖片時&#xff0c;Image元素和自定義QQuickItem有不同的特性和適用場景。以下是兩者的詳細對比及性能分析&#xff1a; 1. Image 元素 優點&#xff1a; 聲明式語法&#xff1a;簡單直觀&#xff0c;適合靜態圖片或簡單動態需求 Image {source: "image.png&…

【力扣刷題|第十七天】0-1 背包 完全背包

目標和 力扣題目網址:目標和 這道題我們先用回溯的思想來做。首先我們設正數和為S&#xff0c;數組和為N&#xff0c;目標值為T&#xff0c;那么S-(N-S)T化簡之后可以得S(TN)/2即選擇的正數個數為偶數&#xff0c;而且NT也為偶數&#xff0c;那么第一個判斷條件我們就有了&…

【Linux網絡與網絡編程】01.初識網絡

一、計算機網絡的發展歷史 計算機是人的工具&#xff0c;人要協同工作&#xff0c;注定了網絡的產生是必然的。 二、協議 計算機之間的傳輸媒介是光信號和電信號&#xff0c;通過 "頻率" 和 "強弱" 來表示 0 和 1 這樣的信息&#xff0c;要想傳遞各種不同…

使用 Python 進行鏈上數據監控:讓區塊鏈數據觸手可及

使用 Python 進行鏈上數據監控:讓區塊鏈數據觸手可及 區塊鏈技術正以前所未有的速度改變著各行各業,特別是在金融、供應鏈、物聯網和智能合約等領域的應用,已經成為了一種新常態。然而,隨著區塊鏈網絡的快速擴展和去中心化特性的不斷強化,數據的可視化與監控變得愈發重要…

【SMBIOS數據塊類型列表】

SMBIOS數據塊類型列表 SMBIOS數據塊類型列表**SMBIOS 數據塊類型列表****如何查看實際的 SMBIOS 數據塊&#xff1f;****總結** SMBIOS數據塊類型列表 在 SMBIOS&#xff08;System Management BIOS&#xff09;中&#xff0c;Type 是用來標識不同類型的數據塊的。每種類型對應…

【測試】每日3道面試題 3/30

每日更新&#xff0c;建議關注收藏點贊。 白盒測試邏輯覆蓋標準&#xff1f;哪種覆蓋標準覆蓋率最高&#xff1f; 5種。語句覆蓋、分支/判定覆蓋、條件覆蓋、條件組合覆蓋【覆蓋率最高&#xff0c;所有可能條件組合都驗證】、路徑覆蓋【理論上最高&#xff0c;但實際很難實現】…

NFS掛載異常排查記錄

互相PING服務器看是否通&#xff1b;在ubuntu下看下服務器是否正常運行。導出目錄是否導出了。最后發現在掛載目錄的地方目錄路徑和后面沒有加空格。

1--當「窮舉」成為藝術:CTF暴力破解漏洞技術從入門到入刑指南(知識點講解版)

當「窮舉」成為藝術&#xff1a;CTF暴力破解漏洞技術從入門到入刑指南 引言&#xff1a;論暴力破解的哲學意義 “世界上本沒有漏洞&#xff0c;密碼設得簡單了&#xff0c;便成了漏洞。” —— 魯迅&#xff08;并沒有說過&#xff09; 想象你是個不會撬鎖的小偷&#xff0c;面…

Java實戰:實現用戶的登錄注冊功能

系列文章目錄 Java文件 I/O流的操作實戰和高級UI組件和事件監聽的綜合 文章目錄 系列文章目錄前言一、大致流程思路分析&#xff1a;二、定義用戶類&#xff1a;三、服務層的實現&#xff1a; 1.保護用戶數據功能的實現2.登錄操作的實現 四、實現用戶的注冊界面&#xff1a; 大…

SQLAlchemy 支持特殊字符

postgresql 實踐 pydantic 實踐&#xff08;一&#xff09;基礎 pydantic 實踐&#xff08;二&#xff09;數據校驗 SQLAlchemy 介紹與實踐 SQLAlchemy 支持特殊字符 SQLAlchemy 支持特殊字符 1. 字符集介紹分析2. MySQL 支持特殊字符2.1. 更新 MySQL 字符集為 utf8mb42.2 更新…

如何看待職場中的“向上管理”

向上管理的本質,是提供一份更精確的人力產品說明書, 利用市場的邏輯,引導領導,按照你的心意,使用你這款產品。 公司獲得更高的產出,領導獲得更多的成果,你獲得了自由支配的時間, 這是一場正和博弈。 ? 圖片來源:網絡 (1)具體案例: 把自己當成一款產品,使用者…

AIOHTTP

文章目錄 AIOHTTP主要特點庫安裝在一個命令中安裝所有加速 入門客戶端示例服務器示例&#xff1a; 開發模式aiohttp 3 有什么新功能&#xff1f;依賴關系 客戶端快速入門發起請求在 URL 中傳遞參數響應內容和狀態碼二進制響應內容JSON 請求 注意JSON 響應內容流式響應內容更復雜…

JavaFX基礎- Button 的基本使用

說明 本文記錄一下對Button的基本使用&#xff0c;包括但不限于 樣式的設置&#xff0c;事件的監聽等。 按鈕樣式的設置 方式一 &#xff1a; Java代碼的方式 // 創建一個按鈕Button button new Button("按鈕");// 設置按鈕的位置button.setLayoutX(50);button.set…

DeepSeek-R1國產大模型實戰:從私有化部署到內網穿透遠程使用全攻略

文章目錄 前言1. 安裝Ollama2. 安裝DeepSeek-r1模型3. 安裝圖形化界面3.1 Windows系統安裝Docker3.2 Docker部署Open WebUI3.3 添加Deepseek模型 4. 安裝內網穿透工具5. 配置固定公網地址 前言 最近&#xff0c;國產AI界的黑馬——Deepseek&#xff0c;簡直火得一塌糊涂。不過…

openwrt24.10.0版本上安裝istoreOS的屏幕監控插件

lcdsimple 插件支持在軟路由下面顯示統計信息到 HDMI 或者 VGA 上。 手動安裝方法&#xff1a; 保證 quickstart 版本大于 0.9.7 安裝 lcdsimple 具體方法&#xff1a; opkg update opkg install quickstart opkg install lcdsimple 手動下載 QUICKSTART 跟 LCD SIMPLE&…

卷積神經網絡 - ResNet(殘差網絡)

殘差網絡(Residual Network&#xff0c;ResNet)通過給非線性的卷積層增加直連邊 (Shortcut Connection)(也稱為殘差連接(Residual Connection))的方式來提高信息的傳播效率。 這是一種特殊的深度神經網絡結構&#xff0c;由 Kaiming He 等人在 2015 年提出&#xff0c;目的是解…

質因數個數--歐拉函數中統計純素數

和互質數不同&#xff0c;這里統計的是純素數部分 就是x/i那一部分 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<ll,int> PII; int n,m,k; ll eular(ll x) { ll an0;ll px;for(ll i2;i*i<x;i){if(x%i…

2025年3月電子學會c++五級真題

結繩 #include <bits/stdc.h> using namespace std;int n,a[10010];int main() {cin>>n;for(int i 0;i<n;i){cin>>a[i];}sort(a0,an);//將a數組從小到大排序double sum 0;for(int i 0;i<n;i){sum (suma[i])/2;}cout<<(int)sum;return 0; } 最…

用Nginx實現負載均衡與高可用架構(整合Keepalived)

前言 在分布式架構中&#xff0c;負載均衡和高可用是保障系統穩定性的兩大核心能力。本文將深入講解如何通過Nginx實現七層負載均衡&#xff0c;并結合Keepalived構建無單點故障的高可用架構。文末附完整配置模板&#xff01; 一、Nginx負載均衡實現方案 1. 核心原理 Nginx通…

springBoot與ElementUI配合上傳文件

以下是使用Vue CLI創建的Vue項目&#xff0c;結合Element UI來實現文件上傳功能的完整示例。 步驟 創建Vue項目&#xff1a;確保你已經安裝了Vue CLI&#xff0c;若未安裝&#xff0c;可使用以下命令安裝&#xff1a; npm install -g vue/cli然后創建一個新的Vue項目&#x…