From 4f17438e8199eb44c98d6fcc888dc08ece3bab19 Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期五, 08 十一月 2024 18:14:05 +0800
Subject: [PATCH] 1
---
src/views/mdc/time-analysis.vue | 170 ++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 128 insertions(+), 42 deletions(-)
diff --git a/src/views/mdc/time-analysis.vue b/src/views/mdc/time-analysis.vue
index 522f01a..6cc39f7 100644
--- a/src/views/mdc/time-analysis.vue
+++ b/src/views/mdc/time-analysis.vue
@@ -2,17 +2,17 @@
* @Author: lzhe lzhe@example.com
* @Date: 2024-04-26 09:36:18
* @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-06-05 14:06:08
+ * @LastEditTime: 2024-11-08 18:13:17
* @FilePath: /smart-web/src/views/mdc/status-record.vue
* @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
- <el-main style="height: 100%;">
+ <el-main style="height: 100%;" class="timeAnalysis">
<el-card shadow="never" style="height: 100%;" body-style="height: 100%;padding: 0;">
<el-container style="height: 100%;">
<el-aside width="300px" style="height: 100%;">
<el-container>
- <div class="left-title">鏌ヨ鏉′欢</div>
+ <!-- <div class="left-title">鏌ヨ鏉′欢</div> -->
<el-main style="padding: 20px;">
<el-row>
<el-col style="margin-bottom: 12px;">鏃ユ湡</el-col>
@@ -35,12 +35,19 @@
</el-main>
<el-footer>
<el-button @click="query" type="primary">鏌ヨ</el-button>
- <el-button @click="exportData">瀵煎嚭</el-button>
+ <!-- <el-button @click="exportVisible = true">瀵煎嚭</el-button> -->
+ <exportDialog @export="exportExcel"></exportDialog>
</el-footer>
</el-container>
</el-aside>
<el-container>
- <el-main>
+ <el-main style="position: relative;">
+ <span class="setSpan">
+ <el-icon class="setIcon">
+ <Setting />
+ </el-icon>
+ <span class="setBtn" @click="openSet">鍒嗘瀽璁剧疆</span>
+ </span>
<el-tabs tab-position="top" v-model="activeName" type="card" @tab-change="tabChange">
<el-tab-pane label="鎸夌彮娆$粺璁�" name="shift">
<!-- 鏃ユ湡 -->
@@ -91,7 +98,7 @@
</div>
</div>
<!-- 鎸夋椂闂村懆鏈熺粺璁harts -->
- <div id="analysisA" v-if="setTitle.length != 0">
+ <div id="analysisB" v-if="setTitle.length != 0">
<div class="demo-collapse">
<el-collapse v-model="activeNames1" accordion>
<el-collapse-item v-for="(item,index) in setTitle1" :name="index + 1">
@@ -120,11 +127,16 @@
</el-container>
</el-container>
</el-card>
+ <el-dialog title="璁剧疆" v-model="dialogVisible" v-if="dialogVisible" width="30%" class="setModelStyle">
+ <Efficiency :showModalList="showModalList" />
+ </el-dialog>
</el-main>
</template>
<script>
+import exportDialog from '@/layout/components/exportDialog.vue'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
+import Efficiency from './configComp/Efficiency.vue'
let icons = []
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
icons.push(key)
@@ -134,10 +146,12 @@
import MYTree from './MYTree.vue';
export default {
components: {
- ...ElementPlusIconsVue,MYTree
+ ...ElementPlusIconsVue,MYTree,exportDialog,Efficiency
},
data() {
return {
+ showModalList: [1],
+ dialogVisible: false,
treeListNodeList: [],
ids: [],
activeNames: [],
@@ -199,7 +213,6 @@
params.forEach(item=> {
dom += `<div>${item.marker}${item.seriesName}锛�${item.data}%</div>`
})
- console.log(params)
return dom;
}
},
@@ -218,6 +231,9 @@
show: true,
axisLabel: {
formatter: function (value) {
+ if(value <= 1) {
+ value = value * 100;
+ }
return value + "%";
}
},
@@ -254,7 +270,10 @@
show: true,
axisLabel: {
formatter: function (value) {
- return value * 100 + "%";
+ if(value <= 1) {
+ value = value * 100;
+ }
+ return value + "%";
}
},
data: [2,20,40,60,80,100]
@@ -290,7 +309,10 @@
show: true,
axisLabel: {
formatter: function (value) {
- return value * 100 + "%";
+ if(value <= 1) {
+ value = value * 100;
+ }
+ return value + "%";
}
},
data: [2,20,40,60,80,100]
@@ -326,7 +348,10 @@
show: true,
axisLabel: {
formatter: function (value) {
- return value * 100 + "%";
+ if(value <= 1) {
+ value = value * 100;
+ }
+ return value + "%";
}
},
data: [2,20,40,60,80,100]
@@ -345,8 +370,29 @@
this.getGlobal(); //鑾峰彇棰滆壊
},
methods: {
+ openSet() {
+ this.dialogVisible = true;
+ },
+ exportExcel(statisticalMethod) {
+ var ids = [];
+ this.treeChecked.forEach(item=> {
+ ids.push(item.id);
+ })
+ this.$HTTP.post(`/api/mdc/time-used-analysis/excel/export`, {
+ startTime: this.time[0],
+ endTime: this.time[1],
+ enums: statisticalMethod,
+ ids
+ }).then(res => {
+ if (res.success) {
+ window.open(res.data.link)
+ } else {
+ this.$message.error(res.msg)
+ }
+ })
+ },
getGlobal() {
- this.$HTTP.get(`/api/blade-cps/global_wcs/list`).then(res=> {
+ this.$HTTP.get(`/api/smis/global_wcs/list`).then(res=> {
if(res.code == 200) {
this.getGlobalColorList = res.data;
}
@@ -368,7 +414,7 @@
type: 1
}
}
- this.$HTTP.post(`/api/blade-mdc/time-used-analysis/workstation/shiftName`,obj).then(res=> {
+ this.$HTTP.post(`/api/mdc/time-used-analysis/workstation/shiftName`,obj).then(res=> {
if(res.code == 200) {
this.setTitle = res.data.shiftDetails;
res.data.shiftDetails.forEach(item=> {
@@ -470,7 +516,7 @@
}else if(this.btnLeftctive == 2) { //鎸夊伐浣嶇粍缁熻
obj.type = 1;
}
- this.$HTTP.post(`/api/blade-mdc/time-used-analysis/work-stations?current=${this.current}&size=${this.size}`,obj).then(res=> {
+ this.$HTTP.post(`/api/mdc/time-used-analysis/work-stations?current=${this.current}&size=${this.size}`,obj).then(res=> {
if(res.code == 200) {
var xAxis = [];
res.data.workStationDetails.forEach(item=> {
@@ -481,11 +527,11 @@
this.chartOptionA.series = this.formatChartData(res.data.countStatus);
var myChart = echarts.init(recordDom);
myChart.setOption(this.chartOptionA);
- console.log(JSON.stringify(this.chartOptionA))
}
})
},
getDataChartsB(enums,month) {
+ console.log(enums,month,this.date)
var obj = {
enums: enums,
groupCategory: 1,
@@ -497,6 +543,9 @@
week: moment(this.date).get('week'),
year: moment(this.date).get('year')
}
+ if(enums == "WEEK") {
+ obj.week = this.setTitle1[1].btnListActive.split("-")[1];
+ }
if(month) {
obj.month = month;
}
@@ -505,7 +554,7 @@
}else if(this.btnLeftctive == 2) { //鎸夊伐浣嶇粍缁熻
obj.type = 1;
}
- this.$HTTP.post(`/api/blade-mdc/time-used-analysis/work-stations?current=${this.current}&size=${this.size}`,obj).then(res=> {
+ this.$HTTP.post(`/api/mdc/time-used-analysis/work-stations?current=${this.current}&size=${this.size}`,obj).then(res=> {
if(res.code == 200) {
var xAxis = [];
res.data.workStationDetails == null ? res.data.workStationDetails = [] : res.data.workStationDetails;
@@ -534,7 +583,7 @@
})
},
getTree2List() { //鎸夊伐浣嶇粍缁熻
- this.$HTTP.get(`/api/blade-cps/group/tree?groupCategory=1&groupType=group_workstation`).then(res=> {
+ this.$HTTP.get(`/api/smis/group/tree?groupCategory=1&groupType=group_workstation`).then(res=> {
if(res.code == 200) {
this.tree2 = res.data;
}
@@ -546,17 +595,21 @@
changeLeftTab(item) {
this.btnLeftctive = item.id;
this.ids = [];
+ if(item.id == 2) { //鎸夊伐浣嶇粺璁℃爲
+ this.getTree2List();
+ }
},
tabChange(val) {
this.activeName = val;
if(val == "time") { //鎸夋椂闂村懆鏈熺粺璁�
+ var len = this.btnList.length;
if(this.setTitle.length != 0) {
var obj = {
endDate: this.btnList[0].id,
- startDate: this.btnList[0].id,
+ startDate: this.btnList[len-1].id,
statisticalMethod: "WEEK"
}
- this.$HTTP.post(`/api/blade-mdc/efficiency-analysis/interval`,obj).then(res=> {
+ this.$HTTP.post(`/api/mdc/efficiency-analysis/interval`,obj).then(res=> {
if(res.code == 200) {
var dateInJuly = moment(this.btnList[0].id);
// 鑾峰彇璇ユ湀浠界殑绗竴澶�
@@ -564,8 +617,8 @@
// 鑾峰彇璇ユ湀浠界殑鏈�鍚庝竴澶�
var lastDayOfJuly = dateInJuly.endOf('month').format('YYYY-MM-DD');
//璺ㄦ湀
- var startDate = moment(res.data[0].startDate).month() + 1;
- var endDate = moment(res.data[0].endDate).month() + 1;
+ var startDate = moment(this.btnList[this.btnList.length - 1].id).month() + 1;
+ var endDate = moment(this.btnList[0].id).month() + 1;
var arrMonth = [];
for (var i = startDate; i <= endDate; i++) {
arrMonth.push({title: (i + "鏈�"),id: (i + "鏈�")});
@@ -576,9 +629,11 @@
name: '鎸夋棩鏌ョ湅',
btnListActive: this.btnList[0].id
},{
- btnList: [{title:moment(this.date).get('week') + "鍛�",id: moment(this.date).get('week') + "鍛�"}],
+ //btnList: [{title:moment(this.date).get('week') + "鍛�",id: moment(this.date).get('week') + "鍛�"}],
+ //btnListActive: moment(this.date).get('week') + "鍛�",
+ btnList: res.data,
name: '鎸夊懆鏌ョ湅',
- btnListActive: moment(this.date).get('week') + "鍛�",
+ btnListActive: res.data[0].id,
indexName : res.data[0].startDate + "鑷�" + res.data[0].endDate
},{
btnList: arrMonth.reverse(),
@@ -587,6 +642,7 @@
indexName : firstDayOfJuly + "鑷�" + lastDayOfJuly
});
this.setTitle1 = arr;
+ this.date = this.btnList[0].id;
this.$nextTick(()=> {
this.getDataChartsB("DAY");
this.getDataChartsB("MONTH");
@@ -596,20 +652,20 @@
})
}
}else if(val == "shift") { //鎸夌彮娆$粺璁�
-
+ this.query();
}
},
exportData() { //瀵煎嚭
- var obj = {
- endTime: this.time[1],
- startTime: this.time[0],
- workstationInfoList: this.workstationInfoList
- }
- this.$HTTP.post(`/api/blade-mdc/status-record/excel/export`,obj).then(res=> {
- if(res.code == 200) {
- window.open(res.data.link);
- }
- })
+ // var obj = {
+ // endTime: this.time[1],
+ // startTime: this.time[0],
+ // workstationInfoList: this.workstationInfoList
+ // }
+ // this.$HTTP.post(`/api/mdc/time-used-analysis/excel/export`,obj).then(res=> {
+ // if(res.code == 200) {
+ // window.open(res.data.link);
+ // }
+ // })
},
changeTab(item) {
this.btnListActive = item.id;
@@ -617,6 +673,7 @@
this.getDataA();
},
changeTabB(item,index,index1) {
+ console.log(item,index,index1,this.setTitle1);
this.setTitle1[index].btnListActive = item.id;
this.date = this.setTitle1[0].btnListActive;
if(index == 0) {
@@ -624,13 +681,20 @@
}
if(index == 1) {
this.getDataChartsB("WEEK");
+ this.setTitle1[index].indexName = item.startDate + "鑷�" + item.endDate
}
if(index == 2) { //鏈�
+ var dateInJuly = moment(this.setTitle1[index].indexName.split("-")[0] + "-" + this.setTitle1[index].btnListActive.replace("鏈�","") + "-01");
+ // 鑾峰彇璇ユ湀浠界殑绗竴澶�
+ var firstDayOfJuly = dateInJuly.startOf('month').format('YYYY-MM-DD');
+ // 鑾峰彇璇ユ湀浠界殑鏈�鍚庝竴澶�
+ var lastDayOfJuly = dateInJuly.endOf('month').format('YYYY-MM-DD');
+ this.setTitle1[index].indexName = firstDayOfJuly + "鑷�" + lastDayOfJuly;
this.getDataChartsB("MONTH",this.setTitle1[2].btnListActive.split("鏈�")[0]);
}
},
getTime(data) {
- this.$HTTP.post('/api/blade-mdc/efficiency-analysis/interval', {
+ this.$HTTP.post('/api/mdc/efficiency-analysis/interval', {
...data
}).then(res => {
if (res.code === 200) {
@@ -655,8 +719,10 @@
this.date = this.time[1];
},
query() {
- console.log(this.activeName)
- this.getTime({endDate: this.time[1],startDate: this.time[0],statisticalMethod: 'SHIFT'});
+ this.getTime({endDate: this.time[1],startDate: this.time[0],statisticalMethod: "SHIFT"});
+ if(this.activeName != "shift") {
+ this.tabChange("time");
+ }
this.date = this.time[1];
this.ids = [];
if(this.btnLeftctive == 1) { //鎸夊伐浣嶇粺璁�
@@ -670,10 +736,6 @@
}
if(this.activeName == "shift") { //鎸夌彮娆$粺璁�
this.getDataA();
- }else if(this.activeName == "time") { //鎸夊懆鏈熺粺璁�
- this.getDataChartsB("DAY");
- this.getDataChartsB("WEEK");
- this.getDataChartsB("MONTH",this.setTitle1[2].btnListActive.split("鏈�")[0]);
}
}
}
@@ -791,7 +853,7 @@
font-weight: bold;
}
.demo-collapse /deep/ .el-collapse-item__header {
- background-color: #d8e8e8;
+ background-color: #7eb9f7;
margin: 8px;
height: 32px;
padding-left: 16px;
@@ -801,4 +863,28 @@
margin: 8px;
padding-left: 16px;
}
+ .setSpan {
+ vertical-align: sub;
+ font-size: 14px;
+ position: absolute;
+ top: 26px;
+ left: 280px;
+ z-index: 11;
+ }
+ .setIcon {
+ color: #409eff;
+ margin-left: 15px;
+ vertical-align: -2px;
+ }
+ .setBtn {
+ margin-left: 2px;
+ color: #409eff;
+ margin-left: 8px;
+ cursor: pointer;
+ font-size: 14px;
+ }
+ .timeAnalysis >>> .el-dialog__body {
+ padding-bottom: 0px;
+ padding-top: 0px;
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3