From 985befd1aacce206d49925399aba85a51c50ea6e Mon Sep 17 00:00:00 2001
From: songshankun <songshankun@foxmail.com>
Date: 星期二, 28 十一月 2023 17:20:03 +0800
Subject: [PATCH] feat: 下发后重连plc
---
src/views/dashboard/components/ProcessInfo.vue | 98 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 77 insertions(+), 21 deletions(-)
diff --git a/src/views/dashboard/components/ProcessInfo.vue b/src/views/dashboard/components/ProcessInfo.vue
index 18d6995..891f3ed 100644
--- a/src/views/dashboard/components/ProcessInfo.vue
+++ b/src/views/dashboard/components/ProcessInfo.vue
@@ -3,50 +3,95 @@
<div class="item-l-bng">
<img src="~@/assets/images/process-model.png" />
</div>
- <div class="item-r">
- <div class="item-r-t font_weight">{{ process.number }}</div>
- <div class="item-r-b">{{ process.name }}</div>
- <div class="item-r-b">{{ process.name }}</div>
+ <div class="item-r" @click="onDetailClick">
+ <div class="item-r-t font_weight">{{ craftModel.number }}</div>
+ <div class="item-r-b">浜у搧: {{ craftModel.product }}</div>
+ <div class="item-r-b">宸ヨ壓: {{ craftModel.procedure }}</div>
</div>
- <div class="tip-r">
+ <div v-if="craftModel.isUpdate" class="tip-r">
<img src="~@/assets/images/process-tip.png" />
</div>
- <div class="tip-current">褰撳墠浣跨敤</div>
+ <div v-if="craftModel.number == task?.Procedure?.processModelNumber" class="tip-current">褰撳墠浣跨敤</div>
<div class="btn">
- <el-button type="primary" class="color_organge"> 鏇存柊宸ヨ壓</el-button>
+ <el-button
+ type="primary"
+ :loading="loading"
+ :disabled="craftModel.isUpdate ? false : true"
+ @click="onUpdateClick"
+ >
+ <!-- <el-icon v-if="loading" color="#fff" :size="16" class="refresh-top-icon">
+ <Loading />
+ </el-icon> -->
+ 鏇存柊宸ヨ壓
+ </el-button>
</div>
</div>
</template>
<script setup lang="ts">
-import { computed, toRefs } from 'vue'
-export interface ProcessInfoProps {
- process?: process
-}
+import { toRefs, ref, watch } from 'vue'
+import { Loading } from '@element-plus/icons-vue'
+import type { CraftModel } from '@/api/craftModel'
+import type { Task } from '@/api/task'
+const props = defineProps<{
+ craftModel: CraftModel
+ activeArr: string[]
+ task?: Task
+}>()
+const { craftModel, task, activeArr } = toRefs(props)
-const props = defineProps<ProcessInfoProps>()
-const { process } = toRefs(props)
+const emit = defineEmits<{
+ update: [craftModel: CraftModel]
+ detail: [craftModel: CraftModel]
+}>()
+const loading = ref(false)
+watch(activeArr.value, () => {
+ // 寮圭獥鏄剧ず鏃惰幏鍙栧伐鑹哄弬鏁�
+ if (activeArr.value) {
+ getLoading()
+ }
+})
+function getLoading() {
+ for (let i in activeArr.value) {
+ if (activeArr.value[i] == craftModel.value.number) {
+ loading.value = true
+ return true
+ }
+ }
+ loading.value = false
+}
+function onDetailClick() {
+ emit('detail', craftModel.value)
+}
+function onUpdateClick() {
+ if (loading.value) {
+ return true
+ }
+ emit('update', craftModel.value)
+}
</script>
<style scoped lang="scss">
$status-running: #f76c0f;
$status-done: #2c5dbb82;
+$status-ready: #00ff00f0;
+$status-disabled: #7b95d3;
.font_weight {
font-weight: 600;
}
.process-info {
- width: calc(50% - 35px);
- height: 110px;
- padding: 23px 10px 10px;
+ width: calc(50% - 10px);
+ height: 140px;
+ padding: 23px 5px 10px 10px;
background: $status-done;
border-radius: 8px;
- float: left;
+ //float: left;
overflow: hidden;
font-size: 15px;
position: relative;
margin-bottom: 30px;
&:nth-of-type(odd) {
- margin-right: 30px;
+ margin-right: 20px;
}
.item-l-bng {
@@ -57,6 +102,11 @@
img {
width: 100%;
}
+ }
+ .refresh-top-icon {
+ display: flex;
+ align-items: center;
+ color: #fff;
}
.item-r {
@@ -88,7 +138,7 @@
}
.tip-current {
- background: green;
+ background: $status-ready;
color: #fff;
position: absolute;
top: 0px;
@@ -100,14 +150,20 @@
}
.btn {
- width: 100px;
+ width: 95px;
position: absolute;
- right: 0px;
+ right: 15px;
bottom: 10px;
.el-button--primary {
background: $status-running;
border: 0 !important;
}
+ .el-button.is-disabled,
+ .el-button.is-disabled:focus,
+ .el-button.is-disabled:hover {
+ color: #fff !important;
+ background: $status-disabled;
+ }
}
}
</style>
--
Gitblit v1.8.0