From c36d7594f155a079a80ef8b697219695184cea31 Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期一, 23 十月 2023 15:50:02 +0800
Subject: [PATCH] feat: 看板bug修复
---
src/components/TaskControlModal.vue | 8 ++
public/setting.png | 0
src/views/visualization.vue | 165 +++++++++++++++++++++++++++++++++++++++---------------
3 files changed, 124 insertions(+), 49 deletions(-)
diff --git a/public/setting.png b/public/setting.png
new file mode 100644
index 0000000..56871e8
--- /dev/null
+++ b/public/setting.png
Binary files differ
diff --git a/src/components/TaskControlModal.vue b/src/components/TaskControlModal.vue
index 42746bc..537dcee 100644
--- a/src/components/TaskControlModal.vue
+++ b/src/components/TaskControlModal.vue
@@ -136,8 +136,12 @@
</div>
</template>
<div class="gif-right">
- ----- 鍓╀綑鏃堕棿 -----
- <span>00:00:{{ 30 - Number(num) < 10 ? 0 : '' }}{{ 30 - Number(num) }}</span>
+ <div>
+ ----- 鍓╀綑鏃堕棿 -----
+ </div>
+ <div>
+ <span>00:00:{{ 30 - Number(num) < 10 ? 0 : '' }}{{ 30 - Number(num) }}</span>
+ </div>
</div>
</div>
{{ message }}
diff --git a/src/views/visualization.vue b/src/views/visualization.vue
index faa8596..b2c21a5 100644
--- a/src/views/visualization.vue
+++ b/src/views/visualization.vue
@@ -104,7 +104,8 @@
style="font-size: 35px; font-weight: 600"
class="color_green"
>
- {{ processingStatistics(taskData).finishNumber }}{{ taskData.Order.unit }}
+ {{ processingStatistics(taskData).finishNumber }}
+<!-- {{ taskData.Order.unit }}-->
</dd>
</dl>
</div>
@@ -117,7 +118,8 @@
style="font-size: 35px; font-weight: 600"
class="color_green"
>
- {{ processingStatistics(taskData).totalNumber }}{{ taskData.Order.unit }}
+ {{ processingStatistics(taskData).totalNumber }}
+<!-- {{ taskData.Order.unit }}-->
</dd>
</dl>
</div>
@@ -125,8 +127,8 @@
</div>
<div class="content_right">
<div class="gif" v-if="taskData.Procedure.ID" @click="processModelClick(taskData,index)">
- <img v-if="taskData.isUpdateIcon" src="../../public/shan.gif" />
- <span v-else class="yuandian"></span>
+ <img class="blink" v-if="taskData.isUpdateIcon" src="../../public/shan.gif" />
+ <span v-else class="tip"></span>
</div>
<el-descriptions :column="(activeName == 1||activeName == 3) ? 2 : 1" :colon="true">
<el-descriptions-item label="浜у搧鍚嶇О">{{
@@ -304,7 +306,7 @@
</div>
<div class="card_top-2">
<div style="line-height: 45px; text-align: center">
- {{ taskData.Procedure.Status==3?'鐢熶骇瀹屾垚':'鐢熶骇涓�' }}
+ {{ taskData?.plcStatus === 3 ? '寰呮満' : (taskData.Procedure.Status==3?'鐢熶骇瀹屾垚':'鐢熶骇涓�') }}
</div>
<!-- <span class="card-top-r-t">瀹屾垚杩涘害锛�50%</span>
<span class="card-top-r-b">12鏈�28鏃� 08:24</span> -->
@@ -354,10 +356,11 @@
class="button-finish"
v-model="finishShow['finishShow&'+index]"
trigger="click"
+ :ref="'popoverRef_' + index"
>
<p><i class="el-icon-error" style="color:red;margin-right:5px;"/>璇风‘璁ゆ槸鍚﹀凡瀹屾垚璇ョ敓浜т换鍔�?</p>
<div style="text-align: right; margin: 0">
- <el-button size="mini" @click="finishShow['finishShow&'+index] = false">
+ <el-button size="mini" @click="closePopover(index)">
鍙栨秷</el-button
>
<el-button
@@ -465,26 +468,28 @@
</div>
<div class="right-top-m">
璁惧鐘舵��:
- <!-- 1鏂紑2鐢熶骇3寰呮満 -->
- <span style="position: relative" v-if="plcStatus" >
- <el-popover
- v-if="plcStatus == 1&&plcNotConnected"
- width="180"
- :content="plcNotConnected"
- placement="top-end"
- trigger="click"
- >
- <span slot="reference">
- <img src="../../public/duan.png" />
- 鏂紑
+ <template v-for="(plcStatus, channel) in displayPLCStatus">
+ <!-- 1鏂紑2鐢熶骇3寰呮満 -->
+ <span class="plc-status" style="position: relative" v-if="plcStatus">
+ <el-popover
+ v-if="plcStatus === 1&&plcNotConnected"
+ width="180"
+ :content="plcNotConnected"
+ placement="top-end"
+ trigger="click"
+ >
+ <span slot="reference">
+ <img src="../../public/duan.png"/>
+ 鏂紑
+ </span>
+ </el-popover>
+ <span v-else>
+ <img v-if="plcStatus === 1&&!plcNotConnected" src="../../public/duan.png"/>
+ <img v-else src="../../public/lian.png"/>
+ {{ plcStatus === 1 ? '鏂紑' : (plcStatus === 2 ? '鐢熶骇涓�' : '寰呮満') }}
</span>
- </el-popover>
- <span v-else>
- <img v-if="plcStatus == 1&&!plcNotConnected" src="../../public/duan.png" />
- <img v-else src="../../public/lian.png" />
- {{ plcStatus==1?'鏂紑':(plcStatus==2?'鐢熶骇涓�':'寰呮満') }}
</span>
- </span>
+ </template>
</div>
<div class="right-top-m-btn">
<!-- <el-button type="primary" @click="controlClick"> 鎺у埗</el-button> -->
@@ -726,7 +731,7 @@
cutdownTimer: null,
ProcessModelTimer: null,
TaskCount:0,
- plcStatus:0,
+ PLCStatusMap:{0:0,1:0},
isTipShow:false,
// isFinsh:0,
safeProduce:'',
@@ -781,24 +786,31 @@
// }
// }
},
- methods: {
- processingStatistics(taskData){
- const status = taskData?.Procedure?.Status;
- // 濡傛灉status = 2 鍔犲伐涓�, 鍒欏姞宸ユ暟鍜岀洰鏍囨暟搴斿彇杞鎺ュ彛涓殑 finishNumber 鍜� totalNumber
- // 濡傛灉status = 1 鏈紑濮�, 鐩爣鏁� 鍙� taskData.Order.amount 鍔犲伐鏁板彇 0
- // 濡傛灉status = 3 宸插畬鎴�, 鐩爣鏁板拰鍔犲伐鏁伴兘鍙� amount
- let finishNumber = 0;
- let totalNumber = 0;
- if (status === 1){
- totalNumber = taskData?.Order?.amount ?? 0
- finishNumber = 0
- }else if (status === 2){
- totalNumber = taskData?.totalNumber ?? 0
- finishNumber = taskData?.finishNumber ?? 0
- }else if (status === 3){
- totalNumber = taskData?.Order?.amount ?? 0
- finishNumber = taskData?.Order?.amount ?? 0
+ computed:{
+ displayPLCStatus(){
+ let PLCStatus = []
+ if (this.activeName===1){
+ PLCStatus =[this.PLCStatusMap[0]]
+ }else if (this.activeName===2){
+ PLCStatus =[this.PLCStatusMap[0],this.PLCStatusMap[1]]
+ }else if (this.activeName===3){
+ PLCStatus =[this.PLCStatusMap[1]]
+ }else {
+ return []
}
+
+ return PLCStatus
+ }
+ },
+ methods: {
+ /**
+ * 浠庝换鍔′腑鑾峰彇鍔犲伐鏁板拰鐩爣鏁�
+ * @param taskData
+ * @return {{totalNumber: number, finishNumber: number}}
+ */
+ processingStatistics(taskData){
+ const totalNumber = taskData?.totalNumber ?? 0
+ const finishNumber = taskData?.finishNumber ?? 0
return {
/** 鐩爣鏁� */
@@ -809,10 +821,13 @@
},
/**
* 璁$畻鐢熶骇杩涘害
- * @param statistics
+ * @param {{totalNumber: number, finishNumber: number}} statistics
* @return {number} 杩涘害,0~100
*/
calculateProgress(statistics){
+ if (statistics.finishNumber === 0){
+ return 0
+ }
if (statistics.finishNumber === statistics.totalNumber){
return 100
}
@@ -1152,6 +1167,7 @@
this.TasksCopy[i].outputMaterials = [];
this.TasksCopy[i].finishNumber = 0;
this.TasksCopy[i].totalNumber = 0;
+ this.TasksCopy[i].plcStatus = 0;
this.TasksCopy[i].number=0;
this.TasksCopy[i].isUpdateIcon=false;
this.finishShow['finishShow&'+i]=false
@@ -1268,7 +1284,8 @@
if (res.code == 200) {
this.TasksCopy[i].finishNumber = res.data?.finishNumber ?? 0;
this.TasksCopy[i].totalNumber = res.data?.totalNumber ?? 0;
- this.plcStatus = res.data?.plcStatus ?? 0
+ this.TasksCopy[i].plcStatus = res.data?.plcStatus ?? 0
+ this.PLCStatusMap[i] = res.data?.plcStatus ?? 0
}
this.resprocInfoTimer=res;
});
@@ -1311,6 +1328,15 @@
} else {
this.$message.error("褰撳墠璁惧娌℃湁宸ュ簭锛�");
}
+ },
+
+ /**
+ * 鍏抽棴 tooltip
+ * @param index
+ */
+ closePopover(index){
+ this.finishShow['finishShow&'+index] = false
+ this.$refs?.['popoverRef_' + index]?.[0]?.doClose()
},
getRandomNumber(min, max) {
return Math.floor(Math.random() * (max - min + 1) + min);
@@ -1602,6 +1628,28 @@
// margin-top:-5px;
vertical-align: middle;
}
+
+
+.tip {
+ display:inline-block;
+ // background: #15d815;
+ background:red;
+ border-radius: 50%;
+ // margin-top:-5px;
+ vertical-align: middle;
+}
+.blink{
+ display: inline-block;
+ width: 14px;
+ height: 14px;
+}
+.tip, .blink{
+ position: absolute;
+ top: -6px;
+ right: -6px;
+ width: 14px;
+ height: 14px;
+}
.bottom_list {
position: relative;
padding: 10px;
@@ -1810,15 +1858,18 @@
border-radius: 6px;
position:relative;
.gif{
+ background: url("../../public/setting.png") no-repeat;
+ background-size:100% 100%;
position:absolute;
right:15px;
top:10px;
width:35px;
+ height: 35px;
vertical-align: middle;
cursor:pointer;
- img{
- width:100%;
- }
+ //img{
+ // width:100%;
+ //}
}
// background: #233b9e;
.el-descriptions-row{
@@ -2190,4 +2241,24 @@
padding: 12px;
}
}
+.plc-status{
+ margin-right: 24px;
+ position: relative;
+ display: inline-block;
+ height: 50px;
+ &:after{
+ content: '';
+ position: absolute;
+ top: 50%;
+ right: -12px;
+ margin-top: -15px;
+ border-right: 2px solid #ffffff;
+ height: 30px;
+ }
+}
+.plc-status:last-child{
+ &:after{
+ display: none;
+ }
+}
</style>
--
Gitblit v1.8.0