1、优化车间看板四色灯状态展示以及限制拖拽区域
2、部分页面右侧区域元素位置离顶过高,调整布局
3、增加设备日志页面增加点击表格行数据展示当前行工作曲线功能
4、优化设备日志页面切换时间,工作曲线弹窗中的时间随之切换
5、优化设备日志页面加载后首次点击工作曲线后无法查询到数据问题(同时发送异步请求,先后顺序影响)
| | |
| | | meta: { title: 'é¦é¡µ' }, |
| | | redirect: '/dashboard/analysis', |
| | | children: [ |
| | | |
| | | // // dashboard |
| | | // { |
| | | // path: '/dashboard', |
| | |
| | | ] |
| | | }, |
| | | { |
| | | path:'/testWorkshop', |
| | | component:()=>import('@/views/TestWorkshop.vue') |
| | | path:'/workshopSignage/:workshopId', |
| | | component:()=>import('@/views/WorkshopSignage.vue') |
| | | }, |
| | | { |
| | | path: '/404', |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <dv-full-screen-container class="full-screen-container"> |
| | | <header class="page-header"> |
| | | {{getWorkshopName}} |
| | | <div class="header-right"> |
| | | <a-button type="primary" icon="save" size="large" @click="saveDevicePositionByApi">ä¿åä½ç½®</a-button> |
| | | </div> |
| | | </header> |
| | | |
| | | <dv-border-box-8 class="content-container"> |
| | | <div v-for="item in deviceList" :key="item.equipmentId" class="single-device" |
| | | :style="{top:item.top+'px',left:item.left+'px',height:'135px',width:'175px'}" @mousedown="handleMouseDown" |
| | | :id="item.equipmentId"> |
| | | <div class="device-status"> |
| | | <img v-if="item.status==0" src="@/assets/yellow.png" draggable="false"> |
| | | <img v-if="item.status==1" src="@/assets/red.png" draggable="false"> |
| | | <img v-if="item.status==2" src="@/assets/gray.png" draggable="false"> |
| | | <img v-if="item.status==3" src="@/assets/green.png" draggable="false"> |
| | | <img :src="item.equipmentImageUrl" draggable="false"> |
| | | </div> |
| | | <div class="device-id">{{item.equipmentId}}</div> |
| | | <!--<div draggable="false" class="device-info">--> |
| | | <!--<div v-if="item.status==0" class="status-square" style="background-color: gray"></div>--> |
| | | <!--<div v-if="item.status==1" class="status-square" style="background-color: red"></div>--> |
| | | <!--<div v-if="item.status==2" class="status-square" style="background-color: green"></div>--> |
| | | <!--<div v-if="item.status==3" class="status-square" style="background-color: yellow"></div>--> |
| | | <!--<div class="device-id">{{item.equipmentId}}</div>--> |
| | | <!--</div>--> |
| | | </div> |
| | | <!--<div style="width: 175px;height: 135px;background-color: red;position: absolute;top: 200px;left: 100px"></div>--> |
| | | </dv-border-box-8> |
| | | </dv-full-screen-container> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | mouseX: 0, // é¼ æ å¨å
ç´ å
çXåæ |
| | | mouseY: 0, // é¼ æ å¨å
ç´ å
çYåæ , |
| | | dragging: false, //æ¯å¦å¨ææ½ä¸ |
| | | left: 0, // å
ç´ å·¦ä¸è§è·ç¦»ç¶å®¹å¨å·¦ä¾§çè·ç¦» |
| | | top: 0, // å
ç´ å·¦ä¸è§è·ç¦»ç¶å®¹å¨é¡¶é¨çè·ç¦», |
| | | elementId: '',// è¢«ææ½å
ç´ çid屿§å¼ |
| | | elementWidth: '', |
| | | elementHeight: '', |
| | | deviceList: [ |
| | | { |
| | | equipmentId: '123213213123232', |
| | | equipmentImageUrl: require('@/assets/8.png'), |
| | | top: 200, |
| | | left: 100, |
| | | status: 1 |
| | | }, |
| | | { |
| | | equipmentId: '512346789561232', |
| | | equipmentImageUrl: require('@/assets/8.png'), |
| | | top: 500, |
| | | left: 753, |
| | | status: 0 |
| | | }, |
| | | { |
| | | equipmentId: '64746965647653', |
| | | equipmentImageUrl: require('@/assets/8.png'), |
| | | top: 300, |
| | | left: 860, |
| | | status: 2 |
| | | }, |
| | | { |
| | | equipmentId: '33548976965462', |
| | | equipmentImageUrl: require('@/assets/8.png'), |
| | | top: 100, |
| | | left: 380, |
| | | status: 3 |
| | | }, |
| | | { |
| | | equipmentId: '85484913549253', |
| | | equipmentImageUrl: require('@/assets/8.png'), |
| | | top: 200, |
| | | left: 1500, |
| | | status: 2 |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | computed: { |
| | | getWorkshopName() { |
| | | switch (this.$route.params.workshopId) { |
| | | case '5321': |
| | | return 'é¿æ²è½¦é´' |
| | | case '6312': |
| | | return '天津车é´' |
| | | case '3463': |
| | | return 'æ¦æ±è½¦é´' |
| | | case '8421': |
| | | return 'å京车é´' |
| | | default: |
| | | return 'æµè¯è½¦é´' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | /** |
| | | * éè¿è½¦é´Idè°ç¨æ¥å£è·å设å¤å表 |
| | | * @param workshopId 车é´Id |
| | | */ |
| | | getDeviceListByApi(workshopId) { |
| | | console.log('车é´Id', workshopId) |
| | | }, |
| | | /** |
| | | * ææ½å¯¹è±¡é¼ æ æé®æä¸äºä»¶ |
| | | * @param event |
| | | */ |
| | | handleMouseDown(event) { |
| | | this.dragging = true |
| | | this.mouseX = event.clientX |
| | | this.mouseY = event.clientY |
| | | this.elementId = event.currentTarget.id |
| | | this.top = event.currentTarget.offsetTop |
| | | this.left = event.currentTarget.offsetLeft |
| | | document.addEventListener('mousemove', this.handleMouseMove) |
| | | document.addEventListener('mouseup', this.handleMouseUp) |
| | | this.elementWidth = +event.currentTarget.style.width.replace('px', '') |
| | | this.elementHeight = +event.currentTarget.style.height.replace('px', '') |
| | | }, |
| | | /** |
| | | * ææ¡£å¯¹è±¡é¼ æ ç§»å¨äºä»¶ |
| | | * @param event |
| | | */ |
| | | handleMouseMove(event) { |
| | | if (this.dragging) { |
| | | // xæ¹åé¼ æ åç§»é |
| | | const deltaX = event.clientX - this.mouseX |
| | | // yæ¹åé¼ æ åç§»é |
| | | const deltaY = event.clientY - this.mouseY |
| | | this.left += deltaX |
| | | this.top += deltaY |
| | | this.deviceList.forEach(item => { |
| | | if (item.equipmentId === this.elementId) { |
| | | item.top = this.top |
| | | item.left = this.left |
| | | // éå¶ææ½è¶
åºåºå(ç¼©æ¾æµè§å¨çªå£åè·åå¨è·ç¦»åºç°é®é¢) |
| | | if (item.top < 0) { |
| | | item.top = 0 |
| | | } else if (item.top + this.elementHeight + 80 > window.innerHeight) { |
| | | item.top = window.innerHeight- this.elementHeight |
| | | } |
| | | if (item.left < 0) { |
| | | item.left = 0 |
| | | } else if (item.left + this.elementWidth > window.innerWidth) { |
| | | item.left = window.innerWidth - this.elementWidth |
| | | } |
| | | } |
| | | }) |
| | | this.mouseX = event.clientX |
| | | this.mouseY = event.clientY |
| | | } |
| | | }, |
| | | /** |
| | | * ææ¡£å¯¹è±¡é¼ æ æé®å¼¹èµ·äºä»¶ |
| | | * @param event |
| | | */ |
| | | handleMouseUp(event) { |
| | | this.dragging = false |
| | | document.removeEventListener('mousemove', this.handleMouseMove) |
| | | document.removeEventListener('mouseup', this.handleMouseUp) |
| | | }, |
| | | /** |
| | | * ç¹å»ä¿åæé®è°ç¨æ¥å£ä¿åææ½åçä½ç½® |
| | | */ |
| | | saveDevicePositionByApi() { |
| | | console.log('ä¿åä½ç½®') |
| | | |
| | | } |
| | | }, |
| | | mounted() { |
| | | // ç¦æ¢ç¨æ·éä¸å
容 |
| | | document.onselectstart = () => false |
| | | }, |
| | | created() { |
| | | if (this.$route.params.workshopId) { |
| | | this.getDeviceListByApi(this.$route.params.workshopId) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .full-screen-container { |
| | | background-image: url('../assets/Bj.jpg'); |
| | | background-size: 100% 100%; |
| | | color: #fff; |
| | | |
| | | .page-header { |
| | | height: 80px; |
| | | font-size: 50px; |
| | | text-align: center; |
| | | position: relative; |
| | | .header-right { |
| | | position: absolute; |
| | | right: 200px; |
| | | top: 0; |
| | | } |
| | | } |
| | | |
| | | .content-container { |
| | | position: relative; |
| | | .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 #00b3ff; |
| | | } |
| | | .device-status { |
| | | width: 145px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | .device-id { |
| | | font-size: 20px; |
| | | } |
| | | /*.device-info {*/ |
| | | /*width: 100%;*/ |
| | | /*display: flex;*/ |
| | | /*align-items: center;*/ |
| | | /*justify-content: space-between;*/ |
| | | /*.status-square {*/ |
| | | /*width: 14px;*/ |
| | | /*height: 14px;*/ |
| | | /*border: 1px solid #fff;*/ |
| | | /*border-radius: 2px;*/ |
| | | /*}*/ |
| | | /*}*/ |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <!--<index-bdc v-if="indexStyle==2"></index-bdc>--> |
| | | <!--<index-task v-if="indexStyle==3"></index-task>--> |
| | | <!--<div style="width: 100%;text-align: right;margin-top: 20px">--> |
| | | <!--è¯·éæ©é¦é¡µæ ·å¼ï¼--> |
| | | <!--<!–<a-radio-group v-model="indexStyle">–>--> |
| | | <!--<!–<a-radio :value="1">ç»è®¡å¾è¡¨</a-radio>–>--> |
| | | <!--<!–<a-radio :value="2">ç»è®¡å¾è¡¨2</a-radio>–>--> |
| | | <!--<!–<a-radio :value="3">ä»»å¡è¡¨æ ¼</a-radio>–>--> |
| | | <!--<!–</a-radio-group>–>--> |
| | | <!--è¯·éæ©é¦é¡µæ ·å¼ï¼--> |
| | | <!--<!–<a-radio-group v-model="indexStyle">–>--> |
| | | <!--<!–<a-radio :value="1">ç»è®¡å¾è¡¨</a-radio>–>--> |
| | | <!--<!–<a-radio :value="2">ç»è®¡å¾è¡¨2</a-radio>–>--> |
| | | <!--<!–<a-radio :value="3">ä»»å¡è¡¨æ ¼</a-radio>–>--> |
| | | <!--<!–</a-radio-group>–>--> |
| | | <!--</div>--> |
| | | <a-button type="primary" @click="navigateToTestWorkshop">è·³è½¬è³æµè¯è½¦é´</a-button> |
| | | <a-button type="primary" size="large" v-for="item in workshopList" :key="item.workshopId" |
| | | @click="navigateToWorkshopSignage(item.workshopId)">{{item.workshopName}} |
| | | </a-button> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import IndexChart from './IndexChart' |
| | | import IndexTask from "./IndexTask" |
| | | import IndexTask from './IndexTask' |
| | | import IndexBdc from './IndexBdc' |
| | | |
| | | export default { |
| | | name: "Analysis", |
| | | name: 'Analysis', |
| | | components: { |
| | | IndexChart, |
| | | IndexTask, |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | indexStyle:1 |
| | | indexStyle: 1, |
| | | workshopList: [ |
| | | { |
| | | workshopName: 'é¿æ²è½¦é´', |
| | | workshopId: '5321' |
| | | }, |
| | | { |
| | | workshopName: '天津车é´', |
| | | workshopId: '6312' |
| | | }, |
| | | { |
| | | workshopName: 'æ¦æ±è½¦é´', |
| | | workshopId: '3463' |
| | | }, |
| | | { |
| | | workshopName: 'å京车é´', |
| | | workshopId: '8421' |
| | | } |
| | | ] |
| | | } |
| | | }, |
| | | created() { |
| | | |
| | | }, |
| | | methods: { |
| | | navigateToTestWorkshop(){ |
| | | const url=this.$router.resolve('/testWorkshop').href |
| | | window.open(url,'_blank') |
| | | navigateToWorkshopSignage(workshopId) { |
| | | const url = this.$router.resolve(`/workshopSignage/${workshopId}`).href |
| | | window.open(url, '_blank') |
| | | } |
| | | } |
| | | } |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | <holiday-management-modal ref="modalForm" @ok="modalFormOk"></holiday-management-modal> |
| | | <holiday-management-modal-edit ref="modalFormedit" @ok="modalFormOk"></holiday-management-modal-edit> |
| | | |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | <!--<device-repair-model-add ref="modalFormadd" @ok="modalFormOk"></device-repair-model-add>--> |
| | | <!--<device-repair-model-edit ref="modalFormedit" @ok="modalFormOk"></device-repair-model-edit>--> |
| | | <!--<repair-model ref="repairModelFrom" @ok="modalFormOk"></repair-model>--> |
| | | |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | <!--<device-repair-model-edit ref="modalFormedit" @ok="modalFormOk"></device-repair-model-edit>--> |
| | | <!--<repair-model ref="repairModelFrom" @ok="modalFormOk"></repair-model>--> |
| | | |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | <plan-downtime-maintenance-modal ref="modalForm" @ok="modalFormOk"></plan-downtime-maintenance-modal> |
| | | <plan-downtime-maintenance-modal-edit ref="modalFormedit" @ok="modalFormOk"></plan-downtime-maintenance-modal-edit> |
| | | |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <div class="efficiency_list" style="width: 100%;height: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <div :bordered="false" style="height: 100%"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | <div id="MdcEquipmentWarningLine" style="height: 100%;width: 65%;"></div> |
| | | </div> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <div class="com_box"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | |
| | | </div> |
| | | <!-- tableåºå-end --> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <div class="deviceCalendar_list"> |
| | | <a-card :bordered="false"> |
| | | <div :bordered="false"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | |
| | | <div> |
| | |
| | | </a-table> |
| | | </div> |
| | | <device-calendar-model ref="modalForm" @ok="modalFormOk"></device-calendar-model> |
| | | </a-card> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | </a-col> |
| | | <a-col :md="6" :sm="6"> |
| | | <a-form-item label="æ¥æ"> |
| | | <a-date-picker v-model="queryParams.collectTime" :disabledDate="disabledDate" @change="dataChange" format='YYYY-MM-DD'/> |
| | | <a-date-picker v-model="queryParams.collectTime" :disabledDate="disabledDate" @change="dataChange" |
| | | format='YYYY-MM-DD'/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :md="3" :sm="3"> |
| | |
| | | <span v-if="item.status == 23" |
| | | :style='{display: "inline-block",width:item.dateProportion, height: "100%", background: "#19FE01",position:"absolute",bottom:"0"}'></span> |
| | | </div> |
| | | <div v-if="item.status == 22" style="z-index: 999;" |
| | | :style='{display: "inline-block",left:item.left,width:item.dateProportion, height: "100%",position:"absolute"}' |
| | | v-for="item in waring"> |
| | | <div v-if="item.status == 22" style="z-index: 999;" |
| | | :style='{display: "inline-block",left:item.left,width:item.dateProportion, height: "100%",position:"absolute"}' |
| | | v-for="item in waring"> |
| | | <span |
| | | :style='{display: "inline-block",width:"100%", left:0, height: "68%", background: "#FD0008",position:"absolute",bottom:"0"}'></span> |
| | | </div> |
| | |
| | | </a-tabs> |
| | | </div> |
| | | </div> |
| | | <work-chart-model ref="workChartModel"></work-chart-model> |
| | | <work-chart-model ref="workChartModel" :collectTime="this.queryParams.collectTime" |
| | | :equipment="this.equipment"></work-chart-model> |
| | | <work-history-model ref="workHistoryModel"></work-history-model> |
| | | </div> |
| | | </template> |
| | |
| | | props: { equement: {} }, |
| | | data() { |
| | | return { |
| | | readOnly:true, |
| | | readOnly: true, |
| | | defaultId: '', |
| | | defaultName: '', |
| | | middleTime: '', |
| | | queryParam:{}, |
| | | queryParam: {}, |
| | | queryParams: { |
| | | collectTime:undefined, |
| | | collectTime: undefined |
| | | }, |
| | | loadingstayus:false, |
| | | loadingrunStatus:false, |
| | | loadingwarnStatus:false, |
| | | loadingstayus: false, |
| | | loadingrunStatus: false, |
| | | loadingwarnStatus: false, |
| | | normal: [], |
| | | waring: [], |
| | | normalList: [], |
| | |
| | | getEquipmentByPid: '/mdc/mdcEquipment/getEquipmentByPid', |
| | | list: '/mdc/mdcEquipmentRunningSection/logList' |
| | | }, |
| | | ProStartId:'' |
| | | ProStartId: '' |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | tabChange(val) { |
| | | this.activeKey = val |
| | | }, |
| | | disabledDate(current){ |
| | | disabledDate(current) { |
| | | //Can not slect days before today and today |
| | | return current && current > moment().subtract('days', 0); |
| | | return current && current > moment().subtract('days', 0) |
| | | }, |
| | | queryChart() { |
| | | // this.normal = [] |
| | | // this.waring = [] |
| | | this.loadingstayus = true; |
| | | this.loadingrunStatus = true; |
| | | this.loadingstayus = true |
| | | this.loadingrunStatus = true |
| | | this.loadingwarnStatus = true |
| | | getAction(this.url.list, this.queryParams).then((res) => { |
| | | this.normalList = [] |
| | | this.waringList = [] |
| | | this.runList = [] |
| | | this.loadingstayus = false; |
| | | this.loadingrunStatus = false; |
| | | this.loadingstayus = false |
| | | this.loadingrunStatus = false |
| | | this.loadingwarnStatus = false |
| | | this.normal = [] |
| | | this.waring = [] |
| | | if (res.success) { |
| | | if(res.result != null){ |
| | | if (res.result != null) { |
| | | for (let i = 0; i < res.result.length; i++) { |
| | | this.normalList.push(res.result[i]) |
| | | if ('22' == res.result[i].status) { |
| | |
| | | res.result[i].left = leftTmp / 86400 * 100 + '%' |
| | | this.waring.push(res.result[i]) |
| | | |
| | | }else if('3' == res.result[i].status){ |
| | | } else if ('3' == res.result[i].status) { |
| | | this.runList.push(res.result[i]) |
| | | res.result[i].dateProportion = res.result[i].duration / 86400 * 100 + '%' |
| | | this.normal.push(res.result[i]) |
| | | }else{ |
| | | } else { |
| | | res.result[i].dateProportion = res.result[i].duration / 86400 * 100 + '%' |
| | | this.normal.push(res.result[i]) |
| | | // console.log(this.normal) |
| | |
| | | }, |
| | | searchQuery() { |
| | | // console.log(this.queryParams.collectTime) |
| | | if(this.queryParams.collectTime != undefined){ |
| | | if (this.queryParams.collectTime != undefined) { |
| | | this.queryParams.collectTimeStr = this.queryParams.collectTime.format('YYYY-MM-DD') |
| | | if(!this.queryParams.equipmentId||!this.queryParams.equipmentName){ |
| | | if (!this.queryParams.equipmentId || !this.queryParams.equipmentName) { |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:"è¯·éæ©è®¾å¤" |
| | | }); |
| | | message: 'æ¶æ¯', |
| | | description: 'è¯·éæ©è®¾å¤' |
| | | }) |
| | | return false |
| | | } |
| | | this.queryChart() |
| | | }else{ |
| | | } else { |
| | | // this.$message.warning("è¯·éæ©æ¶é´") |
| | | console.log('触åæç¤º') |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:"è¯·éæ©æ¶é´" |
| | | }); |
| | | message: 'æ¶æ¯', |
| | | description: 'è¯·éæ©æ¶é´' |
| | | }) |
| | | } |
| | | // this.queryList() |
| | | }, |
| | |
| | | // this.onClearSelected() |
| | | }, |
| | | openWorkChart() { |
| | | if(!this.equipment.equipmentId){ |
| | | if (!this.equipment.equipmentId) { |
| | | // this.$message.warning("è¯·éæ©è®¾å¤è¿è¡æ¥è¯¢") |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:"è¯·éæ©è®¾å¤è¿è¡æ¥è¯¢" |
| | | }); |
| | | }else{ |
| | | message: 'æ¶æ¯', |
| | | description: 'è¯·éæ©è®¾å¤è¿è¡æ¥è¯¢' |
| | | }) |
| | | } else { |
| | | // 夿æ¯å¦ç¹å»è®¾å¤æ¥å¿è¡¨æ ¼è¡çæ°æ®ï¼æ¤æ¶ä¸ºç¹å»è¡¨æ ¼æ°æ®ä¸ºfalse |
| | | this.$refs.workChartModel.isClicklogListRow = false |
| | | this.$refs.workChartModel.add(this.equipment) |
| | | this.$refs.workChartModel.title = '工使²çº¿' |
| | | } |
| | | |
| | | }, |
| | | openHistoryChart() { |
| | | // console.log(this.equipment); |
| | | if(!this.equipment.equipmentId){ |
| | | if (!this.equipment.equipmentId) { |
| | | // this.$message.warning("è¯·éæ©è®¾å¤è¿è¡æ¥è¯¢") |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:"è¯·éæ©è®¾å¤è¿è¡æ¥è¯¢" |
| | | }); |
| | | message: 'æ¶æ¯', |
| | | description: 'è¯·éæ©è®¾å¤è¿è¡æ¥è¯¢' |
| | | }) |
| | | // console.log(1111) |
| | | } else{ |
| | | } else { |
| | | this.$refs.workHistoryModel.add(this.equipment) |
| | | this.$refs.workHistoryModel.title = 'å岿¥å¿' |
| | | } |
| | |
| | | this.searchQuery() |
| | | }, |
| | | dataAfter() { |
| | | if((this.queryParams.collectTime).format('YYYY-MM-DD') == moment().format('YYYY-MM-DD')){ |
| | | if ((this.queryParams.collectTime).format('YYYY-MM-DD') == moment().format('YYYY-MM-DD')) { |
| | | // this.$message.warning("è¯·éæ©ä»å¤©ä»¥åä»å¤©ä¹åçæ¥æï¼ï¼") |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:'è¯·éæ©ä»å¤©ä»¥åä»å¤©ä¹åçæ¥æï¼ï¼' |
| | | }); |
| | | }else{ |
| | | message: 'æ¶æ¯', |
| | | description: 'è¯·éæ©ä»å¤©ä»¥åä»å¤©ä¹åçæ¥æï¼ï¼' |
| | | }) |
| | | } else { |
| | | this.queryParams.collectTime = moment(this.queryParams.collectTime.add(1, 'd'), 'YYYY-MM-DD') |
| | | this.searchQuery() |
| | | } |
| | |
| | | this.equipment = {} |
| | | // _this.$message.warning('请è系管çåï¼å¼æ¾è®¾å¤æéï¼') |
| | | _this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:'请è系管çåï¼å¼æ¾è®¾å¤æéï¼' |
| | | }); |
| | | message: 'æ¶æ¯', |
| | | description: '请è系管çåï¼å¼æ¾è®¾å¤æéï¼' |
| | | }) |
| | | } |
| | | }else{ |
| | | } else { |
| | | // this.$message.warning(res.message) |
| | | _this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:res.message |
| | | }); |
| | | message: 'æ¶æ¯', |
| | | description: res.message |
| | | }) |
| | | |
| | | } |
| | | }) |
| | |
| | | created() { |
| | | this.queryParams.collectTime = moment() |
| | | this.queryParams.collectTimeStr = this.queryParams.collectTime.format('YYYY-MM-DD') |
| | | this.initEquipment(); |
| | | this.initEquipment() |
| | | // this.queryTreeData(); |
| | | }, |
| | | watch: { |
| | | equement(val) { |
| | | console.log('éè¿watch触å') |
| | | |
| | | if (val && val.equipmentId) { |
| | | this.$set(this.queryParams, 'equipmentName', val.equipmentName) |
| | | this.$set(this.queryParams, 'equipmentId', val.equipmentId) |
| | |
| | | #mdcLogShow > div { |
| | | flex: 1; |
| | | } |
| | | |
| | | /*.mdcLogShowOne{*/ |
| | | /*position: absolute;*/ |
| | | /*position: absolute;*/ |
| | | /*}*/ |
| | | </style> |
| | |
| | | <!-- tableåºå-begin --> |
| | | <div class="table_logList"> |
| | | <a-table ref="table" bordered size="middle" :rowKey="(record,index)=>{return index}" :columns="columns" |
| | | :dataSource="dataList" :pagination="ipagination" :loading="loadingequip" @change="handleTableChange"> |
| | | :dataSource="dataList" :pagination="ipagination" :loading="loadingequip" @change="handleTableChange" :customRow="rowClick"> |
| | | <template slot="status" slot-scope="status"> |
| | | <div v-if="status == '3' || status == '23'" style="color: #00ee00;width: 100%; height: 100%;">è¿è¡</div> |
| | | <div v-else-if="status == '1' || status == '2'" style="color: #ffea91;width: 100%; height: 100%;">å¾
æº</div> |
| | |
| | | import { |
| | | JeecgListMixin |
| | | } from '@/mixins/JeecgListMixin' |
| | | import moment from 'moment' |
| | | export default { |
| | | name: 'LogList', |
| | | mixins: [JeecgListMixin], |
| | |
| | | this.ipagination = pagination; |
| | | // this.loadData(); |
| | | }, |
| | | /** |
| | | * ç»è®¾å¤æ¥å¿è¡¨æ ¼ä¸çè¡æ·»å ç¹å»äºä»¶ |
| | | * @param record ç¹å»çå½åè¡æ°æ® |
| | | * @returns {{on: {click: on.click}}} æ·»å äºä»¶å¯¹è±¡ |
| | | */ |
| | | rowClick(record){ |
| | | return { |
| | | on:{ |
| | | click:()=>{ |
| | | const timeObj={ |
| | | start:moment(record.startTime), |
| | | end:moment(record.endTime) |
| | | } |
| | | this.$bus.$emit('tableRowRecord',timeObj) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | created() { |
| | | } |
| | |
| | | <template> |
| | | <div ref="workChart"> |
| | | <a-modal :title="title" :getContainer="() => this.$refs.workChart" width="80%" wrap-class-name="full-modal" :footer="null" :visible="visible" |
| | | <a-modal :title="title" :getContainer="() => this.$refs.workChart" width="80%" wrap-class-name="full-modal" |
| | | :footer="null" :visible="visible" |
| | | @cancel="handleCancel" cancelText="å
³é"> |
| | | <div> |
| | | <div> |
| | |
| | | </a-col> |
| | | <a-col :span="6"> |
| | | <a-form-item label="æ¥æ" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-date-picker v-model="queryParams.paramDate" :disabledDate="disabledDate" format='YYYY-MM-DD'/> |
| | | <a-date-picker v-model="queryParams.paramDate" :disabledDate="disabledDate" format='YYYY-MM-DD'/> |
| | | </a-form-item> |
| | | </a-col> |
| | | <a-col :span="6"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import * as echarts from 'echarts' |
| | | import { |
| | | getAction, |
| | | postAction |
| | | } from '@/api/manage' |
| | | import { |
| | | duplicateCheck |
| | | } from '@/api/api' |
| | | import moment from 'moment' |
| | | import * as echarts from 'echarts' |
| | | import { |
| | | getAction, |
| | | postAction |
| | | } from '@/api/manage' |
| | | import { |
| | | duplicateCheck |
| | | } from '@/api/api' |
| | | |
| | | export default { |
| | | name: 'WorkChartModel', |
| | | components: {}, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | | spinning:false, |
| | | labelCol: { |
| | | xs: { |
| | | span: 24 |
| | | }, |
| | | sm: { |
| | | span: 6 |
| | | } |
| | | export default { |
| | | name: 'WorkChartModel', |
| | | components: {}, |
| | | props: { |
| | | collectTime: { |
| | | type: Object |
| | | }, |
| | | wrapperCol: { |
| | | xs: { |
| | | span: 24 |
| | | equipment: { |
| | | type: Object |
| | | } |
| | | }, |
| | | watch: { |
| | | // çæ§ç¶ç»ä»¶ç¹å»å·¦å³ç®å¤´åæ¢çæ¶é´å¼å°å
¶èµç»ç¹å»å·¥ä½æ²çº¿åçæ¶é´éæ©å¨çå¼ |
| | | collectTime: { |
| | | handler(newVal) { |
| | | this.currentToggledTime = newVal |
| | | } |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | spinning: false, |
| | | labelCol: { |
| | | xs: { |
| | | span: 24 |
| | | }, |
| | | sm: { |
| | | span: 6 |
| | | } |
| | | }, |
| | | sm: { |
| | | span: 18 |
| | | } |
| | | wrapperCol: { |
| | | xs: { |
| | | span: 24 |
| | | }, |
| | | sm: { |
| | | span: 18 |
| | | } |
| | | }, |
| | | readOnly: true, |
| | | title: '', |
| | | plainOptions: [], |
| | | option: [], |
| | | workChart: '', |
| | | node: {}, |
| | | stratOpen: false, |
| | | endOpen: false, |
| | | visible: false, |
| | | show: false, |
| | | queryParams: {}, |
| | | panduanResult: [], |
| | | url: { |
| | | initPlainOptions: '/mdc/mdcDriveTypeParamConfig/findWorkCurveParamList', |
| | | workChart: '/mdc/mdcEquipmentRunningSection/workChart' |
| | | }, |
| | | currentToggledTime: '', |
| | | isClicklogListRow: false |
| | | } |
| | | }, |
| | | created() { |
| | | this.$bus.$on('tableRowRecord', this.getLogListRowRecord) |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | methods: { |
| | | disabledDate(current) { |
| | | //Can not slect days before today and today |
| | | return current && current > moment().endOf('day') |
| | | }, |
| | | readOnly:true, |
| | | title: '', |
| | | plainOptions: [], |
| | | option: [], |
| | | workChart: '', |
| | | node: {}, |
| | | stratOpen: false, |
| | | endOpen: false, |
| | | visible: false, |
| | | show: false, |
| | | queryParams: {}, |
| | | panduanResult:[], |
| | | url: { |
| | | initPlainOptions: '/mdc/mdcDriveTypeParamConfig/findWorkCurveParamList', |
| | | workChart: '/mdc/mdcEquipmentRunningSection/workChart' |
| | | } |
| | | } |
| | | }, |
| | | mounted() { |
| | | }, |
| | | methods: { |
| | | disabledDate(current){ |
| | | //Can not slect days before today and today |
| | | return current && current > moment().endOf("day"); |
| | | }, |
| | | initPlainOptions(param) { |
| | | let that = this |
| | | let equipment = param.equipmentId |
| | | getAction(this.url.initPlainOptions,{equipmentId:equipment}).then((res) => { |
| | | if (res.success) { |
| | | let temp = [] |
| | | // debugger |
| | | for (var item of res.result) { |
| | | temp.push({ label: item.chineseName, value: item.id, englishName: item.englishName }) |
| | | initPlainOptions(param) { |
| | | let that = this |
| | | let equipment = param.equipmentId |
| | | getAction(this.url.initPlainOptions, { equipmentId: equipment }).then((res) => { |
| | | if (res.success) { |
| | | let temp = [] |
| | | // debugger |
| | | for (var item of res.result) { |
| | | temp.push({ label: item.chineseName, value: item.id, englishName: item.englishName }) |
| | | } |
| | | that.plainOptions = temp |
| | | |
| | | if (temp.length > 0) { |
| | | that.option = [temp[0].value] |
| | | let param = { |
| | | driveType: that.node.driveType, |
| | | equipmentId: that.node.equipmentId, |
| | | date: that.queryParams.paramDateStr, |
| | | start: that.queryParams.startStr, |
| | | end: that.queryParams.endStr, |
| | | interval: that.queryParams.period, |
| | | codeTypeId: that.option.join(',') |
| | | } |
| | | that.initChart(param) |
| | | } |
| | | } |
| | | that.plainOptions = temp |
| | | if(temp.length>0){ |
| | | that.option = [temp[0].value] |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | searchQuery() { |
| | | this.queryParams.paramDateStr = this.queryParams.paramDate.format('yyyy-MM-DD') |
| | | this.queryParams.startStr = this.queryParams.start.format('HH:mm') |
| | | this.queryParams.endStr = this.queryParams.end.format('HH:mm') |
| | | let param = { |
| | | driveType: this.node.driveType, equipmentId: this.node.equipmentId, |
| | | date: this.queryParams.paramDateStr, start: this.queryParams.startStr, |
| | | end: this.queryParams.endStr, interval: this.queryParams.period, |
| | | codeTypeId: this.option.join(',') |
| | | } |
| | | this.initChart(param); |
| | | this.spinning = true; |
| | | }, |
| | | timeHandleChange(val) { |
| | | if (val == 'start') { |
| | | this.stratOpen = true |
| | | } else { |
| | | this.endOpen = true |
| | | } |
| | | }, |
| | | timeHandleClose(val) { |
| | | if (val == 'start') { |
| | | this.stratOpen = false |
| | | this.endOpen = true |
| | | } else { |
| | | this.endOpen = false |
| | | } |
| | | }, |
| | | add(node) { |
| | | let _this = this |
| | | this.visible = true |
| | | this.node = node |
| | | let paramDate = moment() |
| | | let start = moment('0:0', 'HH:mm') |
| | | let end = moment(moment().format('HH:mm'), 'HH:mm') |
| | | this.queryParams = { |
| | | equipmentId: node.equipmentId, |
| | | equipmentName: node.equipmentName, |
| | | period: 1000, |
| | | paramDate: paramDate, |
| | | paramDateStr: paramDate.format('yyyy-MM-DD'), |
| | | start: start, |
| | | startStr: start.format('HH:mm'), |
| | | end: end, |
| | | endStr: end.format('HH:mm') |
| | | } |
| | | this.$nextTick(() => { |
| | | _this.initPlainOptions(node) |
| | | }) |
| | | }, |
| | | searchQuery() { |
| | | this.queryParams.paramDateStr = this.queryParams.paramDate.format('yyyy-MM-DD') |
| | | this.queryParams.startStr = this.queryParams.start.format('HH:mm') |
| | | this.queryParams.endStr = this.queryParams.end.format('HH:mm') |
| | | let param = { |
| | | driveType: node.driveType, equipmentId: node.equipmentId, |
| | | date: _this.queryParams.paramDateStr, start: _this.queryParams.startStr, |
| | | end: _this.queryParams.endStr, interval: _this.queryParams.period, |
| | | codeTypeId: _this.option.join(',') |
| | | driveType: this.node.driveType, equipmentId: this.node.equipmentId, |
| | | date: this.queryParams.paramDateStr, start: this.queryParams.startStr, |
| | | end: this.queryParams.endStr, interval: this.queryParams.period, |
| | | codeTypeId: this.option.join(',') |
| | | } |
| | | _this.initChart(param) |
| | | }) |
| | | }, |
| | | handleCancel() { |
| | | this.visible = false; |
| | | this.stratOpen = false; |
| | | this.endOpen = false; |
| | | }, |
| | | checkboxOnChange(e) { |
| | | if (e.length <= 3) { |
| | | this.option = e |
| | | } else { |
| | | // this.$message.warn('æå¤åªè½éæ©3个') |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:'æå¤åªè½éæ©ä¸ä¸ª' |
| | | }); |
| | | return false |
| | | } |
| | | }, |
| | | close() { |
| | | this.visible = false |
| | | this.show = false |
| | | }, |
| | | getYAxisOffset(index) { |
| | | return index * 50 + 10; |
| | | }, |
| | | initChart(param) { |
| | | if (!this.workChart) { |
| | | this.workChart = echarts.init(document.getElementById('workChart')) |
| | | } |
| | | this.initChart(param) |
| | | this.spinning = true |
| | | }, |
| | | timeHandleChange(val) { |
| | | if (val == 'start') { |
| | | this.stratOpen = true |
| | | } else { |
| | | this.endOpen = true |
| | | } |
| | | }, |
| | | timeHandleClose(val) { |
| | | if (val == 'start') { |
| | | this.stratOpen = false |
| | | this.endOpen = true |
| | | } else { |
| | | this.endOpen = false |
| | | } |
| | | }, |
| | | add(node) { |
| | | let _this = this |
| | | this.visible = true |
| | | this.node = node |
| | | this.spinning = true |
| | | let paramDate |
| | | let start |
| | | let end |
| | | // 彿²¡æåæ¢è¿æ¶é´currentToggledTimeçå¼ä¸ºç©ºå¼ï¼å¦æç±äºç¹å»å·¦å³ç®å¤´åæ¢è¿æ¶é´ï¼åcurrentToggledTimeä¸ºåæ¢åçæ¶é´ |
| | | if (!this.currentToggledTime) { |
| | | paramDate = moment() |
| | | } else { |
| | | paramDate = this.currentToggledTime |
| | | } |
| | | // 夿æ¯å¦ç¹å»è®¾å¤æ¥å¿è¡¨æ ¼è¡çæ°æ®ï¼è¥ç¹å»è¡¨æ ¼æ°æ®åæ¾ç¤ºè¡¨æ ¼æ°æ®ä¸çæ¶é´ï¼è¥ç¹å»å·¥ä½æ²çº¿å¾çåæ¾ç¤º0ç¹è³å½åæ¶é´æ°æ® |
| | | if (this.isClicklogListRow) { |
| | | start = node.start |
| | | end = node.end |
| | | } else { |
| | | start = moment('0:0', 'HH:mm') |
| | | end = moment(moment().format('HH:mm'), 'HH:mm') |
| | | } |
| | | this.queryParams = { |
| | | equipmentId: node.equipmentId, |
| | | equipmentName: node.equipmentName, |
| | | period: 1000, |
| | | paramDate: paramDate, |
| | | paramDateStr: paramDate.format('yyyy-MM-DD'), |
| | | start: start, |
| | | startStr: start.format('HH:mm'), |
| | | end: end, |
| | | endStr: end.format('HH:mm') |
| | | } |
| | | this.$nextTick(() => { |
| | | _this.initPlainOptions(node) |
| | | }) |
| | | }, |
| | | handleCancel() { |
| | | this.visible = false |
| | | this.stratOpen = false |
| | | this.endOpen = false |
| | | }, |
| | | checkboxOnChange(e) { |
| | | if (e.length <= 3) { |
| | | this.option = e |
| | | } else { |
| | | // this.$message.warn('æå¤åªè½éæ©3个') |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: 'æå¤åªè½éæ©ä¸ä¸ª' |
| | | }) |
| | | return false |
| | | } |
| | | }, |
| | | close() { |
| | | this.visible = false |
| | | this.show = false |
| | | }, |
| | | getYAxisOffset(index) { |
| | | return index * 50 + 10 |
| | | }, |
| | | initChart(param) { |
| | | if (!this.workChart) { |
| | | this.workChart = echarts.init(document.getElementById('workChart')) |
| | | } |
| | | let option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | |
| | | } |
| | | }, |
| | | legend: { |
| | | data:[], |
| | | data: [] |
| | | }, |
| | | title: { |
| | | left: 'center', |
| | |
| | | saveAsImage: {} |
| | | } |
| | | }, |
| | | grid:{ |
| | | left:'8%', |
| | | top:'10%', |
| | | right:'2%', |
| | | bottom:'14%', |
| | | containLabel:true |
| | | grid: { |
| | | left: '8%', |
| | | top: '10%', |
| | | right: '2%', |
| | | bottom: '14%', |
| | | containLabel: true |
| | | }, |
| | | xAxis: { |
| | | type: 'time', |
| | |
| | | }, |
| | | yAxis: [ |
| | | { |
| | | yAxisIndex:0, |
| | | type: 'value', |
| | | offset:0, |
| | | position:'left', |
| | | boundaryGap: [0, '15%'], |
| | | axisLine:{ |
| | | show:true, |
| | | // lineStyle:{ |
| | | // color:'#000000' |
| | | // } |
| | | } |
| | | }, |
| | | { |
| | | yAxisIndex:1, |
| | | yAxisIndex: 0, |
| | | type: 'value', |
| | | offset:60, |
| | | position:'left', |
| | | offset: 0, |
| | | position: 'left', |
| | | boundaryGap: [0, '15%'], |
| | | axisLine:{ |
| | | show:true, |
| | | axisLine: { |
| | | show: true |
| | | // lineStyle:{ |
| | | // color:'#000000' |
| | | // } |
| | | } |
| | | }, |
| | | { |
| | | yAxisIndex:2, |
| | | yAxisIndex: 1, |
| | | type: 'value', |
| | | offset:120, |
| | | position:'left', |
| | | offset: 60, |
| | | position: 'left', |
| | | boundaryGap: [0, '15%'], |
| | | axisLine:{ |
| | | show:true, |
| | | axisLine: { |
| | | show: true |
| | | // lineStyle:{ |
| | | // color:'#000000' |
| | | // } |
| | | } |
| | | }, |
| | | { |
| | | yAxisIndex: 2, |
| | | type: 'value', |
| | | offset: 120, |
| | | position: 'left', |
| | | boundaryGap: [0, '15%'], |
| | | axisLine: { |
| | | show: true |
| | | // lineStyle:{ |
| | | // color:'#000000' |
| | | // } |
| | | } |
| | | } |
| | | ], |
| | | dataZoom: [ |
| | | { |
| | |
| | | end: 20 |
| | | } |
| | | ], |
| | | series:[ |
| | | series: [ |
| | | { |
| | | showSymbol:true, |
| | | symbolSize:20, |
| | | label:'show', |
| | | name:'', |
| | | type:'line', |
| | | data:[], |
| | | smooth:true, |
| | | symbol:'none', |
| | | showSymbol: true, |
| | | symbolSize: 20, |
| | | label: 'show', |
| | | name: '', |
| | | type: 'line', |
| | | data: [], |
| | | smooth: true, |
| | | symbol: 'none' |
| | | } |
| | | ] |
| | | } |
| | | let _this = this |
| | | let temp = [] |
| | | for (let i = 0; i < this.plainOptions.length; i++) { |
| | | let item = this.plainOptions[i] |
| | | if (this.option.indexOf(item.value) > -1) { |
| | | temp.push(item) |
| | | } |
| | | } |
| | | getAction(this.url.workChart, param).then((res) => { |
| | | if(JSON.stringify(res.result) == '[]' || res.result == null){ |
| | | // this.$message.warning('æ æ°æ®ï¼') |
| | | this.$notification.warning({ |
| | | message:'æ¶æ¯', |
| | | description:'æ æ°æ®!' |
| | | }); |
| | | this.spinning = false; |
| | | _this.workChart.setOption(option,true) |
| | | }else{ |
| | | this.spinning = false; |
| | | // debugger |
| | | let result = [] |
| | | let itemLine = [] |
| | | //yè½´æ°ç» |
| | | var Yarr = [] |
| | | var lengenddata = []; |
| | | for (let i = 0; i < temp.length; i++) { |
| | | let item = temp[i] |
| | | itemLine = [] |
| | | for (let m = 0; m < res.result.length; m++) { |
| | | let d = [] |
| | | d.push(res.result[m].collectTime) |
| | | // debugger |
| | | d.push(res.result[m][item.englishName]) |
| | | itemLine.push(d) |
| | | } |
| | | var lll = { |
| | | name:item.label |
| | | } |
| | | lengenddata.push(lll) |
| | | var Yline ={ |
| | | name:item.label, |
| | | type:'value', |
| | | yAxisIndex:i, |
| | | boundaryGap: [0,'100%'] |
| | | } |
| | | Yarr.push(Yline); |
| | | var line ={ |
| | | name:item.label, |
| | | type:'line', |
| | | // areaStyle:{}, |
| | | smooth:true, |
| | | symbol:'circle', |
| | | symbolSize:10, |
| | | yAxisIndex:i, |
| | | |
| | | data:itemLine |
| | | } |
| | | result.push(line); |
| | | |
| | | let _this = this |
| | | let temp = [] |
| | | for (let i = 0; i < this.plainOptions.length; i++) { |
| | | let item = this.plainOptions[i] |
| | | if (this.option.indexOf(item.value) > -1) { |
| | | temp.push(item) |
| | | } |
| | | // option.yAxis = Yarr; |
| | | option.series = result; |
| | | option.legend = lengenddata; |
| | | // console.log(option); |
| | | _this.workChart.setOption(option,true) |
| | | window.addEventListener('resize', function() { |
| | | _this.workChart.resize() |
| | | }) |
| | | } |
| | | getAction(this.url.workChart, param).then((res) => { |
| | | if (JSON.stringify(res.result) == '[]' || res.result == null) { |
| | | // this.$message.warning('æ æ°æ®ï¼') |
| | | this.$notification.warning({ |
| | | message: 'æ¶æ¯', |
| | | description: 'æ æ°æ®!' |
| | | }) |
| | | this.spinning = false |
| | | _this.workChart.setOption(option, true) |
| | | } else { |
| | | this.spinning = false |
| | | // debugger |
| | | let result = [] |
| | | let itemLine = [] |
| | | //yè½´æ°ç» |
| | | var Yarr = [] |
| | | var lengenddata = [] |
| | | for (let i = 0; i < temp.length; i++) { |
| | | let item = temp[i] |
| | | itemLine = [] |
| | | for (let m = 0; m < res.result.length; m++) { |
| | | let d = [] |
| | | d.push(res.result[m].collectTime) |
| | | // debugger |
| | | d.push(res.result[m][item.englishName]) |
| | | itemLine.push(d) |
| | | } |
| | | var lll = { |
| | | name: item.label |
| | | } |
| | | lengenddata.push(lll) |
| | | var Yline = { |
| | | name: item.label, |
| | | type: 'value', |
| | | yAxisIndex: i, |
| | | boundaryGap: [0, '100%'] |
| | | } |
| | | Yarr.push(Yline) |
| | | var line = { |
| | | name: item.label, |
| | | type: 'line', |
| | | // areaStyle:{}, |
| | | smooth: true, |
| | | symbol: 'circle', |
| | | symbolSize: 10, |
| | | yAxisIndex: i, |
| | | |
| | | }) |
| | | data: itemLine |
| | | } |
| | | result.push(line) |
| | | |
| | | } |
| | | // option.yAxis = Yarr; |
| | | option.series = result |
| | | option.legend = lengenddata |
| | | // console.log(option); |
| | | _this.workChart.setOption(option, true) |
| | | window.addEventListener('resize', function() { |
| | | _this.workChart.resize() |
| | | }) |
| | | } |
| | | |
| | | }) |
| | | }, |
| | | /** |
| | | * è·åç¹å»è®¾å¤æ¥å¿è¡¨æ ¼è¡åä»å
å¼ç»ä»¶ä¼ æ¥çæ¶é´å¯¹è±¡ |
| | | * @param timeObj å½åè¡çå¼å§æ¶é´ä¸ç»ææ¶é´ç»æç对象 |
| | | */ |
| | | getLogListRowRecord(timeObj) { |
| | | // 夿æ¯å¦ç¹å»è®¾å¤æ¥å¿è¡¨æ ¼è¡çæ°æ®ï¼æ¤æ¶ä¸ºç¹å»è¡¨æ ¼æ°æ®ä¸ºtrue |
| | | this.isClicklogListRow = true |
| | | // åå¹¶ç¶ç»ä»¶ä¼ æ¥çå½å设å¤ä¿¡æ¯å¯¹è±¡ä¸å
å¼ç»ä»¶ä¼ æ¥çå½åè¡çæ¶é´å¯¹è±¡ |
| | | const newQueryParams = Object.assign(this.equipment, timeObj) |
| | | this.add(newQueryParams) |
| | | this.title = '工使²çº¿' |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped lang="less"> |
| | | .full-modal { |
| | | .ant-modal { |
| | | max-width: 100%; |
| | | top: 0; |
| | | padding-bottom: 0; |
| | | margin: 0; |
| | | .full-modal { |
| | | .ant-modal { |
| | | max-width: 100%; |
| | | top: 0; |
| | | padding-bottom: 0; |
| | | margin: 0; |
| | | } |
| | | .ant-modal-content { |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: calc(100vh); |
| | | } |
| | | .ant-modal-body { |
| | | flex: 1; |
| | | } |
| | | } |
| | | .ant-modal-content { |
| | | |
| | | /deep/ .ant-modal { |
| | | /*background-color: #000;*/ |
| | | /*color: #fff;*/ |
| | | } |
| | | |
| | | /deep/ .ant-modal-header { |
| | | /*background-color: #000;*/ |
| | | } |
| | | |
| | | /deep/ .ant-modal-title { |
| | | /*color: #fff;*/ |
| | | } |
| | | |
| | | /deep/ .ant-modal-close { |
| | | color: #1191b0; |
| | | font-size: 24px; |
| | | } |
| | | |
| | | /deep/ .ant-modal-content { |
| | | /*background: -moz-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.27) 100%);*/ |
| | | /*background: -webkit-gradient(linear, left left, right right, color-stop(0%, rgba(0, 0, 0, 0.66)), color-stop(100%, rgba(0, 0, 0, 0.4)));*/ |
| | | /*background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ |
| | | /*background: -o-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ |
| | | /*background: -ms-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ |
| | | /*background: linear-gradient(to right, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ |
| | | /*background-color: #000;*/ |
| | | /*color: #fff;*/ |
| | | position: relative; |
| | | } |
| | | |
| | | /deep/ .ant-modal-header { |
| | | /*border-bottom: none!important;*/ |
| | | } |
| | | |
| | | /deep/ .ant-checkbox-wrapper { |
| | | /*color: #fff;*/ |
| | | } |
| | | |
| | | /deep/ .ant-form-item-label label { |
| | | /*color: #fff;*/ |
| | | } |
| | | |
| | | /deep/ .ant-btn { |
| | | /*position: absolute;*/ |
| | | |
| | | } |
| | | |
| | | .checkboxgroup { |
| | | position: absolute; |
| | | right: 5%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | /deep/ .ant-checkbox-group { |
| | | display: flex; |
| | | flex-direction: column; |
| | | height: calc(100vh); |
| | | } |
| | | .ant-modal-body { |
| | | flex: 1; |
| | | |
| | | /deep/ .ant-checkbox-group .ant-checkbox-wrapper { |
| | | padding: 10px; |
| | | } |
| | | } |
| | | /deep/ .ant-modal{ |
| | | /*background-color: #000;*/ |
| | | /*color: #fff;*/ |
| | | } |
| | | /deep/ .ant-modal-header{ |
| | | /*background-color: #000;*/ |
| | | } |
| | | /deep/ .ant-modal-title{ |
| | | /*color: #fff;*/ |
| | | } |
| | | /deep/ .ant-modal-close{ |
| | | color: #1191b0; |
| | | font-size: 24px; |
| | | } |
| | | /deep/ .ant-modal-content{ |
| | | /*background: -moz-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.27) 100%);*/ |
| | | /*background: -webkit-gradient(linear, left left, right right, color-stop(0%, rgba(0, 0, 0, 0.66)), color-stop(100%, rgba(0, 0, 0, 0.4)));*/ |
| | | /*background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ |
| | | /*background: -o-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ |
| | | /*background: -ms-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ |
| | | /*background: linear-gradient(to right, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ |
| | | /*background-color: #000;*/ |
| | | /*color: #fff;*/ |
| | | position: relative; |
| | | } |
| | | /deep/ .ant-modal-header{ |
| | | /*border-bottom: none!important;*/ |
| | | } |
| | | /deep/ .ant-checkbox-wrapper{ |
| | | /*color: #fff;*/ |
| | | } |
| | | /deep/ .ant-form-item-label label{ |
| | | /*color: #fff;*/ |
| | | } |
| | | /deep/ .ant-btn{ |
| | | /*position: absolute;*/ |
| | | |
| | | } |
| | | .checkboxgroup{ |
| | | position: absolute; |
| | | right: 5%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | flex-direction: column; |
| | | } |
| | | /deep/ .ant-checkbox-group{ |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | /deep/ .ant-checkbox-group .ant-checkbox-wrapper{ |
| | | padding: 10px; |
| | | } |
| | | .con_btn { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .con_btn{ |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | .workChart_params{ |
| | | display: flex; |
| | | /*align-items: center;*/ |
| | | flex-direction: column; |
| | | float: left; |
| | | } |
| | | .workChart_params .params_one{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | .workChart_params .params_two{ |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | /deep/ .workChart_params .ant-form-item{ |
| | | display: flex; |
| | | } |
| | | /deep/ .workChart_params .ant-form-item .ant-form-item-control-wrapper{ |
| | | margin: 0 10px; |
| | | } |
| | | .workChart_params { |
| | | display: flex; |
| | | /*align-items: center;*/ |
| | | flex-direction: column; |
| | | float: left; |
| | | } |
| | | |
| | | .workChart_params .params_one { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .workChart_params .params_two { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | /deep/ .workChart_params .ant-form-item { |
| | | display: flex; |
| | | } |
| | | |
| | | /deep/ .workChart_params .ant-form-item .ant-form-item-control-wrapper { |
| | | margin: 0 10px; |
| | | } |
| | | |
| | | .ant-btn { |
| | | padding: 0 10px; |
| | | margin-left: 3px; |
| | | } |
| | | .ant-btn { |
| | | padding: 0 10px; |
| | | margin-left: 3px; |
| | | } |
| | | |
| | | .ant-form-item-control { |
| | | line-height: 0px; |
| | | } |
| | | .ant-form-item-control { |
| | | line-height: 0px; |
| | | } |
| | | |
| | | /** 主表åè¡é´è· */ |
| | | .ant-form .ant-form-item { |
| | | margin-bottom: 10px; |
| | | } |
| | | /** 主表åè¡é´è· */ |
| | | .ant-form .ant-form-item { |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | /** Tab页é¢è¡é´è· */ |
| | | .ant-tabs-content .ant-form-item { |
| | | margin-bottom: 0px; |
| | | } |
| | | /** Tab页é¢è¡é´è· */ |
| | | .ant-tabs-content .ant-form-item { |
| | | margin-bottom: 0px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | <!--<device-repair-model-add ref="modalFormadd" @ok="modalFormOk"></device-repair-model-add>--> |
| | | <device-repair-model-edit ref="modalFormedit" @ok="modalFormOk"></device-repair-model-edit> |
| | | <!--<repair-model ref="repairModelFrom" @ok="modalFormOk">0</repair-model>--> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <div style="width: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <div :bordered="false"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <div style="width: 530px;position: absolute;top: 20px; right:1.5%;"> |
| | | <div style="width: 530px;position: absolute;top: 0; right:1.5%;"> |
| | | <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> |
| | | <tr> |
| | | <td v-for="(item, index) in identifying">{{item.title}}</td> |
| | |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | <template> |
| | | <div class="efficiency_list" style="width: 100%"> |
| | | <a-card :bordered="false"> |
| | | <div :bordered="false"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div> |
| | | <div class="table-page-search-wrapper"> |
| | |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <div style="width: 530px;position: absolute;top: 20px; right: 1.5%;"> |
| | | <div style="width: 530px;position: absolute;top: 0; right: 1.5%;"> |
| | | <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> |
| | | <tr> |
| | | <td v-for="(item, index) in identifying">{{item.title}}</td> |
| | |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | <template> |
| | | <div style="width: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <div :bordered="false"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="seach-content"> |
| | | <div class="table-page-search-wrapper"> |
| | |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | <div style="width: 530px;top: 20px; right: 0px;"> |
| | | <div style="width: 530px;top: 0; right: 0px;"> |
| | | <table cellpadding="5" cellspacing="1" style="border: 1px solid darkgray;"> |
| | | <tr> |
| | | <td v-for="(item, index) in identifying">{{item.title}}</td> |
| | |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | <template> |
| | | <a-spin :spinning="loading"> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <div class="com_box"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | |
| | | </div> |
| | | <!-- tableåºå-end --> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </a-spin> |
| | | </template> |
| | | |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <div class="com_box"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | |
| | | </div> |
| | | <!-- tableåºå-end --> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | <!--<device-repair-model></device-repair-model>--> |
| | | <mdc-pass-rate-modal ref="modalForm" @ok="modalFormOk"></mdc-pass-rate-modal> |
| | | <mdc-pass-rate-edit ref="modalFormedit" @ok="modalFormOk"></mdc-pass-rate-edit> |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | <mdc-process-quantity-modal ref="modalForm" @ok="modalFormOk"></mdc-process-quantity-modal> |
| | | <mdc-process-quantity-edit ref="modalFormedit" @ok="modalFormOk"></mdc-process-quantity-edit> |
| | | |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <a-card :bordered="false" class="device_list"> |
| | | <div :bordered="false" class="device_list"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | <mdc-standard-process-duration-modal ref="modalForm" @ok="modalFormOk"></mdc-standard-process-duration-modal> |
| | | <mdc-standard-process-duration-edit ref="modalFormedit" @ok="modalFormOk"></mdc-standard-process-duration-edit> |
| | | |
| | | </a-card> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | |
| | | <template> |
| | | <div class="efficiency_list" style="width: 100%;height: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <div :bordered="false" style="height: 100%"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | </div> |
| | | <div id="openRateTrendChart" style="width: 100%;height: 60%"></div> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | <template> |
| | | <div class="efficiency_list" style="width: 100%;height: 100%;"> |
| | | <a-card :bordered="false"> |
| | | <div :bordered="false" style="height: 100%"> |
| | | <!-- æ¥è¯¢åºå --> |
| | | <div class="table-page-search-wrapper"> |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | |
| | | </div> |
| | | <div id="openRateTrendChart" style="width: 100%;height: 60%"></div> |
| | | </div> |
| | | </a-card> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |