Compare commits

...

9 Commits

Author SHA1 Message Date
‘937886381’
83b9867c2a Merge branch 'projects/mescc/develop' into projects/mescc/zhp 2024-06-28 13:16:07 +08:00
‘937886381’
7b8f4cac21 修改bug 2024-06-28 13:15:43 +08:00
7886d5ad5a Merge pull request 'projects/mescc/zjl' (#73) from projects/mescc/zjl into projects/mescc/develop
Some checks are pending
continuous-integration/drone/push Build is pending
Reviewed-on: #73
2024-06-28 11:10:40 +08:00
b31b67d2ed Merge branch 'projects/mescc/develop' into projects/mescc/zjl 2024-06-28 11:09:49 +08:00
fc21359f8f 样式 2024-06-28 11:09:02 +08:00
be6d84daf5 Merge pull request 'projects/mescc/zjl' (#72) from projects/mescc/zjl into projects/mescc/develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #72
2024-06-27 16:57:47 +08:00
daaec2417c Merge branch 'projects/mescc/develop' into projects/mescc/zjl 2024-06-27 16:57:20 +08:00
dcf4f6c392 Merge pull request 'projects/mescc/zhp' (#71) from projects/mescc/zhp into projects/mescc/develop
Some checks are pending
continuous-integration/drone/push Build is pending
Reviewed-on: #71
2024-06-27 16:56:15 +08:00
d27e56cd7f 报表样式 2024-06-27 16:55:47 +08:00
17 changed files with 322 additions and 183 deletions

View File

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

View File

@ -12,7 +12,7 @@
v-for="item in legend" v-for="item in legend"
:key="item.label" :key="item.label"
class="legend-item" class="legend-item"
:style="{ fontSize: isFullscreen ? '0.58vw' : '0.54vw' }" :style="{ fontSize: isFullscreen ? '0.72vw' : '0.7vw' }"
>{{ item.label }}</span >{{ item.label }}</span
> >
</div> </div>
@ -65,7 +65,36 @@ export default {
top: "15%", top: "15%",
containLabel: true, 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: { xAxis: {
axisTick: { axisTick: {
show: false, show: false,
@ -77,15 +106,16 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: 12, fontSize: 14,
}, },
data: this.xAxis, data: this.xAxis,
}, },
yAxis: { yAxis: {
name: "单位/片", name: "单位/片",
position:'left',
nameTextStyle: { nameTextStyle: {
color: "#fff", color: "#fff",
fontSize: 12, fontSize: 14,
align:'right' align:'right'
}, },
axisTick: { axisTick: {
@ -93,7 +123,7 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: 12, fontSize: 14,
}, },
axisLine: { axisLine: {
show: true, show: true,
@ -118,7 +148,7 @@ export default {
position: 'top', // position: 'top', //
textStyle: { // textStyle: { //
color: '#DFF1FE', color: '#DFF1FE',
fontSize: 12 fontSize: 14
} }
}, },
itemStyle: { itemStyle: {
@ -162,7 +192,7 @@ export default {
position: 'top', // position: 'top', //
textStyle: { // textStyle: { //
color: '#DFF1FE', color: '#DFF1FE',
fontSize: 12 fontSize: 14
} }
}, },
itemStyle: { itemStyle: {
@ -201,9 +231,9 @@ export default {
this.actualOptions.series.map((item) => { this.actualOptions.series.map((item) => {
item.barWidth = val ? 18 : 12; item.barWidth = val ? 18 : 12;
}); });
this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12; this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 14;
this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12; this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 14;
this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12; this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 14;
this.initOptions(this.actualOptions); this.initOptions(this.actualOptions);
}, },
series(val) { series(val) {

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2024-04-28 13:42:51 * @Date: 2024-04-28 13:42:51
* @LastEditTime: 2024-06-21 15:02:27 * @LastEditTime: 2024-06-28 09:28:56
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -19,7 +19,7 @@
v-for="item in legend" v-for="item in legend"
:key="item.label" :key="item.label"
class="legend-item" class="legend-item"
:style="{ fontSize: isFullscreen ? '0.58vw' : '0.54vw' }" :style="{ fontSize: isFullscreen ? '0.72vw' : '0.7vw' }"
>{{ item.label }}</span >{{ item.label }}</span
> >
</div> </div>
@ -71,7 +71,31 @@ export default {
top: "18%", top: "18%",
containLabel: true, 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: { xAxis: {
axisTick: { axisTick: {
show: false, show: false,
@ -83,15 +107,16 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: 12, fontSize: 14,
}, },
data: this.xAxis, data: this.xAxis,
}, },
yAxis: { yAxis: {
name: "单位/片", name: "单位/片",
position: 'left',
nameTextStyle: { nameTextStyle: {
color: "#fff", color: "#fff",
fontSize: 12, fontSize: 14,
align: 'right' align: 'right'
}, },
axisTick: { axisTick: {
@ -99,7 +124,7 @@ export default {
}, },
axisLabel: { axisLabel: {
color: "#fff", color: "#fff",
fontSize: 12, fontSize: 14,
}, },
axisLine: { axisLine: {
show: true, show: true,
@ -227,9 +252,9 @@ export default {
this.actualOptions.series.map((item) => { this.actualOptions.series.map((item) => {
item.barWidth = val ? 18 : 12; item.barWidth = val ? 18 : 12;
}); });
this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 12; this.actualOptions.xAxis.axisLabel.fontSize = val ? 18 : 14;
this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 12; this.actualOptions.yAxis.axisLabel.fontSize = val ? 18 : 14;
this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 12; this.actualOptions.yAxis.nameTextStyle.fontSize = val ? 18 : 14;
this.initOptions(this.actualOptions); this.initOptions(this.actualOptions);
}, },
series(val) { series(val) {

View File

@ -83,7 +83,7 @@ export default {
// backdrop-filter: blur(2px); // backdrop-filter: blur(2px);
// border-radius: 4px; // border-radius: 4px;
transform: translate(-50%, -100%); 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: 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%); // background: radial-gradient(circle farthest-corner at bottom center,rgba(255,239,162,.7) 10%, #021842 30%);
// //

View File

@ -1,8 +1,8 @@
<!-- <!--
filename: Container.vue filename: Container.vue
author: liubin author: liubin
date: 2024-04-09 10:44:09 date: 2024-04-09 10:44:09
description: description:
--> -->
<template> <template>
@ -38,7 +38,7 @@
class="container-head" class="container-head"
:class="[side == 'left' ? 'gradient-to-right' : 'gradient-to-left']" :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> <h2 class="container-title">{{ title }}</h2>
</div> </div>
<div <div
@ -105,7 +105,7 @@ export default {
.container-head { .container-head {
// height: 40px; // height: 40px;
height: 3.8vh; height:4vh;
padding: 8px; padding: 8px;
display: flex; display: flex;
align-items: center; align-items: center;

View File

@ -30,7 +30,14 @@
</div> </div>
<!-- --> <!-- -->
<div> <div>
<div style="display: inline-block; width: 79%; vertical-align: top"> <div
style="
display: inline-block;
width: 79%;
vertical-align: top;
padding-right: 20px;
"
>
<base-chart <base-chart
v-show="this.chartMsg1.series[0].data.length > 0" v-show="this.chartMsg1.series[0].data.length > 0"
:chartHeight="chartHeight" :chartHeight="chartHeight"

View File

@ -71,7 +71,7 @@ export default {
"<br/>" + "<br/>" +
`${ `${
params[i].seriesType === "line" params[i].seriesType === "line"
? '<img width="10" height="10" style="margin-right:4px;" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTIuNzIxNjM5NXB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDEyLjcyMTYzOTUgOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDx0aXRsZT7nvJbnu4QgNjwvdGl0bGU+CiAgICA8ZyBpZD0iMDTmiqXooajnrqHnkIYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLmjIfmoIflrozmiJDmg4XlhrUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDUxLjYzOTE4MCwgLTQyNS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Iue8lue7hC025aSH5Lu9LTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMjEuNTAwMDAwLCAzNDQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0i57yW57uELTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5LjUwMDAwMCwgNzguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgeD0iMCIgeT0iMCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0Ij48L3JlY3Q+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuMTM5MTgwMjYsMyBDOS4wMDMxMDczNywzIDEwLjU2OTI2NzMsNC4yNzQ4OTI3MiAxMS4wMTMyMjU0LDYuMDAwMjQzNDcgTDEyLjM2MDgxOTcsNiBDMTIuOTEzMTA0NSw2IDEzLjM2MDgxOTcsNi40NDc3MTUyNSAxMy4zNjA4MTk3LDcgQzEzLjM2MDgxOTcsNy41NTIyODQ3NSAxMi45MTMxMDQ1LDggMTIuMzYwODE5Nyw4IEwxMS4wMTI5NjY3LDguMDAwNzYxMzQgQzEwLjU2ODY1OTIsOS43MjU2MDIyNCA5LjAwMjc0NTUxLDExIDcuMTM5MTgwMjYsMTEgQzUuMjc1NjE1MDEsMTEgMy43MDk3MDEzMSw5LjcyNTYwMjI0IDMuMjY1MzkzNzgsOC4wMDA3NjEzNCBMMS42MzkxODAyNiw4IEMxLjA4Njg5NTUxLDggMC42MzkxODAyNTgsNy41NTIyODQ3NSAwLjYzOTE4MDI1OCw3IEMwLjYzOTE4MDI1OCw2LjQ0NzcxNTI1IDEuMDg2ODk1NTEsNiAxLjYzOTE4MDI2LDYgTDMuMjY1MTM1MDksNi4wMDAyNDM0NyBDMy43MDkwOTMyLDQuMjc0ODkyNzIgNS4yNzUyNTMxNSwzIDcuMTM5MTgwMjYsMyBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjRkZDRTZBIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+" />' ? '<img width="11" height="11" style="margin-right:4px;" src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTIuNzIxNjM5NXB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDEyLjcyMTYzOTUgOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KICAgIDx0aXRsZT7nvJbnu4QgNjwvdGl0bGU+CiAgICA8ZyBpZD0iMDTmiqXooajnrqHnkIYiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSLmjIfmoIflrozmiJDmg4XlhrUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0xMDUxLjYzOTE4MCwgLTQyNS4wMDAwMDApIj4KICAgICAgICAgICAgPGcgaWQ9Iue8lue7hC025aSH5Lu9LTQiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEwMjEuNTAwMDAwLCAzNDQuMDAwMDAwKSI+CiAgICAgICAgICAgICAgICA8ZyBpZD0i57yW57uELTYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDI5LjUwMDAwMCwgNzguMDAwMDAwKSI+CiAgICAgICAgICAgICAgICAgICAgPHJlY3QgaWQ9IuefqeW9oiIgeD0iMCIgeT0iMCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0Ij48L3JlY3Q+CiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD0iTTcuMTM5MTgwMjYsMyBDOS4wMDMxMDczNywzIDEwLjU2OTI2NzMsNC4yNzQ4OTI3MiAxMS4wMTMyMjU0LDYuMDAwMjQzNDcgTDEyLjM2MDgxOTcsNiBDMTIuOTEzMTA0NSw2IDEzLjM2MDgxOTcsNi40NDc3MTUyNSAxMy4zNjA4MTk3LDcgQzEzLjM2MDgxOTcsNy41NTIyODQ3NSAxMi45MTMxMDQ1LDggMTIuMzYwODE5Nyw4IEwxMS4wMTI5NjY3LDguMDAwNzYxMzQgQzEwLjU2ODY1OTIsOS43MjU2MDIyNCA5LjAwMjc0NTUxLDExIDcuMTM5MTgwMjYsMTEgQzUuMjc1NjE1MDEsMTEgMy43MDk3MDEzMSw5LjcyNTYwMjI0IDMuMjY1MzkzNzgsOC4wMDA3NjEzNCBMMS42MzkxODAyNiw4IEMxLjA4Njg5NTUxLDggMC42MzkxODAyNTgsNy41NTIyODQ3NSAwLjYzOTE4MDI1OCw3IEMwLjYzOTE4MDI1OCw2LjQ0NzcxNTI1IDEuMDg2ODk1NTEsNiAxLjYzOTE4MDI2LDYgTDMuMjY1MTM1MDksNi4wMDAyNDM0NyBDMy43MDkwOTMyLDQuMjc0ODkyNzIgNS4yNzUyNTMxNSwzIDcuMTM5MTgwMjYsMyBaIiBpZD0i5b2i54q257uT5ZCIIiBmaWxsPSIjRkZDRTZBIiBmaWxsLXJ1bGU9Im5vbnplcm8iPjwvcGF0aD4KICAgICAgICAgICAgICAgIDwvZz4KICAgICAgICAgICAgPC9nPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+" />'
: `<span style="display:inline-block;margin-right:4px;border-radius:2px;width:10px;height:10px;background-color:${params[i].color}"></span>` : `<span style="display:inline-block;margin-right:4px;border-radius:2px;width:10px;height:10px;background-color:${params[i].color}"></span>`
}` + }` +
`<span style='display:inline-block;width:180px;color:rgba(0,0,0,0.8);font-size:14px;'>${params[i].seriesName}</span>` + `<span style='display:inline-block;width:180px;color:rgba(0,0,0,0.8);font-size:14px;'>${params[i].seriesName}</span>` +

View File

@ -1,7 +1,7 @@
<!-- <!--
* @Author: zhp * @Author: zhp
* @Date: 2024-06-20 16:13:52 * @Date: 2024-06-20 16:13:52
* @LastEditTime: 2024-06-27 09:55:02 * @LastEditTime: 2024-06-28 10:57:16
* @LastEditors: zhp * @LastEditors: zhp
* @Description: * @Description:
--> -->
@ -51,7 +51,7 @@ export default {
}, },
}, },
formatter: function (params) { 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>`; 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++) { for (var i = 0, l = params.length; i < l; i++) {
res += res +=

View File

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

View File

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

View File

@ -7,7 +7,7 @@
<div class="search"> <div class="search">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip"> <el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="时间维度" prop="date"> <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 v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
@ -402,6 +402,13 @@ export default {
this.getDataList() this.getDataList()
}, },
methods: { 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 }) { objectSpanMethod({ row, column, rowIndex, columnIndex }) {
let spanOneArr = [], concatOne = 0; let spanOneArr = [], concatOne = 0;
// let spanTwoArr = [], concatTwo = 0; // let spanTwoArr = [], concatTwo = 0;

View File

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

View File

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

View File

@ -7,7 +7,7 @@
<div class="search"> <div class="search">
<el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip"> <el-form :model="listQuery" :inline="true" ref="dataForm" class="blueTip">
<el-form-item label="时间维度" prop="type"> <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 v-for="item in timeList" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
@ -422,6 +422,13 @@ export default {
this.getDataList() this.getDataList()
}, },
methods: { 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 }) { objectSpanMethod({ row, column, rowIndex, columnIndex }) {
let spanOneArr = [], concatOne = 0; let spanOneArr = [], concatOne = 0;
// let spanTwoArr = [], concatTwo = 0; // let spanTwoArr = [], concatTwo = 0;

View File

@ -137,7 +137,7 @@
<!-- 添加或修改菜单对话框 --> <!-- 添加或修改菜单对话框 -->
<base-dialog :dialogTitle="title" :dialogVisible="open" width="50%"> <base-dialog :dialogTitle="title" :dialogVisible="open" width="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="120px">
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="上级菜单"> <el-form-item label="上级菜单">
@ -205,6 +205,7 @@
v-model="form.sort" v-model="form.sort"
controls-position="right" controls-position="right"
:min="0" :min="0"
style="width: 100%"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -331,8 +332,8 @@
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</div> </div>
</base-dialog> </base-dialog>
</div> </div>
@ -437,6 +438,12 @@ export default {
}, },
], ],
tableBtn: [ tableBtn: [
this.$auth.hasPermi("system:menu:create")
? {
type: "add",
btnName: "新增",
}
: undefined,
this.$auth.hasPermi("system:menu:update") this.$auth.hasPermi("system:menu:update")
? { ? {
type: "edit", type: "edit",
@ -449,12 +456,6 @@ export default {
btnName: "删除", btnName: "删除",
} }
: undefined, : undefined,
this.$auth.hasPermi("system:menu:create")
? {
type: "add",
btnName: "新增",
}
: undefined,
].filter((v) => v), ].filter((v) => v),
tableProps, tableProps,
heightNum: 210, heightNum: 210,

View File

@ -83,7 +83,7 @@
{{ parseTime(form.startTime) }} | {{ form.duration }} ms {{ parseTime(form.startTime) }} | {{ form.duration }} ms
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="24">
<el-form-item label="操作结果:"> <el-form-item label="操作结果:">
<div v-if="form.resultCode === 0"> <div v-if="form.resultCode === 0">
正常 | {{ form.resultData }} 正常 | {{ form.resultData }}

View File

@ -1,5 +1,5 @@
<template> <template>
<div class="app-container"> <div class="user-container">
<!-- <doc-alert title="用户体系" url="https://doc.iocoder.cn/user-center/" /> <!-- <doc-alert title="用户体系" url="https://doc.iocoder.cn/user-center/" />
<doc-alert title="三方登陆" url="https://doc.iocoder.cn/social-user/" /> <doc-alert title="三方登陆" url="https://doc.iocoder.cn/social-user/" />
<doc-alert <doc-alert
@ -8,40 +8,43 @@
/> --> /> -->
<!-- 搜索工作栏 --> <!-- 搜索工作栏 -->
<el-row :gutter="20"> <el-row :gutter="8" class="user-box">
<!--部门数据--> <!--部门数据-->
<el-col :span="4" :xs="24"> <el-col :span="4" :xs="24">
<div class="head-container"> <div class="user-box-left">
<el-input <div class="head-container">
v-model="deptName" <el-input
placeholder="请输入部门名称" v-model="deptName"
clearable placeholder="请输入部门名称"
size="small" clearable
prefix-icon="el-icon-search" size="small"
style="margin-bottom: 20px" prefix-icon="el-icon-search"
/> style="margin-bottom: 20px"
</div> />
<div class="head-container"> </div>
<el-tree <div class="head-container">
:data="deptOptions" <el-tree
:props="defaultProps" :data="deptOptions"
:expand-on-click-node="false" :props="defaultProps"
:filter-node-method="filterNode" :expand-on-click-node="false"
ref="tree" :filter-node-method="filterNode"
default-expand-all ref="tree"
highlight-current default-expand-all
@node-click="handleNodeClick" highlight-current
/> @node-click="handleNodeClick"
/>
</div>
</div> </div>
</el-col> </el-col>
<!--用户数据--> <!--用户数据-->
<el-col :span="20" :xs="24"> <el-col :span="20" :xs="24">
<search-bar <div class="user-box-right">
:formConfigs="formConfig" <search-bar
ref="searchBarForm" :formConfigs="formConfig"
@headBtnClick="buttonClick" ref="userSearchBarForm"
/> @headBtnClick="buttonClick"
<!-- <el-form />
<!-- <el-form
:model="queryParams" :model="queryParams"
ref="queryForm" ref="queryForm"
size="small" size="small"
@ -104,7 +107,7 @@
</el-form-item> </el-form-item>
</el-form> --> </el-form> -->
<!-- <el-row :gutter="10" class="mb8"> <!-- <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
@ -144,25 +147,25 @@
></right-toolbar> ></right-toolbar>
</el-row> --> </el-row> -->
<!-- 列表 --> <!-- 列表 -->
<base-table <base-table
:page="queryParams.pageNo" :page="queryParams.pageNo"
:limit="queryParams.pageSize" :limit="queryParams.pageSize"
:table-props="tableProps" :table-props="tableProps"
:table-data="userList" :table-data="userList"
:max-height="tableH" :max-height="tableH"
@emitFun="handleStatusChange" @emitFun="handleStatusChange"
> >
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="220" :width="220"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" @clickBtn="handleClick"
/> />
</base-table> </base-table>
<!-- <el-table v-loading="loading" :data="userList"> <!-- <el-table v-loading="loading" :data="userList">
<el-table-column <el-table-column
label="用户编号" label="用户编号"
align="center" align="center"
@ -288,18 +291,19 @@
</el-table-column> </el-table-column>
</el-table> --> </el-table> -->
<pagination <pagination
:page.sync="queryParams.pageNo" :page.sync="queryParams.pageNo"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
:total="total" :total="total"
@pagination="getList" @pagination="getList"
/> />
</div>
</el-col> </el-col>
</el-row> </el-row>
<!-- 添加或修改参数配置对话框 --> <!-- 添加或修改参数配置对话框 -->
<base-dialog :dialogTitle="title" :dialogVisible="open" width="50%"> <base-dialog :dialogTitle="title" :dialogVisible="open" width="50%">
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="用户昵称" prop="nickname"> <el-form-item label="用户昵称" prop="nickname">
@ -412,8 +416,8 @@
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</div> </div>
</base-dialog> </base-dialog>
@ -448,7 +452,7 @@
:underline="false" :underline="false"
style="font-size: 12px; vertical-align: baseline" style="font-size: 12px; vertical-align: baseline"
@click="importTemplate" @click="importTemplate"
>下载模板</el-link >导出模板</el-link
> >
</div> </div>
</el-upload> </el-upload>
@ -606,6 +610,11 @@ export default {
name: "search", name: "search",
color: "primary", color: "primary",
}, },
{
type: "button",
btnName: "重置",
name: "cancel",
},
{ {
type: this.$auth.hasPermiOr([ type: this.$auth.hasPermiOr([
"system:user:create", "system:user:create",
@ -615,18 +624,11 @@ export default {
? "separate" ? "separate"
: "", : "",
}, },
{
type: this.$auth.hasPermi("system:user:create") ? "button" : "",
btnName: "新增",
name: "addNew",
color: "success",
plain: true,
},
{ {
type: this.$auth.hasPermi("system:user:import") ? "button" : "", type: this.$auth.hasPermi("system:user:import") ? "button" : "",
btnName: "导入", btnName: "导入",
name: "import", name: "import",
color: "warning", color: "primary",
plain: true, plain: true,
}, },
{ {
@ -636,20 +638,15 @@ export default {
color: "primary", color: "primary",
plain: true, plain: true,
}, },
{
type: this.$auth.hasPermi("system:user:create") ? "button" : "",
btnName: "新增",
name: "addNew",
color: "success",
plain: true,
},
], ],
tableBtn: [ tableBtn: [
this.$auth.hasPermi("system:user:update")
? {
type: "edit",
btnName: "修改",
}
: undefined,
this.$auth.hasPermi("system:user:delete")
? {
type: "delete",
btnName: "删除",
}
: undefined,
this.$auth.hasPermi("system:user:update-password") this.$auth.hasPermi("system:user:update-password")
? { ? {
type: "reset", type: "reset",
@ -662,6 +659,18 @@ export default {
btnName: "分配角色", btnName: "分配角色",
} }
: undefined, : undefined,
this.$auth.hasPermi("system:user:update")
? {
type: "edit",
btnName: "修改",
}
: undefined,
this.$auth.hasPermi("system:user:delete")
? {
type: "delete",
btnName: "删除",
}
: undefined,
].filter((v) => v), ].filter((v) => v),
tableProps, tableProps,
// //
@ -803,6 +812,15 @@ export default {
case "search": case "search":
this.handleQuery(val); this.handleQuery(val);
break; break;
case "cancel":
this.$refs["userSearchBarForm"].resetForm();
this.queryParams.pageNo = 1;
this.queryParams.username = "";
this.queryParams.mobile = "";
this.queryParams.status = "";
this.queryParams.createTime = [];
this.getList();
break;
case "addNew": case "addNew":
this.handleAdd(); this.handleAdd();
break; break;
@ -1033,7 +1051,7 @@ export default {
this.upload.title = "用户导入"; this.upload.title = "用户导入";
this.upload.open = true; this.upload.open = true;
}, },
/** 下载模板操作 */ /** 导出模板操作 */
importTemplate() { importTemplate() {
importTemplate().then((response) => { importTemplate().then((response) => {
this.$download.excel(response, "用户导入模板.xls"); this.$download.excel(response, "用户导入模板.xls");
@ -1090,11 +1108,19 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.app-container { .user-container {
width: 100%; width: 100%;
height: calc(100vh - 120px - 8px); height: calc(100vh - 120px - 8px);
background-color: #fff; background-color: #f2f4f9;
border-radius: 8px;
padding: 8px; .user-box {
.user-box-left,
.user-box-right {
background-color: #fff;
padding: 8px;
border-radius: 8px;
height: calc(100vh - 128px);
}
}
} }
</style> </style>