From a9f005e2af294c47d7cd1e4b6ed401bf65f5b080 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期二, 04 三月 2025 16:44:09 +0800 Subject: [PATCH] art: 所有设备 台账 二保工单 根据设备id查询二保工单,并过滤掉已完成和已取消的二保工单 --- src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue | 209 +++++++++++++++++++++++++++++++++++---------------- 1 files changed, 143 insertions(+), 66 deletions(-) diff --git a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue index 742d00d..faa9c8b 100644 --- a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue +++ b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue @@ -6,25 +6,36 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="4" :sm="4"> + <a-col :md="5" :sm="5"> <a-form-item label="璁惧绫诲瀷"> - <a-select placeholder="璇烽�夋嫨璁惧绫诲瀷" :triggerChange="true" v-model="queryParam.equipmentType" - :allowClear="true"> - <a-select-option v-for='item in selectList' :key='item.id' :value='item.equipmentTypeName'> - {{item.equipmentTypeName}} + <a-select + :value="queryParams.equipmentType" + mode="multiple" + placeholder="璇烽�夋嫨璁惧绫诲瀷" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'equipmentType')" + > + <a-select-option v-for="(item,index) in equipmentTypeList" :value="item.value" :key="index"> + {{item.label}} </a-select-option> </a-select> </a-form-item> </a-col> - <a-col :md="4" :sm="4"> + <a-col :md="6" :sm="6"> <a-form-item label="椹卞姩绫诲瀷"> - <a-auto-complete - v-model="queryParam.driveType" - :data-source="driveTypeList" + <a-select + :value="queryParams.driveType" + mode="multiple" placeholder="璇烽�夋嫨椹卞姩绫诲瀷" - :filter-option="filterOption" - :allowClear="true" - /> + allow-clear + :maxTagCount="1" + @change="selectChange($event,'driveType')" + > + <a-select-option v-for="(item,index) in driveTypeList" :value="item.value" :key="index"> + {{item.label}} + </a-select-option> + </a-select> </a-form-item> </a-col> <a-col :md="6" :sm="6"> @@ -33,17 +44,51 @@ v-model="dates" :allowClear="false"/> </a-form-item> </a-col> - <a-col :md="4" :sm="4" :xs="4"> + <a-col :md="5" :sm="5" :xs="5"> <a-form-item label="璁惧绾у埆"> - <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绾у埆" dictCode="device_level" v-model="queryParam.deviceLevel" - allow-clear/> + <a-select + :value="queryParams.deviceLevel" + mode="multiple" + placeholder="璇烽�夋嫨璁惧绾у埆" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'deviceLevel')" + > + <a-select-option v-for="(item,index) in device_level_list" :value="item.value" :key="index"> + {{item.label}} + </a-select-option> + </a-select> </a-form-item> </a-col> - <a-col :md="4" :sm="4" :xs="4"> - <a-form-item label="璁惧绉嶇被"> - <j-dict-select-tag placeholder="璇烽�夋嫨璁惧绉嶇被" dictCode="device_category" - v-model="queryParam.deviceCategory" - allow-clear/> + <a-col :md="2" :sm="2"> + <a + @click="toggleSearchStatus=!toggleSearchStatus" + @selectstart="$event.preventDefault()" + style="display: inline-block;height: 32px;line-height: 32px" + > + {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }} + <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> + </a> + </a-col> + </a-row> + + <a-row :gutter="24" v-if="toggleSearchStatus"> + + <a-col :md="5" :sm="5" :xs="5"> + <a-form-item label="閲嶈绋嬪害"> + <a-select + :value="queryParams.deviceImportanceLevel" + mode="multiple" + placeholder="璇烽�夋嫨璁惧閲嶈绋嬪害" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'deviceImportanceLevel')" + > + <a-select-option v-for="(item,index) in device_importance_level_list" :value="item.value" + :key="index"> + {{item.label}} + </a-select-option> + </a-select> </a-form-item> </a-col> </a-row> @@ -99,6 +144,8 @@ </th> <th class="thgu dong6 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">璁惧绫诲瀷 </th> + <th class="thgu dong7 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">璁惧鍨嬪彿 + </th> <!--<th rowspan="2">缁勫埆</th>--> <template v-for="(tableHead, index) in tableHeads"> <th class="timeth" :colspan="checkedList.length">{{tableHead}}</th> @@ -106,7 +153,7 @@ </tr> <tr class="thead notfixed gudingth"> <template v-for="(tableHead, index) in tableHeads"> - <th v-if="checkedList.indexOf('lyl') > -1">鍒╃敤鐜�(%)</th> + <th v-if="checkedList.indexOf('lyl') > -1">TEEP(%)</th> <th v-if="checkedList.indexOf('kjl') > -1">寮�鏈虹巼(%)</th> <th v-if="checkedList.indexOf('kjsj') > -1">寮�鏈烘椂闂�(灏忔椂)</th> <th v-if="checkedList.indexOf('jgsj') > -1">鍔犲伐鏃堕棿(灏忔椂)</th> @@ -143,11 +190,12 @@ {{item.equipmentName}} </td> <td class="tdgu5 kaitou">{{item.equipmentType}}</td> + <td class="tdgu6 kaitou">{{item.equipmentModel}}</td> </template> <!--鍚堣涓庡钩鍧囧�煎尯鍩�--> <template v-else> - <td colspan="6" class="tdgu kaitou">{{item.level1}}</td> + <td colspan="7" class="tdgu kaitou">{{item.level1}}</td> </template> <template v-for="(tableHead, index) in item.dataList"> @@ -203,15 +251,23 @@ TreeIDTwo: 2, deviceTypeDict: '', dates: [], - selectList: [], + equipmentTypeList: [], driveTypeList: [], + device_level_list: [], + device_category_list: [], identifying: [], queryParam: {}, - queryParams: {}, + queryParams: { + equipmentType: [], + driveType: [], + deviceLevel: [], + deviceCategory: [], + deviceImportanceLevel: [] + }, queryParamEquip: {}, queryParamPeople: {}, efficiencyOptions: [ - { label: '鍒╃敤鐜�', value: 'lyl' }, + { label: 'TEEP', value: 'lyl' }, { label: '寮�鏈虹巼', value: 'kjl' }, { label: '寮�鏈烘椂闂�', value: 'kjsj' }, { label: '鍔犲伐鏃堕棿', value: 'jgsj' }, @@ -233,7 +289,8 @@ processLongRowAverage: '', waitLongRowAverage: '', closeLongRowAverage: '', - spinning: false + spinning: false, + toggleSearchStatus: false } }, props: { nodeTree: '', Type: '', nodePeople: '' }, @@ -246,6 +303,9 @@ this.loadData() this.queryGroup() this.getDriveTypeByApi() + this.initDictData('device_level') + this.initDictData('device_category') + this.initDictData('device_importance_level') }, mounted() { window.addEventListener('resize', this.handleWindowResize) @@ -305,6 +365,23 @@ }, computed: {}, methods: { + initDictData(dictCode) { + // //浼樺厛浠庣紦瀛樹腑璇诲彇瀛楀吀閰嶇疆 + if (getDictItemsFromCache(dictCode)) { + this[dictCode + '_list'] = getDictItemsFromCache(dictCode) + return + } + //鏍规嵁瀛楀吀Code, 鍒濆鍖栧瓧鍏告暟缁� + ajaxGetDictItems(dictCode, null).then((res) => { + if (res.success) { + this[dictCode + '_list'] = res.result + return + } + }) + }, + selectChange(value, key) { + this.queryParams[key] = value + }, checkSameData(dataList) { let cache = {} //瀛樺偍鐨勬槸閿槸kclx 鐨勫�硷紝鍊兼槸kclx 鍦╥ndeces涓暟缁勭殑涓嬫爣 let indices = [] //鏁扮粍涓瘡涓�涓�兼槸涓�涓暟缁勶紝鏁扮粍涓殑姣忎竴涓厓绱犳槸鍘熸暟缁勪腑鐩稿悓kclx鐨勪笅鏍� @@ -427,7 +504,7 @@ $('#Efficiency').table2excel({ exclude: '.noExl', name: 'Excel Document Name', - filename: '璁惧鍒╃敤鐜�', + filename: '璁惧TEEP', exclude_img: true, fileext: '.xls', exclude_links: true, @@ -461,23 +538,19 @@ this.checkedList = checkedList }, searchQuery() { - console.log('dates', this.dates) - if (this.dates != '') { - if (this.queryParam.typeTree == '1') { - this.queryParam.parentId = this.queryParamEquip.parentId - this.queryParam.equipmentId = this.queryParamEquip.equipmentId - } else { - this.queryParam.parentId = this.queryParamPeople.parentId - this.queryParam.equipmentId = '' - } - this.loadData() + if (this.queryParam.typeTree == '1') { + this.queryParam.parentId = this.queryParamEquip.parentId + this.queryParam.equipmentId = this.queryParamEquip.equipmentId } else { - this.$notification.warning({ - message: '娑堟伅', - description: '璇烽�夋嫨鏃堕棿' - }) + this.queryParam.parentId = this.queryParamPeople.parentId + this.queryParam.equipmentId = '' } - // this.onClearSelected() + Object.keys(this.queryParams).forEach(item => { + this.queryParam[item] = this.queryParams[item].join() + // 姝ゅ涓轰繚璇佹帴鍙e弬鏁颁笉澶氫綑锛屽彲鐪佺暐 + if (this.queryParams[item].length === 0) delete this.queryParam[item] + }) + this.loadData() }, searchReset() { this.typeTree = this.queryParam.typeTree @@ -490,6 +563,12 @@ this.dates = [moment().subtract('days', 8), moment().subtract('days', 1)] this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD') this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') + this.queryParams = { + equipmentType: [], + driveType: [], + deviceLevel: [], + deviceCategory: [] + } // this.ipagination.current = 1 this.loadData() // this.queryParam = {} @@ -508,7 +587,7 @@ if (res.result.mdcEfficiencyList && !res.result.mdcEfficiencyList.length) { this.$notification.info({ message: '娑堟伅', - description: '鏆傛棤璇ヨ澶囩被鍨嬫暟鎹�' + description: '鏆傛棤璇ョ被鍨嬫暟鎹�' }) } this.distinguishColorList = res.result.utilizationRateList @@ -526,19 +605,18 @@ queryGroup() { getAction(this.url.queryEquipmentType).then(res => { if (res.success) { - this.selectList = res.result - // this.selectList = res.result.map((item, index, arr) => { - // return { label: item.id, value: item.equipmentTypeName + '' } - // }) + this.equipmentTypeList = res.result.map(item => { + return { + label: item.equipmentTypeName, + value: item.equipmentTypeName + } + }) } else { - // this.$message.warning(res.message) this.$notification.warning({ message: '娑堟伅', description: res.message }) } - }).finally(() => { - this.loading = false }) }, @@ -547,29 +625,17 @@ */ getDriveTypeByApi() { api.getDriveTypeApi().then((res) => { - this.driveTypeList = res.result.map(item => item.value) + if (res.success) this.driveTypeList = res.result }) - }, - - /** - * 鑱旀兂杈撳叆妗嗙瓫閫夊姛鑳� - * @param input 杈撳叆鐨勫唴瀹� - * @param option 閰嶇疆 - * @returns {boolean} 鍒ゆ柇鏄惁绛涢�� - */ - filterOption(input, option) { - return ( - option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 - ) }, /** * 鍒嗚鲸鐜囨敼鍙樻椂鍚屾椂鏀瑰彉琛ㄦ牸楂樺害宸蹭繚璇侀椤典竴杩涘叆涓嶆嫋鍔ㄥ瀭鐩存粴鍔ㄦ潯鏃跺嵆鍙嫋鍔ㄨ〃鏍兼按骞虫粴鍔ㄦ潯 */ handleWindowResize() { - const tableContainer = document.getElementById('Efficiency') - const clientHeight = document.body.clientHeight - const containerTopToClientTopHeight = tableContainer.getBoundingClientRect().top + const tableContainer = document.getElementById('Efficiency') // 琛ㄦ牸瀹瑰櫒 + const clientHeight = document.documentElement.clientHeight || document.body.clientHeight // 娴忚鍣ㄥ彲瑙嗗尯鍩熼珮搴� + const containerTopToClientTopHeight = tableContainer.getBoundingClientRect().top // 琛ㄦ牸瀹瑰櫒椤堕儴鍒版祻瑙堝櫒鍙鍖哄煙椤堕儴鐨勯棿璺� tableContainer.style.height = (clientHeight - containerTopToClientTopHeight - 32) + 'px' } } @@ -632,6 +698,12 @@ z-index: 2; } + .table tbody tr .tdgu6 { + position: sticky; + left: 512px; + z-index: 2; + } + .table2 thead tr .timeth, .table2 thead tr .thgu { position: sticky; @@ -679,6 +751,11 @@ left: 412px; } + .table2 thead .equipname .dong7 { + z-index: 5; + left: 512px; + } + #Efficiency { overflow: hidden; } -- Gitblit v1.9.3