Files
vxe-table/examples/views/table/edit/Click.vue
xuliangzhan 01ec4387af 更新文档
2020-02-07 14:47:27 +08:00

173 lines
6.8 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="edit-config"/>={trigger: 'click', mode: 'cell'} 启用单元格点击编辑的功能<br>
<span class="red">原生的 select 必须是字符串的 value</span>
</p>
<vxe-table
border
resizable
:data="tableData"
:edit-config="{trigger: 'click', mode: 'cell'}"
@edit-actived="editActivedEvent"
@edit-closed="editClosedEvent">
<vxe-table-column type="seq" width="60"></vxe-table-column>
<vxe-table-column field="name" title="Name" :edit-render="{name: 'input', attrs: {type: 'text'}}"></vxe-table-column>
<vxe-table-column field="role" title="Role" :edit-render="{name: 'input', attrs: {type: 'text'}}"></vxe-table-column>
<vxe-table-column field="sex6" title="Sex" :edit-render="{name: 'select', options: sexList, optionProps: {value: 'value2', label: 'label'}}"></vxe-table-column>
<vxe-table-column field="num6" title="Number" :edit-render="{name: 'input', attrs: {type: 'number'}}"></vxe-table-column>
<vxe-table-column field="date12" title="Date" :edit-render="{name: 'input', attrs: {type: 'date'}}"></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 class="tip">设置 <table-api-link prop="edit-config"/>={trigger: 'click', mode: 'row'} 启用行点击编辑的功能</p>
<vxe-table
border
resizable
show-overflow
:data="tableData"
:edit-config="{trigger: 'click', mode: 'row'}">
<vxe-table-column type="seq" width="60"></vxe-table-column>
<vxe-table-column field="name" title="Name" :edit-render="{name: 'input', attrs: {type: 'text'}}"></vxe-table-column>
<vxe-table-column field="role" title="Role" :edit-render="{name: 'input', attrs: {type: 'text'}}"></vxe-table-column>
<vxe-table-column field="sex2" title="Sex" :edit-render="{name: 'select', options: sexList, optionProps: {value: 'value', label: 'spell'}}"></vxe-table-column>
<vxe-table-column field="num6" title="Number" :edit-render="{name: 'input', attrs: {type: 'number'}}"></vxe-table-column>
<vxe-table-column field="date13" title="Date" :edit-render="{name: 'input', attrs: {type: 'date'}}"></vxe-table-column>
<vxe-table-column field="address" title="Address" :edit-render="{name: 'input', attrs: {type: 'text'}}"></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 XEAjax from 'xe-ajax'
import hljs from 'highlight.js'
export default {
data () {
return {
tableData: [],
sexList: [],
demoCodes: [
`
<vxe-table
border
resizable
:data="tableData"
:edit-config="{trigger: 'click', mode: 'cell'}"
@edit-actived="editActivedEvent"
@edit-closed="editClosedEvent">
<vxe-table-column type="seq" width="60"></vxe-table-column>
<vxe-table-column field="name" title="Name" :edit-render="{name: 'input', attrs: {type: 'text'}}"></vxe-table-column>
<vxe-table-column field="role" title="Role" :edit-render="{name: 'input', attrs: {type: 'text'}}"></vxe-table-column>
<vxe-table-column field="sex6" title="Sex" :edit-render="{name: 'select', options: sexList, optionProps: {value: 'value2', label: 'label'}}"></vxe-table-column>
<vxe-table-column field="num6" title="Number" :edit-render="{name: 'input', attrs: {type: 'number'}}"></vxe-table-column>
<vxe-table-column field="date12" title="Date" :edit-render="{name: 'input', attrs: {type: 'date'}}"></vxe-table-column>
</vxe-table>
`,
`
export default {
data () {
return {
tableData: [],
sexList: []
}
},
created () {
this.tableData = window.MOCK_DATA_LIST.slice(0, 6)
this.findSexList()
},
methods: {
findSexList () {
return XEAjax.get('/api/conf/sex/list').then(data => {
this.sexList = data
})
},
editActivedEvent ({ row, column }, event) {
console.log(\`打开 \${column.title} 列编辑\`)
},
editClosedEvent ({ row, column }, event) {
console.log(\`关闭 \${column.title} 列编辑\`)
}
}
}
`,
`
<vxe-table
border
resizable
show-overflow
:data="tableData"
:edit-config="{trigger: 'click', mode: 'row'}">
<vxe-table-column type="seq" width="60"></vxe-table-column>
<vxe-table-column field="name" title="Name" :edit-render="{name: 'input', attrs: {type: 'text'}}"></vxe-table-column>
<vxe-table-column field="role" title="Role" :edit-render="{name: 'input', attrs: {type: 'text'}}"></vxe-table-column>
<vxe-table-column field="sex2" title="Sex" :edit-render="{name: 'select', options: sexList, optionProps: {value: 'value', label: 'spell'}}"></vxe-table-column>
<vxe-table-column field="num6" title="Number" :edit-render="{name: 'input', attrs: {type: 'number'}}"></vxe-table-column>
<vxe-table-column field="date13" title="Date" :edit-render="{name: 'input', attrs: {type: 'date'}}"></vxe-table-column>
<vxe-table-column field="address" title="Address" :edit-render="{name: 'input'}"></vxe-table-column>
</vxe-table>
`,
`
export default {
data () {
return {
tableData: [],
sexList: []
}
},
created () {
this.tableData = window.MOCK_DATA_LIST.slice(0, 6)
this.findSexList()
},
methods: {
findSexList () {
return XEAjax.get('/api/conf/sex/list').then(data => {
this.sexList = data
})
}
}
}
`
]
}
},
created () {
this.tableData = window.MOCK_DATA_LIST.slice(0, 6)
this.findSexList()
},
mounted () {
Array.from(this.$el.querySelectorAll('pre code')).forEach((block) => {
hljs.highlightBlock(block)
})
},
methods: {
findSexList () {
return XEAjax.get('/api/conf/sex/list').then(data => {
this.sexList = data
})
},
editActivedEvent ({ row, column }, event) {
console.log(`打开 ${column.title} 列编辑`)
},
editClosedEvent ({ row, column }, event) {
console.log(`关闭 ${column.title} 列编辑`)
}
}
}
</script>