| | |
| | | <template> |
| | | <a-spin :spinning="loading"> |
| | | <div :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" :allow-clear="false"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="6" :sm="6" :xs="6"> |
| | | <a-form-item label="时间段"> |
| | | <a-time-picker :default-value="moment('00:00', 'HH:mm')" format="HH:mm" @change="onChangeStart" :allow-clear="false"/> |
| | | 至 |
| | | <a-time-picker :default-value="moment('08:00', 'HH:mm')" format="HH:mm" @change="onChangeEnd" :allow-clear="false"/> |
| | | </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-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> |
| | | </div> |
| | | <!-- table区域-end --> |
| | | </div> |
| | | <div class="device_list"> |
| | | <!-- 查询区域 --> |
| | | <div style="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 v-model="queryParams.equipmentId"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="5" :sm="5"> |
| | | <a-form-item label="设备名称"> |
| | | <a-input placeholder="输入设备名称查询" readOnly v-model="queryParams.equipmentName"></a-input> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="6" :sm="6" :xs="6"> |
| | | <a-form-item label="时间"> |
| | | <a-range-picker @change="dateParamChange" v-model="dates" format="YYYYMMDD" :allow-clear="false"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="6" :sm="6" :xs="6"> |
| | | <a-form-item label="时间段"> |
| | | <a-time-picker :default-value="moment('00:00', 'HH:mm')" format="HH:mm" @change="onChangeStart" |
| | | :allow-clear="false"/> |
| | | 至 |
| | | <a-time-picker :default-value="moment('08:00', 'HH:mm')" format="HH:mm" @change="onChangeEnd" |
| | | :allow-clear="false"/> |
| | | </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-row> |
| | | </a-form> |
| | | </div> |
| | | </a-spin> |
| | | |
| | | <a-spin :spinning="spinning"> |
| | | <div style="width: 100%;height: 100%" id="dayAvailBar"></div> |
| | | </a-spin> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | import { getAction } from '@/api/manage' |
| | | |
| | | export default { |
| | | name: 'equipmentAvailCompareMain', |
| | | name: 'EquipmentAvailCompareMain', |
| | | props: { nodeTree: '', Type: '', nodePeople: '' }, |
| | | data() { |
| | | return { |
| | | activeKey: '1', |
| | | typeTree: '', |
| | | typeParent: 1, |
| | | typeEquipment: 1, |
| | | spaceTime: [], |
| | | usingRates: [], |
| | | dates: [], |
| | | readOnly: true, |
| | | queryParam: {}, |
| | | queryParams: {}, |
| | | queryParamEquip: {}, |
| | | queryParamPeople: {}, |
| | | url: { |
| | | dayUtilizationRateContrast: '/mdc/efficiencyReport/dayUtilizationRateContrast', |
| | | getEquipmentByPid: '/mdc/mdcEquipment/getEquipmentByPid', |
| | | getEquipmentByDepPid: '/mdc/mdcEquipment/getEquipmentByDepPid' |
| | | }, |
| | | AnalysisList: {}, |
| | | loading: false |
| | | spinning: false |
| | | } |
| | | }, |
| | | 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.queryParams.equipmentName = val.equipmentName |
| | | 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: '设备日利用率图', |
| | |
| | | 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) { |
| | | if (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() { |
| | | this.loading = true |
| | | this.spaceTime = [] |
| | | this.usingRates = [] |
| | | this.spinning = true |
| | | getAction(this.url.dayUtilizationRateContrast, this.queryParam).then(res => { |
| | | if (res.success) { |
| | | this.spaceTime.push(res.result.dataList) |
| | | this.spaceTime = res.result.dateList |
| | | for (let i = 0; i < res.result.dayRateDto.length; i++) { |
| | | this.usingRates.push(res.result.dayRateDto[i].utilizationRate) |
| | | } |
| | |
| | | this.$message.warning(res.message) |
| | | } |
| | | }).finally(() => { |
| | | this.loading = false |
| | | this.spinning = false |
| | | }) |
| | | }, |
| | | numFilter(value) { |
| | |
| | | } |
| | | }, |
| | | searchQuery() { |
| | | this.loading = true |
| | | this.spaceTime = [] |
| | | this.usingRates = [] |
| | | 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.queryParams.parentId = this.queryParamEquip.parentId |
| | | //获取查询条件 |
| | | 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.usingRates.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.loading = true |
| | | this.spaceTime = [] |
| | | this.usingRates = [] |
| | | 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.usingRates.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.usingRates.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 |
| | | }) |
| | | } |
| | | |
| | | this.loadAnalysis() |
| | | }, |
| | | initEquipment(id) { |
| | | let _this = this |
| | |
| | | _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 |
| | |
| | | _this.searchQuery() |
| | | } else { |
| | | this.queryParams = {} |
| | | // this.queryList() |
| | | this.equipment = {} |
| | | // _this.$message.warning('请联系管理员,开放设备权限!') |
| | | _this.$notification.warning({ |
| | | message: '消息', |
| | | description: '请联系管理员,开放设备权限!' |
| | |
| | | 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';*/ |
| | | .device_list { |
| | | display: flex; |
| | | flex-direction: column; |
| | | |
| | | /deep/ .ant-spin-nested-loading { |
| | | flex: 1; |
| | | |
| | | .ant-spin-container { |
| | | height: 100%; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1920px) { |
| | | .device_list { |
| | | height: 811px !important; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1680px) and (max-width: 1920px) { |
| | | .device_list { |
| | | height: 811px !important; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1400px) and (max-width: 1680px) { |
| | | .device_list { |
| | | height: 663px !important; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1280px) and (max-width: 1400px) { |
| | | .device_list { |
| | | height: 564px !important; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 1280px) { |
| | | .device_list { |
| | | height: 564px !important; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | |
| | | /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> |