报错截图
<el-table :data="tableData" highlight-current-row @cell-click="handleCellClick">
<el-table-column
v-for="(item, index) in columns"
:key="index"
:prop="item.prop"
:label="item.label"
:width="item.width"
>
<template #default="scope">
<el-input
v-if="item.edit"
size="small"
ref="tableInput"
v-model="scope.row[item.prop]"
@blur="removeClass"
@change="handleEdit()"
/>
<span>{{ scope.row[item.prop] }}</span>
</template>
<el-table-column
v-for="(itemchild, indexchild) in item.children"
:key="indexchild"
:prop="itemchild.prop"
:label="itemchild.label"
:width="itemchild.width"
>
<template #default="scope">
<el-input
v-if="itemchild.edit"
size="small"
ref="tableInput"
v-model="scope.row[itemchild.prop]"
@blur="removeClass"
@change="handleEdit()"
/>
<span>{{ scope.row[itemchild.prop] }}</span>
</template>
</el-table-column>
</el-table-column>
</el-table>
js
const columns = [
{ label: '项目名称', prop: 'itemName', width: '300', key: '100' },
{ label: '项目编码', prop: 'itemCode', width: '150', key: '200' },
{ label: '单位', prop: 'compName', width: '150', key: '300', edit: true },
{
label: '项目',
prop: '',
width: '450',
align: 'center',
key: '400',
children: [
{ label: '篮球', prop: 'staff', width: '150', key: '401', edit: true },
{ label: '足球', prop: 'material', width: '150', key: '402', edit: true },
{ label: '排球', prop: 'site', width: '150', key: '403' },
],
},
];
const tableData = [
{
itemName: '爱仕达多撒',
itemCode: '13511576982',
compName: '北京',
staff: '100',
material: '84547',
site: '6544',
sort: 1,
},
];
const handleEdit = () => {};
const handleCellClick = (row: any, column: any, cell: any) => {
for (let i = 0; i < document.getElementsByClassName('current-cell').length; i++) {
document.getElementsByClassName('current-cell')[i].classList.remove('current-cell');
}
cell.classList.add('current-cell');
};
const removeClass = () => {
document.getElementsByClassName('current-cell')[0].classList.remove('current-cell');
};
这是个多级表头二次封装,但是总是报这个错,大佬帮忙看看怎么写就对了。
你这上面已经有个默认插槽了,下面是干啥的?