Vue實現(xiàn)table上下移動功能示例
本文實例講述了Vue實現(xiàn)table上下移動功能。分享給大家供大家參考,具體如下:
結(jié)合Element組件,scope中有三個參數(shù)(row,cow,$index)分別表示行內(nèi)容、列內(nèi)容、以及此行索引值,
table上綁定數(shù)組 :data="tableList"
<el-table :data="tableList"> </el-table>
添加一列,里面放上上移和下調(diào)兩個按鈕,并綁定上函數(shù),將此行的索引值(scope.$index)作為參數(shù),樣式根據(jù)需求自己調(diào)整:
<el-button icon="el-icon-arrow-up" :disabled="scope.$index === 0" @click="upFieldOrder(scope.$index)"></el-button> <el-button icon="el-icon-arrow-down" :disabled="scope.$index === tableList.length - 1" @click="downFieldOrder(scope.$index)"></el-button>
直接使用下面這種方式是錯誤的,雖然tableList的值變了,但是不會觸發(fā)視圖的更新:
upFieldOrder (index) {
let temp = this.tableList[index-1];
this.tableList[index-1] = this.tableList[index]
this.tableList[index] = temp
},
正確的上移函數(shù):
upFieldOrder (index) {
let temp = this.tableList[index-1];
Vue.set(this.tableList, index-1, this.tableList[index])
Vue.set(this.tableList, index, temp)
},
同理,下移函數(shù)如下:
downFieldOrder (index) {
let i = this.tableList[index+1];
Vue.set(this.tableList, index+1, this.tableList[index])
Vue.set(this.tableList, index, i)
}
如此,前端的調(diào)整table順序功能便做好了,我不是在每一次點(diǎn)擊都與后臺交互傳入新Order,在頁面銷毀時,一并提交:
destroyed() {
let param = {
infos: []
}
this.tableList.forEach((dataItem,index) => {
param.infos.push({
參數(shù)1: dataItem.值1,
參數(shù)1: dataItem.值2,
參數(shù)順序: index
})
});
// 調(diào)用后臺,并傳入 param
changeTableOrder(param).then(res => {
if(res.success=== true) {
alert('順序調(diào)整成功')
}
})
}
希望本文所述對大家vue.js程序設(shè)計有所幫助。
相關(guān)文章
antv完成區(qū)間柱形圖一列多柱配置實現(xiàn)詳解
這篇文章主要為大家介紹了antv完成區(qū)間柱形圖一列多柱配置實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10
vue elementui table編輯表單時彈框增加編輯明細(xì)數(shù)據(jù)的實現(xiàn)
在Vue項目中,通過使用Element UI框架實現(xiàn)表單及其明細(xì)數(shù)據(jù)的新增和編輯操作,主要通過彈窗形式進(jìn)行明細(xì)數(shù)據(jù)的增加和編輯,有效提升用戶交互體驗,本文詳細(xì)介紹了相關(guān)實現(xiàn)方法和代碼,適合需要在Vue項目中處理復(fù)雜表單交互的開發(fā)者參考2024-10-10

