layui 數(shù)據(jù)表格拖動 列、行 位置重新排序功能實現(xiàn)
先貼官網(wǎng) layui官網(wǎng) ;
再貼一個要使用的 插件官網(wǎng) : layui-soul-table 示例文檔 ;
這個插件功能很多
看到那個下載 后悔沒早點知道啊 還自己寫了 一個下載
可以到官網(wǎng)看看 很多實用的
需要引入的 js
layui.config({ base: rootPath, version: true }).extend({ // 自定義擴展 soulTable: 'three-modules/soul-Table/soulTable.slim', // soulTable表格擴展( 要使用soulTable必須先引入當前文件) tableChild: 'three-modules/soul-Table/tableChild', // soulTable子表擴展 tableMerge: 'three-modules/soul-Table/tableMerge', // soulTable合并單元格擴展 tableFilter: 'three-modules/soul-Table/tableFilter', // soulTable篩選擴展 excel: 'three-modules/soul-Table/excel', // soulTable導(dǎo)出excel擴展 });
官網(wǎng)上也是這樣引入的 統(tǒng)一管理的 所以 很友好 能有 直接添加到自己的增加的后面
遇到的問題 就是 排序 因為我的數(shù)據(jù)表格中 主要是要獲取但當前的排序
拖動后更改位置 當前的能夠顯示出來
根據(jù)給的獲取數(shù)據(jù)
let oldIndex = obj.oldIndex; // 原來的數(shù)據(jù)索引 let newIndex = obj.newIndex; // 改動后數(shù)據(jù)索引 let modifiedRow = obj.row; // 修改行數(shù)據(jù) let cache = obj.cache; // 改動后全表數(shù)據(jù)
然后判斷移動了多少 進行重載渲染: 我的字段名稱是 xlh 能使用的話 換成自己的就行了
// 首先,找到修改行在全表數(shù)據(jù)中的索引,以便后續(xù)直接操作 let modifiedRowIndex = cache.findIndex(row => row.xlh === modifiedRow.xlh && row.fdname === modifiedRow.fdname); // 確保找到了對應(yīng)的行 if (modifiedRowIndex !== -1) { // 如果移動是向前(oldIndex > newIndex),則需要減少中間行的xlh if (oldIndex > newIndex) { for (let i = newIndex + 1; i < oldIndex; i++) { cache[i].xlh--; } } // 如果是向后移動(oldIndex < newIndex),則需要增加中間行的xlh else if (oldIndex < newIndex) { for (let i = oldIndex; i < newIndex; i++) { cache[i].xlh++; } } // 直接根據(jù)新的索引位置更新修改行的xlh modifiedRow.xlh = newIndex + 1; // 更新 cache 中對應(yīng)行的數(shù)據(jù)(雖然實際上可能不需要,因為假設(shè) cache 已經(jīng)是最新的) // 但這里為了演示邏輯完整性,我們模擬更新操作 cache[modifiedRowIndex] = modifiedRow; // 重新遍歷并確保所有行的xlh正確無誤(這一步在大多數(shù)情況下可能不需要,因為我們已經(jīng)針對性調(diào)整了受影響的部分) // 但為了確保邏輯完整性,保留此步驟 cache.forEach((row, index) => { row.xlh = index + 1; // 確保每個xlh與索引對應(yīng) }); // console.log("根據(jù)新順序更新xlh后的全表數(shù)據(jù):", cache); } else { console.error("在全表數(shù)據(jù)中未找到對應(yīng)的修改行"); } // console.log("根據(jù)最終順序更新xlh后的數(shù)據(jù):", cache); table.reloadData('表id', { data: cache });
到此這篇關(guān)于layui 數(shù)據(jù)表格拖動 列、行 位置重新排序功能實現(xiàn)的文章就介紹到這了,更多相關(guān)layui 數(shù)據(jù)表格拖動重新排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js組件SlotMachine實現(xiàn)圖片切換效果制作抽獎系統(tǒng)
這篇文章主要介紹了js組件SlotMachine實現(xiàn)圖片切換效果制作抽獎系統(tǒng)的相關(guān)資料,需要的朋友可以參考下2016-04-04javascript FormatNumber函數(shù)實現(xiàn)方法
如果有一個數(shù)字498.8573945,如何把它格式化成兩位小數(shù)據(jù)呢?用過asp的都知道,在vbscript里我們可以調(diào)用formatnumber,即用formatnumber(498.8573945,2)就可以輸出:498.86。2008-12-12JS+XML 省份和城市之間的聯(lián)動實現(xiàn)代碼
用JS來操作一個XML文檔來實現(xiàn)一個簡單的表單聯(lián)動2009-10-10微信小程序?qū)崿F(xiàn)單選、多選及如何通過變量控制單選/多選功能
文章介紹了如何在微信小程序中實現(xiàn)單選和多選功能,單選功能使用`radio`和`radio-group`組件,多選功能使用`checkbox`和`checkbox-group`組件,同時,還介紹了如何通過自定義邏輯實現(xiàn)單選和多選功能,并總結(jié)了每種功能的特點和實現(xiàn)方式2025-01-01