From a4d4745e68664a5f5b82700a95019f1febd09d19 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期一, 06 十一月 2023 17:44:34 +0800
Subject: [PATCH] 工艺列表的是否显示当前使用的标志判断修改

---
 src/views/dashboard/index.vue |  104 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 83 insertions(+), 21 deletions(-)

diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue
index 815948f..e1b8f18 100644
--- a/src/views/dashboard/index.vue
+++ b/src/views/dashboard/index.vue
@@ -15,16 +15,27 @@
           <ProcessingInfo style="margin-top: 6px" :task="activeTask"></ProcessingInfo>
         </el-tab-pane>
         <el-tab-pane label="宸ヨ壓淇℃伅" name="宸ヨ壓淇℃伅">
-          <ProcessInfo
-            v-for="item in craftModelStore.craftModelList"
-            :key="item.ID"
-            :craft-model="item"
-            @detail="openCraftModelDetailModal"
-          ></ProcessInfo>
+          <el-scrollbar always>
+            <ProcessInfo
+              v-for="item in craftModelStore.craftModelList"
+              :key="item.ID"
+              :craft-model="item"
+              :task="activeTask"
+              :active-arr="activeArr"
+              @detail="openCraftModelDetailModal"
+              @update="updateCraft"
+            ></ProcessInfo>
+          </el-scrollbar>
         </el-tab-pane>
         <el-tab-pane label="鐗╂枡娓呭崟" name="鐗╂枡娓呭崟">
-          <InputMaterialsList></InputMaterialsList>
-          <OutputMaterialsList></OutputMaterialsList>
+          <InputMaterialsList
+            :material-list="activeTask?.Procedure.procedure.inputMaterials"
+            @detail-click="showMaterialDetailModal"
+          ></InputMaterialsList>
+          <OutputMaterialsList
+            :material-list="activeTask?.Procedure.procedure.outputMaterials"
+            @detail-click="showMaterialDetailModal"
+          ></OutputMaterialsList>
         </el-tab-pane>
       </el-tabs>
     </template>
@@ -33,8 +44,8 @@
       <div class="task-detail">
         <TaskControl :task="activeTask" @should-reload="reloadAllData"></TaskControl>
       </div>
-      <ColorInfo :order="order" :type="1"></ColorInfo>
-      <ColorInfo :order="order" :type="2"></ColorInfo>
+      <ColorInfo :type="1"></ColorInfo>
+      <ColorInfo :type="2"></ColorInfo>
     </template>
     <template #middleBlock4>
       <SubTitle>浜哄憳淇℃伅</SubTitle>
@@ -56,12 +67,20 @@
       <BigButton class="btn" bg-color="red">绾㈢伅鍛煎彨</BigButton>
     </template>
   </DashboardLayout>
-  <CraftDetailModal v-model="showCraftModelDetail" @close="showCraftModelDetail = false"></CraftDetailModal>
+  <CraftDetailModal
+    v-model="showCraftModelDetail"
+    :active-arr="activeArr"
+    :craft-model="currentCraftModelInfo"
+    @renew="updateCraft"
+    @close="showCraftModelDetail = false"
+  ></CraftDetailModal>
+  <MaterialDetails v-model="showMaterialDetail" :material="currentMaterialInfo"></MaterialDetails>
 </template>
 <script setup lang="ts">
 import { computed, ref, watch } from 'vue'
 import ChannelCollapse from '@/views/dashboard/components/ChannelCollapse.vue'
-import type { Worker, Order, Task } from '@/api/task'
+import type { Worker, Order, Task, Material } from '@/api/task'
+import type { CraftModel } from '@/api/craftModel'
 import PersonInfo from '@/views/dashboard/components/PersonInfo.vue'
 import ProcessInfo from '@/views/dashboard/components/ProcessInfo.vue'
 import ColorInfo from '@/views/dashboard/components/ColorInfo.vue'
@@ -84,6 +103,8 @@
 import { useDevicesStore } from '@/stores/devices'
 import { useCraftModelStore } from '@/stores/craftModel'
 import CraftDetailModal from '@/views/dashboard/components/CraftDetailModal.vue'
+import MaterialDetails from '@/views/dashboard/components/MaterialDetails.vue'
+import { updateCraftParams } from '@/api'
 
 defineOptions({
   name: 'DashboardView'
@@ -93,10 +114,6 @@
 const taskStore = useTasksStore()
 const workers = computed(() => {
   return taskStore.activeTask?.Procedure?.procedure?.workers ?? []
-})
-
-const process = computed(() => {
-  return { product: '浜у搧鍚嶇О', number: '111', procedure: '宸ヨ壓鍚嶇О', isUpdate: true } as any
 })
 
 const order = computed(() => {
@@ -148,15 +165,60 @@
 
 // 鍒囨崲浠诲姟鏃惰幏鍙栧搴斾换鍔$殑宸ヨ壓妯″瀷淇℃伅
 const craftModelStore = useCraftModelStore()
-watch(activeTask, () => {
-  craftModelStore.getCraftModelList()
-})
+craftModelStore.getCraftModelList()
 
 const showCraftModelDetail = ref(false)
-function openCraftModelDetailModal() {
-  console.log(1)
+// 褰撳墠瑕佸睍绀虹殑宸ヨ壓璇︽儏
+const currentCraftModelInfo = ref<CraftModel>()
+const activeArr = ref([])
+function openCraftModelDetailModal(craftModel: CraftModel) {
+  currentCraftModelInfo.value = craftModel
   showCraftModelDetail.value = true
 }
+// 鏇存柊宸ヨ壓
+function updateCraft(craftModel: CraftModel) {
+  if (activeTask?.value?.Procedure?.ID) {
+    activeArr.value.push(craftModel.number)
+    updateCraftParams({ procedureId: activeTask!.value.Procedure.ID }).then(
+      (res) => {
+        if (res.code == 200) {
+          editActive(craftModel)
+          ElMessage({
+            message: '鏇存柊鎴愬姛锛�',
+            type: 'success'
+          })
+        }
+      },
+      (err) => {
+        console.error(err, '----err')
+        setTimeout(() => {
+          editActive(craftModel)
+        }, 500)
+      }
+    )
+  }
+}
+function editActive(craftModel: CraftModel) {
+  for (let i in activeArr.value) {
+    if (activeArr.value[i] == craftModel.number) {
+      activeArr.value.splice(i, 1)
+    }
+  }
+}
+
+// 鏄惁灞曠ず鐗╂枡璇︽儏寮圭獥
+const showMaterialDetail = ref(false)
+// 褰撳墠瑕佸睍绀虹殑鐗╂枡璇︽儏
+const currentMaterialInfo = ref<Material>()
+
+/**
+ * 鏄剧ず鐗╂枡璇︽儏寮圭獥
+ * @param material
+ */
+function showMaterialDetailModal(material: Material) {
+  currentMaterialInfo.value = material
+  showMaterialDetail.value = true
+}
 </script>
 
 <style scoped lang="scss">

--
Gitblit v1.8.0