From f8f6aef5508148a784c05e71366796bb0b61164d Mon Sep 17 00:00:00 2001
From: 李喆(开发组) <lzhe@yxqiche.com>
Date: 星期二, 18 十一月 2025 14:04:31 +0800
Subject: [PATCH] Merge branch 'new' of http://122.9.151.159:9090/r/smart-web into new
---
src/views/mdc/processParam/index.vue | 212 ++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 155 insertions(+), 57 deletions(-)
diff --git a/src/views/mdc/processParam/index.vue b/src/views/mdc/processParam/index.vue
index b33e583..b42be0b 100644
--- a/src/views/mdc/processParam/index.vue
+++ b/src/views/mdc/processParam/index.vue
@@ -1,8 +1,8 @@
<!--
* @Date: 2024-04-09 22:11:21
- * @LastEditors: Sneed
- * @LastEditTime: 2024-06-22 19:21:12
- * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/mdc/processParam/index.vue
+ * @LastEditors: lzhe lzhe@example.com
+ * @LastEditTime: 2024-12-18 15:20:37
+ * @FilePath: /cps-web/src/views/mdc/processParam/index.vue
瀹炴椂鐪嬫澘
-->
<template>
@@ -12,7 +12,7 @@
<el-aside width="300px" style="height: 100%;">
<el-container>
<el-main class="nopadding">
- <el-row style="margin-top: 14px;">
+ <el-row style="margin: 8px;font-size: 14px;">
宸ヤ綅
</el-row>
<MYTree v-model="treeChecked" @loaded="query"></MYTree>
@@ -31,20 +31,26 @@
start-placeholder="" end-placeholder="" :disabled-date="disabledDate"
@calendar-change="change" />
</el-col>
- <el-col :span="2" style='text-align: right;'>
+ <!-- <el-col :span="2" style='text-align: right;'>
<el-button type="primary" @click="exportExcel">瀵煎嚭</el-button>
- </el-col>
+ </el-col> -->
</el-row>
<TimeLine v-model="timeRange" ref="timeLine"></TimeLine>
<el-collapse v-model="activeList">
- <el-collapse-item :title="item.description" :name="index" v-for="(item, index) in list"
+ <el-collapse-item :title="item.dpLabel" :name="index" v-for="(item, index) in list"
:key="index">
<div
- v-if="(['DeviceStatus', 'ProcessProgram'].includes(item.name) && item?.dayCharts?.series?.length > 1) || (!['DeviceStatus', 'ProcessProgram'].includes(item.name) && item?.dayCharts?.series?.length > 0) && activeList.indexOf(index) > -1">
+ v-if="(item.paramChartType == 'distribute' && item?.dayCharts?.series?.length > 1) || (item.paramChartType !== 'distribute' && item?.dayCharts?.series?.length > 0) && activeList.indexOf(index) > -1">
<div>
<el-button size="small" @click="viewData(item)">鏌ョ湅鏁版嵁</el-button>
+ <el-switch style="margin-left: 8px;" v-model="item.showPie"
+ v-show="item.paramChartType == 'distribute'" active-text="楗煎浘"
+ inactive-text="" />
</div>
- <scEcharts style="width:100%" height="200px" :option="item?.dayCharts">
+ <scEcharts v-if="!item.showPie" style="width:100%" :height="item.height"
+ :option="item?.dayCharts">
+ </scEcharts>
+ <scEcharts v-else style="width:100%" height="300px" :option="item?.pieCharts">
</scEcharts>
</div>
<el-empty v-else description="鏆傛棤鏁版嵁" />
@@ -150,7 +156,7 @@
},
save() {
console.log(this.checkedCities)
- this.$HTTP.post(`/api/blade-mdc/process-parameter/excel/export`, {
+ this.$HTTP.post(`/api/mdc/process-parameter/excel/export`, {
collectItem: this.list.filter(v => this.checkedCities.includes(v.id)),
endTime: this.timeRange.endTime,
startTime: this.timeRange.startTime,
@@ -159,7 +165,7 @@
workstationName: ''
}).then(res => {
if (res.success) {
- window.open(res.data.link)
+ this.$TOOL.downFile(res.data.link,res.data.originalName);
} else {
this.$message.error(res.msg)
}
@@ -172,28 +178,19 @@
this.visible = true
},
init() {
- this.$HTTP.get('/api/blade-mdc/process-parameter').then(res => {
+ this.$HTTP.get('/api/smis/global_wcs/wcs-achievements').then(res => {
if (res.code === 200) {
this.legend = res.data
}
})
},
viewData(item) {
- let data = {
- FeedOverride: '杩涚粰鍊嶇巼',
- FeedSpeed: '杩涚粰閫熷害',
- SpindleOverride: '涓昏酱鍊嶇巼',
- SpindleSpeed: '涓昏酱杞��',
- Output: '浜ч噺',
- ProcessProgram: '绋嬪簭鍚�',
- DeviceStatus: '璁惧鐘舵��',
- }
- this.drawerName = data[item.name]
+ this.drawerName = item.dpLabel
- this.$HTTP.post('/api/blade-mdc/process-parameter/item?current=1&size=1500', {
+ this.$HTTP.post('/api/mdc/process-parameter/item?current=1&size=1500', {
endTime: this.timeRange.endTime,
startTime: this.timeRange.startTime,
- item: item.name,
+ item: item.dpName,
methodEnum: "HOUR",
workstationId: this.treeChecked.toString(),
workstationName: ''
@@ -219,13 +216,22 @@
})
},
query() {
+ if (!this.treeChecked.toString()) return
this.$refs?.timeLine?.init({
dates: this.time,
workstationId: this.treeChecked.toString()
})
- this.$HTTP.get('/api/blade-mdc/process-parameter/param', { workstationId: this.treeChecked.toString() }).then(res => {
+ this.list = []
+ this.$HTTP.get('/api/mdc/process-parameter/params', { workstationId: this.treeChecked.toString() }).then(res => {
if (res.code === 200) {
- this.list = res.data
+ this.list = res.data.map(v => {
+ let name = v.isProcessParam ? 'ProcessProgram' : v.dpName
+ return {
+ ...v,
+ name: name,
+ height: v.paramChartType == 'distribute' ? '300px' : '200px'
+ }
+ })
this.queryChart()
}
})
@@ -236,35 +242,43 @@
})
},
queryChart1(item) {
- let index = this.list.findIndex(item => item.name === 'DeviceStatus')
+ let index = this.list.findIndex(item => item.dpName === 'DeviceStatus')
this.list[index] = Object.assign({
...this.list[index],
dayCharts: {}
})
- this.$HTTP.post('/api/blade-mdc/process-parameter/chart/dmp-item', {
+ let params = { ...item }
+ try {
+ delete params.name
+ delete params.height
+ } catch (err) { console.error(err) }
+ this.$HTTP.post('/api/mdc/process-parameter/chart/dmp-item', {
methodEnum: "HOUR",
startTime: this.timeRange.startTime,
endTime: this.timeRange.endTime,
workstationId: this.treeChecked.toString(),
workstationName: '',
- dmpDTO: {
+ dpDTO: {
id: this.treeChecked.toString(),
- dmpDeviced: item.dmpDeviceId,
- name: item.name,
- description: item.description,
- dataType: item.dataType,
- wcsDataType: item.wcsDataType,
- processParameter: item.processParameter
+ // name: item.name,
+ ...params
+ // dmpDeviced: item.dmpDeviceId,
+ // description: item.description,
+ // dataType: item.dataType,
+ // wcsDataType: item.wcsDataType,
+ // processParameter: item.processParameter
}
}).then(res => {
- if (['DeviceStatus', 'ProcessProgram'].includes(item.name)) {
- this.setDeviceStatusOptions(res.data, item.name)
+ // if (['DeviceStatus', 'ProcessProgram'].includes(item.name)) {
+ if (item.paramChartType === 'distribute') {
+ this.setDeviceStatusOptions(res.data, item.dpName)
} else {
- this.setLineOptions(res.data.data, item.name)
+ this.setLineOptions(res.data.data, item.dpName)
}
})
},
setLineOptions(data, myname) {
+ console.log('data0',data)
if (!data) return
// console.log(data, myname)
let xAxis = data?.map(item => {
@@ -298,39 +312,52 @@
},
}
if (yAxisData?.length == 0) {
- let index = this.list.findIndex(item => item.name === myname)
+ let index = this.list.findIndex(item => item.dpName === myname)
this.list[index] = Object.assign({
...this.list[index],
- dayCharts: {}
+ dayCharts: {},
+ showPie: false
})
} else {
- let index = this.list.findIndex(item => item.name === myname)
+ let index = this.list.findIndex(item => item.dpName === myname)
this.list[index] = Object.assign({
...this.list[index],
- dayCharts
+ dayCharts,
+ showPie: false
})
}
-
},
setDeviceStatusOptions(data, myname) {
+ debugger
+ //console.log('data1',data)
+ //console.log('endtime1',this.timeRange.endTime)
+
let total = Math.abs(moment(this.timeRange.startTime).diff(moment(this.timeRange.endTime)))
let start = this.timeRange.startTime
let len = data?.data?.length
if (len > 0 && moment(data.data[len - 1].time).unix() < moment(this.timeRange.endTime).unix()) {
let addItem = {
time: this.timeRange.endTime,
- value: data.data[len - 1].value
+ value: myname === 'DeviceStatus' ? data.data[len - 1].name : data.data[len - 1].value,
}
data.data.push(addItem)
}
let series = data.data.map((item, i) => {
let current = Math.abs(moment(start).diff(moment(item.time)))
start = item.time
- let name = i === 0 ? '' : data.data[i - 1].name
- if (myname === 'ProcessProgram') {
- name = item.value
+ let name = i === 0 ? '' : myname === 'DeviceStatus' ? data.data[i - 1].name : data.data[i - 1].value
+ // if (myname === 'ProcessProgram') {
+ try {
+ name = myname === 'DeviceStatus' ? item.name.slice(-50) : item.value.slice(-50)
+ } catch (err) {
+ name = myname === 'DeviceStatus' ? item.name : item.value
}
+ // }
// let color = !name ? 'transparent' : data.data[i - 1].color
+ //name = name+'s'
+ if(name == undefined){
+ name = "鏃犳暟鎹�"
+ }
return {
name,
type: 'bar',
@@ -346,15 +373,13 @@
// return `${name}:寮�濮嬫椂闂�${moment(data.data[i - 1].time).format('HH:mm')}-${moment(item.time).format('HH:mm')}`
// }
// },
- // itemStyle: {
- // // color, // 杩欎竴琛屽浐瀹氱殑棰滆壊鍊奸渶瑕佸垹闄ゆ垨娉ㄩ噴
- // borderColor: '#FFF',
- // borderWidth: 1
- // },
+ itemStyle: {
+ color: item.color, // 杩欎竴琛屽浐瀹氱殑棰滆壊鍊奸渶瑕佸垹闄ゆ垨娉ㄩ噴
+ },
tooltip: {
show: true,
trigger: 'item',
- position: 'top',
+ // position: 'top',
triggerOn: 'click',
formatter: (value, ticket) => {
// console.log('----------1111')
@@ -364,7 +389,7 @@
// return current.format('HH:mm')
// return value
if (i == 0 || current === 0) return ''
- return `${name}:鏃舵${moment(data.data[i - 1].time).format('HH:mm')}-${moment(item.time).format('HH:mm')}`
+ return `${name}:鏃舵${moment(data.data[i - 1].time).format('HH:mm:ss')}-${moment(item.time).format('HH:mm:ss')}`
}
},
}
@@ -403,12 +428,85 @@
},
},
}
- console.log(dayCharts, '>>>>>>>???')
- let index = this.list.findIndex(item => item.name === myname)
+ let index = this.list.findIndex(item => item.dpName === myname)
+
this.list[index] = Object.assign({
...this.list[index],
- dayCharts
+ dayCharts,
+ pieCharts: this.getPieCharts(data.data, myname),
+ showPie: false
})
+ // console.log(this.list, '>>>>>>>>>>>>>>>>>>>>>>111')
+ },
+ getPieCharts(data, myname) {
+ let start = this.timeRange.startTime
+ const obj = {
+ }
+ let key = myname === 'DeviceStatus' ? 'name' : 'value'
+ data.forEach(v => {
+ if(v[key] != undefined){
+
+
+ if (obj[v[key]]) {
+ obj[v[key]] += moment(v.time).valueOf() - moment(start).valueOf()
+ } else {
+ obj[v[key]] = moment(v.time).valueOf() - moment(start).valueOf()
+ }
+ start = v.time
+ }
+ })
+ let result = Object.keys(obj).map(key => {
+ return {
+ value: obj[key] / 1000,
+ name: key,//杩愯/鎶ヨ/寰呮満
+ // itemStyle: {
+ // color: item.color, // 杩欎竴琛屽浐瀹氱殑棰滆壊鍊奸渶瑕佸垹闄ゆ垨娉ㄩ噴
+ // },
+ }
+ }).map(v => {
+ if (myname === 'DeviceStatus') {
+ if(v.name != 'undefined') {
+ //锛僁3D3D3 鐏拌壊
+ //let itemFound = this.legend.find(item => item.name === v.name)
+ return {
+ ...v,
+ itemStyle: {
+ color: this.legend.find(item => item.name === v.name).color
+ //color: itemFound?itemFound.color:'锛僁3D3D3'
+ }
+ }
+ }
+ }
+ return v
+
+ })
+ let charts = {
+ tooltip: {
+ trigger: 'item',
+ formatter: function (params) {
+ let d = moment.duration(params.value, 'seconds')
+ let nameVal = params.name
+ if(params.name == undefined){
+ nameVal = '鏃犳暟鎹�'
+ }
+ //return `${params.name}: ${d.hours()}灏忔椂${d.minutes()}鍒�${d.seconds()}绉抈
+ return `${nameVal}: ${d.hours()}灏忔椂${d.minutes()}鍒�${d.seconds()}绉抈
+ }
+ },
+ legend: {
+ orient: 'vertical',
+ left: 'left'
+ },
+ series: [
+ {
+ name: '',
+ type: 'pie',
+ radius: '50%',
+ data: result,
+ }
+ ],
+ }
+ return charts
},
change(e) {
this.timeStart = e[0] || moment().format('YYYY-MM-DD')
--
Gitblit v1.9.3