From e944a85425e1404f894e28be4735979d69466305 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期一, 06 十一月 2023 17:43:15 +0800
Subject: [PATCH] 更新工艺接口联调,工艺详情的数据对接,工艺列表的更新状态和工艺详情的更新状态保持一致的逻辑

---
 src/views/dashboard/components/ProcessInfo.vue |   57 ++++++++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 48 insertions(+), 9 deletions(-)

diff --git a/src/views/dashboard/components/ProcessInfo.vue b/src/views/dashboard/components/ProcessInfo.vue
index 65ab682..fcc3045 100644
--- a/src/views/dashboard/components/ProcessInfo.vue
+++ b/src/views/dashboard/components/ProcessInfo.vue
@@ -11,30 +11,57 @@
     <div v-if="craftModel.isUpdate" class="tip-r">
       <img src="~@/assets/images/process-tip.png" />
     </div>
-    <div v-if="craftModel.isUpdate" 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" @click="onUpdateClick"> 鏇存柊宸ヨ壓 </el-button>
+      <!-- :disabled="craftModel.isUpdate?false:true" -->
+      <el-button type="primary" class="color_organge" @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 { toRefs } from 'vue'
+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: Array
+  task?: Task
 }>()
-const { craftModel } = toRefs(props)
+const { craftModel, task, activeArr } = 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
+      break
+    }
+  }
+}
 function onDetailClick() {
-  emit('detail', craftModel)
+  emit('detail', craftModel.value)
 }
 function onUpdateClick() {
-  emit('update', craftModel)
+  if (loading.value) {
+    return true
+  }
+  emit('update', craftModel.value)
 }
 </script>
 
@@ -42,12 +69,13 @@
 $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;
+  height: 140px;
   padding: 23px 10px 10px;
   background: $status-done;
   border-radius: 8px;
@@ -69,6 +97,11 @@
     img {
       width: 100%;
     }
+  }
+  .refresh-top-icon {
+    display: flex;
+    align-items: center;
+    color: #fff;
   }
 
   .item-r {
@@ -114,12 +147,18 @@
   .btn {
     width: 100px;
     position: absolute;
-    right: 0px;
+    right: 10px;
     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