From a751e547d67c4f8e2c6fddf958c1559f792515bd Mon Sep 17 00:00:00 2001 From: lyh <925863403@qq.com> Date: 星期五, 27 六月 2025 16:11:50 +0800 Subject: [PATCH] 添加工作流 --- src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue | 97 +++++++++++++++++++++++++++++++++++++----------- 1 files changed, 74 insertions(+), 23 deletions(-) diff --git a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue index 8acbf86..71f489c 100644 --- a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue +++ b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue @@ -38,7 +38,9 @@ </a-col> <a-col :md="6" :sm="6"> <a-form-item label="鏃堕棿"> - <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" + <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" + @calendarChange="handleCalendarChange" @openChange="handleCalendarOpenChange" + format="YYYYMMDD" v-model="dates" :allowClear="false"/> </a-form-item> </a-col> @@ -95,8 +97,13 @@ <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button> <a-button type="primary" @click="exportExcel" icon="download">瀵煎嚭</a-button> - <!--<a-button type="primary" @click="exportOneYearExcel('璁惧TEEP')" icon="download">澶ф暟鎹鍑�</a-button>--> - <a-button type="primary" @click="handleShowFeedbackModal" icon="plus" v-has="'efficiency:feedback'">寮傚父鍙嶉</a-button> + <a-button type="primary" @click="exportLongTimeExcel('璁惧TEEP')" icon="download" + :loading="longTimeExportButtonLoading"> + 澶ф暟鎹鍑� + </a-button> + <a-button type="primary" @click="handleShowFeedbackModal" icon="plus" v-has="'efficiency:feedback'"> + 寮傚父鍙嶉 + </a-button> <a-button type="primary" icon="printer" v-print="'#Efficiency'" v-has="'efficiency:print'">鎵撳嵃 </a-button> @@ -275,7 +282,7 @@ list: '/mdc/efficiencyReport/efficiencyList', listByType: '/mdc/MdcUtilizationRate/getByType', queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType', - exportOneYearXlsUrl: '' + exportLongTimeXlsUrl: '/mdc/efficiencyReport/exportEfficiencyXls' }, tableHeads: [], utilizationRateRowAverage: '', @@ -289,7 +296,9 @@ requestAllDataSize: 8,// 鎬诲叡璇锋眰鐨勫垪琛ㄩ」鏁扮洰(榛樿鍊间负榛樿鏃ユ湡鐨勫樊鍊�+1) everyRequestDataSize: 15,// 姣忔璇锋眰鐨勫垪琛ㄩ」鏁扮洰 toggleSearchStatus: false, - modalVisible: false// 寮傚父鍙嶉寮圭獥鏄惁寮瑰嚭 + modalVisible: false,// 寮傚父鍙嶉寮圭獥鏄惁寮瑰嚭 + preSelectFirstDate: null, + longTimeExportButtonLoading: false } }, props: { nodeTree: '', Type: '', nodePeople: '' }, @@ -469,10 +478,42 @@ } return list }, - disabledDate(current) { - //Can not slect days before today and today - return current && current > moment().subtract('days', 1) + + dateParamChange(v1, v2) { + this.queryParam.startTime = v2[0] + this.queryParam.endTime = v2[1] }, + + /** + * 鏃堕棿閫夋嫨鍣ㄩ潰鏉夸笂鐨勫�煎彂鐢熸敼鍙樻椂瑙﹀彂 + * @param dates 闈㈡澘涓婄殑涓や釜鍊肩粍鎴愮殑鏁扮粍 + */ + handleCalendarChange(dates) { + if (dates.length === 1) this.preSelectFirstDate = dates[0] + }, + + /** + * 鎺у埗鏃堕棿閫夋嫨鍣ㄩ潰鏉垮紑鍚笌鍏抽棴 + * @param status 寮�鍚姸鎬� + */ + handleCalendarOpenChange(status) { + if (status) this.preSelectFirstDate = null + }, + + /** + * 闈㈡澘涓婄姝㈤�夋嫨鐨勬棩鏈� + * @param current 绂佹鐨勬椂闂磋寖鍥� + */ + disabledDate(current) { + if (!this.preSelectFirstDate) { + return current > moment().startOf('days') + } else { + return current < moment(this.preSelectFirstDate).subtract(365, 'days').startOf('days') + || current > moment().startOf('days') + || current > moment(this.preSelectFirstDate).add(365, 'days').endOf('days') + } + }, + exportExcel() { $('#Efficiency').table2excel({ exclude: '.noExl', @@ -484,10 +525,22 @@ exclude_inputs: false }) }, - exportOneYearExcel(fileName) { - // let param = this.getQueryParams() - // console.log('瀵煎嚭鍙傛暟', param) - downFile(this.url.exportOneYearXlsUrl) + exportLongTimeExcel(fileName) { + let param = { + startTime: moment(this.dates[0]).format('YYYYMMDD'), + endTime: moment(this.dates[1]).format('YYYYMMDD') + } + Object.keys(this.queryParams).forEach(item => { + if (Array.isArray(this.queryParams[item])) { + param[item] = this.queryParams[item].join() + // 姝ゅ涓轰繚璇佹帴鍙e弬鏁颁笉澶氫綑锛屽彲鐪佺暐 + if (this.queryParams[item].length === 0) delete param[item] + } + }) + param = Object.assign({}, this.queryParam, param) + + this.longTimeExportButtonLoading = true + downFile(this.url.exportLongTimeXlsUrl, param) .then((data) => { if (!data) { this.$notification.warning({ @@ -497,18 +550,25 @@ return } if (typeof window.navigator.msSaveBlob !== 'undefined') { - window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName + '.xls') + window.navigator.msSaveBlob(new Blob([data], { type: 'application/vnd.ms-excel' }), fileName + '.xlsx') } else { let url = window.URL.createObjectURL(new Blob([data], { type: 'application/vnd.ms-excel' })) let link = document.createElement('a') link.style.display = 'none' link.href = url - link.setAttribute('download', fileName + '.xls') + link.setAttribute('download', fileName + '.xlsx') document.body.appendChild(link) link.click() document.body.removeChild(link) //涓嬭浇瀹屾垚绉婚櫎鍏冪礌 window.URL.revokeObjectURL(url) //閲婃斁鎺塨lob瀵硅薄 } + }) + .finally(() => { + let timer = setTimeout(() => { + this.longTimeExportButtonLoading = false + clearTimeout(timer) + timer = null + }, 1000) }) }, showIdentifying() { @@ -517,11 +577,6 @@ this.identifying = res.result } }) - }, - dateParamChange(v1, v2) { - this.queryParam.startTime = v2[0] - this.queryParam.endTime = v2[1] - this.dates = [v1[0], v1[1]] }, efficiencyOptionsOnChange(checkedList) { this.checkedList = checkedList @@ -572,8 +627,6 @@ this.tableHeads = [] this.dataList = [] this.spinning = true - console.log('requestAllDataSize', this.requestAllDataSize) - console.log('everyRequestDataSize', this.everyRequestDataSize) // 鑻ユ棩鏈熼�夋嫨鍣ㄨ缃殑鏌ヨ璇锋眰鏁伴噺瓒呰繃15鏉″垯寮�鍚噿鍔犺浇 if (this.requestAllDataSize > this.everyRequestDataSize) { // 寮�鍚噿鍔犺浇鍚庡皢缁撴潫鏃ユ湡璁剧疆涓哄紑濮嬫棩鏈熶箣鍚庣殑14澶╋紝鍗冲厛鏌ヨ15澶╁唴鐨勬暟鎹� @@ -594,7 +647,6 @@ this.tableHeads = res.result.dates this.dataList = res.result.mdcEfficiencyList - console.log('dataList', this.dataList) this.checkSameData(this.dataList) this.checkSameData1(this.dataList) this.checkSameData2(this.dataList) @@ -631,7 +683,6 @@ .then(res => { if (res.success) { this.tableHeads = [...this.tableHeads.slice(0, -2), ...res.result.dates] - console.log('dataList', this.dataList) this.dataList.forEach(item1 => { res.result.mdcEfficiencyList.forEach(item2 => { if (item1.equipmentId === item2.equipmentId) { -- Gitblit v1.9.3