Merge branch 'master' of http://10.153.19.25:10101/r/HangZhouMes
35个文件已修改
4个文件已添加
35个文件已删除
New file |
| | |
| | | /* eslint-disable */ |
| | | /* prettier-ignore */ |
| | | // @ts-nocheck |
| | | // noinspection JSUnusedGlobalSymbols |
| | | // Generated by unplugin-auto-import |
| | | export {} |
| | | declare global { |
| | | const useI18n: typeof import('vue-i18n')['useI18n'] |
| | | } |
| | |
| | | "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", |
| | |
| | | }, |
| | | "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": { |
| | |
| | | "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, |
| | |
| | | "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", |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | "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" |
| | | } |
| | | }, |
| | |
| | | } |
| | | }, |
| | | "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" |
| | | }, |
| | |
| | | }, |
| | | "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", |
| | |
| | | "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": { |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | }, |
| | | "engines": { |
| | | "node": ">= 8.10.0" |
| | | }, |
| | | "funding": { |
| | | "url": "https://paulmillr.com/funding/" |
| | | }, |
| | | "optionalDependencies": { |
| | | "fsevents": "~2.3.2" |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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" |
| | |
| | | "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", |
| | |
| | | } |
| | | }, |
| | | "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": { |
| | |
| | | "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", |
| | |
| | | }, |
| | | "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": { |
| | |
| | | }, |
| | | "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" |
| | |
| | | "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", |
| | |
| | | } |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | "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" |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | }, |
| | | "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": { |
| | |
| | | "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": { |
| | |
| | | "@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": { |
| | |
| | | }, |
| | | "engines": { |
| | | "node": ">= 16" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/kazupon" |
| | | }, |
| | | "peerDependencies": { |
| | | "vue": "^3.0.0" |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | "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 |
| | | }, |
| | |
| | | "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", |
| | |
| | | } |
| | | }, |
| | | "@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", |
| | |
| | | "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": {} |
| | | }, |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | }, |
| | | "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", |
| | |
| | | "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", |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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" |
| | |
| | | "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", |
| | |
| | | "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" |
| | | } |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | }, |
| | | "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": { |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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" |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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": { |
| | |
| | | "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": { |
| | |
| | | "@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": { |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | }, |
| | | "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" |
| | | } |
| | | } |
New file |
| | |
| | | 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:'Подсказк', |
| | | }, |
| | | } |
New file |
| | |
| | | |
| | | 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, // 如果要支持compositionAPI,此项必须设置为false; |
| | | globalInjection: true, // 全局注册$t方法 |
| | | messages |
| | | }) |
| | | |
| | | export default i18n |
New file |
| | |
| | | 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:'请输入玻璃ID', |
| | | pieceingrid:'小片在格内的顺序', |
| | | pieceingrida:'小片在格内的顺序:', |
| | | inpieceingrid:'请输入小片在格内的顺序', |
| | | cardnumber:'流程卡号', |
| | | cardnumbera:'流程卡号:', |
| | | incardnumber:'请输入流程卡号', |
| | | typeglass:'玻璃类型', |
| | | typeglassa:'玻璃类型:', |
| | | intypeglass:'请输入玻璃类型', |
| | | width:'宽', |
| | | widtha:'宽:', |
| | | inwidth:'请输入宽', |
| | | height:'高', |
| | | heighta:'高:', |
| | | inheight:'请输入高', |
| | | coatingtypes:'膜系', |
| | | 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:'栅格号', |
| | | gridnumbera:'栅格号:', |
| | | grid:'请输入栅格号', |
| | | enable:'启用', |
| | | disable:'禁用', |
| | | remainingwidth:'剩余宽度', |
| | | add:'添加', |
| | | sheetID:'钢化小片信息表ID', |
| | | processcards:'流程卡', |
| | | processcardtype:'流程卡玻璃类型', |
| | | acceptshorizontal:'钢化是否接受横放', |
| | | xcoordinates:'x坐标', |
| | | ycoordinates:'y坐标', |
| | | rotationangle:'旋转角度(逆时针)', |
| | | state:'状态', |
| | | takeout:'拿走', |
| | | deletemessage:'是否删除该条信息?', |
| | | prompt:'提示', |
| | | yes:'是', |
| | | accept:'接受', |
| | | noaccept:'不接受', |
| | | filmcomplete:'出片完成', |
| | | waiting:'等待中', |
| | | broke:'是否破损该条信息?', |
| | | brokeb:'是否拿走该条信息?', |
| | | outfil:'是否出片该条信息?', |
| | | inputid:'请输入玻璃ID', |
| | | search:'搜索', |
| | | tabid:'大理片笼详情表id', |
| | | 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 :'返库日期', |
| | | }, |
| | | } |
| | |
| | | <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 |
| | |
| | | // 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({ |
| | |
| | | // }); |
| | | // } |
| | | |
| | | |
| | | 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) => { |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | </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%; |
| | |
| | | |
| | | ul li { |
| | | height: 28px; |
| | | width: 200px; |
| | | line-height: 30px; |
| | | /* background: rgb(128, 128, 128); */ |
| | | color: #000000; |
| | |
| | | } |
| | | |
| | | .menu_title { |
| | | width: 140px; |
| | | width: 180px; |
| | | /* white-space: nowrap; |
| | | overflow: hidden; |
| | | text-overflow: ellipsis; */ |
| | | |
| | | height: 45px; |
| | | line-height: 55px; |
| | | /* background: #fafafa; */ |
| | |
| | | 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') |
| | |
| | | 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' |
| | |
| | | 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([]); |
| | |
| | | } |
| | | 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, { |
| | |
| | | if (response.code === 200) { |
| | | ElMessage.success(response.message); |
| | | } else { |
| | | // 删除失败,您可以处理错误或显示错误信息给用户 |
| | | ElMessage.error(response.msg); |
| | | // alert('删除失败:' + deleteResponse.message); |
| | | } |
| | | } |
| | | } catch (error) { |
| | | // 处理可能出现的错误,比如 ElMessageBox 抛出的异常等 |
| | | console.error('发生错误:', error); |
| | | } |
| | | }; |
| | |
| | | <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" |
| | | > |
| | |
| | | :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> |
| | |
| | | <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() |
| | |
| | | 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([]); |
| | |
| | | // 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') { |
| | | // 用户点击了“是”,现在调用删除接口 |
| | |
| | | // 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; |
| | | // 发送请求到后端更新状态(这里省略了实际的请求逻辑) |
| | |
| | | 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;} |
| | |
| | | <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' }" |
| | |
| | | </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> |
| | |
| | | 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(); |
| | |
| | | |
| | | adjustedRects.value = rawRects.map(rect => ({ |
| | | ...rect, // 复制原始对象的其他属性 |
| | | x_axis: (rect.x_axis*100) * 0.004, // 将x值除以3 |
| | | y_axis: (rect.y_axis*100) * 0.004, |
| | | x_axis: (rect.x_axis*100) * 0.003, // 将x值除以3 |
| | | y_axis: (rect.y_axis*100) * 0.003, |
| | | width: (rect.width*100) * 0.002 , |
| | | widtha: rect.width , |
| | | heighta: rect.height , |
| | |
| | | // adjustedRects.value = data.currentCutTerritory[0] |
| | | adjustedRects.value = data.currentCutTerritory[0].map(rect => ({ |
| | | ...rect, // 复制原始对象的其他属性 |
| | | x_axis: (rect.x_axis*100) * 0.004, // 将x值除以3 |
| | | y_axis: (rect.y_axis*100) * 0.004, |
| | | x_axis: (rect.x_axis*100) * 0.003, // 将x值除以3 |
| | | y_axis: (rect.y_axis*100) * 0.003, |
| | | width: (rect.width*100) * 0.002 , |
| | | widtha: rect.width , |
| | | heighta: rect.height , |
| | |
| | | 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: '', |
| | |
| | | |
| | | const validateUser = (rule: any, value: any, callback: any) => { |
| | | if (value === '') { |
| | | callback(new Error('请输入你的账号')) |
| | | callback(new Error(t('login.userErr'))) |
| | | } else { |
| | | callback() |
| | | } |
| | |
| | | |
| | | const validatePass = (rule: any, value: any, callback: any) => { |
| | | if (value === '') { |
| | | callback(new Error('请输入你的密码')) |
| | | callback(new Error(t('login.pwErr'))) |
| | | } else { |
| | | callback() |
| | | } |
| | |
| | | console.log(res.data) |
| | | |
| | | router.push('/main') |
| | | ElMessage.success(`登录成功`) |
| | | ElMessage.success(t('login.loginSuccessful')) |
| | | } else { |
| | | ElMessage.error(res['msg']) |
| | | store.$patch({ |
| | |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | ElMessage.error('服务器连接失败') |
| | | ElMessage.error(t('main.connectErr')) |
| | | store.$patch({ |
| | | user: null, |
| | | }) |
| | |
| | | <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" |
| | |
| | | autocomplete="off" |
| | | :prefix-icon="Lock" |
| | | show-password |
| | | placeholder="请输入密码"/> |
| | | :placeholder="$t('login.pwErr')" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item id="submitForm"> |
| | | <el-button :loading="loginLoadings" |
| | |
| | | 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> |
| | |
| | | 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) |
| | |
| | | </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 |
| | |
| | | </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" |
| | |
| | | <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" |
| | |
| | | <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" |
| | |
| | | <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" |
| | |
| | | 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) |
| | |
| | | /*方法*/ |
| | | 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() |
| | | } |
| | |
| | | |
| | | 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() |
| | | } |
| | |
| | | |
| | | 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() |
| | | } |
| | |
| | | }) |
| | | }) |
| | | |
| | | 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 |
| | | }) |
| | |
| | | path:'/login', |
| | | }) |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | // console.log(route.params) |
| | | </script> |
| | | |
| | | <template> |
| | |
| | | <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"> |
| | |
| | | :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" |
| | |
| | | :prefix-icon="Lock" |
| | | autocomplete="off" |
| | | show-password |
| | | placeholder="请确认密码" |
| | | :placeholder="$t('register.pwErration')" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item id="submitForm"> |
| | |
| | | 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> |
| | |
| | | </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%; */ |
| | |
| | | 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) |
| | |
| | | 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'); // 用于动态设置i标签的背景色 |
| | | const inKageWord = ref(0); // 用于存储要传递给接口的inKageWord值 |
| | |
| | | else { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '第二行和第四行的高必须大于2700才能保存!', |
| | | message: t('basicData.pause'), |
| | | }) |
| | | } |
| | | |
| | |
| | | } |
| | | } else if (markingMachineStatus.value === '#911005' || cuttingMachineStatus.value === '#911005') { |
| | | // 提示用户打标机未就绪 |
| | | ElMessage.warning('请确认打标机和切割机的就绪状态!'); |
| | | ElMessage.warning(t('basicData.pausea')); |
| | | } |
| | | } |
| | | // 暂停 |
| | |
| | | else { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '工程号不能为空!', |
| | | message: t('basicData.infonull'), |
| | | }) |
| | | } |
| | | } |
| | |
| | | else { |
| | | ElMessage({ |
| | | type: 'info', |
| | | message: '工程号不能为空!', |
| | | message: t('basicData.infonull'), |
| | | }) |
| | | } |
| | | } |
| | |
| | | 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) { |
| | |
| | | const toggleEnableState = async (row: any) => { |
| | | // 检查 id 是否为空 |
| | | if (!row.id) { |
| | | ElMessage.error('该工程未保存到上片表!'); |
| | | ElMessage.error(t('basicData.updatanull')); |
| | | return; // 如果 id 为空,则不执行后续操作 |
| | | } |
| | | |
| | |
| | | } |
| | | } catch (error) { |
| | | // 处理请求错误 |
| | | console.error('更新玻璃状态请求失败:', error); |
| | | ElMessage.error('更新玻璃状态时发生错误'); |
| | | ElMessage.error(t('basicData.glassnull')); |
| | | } |
| | | }; |
| | | |
| | |
| | | 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 { |
| | |
| | | ); |
| | | 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); |
| | |
| | | <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"> |
| | |
| | | :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="状态" |
| | |
| | | </template> --> |
| | | <el-table-column |
| | | align="center" |
| | | label="启用状态" |
| | | :label="$t('basicData.startstatus')" |
| | | min-width="80" |
| | | prop="state" |
| | | > |
| | |
| | | :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"> |
| | |
| | | <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"> |
| | |
| | | <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" |
| | | > |
| | |
| | | <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" |
| | | > |
| | |
| | | <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" |
| | | > |
| | |
| | | <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" |
| | | > |
| | |
| | | <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> |
| | |
| | | <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" |
| | | > |
| | |
| | | <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> |
| | |
| | | <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" |
| | |
| | | const tableDatad = ref([]) |
| | | const tableDatae = ref([]) |
| | | const adjustedRects = ref([]); |
| | | const adjustedRectsa = ref([]); |
| | | // const height = ref([]); |
| | | const add = ref(false) |
| | | const flowCardId = ref(''); |
| | |
| | | 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) { |
| | |
| | | } |
| | | } |
| | | const handleBindRack = (row) => { |
| | | selectedRow.value = row; // 更新选中的行数据 |
| | | add.value = true; // 打开绑定架子对话框 |
| | | }; |
| | | // 添加 |
| | | const handleConfirm = async () => { |
| | | async function handleConfirm() { |
| | | if (!selectedRow.value) { |
| | | // 处理没有选中行的情况... |
| | | return; |
| | | } |
| | | |
| | | // 构造你的POST请求数据,包含选中的行数据和表单数据 |
| | | 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); |
| | |
| | | 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; |
| | |
| | | // ]); |
| | | // 删除 |
| | | 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); |
| | | } |
| | | } |
| | |
| | | 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 变量 |
| | |
| | | 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) { |
| | |
| | | function getStatusText(enableState: number) { |
| | | switch (enableState) { |
| | | case 0: |
| | | return '禁用'; |
| | | return t('searchOrder.disable'); |
| | | case 1: |
| | | return '启用'; |
| | | return t('searchOrder.enable'); |
| | | } |
| | | } |
| | | function getStatusTypea(ishorizontal: number) { |
| | |
| | | function getStatusTexta(ishorizontal: number) { |
| | | switch (ishorizontal) { |
| | | case 0: |
| | | return '不接受'; |
| | | return t('searchOrder.noaccept'); |
| | | case 1: |
| | | return '接受'; |
| | | return t('searchOrder.accept'); |
| | | } |
| | | } |
| | | function getStatusTypeb(state: number) { |
| | |
| | | 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(() => { |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | </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="请输入玻璃ID" 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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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="请输入钢化版图ID" 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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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 |
| | |
| | | :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" |
| | | > |
| | |
| | | </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="大理片笼表ID" 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" |
| | | > |
| | |
| | | :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> |
| | |
| | | /> |
| | | </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> |
| | |
| | | </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="钢化小片信息表id" 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" |
| | | > |
| | |
| | | </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" |
| | | > |
| | |
| | | </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> |
| | |
| | | } |
| | | |
| | | .img-dlpl{ |
| | | margin-left: 200px; |
| | | margin-left: 80px; |
| | | background-image:url('../../assets/dlpl.png'); |
| | | background-repeat: no-repeat; |
| | | background-attachment: local; |
| | |
| | | // 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('') |
| | |
| | | } |
| | | }); |
| | | // 破损 |
| | | 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", { |
| | |
| | | }; |
| | | // 拿走 |
| | | 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", { |
| | |
| | | <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> |
| | |
| | | // 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('') |
| | |
| | | }); |
| | | // 破损 |
| | | 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", { |
| | |
| | | }; |
| | | // 拿走 |
| | | 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", { |
| | |
| | | <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> |
| | |
| | | :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> |
| | |
| | | <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'; |
| | |
| | | tableContent += '</table>'; |
| | | |
| | | Swal.fire({ |
| | | title: '玻璃信息', |
| | | // title: '玻璃信息', |
| | | title: "$t('reportWork.glassinformation')", |
| | | html: tableContent, |
| | | customClass: { |
| | | popup: 'format-pre' |
| | |
| | | .glass-rack { |
| | | margin-left: 20px; |
| | | width: 500px; |
| | | margin-top: 10px; |
| | | margin-top: 5px; |
| | | } |
| | | .rack-rect:hover { |
| | | cursor: pointer; |
| | |
| | | :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> |
| | |
| | | <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'; |
| | |
| | | tableContent += '</table>'; |
| | | |
| | | Swal.fire({ |
| | | title: '玻璃信息', |
| | | title: "$t('reportWork.glassinformation')", |
| | | // title: '玻璃信息', |
| | | html: tableContent, |
| | | customClass: { |
| | | popup: 'format-pre' |
| | |
| | | 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"; |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | <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> |
| | |
| | | |
| | | |
| | | |
| | | <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> |
| | |
| | | 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"; |
| | |
| | | }; |
| | | // 删除 |
| | | 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", { |
| | |
| | | } |
| | | }; |
| | | |
| | | // 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'}" |
| | |
| | | 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"> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | 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) |
| | |
| | | }; |
| | | // 删除 |
| | | 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", { |
| | |
| | | // 处理可能出现的错误,比如 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"> |
| | |
| | | <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> |
| | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | 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[]>([]); // 下拉选项列表 |
| | |
| | | }); |
| | | // 重置密码 |
| | | 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; |
| | |
| | | }; |
| | | // 删除 |
| | | 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", { |
| | |
| | | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | <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 |
| | |
| | | <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/> |
| | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | </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 |
| | |
| | | <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/> |
| | |
| | | <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> |
| | |
| | | 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, // 配置更新时临时设为true, |
| | | }, |
| | | }), |
| | | ], |
| | | resolve: { |
| | | alias: { |
| | | 'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js', |
| | | '@': fileURLToPath(new URL('./src', import.meta.url)) |
| | | } |
| | | }, |
| | |
| | | }) |
| | | ); |
| | | }, |
| | | }); |
| | | }); |
| | |
| | | /** |
| | | * 旋转角度(逆时针) |
| | | */ |
| | | private Integer angle; |
| | | private Double angle; |
| | | |
| | | /** |
| | | * 工程号 |
| | |
| | | private Double height; |
| | | |
| | | /** |
| | | * 宽 |
| | | */ |
| | | private Double oHeight; |
| | | |
| | | /** |
| | | * 高 |
| | | */ |
| | | private Double oWidth; |
| | | |
| | | |
| | | /** |
| | | * 厚度 |
| | | */ |
| | | private Double glassThickness; |
| | |
| | | * 小片编号 |
| | | */ |
| | | private String glassId; |
| | | /** |
| | | * 订单序号 |
| | | */ |
| | | private String orderSort; |
| | | /** |
| | | * 旋转角度 |
| | | */ |
| | | private Double rotateAngle; |
| | | |
| | | } |
| | |
| | | List<OptimizeGlassinfo> optimizeGlassinfos = null; |
| | | if (engineeringId != null) { |
| | | optimizeGlassinfos = optimizeProjectMapper.selectJoinList(OptimizeGlassinfo.class, new MPJQueryWrapper<OptimizeProject>() |
| | | .select("b.process_id,t.type,b.width,b.height,t.glass_thickness,t.glass_type,b.p_width,b.p_height,b.layer, b.total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort,b.x_axis,b.y_axis,b.project_no,b.glass_id") |
| | | .select("b.process_id,t.glass_type,b.o_width,b.o_height,t.glass_thickness,b.order_sort,b.p_width,b.p_height,b.layer, b.total_layer, b.stock_id,b.heat_layout_id,b.heat_layout_sort,c.x_axis,c.y_axis,b.project_no,b.glass_id,c.rotate_angle") |
| | | .leftJoin("optimize_detail b on t.project_no=b.project_no") |
| | | .leftJoin("optimize_heat_detail c on c.project_no=t.project_no and b.heat_layout_id=c.layout_id and b.heat_layout_sort=c.sort") |
| | | //.eq("t.state",100) |
| | | .eq("t.project_no", engineeringId)); |
| | | } |
| | | |
| | | //order_sort,o_width,o_height |
| | | // 创建一个 List 用于保存映射后的实体对象 |
| | | List<GlassInfo> resultList = new ArrayList<>(); |
| | | |
| | |
| | | glassInfo.setEngineerId(map.getProjectNo()); |
| | | glassInfo.setFlowCardId(map.getProcessId()); |
| | | glassInfo.setFilmsid(map.getGlassType()); |
| | | glassInfo.setGlassType(map.getType()); |
| | | glassInfo.setWidth(map.getWidth()); |
| | | glassInfo.setHeight(map.getHeight()); |
| | | glassInfo.setGlassType(map.getOrderSort());//订单序号 |
| | | glassInfo.setWidth(map.getOWidth());//订单宽 |
| | | glassInfo.setHeight(map.getOHeight());//订单高 |
| | | glassInfo.setEdgWidth(map.getPWidth()); |
| | | glassInfo.setLayer(map.getLayer()); |
| | | glassInfo.setTotalLayer(map.getTotalLayer()); |
| | |
| | | glassInfo.setTemperingFeedSequence(map.getHeatLayoutSort());//钢化版图顺序 |
| | | glassInfo.setXCoordinate(map.getXAxis()); |
| | | glassInfo.setYCoordinate(map.getYAxis()); |
| | | |
| | | glassInfo.setAngle(map.getRotateAngle()); |
| | | glassInfo.setGlassId(map.getGlassId()); |
| | | // 将映射后的对象添加到结果列表中 |
| | | resultList.add(glassInfo); |
| | |
| | | // 2、全局配置 |
| | | // 全局配置 |
| | | GlobalConfig gc = new GlobalConfig(); |
| | | gc.setOutputDir("D:\\Documents\\hangzhoumesParent4\\"); |
| | | gc.setOutputDir("D:\\Documents\\hangzhoumesParent6\\"); |
| | | |
| | | gc.setServiceName("%sService"); //去掉Service接口的首字母I |
| | | gc.setAuthor("wu"); |
| | |
| | | |
| | | // 3、数据源配置 |
| | | DataSourceConfig dsc = new DataSourceConfig(); |
| | | dsc.setUrl("jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8"); |
| | | dsc.setUrl("jdbc:mysql://10.153.19.150:3306/sd?serverTimezone=GMT%2b8"); |
| | | dsc.setDriverName("com.mysql.cj.jdbc.Driver"); |
| | | dsc.setUsername("root"); |
| | | dsc.setPassword("beibo.123/"); |
| | |
| | | // 4、包配置 |
| | | PackageConfig pc = new PackageConfig(); |
| | | pc.setParent("com.mes"); |
| | | pc.setModuleName("glassinfo"); //模块名 |
| | | pc.setModuleName("orderdetail"); //模块名 |
| | | pc.setController("controller"); |
| | | pc.setService("service"); |
| | | pc.setMapper("mapper"); |
| | |
| | | // 5、策略配置 |
| | | StrategyConfig strategy = new StrategyConfig(); |
| | | |
| | | strategy.setInclude("glass_info"); |
| | | strategy.setInclude("order_detail"); |
| | | |
| | | strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 |
| | | |
| | |
| | | <artifactId>servicebase</artifactId> |
| | | <version>1.0-SNAPSHOT</version> |
| | | </dependency> |
| | | |
| | | <!-- Spring Security依赖 --> |
| | | <dependency> |
| | | <groupId>org.springframework.boot</groupId> |
| | |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | sd: |
| | | url: jdbc:mysql://192.168.1.199:3306/sd?serverTimezone=GMT%2b8 |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | cloud: |
| | | nacos: |
| | | discovery: |
| | |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | # hangzhoumes: |
| | | # url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8 |
| | | # username: root |
| | | # password: beibo.123/ |
| | | # driver-class-name: com.mysql.cj.jdbc.Driver |
| | | # pp: |
| | | # url: jdbc:mysql://10.153.19.150:3306/pp?serverTimezone=GMT%2b8 |
| | | # username: root |
| | | # password: beibo.123/ |
| | | # driver-class-name: com.mysql.cj.jdbc.Driver |
| | | sd: |
| | | url: jdbc:mysql://192.168.1.199:3306/sd?serverTimezone=GMT%2b8 |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | cloud: |
| | | nacos: |
| | | discovery: |
| | |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | sd: |
| | | url: jdbc:mysql://192.168.1.199:3306/sd?serverTimezone=GMT%2b8 |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | cloud: |
| | | nacos: |
| | | discovery: |
| | |
| | | primary: hangzhoumes #设置默认的数据源或者数据源组,默认值即为master |
| | | strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源. |
| | | datasource: |
| | | # hangzhoumes: |
| | | # url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8 |
| | | # username: root |
| | | # password: beibo.123/ |
| | | # driver-class-name: com.mysql.cj.jdbc.Driver |
| | | # |
| | | # salve_hangzhoumes: |
| | | # url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes |
| | | # username: sa |
| | | # password: beibo.123/ |
| | | # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | hangzhoumes: |
| | | url: jdbc:mysql://192.168.1.199:3306/hangzhoumes?serverTimezone=GMT%2b8 |
| | | url: jdbc:mysql://10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8 |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | |
| | | salve_hangzhoumes: |
| | | url: jdbc:sqlserver://192.168.10.2:1433;databasename=hangzhoumes |
| | | url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes |
| | | username: sa |
| | | password: beibo.123/ |
| | | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | |
| | | primary: hangzhoumes #设置默认的数据源或者数据源组,默认值即为master |
| | | strict: false #设置严格模式,默认false不启动. 启动后在未匹配到指定数据源时候回抛出异常,不启动会使用默认数据源. |
| | | datasource: |
| | | # hangzhoumes: |
| | | # url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8 |
| | | # username: root |
| | | # password: beibo.123/ |
| | | # driver-class-name: com.mysql.cj.jdbc.Driver |
| | | # salve_hangzhoumes: |
| | | # url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes |
| | | # username: sa |
| | | # password: beibo.123/ |
| | | # driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | | hangzhoumes: |
| | | url: jdbc:mysql://127.0.0.1:3306/hangzhoumes?serverTimezone=GMT%2b8 |
| | | url: jdbc:mysql:10.153.19.150:3306/hangzhoumes?serverTimezone=GMT%2b8 |
| | | username: root |
| | | password: beibo.123/ |
| | | driver-class-name: com.mysql.cj.jdbc.Driver |
| | | salve_hangzhoumes: |
| | | url: jdbc:sqlserver://127.0.0.1:1433;databasename=hangzhoumes |
| | | url: jdbc:sqlserver://10.153.19.150:1433;databasename=hangzhoumes |
| | | username: sa |
| | | password: beibo.123/ |
| | | driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver |
| | |
| | | port: 8084 |
| | | spring: |
| | | profiles: |
| | | active: cz |
| | | active: dev |
| | | application: |
| | | name: temperingGlass |
| | | mybatis-plus: |
| | |
| | | //package com.mes; |
| | | // |
| | | //import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | //import com.mes.temperingglass.service.TemperingAgoService; |
| | | //import lombok.extern.slf4j.Slf4j; |
| | | //import org.junit.Test; |
| | | //import org.junit.runner.RunWith; |
| | | //import org.springframework.beans.factory.annotation.Autowired; |
| | | //import org.springframework.boot.test.context.SpringBootTest; |
| | | //import org.springframework.test.context.junit4.SpringRunner; |
| | | // |
| | | //import java.util.Arrays; |
| | | //import java.util.List; |
| | | // |
| | | ///** |
| | | // * @Author : zhoush |
| | | // * @Date: 2024/3/27 16:37 |
| | | // * @Description: |
| | | // */ |
| | | //@Slf4j |
| | | //@RunWith(SpringRunner.class) |
| | | //@SpringBootTest(classes = TemperingGlassModuleApplication.class) |
| | | //public class TemperingApplicationTest { |
| | | // |
| | | // @Autowired |
| | | // private TemperingAgoService temperingAgoService; |
| | | // |
| | | // |
| | | // @Test |
| | | // public void testFindPa() { |
| | | // List<TemperingGlassInfo> glass = temperingAgoService.selectIntoGlass(12); |
| | | // log.info("进炉中的玻璃:{}", Arrays.asList(glass)); |
| | | // } |
| | | // @Test |
| | | // public void testFindPa2() { |
| | | // List<TemperingGlassInfo> glass = temperingAgoService.selectOutGlass(); |
| | | // log.info("已出中的玻璃:{}", Arrays.asList(glass)); |
| | | // } |
| | | // |
| | | // @Test |
| | | // public void testFindPa3() { |
| | | // List<TemperingGlassInfo> glass = temperingAgoService.selectWaitingGlass(); |
| | | // log.info("等待中的玻璃:{}", Arrays.asList(glass)); |
| | | // } |
| | | // @Test |
| | | // public void testFindPa4() { |
| | | // List<TemperingGlassInfo> glass = temperingAgoService.selectOverGlass(); |
| | | // log.info("等待中的玻璃:{}", Arrays.asList(glass)); |
| | | // } |
| | | // @Test |
| | | // public void testFindPa5() { |
| | | // List<TemperingGlassInfo> layoutId = temperingAgoService.selectLayoutId(); |
| | | // //进炉中的玻璃 |
| | | // log.info("版图id:{}", Arrays.asList(layoutId.get(0).getTemperingLayoutId())); |
| | | // List<TemperingGlassInfo> intoGlass = temperingAgoService.selectIntoGlass(layoutId.get(0).getTemperingLayoutId()); |
| | | // log.info("玻璃版图id:{}", Arrays.asList(intoGlass)); |
| | | // List<TemperingGlassInfo> intoGlass2 = temperingAgoService.selectIntoGlass(layoutId.get(1).getTemperingLayoutId()); |
| | | // log.info("玻璃版图id:{}", Arrays.asList(intoGlass2)); |
| | | // } |
| | | //} |
| | | package com.mes; |
| | | |
| | | import com.mes.temperingglass.entity.TemperingGlassInfo; |
| | | import com.mes.temperingglass.service.TemperingAgoService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.junit.Test; |
| | | import org.junit.runner.RunWith; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.boot.test.context.SpringBootTest; |
| | | import org.springframework.test.context.junit4.SpringRunner; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @Author : zhoush |
| | | * @Date: 2024/3/27 16:37 |
| | | * @Description: |
| | | */ |
| | | @Slf4j |
| | | @RunWith(SpringRunner.class) |
| | | @SpringBootTest(classes = TemperingGlassModuleApplication.class) |
| | | public class TemperingApplicationTest { |
| | | |
| | | @Autowired |
| | | private TemperingAgoService temperingAgoService; |
| | | |
| | | |
| | | @Test |
| | | public void testFindPa() { |
| | | List<TemperingGlassInfo> glass = temperingAgoService.selectIntoGlass(12); |
| | | log.info("进炉中的玻璃:{}", Arrays.asList(glass)); |
| | | } |
| | | @Test |
| | | public void testFindPa2() { |
| | | List<TemperingGlassInfo> glass = temperingAgoService.selectOutGlass(); |
| | | log.info("已出中的玻璃:{}", Arrays.asList(glass)); |
| | | } |
| | | |
| | | @Test |
| | | public void testFindPa3() { |
| | | List<TemperingGlassInfo> glass = temperingAgoService.selectWaitingGlass(); |
| | | log.info("等待中的玻璃:{}", Arrays.asList(glass)); |
| | | } |
| | | @Test |
| | | public void testFindPa4() { |
| | | List<TemperingGlassInfo> glass = temperingAgoService.selectOverGlass(); |
| | | log.info("等待中的玻璃:{}", Arrays.asList(glass)); |
| | | } |
| | | @Test |
| | | public void testFindPa5() { |
| | | List<TemperingGlassInfo> layoutId = temperingAgoService.selectLayoutId(); |
| | | //进炉中的玻璃 |
| | | log.info("版图id:{}", Arrays.asList(layoutId.get(0).getTemperingLayoutId())); |
| | | List<TemperingGlassInfo> intoGlass = temperingAgoService.selectIntoGlass(layoutId.get(0).getTemperingLayoutId()); |
| | | log.info("玻璃版图id:{}", Arrays.asList(intoGlass)); |
| | | List<TemperingGlassInfo> intoGlass2 = temperingAgoService.selectIntoGlass(layoutId.get(1).getTemperingLayoutId()); |
| | | log.info("玻璃版图id:{}", Arrays.asList(intoGlass2)); |
| | | } |
| | | } |