Files
vxe-table/examples/views/table/edit/DBLClick.vue
xuliangzhan 78e0c67015 update
2019-07-13 19:46:43 +08:00

149 lines
5.1 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>设置 <table-api-link prop="edit-config"/>={trigger: 'dblclick', mode: 'cell'} 启用单元格双击编辑的功能</p>
<p class="red">开启编辑功能必须要有唯一行数据的 key通过设置 <table-api-link prop="row-id"/> 或者 <table-api-link prop="row-key"/> 自定义字段名</p>
<vxe-table
border
resizable
show-overflow
height="500"
row-id="id"
:data.sync="tableData"
:edit-config="{trigger: 'dblclick', mode: 'cell'}"
@edit-actived="editActivedEvent"
@edit-closed="editClosedEvent">
<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="date" title="Date" :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>
<p>设置 <table-api-link prop="edit-config"/>={trigger: 'dblclick', mode: 'row'} 启用行双击编辑的功能</p>
<p>需要注意的 mode=row 事件中的 column 相关参数是不确定性的会保留 column 相关参数但不一定是准确的</p>
<vxe-table
border
resizable
show-overflow
height="500"
row-id="id"
:data.sync="tableData"
:edit-config="{trigger: 'dblclick', mode: 'row'}">
<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="date" title="Date" :edit-render="{name: 'input'}"></vxe-table-column>
<vxe-table-column field="address" title="Address" :edit-render="{name: 'input'}"></vxe-table-column>
</vxe-table>
<p class="demo-code">{{ $t('app.body.button.showCode') }}</p>
<pre>
<code class="xml">{{ demoCodes[2] }}</code>
<code class="javascript">{{ demoCodes[3] }}</code>
</pre>
</div>
</template>
<script>
import hljs from 'highlight.js'
export default {
data () {
return {
tableData: [],
demoCodes: [
`
<vxe-table
border
resizable
show-overflow
height="500"
row-id="id"
:data.sync="tableData"
:edit-config="{trigger: 'dblclick', mode: 'cell'}">
<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="date" title="Date" :edit-render="{name: 'input'}"></vxe-table-column>
</vxe-table>
`,
`
export default {
data () {
return {
tableData: []
}
},
created () {
this.tableData = window.MOCK_DATA_LIST.slice(0, 100)
},
methods: {
editActivedEvent ({ row, column }, event) {
console.log(\`打开 \${column.title} 列编辑\`)
},
editClosedEvent ({ row, column }, event) {
console.log(\`关闭 \${column.title} 列编辑\`)
}
}
}
`,
`
<vxe-table
border
resizable
show-overflow
height="500"
row-id="id"
:data.sync="tableData"
:edit-config="{trigger: 'dblclick', mode: 'row'}">
<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="date" title="Date" :edit-render="{name: 'input'}"></vxe-table-column>
<vxe-table-column field="address" title="Address" show-overflow :edit-render="{name: 'input'}"></vxe-table-column>
</vxe-table>
`,
`
export default {
data () {
return {
tableData: []
}
},
created () {
this.tableData = window.MOCK_DATA_LIST.slice(0, 100)
}
}
`
]
}
},
created () {
let list = window.MOCK_DATA_LIST.slice(0, 100)
this.tableData = list
},
mounted () {
Array.from(this.$el.querySelectorAll('pre code')).forEach((block) => {
hljs.highlightBlock(block)
})
},
methods: {
editActivedEvent ({ row, column }, event) {
console.log(`打开 ${column.title} 列编辑`)
},
editClosedEvent ({ row, column }, event) {
console.log(`关闭 ${column.title} 列编辑`)
}
}
}
</script>