From 6c741f0281d29f2b689172f1cea8c398ca378a17 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期六, 07 九月 2024 15:57:50 +0800
Subject: [PATCH] 分拣任务新增功能增加物料选择;开发分拣码垛的绑定任务功能、结批功能

---
 Web/src/views/device/sortPallet/index.vue |   94 ++++++++++++++++++++++++++++++++--------------
 1 files changed, 65 insertions(+), 29 deletions(-)

diff --git a/Web/src/views/device/sortPallet/index.vue b/Web/src/views/device/sortPallet/index.vue
index 2a94f23..1612713 100644
--- a/Web/src/views/device/sortPallet/index.vue
+++ b/Web/src/views/device/sortPallet/index.vue
@@ -19,53 +19,51 @@
                     <el-card class="other-box-card" v-for="deviceInfo in devicePointData" :key="deviceInfo.id">
                         <div slot="header" class="linefix">
                             <span>{{ deviceInfo.text }}</span>
-                            <div :class="['lineStatus', { 'device-status-0': deviceInfo.status === 0 }, { 'device-status-1': deviceInfo.status === 1 }]"></div>
+                            <div :class="['lineStatus', 'device-status-0']"></div>
+                            <!-- <div :class="['lineStatus', { 'device-status-0': deviceInfo.status === 0 }, { 'device-status-1': deviceInfo.status === 1 }]"></div> -->
                         </div>
                         <div class="otherValuefix" >
                             <el-form label-position="left" label-width="90px">
                                 <el-form-item label="WMS鏄庣粏鍗曞彿">
-                                    <el-input></el-input>
+                                    <el-input v-model="deviceInfo.orderNo" readonly></el-input>
                                 </el-form-item>
-                                <el-form-item label="浠诲姟鍙�">
-                                    <el-input v-model="deviceInfo.taskNumber"></el-input>
-                                </el-form-item>
+                                <!-- <el-form-item label="浠诲姟鍙�">
+                                    <el-input v-model=""></el-input>
+                                </el-form-item> -->
                                 <el-form-item label="鎵规鍙�">
-                                    <el-input></el-input>
+                                    <el-input v-model="deviceInfo.lotNo" readonly></el-input>
                                 </el-form-item>
                                 <el-form-item label="鐗╂枡缂栫爜">
-                                    <el-input></el-input>
+                                    <el-input v-model="deviceInfo.skuNo" readonly></el-input>
                                 </el-form-item>
                                 <el-form-item label="鐗╂枡鍚嶇О">
-                                    <el-input></el-input>
-                                </el-form-item>
-                                <el-form-item label="鍖呰鍚嶇О">
-                                    <el-input></el-input>
+                                    <el-input v-model="deviceInfo.skuName" readonly></el-input>
                                 </el-form-item>
                                 <el-form-item label="缁戝畾鐘舵��">
-                                    <el-input></el-input>
+                                    <el-input :value="deviceInfo.status === '0' ? '鏈粦瀹�' : '宸茬粦瀹�'" readonly></el-input>
                                 </el-form-item>
                                 <el-form-item label="鎶撶鍝佺">
-                                    <el-input></el-input>
+                                    <el-input readonly></el-input>
                                 </el-form-item>
                                 <el-form-item label="鎵樼洏鍙�">
-                                    <el-input></el-input>
+                                    <el-input readonly></el-input>
                                 </el-form-item>
                                 <el-form-item label="鎻掔爜鏁伴噺">
-                                    <el-input></el-input>
+                                    <el-input readonly></el-input>
                                 </el-form-item>                               
                                 <el-form-item label="鎵樼洏涓婄鏁伴噺">
-                                    <el-input></el-input>
+                                    <el-input readonly></el-input>
                                 </el-form-item>
                                 <el-form-item label="WMS涓嬪彂鏁伴噺">
-                                    <el-input></el-input>
+                                    <el-input v-model="deviceInfo.qty" readonly></el-input>
                                 </el-form-item>
                             </el-form>
                         </div>
                         <div class="otherButtonfix">
                             <el-form label-position="left">
                                 <el-form-item>
-                                    <el-button type="primary" @click="openBindDialog()">缁戝畾</el-button>
-                                    <el-button>缁撴壒</el-button>
+                                    <el-button type="primary" @click="openBindDialog(deviceInfo.id)">缁戝畾</el-button>
+                                    <el-button @click="closeBindDialog(deviceInfo.lotNo)">缁撴壒</el-button>
                                 </el-form-item>
                             </el-form>
                         </div>
@@ -80,9 +78,7 @@
                 :data="bindData" 
                 highlight-current-row 
                 @row-click="handleRowClick"                
-                >
-                <el-table-column type="selection" width="55"/>
-                
+                >                
                 <el-table-column prop="orderNo" label="WMS涓嬪彂鍗曞彿"  show-overflow-tooltip="" />
                 <el-table-column prop="taskNo" label="浠诲姟鍙�"  show-overflow-tooltip="" />
                 <el-table-column prop="lotNo" label="鎵规鍙�"  show-overflow-tooltip="" />
@@ -101,8 +97,9 @@
   
 <script lang="ts" setup>
 import { ref } from 'vue';
-import { GetWcsPackPlcList,GetWcsPackStationPlcList } from '/@/api/wcs/wcsDevice';
+import { GetWcsPackPlcList,GetWcsPackStationPlcList,BindTaskForPLC,CloseTaskForPLC } from '/@/api/wcs/wcsDevice';
 import { pageWcsOderTask } from '/@/api/device/wcsOderTask';
+import { ElMessageBox,ElMessage } from 'element-plus';
 
 //璁惧鏁版嵁
 const deviceList=ref<any>([]);
@@ -110,6 +107,8 @@
 const devicePointData = ref<any>([]);
 //閫変腑璁惧ID
 const selectedDeviceId=ref<any>();
+//閫変腑宸ヤ綅ID
+const selectedStationId=ref<any>();
 
 const bindDialogVisible = ref(false);
 const bindData = ref<any>([]);
@@ -141,7 +140,7 @@
 //鍒囨崲璁惧
 function chooseDevice(id) {
     selectedDeviceId.value = id;
-    fetchStationData(id);
+    fetchStationData(selectedDeviceId.value);
 }
 
 const handleQuery = async () => {
@@ -150,9 +149,13 @@
     tableParams.value.total = res.data.result?.total;
   };
 //鎵撳紑缁戝畾寮规
-function openBindDialog() {
+function openBindDialog(id) {
+    selectedStationId.value=null;
+    selectedRow.value=null;
+    
+    selectedStationId.value=id;
     bindDialogVisible.value = true;
-    // Mock data for binding
+
     handleQuery();
 }
 //鐐瑰嚮琛屾椂璁剧疆閫変腑琛�
@@ -163,13 +166,46 @@
 //纭缁戝畾鎿嶄綔
 function confirmBinding() {
     if (selectedRow.value) {
-        console.log('Selected Row:', selectedRow.value);
-        // Do binding logic here
+        //鎵嬪姩缁戝畾浠诲姟鍒癙LC
+        bindTaskForPLC(selectedStationId.value,selectedRow.value.id);
+
         bindDialogVisible.value = false;
     } else {
-        console.error('No row selected');
+        ElMessage.error('璇烽�夋嫨瑕佺粦瀹氱殑浠诲姟锛�');
     }
 }
+const bindTaskForPLC = async (deviceId: any,oderTaskId:any) => {
+    const res = await BindTaskForPLC({ deviceId,oderTaskId });
+    if(res.status==200){
+        ElMessage.success('缁戝畾鎴愬姛锛�');
+        // 鍒锋柊
+        fetchStationData(selectedDeviceId.value);
+    }
+}
+//缁撴壒鎿嶄綔
+function closeBindDialog(lotNo){
+    if(lotNo==''){
+        ElMessage.error('璇ュ伐浣嶆湭缁戝畾浠诲姟锛�');
+        return;
+    }
+    ElMessageBox.confirm(`纭畾瀵硅鎵规浠诲姟缁撴壒鍚�?`, '鎻愮ず', {
+		confirmButtonText: '纭畾',
+		cancelButtonText: '鍙栨秷',
+		type: 'warning',
+	})
+    .then(async () => {
+        closeTaskForPLC(lotNo);
+    })
+    .catch(() => {});
+}
+const closeTaskForPLC = async (lotNo: string) => {
+    const res = await CloseTaskForPLC({ lotNo });
+    if(res.status==200){
+        ElMessage.success('缁撴壒鎴愬姛锛�');
+        // 鍒锋柊
+        fetchStationData(selectedDeviceId.value);
+    }
+}   
 
 </script>
 

--
Gitblit v1.8.0