From 6ff1b66c16a506d8f40b7284c1c3774faf1e6d2e Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期五, 31 五月 2024 16:45:45 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes

---
 UI-Project/src/views/Returns/returns.vue |  663 ++++++++++++++++++++++++++----------------------------
 1 files changed, 320 insertions(+), 343 deletions(-)

diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index eddab30..dd2b52c 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -4,7 +4,6 @@
 import {useRouter} from "vue-router"
 const router = useRouter()
 import type { TableColumnCtx } from 'element-plus'
- 
 import { ElMessage, ElMessageBox } from 'element-plus'
 const dialogFormVisible = ref(false)
 const blind = ref(false)
@@ -14,54 +13,61 @@
 const adda = ref(false)
 const flake = ref(false)
 const flakea = ref(false)
-// const patternHeight = ref('');
-// const patternWidth = ref('');
-// const filmsId = ref('');
-// const patternThickness = ref('');
-// const number = ref('');
-//  patternHeight.value = '';
-    //  patternWidth.value = '';
-    //  filmsId.value = '';
-    //  patternThickness.value = '';
-    //  number.value = '';
+import { WebSocketHost } from '@/utils/constants'
 import request from "@/utils/request"
 const ida = ref(null); 
-import { ref, onMounted, onUnmounted } from "vue";
-// import http from "@/http/index";
- 
-let ruleForm = ref({
-  projectNo: '',
-  workstationId: '',
-  patternHeight: '',
-  patternWidth: '',
-  filmsId: '',
-  patternThickness: '',
-  number: '',
- 
-})
-const tableDataa = ref([])
-  
- 
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+import { ref, onMounted, onUnmounted, onBeforeUnmount } from "vue";
+// 鍝嶅簲寮忔暟鎹�  
+const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
+const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
+const selectedValue = ref(''); // 褰撳墠閫変腑鐨勫  
+const selectedValuea = ref('');  
+const selectedValueb = ref('');
+const selectedValuec = ref(''); 
+const upstatus = ref(''); // 鍋囪杩欎釜鐢ㄤ簬鏄剧ず鑷姩/鎵嬪姩鐘舵��  
+const cuttingMachine = ref(''); // 鍋囪杩欎釜鐢ㄤ簬瀛樺偍鍚庣杩斿洖鐨勭姸鎬佸�硷紙0鎴�1锛�  
+const cuttingMachineStatusColor = ref(''); // 鐢ㄤ簬鍔ㄦ�佽缃甶鏍囩鐨勮儗鏅壊 
+const inKageWord = ref(0); // 鐢ㄤ簬瀛樺偍瑕佷紶閫掔粰鎺ュ彛鐨刬nKageWord鍊� 
+const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃  
+const selectOptions = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
+const selectOptionsa = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
+const selectOptionsb = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
+const selectOptionsc = ref<Array<any>>([]); // 涓嬫媺閫夐�夐」鏁扮粍  
+  const tableDataa = ref([])
   const tableData = reactive([]);
-//   let filterData = ref({
-//   damageDetails: {
-//     state: '',
-//   },
- 
-// })
-// 鍙戦�佽幏鍙栬〃鏍兼暟鎹殑璇锋眰
-const fetchTableData = async () => {
+  const fetchTableData = async () => {
   try {
     const response = await request.get("/loadGlass/up-patten-usage/prioritylist");
- 
     // 妫�鏌ュ搷搴旂姸鎬�
     if (response.code === 200) {
       // 鏇存柊琛ㄦ牸鏁版嵁
       console.log('鎴愬姛鑾峰彇琛ㄦ牸鏁版嵁:', response.data);
       tableData.splice(0, tableData.length, ...response.data);
-      window.localStorage.setItem('engineeringId', response.data[0].engineeringId)
+      // window.localStorage.setItem('engineeringId', response.data[0].engineeringId)
+      // 鑾峰彇鍞竴鍊�
+      const uniqueWidths = new Set(response.data.map(item => item.width));  
+      const uniqueHeights = new Set(response.data.map(item => item.height));  
+      const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));  
+      const uniqueThicknesses = new Set(response.data.map(item => item.thickness));  
+  
+      selectOptions.value = Array.from(uniqueWidths).map(width => ({ 
+      value: width, // 鍋囪杩欐槸浣犳兂瑕佷綔涓簐alue鐨勫睘鎬�  
+      label: width, // 鍋囪杩欐槸浣犳兂瑕佹樉绀虹殑label  
+    }));  
+      selectOptionsa.value = Array.from(uniqueHeights).map(height => ({ 
+      value: height, 
+      label: height, 
+    })); 
+    selectOptionsb.value = Array.from(uniqueFilmsIds).map(filmsId => ({
+      value: filmsId,
+      label: filmsId, 
+    })); 
+    selectOptionsc.value = Array.from(uniqueThicknesses).map(thickness => ({
+      value: thickness,
+      label: thickness,  
+    })); 
     } else {
-      // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.msg);
     }
   } catch (error) {
@@ -69,135 +75,45 @@
     // ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
   }
 };
-onMounted(async () => {  
-  await fetchTableData();  
-  
-  // 璁剧疆瀹氭椂鍣ㄦ潵瀹氭湡鍒锋柊鏁版嵁  
-  const intervalId = setInterval(async () => {  
-    await fetchTableData();  
-  }, 1000); // 姣�1绉掑埛鏂颁竴娆�  
-  
-  // 缁勪欢鍗歌浇鏃舵竻闄ゅ畾鏃跺櫒  
-  onUnmounted(() => {  
-    clearInterval(intervalId);  
-  });  
-}); 
-onMounted(async () => {  
-  await fetchTableDataa();  
-  
-  // 璁剧疆瀹氭椂鍣ㄦ潵瀹氭湡鍒锋柊鏁版嵁  
-  const intervalId = setInterval(async () => {  
-    await fetchTableDataa();  
-  }, 1000); // 姣�1绉掑埛鏂颁竴娆�  
-  
-  // 缁勪欢鍗歌浇鏃舵竻闄ゅ畾鏃跺櫒  
-  onUnmounted(() => {  
-    clearInterval(intervalId);  
-  });  
-}); 
-  //  request.get("/loadGlass/LoadGlass/list").then((res) => {
-  //   if (res.code === 200) {
-  //    console.log(res.data);
-  //    tableDataa.value = res.data;
-   
-  //   if (tableDataa.value.length === 2) {
-  //    if (tableDataa.value[0].patternWidth > 0) {
-  //     flake.value = true;
-  //    }
- 
-  //   if (tableDataa.value[1].patternWidth > 0) {
-  //   flakea.value = true;
-  //   }
-  //   }
-  //   } else {
-  //   ElMessage.warning(res.msg);
-  //   // router.push("/login");
-  //   }
-  //  });
-   async function fetchTableDataa() {  
-  try {  
-    const res = await request.get("/loadGlass/LoadGlass/list");  
-    if (res.code === 200) {  
-      tableDataa.value = res.data;  
-  
-      // 鏍规嵁鏁版嵁鏇存柊 flake 鍜� flakea 鐨勫��  
-      if (res.data.length >= 2) {  
-        if (res.data[0].patternWidth > 0) {  
-          flake.value = true;  
-        } else {  
-          flake.value = false;  
-        }  
-  
-        if (res.data[1].patternWidth > 0) {  
-          flakea.value = true;  
-        } else {  
-          flakea.value = false;  
-        }  
-      }  
-    } else {  
-      ElMessage.warning(res.msg);  
-    }  
-  } catch (error) {  
-    console.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触', error);  
-    // 鍙互鍦ㄨ繖閲屾坊鍔犻澶栫殑閿欒澶勭悊閫昏緫  
-  }  
-}  
-// request.get("/loadGlass/LoadGlass/list").then((res) => {
-//       window.localStorage.setItem('patternWidth', res.data.patternWidth)
-//       window.localStorage.setItem('workstationId', res.data.workstationId)
-//           if (res.code == 200) {
-//           console.log(res.data);
-//           tableDataa.value = res.data
-//           console.log(res.data.patternWidth);
+request.get("/loadGlass/LoadGlass/list").then((res) => {
+      window.localStorage.setItem('patternWidth', res.data.patternWidth)
+      window.localStorage.setItem('workstationId', res.data.workstationId)
+          if (res.code == 200) {
+          console.log(res.data);
+          tableDataa.value = res.data
+          console.log(res.data.patternWidth);
           
-//       let workstationId = window.localStorage.getItem('workstationId')
-//       let patternWidth = window.localStorage.getItem('patternWidth')
-//       if (patternWidth !== '' || workstationId == '1') {
-//       flake.value = true
-//     } else if (patternWidth !== '' || workstationId == '2') {
-//       flakea.value = true
-//     }
-//           } else {
-//           ElMessage.warning(res.msg)
-//           // router.push("/login")
-//           }
-//           });
+      let workstationId = window.localStorage.getItem('workstationId')
+      let patternWidth = window.localStorage.getItem('patternWidth')
+      if (patternWidth !== '' || workstationId == '1') {
+      flake.value = true
+    } else if (patternWidth !== '' || workstationId == '2') {
+      flakea.value = true
+    }
+          } else {
+          ElMessage.warning(res.msg)
+          // router.push("/login")
+          }
+          });
 //瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
 const titleSelectJson = ref({
   processType: [],
- 
 })
 const titleSelectJsona = ref({
   processTypea: [],
- 
 })
-// const getBasicData = ref({
-//   id: '',
-//   projectNo: '',
-// })
-// const requestData = {
-//     // projectNo:"P24030805",
-//     state:100
-//   };
-// request.post("/loadGlass/optimizeProject/listByState", requestData)
-// .then((res) => {
-//           if (res.code == 200) {
-//     titleSelectJson.value.processType = res.data;
-//           console.log(res.data);
-//           } else {
-//           ElMessage.warning(res.msg)
-//           // router.push("/login")
-//           }
-//           });
-          // 鍒濆璇锋眰鍙傛暟  
+const socketUrl = `ws://10.153.19.150:88/api/loadGlass/api/talk/loadGlass`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+  // 鏇存柊 tableData 鐨勬暟鎹�
+
+  tableData.splice(0, tableData.length, ...data.prioritylist[0]);
+  tableDataa.value = data.list[0]
+ // console.log("鏇存柊鍚庢暟鎹�", tableData);
+};
 const requestData = {  
   state: 100  
 };  
-// 鍝嶅簲寮忔暟鎹�  
-const selectedProjectNo = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
-const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勫伐绋嬪彿  
-const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃  
-  
 // 璋冪敤鎺ュ彛鑾峰彇閫夐」鏁版嵁鐨勫嚱鏁�  
 const fetchOptions = async (queryString: string) => {  
   try {  
@@ -218,22 +134,6 @@
     console.error('Error fetching options:', error);  
   }  
 };  
-  // 寮�濮嬩笂鐗囦笅鎷夐��  
-const fetchOptionsa = async (queryString: string) => {  
-  try {  
-    // 鍙戦�佽姹傚埌鍚庣鎺ュ彛  
-    const response = await request.get('/loadGlass/engineering/engineering/selectTask');  
-    if (response.code == 200) {  
-    titleSelectJsona.value.processTypea = response.data;
-    console.log(response.data);
- 
-    } else {  
-      ElMessage.warning(response.data);  
-    }  
-  } catch (error) {  
-    console.error('Error fetching options:', error);  
-  }  
-}; 
 // 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�  
 const handleInputChange = async (value: string) => {  
   if (value) {  
@@ -252,28 +152,14 @@
 };  
 // 鍒濆鍖栧姞杞芥暟鎹紙濡傛灉闇�瑕侊級  
 onMounted(() => {  
-  // 鍦ㄧ粍浠舵寕杞藉悗璋冪敤 fetchOptions('') 鏉ュ姞杞藉垵濮嬫暟鎹紙濡傛灉闇�瑕侊級  
   fetchOptions('');  
+  initializeWebSocket(socketUrl, handleMessage);
 });  
-onMounted(() => {  
-  // 鍦ㄧ粍浠舵寕杞藉悗璋冪敤 fetchOptions('') 鏉ュ姞杞藉垵濮嬫暟鎹紙濡傛灉闇�瑕侊級  
-  fetchOptionsa('');  
-}); 
-// const billall  = () => {
-//   request.post("/loadGlass/optimizeProject/listByState", requestData)
-//     .then((res: any) => {
-//       // if (res.code == 200) {
-//       tableData.value = res.data;
-//       // let self = this
-//       // }
-//     })
-//     .catch((err: any) => {});
-// }
+onBeforeUnmount(() => {
+  console.log("鍏抽棴浜�")
+  closeWebSocket();
+});
 const user = ref('');
-// 瀹氫箟琛ㄥご涓婁紶鏁版嵁
-// let titleUploadData = ref({
-//   projectNo:'',
-// })
 const projectNo = ref('');
 const workstationId = ref('');
 const id = ref('');
@@ -298,10 +184,10 @@
     const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
       id: workstationId.value,
       workstationId: workstationId.value,
-      patternHeight: patternHeight.value,
-      patternWidth: patternWidth.value,
-      filmsId: filmsId.value,
-      patternThickness: patternThickness.value,
+      patternHeight: selectedValuea.value,
+      patternWidth: selectedValue.value,
+      filmsId: selectedValueb.value,
+      patternThickness: selectedValuec.value,
       number: number.value
     }); 
     if (response.code == 200) {
@@ -310,11 +196,11 @@
       // window.location.reload() 
       add.value = false;
      tableDataa.value = response.data;
-    //  patternHeight = '';
-    //  patternWidth.value = '';
-    //  filmsId.value = '';
-    //  patternThickness.value = '';
-    //  number.value = '';
+      selectedValuea.value = '';
+      selectedValue.value = '';
+      selectedValueb.value = '';
+      selectedValuec.value = '';
+      number.value = '';
       window.localStorage.setItem('workstationId', response.data.workstationId)
       let workstationId = window.localStorage.getItem('workstationId')
       if (workstationId == '1') {
@@ -337,10 +223,10 @@
     const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
       id: workstationId.value,
       workstationId: workstationId.value,
-      patternHeight: patternHeight.value,
-      patternWidth: patternWidth.value,
-      filmsId: filmsId.value,
-      patternThickness: patternThickness.value,
+      patternHeight: selectedValuea.value,
+      patternWidth: selectedValue.value,
+      filmsId: selectedValueb.value,
+      patternThickness: selectedValuec.value,
       number: number.value
     }); 
     if (response.code == 200) {
@@ -349,6 +235,11 @@
       // window.location.reload() 
       add.value = false;
      tableDataa.value = response.data;
+      selectedValuea.value = '';
+      selectedValue.value = '';
+      selectedValueb.value = '';
+      selectedValuec.value = '';
+      number.value = '';
       window.localStorage.setItem('workstationId', response.data.workstationId)
       let workstationId = window.localStorage.getItem('workstationId')
       if (workstationId == '1') {
@@ -410,15 +301,40 @@
 // 閫夋嫨宸ョ▼纭
 const handleup = async () => {
   try  {
-  const response = await request.post('/loadGlass/up-patten-usage/saveUpPattenUsage', {
+  const response = await request.post('/loadGlass/up-patten-usage/selectUpPattenUsage', {
     engineerId: selectedProjectNo.value,
     })
+      window.localStorage.setItem('engineeringId', selectedProjectNo.value)
     if (response.code == 200) {
       // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
       // window.location.reload() 
       dialogFormVisible.value = false;
+      tableData.splice(0, tableData.length, ...response.data);
       selectedProjectNo.value = ''
+      markingMachineStatus.value = '#911005';  
+      cuttingMachineStatus.value = '#911005';  
+      const uniqueWidths = new Set(response.data.map(item => item.width));  
+      const uniqueHeights = new Set(response.data.map(item => item.height));  
+      const uniqueFilmsIds = new Set(response.data.map(item => item.filmsId));  
+      const uniqueThicknesses = new Set(response.data.map(item => item.thickness));  
+  
+      selectOptions.value = Array.from(uniqueWidths).map(width => ({ 
+      value: width, // 鍋囪杩欐槸浣犳兂瑕佷綔涓簐alue鐨勫睘鎬�  
+      label: width, // 鍋囪杩欐槸浣犳兂瑕佹樉绀虹殑label  
+    }));  
+      selectOptionsa.value = Array.from(uniqueHeights).map(height => ({ 
+      value: height, 
+      label: height, 
+    })); 
+    selectOptionsb.value = Array.from(uniqueFilmsIds).map(filmsId => ({
+      value: filmsId,
+      label: filmsId, 
+    })); 
+    selectOptionsc.value = Array.from(uniqueThicknesses).map(thickness => ({
+      value: thickness,
+      label: thickness,  
+    })); 
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
       ElMessage.error(response.msg);
@@ -431,9 +347,14 @@
 }
 // 寮�濮嬩笂鐗�
 const handle = async () => {
+  if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {  
+      
   try  {
+  let engineeringId = window.localStorage.getItem('engineeringId')
+console.log(engineeringId);
+
   const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
-    engineerId: selectedProjectNoa.value,
+    engineerId: engineeringId,
     state: 1,
     })
     if (response.code == 200) {
@@ -441,7 +362,6 @@
       ElMessage.success(response.message);
       // window.location.reload() 
       blind.value = false;
-      tableData.splice(0, tableData.length, ...response.data);
       selectedProjectNoa.value = ''
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -452,6 +372,10 @@
     // 澶勭悊閿欒
     console.error(error);
   }
+    } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {  
+      // 鎻愮ず鐢ㄦ埛鎵撴爣鏈烘湭灏辩华  
+      ElMessage.warning('璇风‘璁ゆ墦鏍囨満鍜屽垏鍓叉満鐨勫氨缁姸鎬侊紒');  
+    } 
 }
 // 鏆傚仠
 const handlea = async () => {
@@ -459,17 +383,13 @@
   let engineeringId = window.localStorage.getItem('engineeringId')
 console.log(engineeringId);
 if (engineeringId !== '') {
-  const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+  const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
       engineeringId: engineeringId,
       state: 0,
     })
     if (response.code == 200) {
-      // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
       ElMessage.success(response.message);
-      // window.location.reload() 
       blinda.value = false;
-      // tableData.value = response.data
-      // tableData.value = [];
       tableData.splice([]);
     } else {
       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
@@ -494,7 +414,7 @@
   let engineeringId = window.localStorage.getItem('engineeringId')
 console.log(engineeringId);
 if (engineeringId !== '') {
-  const response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+  const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
       engineeringId: engineeringId,
       state: 0,
     })
@@ -522,7 +442,6 @@
   }
 }
 onMounted(fetchTableData);
-onMounted(fetchTableDataa);
 function getStatusText(state: number) {
   switch (state) {
     case 0:  
@@ -533,115 +452,149 @@
       return '涓婄墖涓�';  
     case 100:  
       return '宸插畬鎴�';  
-    default:  
-      return '鏈煡鐘舵��';  
   }  
 }  
-  
 function getStatusType(state: number) {  
-  // 杩欓噷鍋囪鍙湁100鏃剁被鍨嬩笉鏄痵uccess锛屽叾浠栭兘鏄痵uccess  
-  return state === 100 ? 'info' : 'success'; // 鏍规嵁闇�瑕佽皟鏁寸被鍨�  
+  switch (state) {  
+    case 0:
+      return 'warning';  
+    case 1: 
+      return 'primary';  
+    case 2: 
+      return 'primary';  
+    case 100:
+      return 'success';  
+  }  
 }  
-// const open = () => {
-//   ElMessageBox.confirm(
-//     '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
-//     '鎻愮ず',
-//     {
-//       confirmButtonText: '鏄�',
-//       cancelButtonText: '鍙栨秷',
-//       type: 'warning',
-//     }
-//   )
-//     .then(() => {
-//       ElMessage({
-//         type: 'success',
-//         message: '鍒犻櫎鎴愬姛锛�',
-//       })
-//     })
-//     .catch(() => {
-//       ElMessage({
-//         type: 'info',
-//         message: '鍒犻櫎澶辫触',
-//       })
-//     })
-// }
 // 寮�濮嬩笂鐗�
 const handleBind = (row) => {
-  // engineeringId.value = row.engineeringId; 
- 
   blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
 };
 // 鏆傚仠
 const handleBinda = (row) => {
-  // engineeringId.value = row.engineeringId; 
- 
-  blinda.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  blinda.value = true;
 };
 // 鍋滄浠诲姟
 const handleBindb = (row) => {
-  // engineeringId.value = row.engineeringId; 
- 
-  blindb.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  blindb.value = true; 
 };
 
 // 鍒犻櫎
 const handleBindRacka = (row) => {
-  workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
- 
-  adda.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+  workstationId.value = row.workstationId;
+  adda.value = true; 
 };
-const gridOptions = reactive({
-  border:  "full",//琛ㄦ牸鍔犺竟妗�
-  keepSource: true,//淇濇寔婧愭暟鎹�
-  align: 'center',//鏂囧瓧灞呬腑
-  stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
-  id: 'OrderList',
-  showFooter: true,//鏄剧ず鑴�
-  printConfig: {},
-  importConfig: {},
-  exportConfig: {},
-  scrollY:{ enabled: true },//寮�鍚櫄鎷熸粴鍔�
-  showOverflow:true,
-  columnConfig: {
-    resizable: true,
-    useKey: true
-  },
-  filterConfig: {   //绛涢�夐厤缃」
-    remote: true
-  },
-  customConfig: {
-    storage: true
-  },
-  editConfig: {
-    trigger: 'click',
-    mode: 'row',
-    showStatus: true
-  },
-  data:  [
-    {
-      'id': '1',
-      'long': '5',
-      'wide': '1005',
-      'thick': '183.6',
-    }
-  ],
-})
+// 瀹氫箟涓�涓搷搴斿紡寮曠敤锛岀敤浜庡瓨鍌ㄩ鑹茬姸鎬�  
+const markingMachineStatus = ref('#911005');  
+const cuttingMachineStatus = ref('#911005');  
+// 瀹氫箟涓�涓柟娉曟潵鏀瑰彉棰滆壊鐘舵��  
+const confirmMarkingMachine = () => {  
+  markingMachineStatus.value = 'green';  
+}; 
+const confirmCuttingMachine = () => {  
+  cuttingMachineStatus.value = 'green';  
+}; 
+
+
+
+const wsUrl = 'ws://10.153.19.150:88/api/loadGlass/api/talk/loadGlass'; 
+const ws = new WebSocket(wsUrl);  
+ws.onopen = () => {  
+  console.log('WebSocket杩炴帴宸叉墦寮�');  
+};  
+  
+// 鐩戝惉WebSocket鐨勯敊璇簨浠�  
+ws.onerror = (error) => {  
+  console.error('WebSocket鍙戠敓閿欒:', error);  
+};  
+  
+// 鐩戝惉WebSocket鐨勫叧闂簨浠�  
+ws.onclose = (event) => {  
+  if (event.wasClean) {  
+    console.log('WebSocket杩炴帴宸叉甯稿叧闂�');  
+  } else {  
+    console.error('WebSocket杩炴帴寮傚父鍏抽棴');  
+  }  
+};  
+  
+// 鐩戝惉WebSocket鐨勬秷鎭簨浠�  
+ws.onmessage = (event) => {  
+  // 鍋囪鏈嶅姟鍣ㄥ彂閫佺殑鏄疛SON鏍煎紡鐨勫瓧绗︿覆  
+  try {  
+    const data = JSON.parse(event.data); // 瑙f瀽娑堟伅涓篔SON  
+  
+    // 鍋囪鏈嶅姟鍣ㄥ彂閫佺殑鏁版嵁缁撴瀯鏄� { InkageStatus: ["1"] }  
+    if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) {  
+      const status = data.InkageStatus[0]; 
+      cuttingMachine.value = status; 
+      upstatus.value = status === '1' ? '涓婄墖鏈鸿仈鏈虹姸鎬侊細' : '涓婄墖鏈烘墜鍔ㄧ姸鎬侊細';
+      cuttingMachineStatusColor.value = status === '1' ? '#911005' : 'green';  
+      inKageWord.value = status === '1' ? 0 : 1;  
+    } else {  
+      // 澶勭悊閿欒鎯呭喌鎴栨棤鏁堟暟鎹�  
+      console.error('鎺ユ敹鍒扮殑鏁版嵁鏃犳晥', data);  
+    }  
+  } catch (error) {  
+    console.error('瑙f瀽WebSocket娑堟伅鏃跺彂鐢熼敊璇�', error);  
+  }  
+};  
+const confirmCutting = async () => {  
+  try {  
+    const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad', 
+      inKageWord.value
+  );  
+    if (response.code == 200) {  
+      const status = response.data.status; 
+      upstatus.value = status === '1' ? '涓婄墖鏈鸿仈鏈虹姸鎬侊細' : '涓婄墖鏈烘墜鍔ㄧ姸鎬侊細';  
+      cuttingMachineStatusColor.value = status === '1' ? '#911005' : 'green';  
+      // 鏄剧ず鎴愬姛娑堟伅  
+      ElMessage.success(response.message);  
+    } else {  
+      ElMessage.error(response.message || '璇锋眰澶辫触');  
+    }  
+  } catch (error) {  
+    // 澶勭悊閿欒  
+    console.error('璇锋眰鏃跺彂鐢熼敊璇�', error);  
+    ElMessage.error('璇锋眰鏃跺彂鐢熼敊璇�');  
+  }  
+};
+// const confirmCutting = async () => {
+//   try  {
+//   const response = await request.post('/loadGlass/LoadGlass/updateMesInkageLoad', {
+//     inKageWord: inKageWord.value
+//     })
+//     if (response.code == 200) {
+//       inKageWord == '1' ? '涓婄墖鏈鸿仈鏈虹姸鎬侊細' : '涓婄墖鏈烘墜鍔ㄧ姸鎬侊細';
+//       inKageWord.value == '1' ? '#911005' : 'green';  
+//       ElMessage.success(response.message);
+//     } else {
+//       // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+//       ElMessage.error(response.msg);
+//     }
+// }
+// catch (error) {
+//     // 澶勭悊閿欒
+//     console.error(error);
+//   }
+// }
 </script>
  
 <template>
   <div>
     <div id="dotClass">
-      <div>鎵撴爣鏈哄氨缁姸鎬侊細</div>
-      <i style="margin-top: 2px; background-color: green;width:18px;  height:18px;  border-radius: 50%;  display: block"></i>
-    <el-button style="margin-left: 30px;margin-top: -3px;">鎵嬪姩纭</el-button>
- 
+      <div>鎵撴爣鏈哄氨缁姸鎬侊細</div>  
+    <i :style="{ marginTop: '2px', backgroundColor: markingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
+    <el-button @click="confirmMarkingMachine" style="margin-left: 30px;margin-top: -3px;">纭</el-button>
     <div style="margin-left: 70px;">鍒囧壊鏈哄氨缁姸鎬侊細</div>
-     <i style="margin-top: 2px; background-color: #911005 ;width:18px;  height:18px;  border-radius: 50%;  display: block"></i>
-    <el-button style="margin-left: 30px;margin-top: -3px;" >鎵嬪姩纭</el-button>
-   </div>
+    <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatus, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
+    <el-button @click="confirmCuttingMachine" style="margin-left: 30px;margin-top: -3px;" >纭</el-button>
+    <div style="margin-left: 70px;">{{ upstatus  }} </div>
+    <i :style="{ marginTop: '2px', backgroundColor: cuttingMachineStatusColor, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i>  
+    <el-button @click="confirmCutting" style="margin-left: 30px;margin-top: -3px;" >纭</el-button>
+   
+  </div>
     <el-button style="margin-top: 5px;margin-left: 15px;"   id="searchButton" type="primary" @click="dialogFormVisible = true">閫夋嫨宸ョ▼</el-button>
-    <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="primary" @click="handleBind">寮�濮嬩笂鐗�</el-button>
+    <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="primary" @click="handleBind">寮�濮嬩笂鐗�</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="warning" @click="handleBinda">鏆傚仠</el-button>
     <el-button style="margin-top: 5px;margin-left: 20px;"  id="searchButton" type="danger" @click="handleBindb">鍋滄浠诲姟</el-button>
     
@@ -655,7 +608,7 @@
     >
     <el-table-column prop="engineeringId" label="宸ョ▼鍙�" width="200" align="center"/>
       <el-table-column prop="width" label="鍘熺墖瀹�" align="center"/>
-      <el-table-column prop="height" label="鍘熺墖闀�" align="center"/>
+      <el-table-column prop="height" label="鍘熺墖楂�" align="center"/>
       <el-table-column prop="filmsId" label="鑶滅郴" align="center"/>
       <el-table-column prop="layoutSequence" label="鏁伴噺" align="center"/>
       <el-table-column prop="thickness" label="鍘氬害" align="center"/>
@@ -670,34 +623,11 @@
           {{ getStatusText(scope.row.state) }}  
         </el-tag>  
       </template> 
-          <!-- <template #default="scope">
-            <el-tag type="success" >{{ scope.row.state==0?"绛夊緟涓�":"涓婄墖涓�"  }}</el-tag>
-          </template> -->
           </el-table-column>
     </el-table>
       </div>
-      
     </el-card>
-    <el-dialog v-model="blind" top="24vh" width="30%" title="鏄惁寮�濮嬩笂鐗囷紵" >
-    <div style="margin-left: 50px;margin-bottom: 10px;">
-      <el-form-item label="宸ョ▼鍙凤細" :required="true">
-        <el-select  
-           v-model="selectedProjectNoa"  
-           filterable  
-           clearable  
-           placeholder="璇烽�夋嫨宸ョ▼"  
-           style="width: 220px"  
-           @input="handleInputChangea"  
-         >  
-      <el-option  
-         v-for="item in titleSelectJsona['processTypea']"  
-         :key="item.id"  
-         :label="item.engineerId"  
-         :value="item.engineerId"  
-      />  
-    </el-select>  
-              </el-form-item>
-          </div>
+  <el-dialog v-model="blind" top="30vh" width="25%" title="鏄惁寮�濮嬩笂鐗�?" >
     <template #footer>
       <div id="dialog-footer">
         <el-button type="primary" @click="handle">
@@ -707,16 +637,6 @@
       </div>
     </template>
   </el-dialog>
-  <!-- <el-dialog v-model="blind" top="30vh" width="25%" title="鏄惁寮�濮嬩笂鐗�?" >
-    <template #footer>
-      <div id="dialog-footer">
-        <el-button type="primary" @click="handle">
-          纭
-        </el-button>
-        <el-button @click="blind = false">鍙栨秷</el-button>
-      </div>
-    </template>
-  </el-dialog> -->
   <el-dialog v-model="blinda" top="30vh" width="25%" title="鏄惁鏆傚仠?" >
     <template #footer>
       <div id="dialog-footer">
@@ -743,9 +663,10 @@
         <div id="overlaya" v-show="flakea"></div>
       </div>
       <div style="margin-top: -350px;margin-left: 650px;">
-        <el-table :data="tableDataa" border style="width: 60%"
+        <el-table :data="tableDataa" border style="width: 70%"
      :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
         >
+          <el-table-column prop="workstationId" align="center" label="宸ヤ綅" min-width="50" />
           <el-table-column prop="patternWidth" align="center" label="瀹�" min-width="80" />
           <el-table-column prop="patternHeight" align="center" label="楂�" min-width="80" />
           <el-table-column prop="filmsId" align="center" label="鑶滅郴" min-width="80" />
@@ -767,15 +688,44 @@
           <el-col :span="6">
               <div id="dt" style="font-size: 15px;">
         <div>
-              <el-form-item label="楂橈細" :required="true" style="width: 14vw">
-                <el-input  v-model="patternHeight" autocomplete="off" />
-              </el-form-item></div></div>
+              <el-form-item label="瀹斤細" :required="true" style="width: 14vw">
+               <el-select  
+                      v-model="selectedValue"  
+                      filterable  
+                      clearable  
+                      placeholder="璇烽�夋嫨瀹�"  
+                      style="width: 220px"  
+                      @input="handleInputChangea"  
+                    >  
+                 <el-option  
+                    v-for="item in selectOptions"  
+                    :key="item.id"  
+                    :label="item.label"  
+                    :value="item.value"  
+                 />  
+               </el-select>  
+              </el-form-item>
+              </div></div>
           </el-col>
           <el-col :span="9">
             <div id="dta" style="font-size: 15px;">
         <div>
-              <el-form-item label="瀹斤細" :required="true" style="width: 14vw">
-                <el-input v-model="patternWidth" autocomplete="off" />
+          <el-form-item label="楂橈細" :required="true" style="width: 14vw">
+            <el-select  
+                      v-model="selectedValuea"  
+                      filterable  
+                      clearable  
+                      placeholder="璇烽�夋嫨楂�"  
+                      style="width: 220px"  
+                      @input="handleInputChangea"  
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsa"  
+                    :key="item.id"  
+                    :label="item.label"  
+                    :value="item.value"  
+                 />  
+               </el-select> 
               </el-form-item></div>
               </div>
           </el-col>
@@ -785,14 +735,43 @@
               <div id="dt" style="font-size: 15px;">
         <div>
               <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw;">
-                <el-input v-model="filmsId" autocomplete="off" />
+                <el-select  
+                      v-model="selectedValueb"  
+                      filterable  
+                      clearable  
+                      placeholder="璇烽�夋嫨鑶滅郴"  
+                      style="width: 220px"  
+                      @input="handleInputChangea"  
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsb"  
+                    :key="item.id"  
+                    :label="item.label"  
+                    :value="item.value"  
+                 />  
+               </el-select> 
               </el-form-item></div></div>
           </el-col>
           <el-col :span="9">
             <div id="dta" style="font-size: 15px;">
         <div>
               <el-form-item label="鍘氬害锛�" :required="true" style="width: 14vw">
-                <el-input v-model="patternThickness" autocomplete="off" />
+                <el-select  
+                      v-model="selectedValuec"  
+                      filterable  
+                      clearable  
+                      placeholder="璇烽�夋嫨鍘氬害"  
+                      style="width: 220px"  
+                      @input="handleInputChangea"  
+                    >  
+                 <el-option  
+                    v-for="item in selectOptionsc"  
+                    :key="item.id"  
+                    :label="item.label"  
+                    :value="item.value"  
+                 />  
+               </el-select> 
+                <!-- <el-input v-model="patternThickness" autocomplete="off" /> -->
               </el-form-item></div></div>
           </el-col>
         </el-row>
@@ -828,8 +807,6 @@
     </template>
   </el-dialog>
         </div>
- 
-  
   <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" title="宸ョ▼" >
     <div style="margin-left: 50px;margin-bottom: 10px;">
       <el-form-item label="宸ョ▼鍙凤細" :required="true">

--
Gitblit v1.8.0