From 49a74a67140e814bb70efcde61b37d4750448e6a Mon Sep 17 00:00:00 2001 From: zhuzhuanzhuan Date: 星期二, 14 五月 2024 16:39:01 +0800 Subject: [PATCH] 1、设备加工工件报表页面调整表格唯一标识字段由equipmentId调整为id以试图解决项目服务器上表格数据混乱问题 2、设备利用率、设备开动率、班次利用率以及设备综合效率分析页面调整设备类型、驱动类型、设备级别以及设备种类页面组件为多选下拉菜单 --- src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue | 163 +++++++++----- src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue | 184 +++++++++------- src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue | 167 +++++++++----- src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue | 2 src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue | 139 ++++++++--- 5 files changed, 410 insertions(+), 245 deletions(-) diff --git a/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue b/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue index 919c302..3071fe1 100644 --- a/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue +++ b/src/views/mdc/base/modules/DeviceProcessReport/DeviceProcessReportList.vue @@ -57,7 +57,7 @@ </div> <div class="container" id="EfficiencyShift" style="flex:1;overflow: hidden"> - <a-table :columns="columns" rowKey="equipmentId" :dataSource="dataSource" :scroll="{x:'max-content',y:scrollY}" + <a-table :columns="columns" rowKey="id" :dataSource="dataSource" :scroll="{x:'max-content',y:scrollY}" :pagination="false" bordered> <span slot="duration" slot-scope="text">{{getFormattedTime(text)}}</span> </a-table> diff --git a/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue index a364dab..c25e547 100644 --- a/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue +++ b/src/views/mdc/base/modules/OEEAnalysis/OEEAnalysisList.vue @@ -5,37 +5,68 @@ <div class="table-page-search-wrapper"> <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> - <a-col :md="4" :sm="4" :xs="4"> + <a-col :md="5" :sm="5" :xs="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 in equipmentTypeList" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :md="5" :sm="5" :xs="5"> + <a-form-item label="椹卞姩绫诲瀷"> + <a-select + :value="queryParams.driveType" + mode="multiple" + placeholder="璇烽�夋嫨椹卞姩绫诲瀷" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'driveType')" + > + <a-select-option v-for="item in driveTypeList" :value="item.value"> + {{item.label}} </a-select-option> </a-select> </a-form-item> </a-col> <a-col :md="4" :sm="4" :xs="4"> - <a-form-item label="椹卞姩绫诲瀷"> - <a-auto-complete - v-model="queryParam.driveType" - :data-source="driveTypeList" - placeholder="璇烽�夋嫨椹卞姩绫诲瀷" - :filter-option="filterOption" - :allowClear="true" - /> - </a-form-item> - </a-col> - <a-col :md="4" :sm="4" :xs="4"> <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 in device_level_list" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> </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_category" v-model="queryParam.deviceCategory" - allow-clear/> + <a-select + :value="queryParams.deviceCategory" + mode="multiple" + placeholder="璇烽�夋嫨璁惧绉嶇被" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'deviceCategory')" + > + <a-select-option v-for="item in device_category_list" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> </a-form-item> </a-col> <a-col :md="5" :sm="5" :xs="5"> @@ -108,16 +139,18 @@ pageSize: 10000, pageNo: 1 }, + queryParams: { + equipmentType: [], + driveType: [], + deviceLevel: [], + deviceCategory: [] + }, queryParamEquip: {}, queryParamPeople: {}, url: { list: '/mdc/mdcOverallEquipmentEfficiency/list', - initShiftList: '/mdc/mdcMdcShift/initShiftList', - initShiftSubList: '/mdc/mdcShiftSub/initShiftSubList', queryEquipmentType: '/mdc/mdcEquipmentType/queryEquipmentType' }, - shiftList: [], - shiftSubList: [], columns: [ { title: '搴忓彿', @@ -302,7 +335,9 @@ ], dataSource: [], driveTypeList: [], - selectList: [], + equipmentTypeList: [], + device_level_list: [], + device_category_list: [], scrollY: 465, tableLoading: false } @@ -323,6 +358,8 @@ this.loadData() this.getDriveTypeByApi() this.queryGroup() + this.initDictData('device_level') + this.initDictData('device_category') }, mounted() { window.addEventListener('resize', this.handleWindowResize) @@ -362,22 +399,31 @@ } } }, - filters: { - numFilter(value) { - if (value) { - return parseFloat((value * 100).toFixed(2)) - } else { - return '0' - } - } - }, 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 + }, dateParamChange(value) { console.log('dateParamChangeValue', value) this.dates = value this.queryParam.startTime = moment(this.dates[0]).format('YYYY-MM') this.queryParam.endTime = moment(this.dates[1]).format('YYYY-MM') }, + handleDateChange(value) { console.log('handleDateChangeValue', value) if (!value.length) { @@ -385,31 +431,6 @@ delete this.queryParam.endTime this.dates = [] } - }, - initShiftList() { - getAction(this.url.initShiftList).then((res) => { - if (res.success) { - this.shiftList = res.result - } - }) - }, - - initShiftSubList(val) { - //姣忔閲嶆柊閫夋嫨鐝埗鏃剁彮娆℃竻绌轰笖鏄剧ずplaceholder鍐呭 - this.queryParam.shiftSubId = undefined - getAction(this.url.initShiftSubList, { shiftId: val }).then((res) => { - if (res.success) { - this.shiftSubList = res.result - } - }) - }, - - initShiftSubListChange() { - getAction(this.url.initShiftSubList, { shiftId: this.queryParam.shiftId }).then((res) => { - if (res.success) { - this.shiftSubList = res.result - } - }) }, exportExcel() { @@ -432,16 +453,25 @@ this.queryParam.parentId = this.queryParamPeople.parentId this.queryParam.equipmentId = '' } - - - this.queryParam.pageNo = 1 + 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.queryParam = { pageSize: 10000, - pageNo: 1 + pageNo: 1, + typeTree: 1 + } + this.queryParams = { + equipmentType: [], + driveType: [], + deviceLevel: [], + deviceCategory: [] } this.dates = [] this.loadData() @@ -452,26 +482,25 @@ */ getDriveTypeByApi() { api.getDriveTypeApi().then((res) => { - this.driveTypeList = res.result.map(item => item.value) + if (res.success) this.driveTypeList = res.result }) }, 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 }) }, @@ -507,17 +536,6 @@ handlePageSizeChange(current, size) { this.queryParam.pageSize = size this.loadData() - }, - /** - * 鑱旀兂杈撳叆妗嗙瓫閫夊姛鑳� - * @param input 杈撳叆鐨勫唴瀹� - * @param option 閰嶇疆 - * @returns {boolean} 鍒ゆ柇鏄惁绛涢�� - */ - filterOption(input, option) { - return ( - option.componentOptions.children[0].text.toUpperCase().indexOf(input.toUpperCase()) >= 0 - ) }, /** diff --git a/src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue b/src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue index f06041d..5c0aaa0 100644 --- a/src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue +++ b/src/views/mdc/base/modules/efficiencyPOReport/EfficiencyPOList.vue @@ -5,42 +5,73 @@ <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 in equipmentTypeList" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :md="5" :sm="5"> + <a-form-item label="椹卞姩绫诲瀷"> + <a-select + :value="queryParams.driveType" + mode="multiple" + placeholder="璇烽�夋嫨椹卞姩绫诲瀷" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'driveType')" + > + <a-select-option v-for="item in driveTypeList" :value="item.value"> + {{item.label}} </a-select-option> </a-select> </a-form-item> </a-col> <a-col :md="4" :sm="4"> - <a-form-item label="椹卞姩绫诲瀷"> - <a-auto-complete - v-model="queryParam.driveType" - :data-source="driveTypeList" - placeholder="璇烽�夋嫨椹卞姩绫诲瀷" - :filter-option="filterOption" - :allowClear="true" - /> - </a-form-item> - </a-col> - <a-col :md="6" :sm="6"> <a-form-item label="鏃堕棿"> <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" 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 in device_level_list" :value="item.value"> + {{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-select + :value="queryParams.deviceCategory" + mode="multiple" + placeholder="璇烽�夋嫨璁惧绉嶇被" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'deviceCategory')" + > + <a-select-option v-for="item in device_category_list" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> </a-form-item> </a-col> </a-row> @@ -172,12 +203,20 @@ typeParent:1, typeEquipment:1, dates: [], - selectList:[], + equipmentTypeList:[], + driveTypeList:[], + device_level_list: [], + device_category_list: [], queryParam: {}, + queryParams: { + equipmentType: [], + driveType: [], + deviceLevel: [], + deviceCategory: [] + }, queryParamEquip:{}, queryParamPeople:{}, identifying: [], - driveTypeList:[], efficiencyOptions: [ { label: '寮�鍔ㄧ巼', value: 'lyl' }, { label: '寮�鏈虹巼', value: 'kjl' }, @@ -207,6 +246,8 @@ this.loadData() this.queryGroup() this.getDriveTypeByApi() + this.initDictData('device_level') + this.initDictData('device_category') }, mounted() { window.addEventListener('resize', this.handleWindowResize) @@ -265,6 +306,23 @@ }, }, 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鐨勪笅鏍� @@ -420,22 +478,19 @@ this.checkedList = checkedList }, searchQuery() { - 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 @@ -449,11 +504,13 @@ this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD') this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD') // this.ipagination.current = 1 + this.queryParams = { + equipmentType: [], + driveType: [], + deviceLevel: [], + deviceCategory: [] + } this.loadData(); - // this.queryParam = {} - // this.dates = [] - // this.loadData() - // this.onClearSelected() }, loadData() { this.spinning=true @@ -483,10 +540,12 @@ 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({ @@ -504,20 +563,8 @@ */ 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 - ); }, /** diff --git a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue index dc29ab6..92f7e39 100644 --- a/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue +++ b/src/views/mdc/base/modules/efficiencyReport/EfficiencyList.vue @@ -6,44 +6,74 @@ <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 in equipmentTypeList" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> + </a-form-item> + </a-col> + <a-col :md="5" :sm="5"> + <a-form-item label="椹卞姩绫诲瀷"> + <a-select + :value="queryParams.driveType" + mode="multiple" + placeholder="璇烽�夋嫨椹卞姩绫诲瀷" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'driveType')" + > + <a-select-option v-for="item in driveTypeList" :value="item.value"> + {{item.label}} </a-select-option> </a-select> </a-form-item> </a-col> <a-col :md="4" :sm="4"> - <a-form-item label="椹卞姩绫诲瀷"> - <a-auto-complete - v-model="queryParam.driveType" - :data-source="driveTypeList" - placeholder="璇烽�夋嫨椹卞姩绫诲瀷" - :filter-option="filterOption" - :allowClear="true" - /> - </a-form-item> - </a-col> - <a-col :md="6" :sm="6"> <a-form-item label="鏃堕棿"> <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" 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 in device_level_list" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> </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_category" - v-model="queryParam.deviceCategory" - allow-clear/> + <a-select + :value="queryParams.deviceCategory" + mode="multiple" + placeholder="璇烽�夋嫨璁惧绉嶇被" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'deviceCategory')" + > + <a-select-option v-for="item in device_category_list" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> </a-form-item> </a-col> </a-row> @@ -203,11 +233,18 @@ TreeIDTwo: 2, deviceTypeDict: '', dates: [], - selectList: [], + equipmentTypeList: [], driveTypeList: [], + device_level_list: [], + device_category_list: [], identifying: [], queryParam: {}, - queryParams: {}, + queryParams: { + equipmentType: [], + driveType: [], + deviceLevel: [], + deviceCategory: [] + }, queryParamEquip: {}, queryParamPeople: {}, efficiencyOptions: [ @@ -246,6 +283,8 @@ this.loadData() this.queryGroup() this.getDriveTypeByApi() + this.initDictData('device_level') + this.initDictData('device_category') }, mounted() { window.addEventListener('resize', this.handleWindowResize) @@ -305,6 +344,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鐨勪笅鏍� @@ -461,23 +517,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 +542,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 +566,7 @@ if (res.result.mdcEfficiencyList && !res.result.mdcEfficiencyList.length) { this.$notification.info({ message: '娑堟伅', - description: '鏆傛棤璇ヨ澶囩被鍨嬫暟鎹�' + description: '鏆傛棤璇ョ被鍨嬫暟鎹�' }) } this.distinguishColorList = res.result.utilizationRateList @@ -526,19 +584,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,20 +604,8 @@ */ 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 - ) }, /** diff --git a/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue b/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue index 5ff8dba..85f3870 100644 --- a/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue +++ b/src/views/mdc/base/modules/efficiencyShiftReport/EfficiencyShiftList.vue @@ -6,28 +6,39 @@ <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 in equipmentTypeList" :value="item.value"> + {{item.label}} </a-select-option> </a-select> </a-form-item> </a-col> - <a-col :md="4" :sm="4"> + <a-col :md="5" :sm="5"> <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 in driveTypeList" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> </a-form-item> </a-col> - <a-col :md="6" :sm="6" :xs="6"> + <a-col :md="4" :sm="4" :xs="4"> <a-form-item label="鏃堕棿"> <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates" :allowClear="false"/> @@ -66,17 +77,36 @@ </a-row> <a-row :gutter="24" v-if="toggleSearchStatus"> - <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 in device_level_list" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> </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_category" - v-model="queryParam.deviceCategory" - allow-clear/> + <a-select + :value="queryParams.deviceCategory" + mode="multiple" + placeholder="璇烽�夋嫨璁惧绉嶇被" + allow-clear + :maxTagCount="1" + @change="selectChange($event,'deviceCategory')" + > + <a-select-option v-for="item in device_category_list" :value="item.value"> + {{item.label}} + </a-select-option> + </a-select> </a-form-item> </a-col> </a-row> @@ -220,10 +250,18 @@ allowClear: true, allowClearSu: true, dates: [], - selectList: [], + equipmentTypeList: [], driveTypeList: [], + device_level_list: [], + device_category_list: [], identifying: [], queryParam: {}, + queryParams: { + equipmentType: [], + driveType: [], + deviceLevel: [], + deviceCategory: [] + }, queryParamEquip: {}, queryParamPeople: {}, efficiencyOptions: [ @@ -265,6 +303,8 @@ this.loadData() this.queryGroup() this.getDriveTypeByApi() + this.initDictData('device_level') + this.initDictData('device_category') }, mounted() { window.addEventListener('resize', this.handleWindowResize) @@ -324,6 +364,23 @@ } }, 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鐨勪笅鏍� @@ -509,6 +566,11 @@ this.queryParam.parentId = this.queryParamPeople.parentId this.queryParam.equipmentId = '' } + 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() // this.onClearSelected() }, @@ -523,6 +585,12 @@ this.queryParam.typeTree = this.typeTree this.queryParam.parentId = this.typeParent this.queryParam.equipmentId = this.typeEquipment + this.queryParams = { + equipmentType: [], + driveType: [], + deviceLevel: [], + deviceCategory: [] + } this.loadData() // this.onClearSelected() }, @@ -537,7 +605,7 @@ if (res.result.mdcEfficiencyList && !res.result.mdcEfficiencyList.length) { this.$notification.info({ message: '娑堟伅', - description: '鏆傛棤璇ヨ澶囩被鍨嬫暟鎹�' + description: '鏆傛棤璇ョ被鍨嬫暟鎹�' }) } this.checkSameData(this.dataList) @@ -553,19 +621,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 }) }, @@ -574,20 +641,8 @@ */ 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 - ) }, /** -- Gitblit v1.9.3