From 17282e0f87c44b925c1b1c073c65be2370d0a274 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期二, 05 十二月 2023 15:51:45 +0800
Subject: [PATCH] 设备负荷组件切换时间的问题修改
---
src/components/AddIssue.vue | 362 ++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 267 insertions(+), 95 deletions(-)
diff --git a/src/components/AddIssue.vue b/src/components/AddIssue.vue
index 6790233..223ce43 100644
--- a/src/components/AddIssue.vue
+++ b/src/components/AddIssue.vue
@@ -3,12 +3,17 @@
<el-dialog
:close-on-click-modal="false"
:visible.sync="islook"
- width="700px"
+ width="753px"
class="add-event-dialog"
:show-close="false"
>
- <div class="tank-box" v-loading.fullscreen.lock="isLoading" element-loading-text="涓嬪彂涓紝璇风◢鍚�...">
- <div slot="title" class="tac drawerHeader">鏂颁换鍔�</div>
+ <div class="tank-box">
+ <div slot="title" class="tac drawerHeader">
+ <span class="title-l">{{messageError?'鎻愮ず':'鏂颁换鍔�'}}</span>
+ <!-- <span class="title-r" @click="closeClick">
+ <img src="../../public/close.png" />
+ </span> -->
+ </div>
<div class="dialog-content-box">
<div
style="
@@ -16,21 +21,13 @@
width: 100%;
height: 100%;
overflow: hidden;
- margin-bottom: 30px;
text-align: left;
"
>
- <div class="title-box margin_bottom_13">
- <div class="title-item color_4efefa font_size_20 title-bng">
- 褰撳墠浠诲姟锛歿{ taskData.Procedure.procedure.procedureName || "" }}
- </div>
- <div class="title-item title-bng color_4efefa font_size_20">
- 鐢熶骇鏁伴噺锛�<span>{{ taskData.Order.amount || 0 }}</span>
- </div>
- </div>
<template v-if="messageError">
<div class="error-t">
- <img src="../../public/error.png" />
+ <span v-if="messageError =='涓嬪彂鎴愬姛锛�'" class="el-icon-success color_success"></span>
+ <span v-else class="el-icon-error color_error"></span>
</div>
<div class="error-m">
{{ messageError }}
@@ -39,10 +36,20 @@
class="font_size_20 color_fff"
style="text-align: center; width: 100%; margin: 10px 0"
>
- 璇烽噸璇�
+ <span v-if="messageError =='涓嬪彂鎴愬姛锛�'" style="font-size:30px;">{{3-Number(sencond)}}s</span>
+ <span v-else>璇烽噸璇�</span>
</div>
+
</template>
- <template v-else>
+ <template v-else-if="Object.keys(taskData).length > 0 ">
+ <div class="title-box margin_bottom_13">
+ <div class="title-item color_4efefa font_size_20 title-bng">
+ 褰撳墠浠诲姟锛歿{ taskData.Procedure.procedure.procedureName || "" }}
+ </div>
+ <div class="title-item title-bng color_4efefa font_size_20">
+ 鐢熶骇鏁伴噺锛�<span style="color:#fff;">{{ taskData.Order.amount || 0 }}</span>
+ </div>
+ </div>
<div class="title-auto-box">
<div class="title-box margin_bottom_20">
<div class="title-item">
@@ -65,10 +72,11 @@
宸ユ椂锛� {{ taskData.Procedure.procedure.workHours || "" }}
</div>
<div class="title-item">
- 璧锋鏃堕棿锛� {{ formatDate(taskData.Order.startTime) || "" }}
+ 璁″垝鏃堕棿锛� {{ formatDate(taskData.Order.startTime) || "" }}
-
{{ formatDate(taskData.Order.endTime) }}
</div>
+
<div class="title-item">
瀹㈡埛鍚嶇О锛歿{ taskData.Order.customer || "" }}
</div>
@@ -85,10 +93,10 @@
style="
color: #fff;
font-size: 18px;
- font-weight: 700;
margin-bottom: 10px;
margin-top: 20px;
"
+ class="color_4efefa"
>
宸ヨ壓鍙傛暟
</div>
@@ -97,7 +105,8 @@
v-for="(item, index) in Arr"
:key="index"
>
- {{ item.Key }}锛歿{ item.Value || "" }}
+ {{ item.Key }}锛歿{ item.Value || "" }}
+
</div>
</div>
</div>
@@ -105,28 +114,47 @@
<div
style="
color: red;
- font-size: 16px;
+ font-size: 26px;
width: 100%;
text-align: center;
- font-weight: 700;
- margin-bottom: 20px;
- margin-top: 10px;
+ margin-bottom: 15px;
+ line-height:35px;
"
+ :class="showBtn == 3&&isLoading?'margin-top-10px':'margin-top-40px'"
>
+ <div class="gif-box" v-if="showBtn == 2||(showBtn == 3&&!isLoading)">
+ <template v-if="showBtn == 2">
+ <div class="gif">
+ <img src="../../public/shan.gif" />
+ </div>
+
+ </template>
+ <template v-if="showBtn == 3&&!isLoading">
+ <div class="gif">
+ <span class="yuandian"></span>
+ </div>
+ </template>
+ <div class="gif-right">
+ ----- 鍓╀綑鏃堕棿 -----
+ <span>00:00:{{30 - Number(num)<10?0:''}}{{ 30 - Number(num) }}</span>
+ </div>
+ </div>
{{ message }}
</div>
- <div class="progress-item">
- <span>{{ parseInt((num / 60) * 100) }}%</span>
- <el-progress
- style="width: calc(100% - 50px); float: right"
- define-back-color="#CDC6C6"
- color="#00cc66"
- text-color="#fff"
- :text-inside="true"
- :stroke-width="20"
- :percentage="parseInt((num / 60) * 100)"
- ></el-progress>
- </div>
+ <template v-if="showBtn == 3&&isLoading">
+ <div class="progress-item">
+ <span>{{ parseInt((num / 30) * 100) }}%</span>
+ <el-progress
+ style="width: calc(100% - 50px); float: right"
+ define-back-color="#CDC6C6"
+ color="#00cc66"
+ text-color="#fff"
+ :text-inside="true"
+ :stroke-width="20"
+ :percentage="parseInt((num / 30) * 100)"
+ ></el-progress>
+ </div>
+ </template>
</div>
</template>
@@ -137,18 +165,22 @@
</div> -->
</div>
</div>
- <div slot="footer" class="dialog-footer tac" style="overflow: hidden">
+ <div slot="footer" :class="messageError?'dialog-footer tac btn-error':'dialog-footer tac'" style="overflow: hidden">
<template v-if="messageError">
- <div class="btn" style="margin-left: 220px" @click="confirmClick2">
- <img src="../../public/confirm3.png" />
+ <div class="btn" v-if="messageError =='涓嬪彂鎴愬姛锛�'||ArrError" @click="closeClick">
+ <img src="../../public/close-btn.png" />
+ </div>
+ <div class="btn" v-else @click="confirmClick2">
+ <img src="../../public/agin.png" />
</div>
</template>
<template v-else>
<div class="btn" @click="closeClick">
- <img src="../../public/btn1.png" />
+ <img src="../../public/btn1.png" />
</div>
- <div class="btn" v-if="showBtn == 1" @click="confirmClick1">
- <img src="../../public/confirm3.png" />
+ <div class="btn" v-if="showBtn == 1">
+ <div v-if='taskData&&taskData.CanStarted' @click="confirmClick1"><img src="../../public/confirm1.png" /></div>
+ <div v-else><img src="../../public/confirm2.png" /></div>
</div>
<div class="btn" v-if="showBtn == 2">
<img src="../../public/confirm2.png" />
@@ -159,7 +191,9 @@
v-prevent-re-click="3000"
@click="onSubmit()"
>
- <img src="../../public/confirm1.png" />
+ <i class="el-icon-loading icon-loading" v-if="isLoading"/>
+ <img src="../../public/loading.png" v-if="isLoading"/>
+ <img src="../../public/confirm3.png" v-if="!isLoading"/>
</div>
</template>
</div>
@@ -171,7 +205,6 @@
<script>
import {
startTask,
- setProductNumber,
sendProcessParams,
} from "@/api/home/index"; // 浜х嚎
// import ErrorIssue from "@/components/ErrorIssue";
@@ -196,41 +229,83 @@
return [];
},
},
+ ArrError:{
+ type: [String],
+ default: () => {
+ return '';
+ },
+ },
+ safeProduce:{
+ type: [String],
+ default: () => {
+ return '';
+ },
+ },
+ activeName:{
+ type: [String,Number],
+ default: () => {
+ return 1;
+ },
+ },
},
data() {
return {
islook: false,
- showBtn: 1,
+ showBtn:1,
num: 0,
timer: null,
- message: "璇风‘璁ょ敓浜у畨鍏紒",
+ message: this.safeProduce,
messageError: "",
resParams: {},
isLoading:false,
+ sencond:0,
+ sencondTimer:null,
};
},
mounted() {
+ this.message=this.safeProduce;
this.getInfo();
},
watch: {
taskData(val) {
+ this.message=this.safeProduce;
this.getInfo();
},
num() {
- if (this.num == 60) {
+ if (this.num == 30) {
clearInterval(this.timer);
this.showBtn = 3;
}
+ },
+ sencond(){
+ if(this.sencond==3){
+ clearInterval(this.sencondTimer);
+ this.closeClick()
+ }
+ },
+ islook(){
+ if (this.timer) {
+ clearInterval(this.timer);
+ }
+ this.num = 0;
+ this.showBtn=1;
+ this.isLoading=false
+ this.sencond=0
+ this.sencondTimer=null
+ this.messageError=''
+ this.resParams= {},
+ this.$emit('isTip',this.islook)
},
},
methods: {
confirmClick2() {
this.messageError = "";
+ this.isLoading=false;
},
confirmClick1() {
this.num = 0;
this.showBtn = 2;
- (this.message = "璇风‘璁ょ敓浜у畨鍏紒"),
+ (this.message = this.safeProduce),
(this.timer = setInterval(() => {
this.num = this.num + 1;
}, 1000));
@@ -243,17 +318,24 @@
this.shutdown();
},
getInfo() {
+ // 1 鏈敓浜� 2鐢熶骇涓� 3鐢熶骇瀹屾垚
if (
- Object.keys(this.taskData).length > 0 &&
- this.taskData.Procedure.ID &&
- this.taskData.Procedure.Status == 1
+ Object.keys(this.taskData).length > 0 && this.taskData.Procedure.ID &&
+ this.taskData.Procedure.Status == 1
) {
- this.num = 0;
- this.showBtn = 1;
- this.islook = true;
+ this.num = 0;
+ this.showBtn = 1;
+ this.islook = true;
} else {
this.islook = false;
+ // this.islook = true;
+
}
+ if(this.ArrError){
+ this.messageError=this.ArrError;
+
+ }
+
},
getDateObj(date, fmt) {
if (/(y+)/.test(fmt)) {
@@ -287,7 +369,7 @@
formatDate(value) {
if (value) {
const now = value ? new Date(value * 1000) : new Date();
- let time = this.getDateObj(now, "yyyy-MM-dd");
+ let time = this.getDateObj(now, "MM-dd hh:mm");
return time;
} else {
return "";
@@ -295,51 +377,59 @@
},
onSubmit() {
-
if (this.taskData.Procedure.ID) {
- (this.message = "鍙傛暟涓嬪彂涓�..."), (this.num = 0);
+ (this.message = "宸ヨ壓鍙傛暟涓嬪彂涓�..."), (this.num = 0);
this.timer = setInterval(() => {
this.num = this.num + 1;
- if (this.num == 60 || this.resParams) {
- this.num = 60;
+ if (this.num == 30 || this.resParams) {
+ this.num = 30;
this.getCode(this.resParams);
}
}, 1000);
+ if(this.isLoading){
+ return true;
+ }
this.isLoading=true;
- sendProcessParams({ id: this.taskData.Procedure.ID }).then((res) => {
+ sendProcessParams({ procedureId: this.taskData.Procedure.ID,position: Number(this.taskData.Position), }).then((res) => {
if (res.code == 200) {
- setProductNumber().then((res) => {
- this.resParams = res;
- this.isLoading=false;
- });
+ this.resParams = res;
+ this.isLoading=false;
} else {
this.isLoading=false;
this.resParams = res;
}
});
+ setTimeout(()=>{
+ this.isLoading=false;
+ },30000)
}
},
getCode(res) {
if (res.code == 200) {
- if (this.num == 60) {
+ if (this.num == 30) {
this.messageError = "涓嬪彂鎴愬姛锛�";
+ if (!this.sencondTimer) {
+ this.sencondTimer = setInterval(() => {
+ this.sencond = this.sencond + 1;
+ }, 1000);
+ }
clearInterval(this.timer);
- // this.num = 60;
+ // this.num = 30;
// this.showBtn = 2;
- this.message = "璇风‘璁ょ敓浜у畨鍏紒";
+ this.message = this.safeProduce;
this.num = 0;
this.showBtn= 1
this.shutdown();
- this.$emit('getSetProductNumber')
+ this.$emit('getSetProductNumber',this.activeName)
// this.$message.success("涓嬪彂鐢熶骇鏁伴噺鎴愬姛锛�");
}
} else {
this.messageError = res.msg ? res.msg : "鎶辨瓑锛屽伐搴忎笅鍙戝け璐ワ紒";
clearInterval(this.timer);
- this.num = 60;
+ this.num = 30;
this.showBtn = 2;
- this.message = "璇风‘璁ょ敓浜у畨鍏紒";
+ this.message =this.safeProduce;
}
},
shutdown() {
@@ -350,16 +440,29 @@
</script>
<style lang="scss" scoped>
+.color_error{
+ color:red;
+}
+.color_success{
+ color:green;
+}
.tank-box {
- width: 638px;
- height: 630px;
- padding: 0 20px;
+ width: 753px;
+ height: 728px;
background: url("../../public/tank.png") no-repeat center center / cover;
position: relative;
.dialog-footer {
position: absolute;
- bottom: 40px;
+ bottom: 25px;
+ width:100%;
+ text-align:center;
}
+}
+.margin-top-10px{
+ margin-top:10px;
+}
+.margin-top-40px{
+ margin-top:40px;
}
.color_4efefa {
color: #4efefa !important;
@@ -374,9 +477,10 @@
margin-bottom: 13px;
}
.title-box {
- width: 100%;
+ width: calc(100% - 140px);
height: auto;
overflow: hidden;
+ padding:0 70px;
.title-item {
width: 45%;
float: left;
@@ -390,11 +494,11 @@
}
.title-bng {
- height: 42px;
- line-height: 42px;
+ height: 52px;
+ line-height:52px;
span {
- width: calc(100% - 110px);
- height: 42px;
+ width: calc(100% - 120px);
+ height: 52px;
text-align: center;
display: inline-block;
background: url("../../public/number.png") no-repeat center center / cover;
@@ -405,16 +509,16 @@
}
}
.error-t {
- width: 120px;
- margin: 50px auto 40px;
- img {
- width: 100%;
+ width: 100px;
+ margin: 100px auto 40px;
+ font-size:98px;
+ span {
display: inline-block;
}
}
.error-m {
line-height: 35px;
- font-size: 26px;
+ font-size: 28px;
color: #fff;
margin-bottom: 20px;
text-align: center;
@@ -428,17 +532,27 @@
::v-deep .el-dialog__body {
padding: 0 !important;
}
+.btn-error{
+ bottom:80px!important;
+}
.btn {
- width: 200px;
+ width: 150px;
height: auto;
- float: left;
display: inline-block;
+ position:relative;
img {
width: 100%;
}
+ .icon-loading{
+ font-size:32px;
+ color:#333;
+ position:absolute;
+ line-height:2.0;
+ left:38%;
+ }
&:nth-of-type(1) {
- margin-right: 30px;
- margin-left: 110px;
+ // margin-right: 30px;
+ // margin-left: 110px;
}
}
::v-deep .el-tabs__content {
@@ -516,15 +630,56 @@
width: 100%;
}
.dialog-content-box {
- height: calc(100% - 200px);
+ height: calc(100% - 190px);
// overflow: hidden;
- padding: 50px 20px 20px;
+ padding: 20px 0px 10px;
.el-form {
overflow: hidden;
}
.title-auto-box {
- height: calc(100% - 150px);
+ height: calc(100% - 220px);
overflow: auto;
+ width:calc(100% - 140px);
+ margin: 0 auto;
+ background:#0E246A;
+ .title-box{
+ padding:0 10px;
+ width:calc(100% - 20px);
+ }
+ }
+ .gif-box{
+ width:230px;
+ margin:0 auto;
+ margin-bottom:5px;
+ .gif-right{
+ width:210px;
+ font-size:14px;
+ color:#fff;
+ line-height:28px;
+ span{
+ font-weight: 700;
+ font-size:18px;
+ }
+ }
+ }
+ .gif{
+ width:55px;
+ vertical-align: middle;
+ float:left;
+ margin-right:20px;
+ img{
+ width:100%;
+ }
+ .yuandian {
+ width: 55px;
+ height: 55px;
+ float:left;
+ // background: #15d815;
+ background:red;
+ border-radius: 50%;
+ // margin-top:-5px;
+ vertical-align: middle;
+ }
}
.progress-item {
width: 55%;
@@ -552,12 +707,29 @@
font-weight: 600;
}
.drawerHeader {
- font-weight: 700;
- font-size: 20px;
- text-align: center;
- color: #fff;
- height: 35px;
- line-height: 35px;
+ width:98%;
+ margin:0 auto;
+ overflow:hidden;
+ .title-l{
+ width:25%;
+ float:left;
+ margin-left:30px;
+ font-size: 25px;
+ color: #fff;
+ height: 3.2vw;
+ line-height: 4.5vw;
+ }
+ .title-r{
+ width:60px;
+ float:right;
+ height: 60px;
+ line-height: 5vw;
+ cursor:pointer;
+ img{
+ display:inline-block;
+ width:100%;
+ }
+ }
.identify {
width: 80px;
height: 25px;
--
Gitblit v1.8.0