From c7f3fd5215399b37d0511b3bd555150ff1b13507 Mon Sep 17 00:00:00 2001
From: charles <981744753@qq.com>
Date: 星期一, 29 四月 2024 10:39:30 +0800
Subject: [PATCH] fix:回退原先版本

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

diff --git a/src/views/dashboard/index.vue b/src/views/dashboard/index.vue
index 49b5c8e..c301129 100644
--- a/src/views/dashboard/index.vue
+++ b/src/views/dashboard/index.vue
@@ -16,7 +16,7 @@
         </el-tab-pane>
         <el-tab-pane label="宸ヨ壓淇℃伅" name="宸ヨ壓淇℃伅">
           <div style="height: 300px">
-            <el-scrollbar always style="height: 100%">
+            <el-scrollbar always class="scroller" style="height: 100%">
               <div
                 v-infinite-scroll="craftModelStore.loadMore"
                 infinite-scroll-delay="500"
@@ -26,8 +26,11 @@
                 <ProcessInfo
                   v-for="item in craftModelStore.craftModelList"
                   :key="item.ID"
+                  :task="activeTask"
+                  :active-arr="activeArr"
                   :craft-model="item"
                   @detail="openCraftModelDetailModal"
+                  @update="updateCraft"
                 ></ProcessInfo>
               </div>
               <div class="craft-loaded-tip">
@@ -35,18 +38,18 @@
                   <Loading />
                 </el-icon>
 
-                <div v-if="!craftModelStore.hasMore">鍔犺浇瀹屾垚</div>
+                <div v-if="!craftModelStore.hasMore && craftModelStore.craftModelList.length > 6">鍔犺浇瀹屾垚</div>
               </div>
             </el-scrollbar>
           </div>
         </el-tab-pane>
         <el-tab-pane label="鐗╂枡娓呭崟" name="鐗╂枡娓呭崟">
           <InputMaterialsList
-            :material-list="activeTask?.Procedure.procedure.inputMaterials"
+            :material-list="activeTask?.Procedure?.procedure?.inputMaterials"
             @detail-click="showMaterialDetailModal"
           ></InputMaterialsList>
           <OutputMaterialsList
-            :material-list="activeTask?.Procedure.procedure.outputMaterials"
+            :material-list="activeTask?.Procedure?.procedure?.outputMaterials"
             @detail-click="showMaterialDetailModal"
           ></OutputMaterialsList>
         </el-tab-pane>
@@ -55,10 +58,12 @@
     <template #middleBlock3>
       <SubTitle>浠诲姟璇︽儏</SubTitle>
       <div class="task-detail">
-        <TaskControl :task="activeTask" @should-reload="reloadChannel"></TaskControl>
+        <el-scrollbar always class="scroller">
+          <TaskControl :task="activeTask" :workers="currentWorkers" @should-reload="reloadChannel"></TaskControl>
+          <ColorInfo :type="1"></ColorInfo>
+          <ColorInfo :type="2"></ColorInfo>
+        </el-scrollbar>
       </div>
-      <ColorInfo :type="1"></ColorInfo>
-      <ColorInfo :type="2"></ColorInfo>
     </template>
     <template #middleBlock4>
       <SubTitle>浜哄憳淇℃伅</SubTitle>
@@ -70,23 +75,35 @@
       </div>
     </template>
     <template #rightBlock2>
-      <DeviceStatusInfo :plc="plcStore.plcInfo" :type="1"></DeviceStatusInfo>
+      <DeviceStatusInfo :type="1"></DeviceStatusInfo>
       <DeviceStatusInfo :device="deviceStore.deviceInfo" :type="2"></DeviceStatusInfo>
-      <DeviceNumberInfo></DeviceNumberInfo>
-    </template>
+      <DeviceNumberInfo></DeviceNumberInfo> </template
+    >褰撳墠浠诲姟:
     <template #rightBlock3>
       <SubTitle>鐭ヨ瘑搴�</SubTitle>
-      <KnowledgeInfo></KnowledgeInfo>
+      <div class="task-detail-right-3">
+        <el-scrollbar always class="scroller">
+          <KnowledgeInfo></KnowledgeInfo>
+        </el-scrollbar>
+      </div>
       <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 } from 'vue'
 import ChannelCollapse from '@/views/dashboard/components/ChannelCollapse.vue'
+
 import type { 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'
@@ -105,12 +122,17 @@
 import TaskControl from '@/views/dashboard/components/TaskControl.vue'
 import SubTitle from '@/views/dashboard/components/SubTitle.vue'
 import DashboardTitle from '@/views/dashboard/components/DashboardTitle.vue'
-import { usePLCStore } from '@/stores/plc'
+// import { usePLCStore } from '@/stores/plc'
 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'
 import { Loading } from '@element-plus/icons-vue'
+import { isNumber } from 'lodash-es'
+import { getToken } from '@/common/utils/index'
+const token = getToken()
 
 defineOptions({
   name: 'DashboardView'
@@ -141,7 +163,7 @@
 
 const tasksStore = useTasksStore()
 const { activeTask, channels } = storeToRefs(tasksStore)
-tasksStore.getChannels(1)
+tasksStore.getChannels(1, true)
 
 function changeTab(tab: LabelValue) {
   tasksStore.getChannels(tab.value)
@@ -152,26 +174,67 @@
  * @param task
  */
 function reloadChannel(task: Task) {
-  tasksStore.reloadChannel(task.Channel)
+  if (token !== null || token !== '' || token !== 'undefined') {
+    tasksStore.reloadChannel(task.Channel)
+    location.reload()
+  }
 }
 
 function reloadAllData() {
   tasksStore.reloadAllData()
+  location.reload()
 }
 // 鍚姩plc 杞
-const plcStore = usePLCStore()
-plcStore.startPollingPLC()
+// const plcStore = usePLCStore()
+// plcStore.startPollingPLC()
 // 鍚姩 璁惧 杞
 const deviceStore = useDevicesStore()
 deviceStore.startPollingDevice()
+// console.log(deviceStore, '1111')
+// localStorage.setItem('currentDeviceID', deviceStore.deviceInfo.currentDeviceID)
 
 // 鍒囨崲浠诲姟鏃惰幏鍙栧搴斾换鍔$殑宸ヨ壓妯″瀷淇℃伅
 const craftModelStore = useCraftModelStore()
 craftModelStore.getCraftModelList()
 
 const showCraftModelDetail = ref(false)
-function openCraftModelDetailModal() {
+// 褰撳墠瑕佸睍绀虹殑宸ヨ壓璇︽儏
+const currentCraftModelInfo = ref<CraftModel>()
+const activeArr = ref<string[]>([])
+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'
+          })
+          craftModelStore.getCraftModelList()
+        }
+      },
+      (err) => {
+        console.error(err, '----err')
+        setTimeout(() => {
+          editActive(craftModel)
+        }, 300)
+      }
+    )
+  }
+}
+function editActive(craftModel: CraftModel) {
+  for (let i in activeArr.value) {
+    if (activeArr.value[i] == craftModel.number) {
+      activeArr.value.splice(Number(i), 1)
+    }
+  }
 }
 
 // 鏄惁灞曠ず鐗╂枡璇︽儏寮圭獥
@@ -187,6 +250,17 @@
   currentMaterialInfo.value = material
   showMaterialDetail.value = true
 }
+
+const currentWorkers = computed(() => {
+  const channel = activeTask.value?.Channel
+  if (isNumber(channel)) {
+    console.log(activeTask.value?.Procedure?.procedure?.workers, '99999')
+    // return []
+    return activeTask.value?.Procedure?.procedure?.workers ?? []
+  } else {
+    return []
+  }
+})
 </script>
 
 <style scoped lang="scss">
@@ -243,4 +317,16 @@
   align-items: center;
   justify-content: center;
 }
+.scroller {
+  padding: 4px 10px;
+}
+.task-detail {
+  width: 100%;
+  height: calc(100% - 32px);
+  padding-right: 5px;
+}
+.task-detail-right-3 {
+  width: 100%;
+  height: calc(100% - 32px - 50px);
+}
 </style>

--
Gitblit v1.8.0