Files
vxe-table/examples/views/table/edit/Remove.vue
xuliangzhan a353b4b526 更新文档
2020-03-10 21:20:52 +08:00

152 lines
5.6 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<div>
<p class="tip">调用 <table-api-link prop="remove"/> 删除指定行数据<br><span class="red">当移除行元素后由于 vue 缓存造成事件错乱应该使用 <table-api-link prop="row-key "/>来避免该问题</span></p>
<vxe-toolbar>
<template v-slot:buttons>
<vxe-button @click="insertEvent()">在第1行插入</vxe-button>
<vxe-button @click="removeEvent(tableData[1])">删除第2行</vxe-button>
<vxe-button @click="$refs.xTable.removeCheckboxRow()">删除选中</vxe-button>
<vxe-button @click="getRemoveEvent">获取删除</vxe-button>
<vxe-button @click="getSelectionEvent">获取选中</vxe-button>
<vxe-button icon="fa fa-save" @click="saveEvent">保存</vxe-button>
</template>
</vxe-toolbar>
<vxe-table
ref="xTable"
border
show-overflow
:data="tableData"
:edit-config="{trigger: 'click', mode: 'cell'}">
<vxe-table-column type="checkbox" width="60"></vxe-table-column>
<vxe-table-column type="seq" 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="age" title="Age" :edit-render="{name: 'input'}"></vxe-table-column>
</vxe-table>
<p class="demo-code">{{ $t('app.body.button.showCode') }}</p>
<pre>
<code class="xml">{{ demoCodes[0] }}</code>
<code class="javascript">{{ demoCodes[1] }}</code>
</pre>
</div>
</template>
<script>
import hljs from 'highlight.js'
export default {
data () {
return {
tableData: [],
demoCodes: [
`
<vxe-toolbar>
<template v-slot:buttons>
<vxe-button @click="insertEvent()">在第1行插入</vxe-button>
<vxe-button @click="removeEvent(tableData[1])">删除第2行</vxe-button>
<vxe-button @click="$refs.xTable.removeCheckboxRow()">删除选中</vxe-button>
<vxe-button @click="getRemoveEvent">获取删除</vxe-button>
<vxe-button @click="getSelectionEvent">获取选中</vxe-button>
<vxe-button icon="fa fa-save" @click="saveEvent">保存</vxe-button>
</template>
</vxe-toolbar>
<vxe-table
ref="xTable"
border
show-overflow
:data="tableData"
:edit-config="{trigger: 'click', mode: 'cell'}">
<vxe-table-column type="checkbox" width="60"></vxe-table-column>
<vxe-table-column type="seq" 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="age" title="Age" :edit-render="{name: 'input'}"></vxe-table-column>
</vxe-table>
`,
`
export default {
data () {
return {
tableData: []
}
},
created () {
this.tableData = window.MOCK_DATA_LIST.slice(0, 6)
},
methods: {
async insertEvent (row) {
let record = {
sex: '1'
}
const { row: newRow } = await this.$refs.xTable.insertAt(record, row)
await this.$refs.xTable.setActiveCell(newRow, 'sex')
},
removeEvent (row) {
this.$XModal.confirm('您确定要删除该数据?').then(type => {
if (type === 'confirm') {
this.$refs.xTable.remove(row)
}
})
},
getRemoveEvent () {
let removeRecords = this.$refs.xTable.getRemoveRecords()
this.$XModal.alert(removeRecords.length)
},
getSelectionEvent () {
let selectRecords = this.$refs.xTable.getCheckboxRecords()
this.$XModal.alert(selectRecords.length)
},
saveEvent () {
const { insertRecords, removeRecords, updateRecords } = this.$refs.xTable.getRecordset()
this.$XModal.alert(\`insertRecords=\${insertRecords.length} removeRecords=\${removeRecords.length} updateRecords=\${updateRecords.length}\`)
}
}
}
`
]
}
},
created () {
this.tableData = window.MOCK_DATA_LIST.slice(0, 6)
},
mounted () {
Array.from(this.$el.querySelectorAll('pre code')).forEach((block) => {
hljs.highlightBlock(block)
})
},
methods: {
async insertEvent (row) {
const record = {
sex: '1'
}
const { row: newRow } = await this.$refs.xTable.insertAt(record, row)
await this.$refs.xTable.setActiveCell(newRow, 'sex')
},
removeEvent (row) {
this.$XModal.confirm('您确定要删除该数据?').then(type => {
if (type === 'confirm') {
this.$refs.xTable.remove(row)
}
})
},
getRemoveEvent () {
const removeRecords = this.$refs.xTable.getRemoveRecords()
this.$XModal.alert(removeRecords.length)
},
getSelectionEvent () {
const selectRecords = this.$refs.xTable.getCheckboxRecords()
this.$XModal.alert(selectRecords.length)
},
saveEvent () {
const { insertRecords, removeRecords, updateRecords } = this.$refs.xTable.getRecordset()
this.$XModal.alert(`insertRecords=${insertRecords.length} removeRecords=${removeRecords.length} updateRecords=${updateRecords.length}`)
}
}
}
</script>