From 4336b6e9141f2544363f4880fbd0d67f095e7074 Mon Sep 17 00:00:00 2001 From: haoxuan <haoxuan> Date: 星期六, 19 八月 2023 19:53:39 +0800 Subject: [PATCH] 面板需求 --- src/views/visualization.vue | 332 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 189 insertions(+), 143 deletions(-) diff --git a/src/views/visualization.vue b/src/views/visualization.vue index 23c3a5a..f38df0b 100644 --- a/src/views/visualization.vue +++ b/src/views/visualization.vue @@ -15,20 +15,24 @@ <span class="title-item" >璁㈠崟缂栧彿: <span class="color_4efefa">{{ - taskData.order.orderId || "" + taskData.Order.orderId || "" }}</span> </span> <span class="title-item" >褰撳墠宸ュ簭: <span class="color_4efefa">{{ - taskData.procedure.procedure.procedureName || "" + taskData.Procedure.procedure.procedureName || "" }}</span> </span> <span class="title-item" - >鍚庨亾宸ュ簭: <span class="color_4efefa">Q-22038</span> + >鍚庨亾宸ュ簭: <span class="color_4efefa"> + <!-- {{ + taskData.NextProcedure.procedure.procedureName || "--" + }} --> + </span> </span> <span class="title-item" - >宸ヤ綔浜烘暟: <span class="color_4efefa">6浜�</span> + >宸ヤ綔浜烘暟: <span class="color_4efefa">{{ taskData.Procedure.procedure.workers.length || 0}}浜�</span> </span> </div> <div class="content"> @@ -37,7 +41,7 @@ <div class="small_title">褰撳墠瀹屾垚</div> <div class="content_leftBttom"> <dl> - <dd style="font-size: 26px; font-weight: 600">0m</dd> + <dd style="font-size: 26px; font-weight: 600">{{ finishNumber }}{{ taskData.Order.unit }}</dd> </dl> </div> </div> @@ -45,7 +49,9 @@ <div class="small_title">姝e搧鐢熶骇</div> <div class="content_leftBttom"> <dl> - <dd style="font-size: 26px; font-weight: 600">400m</dd> + <dd style="font-size: 26px; font-weight: 600">{{ + taskData.Order.amount || 0 + }}{{ taskData.Order.unit }}</dd> </dl> </div> </div> @@ -53,44 +59,50 @@ <div class="content_right"> <el-descriptions :column="2" :colon="true"> <el-descriptions-item label="浜у搧鍚嶇О">{{ - taskData.order.productName || "" + taskData.Order.productName || "" }}</el-descriptions-item> - <el-descriptions-item label="鏁伴噺:">{{ - taskData.order.amount || "" + <el-descriptions-item label="鏁伴噺">{{ + taskData.Order.amount || 0 + }}{{ taskData.Order.unit }}</el-descriptions-item> + <el-descriptions-item label="浜よ揣鏃ユ湡">{{ + taskData.Order.deliverDate || "" }}</el-descriptions-item> - <el-descriptions-item label="浜よ揣鏃ユ湡:">{{ - taskData.order.deliverDate || "" - }}</el-descriptions-item> - <el-descriptions-item label="宸ユ椂:"> - {{ taskData.order.deliverDate || "" }} + <el-descriptions-item label="宸ユ椂"> + {{ taskData.Procedure.procedure.workHours || "" }} </el-descriptions-item> <el-descriptions-item label="璧锋鏃堕棿">{{ - taskData.order.startTime || "" - }}</el-descriptions-item> + formatDate(taskData.Procedure.procedure.startTime) || "" + }} - {{ formatDate(taskData.Procedure.procedure.endTime) }}</el-descriptions-item> <el-descriptions-item label="璐х墿鎻忚堪" - >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item + >{{ + taskData.Order.orderAttr || "" + }}</el-descriptions-item > <el-descriptions-item label="瀹㈡埛鍚嶇О" - >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item + >{{ + taskData.Order.customer || "" + }}</el-descriptions-item > <el-descriptions-item label="鍙傛暟瑕佹眰" - >姹熻嫃鐪佽嫃宸炲競鍚翠腑鍖哄惔涓ぇ閬� 1188 鍙�</el-descriptions-item + >{{ + taskData.Order.parameter || "" + }}</el-descriptions-item > </el-descriptions> <el-descriptions :column="1" :colon="true"> <el-descriptions-item label="瀹屾垚搴�" style="width: 100%"> - <!-- --> + <!--:text-format="format" --> <el-progress define-back-color="#007101" color="#00CC66" :text-inside="true" :stroke-width="30" - :percentage="progress" - :text-format="format" - >瀹屾垚鐜�50%</el-progress + :percentage="parseInt(finishNumber/taskData.Order.amount)" + + ></el-progress > </el-descriptions-item> - <el-descriptions-item label="鍚堟牸鐜�" style="width: 100%"> + <!-- <el-descriptions-item label="鍚堟牸鐜�" style="width: 100%"> <el-progress define-back-color="#007101" color="#00CC66" @@ -98,7 +110,7 @@ :stroke-width="30" :percentage="passrate" ></el-progress> - </el-descriptions-item> + </el-descriptions-item> --> </el-descriptions> </div> </div> @@ -117,8 +129,8 @@ class="card-box" ref="cardBox1" v-if=" - taskData.procedure.procedure && - taskData.procedure.procedure.inputMaterials + taskData.Procedure.procedure && + taskData.Procedure.procedure.inputMaterials " > <el-carousel-item @@ -132,21 +144,24 @@ > <div class="card_content"> <div class="card_contentLeft"> - 鍖呭彿:G22122304 100鍚▄{ index }} + {{ list.materialId}} </div> </div> <div class="card_top"> <div> - 璁惧12<i + <!-- 璁惧12<i style="font-size: 14px" class="el-icon-right font-arrow-20" ></i> - 璁惧13 + 璁惧13 --> + {{ list.materialName}} </div> </div> - <div class="card_top-2"> - <span class="card-top-r-t">鐢熶骇瀹屾垚</span> - <span class="card-top-r-b">12鏈�28鏃� 08:24</span> + <div class="card_top2"> + <div style="line-height:45px;text-align:center;"> + {{ list.amount}} {{ list.unit }}</div> + <!-- <span class="card-top-r-t">鐢熶骇瀹屾垚</span> + <span class="card-top-r-b">12鏈�28鏃� 08:24</span> --> </div> </div> </el-carousel-item> @@ -154,61 +169,68 @@ </div> <i class="el-icon-arrow-right font-arrow-20 color_4efefa"></i> <div class="bottom_list"> - <div class="bottom-title">褰撳墠宸ュ簭:鍓嶇汉(QF)</div> + <div class="bottom-title">褰撳墠宸ュ簭:{{ + taskData.Procedure.procedure.procedureName || "" + }}</div> <el-carousel direction="vertical" height="calc(100% - 0px)" :interval="500" class="card-box" + ref="cardBox2" v-if=" - taskData.procedure.procedure && - taskData.procedure.procedure.inputMaterials + taskData.Procedure.procedure && + procedureList " > <el-carousel-item :key="index" - v-for="(item, index) in inputMaterials" + v-for="(item, index) in procedureList" > <div class="card" :key="index2" v-for="(list, index2) in item"> - <div class="card_content"> - <div class="card_contentLeft color_blue"> - 鍖呭彿:G22122304 100鍚� - <span style="float: right">6m/s</span> + <template v-if="list.name=='宸ュ簭'"> + <div class="card_content"> + <div class="card_contentLeft color_blue"> + {{ list.deviceName }} + <!-- <span style="float: right">6m/s</span> --> + </div> </div> - </div> - <div class="card_top-3"> - <span class="card-top-r-t">瀹屾垚杩涘害锛�50%</span> - <span class="card-top-r-b"> - <el-progress - define-back-color="#007101" - color="#00CC66" - :text-inside="true" - :stroke-width="10" - :percentage="50" - :show-text="false" - ></el-progress> - </span> - </div> - <div class="card_top-2"> - <span class="card-top-r-t">瀹屾垚杩涘害锛�50%</span> - <span class="card-top-r-b">12鏈�28鏃� 08:24</span> - </div> + <div class="card_top-3"> + <span class="card-top-r-t">瀹屾垚杩涘害锛歿{ parseInt(finishNumber/taskData.Order.amount)||0 }}</span> + <span class="card-top-r-b"> + <el-progress + define-back-color="#007101" + color="#00CC66" + :text-inside="true" + :stroke-width="10" + :percentage="parseInt(finishNumber/taskData.Order.amount)" + :show-text="false" + ></el-progress> + </span> + </div> + <div class="card_top-2"> + <div style="line-height:45px;text-align:center;"> + 鐢熶骇涓�</div> + <!-- <span class="card-top-r-t">瀹屾垚杩涘害锛�50%</span> + <span class="card-top-r-b">12鏈�28鏃� 08:24</span> --> + </div> + </template> + <template v-else> + <div class="card_content"> + <div class="card_contentLeft color_blue"> + 宸ヨ壓缂栧彿锛歿{ list.number }} + </div> + </div> + <div class="card_top-4"> + 宸ヨ壓鐨勫叿浣撲俊鎭鐐瑰嚮鎺у埗鏌ョ湅锛� + </div> + </template> </div> </el-carousel-item> </el-carousel> - <div class="card"> - <div class="card_content"> - <div class="card_contentLeft color_blue"> - 鍖呭彿:G22122304 100鍚� - </div> - </div> - <div class="card_top-4"> - 姝ゆā鍨嬬敤浜庢暟鍊兼娴嬶紝绮惧噯妫�娴嬬浉鍏崇敓浜ф暟鎹�� - 姝ゆā鍨嬬敤浜庢暟鍊兼娴嬶紝绮惧噯妫�娴嬬浉鍏崇敓浜ф暟鎹� - </div> - </div> + <p style="font-size: 22px; margin-left: 12px; margin-top: 50px" ></p> @@ -228,8 +250,8 @@ ref="cardBox3" class="card-box" v-if=" - taskData.procedure.procedure && - taskData.procedure.procedure.outputMaterials + taskData.Procedure.procedure && + taskData.Procedure.procedure.outputMaterials " > <el-carousel-item @@ -245,24 +267,28 @@ class="card" > <div class="card_content"> - <div class="card_contentLeft">鍖呭彿:G22122304 100鍚�</div> + <div class="card_contentLeft">{{ list.materialId}}</div> </div> <div class="card_top"> <div> - 璁惧12<i + {{ list.materialName}} + <!-- 璁惧12<i style="font-size: 14px" class="el-icon-right font-arrow-20" ></i> - 璁惧13 + 璁惧13 --> </div> </div> - <div class="card_top-2"> - <span class="card-top-r-t">鐢熶骇瀹屾垚</span> - <span class="card-top-r-b">12鏈�28鏃� 08:24</span> + <div class="card_top2"> + <div style="line-height:45px;text-align:center;"> + {{ list.amount}} {{ list.unit }}</div> + <!-- <span class="card-top-r-t">鐢熶骇瀹屾垚</span> + <span class="card-top-r-b">12鏈�28鏃� 08:24</span> --> + </div> - <div class="card-info-box">棰勮10鍒嗛挓閫佽揪</div> + <!-- <div class="card-info-box">棰勮10鍒嗛挓閫佽揪</div> --> </div> - <div class="card"> + <!-- <div class="card"> <div class="card_content"> <div class="card_contentLeft color_green"> 鍖呭彿:G22122304 100鍚� @@ -281,7 +307,7 @@ <span class="card-top-r-t">鐢熶骇瀹屾垚</span> <span class="card-top-r-b">12鏈�28鏃� 08:24</span> </div> - </div> + </div> --> </div> </el-carousel-item> </el-carousel> @@ -315,22 +341,25 @@ </div> <div class="right_dutyLst"> <div class="right-small-title">褰撳墠鍊肩彮</div> - <dl class="right-small-person"> + <div class='right-person-box'> + <dl class="right-small-person" v-for="(item,index) in taskData.Procedure.procedure.workers" :key="index"> <dt> - <el-avatar + <!-- <el-avatar class="img-class" src="https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png" - ></el-avatar> + ></el-avatar> --> + <i class="el-icon-s-custom color_green" style='margin:10px;font-size:40px; '/> </dt> <span style="font-size: 20px; font-weight: 600; margin-right: 10px" - >{{ taskData.procedure.procedure.workers.workerName || "" }}</span + >{{ item.workerName || "" }}</span > <span style="color: #666">{{ - taskData.procedure.procedure.workers.phoneNum || "" + item.phoneNum || "" }}</span> </dl> - <div + </div> + <!-- <div style=" width: 100%; font-size: 18px; @@ -340,8 +369,8 @@ line-height: 50px; " > - 缂栧彿锛歿{ taskData.procedure.procedure.workers.workerId || "" }} - </div> + 缂栧彿锛歿{ taskData.Procedure.procedure.workers.workerId || "" }} + </div> --> <div class="right-small-btn"> <el-button type="primary"> 鎵撳嵃</el-button> <el-popover @@ -396,7 +425,7 @@ </div> </template> <!-- 鎺у埗鐨勫脊妗� --> - <AddControl ref="control" :id="taskData.procedure.id" /> + <AddControl ref="control" :id="taskData.Procedure.ID" /> </div> </template> @@ -406,6 +435,8 @@ finishTask, getMiniDictList, saveMiniDict, + startTask, + getProgress, } from "@/api/home/index"; // 浜х嚎 import Card from "@/components/Card.vue"; import Knowledge from "../components/Knowledge.vue"; @@ -421,12 +452,14 @@ progress: 70, //杩涘害 passrate: 30, //鍚堟牸鐜� production: 25, //鐢熶骇涓� + finishNumber:0, // 鍙充晶瀹屾垚 finishShow: false, inputMaterials: [], outputMaterials:[], + procedureList:[], taskData: { - order: { + Order: { amount: "", customer: "", deliverDate: "", @@ -439,57 +472,13 @@ startTime: "", unit: "", }, - procedure: { + Procedure: { id: 1, procedure: { deviceId: "", endTime: "", - inputMaterials: [ - { - amount: "", - materialId: "", - materialName: "", - unit: "", - }, - { - amount: "", - materialId: "", - materialName: "", - unit: "", - }, - { - amount: "", - materialId: "", - materialName: "", - unit: "", - }, - { - amount: "", - materialId: "", - materialName: "", - unit: "", - }, - { - amount: "", - materialId: "", - materialName: "", - unit: "", - }, - { - amount: "", - materialId: "", - materialName: "", - unit: "", - }, - ], - outputMaterials: [ - { - amount: "", - materialId: "", - materialName: "", - unit: "", - }, - ], + inputMaterials: [], + outputMaterials: [], procedureId: "", procedureName: "", startTime: "", @@ -513,9 +502,37 @@ // this.production = this.getRandomNumber(1, 100); // }, 3000); this.getTaskInfo(); + setInterval(() => { + this.getProgressInfo() + }, 60000); }, methods: { + getProgressInfo(){ + getProgress().then(res=>{ + if(res.code==200){ + + } + }) + }, + getDateObj (ms) { + const now = ms ? new Date(ms) : new Date() + const y = now.getFullYear() + let m = now.getMonth() + 1 + m = m > 9 ? m : '0' + m + let d = now.getDate() + d = d > 9 ? d : '0' + d + return { y, m, d } + }, + // 鏍煎紡鍖栨椂闂� ==> yyyy-mm-dd + formatDate (value, str) { + if (value) { + const dateObj = this.getDateObj(value) + return '' + dateObj.y + '-' + dateObj.m + '-' + dateObj.d + } else { + return '' + } + }, setInterCard(value, name) { let height = 200; let num = 1; @@ -524,7 +541,7 @@ num = Math.floor(height / 80); } let inputMaterials = JSON.parse( - JSON.stringify(this.taskData.procedure.procedure[value]) + JSON.stringify(this.taskData.Procedure.procedure[value]) ); let newDataList = []; let current = 0; @@ -552,8 +569,23 @@ getTaskInfo() { getTaskInfo().then((res) => { if (res.code == 200) { + this.taskData=res.data; + this.procedureList.push([{ + name:'宸ュ簭', + ...this.taskData.Procedure.procedure + }]) + if(this.taskData.Procedure.ID){ + startTask({id:this.taskData.Procedure.ID}).then(res=>{ + if(res.code==200){ + // res.data.number + this.procedureList[0].push({number:res.data.number,name:'宸ヨ壓'}) + } + }) + } + console.log(this.procedureList,'===1111procedureList') // setTimeout(() => { this.setInterCard("inputMaterials", "cardBox1"); + // this.setInterCard('procedureList','cardBox2') this.setInterCard('outputMaterials','cardBox3') // }, 5000); } @@ -572,9 +604,12 @@ }, // 鍙充晶瀹屾垚 finishClick() { - finishTask({ id: this.taskData.procedure.id }).then((res) => { + finishTask({ id: this.taskData.Procedure.ID }).then((res) => { if (res.code == 200) { + this.finishShow=false; + this.getTaskInfo() this.$message.success("鎿嶄綔鎴愬姛锛�"); + } }); }, @@ -977,6 +1012,7 @@ background: #00cc66; margin-top: 10px; padding: 5px 10px; + position:relative; .right-small-title { width: auto; padding: 5px; @@ -985,22 +1021,29 @@ border-radius: 8px; background: #007101; } + .right-person-box{ + width:100%; + height:calc(100% - 100px); + overflow:auto; + margin-top:20px; + } .right-small-person { width: 100%; height: 60px; line-height: 60px; - margin-top: 50px; + margin-bottom:10px; border-radius: 10px; background: #fff; color: #333; + dt { float: left; - padding: 5px; + margin-right: 10px; .img-class { height: 50px; - padding: 0 !important; + margin: 5px !important; } } span { @@ -1011,6 +1054,9 @@ .right-small-btn { margin-top: 10px; width: 100%; + position:absolute; + bottom:10px; + left:0; overflow: hidden; .el-button--primary { width: 46%; -- Gitblit v1.8.0