From b4a603e7e1c123195f5515aa7c3b247e1784fb76 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期三, 24 一月 2024 14:53:00 +0800
Subject: [PATCH] 1

---
 src/views/dashboard/components/ProcessInfo.vue |   72 +++++++++++++++++++++++++++++-------
 1 files changed, 58 insertions(+), 14 deletions(-)

diff --git a/src/views/dashboard/components/ProcessInfo.vue b/src/views/dashboard/components/ProcessInfo.vue
index 65ab682..891f3ed 100644
--- a/src/views/dashboard/components/ProcessInfo.vue
+++ b/src/views/dashboard/components/ProcessInfo.vue
@@ -11,30 +11,62 @@
     <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>
+      <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 { 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: string[]
+  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
+      return true
+    }
+  }
+  loading.value = false
+}
 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,23 +74,24 @@
 $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 {
@@ -69,6 +102,11 @@
     img {
       width: 100%;
     }
+  }
+  .refresh-top-icon {
+    display: flex;
+    align-items: center;
+    color: #fff;
   }
 
   .item-r {
@@ -112,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