From 7f76d4b5d52d9f6ae65c429fe26faf3a7f730dba Mon Sep 17 00:00:00 2001 From: zhaowei <zhaowei> Date: 星期四, 27 二月 2025 10:56:02 +0800 Subject: [PATCH] 1、新增车间看板页面、大屏车间入口及大屏车间管理页面 2、新增vue-drag-resize和dataV插件 --- src/views/mdc/base/WorkshopSignage.vue | 2339 +++++++---------------------------------------------------- 1 files changed, 284 insertions(+), 2,055 deletions(-) diff --git a/src/views/mdc/base/DncWorkshopSignage.vue b/src/views/mdc/base/WorkshopSignage.vue similarity index 64% rename from src/views/mdc/base/DncWorkshopSignage.vue rename to src/views/mdc/base/WorkshopSignage.vue index 6766a09..2714e16 100644 --- a/src/views/mdc/base/DncWorkshopSignage.vue +++ b/src/views/mdc/base/WorkshopSignage.vue @@ -1,77 +1,115 @@ <template> <div class="full-screen"> <div class="container"> + <!--宸︿晶鍥捐〃鍖哄煙--> <div class="left-col"> <div class="col-content"> - <div class="content-title">涓�鍘傚綋鏈堜换鍔″畬鎴愮櫨鍒嗘瘮</div> - <div style="flex:1;display: flex;"> - <div class="chart-container" id="left-col-chart1"></div> - <div class="equipment-state-container"> - <div>璁惧鎬绘暟锛歿{equipmentList.length}}鍙�</div> - <div>澶т慨銆侀」淇暟閲忥細{{getEquipmentMaintainCount}}鍙�</div> - <div>璁惧寮�鍔ㄧ巼锛歿{getEquipmentOpenRate}}</div> - <div v-for="(item,index) in equipmentStateList" :key="index"> - <img :src="item.imageColor"><span>{{item.label}}锛歿{getEquipmentStateCount(item.value)}}鍙�</span> - </div> - </div> - </div> - <div class="server-status">鏈嶅姟鍣ㄧ姸鎬侊細<span :style="{color:getServerStatusTextColor,fontWeight:'bold'}">{{this.serverStatus}}</span> - </div> + <div class="content-title">{{workshopDetails.workshopName}}#璁惧鎯呭喌</div> + <workshop-device-overview :equipmentList="equipmentList" :toDecimal2NoZero="toDecimal2NoZero"/> </div> <div class="col-content"> - <div class="content-title">褰撴湀闆朵欢浠诲姟瀹屾垚杩涘害</div> - <div class="chart-container" id="left-col-chart2"></div> + <div class="content-title">璁惧鏈堝埄鐢ㄧ巼瓒嬪娍</div> + <month-utilization-rate-trend :toDecimal2NoZero="toDecimal2NoZero"/> </div> <div class="col-content"> - <div class="content-title">褰撴棩璁惧浠诲姟瀹屾垚杩涘害</div> - <div class="chart-container" id="left-col-chart3"></div> + <div class="content-title">璁惧鍛ㄥ埄鐢ㄧ巼瓒嬪娍</div> + <week-utilization-rate-trend :toDecimal2NoZero="toDecimal2NoZero"/> </div> <div class="col-content"> - <div class="content-title">褰撴棩浜у搧姒傚喌</div> - <div class="chart-container" id="left-col-chart4"></div> - </div> - </div> - <div class="middle-col"> - <div class="navigate-container"> - <div class="navigate-item" v-for="(item,index) in navigateList" :key="index"> - <img :src="item.imageSrc" @click="navigateTo(item)"> - </div> - </div> - </div> - <div class="right-col"> - <div class="col-content"> - <div class="content-title">浠婃棩姒傚喌</div> - <div class="chart-container" id="right-col-chart1"></div> - <div class="content-footer-container"> - <div class="content-footer">閲嶇偣璁惧鍒╃敤鐜囷細{{this.keyEquipmentEfficiency}}</div> - <div class="content-footer">姝e父璁惧鍒╃敤鐜囷細{{this.commonEquipmentEfficiency}}</div> - </div> - </div> - <div class="col-content"> - <div class="content-title">宸ユ璁惧鍒╃敤鐜囧彉鍖栬秼鍔�</div> - <div class="chart-container" id="right-col-chart2"></div> - </div> - <div class="col-content"> - <div class="content-title">鏄ㄦ棩璁惧鍒╃敤鐜�</div> - <div class="chart-container" id="right-col-chart3"></div> + <div class="content-title">璁惧鏃ュ埄鐢ㄧ巼瓒嬪娍</div> + <day-utilization-rate-trend :toDecimal2NoZero="toDecimal2NoZero"/> </div> <div class="col-content"> <div class="content-title">璁惧鎶ヨ淇℃伅</div> - <div class="chart-container" id="right-col-chart4"></div> + <device-alarm-info/> </div> + </div> + + <!--鍙充晶鎷栨嫿鍖哄煙--> + <div class="right-col"> + <VueDragResize + v-for="(item, index) in deviceList" + :key="item.equipmentId" + :w="item.vw" + :h="item.vh" + :x="item.coordinateLeft" + :y="item.coordinateTop" + v-on:resizing="resize($event, index)" + v-on:dragging="resize($event, index)" + :parentLimitation="true" + :parentH="1065" + :parentW="1500" + :minw="70" + :minh="70" + :isDraggable="isSwitchChecked" + :isResizable="isSwitchChecked" + :stickSize="6" + @deactivated="isShowGuideline = false" + > + <div class="single-device" :style="{ width: item.vw + 'px', height: item.vh + 'px' }"> + <div class="device-status"> + <div + :style="{ backgroundImage: `url(${getImgView(item.equipmentImage) || require('@/assets/WorskhopSignage/default.png')})` }" + class="device-image" + > + <div + :style="{ backgroundImage: `url(${getCurrentDeviceStatusImage(item.equipmentStatus)})` }" + class="status-image" + ></div> + </div> + </div> + <div + :style="{ color:workshopDetails.equipmentIdColor?workshopDetails.equipmentIdColor:'#fff',fontWeight:'bold'}"> + {{ item.equipmentId }} + </div> + </div> + </VueDragResize> + + <template v-if="isShowGuideline"> + <div class="guideline guidelineX" :style="{top:guidelineXTop+'px'}"></div> + <div class="guideline guidelineY" :style="{left:guidelineYLeft+'px'}"></div> + </template> + + <a-form layout="inline"> + <a-form-item label="鍔熻兘寮�鍏�"> + <a-switch checked-children="寮�" un-checked-children="鍏�" v-model="isSwitchChecked" + :disabled="isHasResizeOrDragDevice"/> + </a-form-item> + + <a-form-item label="淇濆瓨鍧愭爣"> + <a-button type="primary" icon="save" @click="saveDevicePositionAndSizeByApi" + :disabled="!isHasResizeOrDragDevice">淇濆瓨 + </a-button> + </a-form-item> + </a-form> </div> </div> </div> </template> <script> - import * as echarts from 'echarts' + import VueDragResize from 'vue-drag-resize' + import { getFileAccessHttpUrl } from '@/api/manage' + import signageApi from '@/api/signage' + import WorkshopDeviceOverview from './modules/WorkshopSignage/WorkshopDeviceOverview' + import WeekUtilizationRateTrend from './modules/WorkshopSignage/WeekUtilizationRateTrend' + import DayUtilizationRateTrend from './modules/WorkshopSignage/DayUtilizationRateTrend' + import MonthUtilizationRateTrend from './modules/WorkshopSignage/MonthUtilizationRateTrend' + import DeviceAlarmInfo from './modules/WorkshopSignage/DeviceAlarmInfo' export default { - name: 'DncWorkshopSignage', - components: {}, + name: 'WorkshopSignage', + components: { + DeviceAlarmInfo, + MonthUtilizationRateTrend, + DayUtilizationRateTrend, + WeekUtilizationRateTrend, + WorkshopDeviceOverview, + VueDragResize + }, data() { return { + workshopDetails: {}, // 杞﹂棿璇︾粏淇℃伅, equipmentList: [ { 'equipmentID': '04ZX001', @@ -3901,2027 +3939,173 @@ 'productCount': null } ], - equipmentStateList: [ + equipmentStatusList: [ { label: '姝e父杩愯', value: [3, 23], - imageColor: require('@/assets/image/stateImg_green.gif') + statusImage: require('@/assets/WorskhopSignage/stateImg_green.gif') }, { label: '寰呮満', value: [1, 2], - imageColor: require('@/assets/image/stateImg_yellow.gif') + statusImage: require('@/assets/WorskhopSignage/stateImg_yellow.gif') }, { label: '鎶ヨ', value: [22], - imageColor: require('@/assets/image/stateImg_red.gif') + statusImage: require('@/assets/WorskhopSignage/stateImg_red.gif') }, { label: '鍏虫満', value: [null, 0], - imageColor: require('@/assets/image/stateImg_gray.gif') + statusImage: require('@/assets/WorskhopSignage/stateImg_gray.gif') } ], - serverStatus: '姝e父', - leftColChart1: '', - leftColChart2: '', - rightColChart1: '', - navigateList: [ + deviceList: [ { - label: '151A', - navigateMethod: 0, - navigateUrl: '1712001819515367426', - imageSrc: require('../../../assets/image/MDC_151A.png') + equipmentId: '105843145', + equipmentStatus: 3, + equipmentImage: '', + vw: 112, + vh: 142, + coordinateLeft: 500, + coordinateTop: 800 }, { - label: 'VR', - navigateMethod: 1, - navigateUrl: 'mdc/vr', - imageSrc: require('../../../assets/image/VR_a.png') + equipmentId: '42342152', + equipmentStatus: 2, + equipmentImage: '', + vw: 112, + vh: 232, + coordinateLeft: 400, + coordinateTop: 100 }, { - label: 'MDC', - navigateMethod: 1, - navigateUrl: 'mdc/mdc', - imageSrc: require('../../../assets/image/MDC_a.png') + equipmentId: '5646434', + equipmentStatus: 22, + equipmentImage: '', + vw: 231, + vh: 121, + coordinateLeft: 200, + coordinateTop: 500 }, { - label: 'MES', - navigateMethod: 1, - navigateUrl: 'mdc/mes', - imageSrc: require('../../../assets/image/MES_a.png') + equipmentId: '213125643', + equipmentStatus: 0, + equipmentImage: '', + vw: 233, + vh: 213, + coordinateLeft: 600, + coordinateTop: 300 } ], - keyEquipmentEfficiency: '', - commonEquipmentEfficiency: '', - rightColChart2: '', - rightColChart3: '' + isShowGuideline: false, + guidelineXTop: 0, + guidelineYLeft: 0, + isSwitchChecked: false, + isHasResizeOrDragDevice: false } }, mounted() { - window.addEventListener('resize', this.handleWindowResize) - this.getChartDataByApi() - }, - beforeDestroy() { - window.removeEventListener('resize', this.handleWindowResize) - }, - filters: {}, - computed: { - /* 鑾峰彇璁惧澶т慨銆侀」淇暟閲� */ - getEquipmentMaintainCount() { - return this.equipmentList.filter(item => item.maintainType === 2).length - }, - /* 鑾峰彇璁惧寮�鍔ㄧ巼 */ - getEquipmentOpenRate() { - const equipmentCount = this.equipmentList.length - const equipmentShutDownCount = this.equipmentList.filter(item => item.oporation === null || item.oporation == 0).length - return this.toDecimal2NoZero(((equipmentCount - equipmentShutDownCount) / equipmentCount * 100)) + '%' - }, - - getServerStatusTextColor() { - if (this.serverStatus === '姝e父') { - return '#53da53' - } else { - return '#f00' - } + if (this.$route.params.id) { + this.getDeviceListByApi(this.$route.params.id) + this.getWorkshopDetailsByApi(this.$route.params.id) } }, methods: { - getEquipmentStateCount(value) { - let stateCount = 0 - this.equipmentList.forEach(item => { - if (value.includes(item.oporation)) stateCount++ + /** + * 閫氳繃杞﹂棿Id璋冪敤鎺ュ彛鑾峰彇璁惧淇℃伅鍒楄〃 + * @param id 杞﹂棿Id + */ + getDeviceListByApi(id) { + signageApi.getDeviceListInWorkshopSignagePageApi(id).then((res) => { + if (res.result && res.result.length > 0) { + this.deviceList = res.result + } }) - return stateCount }, - getServerStatusByApi() { - + /** + * 閫氳繃杞﹂棿Id璋冪敤鎺ュ彛鑾峰彇杞﹂棿璇︾粏淇℃伅 + * @param id 杞﹂棿Id + */ + getWorkshopDetailsByApi(id) { + signageApi.getWorkshopDetailByWorkshopIdApi(id).then((res) => { + if (!res.success) return + this.workshopDetails = res.result ? res.result : {} + let workshopDrawingArea = document.querySelector('.right-col') + workshopDrawingArea.style.backgroundImage = `url(${this.getImgView(this.workshopDetails.backgroundImage)})` + }) }, - getChartDataByApi() { - this.getLeftColChart1DataByApi() - // this.getLeftColChart2DataByApi() - this.getRightColChart1DataByApi() - this.getRightColChart2DataByApi() - this.getRightColChart3DataByApi() - }, - - getLeftColChart1DataByApi() { - this.leftColChart1 = this.$echarts.init(document.getElementById('left-col-chart1')) - this.drawLeftColChart1() - }, - - getRightColChart1DataByApi() { - this.rightColChart1 = this.$echarts.init(document.getElementById('right-col-chart1')) - this.drawRightColChart1() - }, - - getRightColChart2DataByApi() { - this.rightColChart2 = this.$echarts.init(document.getElementById('right-col-chart2')) - this.drawRightColChart2() - }, - - getRightColChart3DataByApi() { - this.rightColChart3 = this.$echarts.init(document.getElementById('right-col-chart3')) - this.drawRightColChart3() - }, - - /* 缁樺埗宸︿晶绗竴涓浘琛� */ - drawLeftColChart1() { - const data = [ - { - 'number': '20102', - 'name': '2-D鏁翠綋鏈哄專', - 'count': 7, - 'planCount': 14, - 'rateCount': 0.5000 - }, - { - 'number': '20103', - 'name': '3-D鐕冪儳瀹ゆ満鍖�', - 'count': 3, - 'planCount': 9, - 'rateCount': 0.3333 - }, - { - 'number': '20104', - 'name': '4-D鐒婃帴鏈哄專宸ユ', - 'count': 11, - 'planCount': 28, - 'rateCount': 0.3929 - }, - { - 'number': '20105', - 'name': '5-D CRIC鍗曞厓', - 'count': 2, - 'planCount': 15, - 'rateCount': 0.1333 - }, - { - 'number': '20106', - 'name': '6-D椋庢墖鍗曞厓', - 'count': 6, - 'planCount': 15, - 'rateCount': 0.4000 - }, - { - 'number': '20107', - 'name': '7-D娑¤疆鏈哄專', - 'count': 6, - 'planCount': 17, - 'rateCount': 0.3529 - }, - { - 'number': '20109', - 'name': '9-D閽冲伐鍗曞厓', - 'count': 2, - 'planCount': 18, - 'rateCount': 0.1111 - }, - { - 'number': null, - 'name': '鎬讳换鍔�', - 'count': 37, - 'planCount': 116, - 'rateCount': 0.3190 + /** + * 璁惧鎷栨嫿鎴栫缉鏀炬椂瑙﹀彂浜嬩欢 + * @param newRect 鎷栨嫿鎴栫缉鏀惧悗鐨勫昂瀵稿強璺濈 + * @param index 鎷栨嫿璁惧鍦ㄦ暟缁勪腑鐨勪笅鏍� + */ + resize(newRect, index) { + this.isShowGuideline = true + // 褰撹澶囩缉鏀炬垨鎷栨嫿鍚庣鐢╯witch缁勪欢骞跺紑鏀句繚瀛樻寜閽姛鑳斤紙閬垮厤鏃犳晥璇锋眰锛� + if (!this.isHasResizeOrDragDevice) { + if (this.deviceList[index].vw !== newRect.width || this.deviceList[index].vh !== newRect.height || this.deviceList[index].coordinateTop !== newRect.top || this.deviceList[index].coordinateLeft !== newRect.left) { + this.isHasResizeOrDragDevice = true + console.log('newRect------', newRect) } - ] - let yAxisData1, yAxisData2, completionNum - const formatterData = [ - { - value: '', name: '瀹屾垚閲�', itemStyle: { normal: { color: '#00923f' } }, - label: { - normal: { - show: true, - fontSize: '70%', - position: 'inside', - formatter: function() { - return completionNum + '%' - } - } - } - }, - { - value: '', name: '浠诲姟閲�', - itemStyle: { normal: { color: '#e67817' } }, - label: { - normal: { - show: false - } - } - } - ] - const option = { - legend: { - show: true, - bottom: 5, - textStyle: { - color: '#fff', - fontSize: '70%' - }, - itemWidth: 12, - itemHeight: 8, - selectedMode: false, - formatter: function(name) { - var target - for (var i = 0, l = formatterData.length; i < l; i++) { - if (formatterData[i].name == name) { - target = formatterData[i].value - } - } - return name + ' ' + target - } - }, - series: [ - { - name: '绫荤洰', - type: 'pie', - radius: '60%', - center: ['50%', '40%'], - hoverAnimation: false, - data: [ - { - value: 0, name: '瀹屾垚閲�', itemStyle: { normal: { color: '#00923f' } }, - label: { - normal: { - show: true, - fontSize: '70%', - position: 'inside', - textBorderWidth: 0, - formatter: function() { - return completionNum + '%' - } - } - } - }, - { - value: 100, name: '浠诲姟閲�', - itemStyle: { normal: { color: '#e67817' } }, - label: { - normal: { - show: false - } - } - } - ], - labelLine: { - normal: { - show: false - } - }, - itemStyle: { - emphasis: { - shadowBlur: 10, - shadowOffsetX: 0, - shadowColor: 'rgba(0, 0, 0, 0.5)' - } - } - } - ] } - data.forEach(item => { - if (item.name === '鎬讳换鍔�' && item.rateCount !== null) { - yAxisData1 = this.toDecimal2NoZero(item.rateCount * 100) - yAxisData2 = 100 - this.toDecimal2NoZero(item.rateCount * 100) - completionNum = yAxisData1 - formatterData[0].value = item.count - formatterData[1].value = item.planCount - } - }) - option.series[0].data[0].value = yAxisData1 - option.series[0].data[1].value = yAxisData2 - this.leftColChart1.setOption(option, true) + // this.isHasResizeOrDragDevice = true + this.deviceList[index].vw = newRect.width + this.deviceList[index].vh = newRect.height + this.deviceList[index].coordinateTop = newRect.top + this.deviceList[index].coordinateLeft = newRect.left + this.guidelineXTop = newRect.top + newRect.height / 2 + this.guidelineYLeft = newRect.left + newRect.width / 2 }, - /* 缁樺埗鍙充晶绗竴涓浘琛� */ - drawRightColChart1() { - const data = [ - { - 'number': null, - 'name': '鍒╃敤鐜�', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - }, - { - 'number': null, - 'name': '寮�鏈虹巼', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - }, - { - 'number': null, - 'name': '閲嶇偣璁惧鍒╃敤鐜�', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - }, - { - 'number': null, - 'name': '姝e父璁惧鍒╃敤鐜�', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - } - ] - const yAxisData = [] - const option = { - radar: { - center: ['50%', '55%'], - indicator: [{ - name: '璁惧鍒╃敤鐜�', - num: '', - max: 100 - }, { - name: '璁惧寮�鏈虹巼', - num: '', - max: 100 - }, { - name: '璁″垝瀹屾垚鐜�', - num: '', - max: 100 - }], - radius: '60%', - splitNumber: 1, - shape: 'circle', - nameGap: 10, - name: { - textStyle: { - color: '#fff', - fontSize: '65%' - }, - formatter: function(value, indicator) { - return value + ' ' + indicator.num + '%' - - } - }, - splitLine: { - lineStyle: { - color: 'rgb(90,177,239)', - type: 'dotted', - width: 2 - } - }, - axisLine: { - show: true, - lineStyle: { - color: 'rgb(90,177,239)', - type: 'dotted' - } - }, - zlevel: 23 - }, - series: [ - { - type: 'pie', - center: ['50%', '55%'], - radius: ['70%', '65%'], - hoverAnimation: false, - label: { - normal: { - position: 'center' - } - }, - data: [{ - value: 1000, - tooltip: { - show: false - }, - itemStyle: { - normal: { - color: 'rgba(30,177,239,0.6)' - } - } - }] - }, - - { - name: '鏁版嵁鏄剧ず', - type: 'radar', - lineStyle: { - normal: { - width: 0.1, - opacity: 0.1 - } - }, - data: [ - [0, 0, 0] - ], - symbolSize: 8, - itemStyle: { - color: '#ffc000', - borderColor: '#ffc000' - }, - areaStyle: { - normal: { - color: 'rgba(90,177,239,0.8)', - opacity: 0.85 - } - }, - label: { - normal: { - show: false, - position: 'top', - formatter: '{c}%' - } - }, - zlevel: 21 - } - - ] - } - data.forEach((item, index) => { - if (item.name == '閲嶇偣璁惧鍒╃敤鐜�') { - this.keyEquipmentEfficiency = (item.count * 100) > 100 ? 100 : ((item.count * 100).toFixed(2)) + '%' - } else if (item.name == '姝e父璁惧鍒╃敤鐜�') { - this.commonEquipmentEfficiency = (item.count * 100) > 100 ? 100 : ((item.count * 100).toFixed(2)) + '%' - } else { - yAxisData.push(parseFloat((item.count * 100) > 100 ? 100 : ((item.count * 100).toFixed(2)))) - option.radar.indicator[index].num = (item.count * 100) > 100 ? 100 : ((item.count * 100).toFixed(2)) + /** + * 鐐瑰嚮淇濆瓨鎸夐挳璋冪敤鎺ュ彛淇濆瓨鎷栨嫿鍚庣殑浣嶇疆涓庤澶囧浘鏍囧昂瀵� + */ + saveDevicePositionAndSizeByApi() { + signageApi.saveDevicePositionAndSizeApi(this.deviceList).then((res) => { + if (res.code === 200) { + this.$notification.success({ + message: '娑堟伅', + description: res.message + }) + this.isSwitchChecked = this.isHasResizeOrDragDevice = false + this.getDeviceListByApi(this.$route.params.id) } }) - const data2 = { 'number': null, 'name': '瀹屾垚鐜�', 'count': 0.6523, 'planCount': null, 'rateCount': null } - yAxisData.push(parseFloat((data2.count * 100) > 100 ? 100 : ((data2.count * 100).toFixed(2)))) - option.radar.indicator[2].num = (data2.count * 100) > 100 ? 100 : ((data2.count * 100).toFixed(2)) - option.series[1].data[0] = yAxisData - this.rightColChart1.setOption(option, true) - }, - - /* 缁樺埗鍙充晶绗簩涓浘琛� */ - drawRightColChart2() { - const data = [ - { - 'beltlineID': 'A_1', - 'beltlineName': '1-D鐗圭宸ヨ壓', - 'fullName': '1-D鐗圭宸ヨ壓鍗曞厓', - 'list': [ - { - 'code': '000000014831', - 'factoryID': 'A', - 'beltlineID': 'A_1', - 'beltlineName': '1-D鐗圭宸ヨ壓', - 'dayTime': '2023-09-28', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014820', - 'factoryID': 'A', - 'beltlineID': 'A_1', - 'beltlineName': '1-D鐗圭宸ヨ壓', - 'dayTime': '2023-09-29', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014809', - 'factoryID': 'A', - 'beltlineID': 'A_1', - 'beltlineName': '1-D鐗圭宸ヨ壓', - 'dayTime': '2023-09-30', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014798', - 'factoryID': 'A', - 'beltlineID': 'A_1', - 'beltlineName': '1-D鐗圭宸ヨ壓', - 'dayTime': '2023-10-01', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014787', - 'factoryID': 'A', - 'beltlineID': 'A_1', - 'beltlineName': '1-D鐗圭宸ヨ壓', - 'dayTime': '2023-10-02', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014776', - 'factoryID': 'A', - 'beltlineID': 'A_1', - 'beltlineName': '1-D鐗圭宸ヨ壓', - 'dayTime': '2023-10-03', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014765', - 'factoryID': 'A', - 'beltlineID': 'A_1', - 'beltlineName': '1-D鐗圭宸ヨ壓', - 'dayTime': '2023-10-04', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:00' - } - ] - }, - { - 'beltlineID': 'A_2', - 'beltlineName': '2-D鏁翠綋鏈哄專', - 'fullName': '2-D鏁翠綋鏈哄專鍗曞厓', - 'list': [ - { - 'code': '000000014833', - 'factoryID': 'A', - 'beltlineID': 'A_2', - 'beltlineName': '2-D鏁翠綋鏈哄專', - 'dayTime': '2023-09-28', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014822', - 'factoryID': 'A', - 'beltlineID': 'A_2', - 'beltlineName': '2-D鏁翠綋鏈哄專', - 'dayTime': '2023-09-29', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014811', - 'factoryID': 'A', - 'beltlineID': 'A_2', - 'beltlineName': '2-D鏁翠綋鏈哄專', - 'dayTime': '2023-09-30', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014800', - 'factoryID': 'A', - 'beltlineID': 'A_2', - 'beltlineName': '2-D鏁翠綋鏈哄專', - 'dayTime': '2023-10-01', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014789', - 'factoryID': 'A', - 'beltlineID': 'A_2', - 'beltlineName': '2-D鏁翠綋鏈哄專', - 'dayTime': '2023-10-02', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014778', - 'factoryID': 'A', - 'beltlineID': 'A_2', - 'beltlineName': '2-D鏁翠綋鏈哄專', - 'dayTime': '2023-10-03', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014767', - 'factoryID': 'A', - 'beltlineID': 'A_2', - 'beltlineName': '2-D鏁翠綋鏈哄專', - 'dayTime': '2023-10-04', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - } - ] - }, - { - 'beltlineID': 'A_3', - 'beltlineName': '3-D鐕冪儳瀹ゆ満鍖�', - 'fullName': '3-D鐕冪儳瀹ゆ満鍖e崟鍏�', - 'list': [ - { - 'code': '000000014834', - 'factoryID': 'A', - 'beltlineID': 'A_3', - 'beltlineName': '3-D鐕冪儳瀹ゆ満鍖�', - 'dayTime': '2023-09-28', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014823', - 'factoryID': 'A', - 'beltlineID': 'A_3', - 'beltlineName': '3-D鐕冪儳瀹ゆ満鍖�', - 'dayTime': '2023-09-29', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014812', - 'factoryID': 'A', - 'beltlineID': 'A_3', - 'beltlineName': '3-D鐕冪儳瀹ゆ満鍖�', - 'dayTime': '2023-09-30', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014801', - 'factoryID': 'A', - 'beltlineID': 'A_3', - 'beltlineName': '3-D鐕冪儳瀹ゆ満鍖�', - 'dayTime': '2023-10-01', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014790', - 'factoryID': 'A', - 'beltlineID': 'A_3', - 'beltlineName': '3-D鐕冪儳瀹ゆ満鍖�', - 'dayTime': '2023-10-02', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014779', - 'factoryID': 'A', - 'beltlineID': 'A_3', - 'beltlineName': '3-D鐕冪儳瀹ゆ満鍖�', - 'dayTime': '2023-10-03', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014768', - 'factoryID': 'A', - 'beltlineID': 'A_3', - 'beltlineName': '3-D鐕冪儳瀹ゆ満鍖�', - 'dayTime': '2023-10-04', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - } - ] - }, - { - 'beltlineID': 'A_4', - 'beltlineName': '4-D鐒婃帴鏈哄專宸ユ', - 'fullName': '4-D鐒婃帴鏈哄專宸ユ', - 'list': [ - { - 'code': '000000014835', - 'factoryID': 'A', - 'beltlineID': 'A_4', - 'beltlineName': '4-D鐒婃帴鏈哄專宸ユ', - 'dayTime': '2023-09-28', - 'lineRate': 0.1333, - 'processingLong': 11520.0000, - 'openingLong': 11520.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014824', - 'factoryID': 'A', - 'beltlineID': 'A_4', - 'beltlineName': '4-D鐒婃帴鏈哄專宸ユ', - 'dayTime': '2023-09-29', - 'lineRate': 0.1333, - 'processingLong': 11520.0000, - 'openingLong': 11520.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014813', - 'factoryID': 'A', - 'beltlineID': 'A_4', - 'beltlineName': '4-D鐒婃帴鏈哄專宸ユ', - 'dayTime': '2023-09-30', - 'lineRate': 0.1333, - 'processingLong': 11520.0000, - 'openingLong': 11520.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014802', - 'factoryID': 'A', - 'beltlineID': 'A_4', - 'beltlineName': '4-D鐒婃帴鏈哄專宸ユ', - 'dayTime': '2023-10-01', - 'lineRate': 0.1333, - 'processingLong': 11520.0000, - 'openingLong': 11520.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014791', - 'factoryID': 'A', - 'beltlineID': 'A_4', - 'beltlineName': '4-D鐒婃帴鏈哄專宸ユ', - 'dayTime': '2023-10-02', - 'lineRate': 0.1333, - 'processingLong': 11520.0000, - 'openingLong': 11520.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014780', - 'factoryID': 'A', - 'beltlineID': 'A_4', - 'beltlineName': '4-D鐒婃帴鏈哄專宸ユ', - 'dayTime': '2023-10-03', - 'lineRate': 0.1333, - 'processingLong': 11520.0000, - 'openingLong': 11520.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014769', - 'factoryID': 'A', - 'beltlineID': 'A_4', - 'beltlineName': '4-D鐒婃帴鏈哄專宸ユ', - 'dayTime': '2023-10-04', - 'lineRate': 0.1333, - 'processingLong': 11520.0000, - 'openingLong': 11520.0000, - 'collectDate': '2023-10-05 00:25:01' - } - ] - }, - { - 'beltlineID': 'A_5', - 'beltlineName': '5-D CRIC鍗曞厓', - 'fullName': '5-D CRIC鍗曞厓', - 'list': [ - { - 'code': '000000014836', - 'factoryID': 'A', - 'beltlineID': 'A_5', - 'beltlineName': '5-D CRIC鍗曞厓', - 'dayTime': '2023-09-28', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014825', - 'factoryID': 'A', - 'beltlineID': 'A_5', - 'beltlineName': '5-D CRIC鍗曞厓', - 'dayTime': '2023-09-29', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014814', - 'factoryID': 'A', - 'beltlineID': 'A_5', - 'beltlineName': '5-D CRIC鍗曞厓', - 'dayTime': '2023-09-30', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014803', - 'factoryID': 'A', - 'beltlineID': 'A_5', - 'beltlineName': '5-D CRIC鍗曞厓', - 'dayTime': '2023-10-01', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014792', - 'factoryID': 'A', - 'beltlineID': 'A_5', - 'beltlineName': '5-D CRIC鍗曞厓', - 'dayTime': '2023-10-02', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014781', - 'factoryID': 'A', - 'beltlineID': 'A_5', - 'beltlineName': '5-D CRIC鍗曞厓', - 'dayTime': '2023-10-03', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014770', - 'factoryID': 'A', - 'beltlineID': 'A_5', - 'beltlineName': '5-D CRIC鍗曞厓', - 'dayTime': '2023-10-04', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - } - ] - }, - { - 'beltlineID': 'A_6', - 'beltlineName': '6-D椋庢墖鍗曞厓', - 'fullName': '6-D椋庢墖鍗曞厓', - 'list': [ - { - 'code': '000000014837', - 'factoryID': 'A', - 'beltlineID': 'A_6', - 'beltlineName': '6-D椋庢墖鍗曞厓', - 'dayTime': '2023-09-28', - 'lineRate': 0.0667, - 'processingLong': 5760.0000, - 'openingLong': 5760.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014826', - 'factoryID': 'A', - 'beltlineID': 'A_6', - 'beltlineName': '6-D椋庢墖鍗曞厓', - 'dayTime': '2023-09-29', - 'lineRate': 0.0667, - 'processingLong': 5760.0000, - 'openingLong': 5760.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014815', - 'factoryID': 'A', - 'beltlineID': 'A_6', - 'beltlineName': '6-D椋庢墖鍗曞厓', - 'dayTime': '2023-09-30', - 'lineRate': 0.0667, - 'processingLong': 5760.0000, - 'openingLong': 5760.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014804', - 'factoryID': 'A', - 'beltlineID': 'A_6', - 'beltlineName': '6-D椋庢墖鍗曞厓', - 'dayTime': '2023-10-01', - 'lineRate': 0.0667, - 'processingLong': 5760.0000, - 'openingLong': 5760.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014793', - 'factoryID': 'A', - 'beltlineID': 'A_6', - 'beltlineName': '6-D椋庢墖鍗曞厓', - 'dayTime': '2023-10-02', - 'lineRate': 0.0667, - 'processingLong': 5760.0000, - 'openingLong': 5760.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014782', - 'factoryID': 'A', - 'beltlineID': 'A_6', - 'beltlineName': '6-D椋庢墖鍗曞厓', - 'dayTime': '2023-10-03', - 'lineRate': 0.0667, - 'processingLong': 5760.0000, - 'openingLong': 5760.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014771', - 'factoryID': 'A', - 'beltlineID': 'A_6', - 'beltlineName': '6-D椋庢墖鍗曞厓', - 'dayTime': '2023-10-04', - 'lineRate': 0.0667, - 'processingLong': 5760.0000, - 'openingLong': 5760.0000, - 'collectDate': '2023-10-05 00:25:01' - } - ] - }, - { - 'beltlineID': 'A_7', - 'beltlineName': '7-D娑¤疆鏈哄專', - 'fullName': '7-D娑¤疆鏈哄專鍗曞厓', - 'list': [ - { - 'code': '000000014838', - 'factoryID': 'A', - 'beltlineID': 'A_7', - 'beltlineName': '7-D娑¤疆鏈哄專', - 'dayTime': '2023-09-28', - 'lineRate': null, - 'processingLong': null, - 'openingLong': null, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014827', - 'factoryID': 'A', - 'beltlineID': 'A_7', - 'beltlineName': '7-D娑¤疆鏈哄專', - 'dayTime': '2023-09-29', - 'lineRate': null, - 'processingLong': null, - 'openingLong': null, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014816', - 'factoryID': 'A', - 'beltlineID': 'A_7', - 'beltlineName': '7-D娑¤疆鏈哄專', - 'dayTime': '2023-09-30', - 'lineRate': null, - 'processingLong': null, - 'openingLong': null, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014805', - 'factoryID': 'A', - 'beltlineID': 'A_7', - 'beltlineName': '7-D娑¤疆鏈哄專', - 'dayTime': '2023-10-01', - 'lineRate': null, - 'processingLong': null, - 'openingLong': null, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014794', - 'factoryID': 'A', - 'beltlineID': 'A_7', - 'beltlineName': '7-D娑¤疆鏈哄專', - 'dayTime': '2023-10-02', - 'lineRate': null, - 'processingLong': null, - 'openingLong': null, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014783', - 'factoryID': 'A', - 'beltlineID': 'A_7', - 'beltlineName': '7-D娑¤疆鏈哄專', - 'dayTime': '2023-10-03', - 'lineRate': null, - 'processingLong': null, - 'openingLong': null, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014772', - 'factoryID': 'A', - 'beltlineID': 'A_7', - 'beltlineName': '7-D娑¤疆鏈哄專', - 'dayTime': '2023-10-04', - 'lineRate': null, - 'processingLong': null, - 'openingLong': null, - 'collectDate': '2023-10-05 00:25:01' - } - ] - }, - { - 'beltlineID': 'A_8', - 'beltlineName': '8-D绉戠爺宸ユ', - 'fullName': '8-D绉戠爺宸ユ', - 'list': [ - { - 'code': '000000014839', - 'factoryID': 'A', - 'beltlineID': 'A_8', - 'beltlineName': '8-D绉戠爺宸ユ', - 'dayTime': '2023-09-28', - 'lineRate': 0.2000, - 'processingLong': 17280.0000, - 'openingLong': 17280.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014828', - 'factoryID': 'A', - 'beltlineID': 'A_8', - 'beltlineName': '8-D绉戠爺宸ユ', - 'dayTime': '2023-09-29', - 'lineRate': 0.2000, - 'processingLong': 17280.0000, - 'openingLong': 17280.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014817', - 'factoryID': 'A', - 'beltlineID': 'A_8', - 'beltlineName': '8-D绉戠爺宸ユ', - 'dayTime': '2023-09-30', - 'lineRate': 0.2000, - 'processingLong': 17280.0000, - 'openingLong': 17280.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014806', - 'factoryID': 'A', - 'beltlineID': 'A_8', - 'beltlineName': '8-D绉戠爺宸ユ', - 'dayTime': '2023-10-01', - 'lineRate': 0.2000, - 'processingLong': 17280.0000, - 'openingLong': 17280.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014795', - 'factoryID': 'A', - 'beltlineID': 'A_8', - 'beltlineName': '8-D绉戠爺宸ユ', - 'dayTime': '2023-10-02', - 'lineRate': 0.2000, - 'processingLong': 17280.0000, - 'openingLong': 17280.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014784', - 'factoryID': 'A', - 'beltlineID': 'A_8', - 'beltlineName': '8-D绉戠爺宸ユ', - 'dayTime': '2023-10-03', - 'lineRate': 0.2000, - 'processingLong': 17280.0000, - 'openingLong': 17280.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014773', - 'factoryID': 'A', - 'beltlineID': 'A_8', - 'beltlineName': '8-D绉戠爺宸ユ', - 'dayTime': '2023-10-04', - 'lineRate': 0.2000, - 'processingLong': 17280.0000, - 'openingLong': 17280.0000, - 'collectDate': '2023-10-05 00:25:01' - } - ] - }, - { - 'beltlineID': 'A_9', - 'beltlineName': '鐢熶骇瀹�', - 'fullName': '鐢熶骇瀹�', - 'list': [ - { - 'code': '000000014840', - 'factoryID': 'A', - 'beltlineID': 'A_9', - 'beltlineName': '鐢熶骇瀹�', - 'dayTime': '2023-09-28', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014829', - 'factoryID': 'A', - 'beltlineID': 'A_9', - 'beltlineName': '鐢熶骇瀹�', - 'dayTime': '2023-09-29', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014818', - 'factoryID': 'A', - 'beltlineID': 'A_9', - 'beltlineName': '鐢熶骇瀹�', - 'dayTime': '2023-09-30', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014807', - 'factoryID': 'A', - 'beltlineID': 'A_9', - 'beltlineName': '鐢熶骇瀹�', - 'dayTime': '2023-10-01', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014796', - 'factoryID': 'A', - 'beltlineID': 'A_9', - 'beltlineName': '鐢熶骇瀹�', - 'dayTime': '2023-10-02', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014785', - 'factoryID': 'A', - 'beltlineID': 'A_9', - 'beltlineName': '鐢熶骇瀹�', - 'dayTime': '2023-10-03', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014774', - 'factoryID': 'A', - 'beltlineID': 'A_9', - 'beltlineName': '鐢熶骇瀹�', - 'dayTime': '2023-10-04', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - } - ] - }, - { - 'beltlineID': 'A_10', - 'beltlineName': 'JD-2鍐涘搧鏈哄姞', - 'fullName': 'JD-2鍐涘搧鏈哄姞', - 'list': [ - { - 'code': '000000014832', - 'factoryID': 'A', - 'beltlineID': 'A_10', - 'beltlineName': 'JD-2鍐涘搧鏈哄姞', - 'dayTime': '2023-09-28', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014821', - 'factoryID': 'A', - 'beltlineID': 'A_10', - 'beltlineName': 'JD-2鍐涘搧鏈哄姞', - 'dayTime': '2023-09-29', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014810', - 'factoryID': 'A', - 'beltlineID': 'A_10', - 'beltlineName': 'JD-2鍐涘搧鏈哄姞', - 'dayTime': '2023-09-30', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014799', - 'factoryID': 'A', - 'beltlineID': 'A_10', - 'beltlineName': 'JD-2鍐涘搧鏈哄姞', - 'dayTime': '2023-10-01', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014788', - 'factoryID': 'A', - 'beltlineID': 'A_10', - 'beltlineName': 'JD-2鍐涘搧鏈哄姞', - 'dayTime': '2023-10-02', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014777', - 'factoryID': 'A', - 'beltlineID': 'A_10', - 'beltlineName': 'JD-2鍐涘搧鏈哄姞', - 'dayTime': '2023-10-03', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014766', - 'factoryID': 'A', - 'beltlineID': 'A_10', - 'beltlineName': 'JD-2鍐涘搧鏈哄姞', - 'dayTime': '2023-10-04', - 'lineRate': 0.0000, - 'processingLong': 0.0000, - 'openingLong': 0.0000, - 'collectDate': '2023-10-05 00:25:00' - } - ] - }, - { - 'beltlineID': '鎬诲巶', - 'beltlineName': '鎬诲巶', - 'fullName': null, - 'list': [ - { - 'code': '000000014841', - 'factoryID': 'A', - 'beltlineID': '鎬诲巶', - 'beltlineName': '鎬诲巶', - 'dayTime': '2023-09-28', - 'lineRate': 0.0400, - 'processingLong': 3456.0000, - 'openingLong': 3456.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014830', - 'factoryID': 'A', - 'beltlineID': '鎬诲巶', - 'beltlineName': '鎬诲巶', - 'dayTime': '2023-09-29', - 'lineRate': 0.0400, - 'processingLong': 3456.0000, - 'openingLong': 3456.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014819', - 'factoryID': 'A', - 'beltlineID': '鎬诲巶', - 'beltlineName': '鎬诲巶', - 'dayTime': '2023-09-30', - 'lineRate': 0.0400, - 'processingLong': 3456.0000, - 'openingLong': 3456.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014808', - 'factoryID': 'A', - 'beltlineID': '鎬诲巶', - 'beltlineName': '鎬诲巶', - 'dayTime': '2023-10-01', - 'lineRate': 0.0400, - 'processingLong': 3456.0000, - 'openingLong': 3456.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014797', - 'factoryID': 'A', - 'beltlineID': '鎬诲巶', - 'beltlineName': '鎬诲巶', - 'dayTime': '2023-10-02', - 'lineRate': 0.0400, - 'processingLong': 3456.0000, - 'openingLong': 3456.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014786', - 'factoryID': 'A', - 'beltlineID': '鎬诲巶', - 'beltlineName': '鎬诲巶', - 'dayTime': '2023-10-03', - 'lineRate': 0.0400, - 'processingLong': 3456.0000, - 'openingLong': 3456.0000, - 'collectDate': '2023-10-05 00:25:01' - }, - { - 'code': '000000014775', - 'factoryID': 'A', - 'beltlineID': '鎬诲巶', - 'beltlineName': '鎬诲巶', - 'dayTime': '2023-10-04', - 'lineRate': 0.0400, - 'processingLong': 3456.0000, - 'openingLong': 3456.0000, - 'collectDate': '2023-10-05 00:25:01' - } - ] - } - ] - const seriesArr = [] - const xAxisData = [] - const option = { - color: ['#538dd6', '#ffff01', '#0bae8d', '#e26c0a', '#F6E1BE', '#7030a0', '#0ad0bb', '#FF9297', '#A40035'], - tooltip: { - trigger: 'axis', - textStyle: { - fontSize: '60%' - } - }, - legend: { - //type:'scroll', - show: false, - width: '100%', - height: 8, - itemWidth: 12, - itemGap: 5, - itemHeight: 10, - textStyle: { - fontSize: '0%', - color: '#fff' - } - }, - grid: { - left: '1%', - right: '5%', - bottom: '1%', - top: '5%', - containLabel: true - }, - 'dataZoom': [ - - { - 'type': 'inside', - 'show': true, - 'xAxisIndex': [ - 0 - ], - 'start': 0, - 'end': 100 - } - ], - xAxis: { - type: 'category', - name: '', - // min:-35, - // boundaryGap: false, - data: [], - axisLabel: { - color: '#fff', - rotate: 45, - fontSize: '55%' - }, - axisLine: { - lineStyle: { - color: '#fff' - } - } - }, - yAxis: { - type: 'value', - name: '', - axisLabel: { - formatter: '{value} %', - color: '#fff', - fontSize: '70%' - }, - axisLine: { - show: true, - lineStyle: { - color: '#fff' - } - }, - splitLine: { - show: false - } - }, - series: [] - } - data.forEach(item1 => { - const dataArr = [] - item1.list.forEach(item2 => { - dataArr.push({ - value: this.toDecimal2NoZero(item2.lineRate * 100), - hostType: (item2.dayTime == null ? '' : item2.dayTime) - }) - xAxisData.push(item2.dayTime == null ? '' : item2.dayTime.slice(5)) - }) - if (item1.beltlineName == '鎬诲巶') { - seriesArr.push({ - name: item1.beltlineName, - type: 'line', - lineStyle: { width: 4, color: '#9cff45' }, - itemStyle: { color: '#50ff45' }, - symbol: 'circle', - data: dataArr - }) - } else { - seriesArr.push({ - name: item1.fullName, - type: 'line', - lineStyle: { width: 2 }, - symbol: 'circle', - data: dataArr - }) - } - }) - option.xAxis.data = Array.from(new Set(xAxisData)) - option.series = seriesArr - this.rightColChart2.setOption(option, true) - }, - - /* 缁樺埗鍙充晶绗笁涓浘琛� */ - drawRightColChart3() { - const data = [ - { - 'number': 'A_1', - 'name': '1-D鐗圭宸ヨ壓', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - }, - { - 'number': 'A_2', - 'name': '2-D鏁翠綋鏈哄專', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - }, - { - 'number': 'A_3', - 'name': '3-D鐕冪儳瀹ゆ満鍖�', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - }, - { - 'number': 'A_4', - 'name': '4-D鐒婃帴鏈哄專宸ユ', - 'count': 0.1333, - 'planCount': null, - 'rateCount': null - }, - { - 'number': 'A_5', - 'name': '5-D CRIC鍗曞厓', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - }, - { - 'number': 'A_6', - 'name': '6-D椋庢墖鍗曞厓', - 'count': 0.0667, - 'planCount': null, - 'rateCount': null - }, - { - 'number': 'A_7', - 'name': '7-D娑¤疆鏈哄專', - 'count': 0, - 'planCount': null, - 'rateCount': null - }, - { - 'number': 'A_8', - 'name': '8-D绉戠爺宸ユ', - 'count': 0.2000, - 'planCount': null, - 'rateCount': null - }, - { - 'number': 'A_9', - 'name': '鐢熶骇瀹�', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - }, - { - 'number': 'A_10', - 'name': 'JD-2鍐涘搧鏈哄姞', - 'count': 0.0000, - 'planCount': null, - 'rateCount': null - } - ] - const xAxisData = [] - const seriesData = [] - const option = { - tooltip: { - show: true, - trigger: 'item', - formatter: params => `${params.name}锛�${params.value}%` - }, - legend: { - show: false, - data: [], - itemWidth: 12, - itemHeight: 12, - textStyle: { //鍥句緥鏂囧瓧鐨勬牱寮� - //fontSize:14, - color: '#fff' - } - }, - grid: { - left: '3%', - right: '4%', - bottom: '-3%', - top: '5%', - containLabel: true - }, - xAxis: [ - { - type: 'category', - data: [], - axisLine: { - lineStyle: { - color: '#fff' - } - }, - axisLabel: { - color: '#fff', - rotate: 45, - fontSize: '55%' - } - } - ], - yAxis: [ - { - type: 'value', - data: [], - axisLine: { - show: true, - lineStyle: { - color: '#fff' - } - }, - axisLabel: { - formatter: '{value} %', - color: '#fff', - fontSize: '70%' - }, - splitLine: { - lineStyle: { - color: '#626262' - } - } - } - ], - dataZoom: [ - { - type: 'inside', - show: true, - xAxisIndex: [0], - start: 0, - end: 100 - } - ], - series: [ - { - name: '鍒╃敤鐜�', - type: 'bar', - barWidth: '50%',//鏌卞浘瀹藉害 - data: [], - label: { - show: true, - position: 'inside', - padding: [1, 2], - fontSize: '60%', - color: '#fff', - formatter: '{c}%', - backgroundColor: '#4fb327', - shadowColor: '#153e04', - shadowBlur: 5, - shadowOffsetX: 3, - shadowOffsetY: 5, - borderRadius: 5 - }, - //barCategoryGap:'180%', - itemStyle: { - normal: { - barBorderRadius: '', - color: function(params) { - const colorList = [ - //1-D鐗圭宸ヨ壓鍗曞厓 - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#9cc4f6' }, - { offset: 1, color: '#538dd6' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#ffffa2' }, - { offset: 1, color: '#ffff01' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#97fcc5' }, - { offset: 1, color: '#0bae8d' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#ffbc85' }, - { offset: 1, color: '#e26c0a' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#fb78ba' }, - { offset: 1, color: '#8f0149' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - //鐜欢鍗曞厓 - { offset: 0, color: '#d297ff' }, - { offset: 1, color: '#7030a0' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#ffe491' }, - { offset: 1, color: '#8f6c00' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#ffb6b9' }, - { offset: 1, color: '#fd4c53' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#92cbba' }, - { offset: 1, color: '#18a387' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#ff5b62' }, - { offset: 1, color: '#a02100' } - ] - )/*,new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - {offset: 0, color: '#bbbcff'}, - {offset: 1, color: '#04078e'} - ] - )*/, new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#b5d5e3' }, - { offset: 1, color: '#1b8bd0' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - //涓皬鏈哄專鍗曞厓 - { offset: 0, color: '#ebd3ff' }, - { offset: 1, color: '#e889ff' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#D69123' }, - { offset: 1, color: '#a16900' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - //浣庡帇瀵煎悜 - { offset: 0, color: '#d588c8' }, - { offset: 1, color: '#9545AE' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - //浣庡帇鍙剁墖 1 4 - { offset: 0, color: '#97abd6' }, - { offset: 1, color: '#6268b2' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#d7dab2' }, - { offset: 1, color: '#b8aa15' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#e9c9b0' }, - { offset: 1, color: '#D9646A' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#a4e3d6' }, - { offset: 1, color: '#01A55E' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - - { offset: 0, color: '#2052b1' }, - { offset: 1, color: '#002b73' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - //鐩樹欢鍗曞厓 - { offset: 0, color: '#3e71e2' }, - { offset: 1, color: '#0042c8' } - ] - ), new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - //缁撴瀯浠跺崟鍏� - { offset: 0, color: '#99d6cf' }, - { offset: 1, color: '#21bf90' } - ] - ) - , new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - // 7-D - { offset: 0, color: '#99d6cf' }, - { offset: 1, color: '#0ad0bb' } - ] - ) - , new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#FF9297' }, - { offset: 1, color: '#FF9297' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#fb78ba' }, - { offset: 1, color: '#ff77dc' } - ] - ), - //涓�鍘� - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#9cc4f6' }, - { offset: 1, color: '#538dd6' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#ffffa2' }, - { offset: 1, color: '#ffff01' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#0bae8d' }, - { offset: 1, color: '#0bae8d' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#ffbc85' }, - { offset: 1, color: '#e26c0a' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#97abd6' }, - { offset: 1, color: '#842cb2' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#99d6cf' }, - { offset: 1, color: '#0ad0bb' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#FF9297' }, - { offset: 1, color: '#FF9297' } - ] - ), - new echarts.graphic.LinearGradient( - 0, 0, 1, 0, - [ - { offset: 0, color: '#fb78ba' }, - { offset: 1, color: '#ff77dc' } - ] - ) - ] - if (params.name == '1-D鐗圭宸ヨ壓' || params.name == '鍘嬫皵鏈轰竴' || params.name == '1-D鐗圭宸ヨ壓鍗曞厓') { - return colorList[24] - } - if (params.name == '2-D鏁翠綋鏈哄專' || params.name == '2-D鏁翠綋鏈哄專鍗曞厓') { - return colorList[25] - } - if (params.name == '3-D鐕冪儳瀹ゆ満鍖�' || params.name == '鐕冪儳瀹ゆ満鍖�' || params.name == '3-D鍘嬫皵鏈烘満鍖e崟鍏�' || params.name == '3-D鍘嬫皵鏈烘満鍖�') { - return colorList[26] - } - if (params.name == '4-D鐒婃帴鏈哄專宸ユ' || params.name == '涓夊伐娈�' || params.name == '鏀灦灏忕幆浠跺崟鍏�' || params.name == '4-D鐒婃帴鏈哄專鍗曞厓') { - return colorList[27] - } - if (params.name == '5-D CRIC鍗曞厓' || params.name == '10-D閮ㄤ欢瑁呴厤鍗曞厓') { - return colorList[4] - } - if (params.name == '6-D椋庢墖鍗曞厓' || params.name == '6-D椋庢墖鏈哄專鍗曞厓') { - return colorList[28] - } - if (params.name == '7-D娑¤疆鏈哄專' || params.name == '7-D娑¤疆鏈哄專鍗曞厓') { - return colorList[29] - } - if (params.name == '8-D绉戠爺宸ユ' || params.name == '绉戠爺宸ユ' || params.name == '8-D绉戠爺鍗曞厓') { - return colorList[30] - } - if (params.name == '10-D閮ㄤ欢瑁呴厤' || params.name == '10-D閮ㄤ欢瑁呴厤鍗曞厓') { - return colorList[31] - } - if (params.name == 'JD-2鍐涘搧鏈哄姞' || params.name == '鍐涘搧鏈哄姞宸ユ' || params.name == '鍥涘伐娈�') { - return colorList[8] - } - if (params.name == '10-D鐢熶骇瀹�' || params.name == 'IGV鍙剁墖') { - return colorList[9] - } - - if (params.name == '浜斿伐娈�') { - return colorList[10] - } - if (params.name == '鍏伐娈�' || params.name == '涓皬鏈哄專鍗曞厓') { - return colorList[11] - } - if (params.name == '娑¤疆鍙剁墖') { - return colorList[12] - } - if (params.name == '浣庡帇瀵煎悜') { - return colorList[13] - } - if (params.name == '浣庡帇鍙剁墖') { - return colorList[14] - } - if (params.name == '瀵煎悜鍙剁墖') { - return colorList[15] - } - if (params.name == '鍘嬫皵鏈轰簩') { - return colorList[16] - } - if (params.name == '鏁存祦涓�') { - return colorList[17] - } - if (params.name == '鏁存祦浜�') { - return colorList[19] - } - if (params.name == '涓�宸ユ' || params.name == '鐩樹欢鍗曞厓') { - return colorList[19] - } - if (params.name == '浜屽伐娈�' || params.name == '缁撴瀯浠跺崟鍏�') { - return colorList[20] - } - if (params.name == '涓冨伐娈�' || params.name == '鐜欢鍗曞厓') { - return colorList[5] - } - // build a color map as your need. - - //return colorList[params.dataIndex] - } - }, - emphasis: { - barBorderRadius: 13, - shadowBlur: 18, - shadowColor: 'rgba(218,170, 58, 0.8)' - } - } - } - ] - } - data.forEach(item => { - if (item.number != 'A_9') { - xAxisData.push(item.name == null ? '' : item.name) - seriesData.push({ - value: this.toDecimal2NoZero(((item.count == null ? '' : item.count) * 100) > 100 ? 100 : (((item.count == null ? '' : item.count) * 100))), - hostType: (item.number == null ? '' : item.number) - }) - } - }) - option.xAxis[0].data = xAxisData - option.series[0].data = seriesData - this.rightColChart3.setOption(option, true) }, //淇濈暀涓や綅灏忔暟 toDecimal2NoZero(x) { const f = Math.round(x * 100) / 100 - const s = f.toString() - return s - }, - - navigateTo(record) { - if (!record.navigateMethod) { - this.$router.push(`/DncWorkshopSignage/${record.navigateUrl}`) - } else { - const url = this.$router.resolve(`${record.navigateUrl}/${id}`).href - window.open(url, '_blank') - } + return f.toString() }, /** - * 绐楀彛灏哄鍙樺寲鏃惰Е鍙� - * 璋冩暣鍥捐〃灏哄浠ラ�傚簲鍒嗚鲸鐜� + * 鍥剧墖棰勮 + * @param text 鍥剧墖鍦板潃 */ - handleWindowResize() { - if (this.leftColChart1) this.leftColChart1.resize() - if (this.rightColChart1) this.rightColChart1.resize() - if (this.rightColChart2) this.rightColChart2.resize() - if (this.rightColChart3) this.rightColChart3.resize() + getImgView(text) { + if (text && text.indexOf(',') > 0) { + text = text.substring(0, text.indexOf(',')) + } + return getFileAccessHttpUrl(text) + }, + + getCurrentDeviceStatusImage(status) { + const currentStatus = this.equipmentStatusList.find(item => item.value.includes(status)) + return currentStatus.statusImage } } } </script> -<style lang="less" scoped> +<style lang="less"> .full-screen { width: 100%; - height: 100%; + height: 1080px; background-color: #000; display: flex; justify-content: center; @@ -5934,34 +4118,10 @@ display: flex; justify-content: space-between; align-items: center; + overflow: auto; - .middle-col { - position: relative; - width: 67%; - height: 100%; - border: 0.1vw solid #0104AB; - background-image: url("../../../assets/workshopLayout3.png"); - background-size: 100% 100%; - background-repeat: no-repeat; - - .navigate-container { - position: absolute; - top: 1.5%; - left: 1%; - - .navigate-item { - margin-top: 6%; - - img { - width: 28%; - cursor: pointer; - } - } - } - } - - .left-col, .right-col { - width: 16%; + .left-col { + flex: 1; height: 100%; display: flex; flex-direction: column; @@ -5969,15 +4129,15 @@ .col-content { width: 100%; - height: 24.25%; - border: 0.1vw solid #0104AB; + height: 19.5%; + border: 0.1vw solid #666; color: #fff; display: flex; flex-direction: column; .content-title { font-size: 0.9vw; - padding-left: 5%; + padding: 1% 5%; } .content-footer-container { @@ -6003,24 +4163,93 @@ height: 100% !important; } } + } + } - .equipment-state-container { - display: flex; - flex-direction: column; - justify-content: space-evenly; - width: 50%; - font-size: 0.6vw; + .right-col { + position: relative; + width: 1500px; + height: 1065px; + margin-left: 0.5%; + /*background-image: url("../../../assets/WorskhopSignage/103.png");*/ + background-color: #000; + background-size: 100% 100%; + background-repeat: no-repeat; + overflow: hidden; - img { - width: 10%; - margin-right: 5%; - } + .single-device { + position: absolute; + border: 1px solid transparent; + padding: 10px; + display: flex; + flex-direction: column; + align-items: center; + justify-content: space-between; + cursor: default; + + &:active { + border: 1px solid #1890ff; } - .server-status { - font-size: 0.8vw; - padding-left: 10%; - height: 12%; + .device-status { + width: 100%; + height: 100%; + display: flex; + -webkit-align-items: flex-end; + -moz-align-items: flex-end; + -ms-align-items: flex-end; + + .device-image { + background-size: 100% 100%; + background-repeat: no-repeat; + width: 100%; + height: 100%; + position: relative; + margin-bottom: 10px; + + .status-image { + position: absolute; + top: 25%; + left: 25%; + background-size: 100% 100%; + background-repeat: no-repeat; + width: 50%; + height: 50%; + } + } + } + } + + .guideline { + position: absolute; + border: 1px dashed #fff; + } + + .guidelineX { + width: 9999px; + left: 0; + } + + .guidelineY { + top: 0; + height: 9999px; + } + + form { + position: absolute; + right: 0; + bottom: 0; + + label { + color: #fff; + } + + .ant-switch { + background-color: #999; + } + + .ant-switch-checked { + background-color: #1890FF; } } } -- Gitblit v1.9.3