element UI的el-table組件,實現可以拖動

表格?

        <div class="main_table"><el-table id="elTableid" :data="fieldArr" border style="width: 100%" row-class-name="drag-row"current-row-key highlight-current-row><el-table-column type="index" label="序號" width="60" align="left"></el-table-column><el-table-column prop="infoName" label="顯示名" align="left" show-overflow-tooltip></el-table-column><el-table-column prop="infoVal" label="顯示內容" align="left" show-overflow-tooltip></el-table-column></el-table></div>

第一種:利用Sortable.js

1、index.html文件

<script type="text/javaScript" src="https://cdn.bootcdn.net/ajax/libs/Sortable/1.15.0/Sortable.min.js"></script>

methods: {        startSortable() {// 復制表格元素一份let fieldArrSort = []let that = this// 調用Sortable.create方法創建排序實例,傳入表格元素和配置項const el = document.querySelector('#elTableid .el-table__body-wrapper table tbody')Sortable.create(el, {animation: 150,fallbackOnBody: true,ghostClass: '.blue-background-class',// 當用戶選擇一個元素準備拖動時觸發(鼠標按下或觸摸開始)。onChoose: function (evt) {this.fieldsBase = falsefieldArrSort = []// 將fieldArr的值復制給fieldArrSortfieldArrSort = JSON.parse(JSON.stringify(that.fieldArr))},//開始拖拽onStart: function (evt) {const item = evt.item; // 被拖動的元素item.style.backgroundColor = '#CBECFB'; // 設置背景色},// 當排序過程中元素位置發生變化時觸發開始拖拽onSort: function (evt) {},//結束拖拽onEnd: function (evt) {let newIndex = evt.newIndex  // 排序后的索引位置let oldIndex = evt.oldIndex  // 排序前的索引位置let moveData = fieldArrSort[oldIndex]fieldArrSort.splice(oldIndex, 1)fieldArrSort.splice(newIndex, 0, moveData)const item = evt.item; // 被拖動的元素item.style.backgroundColor = ''; // 設置背景色     // fieldArr真的需要清除(重點)that.fieldArr = []that.$nextTick(() => {that.fieldArr = fieldArrSort});},})},
},mounted() {// 使用 this.$nextTick 獲取表格行的 DOM 元素this.$nextTick(() => {this.startSortable();});},

?

第二種:利用Dom的 draggable事件

methods: {
// 添加拖拽事件addDragEvents() {// 獲取所有帶有類名 'drag-row' 的表格行this.rows = document.querySelectorAll('.drag-row');// 遍歷每一行,添加拖拽事件this.rows.forEach((row, index) => {row.draggable = true; // 設置行元素為可拖拽// 開始拖拽時的事件處理row.ondragstart = (event) => this.handleDragStart(event, index);// 拖拽經過時的事件處理row.ondragover = (event) => this.handleDragOver(event);// 拖拽放下時的事件處理row.ondrop = (event) => this.handleDrop(event, index);});},// 處理拖拽開始事件handleDragStart(event, index) {this.draggingIndex = index; // 記錄當前拖拽行的索引//   event.dataTransfer.effectAllowed = 'move'; // 設置拖拽效果為移動//   event.dataTransfer.setData('text/plain', index); // 將索引存儲到拖拽數據中},// 處理拖拽經過事件handleDragOver(event) {//   event.preventDefault(); // 阻止默認事件,允許放置//   event.dataTransfer.dropEffect = 'move'; // 設置拖拽效果為移動//   this.rows[this.draggingIndex].style.backgroundColor = '#CBECFB'; // 重置拖拽行的背景色},// 處理拖拽放下事件handleDrop(event, targetIndex) {// this.rows[this.draggingIndex].style.backgroundColor = ''; // 重置拖拽行的背景色const sourceIndex = this.draggingIndex; // 獲取開始拖拽時記錄的索引// 如果源索引和目標索引相同,直接返回if (sourceIndex === targetIndex) return;// 創建項目列表的副本const fieldArr = [...this.fieldArr];// 刪除源位置的項目,并存儲被拖拽的項目const [movedItem] = fieldArr.splice(sourceIndex, 1);// 在目標位置插入被拖拽的項目fieldArr.splice(targetIndex, 0, movedItem);// 更新項目列表數據this.fieldArr = fieldArrthis.draggingIndex = null; // 重置拖拽索引},},mounted() {// 使用 this.$nextTick 獲取表格行的 DOM 元素this.$nextTick(() => {this.addDragEvents();});},updated() {// 數據更新后重新添加拖拽事件this.$nextTick(() => {this.addDragEvents();});},

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

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

相關文章

Android Emoji 全面解析:從使用到自定義

引言 Emoji已經成為現代數字通信不可或缺的一部分&#xff0c;這些小小的圖標能夠跨越語言障礙&#xff0c;直觀地表達情感和想法。在Android開發中&#xff0c;正確處理和顯示Emoji是提升用戶體驗的重要環節。本文將全面介紹Android平臺上的Emoji支持&#xff0c;包括系統集成…

數據中心入門學習(五):服務器CPU

目錄CPU1 概述1.1 概念1.2 馮諾依曼架構1.3 常見參數&#xff08;評估性能&#xff09;1.4 按指令集分類2 CPU發展2.1 發展史2.2 行業產業鏈2.3 英特爾 Xeon 至強處理器2.4 AMD Zen架構補充1 寄存器、存儲器、內存、緩存、硬盤區別與聯系&#xff1f;2 浮點單元參考本篇記錄和梳…

基于MySQL實現基礎圖數據庫

基于MySQL實現基礎圖數據庫 一、概念 圖數據庫是一種用于存儲和查詢具有復雜關系的數據的數據庫。在這種數據庫中&#xff0c;數據被表示為節點&#xff08;實體&#xff09;和邊&#xff08;關系&#xff09;。圖數據庫的核心優勢在于能夠快速地查詢和處理節點之間的關系。 圖…

RAG面試內容整理-9. 查詢改寫與增強(Query Rewriting, Query Expansion)

查詢改寫和查詢增強是兩種提升檢索效果的技術,目標是在不改變用戶意圖的前提下,使檢索器收到的查詢更全面或明確,從而找到更多相關信息。 查詢改寫通常指將原始查詢轉換成語義等價但更明晰的形式。上一節談到的對話查詢改寫是一個典型場景。在一般情況下,查詢改寫也適用于澄…

golang設置http代理

問題場景&#xff1a; golang通過eino的官方agent示例調用duckduckgo進行聯網搜索時出現網絡問題&#xff0c;電腦此時是掛了工具的瀏覽器整出打開 官方示例&#xff1a;https://www.cloudwego.io/zh/docs/eino/quick_start/agent_llm_with_tools/ 問題原因&#xff1a;go代碼沒…

Elasticsearch 現在默認啟用 BBQ,并通過 ACORN 實現過濾向量搜索

作者&#xff1a;來自 Elastic Gilad Gal 探索 Elasticsearch 的向量搜索如何以更快的速度、更低的成本提供更優結果。 試用向量搜索&#xff1a;使用這套自定進度的 Search AI 實操學習課程&#xff0c;親自體驗向量搜索。你可以開始免費云試用&#xff0c;或立即在本地機器上…

Java 14 新特性解析與代碼示例

Java 14 新特性解析與代碼示例 文章目錄Java 14 新特性解析與代碼示例1. 開關表達式&#xff08;Switch Expressions&#xff09;2. 記錄類型&#xff08;Records&#xff09;3. 文本塊&#xff08;Text Blocks&#xff09;4. instanceof的模式匹配&#xff08;Pattern Matchin…

在虛擬機ubuntu上修改framebuffer桌面不能顯示圖像

目錄 一、測試程序 二、排查原因 三、為什么 Xorg 會導致程序無法工作&#xff1f; 一、測試程序 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #in…

語言模型的評估指標整理

語言模型&#xff08;Language Models&#xff09;是自然語言處理&#xff08;NLP&#xff09;的核心組件&#xff0c;廣泛應用于機器翻譯、文本生成、對話系統等領域。隨著模型復雜度的提升&#xff0c;如何科學、系統地評估模型性能變得至關重要。評估指標不僅幫助我們理解模…

【開發技術】.Net中配置Serilog日志分級記錄

目錄 一、目的 二、解決方案 2.1 下載serilog包 2.2 Serilog配置 2.2.1 使用多個File sink配置不同的最小日志級別 2.2.2 使用Filter條件分流到不同文件 三、使用建議 四、文章總結 一、目的 在日常開發中&#xff0c;需要根據不同的場景去記錄日志&#xff0c;根據實際…

聊聊如何判斷發現的缺陷屬于前后端

目錄 一、觀察缺陷現象 二、檢查網絡請求&#xff08;核心方法&#xff09; 三、模擬請求驗證后端 四、查看日志 五、數據流分析 六、判斷前后端缺陷方法 判斷發現的缺陷是前后端&#xff0c;可以通過觀察缺陷現象&#xff0c;檢查網絡請求&#xff0c;查看后端日志&…

Python3與MySQL的PyMySQL連接與應用

Python3與MySQL的PyMySQL連接與應用 引言 隨著互聯網技術的飛速發展,數據庫在各個領域的應用日益廣泛。MySQL作為一種開源的關系型數據庫管理系統,因其穩定性和高效性,被廣泛應用于各種場景。Python作為一種高級編程語言,以其簡潔、易讀、易學等特點,受到了廣大開發者的…

智慧城市SaaS平臺|市政公用管理系統

【道路監測運維系統】1.數據可視化a) 實時監控支持對道路監測數據進行分析評估&#xff0c;為道路養護、交通管理、環境保護等提供數據支撐2.道路基礎設施監測支持對道路基礎設施的運行狀態進行實時監測&#xff0c;包括路面狀況3.交通流量監測支持對道路交通流量進行實時監測&…

Maven 配置阿里云鏡像加速

Maven 配置阿里云鏡像加速&#xff1a; 完整配置步驟&#xff08;Windows 系統&#xff09; 1. 找到 Maven 的 settings.xml 文件 全局配置&#xff1a;D:\software\apache-maven-3.9.11\conf\settings.xml用戶配置&#xff1a;C:\Users\Admin\.m2\settings.xml&#xff08;推薦…

去除視頻字幕 3 : 繼續研究 IOPaint,記錄幾個問題

1. 為什么單獨運行&#xff0c;效果很好&#xff0c;批量運行&#xff0c;效果很差。 1. 我運行 iopaint start --modellama --devicecuda --port8080在瀏覽器中單獨選擇圖片&#xff0c;涂選區域&#xff0c;然后處理&#xff0c;此時的效果非常好。2. 但是我進行 iopaint ru…

【深度之眼機器學習筆記】04-01-決策樹簡介、熵,04-02-條件熵及計算舉例,04-03-信息增益、ID3算法

1. 決策樹與熵 1.1 決策樹簡介 下面有一個貸申請樣本表&#xff0c;有許多特征 我們根據特征數據生成一棵樹&#xff0c;比如年齡有青年&#xff0c;中年&#xff0c;老年三個類別&#xff0c;那么就有三個分支&#xff0c;分別對應著三種類別。如果是青年那么就看工作&#xf…

八股文場景題

如何預估接口上線后的 QPS 問題引入 這個問題其實是一個非常實際的問題&#xff0c;因為我們在開發需求后&#xff0c;例如&#xff1a;新增了一個接口 有一個步驟是值得做的&#xff0c;那就是預估這個接口的QPS 因為我們是可以去調配對應服務器的數量和運行配置的 例如我…

【Web安全】深入淺出理解“SQL注入-偽靜態注入”及空格限制繞過技巧

文章目錄什么是偽靜態注入&#xff1f;偽靜態注入中如何繞過空格限制&#xff1f;1. 用注釋符替代空格2. 用不可見字符&#xff08;URL 編碼&#xff09;替代3. 用括號分隔語句4. 用特殊符號替代核心邏輯往期文章【Web安全】一次性搞懂 ReDOS 漏洞原理/檢測/防御 【Web安全】一…

【讀論文】Step-Audio 2 深度解讀:邁向工業級語音交互的「全能型選手」

引言:step-Audio升級 語音交互技術,作為人機交互最自然、最直接的方式之一,正以前所未有的速度發展。從簡單的語音指令到流暢的語音對話,我們對 AI 的期望越來越高。然而,要讓 AI 真正成為我們的“知心伙伴”,僅僅能“聽懂”和“說出”還遠遠不夠。 一個理想的語音 AI,…

java web 重定向

目錄結構 demo\day20\src\com\demo\service\Dome1.javademo\day20\src\com\demo\service\Dome2.javademo\day20\src\com\demo\service\Dome3.javademo\day20\src\com\demo\service\Dome4.javademo\day20\web\WEB-INF\lib\javax.servlet.jardemo\day20\web\index.jspdemo\day20\…