From c0daa74a84fba7f2c0f2d824dea9049e9caf8b46 Mon Sep 17 00:00:00 2001 From: lb Date: Tue, 28 Nov 2023 19:31:08 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BA=A7=E7=BA=BF=E5=B9=B3=E8=A1=A1?= =?UTF-8?q?=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/analysis/balanceAnalysis/index.vue | 96 ++++++++++++------- .../equipmentProcessAmount/index.vue | 6 +- 2 files changed, 63 insertions(+), 39 deletions(-) diff --git a/src/views/core/analysis/balanceAnalysis/index.vue b/src/views/core/analysis/balanceAnalysis/index.vue index 8ce3b630..1898ec7b 100644 --- a/src/views/core/analysis/balanceAnalysis/index.vue +++ b/src/views/core/analysis/balanceAnalysis/index.vue @@ -11,10 +11,9 @@ @tab-click="handleTabClick" style="height: 100%"> - - - - @@ -98,6 +93,11 @@ export default { startTime: null, endTime: null, }, + sectionMap: {}, + lastSection: null, + currRowIndex: 0, + spanArr: [], + ready: false, }; }, @@ -156,8 +156,11 @@ export default { const { data, nameData } = await this.getCT(); await this.buildProps(nameData); await this.buildTableData(data); - const xxxx = this.tableData; - debugger; + this.tableData = this.tableData.sort((a, b) => { + if (a.sectionName < b.sectionName) return 1; + return -1; + }); + this.ready = true; }, buildProps(nameData) { @@ -208,38 +211,60 @@ export default { }, async buildTableData(data) { - /** 处理 工段 分组 */ - const sectionList = data.map((item) => {}); - }, + const sectionArr = Array.from( + new Set(data.map((item) => item.sectionName)) + ).sort(); + this.sectionMap = sectionArr.reduce( + (sum, curr) => ({ ...sum, [curr]: 0 }), + {} + ); + this.spanArr = Array.from(sectionArr, () => 0); - setRowSpan(arr) { - let count = 0; - arr.forEach((item, index) => { - if (index === 0) { - this.spanArr.push(1); - } else { - if (item === arr[index - 1]) { - this.spanArr[count] += 1; - this.spanArr.push(0); - } else { - count = index; - this.spanArr.push(1); - } + return new Promise((resolve, reject) => { + /** 处理 工段 分组 */ + data.map((item) => { + this.sectionMap[item.sectionName]++; + /** 处理 设备 */ + const row = { + equName: item.equName, + sectionName: item.sectionName, + }; + item.data.forEach((eq) => { + const date = eq.dynamicName; + eq.children.forEach((sub) => { + if (sub.dynamicName == '设备CT') + row[date + '_eq_ct'] = sub.dynamicValue; + if (sub.dynamicName == '设备TT') + row[date + '_eq_tt'] = sub.dynamicValue; + if (sub.dynamicName == '产线CT') + row[date + '_pl_ct'] = sub.dynamicValue; + if (sub.dynamicName == '产线TT') + row[date + '_pl_tt'] = sub.dynamicValue; + }); + }); + this.tableData.push(row); + }); + + /** 生成span数组 */ + const tmp = [0]; + for (const [index, key] of sectionArr.entries()) { + tmp[index + 1] = tmp[index] + this.sectionMap[key]; } + + console.log('tep', tmp); + this.spanArr = tmp; + resolve(); }); }, - /** 合并table列的规则 */ - mergeColumnHandler({ row, column, rowIndex, columnIndex }) { - if (columnIndex == 0) { - if (this.spanArr[rowIndex]) { - return [ - this.spanArr[rowIndex], // row span - 1, // col span - ]; - } else { - return [0, 0]; + mergeRow({ row, column, rowIndex, columnIndex }) { + if (columnIndex == 1) { + const span = this.sectionMap[row.sectionName]; + if (this.spanArr.includes(rowIndex)) { + console.log('span...'); + return [span, 1]; } + return [0, 0]; } }, @@ -319,6 +344,7 @@ export default { // this.dataListLoading = false; }); }, + handleSearchBarBtnClick(btn) { switch (btn.btnName) { case 'search': diff --git a/src/views/monitoring/equipmentProcessAmount/index.vue b/src/views/monitoring/equipmentProcessAmount/index.vue index 0848b288..d61257dc 100644 --- a/src/views/monitoring/equipmentProcessAmount/index.vue +++ b/src/views/monitoring/equipmentProcessAmount/index.vue @@ -33,7 +33,7 @@ :data-value="fc.id" class="factory-list__item" :class="{ 'is-current': fc.id == currentFactory?.id }"> - + {{ fc.label }} -
+