实例代码:
<template>
<div>
<Button
type="primary"
@click="handleButton"
>{{this.envAttr.data[0].paas[0].value ? '关闭' : '打开'}}</Button>
<Table
border
:columns="envAttr.column"
:data="envAttr.data"
>
<template
v-for="(paas, paasIndex) in envAttr.data[0].paas"
slot-scope="{ row, index }"
:slot="paas.name"
>
{{row.paas[paasIndex].value}}
<Checkbox
v-model="row.paas[paasIndex].value"
:key="row.paas[paasIndex].name + paasIndex + index"
@on-change="handleOnChange($event, row, index)"
></Checkbox>
</template>
</Table>
</div>
</template>
<script>
export default {
name: 'tableColumn',
data () {
return {
envAttr: {
width: 'auto',
data: [
{ code: 'A', paas: [{ name: 'A1', value: false }, { name: 'A2', value: false }] },
{ code: 'B', paas: [{ name: 'B1', value: false }, { name: 'B2', value: false }] }
],
column: [{
width: 80,
align: 'center',
type: 'selection'
},
{
key: 'code',
align: 'center',
title: '编码'
}]
}
}
},
mounted () {
this.envAttr.data[0].paas.forEach(paas => {
this.envAttr.column.push({ key: paas.name, slot: paas.name, title: paas.name })
})
},
methods: {
handleButton () {
this.envAttr.data[0].paas[0].value = !this.envAttr.data[0].paas[0].value
},
handleOnChange (value, row, index) {
this.$set(this.envAttr.data, index, row)
}
}
}
</script>
效果图: