From 14101bd42ce17dfb9d951d0738abe9d303fb3fe5 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期一, 11 十二月 2023 10:41:39 +0800 Subject: [PATCH] 机器开机率、人员技能比饼图优化 --- src/components/AddIssue.vue | 194 ++++++++++++++++++++++++++++++++++-------------- 1 files changed, 137 insertions(+), 57 deletions(-) diff --git a/src/components/AddIssue.vue b/src/components/AddIssue.vue index 770bc09..223ce43 100644 --- a/src/components/AddIssue.vue +++ b/src/components/AddIssue.vue @@ -9,7 +9,7 @@ > <div class="tank-box"> <div slot="title" class="tac drawerHeader"> - <span class="title-l">鏂颁换鍔�</span> + <span class="title-l">{{messageError?'鎻愮ず':'鏂颁换鍔�'}}</span> <!-- <span class="title-r" @click="closeClick"> <img src="../../public/close.png" /> </span> --> @@ -24,17 +24,10 @@ 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 style="color:#fff;">{{ 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 }} @@ -43,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"> @@ -119,21 +122,28 @@ " :class="showBtn == 3&&isLoading?'margin-top-10px':'margin-top-40px'" > - <template v-if="showBtn == 2"> + <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> <template v-if="showBtn == 3&&isLoading"> <div class="progress-item"> - <span>{{ parseInt((num / 60) * 100) }}%</span> + <span>{{ parseInt((num / 30) * 100) }}%</span> <el-progress style="width: calc(100% - 50px); float: right" define-back-color="#CDC6C6" @@ -141,7 +151,7 @@ text-color="#fff" :text-inside="true" :stroke-width="20" - :percentage="parseInt((num / 60) * 100)" + :percentage="parseInt((num / 30) * 100)" ></el-progress> </div> </template> @@ -155,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" @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" /> </div> - <div class="btn" v-if="showBtn == 1" @click="confirmClick1"> - <img src="../../public/confirm1.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" /> @@ -178,7 +192,8 @@ @click="onSubmit()" > <i class="el-icon-loading icon-loading" v-if="isLoading"/> - <img src="../../public/confirm1.png" /> + <img src="../../public/loading.png" v-if="isLoading"/> + <img src="../../public/confirm3.png" v-if="!isLoading"/> </div> </template> </div> @@ -214,6 +229,24 @@ return []; }, }, + ArrError:{ + type: [String], + default: () => { + return ''; + }, + }, + safeProduce:{ + type: [String], + default: () => { + return ''; + }, + }, + activeName:{ + type: [String,Number], + default: () => { + return 1; + }, + }, }, data() { return { @@ -221,23 +254,33 @@ 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(){ @@ -247,6 +290,10 @@ this.num = 0; this.showBtn=1; this.isLoading=false + this.sencond=0 + this.sencondTimer=null + this.messageError='' + this.resParams= {}, this.$emit('isTip',this.islook) }, }, @@ -258,7 +305,7 @@ confirmClick1() { this.num = 0; this.showBtn = 2; - (this.message = "璇风‘璁ょ敓浜у畨鍏紒"), + (this.message = this.safeProduce), (this.timer = setInterval(() => { this.num = this.num + 1; }, 1000)); @@ -271,17 +318,22 @@ 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; + // this.islook = true; + + } + if(this.ArrError){ + this.messageError=this.ArrError; + } }, @@ -317,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 ""; @@ -325,13 +377,12 @@ }, onSubmit() { - if (this.taskData.Procedure.ID) { (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); @@ -355,25 +406,30 @@ }, 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() { @@ -384,6 +440,12 @@ </script> <style lang="scss" scoped> +.color_error{ + color:red; +} +.color_success{ + color:green; +} .tank-box { width: 753px; height: 728px; @@ -447,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; @@ -470,6 +532,9 @@ ::v-deep .el-dialog__body { padding: 0 !important; } +.btn-error{ + bottom:80px!important; +} .btn { width: 150px; height: auto; @@ -479,11 +544,11 @@ width: 100%; } .icon-loading{ - font-size:19px; + font-size:32px; color:#333; position:absolute; - line-height:3.4; - left:15%; + line-height:2.0; + left:38%; } &:nth-of-type(1) { // margin-right: 30px; @@ -572,7 +637,7 @@ overflow: hidden; } .title-auto-box { - height: calc(100% - 160px); + height: calc(100% - 220px); overflow: auto; width:calc(100% - 140px); margin: 0 auto; @@ -582,22 +647,37 @@ width:calc(100% - 20px); } } - .gif{ - width:35px; + .gif-box{ + width:230px; margin:0 auto; - display:inline-block; + 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: 35px; - height: 35px; - display: inline-block; + width: 55px; + height: 55px; + float:left; // background: #15d815; background:red; border-radius: 50%; - margin-top:-5px; + // margin-top:-5px; vertical-align: middle; } } -- Gitblit v1.8.0