|
|
|
|
@ -15,9 +15,10 @@ |
|
|
|
|
@size-change="sizeChange" |
|
|
|
|
@refresh-change="refreshChange" |
|
|
|
|
@on-load="onLoad" |
|
|
|
|
:span-method="spanMethod" |
|
|
|
|
|
|
|
|
|
:row-class-name="rowClassName" |
|
|
|
|
> |
|
|
|
|
<!-- :span-method="spanMethod" --> |
|
|
|
|
<template #menu-left> |
|
|
|
|
<el-button type="danger" @click="handleDeletes">批量删除</el-button> |
|
|
|
|
<el-button type="primary" @click="handleMaintain">证书维护</el-button> |
|
|
|
|
@ -25,7 +26,9 @@ |
|
|
|
|
<template #menu-right> |
|
|
|
|
<!-- <el-button type="primary" @click="handleImport">导 入</el-button> --> |
|
|
|
|
</template> |
|
|
|
|
<template #menu="{ row }"> </template> |
|
|
|
|
<template #menu="{ row }"> |
|
|
|
|
<!-- <el-button type="text" @click="handleDeletes(row)">删除</el-button> --> |
|
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
<template #heatTreat="scope"> </template> |
|
|
|
|
</avue-crud> |
|
|
|
|
@ -428,13 +431,13 @@ export default { |
|
|
|
|
// 证书维护 |
|
|
|
|
handleMaintain() { |
|
|
|
|
if (this.selectionList.length > 0) { |
|
|
|
|
let tmp = this.data.filter(item1 => |
|
|
|
|
this.selectionList.some(item2 => item2.name === item1.name) |
|
|
|
|
); |
|
|
|
|
let tmp1 = Array.from(new Set(tmp.map(item => item.certificateCode))).map(wlCode => { |
|
|
|
|
return tmp.find(item => item.certificateCode === wlCode); |
|
|
|
|
}); |
|
|
|
|
this.maintainList = tmp1; |
|
|
|
|
// let tmp = this.data.filter(item1 => |
|
|
|
|
// this.selectionList.some(item2 => item2.name === item1.name) |
|
|
|
|
// ); |
|
|
|
|
// let tmp1 = Array.from(new Set(tmp.map(item => item.certificateCode))).map(wlCode => { |
|
|
|
|
// return tmp.find(item => item.certificateCode === wlCode); |
|
|
|
|
// }); |
|
|
|
|
this.maintainList = this.selectionList; |
|
|
|
|
} else { |
|
|
|
|
this.maintainList = []; |
|
|
|
|
} |
|
|
|
|
@ -486,44 +489,44 @@ export default { |
|
|
|
|
}, |
|
|
|
|
// 合并单元格 |
|
|
|
|
spanMethod({ row, column, rowIndex, columnIndex }) { |
|
|
|
|
if (columnIndex === 0 || columnIndex === 1) { |
|
|
|
|
// 只处理“姓名”列(prop: 'name' 对应第0列) |
|
|
|
|
const rows = this.data; |
|
|
|
|
const currentName = row.name; |
|
|
|
|
let rowspan = 1; |
|
|
|
|
let isTopRow = true; |
|
|
|
|
// if (columnIndex === 0 || columnIndex === 1) { |
|
|
|
|
// // 只处理“姓名”列(prop: 'name' 对应第0列) |
|
|
|
|
// const rows = this.data; |
|
|
|
|
// const currentName = row.name; |
|
|
|
|
// let rowspan = 1; |
|
|
|
|
// let isTopRow = true; |
|
|
|
|
|
|
|
|
|
// 向上查找是否是连续相同 name 的起始行 |
|
|
|
|
for (let i = rowIndex - 1; i >= 0; i--) { |
|
|
|
|
if (rows[i].name === currentName) { |
|
|
|
|
isTopRow = false; |
|
|
|
|
break; |
|
|
|
|
} else { |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// // 向上查找是否是连续相同 name 的起始行 |
|
|
|
|
// for (let i = rowIndex - 1; i >= 0; i--) { |
|
|
|
|
// if (rows[i].name === currentName) { |
|
|
|
|
// isTopRow = false; |
|
|
|
|
// break; |
|
|
|
|
// } else { |
|
|
|
|
// break; |
|
|
|
|
// } |
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
// 如果不是顶部行,则隐藏(rowspan=0) |
|
|
|
|
if (!isTopRow) { |
|
|
|
|
return { |
|
|
|
|
rowspan: 0, |
|
|
|
|
colspan: 0, |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
// 向下统计相同 name 的行数 |
|
|
|
|
for (let i = rowIndex + 1; i < rows.length; i++) { |
|
|
|
|
if (rows[i].name === currentName) { |
|
|
|
|
rowspan++; |
|
|
|
|
} else { |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// // 如果不是顶部行,则隐藏(rowspan=0) |
|
|
|
|
// if (!isTopRow) { |
|
|
|
|
// return { |
|
|
|
|
// rowspan: 0, |
|
|
|
|
// colspan: 0, |
|
|
|
|
// }; |
|
|
|
|
// } |
|
|
|
|
// // 向下统计相同 name 的行数 |
|
|
|
|
// for (let i = rowIndex + 1; i < rows.length; i++) { |
|
|
|
|
// if (rows[i].name === currentName) { |
|
|
|
|
// rowspan++; |
|
|
|
|
// } else { |
|
|
|
|
// break; |
|
|
|
|
// } |
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
return { |
|
|
|
|
rowspan: rowspan, |
|
|
|
|
colspan: 1, |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
// return { |
|
|
|
|
// rowspan: rowspan, |
|
|
|
|
// colspan: 1, |
|
|
|
|
// }; |
|
|
|
|
// } |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
searchReset() { |
|
|
|
|
|