From 5a84728f49a5c708d21212b1a395bd62684efd48 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期三, 26 六月 2024 14:06:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
UI-Project/src/views/Returns/returns.vue | 1110 ++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 768 insertions(+), 342 deletions(-)
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index a8e0996..cff32bf 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -4,316 +4,700 @@
import {useRouter} from "vue-router"
const router = useRouter()
import type { TableColumnCtx } from 'element-plus'
-
-// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
const dialogFormVisible = ref(false)
+const blind = ref(false)
+const blinda = ref(false)
+const blindb = ref(false)
const add = ref(false)
const adda = ref(false)
-// const value = ref('')
+const flake = ref(false)
+const flakea = ref(false)
+import { WebSocketHost ,host} from '@/utils/constants'
import request from "@/utils/request"
-
-import { ref, onMounted } from "vue";
-// import http from "@/http/index";
-const tableData = ref([])
-// request.post(`/LoadGlass/list`).then((res) => {
-// if (res.code == 200) {
-// console.log(res.data);
-// } else {
-// ElMessage.warning(res.msg)
-// router.push("/login")
-// }
-// });
-// request.get("/LoadGlass/list").then((res) => {
-// if (res.code == 200) {
-// console.log(res.data);
-// tableData.value = res
-// } else {
-// ElMessage.warning(res.msg)
-// router.push("/login")
-// }
-// });
-onMounted(() => {
- request
- .get("/LoadGlass/list")
- .then((res: any) => {
- tableData.value = res.data;
- })
- .catch((err: any) => {});
-});
-onMounted(() => {
- request
- .post("/LoadGlass/selectPriority")
- .then((res: any) => {
- tableData.value = res.data;
- })
- .catch((err: any) => {});
-});
-interface User {
- id: string
- name: string
- amount1: string
- amount2: string
- amount3: number
-}
-
-interface SpanMethodProps {
- row: User
- column: TableColumnCtx<User>
- rowIndex: number
- columnIndex: number
-}
-
-const objectSpanMethod = ({
- row,
- column,
- rowIndex,
- columnIndex,
-}: SpanMethodProps) => {
- if (columnIndex === 0) {
- if (rowIndex % 2 === 0) {
- return {
- rowspan: 2,
- colspan: 1,
- }
+const ida = ref(null);
+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 upstatus = ref(t('basicData.machineaa'));
+const cuttingMachine = ref(''); // 鍋囪杩欎釜鐢ㄤ簬瀛樺偍鍚庣杩斿洖鐨勭姸鎬佸�硷紙0鎴�1锛�
+const cuttingMachineStatusColor = ref('#911005'); // 鐢ㄤ簬鍔ㄦ�佽缃甶鏍囩鐨勮儗鏅壊
+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([]);
+ 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)
+ // 鑾峰彇鍞竴鍊�
+ 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 {
- return {
- rowspan: 0,
- colspan: 0,
- }
+ ElMessage.error(response.message);
}
+ } catch (error) {
+ // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
+ // ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
}
-}
-
-const options = [
- {
- value: 'Option1',
- label: 'P202561456',
- },
- {
- value: 'Option2',
- label: 'P202561456',
- },
- {
- value: 'Option3',
- label: 'P202561456',
- },
- {
- value: 'Option4',
- label: 'P202561456',
- },
- {
- value: 'Option5',
- label: 'P202561456',
- },
-]
-// const tableData: User[] = [
-
-// {
-// id: 'P202561456',
-// long: '1005',
-// wide: '183.6',
-// thick: '1991',
-// },
-// {
-// id: 'P202561456',
-// long: '105',
-// wide: '183',
-// thick: '191',
-// }
-// ]
-const tableDataa = [
- {
- long: '1005',
- wide: '183.6',
- thick: '1991',
- station: '1'
- },
- {
- long: '105',
- wide: '183',
- thick: '191',
- station: '1'
- }
-]
-const open = () => {
- ElMessageBox.confirm(
- '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
- '鎻愮ず',
- {
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
- type: 'warning',
+};
+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
}
- )
- .then(() => {
- ElMessage({
- type: 'success',
- message: '鍒犻櫎鎴愬姛锛�',
- })
- })
- .catch(() => {
+ } else {
+ ElMessage.warning(res.message)
+ // router.push("/login")
+ }
+ });
+//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
+const titleSelectJson = ref({
+ processType: [],
+})
+const titleSelectJsona = ref({
+ processTypea: [],
+})
+const socketUrl = `ws://${WebSocketHost}:${host}/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 fetchOptions = async (queryString: string) => {
+ try {
+ // 鍙戦�佽姹傚埌鍚庣鎺ュ彛
+ const response = await request.post('/loadGlass/optimizeProject/listByState', {
+ ...requestData,
+ query: queryString // 灏嗘煡璇㈠瓧绗︿覆浣滀负鍙傛暟浼犻��
+ });
+
+ if (response.code == 200) {
+ titleSelectJson.value.processType = 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) {
+ await fetchOptions(value);
+ } else {
+ options.value = []; // 娓呯┖閫夐」鍒楄〃
+ }
+};
+ // 澶勭悊鐢ㄦ埛杈撳叆鍙樺寲鐨勬柟娉�
+const handleInputChangea = async (value: string) => {
+ if (value) {
+ await fetchOptionsa(value);
+ } else {
+ options.value = []; // 娓呯┖閫夐」鍒楄〃
+ }
+};
+// 鍒濆鍖栧姞杞芥暟鎹紙濡傛灉闇�瑕侊級
+onMounted(() => {
+ fetchOptions('');
+ initializeWebSocket(socketUrl, handleMessage);
+});
+onBeforeUnmount(() => {
+ console.log("鍏抽棴浜�")
+ closeWebSocket();
+});
+const user = ref('');
+const projectNo = ref('');
+const workstationId = ref('');
+const id = ref('');
+const patternHeight = ref('');
+const patternWidth = ref('');
+const filmsId = ref('');
+const patternThickness = ref('');
+const number = ref('');
+// 娣诲姞
+const handleBindRack = (row) => {
+ workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
+ ida.value = row.id;
+ console.log(ida.value);
+ add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+// 娣诲姞
+ const handleConfirm = async () => {
+ console.log(ida.value);
+ // console.log('id.value:', id.value);
+ if ((ida.value === 2 || ida.value === 4) && (parseInt(patternHeight.value, 10) >= 2700 )) {
+ try {
+ const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
+ id: workstationId.value,
+ workstationId: workstationId.value,
+ patternHeight: selectedValuea.value,
+ patternWidth: selectedValue.value,
+ filmsId: selectedValueb.value,
+ patternThickness: selectedValuec.value,
+ number: number.value
+ });
+ if (response.code == 200) {
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ ElMessage.success(response.message);
+ // 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') {
+ flake.value = true
+ } else if (workstationId == '2'){
+ flakea.value = true
+ }
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊璇锋眰閿欒
+ console.error(error);
+ alert('璇锋眰澶辫触锛岃绋嶅悗鍐嶈瘯锛�');
+ }
+ }
+ else if( ida.value === 1 || ida.value === 3){
+ try {
+ const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
+ id: workstationId.value,
+ workstationId: workstationId.value,
+ patternHeight: selectedValuea.value,
+ patternWidth: selectedValue.value,
+ filmsId: selectedValueb.value,
+ patternThickness: selectedValuec.value,
+ number: number.value
+ });
+ if (response.code == 200) {
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ ElMessage.success(response.message);
+ // 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') {
+ flake.value = true
+ } else if (workstationId == '2'){
+ flakea.value = true
+ }
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊璇锋眰閿欒
+ console.error(error);
+ alert('璇锋眰澶辫触锛岃绋嶅悗鍐嶈瘯锛�');
+ }
+ }
+ else {
ElMessage({
type: 'info',
- message: '鍒犻櫎澶辫触',
+ message: t('basicData.pause'),
})
+ }
+
+};
+// 鍒犻櫎
+const handleConfirma = async () => {
+ try {
+ const response = await request.post('/loadGlass/LoadGlass/updateGlassMessage', {
+ workstationId: workstationId.value,
+ patternHeight: 0,
+ patternWidth: 0,
+ filmsId: "",
+ patternThickness: 0,
+ number: 0
+ });
+
+ if (response.code == 200) {
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ ElMessage.success(response.message);
+ adda.value = false;
+ tableDataa.value = response.data;
+ window.localStorage.setItem('workstationId', response.data.workstationId)
+ let workstationId = window.localStorage.getItem('workstationId')
+ if (workstationId == '1') {
+ flake.value = false
+ } else if (workstationId == '2'){
+ flakea.value = false
+ }
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+};
+// 閫夋嫨宸ョ▼纭
+const handleup = async () => {
+ try {
+ 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.message);
+ // ElMessage.error(response.msg);
+ }
}
-const getTableRow = (type) =>{
- switch (type) {
- case 'edit' :{
- //alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑缂栬緫淇℃伅')
- // router.push({path: '/main/returns/createReturns', query: { ReturnID: 'TH24010101' }})
- break
- state: true
- }
- case 'delete':{
- alert('鎴戞帴鏀跺埌瀛愮粍浠朵紶閫佺殑鍒犻櫎淇℃伅')
- break
- }
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
}
}
+// 寮�濮嬩笂鐗�
+const handle = async () => {
+ if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
+
+ try {
+ let engineeringId = window.localStorage.getItem('engineeringId')
+console.log(engineeringId);
-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 response = await request.post('/loadGlass/engineering/engineering/changeTask', {
+ engineerId: engineeringId,
+ state: 1,
+ })
+ if (response.code == 200) {
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ ElMessage.success(response.message);
+ // window.location.reload()
+ blind.value = false;
+ selectedProjectNoa.value = '';
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
}
- ],
-})
-</script>
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+ } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
+ // 鎻愮ず鐢ㄦ埛鎵撴爣鏈烘湭灏辩华
+ ElMessage.warning(t('basicData.pausea'));
+ }
+}
+// 鏆傚仠
+const handlea = async () => {
+ try {
+ let engineeringId = window.localStorage.getItem('engineeringId')
+console.log(engineeringId);
+if (engineeringId !== '') {
+ const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
+ engineeringId: engineeringId,
+ state: 0,
+ })
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ blinda.value = false;
+ // tableData.splice([]);
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+ }
+ else {
+ ElMessage({
+ type: 'info',
+ message: t('basicData.infonull'),
+ })
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// 鍋滄浠诲姟
+const handleb = async () => {
+ try {
+ let engineeringId = window.localStorage.getItem('engineeringId')
+console.log(engineeringId);
+if (engineeringId !== '') {
+ const response = await request.post('/loadGlass/engineering/engineering/pauseTask', {
+ engineeringId: engineeringId,
+ state: 0,
+ })
+ if (response.code == 200) {
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ ElMessage.success(response.message);
+ // window.location.reload()
+ blindb.value = false;
+ tableData.splice([]);
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+ }
+ else {
+ ElMessage({
+ type: 'info',
+ message: t('basicData.infonull'),
+ })
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+onMounted(fetchTableData);
+function getStatusText(state: number) {
+ switch (state) {
+ case 0:
+ return t('basicData.waiting');
+ case 1:
+ return t('basicData.up');
+ case 2:
+ return t('basicData.up');
+ case 100:
+ return t('basicData.finish');
+ }
+}
+function getStatusType(state: number) {
+ switch (state) {
+ case 0:
+ return 'warning';
+ case 1:
+ return 'primary';
+ case 2:
+ return 'primary';
+ case 100:
+ return 'success';
+ }
+}
+// 寮�濮嬩笂鐗�
+const handleBind = (row) => {
+ blind.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+// 鏆傚仠
+const handleBinda = (row) => {
+ blinda.value = true;
+};
+// 鍋滄浠诲姟
+const handleBindb = (row) => {
+ blindb.value = true;
+};
+
+// 鍒犻櫎
+const handleBindRacka = (row) => {
+ workstationId.value = row.workstationId;
+ adda.value = true;
+};
+// 瀹氫箟涓�涓搷搴斿紡寮曠敤锛岀敤浜庡瓨鍌ㄩ鑹茬姸鎬�
+const markingMachineStatus = ref('#911005');
+const cuttingMachineStatus = ref('#911005');
+// 瀹氫箟涓�涓柟娉曟潵鏀瑰彉棰滆壊鐘舵��
+const confirmMarkingMachine = () => {
+ markingMachineStatus.value = 'green';
+};
+const confirmCuttingMachine = () => {
+ cuttingMachineStatus.value = 'green';
+};
+const toggleEnableState = async (row: any) => {
+ // 妫�鏌� id 鏄惁涓虹┖
+ if (!row.id) {
+ ElMessage.error(t('basicData.updatanull'));
+ return; // 濡傛灉 id 涓虹┖锛屽垯涓嶆墽琛屽悗缁搷浣�
+ }
+
+ const newState = row.state === 100 ? 0 : 100;
+
+ try {
+ // 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵��
+ const response = await request.post('/loadGlass/up-patten-usage/updateGlassState', { id: row.id, state: newState });
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊璇锋眰閿欒
+ ElMessage.error(t('basicData.glassnull'));
+ }
+};
+
+const wsUrl = `ws://${WebSocketHost}:${host}/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) => {
+ try {
+ const data = JSON.parse(event.data); // 瑙f瀽娑堟伅涓篔SON
+
+ if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) {
+ const status = data.InkageStatus[0];
+ cuttingMachine.value = status;
+ upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
+ cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
+ 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' ? t('basicData.machine') : t('basicData.machineaa');
+ cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
+ // 鏄剧ず鎴愬姛娑堟伅
+ ElMessage.success(response.message);
+ } else {
+ ElMessage.error(response.message || '璇锋眰澶辫触');
+ }
+ } catch (error) {
+ // 澶勭悊閿欒
+ console.error('璇锋眰鏃跺彂鐢熼敊璇�', error);
+ ElMessage.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 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>
- <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">寮�濮嬩笂鐗�</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" >鏆傚仠</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" >鍋滄浠诲姟</el-button>
- <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;" v-loading="loading">
- <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto">
- <!-- <el-table height="100%" ref="table" :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="id" align="center" label="宸ョ▼鍙�" min-width="80" />
- <el-table-column prop="long" align="center" label="鍘熺墖瀹�" min-width="120" />
- <el-table-column prop="wide" align="center" label="鍘熺墖闀�" min-width="120" />
- <el-table-column prop="thick" align="center" label="鑶滅郴" min-width="120" />
- <el-table-column prop="thick" align="center" label="鏁伴噺" min-width="120" />
- <el-table-column
- align="center"
- label="鐘舵��"
- min-width="80"
- >
- <el-tag type="success">灏辩华</el-tag>
- </el-table-column>
- </el-table> -->
+ <div>{{ $t('basicData.laserprinting') }}</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;">{{ $t('basicData.yes') }}</el-button>
+ <div style="margin-left: 70px;">{{ $t('basicData.cuttingmachine') }}</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;" >{{ $t('basicData.yes') }}</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;" >{{ $t('basicData.change') }}</el-button>
+
+ </div>
+ <el-button style="margin-top: 5px;margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true">{{ $t('basicData.selectproject') }}</el-button>
+ <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="primary" @click="handleBind">{{ $t('basicData.startloading') }}</el-button>
+ <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda">{{ $t('basicData.stop') }}</el-button>
+ <!-- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="danger" @click="handleBindb">鍋滄浠诲姟</el-button> -->
+
+ <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="100%"
- ref="table"
+ height="150"
+ ref="table"
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
:data="tableData"
- :span-method="objectSpanMethod"
>
- <el-table-column prop="workstationId" label="宸ョ▼鍙�" width="200" align="center"/>
- <el-table-column prop="patternWidth" label="鍘熺墖瀹�" align="center"/>
- <el-table-column prop="patternHeigth" label="鍘熺墖闀�" align="center"/>
- <el-table-column prop="filmsId" label="鑶滅郴" align="center"/>
- <el-table-column prop="number" label="鏁伴噺" align="center"/>
- <el-table-column prop="patternThickness" label="鍘氬害" align="center"/>
- <el-table-column
+ <el-table-column prop="engineeringId" :label="$t('basicData.projectnumber')" width="200" align="center"/>
+ <el-table-column prop="width" :label="$t('basicData.glasswidth')" align="center"/>
+ <el-table-column prop="height" :label="$t('basicData.glassheight')" align="center"/>
+ <el-table-column prop="filmsId" :label="$t('basicData.coatingtypes')" align="center"/>
+ <el-table-column prop="layoutSequence" :label="$t('basicData.quantity')" align="center"/>
+ <el-table-column prop="thickness" :label="$t('basicData.thickness')" align="center"/>
+ <!-- <el-table-column
align="center"
label="鐘舵��"
min-width="80"
- prop="enableState"
+ prop="state"
>
- <el-tag type="success">灏辩华</el-tag>
- <!-- <el-tag type="danger" v-if="row.enableState==2">鏈氨缁�</el-tag> -->
+ <template #default="scope">
+ <el-tag :type="getStatusType(scope.row.state)">
+ {{ getStatusText(scope.row.state) }}
+ </el-tag>
+ </template> -->
+ <el-table-column
+ align="center"
+ :label="$t('basicData.startstatus')"
+ 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('basicData.pass') : $t('basicData.waiting') }}
+ </el-tag>
+ </template>
</el-table-column>
</el-table>
</div>
</el-card>
- <div id="parent">
- <img src="../../assets/shangpianji .png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 500px;">
- <el-button style="margin-top: -830px;margin-left: -40px;" size="mini" id="searchButton" @click="add = true">娣诲姞鍘熺墖</el-button>
- <el-button style="margin-top: -10px;margin-left: -80px;" size="mini" id="searchButton" @click="adda = true">娣诲姞鍘熺墖</el-button>
- <!-- <div id="overlay" v-show="state"></div> -->
- <!-- <div id="overlaya" v-show="statea"></div> -->
- </div>
- </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">
- <el-select
- v-model="form.workstationId"
- clearable
- placeholder="璇烽�夋嫨宸ョ▼"
- style="width: 300px"
- >
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value"
- />
- </el-select>
- <!-- <el-select clearable filterable size="mini" v-model="form.fvId"
- style="margin-right: 50px;width: 200px" placeholder="璇烽�夋嫨鏋滆敩绉嶇被">
- <el-option v-for="item in billall"
- :key="item.id"
- :label="item.fruitVagetableCate"
- :value="item.id"></el-option>
- </el-select> -->
- </el-form-item>
- </div>
+ <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
<template #footer>
<div id="dialog-footer">
- <el-button type="primary" @click="dialogFormVisible = false">
- 纭
+ <el-button type="primary" @click="handle">
+ {{ $t('basicData.confirm') }}
</el-button>
- <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+ <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
</div>
</template>
</el-dialog>
- <el-dialog v-model="add" top="23vh" width="45%" title="娣诲姞鍘熺墖" >
+ <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('basicData.whetherpause')">
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handlea">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="blinda = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <!-- <el-dialog v-model="blindb" top="30vh" width="25%" title="鏄惁鍋滄浠诲姟?" >
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handleb">
+ 纭
+ </el-button>
+ <el-button @click="blindb = false">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-dialog> -->
+ <div id="parent">
+ <img src="../../assets/shangpianji.png" alt="" style="max-width: 20%;max-height: 20%;margin-top: 20px;margin-left: 500px;">
+ <div id="overlay" v-show="flake"></div>
+ <div id="overlaya" v-show="flakea"></div>
+ </div>
+ <div style="margin-top: -350px;margin-left: 650px;">
+ <el-table :data="tableDataa" border style="width: 85%"
+ :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+ >
+ <el-table-column prop="workstationId" align="center" :label="$t('basicData.station')" min-width="60" />
+ <el-table-column prop="patternWidth" align="center" :label="$t('basicData.width')" min-width="80" />
+ <el-table-column prop="patternHeight" align="center" :label="$t('basicData.height')" min-width="80" />
+ <el-table-column prop="filmsId" align="center" :label="$t('basicData.coatingtypes')" min-width="80" />
+ <el-table-column prop="number" align="center" :label="$t('basicData.quantity')" min-width="80" />
+ <el-table-column fixed="right" :label="$t('basicData.operate')" align="center" width="150">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">{{ $t('basicData.add') }}</el-button>
+ <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">{{ $t('basicData.delete') }}</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+
+ <el-dialog v-model="add" top="23vh" width="45%" :title="$t('basicData.addglass')" >
<div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
<el-form size="mini" label-width="150px">
<el-form label-width="70px" label-position="right">
@@ -321,15 +705,44 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="闀匡細" :required="true" style="width: 14vw">
- <el-input autocomplete="off" />
- </el-form-item></div></div>
+ <el-form-item :label="$t('basicData.widtha')" :required="true" style="width: 14vw">
+ <el-select
+ v-model="selectedValue"
+ filterable
+ clearable
+ :placeholder="$t('basicData.selectwidth')"
+ 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 autocomplete="off" />
+ <el-form-item :label="$t('basicData.heighta')" :required="true" style="width: 14vw">
+ <el-select
+ v-model="selectedValuea"
+ filterable
+ clearable
+ :placeholder="$t('basicData.selectheight')"
+ 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>
@@ -338,15 +751,44 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw;">
- <el-input autocomplete="off" />
+ <el-form-item :label="$t('basicData.coatingtypesa')" :required="true" style="width: 14vw;">
+ <el-select
+ v-model="selectedValueb"
+ filterable
+ clearable
+ :placeholder="$t('basicData.selectcoatingtypes')"
+ 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 autocomplete="off" />
+ <el-form-item :label="$t('basicData.thicknessa')" :required="true" style="width: 14vw">
+ <el-select
+ v-model="selectedValuec"
+ filterable
+ clearable
+ :placeholder="$t('basicData.selectthickness')"
+ 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>
@@ -354,8 +796,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鏁伴噺锛�" :required="true" style="width: 14vw;">
- <el-input autocomplete="off" />
+ <el-form-item :label="$t('basicData.quantitya')" :required="true" style="width: 14vw;">
+ <el-input :placeholder="$t('basicData.selectquantity')" v-model="number" autocomplete="off" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -364,75 +806,57 @@
</div>
<template #footer>
<div id="dialog-footer">
- <el-button type="primary" @click="getTableRow('edit')">
- 纭
+ <el-button type="primary" @click="handleConfirm">
+ {{ $t('basicData.confirm') }}
</el-button>
- <el-button @click="add = false">鍙栨秷</el-button>
+ <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
</div>
</template>
</el-dialog>
- <el-dialog v-model="adda" top="23vh" width="45%" title="娣诲姞鍘熺墖" >
- <div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
- <el-form size="mini" >
- <el-form label-width="70px" label-position="right">
- <el-row style="margin-top: -15px;margin-bottom: -2px;">
- <el-col :span="6">
- <div id="dt" style="font-size: 15px;">
- <div>
- <el-form-item label="闀匡細" :required="true" style="width: 14vw">
- <el-input autocomplete="off" style="width: 180px" />
- </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 autocomplete="off" style="width: 180px" />
- </el-form-item></div>
- </div>
- </el-col>
- </el-row>
- <el-row style="margin-top: 10px;">
- <el-col :span="6">
- <div id="dt" style="font-size: 15px;">
- <div>
- <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw;">
- <el-input autocomplete="off" style="width: 180px" />
- </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 autocomplete="off" style="width: 180px" />
- </el-form-item></div></div>
- </el-col>
- </el-row>
- <el-row style="margin-top: 10px;">
- <el-col :span="6">
- <div id="dt" style="font-size: 15px;">
- <div>
- <el-form-item label="鏁伴噺锛�" :required="true" style="width: 14vw;">
- <el-input autocomplete="off" style="width: 180px" />
- </el-form-item></div></div>
- </el-col>
- </el-row>
- </el-form>
- </el-form>
+ <el-dialog v-model="adda" top="30vh" width="25%" :title="$t('basicData.deletemessage')">
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handleConfirma">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="adda = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ </div>
+ <el-dialog v-model="dialogFormVisible" top="24vh" width="30%" :title="$t('basicData.project')" >
+ <div style="margin-left: 50px;margin-bottom: 10px;">
+ <el-form-item :label="$t('basicData.projectnumber')" :required="true">
+ <el-select
+ v-model="selectedProjectNo"
+ filterable
+ clearable
+ :placeholder="$t('basicData.plselectproject')"
+ style="width: 220px"
+ @input="handleInputChange"
+ >
+ <el-option
+ v-for="item in titleSelectJson['processType']"
+ :key="item.id"
+ :label="item.projectNo"
+ :value="item.projectNo"
+ />
+ </el-select>
+ </el-form-item>
</div>
<template #footer>
<div id="dialog-footer">
- <el-button type="primary" @click="adda = false">
- 纭
+ <el-button type="primary" @click="handleup">
+ {{ $t('basicData.confirm') }}
</el-button>
- <el-button @click="adda = false">鍙栨秷</el-button>
+ <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
</div>
</template>
</el-dialog>
</template>
-
+
<style scoped>
-
+
#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
#dta { display:block; float:left;line-height: 20px;margin-left: 80%;}
#dialog-footer{
@@ -444,11 +868,12 @@
margin-left: 20px;
size: 50px;
margin-top: 20px;
- margin-bottom: 20px;
+ margin-bottom: 10px;
}
#parent{
position: relative;
width: 1500px;
+ margin-left: -300px
}
#overlay{
position: absolute;
@@ -456,8 +881,8 @@
width: 212px;
height: 15px;
background-color: #529b2e;
- margin-top: -407px;
- margin-left: 171px;
+ margin-top: -404px;
+ margin-left: 542px;
}
#overlaya{
position: absolute;
@@ -465,7 +890,8 @@
width: 212px;
height: 15px;
background-color: #529b2e;
- margin-top: -40px;
- margin-left: 167px;
+ margin-top: -38px;
+ margin-left: 537px;
}
+
</style>
\ No newline at end of file
--
Gitblit v1.8.0