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/layout/MainErpView.vue | 182 ++
UI-Project/src/views/User/rolelist.vue | 88
UI-Project/src/views/Returns/returns.vue | 138 +
UI-Project/src/views/Identify/identify.vue | 21
UI-Project/src/views/Caching/cachingbefore.vue | 37
UI-Project/src/views/LoginView.vue | 41
UI-Project/src/views/UnLoadGlass/loadmachinerack.vue | 52
UI-Project/src/views/Caching/cachingun.vue | 172 +
UI-Project/auto-imports.d.ts | 9
UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue | 8
UI-Project/src/views/User/permissions.vue | 121 -
UI-Project/package.json | 8
UI-Project/src/views/User/userlist.vue | 79
UI-Project/src/views/RegisterView.vue | 66
UI-Project/src/views/StockBasicData/stockBasicData.vue | 53
UI-Project/src/views/UnLoadGlass/Landingindication.vue | 10
UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue | 51
UI-Project/src/lang/en.js | 302 ++++
UI-Project/src/lang/zh.js | 354 +++++
/dev/null | 72 -
UI-Project/src/views/Slicecage/slicecage.vue | 821 ++++++++---
UI-Project/src/views/PurchaseReturn/purchaseStorage.vue | 2
UI-Project/src/main.js | 10
UI-Project/src/router/index.js | 2
UI-Project/package-lock.json | 1346 +++++++++---------
UI-Project/src/lang/index.js | 18
UI-Project/src/views/PurchaseReturn/purchaseReturn.vue | 21
UI-Project/vite.config.js | 16
28 files changed, 2,552 insertions(+), 1,548 deletions(-)
diff --git a/UI-Project/auto-imports.d.ts b/UI-Project/auto-imports.d.ts
new file mode 100644
index 0000000..66c4de4
--- /dev/null
+++ b/UI-Project/auto-imports.d.ts
@@ -0,0 +1,9 @@
+/* eslint-disable */
+/* prettier-ignore */
+// @ts-nocheck
+// noinspection JSUnusedGlobalSymbols
+// Generated by unplugin-auto-import
+export {}
+declare global {
+ const useI18n: typeof import('vue-i18n')['useI18n']
+}
diff --git a/UI-Project/package-lock.json b/UI-Project/package-lock.json
index d94acf9..df7b41a 100644
--- a/UI-Project/package-lock.json
+++ b/UI-Project/package-lock.json
@@ -20,8 +20,8 @@
"sortablejs": "^1.15.1",
"sweetalert2": "^11.10.7",
"vue": "^3.3.4",
- "vue-echarts": "^6.7.3",
- "vue-i18n": "^9.13.1",
+ "vue-draggable-plus": "^0.5.0",
+ "vue-i18n": "^9.10.1",
"vue-router": "^4.2.4",
"vxe-table": "^4.5.15",
"xe-utils": "^3.5.14",
@@ -29,10 +29,19 @@
},
"devDependencies": {
"@types/sortablejs": "^1.15.7",
- "@vitejs/plugin-vue": "^4.3.4",
+ "@vitejs/plugin-vue": "^4.6.2",
"http-proxy-middleware": "^3.0.0",
- "sass": "^1.77.6",
+ "unplugin-auto-import": "^0.17.6",
"vite": "^4.4.9"
+ }
+ },
+ "node_modules/@antfu/utils": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz",
+ "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==",
+ "dev": true,
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
}
},
"node_modules/@babel/helper-string-parser": {
@@ -91,348 +100,12 @@
"vue": "^3.2.0"
}
},
- "node_modules/@esbuild/android-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
- "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
- "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/android-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
- "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
- "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/darwin-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
- "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
- "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/freebsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
- "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
- "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
- "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ia32": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
- "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
- "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-mips64el": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
- "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-ppc64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
- "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-riscv64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
- "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-s390x": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
- "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
- "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/netbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
- "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/openbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
- "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/sunos-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
- "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
- "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@esbuild/win32-ia32": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
"integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
"cpu": [
"ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/win32-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
- "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
- "cpu": [
- "x64"
],
"dev": true,
"optional": true,
@@ -507,6 +180,41 @@
"resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz",
"integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw=="
},
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
"node_modules/@popperjs/core": {
"name": "@sxzz/popperjs-es",
"version": "2.11.7",
@@ -518,9 +226,9 @@
}
},
"node_modules/@rollup/pluginutils": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz",
- "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
"dependencies": {
"@types/estree": "^1.0.0",
"estree-walker": "^2.0.2",
@@ -575,10 +283,9 @@
}
},
"node_modules/@types/sortablejs": {
- "version": "1.15.7",
- "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.7.tgz",
- "integrity": "sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==",
- "dev": true
+ "version": "1.15.8",
+ "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz",
+ "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg=="
},
"node_modules/@types/web-bluetooth": {
"version": "0.0.16",
@@ -586,15 +293,15 @@
"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
},
"node_modules/@vitejs/plugin-vue": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz",
- "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+ "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
"dev": true,
"engines": {
"node": "^14.18.0 || >=16.0.0"
},
"peerDependencies": {
- "vite": "^4.0.0",
+ "vite": "^4.0.0 || ^5.0.0",
"vue": "^3.2.25"
}
},
@@ -832,9 +539,9 @@
}
},
"node_modules/acorn": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
- "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
+ "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==",
"bin": {
"acorn": "bin/acorn"
},
@@ -852,7 +559,7 @@
},
"node_modules/anymatch": {
"version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"dependencies": {
"normalize-path": "^3.0.0",
@@ -895,12 +602,30 @@
"proxy-from-env": "^1.1.0"
}
},
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
"node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0"
}
},
"node_modules/braces": {
@@ -938,15 +663,9 @@
}
},
"node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -958,6 +677,9 @@
},
"engines": {
"node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
},
"optionalDependencies": {
"fsevents": "~2.3.2"
@@ -981,6 +703,12 @@
"engines": {
"node": ">= 0.8"
}
+ },
+ "node_modules/confbox": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz",
+ "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+ "dev": true
},
"node_modules/crc-32": {
"version": "1.2.2",
@@ -1109,6 +837,18 @@
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
+ "node_modules/escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true,
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
@@ -1119,6 +859,31 @@
"resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"dev": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
},
"node_modules/fill-range": {
"version": "7.0.1",
@@ -1165,19 +930,6 @@
"node": ">=0.8"
}
},
- "node_modules/fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
"node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
@@ -1220,15 +972,9 @@
"node": "^14.15.0 || ^16.10.0 || >=18.0.0"
}
},
- "node_modules/immutable": {
- "version": "4.3.6",
- "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz",
- "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==",
- "dev": true
- },
"node_modules/is-binary-path": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dependencies": {
"binary-extensions": "^2.0.0"
@@ -1273,6 +1019,12 @@
"node": ">=10"
}
},
+ "node_modules/js-tokens": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz",
+ "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
+ "dev": true
+ },
"node_modules/local-pkg": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
@@ -1305,14 +1057,11 @@
}
},
"node_modules/magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+ "version": "0.30.10",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz",
+ "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
"dependencies": {
"@jridgewell/sourcemap-codec": "^1.4.15"
- },
- "engines": {
- "node": ">=12"
}
},
"node_modules/magic-string-ast": {
@@ -1330,6 +1079,15 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
"integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
},
"node_modules/micromatch": {
"version": "4.0.5",
@@ -1361,6 +1119,33 @@
},
"engines": {
"node": ">= 0.6"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/mlly": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz",
+ "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==",
+ "dev": true,
+ "dependencies": {
+ "acorn": "^8.11.3",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.1.1",
+ "ufo": "^1.5.3"
}
},
"node_modules/moment": {
@@ -1396,7 +1181,7 @@
},
"node_modules/normalize-path": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"engines": {
"node": ">=0.10.0"
@@ -1408,9 +1193,9 @@
"integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
},
"node_modules/pathe": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
- "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q=="
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
},
"node_modules/picocolors": {
"version": "1.0.0",
@@ -1486,6 +1271,17 @@
}
}
},
+ "node_modules/pkg-types": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz",
+ "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
+ "dev": true,
+ "dependencies": {
+ "confbox": "^0.1.7",
+ "mlly": "^1.7.0",
+ "pathe": "^1.1.2"
+ }
+ },
"node_modules/postcss": {
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
@@ -1518,9 +1314,29 @@
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/readdirp": {
"version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dependencies": {
"picomatch": "^2.2.1"
@@ -1535,10 +1351,15 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true
},
- "node_modules/resize-detector": {
- "version": "0.3.0",
- "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz",
- "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
},
"node_modules/rollup": {
"version": "3.29.4",
@@ -1556,22 +1377,34 @@
"fsevents": "~2.3.2"
}
},
- "node_modules/sass": {
- "version": "1.77.6",
- "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz",
- "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
"dependencies": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
- },
- "bin": {
- "sass": "sass.js"
- },
- "engines": {
- "node": ">=14.0.0"
+ "queue-microtask": "^1.2.2"
}
+ },
+ "node_modules/scule": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz",
+ "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
+ "dev": true
},
"node_modules/sortablejs": {
"version": "1.15.1",
@@ -1595,6 +1428,18 @@
},
"engines": {
"node": ">=0.8"
+ }
+ },
+ "node_modules/strip-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz",
+ "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
+ "dev": true,
+ "dependencies": {
+ "js-tokens": "^9.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
}
},
"node_modules/sweetalert2": {
@@ -1626,21 +1471,126 @@
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
},
+ "node_modules/ufo": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz",
+ "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
+ "dev": true
+ },
"node_modules/undici-types": {
"version": "5.26.5",
"resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
"dev": true
},
- "node_modules/unplugin": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.5.0.tgz",
- "integrity": "sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==",
+ "node_modules/unimport": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.2.tgz",
+ "integrity": "sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==",
+ "dev": true,
"dependencies": {
- "acorn": "^8.10.0",
- "chokidar": "^3.5.3",
+ "@rollup/pluginutils": "^5.1.0",
+ "acorn": "^8.11.3",
+ "escape-string-regexp": "^5.0.0",
+ "estree-walker": "^3.0.3",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "mlly": "^1.7.0",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.1.1",
+ "scule": "^1.3.0",
+ "strip-literal": "^2.1.0",
+ "unplugin": "^1.10.1"
+ }
+ },
+ "node_modules/unimport/node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/unimport/node_modules/local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dev": true,
+ "dependencies": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ }
+ },
+ "node_modules/unplugin": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.10.1.tgz",
+ "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==",
+ "dependencies": {
+ "acorn": "^8.11.3",
+ "chokidar": "^3.6.0",
"webpack-sources": "^3.2.3",
- "webpack-virtual-modules": "^0.5.0"
+ "webpack-virtual-modules": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/unplugin-auto-import": {
+ "version": "0.17.6",
+ "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.6.tgz",
+ "integrity": "sha512-dmX0Pex5DzMzVuALkexboOZvh51fL/BD6aoPO7qHoTYGlQp0GRKsREv2KMF1lzYI9SXKQiRxAjwzbQnrFFNydQ==",
+ "dev": true,
+ "dependencies": {
+ "@antfu/utils": "^0.7.8",
+ "@rollup/pluginutils": "^5.1.0",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "minimatch": "^9.0.4",
+ "unimport": "^3.7.1",
+ "unplugin": "^1.10.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@nuxt/kit": "^3.2.2",
+ "@vueuse/core": "*"
+ },
+ "peerDependenciesMeta": {
+ "@nuxt/kit": {
+ "optional": true
+ },
+ "@vueuse/core": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/unplugin-auto-import/node_modules/local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dev": true,
+ "dependencies": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
}
},
"node_modules/vite": {
@@ -1710,48 +1660,15 @@
"@vue/shared": "3.3.4"
}
},
- "node_modules/vue-echarts": {
- "version": "6.7.3",
- "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz",
- "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==",
- "hasInstallScript": true,
+ "node_modules/vue-draggable-plus": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/vue-draggable-plus/-/vue-draggable-plus-0.5.0.tgz",
+ "integrity": "sha512-A5TT5+M5JceROSjPO9aDZTsrSN1TetEs419czPlboomarSiGIBIxTp2WD7XH53EHMrbO7Qo+leRiHWV/rMlyjA==",
"dependencies": {
- "resize-detector": "^0.3.0",
- "vue-demi": "^0.13.11"
+ "@types/sortablejs": "^1.15.8"
},
"peerDependencies": {
- "@vue/composition-api": "^1.0.5",
- "@vue/runtime-core": "^3.0.0",
- "echarts": "^5.4.1",
- "vue": "^2.6.12 || ^3.1.1"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- },
- "@vue/runtime-core": {
- "optional": true
- }
- }
- },
- "node_modules/vue-echarts/node_modules/vue-demi": {
- "version": "0.13.11",
- "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
- "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
- "hasInstallScript": true,
- "bin": {
- "vue-demi-fix": "bin/vue-demi-fix.js",
- "vue-demi-switch": "bin/vue-demi-switch.js"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.0-rc.1",
- "vue": "^3.0.0-0 || ^2.6.0"
+ "@types/sortablejs": "^1.15.0"
},
"peerDependenciesMeta": {
"@vue/composition-api": {
@@ -1770,6 +1687,9 @@
},
"engines": {
"node": ">= 16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/kazupon"
},
"peerDependencies": {
"vue": "^3.0.0"
@@ -1811,9 +1731,9 @@
}
},
"node_modules/webpack-virtual-modules": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz",
- "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw=="
+ "version": "0.6.2",
+ "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="
},
"node_modules/wmf": {
"version": "1.0.2",
@@ -1866,6 +1786,12 @@
}
},
"dependencies": {
+ "@antfu/utils": {
+ "version": "0.7.8",
+ "resolved": "https://registry.npmmirror.com/@antfu/utils/-/utils-0.7.8.tgz",
+ "integrity": "sha512-rWQkqXRESdjXtc+7NRfK9lASQjpXJu1ayp7qi1d23zZorY+wBHVLHHoVcMsEnkqEBWTFqbztO7/QdJFzyEcLTg==",
+ "dev": true
+ },
"@babel/helper-string-parser": {
"version": "7.22.5",
"resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz",
@@ -1902,157 +1828,10 @@
"integrity": "sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==",
"requires": {}
},
- "@esbuild/android-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz",
- "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==",
- "dev": true,
- "optional": true
- },
- "@esbuild/android-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz",
- "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/android-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz",
- "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==",
- "dev": true,
- "optional": true
- },
- "@esbuild/darwin-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz",
- "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/darwin-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz",
- "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/freebsd-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz",
- "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==",
- "dev": true,
- "optional": true
- },
- "@esbuild/freebsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz",
- "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-arm": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz",
- "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz",
- "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-ia32": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz",
- "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-loong64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz",
- "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-mips64el": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz",
- "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-ppc64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz",
- "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-riscv64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz",
- "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-s390x": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz",
- "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz",
- "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==",
- "dev": true,
- "optional": true
- },
- "@esbuild/netbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz",
- "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==",
- "dev": true,
- "optional": true
- },
- "@esbuild/openbsd-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz",
- "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==",
- "dev": true,
- "optional": true
- },
- "@esbuild/sunos-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz",
- "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/win32-arm64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz",
- "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==",
- "dev": true,
- "optional": true
- },
"@esbuild/win32-ia32": {
"version": "0.18.20",
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz",
"integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==",
- "dev": true,
- "optional": true
- },
- "@esbuild/win32-x64": {
- "version": "0.18.20",
- "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz",
- "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==",
"dev": true,
"optional": true
},
@@ -2111,15 +1890,41 @@
"resolved": "https://registry.npmmirror.com/@kurkle/color/-/color-0.3.2.tgz",
"integrity": "sha512-fuscdXJ9G1qb7W8VdHi+IwRqij3lBkosAm4ydQtEmbY58OzHXqQhvlxqEkoz0yssNVn38bcpRWgA9PP+OGoisw=="
},
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmmirror.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
"@popperjs/core": {
"version": "npm:@sxzz/popperjs-es@2.11.7",
"resolved": "https://registry.npmjs.org/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz",
"integrity": "sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ=="
},
"@rollup/pluginutils": {
- "version": "5.0.5",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.0.5.tgz",
- "integrity": "sha512-6aEYR910NyP73oHiJglti74iRyOwgFU4x3meH/H8OJx6Ry0j6cOVZ5X/wTvub7G7Ao6qaHBEaNsV3GLJkSsF+Q==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmmirror.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
+ "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
"requires": {
"@types/estree": "^1.0.0",
"estree-walker": "^2.0.2",
@@ -2163,10 +1968,9 @@
}
},
"@types/sortablejs": {
- "version": "1.15.7",
- "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.7.tgz",
- "integrity": "sha512-PvgWCx1Lbgm88FdQ6S7OGvLIjWS66mudKPlfdrWil0TjsO5zmoZmzoKiiwRShs1dwPgrlkr0N4ewuy0/+QUXYQ==",
- "dev": true
+ "version": "1.15.8",
+ "resolved": "https://registry.npmmirror.com/@types/sortablejs/-/sortablejs-1.15.8.tgz",
+ "integrity": "sha512-b79830lW+RZfwaztgs1aVPgbasJ8e7AXtZYHTELNXZPsERt4ymJdjV4OccDbHQAvHrCcFpbF78jkm0R6h/pZVg=="
},
"@types/web-bluetooth": {
"version": "0.0.16",
@@ -2174,9 +1978,9 @@
"integrity": "sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ=="
},
"@vitejs/plugin-vue": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz",
- "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-4.6.2.tgz",
+ "integrity": "sha512-kqf7SGFoG+80aZG6Pf+gsZIVvGSCKE98JbiWqcCV9cThtg91Jav0yvYFC9Zb+jKetNGF6ZKeoaxgZfND21fWKw==",
"dev": true,
"requires": {}
},
@@ -2351,9 +2155,9 @@
}
},
"acorn": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz",
- "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw=="
+ "version": "8.12.0",
+ "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.12.0.tgz",
+ "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw=="
},
"adler-32": {
"version": "1.3.1",
@@ -2362,7 +2166,7 @@
},
"anymatch": {
"version": "3.1.3",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "resolved": "https://registry.npmmirror.com/anymatch/-/anymatch-3.1.3.tgz",
"integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
"requires": {
"normalize-path": "^3.0.0",
@@ -2399,10 +2203,25 @@
"proxy-from-env": "^1.1.0"
}
},
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
"binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
+ "version": "2.3.0",
+ "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw=="
+ },
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
},
"braces": {
"version": "3.0.2",
@@ -2430,9 +2249,9 @@
}
},
"chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "version": "3.6.0",
+ "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -2456,6 +2275,12 @@
"requires": {
"delayed-stream": "~1.0.0"
}
+ },
+ "confbox": {
+ "version": "0.1.7",
+ "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.1.7.tgz",
+ "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==",
+ "dev": true
},
"crc-32": {
"version": "1.2.2",
@@ -2557,6 +2382,12 @@
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
+ "escape-string-regexp": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmmirror.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz",
+ "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==",
+ "dev": true
+ },
"estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
@@ -2567,6 +2398,28 @@
"resolved": "https://registry.npmmirror.com/eventemitter3/-/eventemitter3-4.0.7.tgz",
"integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
"dev": true
+ },
+ "fast-glob": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmmirror.com/fast-glob/-/fast-glob-3.3.2.tgz",
+ "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ }
+ },
+ "fastq": {
+ "version": "1.17.1",
+ "resolved": "https://registry.npmmirror.com/fastq/-/fastq-1.17.1.tgz",
+ "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
},
"fill-range": {
"version": "7.0.1",
@@ -2595,12 +2448,6 @@
"version": "1.1.2",
"resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
"integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
- },
- "fsevents": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
- "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
- "optional": true
},
"glob-parent": {
"version": "5.1.2",
@@ -2635,15 +2482,9 @@
"micromatch": "^4.0.5"
}
},
- "immutable": {
- "version": "4.3.6",
- "resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.6.tgz",
- "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==",
- "dev": true
- },
"is-binary-path": {
"version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"requires": {
"binary-extensions": "^2.0.0"
@@ -2673,6 +2514,12 @@
"integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
"dev": true
},
+ "js-tokens": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmmirror.com/js-tokens/-/js-tokens-9.0.0.tgz",
+ "integrity": "sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==",
+ "dev": true
+ },
"local-pkg": {
"version": "0.4.3",
"resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.4.3.tgz",
@@ -2695,9 +2542,9 @@
"requires": {}
},
"magic-string": {
- "version": "0.30.5",
- "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
- "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
+ "version": "0.30.10",
+ "resolved": "https://registry.npmmirror.com/magic-string/-/magic-string-0.30.10.tgz",
+ "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==",
"requires": {
"@jridgewell/sourcemap-codec": "^1.4.15"
}
@@ -2714,6 +2561,12 @@
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-6.0.0.tgz",
"integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw=="
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmmirror.com/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
},
"micromatch": {
"version": "4.0.5",
@@ -2738,6 +2591,27 @@
"mime-db": "1.52.0"
}
},
+ "minimatch": {
+ "version": "9.0.4",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-9.0.4.tgz",
+ "integrity": "sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ },
+ "mlly": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmmirror.com/mlly/-/mlly-1.7.1.tgz",
+ "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==",
+ "dev": true,
+ "requires": {
+ "acorn": "^8.11.3",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.1.1",
+ "ufo": "^1.5.3"
+ }
+ },
"moment": {
"version": "2.30.1",
"resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
@@ -2756,7 +2630,7 @@
},
"normalize-path": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz",
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"normalize-wheel-es": {
@@ -2765,9 +2639,9 @@
"integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw=="
},
"pathe": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.1.tgz",
- "integrity": "sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q=="
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ=="
},
"picocolors": {
"version": "1.0.0",
@@ -2802,6 +2676,17 @@
"integrity": "sha512-tZbNGf2vjAQcIm7alK40sE51Qu/m9oWr+rEgNm/2AWr1huFxj72CjvpQcIQzMknDBJEkQznCLAGtJTIcLKrKdw==",
"requires": {}
},
+ "pkg-types": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-1.1.1.tgz",
+ "integrity": "sha512-ko14TjmDuQJ14zsotODv7dBlwxKhUKQEhuhmbqo1uCi9BB0Z2alo/wAXg6q1dTR5TyuqYyWhjtfe/Tsh+X28jQ==",
+ "dev": true,
+ "requires": {
+ "confbox": "^0.1.7",
+ "mlly": "^1.7.0",
+ "pathe": "^1.1.2"
+ }
+ },
"postcss": {
"version": "8.4.31",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz",
@@ -2817,9 +2702,15 @@
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
},
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
"readdirp": {
"version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"requires": {
"picomatch": "^2.2.1"
@@ -2831,10 +2722,11 @@
"integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true
},
- "resize-detector": {
- "version": "0.3.0",
- "resolved": "https://registry.npmmirror.com/resize-detector/-/resize-detector-0.3.0.tgz",
- "integrity": "sha512-R/tCuvuOHQ8o2boRP6vgx8hXCCy87H1eY9V5imBYeVNyNVpuL9ciReSccLj2gDcax9+2weXy3bc8Vv+NRXeEvQ=="
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmmirror.com/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
},
"rollup": {
"version": "3.29.4",
@@ -2845,16 +2737,20 @@
"fsevents": "~2.3.2"
}
},
- "sass": {
- "version": "1.77.6",
- "resolved": "https://registry.npmmirror.com/sass/-/sass-1.77.6.tgz",
- "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==",
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmmirror.com/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
"dev": true,
"requires": {
- "chokidar": ">=3.0.0 <4.0.0",
- "immutable": "^4.0.0",
- "source-map-js": ">=0.6.2 <2.0.0"
+ "queue-microtask": "^1.2.2"
}
+ },
+ "scule": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz",
+ "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==",
+ "dev": true
},
"sortablejs": {
"version": "1.15.1",
@@ -2872,6 +2768,15 @@
"integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
"requires": {
"frac": "~1.1.2"
+ }
+ },
+ "strip-literal": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmmirror.com/strip-literal/-/strip-literal-2.1.0.tgz",
+ "integrity": "sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==",
+ "dev": true,
+ "requires": {
+ "js-tokens": "^9.0.0"
}
},
"sweetalert2": {
@@ -2897,21 +2802,97 @@
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
},
+ "ufo": {
+ "version": "1.5.3",
+ "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.5.3.tgz",
+ "integrity": "sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==",
+ "dev": true
+ },
"undici-types": {
"version": "5.26.5",
"resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-5.26.5.tgz",
"integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
"dev": true
},
- "unplugin": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-1.5.0.tgz",
- "integrity": "sha512-9ZdRwbh/4gcm1JTOkp9lAkIDrtOyOxgHmY7cjuwI8L/2RTikMcVG25GsZwNAgRuap3iDw2jeq7eoqtAsz5rW3A==",
+ "unimport": {
+ "version": "3.7.2",
+ "resolved": "https://registry.npmmirror.com/unimport/-/unimport-3.7.2.tgz",
+ "integrity": "sha512-91mxcZTadgXyj3lFWmrGT8GyoRHWuE5fqPOjg5RVtF6vj+OfM5G6WCzXjuYtSgELE5ggB34RY4oiCSEP8I3AHw==",
+ "dev": true,
"requires": {
- "acorn": "^8.10.0",
- "chokidar": "^3.5.3",
+ "@rollup/pluginutils": "^5.1.0",
+ "acorn": "^8.11.3",
+ "escape-string-regexp": "^5.0.0",
+ "estree-walker": "^3.0.3",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "mlly": "^1.7.0",
+ "pathe": "^1.1.2",
+ "pkg-types": "^1.1.1",
+ "scule": "^1.3.0",
+ "strip-literal": "^2.1.0",
+ "unplugin": "^1.10.1"
+ },
+ "dependencies": {
+ "estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dev": true,
+ "requires": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ }
+ }
+ }
+ },
+ "unplugin": {
+ "version": "1.10.1",
+ "resolved": "https://registry.npmmirror.com/unplugin/-/unplugin-1.10.1.tgz",
+ "integrity": "sha512-d6Mhq8RJeGA8UfKCu54Um4lFA0eSaRa3XxdAJg8tIdxbu1ubW0hBCZUL7yI2uGyYCRndvbK8FLHzqy2XKfeMsg==",
+ "requires": {
+ "acorn": "^8.11.3",
+ "chokidar": "^3.6.0",
"webpack-sources": "^3.2.3",
- "webpack-virtual-modules": "^0.5.0"
+ "webpack-virtual-modules": "^0.6.1"
+ }
+ },
+ "unplugin-auto-import": {
+ "version": "0.17.6",
+ "resolved": "https://registry.npmmirror.com/unplugin-auto-import/-/unplugin-auto-import-0.17.6.tgz",
+ "integrity": "sha512-dmX0Pex5DzMzVuALkexboOZvh51fL/BD6aoPO7qHoTYGlQp0GRKsREv2KMF1lzYI9SXKQiRxAjwzbQnrFFNydQ==",
+ "dev": true,
+ "requires": {
+ "@antfu/utils": "^0.7.8",
+ "@rollup/pluginutils": "^5.1.0",
+ "fast-glob": "^3.3.2",
+ "local-pkg": "^0.5.0",
+ "magic-string": "^0.30.10",
+ "minimatch": "^9.0.4",
+ "unimport": "^3.7.1",
+ "unplugin": "^1.10.1"
+ },
+ "dependencies": {
+ "local-pkg": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/local-pkg/-/local-pkg-0.5.0.tgz",
+ "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==",
+ "dev": true,
+ "requires": {
+ "mlly": "^1.4.2",
+ "pkg-types": "^1.0.3"
+ }
+ }
}
},
"vite": {
@@ -2938,21 +2919,12 @@
"@vue/shared": "3.3.4"
}
},
- "vue-echarts": {
- "version": "6.7.3",
- "resolved": "https://registry.npmmirror.com/vue-echarts/-/vue-echarts-6.7.3.tgz",
- "integrity": "sha512-vXLKpALFjbPphW9IfQPOVfb1KjGZ/f8qa/FZHi9lZIWzAnQC1DgnmEK3pJgEkyo6EP7UnX6Bv/V3Ke7p+qCNXA==",
+ "vue-draggable-plus": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmmirror.com/vue-draggable-plus/-/vue-draggable-plus-0.5.0.tgz",
+ "integrity": "sha512-A5TT5+M5JceROSjPO9aDZTsrSN1TetEs419czPlboomarSiGIBIxTp2WD7XH53EHMrbO7Qo+leRiHWV/rMlyjA==",
"requires": {
- "resize-detector": "^0.3.0",
- "vue-demi": "^0.13.11"
- },
- "dependencies": {
- "vue-demi": {
- "version": "0.13.11",
- "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.13.11.tgz",
- "integrity": "sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==",
- "requires": {}
- }
+ "@types/sortablejs": "^1.15.8"
}
},
"vue-i18n": {
@@ -2988,9 +2960,9 @@
"integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w=="
},
"webpack-virtual-modules": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/webpack-virtual-modules/-/webpack-virtual-modules-0.5.0.tgz",
- "integrity": "sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw=="
+ "version": "0.6.2",
+ "resolved": "https://registry.npmmirror.com/webpack-virtual-modules/-/webpack-virtual-modules-0.6.2.tgz",
+ "integrity": "sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ=="
},
"wmf": {
"version": "1.0.2",
diff --git a/UI-Project/package.json b/UI-Project/package.json
index 15242fb..7a586a0 100644
--- a/UI-Project/package.json
+++ b/UI-Project/package.json
@@ -20,8 +20,8 @@
"sortablejs": "^1.15.1",
"sweetalert2": "^11.10.7",
"vue": "^3.3.4",
- "vue-echarts": "^6.7.3",
- "vue-i18n": "^9.13.1",
+ "vue-draggable-plus": "^0.5.0",
+ "vue-i18n": "^9.10.1",
"vue-router": "^4.2.4",
"vxe-table": "^4.5.15",
"xe-utils": "^3.5.14",
@@ -29,9 +29,9 @@
},
"devDependencies": {
"@types/sortablejs": "^1.15.7",
- "@vitejs/plugin-vue": "^4.3.4",
+ "@vitejs/plugin-vue": "^4.6.2",
"http-proxy-middleware": "^3.0.0",
- "sass": "^1.77.6",
+ "unplugin-auto-import": "^0.17.6",
"vite": "^4.4.9"
}
}
diff --git a/UI-Project/src/lang/LanguageMixin.js b/UI-Project/src/lang/LanguageMixin.js
deleted file mode 100644
index 5a90328..0000000
--- a/UI-Project/src/lang/LanguageMixin.js
+++ /dev/null
@@ -1,14 +0,0 @@
-export default {
- created() {
- const localStorageLang = localStorage.getItem('preferredLanguage');
- if (localStorageLang) {
- this.$i18n.locale = localStorageLang;
- }
- },
- methods: {
- switchLanguage(lang) {
- this.$i18n.locale = lang;
- localStorage.setItem('preferredLanguage', lang);
- }
- }
-}
\ No newline at end of file
diff --git a/UI-Project/src/lang/en.js b/UI-Project/src/lang/en.js
new file mode 100644
index 0000000..d80a9be
--- /dev/null
+++ b/UI-Project/src/lang/en.js
@@ -0,0 +1,302 @@
+export default {
+ "northglassMESsystem": '小懈褋褌械屑邪 "NorthGlass MES"' ,
+ login:{
+ userErr:'袙胁械写懈褌械 薪芯屑械褉 褋褔械褌邪.',
+ pwErr:'袙胁械写懈褌械 锌邪褉芯谢褜.',
+ user:'袗泻泻邪褍薪褌',
+ password:'袣芯写',
+ login:'袟邪谢芯谐懈薪',
+ loginSuccessful:'袙褏芯写 胁 褋懈褋褌械屑褍 胁褘锌芯谢薪械薪 褍褋锌械褕薪芯锛�',
+ register:'袟邪褉械谐懈褋褌褉懈褉芯胁邪',
+ namea:'袠屑褟 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
+ len:'袛谢懈薪邪 薪械 写芯谢卸薪邪 锌褉械胁褘褕邪褌褜 16',
+ passnull:'袩邪褉芯谢褜 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
+ leng:'袛谢懈薪邪 锌邪褉芯谢褟 薪械 写芯谢卸薪邪 斜褘褌褜 屑械薪褜褕械 6 懈谢懈 斜芯谢褜褕械 16.',
+ spwn:'袩邪褉芯谢褜 锌芯写褌胁械褉卸写械薪懈褟 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑',
+ depass:'袛胁邪 褉邪蟹薪褘褏 锌邪褉芯谢褟.',
+ },
+ register:{
+ registerSuccessful:'袪械谐懈褋褌褉邪褑懈褟 褍褋锌械褕薪芯',
+ newuserregister:'袧芯胁褘泄 褉械械褋褌褉 锌芯谢褜蟹芯胁邪褌械谢械泄',
+ name:'袠屑褟锛�',
+ inputname:'袙胁械写懈褌械 懈屑褟',
+ password:'袣芯写:',
+ pwErr:'袙胁械写懈褌械 锌邪褉芯谢褜.',
+ passwordation:'袩芯写褌胁械褉写懈褌械 锌邪褉芯谢褜:',
+ pwErration:'袩芯卸邪谢褍泄褋褌邪, 锌芯写褌胁械褉褌懈褌械 锌邪褉芯谢褜',
+ registration:'袩芯写褌胁械褉卸写械薪懈械 芯 褉械谐懈褋褌褉邪褑懈懈',
+ false:'袨褌屑械薪邪',
+ },
+ main:{
+ connectErr:'袧械芯斜褘褔薪芯械 锌芯写泻谢褞褔械薪懈械 泻 褋械褉胁械褉褍, 锌芯锌褉芯斜褍泄褌械 锌芯蟹卸械',
+ titleFirst:"袛芯斜褉芯 锌芯卸邪谢芯胁邪褌褜 ",
+ titleLast:' 胁 褋懈褋褌械屑褍 NorthGlass MES锛�',
+ quit:"袙褘褏芯写",
+ },
+ basicData:{
+ deletemessage:'校写邪谢懈褌褜 褝褌褍 懈薪褎芯褉屑邪褑懈褞 懈谢懈 薪械褌?',
+ laserprinting:'袦邪褕懈薪邪 谢邪蟹械褉薪芯泄 屑邪褉泻懈褉芯胁泻懈 谐芯褌芯胁邪锛�',
+ cuttingmachine:'袦邪褕懈薪邪 写谢褟 褉械蟹泻懈 谐芯褌芯胁邪锛�',
+ machine:'小芯褋褌芯褟薪懈械 褋褌邪薪芯泻 蟹邪谐褉褍蟹泻懈 胁 褉械卸懈屑械 芯薪谢邪泄薪锛�',
+ machineaa:'袪褍褔薪芯械 褋芯褋褌芯褟薪懈械 褋褌邪薪芯泻 蟹邪谐褉褍蟹泻懈:',
+ selectproject:"袙褘斜械褉懈褌械 锌褉芯械泻褌",
+ startloading:'袧邪褔邪谢芯 蟹邪谐褉褍蟹泻懈',
+ stop:'袩邪褍蟹邪',
+ yes:'锌芯写褌胁械褉写',
+ change:'锌械褉械泻谢褞褔邪',
+ projectnumber:'袧芯屑械褉 锌褉芯械泻褌邪',
+ glasswidth:'楔懈褉懈薪邪 褋褌械泻谢邪',
+ glassheight:'袙褘褋芯褌邪 褋褌械泻谢邪',
+ coatingtypes:'孝懈锌褘 锌芯泻褉褘褌懈泄',
+ coatingtypesa:'孝懈锌褘 锌芯泻褉褘褌懈泄锛�',
+ quantity:'袣芯谢懈褔械褋褌胁芯',
+ quantitya:'袣芯谢懈褔械褋褌胁芯锛�',
+ thickness:'孝芯谢褖懈薪邪',
+ thicknessa:'孝芯谢褖懈薪邪锛�',
+ startstatus:'小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+ pass:'效械褉械蟹',
+ waiting:'袞写械屑.',
+ up:'袟邪谐褉褍蟹泻邪',
+ finish:'袟邪胁械褉褕械薪芯',
+ project:'懈薪卸械薪械褉懈褟',
+ plselectproject:'袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 锌褉芯械泻褌.',
+ confirm:'锌芯写褌胁械褉写',
+ cancel:'袨褌屑械薪邪',
+ startfilm:'袧邪褔懈薪邪褌褜 懈谢懈 薪械褌锛�',
+ whetherpause:'袩邪褍蟹邪 懈谢懈 薪械褌锛�',
+ station:'袪邪斜芯褔械械 屑械褋褌芯',
+ width:'楔懈褉懈薪邪',
+ widtha:'楔懈褉懈薪邪锛�',
+ height:'袙褘褋芯褌邪',
+ heighta:'袙褘褋芯褌邪锛�',
+ operate:'袨锌械褉邪褑懈褟',
+ add:'袛芯斜邪胁谢褟',
+ delete:'校写邪谢',
+ addglass:'袛芯斜邪胁懈褌褜 褋褌械泻谢芯',
+ selectwidth:'袙褘斜懈褉懈褌械 褕懈褉懈薪褍',
+ selectheight:'袙褘斜懈褉懈褌械 胁褘褋芯褌褍',
+ selectcoatingtypes:'袙褘斜械褉懈褌械 褌懈锌褘 锌芯泻褉褘褌懈泄',
+ selectthickness:'袙褘斜械褉懈褌械 褌芯谢褖懈薪褍',
+ selectquantity:'袙胁械写懈褌械 泻芯谢褜褔械褋褌胁芯.',
+ pause:'袙褌芯褉邪褟 懈 褔械褌胁械褉褌邪褟 褋褌褉芯泻懈 写芯谢卸薪褘 斜褘褌褜 胁褘褕械 2700 写谢褟 褋芯褏褉邪薪械薪懈褟!',
+ pausea:'袩芯卸邪谢褍泄褋褌邪, 褍斜械写懈褌械褋褜, 褔褌芯 屑邪褉泻懈褉芯胁芯褔薪邪褟 懈 褉械卸褍褖邪褟 屑邪褕懈薪褘 谐芯褌芯胁褘!',
+ infonull:'袧芯屑械褉 锌褉芯械泻褌邪 薪械 屑芯卸械褌 斜褘褌褜 锌褍褋褌褘屑!',
+ updatanull:'袩褉芯械泻褌 薪械 褋芯褏褉邪薪懈谢懈褋褜 薪邪 谢懈褋褌械 蟹邪谐褉褍蟹泻懈!',
+ glassnull:'袨褕懈斜泻邪 锌褉懈 芯斜薪芯胁谢械薪懈懈 褋褌械泻谢邪',
+ },
+ sorter:{
+ gridnumber:'携褔械械泻 褋械褌泻谢邪',
+ glassnumber:'袧芯屑械褉 褋褌邪泻谢邪',
+ width:'楔懈褉懈薪邪',
+ height:'袙褘褋芯褌邪',
+ startstatus:'小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+ disable:'袨褌泻谢褞褔',
+ start:'袧邪褔邪谢芯',
+ deficiencieste:'袧械写芯褋褌邪褌泻懈 胁 芯褌褔械褌薪芯褋褌懈',
+ operate:'袨锌械褉邪褑懈褟',
+ prompt:'袩芯写褋泻邪蟹泻',
+ information:'小谢械写褍械褌 谢懈 褋芯芯斜褖邪褌褜 薪械写芯褋褌邪褞褖褍褞 懈薪褎芯褉屑邪褑懈褞锛�',
+ yes:'袛邪',
+ cancel:'袨褌屑械薪邪',
+ },
+ order:{
+ dilapidation:'袩芯胁褉械卸写械薪懈械',
+ Takeaway:'袙蟹褟褌褜 胁褉褍褔薪褍褞',
+ },
+
+ searchOrder:{
+ cageinformation:'袠薪褎芯褉屑邪褑懈褟 斜褍褎械褉邪',
+ productionqueue:'袩褉芯懈蟹胁芯写褋褌胁械薪薪邪褟 芯褔械褉械写褜',
+ outputglassID:'袙褘褏芯写薪芯械 褋褌械泻谢芯 ID',
+ startposition:'袟邪薪褟褌褜 锌芯蟹懈褑懈懈',
+ targetlocation:'袩芯蟹懈褑懈褟 褑械谢懈',
+ trips:'鈩� 锌芯械蟹写邪',
+ number:'小械褉懈泄薪 薪芯屑械褉',
+ taskstatus:'小芯褋褌芯褟薪懈械 蟹邪写邪褔懈',
+ filmenter:'袨卸懈写邪薪懈械 褋褌械泻谢褟薪薪芯泄 胁褏芯写',
+ infilm:'袙 薪邪褋褌芯褟褖械械 胁褉械屑褟',
+ endtask:'袟邪写邪褔邪 薪邪 泻芯薪械褑',
+ completetask:'袙褘锌芯谢薪械薪懈械 蟹邪写邪薪懈褟',
+ intoglassid:'袙褏芯写薪芯泄 褋褌械泻谢褟薪薪褘泄 ID',
+ line:'袥懈薪懈褟',
+ Usage:'小泻芯褉芯褋褌褜 懈褋锌芯谢褜蟹芯胁邪薪懈褟',
+ free:'袘械褋锌谢邪褌薪芯 (褟褔械械泻)',
+ addcage:'袛芯斜邪胁懈褌褜 懈薪褎芯褉屑邪褑懈褞 芯 斜褍褎械褉械',
+ glassIDa:'小褌械泻谢褟薪薪褘泄 ID锛�',
+ glassID:'小褌械泻谢褟薪薪褘泄 ID',
+ inglassID:'袙胁械写懈褌械 褋褌械泻谢芯 ID',
+ pieceingrid:'袩芯褉褟写芯泻 褉邪褋锌芯谢芯卸械薪懈褟 屑邪谢械薪褜泻懈褏 褋褌械泻谢褟薪薪褘褏 锌谢邪褋褌懈薪 胁 泻谢械褌泻械',
+ pieceingrida:'袩芯褉褟写芯泻 褉邪褋锌芯谢芯卸械薪懈褟 屑邪谢械薪褜泻懈褏 褋褌械泻谢褟薪薪褘褏 锌谢邪褋褌懈薪 胁 泻谢械褌泻械锛�',
+ inpieceingrid:'袙胁械写懈褌械 锌芯褉褟写芯泻 褉邪褋锌芯谢芯卸械薪懈褟 褋褌械泻谢褟薪薪褘褏 谢懈褋褌芯胁 胁 褟褔械械泻械',
+ cardnumber:'袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+ cardnumbera:'袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪锛�',
+ incardnumber:'袙胁械写懈褌械 薪芯屑械褉 锌褉芯褑械褋褋邪 .',
+ typeglass:'孝懈锌 褋褌械泻谢邪',
+ typeglassa:'孝懈锌 褋褌械泻谢邪锛�',
+ intypeglass:'袙胁械写懈褌械 褌懈锌 褋褌械泻谢邪',
+ coatingtypes:'孝懈锌褘 锌芯泻褉褘褌懈泄',
+ width:'楔懈褉懈薪邪',
+ widtha:'楔懈褉懈薪邪锛�',
+ inwidth:'袙胁械写懈褌械 褕懈褉懈薪褍',
+ height:'袙褘褋芯褌邪',
+ heighta:'袙褘褋芯褌邪锛�',
+ inheight:'袙胁械写懈褌械 胁褘褋芯褌褍',
+ thickness:'孝芯谢褖懈薪邪',
+ thicknessa:'孝芯谢褖懈薪邪锛�',
+ inthickness:'袙胁械写懈褌械 褌芯谢褖懈薪褍.',
+ layoutID:'效械褉褌械卸 ID 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+ layoutIDa:'效械褉褌械卸 ID 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈锛�',
+ inlayoutID:'袙胁械写懈褌械 褔械褉褌械卸 蟹邪泻邪谢泻懈 ID',
+ picturesequence:'效械褉褌械卸 褋械褉懈泄薪 薪芯屑械褉 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+ picturesequencea:'效械褉褌械卸 褋械褉懈泄薪 薪芯屑械褉 蟹邪谐褉褍蟹泻懈 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈锛�',
+ inpicturesequence:'袙胁械写懈褌械 锌芯褉褟写芯泻 褔械褉褌械卸懈 蟹邪泻邪谢泻懈 褋褌械泻谢邪.',
+ startstatus:'小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+ startstatusa:'小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈锛�',
+ instartstatus:'袙胁械写懈褌械 褋芯褋褌芯褟薪懈械 邪泻褌懈胁邪褑懈懈',
+ glassgaps:'小褌械泻谢褟薪薪褘泄 蟹邪蟹芯褉',
+ glassgapsa:'小褌械泻谢褟薪薪褘泄 蟹邪蟹芯褉锛�',
+ inglassgaps:'袙胁械写懈褌械 褋褌械泻谢芯 蟹邪蟹芯褉',
+ sure:'锌芯写褌胁械褉写',
+ cancel:'袨褌屑械薪邪',
+ glassID:'小褌械泻谢褟薪薪褘泄 ID',
+ operate:'袨锌械褉邪褑懈褟',
+ breakage:'袩芯胁褉械卸写械薪懈械',
+ delete:'校写邪谢',
+ outfilm:'袙褘锌褍褋泻 褋褌械泻谢邪',
+ cagetableID:'ID 斜褍褎械褉薪芯泄 褌邪斜谢懈褑褘',
+ cagenumber:'袘褍褎械褉 薪芯屑械褉邪',
+ gridnumber:'携褔械械泻 褋械褌泻谢邪',
+ enable:'袧邪褔邪谢芯',
+ disable:'袨褌泻谢褞褔',
+ remainingwidth:'袨褋褌邪褌芯褔薪邪褟 褕懈褉懈薪邪',
+ add:'袛芯斜邪胁谢褟',
+ sheetID:'袟邪泻邪谢泻邪 屑邪谢械薪褜泻懈泄 褋褌械泻谢褟薪薪褘泄 ID 褌邪斜谢懈褑褘 懈薪褎芯褉屑邪褑懈懈',
+ processcards:'袣邪褉褌芯褔泻邪 锌褉芯褑械褋褋邪',
+ processcardtype:'孝懈锌 褋褌械泻谢邪 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+ acceptshorizontal:'校屑械褉械薪薪芯械 锌褉懈薪褟褌懈械 谐芯褉懈蟹芯薪褌邪谢懈',
+ xcoordinates:'X-泻芯芯褉写懈薪邪褌褘',
+ ycoordinates:'Y-泻芯芯褉写懈薪邪褌褘',
+ rotationangle:'校谐芯谢 胁褉邪褖械薪懈褟 (锌褉芯褌懈胁 褔邪褋芯胁芯泄 褋褌褉械谢泻懈)',
+ state:'小芯褋褌芯褟薪懈械',
+ takeout:'袙蟹褟褌褜',
+ deletemessage:'校写邪谢懈褌褜 褝褌褍 懈薪褎芯褉屑邪褑懈褞 懈谢懈 薪械褌?',
+ prompt:'袩芯写褋泻邪蟹泻',
+ yes:'袛邪',
+ accept:'袩褉懈薪褟褌褜',
+ noaccept:'袧械 锌褉懈薪懈屑邪褌褜',
+ filmcomplete:'小褌械泻谢芯 谐芯褌芯胁芯',
+ waiting:'袞写械屑.',
+ },
+ workOrder:{
+ glassID:'小褌械泻谢褟薪薪褘泄 ID',
+ height:'袙褘褋芯褌邪',
+ width:'楔懈褉懈薪邪',
+ thickness:'孝芯谢褖懈薪邪',
+ coatingtypes:'孝懈锌褘 锌芯泻褉褘褌懈泄',
+ productionsequence:'袩芯褋谢械写芯胁邪褌械谢褜薪芯褋褌褜 锌褉芯懈蟹胁芯写褋褌胁邪',
+ cardnumber:'袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+ operate:'袨锌械褉邪褑懈褟',
+ messagedamaged:'袩芯胁褉械卸写械薪芯 谢懈 褋芯芯斜褖械薪懈械锛�',
+ prompt:'袩芯写褋泻邪蟹泻',
+ yes:'袛邪',
+ cancel:'袨褌屑械薪邪',
+ takemessage:'小谢械写褍械褌 谢懈 褍写邪谢褟褌褜 褋芯芯斜褖械薪懈械锛�',
+ breakage:'袩芯胁褉械卸写械薪懈械',
+ takeout:'袙蟹褟褌褜',
+ },
+ processCard:{
+ intofurnace:'袙 锌械褔褜',
+ beforefurnace:'袛芯 锌械褔泻懈.',
+ outfurnace:'袨泻芯薪褔械薪芯 褋褌械泻谢芯 懈蟹 锌械褔懈 写谢褟 蟹邪泻邪谢泻懈',
+ },
+ reportWork:{
+ lowerbit:'小褌邪薪褑懈褟 褉邪蟹谐褉褍蟹泻懈',
+ shelfnumber:'袧芯屑械褉 褋褌芯泄泻懈 褉械谐懈褋褌褉邪褑懈懈',
+ cardnumber:'袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪',
+ totalquantity:'袨斜褖械械 泻芯谢懈褔械褋褌胁芯',
+ beendropped:'袣芯谢懈褔械褋褌胁芯 褋褌械泻谢邪 褉邪蟹谐褉褍蟹泻懈',
+ state:'小芯褋褌芯褟薪懈械',
+ devicenumber:'袧芯屑械褉 芯斜芯褉褍写芯胁邪薪懈褟.',
+ startstatus:'小褌邪褌褍褋 薪邪褔邪谢邪 芯锌械褉邪褑懈懈',
+ enable:'袧邪褔邪谢芯',
+ unenable:'袧械 薪邪褔邪褌',
+ operate:'袨锌械褉邪褑懈褟',
+ bindingshelves:'袧邪蟹薪邪褔械薪薪邪褟 褋褌械谢谢邪卸泻邪',
+ clear:'效懈褋褌芯.',
+ workstation:'小褌邪薪褑懈褟 薪芯屑械褉',
+ shelfnumber:'袧芯屑械褉 褋褌芯泄泻懈 褉械谐懈褋褌褉邪褑懈懈锛�',
+ cardnumbera:'袧芯屑械褉 泻邪褉褌芯褔泻懈 锌褉芯褑械褋褋邪锛�',
+ incardnumber:'袩芯卸邪谢褍泄褋褌邪, 胁褘斜械褉懈褌械 薪芯屑械褉 锌褉芯谐褉邪屑屑褘',
+ clearglass:'袨褔懈褋褌懈褌褜 褋褌械泻谢芯 褋 锌芯谢泻懈',
+ sure:'锌芯写褌胁械褉写',
+ cancel:'袨褌屑械薪邪',
+ glassinformation:'袠薪褎芯褉屑邪褑懈褟 褋褌械泻谢邪',
+ glassID:'小褌械泻谢褟薪薪褘泄 ID',
+ coatingtypes:'孝懈锌褘 锌芯泻褉褘褌懈泄',
+ thickness:'孝芯谢褖懈薪邪',
+ width:'楔懈褉懈薪邪',
+ height:'袙褘褋芯褌邪',
+ },
+ productStock:{
+ addusers:'袛芯斜邪胁褜褌械 锌芯谢褜蟹芯胁邪褌械谢械泄.',
+ username:'袠屑褟 锌芯谢褜蟹芯胁邪褌械谢褟.',
+ usernamea:'袠屑褟 锌芯谢褜蟹芯胁邪褌械谢褟.锛�',
+ inusername:'袙胁械写懈褌械 懈屑褟 锌芯谢褜蟹芯胁邪褌械谢褟',
+ role:'袪芯谢褜',
+ rolea:'袪芯谢褜锛�',
+ inrole:'袙褘斜械褉懈褌械 褉芯谢褜',
+ test:'孝械褋褌',
+ admin:'袗写屑懈薪懈褋褌褉邪褌芯褉.',
+ operate:'袨锌械褉邪褑懈褟',
+ resetpassword:'小斜褉芯褋懈褌褜 锌邪褉芯谢褜',
+ exit:'袪械写邪泻褌芯褉',
+ delete:'校写邪谢',
+ prompt:'袩芯写褋泻邪蟹泻',
+ repassword:'袩械褉械蟹邪谐褉褍蟹泻邪 锌芯谢褜蟹芯胁邪褌械谢褜褋泻芯谐芯 锌邪褉芯谢褟 懈谢懈 薪械褌锛�',
+ yes:'袛邪',
+ cancel:'袨褌屑械薪邪',
+ reusername:'袠蟹屑械薪械薪懈械 锌芯谢褜蟹芯胁邪褌械谢褟',
+ addusername:'袛芯斜邪胁褜褌械 锌芯谢褜蟹芯胁邪褌械谢械泄.',
+ password:'袣芯写锛�',
+ sure:'锌芯写褌胁械褉写',
+ inpassword:'袙胁械写懈褌械 锌邪褉芯谢褜.',
+ deusername:'校写邪谢械薪懈械 锌芯谢褜蟹芯胁邪褌械谢褟 懈谢懈 薪械褌锛�',
+ },
+ customer:{
+ addmenu:'袛芯斜邪胁褜褌械 屑械薪褞.',
+ firstmenu:'孝邪斜谢懈褑邪 屑械薪褞 锌械褉胁芯泄 褋褌械锌械薪懈',
+ link:'小褋褘谢泻',
+ linka:'小褋褘谢泻锛�',
+ inlink:'袙胁械写懈褌械 褋褋褘谢泻褍',
+ sort:'小芯褉褌懈褉芯胁泻',
+ sorta:'小芯褉褌懈褉芯胁泻锛�',
+ insort:'袙胁械写懈褌械 褋芯褉褌懈褉芯胁泻褍',
+ operate:'袨锌械褉邪褑懈褟',
+ exit:'袪械写邪泻褌芯褉',
+ inmenu:'袙胁械写懈褌械 屑械薪褞',
+ delete:'校写邪谢',
+ semenu:'孝邪斜谢懈褑邪 屑械薪褞 胁褌芯褉芯泄 褋褌械锌械薪懈',
+ menu:'袦械薪褞.锛�',
+ sure:'锌芯写褌胁械褉写',
+ cancel:'袨褌屑械薪邪',
+ exmene:'袠蟹屑械薪械薪懈械 屑械薪褞.',
+ yes:'袛邪',
+ demenu:'校写邪谢懈褌褜 屑械薪褞 懈谢懈 薪械褌锛�',
+ prompt:'袩芯写褋泻邪蟹泻',
+ },
+ delivery:{
+ addrole:'袛芯斜邪胁褜褌械 褉芯谢懈.',
+ editrole:'袠蟹屑械薪械薪懈械 褉芯谢懈.',
+ role :'袪芯谢褜',
+ rolea :'袪芯谢褜锛�',
+ inrole :'袙胁械写懈褌械 褉芯谢懈.',
+ operate :'袨锌械褉邪褑懈褟',
+ edit :'袪械写邪泻褌芯褉',
+ delete :'校写邪谢',
+ sure :'锌芯写褌胁械褉写',
+ cancel :'袨褌屑械薪邪',
+ yes:'袛邪',
+ derole :'校写邪谢懈褌褜 锌械褉褋芯薪邪卸 懈谢懈 薪械褌锛�',
+ prompt:'袩芯写褋泻邪蟹泻',
+ },
+ }
\ No newline at end of file
diff --git a/UI-Project/src/lang/i18n.js b/UI-Project/src/lang/i18n.js
deleted file mode 100644
index 080bd7c..0000000
--- a/UI-Project/src/lang/i18n.js
+++ /dev/null
@@ -1,15 +0,0 @@
-// i18n.js
-
-import { createI18n } from 'vue-i18n'
-import zhCn from './lang/locales/zh-CN.json'
-import enUs from './lang/locales/en-US.json'
-
-const i18n = createI18n({
- locale: 'zh-CN', // 璁剧疆榛樿璇█
- messages: {
- 'zh-CN': zhCn,
- 'en-US': enUs
- }
-})
-
-export default i18n
\ No newline at end of file
diff --git a/UI-Project/src/lang/index.js b/UI-Project/src/lang/index.js
new file mode 100644
index 0000000..2a371f6
--- /dev/null
+++ b/UI-Project/src/lang/index.js
@@ -0,0 +1,18 @@
+
+import { createI18n} from 'vue-i18n'
+import zh from "./zh"
+import en from "./en"
+
+let messages = {
+ zh:zh,
+ en: en
+}
+
+const i18n = createI18n({
+ locale: localStorage.getItem('lang') || 'zh', // 璁剧疆褰撳墠璇█绫诲瀷
+ legacy: false, // 濡傛灉瑕佹敮鎸乧ompositionAPI锛屾椤瑰繀椤昏缃负false;
+ globalInjection: true, // 鍏ㄥ眬娉ㄥ唽$t鏂规硶
+ messages
+})
+
+export default i18n
\ No newline at end of file
diff --git a/UI-Project/src/lang/locales/en-US.json b/UI-Project/src/lang/locales/en-US.json
deleted file mode 100644
index dfae361..0000000
--- a/UI-Project/src/lang/locales/en-US.json
+++ /dev/null
@@ -1,575 +0,0 @@
-{
- "Clear":"Clear",
- "ip":"192.168.10.21",
- "systemTitle": "Login System",
- "usernamePlaceholder": "Please enter username",
- "passwordPlaceholder": "Please enter password",
- "loginButton": "Login",
- "registerButton": "Register",
- "resetButton": "Reset",
- "usernameRequired": "Please enter username",
- "usernameLength": "Username must be between 5 and 15 characters",
- "passwordRequired": "Please enter password",
- "passwordLength": "Password must be between 5 and 15 characters",
- "loginSuccess": "Login successful",
- "langBtnCN": "Chinese",
- "langBtnEN": "English",
- "langHome": "Home",
- "langUserManagement": "User Management",
- "langUserList": "User List",
- "langUsernamePlaceholder": "Please enter username",
- "langEmailPlaceholder": "Please enter email",
- "langSearch": "Search",
- "langAddUser": "Add User",
- "langUsername": "Username",
- "langEmail": "Email",
- "langCreateTime": "Create Time",
- "langDisabled": "Disabled",
- "langAction": "Action",
- "langEdit": "Edit",
- "langDelete": "Delete",
- "langAddUserTitle": "Add User",
- "langPassword": "Password",
- "langState": "State",
- "langSelect": "Please select",
- "langCancel": "Cancel",
- "langConfirm": "Confirm",
- "langEditUserTitle": "Edit User",
- "northglassMESsystem": "NorthGlassMesSystem",
- "exit": "exit",
- "changePassword": "changePassword",
- "resetPassword": "resetPassword",
- "Old password":"Old password",
- "New password":"New password",
- "Confirm password":"Confirm password",
- "home": "Home",
- "role": "role",
- "langRoleManagement": "Role Management",
- "langRoleList": "Role List",
- "langEnterRoleName": "Please enter role name",
- "langAddRole": "Add Role",
- "langName": "Name",
- "langIsValid": "Is Valid",
- "langOperation": "Operation",
- "langPleaseSelect": "Please select",
- "langValid": "Valid",
- "langInvalid": "Invalid",
- "langAddRoleSuccess": "Add role successfully",
- "langEnterName": "Please enter name",
- "langLengthBetween": "Length should be between",
- "langAnd": "and",
- "langCharacters": "characters",
- "langEnterState": "Please enter state",
- "langUpdateState": "Update state successfully",
- "langEditRole": "Edit Role",
- "langEditRoleSuccess": "Edit role successfully",
- "langDeleteRoleConfirm": "Are you sure you want to delete this role?",
- "langPrompt": "Prompt",
- "langDeleteRoleSuccess": "Delete role successfully",
- "langCancelDelete": "Cancelled deleting",
- "langRoleName": "langRoleName",
- "updateSuccessMessage": "updateSuccessMessage",
- "paginationTotal": "Total {total}",
- "paginationSizes": "Items per page",
- "paginationPrev": "Previous",
- "paginationPager": "{currentPage}/{pageCount}",
- "paginationNext": "Next",
- "paginationJumper": "Jump to",
- "breadcrumb": {
- "home": "Home",
- "permissionManagement": "Permission Management",
- "permissionList": "Permission List"
- },
- "search": {
- "placeholder": "Enter keywords"
- },
- "button": {
- "addPermission": "Add Permission",
- "cancel": "Cancel",
- "confirm": "Confirm"
- },
- "table": {
- "role": "Role",
- "permissionDescription": "Permission Description",
- "permissionValue": "Permission Value",
- "createTime": "Create Time",
- "isActive": "Is Active",
- "operation": "Operation"
- },
- "tooltip": {
- "edit": "Edit",
- "delete": "Delete"
- },
- "dialog": {
- "addPermission": "Add Permission",
- "editPermission": "Edit Permission"
- },
- "form": {
- "role": "Role",
- "select": "Please Select",
- "permission": "Permission",
- "isActive": "Is Active"
- },
- "鎿嶄綔": "Operation",
- "鏈夋晥": "Valid",
- "鏃犳晥": "Invalid",
- "璇疯緭鍏ュ悕绉�": "Please enter a name",
- "璇疯緭鍏ヨ鑹�": "Please enter a role",
- "璇疯緭鍏ユ潈闄愭弿杩�":"Please enter a permission description",
- "闀垮害鍦� 2 鍒� 15 涓瓧绗�": "Length between 2 and 15 characters",
- "璇疯緭鍏ョ姸鎬�": "Please enter the status",
- "娣诲姞瑙掕壊": "Add Role",
- "淇敼瑙掕壊": "Edit Role",
- "鍒犻櫎瑙掕壊": "Delete Role",
- "姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ヨ鑹�, 鏄惁缁х画?": "This operation will permanently delete the role. Continue?",
- "鎻愮ず": "Reminder",
- "纭畾": "Confirm",
- "鍙栨秷": "Cancel",
- "娣诲姞瑙掕壊鎴愬姛": "Successfully added role",
- "鏇存柊鐘舵�佹垚鍔�": "Successfully updated status",
- "淇敼瑙掕壊鎴愬姛": "Successfully modified role",
- "鍒犻櫎瑙掕壊鎴愬姛": "Successfully deleted role",
- "translation": {
- "D01 VFD error": "D01 VFD error",
- "D02 VFD error": "D02 VFD error",
- "D03 VFD error": "D03 VFD erro",
- "D04 VFD error": "D04 VFD error",
- "D05 VFD error": "D05 VFD error",
- "D06 VFD error": "D06 VFD error",
- "B01 VFD error": "B01 VFD error",
- "B02 VFD error": "B02 VFD error",
- "A01 VFD error": "A01 VFD error",
- "A02 VFD error": "A02 VFD error",
- "A01 servo turn error": "A01 servo turn error",
- "A02 servo turn error": "A02 servo turn error",
- "A01 servo travel error": "A01 servo travel error",
- "A02 servo travel error": "A02 servo travel error",
- "B01 servo travel error": "B01 servo travel error",
- "B02 servo travel error": "B02 servo travel error",
- "D01 DEC error": "D01 DEC error",
- "D01 pos error": "D01 pos error",
- "D02 DEC error": "D02 DEC error",
- "D02 pos error": "D02 pos error",
- "D03 DEC error": "D03 DEC error",
- "D03 pos error": "D03 pos error",
- "D04 DEC error": "D04 DEC error",
- "D04 pos error": "D04 pos error",
- "D05 DEC error": "D05 DEC error",
- "D05 pos error": "D05 pos error",
- "D06 DEC error": "D06 DEC error",
- "D06 pos error": "D06 pos error",
- "A01 DEC error": "A01 DEC error",
- "A01 pos error": "A01 pos error",
- "A02 DEC error": "A02 DEC error",
- "A02 pos error": "A02 pos error",
- "B01 IN DEC error": "B01 IN DEC error",
- "B01 IN pos error": "B01 IN pos error",
- "B01 OUT DEC error": "B01 OUT DEC error",
- "B01 OUT pos error": "B01 OUT pos error",
- "B02 IN DEC error": "B02 IN DEC error",
- "B02 IN pos error": "B02 IN pos error",
- "B02 OUT DEC error": "B02 OUT DEC error",
- "B02 OUT pos error": "B02 OUT pos error"
- },
- "Electrical": "Electrical",
- "Parameter": "Parameter",
- "Action": "Action",
- "Sign": "Sign",
- "State": "State",
- "Alarm": "Alarm",
- "Distribute": "Distribute",
- "Search": "Search",
- "dvstate": {
- "鑷姩": "automatic",
- "鎵嬪姩": "manual"
- },
- "langUsernameLabel": "Username",
- "langPasswordLabel": "Password",
- "langPasswordPlaceholder": "Please enter your password",
- "langConfirmPasswordLabel": "Confirm Password",
- "langConfirmPasswordPlaceholder": "Please confirm your password",
- "langEmailLabel": "Email",
- "langQQLabel": "QQ",
- "langQQPlaceholder": "Please enter your QQ number",
- "langPhoneNumberLabel": "Phone Number",
- "langPhoneNumberPlaceholder": "Please enter your phone number",
- "langUsernameRequiredMessage": "Please enter your username",
- "langUsernameLengthMessage": "Username length should be between 5 and 15 characters",
- "langPasswordRequiredMessage": "Please enter your password",
- "langPasswordLengthMessage": "Password length should be between 5 and 15 characters",
- "langEmailRequiredMessage": "Please enter your email",
- "langEmailFormatMessage": "Invalid email format",
- "langRegisterButton": "Register",
- "langResetButton": "Reset",
- "langCancelButton": "Cancel",
- "langRegisterSuccessMessage": "Registration successful",
- "today": "today",
- "yesterday": "yesterday",
- "week": "week",
- "shijian": "date",
- "Pick a day": "Pick a day",
- "alarmid": "id",
- "alacontent": "content",
- "time-on": "time-on",
- "End-Time": "End-Time",
- "langRegisterSuccessMessage": "Registration successful",
-
- "娣诲姞鐢ㄦ埛鎴愬姛":"Successfully add user ",
- "confirmResetPassword": "Are you sure you want to reset the password to the default value?",
- "confirm": "Confirm",
- "cancel": "Cancel",
- "passwordResetSuccess": "Password has been reset to the default value",
- "confirmDeleteCategory": "This operation will permanently delete the category. Do you want to continue?",
- "prompt": "Prompt",
- "userDeleteSuccess": "User deleted successfully",
- "deleteCanceled": "Deletion canceled",
- "addUserSuccess": "User added successfully",
- "editUserSuccess": "User edited successfully",
- "addSuccessMessage": "Added successfully",
-"deleteConfirmMessage": "Are you sure you want to delete this permission?",
-
-"confirmButtonText": "Confirm",
-"cancelButtonText": "Cancel",
-"deleteSuccessMessage": "Deleted successfully",
-"deleteCancelledMessage": "Deletion cancelled",
-
-
- "Enter the glass barcode":"Enter the glass barcode",
- "Manually Infeed Glass":"Manually Infeed Glass",
- "Enter the order number":"Enter the order number",
- "Exit the glass by order number":"Exit the glass by order number",
- "Please confirm the glass information":"Please confirm the glass information",
- "Please confirm the Ordering Information":"Please confirm the Ordering Information",
- "Alarm Information":"Alarm Information",
- "Cage Details":"Cage Details",
- "order":"order",
- "Length":"Length",
- "Width":"Width",
- "Operate":"Operate",
- "Terminate Task":"Terminate Task",
- "cancel":"cancel",
- "confirm":"confirm",
- "Number":"Number",
- "Outfeed glass barcode":"Outfeed glass barcode",
- "Infeed glass barcode":"Infeed glass barcode",
- "Cage No":"Cage No",
- "Slot No":"Slot No",
- "Dim":"Dim",
- "id":"id",
- "content":"content",
- "timeon":"timeon",
- "endTime":"endTime",
-
- "The Side":"The Side",
- "Barcode":"Barcode",
- "Order No":"Order No",
- "List No":"List No",
- "Box No":"Box No",
- "Delete":"Delete",
- "Out":"Out",
-
- "Operation successful":"Operation successful",
- "Operation canceled":"Operation canceled",
- "There is no glass for this order":"There is no glass for this order",
- "There are currently tasks":"There are currently tasks",
- "There is no such glass":"There is no such glass",
- "There is no such grid":"There is no such grid",
- "No delete allowed":"No delete allowed",
- "No out allowed":"No out allowed",
- "Are you sure to perform this operation ?":"Are you sure to perform this operation ?",
- "Yes":"Yes",
-
-
- "No":"No",
- "Please enter the password":"Please enter the password",
- "Password error":"Password error",
- "DataBase Connection failed":"DataBase Connection failed",
- "Distribute parameters":"Distribute parameters",
- "The glass size is not within the range":"The glass size is not within the range",
- "Add":"Add",
- "Enable":"Enable",
- "Disable":"Disable",
- "Usage":"Usage",
- "Space (Pieces)":"Space (Pieces)",
- "This glass is already in the cage":"This glass is already in the cage",
- "Enter the Order No":"Enter the Order No",
- "OrderInfo":"OrderInfo",
- "Query":"Query",
- "permission update":"permission update",
- "query was successful":"query was successful",
- "Scan Code Point":"Scan Code Point",
- "Upper film position":"Upper film position",
- "Glass Information":"Glass Information",
- "current Information":"current information",
- "Modify Information":"Modify information",
- "Clear Current":"Clear Current",
- "Confirm":"Confirm",
- "The glass ID already exists in the loading queue":"The glass ID already exists in the loading queue",
- "This glass ID already exists in the sorting cage":"This glass ID already exists in the sorting cage",
- "Outing Queue":"Outing Queue",
- "Enter the Frame No":"Enter the Frame No",
- "Frame No":"Frame No",
- "Glass information corresponding to aluminum frame":"Glass information corresponding to aluminum frame",
- "In the cage":"In the cage",
- "Flipped":"Flipped",
- "In the queue":"In the queue",
- "Normal":"Normal",
- "Entering":"Entering",
- "Outing":"Outing",
- "Suspend":"Suspend",
- "Stop":"Stop",
- "Start":"Start",
- "Sequence":"Sequence",
- "Position":"Position",
- "Top":"Top",
- "Up":"Up",
- "Down":"Down",
- "Unable to find the placement method of the aluminum frame":"Unable to find the placement method of the aluminum frame",
- "Unable to find whether the aluminum frame is flipped or not":"Unable to find whether the aluminum frame is flipped or not",
- "You do not have this permission":"You do not have this permission",
- "This glass is already in the Queue":"This glass is already in the Queue",
- "Complete":"Complete",
- "Allow":"Allow",
- "Not Allow":"Not Allow",
- "Completed":"Completed",
- "Waiting":"Waiting",
- "Deleted":"Deleted",
- "Glass State":"Glass State",
- "Absent":"Absent",
- "Approximately resettable time":"Approximately resettable time",
- "EXTERIQR OUT AND BYPASS TO THE LEFT":"EXTERIQR OUT AND BYPASS TO THE LEFT",
- "EXTERIQR OUT AND BYPASS TO THE RIGHT":"EXTERIQR OUT AND BYPASS TO THE RIGHT",
- "Complete Task":"Complete Task",
- "Outed":"Outed",
- "Queue State":"Queue State",
- "Sorting State":"Sorting State",
- "Confirm State":"Confirm State",
- "Next":"Next",
- "Current Frame":"Current Frame",
- "Outside":"Outside",
- "Inside":"Inside",
- "Cancel":"Cancel",
- "Are you sure to clear this barcode ?":"Are you sure to clear this barcode ?",
- "Terminate Feeding":"Terminate Feeding",
- "Terminate Outing":"Terminate Outing",
- "SoftEmergencyStop":"SoftEmergencyStop",
- "Unable to clear glass ID in automatic mode":"Unable to clear glass ID in automatic mode",
- "Are you sure you want an emergency stop ?":"Are you sure you want an emergency stop ?",
- "Current State":"Current State",
- "Automatic":"Automatic",
- "Hand Movement":"Hand Movement",
- "Please enter the correct glassID":"Please enter the correct glassID",
- "Switch":"Switch",
- "This frame has glass that is currently outing":"This frame has glass that is currently outing",
- "ServoManualone": {
- "A01 鎵�鍦ㄦ牸瀛�": "A01 Current Grid",
- "鏁伴噺": "Quantity",
- "杩涚墖ID": "IncomingId",
- "闀垮害": "Length",
- "楂樺害": "Height",
- "鍙栫墖鏍煎瓙": "Pickupgrid address",
- "瀛樼墖鏍煎瓙": "Storagegrid address",
- "A01缈昏浆瀹炴椂浣嶇疆": "A01FlipPosition",
- "A02缈昏浆瀹炴椂浣嶇疆": "A02FlipPosition",
- "鏁呴殰": "Fault",
- "澶嶄綅": "Reset",
- "鏈洖闆�": "NotZero",
- "鍥為浂": "Home",
- "鐩爣鏍煎瓙": "Target Grid",
- "A02 鎵�鍦ㄦ牸瀛�": "A02 Current Grid",
- "鍙栫墖ID": "PickupId",
- "A01鍗婅嚜鍔�": "A01 Semi-Auto",
- "A01鍗婅嚜鍔ㄥ惎鍔�": "A01 Semi-Auto Start",
- "A02鍗婅嚜鍔�": "A02 Semi-Auto",
- "A02鍗婅嚜鍔ㄥ惎鍔�": "A02 Semi-Auto Start",
- "B01 鎵�鍦ㄦ牸瀛�": "B01 Current Grid",
- "B02 鎵�鍦ㄦ牸瀛�": "B02 Current Grid"
-
- },
- "langParameter1": {
-
-
- },
-
- "langParameter2": {
- "D01鎵嬪姩鐘舵��": "D01 Manual Status",
- "娓呴櫎ID": "Clear ID",
- "ID": "ID",
- "A02ID": "A02ID",
- "B01ID": "B01ID",
- "B02ID": "B02ID",
- "D02鎵嬪姩鐘舵��": "D02 Manual Status",
- "D03鎵嬪姩鐘舵��": "D03 Manual Status",
- "D04鎵嬪姩鐘舵��": "D04 Manual Status",
- "D05鎵嬪姩鐘舵��": "D05 Manual Status",
- "D06鎵嬪姩鐘舵��": "D06 Manual Status",
- "A01鎵嬪姩鐘舵��": "A01 Manual Status",
- "ID1": "ID1",
- "ID2": "ID2",
- "A02鎵嬪姩鐘舵��": "A02 Manual Status",
- "B01鎵嬪姩鐘舵��": "B01 Manual Status",
- "B02鎵嬪姩鐘舵��": "B02 Manual Status",
- "鎵弿鏋壂鐮佺殑ID": "Scanned ID",
- "A01褰撳墠鏍煎瓙": "A01 Current Grid",
- "A02鎵�鍦ㄦ牸瀛�": "A02 Current Grid",
- "B01鎵�鍦ㄦ牸瀛�": "B01 Current Grid",
- "B02鎵�鍦ㄦ牸瀛�": "B02 Current Grid",
- "鎬ュ仠鍚庝腑姝�/缁х画閫夋嫨": "Abort/ResumeTasks",
- "A01缁堟/缁х画": "A01Abort/ResumeTasks",
- "A02缁堟/缁х画": "A02Abort/ResumeTasks",
- "瀛樼墖绛夊緟寤舵椂": "Storage wait delay",
- "杞�ュ仠": "emgHMI"
-
- },
- "langPositioning1": {
- "鏍煎瓙闂磋窛": "GridSpacing",
- "瀛樼墖鎺ョ墖鍦板潃": "StorageReceivingAddress",
- "鍑虹墖鎺ョ墖鍦板潃": "OutgoingReceivingAddress",
- "瀛樼墖鏍间綅缃瀹�": "StorageGridPositionSetting",
- "1#鏍煎湴鍧�": "grid address1# ",
- "22#鏍煎湴鍧�": "grid address22#",
- "43#鏍煎湴鍧�": "grid address43#",
- "64#鏍煎湴鍧�": "grid address64#",
- "85#鏍煎湴鍧�": "grid address85#",
- "106#鏍煎湴鍧�": "grid address106#",
- "127#鏍煎湴鍧�": "grid address127#",
- "148#鏍煎湴鍧�": "grid address148#",
- "169#鏍煎湴鍧�": "grid address169#",
- "190#鏍煎湴鍧�": "grid address190#",
- "鍑虹墖鏍间綅缃瀹�": "OutgoingGridPositionSetting",
- "A01鎵�鍦ㄦ牸瀛�": "A01 grid address",
- "鏁伴噺": "Quantity",
- "杩涚墖ID": "IncomingId",
- "闀垮害": "Length",
- "楂樺害": "Height",
- "鍙栫墖鏍煎瓙": "Pickupgrid address",
- "缈昏浆瀹炴椂浣嶇疆": "FlipPosition",
- "鏁呴殰": "Fault",
- "澶嶄綅": "Reset",
- "鏈洖闆�": "NotZero",
- "鍥為浂": "Zero",
- "鐩爣鏍煎瓙": "Target Grid",
- "鏍煎瓙闂磋窛": "GridSpacing",
- "瀛樼墖鎺ョ墖鍦板潃": "StorageReceivingAddress",
- "鍑虹墖鎺ョ墖鍦板潃": "OutgoingReceivingAddress",
- "瀛樼墖鏍间綅缃瀹�": "StorageGridPositionSetting",
- "1#鏍煎湴鍧�": "grid address1# ",
- "22#鏍煎湴鍧�": "grid address22#",
- "43#鏍煎湴鍧�": "grid address43#",
- "64#鏍煎湴鍧�": "grid address64#",
- "85#鏍煎湴鍧�": "grid address85#",
- "106#鏍煎湴鍧�": "grid address106#",
- "127#鏍煎湴鍧�": "grid address127#",
- "148#鏍煎湴鍧�": "grid address148#",
- "169#鏍煎湴鍧�": "grid address169#",
- "190#鏍煎湴鍧�": "grid address190#",
- "鍑虹墖鏍间綅缃瀹�": "OutgoingGridPositionSetting",
- "B01鏍间綅缃瀹�":"B01PositionSetting",
- "B02浣嶇疆璁惧畾":"B02PositionSetting"
- },
- "langPositioning2": {
-
- }, "ManualonePositionlang": {
- "A01鎵嬪姩鏍煎瓙": "A01 Target grid(Manual)",
- "A01瀹氫綅閫熷害": "A01 TRAVEL POS Velocity manual",
- "A01褰撳墠鏍煎瓙": "A01 Current Grid",
- "A01鍚姩": "A01 Start",
- "鏁呴殰": "Fault",
- "澶嶄綅": "Reset",
- "A02鎵嬪姩鏍煎瓙": "A02 Target grid(Manual)",
- "A02瀹氫綅閫熷害": "A02 TRAVEL POS Velocity manual",
- "A02褰撳墠鏍煎瓙": "A02 Current Grid",
- "A02鍚姩": "A02 Start",
- "澶嶄綅": "Reset",
- "B01鎵嬪姩鏍煎瓙": "B01 Target grid(Manual)",
- "B01瀹氫綅閫熷害": "B01 TRAVEL POS Velocity manual",
- "B01褰撳墠鏍煎瓙": "B01 Current Grid",
- "B01鍚姩": "B01 Start",
- "澶嶄綅": "Reset",
- "鍥為浂": "Home",
- "鏈洖闆�": "NotZero",
- "B02鎵嬪姩鏍煎瓙": "B02 Target grid(Manual)",
- "B02瀹氫綅閫熷害": "B02 TRAVEL POS Velocity manual",
- "B02褰撳墠鏍煎瓙": "B02 Current Grid",
- "B02鍚姩": "B02 Start",
- "澶嶄綅": "Reset",
- "A01瀹炴椂浣嶇疆": "A01 tavel Actual Position",
- "A02瀹炴椂浣嶇疆": "A02 tavel Actual Position",
- "B01瀹炴椂浣嶇疆": "B02 tavel Actual Position",
- "B02瀹炴椂浣嶇疆": "B02 tavel Actual Position"
- },
- "Manualoneposition2lang": {
- "A01鎵嬪姩浣嶇疆": "A01 turn Target Angle(Manual)",
- "A01瀹氫綅閫熷害": "A01 TURN POS Velocity manual",
- "A01缈昏浆瀹炴椂浣嶇疆": "A01 turn Actual angle",
- "A01缈昏浆鍚姩": "A01 SERVE TURN",
- "鏁呴殰": "Fault",
- "澶嶄綅": "Reset",
- "鏈洖闆�": "NotZero",
- "鍥為浂": "Home",
- "A02鎵嬪姩浣嶇疆": "A02 turn Target Angle(Manual)",
- "A02瀹氫綅閫熷害": "A02 TURN POS Velocity manual",
- "A02缈昏浆瀹炴椂浣嶇疆": "A02 turn Actual angle",
- "A02缈昏浆鍚姩": "A02 SERVE TURN",
- "A02澶嶄綅": "Reset"
-
-
- },
- "AutomaticParameterSettinglang": {
- "A01琛岃蛋楂橀�熻搴�": "A01 turn Angle1",
- "A01琛岃蛋浣庨�熻搴�": "A01 turn Angle2",
- "A01杈撻�佹帴鐗囪搴�": "A01 turn Angle3",
- "A01绗煎瓙瑙掑害": "A01 turn Angle4",
- "A02琛岃蛋楂橀�熻搴�": "A02 turn Angle1",
- "A02琛岃蛋浣庨�熻搴�": "A02 turn Angle2",
- "A02杈撻�佹帴鐗囪搴�": "A02 turn Angle3",
- "A02绗煎瓙瑙掑害": "A02 turn Angle4",
- "澶ц溅鑷姩閫熷害": "A01 A02 TRAVEL POS Velocity AUTO",
- "灏忚溅鑷姩閫熷害": "B01 B02 TRAVEL POS Velocity AUTO",
- "鑷姩缈昏浆閫熷害": "A01 A02 TURN POS Velocity AUTO",
- "A01~A02杈撻��": "A01~A02 Conveying",
- "B01~B02杈撻��": "B01~B02 Conveying",
- "D01~D06杈撻��": "D01~D06 Conveying",
- "缈昏浆鐐瑰姩閫熷害": "Flip Jog Speed",
- "灏忚溅鐐瑰姩閫熷害": "Cart Jog Speed",
- "鏈�楂橀�熷害": "Max Speed",
- "楂橀�熺嚎閫熷害": "High-Speed Line Speed",
- "浣庨�熺嚎閫熷害": "Low-Speed Line Speed",
- "鎵嬪姩閫熷害": "Manual Speed"
- },
- "ManualJoglang": {
- "D01杈撻��": "D01 VFD conveyor",
- "D02杈撻��": "D02 VFD conveyor",
- "D03杈撻��": "D03 VFD conveyor",
- "D04杈撻��": "D04 VFD conveyor",
- "D05杈撻��": "D05 VFD conveyor",
- "D06杈撻��": "D06 VFD conveyor",
- "A01杈撻�佹鍚�": "A01 VFD conveyor",
- "A02杈撻�佹鍚�": "A02 VFD conveyor",
- "B01杈撻��": "B01 VFD conveyor",
- "B02杈撻��": "B02 VFD conveyor",
- "A01缈昏浆": "A01 SERVE TURN",
- "A02缈昏浆": "A02 SERVE TURN",
- "A01琛岃蛋鐐瑰姩": "A01 SERVE TRAVEL",
- "A02琛岃蛋鐐瑰姩": "A02 SERVE TRAVEL",
- "B01琛岃蛋鐐瑰姩": "B01 SERVE TRAVEL",
- "B02琛岃蛋鐐瑰姩": "B02 SERVE TRAVEL",
- "B02缈昏浆姘旂几": "B02 Solenoid TURN",
- "B02鍗囬檷姘旂几": "B02 Solenoid UP DOWN",
- "B02鍚规皵": "B02 Solenoid Gassing",
- "B01缈昏浆姘旂几": "B01 Solenoid TURN",
- "B01鍗囬檷姘旂几": "B01 Solenoid UP DOWN",
- "B01鍚规皵": "B01 Solenoid Gassing",
- "A01杈撻�佸弽鍚�": "A01 VFD conveyor reverse",
- "A02杈撻�佸弽鍚�": "A02 VFD conveyor reverse",
- "A01娉ㄧ數娉�": "A01 oil pump",
- "A02娉ㄧ數娉�": "A02 oil pump",
- "A01琛岃蛋浼烘湇鍥為浂":"A01 SERVE TRAVEL Home",
- "A02琛岃蛋浼烘湇鍥為浂":"A02 SERVE TRAVEL Home"
- },
- "A01琛岃蛋浼烘湇鍥為浂":"A01 SERVE TRAVEL Home",
- "A02琛岃蛋浼烘湇鍥為浂":"A02 SERVE TRAVEL Home",
- "Set":"Set"
-
-
-}
\ No newline at end of file
diff --git a/UI-Project/src/lang/locales/zh-CN.json b/UI-Project/src/lang/locales/zh-CN.json
deleted file mode 100644
index b06a25b..0000000
--- a/UI-Project/src/lang/locales/zh-CN.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
- "northglassMESsystem": "鍖楃幓MES绯荤粺",
- "username": "璐﹀彿",
- "password": "瀵嗙爜",
- "usernamePlaceholder": "璇疯緭鍏ヨ处鍙�",
- "passwordPlaceholder": "璇疯緭鍏ュ瘑鐮�",
- "loginButton": "鐧诲綍",
- "registerButton": "娉ㄥ唽",
- "registerButton": "娉ㄥ唽鏂扮敤鎴�",
- "username": "濮撳悕",
- "usernameRequired": "璇疯緭鍏ュ鍚�",
- "passwordRequired": "璇疯緭鍏ュ瘑鐮�",
- "passwordRequired": "纭瀵嗙爜",
- "passwordRequired": "璇风‘璁ゅ瘑鐮�",
- "passwordRequired": "纭娉ㄥ唽",
- "langCancel": "鍙栨秷",
- "loginSuccess": "鐧诲綍鎴愬姛",
- "langBtnCN": "涓枃",
- "langBtnEN": "English",
- "langHome": "娆㈣繋",
- "langUserManagement": "浣跨敤鍖楃幓MES绯荤粺",
- "langUserList": "閫�鍑�",
- "langUsernamePlaceholder": "鎵撴爣鏈哄氨缁姸鎬�",
- "langEmailPlaceholder": "鍒囧壊鏈哄氨缁姸鎬�",
- "langSearch": "鎵嬪姩纭",
- "langAddUser": "閫夋嫨宸ョ▼",
- "langUsername": "寮�濮嬩笂鐗�",
- "langEmail": "鏆傚仠",
- "langCreateTime": "鍋滄浠诲姟",
- "langDisabled": "宸ョ▼鍙�",
- "langAction": "鍘熺墖瀹�",
- "langEdit": "鍘熺墖闀�",
- "langDelete": "鑶滅郴",
- "langAddUserTitle": "鏁伴噺",
- "langPassword": "鍘氬害",
- "langState": "鐘舵��",
- "langSelect": "瀹�",
- "langEditUserTitle": "闀�",
- "exit": "鎿嶄綔",
- "changePassword": "宸ョ▼",
- "Old password":"璇烽�夋嫨宸ョ▼",
- "New password":"娣诲姞鍘熺墖",
- "langConfirm": "纭",
- "langUsernameLabel": "娣诲姞",
- "langPasswordLabel": "鍒犻櫎",
- "langPasswordLabel": "鏄惁鍒犻櫎璇ユ潯淇℃伅锛�",
- "langPasswordLabel": "鏄惁寮�濮嬩笂鐗囷紵",
- "langPasswordLabel": "鏄惁鏆傚仠锛�",
- "langPasswordLabel": "鏄惁鍋滄浠诲姟锛�",
- "langPasswordLabel": "鏍呮牸鍙�",
- "langPasswordLabel": "鐜荤拑缂栧彿",
- "langPasswordLabel": "楂�",
- "langPasswordLabel": "鍚敤鐘舵��",
- "langPasswordLabel": "鍚敤",
- "langPasswordLabel": "鏈惎鐢�",
- "langPasswordLabel": "鎶ョ己",
- "langPasswordLabel": "杩涚倝涓�",
- "langPasswordLabel": "杩涚倝鍓�",
- "langPasswordLabel": "宸插嚭鐐夌幓鐠�",
- "langPasswordLabel": "鐗堝浘缂栧彿",
- "langPasswordLabel": "涓嬬墖浣�",
- "langPasswordLabel": "鏋跺彿",
- "langPasswordLabel": "娴佺▼鍗″彿",
- "langPasswordLabel": "鎬绘暟閲�",
- "langPasswordLabel": "宸茶惤鏋舵暟閲�",
- "langPasswordLabel": "鐘舵��",
- "langPasswordLabel": "璁惧鍙�",
- "langPasswordLabel": "鍚敤鐘舵��",
- "langPasswordLabel": "缁戝畾鏋跺瓙",
- "langPasswordLabel": "娓呯┖",
-
-}
\ No newline at end of file
diff --git a/UI-Project/src/lang/zh.js b/UI-Project/src/lang/zh.js
new file mode 100644
index 0000000..3aa72a1
--- /dev/null
+++ b/UI-Project/src/lang/zh.js
@@ -0,0 +1,354 @@
+export default {
+ "northglassMESsystem": "鍖楃幓MES绯荤粺",
+ login:{
+ userErr:'璇疯緭鍏ヨ处鍙�',
+ pwErr:'璇疯緭鍏ュ瘑鐮�',
+ user:'璐﹀彿',
+ password:'瀵嗙爜',
+ login:'鐧诲綍',
+ loginSuccessful:'鐧诲綍鎴愬姛锛�',
+ register:'娉ㄥ唽',
+ namea:'濮撳悕涓嶈兘涓虹┖',
+ len:'闀垮害涓嶈兘瓒呰繃16',
+ passnull:'瀵嗙爜涓嶈兘涓虹┖',
+ leng:'瀵嗙爜闀垮害涓嶈兘浣庝簬6鎴栬秴杩�16',
+ spwn:'纭瀵嗙爜涓嶈兘涓虹┖',
+ depass:'涓ゆ瀵嗙爜涓嶇浉鍚�',
+ },
+ register:{
+ registerSuccessful:'娉ㄥ唽鎴愬姛',
+ newuserregister:'娉ㄥ唽鏂扮敤鎴�',
+ name:'濮撳悕锛�',
+ inputname:'璇疯緭鍏ュ鍚�',
+ password:'瀵嗙爜:',
+ pwErr:'璇疯緭鍏ュ瘑鐮�',
+ passwordation:'纭瀵嗙爜:',
+ pwErration:'璇风‘璁ゅ瘑鐮�',
+ registration:'纭娉ㄥ唽',
+ false:'鍙栨秷',
+ },
+ main:{
+ connectErr:'鏈嶅姟鍣ㄨ繛鎺ュ紓甯革紝璇风◢鍚庡啀璇�',
+ titleFirst:"娆㈣繋 ",
+ titleLast:' 浣跨敤鍖楃幓MES绯荤粺锛�',
+ quit:"閫�鍑�",
+ },
+ basicData:{
+ laserprinting:'鎵撴爣鏈哄氨缁姸鎬侊細',
+ cuttingmachine:'鍒囧壊鏈哄氨缁姸鎬侊細',
+ machine:'涓婄墖鏈鸿仈鏈虹姸鎬侊細',
+ machineaa:'涓婄墖鏈烘墜鍔ㄧ姸鎬侊細',
+ selectproject:"閫夋嫨宸ョ▼",
+ startloading:'寮�濮嬩笂鐗�',
+ stop:'鏆傚仠',
+ yes:'纭',
+ change:'鍒囨崲',
+ projectnumber:'宸ョ▼鍙�',
+ glasswidth:'鍘熺墖瀹�',
+ glassheight:'鍘熺墖楂�',
+ coatingtypes:'鑶滅郴',
+ coatingtypesa:'鑶滅郴锛�',
+ quantity:'鏁伴噺',
+ quantitya:'鏁伴噺锛�',
+ thickness:'鍘氬害',
+ thicknessa:'鍘氬害锛�',
+ startstatus:'鍚敤鐘舵��',
+ pass:'閫氳繃',
+ waiting:'绛夊緟涓�',
+ up:'涓婄墖涓�',
+ finish:'宸插畬鎴�',
+ project:'宸ョ▼',
+ plselectproject:'璇烽�夋嫨宸ョ▼',
+ confirm:'纭',
+ cancel:'鍙栨秷',
+ startfilm:'鏄惁寮�濮嬩笂鐗囷紵',
+ whetherpause:'鏄惁鏆傚仠锛�',
+ station:'宸ヤ綅',
+ width:'瀹�',
+ widtha:'瀹斤細',
+ height:'楂�',
+ heighta:'楂橈細',
+ operate:'鎿嶄綔',
+ add:'娣诲姞',
+ delete:'鍒犻櫎',
+ addglass:'娣诲姞鍘熺墖',
+ selectwidth:'璇烽�夋嫨瀹�',
+ selectheight:'璇烽�夋嫨楂�',
+ selectcoatingtypes:'璇烽�夋嫨鑶滅郴',
+ selectthickness:'璇烽�夋嫨鍘氬害',
+ selectquantity:'璇疯緭鍏ユ暟閲�',
+ pause:'绗簩琛屽拰绗洓琛岀殑楂樺繀椤诲ぇ浜�2700鎵嶈兘淇濆瓨锛�',
+ pausea:'璇风‘璁ゆ墦鏍囨満鍜屽垏鍓叉満鐨勫氨缁姸鎬侊紒',
+ infonull:'宸ョ▼鍙蜂笉鑳戒负绌猴紒',
+ updatanull:'璇ュ伐绋嬫湭淇濆瓨鍒颁笂鐗囪〃锛�',
+ glassnull:'鏇存柊鐜荤拑鐘舵�佹椂鍙戠敓閿欒',
+ deletemessage:'鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+ },
+ sorter:{
+ gridnumber:'鏍呮牸鍙�',
+ glassnumber:'鐜荤拑缂栧彿',
+ width:'瀹�',
+ height:'楂�',
+ startstatus:'鍚敤鐘舵��',
+ disable:'绂佺敤',
+ start:'鍚敤',
+ deficiencieste:'鎶ョ己',
+ operate:'鎿嶄綔',
+ prompt:'鎻愮ず',
+ information:'鏄惁鎶ョ己璇ユ潯淇℃伅锛�',
+ yes:'鏄�',
+ cancel:'鍙栨秷',
+ },
+ order:{
+ dilapidation:'鐮存崯',
+ Takeaway:'浜哄伐鎷胯蛋',
+ },
+ searchOrder:{
+ cageinformation:'鐞嗙墖绗间俊鎭�',
+ productionqueue:'鍑虹墖闃熷垪',
+ outputglassID:'鍑虹墖鐜荤拑ID',
+ startposition:'璧峰浣嶇疆',
+ targetlocation:'鐩爣浣嶇疆',
+ trips:'杞︽',
+ number:'搴忓彿',
+ taskstatus:'浠诲姟鐘舵��',
+ filmenter:'绛夊緟杩涚墖',
+ infilm:'杩涜涓�',
+ endtask:'缁撴潫浠诲姟',
+ completetask:'瀹屾垚浠诲姟',
+ intoglassid:'杩涚墖鐜荤拑ID',
+ line:'绾胯矾',
+ Usage:'浣跨敤鐜�',
+ free:'绌洪棽锛堟牸瀛愭暟锛�',
+ addcage:'娣诲姞鐞嗙墖绗间俊鎭�',
+ glassIDa:'鐜荤拑ID锛�',
+ glassID:'鐜荤拑ID',
+ inglassID:'璇疯緭鍏ョ幓鐠僆D',
+ pieceingrid:'灏忕墖鍦ㄦ牸鍐呯殑椤哄簭',
+ pieceingrida:'灏忕墖鍦ㄦ牸鍐呯殑椤哄簭锛�',
+ inpieceingrid:'璇疯緭鍏ュ皬鐗囧湪鏍煎唴鐨勯『搴�',
+ cardnumber:'娴佺▼鍗″彿',
+ cardnumbera:'娴佺▼鍗″彿锛�',
+ incardnumber:'璇疯緭鍏ユ祦绋嬪崱鍙�',
+ typeglass:'鐜荤拑绫诲瀷',
+ typeglassa:'鐜荤拑绫诲瀷锛�',
+ intypeglass:'璇疯緭鍏ョ幓鐠冪被鍨�',
+ width:'瀹�',
+ widtha:'瀹斤細',
+ inwidth:'璇疯緭鍏ュ',
+ height:'楂�',
+ heighta:'楂橈細',
+ inheight:'璇疯緭鍏ラ珮',
+ coatingtypes:'鑶滅郴',
+ thickness:'鍘氬害',
+ thicknessa:'鍘氬害锛�',
+ inthickness:'璇疯緭鍏ュ帤搴�',
+ layoutID:'閽㈠寲鐗堝浘ID',
+ layoutIDa:'閽㈠寲鐗堝浘ID锛�',
+ inlayoutID:'璇疯緭鍏ラ挗鍖栫増鍥綢D',
+ picturesequence:'閽㈠寲鐗堝浘鐗囧簭',
+ picturesequencea:'閽㈠寲鐗堝浘鐗囧簭锛�',
+ inpicturesequence:'璇疯緭鍏ラ挗鍖栫増鍥剧墖搴�',
+ startstatus:'鍚敤鐘舵��',
+ startstatusa:'鍚敤鐘舵�侊細',
+ instartstatus:'璇疯緭鍏ュ惎鐢ㄧ姸鎬�',
+ glassgaps:'鐜荤拑闂撮殭',
+ glassgapsa:'鐜荤拑闂撮殭锛�',
+ inglassgaps:'璇疯緭鍏ョ幓鐠冮棿闅�',
+ sure:'纭',
+ cancel:'鍙栨秷',
+ glassID:'鐜荤拑ID',
+ operate:'鎿嶄綔',
+ breakage:'鐮存崯',
+ delete:'鍒犻櫎',
+ outfilm:'鍑虹墖',
+ cagetableID:'澶х悊鐗囩琛↖D',
+ cagenumber:'鐞嗙墖绗煎彿',
+ gridnumber:'鏍呮牸鍙�',
+ gridnumbera:'鏍呮牸鍙凤細',
+ grid:'璇疯緭鍏ユ爡鏍煎彿',
+ enable:'鍚敤',
+ disable:'绂佺敤',
+ remainingwidth:'鍓╀綑瀹藉害',
+ add:'娣诲姞',
+ sheetID:'閽㈠寲灏忕墖淇℃伅琛↖D',
+ processcards:'娴佺▼鍗�',
+ processcardtype:'娴佺▼鍗$幓鐠冪被鍨�',
+ acceptshorizontal:'閽㈠寲鏄惁鎺ュ彈妯斁',
+ xcoordinates:'x鍧愭爣',
+ ycoordinates:'y鍧愭爣',
+ rotationangle:'鏃嬭浆瑙掑害锛堥�嗘椂閽堬級',
+ state:'鐘舵��',
+ takeout:'鎷胯蛋',
+ deletemessage:'鏄惁鍒犻櫎璇ユ潯淇℃伅?',
+ prompt:'鎻愮ず',
+ yes:'鏄�',
+ accept:'鎺ュ彈',
+ noaccept:'涓嶆帴鍙�',
+ filmcomplete:'鍑虹墖瀹屾垚',
+ waiting:'绛夊緟涓�',
+ broke:'鏄惁鐮存崯璇ユ潯淇℃伅锛�',
+ brokeb:'鏄惁鎷胯蛋璇ユ潯淇℃伅锛�',
+ outfil:'鏄惁鍑虹墖璇ユ潯淇℃伅锛�',
+ inputid:'璇疯緭鍏ョ幓鐠僆D',
+ search:'鎼滅储',
+ tabid:'澶х悊鐗囩璇︽儏琛╥d',
+ tid:'璁惧id',
+ fin:'鏄惁瀹屾垚浠诲姟锛�',
+ },
+ workOrder:{
+ glassID:'鐜荤拑ID',
+ height:'楂�',
+ width:'瀹�',
+ thickness:'鍘氬害',
+ coatingtypes:'鑶滅郴',
+ productionsequence:'鍑虹墖椤哄簭',
+ cardnumber:'娴佺▼鍗″彿',
+ operate:'鎿嶄綔',
+ messagedamaged:'鏄惁鐮存崯璇ユ潯淇℃伅?',
+ prompt:'鎻愮ず',
+ yes:'鏄�',
+ cancel:'鍙栨秷',
+ takemessage:'鏄惁鎷胯蛋璇ユ潯淇℃伅锛�',
+ breakage:'鐮存崯',
+ takeout:'鎷胯蛋',
+ },
+ processCard:{
+ intofurnace:'杩涚倝涓�',
+ beforefurnace:'杩涚倝鍓�',
+ outfurnace:'宸插嚭鐐夌幓鐠�',
+ },
+ reportWork:{
+ lowerbit:'涓嬬墖浣�',
+ shelfnumber:'鏋跺彿',
+ cardnumber:'娴佺▼鍗″彿',
+ totalquantity:'鎬绘暟閲�',
+ beendropped:'宸茶惤鏋舵暟閲�',
+ state:'鐘舵��',
+ devicenumber:'璁惧鍙�',
+ startstatus:'鍚敤鐘舵��',
+ enable:'鍚敤',
+ unenable:'鏈惎鐢�',
+ operate:'鎿嶄綔',
+ bindingshelves:'缁戝畾鏋跺瓙',
+ clear:'娓呯┖',
+ workstation:'鍙峰伐浣�',
+ shelfnumbera:'鏋跺彿锛�',
+ cardnumbera:'娴佺▼鍗″彿锛�',
+ incardnumber:'璇烽�夋嫨娴佺▼鍗″彿',
+ clearglass:'娓呴櫎鏋跺瓙鐜荤拑',
+ sure:'纭',
+ cancel:'鍙栨秷',
+ glassinformation:'鐜荤拑淇℃伅',
+ glassID:'鐜荤拑ID',
+ coatingtypes:'鑶滅郴',
+ thickness:'鍘氬害',
+ width:'瀹藉害',
+ height:'楂樺害',
+ },
+
+ productStock:{
+ addusers:'娣诲姞鐢ㄦ埛',
+ username:'鐢ㄦ埛鍚�',
+ usernamea:'鐢ㄦ埛鍚嶏細',
+ inusername:'璇疯緭鍏ョ敤鎴峰悕',
+ role:'瑙掕壊',
+ rolea:'瑙掕壊锛�',
+ inrole:'璇烽�夋嫨瑙掕壊',
+ test:'娴嬭瘯',
+ admin:'绠$悊鍛�',
+ operate:'鎿嶄綔',
+ resetpassword:'閲嶇疆瀵嗙爜',
+ exit:'缂栬緫',
+ delete:'鍒犻櫎',
+ prompt:'鎻愮ず',
+ repassword:'鏄惁閲嶇疆鐢ㄦ埛瀵嗙爜锛�',
+ yes:'鏄�',
+ cancel:'鍙栨秷',
+ reusername:'淇敼鐢ㄦ埛',
+ addusername:'娣诲姞鐢ㄦ埛',
+ password:'瀵嗙爜锛�',
+ sure:'纭',
+ inpassword:'璇疯緭鍏ュ瘑鐮�',
+ deusername:'鏄惁鍒犻櫎璇ョ敤鎴凤紵',
+ },
+ customer:{
+ addmenu:'娣诲姞鑿滃崟',
+ firstmenu:'涓�绾ц彍鍗曟爮',
+ link:'閾炬帴',
+ inlink:'璇疯緭鍏ラ摼鎺�',
+ linka:'閾炬帴锛�',
+ sort:'鎺掑簭',
+ insort:'璇疯緭鍏ユ帓搴�',
+ sorta:'鎺掑簭锛�',
+ operate:'鎿嶄綔',
+ exit:'缂栬緫',
+ delete:'鍒犻櫎',
+ semenu:'浜岀骇鑿滃崟鏍�',
+ menu:'鑿滃崟鏍忥細',
+ inmenu:'璇疯緭鍏ヨ彍鍗曟爮',
+ sure:'纭',
+ cancel:'鍙栨秷',
+ exmene:'淇敼鑿滃崟',
+ yes:'鏄�',
+ demenu:'鏄惁鍒犻櫎璇ヨ彍鍗曪紵',
+ prompt:'鎻愮ず',
+ },
+ delivery:{
+ addrole:'娣诲姞瑙掕壊',
+ editrole:'淇敼瑙掕壊',
+ role :'瑙掕壊',
+ rolea :'瑙掕壊锛�',
+ inrole :'璇疯緭鍏ヨ鑹�',
+ operate :'鎿嶄綔',
+ edit :'缂栬緫',
+ delete :'鍒犻櫎',
+ yes:'鏄�',
+ sure :'纭',
+ cancel :'鍙栨秷',
+ derole :'鏄惁鍒犻櫎璇ヨ鑹�',
+ prompt:'鎻愮ず',
+ },
+ replenish:{
+ patchManagement:'琛ョ墖绠$悊',
+
+ },
+ rework:{
+ reworkManagement:'杩斿伐绠$悊',
+ addRework:"杩斿伐鏂板 ",
+ },
+
+
+ role:{
+ id:'ID',
+ characterHomepage:'瑙掕壊棣栭〉',
+ },
+ user:{
+ userId:'鐢ㄦ埛ID',
+ userHomepage:'鐢ㄦ埛棣栭〉',
+ },
+ orderBasicData:{
+ order:'璁㈠崟',
+ orderType:'璁㈠崟绫诲瀷',
+ },
+ machine:{
+ basicId:'璁惧缂栧彿',
+ basicName:'璁惧鍚嶇О',
+ basicCategory:'鎵�鍦ㄥ伐搴�',
+ tempering:'閽㈠寲',
+ },
+ report:{
+ productionReport:'鐢熶骇鎶ヨ〃',
+ workInProgressReport:'鍦ㄥ埗鍝佹姤琛�',
+ },
+ productionBasicData:{
+ basicDataQuery :'鍩虹鏁版嵁鏌ヨ',
+ },
+ mainIngredient:{
+ materialInformation :'鐗╂枡璧勬枡',
+ },
+ mainIngredientStock:{
+ materialName :'鐗╂枡鍚嶇О',
+ createTime :'杩斿簱鏃ユ湡',
+ },
+}
\ No newline at end of file
diff --git a/UI-Project/src/layout/MainErpView.vue b/UI-Project/src/layout/MainErpView.vue
index 3bd4a05..85cd1aa 100644
--- a/UI-Project/src/layout/MainErpView.vue
+++ b/UI-Project/src/layout/MainErpView.vue
@@ -1,14 +1,17 @@
<script setup>
-import {useRouter} from 'vue-router'
import useUserInfoStore from '@/stores/userInfo'
import userInfo from '@/stores/userInfo'
import request from '@/utils/request'
import {ElMessage} from 'element-plus'
-import {ref, watch} from 'vue'
+import {ref, watch, onMounted } from 'vue'
import deepClone from '@/utils/deepClone'
-
+import { useRouter } from 'vue-router';
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
const store = userInfo()
+// const { $i18n } = useI18n(); // 鑾峰彇 i18n 瀹炰緥
const router = useRouter()
const userStore = useUserInfoStore()
const user = userStore.user.userName
@@ -19,27 +22,32 @@
// let userInfo = userInfoStr.user.token;
let token = userInfo; // 鎻愬彇 token
// 閫�鍑虹櫥褰曟柟娉�
-const quit = async () => {
- try {
- const response = await request.get('/loadGlass/sys/user/logout', {
- token: token,
- user: null,
- })
- if (response.code === 200) {
- // 鐧诲嚭鎴愬姛锛屾竻闄ゆ湰鍦板瓨鍌ㄧ殑 userInfo
- localStorage.removeItem('userInfo');
- // 鍙互鍦ㄨ繖閲岄噸缃簲鐢ㄧ姸鎬侊紝濡傚鑸埌鐧诲綍椤电瓑
- console.log('鐧诲嚭鎴愬姛');
- } else {
- // 澶勭悊閿欒鎯呭喌
- console.error('鐧诲嚭澶辫触', response);
- }
+function quit() {
+ // removeToken()
+ router.push('/login')
}
-catch (error) {
- // 澶勭悊閿欒
- console.error(error);
- }
-}
+// const quit = async () => {
+// try {
+
+// const response = await request.get('/loadGlass/sys/user/logout', {
+// token: token,
+// user: null,
+// })
+// if (response.code === 200) {
+// // 鐧诲嚭鎴愬姛锛屾竻闄ゆ湰鍦板瓨鍌ㄧ殑 userInfo
+// localStorage.removeItem('userInfo');
+// // 鍙互鍦ㄨ繖閲岄噸缃簲鐢ㄧ姸鎬侊紝濡傚鑸埌鐧诲綍椤电瓑
+// console.log('鐧诲嚭鎴愬姛');
+// } else {
+// // 澶勭悊閿欒鎯呭喌
+// console.error('鐧诲嚭澶辫触', response);
+// }
+// }
+// catch (error) {
+// // 澶勭悊閿欒
+// console.error(error);
+// }
+// }
// store.createWebSocket();
// function quit() {
// userStore.$patch({
@@ -57,26 +65,79 @@
// });
// }
+
+ function replaceChineseWithEnglish(menuData) {
+ // 瀹氫箟涓嫳鏂囧鐓у叧绯诲璞�
+ const translation = {
+ '涓婄墖鏈�': '小褌芯谢 蟹邪谐褉褍蟹泻懈',
+ '鎺扮墖/璇嗗埆': '袪邪蟹谢芯屑/懈写械薪褌懈褎懈泻邪褑懈褟',
+ '鍗у紡缂撳瓨': ' 袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉',
+ '纾ㄨ竟鍓嶅崸寮忕紦瀛�': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 锌械褉械写 褕谢懈褎芯胁泻芯泄',
+ '涓嬬墖鍗у紡缂撳瓨': '袚芯褉懈蟹芯薪褌邪谢褜薪褘泄 斜褍褎械褉 褋褌械泻谢邪 褉邪蟹谐褉褍蟹泻懈',
+ '纾ㄨ竟锛堝喎鍔犲伐锛�': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',
+ '1绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 1 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',
+ '2绾跨(杈�(鍐峰姞宸�)': '楔谢懈褎芯胁邪褌褜 泻褉邪褟 2 谢懈薪懈懈 (褏芯谢芯写薪邪褟 芯斜褉邪斜芯褌泻邪)',
+ '澶х悊鐗囩': '袘褍褎械褉薪邪褟 褋懈褋褌械屑邪',
+ '閽㈠寲': '袟邪泻邪谢泻邪',
+ '閽㈠寲鍓�': '袩械褉械写 蟹邪泻邪谢泻懈',
+ '閽㈠寲鍚�': '袩芯褋谢械 蟹邪泻邪谢泻懈',
+ '涓嬬墖鍙�': '小褌芯谢 褉邪蟹谐褉褍蟹泻懈',
+ '绯荤粺绠$悊': '校锌褉邪胁谢械薪懈械 褋懈褋褌械屑芯泄',
+ '鐢ㄦ埛绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢褜蟹芯胁邪褌械谢械屑',
+ '鏉冮檺绠$悊': '校锌褉邪胁谢械薪懈械 锌芯谢薪芯屑芯褔懈褟屑懈',
+ '瑙掕壊绠$悊': '校锌褉邪胁谢械薪懈械 褉芯谢褜褞',
+ };
+ menuData.forEach(menu => {
+ menu.menuName = translation[menu.menuName] || menu.menuName;
+ // if (menu.children) {
+ menu.children && menu.children.forEach(submenu => {
+ submenu.menuName = translation[submenu.menuName] || submenu.menuName;
+ });
+ // }
+ });
+}
//鎻愬彇鑿滃崟妯″潡鍒楄〃
let menuList = $ref([])
-// request.get('/loadGlass/menu/sysMenu/list').then((res) => {
+
+// onMounted(async () => {
+// try {
+// const res = await request.get('/loadGlass/sys/menu/getMenuTree'); // 鍋囪 request.get 杩斿洖 Promise
+// if (res.code == 200) {
+// // 浣跨敤 value 灞炴�ф潵淇敼 ref 寮曠敤鐨勫��
+// menuList.value = deepClone(res.data);
+// const language = $i18n.locale;
+// if (language === 'en') {
+// replaceChineseWithEnglish(menuList.value); // 浼犲叆 ref 鐨� value
+// }
+// console.log(res.data.token); // 濡傛灉 res.data 涓湁 token 鐨勮瘽
+// } else {
+// ElMessage.warning(res.msg);
+// router.push('/login');
+// }
+// } catch (error) {
+// // 澶勭悊璇锋眰閿欒
+// console.error('鑾峰彇鑿滃崟鍒楄〃鏃跺嚭閿�:', error);
+// }
+// });
request.get('/loadGlass/sys/menu/getMenuTree').then((res) => {
if (res.code == 200) {
- menuList = deepClone(res.data)
- console.log(response.data.token);
+ menuList = res.data
+ console.log(language.value)
+ if (language.value === 'en') {
+
+ replaceChineseWithEnglish(menuList);
+ }
} else {
ElMessage.warning(res.msg)
router.push('/login')
}
})
-
const menu = ref(null)
let indexKey = ref(null)
function handleOpen(key) {
indexKey.value = key
}
-
watch(
indexKey,
(newVal, oldVal) => {
@@ -110,13 +171,20 @@
<img src="../assets/northGlass.ico"
alt=""
style="max-width: 100%;max-height: 100%">
- <h3 style="margin: 1rem ;font-weight: bold;width: 20vw;"> 娆㈣繋{{ user }}浣跨敤鍖楃幓MES绯荤粺锛�</h3>
+ <h3 style="margin: 1rem ;font-weight: bold;width: 33vw;"> {{ $t('main.titleFirst') }}{{ user }}{{ $t('main.titleLast') }}</h3>
<span style="height: 70%;width: 78vw;margin-top: 1rem;">
+ <!-- <el-button class="sys-quit"
+ @click="quit"
+ round>
+ <el-icon size="large">
+ <SwitchButton size=""/>{{ $t('main.quit') }}
+ </el-icon>
+ </el-button> -->
<el-button class="sys-quit"
@click="quit"
round>
<el-icon size="large">
- <SwitchButton size=""/>閫�鍑�
+ <SwitchButton size=""/>{{ $t('main.quit') }}
</el-icon>
</el-button>
</span>
@@ -124,33 +192,45 @@
</el-header>
<div id="line"></div>
<el-container>
- <el-aside width="160px"
+ <!-- <el-aside width="160px"
style="height: 99%; background-color: #fff;">
<div class="menu">
<div v-for="items in menuList">
<div class='menu_title'
@click="openMenu(items.id)">
- <!-- <span class='indicator' >鈱�</span> -->
- <!-- <span class='indicator' >鈮�</span> -->
- <!-- <img src="../assets/9.png" alt="" style="max-width: 50%;max-height: 50%;"> -->
<span>鈽�</span>
{{ items.menuName }}
</div>
<ul class='enter-x-left'
v-show="openFlag==items.id">
-
<li v-for="menuItem in items.children"
style="margin-bottom:2px">
<router-link :to="{path:menuItem.url}">
{{ menuItem.menuName }}
</router-link>
-
- </li>
- </ul>
- </div>
- </div>
- </el-aside>
-
+ </el-aside> -->
+ <el-row :span="20">
+ <el-menu :default-active="activePath" class="el-menu-vertical-demo" background-color="#fff">
+ <div class="menu">
+ <div v-for="items in menuList">
+ <div class='menu_title'
+ @click="openMenu(items.id)">
+ <span>鈽�</span>
+ {{ items.menuName }}
+ </div>
+ <ul class='enter-x-left'
+ v-show="openFlag==items.id">
+ <li v-for="menuItem in items.children"
+ style="margin-bottom:2px">
+ <router-link :to="{path:menuItem.url}">
+ {{ menuItem.menuName }}
+ </router-link>
+ </li>
+ </ul>
+ </div>
+ </div>
+ </el-menu>
+ </el-row>
<el-main>
<div id="main">
<router-view></router-view>
@@ -163,6 +243,17 @@
</template>
<style scoped>
+
+.el-menu-vertical-demo:not(.el-menu--collapse) {
+ width: 200px;
+ min-height: 400px;
+ text-align: left;
+
+}
+
+
+
+
#all {
background-color: #eee;
height: 100%;
@@ -256,6 +347,7 @@
ul li {
height: 28px;
+ width: 200px;
line-height: 30px;
/* background: rgb(128, 128, 128); */
color: #000000;
@@ -304,7 +396,11 @@
}
.menu_title {
- width: 140px;
+ width: 180px;
+ /* white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis; */
+
height: 45px;
line-height: 55px;
/* background: #fafafa; */
diff --git a/UI-Project/src/main.js b/UI-Project/src/main.js
index fe656ab..b8b328b 100644
--- a/UI-Project/src/main.js
+++ b/UI-Project/src/main.js
@@ -6,22 +6,22 @@
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
-import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import 'element-plus/dist/index.css'
+import zhCn from 'element-plus/dist/locale/zh-cn.mjs'
import VXETable from 'vxe-table'
import 'vxe-table/lib/style.css'
-// import i18n from './lang/i18n'
-
-
+import i18n from '@/lang'
+
const app = createApp(App)
const pinia = createPinia()
pinia.use(piniaPluginPersistedstate )
-// app.use(i18n)
app.use(VXETable)
app.use(pinia)
app.use(router)
+app.use(ElementPlus)
app.use(ElementPlus,{
locale: zhCn,
})
+app.use(i18n)
app.mount('#app')
\ No newline at end of file
diff --git a/UI-Project/src/router/index.js b/UI-Project/src/router/index.js
index 764db3a..2beb066 100644
--- a/UI-Project/src/router/index.js
+++ b/UI-Project/src/router/index.js
@@ -1,5 +1,5 @@
import {createRouter, createWebHashHistory} from 'vue-router'
-
+// import i18n from '@/utils/lang'
// import User from '../views/sys/User.vue'
// import Role from '../views/sys/Role.vue'
// import Menu from '../views/sys/Menu.vue'
diff --git a/UI-Project/src/views/Caching/cachingbefore.vue b/UI-Project/src/views/Caching/cachingbefore.vue
index 3672600..9f4ed48 100644
--- a/UI-Project/src/views/Caching/cachingbefore.vue
+++ b/UI-Project/src/views/Caching/cachingbefore.vue
@@ -13,6 +13,9 @@
import { ElMessage, ElMessageBox } from 'element-plus'
// import LanguageMixin from './lang/LanguageMixin'
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
const tableData = ref([])
const slot = ref('')
const adjustedRects = ref([]);
@@ -47,19 +50,18 @@
}
row.enable_state = newState;
};
-const open = async(row) => {
- try {
+const open = async(row) => {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鎶ョ己璇ユ潯淇℃伅?',
- '鎻愮ず',
+ t('sorter.information'),
+ t('sorter.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('sorter.yes'),
+ cancelButtonText: t('sorter.cancel'),
type: 'warning',
- }
+ }
);
if (confirmResult === 'confirm') {
- // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
var url="/cacheGlass/edgStorageCage/edgStorageCageGlass?edgStorageCageId="+row.id;
console.log(url);
const response = await request.post(url, {
@@ -68,13 +70,10 @@
if (response.code === 200) {
ElMessage.success(response.message);
} else {
- // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
ElMessage.error(response.msg);
- // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
}
}
} catch (error) {
- // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
console.error('鍙戠敓閿欒:', error);
}
};
@@ -111,13 +110,13 @@
<el-table height="240" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="slot" align="center" label="鏍呮牸鍙�" min-width="80" />
- <el-table-column prop="glass_id" align="center" label="鐜荤拑缂栧彿" min-width="80" />
- <el-table-column prop="width" align="center" label="瀹�" min-width="120" />
- <el-table-column prop="height" align="center" label="楂�" min-width="120" />
+ <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" />
+ <el-table-column prop="glass_id" align="center" :label="$t('sorter.glassnumber')" min-width="80" />
+ <el-table-column prop="width" align="center" :label="$t('sorter.width')" min-width="120" />
+ <el-table-column prop="height" align="center" :label="$t('sorter.height')" min-width="120" />
<el-table-column
align="center"
- label="鍚敤鐘舵��"
+ :label="$t('sorter.startstatus')"
min-width="80"
prop="enable_state"
>
@@ -126,17 +125,17 @@
:type="scope.row.enable_state === 1 ? 'success' : 'danger'"
@click="toggleEnableState(scope.row)"
>
- {{ scope.row.enable_state === 1 ? '鍚敤' : '绂佺敤' }}
+ {{ scope.row.enable_state === 1 ? $t('sorter.start') : $t('sorter.disable') }}
</el-tag>
</template>
<!-- <template #default="scope">
<el-tag type="success" >{{ scope.row.enable_state==1?"鍚敤":"鏈惎鐢�" }}</el-tag>
</template> -->
</el-table-column>
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <el-table-column fixed="right" :label="$t('sorter.operate')" align="center" width="200">
<template #default="scope">
<!-- <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">鎶ョ己</el-button> -->
- <el-button size="mini" type="text" plain @click="open(scope.row)">鎶ョ己</el-button>
+ <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('sorter.deficiencieste') }}</el-button>
</template>
</el-table-column>
</el-table>
diff --git a/UI-Project/src/views/Caching/cachingun.vue b/UI-Project/src/views/Caching/cachingun.vue
index d454956..94c8b0b 100644
--- a/UI-Project/src/views/Caching/cachingun.vue
+++ b/UI-Project/src/views/Caching/cachingun.vue
@@ -1,5 +1,58 @@
+<template>
+ <div>
+ <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="240" ref="table"
+ @selection-change="handleSelectionChange"
+ :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
+ <el-table-column prop="slot" align="center" :label="$t('sorter.gridnumber')" min-width="80" />
+ <el-table-column prop="glass_id" align="center" :label="$t('sorter.glassnumber')" min-width="80" />
+ <el-table-column prop="width" align="center" :label="$t('sorter.width')" min-width="120" />
+ <el-table-column prop="height" align="center" :label="$t('sorter.height')" min-width="120" />
+ <el-table-column
+ align="center"
+ :label="$t('sorter.startstatus')"
+ min-width="80"
+ prop="enable_state"
+ >
+ <template #default="scope">
+ <el-tag
+ :type="scope.row.enable_state === 1 ? 'success' : 'danger'"
+ @click="toggleEnableState(scope.row)"
+ >
+ {{ scope.row.enable_state === 1 ? $t('sorter.start') : $t('sorter.disable') }}
+ </el-tag>
+ </template>
+ <!-- <template #default="scope">
+ <el-tag type="success" >{{ scope.row.enable_state==1?"鍚敤":"鏈惎鐢�" }}</el-tag>
+ </template> -->
+ </el-table-column>
+ <el-table-column fixed="right" :label="$t('sorter.operate')" align="center" width="200">
+ <template #default="scope">
+ <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('sorter.deficiencieste') }}</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-card>
+ </div>
+ <div id="awatch">
+ <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;position: relative;">
+ <div style="position: absolute; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
+ <div
+ v-for="(rect, index) in adjustedRects"
+ :key="rect"
+ :style="{ position: 'absolute',
+ top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
+ backgroundColor: '#409EFF'
+ }"
+ >
+ </div>
+ </div>
+</div>
+</template>
<script setup>
-import {Search} from "@element-plus/icons-vue";
+import {Search,Lock,Avatar} from "@element-plus/icons-vue";
import {reactive} from "vue";
import {useRouter} from "vue-router"
const router = useRouter()
@@ -12,6 +65,9 @@
import { ElMessage, ElMessageBox } from 'element-plus'
// import LanguageMixin from './lang/LanguageMixin'
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+// import i18n from '@/i18n';
const tableData = ref([])
const slot = ref('')
const adjustedRects = ref([]);
@@ -36,17 +92,16 @@
// console.error('Error fetching rects :', error);
}
});
-
-const open = async(row) => {
- try {
+const open = async(row) => {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鎶ョ己璇ユ潯淇℃伅?',
- '鎻愮ず',
+ t('sorter.information'),
+ t('sorter.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('sorter.yes'),
+ cancelButtonText: t('sorter.cancel'),
type: 'warning',
- }
+ }
);
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
@@ -63,11 +118,50 @@
// alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
}
}
- } catch (error) {
+ }
+
+
+ catch (error) {
// 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
console.error('鍙戠敓閿欒:', error);
}
-};
+};
+// const open = async(row) => {
+// const { t } = useI18n();
+// try {
+// const confirmMessage = t('sorter.prompt'); // 浣跨敤 $t 缈昏瘧鏂囨湰
+// const confirmResult = await ElMessageBox.confirm(
+// confirmMessage,
+// t('sorter.information'),
+// {
+// confirmButtonText: t('sorter.yes'),
+// cancelButtonText: t('sorter.cancel'),
+// type: 'warning',
+// }
+// );
+// if (confirmResult === 'confirm') {
+// // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+// var url="/cacheGlass/edgStorageCage/edgStorageCageGlass?edgStorageCageId="+row.id;
+// console.log(url);
+// const response = await request.post(url, {
+// esdId: row.esdId
+// })
+// if (response.code === 200) {
+// ElMessage.success(response.message);
+// } else {
+// // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+// ElMessage.error(response.msg);
+// // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+// }
+// }
+// }
+
+
+// catch (error) {
+// // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+// console.error('鍙戠敓閿欒:', error);
+// }
+// };
const toggleEnableState = async (row) => {
const newState = row.enable_state === 1 ? 0 : 1;
// 鍙戦�佽姹傚埌鍚庣鏇存柊鐘舵�侊紙杩欓噷鐪佺暐浜嗗疄闄呯殑璇锋眰閫昏緫锛�
@@ -105,62 +199,6 @@
closeWebSocket();
});
</script>
-
-<template>
- <div>
- <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="240" ref="table"
- @selection-change="handleSelectionChange"
- :data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="slot" align="center" label="鏍呮牸鍙�" min-width="80" />
- <el-table-column prop="glass_id" align="center" label="鐜荤拑缂栧彿" min-width="80" />
- <el-table-column prop="width" align="center" label="瀹�" min-width="120" />
- <el-table-column prop="height" align="center" label="楂�" min-width="120" />
- <el-table-column
- align="center"
- label="鍚敤鐘舵��"
- min-width="80"
- prop="enable_state"
- >
- <template #default="scope">
- <el-tag
- :type="scope.row.enable_state === 1 ? 'success' : 'danger'"
- @click="toggleEnableState(scope.row)"
- >
- {{ scope.row.enable_state === 1 ? '鍚敤' : '绂佺敤' }}
- </el-tag>
- </template>
- <!-- <template #default="scope">
- <el-tag type="success" >{{ scope.row.enable_state==1?"鍚敤":"鏈惎鐢�" }}</el-tag>
- </template> -->
- </el-table-column>
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
- <template #default="scope">
- <!-- <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">鎶ョ己</el-button> -->
- <el-button size="mini" type="text" plain @click="open(scope.row)">鎶ョ己</el-button>
- </template>
- </el-table-column>
- </el-table>
- </div>
- </el-card>
- </div>
- <div id="awatch">
- <img src="../../assets/woshihuancun.png" alt="" style="width: 60%;height: 90%;margin-left: 260px;margin-top: 20px;position: relative;">
- <div style="position: absolute; width: 500px;height: 95px;margin-top: -165px;margin-left: 450px;">
- <div
- v-for="(rect, index) in adjustedRects"
- :key="rect"
- :style="{ position: 'absolute',
- top: `${rect.id}px`, left: `10px`, width: `${rect.width}px`, height: `5px`,
- backgroundColor: '#409EFF'
- }"
- >
- </div>
- </div>
-</div>
-</template>
-
<style scoped>
#dt { display:block; float:left;line-height: 20px;margin-left: 100px;}
diff --git a/UI-Project/src/views/Identify/identify.vue b/UI-Project/src/views/Identify/identify.vue
index 9316fc9..a972dbe 100644
--- a/UI-Project/src/views/Identify/identify.vue
+++ b/UI-Project/src/views/Identify/identify.vue
@@ -1,6 +1,6 @@
<template>
<el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
- <el-scrollbar height="700px">
+ <el-scrollbar height="600px">
<div id="app" style="margin-top: 20px;">
<div
:style="{ width: `${olWidth}px`, height: `${olHeight}px`,position: 'relative' }"
@@ -26,12 +26,12 @@
</div>
<!-- 鐐瑰嚮寮瑰嚭 -->
<el-dialog v-model="blind" top="30vh" width="15%" style="text-align: center;">
- <el-button type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 120px;margin-left: 10px;">
- 鐮存崯
+ <el-button type="warning" plain :icon="Delete" @click="handleDamage(currentGlassId)" style="width: 140px;margin-left: 10px;">
+ {{ $t('order.dilapidation') }}
</el-button>
- <el-button type="danger" plain @click="handleManualTake(currentGlassId)" style="width: 120px;margin-top: 10px;">
+ <el-button type="danger" plain @click="handleManualTake(currentGlassId)" style="width: 140px;margin-top: 10px;">
<el-icon class="el-icon--right"><Upload /></el-icon>
- 浜哄伐鎷胯蛋</el-button>
+ {{ $t('order.Takeaway') }}</el-button>
</el-dialog>
</div>
</div>
@@ -45,6 +45,9 @@
import request from "@/utils/request"
import { WebSocketHost ,host} from '@/utils/constants'
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+ import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
const blind = ref(false)
const olWidth = ref();
const olHeight = ref();
@@ -76,8 +79,8 @@
adjustedRects.value = rawRects.map(rect => ({
...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
- x_axis: (rect.x_axis*100) * 0.004, // 灏唜鍊奸櫎浠�3
- y_axis: (rect.y_axis*100) * 0.004,
+ x_axis: (rect.x_axis*100) * 0.003, // 灏唜鍊奸櫎浠�3
+ y_axis: (rect.y_axis*100) * 0.003,
width: (rect.width*100) * 0.002 ,
widtha: rect.width ,
heighta: rect.height ,
@@ -183,8 +186,8 @@
// adjustedRects.value = data.currentCutTerritory[0]
adjustedRects.value = data.currentCutTerritory[0].map(rect => ({
...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
- x_axis: (rect.x_axis*100) * 0.004, // 灏唜鍊奸櫎浠�3
- y_axis: (rect.y_axis*100) * 0.004,
+ x_axis: (rect.x_axis*100) * 0.003, // 灏唜鍊奸櫎浠�3
+ y_axis: (rect.y_axis*100) * 0.003,
width: (rect.width*100) * 0.002 ,
widtha: rect.width ,
heighta: rect.height ,
diff --git a/UI-Project/src/views/LoginView.vue b/UI-Project/src/views/LoginView.vue
index 40d2d9b..d84f329 100644
--- a/UI-Project/src/views/LoginView.vue
+++ b/UI-Project/src/views/LoginView.vue
@@ -5,12 +5,17 @@
import {ElMessage} from 'element-plus'
import request from '@/utils/request'
import userInfo from '@/stores/userInfo'
-
+import { useI18n } from 'vue-i18n'
const store = userInfo()
let ruleFormRef = ref<FormInstance>()
const router = useRouter()
const route = useRoute()
-
+const { t } = useI18n()
+let language = ref(localStorage.getItem('lang') || 'zh')
+const changeLanguage = () =>{
+ localStorage.setItem('lang',language.value)
+ location.reload()
+}
const userForm = reactive({
userName: '',
password: '',
@@ -22,7 +27,7 @@
const validateUser = (rule: any, value: any, callback: any) => {
if (value === '') {
- callback(new Error('璇疯緭鍏ヤ綘鐨勮处鍙�'))
+ callback(new Error(t('login.userErr')))
} else {
callback()
}
@@ -30,7 +35,7 @@
const validatePass = (rule: any, value: any, callback: any) => {
if (value === '') {
- callback(new Error('璇疯緭鍏ヤ綘鐨勫瘑鐮�'))
+ callback(new Error(t('login.pwErr')))
} else {
callback()
}
@@ -56,7 +61,7 @@
console.log(res.data)
router.push('/main')
- ElMessage.success(`鐧诲綍鎴愬姛`)
+ ElMessage.success(t('login.loginSuccessful'))
} else {
ElMessage.error(res['msg'])
store.$patch({
@@ -67,7 +72,7 @@
}
})
.catch((error) => {
- ElMessage.error('鏈嶅姟鍣ㄨ繛鎺ュけ璐�')
+ ElMessage.error(t('main.connectErr'))
store.$patch({
user: null,
})
@@ -113,26 +118,35 @@
<img src="../../src/assets/3.png">
</div>
<div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);">
- 鍖楃幓MES绯荤粺
+ {{ $t('northglassMESsystem') }}
</div>
</div>
<div id="div-login">
+ <!--璇█鍒囨崲鎸夐挳-->
+ <el-select
+ @change="changeLanguage"
+ v-model="language"
+ placeholder=" "
+ style="float: right;width: 9rem">
+ <el-option value="zh" label="涓枃" />
+ <el-option value="en" label="袪褍褋褋泻懈泄 褟蟹褘泻" />
+ </el-select>
<el-form @submit.native.prevent
ref="ruleFormRef"
:model="userForm"
status-icon
:rules="rules">
<div id="center">
- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">璐﹀彿</div>
+ <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">{{ $t('login.user') }}</div>
<el-form-item prop="userId">
<el-input style="width: 340px;"
v-model="userForm.userName"
type="text"
autocomplete="off"
:prefix-icon="Avatar"
- placeholder="璇疯緭鍏ヨ处鍙�"/>
+ :placeholder="$t('login.userErr')"/>
</el-form-item>
- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">瀵嗙爜</div>
+ <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">{{ $t('login.password') }}</div>
<el-form-item prop="pass">
<el-input style="width: 340px;"
v-model="userForm.password"
@@ -140,7 +154,8 @@
autocomplete="off"
:prefix-icon="Lock"
show-password
- placeholder="璇疯緭鍏ュ瘑鐮�"/>
+ :placeholder="$t('login.pwErr')"
+ />
</el-form-item>
<el-form-item id="submitForm">
<el-button :loading="loginLoadings"
@@ -148,12 +163,12 @@
native-type="submit"
@click="submitForm(ruleFormRef)"
@keyup.enter.native="keyDown(e)"
- plain>鐧诲綍
+ plain>{{ $t('login.login') }}
</el-button>
<el-button :loading="registerLoadings"
type="primary"
@click="register"
- plain>娉ㄥ唽
+ plain>{{ $t('login.register') }}
</el-button>
</el-form-item>
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
index 6c8b687..77bd047 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseReturn.vue
@@ -6,6 +6,9 @@
import { ref, onMounted, onBeforeUnmount } from 'vue';
import { WebSocketHost ,host} from '@/utils/constants'
import { initializeWebSocket, closeWebSocket } from '@/utils/WebSocketService';
+ import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
const dialogFormVisible = ref(true)
const dialogFormVisiblea = ref(false)
const dialogFormVisibleb = ref(false)
@@ -70,12 +73,12 @@
</script>
<template>
<div style="margin-top: 10px;">
- <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">杩涚倝涓�</el-button>
- <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;" >杩涚倝鍓�</el-button>
- <el-button id="searchButton" type="success" @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false">宸插嚭鐐夌幓鐠�</el-button>
+ <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisible = true;dialogFormVisiblea = false;dialogFormVisibleb = false;">{{ $t('processCard.intofurnace') }}</el-button>
+ <el-button style="margin-left: 15px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true;dialogFormVisible = false;dialogFormVisibleb = false;" >{{ $t('processCard.beforefurnace') }}</el-button>
+ <el-button id="searchButton" type="success" @click="dialogFormVisibleb = true;dialogFormVisible = false;dialogFormVisiblea = false">{{ $t('processCard.outfurnace') }}</el-button>
<div v-if="dialogFormVisible" >
- <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 700px;" v-loading="loading">
-<div style="width: 49%;float: left;background-color: #f4f4f5;height: 650px;">
+ <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;height: 600px;" v-loading="loading">
+<div style="width: 49%;float: left;background-color: #f4f4f5;height: 550px;">
<el-scrollbar height="630px">
<div style="position: relative;width: 1400px;">
<div
@@ -92,8 +95,8 @@
</div>
</el-scrollbar>
</div>
-<div style="width: 49%;float: right;background-color: #f4f4f5;height: 650px;">
- <el-scrollbar height="630px">
+<div style="width: 49%;float: right;background-color: #f4f4f5;height: 550px;">
+ <el-scrollbar height="550px">
<div style="position: relative;width: 1400px;">
<div
v-for="(rect, index) in adjustedRects2"
@@ -114,7 +117,7 @@
<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">
+ <el-scrollbar height="550px">
<div style="position: relative;width: 1400px;">
<div
v-for="(rect, index) in adjustedRectsa"
@@ -135,7 +138,7 @@
<div v-if="dialogFormVisibleb">
<!-- 宸插嚭鐐� -->
<el-card style="flex: 1;margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
- <el-scrollbar height="630px">
+ <el-scrollbar height="550px">
<div style="position: relative;width: 1400px;">
<div
v-for="(rect, index) in adjustedRectsb"
diff --git a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
index 2a98019..10bf427 100644
--- a/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
+++ b/UI-Project/src/views/PurchaseReturn/purchaseStorage.vue
@@ -56,7 +56,7 @@
<div style="margin-top: 10px;">
<div>
<el-card style="margin-left: 10px;margin-top: 10px;margin-right: 10px;" v-loading="loading">
- <el-scrollbar height="630px">
+ <el-scrollbar height="600px">
<div style="position: relative;width: 1400px;">
<div
v-for="(rect, index) in adjustedRects"
diff --git a/UI-Project/src/views/RegisterView.vue b/UI-Project/src/views/RegisterView.vue
index 44b8078..9879f09 100644
--- a/UI-Project/src/views/RegisterView.vue
+++ b/UI-Project/src/views/RegisterView.vue
@@ -7,6 +7,10 @@
import { Lock,Avatar } from '@element-plus/icons-vue'
// import {Avatar, UserFilled} from "@element-plus/icons-vue";
+ import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
+
const router = useRouter()
const route = useRoute()
let loginLoadings= ref(false)
@@ -23,9 +27,9 @@
/*鏂规硶*/
const checkName = (rule: any, value: any, callback: any) => {
if (value.trim() === '') {
- callback(new Error('濮撳悕涓嶈兘涓虹┖'))
+ callback(new Error(t('login.namea')))
}else if(value.length>16){
- callback(new Error('闀垮害涓嶈兘瓒呰繃16'))
+ callback(new Error(t('login.len')))
}else{
callback()
}
@@ -33,9 +37,9 @@
const checkPassword = (rule: any, value: any, callback: any) => {
if (value.trim() === '') {
- callback(new Error('瀵嗙爜涓嶈兘涓虹┖'))
+ callback(new Error(t('login.passnull')))
}else if(value.length>16 || value.length<6){
- callback(new Error('瀵嗙爜闀垮害涓嶈兘浣庝簬6鎴栬秴杩�16'))
+ callback(new Error(t('login.leng')))
}else{
callback()
}
@@ -43,11 +47,11 @@
const checkConfirmPassword = (rule: any, value: any, callback: any) => {
if (value.trim() === '') {
- callback(new Error('纭瀵嗙爜涓嶈兘涓虹┖'))
+ callback(new Error(t('login.spwn')))
}else if(value !== register.passWord){
- callback(new Error('涓ゆ瀵嗙爜涓嶇浉鍚�'))
+ callback(new Error(t('login.depass')))
}else if(value.length>16 || value.length<6){
- callback(new Error('瀵嗙爜闀垮害涓嶈兘浣庝簬6鎴栬秴杩�16'))
+ callback(new Error(t('login.leng')))
}else{
callback()
}
@@ -88,14 +92,14 @@
})
})
- ElMessage.success(`娉ㄥ唽鎴愬姛`)
+ ElMessage.success(t('register.registerSuccessful'))
loginLoadings.value=false
} else {
ElMessage.error(res['msg'])
return false
}
}).catch(error => {
- ElMessage.error("鏈嶅姟鍣ㄨ繛鎺ュけ璐�")
+ ElMessage.error(t('main.connectErr'))
loginLoadings.value=false
return false
})
@@ -107,11 +111,6 @@
path:'/login',
})
}
-
-
-
-
- // console.log(route.params)
</script>
<template>
@@ -123,7 +122,7 @@
<img src="../../src/assets/3.png">
</div>
<div style="position: absolute; left: 15vw; top: 22vw; font-size: 55px;color: rgba(29, 33, 41, 1);">
- 鍖楃幓MES绯荤粺
+ {{ $t('northglassMESsystem') }}
</div>
</div>
<div id="div-login">
@@ -135,33 +134,33 @@
:rules="rules"
label-width="75px"
>
- <div id="title">娉ㄥ唽鏂扮敤鎴�</div>
+ <div id="title">{{ $t('register.newuserregister') }}</div>
<div id="center">
<!-- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">濮撳悕</div> -->
- <el-form-item prop="userName" label="濮撳悕:">
+ <el-form-item prop="userName" :label="$t('register.name')">
<el-input
style="width: 200px;"
v-model="register.userName"
type="text"
autocomplete="off"
:prefix-icon="Avatar"
- placeholder="璇疯緭鍏ュ鍚�"
+ :placeholder="$t('register.inputname')"
/>
</el-form-item>
<!-- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">瀵嗙爜</div> -->
- <el-form-item prop="passWord" label="瀵嗙爜:">
+ <el-form-item prop="passWord" :label="$t('register.password')">
<el-input
style="width: 200px;"
v-model="register.passWord"
type="password"
autocomplete="off"
:prefix-icon="Lock"
- placeholder="璇疯緭鍏ュ瘑鐮�"
+ :placeholder="$t('register.pwErr')"
show-password
/>
</el-form-item>
<!-- <div style="color: rgba(78, 89, 105, 1);margin-bottom: 10px;">纭瀵嗙爜</div> -->
- <el-form-item prop="confirmPassword" label="纭瀵嗙爜:">
+ <el-form-item prop="confirmPassword" :label="$t('register.passwordation')">
<el-input
style="width: 200px;"
v-model="register.confirmPassword"
@@ -169,7 +168,7 @@
:prefix-icon="Lock"
autocomplete="off"
show-password
- placeholder="璇风‘璁ゅ瘑鐮�"
+ :placeholder="$t('register.pwErration')"
/>
</el-form-item>
<el-form-item id="submitForm">
@@ -178,13 +177,13 @@
type="primary"
@click="submitForm(ruleFormRef)"
plain
- >纭娉ㄥ唽
+ >{{ $t('register.registration') }}
</el-button>
<el-button
type="primary"
@click="toLogin"
plain
- >鍙栨秷
+ >{{ $t('register.false') }}
</el-button>
</el-form-item>
@@ -196,25 +195,6 @@
</template>
<style scoped>
-/* #main-div{
- position: absolute;
- left:75%;
- top:45%;
- transform: translate(-50%, -50%);
-} */
-/* #register{
- background-color: #fff;
- width: 32vw;
- height: 35vh;
- box-shadow: 0 8px 16px 0 rgba(0,0,0,0), 0 6px 5px 0 rgba(0,0,0,0.19);
- display:flex;
- align-items:center;
- justify-content:center;
- min-height: 280px;
-} */
-/* .el-form{
- max-width: 300px;
-} */
#div-login{
margin-top: 5%;
/* margin-top: 20%; */
diff --git a/UI-Project/src/views/Returns/returns.vue b/UI-Project/src/views/Returns/returns.vue
index f1b1f89..cff32bf 100644
--- a/UI-Project/src/views/Returns/returns.vue
+++ b/UI-Project/src/views/Returns/returns.vue
@@ -5,6 +5,8 @@
const router = useRouter()
import type { TableColumnCtx } from 'element-plus'
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)
@@ -25,7 +27,8 @@
const selectedValuea = ref('');
const selectedValueb = ref('');
const selectedValuec = ref('');
-const upstatus = ref('涓婄墖鏈烘墜鍔ㄧ姸鎬侊細'); // 鍋囪杩欎釜鐢ㄤ簬鏄剧ず鑷姩/鎵嬪姩鐘舵��
+// const upstatus = ref('涓婄墖鏈烘墜鍔ㄧ姸鎬侊細'); // 鍋囪杩欎釜鐢ㄤ簬鏄剧ず鑷姩/鎵嬪姩鐘舵��
+const upstatus = ref(t('basicData.machineaa'));
const cuttingMachine = ref(''); // 鍋囪杩欎釜鐢ㄤ簬瀛樺偍鍚庣杩斿洖鐨勭姸鎬佸�硷紙0鎴�1锛�
const cuttingMachineStatusColor = ref('#911005'); // 鐢ㄤ簬鍔ㄦ�佽缃甶鏍囩鐨勮儗鏅壊
const inKageWord = ref(0); // 鐢ㄤ簬瀛樺偍瑕佷紶閫掔粰鎺ュ彛鐨刬nKageWord鍊�
@@ -260,7 +263,7 @@
else {
ElMessage({
type: 'info',
- message: '绗簩琛屽拰绗洓琛岀殑楂樺繀椤诲ぇ浜�2700鎵嶈兘淇濆瓨锛�',
+ message: t('basicData.pause'),
})
}
@@ -375,7 +378,7 @@
}
} else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') {
// 鎻愮ず鐢ㄦ埛鎵撴爣鏈烘湭灏辩华
- ElMessage.warning('璇风‘璁ゆ墦鏍囨満鍜屽垏鍓叉満鐨勫氨缁姸鎬侊紒');
+ ElMessage.warning(t('basicData.pausea'));
}
}
// 鏆傚仠
@@ -400,7 +403,7 @@
else {
ElMessage({
type: 'info',
- message: '宸ョ▼鍙蜂笉鑳戒负绌猴紒',
+ message: t('basicData.infonull'),
})
}
}
@@ -433,7 +436,7 @@
else {
ElMessage({
type: 'info',
- message: '宸ョ▼鍙蜂笉鑳戒负绌猴紒',
+ message: t('basicData.infonull'),
})
}
}
@@ -446,13 +449,13 @@
function getStatusText(state: number) {
switch (state) {
case 0:
- return '绛夊緟涓�';
+ return t('basicData.waiting');
case 1:
- return '涓婄墖涓�';
+ return t('basicData.up');
case 2:
- return '涓婄墖涓�';
+ return t('basicData.up');
case 100:
- return '宸插畬鎴�';
+ return t('basicData.finish');
}
}
function getStatusType(state: number) {
@@ -498,7 +501,7 @@
const toggleEnableState = async (row: any) => {
// 妫�鏌� id 鏄惁涓虹┖
if (!row.id) {
- ElMessage.error('璇ュ伐绋嬫湭淇濆瓨鍒颁笂鐗囪〃锛�');
+ ElMessage.error(t('basicData.updatanull'));
return; // 濡傛灉 id 涓虹┖锛屽垯涓嶆墽琛屽悗缁搷浣�
}
@@ -514,8 +517,7 @@
}
} catch (error) {
// 澶勭悊璇锋眰閿欒
- console.error('鏇存柊鐜荤拑鐘舵�佽姹傚け璐�:', error);
- ElMessage.error('鏇存柊鐜荤拑鐘舵�佹椂鍙戠敓閿欒');
+ ElMessage.error(t('basicData.glassnull'));
}
};
@@ -547,7 +549,7 @@
if (data && Array.isArray(data.InkageStatus) && data.InkageStatus.length > 0) {
const status = data.InkageStatus[0];
cuttingMachine.value = status;
- upstatus.value = status === '1' ? '涓婄墖鏈鸿仈鏈虹姸鎬侊細' : '涓婄墖鏈烘墜鍔ㄧ姸鎬侊細';
+ upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
inKageWord.value = status === '1' ? 0 : 1;
} else {
@@ -565,7 +567,7 @@
);
if (response.code == 200) {
const status = response.data.status;
- upstatus.value = status === '1' ? '涓婄墖鏈鸿仈鏈虹姸鎬侊細' : '涓婄墖鏈烘墜鍔ㄧ姸鎬侊細';
+ upstatus.value = status === '1' ? t('basicData.machine') : t('basicData.machineaa');
cuttingMachineStatusColor.value = status === '1' ? 'green' : '#911005';
// 鏄剧ず鎴愬姛娑堟伅
ElMessage.success(response.message);
@@ -583,20 +585,20 @@
<template>
<div>
<div id="dotClass">
- <div>鎵撴爣鏈哄氨缁姸鎬侊細</div>
+ <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;">纭</el-button>
- <div style="margin-left: 70px;">鍒囧壊鏈哄氨缁姸鎬侊細</div>
+ <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;" >纭</el-button>
+ <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;" >鍒囨崲</el-button>
+ <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">閫夋嫨宸ョ▼</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="primary" @click="handleBind">寮�濮嬩笂鐗�</el-button>
- <el-button style="margin-top: 5px;margin-left: 20px;" id="searchButton" type="warning" @click="handleBinda">鏆傚仠</el-button>
+ <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">
@@ -607,12 +609,12 @@
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
:data="tableData"
>
- <el-table-column prop="engineeringId" label="宸ョ▼鍙�" width="200" align="center"/>
- <el-table-column prop="width" label="鍘熺墖瀹�" align="center"/>
- <el-table-column prop="height" label="鍘熺墖楂�" align="center"/>
- <el-table-column prop="filmsId" label="鑶滅郴" align="center"/>
- <el-table-column prop="layoutSequence" label="鏁伴噺" align="center"/>
- <el-table-column prop="thickness" label="鍘氬害" 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 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="鐘舵��"
@@ -626,7 +628,7 @@
</template> -->
<el-table-column
align="center"
- label="鍚敤鐘舵��"
+ :label="$t('basicData.startstatus')"
min-width="80"
prop="state"
>
@@ -635,34 +637,34 @@
:type="scope.row.state === 100 ? 'success' : 'warning'"
@click="toggleEnableState(scope.row)"
>
- {{ scope.row.state === 100 ? '閫氳繃' : '绛夊緟涓�' }}
+ {{ 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="鏄惁寮�濮嬩笂鐗�?" >
+ <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">鍙栨秷</el-button>
+ <el-button @click="blind = false">{{ $t('basicData.cancel') }}</el-button>
</div>
</template>
</el-dialog>
- <el-dialog v-model="blinda" top="30vh" width="25%" 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">鍙栨秷</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="鏄惁鍋滄浠诲姟?" >
+ <!-- <el-dialog v-model="blindb" top="30vh" width="25%" title="鏄惁鍋滄浠诲姟?" >
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="handleb">
@@ -671,31 +673,31 @@
<el-button @click="blindb = false">鍙栨秷</el-button>
</div>
</template>
- </el-dialog>
+ </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: 70%"
+ <el-table :data="tableDataa" border style="width: 85%"
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
>
- <el-table-column prop="workstationId" align="center" label="宸ヤ綅" min-width="50" />
- <el-table-column prop="patternWidth" align="center" label="瀹�" min-width="80" />
- <el-table-column prop="patternHeight" align="center" label="楂�" min-width="80" />
- <el-table-column prop="filmsId" align="center" label="鑶滅郴" min-width="80" />
- <el-table-column prop="number" align="center" label="鏁伴噺" min-width="80" />
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="150">
+ <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)">娣诲姞</el-button>
- <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">鍒犻櫎</el-button>
+ <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="娣诲姞鍘熺墖" >
+ <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">
@@ -703,12 +705,12 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="瀹斤細" :required="true" style="width: 14vw">
+ <el-form-item :label="$t('basicData.widtha')" :required="true" style="width: 14vw">
<el-select
v-model="selectedValue"
filterable
clearable
- placeholder="璇烽�夋嫨瀹�"
+ :placeholder="$t('basicData.selectwidth')"
style="width: 220px"
@input="handleInputChangea"
>
@@ -725,12 +727,12 @@
<el-col :span="9">
<div id="dta" style="font-size: 15px;">
<div>
- <el-form-item label="楂橈細" :required="true" style="width: 14vw">
+ <el-form-item :label="$t('basicData.heighta')" :required="true" style="width: 14vw">
<el-select
v-model="selectedValuea"
filterable
clearable
- placeholder="璇烽�夋嫨楂�"
+ :placeholder="$t('basicData.selectheight')"
style="width: 220px"
@input="handleInputChangea"
>
@@ -749,12 +751,12 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鑶滅郴锛�" :required="true" style="width: 14vw;">
+ <el-form-item :label="$t('basicData.coatingtypesa')" :required="true" style="width: 14vw;">
<el-select
v-model="selectedValueb"
filterable
clearable
- placeholder="璇烽�夋嫨鑶滅郴"
+ :placeholder="$t('basicData.selectcoatingtypes')"
style="width: 220px"
@input="handleInputChangea"
>
@@ -770,12 +772,12 @@
<el-col :span="9">
<div id="dta" style="font-size: 15px;">
<div>
- <el-form-item label="鍘氬害锛�" :required="true" style="width: 14vw">
+ <el-form-item :label="$t('basicData.thicknessa')" :required="true" style="width: 14vw">
<el-select
v-model="selectedValuec"
filterable
clearable
- placeholder="璇烽�夋嫨鍘氬害"
+ :placeholder="$t('basicData.selectthickness')"
style="width: 220px"
@input="handleInputChangea"
>
@@ -794,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 placeholder="璇疯緭鍏ユ暟閲�" v-model="number" 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>
@@ -805,31 +807,31 @@
<template #footer>
<div id="dialog-footer">
<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="30vh" width="25%" title="鏄惁鍒犻櫎璇ユ潯淇℃伅?" >
+ <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">鍙栨秷</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="宸ョ▼" >
+ <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="宸ョ▼鍙凤細" :required="true">
+ <el-form-item :label="$t('basicData.projectnumber')" :required="true">
<el-select
v-model="selectedProjectNo"
filterable
clearable
- placeholder="璇烽�夋嫨宸ョ▼"
+ :placeholder="$t('basicData.plselectproject')"
style="width: 220px"
@input="handleInputChange"
>
@@ -845,9 +847,9 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="handleup">
- 纭
+ {{ $t('basicData.confirm') }}
</el-button>
- <el-button @click="dialogFormVisible = false">鍙栨秷</el-button>
+ <el-button @click="dialogFormVisible = false">{{ $t('basicData.cancel') }}</el-button>
</div>
</template>
</el-dialog>
diff --git a/UI-Project/src/views/Slicecage/slicecage.vue b/UI-Project/src/views/Slicecage/slicecage.vue
index 15839b1..2a42c23 100644
--- a/UI-Project/src/views/Slicecage/slicecage.vue
+++ b/UI-Project/src/views/Slicecage/slicecage.vue
@@ -1,4 +1,11 @@
<script lang="ts" setup>
+// import zhCn from 'element-plus/lib/locale/lang/zh-cn'
+// import en from 'element-plus/dist/locale/en.mjs'
+// const { locale } = useI18n()
+
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
import {Search} from "@element-plus/icons-vue";
import {reactive} from "vue";
import {useRouter} from "vue-router"
@@ -18,6 +25,7 @@
const tableDatad = ref([])
const tableDatae = ref([])
const adjustedRects = ref([]);
+const adjustedRectsa = ref([]);
// const height = ref([]);
const add = ref(false)
const flowCardId = ref('');
@@ -58,111 +66,112 @@
const cell6=ref(true);
const cell7=ref(true);
const cell8=ref(true);
+const selectedRow = ref(null); // 瀛樺偍閫変腑鐨勮鏁版嵁
const currentPage4 = ref(4)
const pageSize4 = ref(100)
- var timer=setInterval(() => {
- // console.log(million.value,million1.value);
- million.value+=1;
- if(million.value-million1.value!==12){
+ // var timer=setInterval(() => {
+ // // console.log(million.value,million1.value);
+ // million.value+=1;
+ // if(million.value-million1.value!==12){
- if(million.value-million1.value>=2){
- if(carposition1.value==220){
- timers1.value=false;
- }else if(carposition1.value==60){
- timers1.value=true;
- }
- if(timers1.value==true){
- carposition1.value=carposition1.value+16;
- }else{
- carposition1.value=carposition1.value-16;
- }
+ // if(million.value-million1.value>=2){
+ // if(carposition1.value==220){
+ // timers1.value=false;
+ // }else if(carposition1.value==60){
+ // timers1.value=true;
+ // }
+ // if(timers1.value==true){
+ // carposition1.value=carposition1.value+16;
+ // }else{
+ // carposition1.value=carposition1.value-16;
+ // }
- if(carposition2.value==220){
- timers2.value=false;
- }else if(carposition2.value==60){
- timers2.value=true;
- }
- if(timers2.value==true){
- carposition2.value+=16;
- }else{
- carposition2.value-=16;
- }
- }else{
+ // if(carposition2.value==220){
+ // timers2.value=false;
+ // }else if(carposition2.value==60){
+ // timers2.value=true;
+ // }
+ // if(timers2.value==true){
+ // carposition2.value+=16;
+ // }else{
+ // carposition2.value-=16;
+ // }
+ // }else{
- }
- }else{
- million1.value=million.value;
+ // }
+ // }else{
+ // million1.value=million.value;
- if(cellshow1.value==true){
- cellshow1.value=false;
- }else{
- cellshow1.value=true;
- }
- if(cellshow2.value==true){
- cellshow2.value=false;
- }else{
- cellshow2.value=true;
- }
- }
+ // if(cellshow1.value==true){
+ // cellshow1.value=false;
+ // }else{
+ // cellshow1.value=true;
+ // }
+ // if(cellshow2.value==true){
+ // cellshow2.value=false;
+ // }else{
+ // cellshow2.value=true;
+ // }
+ // }
- }, 1000);
+ // }, 1000);
- var timer=setInterval(() => {
- // console.log(million3.value,million4.value);
- million3.value+=1;
- if(million3.value-million4.value!==12){
+ // var timer=setInterval(() => {
+ // // console.log(million3.value,million4.value);
+ // million3.value+=1;
+ // if(million3.value-million4.value!==12){
- if(million3.value-million4.value>=2){
- if(carposition3.value==260){
- timers3.value=false;
- }else if(carposition3.value==60){
- timers3.value=true;
- }
- if(timers3.value==true){
- carposition3.value=carposition3.value+20;
- }else{
- carposition3.value=carposition3.value-20;
- }
+ // if(million3.value-million4.value>=2){
+ // if(carposition3.value==260){
+ // timers3.value=false;
+ // }else if(carposition3.value==60){
+ // timers3.value=true;
+ // }
+ // if(timers3.value==true){
+ // carposition3.value=carposition3.value+20;
+ // }else{
+ // carposition3.value=carposition3.value-20;
+ // }
- if(carposition4.value==260){
- timers4.value=false;
- }else if(carposition4.value==60){
- timers4.value=true;
- }
- if(timers4.value==true){
- carposition4.value+=20;
- }else{
- carposition4.value-=20;
- }
- }else{
+ // if(carposition4.value==260){
+ // timers4.value=false;
+ // }else if(carposition4.value==60){
+ // timers4.value=true;
+ // }
+ // if(timers4.value==true){
+ // carposition4.value+=20;
+ // }else{
+ // carposition4.value-=20;
+ // }
+ // }else{
- }
- }else{
- million4.value=million3.value;
- if(cellshow5.value==true){
- cellshow5.value=false;
+ // }
+ // }else{
+ // million4.value=million3.value;
+ // if(cellshow5.value==true){
+ // cellshow5.value=false;
- }else{
- cellshow5.value=true;
+ // }else{
+ // cellshow5.value=true;
- }
- if(cellshow3.value==true){
- cellshow3.value=false;
- }else{
- cellshow3.value=true;
- }
- if(cellshow4.value==true){
- cellshow4.value=false;
- }else{
- cellshow4.value=true;
- }
- }
+ // }
+ // if(cellshow3.value==true){
+ // cellshow3.value=false;
+ // }else{
+ // cellshow3.value=true;
+ // }
+ // if(cellshow4.value==true){
+ // cellshow4.value=false;
+ // }else{
+ // cellshow4.value=true;
+ // }
+ // }
- }, 1000);
+ // }, 1000);
const getTableRow = (row,type) =>{
switch (type) {
@@ -178,24 +187,35 @@
}
}
const handleBindRack = (row) => {
+ selectedRow.value = row; // 鏇存柊閫変腑鐨勮鏁版嵁
add.value = true; // 鎵撳紑缁戝畾鏋跺瓙瀵硅瘽妗�
};
-// 娣诲姞
-const handleConfirm = async () => {
+async function handleConfirm() {
+ if (!selectedRow.value) {
+ // 澶勭悊娌℃湁閫変腑琛岀殑鎯呭喌...
+ return;
+ }
+
+ // 鏋勯�犱綘鐨凱OST璇锋眰鏁版嵁锛屽寘鍚�変腑鐨勮鏁版嵁鍜岃〃鍗曟暟鎹�
+ const postData = {
+ ...selectedRow.value, // 閫変腑琛岀殑鏁版嵁
+ };
+
try {
const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/insertBigStorageCageDetails', {
- flowCardId: flowCardId.value,
- gap: gap.value,
- glassId: glassId.value,
- glassType: glassType.value,
- height: height.value,
- sequence: sequence.value,
- state: state.value,
- temperingFeedSequence: temperingFeedSequence.value,
- temperingLayoutId: temperingLayoutId.value,
- thickness: thickness.value,
- width: width.value,
- });
+ 'flowCardId': flowCardId.value,
+ 'gap': gap.value,
+ 'glassId': glassId.value,
+ 'glassType': glassType.value,
+ 'height': height.value,
+ 'sequence': sequence.value,
+ 'state': state.value,
+ 'temperingFeedSequence': temperingFeedSequence.value,
+ 'temperingLayoutId': temperingLayoutId.value,
+ 'thickness': thickness.value,
+ 'width': width.value,
+ body: JSON.stringify(postData),
+ });
if (response.code == 200) {
// 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
ElMessage.success(response.message);
@@ -203,13 +223,43 @@
tableData.value = response.data;
} else {
// 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
- ElMessage.error(response.msg);
+ ElMessage.error(response.message);
}
- } catch (error) {
- // 澶勭悊閿欒
- console.error(error);
- }
-};
+ } catch (error) {
+ // 澶勭悊閿欒...
+ console.error(error);
+ }
+}
+// 娣诲姞
+// const handleConfirm = async () => {
+// try {
+// const response = await request.post('/cacheVerticalGlass/bigStorageCageDetails/insertBigStorageCageDetails', {
+// 'bigStorageCageOutTask.flowCardId': flowCardId.value,
+// 'bigStorageCageOutTask.gap': gap.value,
+// 'bigStorageCageOutTask.glassId': glassId.value,
+// 'bigStorageCageOutTask.glassType': glassType.value,
+// 'bigStorageCageOutTask.height': height.value,
+// 'bigStorageCageOutTask.sequence': sequence.value,
+// 'bigStorageCageOutTask.state': state.value,
+// 'bigStorageCageOutTask.temperingFeedSequence': temperingFeedSequence.value,
+// 'bigStorageCageOutTask.temperingLayoutId': temperingLayoutId.value,
+// 'bigStorageCageOutTask.thickness': thickness.value,
+// 'bigStorageCageOutTask.width': width.value,
+// });
+// if (response.code == 200) {
+// // 缁戝畾鎴愬姛锛屽鐞嗛�昏緫
+// ElMessage.success(response.message);
+// add.value = false;
+// tableData.value = response.data;
+// } else {
+// // 璇锋眰澶辫触锛屾樉绀洪敊璇秷鎭�
+// ElMessage.error(response.msg);
+// }
+// } catch (error) {
+// // 澶勭悊閿欒
+// console.error(error);
+// }
+// };
// 鏄惁绂佺敤
const toggleEnableState = async (row) => {
const newState = row.enableState === 1 ? 0 : 1;
@@ -233,26 +283,24 @@
// ]);
// 鍒犻櫎
const opena = async(row) => {
- try {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鍒犻櫎璇ユ潯淇℃伅?',
- '鎻愮ず',
+ t('searchOrder.deletemessage'),
+ t('searchOrder.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('searchOrder.yes'),
+ cancelButtonText: t('searchOrder.cancel'),
type: 'warning',
- }
- );
+ }
+ );
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
- const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/deleteBigStorageCageDetails", {
- menuId: row.id,
- })
+ const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/deleteBigStorageCageDetails",row)
if (response.code === 200) {
ElMessage.success(response.message);
} else {
// 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
- ElMessage.error(response.msg);
+ ElMessage.error(response.message);
// alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
}
}
@@ -261,6 +309,229 @@
console.error('鍙戠敓閿欒:', error);
}
};
+ // 鐮存崯
+ const broke = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.broke'),
+ t('searchOrder.prompt'),
+ {
+ confirmButtonText: t('searchOrder.yes'),
+ cancelButtonText: t('searchOrder.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ // const dataToSend = {
+ // ...row,
+ // status: 0
+ // };
+ // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+ const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+0, row)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+ ElMessage.error(response.message);
+ // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+ }
+ }
+ } catch (error) {
+ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+ // 鎷胯蛋
+ const brokec = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.brokeb'),
+ t('searchOrder.prompt'),
+ {
+ confirmButtonText: t('searchOrder.yes'),
+ cancelButtonText: t('searchOrder.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ // const dataToSend = {
+ // ...row,
+ // status: 1
+ // };
+ // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+ const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/damageBigStorageCageDetails?status="+1, row)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+ ElMessage.error(response.message);
+ // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+ }
+ }
+ } catch (error) {
+ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+ // 鍑虹墖
+ const outfil = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.outfil'),
+ t('searchOrder.prompt'),
+ {
+ confirmButtonText: t('searchOrder.yes'),
+ cancelButtonText: t('searchOrder.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+ const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/outBigStorageCageDetails", row)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+ ElMessage.error(response.message);
+ // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+ }
+ }
+ } catch (error) {
+ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+ // 鍑虹墖闃熷垪鐮存崯
+ const brokea = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.broke'),
+ t('searchOrder.prompt'),
+ {
+ confirmButtonText: t('searchOrder.yes'),
+ cancelButtonText: t('searchOrder.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+ // const dataToSend = {
+ // ...row,
+ // status: 0
+ // };
+ const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+0, row)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+ ElMessage.error(response.message);
+ // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+ }
+ }
+ } catch (error) {
+ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+// 鍑虹墖闃熷垪鎷胯蛋
+const brokeb = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.brokeb'),
+ t('searchOrder.prompt'),
+ {
+ confirmButtonText: t('searchOrder.yes'),
+ cancelButtonText: t('searchOrder.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+ // const dataToSend = {
+ // ...row,
+ // status: 1
+ // };
+ const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/damageTemperingGlassInfo?status="+1, row)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+ ElMessage.error(response.message);
+ // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+ }
+ }
+ } catch (error) {
+ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+// 鍑虹墖闃熷垪鍒犻櫎
+const deletea = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.deletemessage'),
+ t('searchOrder.prompt'),
+ {
+ confirmButtonText: t('searchOrder.yes'),
+ cancelButtonText: t('searchOrder.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+ const dataToSend = {
+ ...row,
+ status: 1
+ };
+ const response = await request.post("/cacheVerticalGlass/temperingGlassInfo/deleteTemperingGlassInfo", dataToSend)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+ ElMessage.error(response.message);
+ // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+ }
+ }
+ } catch (error) {
+ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+// 瀹屾垚浠诲姟
+const finish = async(row) => {
+ try {
+ const confirmResult = await ElMessageBox.confirm(
+ t('searchOrder.fin'),
+ t('searchOrder.prompt'),
+ {
+ confirmButtonText: t('searchOrder.yes'),
+ cancelButtonText: t('searchOrder.cancel'),
+ type: 'warning',
+ }
+ );
+ if (confirmResult === 'confirm') {
+ // 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
+ // const dataToSend = {
+ // ...row,
+ // status: 1
+ // };
+ const response = await request.post("/cacheVerticalGlass/bigStorageCageDetails/finishBigStorageCageDetails", row)
+ if (response.code === 200) {
+ ElMessage.success(response.message);
+ } else {
+ // 鍒犻櫎澶辫触锛屾偍鍙互澶勭悊閿欒鎴栨樉绀洪敊璇俊鎭粰鐢ㄦ埛
+ ElMessage.error(response.message);
+ // alert('鍒犻櫎澶辫触锛�' + deleteResponse.message);
+ }
+ }
+ } catch (error) {
+ // 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
+ console.error('鍙戠敓閿欒:', error);
+ }
+};
+function handleRowClick(row) {
+ selectedRow.value = row; // 鏇存柊閫変腑鐨勮鏁版嵁
+}
const socketUrl = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/slicecage`;
// 瀹氫箟娑堟伅澶勭悊鍑芥暟锛屾洿鏂� receivedData 鍙橀噺
@@ -271,15 +542,20 @@
tableData.value = data.bigStorageCageInfo[0]
tableDatab.value = data.temperingGlassInfoList[0]
tableDatae.value = data.bigStorageCageUsage[0]
- adjustedRects.value = data.bigStorageCageInfo1[0]
- // adjustedRects.value = data.bigStorageCageInfo1[0].map(rect => ({
- // ...rect, // 澶嶅埗鍘熷瀵硅薄鐨勫叾浠栧睘鎬�
- // height: rect.length *0.5,
-
- // }));
- window.localStorage.setItem('length', data.bigStorageCageInfo1[0].length)
- let length = window.localStorage.getItem('length')
- console.log(length);
+ // adjustedRects.value = data.bigStorageCageInfo1[0]
+ adjustedRects.value = data.bigStorageCageInfo1[0].map(rect => ({
+ ...rect,
+ // width: rect.remainWidth *0.04,
+ top: rect.id *2,
+ }));
+console.log(data.bigStorageCageInfo1[0]);
+adjustedRectsa.value = data.bigStorageCageInfo2[0].map(rect => ({
+ ...rect,
+ // width: rect.remainWidth *0.04,
+ top: rect.id *2,
+ }));
+ // window.localStorage.setItem('length', data.bigStorageCageInfo1[0].length)
+ // let length = window.localStorage.getItem('length')
};
// function getRectHeight(length: number) {
@@ -302,9 +578,9 @@
function getStatusText(enableState: number) {
switch (enableState) {
case 0:
- return '绂佺敤';
+ return t('searchOrder.disable');
case 1:
- return '鍚敤';
+ return t('searchOrder.enable');
}
}
function getStatusTypea(ishorizontal: number) {
@@ -318,9 +594,9 @@
function getStatusTexta(ishorizontal: number) {
switch (ishorizontal) {
case 0:
- return '涓嶆帴鍙�';
+ return t('searchOrder.noaccept');
case 1:
- return '鎺ュ彈';
+ return t('searchOrder.accept');
}
}
function getStatusTypeb(state: number) {
@@ -334,11 +610,11 @@
function getStatusTextb(state: number) {
switch (state) {
case 0:
- return '鍑虹墖瀹屾垚';
+ return t('searchOrder.filmcomplete');
case 1:
- return '绛夊緟涓�';
+ return t('searchOrder.waiting');
case 2:
- return '绛夊緟涓�';
+ return t('searchOrder.waiting');
}
}
onBeforeUnmount(() => {
@@ -348,26 +624,39 @@
</script>
<template>
- <div style="height: 700px;">
- <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true">鐞嗙墖绗间俊鎭�</el-button>
- <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">鍑虹墖闃熷垪</el-button>
+ <div style="height: 600px;">
+ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="primary" @click="dialogFormVisiblea = true">{{ $t('searchOrder.cageinformation') }}</el-button>
+ <el-button style="margin-top: 5px;margin-left: 10px;" id="searchButton" type="success" @click="dialogFormVisibleb = true">{{ $t('searchOrder.productionqueue') }}</el-button>
<el-card style="flex: 1;margin-left: 10px;margin-top: 5px;" v-loading="loading">
<div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;max-height: 100px;">
<el-table height="100%" ref="table"
:data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="bigStorageCageOutTask.glassId" align="center" label="鍑虹墖鐜荤拑ID" min-width="80" />
- <el-table-column prop="bigStorageCageOutTask.startSlot" align="center" label="璧峰浣嶇疆" min-width="120" />
- <el-table-column prop="bigStorageCageOutTask.endSlot" align="center" label="鐩爣浣嶇疆" min-width="120" />
- <el-table-column prop="bigStorageCageOutTask.trainNumber" align="center" label="杞︽" min-width="120" />
- <el-table-column prop="bigStorageCageOutTask.serialNumber" align="center" label="搴忓彿" min-width="120" />
- <el-table-column prop="bigStorageCageOutTask.taskState" align="center" label="浠诲姟鐘舵��" min-width="157">
- <template #default="scope">
- <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0?"绛夊緟杩涚墖":"杩涜涓�" }}</el-tag>
+ <el-table-column prop="bigStorageCageOutTask.glassId" align="center" :label="$t('searchOrder.outputglassID')" min-width="100" />
+ <el-table-column prop="bigStorageCageOutTask.startSlot" align="center" :label="$t('searchOrder.startposition')" min-width="120" />
+ <el-table-column prop="bigStorageCageOutTask.endSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
+ <el-table-column prop="bigStorageCageOutTask.trainNumber" align="center" :label="$t('searchOrder.trips')" min-width="120" />
+ <el-table-column prop="bigStorageCageOutTask.serialNumber" align="center" :label="$t('searchOrder.number')" min-width="120" />
+ <el-table-column prop="bigStorageCageOutTask.taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="157">
+ <template #default="scope">
+ <el-tag type="success" >{{ scope.row.bigStorageCageOutTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
</template>
</el-table-column>
- <el-table-column fixed="right" label="缁撴潫浠诲姟" align="center" width="150">
+ <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/>
+ <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/>
+ <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/>
+ <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="100"/>
+ <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/>
+ <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="100"/>
+ <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/>
+ <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="100"/>
+ <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="100"/>
+ <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="100"/>
+ <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100"/>
+ <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120"/>
+ <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="100"/>
+ <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">瀹屾垚浠诲姟</el-button>
+ <el-button size="mini" type="text" plain @click="finish(scope.row)">{{ $t('searchOrder.completetask') }}</el-button>
</template>
</el-table-column>
</el-table>
@@ -378,18 +667,31 @@
<el-table height="100%" ref="table"
@selection-change="handleSelectionChange"
:data="tableDatad" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" label="杩涚墖鐜荤拑ID" min-width="80" />
- <el-table-column prop="bigStorageCageFeedTask.targetSlot" align="center" label="鐩爣浣嶇疆" min-width="120" />
+ <el-table-column prop="bigStorageCageFeedTask.glassId" align="center" :label="$t('searchOrder.intoglassid')" min-width="100" />
+ <el-table-column prop="bigStorageCageFeedTask.targetSlot" align="center" :label="$t('searchOrder.targetlocation')" min-width="120" />
<!-- <el-table-column prop="task_type" align="center" label="浠诲姟绫诲瀷" min-width="120" />娌℃湁杩斿洖瀛楁 -->
- <el-table-column prop="bigStorageCageFeedTask.taskState" align="center" label="浠诲姟鐘舵��" min-width="120">
+ <el-table-column prop="bigStorageCageFeedTask.taskState" align="center" :label="$t('searchOrder.taskstatus')" min-width="120">
<template #default="scope">
- <el-tag type="success" >{{ scope.row.bigStorageCageFeedTask.taskState==0?"绛夊緟杩涚墖":"杩涜涓�" }}</el-tag>
+ <el-tag type="success" >{{ scope.row.bigStorageCageFeedTask.taskState==0? $t('searchOrder.filmenter') : $t('searchOrder.infilm') }}</el-tag>
</template>
</el-table-column>
- <el-table-column prop="bigStorageCageFeedTask.line" align="center" label="绾胯矾" min-width="120" />
- <el-table-column fixed="right" label="缁撴潫浠诲姟" align="center" width="150">
+ <el-table-column prop="bigStorageCageFeedTask.line" align="center" :label="$t('searchOrder.line')" min-width="120" />
+ <el-table-column prop="id" align="center" :label="$t('searchOrder.tabid')" min-width="150"/>
+ <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.tid')" min-width="100"/>
+ <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="100"/>
+ <el-table-column prop="glassId" align="center" :label="$t('searchOrder.glassID')" min-width="100"/>
+ <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="150"/>
+ <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="100"/>
+ <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="100"/>
+ <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="100"/>
+ <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="100"/>
+ <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="100"/>
+ <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100"/>
+ <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120"/>
+ <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="100"/>
+ <el-table-column fixed="right" :label="$t('searchOrder.endtask')" align="center" width="150">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">瀹屾垚浠诲姟</el-button>
+ <el-button size="mini" type="text" plain @click="finish(scope.row)">{{ $t('searchOrder.completetask') }}</el-button>
</template>
</el-table-column>
</el-table>
@@ -399,11 +701,11 @@
<div v-for="(item, index) in tableDatae" :key="index" id="occupy">
<el-col style="text-align:left;font-weight: bold;">#{{ item.device_id }}</el-col>
<el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
- <span>浣跨敤鐜�</span><span>{{ item.percentage }}</span>
+ <span>{{ $t('searchOrder.Usage') }}</span><span>{{ item.percentage }}</span>
</el-col>
<hr style="width:80%;margin: 0 auto;" />
<el-col style="text-align:left;display:flex;justify-content: space-between;align-items: center;">
- <span>绌洪棽锛堟牸瀛愭暟锛�</span><span>{{ item.count }}</span>
+ <span>{{ $t('searchOrder.free') }}</span><span>{{ item.count }}</span>
</el-col>
</div>
</div>
@@ -425,33 +727,39 @@
<div class="img-car4" :style="'z-index:999;left:704px;top:' + carposition4 + 'px;position:absolute;'">
<div v-show="cellshow4" style="margin-top:10px;width:200px;height:5px;background-color:#409EFF;"></div>
</div>
- <div v-show="cell1" style="width: 227px;height: 29px;position: absolute;top:55px;left: 465px;">
+ <div v-show="cell1" style="width: 227px;position: relative;height: 29px;top:55px;left: 465px;background-color: #911005;">
<div
- v-for="(item, index) in adjustedRects"
- :key="index"
+ v-for="(rect, index) in adjustedRects"
+ :key="rect"
:style="{
- top: `1px`, width: `227px`,
- backgroundColor: '#409EFF',
- height: `height`+ `px`
+ position: 'absolute',
+ width: '227px',
+ height: '0.8px',
+ backgroundColor: '#409EFF',
+ left: '0px',
+ top: `${rect.top}px`,
}"
>
+
</div>
- <!-- <div
- v-for="(item, index) in adjustedRects"
- height: `${rect.height}px`,
- :key="index"
- :style="{
- width: '227px',
- height: '1px',
- backgroundColor: '#409EFF',
- top: '1px'
- }"
- >
- </div> -->
</div>
- <!-- <div v-show="cell2" style="width: 227px;height: 29px;position: absolute;top:86px;left: 465px;background-color: #409EFF;">
+ <div v-show="cell2" style="width: 227px;height: 29px;position: relative;top:86px;left: 465px;background-color: #911005;">
+ <div
+ v-for="(rect, index) in adjustedRectsa"
+ :key="rect"
+ :style="{
+ position: 'absolute',
+ width: '227px',
+ height: '0.8px',
+ backgroundColor: '#409EFF',
+ left: '0px',
+ top: `${rect.top}px`,
+ }"
+ >
+
</div>
- <div v-show="cell3" style="width: 227px;height: 29px;position: absolute;top:117px;left: 465px;background-color: #409EFF;">
+ </div>
+ <!-- <div v-show="cell3" style="width: 227px;height: 29px;position: absolute;top:117px;left: 465px;background-color: #409EFF;">
</div>
<div v-show="cell4" style="width: 227px;height: 29px;position: absolute;top:148px;left: 465px;background-color: #409EFF;">
</div>
@@ -465,24 +773,33 @@
</div> -->
</div>
</div>
- <el-dialog v-model="add" top="20vh" width="60%" title="娣诲姞鐞嗙墖绗间俊鎭�" >
+ <el-dialog v-model="add" top="10vh" width="65%" :title="$t('searchOrder.addcage')" >
+ <div style="margin-top: -20px;margin-bottom: 40px;margin-left: 30px">
+ <el-input :placeholder="$t('searchOrder.inputid')" clearable style="width: 200px;">
+ </el-input>
+ <el-button type="primary" plain style="margin-left: 10px;">{{ $t('searchOrder.search') }}</el-button>
+
+ <!-- <span style="margin-right: 10px">绂佺敤璇�</span>
+ <el-input clearable placeholder="璇疯緭鍏ョ鐢ㄨ瘝" size="mini"
+ style="margin-right: 50px; width: 200px;" /> -->
+ </div>
<div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
- <el-form size="mini" label-width="150px">
- <el-form label-width="150px" label-position="right">
+ <el-form size="mini" label-width="180px">
+ <el-form label-width="180px" 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="鐜荤拑ID锛�" :required="true" style="width: 20vw;">
- <el-input placeholder="璇疯緭鍏ョ幓鐠僆D" v-model="glassId" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.glassIDa')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.inglassID')" v-model="glassId" autocomplete="off" />
</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: 20vw;">
- <el-input placeholder="璇疯緭鍏ュ皬鐗囧湪鏍煎唴鐨勯『搴�" v-model="sequence" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.pieceingrida')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.inpieceingrid')" v-model="sequence" autocomplete="off" />
</el-form-item></div>
</div>
</el-col>
@@ -491,15 +808,15 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="娴佺▼鍗″彿锛�" :required="true" style="width: 20vw;">
- <el-input placeholder="璇疯緭鍏ユ祦绋嬪崱鍙�" v-model="flowCardId" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.cardnumbera')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.incardnumber')" v-model="flowCardId" autocomplete="off" />
</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: 20vw;">
- <el-input placeholder="璇疯緭鍏ョ幓鐠冪被鍨�" v-model="glassType" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.typeglassa')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.intypeglass')" v-model="glassType" autocomplete="off" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -507,15 +824,15 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="瀹斤細" :required="true" style="width: 20vw;">
- <el-input placeholder="璇疯緭鍏ュ" v-model="width" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.widtha')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.inwidth')" v-model="width" autocomplete="off" />
</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: 20vw;">
- <el-input placeholder="璇疯緭鍏ラ珮" v-model="height" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.heighta')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.inheight')" v-model="height" autocomplete="off" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -523,15 +840,15 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鍘氬害锛�" :required="true" style="width: 20vw;">
- <el-input placeholder="璇疯緭鍏ュ帤搴�" v-model="thickness" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.thicknessa')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.inthickness')" v-model="thickness" autocomplete="off" />
</el-form-item></div></div>
</el-col>
<el-col :span="9">
<div id="dta" style="font-size: 15px;">
<div>
- <el-form-item label="閽㈠寲鐗堝浘ID锛�" :required="true" style="width: 20vw;">
- <el-input placeholder="璇疯緭鍏ラ挗鍖栫増鍥綢D" v-model="temperingLayoutId" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.layoutIDa')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.inlayoutID')" v-model="temperingLayoutId" autocomplete="off" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -539,15 +856,15 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="閽㈠寲鐗堝浘鐗囧簭锛�" :required="true" style="width: 20vw;">
- <el-input placeholder="璇疯緭鍏ラ挗鍖栫増鍥剧墖搴�" v-model="temperingFeedSequence" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.picturesequencea')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.inpicturesequence')" v-model="temperingFeedSequence" autocomplete="off" />
</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: 20vw;">
- <el-input placeholder="璇疯緭鍏ュ惎鐢ㄧ姸鎬�" v-model="state" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.startstatusa')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.instartstatus')" v-model="state" autocomplete="off" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -555,8 +872,15 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鐜荤拑闂撮殭锛�" :required="true" style="width: 20vw;">
- <el-input placeholder="璇疯緭鍏ョ幓鐠冮棿闅�" v-model="gap" autocomplete="off" />
+ <el-form-item :label="$t('searchOrder.glassgapsa')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.inglassgaps')" v-model="gap" autocomplete="off" />
+ </el-form-item></div></div>
+ </el-col>
+ <el-col :span="9">
+ <div id="dta" style="font-size: 15px;">
+ <div>
+ <el-form-item :label="$t('searchOrder.gridnumbera')" :required="true" style="width: 24vw;">
+ <el-input :placeholder="$t('searchOrder.grid')" v-model="state" autocomplete="off" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -566,16 +890,17 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="handleConfirm">
- 纭
+ {{ $t('searchOrder.sure') }}
</el-button>
- <el-button @click="add = false">鍙栨秷</el-button>
+ <el-button @click="add = false">{{ $t('searchOrder.cancel') }}</el-button>
</div>
</template>
</el-dialog>
-<el-dialog v-model="dialogFormVisiblea" top="5vh" width="90%" title="鐞嗙墖绗间俊鎭�" >
+<el-dialog v-model="dialogFormVisiblea" top="5vh" width="97%" :title="$t('searchOrder.cageinformation')">
<el-table
:data="tableData"
- height="600"
+ @row-click="handleRowClick"
+ height="500"
@expand-change="handleExpandChange"
row-key="id"
default-expand-all
@@ -592,18 +917,18 @@
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
>
<!-- <el-table-column prop="menuName" label="浜岀骇鑿滃崟鏍�" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/> -->
- <el-table-column prop="glassId" label="鐜荤拑ID" align="center" min-width="100"/>
- <el-table-column prop="sequence" align="center" label="灏忕墖鍦ㄦ牸鍐呯殑椤哄簭" min-width="120" />
- <el-table-column prop="flowCardId" align="center" label="娴佺▼鍗″彿" min-width="120" />
- <el-table-column prop="glassType" align="center" label="鐜荤拑绫诲瀷" min-width="100" />
- <el-table-column prop="width" align="center" label="瀹�" min-width="80" />
- <el-table-column prop="height" align="center" label="楂�" min-width="80" />
- <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="80" />
- <el-table-column prop="temperingLayoutId" align="center" label="閽㈠寲鐗堝浘ID" min-width="100" />
- <el-table-column prop="temperingFeedSequence" align="center" label="閽㈠寲鐗堝浘鐗囧簭" min-width="120" />
+ <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" min-width="80"/>
+ <el-table-column prop="sequence" align="center" :label="$t('searchOrder.pieceingrid')" min-width="100" />
+ <el-table-column prop="flowCardId" align="center" :label="$t('searchOrder.cardnumber')" min-width="120" />
+ <el-table-column prop="glassType" align="center" :label="$t('searchOrder.typeglass')" min-width="80" />
+ <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="80" />
+ <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
+ <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
+ <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="100" />
+ <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
<el-table-column
align="center"
- label="鍚敤鐘舵��"
+ :label="$t('searchOrder.startstatus')"
min-width="80"
prop="state"
>
@@ -613,24 +938,25 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column prop="gap" align="center" label="鐜荤拑闂撮殭" min-width="80" />
- <el-table-column fixed="right" label="鎿嶄綔" align="center" min-width="180">
+ <el-table-column prop="gap" align="center" :label="$t('searchOrder.glassgaps')" min-width="80" />
+ <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" min-width="220">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">鐮存崯</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">鍑虹墖</el-button>
+ <el-button size="mini" type="text" plain @click="broke(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
+ <el-button size="mini" type="text" plain @click="brokec(scope.row)">{{ $t('searchOrder.takeout') }}</el-button>
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('searchOrder.delete') }}</el-button>
+ <el-button size="mini" type="text" plain @click="outfil(scope.row)">{{ $t('searchOrder.outfilm') }}</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
</el-table-column>
- <el-table-column prop="id" label="澶х悊鐗囩琛↖D" align="center" min-width="100"/>
- <el-table-column prop="deviceId" align="center" label="鐞嗙墖绗煎彿" min-width="150" />
- <el-table-column prop="slot" align="center" label="鏍呮牸鍙�" min-width="150" />
+ <el-table-column prop="id" :label="$t('searchOrder.cagetableID')" align="center" min-width="100"/>
+ <el-table-column prop="deviceId" align="center" :label="$t('searchOrder.cagenumber')" min-width="150" />
+ <el-table-column prop="slot" align="center" :label="$t('searchOrder.gridnumber')" min-width="150" />
<el-table-column
align="center"
- label="鍚敤鐘舵��"
+ :label="$t('searchOrder.startstatus')"
min-width="80"
prop="enableState"
>
@@ -639,15 +965,15 @@
:type="scope.row.enableState === 1 ? 'success' : 'danger'"
@click="toggleEnableState(scope.row)"
>
- {{ scope.row.enableState === 1 ? '鍚敤' : '绂佺敤' }}
+ {{ scope.row.enableState === 1 ? $t('searchOrder.enable') : $t('searchOrder.disable')}}
</el-tag>
</template>
</el-table-column>
- <el-table-column prop="remainWidth" align="center" label="鍓╀綑瀹藉害" min-width="120" />
+ <el-table-column prop="remainWidth" align="center" :label="$t('searchOrder.remainingwidth')" min-width="120" />
- <el-table-column fixed="right" label="鎿嶄綔" align="center">
+ <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">娣诲姞</el-button>
+ <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">{{ $t('searchOrder.add') }}</el-button>
</template>
</el-table-column>
</el-table>
@@ -667,7 +993,7 @@
/>
</div>
</el-dialog>
-<el-dialog v-model="dialogFormVisibleb" top="10vh" width="85%" title="鍑虹墖闃熷垪" >
+<el-dialog v-model="dialogFormVisibleb" top="5vh" width="85%" :title="$t('searchOrder.productionqueue')">
<!-- <div style="display: flex;">
<p style="margin-top: 3px;">闃熷垪鐘舵�侊細</p>
<p style="margin-top: 3px;">寮�濮�</p>
@@ -676,16 +1002,16 @@
</div> -->
<el-table ref="table" style="margin-top: 20px;height: 500px;"
:data="tableDatab" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="id" fixed align="center" label="閽㈠寲灏忕墖淇℃伅琛╥d" min-width="150"/>
- <el-table-column prop="flowcardId" fixed align="center" label="娴佺▼鍗�" min-width="120" />
- <el-table-column prop="glassType" align="center" label="娴佺▼鍗$幓鐠冪被鍨�" min-width="150" />
- <el-table-column prop="width" align="center" label="瀹�" min-width="80" />
- <el-table-column prop="height" align="center" label="楂�" min-width="80" />
- <el-table-column prop="thickness" align="center" label="鍘氬害" min-width="80" />
- <el-table-column prop="filmsid" align="center" label="鑶滅郴" min-width="80" />
+ <el-table-column prop="id" fixed align="center" :label="$t('searchOrder.sheetID')" min-width="150"/>
+ <el-table-column prop="flowcardId" fixed align="center" :label="$t('searchOrder.processcards')" min-width="120" />
+ <el-table-column prop="glassType" align="center" :label="$t('searchOrder.processcardtype')" min-width="150" />
+ <el-table-column prop="width" align="center" :label="$t('searchOrder.width')" min-width="80" />
+ <el-table-column prop="height" align="center" :label="$t('searchOrder.height')" min-width="80" />
+ <el-table-column prop="thickness" align="center" :label="$t('searchOrder.thickness')" min-width="80" />
+ <el-table-column prop="filmsid" align="center" :label="$t('searchOrder.coatingtypes')" min-width="80" />
<el-table-column
align="center"
- label="閽㈠寲鏄惁鎺ュ彈妯斁"
+ :label="$t('searchOrder.acceptshorizontal')"
min-width="150"
prop="ishorizontal"
>
@@ -695,14 +1021,14 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column prop="temperingLayoutId" align="center" label="閽㈠寲鐗堝浘id" min-width="120" />
- <el-table-column prop="temperingFeedSequence" align="center" label="閽㈠寲鐗堝浘鐗囧簭" min-width="120" />
- <el-table-column prop="xCoordinate" align="center" label="x鍧愭爣" min-width="80" />
- <el-table-column prop="yCoordinate" align="center" label="y鍧愭爣" min-width="80" />
- <el-table-column prop="angle" align="center" label="鏃嬭浆瑙掑害锛堥�嗘椂閽堬級" min-width="150" />
+ <el-table-column prop="temperingLayoutId" align="center" :label="$t('searchOrder.layoutID')" min-width="120" />
+ <el-table-column prop="temperingFeedSequence" align="center" :label="$t('searchOrder.picturesequence')" min-width="120" />
+ <el-table-column prop="xCoordinate" align="center" :label="$t('searchOrder.xcoordinates')" min-width="80" />
+ <el-table-column prop="yCoordinate" align="center" :label="$t('searchOrder.ycoordinates')" min-width="80" />
+ <el-table-column prop="angle" align="center" :label="$t('searchOrder.rotationangle')" min-width="150" />
<el-table-column
align="center"
- label="鐘舵��"
+ :label="$t('searchOrder.state')"
min-width="80"
prop="state"
>
@@ -712,10 +1038,11 @@
</el-tag>
</template>
</el-table-column>
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="150">
+ <el-table-column fixed="right" :label="$t('searchOrder.operate')" align="center" width="150">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="handleBindRack(scope.row)">鐮存崯</el-button>
- <el-button size="mini" type="text" plain @click="handleBindRacka(scope.row)">鍒犻櫎</el-button>
+ <el-button size="mini" type="text" plain @click="brokea(scope.row)">{{ $t('searchOrder.breakage') }}</el-button>
+ <el-button size="mini" type="text" plain @click="brokeb(scope.row)">{{ $t('searchOrder.takeout') }}</el-button>
+ <el-button size="mini" type="text" plain @click="deletea(scope.row)">{{ $t('searchOrder.delete') }}</el-button>
</template>
</el-table-column>
</el-table>
@@ -822,7 +1149,7 @@
}
.img-dlpl{
- margin-left: 200px;
+ margin-left: 80px;
background-image:url('../../assets/dlpl.png');
background-repeat: no-repeat;
background-attachment: local;
diff --git a/UI-Project/src/views/StockBasicData/stockBasicData.vue b/UI-Project/src/views/StockBasicData/stockBasicData.vue
index 01b0ddb..d20f65a 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicData.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicData.vue
@@ -11,6 +11,9 @@
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
// import LanguageMixin from './lang/LanguageMixin'
+ import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
const tableData = ref([])
const slot = ref('')
@@ -32,17 +35,17 @@
}
});
// 鐮存崯
- const open = async(row) => {
- try {
+ const open = async(row) => {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鐮存崯璇ユ潯淇℃伅?',
- '鎻愮ず',
+ t('workOrder.messagedamaged'),
+ t('workOrder.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('workOrder.yes'),
+ cancelButtonText: t('workOrder.cancel'),
type: 'warning',
- }
- );
+ }
+ );
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
@@ -64,16 +67,16 @@
};
// 鎷胯蛋
const opena = async(row) => {
- try {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鎷胯蛋璇ユ潯淇℃伅?',
- '鎻愮ず',
+ t('workOrder.takemessage'),
+ t('workOrder.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('workOrder.yes'),
+ cancelButtonText: t('workOrder.cancel'),
type: 'warning',
- }
- );
+ }
+ );
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
@@ -120,17 +123,17 @@
<el-table height="240" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="GlassId" align="center" label="鐜荤拑id" min-width="180" />
- <el-table-column prop="Height" align="center" label="楂�" min-width="80" />
- <el-table-column prop="Width" align="center" label="瀹�" min-width="120" />
- <el-table-column prop="Thickness" align="center" label="鍘氬害" min-width="120" />
- <el-table-column prop="FilmsId" align="center" label="鑶滅郴" min-width="120" />
- <el-table-column prop="SerialNumber" align="center" label="鍑虹墖椤哄簭" min-width="120" />
- <el-table-column prop="FlowCardId" align="center" label="娴佺▼鍗″彿" min-width="120" />
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <el-table-column prop="GlassId" align="center" :label="$t('workOrder.glassID')" min-width="180" />
+ <el-table-column prop="Height" align="center" :label="$t('workOrder.height')" min-width="80" />
+ <el-table-column prop="Width" align="center" :label="$t('workOrder.width')" min-width="120" />
+ <el-table-column prop="Thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
+ <el-table-column prop="FilmsId" align="center" :label="$t('workOrder.coatingtypes')" min-width="120" />
+ <el-table-column prop="SerialNumber" align="center" :label="$t('workOrder.productionsequence')" min-width="120" />
+ <el-table-column prop="FlowCardId" align="center" :label="$t('workOrder.cardnumber')" min-width="120" />
+ <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="open(scope.row)">鐮存崯</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">鎷胯蛋</el-button>
+ <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }}</el-button>
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('workOrder.takeout') }}</el-button>
</template>
</el-table-column>
</el-table>
diff --git a/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
index 6d4df18..583b2ba 100644
--- a/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
+++ b/UI-Project/src/views/StockBasicData/stockBasicDatatwo.vue
@@ -11,6 +11,9 @@
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
// import LanguageMixin from './lang/LanguageMixin'
+ import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
const tableData = ref([])
const slot = ref('')
@@ -33,16 +36,16 @@
});
// 鐮存崯
const open = async(row) => {
- try {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鐮存崯璇ユ潯淇℃伅?',
- '鎻愮ず',
+ t('workOrder.messagedamaged'),
+ t('workOrder.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('workOrder.yes'),
+ cancelButtonText: t('workOrder.cancel'),
type: 'warning',
- }
- );
+ }
+ );
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
@@ -64,16 +67,16 @@
};
// 鎷胯蛋
const opena = async(row) => {
- try {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鎷胯蛋璇ユ潯淇℃伅?',
- '鎻愮ず',
+ t('workOrder.takemessage'),
+ t('workOrder.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('workOrder.yes'),
+ cancelButtonText: t('workOrder.cancel'),
type: 'warning',
- }
- );
+ }
+ );
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/cacheGlass/edgStorageCage/edgReportStatus", {
@@ -121,17 +124,17 @@
<el-table height="240" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="GlassId" align="center" label="鐜荤拑id" min-width="180" />
- <el-table-column prop="Height" align="center" label="楂�" min-width="80" />
- <el-table-column prop="Width" align="center" label="瀹�" min-width="120" />
- <el-table-column prop="Thickness" align="center" label="鍘氬害" min-width="120" />
- <el-table-column prop="FilmsId" align="center" label="鑶滅郴" min-width="120" />
- <el-table-column prop="SerialNumber" align="center" label="鍑虹墖椤哄簭" min-width="120" />
- <el-table-column prop="FlowCardId" align="center" label="娴佺▼鍗″彿" min-width="120" />
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <el-table-column prop="GlassId" align="center" :label="$t('workOrder.glassID')" min-width="180" />
+ <el-table-column prop="Height" align="center" :label="$t('workOrder.height')" min-width="80" />
+ <el-table-column prop="Width" align="center" :label="$t('workOrder.width')" min-width="120" />
+ <el-table-column prop="Thickness" align="center" :label="$t('workOrder.thickness')" min-width="120" />
+ <el-table-column prop="FilmsId" align="center" :label="$t('workOrder.coatingtypes')" min-width="120" />
+ <el-table-column prop="SerialNumber" align="center" :label="$t('workOrder.productionsequence')" min-width="120" />
+ <el-table-column prop="FlowCardId" align="center" :label="$t('workOrder.cardnumber')" min-width="120" />
+ <el-table-column fixed="right" :label="$t('workOrder.operate')" align="center" width="200">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="open(scope.row)">鐮存崯</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">鎷胯蛋</el-button>
+ <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('workOrder.breakage') }}</el-button>
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('workOrder.takeout') }}</el-button>
</template>
</el-table-column>
</el-table>
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindication.vue b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
index 2424c68..a7dcb00 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindication.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindication.vue
@@ -22,7 +22,7 @@
:height="rack.item.height"
:fill="rack.item.fillColor"
/>
- <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 1 }}鍙峰伐浣�</text>
+ <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 1 }}{{ $t('reportWork.workstation') }}</text>
<text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
</g>
</g>
@@ -34,6 +34,9 @@
<script setup>
import { ref, watchEffect ,onMounted} from 'vue';
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
import Swal from 'sweetalert2'
import request from "@/utils/request";
import { initializeWebSocket } from '@/utils/WebSocketService';
@@ -167,7 +170,8 @@
tableContent += '</table>';
Swal.fire({
- title: '鐜荤拑淇℃伅',
+ // title: '鐜荤拑淇℃伅',
+ title: "$t('reportWork.glassinformation')",
html: tableContent,
customClass: {
popup: 'format-pre'
@@ -196,7 +200,7 @@
.glass-rack {
margin-left: 20px;
width: 500px;
- margin-top: 10px;
+ margin-top: 5px;
}
.rack-rect:hover {
cursor: pointer;
diff --git a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
index 4e16fae..2405177 100644
--- a/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
+++ b/UI-Project/src/views/UnLoadGlass/Landingindicationtwo.vue
@@ -22,7 +22,7 @@
:height="rack.item.height"
:fill="rack.item.fillColor"
/>
- <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 4 }}鍙峰伐浣�</text>
+ <text :x="rack.x + rack.width / 2" :y="rack.y - 10" text-anchor="middle">{{ index + 4 }}{{ $t('reportWork.workstation') }}</text>
<text :x="rack.x + rack.width / 2" :y="rack.y + rack.height + 20" text-anchor="middle">{{ rack.item.content }}</text>
</g>
</g>
@@ -34,6 +34,9 @@
<script setup>
import { ref, watchEffect ,onMounted} from 'vue';
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
import Swal from 'sweetalert2'
import request from "@/utils/request";
import { initializeWebSocket } from '@/utils/WebSocketService';
@@ -164,7 +167,8 @@
tableContent += '</table>';
Swal.fire({
- title: '鐜荤拑淇℃伅',
+ title: "$t('reportWork.glassinformation')",
+ // title: '鐜荤拑淇℃伅',
html: tableContent,
customClass: {
popup: 'format-pre'
diff --git a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
index e1ea82d..b41ed1c 100644
--- a/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
+++ b/UI-Project/src/views/UnLoadGlass/loadmachinerack.vue
@@ -5,6 +5,9 @@
import {useRouter} from "vue-router"
const router = useRouter()
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import Landingindication from "./Landingindication.vue";
@@ -187,30 +190,27 @@
<el-table height="100%" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="workstationId" align="center" label="涓嬬墖浣�" min-width="80" />
- <el-table-column prop="workstationId" align="center" label="鏋跺彿" min-width="120" />
- <el-table-column prop="flowCardId" align="center" label="娴佺▼鍗″彿" min-width="120" />
- <el-table-column prop="totalquantity" align="center" label="鎬绘暟閲�" min-width="120" />
- <el-table-column prop="racksnumber" align="center" label="宸茶惤鏋舵暟閲�" min-width="120" />
- <el-table-column prop="work_state" align="center" label="鐘舵��" min-width="120" />
- <el-table-column prop="deviceId" align="center" label="璁惧鍙�" min-width="120" />
-
-
-
+ <el-table-column prop="workstationId" align="center" :label="$t('reportWork.lowerbit')" min-width="80" />
+ <el-table-column prop="workstationId" align="center" :label="$t('reportWork.shelfnumber')" min-width="120" />
+ <el-table-column prop="flowCardId" align="center" :label="$t('reportWork.cardnumber')" min-width="120" />
+ <el-table-column prop="totalquantity" align="center" :label="$t('reportWork.totalquantity')" min-width="120" />
+ <el-table-column prop="racksnumber" align="center" :label="$t('reportWork.beendropped')" min-width="120" />
+ <el-table-column prop="work_state" align="center" :label="$t('reportWork.state')" min-width="120" />
+ <el-table-column prop="deviceId" align="center" :label="$t('reportWork.devicenumber')" min-width="120" />
<el-table-column
align="center"
- label="鍚敤鐘舵��"
+ :label="$t('reportWork.startstatus')"
min-width="80"
prop="enableState"
>
<template #default="scope">
- <el-tag type="success" >{{ scope.row.enableState==1?"鍚敤":"鏈惎鐢�" }}</el-tag>
+ <el-tag type="success" >{{ scope.row.enableState==1? $t('reportWork.enable') : $t('reportWork.unenable')}}</el-tag>
</template>
</el-table-column>
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <el-table-column fixed="right" :label="$t('reportWork.operate')" align="center" width="200">
<template #default="scope">
- <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�' " @click="handleBindRack(scope.row)">缁戝畾鏋跺瓙</el-button>
- <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">娓呯┖</el-button>
+ <el-button size="mini" type="text" plain v-show="scope.row.enableState !== '宸插惎鐢�' " @click="handleBindRack(scope.row)">{{ $t('reportWork.bindingshelves') }}</el-button>
+ <el-button size="mini" type="text" plain @click="handleBindRack2(scope.row)">{{ $t('reportWork.clear') }}</el-button>
</template>
</el-table-column>
</el-table>
@@ -218,15 +218,15 @@
</el-card>
- <el-dialog v-model="dialogFormVisiblea" top="21vh" width="30%" title="缁戝畾鏋跺瓙" >
+ <el-dialog v-model="dialogFormVisiblea" top="21vh" width="40%" :title="$t('reportWork.bindingshelves')">
<div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;">
- <el-form size="mini" label-width="150px">
- <el-form label-width="100px" label-position="right">
- <el-form-item label="鏋跺彿锛�" :required="true" style="width: 18vw">
+ <el-form size="mini" label-width="100px">
+ <el-form label-width="210px" label-position="right">
+ <el-form-item :label="$t('reportWork.shelfnumbera')" :required="true" style="width: 25vw">
<el-input v-model="workstationId" autocomplete="off"/>
</el-form-item>
- <el-form-item label="娴佺▼鍗″彿锛�" :required="false" style="width: 18vw;">
- <el-select v-model="flowCardId" placeholder="璇烽�夋嫨娴佺▼鍗″彿">
+ <el-form-item :label="$t('reportWork.cardnumbera')" :required="true" style="width: 25vw;">
+ <el-select v-model="flowCardId" :placeholder="$t('reportWork.incardnumber')">
<el-option v-for="item in flowCardOptions" :key="item.flowcard_id" :label="item.flowcard_id" :value="item.flowcard_id" />
</el-select>
</el-form-item>
@@ -236,9 +236,9 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="handleConfirm">
- 纭
+ {{ $t('reportWork.sure') }}
</el-button>
- <el-button @click="dialogFormVisiblea = false">鍙栨秷</el-button>
+ <el-button @click="dialogFormVisiblea = false">{{ $t('reportWork.cancel') }}</el-button>
</div>
</template>
</el-dialog>
@@ -246,14 +246,14 @@
- <el-dialog v-model="dialogFormVisiblea2" top="21vh" width="30%" title="娓呴櫎鏋跺瓙鐜荤拑" >
+ <el-dialog v-model="dialogFormVisiblea2" top="21vh" width="30%" :title="$t('reportWork.clearglass')">
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="handleclear">
- 纭
+ {{ $t('reportWork.sure') }}
</el-button>
- <el-button @click="dialogFormVisiblea2 = false">鍙栨秷</el-button>
+ <el-button @click="dialogFormVisiblea2 = false">{{ $t('reportWork.cancel') }}</el-button>
</div>
</template>
</el-dialog>
diff --git a/UI-Project/src/views/User/permissions.vue b/UI-Project/src/views/User/permissions.vue
index 80cff3d..cdaab17 100644
--- a/UI-Project/src/views/User/permissions.vue
+++ b/UI-Project/src/views/User/permissions.vue
@@ -6,6 +6,9 @@
const add = ref(false)
const adda = ref(false)
+import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
const editingUser = ref({}); // 鐢ㄤ簬瀛樺偍褰撳墠缂栬緫鐨勭敤鎴锋暟鎹�
import request from "@/utils/request"
import { ref, onMounted } from "vue";
@@ -114,16 +117,16 @@
};
// 鍒犻櫎
const opena = async(row) => {
- try {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鍒犻櫎璇ヨ彍鍗�?',
- '鎻愮ず',
+ t('customer.demenu'),
+ t('customer.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('customer.yes'),
+ cancelButtonText: t('customer.cancel'),
type: 'warning',
- }
- );
+ }
+ );
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/loadGlass/sys/menu/deleteMenu", {
@@ -143,54 +146,16 @@
}
};
-// 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',
-// }
-// ]
-
-// })
</script>
<template>
- <div style="height: 700px;">
- <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">娣诲姞鑿滃崟</el-button>
+ <div style="height: 600px;">
+ <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">{{ $t('customer.addmenu') }}</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;max-height: 650px;">
<el-table
:data="tableData"
- height="650"
+ height="550"
@expand-change="handleExpandChange"
row-key="id"
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
@@ -205,33 +170,33 @@
row-key="id"
:header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"
>
- <el-table-column prop="menuName" label="浜岀骇鑿滃崟鏍�" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/>
- <el-table-column prop="url" label="閾炬帴" align="center" min-width="160"/>
- <el-table-column prop="id" align="center" label="鎺掑簭" min-width="140"/>
- <el-table-column fixed="right" label="鎿嶄綔" align="center">
+ <el-table-column prop="menuName" :label="$t('customer.semenu')" align="center" min-width="140" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"/>
+ <el-table-column prop="url" :label="$t('customer.link')" align="center" min-width="160"/>
+ <el-table-column prop="id" align="center" :label="$t('customer.sort')" min-width="140"/>
+ <el-table-column fixed="right" :label="$t('customer.operate')" align="center">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">缂栬緫</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button>
+ <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('customer.exit') }}</el-button>
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('customer.delete') }}</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
</el-table-column>
- <el-table-column prop="menuName" label="涓�绾ц彍鍗曟爮" align="center" min-width="120" />
- <el-table-column prop="url" label="閾炬帴" align="center" min-width="200"/>
- <el-table-column prop="id" align="center" label="鎺掑簭" min-width="180" />
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <el-table-column prop="menuName" :label="$t('customer.firstmenu')" align="center" min-width="120" />
+ <el-table-column prop="url" :label="$t('customer.link')" align="center" min-width="200"/>
+ <el-table-column prop="id" align="center" :label="$t('customer.sort')" min-width="180" />
+ <el-table-column fixed="right" :label="$t('customer.operate')" align="center" width="200">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">缂栬緫</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button>
+ <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('customer.exit') }}</el-button>
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('customer.delete') }}</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
</div>
- <el-dialog v-model="add" top="23vh" width="37%" title="娣诲姞鑿滃崟" >
+ <el-dialog v-model="add" top="23vh" width="37%" :title="$t('customer.addmenu')">
<div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
<el-form size="mini" label-width="150px">
<el-form label-width="100px" label-position="right">
@@ -239,8 +204,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鑿滃崟鏍忥細" :required="true" style="width: 25vw">
- <el-input v-model="menuName" autocomplete="off" />
+ <el-form-item :label="$t('customer.menu')" :required="true" style="width: 25vw">
+ <el-input v-model="menuName" autocomplete="off" :placeholder="$t('customer.inmenu')"/>
</el-form-item></div></div>
</el-col>
</el-row>
@@ -248,8 +213,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="閾炬帴锛�" :required="true" style="width: 25vw">
- <el-input v-model="url" autocomplete="off" />
+ <el-form-item :label="$t('customer.linka')" :required="true" style="width: 25vw">
+ <el-input v-model="url" autocomplete="off" :placeholder="$t('customer.inlink')"/>
</el-form-item></div></div>
</el-col>
</el-row>
@@ -257,8 +222,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鎺掑簭锛�" :required="true" style="width: 25vw">
- <el-input v-model="parentId" autocomplete="off" />
+ <el-form-item :label="$t('customer.sorta')" :required="true" style="width: 25vw">
+ <el-input v-model="parentId" autocomplete="off" :placeholder="$t('customer.insort')"/>
</el-form-item></div></div>
</el-col>
</el-row>
@@ -268,13 +233,13 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="getTableRow">
- 纭
+ {{ $t('customer.sure') }}
</el-button>
- <el-button @click="add = false">鍙栨秷</el-button>
+ <el-button @click="add = false">{{ $t('customer.cancel') }}</el-button>
</div>
</template>
</el-dialog>
- <el-dialog v-model="adda" top="23vh" width="37%" title="淇敼鑿滃崟" >
+ <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('customer.exmene')">
<div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
<el-form :model="editingUser" ref="formRef" size="mini" label-width="150px">
<el-form label-width="100px" label-position="right">
@@ -282,8 +247,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鑿滃崟鏍忥細" :required="true" style="width: 25vw">
- <el-input v-model="editingUser.menuName" autocomplete="off" />
+ <el-form-item :label="$t('customer.menu')" :required="true" style="width: 25vw">
+ <el-input v-model="editingUser.menuName" autocomplete="off" :placeholder="$t('customer.inmenu')"/>
</el-form-item></div></div>
</el-col>
</el-row>
@@ -291,8 +256,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="閾炬帴锛�" :required="true" style="width: 25vw">
- <el-input v-model="editingUser.url" autocomplete="off" />
+ <el-form-item :label="$t('customer.linka')" :required="true" style="width: 25vw">
+ <el-input v-model="editingUser.url" autocomplete="off" :placeholder="$t('customer.inlink')"/>
</el-form-item></div></div>
</el-col>
</el-row>
@@ -300,8 +265,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鎺掑簭锛�" :required="true" style="width: 25vw">
- <el-input v-model="editingUser.parentId" autocomplete="off" />
+ <el-form-item :label="$t('customer.sorta')" :required="true" style="width: 25vw">
+ <el-input v-model="editingUser.parentId" autocomplete="off" :placeholder="$t('customer.insort')"/>
</el-form-item></div></div>
</el-col>
</el-row>
@@ -311,9 +276,9 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="getTableRowa">
- 纭
+ {{ $t('customer.sure') }}
</el-button>
- <el-button @click="adda = false">鍙栨秷</el-button>
+ <el-button @click="adda = false">{{ $t('customer.cancel') }}</el-button>
</div>
</template>
</el-dialog>
diff --git a/UI-Project/src/views/User/rolelist.vue b/UI-Project/src/views/User/rolelist.vue
index abbe82c..8a92066 100644
--- a/UI-Project/src/views/User/rolelist.vue
+++ b/UI-Project/src/views/User/rolelist.vue
@@ -2,6 +2,9 @@
import {Search} from "@element-plus/icons-vue";
import {reactive} from "vue";
import {useRouter} from "vue-router"
+ import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
const router = useRouter()
const add = ref(false)
const adda = ref(false)
@@ -103,16 +106,16 @@
};
// 鍒犻櫎
const opena = async(row) => {
- try {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鍒犻櫎璇ヨ鑹�?',
- '鎻愮ず',
+ t('delivery.derole'),
+ t('delivery.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('delivery.yes'),
+ cancelButtonText: t('delivery.cancel'),
type: 'warning',
- }
- );
+ }
+ );
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/loadGlass/sys/role/delete", {
@@ -130,68 +133,29 @@
// 澶勭悊鍙兘鍑虹幇鐨勯敊璇紝姣斿 ElMessageBox 鎶涘嚭鐨勫紓甯哥瓑
console.error('鍙戠敓閿欒:', error);
}
-};
-
-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',
- }
- ]
-
-})
+};
</script>
<template>
<div>
- <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">娣诲姞瑙掕壊</el-button>
+ <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">{{ $t('delivery.addrole') }}</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="240" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="name" align="center" label="瑙掕壊" min-width="180" />
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <el-table-column prop="name" align="center" :label="$t('delivery.role')" min-width="180" />
+ <el-table-column fixed="right" :label="$t('delivery.operate')" align="center" width="200">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">缂栬緫</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button>
+ <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('delivery.edit') }}</el-button>
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('delivery.delete') }}</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
</div>
- <el-dialog v-model="add" top="23vh" width="37%" title="娣诲姞瑙掕壊" >
+ <el-dialog v-model="add" top="23vh" width="37%" :title="$t('delivery.addrole')" >
<div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
<el-form size="mini" label-width="150px">
<el-form label-width="100px" label-position="right">
@@ -199,8 +163,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw">
- <el-input placeholder="璇疯緭鍏ヨ鑹�" v-model="name" autocomplete="off" />
+ <el-form-item :label="$t('delivery.rolea')" :required="true" style="width: 25vw">
+ <el-input :placeholder="$t('delivery.inrole')" v-model="name" autocomplete="off" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -210,13 +174,13 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="getTableRow">
- 纭
+ {{ $t('delivery.sure') }}
</el-button>
- <el-button @click="add = false">鍙栨秷</el-button>
+ <el-button @click="add = false"> {{ $t('delivery.cancel') }}</el-button>
</div>
</template>
</el-dialog>
- <el-dialog v-model="adda" top="23vh" width="37%" title="淇敼瑙掕壊" >
+ <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('delivery.editrole')">
<div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
<el-form :model="editingUser" ref="formRef" size="mini" label-width="150px">
<el-form label-width="100px" label-position="right">
@@ -224,8 +188,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw">
- <el-input placeholder="璇疯緭鍏ヨ鑹�" v-model="editingUser.name" autocomplete="off" />
+ <el-form-item :label="$t('delivery.rolea')" :required="true" style="width: 25vw">
+ <el-input :placeholder="$t('delivery.inrole')" v-model="editingUser.name" autocomplete="off" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -235,9 +199,9 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="getTableRowa">
- 纭
+ {{ $t('delivery.sure') }}
</el-button>
- <el-button @click="adda = false">鍙栨秷</el-button>
+ <el-button @click="adda = false">{{ $t('delivery.cancel') }}</el-button>
</div>
</template>
</el-dialog>
diff --git a/UI-Project/src/views/User/userlist.vue b/UI-Project/src/views/User/userlist.vue
index ecd91ed..da399b6 100644
--- a/UI-Project/src/views/User/userlist.vue
+++ b/UI-Project/src/views/User/userlist.vue
@@ -10,6 +10,9 @@
import { ref, onMounted } from "vue";
// import { ref } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
+ import { useI18n } from 'vue-i18n'
+ const { t } = useI18n()
+ let language = ref(localStorage.getItem('lang') || 'zh')
// import LanguageMixin from './lang/LanguageMixin'
const selectedProjectNoa = ref(''); // 褰撳墠閫変腑鐨勮鑹�
// const options = ref<any[]>([]); // 涓嬫媺閫夐」鍒楄〃
@@ -31,16 +34,16 @@
});
// 閲嶇疆瀵嗙爜
const open = async(row) => {
- try {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁閲嶇疆鐢ㄦ埛瀵嗙爜?',
- '鎻愮ず',
+ t('productStock.repassword'),
+ t('productStock.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('productStock.yes'),
+ cancelButtonText: t('productStock.cancel'),
type: 'warning',
- }
- );
+ }
+ );
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
var url="/loadGlass/sys/user/resetPassword?userId="+row.id;
@@ -148,16 +151,16 @@
};
// 鍒犻櫎
const opena = async(row) => {
- try {
+ try {
const confirmResult = await ElMessageBox.confirm(
- '鏄惁鍒犻櫎璇ョ敤鎴�?',
- '鎻愮ず',
+ t('productStock.deusername'),
+ t('productStock.prompt'),
{
- confirmButtonText: '鏄�',
- cancelButtonText: '鍙栨秷',
+ confirmButtonText: t('productStock.yes'),
+ cancelButtonText: t('productStock.cancel'),
type: 'warning',
- }
- );
+ }
+ );
if (confirmResult === 'confirm') {
// 鐢ㄦ埛鐐瑰嚮浜嗏�滄槸鈥濓紝鐜板湪璋冪敤鍒犻櫎鎺ュ彛
const response = await request.post("/loadGlass/sys/user/deleteUser", {
@@ -219,32 +222,32 @@
<template>
<div>
- <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">娣诲姞鐢ㄦ埛</el-button>
+ <el-button type="primary" style="margin-top: 10px;margin-left: 10px;" size="mini" id="searchButton" @click="add = true">{{ $t('productStock.addusers') }}</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="240" ref="table"
@selection-change="handleSelectionChange"
:data="tableData" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}">
- <el-table-column prop="userName" align="center" label="鐢ㄦ埛鍚�" min-width="180" />
- <el-table-column align="center" label="瑙掕壊" min-width="80">
+ <el-table-column prop="userName" align="center" :label="$t('productStock.username')" min-width="180" />
+ <el-table-column align="center" :label="$t('productStock.role')" min-width="80">
<template #default="scope">
<el-tag v-for="role in scope.row.roleList">
{{role.name}}
</el-tag>
</template>
</el-table-column>
- <el-table-column fixed="right" label="鎿嶄綔" align="center" width="200">
+ <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270">
<template #default="scope">
- <el-button size="mini" type="text" plain @click="open(scope.row)">閲嶇疆瀵嗙爜</el-button>
- <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">缂栬緫</el-button>
- <el-button size="mini" type="text" plain @click="opena(scope.row)">鍒犻櫎</el-button>
+ <el-button size="mini" type="text" plain @click="open(scope.row)">{{ $t('productStock.resetpassword') }}</el-button>
+ <el-button size="mini" type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button>
+ <el-button size="mini" type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button>
</template>
</el-table-column>
</el-table>
</div>
</el-card>
</div>
- <el-dialog v-model="add" top="23vh" width="37%" title="娣诲姞鐢ㄦ埛" >
+ <el-dialog v-model="add" top="23vh" width="37%" :title="$t('productStock.addusers')">
<div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
<el-form size="mini" label-width="150px">
<el-form label-width="100px" label-position="right">
@@ -252,8 +255,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw">
- <el-input v-model="userName" autocomplete="off" />
+ <el-form-item :label="$t('productStock.usernamea')" :required="true" style="width: 25vw">
+ <el-input v-model="userName" autocomplete="off" :placeholder="$t('productStock.inusername')" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -261,12 +264,12 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+ <el-form-item :label="$t('productStock.rolea')" :required="true" style="width: 25vw;">
<el-select
v-model="selectedProjectNoa"
filterable
clearable
- placeholder="璇烽�夋嫨瑙掕壊"
+ :placeholder="$t('productStock.inrole')"
style="width: 330px"
>
<el-option
@@ -283,9 +286,10 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;">
+ <el-form-item :label="$t('productStock.password')" :required="true" style="width: 25vw;">
<el-input style="width: 340px;"
v-model="password"
+ :placeholder="$t('productStock.inpassword')"
autocomplete="off"
:prefix-icon="Lock"
show-password/>
@@ -298,13 +302,13 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="getTableRow">
- 纭
+ {{ $t('productStock.sure') }}
</el-button>
- <el-button @click="add = false">鍙栨秷</el-button>
+ <el-button @click="add = false">{{ $t('productStock.cancel') }}</el-button>
</div>
</template>
</el-dialog>
- <el-dialog v-model="adda" top="23vh" width="37%" title="淇敼鐢ㄦ埛" >
+ <el-dialog v-model="adda" top="23vh" width="37%" :title="$t('productStock.reusername')" >
<div style="margin-left: -50px;margin-top: 10px;margin-bottom: 10px;">
<el-form :model="editingUser" ref="formRef" size="mini" label-width="150px">
<el-form label-width="100px" label-position="right">
@@ -312,8 +316,8 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="鐢ㄦ埛鍚嶏細" :required="true" style="width: 25vw">
- <el-input v-model="editingUser.userName" autocomplete="off" />
+ <el-form-item :label="$t('productStock.usernamea')" :required="true" style="width: 25vw">
+ <el-input :placeholder="$t('productStock.inusername')" v-model="editingUser.userName" autocomplete="off" />
</el-form-item></div></div>
</el-col>
</el-row>
@@ -328,12 +332,12 @@
</el-tag>
</template>
</el-table-column> -->
- <el-form-item label="瑙掕壊锛�" :required="true" style="width: 25vw;">
+ <el-form-item :label="$t('productStock.rolea')" :required="true" style="width: 25vw;">
<el-select
v-model="selectedProjectNoa"
filterable
clearable
- placeholder="璇烽�夋嫨瑙掕壊"
+ :placeholder="$t('productStock.inrole')"
style="width: 330px"
>
<el-option
@@ -350,9 +354,10 @@
<el-col :span="6">
<div id="dt" style="font-size: 15px;">
<div>
- <el-form-item label="瀵嗙爜锛�" :required="true" style="width: 25vw;">
+ <el-form-item :label="$t('productStock.password')" :required="true" style="width: 25vw;">
<el-input style="width: 340px;"
v-model="editingUser.password"
+ :placeholder="$t('productStock.inpassword')"
autocomplete="off"
:prefix-icon="Lock"
show-password/>
@@ -365,9 +370,9 @@
<template #footer>
<div id="dialog-footer">
<el-button type="primary" @click="getTableRowa">
- 纭
+ {{ $t('productStock.sure') }}
</el-button>
- <el-button @click="adda = false">鍙栨秷</el-button>
+ <el-button @click="adda = false">{{ $t('productStock.cancel') }}</el-button>
</div>
</template>
</el-dialog>
diff --git a/UI-Project/vite.config.js b/UI-Project/vite.config.js
index b93f5ee..8fdf859 100644
--- a/UI-Project/vite.config.js
+++ b/UI-Project/vite.config.js
@@ -1,17 +1,27 @@
import {fileURLToPath, URL} from 'node:url'
-
import {defineConfig} from 'vite'
import vue from '@vitejs/plugin-vue'
import ReactivityTransform from '@vue-macros/reactivity-transform/vite'
+import AutoImport from 'unplugin-auto-import/vite'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
- ReactivityTransform()
+ ReactivityTransform(),
+ AutoImport({
+ imports: [
+ 'vue-i18n',
+ ],
+ dts: './auto-imports.d.ts',
+ eslintrc: {
+ enabled: false, // 閰嶇疆鏇存柊鏃朵复鏃惰涓簍rue,
+ },
+ }),
],
resolve: {
alias: {
+ 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js',
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
@@ -48,4 +58,4 @@
})
);
},
-});
\ No newline at end of file
+});
--
Gitblit v1.8.0