console
var Main = {
data() {
return {
tableData: [
{ id: 10001, name: 'Test1', nickname: 'T1', role: 'Develop', sex: '0', sex2: ['0'], num1: 40, age: 28, address: 'Shenzhen', date12: '', date13: '' },
{ id: 10002, name: 'Test2', nickname: 'T2', role: 'Designer', sex: '1', sex2: ['0', '1'], num1: 44, age: 22, address: 'Guangzhou', date12: '', date13: '2020-08-20' },
{ id: 10003, name: 'Test3', nickname: 'T3', role: 'Test', sex: '0', sex2: ['1'], num1: 200, age: 32, address: 'Shanghai', date12: '2020-09-10', date13: '' },
{ id: 10004, name: 'Test4', nickname: 'T4', role: 'Designer', sex: '1', sex2: ['1'], num1: 30, age: 23, address: 'Shenzhen', date12: '', date13: '2020-12-04' },
{ id: 10005, name: 'Test5', nickname: 'T5', role: 'Develop', sex: '0', sex2: ['1', '0'], num1: 20, age: 30, address: 'Shanghai', date12: '2020-09-20', date13: '' },
{ id: 10006, name: 'Test6', nickname: 'T6', role: 'Designer', sex: '1', sex2: ['0'], num1: 10, age: 21, address: 'Shenzhen', date12: '', date13: '' },
{ id: 10007, name: 'Test7', nickname: 'T7', role: 'Develop', sex: '0', sex2: ['0'], num1: 5, age: 29, address: 'Shenzhen', date12: '2020-01-02', date13: '2020-09-20' },
{ id: 10008, name: 'Test8', nickname: 'T8', role: 'PM', sex: '1', sex2: ['0'], num1: 2, age: 35, address: 'Shenzhen', date12: '', date13: '' }
],
sexList: [
{ label: '', value: '' },
{ label: '男', value: '1' },
{ label: '女', value: '0' }
],
isformat: true,
fresh: true,
formatter: (format) => {
return format.cellValue.toFixed(1);
},
}
},
methods: {
handleRowClick({row}) {
console.log('cellSelected row:', row)
},
cellClickEvent({row}) {
console.log('Clicked row:', row)
},
renderd(data) {
console.log(data)
return data
},
change() {
this.isformat = !this.isformat
this.updateFormatter()
},
formatterUnit(datas, d) {
d = this.isformat ? d : d - 1
console.log(this.isformat, d)
return datas.cellValue.toFixed(1)
},
formatterUnit2(datas) {
return datas.cellValue.toFixed(2)
},
formatterUnit3(datas) {
return datas.cellValue.toFixed(3)
},
updateFormatter() {
// 动态修改 formatter
this.formatter = (format) => {
return this.isformat ? format.cellValue.toFixed(1) : format.cellValue.toFixed(2);
}
this.fresh = false
this.$nextTick(() => {
this.fresh = true
})
}
},
mounted() {
}
};
var app = new Vue(Main).$mount('#app')
<script src="https://unpkg.com/vue@2.6.0">
</script>
<script src="https://unpkg.com/xe-utils">
</script>
<script src="https://unpkg.com/vxe-table@3">
</script>
<div id="app">
<template>
<div>
<button @click="change">修改格式</button>
<button @click="updateFormatter">修改格式2</button>
<button @click="updateFormatter">行点击</button>
<vxe-table @cell-selected="handleRowClick"
@cell-click="cellClickEvent" v-if="fresh" ref="xTable"
border resizable show-overflow :data="tableData"
:mouse-config="{selected: true}"
>
<vxe-column type="seq" width="60"></vxe-column>
<vxe-colgroup title="分组2">
<vxe-column field="num1" title="Number" :edit-render="{}"
:formatter="isformat ? format => formatterUnit(format,1) : ''"
>
<template #edit="{ row,column }">
<vxe-input v-model="row.num1" type="number" placeholder="请输入数值"></vxe-input>
</template>
</vxe-column>
<vxe-column field="age" title="age" :edit-render="{}" :formatter="formatter">
<template #edit="{ row,column }">
<vxe-input v-model="row.age" type="number" placeholder="请输入数值"></vxe-input>
</template>
</vxe-column>
</vxe-colgroup>
<vxe-column field="address" title="Address" :edit-render="{}">
<template #edit="{ row }">
<vxe-input v-model="row.address" type="text"></vxe-input>
</template>
</vxe-column>
</vxe-table>
</div>
</template>
</div>
@import url("https://unpkg.com/vxe-table/lib/style.css");