From 46e0fbbed9133f774a933c145c4df87d1018ce87 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期二, 01 七月 2025 15:40:58 +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