From 78d73df2f8e0c6855d65eb1f2c6df08e0f99bab1 Mon Sep 17 00:00:00 2001
From: huang <1532065656@qq.com>
Date: 星期三, 22 十月 2025 12:45:05 +0800
Subject: [PATCH] 仓储后端接口返回信息国际化处理

---
 UI-Project/src/views/Returns/upreturns3.vue |  144 +++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 119 insertions(+), 25 deletions(-)

diff --git a/UI-Project/src/views/Returns/upreturns3.vue b/UI-Project/src/views/Returns/upreturns3.vue
index fd66797..4270039 100644
--- a/UI-Project/src/views/Returns/upreturns3.vue
+++ b/UI-Project/src/views/Returns/upreturns3.vue
@@ -7,7 +7,7 @@
 import request from "@/utils/request"
 import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService';
 const router = useRouter()
-const { t } = useI18n()
+const { t } = useI18n();
 const selectValuesa = reactive([]);
 const selectedProjectNo = ref('');
 const stationCell = ref('1');
@@ -20,7 +20,7 @@
 const blindbd = ref(false)
 const canSelectProjecta = ref(true);
 const canSelectProjectb = ref(true);
-const canSelectProjectc = ref(false);
+const canSelectProjectc = ref(true);
 const tableDatad = ref([])
 const upstatus = ref(t('basicData.machineaa'));
 const cuttingMachineStatusColor = ref('#911005');
@@ -28,8 +28,33 @@
 const tableDatab = ref<any[]>([]);
 const tableData = ref([])
 
+// 鏆傚仠鎸夐挳
+const isPaused = ref(false); // 鏆傚仠鐘舵�佹爣璇嗭細false=鏈殏鍋滐紙鏄剧ず鈥滄殏鍋溾�濓級锛宼rue=宸叉殏鍋滐紙鏄剧ず鈥滃惎鍔ㄢ�濓級
+// 鍙栨秷锛堟仮澶嶏級鏃剁殑寮圭獥鏄鹃殣
+const resumeDialogVisible = ref(false);
+// 瀛樺偍鍚庣杩斿洖鐨剆tate=5鐨勫伐绋嬪垪琛�
+const pauseEngineeringList = ref([]);
+// 妫�鏌ユ槸鍚︽湁姝e湪鎵ц涓殑浠诲姟
+const hasRunningTask = ref(false);
+
 const dialogFormVisiblea = ref(false)
 
+function getTagType(state) {
+  switch(state) {
+    case 100: return 'success'; // 100=閫氳繃锛堢豢鑹诧級
+    case 101: return 'danger';  // 101=鎵ц涓紙绾㈣壊锛�
+    default: return 'warning';  // 鍏朵粬=寰呭鐞嗭紙姗欒壊锛�
+  }
+}
+
+  // 鍔ㄦ�佽幏鍙栨爣绛炬枃鏈紙鏀寔鍥介檯鍖栵級
+function getTagText(state) {
+  switch(state) {
+    case 100: return t('Mounting.pass');      // 閫氳繃
+    case 101: return t('film.execution');     // 鎵ц涓�
+    default: return t('Mounting.waiting');    // 寰呭鐞�
+  }
+}
 
 const titleSelectJson = ref({
   engineerId: [],
@@ -93,6 +118,9 @@
 let socket = null;
 const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlassOne`;
 const handleMessage = (data: any) => {
+  if (data.engineering != null) {
+    isPaused.value = false;
+  }
   if (data.inkageState != null) {
     cuttingMachineStatusColor.value = data.inkageState[0] === 1 ? 'green' : '#911005';
   }
@@ -108,17 +136,25 @@
   } else {
     tableDataa.value = []
   }
+  canSelectProjectc.value = true; 
+  canSelectProjecta.value = false;
+  canSelectProjectb.value = false;
+  tableData.value = [];
+  window.localStorage.setItem('engineeringIda', '');
   if (data.upPattenUsages.length != 0) {
     tableData.value = data.upPattenUsages[0]
-    window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId)
-    canSelectProjecta.value = false;
-    canSelectProjectb.value = false;
-    canSelectProjectc.value = true;
+     if (tableData.value.length > 0) {
+      window.localStorage.setItem('engineeringIda', tableData.value[0].engineeringId);
+    }
+    hasRunningTask.value = tableData.value.some(task => task.state === 101);
+    console.log(hasRunningTask);
+
+    // canSelectProjectc.value = !hasRunningTask;
   }
   else {
+    hasRunningTask.value = false;
     canSelectProjecta.value = true;
     canSelectProjectb.value = true;
-    canSelectProjectc.value = false;
     tableData.value = [];
     window.localStorage.setItem('engineeringIda', '')
   }
@@ -283,18 +319,29 @@
 // 鏆傚仠
 const handleup = async () => {
   try {
-    let filmRemove = window.localStorage.getItem('filmRemove')
-    let engineeringId = window.localStorage.getItem('engineeringIda')
+    const filmRemove = window.localStorage.getItem('filmRemove')
+    let engineeringId;
+    const currentEngineering = pauseEngineeringList.value[0];
+    if (currentEngineering) {
+      // 浠庨�変腑鐨勫伐绋嬩腑鑾峰彇ID锛堝彇娑堝脊绐椾腑閫夋嫨鐨勫伐绋嬶級
+      engineeringId = currentEngineering.engineerId;
+    } else {
+      // 浣跨敤鏈湴缂撳瓨鐨勫伐绋婭D锛堟殏鍋滃脊绐楃殑鍦烘櫙锛�
+      engineeringId = window.localStorage.getItem('engineeringIda');
+    }
     if (engineeringId !== '') {
       const response = await request.post('/loadGlass/engineering/engineering/pause', {
         stationCell: 5,
         filmRemove: filmRemove,
         engineerId: engineeringId,
-        state: 0,
+        state: isPaused.value ? 1 : 5
       })
-      if (response.code == 200) {
+      if (response.code == 200) {      
+        // 鍒囨崲鏆傚仠/鍚姩鐘舵��
+        isPaused.value = !isPaused.value;
         ElMessage.success(response.message);
         blinda.value = false;
+        resumeDialogVisible.value = false;
       } else {
         ElMessage.error(response.message);
       }
@@ -331,23 +378,45 @@
 
 
 // 鏆傚仠
-const handleBinda = (row) => {
-  blinda.value = true;
+const handleBinda = async () => {
+  if (!isPaused.value) {
+    // 鎯呭喌1锛氬綋鍓嶆槸鈥滄殏鍋溾�濈姸鎬佲啋鎵撳紑鏆傚仠纭寮圭獥
+    blinda.value = true;
+  } else {
+    // 鎯呭喌2锛氬綋鍓嶆槸鈥滃彇娑堚�濈姸鎬佲啋鎵撳紑鏂板寮圭獥锛屽苟鏌ヨstate=5鐨勫伐绋�
+    try {
+      // 璋冪敤鍚庣鏌ヨstate=5鐨勫伐绋嬫帴鍙�
+      const response = await request.get('/loadGlass/engineering/engineering/selectTask');
+      if (response.code === 200) {
+        pauseEngineeringList.value = response.data; // 瀛樺偍宸ョ▼鍒楄〃
+        resumeDialogVisible.value = true; // 鎵撳紑鏂板寮圭獥
+      } else {
+        ElMessage.error(t('film.fail') + response.message);
+      }
+    } catch (error) {
+      console.error('鏌ヨ鏆傚仠宸ョ▼寮傚父锛�', error);
+      ElMessage.error(t('film.fail') + '鏌ヨ澶辫触锛岃閲嶈瘯');
+    }
+  }
 };
+
+// 鏄惁绂佺敤
 const toggleEnableState = async (row: any) => {
-  if (!row.id) {
+  if (!row.deviceId) {
     ElMessage.error(t('basicData.updatanull'));
     return;
   }
-  const newState = row.state === 100 ? 0 : 100;
+  const newState = row.state === 1 ? 0 : 1;
   try {
-    const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });
+    var url = "/glassStorage/rawGlassStorageStation/updateSlotState?slot=" + row.slot + "&state=" + newState;
+    const response = await request.post(url)
     if (response.code === 200) {
       ElMessage.success(response.message);
       row.state = newState;
     } else {
       ElMessage.error(response.message);
     }
+    row.state = newState;
   } catch (error) {
     ElMessage.error(t('basicData.glassnull'));
   }
@@ -449,7 +518,7 @@
 };
 
 
-// 鏋跺瓙鏁版嵁瀵规瘮 锛堜换鎰忎竴琛屾瘮鍖归厤閮芥樉绀虹孩鑹诧級
+// 鏋跺瓙鏁版嵁瀵规瘮 锛堟瘡涓�琛岄兘杩涜姣斿锛屼笉鍚岄兘鏄剧ず绾㈣壊锛�
 // const tableRowClassName = ({
 //   row,
 //   rowIndex: number  
@@ -592,7 +661,7 @@
       <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
         <el-table ref="table" style="margin-top: 20px;height: 700px;" :data="tableDatab"
           :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }">
-          <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80" />
+          <!-- <el-table-column prop="deviceId" fixed align="center" :label="$t('film.station')" min-width="80" /> -->
           <el-table-column prop="slot" fixed align="center" :label="$t('film.slot')" min-width="80" />
           <el-table-column prop="patternWidth" align="center" :label="$t('film.width')" min-width="80" />
           <el-table-column prop="patternHeight" align="center" :label="$t('film.height')" min-width="80" />
@@ -609,9 +678,10 @@
           <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="270">
             <template #default="scope">
               <el-input v-model="inputQuantities[scope.row.slot]" type="number" min="0" @input="handleInput(scope.row)"
-                :placeholder="$t('basicData.selectquantity')" :disabled="scope.row.slot > 100" style="width: 120px; margin-right: 10px;">
+                :placeholder="$t('basicData.selectquantity')" v-if ="scope.row.slot < 99"
+                style="width: 120px; margin-right: 10px;">
               </el-input>
-              <el-button type="text" :disabled="scope.row.slot > 100" @click="handleBind(scope.row)">
+              <el-button type="text" v-if = "scope.row.slot < 99"  :disabled="isPaused || hasRunningTask" @click="handleBind(scope.row)">
                 {{ $t('basicData.startloading') }} </el-button>
             </template>
           </el-table-column>
@@ -620,10 +690,34 @@
 
       <!--鏆傚仠-->
       <el-button :disabled="!canSelectProjectc" style="margin-top: 5px;margin-left: 20px;" id="searchButton"
-        type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
+        :type="isPaused ? 'danger' : 'warning'" @click="handleBinda">{{ isPaused ? $t('sorter.cancel') :
+        $t('basicData.stop') }}</el-button>
 
       <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="info" @click="handlehistorical">{{
         $t('searchOrder.historicaltasks') }}</el-button>
+
+      <el-dialog v-model="resumeDialogVisible" top="24vh" width="40%">
+        <!-- 宸ョ▼鍒楄〃灞曠ず -->
+        <div v-if="pauseEngineeringList.length > 0">
+          <div style="text-align: center; margin-bottom: 10px;">
+          {{ $t('basicData.isEnable')}}{{ pauseEngineeringList[0].engineerId }}{{ $t('basicData.project') }}
+          </div>
+        </div>
+        <!-- 鏃犳殏鍋滃伐绋嬫椂鐨勬彁绀� -->
+        <div v-else class="no-data" style="text-align: center; padding: 20px;">
+          <el-empty description="No pause engineering" />
+        </div>
+
+        <!-- 寮圭獥搴曢儴鎸夐挳 -->
+        <template #footer>
+          <div id="dialog-footer">
+            <el-button type="primary" @click="handleup">
+              {{ $t('basicData.confirm') }}
+            </el-button>
+            <el-button @click="resumeDialogVisible = false">{{ $t('basicData.cancel') }}</el-button>
+          </div>
+        </template>
+      </el-dialog>
       <!-- <el-select disabled v-model="selectValuesa[1]" clearable :placeholder="$t('Mounting.twoloadingline')"
         style="margin-top: 5px;margin-left: 20px;">
         <el-option :label="$t('Mounting.all')" value="0"></el-option>
@@ -650,8 +744,8 @@
             <el-table-column prop="layoutSequence" :label="$t('Mounting.projectnumber')" align="center" />
             <el-table-column align="center" :label="$t('Mounting.state')" min-width="80" prop="state">
               <template #default="scope">
-                <el-tag :type="scope.row.state === 100 ? 'success' : 'warning'" @click="toggleEnableState(scope.row)">
-                  {{ scope.row.state === 100 ? $t('Mounting.pass') : $t('Mounting.waiting') }}
+                <el-tag :type="getTagType(scope.row.state)">
+                  {{ getTagText(scope.row.state) }}
                 </el-tag>
               </template>
             </el-table-column>
@@ -680,12 +774,12 @@
               <el-table-column prop="remainQuantity" align="center" :label="$t('basicData.quantity')" min-width="80" />
               <el-table-column prop="patternThickness" align="center" :label="$t('basicData.thickness')"
                 min-width="60" />
-              <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="100">
+              <!-- <el-table-column fixed="right" :label="$t('film.operate')" align="center" width="100">
                 <template #default="scope">
                   <el-button :disabled="(!scope.row.patternThickness)" type="text" plain
                     @click="handleptask(scope.row.workstationId)">{{ $t('basicData.rackreset') }}</el-button>
                 </template>
-              </el-table-column>
+              </el-table-column> -->
             </el-table>
           </div>
         </div>

--
Gitblit v1.8.0