| | |
| | | <template> |
| | | <div> |
| | | <div id="recordwork" style="width: 1000px;height:500px;"></div> |
| | | <div id="recordworkParse"> |
| | | <div id="recordwork" style="height:400px;"></div> |
| | | <div class="paginationwork"> |
| | | <el-pagination layout="prev, pager, next" @current-change="recordChange" :total="total" :default-page-size="6"/> |
| | | </div> |
| | |
| | | import moment from 'moment'; |
| | | import * as echarts from 'echarts'; |
| | | export default { |
| | | props: ['collectionstatus','date','workstationInfoList'], |
| | | props: ['setWork','achievements',"select"], |
| | | watch: { |
| | | date(val) { |
| | | setWork(val) { |
| | | this.current = "1"; |
| | | this.getCharts(); |
| | | }, |
| | | workstationInfoList(val) { |
| | | select(val) { |
| | | this.current = "1"; |
| | | this.getCharts(); |
| | | } |
| | |
| | | }, |
| | | getColor(name) { |
| | | var color = ''; |
| | | this.collectionstatus.forEach(item=> { |
| | | if(item.name == name) { |
| | | this.achievements.forEach(item=> { |
| | | if(item.code == name) { |
| | | color = item.color; |
| | | } |
| | | }) |
| | | return color; |
| | | }, |
| | | getStatus(name) { |
| | | var stauts = {}; |
| | | this.achievements.forEach(item=> { |
| | | if(item.code == name) { |
| | | stauts.name= item.name; |
| | | stauts.type= item.type; |
| | | } |
| | | }) |
| | | return stauts; |
| | | }, |
| | | getCharts() { |
| | | var obj = { |
| | | date: this.date, |
| | | humanFeedback: true, |
| | | machineFeedback: true, |
| | | workstationInfoList: this.workstationInfoList |
| | | } |
| | | this.$HTTP.post(`/api/blade-mdc/status-record/status-record-by-date?current=${this.current}&size=${this.size}`,obj).then(res => { |
| | | if(!this.setWork) return; |
| | | this.$HTTP.post(`/api/blade-mdc/status-record/status-record-by-workstation?current=${this.current}&size=${this.size}`,this.setWork).then(res => { |
| | | if (res.code === 200) { |
| | | var yAxisData = []; |
| | | var newData = []; |
| | | this.records = res.data.records; |
| | | res.data.records.reverse(); |
| | | res.data.records.forEach((item,index)=> { |
| | | yAxisData.push(item.workstationInfo.name); |
| | | yAxisData.push(item.date); |
| | | //计算开始时间,显示时间 |
| | | item.statusRecordList.forEach(item1=> { |
| | | var initstart = item1.startTime.split(" ")[0]; //根据日期计算差值 |
| | | var startTime = moment(item1.startTime).diff(moment(initstart + " 00:00:00"), 'minutes'); |
| | | var endTime = moment(item1.endTime).diff(moment(initstart + " 00:00:00"), 'minutes'); |
| | | var diff = moment(item1.endTime).diff(moment(item1.startTime), 'minutes') //开始了多久 |
| | | var color = this.getColor(item1.wcsDesc); |
| | | var color = this.getColor(item1.wcs); |
| | | item1.value = [index,startTime,endTime,diff]; |
| | | item1.itemStyle = {"normal": {"color": color}}; |
| | | item1.code = item.workstationInfo.code; |
| | | item1.name = item.workstationInfo.name; |
| | | item1.id = item.workstationInfo.id; |
| | | item1.statusName = this.getStatus(item1.wcs).name; |
| | | item1.statusType = this.getStatus(item1.wcs).type; |
| | | item1.code = item.date; |
| | | item1.name = item.date; |
| | | item1.id = item.date; |
| | | }) |
| | | newData.push(...item.statusRecordList); |
| | | }) |
| | |
| | | var option = { |
| | | tooltip: { |
| | | formatter: function (params) { |
| | | console.log(params) |
| | | return `<span class="tipdesc">工位</span>${params.data.name}</br> |
| | | <span class="tipdesc">状态</span>${params.data.wcsDesc}</br> |
| | | <span class="tipdesc">描述</span>${params.data.feedbackDesc}</br> |
| | | <span class="tipdesc">状态时间</span>${params.data.startTime} ~ ${params.data.endTime}</br> |
| | | <span class="tipdesc">反馈时间</span>${params.data.feedbackTime}</br> |
| | | <span class="tipdesc">反馈人</span>${params.data.feedUser}</br>`; |
| | | if(params.data.statusType == 4) { |
| | | var dom = `<span class="tipdesc">工位:</span>${params.data.name}</br> |
| | | <span class="tipdesc">状态:</span>${params.data.wcsDesc}</br> |
| | | <span class="tipdesc">描述:</span>${params.data.feedbackDesc}</br> |
| | | <span class="tipdesc">状态时间:</span>${params.data.startTime} ~ ${params.data.endTime}</br> |
| | | <span class="tipdesc">反馈时间:</span>${params.data.feedbackTime}</br> |
| | | <span class="tipdesc">反馈人:</span>${params.data.feedUser}</br>` |
| | | }else { |
| | | var dom = `<span class="tipstatus">${params.data.statusName}</span></br> |
| | | <span class="tipdesc">时段:</span><span>${params.data.startTime.split(" ")[1]} ~ ${params.data.endTime.split(" ")[1]}</span></br>` |
| | | } |
| | | return dom; |
| | | } |
| | | }, |
| | | grid: { |
| | | top: 10, |
| | | left: 70, |
| | | bottom: 130, |
| | | right: 0 |
| | | left: 100, |
| | | bottom: 30, |
| | | right: 30 |
| | | }, |
| | | xAxis: { |
| | | min: 0, |
| | |
| | | ] |
| | | }; |
| | | var recordDom = document.getElementById('recordwork'); |
| | | var recordworkParse = document.getElementById('recordworkParse'); |
| | | var myChart = echarts.init(recordDom); |
| | | myChart.resize({ |
| | | width: document.documentElement.clientWidth - 340 + "px" |
| | | }); |
| | | myChart.setOption(option); |
| | | }, |
| | | recordChange(current) { |
| | |
| | | text-align: right; |
| | | display: flex; |
| | | justify-content: end; |
| | | margin-top: -60px; |
| | | margin-top: 20px; |
| | | position: relative; |
| | | z-index: 99; |
| | | } |
| | | </style> |