From e02fa5bedb087519dabee9690c13f1b7f8be0787 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期一, 01 四月 2024 15:31:44 +0800 Subject: [PATCH] 完成交接复核功能 --- src/components/tool/value-table.vue | 43 +++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue index fbd1c28..9efd2dd 100644 --- a/src/components/tool/value-table.vue +++ b/src/components/tool/value-table.vue @@ -80,7 +80,8 @@ @row-click="rowClick" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0" :summary-method="getSummaries" :row-class-name="tableRowClassName" :row-key="record=>record.id" :current-row-key="data.currentId" - highlight-current-row> + highlight-current-row + :span-method="spanMethod"> <el-table-column type="selection" width="65" v-if="data.showSelect" :key="Math.random()"> </el-table-column> <el-table-column type="index" align="center" label="搴忓彿" width="70" v-if="data.isIndex" :key="Math.random()"> @@ -346,7 +347,9 @@ uploadDia: false, token: null, fileList: [], - init: true + init: true, + testArr: [], + testPosition: 0, } }, watch: { @@ -370,6 +373,37 @@ } }, methods: { + rowspan(spanArr, position, spanName) { + this.tableData.forEach((item, index) => { + if (index === 0) { + spanArr.push(1); + position = 0; + } else { + if ( + this.tableData[index][spanName] === + this.tableData[index - 1][spanName] + ) { + spanArr[position] += 1; + spanArr.push(0); + } else { + spanArr.push(1); + position = index; + } + } + }); + }, + spanMethod({ row, column, rowIndex, columnIndex }){ + if(this.data.spanConfig!=undefined&&this.data.spanConfig.rows){ + if (columnIndex === this.data.spanConfig.rows.index) { + const _row = this.testArr[rowIndex]; + const _col = _row > 0 ? 1 : 0; + return { + rowspan: _row, + colspan: _col, + }; + } + } + }, selectChange(val) { if (this.data.select) { this.multipleSelection = val; @@ -438,6 +472,11 @@ }) } } + if(this.data.spanConfig!=undefined&&this.data.spanConfig.rows){ + this.testArr = [] + this.testPosition = 0 + this.rowspan(this.testArr, this.testPosition, this.data.spanConfig.rows.name); + } this.loading = false }).catch(e => { this.loading = false -- Gitblit v1.9.3