From 8e75a78f55d60565eb48b25eafd4eb07939ce2cc Mon Sep 17 00:00:00 2001 From: zenglf <18502938215@163.com> Date: 星期四, 28 九月 2023 14:09:05 +0800 Subject: [PATCH] Merge branch 'master' into develop --- src/views/mdc/base/modules/equipmentAvailCompare/equipmentAvailCompareMain.vue | 512 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 512 insertions(+), 0 deletions(-) diff --git a/src/views/mdc/base/modules/equipmentAvailCompare/equipmentAvailCompareMain.vue b/src/views/mdc/base/modules/equipmentAvailCompare/equipmentAvailCompareMain.vue new file mode 100644 index 0000000..fd413b7 --- /dev/null +++ b/src/views/mdc/base/modules/equipmentAvailCompare/equipmentAvailCompareMain.vue @@ -0,0 +1,512 @@ +<template> + <a-card :bordered="false" class="device_list"> + <div class="com_box"> + <!-- 鏌ヨ鍖哄煙 --> + <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :md="4" :sm="4"> + <a-form-item label="璁惧缂栧彿"> + <a-input placeholder="杈撳叆璁惧缂栧彿鏌ヨ" :readOnly="readOnly" v-model="queryParams.equipmentId"></a-input> + </a-form-item> + </a-col> + <a-col :md="4" :sm="4"> + <a-form-item label="璁惧鍚嶇О"> + <a-input placeholder="杈撳叆璁惧鍚嶇О鏌ヨ" :readOnly="readOnly" v-model="queryParams.equipmentName"></a-input> + </a-form-item> + </a-col> + <a-col :md="5" :sm="5" :xs="5"> + <a-form-item label="鏃堕棿"> + <a-range-picker @change="dateParamChange" v-model="dates" format="YYYYMMDD"/> + </a-form-item> + </a-col> + <a-col :md="7" :sm="7" :xs="7"> + <a-form-item label="鏃堕棿娈�"> + <a-time-picker :default-value="moment('00:00', 'HH:mm')" format="HH:mm" @change="onChangeStart" /> + 鑷� + <a-time-picker :default-value="moment('08:00', 'HH:mm')" format="HH:mm" @change="onChangeEnd" /> + </a-form-item> + </a-col> + <a-col :md="2" :sm="3" :xs="3"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + </a-col> + <!--<a-col :md="2" :sm="2" :xs="2">--> + <!--<a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button>--> + <!--</a-col>--> + </a-row> + </a-form> + </div> + <!-- table鍖哄煙-begin --> + <div id="DeviceList"> + + <div style="padding: 5px;width: 100%;height: 100%"> + <div style="width: 100%;height: 100%" id="dayAvailBar"></div> + <!--<div id="dayAvailLine"></div>--> + </div> + </div> + <!-- table鍖哄煙-end --> + </div> + </a-card> +</template> + +<script> + import moment from 'moment' + import $ from 'jquery' + import JDictSelectTag from '@/components/dict/JDictSelectTag' + import JDate from '../../../../../components/jeecg/JDate' + import { + requestPut, + deleteAction, + getAction + } from '@/api/manage' + // import comparativeAnalysisBar from './comparativeAnalysisBar' + // import comparativeAnalysisGauge from'./comparativeAnalysisGauge' + // import conparativeAnalysisPie from './conparativeAnalysisPie' + import '@/components/table2excel/table2excel' + import JInput from '@/components/jeecg/JInput' + import JEllipsis from '@/components/jeecg/JEllipsis' + import Tooltip from 'ant-design-vue/es/tooltip' + import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api' + import AFormItem from 'ant-design-vue/es/form/FormItem' + export default { + name: 'equipmentAvailCompareMain', + // mixins: [JeecgListMixin], + components: { + AFormItem, + Tooltip, + // comparativeAnalysisBar, + // comparativeAnalysisGauge, + // conparativeAnalysisPie, + JDictSelectTag, + JInput, + JDate, + JEllipsis + }, + props: { nodeTree: '', Type:'',nodePeople: '' }, + data() { + return { + activeKey: '1', + typeTree:"", + typeParent:1, + typeEquipment:1, + spaceTime:[], + useingRates:[], + dates: [], + xianshi:"", + readOnly:true, + queryParam: { + // dateTime:undefined, + // timeType:'2' + }, + queryParams:{}, + queryParamEquip:{}, + queryParamPeople:{}, + dataStartsoucre:[], + url: { + dayUtilizationRateContrast:'/mdc/efficiencyReport/dayUtilizationRateContrast', + getEquipmentByPid: '/mdc/mdcEquipment/getEquipmentByPid', + getEquipmentByDepPid:'/mdc/mdcEquipment/getEquipmentByDepPid' + }, + AnalysisList:{} + } + }, + watch:{ + Type(valmath){ + this.dataList = []; + this.queryParams.typeTree = valmath + // console.log(this.queryParams.typeTree) + }, + nodeTree(val) { //鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢 + if (JSON.stringify(val) != '{}') { + if (val.equipmentId) { + // this.$set(this.queryParam, 'tierName', val.title) + this.queryParamEquip.parentId = "" + this.queryParams.equipmentId = val.equipmentId + this.queryParamEquip.equipmentId = val.equipmentId + this.searchQuery() + } else { + // this.$set(this.queryParam, 'tierName', val.title) + this.queryParamEquip.parentId = val.key + this.queryParams.equipmentId = '' + this.initEquipment(val.key) + } + + + } + }, + nodePeople(val){ + if (JSON.stringify(val) != '{}') { + if (val.equipmentId) { + // this.$set(this.queryParam, 'tierName', val.title) + this.queryParamEquip.parentId = "" + this.queryParams.equipmentId = val.equipmentId + this.queryParamEquip.equipmentId = val.equipmentId + this.searchQuery() + } else { + // this.$set(this.queryParam, 'tierName', val.title) + this.queryParamEquip.parentId = val.key + this.queryParams.equipmentId = '' + this.initEquipmentDep(val.key) + } + + } + } + }, + methods: { + drawTu(){ + let dayAvailBar = this.$echarts.init(document.getElementById('dayAvailBar'), 'macarons'); + //dayAvailLine = echarts.init(document.getElementById('dayAvailLine')); + let dayAvailBarOption = { + title: { + text: '璁惧鏃ュ埄鐢ㄧ巼鍥�', + x: 'center', + textStyle: { + fontSize: 18, + fontWeight: 'bolder', + color: "#151414" + } + }, + tooltip: { + trigger: 'axis', + formatter: "{a} <br/>{b} :({c}%)" + }, + toolbox: { + show: true, + feature: { + mark: {show: true}, + dataView: {show: true, readOnly: false}, + magicType: {show: true, type: ['line', 'bar']}, + restore: {show: true}, + saveAsImage: {show: true} + } + }, + calculable: true, //鏄惁鍚敤鎷栨嫿閲嶈绠楃壒鎬� + xAxis: [ + { + type: 'category', + name: '鏃堕棿鍒嗘', + boundaryGap: true, + data: this.spaceTime + } + ], + yAxis: [ + { + type: 'value', + name: '鍒╃敤鐜�' + } + ], + series: [ + { + name: '鍒╃敤鐜�', + type: 'line', + barWidth: 50, + itemStyle: { + normal: { + color: '#4169E1' + } + }, + data: this.useingRates, + markPoint: { + data: [ + {type: 'max', name: '鏈�澶у��', symbolSize: 70}, + {type: 'min', name: '鏈�灏忓��', symbolSize: 70} + ] + } + } + ] + }; + dayAvailBar.setOption(dayAvailBarOption); + }, + moment, + onChangeStart(time, timeString) { + this.queryParam.startTime = timeString + // console.log(time, timeString); + }, + onChangeEnd(time, timeString) { + this.queryParam.endTime = timeString + // console.log(time, timeString); + }, + disabledDate(current){ + //Can not slect days before today and today + return current && current > moment().subtract('days', 1); + }, + dataChange(val) { + this.queryParam.dateTime = val.format('YYYYMMDD') + }, + handleChange(value) { + this.queryParam.timeType = value + // console.log(this.queryParam.timeType) + }, + tabChange(val) { + this.activeKey = val + }, + dateParamChange(v1, v2) { + // console.log(v1,v2) + this.queryParam.startDate = v2[0] + this.queryParam.endDate = v2[1] + // console.log(v2[0],v2[1]) + }, + loadAnalysis(){ + getAction(this.url.dayUtilizationRateContrast,this.queryParam).then(res => { + if (res.success) { + this.spaceTime.push(res.result.dataList) + for(let i = 0;i<res.result.dayRateDto.length;i++){ + this.useingRates.push(res.result.dayRateDto[i].utilizationRate) + } + this.drawTu() + } else { + this.$message.warning(res.message) + } + }).finally(() => { + this.loading = false + }) + }, + numFilter(value) { + if (value) { + return parseFloat((value * 100).toFixed(2)) + } else { + return '0' + } + }, + searchQuery(){ + this.spaceTime = [] + this.useingRates = [] + if(this.queryParams.typeTree == "1"){ + this.queryParams.parentId = this.queryParamEquip.parentId + // this.queryParams.equipmentId = this.queryParamEquip.equipmentId + + }else{ + this.queryParams.parentId = this.queryParamEquip.parentId + + // this.queryParams.equipmentId = "" + } + this.AnalysisList = []; + //鑾峰彇鏌ヨ鏉′欢 + this.queryParam.parentId = this.queryParams.parentId; + this.queryParam.equipmentId = this.queryParams.equipmentId; + this.queryParam.typeTree = this.queryParams.typeTree + getAction(this.url.dayUtilizationRateContrast,this.queryParam).then((res) => { + if(res.success){ + this.spaceTime=res.result.dateList + for(let i = 0;i<res.result.dayRateDto.length;i++){ + // res.result[i].useRateDayShift = this.numFilter(res.result[i].useRateDayShift) + this.useingRates.push(this.numFilter(res.result.dayRateDto[i].utilizationRate)) + } + this.drawTu() + }else{ + // this.$message.warning(res.message) + this.$notification.warning({ + message:'娑堟伅', + description:res.message + }); + } + }).finally(() => { + this.loading = false + }) + }, + searchReset() { + this.spaceTime = [] + this.useingRates = [] + if(this.queryParams.typeTree == "1"){ + this.typeTree = this.queryParams.typeTree + this.typeParent = this.queryParams.parentId + this.typeEquipment = this.queryParams.equipmentId + this.queryParams = {} + this.queryParam = {} + this.queryParams.typeTree = this.typeTree + this.queryParams.parentId = this.typeParent + if(this.queryParams.parentId != ""){ + this.queryParams.equipmentId = "" + this.initEquipment() + }else{ + if(this.queryParams.equipmentId == this.queryParamEquip.equipmentId){ + this.queryParams.equipmentId = this.typeEquipment + }else{ + this.queryParams.equipmentId = this.queryParamEquip.equipmentId + } + } + getAction(this.url.dayUtilizationRateContrast,this.queryParams).then((res) => { + if(res.success){ + this.spaceTime=res.result.dateList + for(let i = 0;i<res.result.dayRateDto.length;i++){ + this.useingRates.push(this.numFilter(res.result.dayRateDto[i].utilizationRate)) + } + this.drawTu() + }else{ + // this.$message.warning(res.message) + this.$notification.warning({ + message:'娑堟伅', + description:res.message + }); + } + }).finally(() => { + this.loading = false + }) + }else{ + this.typeTree = this.queryParams.typeTree + this.typeParent = this.queryParams.parentId + this.typeEquipment = this.queryParams.equipmentId + this.queryParams = {} + this.queryParam = {} + this.dates = [] + this.queryParams.typeTree = this.typeTree + this.queryParams.parentId = this.typeParent + if(this.queryParams.parentId != ""){ + this.queryParams.equipmentId = "" + this.initEquipment() + }else{ + if(this.queryParams.equipmentId == this.queryParamEquip.equipmentId){ + this.queryParams.equipmentId = this.typeEquipment + }else{ + this.queryParams.equipmentId = this.queryParamEquip.equipmentId + } + } + getAction(this.url.dayUtilizationRateContrast,this.queryParams).then((res) => { + if(res.success){ + this.spaceTime=res.result.dateList + for(let i = 0;i<res.result.dayRateDto.length;i++){ + this.useingRates.push(this.numFilter(res.result.dayRateDto[i].utilizationRate)) + } + this.drawTu() + }else{ + // this.$message.warning(res.message) + this.$notification.warning({ + message:'娑堟伅', + description:res.message + }); + } + }).finally(() => { + this.loading = false + }) + } + + }, + initEquipment(id) { + let _this = this + getAction(this.url.getEquipmentByPid, { pid: id }).then((res) => { + if (res.success) { + if (res.result != null) { + _this.$set(this.queryParams, 'equipmentName', res.result.equipmentName) + _this.$set(this.queryParams, 'equipmentId', res.result.equipmentId) + _this.$set(this.queryParam, 'equipmentId', res.result.equipmentId) + _this.equipment = res.result + _this.searchQuery() + } else { + this.queryParams = {} + // this.queryList() + this.equipment = {} + // _this.$message.warning('璇疯仈绯荤鐞嗗憳锛屽紑鏀捐澶囨潈闄愶紒') + _this.$notification.warning({ + message:'娑堟伅', + description:'璇疯仈绯荤鐞嗗憳锛屽紑鏀捐澶囨潈闄愶紒' + }); + } + }else{ + // this.$message.warning(res.message) + _this.$notification.warning({ + message:'娑堟伅', + description:res.message + }); + } + }) + }, + initEquipmentDep(id) { + let _this = this + getAction(this.url.getEquipmentByDepPid, { pid: id }).then((res) => { + if (res.success) { + if (res.result != null) { + _this.$set(this.queryParams, 'equipmentName', res.result.equipmentName) + _this.$set(this.queryParams, 'equipmentId', res.result.equipmentId) + _this.$set(this.queryParam, 'equipmentId', res.result.equipmentId) + _this.equipment = res.result + _this.searchQuery() + } else { + this.queryParams = {} + // this.queryList() + this.equipment = {} + // _this.$message.warning('璇疯仈绯荤鐞嗗憳锛屽紑鏀捐澶囨潈闄愶紒') + _this.$notification.warning({ + message:'娑堟伅', + description:'璇疯仈绯荤鐞嗗憳锛屽紑鏀捐澶囨潈闄愶紒' + }); + } + }else{ + // this.$message.warning(res.message) + _this.$notification.warning({ + message:'娑堟伅', + description:res.message + }); + } + }) + } + }, + created() { + this.dates = [moment().subtract('days', 7), moment().subtract('days', 0)] + this.queryParam.startDate = moment(this.dates[0]).format('YYYYMMDD') + this.queryParam.endDate = moment(this.dates[1]).format('YYYYMMDD') + this.queryParam.startTime = '00:00' + this.queryParam.endTime = "08:00" + this.queryParams.typeTree = "1"; + + + }, + mounted() { + this.initEquipment() + }, + } +</script> + +<style lang="less" scoped> + /*@import '~@assets/less/common.less';*/ + + @media screen and (min-width: 1920px){ + .device_list{ + height: 811px!important; + overflow: scroll; + } + } + @media screen and (min-width: 1680px) and (max-width: 1920px){ + .device_list{ + height: 811px!important; + overflow: scroll; + } + } + @media screen and (min-width: 1400px) and (max-width: 1680px){ + .device_list{ + height: 663px!important; + overflow: scroll; + } + } + @media screen and (min-width: 1280px) and (max-width: 1400px){ + .device_list{ + height: 564px!important; + overflow: scroll; + } + } + @media screen and (max-width: 1280px){ + .device_list{ + height: 564px!important; + overflow: scroll; + } + } + /*.device_list{*/ + /*display: flex;*/ + /*}*/ + /*.device_list .table-page-search-wrapper{*/ + /**/ + /*}*/ + /deep/ .ant-card-body{ + height: 100%!important; + } + .device_list .com_box{ + display: flex!important; + height: 100%!important; + flex-direction: column!important; + } + .device_list .table-page-search-wrapper{ + height: 6%!important; + } + .device_list #DeviceList{ + height: 90%!important; + } +</style> -- Gitblit v1.9.3