項目中有一個需要用戶點擊table單元格可編輯的需求,由於博主用的是elementUI,element組件內實現可編輯,用過的小伙伴都知道,非常麻煩,后來博主在瀏覽組件的時候發現了 一款非常好用的table組件 vxe-table。
用起來非常簡單只需要跟element一樣指定表頭數據就可以
<vxe-table border show-overflow ref="xTable" :data="tableData" :edit-config="{trigger: 'click', mode: 'cell', showStatus: true}"> <vxe-table-column type="checkbox" width="60"></vxe-table-column> <vxe-table-column type="index" width="60"></vxe-table-column> <vxe-table-column field="name" title="Name" :edit-render="{name: 'input'}"></vxe-table-column> <vxe-table-column field="sex" title="Sex" :edit-render="{name: 'input'}"></vxe-table-column> <vxe-table-column field="date3" title="Date" formatter="toDateString"></vxe-table-column> <vxe-table-column title="操作" width="200"> <template v-slot="{ row, rowIndex }"> <template v-if="!row.date3"> <vxe-button @click="saveEvent2(row)" :loading="row.loading">更新並替換新數據</vxe-button> </template> <template v-else-if="rowIndex % 2 === 0"> <vxe-button @click="saveEvent(row)" :loading="row.loading">更新行數據</vxe-button> </template> <template v-else> <vxe-button type="primary" @click="saveEvent(row, 'name')" :loading="row.loading">更新 Name 列</vxe-button> </template> </template> </vxe-table-column> </vxe-table>
editActivedEvent ({ row, column }, event) {
console.log(`打開 ${column.title} 列編輯`)
},
editClosedEvent ({ row, column }, event) {
console.log(`關閉 ${column.title} 列編輯`)
}
這樣一個可編輯table就直接實現了
api:https://xuliangzhan_admin.gitee.io/vxe-table/#/table/edit/click