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