¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :bordered="false"> |
| | | <div style="width: 100%; height: 100%;overflow: hidden"> |
| | | <a-row type="flex" :gutter="16"> |
| | | <a-col :md="5"> |
| | | <a-tabs :activeKey="activeKey" @change="tabChange"> |
| | | <a-tab-pane key="1" tab="车é´å±çº§" force-render> |
| | | <base-tree @getCurrSelected="changeSelectionNode"></base-tree> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="2" tab="é¨é¨å±çº§"> |
| | | <depart-tree @getCurrSelectedDD="changeSelectionNodedd" |
| | | ></depart-tree> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | <a-col :md="24-5" :sm="24"> |
| | | <equipment-avail-compare-main ref="equipmentDayAvailMain" :nodeTree='selectEquement' :nodePeople='selectPeople' :Type="slectTypeTree"></equipment-avail-compare-main> |
| | | </a-col> |
| | | </a-row> |
| | | </div> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTree from '../common/BaseTree' |
| | | import equipmentAvailCompareMain from './modules/equipmentAvailCompare/equipmentAvailCompareMain' |
| | | import DepartTree from './modules/DepartList/DepartListTree/DepartTree' |
| | | export default { |
| | | name: 'equipmentAvailCompare', |
| | | components:{ |
| | | BaseTree, |
| | | equipmentAvailCompareMain, |
| | | DepartTree |
| | | }, |
| | | data() { |
| | | return { |
| | | activeKey: '1', |
| | | description: '设å¤ä¿¡æ¯', |
| | | selectEquementId: '', |
| | | selectEquement: {}, |
| | | selectPeople:{}, |
| | | slectTypeTree: '', |
| | | url: { |
| | | equipmentStatistics: '/mdc/equipment/equipmentStatistics' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | tabChange(val) { |
| | | // console.log(val) |
| | | this.activeKey = val |
| | | this.slectTypeTree = val |
| | | }, |
| | | /* changeSelection(val) { |
| | | this.selectEquementId = val |
| | | this.$refs.DeviceRepairList.pQuery(val) |
| | | },*/ |
| | | changeSelectionNode(val) { |
| | | this.selectEquement = val |
| | | this.slectTypeTree = '1' |
| | | }, |
| | | changeSelectionNodedd(val) { |
| | | this.selectPeople = val |
| | | this.slectTypeTree = '2' |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-card :bordered="false"> |
| | | <div style="width: 100%; height: 100%;overflow: hidden"> |
| | | <a-row type="flex" :gutter="16"> |
| | | <a-col :md="5"> |
| | | <a-tabs :activeKey="activeKey" @change="tabChange"> |
| | | <a-tab-pane key="1" tab="车é´å±çº§" force-render> |
| | | <base-tree @getCurrSelected="changeSelectionNode"></base-tree> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="2" tab="é¨é¨å±çº§"> |
| | | <depart-tree @getCurrSelectedDD="changeSelectionNodedd" |
| | | ></depart-tree> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | <a-col :md="24-5" :sm="24"> |
| | | <equipment-day-avail-main ref="equipmentDayAvailMain" :nodeTree='selectEquement' :nodePeople='selectPeople' :Type="slectTypeTree"></equipment-day-avail-main> |
| | | </a-col> |
| | | </a-row> |
| | | </div> |
| | | </a-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseTree from '../common/BaseTree' |
| | | import equipmentDayAvailMain from './modules/equipmentDayAvail/equipmentDayAvailMain' |
| | | import DepartTree from './modules/DepartList/DepartListTree/DepartTree' |
| | | export default { |
| | | name: 'equipmentDayAvail', |
| | | components:{ |
| | | BaseTree, |
| | | equipmentDayAvailMain, |
| | | DepartTree |
| | | }, |
| | | data() { |
| | | return { |
| | | activeKey: '1', |
| | | description: '设å¤ä¿¡æ¯', |
| | | selectEquementId: '', |
| | | selectEquement: {}, |
| | | selectPeople:{}, |
| | | slectTypeTree: '', |
| | | url: { |
| | | equipmentStatistics: '/mdc/equipment/equipmentStatistics' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | tabChange(val) { |
| | | // console.log(val) |
| | | this.activeKey = val |
| | | this.slectTypeTree = val |
| | | }, |
| | | /* changeSelection(val) { |
| | | this.selectEquementId = val |
| | | this.$refs.DeviceRepairList.pQuery(val) |
| | | },*/ |
| | | changeSelectionNode(val) { |
| | | this.selectEquement = val |
| | | this.slectTypeTree = '1' |
| | | }, |
| | | changeSelectionNodedd(val) { |
| | | this.selectPeople = val |
| | | this.slectTypeTree = '2' |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | |
| | | </style> |
| | |
| | | url: { |
| | | add: '/mdc/mdcDeviceCalendar/add', |
| | | edit: '/mdc/mdcshiftsub/edit', |
| | | initShiftList: '/mdc/mdcMdcShift/deleteShift', |
| | | initShiftList: '/mdc/mdcMdcShift/initShiftList', |
| | | initShiftSubList: '/mdc/mdcshiftsub/initShiftSubList', |
| | | getShiftSubById: '/mdc/mdcshiftsub/getShiftSubById', |
| | | settingCalendar: '/mdc/mdcDeviceCalendar/add', |
| | |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="6" :sm="6"> |
| | | <a-form-item label="ééæ¶é´"> |
| | | <a-form-item label="æ¥æ"> |
| | | <a-date-picker v-model="queryParams.collectTime" :disabledDate="disabledDate" @change="dataChange" format='YYYY-MM-DD'/> |
| | | </a-form-item> |
| | | </a-col> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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: 'bar', |
| | | 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) |
| | | } |
| | | }).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) |
| | | } |
| | | }).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) |
| | | } |
| | | }).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('请è系管çåï¼å¼æ¾è®¾å¤æéï¼') |
| | | } |
| | | }else{ |
| | | this.$message.warning(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('请è系管çåï¼å¼æ¾è®¾å¤æéï¼') |
| | | } |
| | | }else{ |
| | | this.$message.warning(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"; |
| | | 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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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-date-picker v-model="queryParam.dateTime" :disabledDate="disabledDate" format='YYYYMMDD' @change="dataChange"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="4" :sm="4" :xs="4"> |
| | | <a-form-item label="é´é"> |
| | | <a-select default-value="2" style="width: 80px" v-model="queryParam.timeType"> |
| | | <a-select-option :value="2"> |
| | | 2 |
| | | </a-select-option> |
| | | <a-select-option :value="3"> |
| | | 3 |
| | | </a-select-option> |
| | | <a-select-option :value="4"> |
| | | 4 |
| | | </a-select-option> |
| | | <a-select-option :value="6"> |
| | | 6 |
| | | </a-select-option> |
| | | </a-select>å°æ¶ |
| | | </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' |
| | | export default { |
| | | name: 'equipmentDayAvailMain', |
| | | // mixins: [JeecgListMixin], |
| | | components: { |
| | | 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: { |
| | | comparativeAnalysis:'/mdc/efficiencyReport/comparativeAnalysis', |
| | | dayUtilizationRate:'/mdc/efficiencyReport/dayUtilizationRate', |
| | | 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: 'bar', |
| | | barWidth: 50, |
| | | itemStyle: { |
| | | normal: { |
| | | color: '#4169E1' |
| | | } |
| | | }, |
| | | data: this.useingRates, |
| | | markPoint: { |
| | | data: [ |
| | | {type: 'max', name: 'æå¤§å¼', symbolSize: 70}, |
| | | {type: 'min', name: 'æå°å¼', symbolSize: 70} |
| | | ] |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | dayAvailBar.setOption(dayAvailBarOption); |
| | | }, |
| | | 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.startTime = v2[0] |
| | | this.queryParam.endTime = v2[1] |
| | | // console.log(v2[0],v2[1]) |
| | | }, |
| | | loadAnalysis(){ |
| | | getAction(this.url.dayUtilizationRate,this.queryParam).then(res => { |
| | | if (res.success) { |
| | | this.spaceTime.push(res.result.dataList) |
| | | for(var i = 0;i<res.result.dayRateDto.length;i++){ |
| | | this.useingRates.push(res.result.dayRateDto[i].utilizationRate) |
| | | } |
| | | console.log(this,spaceTime) |
| | | 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.dayUtilizationRate,this.queryParam).then((res) => { |
| | | if(res.success){ |
| | | this.spaceTime=res.result.dateList |
| | | for(var 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) |
| | | } |
| | | }).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.dayUtilizationRate,this.queryParams).then((res) => { |
| | | if(res.success){ |
| | | this.spaceTime=res.result.dateList |
| | | for(var 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) |
| | | } |
| | | }).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.dayUtilizationRate,this.queryParams).then((res) => { |
| | | if(res.success){ |
| | | this.spaceTime=res.result.dateList |
| | | for(var 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) |
| | | } |
| | | }).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('请è系管çåï¼å¼æ¾è®¾å¤æéï¼') |
| | | } |
| | | }else{ |
| | | this.$message.warning(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('请è系管çåï¼å¼æ¾è®¾å¤æéï¼') |
| | | } |
| | | }else{ |
| | | this.$message.warning(res.message) |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | created() { |
| | | let collectTime = moment(moment().add(-1,'d'),'YYYY-MM-DD'); |
| | | |
| | | |
| | | this.queryParams.collectTime = collectTime; |
| | | |
| | | this.queryParam.dateTime = this.queryParams.collectTime.format('YYYYMMDD') |
| | | this.queryParams.typeTree = '1' |
| | | 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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="efficiency_list" style="width: 100%;height: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="6" :sm="6"> |
| | | <a-form-item label="æ¶é´"> |
| | | <a-range-picker @change="dateParamChange" :disabledDate="disabledDate" format="YYYYMMDD" v-model="dates"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :lg="2" :md="3" :sm="3" :xs="3"> |
| | | <a-button type="primary" @click="searchQuery" icon="search">æ¥è¯¢</a-button> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <div id="DeviceList"> |
| | | <div class="openRateTrendDg" style="width: 100%;height: 40%;overflow: scroll"> |
| | | <div id="Efficiency" class="container" style="margin-top: 20px;width: 100%;height: 300px"> |
| | | <div class="table2" style="width: 100%;height: 300px"> |
| | | <table class="dataContent table" border="1" cellspacing="0" cellpadding="0" style="white-space: nowrap;width: 100%;height: 300px;text-align: center;"> |
| | | <thead> |
| | | <tr class="thead fixed equipname"> |
| | | <th class="thgu dong1 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">设å¤ç¼å·</th> |
| | | <th class="thgu dong2 name" rowspan="2" style="min-width: 150px; max-width: 150px;width: 150px;">设å¤åç§°</th> |
| | | <th class="thgu dong3 name" rowspan="2" style="min-width: 100px; max-width: 100px;width: 100px;">设å¤ç±»å</th> |
| | | <template v-for="(tableHead, index) in tableHeads"> |
| | | <th class="timeth" :colspan="checkedList.length">{{tableHead}}</th> |
| | | </template> |
| | | </tr> |
| | | </thead> |
| | | <tbody> |
| | | <tr class="mathData" v-for="(item, index) in dataList" @click="TableDraw(index,item)"> |
| | | <td class="tdgu kaitou">{{item.equipmentId}}</td> |
| | | <td class="tdgu1 kaitou">{{item.equipmentName}}</td> |
| | | <td class="tdgu2 kaitou">{{item.equipmentType}}</td> |
| | | <template v-for="(tableHead, index) in item.dataList"> |
| | | <td :style="{background:tableHead.color }">{{tableHead.utilizationRate | numFilter}}</td> |
| | | </template> |
| | | </tr> |
| | | </tbody> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div id="openRateTrendChart" style="width: 100%;height: 60%"></div> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { putAction, getAction } from '@/api/manage' |
| | | import $ from 'jquery' |
| | | import '@/components/table2excel/table2excel' |
| | | import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api' |
| | | import { |
| | | JeecgListMixin |
| | | } from '@/mixins/JeecgListMixin' |
| | | export default { |
| | | // mixins: [JeecgListMixin], |
| | | name: 'openRateTrendAnalysisMain', |
| | | components: {}, |
| | | data() { |
| | | return { |
| | | dataSource: [], |
| | | /* tableå è½½ç¶æ */ |
| | | loading: false, |
| | | typeTree: "", |
| | | typeParent: 1, |
| | | typeEquipment: 1, |
| | | TreeIDOne: 1, |
| | | TreeIDTwo: 2, |
| | | deviceTypeDict: '', |
| | | dates: [], |
| | | identifying: [], |
| | | queryParam: {}, |
| | | queryParams: {}, |
| | | queryParamEquip: {}, |
| | | queryParamPeople: {}, |
| | | efficiencyOptions: [ |
| | | { label: 'å©ç¨ç', value: 'lyl' }, |
| | | { label: '弿ºç', value: 'kjl' }, |
| | | { label: '弿ºæ¶é´', value: 'kjsj' }, |
| | | { label: 'å å·¥æ¶é´', value: 'jgsj' }, |
| | | { label: 'å¾
æºæ¶é´', value: 'djsj' }, |
| | | { label: 'å
³æºæ¶é´', value: 'gjsj' } |
| | | ], |
| | | checkedList: ['lyl'], |
| | | dataList: [], |
| | | url: { |
| | | efficiencyList: '/mdc/efficiencyReport/utilizationRateTrendAnalyze', |
| | | listByType: '/mdc/MdcUtilizationRate/getByType' |
| | | }, |
| | | tableHeads: [], |
| | | XData:[0], |
| | | YData:[0], |
| | | } |
| | | }, |
| | | props: { nodeTree: '', Type: '', nodePeople: '' }, |
| | | /** |
| | | * çå½å¨æ æè½½å |
| | | * */ |
| | | created() { |
| | | this.dates = [moment().subtract('days', 8), moment().subtract('days', 1)] |
| | | this.queryParam.startDate = moment(this.dates[0]).format('YYYYMMDD') |
| | | this.queryParam.endDate = moment(this.dates[1]).format('YYYYMMDD') |
| | | this.queryParam.typeTree = "1" |
| | | this.loadData1() |
| | | }, |
| | | watch: { |
| | | Type(valmath) { |
| | | this.dataList = []; |
| | | this.queryParam.typeTree = valmath |
| | | }, |
| | | nodeTree(val) { //çå¬currSelected ååï¼å°åååçæ°å¼ä¼ éç» getCurrSelected äºä»¶ |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamEquip.parentId = '' |
| | | this.queryParamEquip.equipmentId = val.equipmentId |
| | | } else { |
| | | this.queryParamEquip.parentId = val.key |
| | | this.queryParamEquip.equipmentId = '' |
| | | } |
| | | /*è¿éä½ æ¯çå¬å°æ å¾åå æ¯ä¸æ¯è¯·æ±ä¸æ¬¡*/ |
| | | this.searchQuery() |
| | | } |
| | | }, |
| | | nodePeople(val) { |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParamPeople.parentId = val.equipmentId |
| | | this.queryParamPeople.equipmentId = '' |
| | | } else { |
| | | this.queryParamPeople.parentId = val.key |
| | | this.queryParamPeople.equipmentId = '' |
| | | } |
| | | this.searchQuery() |
| | | } |
| | | } |
| | | }, |
| | | filters: { |
| | | numFilter(value) { |
| | | if (value) { |
| | | return parseFloat((value * 100).toFixed(2)) |
| | | } else { |
| | | return '0' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | numBerTwo(value){ |
| | | if (value) { |
| | | return parseFloat((value * 100).toFixed(2)) |
| | | } else { |
| | | return '0' |
| | | } |
| | | }, |
| | | TableDraw(key,val) { |
| | | this.XData=[0] |
| | | this.YData[0] |
| | | var Xarr = [] |
| | | var Yarr = [] |
| | | for (var i = 0; i < val.dataList.length; i++) { |
| | | Xarr.push(val.dataList[i].theDate) |
| | | Yarr.push(this.numBerTwo(val.dataList[i].utilizationRate)) |
| | | } |
| | | this.XData=Xarr |
| | | this.YData=Yarr |
| | | // if(this.openRateTrendAnalysisChart !=null && this.openRateTrendAnalysisChart != '' && this.openRateTrendAnalysisChart != undefined){ |
| | | // this.openRateTrendAnalysisChart.dispose() |
| | | // } |
| | | |
| | | this.draw() |
| | | }, |
| | | disabledDate(current) { |
| | | //Can not slect days before today and today |
| | | return current && current > moment().subtract('days', 1); |
| | | }, |
| | | initDeviceType(deviceList) { |
| | | let dictCode = 'mdc_equipmentType' |
| | | let items = [] |
| | | items = getDictItemsFromCache(dictCode) |
| | | if (deviceList && items.length > 0) { |
| | | for (let a = 0; a < deviceList.length; a++) { |
| | | if (items && items.length > 0) { |
| | | for (let i = 0; i < items.length; i++) { |
| | | if (deviceList[a].equipmentType == items[i].value) { |
| | | deviceList[a].equipmentType = items[i].title |
| | | } |
| | | } |
| | | } else { |
| | | ajaxGetDictItems(dictCode, null).then((res) => { |
| | | if (res.success) { |
| | | let items = res.result |
| | | for (let i = 0; i < items.length; i++) { |
| | | if (deviceList[a].equipmentType == items[i].value) { |
| | | deviceList[a].equipmentType = items[i].title |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | dateParamChange(v1, v2) { |
| | | this.queryParam.startDate = v2[0] |
| | | this.queryParam.endDate = v2[1] |
| | | }, |
| | | searchQuery() { |
| | | 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.loadData1() |
| | | // this.onClearSelected() |
| | | }, |
| | | // searchReset() { |
| | | // this.typeTree = this.queryParam.typeTree |
| | | // this.typeParent = this.queryParam.parentId |
| | | // this.typeEquipment = this.queryParam.equipmentId |
| | | // this.queryParam = {} |
| | | // this.dates = [] |
| | | // this.queryParam.typeTree = this.typeTree |
| | | // this.queryParam.parentId = this.typeParent |
| | | // this.queryParam.equipmentId = this.typeEquipment |
| | | // // this.ipagination.current = 1 |
| | | // this.loadData1(); |
| | | // // this.queryParam = {} |
| | | // // this.dates = [] |
| | | // // this.loadData() |
| | | // // this.onClearSelected() |
| | | // }, |
| | | // loadData1() { |
| | | // let that = this |
| | | // that.columns=[ |
| | | // { |
| | | // title: '设å¤ç¼å·', |
| | | // align: 'center', |
| | | // dataIndex: 'equipmentId', |
| | | // width:'150px' |
| | | // }, |
| | | // { |
| | | // title: '设å¤åç§°', |
| | | // align: 'center', |
| | | // dataIndex: 'equipmentName', |
| | | // width:'150px' |
| | | // }, |
| | | // ] |
| | | // that.tableHeads = [] |
| | | // that.dataList = [] |
| | | // getAction(this.url.efficiencyList, that.queryParam).then(res => { |
| | | // var tmp = {} |
| | | // console.log(res) |
| | | // if (res.success) |
| | | // |
| | | // that.dataSource = res.result.mdcEfficiencyList |
| | | // for(var k = 0;k<that.dataSource[0].dataList.length;k++){ |
| | | // that.columns.push( |
| | | // { |
| | | // title:that.dataSource[0].dataList.theDate, |
| | | // align: 'center', |
| | | // width:'120px', |
| | | // // dataIndex:'utilizationRate', |
| | | // } |
| | | // ) |
| | | // } |
| | | // for(var i = 0;i<that.dataSource.length;i++){ |
| | | // for (var j = 0; j < that.dataSource[i].dataList.length;j++){ |
| | | // // that.columns.push( |
| | | // // { |
| | | // // title:that.dataSource[0].dataList[j].theDate, |
| | | // // align: 'center', |
| | | // // width:'120px', |
| | | // // dataIndex:'utilizationRate', |
| | | // // } |
| | | // // ) |
| | | // } |
| | | // |
| | | // } |
| | | // console.log(that.columns) |
| | | // console.log(that.dataSource) |
| | | // // this.initDeviceType(this.dataList) |
| | | // this.draw() |
| | | // } |
| | | // } |
| | | loadData1() { |
| | | this.tableHeads = [] |
| | | this.dataList = [] |
| | | getAction(this.url.efficiencyList, this.queryParam).then(res => { |
| | | if (res.success) { |
| | | this.tableHeads = res.result.dates |
| | | this.dataList = res.result.mdcEfficiencyList |
| | | this.draw() |
| | | // this.checkSameData(this.dataList) |
| | | // this.checkSameData1(this.dataList) |
| | | // this.checkSameData2(this.dataList) |
| | | // this.combineCell(); |
| | | // this.initDeviceType(this.dataList) |
| | | |
| | | } |
| | | }) |
| | | }, |
| | | draw(){ |
| | | let openRateTrendAnalysisChart = this.$echarts.init(document.getElementById('openRateTrendChart'), 'macarons'); |
| | | let openRateTrendChartOptions = { |
| | | title: { |
| | | text: 'å©ç¨çèµ°å¿åæ', |
| | | x: 'center', |
| | | textStyle: { |
| | | fontSize: 18, |
| | | fontWeight: 'bolder', |
| | | color: "#151414" |
| | | } |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | }, |
| | | 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', |
| | | data: this.XData |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'value' |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: 'å©ç¨ç', |
| | | type: 'bar', |
| | | data: this.YData, |
| | | markPoint: { |
| | | data: [ |
| | | { type: 'max', name: 'æå¤§å¼', symbolSize: 70 }, |
| | | { type: 'min', name: 'æå°å¼', symbolSize: 70 } |
| | | ] |
| | | }, |
| | | markLine: { |
| | | data: [ |
| | | { type: 'average', name: 'å¹³åå¼' } |
| | | ] |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | openRateTrendAnalysisChart.setOption(openRateTrendChartOptions,true); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | /*.table2{*/ |
| | | /*width: 100%;*/ |
| | | /*height: 100%;*/ |
| | | /*overflow: auto;*/ |
| | | /*}*/ |
| | | tr th { |
| | | height: 50px!important; |
| | | } |
| | | tr td{ |
| | | height: 50px!important; |
| | | } |
| | | .table2 thead tr th:first-child, |
| | | .table tbody tr .tdgu{ |
| | | position: sticky; |
| | | left: 0; |
| | | z-index: 1; |
| | | } |
| | | .table tbody tr .kaitou{ |
| | | z-index: 1; |
| | | background-color: white; |
| | | } |
| | | .table tbody tr .tdgu1{ |
| | | position: sticky; |
| | | left: 150px; |
| | | z-index: 2; |
| | | } |
| | | .table tbody tr .tdgu2{ |
| | | position: sticky; |
| | | left: 300px; |
| | | z-index: 2; |
| | | } |
| | | .table tbody tr .tdgu3{ |
| | | position: sticky; |
| | | left: 450px; |
| | | z-index: 2; |
| | | } |
| | | .table tbody tr .tdgu4{ |
| | | position: sticky; |
| | | left: 550px; |
| | | z-index: 2; |
| | | } |
| | | .table tbody tr .tdgu5{ |
| | | position: sticky; |
| | | left: 700px; |
| | | z-index: 2; |
| | | } |
| | | .table2 thead tr .timeth, |
| | | .table2 thead tr .thgu { |
| | | position: sticky; |
| | | top:0; |
| | | z-index: 3; |
| | | } |
| | | .table2 thead .gudingth th{ |
| | | position: sticky; |
| | | top: 32px; |
| | | z-index: 6!important; |
| | | } |
| | | .table2 thead .equipname .name{ |
| | | z-index: 3; |
| | | } |
| | | .table2 thead .equipname .dong1{ |
| | | z-index: 4; |
| | | left: 0; |
| | | /*border: 1px solid #000;*/ |
| | | } |
| | | .table2 thead .equipname .dong2{ |
| | | z-index: 5; |
| | | left: 150px; |
| | | } |
| | | .table2 thead .equipname .dong3{ |
| | | z-index: 5; |
| | | left: 300px; |
| | | } |
| | | .table2 thead .equipname .dong4{ |
| | | z-index: 5; |
| | | left: 450px; |
| | | } |
| | | .table2 thead .equipname .dong5{ |
| | | z-index: 5; |
| | | left: 550px; |
| | | } |
| | | .table2 thead .equipname .dong6{ |
| | | z-index: 5; |
| | | left: 700px; |
| | | } |
| | | |
| | | /*@media screen and (min-width: 1920px){*/ |
| | | /*#Efficiency{*/ |
| | | /*height: 687px!important;*/ |
| | | /*overflow: scroll;*/ |
| | | /*}*/ |
| | | /*}*/ |
| | | /*@media screen and (min-width: 1680px) and (max-width: 1920px){*/ |
| | | /*#Efficiency{*/ |
| | | /*height: 687px!important;*/ |
| | | /*overflow: scroll;*/ |
| | | /*}*/ |
| | | /*}*/ |
| | | /*@media screen and (min-width: 1400px) and (max-width: 1680px){*/ |
| | | /*#Efficiency{*/ |
| | | /*height: 540px!important;*/ |
| | | /*overflow: scroll;*/ |
| | | /*}*/ |
| | | /*}*/ |
| | | /*@media screen and (min-width: 1280px) and (max-width: 1400px){*/ |
| | | /*#Efficiency{*/ |
| | | /*height: 440px!important;*/ |
| | | /*overflow: scroll;*/ |
| | | /*}*/ |
| | | /*}*/ |
| | | /*@media screen and (max-width: 1280px){*/ |
| | | /*#Efficiency{*/ |
| | | /*height: 440px!important;*/ |
| | | /*overflow: scroll;*/ |
| | | /*}*/ |
| | | /*}*/ |
| | | #Efficiency .table_guding1{ |
| | | position: absolute; |
| | | overflow: hidden; |
| | | width: 500px; |
| | | } |
| | | #Efficiency .table_guding2{ |
| | | overflow-x: scroll; |
| | | width: 500px; |
| | | } |
| | | /deep/ .ant-card{ |
| | | height: 100%!important; |
| | | } |
| | | /deep/ .ant-card .ant-card-body{ |
| | | height: 100%!important; |
| | | } |
| | | .efficiency_list #DeviceList{ |
| | | height: 90%!important; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div style="width: 100%; height: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <a-row type="flex" :gutter="16"> |
| | | <a-col :md="4"> |
| | | <a-tabs :activeKey="activeKey" @change="tabChange"> |
| | | <a-tab-pane key="1" tab="车é´å±çº§" force-render> |
| | | <base-tree @getCurrSelected="changeSelectionNode"></base-tree> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="2" tab="é¨é¨å±çº§">, |
| | | <depart-tree @getCurrSelectedDD="changeSelectionNodedd" |
| | | ></depart-tree> |
| | | </a-tab-pane> |
| | | </a-tabs> |
| | | </a-col> |
| | | <a-col :md="20"> |
| | | <!--<EfficiencyList ref="EfficiencyList" :nodePeople='selectPeople' :nodeTree = 'selectEquement' :Type="slectTypeTree"></EfficiencyList>--> |
| | | <open-rate-trend-analysis-main ref="EfficiencyList" :nodePeople='selectPeople' :nodeTree = 'selectEquement' :Type="slectTypeTree"></open-rate-trend-analysis-main> |
| | | </a-col> |
| | | </a-row> |
| | | </a-card> |
| | | </div> |
| | | |
| | | </template> |
| | | |
| | | <script> |
| | | import { putAction, getAction } from '@/api/manage' |
| | | import { frozenBatch } from '@/api/api' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import JInput from '@/components/jeecg/JInput' |
| | | import BaseTree from '../common/BaseTree' |
| | | import openRateTrendAnalysisMain from './modules/openRateTrendAnalysis/openRateTrendAnalysisMain' |
| | | import JSuperQuery from '@/components/jeecg/JSuperQuery' |
| | | import JThirdAppButton from '@/components/jeecgbiz/thirdApp/JThirdAppButton' |
| | | import DepartTree from './modules/DepartList/DepartListTree/DepartTree' |
| | | export default { |
| | | name: 'openRateTrendAnalysis', |
| | | components: { |
| | | JThirdAppButton, |
| | | JInput, |
| | | BaseTree, |
| | | JSuperQuery, |
| | | DepartTree, |
| | | openRateTrendAnalysisMain |
| | | }, |
| | | data() { |
| | | return { |
| | | activeKey: '1', |
| | | description: '设å¤ä¿¡æ¯', |
| | | selectEquementId: '', |
| | | selectEquement: {}, |
| | | selectPeople:{}, |
| | | slectTypeTree:"", |
| | | url: { |
| | | equipmentStatistics: '/mdc/equipment/equipmentStatistics' |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | }, |
| | | methods: { |
| | | tabChange(val) { |
| | | // console.log(val); |
| | | this.activeKey = val |
| | | this.slectTypeTree = val |
| | | }, |
| | | // changeSelection(val) { |
| | | // this.selectEquementId = val |
| | | // this.$refs.efficiencyList.pQuery(val) |
| | | // this.$refs.efficiencyList.searchQuery() |
| | | // }, |
| | | changeSelectionNode(val) { |
| | | this.selectEquement = val |
| | | this.slectTypeTree = "1" |
| | | }, |
| | | changeSelectionNodedd(val) { |
| | | this.selectPeople = val |
| | | this.slectTypeTree = "2" |
| | | } |
| | | } |
| | | |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | @import '~@assets/less/common.less'; |
| | | |
| | | .equipMessage { |
| | | width: 100%; |
| | | height: 10%; |
| | | } |
| | | |
| | | .equipMessage table { |
| | | width: 60%; |
| | | height: 100%; |
| | | line-height: 50%; |
| | | } |
| | | |
| | | .equipMessage table td { |
| | | text-align: center; |
| | | } |
| | | |
| | | .equipMessage table td span { |
| | | display: inline-block; |
| | | width: 15px; |
| | | height: 15px; |
| | | } |
| | | |
| | | .equipMessage table td .equipShutdown { |
| | | background-color: #808080; |
| | | } |
| | | |
| | | .equipMessage table td .equipStandby { |
| | | background-color: #ffbf37; |
| | | } |
| | | |
| | | .equipMessage table td .equipRun { |
| | | background-color: #19FE01; |
| | | } |
| | | |
| | | .equipMessage table td .equipAlarm { |
| | | background-color: #FD0008; |
| | | } |
| | | </style> |