From 3a38edcb5e9c15a9591e1e913d3583f3d437caf1 Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期三, 16 十月 2024 10:05:29 +0800
Subject: [PATCH] Merge remote-tracking branch '公司服务器/master'
---
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 1110 +++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 1,010 insertions(+), 100 deletions(-)
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 38963a3..f6b504c 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -1,119 +1,1010 @@
-<script setup>
-import {Search} from "@element-plus/icons-vue";
+<script setup lang="ts">
+import {Search ,Delete, Upload,Edit} from "@element-plus/icons-vue";
import {reactive} from "vue";
-import {useRouter} from "vue-router"
-
-import { ref } from 'vue'
-
-const dialogFormVisible = ref(true)
-const dialogFormVisiblea = ref(false)
-
-const getTableRow = (row,type) =>{
- switch (type) {
- case 'edit' :{
- //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
- router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
- break
+import request from "@/utils/request"
+import { ref, onMounted, onBeforeUnmount,nextTick } from 'vue';
+import { WebSocketHost ,host} from '@/utils/constants'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+ import { useI18n } from 'vue-i18n'
+ import { useRouter } from 'vue-router'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
+const dialogFormVisible = ref(false)
+const dialogFormVisiblea = ref(true)
+const dialogFormVisibleb = ref(false)
+const dialogFormVisiblec = ref(false)
+const blind1 = ref(false)
+const blind2 = ref(false)
+const blinda = ref(false)
+const blindb = ref(false)
+const dialogVisible = ref(false)
+const width = ref();
+const height = ref();
+const currentRect = ref(null);
+const canSelectProject1 = ref(true);
+const canSelectProject2 = ref(true);
+const canSelectProjecta = ref(true);
+const cantakea = ref(true);
+const cantakeb = ref(true);
+const canona = ref(true);
+const canonb = ref(true);
+const canSelectProjectb = ref(true);
+const adjustedRects1 = ref([]);
+const adjustedRects2 = ref([]);
+const adjustedRectsa = ref([]);
+const adjustedRectsb = ref([]);
+const tableData = ref([])
+const engineerId = ref('')
+const router = useRouter()
+const currentGlassId = ref(null);
+const currenttemperingFeedSequence = ref(null);
+onMounted(async () => {
+ try {
+ const response = await request.post('/loadGlass/damage/selectDamagePrint', {
+ type: 9,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code === 200) {
+ tableData.value = response.data
+ console.log(response.data);
+ } else {
+ ElMessage.warning(response.message)
+ }
+ } catch (error) {
+ // console.error('Error fetching rects :', error);
+ }
+});
+const selectReportData = async () => {
+ let postData = {
+ type: 9,
+ workingProcedure: '閽㈠寲',
+ ...(engineerId.value !== '' && { engineerId: engineerId.value }),
+ };
+ const response = await request.post("/loadGlass/damage/selectDamagePrint", postData)
+ if (response.code === 200) {
+ tableData.value = response.data;
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.message);
+ }
+};
+const printing = async () => {
+ let postData = {
+ type: 9,
+ workingProcedure: '閽㈠寲',
+ ...(engineerId.value !== '' && { engineerId: engineerId.value }),
+ };
+ console.log(engineerId.value);
+
+ const response = await request.post("/loadGlass/damage/selectDamagePrintDetails", postData)
+ if (response.code === 200) {
+ dialogVisible.value = true;
+ tableData.value = response.data;
+ await nextTick();
+ // 寤舵椂 2 绉掑悗鎵撳嵃锛堟椂闂村彲浠ユ牴鎹渶瑕佽皟鏁达級
+ setTimeout(() => {
+ window.print();
+ }, 2000);
+} else {
+ ElMessage.error(response.message);
+ }
+};
+const printTable = () => {
+ // 杩欓噷鍙互娣诲姞涓�浜汣SS鏍峰紡鏉ヤ紭鍖栨墦鍗版晥鏋�
+ // 渚嬪锛屽彲浠ユ坊鍔犱竴涓殣钘忕殑鎵撳嵃鏍峰紡琛�
+ window.print();
+};
+const socketUrl = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/temperingGlass`;
+const handleMessage = (data) => {
+ // 杩涚倝涓彸
+ if (data.intoGlass2 && data.intoGlass2.length > 0) {
+ // 鎻愬彇鏂扮殑鐭╁舰ID
+ const newGlassIds = new Set(data.intoGlass2[0].map(rect => rect.glassId));
+ // 杩囨护鍑哄凡瀛樺湪鐨勭煩褰�
+ const existingRects = adjustedRects2.value.filter(rect => newGlassIds.has(rect.glassId));
+ // 璁$畻鏂扮殑鐭╁舰
+ const newRects = data.intoGlass2[0].map(rect => {
+ const scaleFactor = 794.67/5087;
+ const scaleFactorY = 430/2800;
+ let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
+ let newX = rect.yCoordinate;
+ if (rect.width < rect.height) {
+ widtha = rect.height;
+ heighta = rect.width;
+ }else {
+ widtha = rect.width;
+ heighta = rect.height;
+ }
+ if (rect.angle === 0) {
+ adjustedWidth = widtha * scaleFactor;
+ adjustedHeight = heighta * scaleFactorY;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
+ newX = 5087 - (rect.yCoordinate + widtha);
+ } else {
+ adjustedWidth = heighta * scaleFactor;
+ adjustedHeight = widtha * scaleFactorY;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
+ newX = 5087 - (rect.yCoordinate + heighta);
+ }
+ return {
+ ...rect,
+ xcoordinate: newX * scaleFactor,
+ ycoordinate: rect.xCoordinate * scaleFactorY,
+ width: adjustedWidth,
+ height: adjustedHeight,
+ widtha: rect.width,
+ heighta: rect.height,
+ }
+ });
+ // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��
+ adjustedRects2.value = existingRects.map(oldRect => {
+ const newRect = newRects.find(r => r.glassId === oldRect.glassId);
+ if (newRect) {
+ return { ...oldRect, ...newRect, isActive: oldRect.isActive };
+ }
+ return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�
+ }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));
+ }
+ else if (data.intoGlass2 == null) {
+ adjustedRects2.value = []
+ }
+ // 杩涚倝涓乏
+ if (data.intoGlass && data.intoGlass.length > 0) {
+ console.log(data.intoGlass);
+
+ const newGlassIds = new Set(data.intoGlass[0].map(rect => rect.glassId));
+ const existingRects = adjustedRects1.value.filter(rect => newGlassIds.has(rect.glassId));
+ const newRects = data.intoGlass[0].map(rect => {
+ const scaleFactor = 810.89/5087;
+ const scaleFactorY = 430/2800;
+ let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;
+ let newX = rect.yCoordinate;
+ if (rect.width < rect.height) {
+ widtha = rect.height;
+ heighta = rect.width;
+ }else {
+ widtha = rect.width;
+ heighta = rect.height;
+ }
+ if (rect.angle === 0) {
+ adjustedWidth = widtha * scaleFactor;
+ adjustedHeight = heighta * scaleFactorY;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
+ newX = 5087 - (rect.yCoordinate + widtha);
+ } else {
+ adjustedWidth = heighta * scaleFactor;
+ adjustedHeight = widtha * scaleFactorY;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
+ newX = 5087 - (rect.yCoordinate + heighta);
+ }
+ return {
+ ...rect,
+ xcoordinate: newX * scaleFactor,
+ ycoordinate: rect.xCoordinate * scaleFactorY,
+ width: adjustedWidth,
+ height: adjustedHeight,
+ widtha: rect.width,
+ heighta: rect.height,
+ }
+ });
+ // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��
+ adjustedRects1.value = existingRects.map(oldRect => {
+ const newRect = newRects.find(r => r.glassId === oldRect.glassId);
+ if (newRect) {
+ return { ...oldRect, ...newRect, isActive: oldRect.isActive };
+ }
+ return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�
+ }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));
+ }
+ else {
+ adjustedRects1.value = []
+ }
+ if (data.waitingGlass && data.waitingGlass.length > 0) {
+ const newGlassIds = new Set(data.waitingGlass[0].map(rect => rect.glassId));
+ const existingRects = adjustedRectsa.value.filter(rect => newGlassIds.has(rect.glassId));
+ const newRects = data.waitingGlass[0].map(rect => {
+ const scaleFactor = 1390/5190;
+ const scaleFactorY = 750/2800;
+ let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta;;
+ let newX = rect.yCoordinate;
+ if (rect.width < rect.height) {
+ widtha = rect.height;
+ heighta = rect.width;
+ }else {
+ widtha = rect.width;
+ heighta = rect.height;
+ }
+ if (rect.angle === 0) {
+ adjustedWidth = widtha * scaleFactor;
+ adjustedHeight = heighta * scaleFactorY;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
+ newX = 5190 - (rect.yCoordinate + widtha);
+ } else {
+ adjustedWidth = heighta * scaleFactor;
+ adjustedHeight = widtha * scaleFactorY;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
+ newX = 5190 - (rect.yCoordinate + heighta);
+ }
+ return {
+ ...rect,
+ x: newX * scaleFactor,
+ y: rect.xCoordinate * scaleFactorY,
+ width: adjustedWidth,
+ height: adjustedHeight,
+ widtha: rect.width,
+ heighta: rect.height,
+ }
+ });
+ // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��
+ adjustedRectsa.value = existingRects.map(oldRect => {
+ const newRect = newRects.find(r => r.glassId === oldRect.glassId);
+ if (newRect) {
+ return { ...oldRect, ...newRect, isActive: oldRect.isActive };
+ }
+ return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�
+ }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));
+ }
+ else if (data.waitingGlass == null) {
+ adjustedRectsa.value = []
+ }
+ if (data.outGlass && data.outGlass.length > 0) {
+ // 鎻愬彇鏂扮殑鐭╁舰ID
+ const newGlassIds = new Set(data.outGlass[0].map(rect => rect.glassId));
+ // 杩囨护鍑哄凡瀛樺湪鐨勭煩褰�
+ const existingRects = adjustedRectsb.value.filter(rect => newGlassIds.has(rect.glassId));
+ // 璁$畻鏂扮殑鐭╁舰
+ const newRects = data.outGlass[0].map(rect => {
+ const scaleFactor = 1390/5190;
+ const scaleFactory = 750/2800;
+ let adjustedWidth, adjustedHeight, adjustedWidtha, adjustedHeighta,widtha,heighta,newY;
+ let newX = rect.yCoordinate;
+ if (rect.width < rect.height) {
+ widtha = rect.height;
+ heighta = rect.width;
+ }else {
+ widtha = rect.width;
+ heighta = rect.height;
+ }
+ if (rect.angle === 0) {
+ adjustedWidth = widtha * scaleFactor;
+ adjustedHeight = heighta * scaleFactory;
+ // adjustedWidtha = widtha;
+ // adjustedHeighta = heighta;
+ // newX = 5190 - (rect.yCoordinate + widtha);
+ newY = 2800 - (rect.xCoordinate + heighta);
+ } else {
+ adjustedWidth = heighta * scaleFactor;
+ adjustedHeight = widtha * scaleFactory;
+ // adjustedWidtha = heighta;
+ // adjustedHeighta = widtha;
+ // newX = 5190 - (rect.yCoordinate + heighta);
+ newY = 2800 - (rect.xCoordinate + widtha);
+ }
+ return {
+ ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
+ x: newX * scaleFactor,
+ y: newY * scaleFactory,
+ width: adjustedWidth,
+ height: adjustedHeight,
+ widtha: rect.width,
+ heighta: rect.height,
+ }
+ });
+
+ // 鍚堝苟鏂版棫鐭╁舰锛屽苟淇濈暀 isActive 鐘舵��
+ adjustedRectsb.value = existingRects.map(oldRect => {
+ const newRect = newRects.find(r => r.glassId === oldRect.glassId);
+ if (newRect) {
+ return { ...oldRect, ...newRect, isActive: oldRect.isActive };
+ }
+ return oldRect; // 濡傛灉鏃х煩褰㈠湪鏂版暟鎹腑涓嶅瓨鍦紝浣嗕繚鐣欏湪newGlassIds涓紝鍒欎繚鐣欏師鏍�
+ }).concat(newRects.filter(r => !existingRects.some(o => o.glassId === r.glassId)));
+ }
+ else if (data.outGlass == null) {
+ adjustedRectsb.value = []
+ }
+};
+onMounted(() => {
+ initializeWebSocket(socketUrl, handleMessage);
+});
+function updateRectColorsa() {
+ adjustedRectsa.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 8;
}
- case 'delete':{
- alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
- break
+ });
+}
+function updateoutColorsa() {
+ adjustedRectsa.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 9;
}
+ });
+}
+function updateoutColorsc() {
+ adjustedRects1.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 9;
+ }
+ });
+}
+function updateoutColorsd() {
+ adjustedRects2.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 9;
+ }
+ });
+}
+function updateonColorsa() {
+ adjustedRectsa.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 1;
+ }
+ });
+}
+function updateRectColorsb() {
+ adjustedRectsb.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 8;
+ }
+ });
+}
+function updateoutColorsb() {
+ adjustedRectsb.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 9;
+ }
+ });
+}
+function updateonColorsb() {
+ adjustedRectsb.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 3;
+ }
+ });
+}
+function updateRectColors1() {
+ adjustedRects1.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 8;
+ }
+ });
+}
+function updateRectColors2() {
+ adjustedRects2.value.forEach(rect => {
+ if (rect.glassId === glassId) {
+ rect.state = 8;
+ }
+ });
+}
+function getRectColor1(state) {
+ switch (state) {
+ case 2:
+ return 'lightblue';
+ case 8:
+ return '#911005';
+ case 9:
+ return '#4682B4';
+ }
+}
+function getRectColor2(state) {
+ switch (state) {
+ case 2:
+ return 'lightblue';
+ case 8:
+ return '#911005';
+ case 9:
+ return '#4682B4';
}
}
-
-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: [
- {
+function getRectColora(state) {
+ switch (state) {
+ case 0:
+ return '#7AC5CD';
+ case 1:
+ return '#95d475';
+ case -1:
+ return '#CDAF95';
+ case 8:
+ return '#911005';
+ case 9:
+ return '#4682B4';
+ }
+}
+function getRectColorb(state) {
+ switch (state) {
+ case 3:
+ return '#eebe77';
+ case 4:
+ return '#CD6090';
+ case 8:
+ return '#911005';
+ case 9:
+ return '#4682B4';
+ }
+}
+function showDialog1(rect) {
+ const index = adjustedRects1.value.findIndex(r => r.glassId === rect.glassId);
+ if (index !== -1) {
+ adjustedRects1.value[index].isActive = true;
+ }
+ currentGlassId.value = rect.glassId;
+ currenttemperingFeedSequence.value = rect.temperingFeedSequence;
+ blind1.value = true;
+ currentRect.value = rect;
+ if (currentRect.value.state == 8) {
+ canSelectProject1.value = false;
+ } else if (currentRect.value.state !== 8) {
+ canSelectProject1.value = true;
+ }
+ if (currentRect.value.state == 9) {
+ cantakea.value = false;
+ } else if (currentRect.value.state !== 9) {
+ cantakea.value = true;
+ }
+}
+function showDialog2(rect) {
+ const index = adjustedRects2.value.findIndex(r => r.glassId === rect.glassId);
+ if (index !== -1) {
+ adjustedRects2.value[index].isActive = true;
+ }
+ currentGlassId.value = rect.glassId;
+ currenttemperingFeedSequence.value = rect.temperingFeedSequence;
+ blind2.value = true;
+ currentRect.value = rect;
+ if (currentRect.value.state == 8) {
+ canSelectProject2.value = false;
+ } else if (currentRect.value.state !== 8) {
+ canSelectProject2.value = true;
+ }
+ if (currentRect.value.state == 9) {
+ cantakea.value = false;
+ } else if (currentRect.value.state !== 9) {
+ cantakea.value = true;
+ }
+}
+function showDialoga(rect) {
+ const index = adjustedRectsa.value.findIndex(r => r.glassId === rect.glassId);
+ if (index !== -1) {
+ adjustedRectsa.value[index].isActive = true;
+ }
+ currentGlassId.value = rect.glassId;
+ currenttemperingFeedSequence.value = rect.temperingFeedSequence;
+ blinda.value = true;
+ currentRect.value = rect;
+ if (currentRect.value.state == 8) {
+ canSelectProjecta.value = false;
+ } else if (currentRect.value.state !== 8) {
+ canSelectProjecta.value = true;
+ }
+ if (currentRect.value.state == 9) {
+ cantakea.value = false;
+ } else if (currentRect.value.state !== 9) {
+ cantakea.value = true;
+ }
+ if (currentRect.value.state == 1) {
+ canona.value = false;
+ } else if (currentRect.value.state == 0) {
+ canona.value = true;
+ }
+}
+function showDialogb(rect) {
+ const index = adjustedRectsb.value.findIndex(r => r.glassId === rect.glassId);
+ if (index !== -1) {
+ adjustedRectsb.value[index].isActive = true;
+ }
+ currentGlassId.value = rect.glassId;
+ currenttemperingFeedSequence.value = rect.temperingFeedSequence;
+ blindb.value = true;
+ currentRect.value = rect;
+ if (currentRect.value.state == 8) {
+ canSelectProjectb.value = false;
+ } else if (currentRect.value.state !== 8) {
+ canSelectProjectb.value = true;
+ }
+ if (currentRect.value.state == 9) {
+ cantakeb.value = false;
+ } else if (currentRect.value.state !== 9) {
+ cantakeb.value = true;
+ }
+ if (currentRect.value.state == 3) {
+ canonb.value = false;
+ } else if (currentRect.value.state !== 3) {
+ canonb.value = true;
+ }
+}
+ const handleDialogClose1 = () => {
+ adjustedRects1.value.forEach(rect => {
+ rect.isActive = false;
+ });
+ blind1.value = false;
+};
+ const handleDialogClose2 = () => {
+ adjustedRects2.value.forEach(rect => {
+ rect.isActive = false;
+ });
+ blind2.value = false;
+};
+ const handleDialogClosea = () => {
+ adjustedRectsa.value.forEach(rect => {
+ rect.isActive = false;
+ });
+ blinda.value = false;
+};
+ const handleDialogCloseb = () => {
+ adjustedRectsb.value.forEach(rect => {
+ rect.isActive = false;
+ });
+ blindb.value = false;
+};
+// 鐮存崯
+const handleDamage1 = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ // temperingFeedSequence: currenttemperingFeedSequence.value,
+ line: 4001,
+ status: 8,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blind1.value = false;
+ updateRectColors1();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
}
- ],
-})
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+const handleDamage2 = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ line: 4001,
+ status: 8,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blind2.value = false;
+ updateRectColors2();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// 杩涚倝鍓嶇牬鎹�
+const handleDamagea = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ line: 4001,
+ status: 8,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blinda.value = false;
+ updateRectColorsa();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// 杩涚倝鍓嶄汉宸ユ嬁璧�
+const takeouta = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ line: 4001,
+ status: 9,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blinda.value = false;
+ updateoutColorsa();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// 杩涚倝鍓嶆斁鍥�
+const takeona = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ line: 4001,
+ status: 1,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blinda.value = false;
+ updateonColorsa();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// 杩涚倝涓汉宸ユ嬁璧�
+const takeoutc = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ line: 4001,
+ status: 9,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blind1.value = false;
+ updateoutColorsc();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// 杩涚倝zhong浜哄伐鎷胯蛋
+const takeoutd = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ line: 4001,
+ status: 9,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blind2.value = false;
+ updateoutColorsd();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// 宸插嚭鐐夌牬鎹�
+const handleDamageb = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ line: 4001,
+ status: 8,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blindb.value = false;
+ updateRectColorsb();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ // console.error(error);
+ }
+}
+// 宸插嚭鐐変汉宸ユ嬁璧�
+const takeoutb = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ line: 4001,
+ status: 9,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blindb.value = false;
+ updateoutColorsb();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ // console.error(error);
+ }
+}
+// 宸插嚭鐐夋斁鍥�
+const takeonb = async () => {
+ try {
+ const response = await request.post('/temperingGlass/temperingGlassInfo/updateTemperingState', {
+ glassId: currentGlassId.value,
+ line: 4001,
+ status: 3,
+ workingProcedure: '閽㈠寲',
+ })
+ if (response.code == 200) {
+ ElMessage.success('鎴愬姛锛�');
+ blindb.value = false;
+ updateonColorsb();
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ // console.error(error);
+ }
+}
+onBeforeUnmount(() => {
+ console.log("鍏抽棴浜�")
+ closeWebSocket();
+});
</script>
-
<template>
<div style="margin-top: 10px;">
- <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false">鎽嗙墖鐗堝浘</el-button>
- <el-button id="searchButton" type="success" @click="dialogFormVisiblea = true;dialogFormVisible = false">宸插嚭鐐夌幓鐠�</el-button>
+ <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;dialogFormVisiblec = false;" >{{ $t('processCard.beforefurnace') }}</el-button>
+ <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;dialogFormVisiblec = false;">{{ $t('processCard.intofurnace') }}</el-button>
+ <el-button id="searchButton" type="success" @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false;dialogFormVisiblec = false;">{{ $t('processCard.outfurnace') }}</el-button>
+ <el-button id="searchButton" type="info" @click="dialogFormVisiblec = true;dialogFormVisibleb = false;dialogFormVisible = false;dialogFormVisiblea = false">{{ $t('processCard.print') }}</el-button>
<div v-if="dialogFormVisible" >
- <el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
- <div style="display: flex;margin-bottom: 20px;">
- <div style="margin-left: 400px;font-size: 20px;">宸ョ▼鍙凤細P20240305001 </div>
- <div style="margin-left: 150px;font-size: 20px;">鐗堝浘缂栧彿锛�1</div>
- </div>
- <div>
- <div id="boxa" style="width: 400px;height: 120px;margin-left: 260px;">
- <div style="margin-top: 35px;"> NG202405060798A01-1</div>
- <div> 500脳1500</div>
- </div>
- <div id="boxa" style="width: 400px;height: 120px;">
- <div style="margin-top: 35px;"> NG202405060798A01-1</div>
- <div> 500脳1500</div>
- </div>
- </div>
- <div style="margin-top: 20px;">
- <div id="boxa" style="width: 400px;height: 120px;margin-left: 260px;">
- <div style="margin-top: 35px;"> NG202405060798A01-1</div>
- <div> 500脳1500</div>
- </div>
- <div id="boxb" style="width: 400px;height: 120px;">
- <div style="margin-top: 35px;"> NG202405060798A01-1</div>
- <div> 500脳1500</div>
- </div>
- </div>
- </el-card>
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
+<div style="width: 49%;float: right;background-color: #f4f4f5;height: 430px;">
+ <div v-if="adjustedRects1.length > 0">
+ <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplay }}-{{ adjustedRects[0].temperingLayoutId }}</div> -->
+ <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRects1[0].engineerId }}-{{ adjustedRects1[0].temperingLayoutId }} </div>
+ <el-scrollbar height="430px" style="background-color: #e9e9eb;">
+ <div style="position: relative;max-width: 1400px;">
+ <div
+ v-for="(rect, index) in adjustedRects1"
+ :key="index"
+ @click="showDialog1(rect)"
+ class="rect"
+ :style="{ position: 'absolute',
+ top: `${rect.ycoordinate}px`,
+ left: `${rect.xcoordinate}px`,
+ width: `${rect.width}px`,
+ height: `${rect.height}px`,
+ backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor1(rect.state) }">
+ <div class="centered-text">
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>
+ <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
+ </div>
+ </div>
+ </div>
+ </el-scrollbar>
+ </div>
+ </div>
+<div style="width: 50%;float: left;background-color: #f4f4f5;height: 430px;">
+ <div v-if="adjustedRects2.length > 0">
+ <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRects2[0].engineerId }}-{{ adjustedRects2[0].temperingLayoutId }} </div>
+ <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplay2 }}-{{ adjustedRects[0].temperingLayoutId }}</div> -->
+ <el-scrollbar height="430px" style="background-color: #e9e9eb;">
+ <div style="position: relative;max-width: 1400px;">
+ <div
+ v-for="(rect, index) in adjustedRects2"
+ :key="index"
+ @click="showDialog2(rect)"
+ class="rect"
+ :style="{ position: 'absolute',
+ top: `${rect.ycoordinate}px`,
+ left: `${rect.xcoordinate}px`,
+ width: `${rect.width}px`,
+ height: `${rect.height}px`,
+ backgroundColor: rect.isActive ? '#ADFF2F' : getRectColor2(rect.state) }">
+ <div class="centered-text">
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>
+ <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
+ </div>
+ </div>
+ </div>
+ </el-scrollbar>
+ </div>
+</div>
+ </el-card>
</div>
<div v-if="dialogFormVisiblea">
- <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
- <el-scrollbar height="630px">
- <div id="home-card">
- <div id="home-item" v-for="n in 20" :key="n">
- <div id="box" style="width: 100px;height: 165px;">100*65</div>
- <div id="box" style="width: 107px;height: 150px;">107*60</div>
- <div id="box" style="width: 107px;height: 155px;">109*60</div>
- </div>
- </div>
- </el-scrollbar>
- </el-card>
-</div>
+ <!-- 杩涚倝鍓� -->
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
+ <div v-if="adjustedRectsa.length > 0">
+ <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRectsa[0].engineerId }}-{{ adjustedRectsa[0].temperingLayoutId }} </div>
+ <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplaya }}-{{ adjustedRects[0].temperingLayoutId }}</div> -->
+ <el-scrollbar height="750px" style="background-color: #e9e9eb;">
+ <div style="position: relative;max-width: 1400px;">
+ <div
+ v-for="(rect, index) in adjustedRectsa"
+ :key="index"
+ @click="showDialoga(rect)"
+ class="rect"
+ :style="{ position: 'absolute', top: `${rect.y}px`, left: `${rect.x}px`,
+ width: `${rect.width}px`, height: `${rect.height}px`,
+ backgroundColor: rect.isActive ? '#ADFF2F' : getRectColora(rect.state) }">
+ <div class="centered-text">
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>
+ <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
</div>
-
+ </div>
+ </div>
+ </el-scrollbar>
+ </div>
+ </el-card>
+</div>
+<div v-if="dialogFormVisibleb">
+ <!-- 宸插嚭鐐� -->
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
+ <div v-if="adjustedRectsb.length > 0">
+ <div style="text-align: center;"> 鐐夊彿锛歿{ adjustedRectsb[0].engineerId }}-{{ adjustedRectsb[0].temperingLayoutId }} </div>
+ <!-- <div style="text-align: center;">鐐夊彿锛歿{ engineerIdDisplayb }}-{{ adjustedRects[0].temperingLayoutId }}</div> -->
+ <el-scrollbar height="750px" style="background-color: #e9e9eb;">
+ <div style="position: relative;max-width: 1400px;">
+ <div
+ v-for="(rect, index) in adjustedRectsb"
+ :key="index"
+ @click="showDialogb(rect)"
+ class="rect"
+ :style="{ position: 'absolute', top: `${rect.y}px`, left: `${rect.x}px`,
+ width: `${rect.width}px`, height: `${rect.height}px`,
+ backgroundColor: rect.isActive ? '#ADFF2F' : getRectColorb(rect.state) }">
+ <!-- backgroundColor: rect.state === 4 ? '#911005' : '#f8e3c5' }"> -->
+ <div class="centered-text">
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.glassId }}</div>
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.flowCardId }}</div>
+ <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
+ </div>
+ </div>
+ </div>
+ </el-scrollbar>
+ </div>
+ </el-card>
+</div>
+<div v-if="dialogFormVisiblec">
+ <!-- 鎵撳嵃 -->
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 800px;" v-loading="loading">
+ <div style="display: flex; flex-direction: row; align-items: center; margin-top: 5px;margin-left: 10px;">
+ <el-input :placeholder="$t('processCard.projectnumber')" v-model="engineerId" autocomplete="off" style="width: 300px;"/>
+ <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('processCard.inquire') }}</el-button>
+ <el-button type="info" style="margin-left: 10px;" @click="printing()">{{ $t('processCard.printing') }}</el-button>
+ </div>
+
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 15px;" v-loading="loading">
+ <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;">
+ <el-table
+ height="600"
+ ref="table"
+ :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+ :data="tableData"
+ >
+ <el-table-column prop="engineerId" :label="$t('processCard.project')" width="200" align="center"/>
+ <el-table-column prop="temperingLayoutId" :label="$t('processCard.layoutID')" align="center"/>
+ <el-table-column prop="temperingFeedSequence" :label="$t('processCard.temperingfeed')" align="center"/>
+ <el-table-column prop="glassId" :label="$t('processCard.glassID')" align="center"/>
+ <el-table-column prop="width" :label="$t('processCard.width')" align="center"/>
+ <el-table-column prop="height" :label="$t('processCard.height')" align="center"/>
+ <el-table-column prop="thickness" :label="$t('processCard.thickness')" align="center"/>
+ </el-table>
+ </div>
+ </el-card>
+ </el-card>
+</div>
+<!-- 杩涚倝涓� -->
+<el-dialog v-model="blind1" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose1">
+ <el-button :disabled="!canSelectProject1" type="warning" plain :icon="Delete" @click="handleDamage1" style="width: 150px;margin-left: 10px;">
+ {{ $t('order.dilapidation') }}
+ </el-button>
+ <el-button :disabled="!cantakea" type="danger" plain @click="takeoutc" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+ <el-icon class="el-icon--right"><Upload /></el-icon>
+ {{ $t('order.takeaway') }}
+ </el-button>
+ </el-dialog>
+<el-dialog v-model="blind2" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClose2">
+ <el-button :disabled="!canSelectProject2" type="warning" plain :icon="Delete" @click="handleDamage2" style="width: 150px;margin-left: 10px;">
+ {{ $t('order.dilapidation') }}
+ </el-button>
+ <el-button :disabled="!cantakea" type="danger" plain @click="takeoutd" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+ <el-icon class="el-icon--right"><Upload /></el-icon>
+ {{ $t('order.takeaway') }}
+ </el-button>
+ </el-dialog>
+ <!-- 杩涚倝鍓� -->
+<el-dialog v-model="blinda" top="30vh" width="15%" style="text-align: center;" @close="handleDialogClosea">
+ <el-button type="warning" plain :icon="Delete" @click="handleDamagea" :disabled="!canSelectProjecta" style="width: 150px;margin-left: 10px;">
+ {{ $t('order.dilapidation') }}
+ </el-button>
+ <el-button :disabled="!cantakea" type="danger" plain @click="takeouta" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+ <el-icon class="el-icon--right"><Upload /></el-icon>
+ {{ $t('order.takeaway') }}
+ </el-button>
+ <el-button type="success" plain :icon="Edit" @click="takeona" :disabled="!canona" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+ {{ $t('order.takeon') }}
+ </el-button>
+ </el-dialog>
+ <!-- 宸插嚭鐐� -->
+<el-dialog v-model="blindb" top="30vh" width="15%" style="text-align: center;" @close="handleDialogCloseb">
+ <el-button :disabled="!canSelectProjectb" type="warning" plain :icon="Delete" @click="handleDamageb" style="width: 150px;margin-left: 10px;">
+ {{ $t('order.dilapidation') }}
+ </el-button>
+ <el-button :disabled="!cantakeb" type="danger" plain @click="takeoutb" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+ <el-icon class="el-icon--right"><Upload /></el-icon>
+ {{ $t('order.takeaway') }}
+ </el-button>
+ <!-- <el-button type="success" plain :icon="Edit" @click="takeonb" :disabled="!canonb" style="width: 150px;margin-left: 10px;margin-top: 10px;">
+ {{ $t('order.takeon') }}
+ </el-button> -->
+ </el-dialog>
+ <el-dialog
+ v-model="dialogVisible"
+ width="100%"
+ top="0vh"
+ :show-close="false"
+ >
+ <div class="custom-title" style="text-align: center; margin-bottom: 20px;">
+ {{ $t('processCard.glasstakeout') }}
+ </div>
+ <el-table
+ :data="tableData"
+ style="width: 100%;height: 760px"
+ >
+ <el-table-column prop="flowCardId" :label="$t('processCard.flowcard')" width="140" align="center"/>
+ <el-table-column prop="layer" :label="$t('processCard.layer')" align="center" width="52"/>
+ <el-table-column prop="engineerId" :label="$t('processCard.project')" align="center" width="110"/>
+ <el-table-column prop="temperingLayoutId" :label="$t('processCard.temperinglayout')" align="center" width="52"/>
+ <el-table-column prop="temperingFeedSequence" :label="$t('processCard.temperingfeed')" align="center" width="52"/>
+ <el-table-column prop="width" :label="$t('processCard.width')" align="center" width="80"/>
+ <el-table-column prop="height" :label="$t('processCard.height')" align="center" width="80"/>
+ <el-table-column prop="thickness" :label="$t('processCard.thickness')" align="center" width="52"/>
+ </el-table>
+ </el-dialog>
+ </div>
</template>
-
<style scoped>
#boxa{
border: 1px solid rgb(119, 116, 116);
background-color: #529b2e;
text-align: center;
display: inline-block;
- /* align-items:center; */
- /* justify-content:center; */
+ /* align-items:center; */
+ /* justify-content:center; */
margin-left: 20px;
}
#boxb{
@@ -122,16 +1013,16 @@
/* display:flex; */
text-align: center;
display: inline-block;
- align-items:center;
- justify-content:center;
+ align-items:center;
+ justify-content:center;
margin-left: 20px;
}
#box{
border: 1px solid black;
background-color: #337ecc;
display:flex;
- align-items:center;
- justify-content:center;
+ align-items:center;
+ justify-content:center;
}
#home-card {
width: 100%;
@@ -171,4 +1062,23 @@
}
}
}
+ .rect {
+ border: 1px solid black; /* 璁剧疆鐭╁舰鐨勮竟妗� */
+ /* background-color: lightblue; 璁剧疆鐭╁舰鐨勮儗鏅壊 */
+}
+#rect {
+ position: relative; /* 纭繚绠ご鍙互鐩稿浜庣煩褰㈠畾浣� */
+}
+.centered-text {
+ /* 璁剧疆鏂囧瓧灞呬腑鏍峰紡 */
+ /* display: flex; */
+ justify-content: center;
+ align-items: center;
+ height: 100%; /* 纭繚div鍗犳嵁鏁翠釜鐭╁舰鐨勯珮搴� */
+ /* font-size: small; */
+}
+.custom-title {
+ font-size: 20px;
+ font-weight: bold;
+}
</style>
\ No newline at end of file
--
Gitblit v1.8.0