您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關iView如何實現可編輯表格的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
組件
<i-table highlight-row ref="currentRowTable" :columns="columns" :data="tableData"></i-table>
實現方式:
記錄當前需要編輯的列的id,默認為空
需要編輯的列與當前需要編輯的id進行匹配,成功則將該列渲染為包含input標簽組件,并綁定input事件
數據處理
export default { data () { return { currentId: '', currentScore: '', columns: [ { title: '名稱', key: 'name', align: 'center' }, { title: '班級', align: 'center', render: (h, p) => { const { id, score } = p.row const inp = h('input', { style: { width: '30%', padding: '4px 2px', borderRadius: '4px', border: '1px solid #e9eaec', textAlign: 'center' }, attrs: { maxlength: 16 }, domProps: { value: score }, on: { input: (event) => { this.currentScore = event.target.value } } }) return this.currentId === p.row.id ? inp : h('span', score) } }, { title: '操作', align: 'center', render: (h, p) => { const { currentId } = this const { id } = p.row const btnEdit = h('i-button', { on: { click: () => { this.currentId = id } } }, '編輯') const btnSaveCancel = [ h('i-button', { on: { click: () => { this.handleSave(id) } } }, '保存'), h('i-button', { on: { click: () => { this.currentId = '' this.currentScore = '' } } }, '取消')] return currentId === id ? h('p', btnSaveCancel) : btnEdit } } ], tableData: [ { id: 1, name: 1, score: 1 }, { id: 2, name: 2, score: 2 }] } }, methods: { handleSave (id) { const {currentScore, tableData} = this this.tableData = tableData.map(v => { return v.id === id ? { ...v, score: currentScore } : v }) this.currentId = '' this.currentScore = '' } } }
注意: 如果采用的是在 head 標簽中引入 iView,該方法在項目中會失效;通過編譯開發的項目可行;
關于iView如何實現可編輯表格的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。