projects/mescc/zhp #74

Merged
juzi merged 2 commits from projects/mescc/zhp into projects/mescc/develop 2024-06-28 13:22:50 +08:00
12 changed files with 194 additions and 89 deletions

View File

@ -1,16 +1,10 @@
<!--
* @Author: zhp
* @Date: 2024-04-28 13:42:51
* @LastEditTime: 2024-05-31 16:11:06
* @LastEditTime: 2024-06-27 16:30:58
* @LastEditors: zhp
* @Description:
-->
<!--
filename: fto.vue
author: liubin
date: 2024-04-10 08:59:28
description:
-->
<template>
<left-chart-base

View File

@ -12,7 +12,7 @@
v-for="item in legend"
:key="item.label"
class="legend-item"
:style="{ fontSize: isFullscreen ? '0.58vw' : '0.54vw' }"
:style="{ fontSize: isFullscreen ? '0.72vw' : '0.7vw' }"
>{{ item.label }}</span
>
</div>
@ -65,7 +65,36 @@ export default {
top: "15%",
containLabel: true,
},
tooltip: {},
tooltip: {
trigger: "axis",
axisPointer: {
// type: "cross",
crossStyle: {
color: "rgba(237,237,237,0.5)",
},
},
// backgroundColor: '#000000',
// textStyle: {
// color: '#ffff'
// }
formatter: params => {
// console.log(params);
// xAxis data
let dataStr = `<div><p style="font-weight:bold;margin:0 8px 15px;">${params[0].name}</p></div>`
params.forEach(item => {
let color = item.color.colorStops ? item.color.colorStops[0].color : ''
console.log(item.color, color);
dataStr += `<div>
<div style="margin: 0 8px;">
<span style="display:inline-block;margin-right:5px;width:10px;height:10px;background-color:${item.color.colorStops[0].color};"></span>
<span>${item.seriesName}</span>
<span style="float:right;color:#000000;margin-left:20px;">${item.data}</span>
</div>
</div>`
})
return dataStr
}
},
xAxis: {
axisTick: {
show: false,
@ -77,15 +106,16 @@ export default {
},
axisLabel: {
color: "#fff",
fontSize: 12,
fontSize: 14,
},
data: this.xAxis,
},
yAxis: {
name: "单位/片",
position:'left',
nameTextStyle: {
color: "#fff",
fontSize: 12,
fontSize: 14,
align:'right'
},
axisTick: {
@ -93,7 +123,7 @@ export default {
},
axisLabel: {
color: "#fff",
fontSize: 12,
fontSize: 14,
},
axisLine: {
show: true,
@ -118,7 +148,7 @@ export default {
position: 'top', //
textStyle: { //
color: '#DFF1FE',
fontSize: 12
fontSize: 14
}
},
itemStyle: {
@ -162,7 +192,7 @@ export default {
position: 'top', //
textStyle: { //
color: '#DFF1FE',
fontSize: 12
fontSize: 14
}
},
itemStyle: {
@ -201,9 +231,9 @@ export default {
this.actualOptions.series.map((item) => {
item.barWidth = val ? 18 : 12;
});
this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12;
this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 14;
this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 14;
this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 14;
this.initOptions(this.actualOptions);
},
series(val) {

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-04-28 13:42:51
* @LastEditTime: 2024-06-21 15:02:27
* @LastEditTime: 2024-06-28 09:28:56
* @LastEditors: zhp
* @Description:
-->
@ -19,7 +19,7 @@
v-for="item in legend"
:key="item.label"
class="legend-item"
:style="{ fontSize: isFullscreen ? '0.58vw' : '0.54vw' }"
:style="{ fontSize: isFullscreen ? '0.72vw' : '0.7vw' }"
>{{ item.label }}</span
>
</div>
@ -71,7 +71,31 @@ export default {
top: "18%",
containLabel: true,
},
tooltip: {},
tooltip: {
trigger: "axis",
axisPointer: {
// type: "cross",
crossStyle: {
color: "rgba(237,237,237,0.5)",
},
},
formatter: params => {
// xAxis data
let dataStr = `<div><p style="font-weight:bold;margin:0 8px 15px;">${params[0].name}</p></div>`
params.forEach(item => {
let color = Object.prototype.toString.call(item.color) == "[object String]" ? item.color : item.color.colorStops ? item.color.colorStops[0].color : ''
console.log(item.color, color);
dataStr += `<div>
<div style="margin: 0 8px;">
<span style="display:inline-block;margin-right:5px;width:10px;height:10px;background-color:${color};"></span>
<span>${item.seriesName}</span>
<span style="float:right;color:#000000;margin-left:20px;">${item.data}</span>
</div>
</div>`
})
return dataStr
}
},
xAxis: {
axisTick: {
show: false,
@ -83,15 +107,16 @@ export default {
},
axisLabel: {
color: "#fff",
fontSize: 12,
fontSize: 14,
},
data: this.xAxis,
},
yAxis: {
name: "单位/片",
position: 'left',
nameTextStyle: {
color: "#fff",
fontSize: 12,
fontSize: 14,
align: 'right'
},
axisTick: {
@ -99,7 +124,7 @@ export default {
},
axisLabel: {
color: "#fff",
fontSize: 12,
fontSize: 14,
},
axisLine: {
show: true,
@ -227,9 +252,9 @@ export default {
this.actualOptions.series.map((item) => {
item.barWidth = val ? 18 : 12;
});
this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12;
this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12;
this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 14;
this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 14;
this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 14;
this.initOptions(this.actualOptions);
},
series(val) {

View File

@ -83,7 +83,7 @@ export default {
// backdrop-filter: blur(2px);
// border-radius: 4px;
transform: translate(-50%, -100%);
box-shadow: inset 0 0 12px 2px #fff3;
// box-shadow: inset 0 0 12px 2px #fff3;
background: url(../../../assets/images/homeindex/info.png) no-repeat 0 0 / 100% 100%;
// background: radial-gradient(circle farthest-corner at bottom center,rgba(255,239,162,.7) 10%, #021842 30%);
//

View File

@ -38,7 +38,7 @@
class="container-head"
:class="[side == 'left' ? 'gradient-to-right' : 'gradient-to-left']"
>
<Icon :icon="icon"></Icon>
<Icon style="margin-left: 16px;" :icon="icon"></Icon>
<h2 class="container-title">{{ title }}</h2>
</div>
<div
@ -105,7 +105,7 @@ export default {
.container-head {
// height: 40px;
height: 3.8vh;
height:4vh;
padding: 8px;
display: flex;
align-items: center;

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-06-20 16:13:52
* @LastEditTime: 2024-06-27 09:55:02
* @LastEditTime: 2024-06-28 10:57:16
* @LastEditors: zhp
* @Description:
-->
@ -51,7 +51,7 @@ export default {
},
},
formatter: function (params) {
// console.log('params', params);
console.log('params', params);
var res = `<span style='color:rgba(0,0,0,0.8)'>${params[0].axisValueLabel}</span>`;
for (var i = 0, l = params.length; i < l; i++) {
res +=

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-06-21 09:05:14
* @LastEditTime: 2024-06-27 10:59:40
* @LastEditTime: 2024-06-28 10:59:06
* @LastEditors: zhp
* @Description:
-->
@ -58,31 +58,29 @@ export default {
console.log()
if (params[0].axisValue === 'FTO投入' || params[0].axisValue === '芯片产量' || params[0].axisValue === '标准组件产量') {
res +=
"<br/>" +
`<span style='display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:${params[0].color}'></span>` +
`<span style='display:inline-block;margin-right:4px;width:10px;height:10px;background-color:${params[0].color}'></span>` +
`<span style='display:inline-block;width:150px;color:rgba(0,0,0,0.8);font-size:14px;'>${params[0].axisValueLabel}</span>` +
`<span style='color:rgba(0,0,0,0.48);font-size:14px;'>${params[0].name === "综合良率"
? (params[0].value ? params[0].value.toFixed(2) : 0.0) + "%"
: params[0].name === "转化效率"
? (params[0].value ? params[0].value.toFixed(2) : 0.0) + "%"
: params[i].seriesName.search('总功率') != -1
? (params[i].value ? params[i].value : 0) + "MW"
: (params[i].value ? params[i].value : 0) + "片"
: params[0].seriesName.search('总功率') != -1
? (params[0].value ? params[0].value : 0) + "MW"
: (params[0].value ? params[0].value : 0) + "片"
}</span>`;
// }
}
if (params[1].axisValue === '综合良率' || params[1].axisValue === '转化效率') {
res +=
"<br/>" +
`<span style='display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:${params[1].color}'></span>` +
`<span style='display:inline-block;margin-right:4px;width:10px;height:10px;background-color:${params[1].color}'></span>` +
`<span style='display:inline-block;width:150px;color:rgba(0,0,0,0.8);font-size:14px;'>${params[1].axisValueLabel}</span>` +
`<span style='color:rgba(0,0,0,0.48);font-size:14px;'>${params[1].name === "综合良率"
? (params[1].value ? params[1].value.toFixed(2) : 0.0) + "%"
: params[1].name === "转化效率"
? (params[1].value ? params[1].value.toFixed(2) : 0.0) + "%"
: params[i].seriesName.search('总功率') != -1
? (params[i].value ? params[i].value : 0) + "MW"
: (params[i].value ? params[i].value : 0) + "片"
: params[1].seriesName.search('总功率') != -1
? (params[i].value ? params[1].value : 0) + "MW"
: (params[1].value ? params[1].value : 0) + "片"
}</span>`;
}
return res;

View File

@ -1,7 +1,7 @@
<!--
* @Author: zhp
* @Date: 2024-04-15 10:49:13
* @LastEditTime: 2024-06-25 08:39:48
* @LastEditTime: 2024-06-28 12:13:24
* @LastEditors: zhp
* @Description:
-->
@ -14,7 +14,7 @@
<div class="app-container" style="margin-top: 8px;flex-grow: 1; height: auto;">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="时间维度" prop="type">
<el-select size="small" clearable v-model="listQuery.type" placeholder="请选择">
<el-select size="small" clearable v-model="listQuery.type" placeholder="请选择" @change="handleChange">
<el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@ -207,6 +207,13 @@ export default {
this.getDataList()
},
methods: {
handleChange() {
this.listQuery.reportTime = []
this.listQuery.end = null
this.listQuery.start = null
this.listQuery.startDate = null
this.listQuery.endDate = null
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
let spanOneArr = [], concatOne = 0;
// let spanTwoArr = [], concatTwo = 0;
@ -463,30 +470,32 @@ export default {
// dataArr[0].factory = item.factory === 1 ? '' : ''
// dataArr[1].factory = item.factory === 1 ? '' : ''
// dataArr[2].factory = item.factory === 1 ? '' : ''
// dataArr[3].factory = item.factory === 1 ? '' : ''
dataArr[1]['' + m + ''] = item.chipYield
dataArr[2]['' + m + ''] = item.chipAveragePower
dataArr[4]['' + m + ''] = item.chipTotalPower
dataArr[5]['' + m + ''] = item.chipCssMarriageRate
// dataArr[3].factory = item.factory === 1 ? '' : ''
dataArr[1]['' + m + ''] = item.chipInput
dataArr[2]['' + m + ''] = item.chipYield
dataArr[3]['' + m + ''] = item.chipAveragePower
dataArr[4]['' + m + ''] = item.chipYieldRate
dataArr[5]['' + m + ''] = item.chipTotalPower
dataArr[6]['' + m + ''] = item.chipOee
dataArr[7]['' + m + ''] = item.chipCapacityUtilizationRate
dataArr[8]['' + m + ''] = item.chipAnnualAverageProduction
dataArr[9]['' + m + ''] = item.chipBom
dataArr[10]['' + m + ''] = item.componentYield
dataArr[11]['' + m + ''] = item.componentAveragePower
dataArr[12]['' + m + ''] = item.componentYieldRate
dataArr[13]['' + m + ''] = item.componentTotalPower
dataArr[14]['' + m + ''] = item.componentOee
dataArr[15]['' + m + ''] = item.componentCapacityUtilizationRate
dataArr[16]['' + m + ''] = item.componentAnnualAverageProduction
dataArr[17]['' + m + ''] = item.componentBom
dataArr[18]['' + m + ''] = item.bipvChipUsage
dataArr[19]['' + m + ''] = item.bipvProductOutput
dataArr[20]['' + m + ''] = item.bipvChipUtilizationRate
dataArr[21]['' + m + ''] = item.bipvAnnualAverageProduction
dataArr[22]['' + m + ''] = item.bipvOeeMaterialCost
dataArr[23]['' + m + ''] = item.bipvInsideMaterialCost
dataArr[24]['' + m + ''] = item.bipvComprehensiveMaterialCost
dataArr[7]['' + m + ''] = item.chipCssMarriageRate
dataArr[8]['' + m + ''] = item.chipCapacityUtilizationRate
dataArr[9]['' + m + ''] = item.chipAnnualAverageProduction
dataArr[10]['' + m + ''] = item.chipBom
dataArr[11]['' + m + ''] = item.componentYield
dataArr[12]['' + m + ''] = item.componentAveragePower
dataArr[13]['' + m + ''] = item.componentYieldRate
dataArr[14]['' + m + ''] = item.componentTotalPower
dataArr[15]['' + m + ''] = item.componentOee
dataArr[16]['' + m + ''] = item.componentCapacityUtilizationRate
dataArr[17]['' + m + ''] = item.componentAnnualAverageProduction
dataArr[18]['' + m + ''] = item.componentBom
dataArr[19]['' + m + ''] = item.bipvChipUsage
dataArr[20]['' + m + ''] = item.bipvProductOutput
dataArr[21]['' + m + ''] = item.bipvChipUtilizationRate
dataArr[22]['' + m + ''] = item.bipvAnnualAverageProduction
dataArr[23]['' + m + ''] = item.bipvOeeMaterialCost
dataArr[24]['' + m + ''] = item.bipvInsideMaterialCost
dataArr[25]['' + m + ''] = item.bipvComprehensiveMaterialCost
// })
// ele.titleValue

View File

@ -7,7 +7,7 @@
<div class="search">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="时间维度" prop="date">
<el-select size="small" clearable v-model="listQuery.date" placeholder="请选择">
<el-select size="small" clearable v-model="listQuery.date" placeholder="请选择" @change="handleChange">
<el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@ -402,6 +402,13 @@ export default {
this.getDataList()
},
methods: {
handleChange() {
this.listQuery.reportTime = []
this.listQuery.end = null
this.listQuery.start = null
this.listQuery.endTime = null
this.listQuery.beginTime = null
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
let spanOneArr = [], concatOne = 0;
// let spanTwoArr = [], concatTwo = 0;

View File

@ -5,7 +5,7 @@
<div class="search">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="时间维度" prop="type">
<el-select size="small" clearable v-model="listQuery.type" placeholder="请选择">
<el-select size="small" clearable v-model="listQuery.type" placeholder="请选择" @change="handleChange">
<el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@ -369,6 +369,13 @@ export default {
this.getDataList()
},
methods: {
handleChange() {
this.listQuery.reportTime = []
this.listQuery.end = null
this.listQuery.start = null
this.listQuery.startDate = null
this.listQuery.endDate = null
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
let spanOneArr = [], concatOne = 0;
// let spanTwoArr = [], concatTwo = 0;
@ -511,7 +518,7 @@ export default {
let i = index + 1
let m = 'value' + i
ele.productionSituationPowerDataVOList.forEach((item) => {
maxData.push(item.chipTotalPower, item.componentTotalPower)
// maxData.push(item.chipTotalPower, item.componentTotalPower)
this.dataArr[0]['' + m + ''] = item.chipTotalPower
// this.dataArr[3].factory = item.factory == 1 ? '' : ''
this.dataArr[1]['' + m + ''] = item.componentTotalPower
@ -523,10 +530,23 @@ export default {
// props: 'value' + index + 1,
// })
})
this.chartMsg.yAxis.max = Math.ceil(Math.max(...maxData) / 100) * 100
this.chartMsgTarget.yAxis.max = Math.ceil(Math.max(...maxData) / 100) * 100
this.chartMsg.yAxis.min = Math.ceil(Math.min(...maxData) / 100) * 100
this.chartMsgTarget.yAxis.min = Math.ceil(Math.min(...maxData) / 100) * 100
if (this.listQuery.type === 2) {
res.data.list.slice(0, res.data.list.length - 1).forEach((ele, index) => {
ele.productionSituationPowerDataVOList.forEach((item) => {
maxData.push(item.chipTotalPower, item.componentTotalPower)
})
})
} else {
res.data.list.forEach((ele, index) => {
ele.productionSituationPowerDataVOList.forEach((item) => {
maxData.push(item.chipTotalPower, item.componentTotalPower)
})
})
}
this.chartMsg.yAxis.max = Math.ceil(Math.max(...maxData))
this.chartMsgTarget.yAxis.max = Math.ceil(Math.max(...maxData))
this.chartMsg.yAxis.min = Math.ceil(Math.min(...maxData) )
this.chartMsgTarget.yAxis.min = Math.ceil(Math.min(...maxData))
this.chartMsg.yAxis.interval = (this.chartMsg.yAxis.max - this.chartMsg.yAxis.min) / 4
this.chartMsgTarget.yAxis.interval = (this.chartMsgTarget.yAxis.max - this.chartMsgTarget.yAxis.min) / 4
if (this.listQuery.type === 2) {
@ -550,7 +570,7 @@ export default {
})
})
})
this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 2].titleValue)
this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 2].titleValue.slice(0, res.data.list[res.data.list.length - 2].titleValue.length - 3))
// this.chartMsgTarget.series = [{
// name: "FTO",
// data: [
@ -718,7 +738,7 @@ export default {
})
})
})
this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 1].titleValue)
this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 1].titleValue.slice(0, res.data.list[res.data.list.length - 1].titleValue.length - 3))
// this.chartMsgTarget.series = [{
// name: "FTO",
// data: [

View File

@ -499,6 +499,8 @@ export default {
this.listQuery.reportTime = []
this.listQuery.end = null
this.listQuery.start = null
this.listQuery.startDate = null
this.listQuery.endDate = null
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
let spanOneArr = [], concatOne = 0;
@ -650,7 +652,7 @@ export default {
let i = index + 1
let m = 'value' + i
ele.productionSituationDataVOList.forEach((item) => {
maxData.push(item.ftoInput, item.chipYield, item.componentYield)
// maxData.push(item.ftoInput, item.chipYield, item.componentYield)
this.dataArr[0]['' + m + ''] = item.ftoInput
// this.dataArr[3].factory = item.factory == 1 ? '' : ''
this.dataArr[1]['' + m + ''] = item.chipYield
@ -661,19 +663,32 @@ export default {
this.dataArr[3]['' + m + ''] = item.bipvProductOutput
}
})
this.chartMsg.yAxis.max = Math.ceil(Math.max(...maxData) / 100) * 100
this.chartMsgTarget.yAxis.max = Math.ceil(Math.max(...maxData) / 100) * 100
this.chartMsg.yAxis.min = Math.ceil(Math.min(...maxData) / 100) * 100
this.chartMsgTarget.yAxis.min = Math.ceil(Math.min(...maxData) / 100) * 100
this.chartMsg.yAxis.interval = (this.chartMsg.yAxis.max - this.chartMsg.yAxis.min) / 4
this.chartMsgTarget.yAxis.interval = (this.chartMsgTarget.yAxis.max - this.chartMsgTarget.yAxis.min) / 4
// ele.titleValue
// .push({
// label: ele.titleValue,
// props: 'value' + index + 1,
// })
})
if (this.listQuery.type === 2) {
res.data.list.slice(0, res.data.list.length - 1).forEach((ele, index) => {
ele.productionSituationDataVOList.forEach((item) => {
maxData.push(item.ftoInput, item.chipYield, item.componentYield)
})
})
} else {
res.data.list.forEach((ele, index) => {
ele.productionSituationDataVOList.forEach((item) => {
maxData.push(item.ftoInput, item.chipYield, item.componentYield)
})
})
}
this.chartMsg.yAxis.max = Math.ceil(Math.max(...maxData))
this.chartMsgTarget.yAxis.max = Math.ceil(Math.max(...maxData))
this.chartMsg.yAxis.min = Math.ceil(Math.min(...maxData))
this.chartMsgTarget.yAxis.min = Math.ceil(Math.min(...maxData))
this.chartMsg.yAxis.interval = (this.chartMsg.yAxis.max - this.chartMsg.yAxis.min) / 4
this.chartMsgTarget.yAxis.interval = (this.chartMsgTarget.yAxis.max - this.chartMsgTarget.yAxis.min) / 4
if (this.listQuery.type === 2) {
if (res.data.list.length === 3) {
this.gridLeft = false
@ -706,7 +721,7 @@ export default {
}
})
})
this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 2].titleValue)
this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 2].titleValue.slice(0, res.data.list[res.data.list.length - 2].titleValue.length - 3))
// this.chartMsgTarget.series = [{
// name: "FTO",
// data: [
@ -987,7 +1002,7 @@ export default {
})
})
console.log(this.chartMsg.series[0]);
this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 1].titleValue)
this.chartMsgTarget.xData.push(res.data.list[res.data.list.length - 1].titleValue.slice(0, res.data.list[res.data.list.length - 1].titleValue.length - 3))
// this.chartMsgTarget.series = [{
// name: "FTO",
// data: [

View File

@ -7,7 +7,7 @@
<div class="search">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="时间维度" prop="type">
<el-select size="small" clearable v-model="listQuery.type" placeholder="请选择">
<el-select size="small" clearable v-model="listQuery.type" placeholder="请选择" @change="handleChange">
<el-option v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
@ -422,6 +422,13 @@ export default {
this.getDataList()
},
methods: {
handleChange() {
this.listQuery.reportTime = []
this.listQuery.end = null
this.listQuery.start = null
this.listQuery.endTime = null
this.listQuery.beginTime = null
},
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
let spanOneArr = [], concatOne = 0;
// let spanTwoArr = [], concatTwo = 0;