From 4bb7014c00b3e6cca7bf049808dfedf418c020c2 Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期六, 12 十月 2024 14:21:35 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
---
UI-Project/src/views/Returns/upreturns.vue | 1093 +++++++++++++++++++++++++++++++++++++++++++++++
UI-Project/src/views/Returns/returns.vue | 12
UI-Project/src/lang/zh.js | 4
UI-Project/src/router/index.js | 26
UI-Project/src/views/Returns/return.vue | 49 ++
UI-Project/package-lock.json | 28
UI-Project/package.json | 2
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 2
UI-Project/src/views/NewPage.vue | 150 ++++++
9 files changed, 1,340 insertions(+), 26 deletions(-)
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index 1762ec0..352bc93 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -26,7 +26,7 @@
"vue-echarts": "^6.7.3",
"vue-i18n": "^9.10.1",
"vue-print-nb": "^1.7.5",
- "vue-router": "^4.2.4",
+ "vue-router": "^4.0.13",
"vue3-print-nb": "^0.1.4",
"vxe-table": "^4.5.15",
"xe-utils": "^3.5.14",
@@ -2036,11 +2036,11 @@
}
},
"node_modules/vue-router": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
- "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
+ "version": "4.0.13",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.13.tgz",
+ "integrity": "sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==",
"dependencies": {
- "@vue/devtools-api": "^6.5.0"
+ "@vue/devtools-api": "^6.0.0"
},
"funding": {
"url": "https://github.com/sponsors/posva"
@@ -3154,7 +3154,7 @@
"vue-echarts": "^6.7.3",
"vue-i18n": "^9.10.1",
"vue-print-nb": "^1.7.5",
- "vue-router": "^4.2.4",
+ "vue-router": "4.0.13",
"vue3-print-nb": "^0.1.4",
"vxe-table": "^4.5.15",
"xe-utils": "^3.5.14",
@@ -4536,11 +4536,11 @@
}
},
"vue-router": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
- "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
+ "version": "4.0.13",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.13.tgz",
+ "integrity": "sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==",
"requires": {
- "@vue/devtools-api": "^6.5.0"
+ "@vue/devtools-api": "^6.0.0"
}
},
"vue3-print-nb": {
@@ -5093,11 +5093,11 @@
}
},
"vue-router": {
- "version": "4.2.5",
- "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.2.5.tgz",
- "integrity": "sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==",
+ "version": "4.0.13",
+ "resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.0.13.tgz",
+ "integrity": "sha512-LmXrC+BkDRLak+d5xTMgUYraT3Nj0H/vCbP+7usGvIl9Viqd1UP6AsP0i69pSbn9O0dXK/xCdp4yPw21HqV9Jw==",
"requires": {
- "@vue/devtools-api": "^6.5.0"
+ "@vue/devtools-api": "^6.0.0"
}
},
"vue3-print-nb": {
diff --git a/UI-Project/package.json b/UI-Project/package.json
index c08443f..67c31f5 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -26,7 +26,7 @@
"vue-echarts": "^6.7.3",
"vue-i18n": "^9.10.1",
"vue-print-nb": "^1.7.5",
- "vue-router": "^4.2.4",
+ "vue-router": "^4.0.13",
"vue3-print-nb": "^0.1.4",
"vxe-table": "^4.5.15",
"xe-utils": "^3.5.14",
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
index d1de9eb..bd3eed4 100644
--- a/UI-Project/src/lang/zh.js
+++ b/UI-Project/src/lang/zh.js
@@ -563,4 +563,8 @@
inquire :'鏌ヨ',
station :'宸ヤ綅',
},
+ Mounting:{
+ previewproject :'閫夋嫨棰勮宸ョ▼',
+
+ }
}
\ No newline at end of file
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index f492054..b62dc2c 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -3,7 +3,6 @@
// import User from '../views/sys/User.vue'
// import Role from '../views/sys/Role.vue'
// import Menu from '../views/sys/Menu.vue'
-
const router = createRouter({
history: createWebHashHistory(),
routes: [
@@ -17,6 +16,11 @@
path: '/login',
name: 'login',
component: () => import('../views/LoginView.vue')
+ },
+ {
+ path: '/new-page', // 鏂板鐨勬棤闇�鐧诲綍鐨勯〉闈�
+ name: 'newPage',
+ component: () => import('../views/NewPage.vue')
},
{
path: '/main',
@@ -68,13 +72,18 @@
/*----------- 涓婄墖鏈� ----------------*/
{
path: 'Returns',
- name: 'Returns',
- component: () => import('../views/Returns/returns.vue'),
+ name: 'return',
+ component: () => import('../views/Returns/return.vue'),
children:[
{
path: '/Returns/returns',
name: 'returns',
component: () => import('../views/Returns/returns.vue')
+ },
+ {
+ path: '/Returns/upreturns',
+ name: 'upreturns',
+ component: () => import('../views/Returns/upreturns.vue')
},
]
},
@@ -302,7 +311,7 @@
},
{
path: '',
- redirect: '/returns/returns'
+ redirect: '/Returns/returns'
}
]
},
@@ -315,4 +324,13 @@
]
})
+// 瀵艰埅瀹堝崼
+router.beforeEach((to, from, next) => {
+ const isAuthenticated = !!localStorage.getItem('authToken'); // 鍋囪杩欐槸浣犵殑鐧诲綍鐘舵�佹鏌ラ�昏緫
+ if (to.matched.some(record => record.meta.requiresAuth) && !isAuthenticated) {
+ next({ name: 'login' }); // 濡傛灉闇�瑕佺櫥褰曚絾鏈櫥褰曪紝鍒欓噸瀹氬悜鍒扮櫥褰曢〉闈�
+ } else {
+ next(); // 鍚﹀垯缁х画瀵艰埅
+ }
+});
export default router
diff --git a/UI-Project/src/views/NewPage.vue b/UI-Project/src/views/NewPage.vue
new file mode 100644
index 0000000..4838c96
--- /dev/null
+++ b/UI-Project/src/views/NewPage.vue
@@ -0,0 +1,150 @@
+<template>
+ <div>
+ <div style="display: flex;">
+ <div style="margin-left: 50px;margin-top: 15px;font-size:large">宸ョ▼鍙�:</div>
+<el-input v-model="current" style="margin-left: 20px;margin-top: 15px;width: 240px" placeholder="璇疯緭鍏ュ伐绋嬪彿" @input="updateUrl"/>
+ <el-button style="margin-top: 15px;margin-left: 15px;" type="primary" @click="fetchData">鏌ヨ</el-button>
+ </div>
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 20px;margin-right: 10px;width: 1850px;" height="900" v-loading="loading">
+ <div v-for="(row, rowIndex) in divsData" :key="rowIndex" class="row">
+ <div v-for="(rect, colIndex) in row" :key="colIndex" class="div-container">
+ <el-scrollbar height="430px" width="900px" style="background-color: #e9e9eb;">
+ <div style="position: relative;width: 100%;height: 100%;">
+ <div
+ v-for="(rect, index) in getAdjustedRectsForRow(rowIndex)"
+ :key="index"
+ class="rect"
+ :style="{ position: 'absolute',
+ top: `${rect.y_axis}px`,
+ left: `${rect.x_axis}px`,
+ width: `${rect.width}px`,
+ height: `${rect.height}px`,
+ backgroundColor: '#911005'}">
+ <div class="centered-text">
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.process_id }}</div>
+ <div style="font-size: 15px;font-weight: bold;">{{ rect.project_no }}</div>
+ <div style="font-size: 30px;font-weight: bold;">{{ rect.widtha }}*{{ rect.heighta }}</div>
+ </div>
+ </div>
+ </div>
+ </el-scrollbar>
+ </div>
+ </div>
+ </el-card>
+ </div>
+ </template>
+
+ <script setup>
+ import { ref, onMounted, watch, watchEffect } from 'vue';
+ import { useRoute, useRouter } from 'vue-router';
+ import request from "@/utils/request"
+ const route = useRoute();
+ const router = useRouter();
+ const current = ref(route.query.current || '');
+ const adjustedRects = ref([]);
+ const loading = ref(false);
+ const adjustedRectsPerRow = ref([]);
+ const divsData = ref([]);
+ const rawData = ref([]);
+ onMounted(() => {
+ if (route.query.current) {
+ current.value = route.query.current;
+ console.log(current.value);
+ window.localStorage.setItem('current', current.value)
+ }
+ });
+ onMounted(async () => {
+ try {
+ let current = window.localStorage.getItem('current')
+ const response = await request.post(`/cacheGlass/taskCache/temperingTerritory?current=${current}`);
+ if (response.code === 200) {
+ rawData.value = response.data;
+ console.log(rawData.value);
+ processData(rawData.value);
+ } else {
+ // ElMessage.warning(res.msg)
+ }
+ } catch (error) {
+ // console.error('Error fetching rects :', error);
+ }
+ });
+ watch(
+ current,
+ (newVal) => {
+ router.replace({ query: { current: newVal } });
+ },
+ { immediate: true } // 浣跨敤 immediate: true 鏉ョ‘淇濆湪缁勪欢鎸傝浇鏃剁珛鍗虫墽琛屼竴娆� watch 鍥炶皟
+ );
+ const fetchData = async () => {
+ try {
+ const response = await request.post(`/cacheGlass/taskCache/temperingTerritory?current=${current.value}`);
+ if (response.code === 200) {
+ rawData.value = response.data;
+ console.log(rawData.value);
+ processData(rawData.value);
+ }
+ } catch (error) {
+ console.error('Failed to fetch data:', error);
+ } finally {
+ loading.value = false;
+ }
+};
+ function processData(data) {
+ const groupedData = [];
+ for (let i = 0; i < data.length; i += 2) {
+ groupedData.push(data.slice(i, i + 2));
+ }
+ divsData.value = groupedData;
+adjustedRectsPerRow.value = divsData.value.map(() => []);
+ divsData.value.forEach((row, rowIndex) => {
+ const rawRowData = rawData.value[rowIndex];
+ if (rawRowData) {
+adjustedRectsPerRow.value[rowIndex] = rawRowData.map(rect => {
+ let adjustedWidth, adjustedHeight,newX;
+ if (rect.rotate_angle === 0) {
+ newX = rect.olHeight -(rect.y_axis + rect.height);
+ adjustedWidth = rect.height * (900/rect.olHeight);
+ adjustedHeight = rect.width * (430/rect.olWidth);
+ } else {
+ newX = rect.olHeight -(rect.y_axis + rect.width);
+ adjustedWidth = rect.width * (900/rect.olHeight);
+ adjustedHeight = rect.height * (430/rect.olWidth);
+ }
+ let adjustedRect = {
+ ...rect,
+ // x_axis: rect.y_axis * (959.35/rect.olHeight),
+ y_axis: rect.x_axis * (430/rect.olWidth),
+ x_axis: newX * (900/rect.olHeight),
+ // y_axis: rect.x_axis * (430/rect.olWidth),
+ width: adjustedWidth,
+ height: adjustedHeight,
+ widtha: rect.width,
+ heighta: rect.height,
+ };
+ return adjustedRect;
+ });
+ }
+ });
+}
+// 鏂规硶鐢ㄤ簬鑾峰彇褰撳墠琛岀殑adjustedRects
+function getAdjustedRectsForRow(rowIndex) {
+ return adjustedRectsPerRow.value[rowIndex] || [];
+}
+ </script>
+
+
+ <style scoped>
+.row {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 20px;
+}
+
+.div-container {
+ width: 900px;
+ float: left;
+ background-color: #f4f4f5;
+ height: 430px;
+ box-sizing: border-box;
+}
+ </style>
\ No newline at end of file
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index d875780..f6b504c 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -272,7 +272,7 @@
widtha = rect.width;
heighta = rect.height;
}
- if (rect.angle === 0) {
+ if (rect.angle === 0) {
adjustedWidth = widtha * scaleFactor;
adjustedHeight = heighta * scaleFactory;
// adjustedWidtha = widtha;
diff --git a/UI-Project/src/views/Returns/return.vue b/UI-Project/src/views/Returns/return.vue
new file mode 100644
index 0000000..d0567d3
--- /dev/null
+++ b/UI-Project/src/views/Returns/return.vue
@@ -0,0 +1,49 @@
+<script setup>
+import {ArrowLeftBold, ArrowRight, Search} from "@element-plus/icons-vue"
+import {useRouter} from "vue-router";
+let indexFlag=$ref(1)
+function changeRouter(index){
+ indexFlag=index
+}
+
+</script>
+
+<template>
+ <!-- <div id="main-div"> -->
+
+
+ <div id="main-body">
+ <router-view />
+ </div>
+ <!-- </div> -->
+</template>
+
+<style scoped>
+#main-div{
+ width: 100%;
+ height: 100%;
+}
+#div-title{
+ height: 2%;
+ width: 100%;
+}
+#searchButton{
+ margin-top: -5px;
+ margin-left: 1rem;
+}
+/* #searchButton1{
+//margin-left: 10rem;
+} */
+/*main-body鏍峰紡*/
+#main-body{
+ width: 100%;
+ height: 95%;
+ /* margin-top: 1%; */
+}
+#select{
+ margin-left:0.5rem;
+}
+:deep(.indexTag .el-breadcrumb__inner){
+ color: #5CADFE !important;
+}
+</style>
\ No newline at end of file
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index c5ffe12..91bf66f 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -228,10 +228,10 @@
const requestData = {
state: 100
};
-
-
-
-
+
+
+
+
const selectgong = async (queryString: string) => {
try {
const response = await request.post('/loadGlass/optimizeProject/listByState',{
@@ -559,7 +559,7 @@
// window.location.reload()
blindb.value = false;
tableData.splice([]);
-
+
// 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
ElMessage.error(response.message);
}
@@ -613,7 +613,7 @@
const handleBindb = (row) => {
blindb.value = true;
};
-
+
// 鍒犻櫎
const handleBindRacka = (row) => {
workstationId.value = row.workstationId;
diff --git a/UI-Project/src/views/Returns/upreturns.vue b/UI-Project/src/views/Returns/upreturns.vue
new file mode 100644
index 0000000..fe1b544
--- /dev/null
+++ b/UI-Project/src/views/Returns/upreturns.vue
@@ -0,0 +1,1093 @@
+<script lang="ts" setup>
+import {Search} from "@element-plus/icons-vue";
+import {reactive} from "vue";
+import {useRouter} from "vue-router"
+const router = useRouter()
+import type { TableColumnCtx } from 'element-plus'
+import { ElMessage, ElMessageBox } from 'element-plus'
+import { useI18n } from 'vue-i18n'
+const { t } = useI18n()
+const selectValuesa = reactive([]);
+
+
+
+
+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 flake = ref(false)
+const flakea = ref(false)
+const flakeb = ref(false)
+const flakec = ref(false)
+const dialoglea = ref(false)
+const tableDatax = ref([])
+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 canSelectProject = ref(true);
+const canStartLoading = ref(false);
+import { WebSocketHost ,host} from '@/utils/constants'
+import request from "@/utils/request"
+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 {
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊璇锋眰澶辫触鐨勬儏鍐�
+ // ElMessage.error('鑾峰彇琛ㄦ牸鏁版嵁澶辫触锛岃閲嶈瘯');
+ }
+};
+const handlezhiban = () => {
+ dialoglea.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+ fetchFlowCardId();
+};
+const selectproject = () => {
+ dialogFormVisible.value = true;
+ selectgong();
+};
+// 鍊肩彮淇℃伅
+const fetchFlowCardId = async () => {
+ try {
+ const response = await request.post('/loadGlass/work_assignment/selectWorkAssignment',{
+ line: 2001,
+ workingProcedure : '鍐峰姞宸�'
+ })
+ if (response.code == 200) {
+ ElMessage.success(response.message);
+ tableDatax.value = response.data;
+ console.log(tableDatax.value);
+ console
+ } else {
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+const handleConfirmb = async () => {
+ const response = await request.post("/loadGlass/work_assignment/updateWorkAssignment", tableDatax.value)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ dialoglea.value = false;
+ } else {
+ ElMessage.error(response.message);
+ }
+};
+onMounted(() => {
+ list('');
+ fetchOptions('');
+ socket = initializeWebSocket(socketUrl, handleMessage);
+});
+ onUnmounted(() => {
+ if (socket) {
+ closeWebSocket(socket);
+ }
+ });
+const list = async () => {
+ try {
+ const response = await request.get('/loadGlass/LoadGlass/list');
+ if (response.code == 200) {
+ tableDataa.value = response.data
+ if (tableDataa.value.length === 4) {
+ if (tableDataa.value[0].patternHeight > 0 && tableDataa.value[0].patternWidth > 0 && tableDataa.value[0].number > 0) {
+ flake.value = true;
+ }
+ if (tableDataa.value[1].patternHeight > 0 && tableDataa.value[1].patternWidth > 0 && tableDataa.value[1].number > 0) {
+ flakea.value = true;
+ }
+ if (tableDataa.value[2].patternHeight > 0 && tableDataa.value[2].patternWidth > 0 && tableDataa.value[2].number > 0) {
+ flakeb.value = true;
+ }
+ if (tableDataa.value[3].patternHeight > 0 && tableDataa.value[3].patternWidth > 0 && tableDataa.value[3].number > 0) {
+ flakec.value = true;
+ }
+ }
+ } else {
+ ElMessage.warning(response.data);
+ }
+ } catch (error) {
+ console.error('Error fetching options:', error);
+ }
+};
+// 鍋囪杩欐槸鎮ㄧ殑鍝嶅簲澶勭悊鍑芥暟
+// request.get("/loadGlass/LoadGlass/list").then((res) => {
+// if (res.code == 200) {
+// tableDataa.value = res.data
+// if (tableDataa.value.length === 4) {
+// if (tableDataa.value[0].patternHeight > 0) {
+// flake.value = true;
+// }
+// if (tableDataa.value[1].patternHeight > 0) {
+// flakea.value = true;
+// }
+// if (tableDataa.value[2].patternHeight > 0) {
+// flakeb.value = true;
+// }
+// if (tableDataa.value[3].patternHeight > 0) {
+// flakec.value = true;
+// }
+// }
+// } else {
+// ElMessage.warning(res.message)
+// // router.push("/login")
+// }
+// });
+//瀹氫箟鎺ユ敹鍔犺浇琛ㄥご涓嬫媺鏁版嵁
+const titleSelectJson = ref({
+ processType: [],
+})
+const titleSelectJsona = ref({
+ processTypea: [],
+})
+let socket = null;
+const socketUrl = `ws://${WebSocketHost}:${host}/api/loadGlass/api/talk/loadGlass`;
+// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
+const handleMessage = (data) => {
+ if(data.prioritylist!=null){
+ tableData.splice(0, tableData.length, ...data.prioritylist[0]);
+ }
+ if(data.list!=null){
+ tableDataa.value = data.list[0]
+ }
+ if(data.engineering ){
+ if ( Array.isArray(data.engineering) && data.engineering.length !== 0) {
+ canSelectProject.value = false;
+ canStartLoading.value = true;
+ }else{
+ canSelectProject.value = true;
+ canStartLoading.value = false;
+ }
+}
+if (data.InkageStatus) {
+if(data.InkageStatus!=null){
+ 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;
+}
+}
+};
+const requestData = {
+ state: 100
+};
+
+
+
+
+const selectgong = async (queryString: string) => {
+ try {
+ const response = await request.post('/loadGlass/optimizeProject/listByState',{
+ ...requestData,
+ query: queryString
+ })
+ if (response.code == 200) {
+ titleSelectJson.value.processType = response.data;
+ } else {
+ ElMessage.error(response.message);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+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 = []; // 娓呯┖閫夐」鍒楄〃
+ }
+};
+onBeforeUnmount(() => {
+ closeWebSocket();
+});
+// 娣诲姞
+const handleBindRack = (row) => {
+ workstationId.value = row.workstationId; // 鍋囪rackNumber鏄灦鍙峰瓧娈电殑灞炴�у悕
+ ida.value = row.id;
+ add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
+};
+// 娣诲姞
+ const handleConfirm = async () => {
+ // console.log('id.value:', id.value);
+ if ((ida.value === 2 || ida.value === 4) && (parseInt(selectedValuea.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
+ });
+ // window.localStorage.setItem('workstationId', workstationId.value)
+ // window.localStorage.setItem('patternHeight', selectedValuea.value)
+ // window.localStorage.setItem('patternWidth', selectedValue.value)
+ // window.localStorage.setItem('number', number.value)
+ if (response.code == 200) {
+ // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+ ElMessage.success(response.message);
+ // window.location.reload()
+ add.value = false;
+ tableDataa.value = response.data;
+ // let workstationId = window.localStorage.getItem('workstationId')
+ // let patternHeight = window.localStorage.getItem('patternHeight')
+ // let patternWidth = window.localStorage.getItem('patternWidth')
+ // let number = window.localStorage.getItem('number')
+ if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') {
+ flake.value = true
+ } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '2'){
+ flakea.value = true
+ }else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '3'){
+ flakeb.value = true
+ }else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '4'){
+ flakec.value = true
+ }
+ // if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '1') {
+ // flake.value = true
+ // } else if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '2'){
+ // flakea.value = true
+ // }else if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '3'){
+ // flakeb.value = true
+ // }else if (patternHeight !== '0' && patternWidth !== '0' && number !== '0' && workstationId === '4'){
+ // flakec.value = true
+ // }
+ selectedValuea.value = '';
+ selectedValue.value = '';
+ selectedValueb.value = '';
+ selectedValuec.value = '';
+ number.value = '';
+ list()
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊璇锋眰閿欒
+ }
+ }
+ 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;
+ if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '1') {
+ flake.value = true
+ } else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '2'){
+ flakea.value = true
+ }else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '3'){
+ flakeb.value = true
+ }else if (selectedValuea.value !== '0' && selectedValue.value !== '0' && number.value !== '0' && workstationId.value === '4'){
+ flakec.value = true
+ }
+ selectedValuea.value = '';
+ selectedValue.value = '';
+ selectedValueb.value = '';
+ selectedValuec.value = '';
+ number.value = '';
+ list()
+ } else {
+ // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+ ElMessage.error(response.message);
+ }
+ } catch (error) {
+ // 澶勭悊璇锋眰閿欒
+ }
+ }
+ else {
+ ElMessage({
+ type: 'info',
+ 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.value == '1') {
+ flake.value = false
+ } else if (workstationId.value == '2'){
+ flakea.value = false
+ }else if (workstationId.value == '3'){
+ flakeb.value = false
+ }else if (workstationId.value == '4'){
+ flakec.value = false
+ }
+ list()
+ } 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,
+ label: width,
+ }));
+ 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);
+ }
+}
+catch (error) {
+ // 澶勭悊閿欒
+ console.error(error);
+ }
+}
+// 寮�濮嬩笂鐗�
+const handle = async () => {
+ if (markingMachineStatus.value === 'green' && cuttingMachineStatus.value === 'green') {
+ try {
+ let engineeringId = window.localStorage.getItem('engineeringId')
+ 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);
+ }
+}
+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);
+ row.state = newState;
+ } 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.replace('<END>', '')); // 瑙f瀽娑堟伅涓篔SON
+// if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) {
+// if(data.InkageStatus!=null){
+// 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>{{ $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 :disabled="!canSelectProject" style="margin-top: 5px;margin-left: 15px;" type="primary" @click="selectproject">{{ $t('Mounting.previewproject') }}</el-button>
+ <el-button :disabled="!canSelectProject" :style="{ backgroundColor: canStartLoading ? 'green' : 'initial',color: canStartLoading ? 'white' : 'black', }" style="margin-top: 5px;margin-left: 20px;" @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="info" @click="handlezhiban">{{ $t('searchOrder.dutyinformation') }}</el-button>
+ <el-select v-model="selectValuesa[0]" clearable :placeholder="$t('film.taskstatus')" style="margin-top: 5px;margin-left: 20px;" >
+ <el-option :label="$t('film.built')" value="1"></el-option>
+ <el-option :label="$t('film.execution')" value="2"></el-option>
+ <el-option :label="$t('film.finish')" value="3"></el-option>
+ </el-select>
+ <el-select v-model="selectValuesa[1]" clearable :placeholder="$t('film.tasktype')" style="margin-top: 5px;margin-left: 20px;" >
+ <el-option :label="$t('film.stocke')" value="1"></el-option>
+ <el-option :label="$t('film.outbound')" value="2"></el-option>
+ <el-option :label="$t('film.dispatch')" value="3"></el-option>
+ </el-select>
+ <el-button type="primary" style="margin-left: 10px;" @click="selectReportData()">{{ $t('film.inquire') }}</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="350"
+ ref="table"
+ :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
+ :data="tableData"
+ >
+ <el-table-column prop="layoutSequence" :label="$t('basicData.layoutSequence')" width="100" align="center"/>
+ <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 :label="$t('basicData.quantity')" align="center">
+ <template #default="{ row }">
+ <!-- 杩欓噷鎬绘槸鏄剧ず 1 -->
+ <span>{{ 1 }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="thickness" :label="$t('basicData.thickness')" align="center"/>
+ <!-- <el-table-column
+ align="center"
+ label="鐘舵��"
+ min-width="80"
+ prop="state"
+ >
+ <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>
+ <el-dialog v-model="blind" top="30vh" width="25%" :title="$t('basicData.startfilm')">
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handle">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+
+<el-dialog v-model="dialoglea" top="15vh" width="70%" :title="$t('searchOrder.dutyinformation')">
+ <el-table ref="table" style="margin-top: 20px;height: 300px;"
+ :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="line" fixed align="center" :label="$t('searchOrder.line')"/>
+ <el-table-column prop="workProcesses" fixed align="center" :label="$t('searchOrder.process')" />
+ <el-table-column prop="teamsGroupsName" align="center" :label="$t('searchOrder.team')">
+ <template #default="{ row }">
+ <el-input v-model="row.teamsGroupsName" autocomplete="off" min-width="150"/>
+ </template>
+ </el-table-column>
+ <el-table-column prop="deviceName" align="center" :label="$t('searchOrder.basic')">
+ <template #default="{ row }">
+ <el-input v-model="row.deviceName" autocomplete="off" min-width="150"/>
+ </template>
+ </el-table-column>
+ </el-table>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handleConfirm">
+ {{ $t('searchOrder.add') }}
+ </el-button>
+ <el-button @click="dialoglea = false">{{ $t('searchOrder.cancel') }}</el-button>
+ </div>
+ </template>
+</el-dialog>
+ <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/shangpian.png" alt="" style="max-width: 40%;max-height: 40%;margin-top: 20px;margin-left: 340px;">
+ <div id="overlay" v-show="flake"></div>
+ <div id="overlaya" v-show="flakea"></div>
+ <div id="overlayb" v-show="flakeb"></div>
+ <div id="overlayc" v-show="flakec"></div>
+ </div>
+ <div style="margin-top: -300px;margin-left: 680px;">
+ <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">
+ <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="$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="$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>
+ </el-row>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <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="$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>
+ <el-row style="margin-top: 10px;">
+ <el-col :span="6">
+ <div id="dt" style="font-size: 15px;">
+ <div>
+ <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>
+ </el-form>
+ </el-form>
+ </div>
+ <template #footer>
+ <div id="dialog-footer">
+ <el-button type="primary" @click="handleConfirm">
+ {{ $t('basicData.confirm') }}
+ </el-button>
+ <el-button @click="add = false">{{ $t('basicData.cancel') }}</el-button>
+ </div>
+ </template>
+ </el-dialog>
+ <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="handleup">
+ {{ $t('basicData.confirm') }}
+ </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{
+ text-align: center;
+ margin-top: -15px;
+}
+#dotClass {
+ display: flex;
+ margin-left: 20px;
+ size: 50px;
+ margin-top: 20px;
+ margin-bottom: 10px;
+}
+#parent{
+ position: relative;
+ width: 1500px;
+ margin-left: -300px
+}
+#overlayb{
+ position: absolute;
+ z-index: 1;
+ width: 228px;
+ height: 16px;
+ background-color: #529b2e;
+ margin-top: -303px;
+ margin-left: 355px;
+}
+#overlayc{
+ position: absolute;
+ z-index: 1;
+ width: 228px;
+ height: 16px;
+ background-color: #529b2e;
+ margin-top: -303px;
+ margin-left:703px;
+}
+#overlay{
+ position: absolute;
+ z-index: 1;
+ width: 228px;
+ height: 16px;
+ background-color: #529b2e;
+ margin-top: -45px;
+ margin-left: 355px;
+}
+#overlaya{
+ position: absolute;
+ z-index: 1;
+ width: 228px;
+ height: 16px;
+ background-color: #529b2e;
+ margin-top: -45px;
+ margin-left: 703px;
+}
+
+</style>
\ No newline at end of file
--
Gitblit v1.8.0