UI-Project/index.html
@@ -3,6 +3,8 @@ <head> <meta charset="UTF-8"> <!-- <link rel="icon" href="/favicon.ico"> --> <link rel="stylesheet" type="text/css" media="print" href="/print-lock.css"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>北玻</title> </head> UI-Project/package-lock.json
@@ -27,6 +27,7 @@ "vue-draggable-plus": "^0.5.0", "vue-echarts": "^6.7.3", "vue-i18n": "^11.0.0-rc.1", "vue-plugin-hiprint": "^0.0.56", "vue-print-nb": "^1.7.5", "vue-router": "^4.0.13", "vue3-print-nb": "^0.1.4", @@ -82,6 +83,14 @@ "node": ">=6.0.0" } }, "node_modules/@babel/runtime": { "version": "7.27.6", "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/types": { "version": "7.25.2", "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.2.tgz", @@ -93,6 +102,14 @@ }, "engines": { "node": ">=6.9.0" } }, "node_modules/@claviska/jquery-minicolors": { "version": "2.3.6", "resolved": "https://registry.npmmirror.com/@claviska/jquery-minicolors/-/jquery-minicolors-2.3.6.tgz", "integrity": "sha512-8Ro6D4GCrmOl41+6w4NFhEOpx8vjxwVRI69bulXsFDt49uVRKhLU5TnzEV7AmOJrylkVq+ugnYNMiGHBieeKUQ==", "peerDependencies": { "jquery": ">= 1.7.x" } }, "node_modules/@ctrl/tinycolor": { @@ -266,6 +283,11 @@ } } }, "node_modules/@socket.io/component-emitter": { "version": "3.1.2", "resolved": "https://registry.npmmirror.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" }, "node_modules/@types/estree": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", @@ -301,6 +323,11 @@ "dependencies": { "undici-types": "~5.26.4" } }, "node_modules/@types/raf": { "version": "3.4.3", "resolved": "https://registry.npmmirror.com/@types/raf/-/raf-3.4.3.tgz", "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==" }, "node_modules/@types/sortablejs": { "version": "1.15.8", @@ -634,6 +661,17 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", "bin": { "atob": "bin/atob.js" }, "engines": { "node": ">= 4.5.0" } }, "node_modules/axios": { "version": "1.6.8", "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz", @@ -677,6 +715,14 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "node_modules/base64-arraybuffer": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", "engines": { "node": ">= 0.6.0" } }, "node_modules/binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -708,6 +754,25 @@ "node": ">=8" } }, "node_modules/btoa": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/btoa/-/btoa-1.2.1.tgz", "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", "bin": { "btoa": "bin/btoa.js" }, "engines": { "node": ">= 0.4.0" } }, "node_modules/bwip-js": { "version": "4.7.0", "resolved": "https://registry.npmmirror.com/bwip-js/-/bwip-js-4.7.0.tgz", "integrity": "sha512-b7oQcgbWUl8rpcZayQ32SQrBCNteiZFuLkimKKBRlPwIHCeUN2VNeUE3HCMYShe04Evxd+ucS9uUAOsvNKjQbA==", "bin": { "bwip-js": "bin/bwip-js.js" } }, "node_modules/camelcase": { "version": "5.3.1", "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", @@ -715,6 +780,39 @@ "engines": { "node": ">=6" } }, "node_modules/canvg": { "version": "3.0.11", "resolved": "https://registry.npmmirror.com/canvg/-/canvg-3.0.11.tgz", "integrity": "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==", "dependencies": { "@babel/runtime": "^7.12.5", "@types/raf": "^3.4.0", "core-js": "^3.8.3", "raf": "^3.4.1", "regenerator-runtime": "^0.13.7", "rgbcolor": "^1.0.1", "stackblur-canvas": "^2.0.0", "svg-pathdata": "^6.0.3" }, "engines": { "node": ">=10.0.0" } }, "node_modules/canvg/node_modules/core-js": { "version": "3.44.0", "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.44.0.tgz", "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", "hasInstallScript": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/canvg/node_modules/regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" }, "node_modules/cfb": { "version": "1.2.2", @@ -832,6 +930,14 @@ "node": ">=0.8" } }, "node_modules/css-line-break": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", "dependencies": { "utrie": "^1.0.2" } }, "node_modules/csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", @@ -846,7 +952,6 @@ "version": "4.3.4", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -884,6 +989,12 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz", "integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg==" }, "node_modules/dompurify": { "version": "2.5.8", "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.5.8.tgz", "integrity": "sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==", "optional": true }, "node_modules/echarts": { "version": "5.5.1", @@ -923,6 +1034,26 @@ "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/engine.io-client": { "version": "6.6.3", "resolved": "https://registry.npmmirror.com/engine.io-client/-/engine.io-client-6.6.3.tgz", "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", "ws": "~8.17.1", "xmlhttprequest-ssl": "~2.1.1" } }, "node_modules/engine.io-parser": { "version": "5.2.3", "resolved": "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz", "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", "engines": { "node": ">=10.0.0" } }, "node_modules/esbuild": { "version": "0.18.20", @@ -1014,6 +1145,11 @@ "reusify": "^1.0.4" } }, "node_modules/fflate": { "version": "0.8.2", "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz", "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==" }, "node_modules/file-saver": { "version": "2.0.5", "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", @@ -1093,6 +1229,18 @@ }, "engines": { "node": ">= 6" } }, "node_modules/html2canvas": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", "dependencies": { "css-line-break": "^2.1.0", "text-segmentation": "^1.0.3" }, "engines": { "node": ">=8.0.0" } }, "node_modules/http-proxy": { @@ -1181,11 +1329,49 @@ "node": ">=10" } }, "node_modules/jquery": { "version": "3.7.1", "resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, "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/jsbarcode": { "version": "3.12.1", "resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.12.1.tgz", "integrity": "sha512-QZQSqIknC2Rr/YOUyOkCBqsoiBAOTYK+7yNN3JsqfoUtJtkazxNw1dmPpxuv7VVvqW13kA3/mKiLq+s/e3o9hQ==" }, "node_modules/jspdf": { "version": "2.5.2", "resolved": "https://registry.npmmirror.com/jspdf/-/jspdf-2.5.2.tgz", "integrity": "sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==", "dependencies": { "@babel/runtime": "^7.23.2", "atob": "^2.1.2", "btoa": "^1.2.1", "fflate": "^0.8.1" }, "optionalDependencies": { "canvg": "^3.0.6", "core-js": "^3.6.0", "dompurify": "^2.5.4", "html2canvas": "^1.0.0-rc.5" } }, "node_modules/jspdf/node_modules/core-js": { "version": "3.44.0", "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.44.0.tgz", "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", "hasInstallScript": true, "optional": true, "funding": { "type": "opencollective", "url": "https://opencollective.com/core-js" } }, "node_modules/local-pkg": { "version": "0.4.3", @@ -1332,8 +1518,7 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/nanoid": { "version": "3.3.6", @@ -1368,6 +1553,11 @@ "node_modules/northglass-mes": { "resolved": "", "link": true }, "node_modules/nzh": { "version": "1.0.14", "resolved": "https://registry.npmmirror.com/nzh/-/nzh-1.0.14.tgz", "integrity": "sha512-wKgaqCSZdrySvB4RWop5g+v6IDv2IErsT6rjq06Bg0yiT9hiHYZO12GMGx/xweGVLcO2lDjX5RqWD0S/Jy9z5Q==" }, "node_modules/p-limit": { "version": "2.3.0", @@ -1414,6 +1604,11 @@ "version": "1.1.2", "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -1591,6 +1786,14 @@ } ] }, "node_modules/raf": { "version": "3.4.1", "resolved": "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "dependencies": { "performance-now": "^2.1.0" } }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", @@ -1640,6 +1843,14 @@ "engines": { "iojs": ">=1.0.0", "node": ">=0.10.0" } }, "node_modules/rgbcolor": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz", "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==", "engines": { "node": ">= 0.8.15" } }, "node_modules/rollup": { @@ -1692,6 +1903,32 @@ "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "node_modules/socket.io-client": { "version": "4.8.1", "resolved": "https://registry.npmmirror.com/socket.io-client/-/socket.io-client-4.8.1.tgz", "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", "engine.io-client": "~6.6.1", "socket.io-parser": "~4.2.4" }, "engines": { "node": ">=10.0.0" } }, "node_modules/socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz", "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "dependencies": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" }, "engines": { "node": ">=10.0.0" } }, "node_modules/sortablejs": { "version": "1.15.1", "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz", @@ -1722,6 +1959,14 @@ }, "engines": { "node": ">=0.8" } }, "node_modules/stackblur-canvas": { "version": "2.7.0", "resolved": "https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz", "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==", "engines": { "node": ">=0.1.14" } }, "node_modules/string-width": { @@ -1760,10 +2005,26 @@ "url": "https://github.com/sponsors/antfu" } }, "node_modules/svg-pathdata": { "version": "6.0.3", "resolved": "https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz", "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==", "engines": { "node": ">=12.0.0" } }, "node_modules/sweetalert2": { "version": "11.10.7", "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz", "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg==" }, "node_modules/text-segmentation": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", "dependencies": { "utrie": "^1.0.2" } }, "node_modules/to-fast-properties": { "version": "2.0.0", @@ -1909,6 +2170,14 @@ }, "funding": { "url": "https://github.com/sponsors/antfu" } }, "node_modules/utrie": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", "dependencies": { "base64-arraybuffer": "^1.0.2" } }, "node_modules/vite": { @@ -2062,6 +2331,22 @@ "vue": "^3.0.0" } }, "node_modules/vue-plugin-hiprint": { "version": "0.0.56", "resolved": "https://registry.npmmirror.com/vue-plugin-hiprint/-/vue-plugin-hiprint-0.0.56.tgz", "integrity": "sha512-YbJHH/MwdwIV1urL8V86ea+E8ixX1RYp/u/8/giPt4vfREUak9s2KYw4JFzM/Z6th9BCCpWTLPC+SOeoggxBbw==", "dependencies": { "@claviska/jquery-minicolors": "^2.3.6", "bwip-js": "^4.0.0", "canvg": "^3.0.10", "html2canvas": "^1.4.1", "jquery": "^3.6.0", "jsbarcode": "^3.11.5", "jspdf": "^2.5.1", "nzh": "^1.0.8", "socket.io-client": "^4.5.1" } }, "node_modules/vue-print-nb": { "version": "1.7.5", "resolved": "https://registry.npmmirror.com/vue-print-nb/-/vue-print-nb-1.7.5.tgz", @@ -2175,6 +2460,26 @@ "node": ">=8" } }, "node_modules/ws": { "version": "8.17.1", "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.1.tgz", "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/xe-utils": { "version": "3.5.14", "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-3.5.14.tgz", @@ -2198,6 +2503,14 @@ }, "engines": { "node": ">=0.8" } }, "node_modules/xmlhttprequest-ssl": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", "engines": { "node": ">=0.4.0" } }, "node_modules/y18n": { @@ -2272,6 +2585,11 @@ "@babel/types": "^7.25.2" } }, "@babel/runtime": { "version": "7.27.6", "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==" }, "@babel/types": { "version": "7.25.2", "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.2.tgz", @@ -2281,6 +2599,12 @@ "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" } }, "@claviska/jquery-minicolors": { "version": "2.3.6", "resolved": "https://registry.npmmirror.com/@claviska/jquery-minicolors/-/jquery-minicolors-2.3.6.tgz", "integrity": "sha512-8Ro6D4GCrmOl41+6w4NFhEOpx8vjxwVRI69bulXsFDt49uVRKhLU5TnzEV7AmOJrylkVq+ugnYNMiGHBieeKUQ==", "requires": {} }, "@ctrl/tinycolor": { "version": "3.6.1", @@ -2396,6 +2720,11 @@ "picomatch": "^2.3.1" } }, "@socket.io/component-emitter": { "version": "3.1.2", "resolved": "https://registry.npmmirror.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" }, "@types/estree": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", @@ -2431,6 +2760,11 @@ "requires": { "undici-types": "~5.26.4" } }, "@types/raf": { "version": "3.4.3", "resolved": "https://registry.npmmirror.com/@types/raf/-/raf-3.4.3.tgz", "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==" }, "@types/sortablejs": { "version": "1.15.8", @@ -2671,6 +3005,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "axios": { "version": "1.6.8", "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz", @@ -2716,6 +3055,11 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "base64-arraybuffer": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" }, "binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -2738,10 +3082,47 @@ "fill-range": "^7.0.1" } }, "btoa": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/btoa/-/btoa-1.2.1.tgz", "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" }, "bwip-js": { "version": "4.7.0", "resolved": "https://registry.npmmirror.com/bwip-js/-/bwip-js-4.7.0.tgz", "integrity": "sha512-b7oQcgbWUl8rpcZayQ32SQrBCNteiZFuLkimKKBRlPwIHCeUN2VNeUE3HCMYShe04Evxd+ucS9uUAOsvNKjQbA==" }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "canvg": { "version": "3.0.11", "resolved": "https://registry.npmmirror.com/canvg/-/canvg-3.0.11.tgz", "integrity": "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==", "requires": { "@babel/runtime": "^7.12.5", "@types/raf": "^3.4.0", "core-js": "^3.8.3", "raf": "^3.4.1", "regenerator-runtime": "^0.13.7", "rgbcolor": "^1.0.1", "stackblur-canvas": "^2.0.0", "svg-pathdata": "^6.0.3" }, "dependencies": { "core-js": { "version": "3.44.0", "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.44.0.tgz", "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==" }, "regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" } } }, "cfb": { "version": "1.2.2", @@ -2828,6 +3209,14 @@ "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" }, "css-line-break": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", "requires": { "utrie": "^1.0.2" } }, "csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", @@ -2842,7 +3231,6 @@ "version": "4.3.4", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" } @@ -2866,6 +3254,12 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz", "integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg==" }, "dompurify": { "version": "2.5.8", "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.5.8.tgz", "integrity": "sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==", "optional": true }, "echarts": { "version": "5.5.1", @@ -2902,6 +3296,23 @@ "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "engine.io-client": { "version": "6.6.3", "resolved": "https://registry.npmmirror.com/engine.io-client/-/engine.io-client-6.6.3.tgz", "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", "ws": "~8.17.1", "xmlhttprequest-ssl": "~2.1.1" } }, "engine.io-parser": { "version": "5.2.3", "resolved": "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz", "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==" }, "esbuild": { "version": "0.18.20", @@ -2977,6 +3388,11 @@ "reusify": "^1.0.4" } }, "fflate": { "version": "0.8.2", "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz", "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==" }, "file-saver": { "version": "2.0.5", "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", @@ -3030,6 +3446,15 @@ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } }, "html2canvas": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", "requires": { "css-line-break": "^2.1.0", "text-segmentation": "^1.0.3" } }, "http-proxy": { @@ -3094,11 +3519,44 @@ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true }, "jquery": { "version": "3.7.1", "resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, "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 }, "jsbarcode": { "version": "3.12.1", "resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.12.1.tgz", "integrity": "sha512-QZQSqIknC2Rr/YOUyOkCBqsoiBAOTYK+7yNN3JsqfoUtJtkazxNw1dmPpxuv7VVvqW13kA3/mKiLq+s/e3o9hQ==" }, "jspdf": { "version": "2.5.2", "resolved": "https://registry.npmmirror.com/jspdf/-/jspdf-2.5.2.tgz", "integrity": "sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==", "requires": { "@babel/runtime": "^7.23.2", "atob": "^2.1.2", "btoa": "^1.2.1", "canvg": "^3.0.6", "core-js": "^3.6.0", "dompurify": "^2.5.4", "fflate": "^0.8.1", "html2canvas": "^1.0.0-rc.5" }, "dependencies": { "core-js": { "version": "3.44.0", "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.44.0.tgz", "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", "optional": true } } }, "local-pkg": { "version": "0.4.3", @@ -3208,8 +3666,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "nanoid": { "version": "3.3.6", @@ -3254,6 +3711,7 @@ "vue-draggable-plus": "^0.5.0", "vue-echarts": "^6.7.3", "vue-i18n": "^11.0.0-rc.1", "vue-plugin-hiprint": "^0.0.56", "vue-print-nb": "^1.7.5", "vue-router": "^4.0.13", "vue3-print-nb": "^0.1.4", @@ -3286,6 +3744,11 @@ "@babel/types": "^7.25.2" } }, "@babel/runtime": { "version": "7.27.6", "resolved": "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.27.6.tgz", "integrity": "sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q==" }, "@babel/types": { "version": "7.25.2", "resolved": "https://registry.npmmirror.com/@babel/types/-/types-7.25.2.tgz", @@ -3295,6 +3758,12 @@ "@babel/helper-validator-identifier": "^7.24.7", "to-fast-properties": "^2.0.0" } }, "@claviska/jquery-minicolors": { "version": "2.3.6", "resolved": "https://registry.npmmirror.com/@claviska/jquery-minicolors/-/jquery-minicolors-2.3.6.tgz", "integrity": "sha512-8Ro6D4GCrmOl41+6w4NFhEOpx8vjxwVRI69bulXsFDt49uVRKhLU5TnzEV7AmOJrylkVq+ugnYNMiGHBieeKUQ==", "requires": {} }, "@ctrl/tinycolor": { "version": "3.6.1", @@ -3410,6 +3879,11 @@ "picomatch": "^2.3.1" } }, "@socket.io/component-emitter": { "version": "3.1.2", "resolved": "https://registry.npmmirror.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" }, "@types/estree": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.2.tgz", @@ -3445,6 +3919,11 @@ "requires": { "undici-types": "~5.26.4" } }, "@types/raf": { "version": "3.4.3", "resolved": "https://registry.npmmirror.com/@types/raf/-/raf-3.4.3.tgz", "integrity": "sha512-c4YAvMedbPZ5tEyxzQdMoOhhJ4RD3rngZIdwC2/qDN3d7JpEhB6fiBRKVY1lg5B7Wk+uPBjn5f39j1/2MY1oOw==" }, "@types/sortablejs": { "version": "1.15.8", @@ -3685,6 +4164,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "axios": { "version": "1.6.8", "resolved": "https://registry.npmmirror.com/axios/-/axios-1.6.8.tgz", @@ -3730,6 +4214,11 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, "base64-arraybuffer": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==" }, "binary-extensions": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.3.0.tgz", @@ -3752,10 +4241,47 @@ "fill-range": "^7.0.1" } }, "btoa": { "version": "1.2.1", "resolved": "https://registry.npmmirror.com/btoa/-/btoa-1.2.1.tgz", "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==" }, "bwip-js": { "version": "4.7.0", "resolved": "https://registry.npmmirror.com/bwip-js/-/bwip-js-4.7.0.tgz", "integrity": "sha512-b7oQcgbWUl8rpcZayQ32SQrBCNteiZFuLkimKKBRlPwIHCeUN2VNeUE3HCMYShe04Evxd+ucS9uUAOsvNKjQbA==" }, "camelcase": { "version": "5.3.1", "resolved": "https://registry.npmmirror.com/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, "canvg": { "version": "3.0.11", "resolved": "https://registry.npmmirror.com/canvg/-/canvg-3.0.11.tgz", "integrity": "sha512-5ON+q7jCTgMp9cjpu4Jo6XbvfYwSB2Ow3kzHKfIyJfaCAOHLbdKPQqGKgfED/R5B+3TFFfe8pegYA+b423SRyA==", "requires": { "@babel/runtime": "^7.12.5", "@types/raf": "^3.4.0", "core-js": "^3.8.3", "raf": "^3.4.1", "regenerator-runtime": "^0.13.7", "rgbcolor": "^1.0.1", "stackblur-canvas": "^2.0.0", "svg-pathdata": "^6.0.3" }, "dependencies": { "core-js": { "version": "3.44.0", "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.44.0.tgz", "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==" }, "regenerator-runtime": { "version": "0.13.11", "resolved": "https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" } } }, "cfb": { "version": "1.2.2", @@ -3842,6 +4368,14 @@ "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" }, "css-line-break": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz", "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", "requires": { "utrie": "^1.0.2" } }, "csstype": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", @@ -3856,7 +4390,6 @@ "version": "4.3.4", "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { "ms": "2.1.2" } @@ -3880,6 +4413,12 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/dom-zindex/-/dom-zindex-1.0.1.tgz", "integrity": "sha512-M/MERVDZ8hguvjl6MAlLWSLYLS7PzEyXaTb5gEeJ+SF+e9iUC0sdvlzqe91MMDHBoy+nqw7wKcUOrDSyvMCrRg==" }, "dompurify": { "version": "2.5.8", "resolved": "https://registry.npmmirror.com/dompurify/-/dompurify-2.5.8.tgz", "integrity": "sha512-o1vSNgrmYMQObbSSvF/1brBYEQPHhV1+gsmrusO7/GXtp1T9rCS8cXFqVxK/9crT1jA6Ccv+5MTSjBNqr7Sovw==", "optional": true }, "echarts": { "version": "5.5.1", @@ -3916,6 +4455,23 @@ "version": "8.0.0", "resolved": "https://registry.npmmirror.com/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "engine.io-client": { "version": "6.6.3", "resolved": "https://registry.npmmirror.com/engine.io-client/-/engine.io-client-6.6.3.tgz", "integrity": "sha512-T0iLjnyNWahNyv/lcjS2y4oE358tVS/SYQNxYXGAJ9/GLgH4VCvOQ/mhTjqU88mLZCQgiG8RIegFHYCdVC+j5w==", "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1", "engine.io-parser": "~5.2.1", "ws": "~8.17.1", "xmlhttprequest-ssl": "~2.1.1" } }, "engine.io-parser": { "version": "5.2.3", "resolved": "https://registry.npmmirror.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz", "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==" }, "esbuild": { "version": "0.18.20", @@ -3991,6 +4547,11 @@ "reusify": "^1.0.4" } }, "fflate": { "version": "0.8.2", "resolved": "https://registry.npmmirror.com/fflate/-/fflate-0.8.2.tgz", "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==" }, "file-saver": { "version": "2.0.5", "resolved": "https://registry.npmmirror.com/file-saver/-/file-saver-2.0.5.tgz", @@ -4044,6 +4605,15 @@ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "requires": { "is-glob": "^4.0.1" } }, "html2canvas": { "version": "1.4.1", "resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz", "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", "requires": { "css-line-break": "^2.1.0", "text-segmentation": "^1.0.3" } }, "http-proxy": { @@ -4108,11 +4678,44 @@ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true }, "jquery": { "version": "3.7.1", "resolved": "https://registry.npmmirror.com/jquery/-/jquery-3.7.1.tgz", "integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg==" }, "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 }, "jsbarcode": { "version": "3.12.1", "resolved": "https://registry.npmmirror.com/jsbarcode/-/jsbarcode-3.12.1.tgz", "integrity": "sha512-QZQSqIknC2Rr/YOUyOkCBqsoiBAOTYK+7yNN3JsqfoUtJtkazxNw1dmPpxuv7VVvqW13kA3/mKiLq+s/e3o9hQ==" }, "jspdf": { "version": "2.5.2", "resolved": "https://registry.npmmirror.com/jspdf/-/jspdf-2.5.2.tgz", "integrity": "sha512-myeX9c+p7znDWPk0eTrujCzNjT+CXdXyk7YmJq5nD5V7uLLKmSXnlQ/Jn/kuo3X09Op70Apm0rQSnFWyGK8uEQ==", "requires": { "@babel/runtime": "^7.23.2", "atob": "^2.1.2", "btoa": "^1.2.1", "canvg": "^3.0.6", "core-js": "^3.6.0", "dompurify": "^2.5.4", "fflate": "^0.8.1", "html2canvas": "^1.0.0-rc.5" }, "dependencies": { "core-js": { "version": "3.44.0", "resolved": "https://registry.npmmirror.com/core-js/-/core-js-3.44.0.tgz", "integrity": "sha512-aFCtd4l6GvAXwVEh3XbbVqJGHDJt0OZRa+5ePGx3LLwi12WfexqQxcsohb2wgsa/92xtl19Hd66G/L+TaAxDMw==", "optional": true } } }, "local-pkg": { "version": "0.4.3", @@ -4222,8 +4825,7 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "nanoid": { "version": "3.3.6", @@ -4239,6 +4841,11 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" }, "nzh": { "version": "1.0.14", "resolved": "https://registry.npmmirror.com/nzh/-/nzh-1.0.14.tgz", "integrity": "sha512-wKgaqCSZdrySvB4RWop5g+v6IDv2IErsT6rjq06Bg0yiT9hiHYZO12GMGx/xweGVLcO2lDjX5RqWD0S/Jy9z5Q==" }, "p-limit": { "version": "2.3.0", @@ -4270,6 +4877,11 @@ "version": "1.1.2", "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "picocolors": { "version": "1.0.0", @@ -4357,6 +4969,14 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "requires": { "performance-now": "^2.1.0" } }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", @@ -4398,6 +5018,11 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rgbcolor": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz", "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==" }, "rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -4427,6 +5052,26 @@ "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "socket.io-client": { "version": "4.8.1", "resolved": "https://registry.npmmirror.com/socket.io-client/-/socket.io-client-4.8.1.tgz", "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", "engine.io-client": "~6.6.1", "socket.io-parser": "~4.2.4" } }, "socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz", "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" } }, "sortablejs": { "version": "1.15.1", "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz", @@ -4449,6 +5094,11 @@ "requires": { "frac": "~1.1.2" } }, "stackblur-canvas": { "version": "2.7.0", "resolved": "https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz", "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==" }, "string-width": { "version": "4.2.3", @@ -4477,10 +5127,23 @@ "js-tokens": "^9.0.0" } }, "svg-pathdata": { "version": "6.0.3", "resolved": "https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz", "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==" }, "sweetalert2": { "version": "11.10.7", "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz", "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg==" }, "text-segmentation": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", "requires": { "utrie": "^1.0.2" } }, "to-fast-properties": { "version": "2.0.0", @@ -4593,6 +5256,14 @@ } } }, "utrie": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", "requires": { "base64-arraybuffer": "^1.0.2" } }, "vite": { "version": "4.4.11", "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", @@ -4650,6 +5321,22 @@ "@intlify/core-base": "11.0.0-rc.1", "@intlify/shared": "11.0.0-rc.1", "@vue/devtools-api": "^6.5.0" } }, "vue-plugin-hiprint": { "version": "0.0.56", "resolved": "https://registry.npmmirror.com/vue-plugin-hiprint/-/vue-plugin-hiprint-0.0.56.tgz", "integrity": "sha512-YbJHH/MwdwIV1urL8V86ea+E8ixX1RYp/u/8/giPt4vfREUak9s2KYw4JFzM/Z6th9BCCpWTLPC+SOeoggxBbw==", "requires": { "@claviska/jquery-minicolors": "^2.3.6", "bwip-js": "^4.0.0", "canvg": "^3.0.10", "html2canvas": "^1.4.1", "jquery": "^3.6.0", "jsbarcode": "^3.11.5", "jspdf": "^2.5.1", "nzh": "^1.0.8", "socket.io-client": "^4.5.1" } }, "vue-print-nb": { @@ -4742,6 +5429,12 @@ "strip-ansi": "^6.0.0" } }, "ws": { "version": "8.17.1", "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.1.tgz", "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "requires": {} }, "xe-utils": { "version": "3.5.14", "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-3.5.14.tgz", @@ -4760,6 +5453,11 @@ "wmf": "~1.0.1", "word": "~0.3.0" } }, "xmlhttprequest-ssl": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==" }, "y18n": { "version": "4.0.3", @@ -4803,6 +5501,11 @@ } } }, "nzh": { "version": "1.0.14", "resolved": "https://registry.npmmirror.com/nzh/-/nzh-1.0.14.tgz", "integrity": "sha512-wKgaqCSZdrySvB4RWop5g+v6IDv2IErsT6rjq06Bg0yiT9hiHYZO12GMGx/xweGVLcO2lDjX5RqWD0S/Jy9z5Q==" }, "p-limit": { "version": "2.3.0", "resolved": "https://registry.npmmirror.com/p-limit/-/p-limit-2.3.0.tgz", @@ -4833,6 +5536,11 @@ "version": "1.1.2", "resolved": "https://registry.npmmirror.com/pathe/-/pathe-1.1.2.tgz", "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==" }, "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmmirror.com/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, "picocolors": { "version": "1.0.0", @@ -4920,6 +5628,14 @@ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, "raf": { "version": "3.4.1", "resolved": "https://registry.npmmirror.com/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "requires": { "performance-now": "^2.1.0" } }, "readdirp": { "version": "3.6.0", "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", @@ -4961,6 +5677,11 @@ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true }, "rgbcolor": { "version": "1.0.1", "resolved": "https://registry.npmmirror.com/rgbcolor/-/rgbcolor-1.0.1.tgz", "integrity": "sha512-9aZLIrhRaD97sgVhtJOW6ckOEh6/GnvQtdVNfdZ6s67+3/XwLS9lBcQYzEEhYVeUowN7pRzMLsyGhK2i/xvWbw==" }, "rollup": { "version": "3.29.4", "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", @@ -4990,6 +5711,26 @@ "resolved": "https://registry.npmmirror.com/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==" }, "socket.io-client": { "version": "4.8.1", "resolved": "https://registry.npmmirror.com/socket.io-client/-/socket.io-client-4.8.1.tgz", "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", "engine.io-client": "~6.6.1", "socket.io-parser": "~4.2.4" } }, "socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmmirror.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz", "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.1" } }, "sortablejs": { "version": "1.15.1", "resolved": "https://registry.npmmirror.com/sortablejs/-/sortablejs-1.15.1.tgz", @@ -5012,6 +5753,11 @@ "requires": { "frac": "~1.1.2" } }, "stackblur-canvas": { "version": "2.7.0", "resolved": "https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.7.0.tgz", "integrity": "sha512-yf7OENo23AGJhBriGx0QivY5JP6Y1HbrrDI6WLt6C5auYZXlQrheoY8hD4ibekFKz1HOfE48Ww8kMWMnJD/zcQ==" }, "string-width": { "version": "4.2.3", @@ -5040,10 +5786,23 @@ "js-tokens": "^9.0.0" } }, "svg-pathdata": { "version": "6.0.3", "resolved": "https://registry.npmmirror.com/svg-pathdata/-/svg-pathdata-6.0.3.tgz", "integrity": "sha512-qsjeeq5YjBZ5eMdFuUa4ZosMLxgr5RZ+F+Y1OrDhuOCEInRMA3x74XdBtggJcj9kOeInz0WE+LgCPDkZFlBYJw==" }, "sweetalert2": { "version": "11.10.7", "resolved": "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.10.7.tgz", "integrity": "sha512-5Jlzrmaitay6KzU+2+LhYu9q+L4v/dZ8oZyEDH14ep0C/QilCnFLHmqAyD/Lhq/lm5DiwsOs6Tr58iv8k3wyGg==" }, "text-segmentation": { "version": "1.0.3", "resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz", "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", "requires": { "utrie": "^1.0.2" } }, "to-fast-properties": { "version": "2.0.0", @@ -5156,6 +5915,14 @@ } } }, "utrie": { "version": "1.0.2", "resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz", "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", "requires": { "base64-arraybuffer": "^1.0.2" } }, "vite": { "version": "4.4.11", "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.11.tgz", @@ -5213,6 +5980,22 @@ "@intlify/core-base": "11.0.0-rc.1", "@intlify/shared": "11.0.0-rc.1", "@vue/devtools-api": "^6.5.0" } }, "vue-plugin-hiprint": { "version": "0.0.56", "resolved": "https://registry.npmmirror.com/vue-plugin-hiprint/-/vue-plugin-hiprint-0.0.56.tgz", "integrity": "sha512-YbJHH/MwdwIV1urL8V86ea+E8ixX1RYp/u/8/giPt4vfREUak9s2KYw4JFzM/Z6th9BCCpWTLPC+SOeoggxBbw==", "requires": { "@claviska/jquery-minicolors": "^2.3.6", "bwip-js": "^4.0.0", "canvg": "^3.0.10", "html2canvas": "^1.4.1", "jquery": "^3.6.0", "jsbarcode": "^3.11.5", "jspdf": "^2.5.1", "nzh": "^1.0.8", "socket.io-client": "^4.5.1" } }, "vue-print-nb": { @@ -5305,6 +6088,12 @@ "strip-ansi": "^6.0.0" } }, "ws": { "version": "8.17.1", "resolved": "https://registry.npmmirror.com/ws/-/ws-8.17.1.tgz", "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", "requires": {} }, "xe-utils": { "version": "3.5.14", "resolved": "https://registry.npmjs.org/xe-utils/-/xe-utils-3.5.14.tgz", @@ -5324,6 +6113,11 @@ "word": "~0.3.0" } }, "xmlhttprequest-ssl": { "version": "2.1.2", "resolved": "https://registry.npmmirror.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==" }, "y18n": { "version": "4.0.3", "resolved": "https://registry.npmmirror.com/y18n/-/y18n-4.0.3.tgz", UI-Project/package.json
@@ -27,6 +27,7 @@ "vue-draggable-plus": "^0.5.0", "vue-echarts": "^6.7.3", "vue-i18n": "^11.0.0-rc.1", "vue-plugin-hiprint": "^0.0.56", "vue-print-nb": "^1.7.5", "vue-router": "^4.0.13", "vue3-print-nb": "^0.1.4", UI-Project/public/print-lock.css
New file @@ -0,0 +1,349 @@ @media print { body { margin: 0px; padding: 0px; } } @page { margin: 0; } .hiprint-printPaper * { box-sizing: border-box; -moz-box-sizing: border-box; /* Firefox */ -webkit-box-sizing: border-box; /* Safari */ } .hiprint-printPaper *:focus { outline: -webkit-focus-ring-color auto 0px; } .hiprint-printPaper { position: relative; padding: 0 0 0 0; page-break-after: always; -webkit-user-select: none; /* Chrome/Safari/Opera */ -moz-user-select: none; /* Firefox */ user-select: none; overflow-x: hidden; overflow: hidden; } .hiprint-printPaper .hiprint-printPaper-content { position: relative; } /* 火狐浏览器打印 第一页过后 重叠问题 */ @-moz-document url-prefix() { .hiprint-printPaper .hiprint-printPaper-content { position: relative; margin-top: 20px; top: -20px } } .hiprint-printPaper.design { overflow: visible; } .hiprint-printTemplate .hiprint-printPanel { page-break-after: always; } .hiprint-printPaper, hiprint-printPanel { box-sizing: border-box; border: 0px; } .hiprint-printPanel .hiprint-printPaper:last-child { page-break-after: avoid; } .hiprint-printTemplate .hiprint-printPanel:last-child { page-break-after: avoid; } .hiprint-printPaper .hideheaderLinetarget { border-top: 0px dashed rgb(201, 190, 190) !important; } .hiprint-printPaper .hidefooterLinetarget { border-top: 0px dashed rgb(201, 190, 190) !important; } .hiprint-printPaper.design { border: 1px dashed rgba(170, 170, 170, 0.7); } .design .hiprint-printElement-table-content, .design .hiprint-printElement-longText-content { overflow: hidden; box-sizing: border-box; } .design .resize-panel { box-sizing: border-box; border: 1px dotted; } .hiprint-printElement-text { background-color: transparent; background-repeat: repeat; padding: 0 0 0 0; border: 0.75pt none rgb(0, 0, 0); direction: ltr; font-family: 'SimSun'; font-size: 9pt; font-style: normal; font-weight: normal; padding-bottom: 0pt; padding-left: 0pt; padding-right: 0pt; padding-top: 0pt; text-align: left; text-decoration: none; line-height: 9.75pt; box-sizing: border-box; word-wrap: break-word; word-break: break-all; } .design .hiprint-printElement-text-content { border: 1px dashed rgb(206, 188, 188); box-sizing: border-box; } .hiprint-printElement-longText { background-color: transparent; background-repeat: repeat; border: 0.75pt none rgb(0, 0, 0); direction: ltr; font-family: 'SimSun'; font-size: 9pt; font-style: normal; font-weight: normal; padding-bottom: 0pt; padding-left: 0pt; padding-right: 0pt; padding-top: 0pt; text-align: left; text-decoration: none; line-height: 9.75pt; box-sizing: border-box; word-wrap: break-word; word-break: break-all; /*white-space: pre-wrap*/ } .hiprint-printElement-table { background-color: transparent; background-repeat: repeat; color: rgb(0, 0, 0); border-color: rgb(0, 0, 0); border-style: none; direction: ltr; font-family: 'SimSun'; font-size: 9pt; font-style: normal; font-weight: normal; padding-bottom: 0pt; padding-left: 0pt; padding-right: 0pt; padding-top: 0pt; text-align: left; text-decoration: none; padding: 0 0 0 0; box-sizing: border-box; line-height: 9.75pt; } .hiprint-printElement-table thead { background: #e8e8e8; font-weight: 700; } table.hiprint-printElement-tableTarget { width: 100%; } .hiprint-printElement-tableTarget, .hiprint-printElement-tableTarget tr, .hiprint-printElement-tableTarget td { border-color: rgb(0, 0, 0); /*border-style: none;*/ /*border: 1px solid rgb(0, 0, 0);*/ font-weight: normal; direction: ltr; padding-bottom: 0pt; padding-left: 4pt; padding-right: 4pt; padding-top: 0pt; text-decoration: none; vertical-align: middle; box-sizing: border-box; word-wrap: break-word; word-break: break-all; /*line-height: 9.75pt; font-size: 9pt;*/ } .hiprint-printElement-tableTarget-border-all { border: 1px solid; } .hiprint-printElement-tableTarget-border-none { border: 0px solid; } .hiprint-printElement-tableTarget-border-lr { border-left: 1px solid; border-right: 1px solid; } .hiprint-printElement-tableTarget-border-left { border-left: 1px solid; } .hiprint-printElement-tableTarget-border-right { border-right: 1px solid; } .hiprint-printElement-tableTarget-border-tb { border-top: 1px solid; border-bottom: 1px solid; } .hiprint-printElement-tableTarget-border-top { border-top: 1px solid; } .hiprint-printElement-tableTarget-border-bottom { border-bottom: 1px solid; } .hiprint-printElement-tableTarget-border-td-none td { border: 0px solid; } .hiprint-printElement-tableTarget-border-td-all td:not(:nth-last-child(-n+2)) { border-right: 1px solid; } .hiprint-printElement-tableTarget-border-td-all td:last-child { border-left: 1px solid; } .hiprint-printElement-tableTarget-border-td-all td:last-child:first-child { border-left: none; } /*.hiprint-printElement-tableTarget tr,*/ .hiprint-printElement-tableTarget td { height: 18pt; } .hiprint-printPaper .hiprint-paperNumber { font-size: 9pt; } .design .hiprint-printElement-table-handle { position: absolute; height: 21pt; width: 21pt; background: red; z-index: 1; } .hiprint-printPaper .hiprint-paperNumber-disabled { float: right !important; right: 0 !important; color: gainsboro !important; } .hiprint-printElement-vline, .hiprint-printElement-hline { border: 0px none rgb(0, 0, 0); } .hiprint-printElement-vline { border-left: 0.75pt solid #000; border-right: 0px none rgb(0, 0, 0) !important; border-bottom: 0px none rgb(0, 0, 0) !important; border-top: 0px none rgb(0, 0, 0) !important; } .hiprint-printElement-hline { border-top: 0.75pt solid #000; border-right: 0px none rgb(0, 0, 0) !important; border-bottom: 0px none rgb(0, 0, 0) !important; border-left: 0px none rgb(0, 0, 0) !important; } .hiprint-printElement-oval, .hiprint-printElement-rect { border: 0.75pt solid #000; } .hiprint-text-content-middle { } .hiprint-text-content-middle > div { display: grid; align-items: center; } .hiprint-text-content-bottom { } .hiprint-text-content-bottom > div { display: grid; align-items: flex-end; } .hiprint-text-content-wrap { } .hiprint-text-content-wrap .hiprint-text-content-wrap-nowrap { white-space: nowrap; } .hiprint-text-content-wrap .hiprint-text-content-wrap-clip { white-space: nowrap; overflow: hidden; text-overflow: clip; } .hiprint-text-content-wrap .hiprint-text-content-wrap-ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /*hi-grid-row */ .hi-grid-row { position: relative; height: auto; margin-right: 0; margin-left: 0; zoom: 1; display: block; box-sizing: border-box; } .hi-grid-row::after, .hi-grid-row::before { display: table; content: ''; box-sizing: border-box; } .hi-grid-col { display: block; box-sizing: border-box; position: relative; float: left; flex: 0 0 auto; } .table-grid-row { margin-left: -0pt; margin-right: -0pt; } .tableGridColumnsGutterRow { padding-left: 0pt; padding-right: 0pt; } .hiprint-gridColumnsFooter { text-align: left; clear: both; } UI-Project/src/lang/en.js
@@ -334,6 +334,8 @@ finedging: 'has been edging', }, processCard: { thisIsTheIndoorSurface: 'This is the indoor surface', thisSideIsOutsideTheRoom: 'This side is outside the room', intofurnace: 'Entering the furnace', beforefurnace: 'Before entering the furnace', outfurnace: 'Glass finished from tempering furnace', @@ -793,6 +795,7 @@ finegrinding: 'Fine grinding', }, hellow: { projectMsg2:'Please select a label template', clickmakesure: 'Whether or not to confirm the click?', logarithm: 'logarithm:', totalPairQuantitya: 'Total number of task allocation pairs', @@ -917,6 +920,7 @@ stopproject: 'Pause Task', pstopproject: 'Do you want to pause the task?', reviewproject: 'Preview project', plselectproject: 'Select Preview Project', line: 'line', linea: 'line:', line1: 'Line 1', UI-Project/src/lang/zh.js
@@ -333,6 +333,8 @@ finedging:'已磨边', }, processCard:{ thisIsTheIndoorSurface: '此面为室内面', thisSideIsOutsideTheRoom: '此面为室外面', intofurnace:'进炉中', beforefurnace:'进炉前', outfurnace:'已出炉玻璃', @@ -798,6 +800,7 @@ finegrinding: '精磨', }, hellow: { projectMsg2:'请选择标签模板', clickmakesure: '是否确认点击?', logarithm: '对数:', totalPairQuantitya: '任务总配对数', @@ -921,7 +924,8 @@ formulaNamea: '请输入配方名', stopproject: '暂停任务', pstopproject: '是否暂停任务?', reviewproject: '预览工程', reviewproject: '预览任务', plselectproject: '请选择任务', line: '线路', linea: '线路:', line1: '线路一', UI-Project/src/utils/constants.js
@@ -1,7 +1,9 @@ // export const WebSocketHost = "192.168.2.100"; export const WebSocketHost = "192.168.2.100"; // export const WebSocketHost = "192.168.0.39"; export const WebSocketHost = "10.153.19.150"; // export const WebSocketHost = "10.153.19.150"; // export const WebSocketHost = "10.153.19.218"; // export const WebSocketHost = "10.153.19.162"; // export const WebSocketHost = "127.0.0.1"; export const host = "88"; export const host = "88"; export const ErpIp = "192.168.2.100"; export const ErpHost = "8086"; UI-Project/src/utils/requestErp.js
New file @@ -0,0 +1,42 @@ import axios from 'axios' import useUserInfoStore from '@/stores/userInfo' import {ErpIp,ErpHost} from '@/utils/constants' const userStore=useUserInfoStore() const requestErp = axios.create({ baseURL: `http://${ErpIp}:${ErpHost}`, // 注意!! 这里是全局统一加上了 后端接口前缀 前缀,后端必须进行跨域配置! timeout: 30000 }) // // request 拦截器 // 可以自请求发送前对请求做一些处理 // 比如统一加token,对请求参数统一加密 requestErp.interceptors.request.use(config => { config.headers['Content-Type'] = 'application/json;charset=utf-8'; if(userStore.user){ config.headers['token'] = userStore.user.token; } // 设置请求头 return config }, error => { return Promise.reject(error) }); // response 拦截器 // 可以在接口响应后统一处理结果 requestErp.interceptors.response.use( response => { let res = response.data; // 如果是返回的文件 if (response.config.responseType === 'blob') { return res } // 兼容服务端返回的字符串数据 if (typeof res === 'string') { res = res ? JSON.parse(res) : res } return res; }, error => { return Promise.reject(error) } ) export default requestErp UI-Project/src/views/hollow/PrintCustomLabelTwo.vue
New file @@ -0,0 +1,326 @@ <script setup> import requestErp from "@/utils/requestErp" import { ElDatePicker, ElMessage } from "element-plus" import { nextTick, onMounted, onUnmounted, reactive, ref, watch } from "vue" import { Search } from "@element-plus/icons-vue" import { useRouter } from 'vue-router' // import {changeFilterEvent, filterChanged} from "@/hook" import { useI18n } from 'vue-i18n' import deepClone from "@/utils/deepClone"; // import companyInfo from "@/stores/sd/companyInfo" // const company = companyInfo() //语言获取 const { t } = useI18n() let router = useRouter() let produceList = ref([]) let labelList = ref([]) let titleList = ref([]) let dataList = ref([]) let list = ref([]) let lastList = ref([]) let filterData = ref({}) const data = ref({ printList: [], isRepeat: true }) let props = defineProps({ list: null,//勾选的数据 faceOrientation: null,//内外面 type: null,//标签模板 lableType: null,//标签类型 switch: null,//判断是否为新打印 lastList: [], }) const { currentRoute } = useRouter() const route = currentRoute.value let type = props.type let faceOrientation = props.faceOrientation // if (type.indexOf("英文")>-1 && faceOrientation==="此面为室内面"){ // faceOrientation='INSIDE' // } // else if (type.indexOf("英文")>-1 && faceOrientation==="此面为室外面"){ // faceOrientation='OUTSIDE' // } let lableType = props.lableType data.value.printList = props.list onMounted(() => { requestErp.post(`/processCard/getSelectPrintCustomLabel/${type}/${lableType}`, data.value).then((res) => { if (res.code == 200) { produceList.value = deepClone(res.data.title) list.value = deepClone(res.data.data) const data = produceList.value[0].value dataList = JSON.parse(`[${data}]`); const printElements = dataList[0].panels[0].printElements; let a = [] printElements.forEach(element => { if (element.options.field === 'table') { element.options.columns[0].forEach(elements => { if (elements.field) { a.push({ title: elements.title, name: elements.field } ) } }) } else { a.push({ title: element.options.title, name: element.options.field }) } }) labelList = a props.lastList.length = 0; for (let i = 0; i < list.value.length; i++) { let count = list.value[i].data.length for (let j = 0; j < count; j++) { for (let k = 0; k < list.value[i].data[j].quantity; k++) { props.lastList.push(list.value[i].data[j]) } } } } else { ElMessage.warning(res.msg) } }) } ) //修改相同产品名称标签 const updateProductName = (event, index, id) => { console.log(event, index, id) // 创建映射对象 const propertyMapping = {}; labelList.forEach(item => { propertyMapping[item.name] = item.title; }); // 输入的值 const newValue = event.target.innerText; const parts = newValue.split(':'); const result = parts[1]; // 获取冒号后的部分 // 获取映射中所有的键 const keys = Object.keys(propertyMapping); // 根据 index 获取对应的属性名 const propertyName = keys[index]; // 如果映射中没有该 index,直接返回 if (!propertyName) { console.warn('Unsupported index:', index); return; } // 遍历 lastList 并更新对应的属性 props.lastList.forEach(obj => { // 获取前缀和 orderId const prefix = props.lastList[id].processId.substring(0, 11); const orderId = obj.orderId; const glassNumber = props.lastList[id].glassNumber // 根据 propertyName 更新属性 if (propertyName === 'productAbbreviation' && prefix === obj.processId.substring(0, 11)) { obj.productAbbreviation = result; } if (propertyName === 'project' && orderId === obj.orderId) { obj.project = result; } if (propertyName === 'productName' && prefix === obj.processId.substring(0, 11)) { obj.productName = result; } if (propertyName === 'customerName' && orderId === obj.orderId) { obj.customerName = result; } if (propertyName === 'orderId' && orderId === obj.orderId) { obj.orderId = result; } if (propertyName === 'glassNumber' && glassNumber === obj.glassNumber) { obj.glassNumber = result; } if (propertyName === 'width' && glassNumber === obj.glassNumber) { obj.width = result; } if (propertyName === 'height' && glassNumber === obj.glassNumber) { obj.height = result; } if (propertyName === 'custom1' && orderId === obj.orderId) { obj.custom1 = result; } if (propertyName === 'custom2' && orderId === obj.orderId) { obj.custom2 = result; } if (propertyName === 'custom3' && orderId === obj.orderId) { obj.custom3 = result; } if (propertyName === 'custom4' && orderId === obj.orderId) { obj.custom4 = result; } if (propertyName === 'custom5' && orderId === obj.orderId) { obj.custom5 = result; } }); } </script> <template> <div id="print" class="printFlowCard_semi"> <template v-for="(item1, id) in props.lastList"> <div class="entirety_semi"> <div class="row4">{{ faceOrientation }}</div> <div v-for="(item, id ,index) in labelList" class="contentRow"> <div contenteditable="true" v-if="item1[item.name] != null && item1[item.name] !== ''" class="row1" @input="updateProductName($event, id, id)">{{ item.title }}:{{ item1[item.name] }}</div> <!-- <div v-if="item1[item.name] != null && item1[item.name] !== ''" class="row2">{{ item1[item.name] }}</div>--> </div> <!-- <div v-html="company.printLabel.customSemi(item1)"></div> --> </div> <div v-if="(id + 1) % 2 === 0" class="pagebreak"></div> </template> </div> </template> <style scoped> * { margin: 0; padding: 0; } body { overflow: hidden; font-family: Arial; } #printButton { margin-top: -20px; width: 100px; } /*半*/ .printFlowCard_semi { flex-wrap: wrap; font-size: 10px; display: flex; justify-content: space-between; } /*半*/ .entirety_semi { width: 45%; display: flex; text-align: center; flex-direction: column; margin: 8px; } .row3 { text-align: center; } .contentRow { display: flex; text-align: center; } label { font-weight: bolder; } .contentRow .row1 { width: 100%; } .entirety_semi .row4 { text-align: right; } .contentRow .row1, .contentRow .row2 { text-align: left; } @media print { @page { size: auto; /* auto is the initial value */ margin: 13mm 5mm 0mm 7mm; /* this affects the margin in the printer settings */ } div { page-break-inside: avoid; } .pagebreak { page-break-after: always; } } .printFlowCard_semi1 { flex-wrap: wrap; font-size: 8pt; display: flex; } /*成*/ .entirety_semi1 { width: 50%; display: flex; text-align: center; flex-direction: column; margin-left: -10px; height: 80px; } .contentRow1 { font-weight: bolder; display: flex; text-align: center; width: 100%; } .contentRow1 .row1 { width: 30%; font-weight: bolder; } .entirety_finished1 .row4 { font-weight: bolder; text-align: right; margin-right: 10px; } .contentRow1 .row1, .contentRow1 .row2 { text-align: left; font-weight: bolder; } </style> UI-Project/src/views/hollow/PrintFlowCardDetails.vue
New file @@ -0,0 +1,1098 @@ <script setup> import request from "@/utils/request" import deepClone from "@/utils/deepClone" import {ElCheckbox, ElDatePicker, ElMessage} from "element-plus" import {nextTick, onMounted, onUnmounted, reactive, ref, watch} from "vue" import {useRouter} from 'vue-router' import {useI18n} from 'vue-i18n' import {changeFilterEvent, filterChanged} from "@/hook" import {VXETable} from "vxe-table"; import {addListener, toolbarButtonClickEvent} from "@/hook/mouseMove"; import PrintProcess from '@/components/pp/PrintProcess.vue' import PrintLabel from '@/views/pp/processCard/PrintLabel.vue' import PrintCustomLabel from '@/components/pp/PrintCustomLabelDetails.vue' import PrintCustomLabelSemi from '@/components/pp/PrintCustomLabelSemi.vue' import PrintCustomLabelXJ from '@/components/pp/PrintCustomLabelTwo.vue' import PrintCustomLabelXJTwo from '@/components/pp/PrintCustomLabelXJTwo.vue' import SortDetail from '@/components/pp/SelectSortDetailProcessCard.vue' import footSum from "@/hook/footSum" import companyInfo from "@/stores/sd/companyInfo" import {CircleCheck, Download, Printer} from "@element-plus/icons-vue/global"; import TagStyleDesigner from "@/components/pp/TagStyleDesigner.vue"; import {hiprint} from "vue-plugin-hiprint"; const company = companyInfo() //语言获取 const {t} = useI18n() let router = useRouter() const dialogTableVisible = ref(false) const dialogTableVisibleLabel = ref(false) const dialogTableVisibleCustomLabel = ref(false) const dialogTableVisibleLabelXJ = ref(false) const dialogTableVisibleLabelXJTwo = ref(false) const printVisible = ref(false) let selectRecords = ref(null) let titleStyleVisible = ref(false) let lastList = ref([]) const selectRecordsData = ref({ printList: [] }) const xGrid = ref(null) const xGridDetail = ref(null) //排序 let editRow = ref({ processId: null, technologyNumber: null, process: null }) //落架顺序 let landingSequence= ref(1) //打印 let printRow = ref({ list: null, printMergeVal: null, like: null }) //标签 let labelRow = ref({ list: null,//勾选的数据 faceOrientation: null,//内外面 type: null,//标签模板 lableType: null,//标签类型 dataType: null, landingSequence:null }) const getTableRow = (row, type) => { switch (type) { case 'edit' : { editRow.value.processId = row.process_id editRow.value.technologyNumber = row.technology_number editRow.value.process = row.process printVisible.value = true // router.push({path: '/sort-detail', query: {processId: row.process_id,technologyNumber:row.technology_number}}) break } } } //筛选条件,有外键需要先定义明细里面的数据 let filterData = ref({ orderGlassDetail: { productionId: '', }, orderDetail: { orderId: '', productId: '', productName: '', } }) //定义页面总页数 let pageTotal = ref('') //定义数据返回结果 let produceList = ref([]) //定义数据返回结果 let produceDetailList = ref([]) //定义当前页数 let pageNum = $ref(1) let pageState = null //室内室外面 const stateValue = ref('') const stateOptions = [ { value: t('processCard.thisIsTheIndoorSurface'), label: t('processCard.thisIsTheIndoorSurface'), }, { value: t('processCard.thisSideIsOutsideTheRoom'), label: t('processCard.thisSideIsOutsideTheRoom'), }, ] //标签类型 let filteredOptions = [] const lableType = ref('1') const lableTypeOptions = [ { value: '1', label: t('processCard.finishedProductLabel'), }, /* { value: '2', label: t('processCard.halfProductLabel'), },*/ { value: `${company.printLabel.labelValue}`, label: `${company.printLabel.labelType}`, }, { value: `${company.printLabel.labelValue3}`, label: `${company.printLabel.labelType3}`, }, ] let hidePrintLabels = company.printLabel.hideButton; let btnType = company.printBtn; if (hidePrintLabels == 'true') { filteredOptions = lableTypeOptions.filter((option, index) => index !== 2); } else { filteredOptions = lableTypeOptions; } //合片流程卡打印下拉选项 const printMerge = ref('') const printMergeOptions = [{}] const printContent = ref({ id: 'child', }) const printContentLabel = ref({ id: 'childLabel', }) const printContentLabelSemi = ref({ id: 'childLabelSemi', }) //打印类型 const printType = ref() //定义接收加载表头下拉数据 const titleSelectJson = ref({ dataType: [], }) const data = ref({ printList: [] }) onMounted(async () => { await getTags(); await hiprint.init(); }) let hiprintTemplate = ref() const tags = ref([]) const tag = ref({ id: null, name: null, type: 1, tagWidth: null, tagHeight: null, value: null, size: null }) const changeTag = () => { hiprintTemplate.value = new hiprint.PrintTemplate({}); const json = JSON.parse(tag.value.value) hiprintTemplate.value.update(json) } const getTags = () => { request.get('tagStyle/getTagList').then(res => { tags.value = res.data }) } const printOrder = (type) => { const list = hiprintTemplate.value.getJson() list.panels[0].printElements.forEach(element => { element.options.fontFamily = 'Arial' }) let object = lastList.value //判断是否为表格 let columnsNum = null if(list.panels[0].printElements[0].options.field==='table'){ object = {table:lastList.value} columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1) } hiprintTemplate.value.print(object) } const orderOtherMoney = ref(null) const {currentRoute} = useRouter() const route = currentRoute.value let orderId = route.query.orderId data.value.printList = JSON.parse(route.query.printList) let type = parseInt(route.query.type) let inquiryMode = route.query.checkedValue // 第一次加载查询 request.post(`/processCard/selectPrintDetails/${inquiryMode}/${type}`, data.value).then((res) => { if (res.code == 200) { let newDataCollection = []; for (let i = 0; i < res.data.data.length; i++) { res.data.data[i].detail.forEach((item) => { newDataCollection.push(item); }) } orderOtherMoney.value = res.data.orderOtherMoney orderOtherMoney.value.forEach(item => { let column = { field: `${item.column}`, width: 100, title: item.alias, filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, sortable: true } gridOptions.columns.push(column) }) titleSelectJson.value.dataType = res.data.type xGrid.value.reloadData(newDataCollection) gridOptions.loading = false hideButton() } else { ElMessage.warning(res.msg) } }) //表尾求和 const sumNum = (list, field) => { let count = 0 list.forEach(item => { count += Number(item[field]) }) return count.toFixed(2) } const hasDecimal = (value) => { const regex = /\./; // 定义正则表达式,查找小数点 return regex.test(value); // 返回true/false } const gridOptions = reactive({ loading: true, border: "full",//表格加边框 keepSource: true,//保持源数据 align: 'center',//文字居中 stripe: true,//斑马纹 rowConfig: {isCurrent: true, isHover: true, height: 30},//鼠标移动或选择高亮 id: 'printFlowCard_1', showFooter: true,//显示脚 printConfig: {}, importConfig: {}, exportConfig: {}, scrollX: {enabled: true}, scrollY: {enabled: true, gt: 0},//开启虚拟滚动 showOverflow: true, columnConfig: { resizable: true, useKey: true }, filterConfig: { //筛选配置项 // remote: true }, customConfig: { storage: true }, editConfig: { trigger: 'click', mode: 'row', showStatus: true },//表头参数 columns: [ {type: 'expand', fixed: "left", slots: {content: 'content'}, width: 50}, {title: t('basicData.operate'), width: 55, slots: {default: 'button_slot'}, fixed: "left"}, {type: 'checkbox', fixed: "left", title: t('basicData.check'), width: 80}, {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50}, { field: 'order_id', title: t('order.orderId'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 120 }, { field: 'process_id', title: t('processCard.processId'), showOverflow: "ellipsis", filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 140 }, { field: 'customer_name', title: t('customer.customerName'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 120 }, { field: 'project', title: t('order.project'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 120 }, { field: 'order_number', title: t('order.OrderNum'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 120 , sortable: true }, { field: 'technology_number', title: t('processCard.technologyNumber'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 120 , sortable: true }, { field: 'width', title: t('order.width'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 100 }, { field: 'height', title: t('order.height'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 100 }, { field: 'glassNumber', title: t('reportingWorks.glassNumber'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 100 }, {field: 'quantity', title: t('order.quantity'), width: 90}, {field: 'printQuantity', title: t('processCard.printQuantity'), width: 90, editRender: {name: 'input', attrs: {placeholder: ''}}, }, {field: 'total_area', title: t('order.area'), width: 90}, { field: 'product_name', title: t('order.product'), width: 120, filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged }, { field: 'glass_child', title: t('reportingWorks.glassChild'), width: 120, filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged }, {field: 'founder', title: t('processCard.founder'), width: 120}, {field: 'splitFrame_time', title: t('processCard.splitFrameTime'), width: 120}, { field: 'process', title: t('craft.process'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 160 }, { field: 'print_status', title: t('processCard.printStatus'), filters: [{data: ''}], slots: {filter: 'num1_filter'}, filterMethod: filterChanged, width: 120 }, ],//表头按钮 //表单验证 editRules: { printQuantity: [ { validator ({ row }) { const regex = /^[0-9]\d*$/ const printQuantity = (row.printQuantity === undefined || row.printQuantity===null || row.printQuantity==='') ? 0 : row.printQuantity if(!regex.test(printQuantity)){ return new Error(t('reportingWorks.enterIntegerGreaterThanEqualTo')) } else if(row.quantity<printQuantity){ return new Error(t('processCard.printWarn1')) } } } ] }, toolbarConfig: { buttons: [ {code: 'print', name: t('processCard.print'), status: 'primary'}, {code: 'customLabel', name: t('processCard.customLabelPrinting'), status: 'primary'}, {code: 'printLabel', name: t('processCard.labelPrinting'), status: 'primary'}, {code: 'printLabel2', name: t('processCard.labelPrinting2'), status: 'primary'}, {code: 'printLabel3', name: t('processCard.finishedProductPrinting2'), status: 'primary'}, {code: 'printTest', name: t('processCard.editablePrinting'), status: 'primary'}, {code: 'invertSelection', name: t('processCard.invertSelection'), status: 'primary'}, // {code: 'printLike', name: "同配置打印", status: 'primary'}, ], // import: false, // export: true, //print: true, zoom: true, custom: true }, data: null,//表格数据 //脚部求和 footerMethod({columns, data}) {//页脚函数 return [ columns.map((column, columnIndex) => { if (columnIndex === 0) { return t('basicData.total') } const List = ["quantity", 'total_area',] if (List.includes(column.field)) { return footSum(data, column.field) } return '' }) ] }, }) const gridEvents = { async toolbarButtonClick({code}) { const $grid = xGrid.value selectRecords = $grid.getCheckboxRecords() // selectRecords.forEach(obj => { // delete obj.print_status; // }); let type = tag.value.name let faceOrientation = stateValue.value let lableTypes = lableType.value let lableTitle = lableType.text if ($grid) { switch (code) { //打印流程卡 case 'print': { if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { ElMessage.warning(t('searchOrder.msgList.checkOrder')) return } let id = "" for (let i = 0; i < selectRecords.length; i++) { if (i + 1 === selectRecords.length) { id += selectRecords[i].id } else { id += selectRecords[i].id + "|" } } printRow.value.list = JSON.stringify(selectRecords) printRow.value.printMergeVal = printMerge.value printRow.value.like = null // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}}) dialogTableVisible.value = true break } //标签打印 常州 case 'printLabel': { if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { ElMessage.warning(t('searchOrder.msgList.checkOrder')) return } let id = "" for (let i = 0; i < selectRecords.length; i++) { if (i + 1 === selectRecords.length) { id += selectRecords[i].id } else { id += selectRecords[i].id + "|" } } router.push({ path: '/main/processCard/PrintLabel', query: {printList: JSON.stringify(selectRecords), printType: 2} }) break } //标签打印2 常州 case 'printLabel2': { if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { ElMessage.warning(t('searchOrder.msgList.checkOrder')) return } let id = "" for (let i = 0; i < selectRecords.length; i++) { if (i + 1 === selectRecords.length) { id += selectRecords[i].id } else { id += selectRecords[i].id + "|" } } router.push({ path: '/main/processCard/PrintCustomLabelSemi2', query: {printList: JSON.stringify(selectRecords), printType: 2} }) break } case 'sort': { const $table = xGridDetail.value let data = $table.getTableData().fullData let flowCardData = ref({ flowCard: data, }) for (let i = 0; i < flowCardData.value.flowCard.length; i++) { const regex = /^[1-9]\d*$/ if (!regex.test(flowCardData.value.flowCard[i].sort)) { ElMessage.warning(t('basicData.msg.greater0')) return; // 如果有一个不是整数 } } request.post("/processCard/printSort", flowCardData.value).then((res) => { if (res.code == 200) { ElMessage.success(t('processCard.sortingSuccessful')) router.push({ path: '/main/processCard/PrintFlowCard', query: {orderId: orderId, random: Math.random()} }) //location.reload(); } else { ElMessage.warning(res.msg) } }) break } //自定义成品标签打印 case 'customLabel': { if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { ElMessage.warning(t('searchOrder.msgList.checkOrder')) return } if (type === null || type === '' || type === undefined) { ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle')) return } let id = "" for (let i = 0; i < selectRecords.length; i++) { if (i + 1 === selectRecords.length) { id += selectRecords[i].id } else { id += selectRecords[i].id + "|" } } //成品标签1 if (lableTypes == 1) { labelRow.value.list = JSON.stringify(selectRecords) labelRow.value.faceOrientation = faceOrientation labelRow.value.type = type labelRow.value.lableType = lableTypes lastList.value = [] if (company.label === 1) { dialogTableVisibleLabel.value = true } //常州项目 else if (company.label === 2) { router.push({ path: '/main/processCard/PrintCustomLabelCZ', query: { type: type, faceOrientation: faceOrientation, lableType: lableTypes, printList: JSON.stringify(selectRecords), printType: 2 } }) } } //成品标签2 else if (lableTypes == 2) { labelRow.value.list = JSON.stringify(selectRecords) labelRow.value.faceOrientation = faceOrientation labelRow.value.type = type labelRow.value.lableType = lableTypes lastList.value = [] if (company.label === 1) { dialogTableVisibleCustomLabel.value = true } //常州项目 else if (company.label === 2) { router.push({ path: '/main/processCard/PrintCustomLabelSemiCZ', query: { type: type, faceOrientation: faceOrientation, lableType: lableTypes, printList: JSON.stringify(selectRecords), printType: 2 } }) } } //成品标签3 else if (lableTypes == 3) { router.push({ path: '/main/processCard/PrintLabel1', query: { type: type, faceOrientation: faceOrientation, lableType: lableTypes, printList: JSON.stringify(selectRecords), printType: 2 } }) } break } case 'printLike': { if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { ElMessage.warning(t('searchOrder.msgList.checkOrder')) return } if (printMerge.value === null || printMerge.value === '') { ElMessage.warning('请填入需要合并的层') return } let id = "" for (let i = 0; i < selectRecords.length; i++) { if (i + 1 === selectRecords.length) { id += selectRecords[i].id } else { id += selectRecords[i].id + "|" } } printRow.value.list = JSON.stringify(selectRecords) printRow.value.printMergeVal = printMerge.value printRow.value.like = "1" // router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}}) dialogTableVisible.value = true break } case 'printTest': { const errMap = await $grid.validate(true) if (errMap) { ElMessage.error(t('basicData.msg.checkoutLose')) return } if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { ElMessage.warning(t('searchOrder.msgList.checkOrder')) return } // if (type === null || type === '' || type === undefined) { // ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle')) // return // } let id = "" for (let i = 0; i < selectRecords.length; i++) { if (i + 1 === selectRecords.length) { id += selectRecords[i].id } else { id += selectRecords[i].id + "|" } } labelRow.value.landingSequence = landingSequence labelRow.value.list = JSON.stringify(selectRecords) labelRow.value.faceOrientation = faceOrientation labelRow.value.type = type labelRow.value.lableType = lableTypes titleStyleVisible.value = true break } case 'printLabel3': { if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { ElMessage.warning(t('searchOrder.msgList.checkOrder')) return } if (tag.value.name === null || tag.value.name === '' || tag.value.name === undefined) { ElMessage.warning(t('processCard.pleaseSelectCustomPrintLabelStyle')) return } let id = "" for (let i = 0; i < selectRecords.length; i++) { if (i + 1 === selectRecords.length) { id += selectRecords[i].id } else { id += selectRecords[i].id + "|" } } labelRow.value.list = JSON.stringify(selectRecords) labelRow.value.faceOrientation = faceOrientation labelRow.value.type = tag.value.name labelRow.value.lableType = lableTypes labelRow.value.dataType = 1 let columnsLabel = company.printLabel.columnsLabel if (columnsLabel == 1) { dialogTableVisibleLabelXJTwo.value = true } else { dialogTableVisibleLabelXJ.value = true } break } case 'invertSelection': { if (selectRecords === null || selectRecords === '' || selectRecords.length === 0) { ElMessage.warning(t('searchOrder.msgList.checkOrder')) return } let tableData = $grid.getTableData().fullData; // 假设你的 Vxe Table 引用为 xTable const tableRef = $grid; // 获取当前选中的记录 //const selectedRecords = tableRef.getCheckboxRecords(); const allRecords = $grid.getTableData().fullData; // 替换为实际的数据源 allRecords.forEach(record => { tableRef.toggleCheckboxRow(record); }); } } } }, } const openedTable = () => { let detail = ref(produceDetailList.value) xGridDetail.value.reloadData(detail.value) addListener(xGridDetail.value, detailGridOptions) } const hideButton = () => { gridOptions.toolbarConfig.buttons = gridOptions.toolbarConfig.buttons.filter(button => { // 如果 type 不为空时,隐藏 print 按钮 if (btnType == 1 && button.code === 'print') { return false; // 隐藏 print 按钮 } // 根据 hidePrintLabels 的值判断是否隐藏 printLabel、printLabel2 和 customLabel if (hidePrintLabels == 'true') { return button.code !== 'printLabel' && button.code !== 'printLabel2' && button.code !== 'customLabel'; } else { // 如果 hidePrintLabels 不是 'true',则隐藏 printLike、printLabel3 和 printTest return button.code !== 'printLike' && button.code !== 'printLabel3' && button.code !== 'printTest'; } // 默认返回 true,表示保留按钮 return true; }); }; // 监听打印次数事件 const printNumber = () => { selectRecordsData.value.printList = selectRecords request.post(`/processCard/updatePrintNumber`, selectRecordsData.value).then((res) => { if (res.code == 200 && res.data === true) { } else { ElMessage.warning(t('basicData.msg.saveFail')) } }) } function onlandingSequenceChange(checked) { landingSequence.value = checked ? 0 : 1 } </script> <template> <div style="width: 100%;height: 100%"> <div class="head"> <el-input v-show="isVisible" v-model="printMerge" :placeholder="$t('processCard.mergePrinting')" clearable style="width: 90px"></el-input> <label>{{ $t('processCard.labelStyle') }}:</label> <el-select v-model="tag" :placeholder="$t('processCard.pleaseSelect')" style="width: 140px" @change="changeTag"> <el-option v-for="(tag,index) in tags" :key="index" :label="tag.name" :value="tag" /> </el-select> <el-select v-model="lableType" :placeholder="lableTypeOptions[0].label" class="m-2" style="width: 140px"> <el-option v-for="item in filteredOptions" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-select v-model="stateValue" :placeholder="$t('processCard.pleaseSelect')" allow-create class="m-2" clearable filterable style="width: 140px"> <el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-checkbox :model-value="landingSequence === 0" @change="onlandingSequenceChange" > {{ t('processCard.landingSequence') }} </el-checkbox> </div> <div class="main-table"> <vxe-grid ref="xGrid" :checkbox-config="{labelField: 'name', highlight: true, range: true}" :column-config="{resizable: true}" :data="tableData" :row-config="{isCurrent: true, isHover: true}" class="mytable-scrollbar" height="100%" v-bind="gridOptions" v-on="gridEvents"> > <!-- @toolbar-button-click="toolbarButtonClickEvent"--> <!-- 下拉显示所有信息插槽--> <template #content="{ row }"> <ul class="expand-wrapper"> <li v-for="(item,index) in gridOptions.columns" v-show="item.field!=undefined "> <span style="font-weight: bold">{{ item.title + ': ' }}</span> <span v-if="hasDecimal(item.field)">{{ row[item.field.split('.')[0]][item.field.split('.')[1]] }}</span> <span v-else>{{ row[item.field] }}</span> </li> </ul> </template> <!--左边固定显示的插槽--> <!-- v-if="userStore.user.permissions.indexOf('SelectProductionBasicData.edit') > -1"--> <template #button_slot="{ row }"> <el-button link size="small" type="primary" @click="getTableRow(row,'edit')"> {{ $t('basicData.edit') }} </el-button> </template> <template #num1_filter="{ column, $panel }"> <div> <div v-for="(option, index) in column.filters" :key="index"> <input v-model="option.data" type="text" @input="changeFilterEvent($event, option, $panel)" @keyup.enter.native="$panel.confirmFilter()"/> </div> </div> </template> </vxe-grid> </div> <!-- 流程卡打印 --> <el-dialog id="sizePrintCalrd" v-model="dialogTableVisible" :title="$t('processCard.print')" destroy-on-close style="width: 75%;height:75% "> <template #header="{ close, titleId, titleClass }"> <el-button v-print="printContent" :icon="Printer" circle @click="printNumber"/> </template> <print-process id="child" :printLike="printRow.like" :printList="printRow.list" :printMerge="printRow.printMergeVal" style="width: 100%;height: 100%"/> </el-dialog> <!-- 成品标签--> <el-dialog id="sizeCustom" v-model="dialogTableVisibleLabel" :title="$t('processCard.printLabel')" destroy-on-close style="width: 80%;height:75% "> <template #header="{ close, titleId, titleClass }"> <el-button v-print="printContentLabel" :icon="Printer" circle @click="printNumber"/> </template> <print-custom-label id="childLabel" :faceOrientation="labelRow.faceOrientation" :lableType="labelRow.lableType" :lastList='lastList' :list="labelRow.list" :type="labelRow.type" style="width: 100%;height: 100%"/> </el-dialog> <!-- 小片标签 --> <el-dialog id="sizeCustomSemi" v-model="dialogTableVisibleCustomLabel" :title="$t('processCard.labelStyle')" destroy-on-close style="width: 80%;height:75% "> <template #header="{ close, titleId, titleClass }"> <el-button v-print="printContentLabelSemi" :icon="Printer" circle/> </template> <print-custom-label-semi id="childLabelSemi" :faceOrientation="labelRow.faceOrientation" :lableType="labelRow.lableType" :list="labelRow.list" :type="labelRow.type" style="width: 100%;height: 100%"/> </el-dialog> <!-- 排序--> <el-dialog id="sizeCheck" v-model="printVisible" :title="$t('processCard.processCardDetails')" destroy-on-close style="width: 80%;height:75% "> <sort-detail id="child" :process="editRow.process" :processId="editRow.processId" :technologyNumber="editRow.technologyNumber"/> </el-dialog> <!-- 标签样式 --> <el-dialog id="titleStyle" v-model="titleStyleVisible" :close-on-click-modal="false" :close-on-press-escape="false" :title="$t('processCard.labelStyle')" destroy-on-close style="width: 90%;height:93%;margin-top: 3vh "> <!-- <tag-style style="width: 100%;height: 100%"/>--> <tag-style-designer :faceOrientation="labelRow.faceOrientation" :lableType="labelRow.lableType" :list="labelRow.list" :type="labelRow.type" :landingSequence="labelRow.landingSequence" style="width: 100%;height: 100%"/> </el-dialog> <!-- 成品标签两列--> <el-dialog id="sizeCustom" v-model="dialogTableVisibleLabelXJ" :title="$t('processCard.printLabel')" destroy-on-close style="width: 80%;height:75% "> <template #header="{ close, titleId, titleClass }"> <el-button :icon="Printer" circle @click="printOrder(1)"/> </template> <print-custom-label-x-j id="childLabel" :faceOrientation="labelRow.faceOrientation" :lableType="labelRow.lableType" :list="labelRow.list" :lastList='lastList' :type="labelRow.type" style="width: 100%;height: 100%"/> </el-dialog> <!-- 成品标签两列新疆--> <el-dialog id="sizeCustom" v-model="dialogTableVisibleLabelXJTwo" :title="$t('processCard.printLabel')" destroy-on-close style="width: 80%;height:75% "> <template #header="{ close, titleId, titleClass }"> <el-button v-print="printContentLabel" :icon="Printer" circle/> </template> <print-custom-label-x-j-two id="childLabel" :dataType="labelRow.dataType" :faceOrientation="labelRow.faceOrientation" :lableType="labelRow.lableType" :list="labelRow.list" :type="labelRow.type" style="width: 100%;height: 100%"/> </el-dialog> </div> </template> <style scoped> .main-div-customer { width: 99%; height: 92%; } .head{ width: 100%; height: 35px; } .main-table{ width: 100%; height: calc(100% - 35px); } :deep(#sizeCheck .el-dialog__body) { height: 90%; width: 100%; overflow-y: auto; } :deep(#sizePrintCalrd .el-dialog__body) { height: 85%; width: 100%; overflow-y: auto; } :deep(#sizeCustom .el-dialog__body) { height: 85%; width: 100%; overflow-y: auto; } :deep(#sizeCustomSemi .el-dialog__body) { height: 85%; width: 100%; overflow-y: auto; } :deep(#titleStyle .el-dialog__body) { height: 85%; width: 100%; overflow-y: auto; } </style> UI-Project/src/views/hollow/hollowequipment.vue
@@ -1,6 +1,6 @@ <template> <div style="height: 600px;"> <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" > <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;"> <div style="display: flex; flex-direction: row; align-items: center; margin-bottom: 10px;"> <el-button id="searchButton" type="primary" @click="handleormulan"> {{ $t('hellow.hollowformula') }} @@ -11,69 +11,76 @@ <el-button type="primary" @click="selectproject"> {{ $t('hellow.reviewproject') }} </el-button> <el-button style="margin-left: 10px;" id="searchButton" type="primary" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button> <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda"> <el-button style="margin-left: 10px;" id="searchButton" type="primary" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button> <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda"> {{ $t('hellow.starttask') }} </el-button> <el-button style="margin-left: 10px;" id="searchButton" type="info" @click="handleBindd">{{ $t('hellow.taskdet') }} $t('hellow.taskdet') }} </el-button> <el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{ $t('hellow.stopproject') $t('hellow.stopproject') }} </el-button> <el-button style="margin-left: 10px;" :disabled="listFlow.length > 0 ? false : true" id="searchButton" type="warning" @click="handleBinde">{{ $t('searchOrder.printlabels') }} </el-button> </div> <div id="dotClass"> <!-- <div style="margin-bottom: -5px;margin-left: 5px;"> --> </div> <div id="dotClass"> <!-- <div style="margin-bottom: -5px;margin-left: 5px;"> --> <!-- <el-form> --> <!-- <el-row> --> <!-- <el-col :span="4"> <!-- <el-row> --> <!-- <el-col :span="4"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.currenttask')" style="width: 14vw"> {{ temperingtotal }} </el-form-item> </div> </el-col> --> <!-- <el-col :span="5"> <!-- <el-col :span="5"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.claimednumber')" style="width: 14vw"> {{ glasstotal }} </el-form-item> </div> </el-col> --> <!-- <el-col :span="4"> <!-- <el-col :span="4"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.linenumber')" style="width: 14vw"> {{ fulltotals }} </el-form-item> </div> </el-col> --> <div style="margin-left: 70px;">{{ $t('hellow.freeone') }}</div> <i :style="{ marginTop: '2px', backgroundColor: freeone, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> <!-- </el-row> --> <div style="margin-left: 70px;">{{ $t('hellow.freeone') }}</div> <i :style="{ marginTop: '2px', backgroundColor: freeone, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> <!-- </el-row> --> <!-- </el-form> --> <!-- </div> --> </div> <!-- </div> --> </div> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table height="650" ref="table" :data="tableDataa" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"> <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center"/> <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center"/> <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center"/> <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/> <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/> <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/> <el-table-column prop="height" :label="$t('hellow.height')" align="center"/> <el-table-column prop="width" :label="$t('hellow.width')" align="center"/> :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"> <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center" /> <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" /> <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center" /> <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center" /> <el-table-column prop="layer" :label="$t('hellow.layer')" align="center" /> <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center" /> <el-table-column prop="height" :label="$t('hellow.height')" align="center" /> <el-table-column prop="width" :label="$t('hellow.width')" align="center" /> <el-table-column prop="state" :label="$t('hellow.state')" align="center"> <template #default="scope"> {{ scope.row.state == -1 ? $t('hellow.waitingout') : $t('hellow.finishout') }} {{ scope.row.state == -1 ? $t('hellow.waitingout') : $t('hellow.finishout') }} </template> </el-table-column> </el-table> <!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;"> <!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;"> <div style="margin-top: 5px;margin-right: 5px;">{{ $t('hellow.line') }}</div> <el-pagination background @@ -84,312 +91,317 @@ @current-change="handlePageChange1" /> </div> --> </div> </div> </el-card> </div> <!-- 创建任务 --> <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%"> <div style="display: flex;"> <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" /> <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/> <el-input v-model="productName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('large.inproductname')"/> <el-input v-model="customerName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('large.incustomerName')"/> <el-input v-model="thickness" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.inthickness')"/> <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch"> {{$t('reportmanage.inquire')}}</el-button> </div> <div style="margin-left: 87%;">{{$t('hellow.pairsnumbertotal')}}{{ pairTotal }}</div> <el-table ref="table" style="margin-top: 20px; height: 700px;" :data="tableDatab" :row-class-name="tableRowClassName" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" row-key="projectNumber" > <el-table-column> <template #default="props"> <el-table :data="props.row.flowCardGlassInfoDTOList" style="width: 100%" :row-class-name="(row) => nestedTableRowClassName(props.row, row)" > <el-table-column prop="layer" fixed align="center" :label="$t('hellow.layernumber')" min-width="80"/> <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/> <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/> <el-table-column prop="sumCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="80"/> <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80"/> <el-table-column prop="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80"/> </el-table> </template> </el-table-column> <el-table-column prop="flowCardId" fixed align="center" :label="$t('hellow.cardnumber')" min-width="20"/> <el-table-column prop="productName" fixed align="center" :label="$t('large.productname')" min-width="20"/> <el-table-column prop="customerName" fixed align="center" :label="$t('large.customerName')" min-width="20"/> <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="270"> <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" /> <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')" /> <el-input v-model="productName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('large.inproductname')" /> <el-input v-model="customerName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('large.incustomerName')" /> <el-input v-model="thickness" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.inthickness')" /> <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch"> {{ $t('reportmanage.inquire') }}</el-button> </div> <div style="margin-left: 87%;">{{ $t('hellow.pairsnumbertotal') }}{{ pairTotal }}</div> <el-table ref="table" style="margin-top: 20px; height: 700px;" :data="tableDatab" :row-class-name="tableRowClassName" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" row-key="projectNumber"> <el-table-column> <template #default="props"> <el-table :data="props.row.flowCardGlassInfoDTOList" style="width: 100%" :row-class-name="(row) => nestedTableRowClassName(props.row, row)"> <el-table-column prop="layer" fixed align="center" :label="$t('hellow.layernumber')" min-width="80" /> <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" /> <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" /> <el-table-column prop="sumCount" align="center" :label="$t('hellow.totalnumber')" min-width="80" /> <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="80" /> <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80" /> <el-table-column prop="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80" /> </el-table> </template> </el-table-column> <el-table-column prop="flowCardId" fixed align="center" :label="$t('hellow.cardnumber')" min-width="20" /> <el-table-column prop="productName" fixed align="center" :label="$t('large.productname')" min-width="20" /> <el-table-column prop="customerName" fixed align="center" :label="$t('large.customerName')" min-width="20" /> <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="270"> <template #default="scope"> <el-button type="text" :disabled="scope.row.isThroughSlot" plain @click="handletake(scope.row)">{{ $t('hellow.claimquest') }}</el-button> <el-button type="text" :disabled="scope.row.isThroughSlot" plain @click="handletake(scope.row)">{{ $t('hellow.claimquest') }}</el-button> <el-button type="text" plain @click="handleBindRack(scope.row)">{{ $t('hellow.missingfilms') }} $t('hellow.missingfilms') }} </el-button> <el-button type="text" plain @click="handleout(scope.row)">{{ $t('hellow.forcedfilming') }} $t('hellow.forcedfilming') }} </el-button> </template> </el-table-column> </el-table> </el-dialog> <!-- 中空配方添加 --> <el-dialog v-model="add" top="15vh" width="90%" :title="$t('hellow.hollowformula')" > <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;"> <el-form label-width="150px" label-position="right"> <!-- 第一行:3个元素 --> <el-row style="margin-top: 10px;"> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.formulaName')" style="width: 90%;"> <el-input v-model="formulaName" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('Mounting.removalmethoda')" style="width: 90%;"> <el-select v-model="filmRemove" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('Mounting.removal')" value="1"></el-option> <el-option :label="$t('Mounting.noremoval')" value="0"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.sealInsertb')" style="width: 90%;"> <el-input v-model="sealInsert" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> </el-table> </el-dialog> <!-- 中空配方添加 --> <el-dialog v-model="add" top="15vh" width="90%" :title="$t('hellow.hollowformula')"> <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;"> <el-form label-width="150px" label-position="right"> <!-- 第一行:3个元素 --> <el-row style="margin-top: 10px;"> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.formulaName')" style="width: 90%;"> <el-input v-model="formulaName" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('Mounting.removalmethoda')" style="width: 90%;"> <el-select v-model="filmRemove" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('Mounting.removal')" value="1"></el-option> <el-option :label="$t('Mounting.noremoval')" value="0"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.sealInsertb')" style="width: 90%;"> <el-input v-model="sealInsert" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第二行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.topRemove')" style="width: 90%;"> <el-input v-model="topRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.bottomRemove')" style="width: 90%;"> <el-input v-model="bottomRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.leftRemove')" style="width: 90%;"> <el-input v-model="leftRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.rightRemove')" style="width: 90%;"> <el-input v-model="rightRemove" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第二行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.topRemove')" style="width: 90%;"> <el-input v-model="topRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.bottomRemove')" style="width: 90%;"> <el-input v-model="bottomRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.leftRemove')" style="width: 90%;"> <el-input v-model="leftRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.rightRemove')" style="width: 90%;"> <el-input v-model="rightRemove" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第三行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casOneb')" style="width: 90%;"> <el-select v-model="casOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casTwob')" style="width: 90%;"> <el-select v-model="casTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casThreeb')" style="width: 90%;"> <el-select v-model="casThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casFourb')" style="width: 90%;"> <el-select v-model="casFour" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> </el-row> <!-- 第三行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casOneb')" style="width: 90%;"> <el-select v-model="casOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casTwob')" style="width: 90%;"> <el-select v-model="casTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casThreeb')" style="width: 90%;"> <el-select v-model="casThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casFourb')" style="width: 90%;"> <el-select v-model="casFour" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> </el-row> <!-- 第四行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameOneb')" style="width: 90%;"> <el-input v-model="frameOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameTwob')" style="width: 90%;"> <el-input v-model="frameTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameThreeb')" style="width: 90%;"> <el-input v-model="frameThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameFourb')" style="width: 90%;"> <el-input v-model="frameFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第四行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameOneb')" style="width: 90%;"> <el-input v-model="frameOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameTwob')" style="width: 90%;"> <el-input v-model="frameTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameThreeb')" style="width: 90%;"> <el-input v-model="frameThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameFourb')" style="width: 90%;"> <el-input v-model="frameFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第五行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbOne')" style="width: 90%;"> <el-input v-model="intervalFrameHeightOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbTwo')" style="width: 90%;"> <el-input v-model="intervalFrameHeightTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbThree')" style="width: 90%;"> <el-input v-model="intervalFrameHeightThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbFour')" style="width: 90%;"> <el-input v-model="intervalFrameHeightFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第五行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbOne')" style="width: 90%;"> <el-input v-model="intervalFrameHeightOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbTwo')" style="width: 90%;"> <el-input v-model="intervalFrameHeightTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbThree')" style="width: 90%;"> <el-input v-model="intervalFrameHeightThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbFour')" style="width: 90%;"> <el-input v-model="intervalFrameHeightFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第六行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbOne')" style="width: 90%;"> <el-input v-model="intervalFrameWidthOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbTwo')" style="width: 90%;"> <el-input v-model="intervalFrameWidthTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbThree')" style="width: 90%;"> <el-input v-model="intervalFrameWidthThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbFour')" style="width: 90%;"> <el-input v-model="intervalFrameWidthFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第六行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbOne')" style="width: 90%;"> <el-input v-model="intervalFrameWidthOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbTwo')" style="width: 90%;"> <el-input v-model="intervalFrameWidthTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbThree')" style="width: 90%;"> <el-input v-model="intervalFrameWidthThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbFour')" style="width: 90%;"> <el-input v-model="intervalFrameWidthFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第七行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedOne')" style="width: 90%;"> <el-select v-model="intervalFrameTypeOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedTwo')" style="width: 90%;"> <el-select v-model="intervalFrameTypeTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedThree')" style="width: 90%;"> <el-select v-model="intervalFrameTypeThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedFour')" style="width: 90%;"> <el-select v-model="intervalFrameTypeFour" style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> </el-row> </el-form> </div> <template #footer> <!-- 第七行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedOne')" style="width: 90%;"> <el-select v-model="intervalFrameTypeOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedTwo')" style="width: 90%;"> <el-select v-model="intervalFrameTypeTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedThree')" style="width: 90%;"> <el-select v-model="intervalFrameTypeThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedFour')" style="width: 90%;"> <el-select v-model="intervalFrameTypeFour" style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> </el-row> </el-form> </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="handleConfirm"> {{ $t('basicData.confirm') }} @@ -398,256 +410,261 @@ </div> </template> </el-dialog> <!-- 中空配方修改 --> <el-dialog v-model="adda" top="15vh" width="85%" :title="$t('hellow.edithollowformula')" > <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;"> <el-form label-width="150px" label-position="right"> <!-- 第一行:3个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.formulaName')" style="width: 90%;"> <el-input v-model="formulaName" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('Mounting.removalmethoda')" style="width: 90%;"> <el-select v-model="filmRemove" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('Mounting.removal')" value="1"></el-option> <el-option :label="$t('Mounting.noremoval')" value="0"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.sealInsertb')" style="width: 90%;"> <el-input v-model="sealInsert" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 中空配方修改 --> <el-dialog v-model="adda" top="15vh" width="85%" :title="$t('hellow.edithollowformula')"> <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;"> <el-form label-width="150px" label-position="right"> <!-- 第一行:3个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.formulaName')" style="width: 90%;"> <el-input v-model="formulaName" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('Mounting.removalmethoda')" style="width: 90%;"> <el-select v-model="filmRemove" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('Mounting.removal')" value="1"></el-option> <el-option :label="$t('Mounting.noremoval')" value="0"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="8"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.sealInsertb')" style="width: 90%;"> <el-input v-model="sealInsert" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第二行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.topRemove')" style="width: 90%;"> <el-input v-model="topRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.bottomRemove')" style="width: 90%;"> <el-input v-model="bottomRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.leftRemove')" style="width: 90%;"> <el-input v-model="leftRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.rightRemove')" style="width: 90%;"> <el-input v-model="rightRemove" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第二行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.topRemove')" style="width: 90%;"> <el-input v-model="topRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.bottomRemove')" style="width: 90%;"> <el-input v-model="bottomRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.leftRemove')" style="width: 90%;"> <el-input v-model="leftRemove" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.rightRemove')" style="width: 90%;"> <el-input v-model="rightRemove" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第三行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casOneb')" style="width: 90%;"> <el-select v-model="casOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casTwob')" style="width: 90%;"> <el-select v-model="casTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casThreeb')" style="width: 90%;"> <el-select v-model="casThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casFourb')" style="width: 90%;"> <el-select v-model="casFour" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> </el-row> <!-- 第三行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casOneb')" style="width: 90%;"> <el-select v-model="casOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casTwob')" style="width: 90%;"> <el-select v-model="casTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casThreeb')" style="width: 90%;"> <el-select v-model="casThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.casFourb')" style="width: 90%;"> <el-select v-model="casFour" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.F')" value="0"></el-option> <el-option :label="$t('hellow.Y')" value="1"></el-option> </el-select> </el-form-item> </div> </el-col> </el-row> <!-- 第四行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameOneb')" style="width: 90%;"> <el-input v-model="frameOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameTwob')" style="width: 90%;"> <el-input v-model="frameTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameThreeb')" style="width: 90%;"> <el-input v-model="frameThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameFourb')" style="width: 90%;"> <el-input v-model="frameFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第四行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameOneb')" style="width: 90%;"> <el-input v-model="frameOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameTwob')" style="width: 90%;"> <el-input v-model="frameTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameThreeb')" style="width: 90%;"> <el-input v-model="frameThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.frameFourb')" style="width: 90%;"> <el-input v-model="frameFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第五行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbOne')" style="width: 90%;"> <el-input v-model="intervalFrameHeightOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbTwo')" style="width: 90%;"> <el-input v-model="intervalFrameHeightTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbThree')" style="width: 90%;"> <el-input v-model="intervalFrameHeightThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbFour')" style="width: 90%;"> <el-input v-model="intervalFrameHeightFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第五行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbOne')" style="width: 90%;"> <el-input v-model="intervalFrameHeightOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbTwo')" style="width: 90%;"> <el-input v-model="intervalFrameHeightTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbThree')" style="width: 90%;"> <el-input v-model="intervalFrameHeightThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameHeightbFour')" style="width: 90%;"> <el-input v-model="intervalFrameHeightFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第六行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbOne')" style="width: 90%;"> <el-input v-model="intervalFrameWidthOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbTwo')" style="width: 90%;"> <el-input v-model="intervalFrameWidthTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbThree')" style="width: 90%;"> <el-input v-model="intervalFrameWidthThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbFour')" style="width: 90%;"> <el-input v-model="intervalFrameWidthFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第六行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbOne')" style="width: 90%;"> <el-input v-model="intervalFrameWidthOne" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbTwo')" style="width: 90%;"> <el-input v-model="intervalFrameWidthTwo" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbThree')" style="width: 90%;"> <el-input v-model="intervalFrameWidthThree" autocomplete="off" /> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameWidthbFour')" style="width: 90%;"> <el-input v-model="intervalFrameWidthFour" autocomplete="off" /> </el-form-item> </div> </el-col> </el-row> <!-- 第七行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedOne')" style="width: 90%;"> <el-select v-model="intervalFrameTypeOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedTwo')" style="width: 90%;"> <el-select v-model="intervalFrameTypeTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedThree')" style="width: 90%;"> <el-select v-model="intervalFrameTypeThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedFour')" style="width: 90%;"> <el-select v-model="intervalFrameTypeFour" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> </el-row> </el-form> </div> <template #footer> <!-- 第七行:4个元素 --> <el-row style="margin-top: 20px;"> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedOne')" style="width: 90%;"> <el-select v-model="intervalFrameTypeOne" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedTwo')" style="width: 90%;"> <el-select v-model="intervalFrameTypeTwo" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedThree')" style="width: 90%;"> <el-select v-model="intervalFrameTypeThree" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> <el-col :span="6"> <div style="font-size: 15px;"> <el-form-item :label="$t('hellow.intervalFrameTypedFour')" style="width: 90%;"> <el-select v-model="intervalFrameTypeFour" clearable style="width: 100%" :placeholder="$t('screendisplay.pchoice')"> <el-option :label="$t('hellow.intervalFrameTypeb')" value="1"></el-option> <el-option :label="$t('hellow.intervalFrameTypea')" value="5"></el-option> </el-select> </el-form-item> </div> </el-col> </el-row> </el-form> </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="handledit"> {{ $t('basicData.confirm') }} @@ -665,36 +682,17 @@ <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantity" autocomplete="off" /> </el-form-item> <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;"> <el-select :placeholder="$t('hellow.line1')" disabled style="width: 270px" v-model="cell"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-select :placeholder="$t('hellow.line1')" disabled style="width: 270px" v-model="cell"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-form-item> <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;"> <el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')" style="width: 270px" @change="handleFormulaChange" > <el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName" :value="item.formulaName" /> </el-select> </el-form-item> <el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')" style="width: 270px" @change="handleFormulaChange"> <el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName" :value="item.formulaName" /> </el-select> </el-form-item> </el-form> </el-form> </div> @@ -716,36 +714,17 @@ <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantitya" autocomplete="off" /> </el-form-item> <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;"> <el-select :placeholder="$t('hellow.line1')" disabled style="width: 270px" v-model="cella"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-select :placeholder="$t('hellow.line1')" disabled style="width: 270px" v-model="cella"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-form-item> <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;"> <el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')" style="width: 270px" @change="handleFormulaChange" > <el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName" :value="item.formulaName" /> </el-select> </el-form-item> <el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')" style="width: 270px" @change="handleFormulaChange"> <el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName" :value="item.formulaName" /> </el-select> </el-form-item> </el-form> </el-form> </div> @@ -765,29 +744,23 @@ {{ currentRow.flowCardId }} </el-form-item> </div> <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/> <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/> <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80"/> <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80"/> <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatac" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" /> <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" /> <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80" /> <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80" /> <!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> --> <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80"/> <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80" /> <!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> --> <div style="float: right;margin-bottom: 5px;"> <el-pagination layout="prev, pager, next" :total="50"/> <el-pagination layout="prev, pager, next" :total="50" /> </div> </el-table> <div style="display: flex;margin-left: 40%;margin-top: 10px;"> <el-pagination background size="large" layout="prev, pager, next" :total="30" :current-page.sync="currentPage2" @current-change="handlePageChange2" /> </div> <el-pagination background size="large" layout="prev, pager, next" :total="30" :current-page.sync="currentPage2" @current-change="handlePageChange2" /> </div> </el-dialog> <!-- 开始任务 --> <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('hellow.pstarttask')"> @@ -811,6 +784,30 @@ </div> </template> </el-dialog> <!-- 打印标签 --> <el-dialog v-model="blinde" top="30vh" width="25%" :title="$t('searchOrder.printlabels')"> <template #footer> <div id="dialog-footer"> <el-select v-model="tag" filterable clearable :placeholder="$t('hellow.projectMsg2')" @change="changeTag" style="width: 220px" @input="handleInputChange"> <el-option v-for="(tag, index) in tags" :key="index" :label="tag.name" :value="tag" /> </el-select> <el-select v-model="stateValue" filterable clearable :placeholder="$t('screendisplay.pchoice')" style="width: 220px" @input="handleInputChange"> <el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-button type="primary" @click="labelPrint = true"> {{ $t('processCard.printing') }} </el-button> <el-button @click="blinde = false">{{ $t('basicData.cancel') }}</el-button> </div> </template> </el-dialog> <el-dialog v-model="labelPrint" style="width: 80%; " destroy-on-close> <el-button :icon="Printer" circle @click="printOrder(1)">{{ $t('processCard.printing') }}</el-button> <print-custom-label-x-j id="childLabel" :faceOrientation="stateValue" :lableType="1" :list="listFlow" :lastList='lastList' :type="tag.name" style="width: 100%;height: 100%" /> </el-dialog> <!-- 删除任务 --> <el-dialog v-model="blindd" top="30vh" width="25%" :title="$t('hellow.hollowtaskdet')"> <template #footer> @@ -823,22 +820,13 @@ </template> </el-dialog> <!-- 预览 --> <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')" > <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')"> <div style="margin-left: 50px;margin-bottom: 10px;"> <el-form-item :label="$t('basicData.projectnumber')" :required="true"> <el-select v-model="selectedProjectNo" filterable clearable :placeholder="$t('basicData.plselectproject')" style="width: 260px" > <el-option v-for="item in titleSelectJson.processType" :key="item.value" :label="item.value" :value="item.value" /> <el-select v-model="selectedProjectNo" filterable clearable :placeholder="$t('hellow.plselectproject')" style="width: 260px"> <el-option v-for="item in titleSelectJson.processType" :key="item.value" :label="item.value" :value="item.value" /> </el-select> </el-form-item> </div> @@ -853,126 +841,136 @@ </el-dialog> <!-- 中空配方 --> <el-dialog v-model="mulan" top="15vh" width="80%" :title="$t('hellow.hollowformula')"> <el-button id="searchButton" type="primary" @click="openAddDialog"> {{ $t('basicData.add') }} </el-button> <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')" min-width="120"/> <el-table-column prop="filmRemove" align="center" :label="$t('Mounting.removalmethodp')"/> <el-table-column prop="casOne" align="center" :label="$t('hellow.casOne')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOnea(scope.row.casOne)"> {{ getStatuscasOnea(scope.row.casOne) }} </el-tag> </template> </el-table-column> <el-table-column prop="casTwo" align="center" :label="$t('hellow.casTwo')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOneb(scope.row.casTwo)"> {{ getStatuscasOneb(scope.row.casTwo) }} </el-tag> </template> </el-table-column> <el-table-column prop="casThree" align="center" :label="$t('hellow.casThree')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOnec(scope.row.casThree)"> {{ getStatuscasOnec(scope.row.casThree) }} </el-tag> </template> </el-table-column> <el-table-column prop="casFour" align="center" :label="$t('hellow.casFour')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOned(scope.row.casFour)"> {{ getStatuscasOned(scope.row.casFour) }} </el-tag> </template> </el-table-column> <el-table-column prop="frameOne" align="center" :label="$t('hellow.frameOne')"/> <el-table-column prop="frameTwo" align="center" :label="$t('hellow.frameTwo')"/> <el-table-column prop="frameThree" align="center" :label="$t('hellow.frameThree')"/> <el-table-column prop="frameFour" align="center" :label="$t('hellow.frameFour')"/> <el-table-column prop="intervalFrameHeightOne" align="center" :label="$t('hellow.intervalFrameHeightOne')" min-width="110"/> <el-table-column prop="intervalFrameHeightTwo" align="center" :label="$t('hellow.intervalFrameHeightTwo')" min-width="110"/> <el-table-column prop="intervalFrameHeightThree" align="center" :label="$t('hellow.intervalFrameHeightThree')" min-width="110"/> <el-table-column prop="intervalFrameHeightFour" align="center" :label="$t('hellow.intervalFrameHeightFour')" min-width="110"/> <!-- <el-table-column prop="intervalFrameTypeOne" align="center" :label="$t('hellow.intervalFrameTypeOne')" min-width="110"> <el-button id="searchButton" type="primary" @click="openAddDialog"> {{ $t('basicData.add') }} </el-button> <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatax" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> <el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')" min-width="120" /> <el-table-column prop="filmRemove" align="center" :label="$t('Mounting.removalmethodp')" /> <el-table-column prop="casOne" align="center" :label="$t('hellow.casOne')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOnea(scope.row.casOne)"> {{ getStatuscasOnea(scope.row.casOne) }} </el-tag> </template> </el-table-column> <el-table-column prop="casTwo" align="center" :label="$t('hellow.casTwo')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOneb(scope.row.casTwo)"> {{ getStatuscasOneb(scope.row.casTwo) }} </el-tag> </template> </el-table-column> <el-table-column prop="casThree" align="center" :label="$t('hellow.casThree')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOnec(scope.row.casThree)"> {{ getStatuscasOnec(scope.row.casThree) }} </el-tag> </template> </el-table-column> <el-table-column prop="casFour" align="center" :label="$t('hellow.casFour')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOned(scope.row.casFour)"> {{ getStatuscasOned(scope.row.casFour) }} </el-tag> </template> </el-table-column> <el-table-column prop="frameOne" align="center" :label="$t('hellow.frameOne')" /> <el-table-column prop="frameTwo" align="center" :label="$t('hellow.frameTwo')" /> <el-table-column prop="frameThree" align="center" :label="$t('hellow.frameThree')" /> <el-table-column prop="frameFour" align="center" :label="$t('hellow.frameFour')" /> <el-table-column prop="intervalFrameHeightOne" align="center" :label="$t('hellow.intervalFrameHeightOne')" min-width="110" /> <el-table-column prop="intervalFrameHeightTwo" align="center" :label="$t('hellow.intervalFrameHeightTwo')" min-width="110" /> <el-table-column prop="intervalFrameHeightThree" align="center" :label="$t('hellow.intervalFrameHeightThree')" min-width="110" /> <el-table-column prop="intervalFrameHeightFour" align="center" :label="$t('hellow.intervalFrameHeightFour')" min-width="110" /> <!-- <el-table-column prop="intervalFrameTypeOne" align="center" :label="$t('hellow.intervalFrameTypeOne')" min-width="110"> <template #default="scope"> <el-tag :type="getStatusTypea(scope.row.intervalFrameTypeOne)"> {{ getStatusTexta(scope.row.intervalFrameTypeOne) }} </el-tag> </template> </el-table-column> --> <el-table-column prop="intervalFrameTypeOne" align="center" :label="$t('hellow.intervalFrameTypeOne')" min-width="110"> <template #default="scope"> <el-tag :type="getStatusTypea(scope.row.intervalFrameTypeOne)"> {{ getStatusTexta(scope.row.intervalFrameTypeOne) }} </el-tag> </template> </el-table-column> <el-table-column prop="intervalFrameTypeTwo" align="center" :label="$t('hellow.intervalFrameTypeTwo')" min-width="110"> <template #default="scope"> <el-tag :type="getStatusTypeb(scope.row.intervalFrameTypeTwo)"> {{ getStatusTextb(scope.row.intervalFrameTypeTwo) }} </el-tag> </template> </el-table-column> <el-table-column prop="intervalFrameTypeThree" align="center" :label="$t('hellow.intervalFrameTypeThree')" min-width="110"> <template #default="scope"> <el-tag :type="getStatusTypec(scope.row.intervalFrameTypeThree)"> {{ getStatusTextc(scope.row.intervalFrameTypeThree) }} </el-tag> </template> </el-table-column> <el-table-column prop="intervalFrameTypeFour" align="center" :label="$t('hellow.intervalFrameTypeFour')" min-width="110"> <template #default="scope"> <el-tag :type="getStatusTyped(scope.row.intervalFrameTypeFour)"> {{ getStatusTextd(scope.row.intervalFrameTypeFour) }} </el-tag> </template> </el-table-column> <el-table-column prop="intervalFrameWidthOne" align="center" :label="$t('hellow.intervalFrameWidthOne')" min-width="110"/> <el-table-column prop="intervalFrameWidthTwo" align="center" :label="$t('hellow.intervalFrameWidthTwo')" min-width="110"/> <el-table-column prop="intervalFrameWidthThree" align="center" :label="$t('hellow.intervalFrameWidthThree')" min-width="110"/> <el-table-column prop="intervalFrameWidthFour" align="center" :label="$t('hellow.intervalFrameWidthFour')" min-width="110"/> <el-table-column prop="sealInsert" align="center" :label="$t('hellow.sealInsert')"/> <el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')" min-width="95"> </el-table-column> <el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')" min-width="95"> </el-table-column> <el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')" min-width="95"> </el-table-column> <el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')" min-width="95"> </el-table-column> <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270"> <template #default="scope"> <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button> <el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button> </template> </el-table-column> </el-table> <template #footer> <el-table-column prop="intervalFrameTypeOne" align="center" :label="$t('hellow.intervalFrameTypeOne')" min-width="110"> <template #default="scope"> <el-tag :type="getStatusTypea(scope.row.intervalFrameTypeOne)"> {{ getStatusTexta(scope.row.intervalFrameTypeOne) }} </el-tag> </template> </el-table-column> <el-table-column prop="intervalFrameTypeTwo" align="center" :label="$t('hellow.intervalFrameTypeTwo')" min-width="110"> <template #default="scope"> <el-tag :type="getStatusTypeb(scope.row.intervalFrameTypeTwo)"> {{ getStatusTextb(scope.row.intervalFrameTypeTwo) }} </el-tag> </template> </el-table-column> <el-table-column prop="intervalFrameTypeThree" align="center" :label="$t('hellow.intervalFrameTypeThree')" min-width="110"> <template #default="scope"> <el-tag :type="getStatusTypec(scope.row.intervalFrameTypeThree)"> {{ getStatusTextc(scope.row.intervalFrameTypeThree) }} </el-tag> </template> </el-table-column> <el-table-column prop="intervalFrameTypeFour" align="center" :label="$t('hellow.intervalFrameTypeFour')" min-width="110"> <template #default="scope"> <el-tag :type="getStatusTyped(scope.row.intervalFrameTypeFour)"> {{ getStatusTextd(scope.row.intervalFrameTypeFour) }} </el-tag> </template> </el-table-column> <el-table-column prop="intervalFrameWidthOne" align="center" :label="$t('hellow.intervalFrameWidthOne')" min-width="110" /> <el-table-column prop="intervalFrameWidthTwo" align="center" :label="$t('hellow.intervalFrameWidthTwo')" min-width="110" /> <el-table-column prop="intervalFrameWidthThree" align="center" :label="$t('hellow.intervalFrameWidthThree')" min-width="110" /> <el-table-column prop="intervalFrameWidthFour" align="center" :label="$t('hellow.intervalFrameWidthFour')" min-width="110" /> <el-table-column prop="sealInsert" align="center" :label="$t('hellow.sealInsert')" /> <el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')" min-width="95"> </el-table-column> <el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')" min-width="95"> </el-table-column> <el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')" min-width="95"> </el-table-column> <el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')" min-width="95"> </el-table-column> <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270"> <template #default="scope"> <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button> <el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button> </template> </el-table-column> </el-table> <template #footer> <div id="dialog-footer"> <el-button @click="mulan = false">{{ $t('large.close') }}</el-button> </div> </template> </el-dialog> <!-- 历史任务 --> <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''"> <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" frameborder="0" ></iframe> </el-dialog> <!-- 历史任务 --> <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl = ''"> <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" frameborder="0"></iframe> </el-dialog> </template> <script setup> import { ElMessage, ElMessageBox } from 'element-plus' import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed} from "vue"; import { onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed } from "vue"; import request from "@/utils/request" import {host, WebSocketHost} from '@/utils/constants' import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; import {useI18n} from 'vue-i18n' const {t} = useI18n() import { host, WebSocketHost } from '@/utils/constants' import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService'; import { useI18n } from 'vue-i18n' const { t } = useI18n() const blinda = ref(false) const blindb = ref(false) const blindc = ref(false) @@ -1034,7 +1032,7 @@ const pairTotal = ref(); let selectedFormulaId = ref(null); const formulaNameid = ref({ id: null }); const titleformulaName = ref({ formulaName: [] ,formulaId: []}); const titleformulaName = ref({ formulaName: [], formulaId: [] }); const titleSelectJson = ref({ processType: [] }); const iframeUrl = ref(''); const handlehistorical = (row) => { @@ -1073,7 +1071,7 @@ const currentPageData = allPageData[currentPageKeyValue]; if (data.freeRequest != null) { freeone.value = data.freeRequest[0] == true ? 'green' : '#911005'; } } // if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) { // tableDataa.value = currentPageData[0]; // } else { @@ -1118,64 +1116,64 @@ // 处理编辑按钮点击 function handleEdit(row) { window.localStorage.setItem('id', row.id) formulaName.value = row.formulaName; filmRemove.value = removalMethodMap[row.filmRemove]; bottomRemove.value = row.bottomRemove; leftRemove.value = row.leftRemove; rightRemove.value = row.rightRemove; topRemove.value = row.topRemove; casFour.value = removalcas[row.casFour]; casOne.value = removalcas[row.casOne]; casThree.value = removalcas[row.casThree]; casTwo.value = removalcas[row.casTwo]; frameFour.value = row.frameFour; frameOne.value = row.frameOne; frameThree.value = row.frameThree; frameTwo.value = row.frameTwo; intervalFrameHeightOne.value = row.intervalFrameHeightOne; intervalFrameHeightTwo.value = row.intervalFrameHeightTwo; intervalFrameHeightThree.value = row.intervalFrameHeightThree; intervalFrameHeightFour.value = row.intervalFrameHeightFour; intervalFrameTypeOne.value = removalinterval[row.intervalFrameTypeOne]; intervalFrameTypeTwo.value = removalinterval[row.intervalFrameTypeTwo]; intervalFrameTypeThree.value = removalinterval[row.intervalFrameTypeThree]; intervalFrameTypeFour.value = removalinterval[row.intervalFrameTypeFour]; intervalFrameWidthOne.value = row.intervalFrameWidthOne; intervalFrameWidthTwo.value = row.intervalFrameWidthTwo; intervalFrameWidthThree.value = row.intervalFrameWidthThree; intervalFrameWidthFour.value = row.intervalFrameWidthFour; sealInsert.value = row.sealInsert; adda.value = true; } function openAddDialog() { formulaName.value = ''; filmRemove.value = ''; bottomRemove.value = ''; leftRemove.value = ''; rightRemove.value = ''; topRemove.value = ''; casFour.value = ''; casOne.value = ''; casThree.value = ''; casTwo.value = ''; frameFour.value = ''; frameOne.value = ''; frameThree.value = ''; frameTwo.value = ''; intervalFrameHeightOne.value = ''; intervalFrameHeightTwo.value = ''; intervalFrameHeightThree.value = ''; intervalFrameHeightFour.value = ''; intervalFrameTypeOne.value = ''; intervalFrameTypeTwo.value = ''; intervalFrameTypeThree.value = ''; intervalFrameTypeFour.value = ''; intervalFrameWidthOne.value = ''; intervalFrameWidthTwo.value = ''; intervalFrameWidthThree.value = ''; intervalFrameWidthFour.value = ''; sealInsert.value = ''; add.value = true; formulaName.value = row.formulaName; filmRemove.value = removalMethodMap[row.filmRemove]; bottomRemove.value = row.bottomRemove; leftRemove.value = row.leftRemove; rightRemove.value = row.rightRemove; topRemove.value = row.topRemove; casFour.value = removalcas[row.casFour]; casOne.value = removalcas[row.casOne]; casThree.value = removalcas[row.casThree]; casTwo.value = removalcas[row.casTwo]; frameFour.value = row.frameFour; frameOne.value = row.frameOne; frameThree.value = row.frameThree; frameTwo.value = row.frameTwo; intervalFrameHeightOne.value = row.intervalFrameHeightOne; intervalFrameHeightTwo.value = row.intervalFrameHeightTwo; intervalFrameHeightThree.value = row.intervalFrameHeightThree; intervalFrameHeightFour.value = row.intervalFrameHeightFour; intervalFrameTypeOne.value = removalinterval[row.intervalFrameTypeOne]; intervalFrameTypeTwo.value = removalinterval[row.intervalFrameTypeTwo]; intervalFrameTypeThree.value = removalinterval[row.intervalFrameTypeThree]; intervalFrameTypeFour.value = removalinterval[row.intervalFrameTypeFour]; intervalFrameWidthOne.value = row.intervalFrameWidthOne; intervalFrameWidthTwo.value = row.intervalFrameWidthTwo; intervalFrameWidthThree.value = row.intervalFrameWidthThree; intervalFrameWidthFour.value = row.intervalFrameWidthFour; sealInsert.value = row.sealInsert; adda.value = true; } function openAddDialog() { formulaName.value = ''; filmRemove.value = ''; bottomRemove.value = ''; leftRemove.value = ''; rightRemove.value = ''; topRemove.value = ''; casFour.value = ''; casOne.value = ''; casThree.value = ''; casTwo.value = ''; frameFour.value = ''; frameOne.value = ''; frameThree.value = ''; frameTwo.value = ''; intervalFrameHeightOne.value = ''; intervalFrameHeightTwo.value = ''; intervalFrameHeightThree.value = ''; intervalFrameHeightFour.value = ''; intervalFrameTypeOne.value = ''; intervalFrameTypeTwo.value = ''; intervalFrameTypeThree.value = ''; intervalFrameTypeFour.value = ''; intervalFrameWidthOne.value = ''; intervalFrameWidthTwo.value = ''; intervalFrameWidthThree.value = ''; intervalFrameWidthFour.value = ''; sealInsert.value = ''; add.value = true; } const handlezhiban = () => { dialogFormVisiblea.value = true; @@ -1185,166 +1183,166 @@ mulan.value = true; fetchmulan(); }; function getcasOnea(casOne) { switch (casOne) { function getcasOnea(casOne) { switch (casOne) { case "1": return 'success'; case "0": return 'warning'; return 'success'; case "0": return 'warning'; default: return 'info'; } } return 'info'; } } function getStatuscasOnea(casOne) { switch (casOne) { case "1": case "1": return t('hellow.Y'); case "0": return t('hellow.F'); case "0": return t('hellow.F'); default: return ''; } } } function getcasOneb(casOne) { switch (casOne) { function getcasOneb(casOne) { switch (casOne) { case "1": return 'success'; case "0": return 'warning'; return 'success'; case "0": return 'warning'; default: return 'info'; } } return 'info'; } } function getStatuscasOneb(casOne) { switch (casOne) { case "1": case "1": return t('hellow.Y'); case "0": return t('hellow.F'); case "0": return t('hellow.F'); default: return ''; } } } function getcasOnec(casOne) { switch (casOne) { function getcasOnec(casOne) { switch (casOne) { case "1": return 'success'; case "0": return 'warning'; return 'success'; case "0": return 'warning'; default: return 'info'; } } return 'info'; } } function getStatuscasOnec(casOne) { switch (casOne) { case "1": case "1": return t('hellow.Y'); case "0": return t('hellow.F'); case "0": return t('hellow.F'); default: return ''; } } } function getcasOned(casOne) { switch (casOne) { function getcasOned(casOne) { switch (casOne) { case "1": return 'success'; case "0": return 'warning'; return 'success'; case "0": return 'warning'; default: return 'info'; } } return 'info'; } } function getStatuscasOned(casOne) { switch (casOne) { case "1": case "1": return t('hellow.Y'); case "0": return t('hellow.F'); case "0": return t('hellow.F'); default: return ''; } } } function getStatusTypea(intervalFrameTypeOne) { switch (intervalFrameTypeOne) { function getStatusTypea(intervalFrameTypeOne) { switch (intervalFrameTypeOne) { case "1": return 'success'; case "5": return 'warning'; return 'success'; case "5": return 'warning'; default: return 'info'; } } return 'info'; } } function getStatusTexta(intervalFrameTypeOne) { switch (intervalFrameTypeOne) { case "1": case "1": return t('hellow.intervalFrameTypeb'); case "5": return t('hellow.intervalFrameTypea'); case "5": return t('hellow.intervalFrameTypea'); default: return ''; } } } function getStatusTypeb(intervalFrameTypeTwo) { switch (intervalFrameTypeTwo) { function getStatusTypeb(intervalFrameTypeTwo) { switch (intervalFrameTypeTwo) { case "1": return 'success'; case "5": return 'warning'; return 'success'; case "5": return 'warning'; default: return 'info'; } } return 'info'; } } function getStatusTextb(intervalFrameTypeTwo) { switch (intervalFrameTypeTwo) { case "1": case "1": return t('hellow.intervalFrameTypeb'); case "5": return t('hellow.intervalFrameTypea'); case "5": return t('hellow.intervalFrameTypea'); default: return ''; } } } function getStatusTypec(intervalFrameTypeThree) { switch (intervalFrameTypeThree) { function getStatusTypec(intervalFrameTypeThree) { switch (intervalFrameTypeThree) { case "1": return 'success'; case "5": return 'warning'; return 'success'; case "5": return 'warning'; default: return 'info'; } } return 'info'; } } function getStatusTextc(intervalFrameTypeThree) { switch (intervalFrameTypeThree) { case "1": case "1": return t('hellow.intervalFrameTypeb'); case "5": return t('hellow.intervalFrameTypea'); case "5": return t('hellow.intervalFrameTypea'); default: return ''; } } } function getStatusTyped(intervalFrameTypeFour) { switch (intervalFrameTypeFour) { function getStatusTyped(intervalFrameTypeFour) { switch (intervalFrameTypeFour) { case "1": return 'success'; case "5": return 'warning'; return 'success'; case "5": return 'warning'; default: return 'info'; } } return 'info'; } } function getStatusTextd(intervalFrameTypeFour) { switch (intervalFrameTypeFour) { case "1": case "1": return t('hellow.intervalFrameTypeb'); case "5": return t('hellow.intervalFrameTypea'); case "5": return t('hellow.intervalFrameTypea'); default: return ''; } } } // 预览 const selectproject = () => { @@ -1355,9 +1353,9 @@ const handleBindRack = (row) => { currentPage2.value = 1; const { flowCardId } = row; currentRow.flowCardId = row.flowCardId; currentRow.flowCardId = row.flowCardId; dialogFormVisibleb.value = true; fetchFlowBind(flowCardId,currentPage2.value); fetchFlowBind(flowCardId, currentPage2.value); }; // 领取任务 const handletake = (row) => { @@ -1374,7 +1372,7 @@ // 创建任务 const fetchFlowCardId = async () => { try { const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{ const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard', { deviceId: 0, filmsId: '', flowCardId: '', @@ -1403,7 +1401,7 @@ } const fetchFlowCardsearch = async () => { try { const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{ const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard', { filmsId: filmsId.value, flowCardId: flowCardId.value, productName: productName.value, @@ -1422,7 +1420,7 @@ // 中空配方 const fetchmulan = async () => { try { var url="/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword="+''; var url = "/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword=" + ''; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); @@ -1466,8 +1464,8 @@ // 中空配方添加 const handleConfirm = async () => { try { if (!validateForm()) return; const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails',{ if (!validateForm()) return; const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails', { formulaName: formulaName.value, filmRemove: filmRemove.value, bottomRemove: bottomRemove.value, @@ -1547,10 +1545,10 @@ [t('hellow.intervalFrameTypea')]: 5, } // 中空配方修改 const handledit = async() => { const handledit = async () => { let id = window.localStorage.getItem('id') try { const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails',{ const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails', { id: id, formulaName: formulaName.value, filmRemove: removalMethodMapa[filmRemove.value], @@ -1573,7 +1571,7 @@ intervalFrameTypeOne: removalintervala[intervalFrameTypeOne.value], intervalFrameTypeTwo: removalintervala[intervalFrameTypeTwo.value], intervalFrameTypeThree: removalintervala[intervalFrameTypeThree.value], intervalFrameTypeFour: removalintervala[intervalFrameTypeFour.value], intervalFrameTypeFour: removalintervala[intervalFrameTypeFour.value], intervalFrameWidthOne: intervalFrameWidthOne.value, intervalFrameWidthTwo: intervalFrameWidthTwo.value, intervalFrameWidthThree: intervalFrameWidthThree.value, @@ -1590,33 +1588,33 @@ } }; // 中空配方删除 const opena = async(row) => { const opena = async (row) => { try { const confirmResult = await ElMessageBox.confirm( t('hellow.hollowformuldet'), t('productStock.prompt'), { confirmButtonText: t('productStock.yes'), const confirmResult = await ElMessageBox.confirm( t('hellow.hollowformuldet'), t('productStock.prompt'), { confirmButtonText: t('productStock.yes'), cancelButtonText: t('productStock.cancel'), type: 'warning', } type: 'warning', } ); if (confirmResult === 'confirm') { var url="/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList="+row.id; const response = await request.post(url) if (response.code === 200) { ElMessage.success(response.message); fetchmulan() } else { } } var url = "/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList=" + row.id; const response = await request.post(url) if (response.code === 200) { ElMessage.success(response.message); fetchmulan() } else { } } } catch (error) { } } }; // 工程号 const selectgong = async () => { try { var url="/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell="+ 930; var url = "/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell=" + 930; const response = await request.post(url) if (response.code == 200) { const processTypes = response.data.map((projectNo, index) => ({ @@ -1632,20 +1630,33 @@ // 预览 const handleup = async () => { if (!selectedProjectNo.value) { ElMessage.error(t('basicData.plselectproject')) ElMessage.error(t('hellow.plselectproject')) return } try { var url="/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell="+ 930 + "&flowCardId=" + selectedProjectNo.value; window.localStorage.setItem('flowCardId', selectedProjectNo.value) const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell=" + 930 + "&flowCardId=" + selectedProjectNo.value; window.localStorage.setItem('flowCardId', selectedProjectNo.value) const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); tableDataa.value = response.data; dialogFormVisiblee.value = false selectedProjectNo.value = '' closeWebSocket(socket); } else { const summary = response.data.reduce((map, item) => { const key = `${item.hollowSequence}`; if (!map[key]) { map[key] = { printQuantity: 1, order_number: item.glassType, processId: item.flowCardId, orderId:item.flowCardId.slice(0, 10) }; } return map; }, {}); listFlow.value = Object.values(summary); } else { } } catch (error) { } @@ -1664,7 +1675,7 @@ }; const fetchFlowBind = async (flowCardId, page) => { try { var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + 1; var url = "/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId=" + flowCardId + "&layer=" + 1; const response = await request.post(url) if (response.code == 200) { tableDatac.value = response.data[page]; @@ -1679,8 +1690,8 @@ try { let flowCardId = window.localStorage.getItem('flowCardId') if (flowCardId !== '') { var url="/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId="+flowCardId + "&cell=" + 930; const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId=" + flowCardId + "&cell=" + 930; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); blinda.value = false; @@ -1700,8 +1711,8 @@ try { let flowCardId = window.localStorage.getItem('flowCardId') if (flowCardId !== '') { var url="/hollowGlass/hollowGlassOutRelationInfo/pauseTask?flowCardId="+flowCardId + "&cell=" + 930; const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/pauseTask?flowCardId=" + flowCardId + "&cell=" + 930; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); blindc.value = false; @@ -1721,8 +1732,8 @@ try { let flowCardId = window.localStorage.getItem('flowCardId') if (flowCardId !== '') { var url="/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId="+flowCardId + "&cell=" + 930; const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId=" + flowCardId + "&cell=" + 930; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); blindd.value = false; @@ -1749,9 +1760,9 @@ } let flowCardId = window.localStorage.getItem('flowCardId') let id = window.localStorage.getItem('id') try { var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+ 930 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value+ "&formulaId=" + id; const response = await request.post(url) try { var url = "/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell=" + 930 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value + "&formulaId=" + id; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); dialogFormVisiblec.value = false; @@ -1759,10 +1770,10 @@ formulaName.value = ''; totalPairQuantity.value = ''; } else { } } catch (error) { } } } catch (error) { } } // 强制出片 const finishb = async () => { let flowCardId = window.localStorage.getItem('flowCardId') @@ -1776,37 +1787,122 @@ return } try { var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+ 930 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value+ "&formulaId=" + id; const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell=" + 930 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value + "&formulaId=" + id; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); dialogFormVisibled.value = false; cella.value = ''; totalPairQuantitya.value = ''; } else { } } catch (error) { } } } catch (error) { } } onBeforeUnmount(() => { closeWebSocket(); }); import requestErp from "@/utils/requestErp"; import { hiprint } from "vue-plugin-hiprint"; import PrintCustomLabelXJ from './PrintCustomLabelTwo.vue' const listFlow = ref([]) let hiprintTemplate = ref() const stateValue = ref('') const stateOptions = [ { value: t('processCard.thisIsTheIndoorSurface'), label: t('processCard.thisIsTheIndoorSurface'), }, { value: t('processCard.thisSideIsOutsideTheRoom'), label: t('processCard.thisSideIsOutsideTheRoom'), }, ] const blinde = ref(false) const labelPrint = ref(false); const handleBinde = (row) => { blinde.value = true; getTags(); hiprint.init(); }; const changeTag = () => { hiprintTemplate.value = new hiprint.PrintTemplate({}); const json = JSON.parse(tag.value.value) hiprintTemplate.value.update(json) } const getTags = async () => { try { const response = await requestErp.get('tagStyle/getTagList') if (response.code == 200) { tags.value = response.data ElMessage.success(response.message); } } catch (error) { } } const printOrder = (type) => { const list = hiprintTemplate.value.getJson() list.panels[0].printElements.forEach(element => { element.options.fontFamily = 'Arial' }) console.log(lastList.value) let object = lastList.value //判断是否为表格 let columnsNum = null if (list.panels[0].printElements[0].options.field === 'table') { object = { table: lastList.value } columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1) } hiprintTemplate.value.print(object) } let lastList = ref([]) const tags = ref([]) const tag = ref({ id: null, name: null, type: 1, tagWidth: null, tagHeight: null, value: null, size: null }) </script> <style scoped> #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} #dta { display:block; float:left;line-height: 20px;margin-left: 80%;} #dt { display: block; float: left; line-height: 20px; margin-left: 100px; } #dta { display: block; float: left; line-height: 20px; margin-left: 80%; } #dialog-footer { text-align: center; margin-top: -15px; } #dotClass { display: flex; margin-left: 20px; margin-left: 20px; size: 50px; margin-top: 20px; margin-bottom: 10px; } ::v-deep(.row-red-background) { background-color: rgb(224.6, 242.8, 215.6) !important; } UI-Project/src/views/hollow/hollowequipmenthree.vue
@@ -23,6 +23,10 @@ $t('hellow.stopproject') }} </el-button> <el-button style="margin-left: 10px;" :disabled="listFlow.length > 0 ? false : true" id="searchButton" type="warning" @click="handleBinde">{{ $t('searchOrder.printlabels') }} </el-button> </div> <div id="dotClass"> @@ -413,6 +417,30 @@ </div> </template> </el-dialog> <!-- 打印标签 --> <el-dialog v-model="blinde" top="30vh" width="25%" :title="$t('searchOrder.printlabels')"> <template #footer> <div id="dialog-footer"> <el-select v-model="tag" filterable clearable :placeholder="$t('hellow.projectMsg2')" @change="changeTag" style="width: 220px" @input="handleInputChange"> <el-option v-for="(tag, index) in tags" :key="index" :label="tag.name" :value="tag" /> </el-select> <el-select v-model="stateValue" filterable clearable :placeholder="$t('screendisplay.pchoice')" style="width: 220px" @input="handleInputChange"> <el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-button type="primary" @click="labelPrint = true"> {{ $t('processCard.printing') }} </el-button> <el-button @click="blinde = false">{{ $t('basicData.cancel') }}</el-button> </div> </template> </el-dialog> <el-dialog v-model="labelPrint" style="width: 80%; " destroy-on-close> <el-button :icon="Printer" circle @click="printOrder(1)">{{ $t('processCard.printing') }}</el-button> <print-custom-label-x-j id="childLabel" :faceOrientation="stateValue" :lableType="1" :list="listFlow" :lastList='lastList' :type="tag.name" style="width: 100%;height: 100%" /> </el-dialog> <!-- 删除任务 --> <el-dialog v-model="blindd" top="30vh" width="25%" :title="$t('hellow.hollowtaskdet')"> <template #footer> @@ -432,7 +460,7 @@ v-model="selectedProjectNo" filterable clearable :placeholder="$t('basicData.plselectproject')" :placeholder="$t('hellow.plselectproject')" style="width: 260px" > <el-option @@ -851,7 +879,7 @@ // 预览 const handleup = async () => { if (!selectedProjectNo.value) { ElMessage.error(t('basicData.plselectproject')) ElMessage.error(t('hellow.plselectproject')) return } try { @@ -864,6 +892,19 @@ dialogFormVisiblee.value = false selectedProjectNo.value = '' closeWebSocket(socket); const summary = response.data.reduce((map, item) => { const key = `${item.hollowSequence}`; if (!map[key]) { map[key] = { printQuantity: 1, order_number: item.glassType, processId: item.flowCardId, orderId:item.flowCardId.slice(0, 10) }; } return map; }, {}); listFlow.value = Object.values(summary); } else { } } catch (error) { @@ -1002,6 +1043,77 @@ onBeforeUnmount(() => { closeWebSocket(); }); import requestErp from "@/utils/requestErp"; import { hiprint } from "vue-plugin-hiprint"; import PrintCustomLabelXJ from './PrintCustomLabelTwo.vue' const listFlow = ref([]) let hiprintTemplate = ref() const stateValue = ref('') const stateOptions = [ { value: t('processCard.thisIsTheIndoorSurface'), label: t('processCard.thisIsTheIndoorSurface'), }, { value: t('processCard.thisSideIsOutsideTheRoom'), label: t('processCard.thisSideIsOutsideTheRoom'), }, ] const blinde = ref(false) const labelPrint = ref(false); const handleBinde = (row) => { blinde.value = true; getTags(); hiprint.init(); }; const changeTag = () => { hiprintTemplate.value = new hiprint.PrintTemplate({}); const json = JSON.parse(tag.value.value) hiprintTemplate.value.update(json) } const getTags = async () => { try { const response = await requestErp.get('tagStyle/getTagList') if (response.code == 200) { tags.value = response.data ElMessage.success(response.message); } } catch (error) { } } const printOrder = (type) => { const list = hiprintTemplate.value.getJson() list.panels[0].printElements.forEach(element => { element.options.fontFamily = 'Arial' }) console.log(lastList.value) let object = lastList.value //判断是否为表格 let columnsNum = null if (list.panels[0].printElements[0].options.field === 'table') { object = { table: lastList.value } columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1) } hiprintTemplate.value.print(object) } let lastList = ref([]) const tags = ref([]) const tag = ref({ id: null, name: null, type: 1, tagWidth: null, tagHeight: null, value: null, size: null }) </script> <style scoped> #dt { display:block; float:left;line-height: 20px;margin-left: 100px;} UI-Project/src/views/hollow/hollowequipmenttwo.vue
@@ -1,6 +1,6 @@ <template> <div style="height: 600px;"> <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;" > <el-card style="flex: 1;margin-left: 10px;margin-top: 10px;"> <div style="display: flex; flex-direction: row; align-items: center; margin-bottom: 10px;"> <el-button id="searchButton" type="primary" @click="handleormulan"> {{ $t('hellow.hollowformula') }} @@ -11,42 +11,48 @@ <el-button type="primary" @click="selectproject"> {{ $t('hellow.reviewproject') }} </el-button> <el-button style="margin-left: 10px;" id="searchButton" type="primary" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button> <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda"> <el-button style="margin-left: 10px;" id="searchButton" type="primary" @click="handlehistorical">{{ $t('searchOrder.historicaltasks') }}</el-button> <el-button style="margin-left: 10px;" id="searchButton" type="success" @click="handleBinda"> {{ $t('hellow.starttask') }} </el-button> <el-button style="margin-left: 10px;" id="searchButton" type="info" @click="handleBindd">{{ $t('hellow.taskdet') }} $t('hellow.taskdet') }} </el-button> <el-button style="margin-left: 10px;" id="searchButton" type="warning" @click="handleBindc">{{ $t('hellow.stopproject') }} $t('hellow.stopproject') }} </el-button> </div> <div id="dotClass"> <div style="margin-left: 70px;">{{ $t('hellow.freetwo') }}</div> <i :style="{ marginTop: '2px', backgroundColor: freetwo, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> </div> <el-button style="margin-left: 10px;" :disabled="listFlow.length > 0 ? false : true" id="searchButton" type="warning" @click="handleBinde">{{ $t('searchOrder.printlabels') }} </el-button> </div> <div id="dotClass"> <div style="margin-left: 70px;">{{ $t('hellow.freetwo') }}</div> <i :style="{ marginTop: '2px', backgroundColor: freetwo, width: '18px', height: '18px', borderRadius: '50%', display: 'block' }"></i> </div> <div style="width: 98%; height: calc(100% - 35px); overflow-y: auto;"> <el-table height="650" ref="table" :data="tableDataa" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"> <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center"/> <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center"/> <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center"/> <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center"/> <el-table-column prop="layer" :label="$t('hellow.layer')" align="center"/> <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center"/> <el-table-column prop="height" :label="$t('hellow.height')" align="center"/> <el-table-column prop="width" :label="$t('hellow.width')" align="center"/> :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }"> <el-table-column prop="flowCardId" :label="$t('hellow.flowCardId')" align="center" /> <el-table-column prop="glassId" :label="$t('searchOrder.glassID')" align="center" /> <el-table-column prop="hollowSequence" :label="$t('hellow.order')" align="center" /> <el-table-column prop="thickness" :label="$t('hellow.thickness')" align="center" /> <el-table-column prop="layer" :label="$t('hellow.layer')" align="center" /> <el-table-column prop="filmsId" :label="$t('hellow.coatingtypes')" align="center" /> <el-table-column prop="height" :label="$t('hellow.height')" align="center" /> <el-table-column prop="width" :label="$t('hellow.width')" align="center" /> <el-table-column prop="state" :label="$t('hellow.state')" align="center"> <template #default="scope"> {{ scope.row.state == -1 ? "等待出片" : "出片完成" }} </template> </el-table-column> </el-table> <!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;"> <!-- <div style="display: flex;margin-left: 40%;margin-top: 10px;"> <div style="margin-top: 5px;margin-right: 5px;">{{ $t('hellow.line') }}</div> <el-pagination background @@ -57,126 +63,135 @@ @current-change="handlePageChange1" /> </div> --> </div> </div> </el-card> </div> <!-- 创建任务 --> <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%"> <div style="display: flex;"> <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" /> <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')"/> <el-input v-model="productName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('large.inproductname')"/> <el-input v-model="customerName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('large.incustomerName')"/> <el-input v-model="thickness" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.inthickness')"/> <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch"> {{$t('reportmanage.inquire')}}</el-button> </div> <div style="margin-left: 87%;">{{$t('hellow.pairsnumbertotal')}}{{ pairTotal }}</div> <el-table ref="table" style="margin-top: 20px; height: 700px;" :data="tableDatab" :row-class-name="tableRowClassName" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" row-key="projectNumber" > <!-- <el-table-column type="expand"> --> <el-table-column> <template #default="props"> <el-table :data="props.row.flowCardGlassInfoDTOList" style="width: 100%" :row-class-name="(row) => nestedTableRowClassName(props.row, row)" > <el-table-column prop="layer" fixed align="center" :label="$t('hellow.layernumber')" min-width="80"/> <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/> <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/> <el-table-column prop="sumCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="80"/> <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80"/> <el-table-column prop="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80"/> </el-table> </template> </el-table-column> <el-table-column prop="flowCardId" fixed align="center" :label="$t('hellow.cardnumber')" min-width="20"/> <el-table-column prop="productName" fixed align="center" :label="$t('large.productname')" min-width="20"/> <el-table-column prop="customerName" fixed align="center" :label="$t('large.customerName')" min-width="20"/> <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="270"> <el-input v-model="flowCardId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.incardnumber')" /> <el-input v-model="filmsId" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('film.infilms')" /> <el-input v-model="productName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('large.inproductname')" /> <el-input v-model="customerName" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('large.incustomerName')" /> <el-input v-model="thickness" style="margin-left: 10px;margin-bottom: 10px;width: 240px;" :placeholder="$t('searchOrder.inthickness')" /> <el-button type="primary" style="margin-left: 10px;margin-bottom: 10px;" @click="fetchFlowCardsearch"> {{ $t('reportmanage.inquire') }}</el-button> </div> <div style="margin-left: 87%;">{{ $t('hellow.pairsnumbertotal') }}{{ pairTotal }}</div> <el-table ref="table" style="margin-top: 20px; height: 700px;" :data="tableDatab" :row-class-name="tableRowClassName" :header-cell-style="{ background: '#F2F3F5', color: '#1D2129' }" row-key="projectNumber"> <!-- <el-table-column type="expand"> --> <el-table-column> <template #default="props"> <el-table :data="props.row.flowCardGlassInfoDTOList" style="width: 100%" :row-class-name="(row) => nestedTableRowClassName(props.row, row)"> <el-table-column prop="layer" fixed align="center" :label="$t('hellow.layernumber')" min-width="80" /> <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" /> <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" /> <el-table-column prop="sumCount" align="center" :label="$t('hellow.totalnumber')" min-width="80" /> <el-table-column prop="realCount" align="center" :label="$t('hellow.realpieces')" min-width="80" /> <el-table-column prop="damageCount" align="center" :label="$t('hellow.damagenumber')" min-width="80" /> <el-table-column prop="pairCount" align="center" :label="$t('hellow.pairsnumber')" min-width="80" /> </el-table> </template> </el-table-column> <el-table-column prop="flowCardId" fixed align="center" :label="$t('hellow.cardnumber')" min-width="20" /> <el-table-column prop="productName" fixed align="center" :label="$t('large.productname')" min-width="20" /> <el-table-column prop="customerName" fixed align="center" :label="$t('large.customerName')" min-width="20" /> <el-table-column fixed="right" :label="$t('hellow.operate')" align="center" width="270"> <template #default="scope"> <el-button type="text" :disabled="scope.row.isThroughSlot" plain @click="handletake(scope.row)">{{ $t('hellow.claimquest') }}</el-button> <el-button type="text" :disabled="scope.row.isThroughSlot" plain @click="handletake(scope.row)">{{ $t('hellow.claimquest') }}</el-button> <el-button type="text" plain @click="handleBindRack(scope.row)">{{ $t('hellow.missingfilms') }} $t('hellow.missingfilms') }} </el-button> <el-button type="text" plain @click="handleout(scope.row)">{{ $t('hellow.forcedfilming') }} $t('hellow.forcedfilming') }} </el-button> </template> </el-table-column> </el-table> </el-dialog> <!-- 中空配方添加 --> <el-dialog v-model="add" top="23vh" width="55%" :title="$t('hellow.hollowformula')" > </el-table> </el-dialog> <!-- 中空配方添加 --> <el-dialog v-model="add" top="23vh" width="55%" :title="$t('hellow.hollowformula')"> <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;"> <el-form label-width="200px"> <el-form label-width="200px" label-position="right"> <el-row style="margin-top: 10px;"> <el-col :span="6"> <el-form label-width="200px"> <el-form label-width="200px" label-position="right"> <el-row style="margin-top: 10px;"> <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" 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('Mounting.removalmethoda')" :required="true" style="width: 20vw;"> <el-select v-model="filmRemove" clearable style="width: 270px" :placeholder="$t('Mounting.removalmethod')"> <el-option :label="$t('Mounting.removal')" value="1"></el-option> <el-option :label="$t('Mounting.noremoval')" value="0"></el-option> </el-select> </el-form-item> </div> <div> <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" /> </el-form-item> </div> </div> </el-col> </el-row> <el-row style="margin-top: 30px;"> <el-col :span="6"> </el-col> <el-col :span="9"> <div id="dta" style="font-size: 15px;"> <div> <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 20vw;"> <el-select v-model="filmRemove" clearable style="width: 270px" :placeholder="$t('Mounting.removalmethod')"> <el-option :label="$t('Mounting.removal')" value="1"></el-option> <el-option :label="$t('Mounting.noremoval')" value="0"></el-option> </el-select> </el-form-item> </div> </div> </el-col> </el-row> <el-row style="margin-top: 30px;"> <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" 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('hellow.topRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" /> </el-form-item> </div></div> </el-col> </el-row> <el-row style="margin-top: 30px;"> <el-col :span="6"> <div> <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" 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('hellow.topRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" /> </el-form-item> </div> </div> </el-col> </el-row> <el-row style="margin-top: 30px;"> <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" 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('hellow.rightRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" /> </el-form-item> </div></div> </el-col> </el-row> <div> <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" 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('hellow.rightRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" /> </el-form-item> </div> </div> </el-col> </el-row> </el-form> </el-form> </div> </el-form> </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="handleConfirm"> @@ -186,69 +201,78 @@ </div> </template> </el-dialog> <!-- 中空配方修改 --> <el-dialog v-model="adda" top="23vh" width="55%" :title="$t('hellow.edithollowformula')" > <!-- 中空配方修改 --> <el-dialog v-model="adda" top="23vh" width="55%" :title="$t('hellow.edithollowformula')"> <div style="margin-left: 50px;margin-top: 10px;margin-bottom: 10px;"> <el-form label-width="200px"> <el-form label-width="200px" label-position="right"> <el-row style="margin-top: 10px;"> <el-col :span="6"> <el-form label-width="200px"> <el-form label-width="200px" label-position="right"> <el-row style="margin-top: 10px;"> <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" 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('Mounting.removalmethoda')" :required="true" style="width: 20vw;"> <el-select v-model="filmRemove" clearable style="width: 270px" :placeholder="$t('Mounting.removalmethod')"> <el-option :label="$t('Mounting.removal')" value="1"></el-option> <el-option :label="$t('Mounting.noremoval')" value="0"></el-option> </el-select> </el-form-item> </div> <div> <el-form-item :label="$t('hellow.formulaName')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.formulaNamea')" v-model="formulaName" autocomplete="off" /> </el-form-item> </div> </div> </el-col> </el-row> <el-row style="margin-top: 30px;"> <el-col :span="6"> </el-col> <el-col :span="9"> <div id="dta" style="font-size: 15px;"> <div> <el-form-item :label="$t('Mounting.removalmethoda')" :required="true" style="width: 20vw;"> <el-select v-model="filmRemove" clearable style="width: 270px" :placeholder="$t('Mounting.removalmethod')"> <el-option :label="$t('Mounting.removal')" value="1"></el-option> <el-option :label="$t('Mounting.noremoval')" value="0"></el-option> </el-select> </el-form-item> </div> </div> </el-col> </el-row> <el-row style="margin-top: 30px;"> <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" 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('hellow.topRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" /> </el-form-item> </div></div> </el-col> </el-row> <el-row style="margin-top: 30px;"> <el-col :span="6"> <div> <el-form-item :label="$t('hellow.bottomRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.bottomRemovea')" v-model="bottomRemove" 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('hellow.topRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.topRemovea')" v-model="topRemove" autocomplete="off" /> </el-form-item> </div> </div> </el-col> </el-row> <el-row style="margin-top: 30px;"> <el-col :span="6"> <div id="dt" style="font-size: 15px;"> <div> <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" 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('hellow.rightRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" /> </el-form-item> </div></div> </el-col> </el-row> <div> <el-form-item :label="$t('hellow.leftRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.leftRemovea')" v-model="leftRemove" 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('hellow.rightRemove')" :required="true" style="width: 20vw;"> <el-input :placeholder="$t('hellow.rightRemovea')" v-model="rightRemove" autocomplete="off" /> </el-form-item> </div> </div> </el-col> </el-row> </el-form> </el-form> </div> </el-form> </div> <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="handledit"> @@ -267,36 +291,17 @@ <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantity" autocomplete="off" /> </el-form-item> <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;"> <el-select :placeholder="$t('hellow.line2')" disabled style="width: 270px" v-model="cell"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-select :placeholder="$t('hellow.line2')" disabled style="width: 270px" v-model="cell"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-form-item> <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;"> <el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')" style="width: 270px" @change="handleFormulaChange" > <el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName" :value="item.formulaName" /> </el-select> </el-form-item> <el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')" style="width: 270px" @change="handleFormulaChange"> <el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName" :value="item.formulaName" /> </el-select> </el-form-item> </el-form> </el-form> </div> @@ -318,36 +323,17 @@ <el-input :placeholder="$t('hellow.cpairQuantity')" v-model="totalPairQuantitya" autocomplete="off" /> </el-form-item> <el-form-item :label="$t('hellow.route')" :required="true" style="width: 25vw;"> <el-select :placeholder="$t('hellow.line2')" disabled style="width: 270px" v-model="cella"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-select :placeholder="$t('hellow.line2')" disabled style="width: 270px" v-model="cella"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-form-item> <el-form-item :label="$t('hellow.hollowformulp')" :required="true" style="width: 25vw;"> <el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')" style="width: 270px" @change="handleFormulaChange" > <el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName" :value="item.formulaName" /> </el-select> </el-form-item> <el-select v-model="selectedFormulaName" filterable clearable :placeholder="$t('hellow.phollowformula')" style="width: 270px" @change="handleFormulaChange"> <el-option v-for="item in titleformulaName" :key="item.id" :label="item.formulaName" :value="item.formulaName" /> </el-select> </el-form-item> </el-form> </el-form> </div> @@ -367,29 +353,23 @@ {{ currentRow.flowCardId }} </el-form-item> </div> <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatac" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80"/> <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80"/> <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80"/> <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80"/> <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatac" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> <el-table-column prop="thickness" align="center" :label="$t('hellow.thickness')" min-width="80" /> <el-table-column prop="filmsId" align="center" :label="$t('hellow.coatingtypes')" min-width="80" /> <el-table-column prop="height" align="center" :label="$t('hellow.height')" min-width="80" /> <el-table-column prop="width" align="center" :label="$t('hellow.width')" min-width="80" /> <!-- <el-table-column prop="totalCount" align="center" :label="$t('hellow.totalnumber')" min-width="80"/> --> <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80"/> <el-table-column prop="lackCount" align="center" :label="$t('hellow.missingnumber')" min-width="80" /> <!-- <el-table-column prop="damageCount" align="center" :label="$t('hellow.brokenpieces')" min-width="80"/> --> <div style="float: right;margin-bottom: 5px;"> <el-pagination layout="prev, pager, next" :total="50"/> <el-pagination layout="prev, pager, next" :total="50" /> </div> </el-table> <div style="display: flex;margin-left: 40%;margin-top: 10px;"> <el-pagination background size="large" layout="prev, pager, next" :total="30" :current-page.sync="currentPage2" @current-change="handlePageChange2" /> </div> <el-pagination background size="large" layout="prev, pager, next" :total="30" :current-page.sync="currentPage2" @current-change="handlePageChange2" /> </div> </el-dialog> <!-- 开始任务 --> <el-dialog v-model="blinda" top="30vh" width="25%" :title="$t('hellow.pstarttask')"> @@ -407,11 +387,35 @@ <template #footer> <div id="dialog-footer"> <el-button type="primary" @click="handlec"> {{ $t('basicData.confirm') }} {{ $t('basicData.confirm') }}e </el-button> <el-button @click="blindc = false">{{ $t('basicData.cancel') }}</el-button> </div> </template> </el-dialog> <!-- 打印标签 --> <el-dialog v-model="blinde" top="30vh" width="25%" :title="$t('searchOrder.printlabels')"> <template #footer> <div id="dialog-footer"> <el-select v-model="tag" filterable clearable :placeholder="$t('hellow.projectMsg2')" @change="changeTag" style="width: 220px" @input="handleInputChange"> <el-option v-for="(tag, index) in tags" :key="index" :label="tag.name" :value="tag" /> </el-select> <el-select v-model="stateValue" filterable clearable :placeholder="$t('screendisplay.pchoice')" style="width: 220px" @input="handleInputChange"> <el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value" /> </el-select> <el-button type="primary" @click="labelPrint = true"> {{ $t('processCard.printing') }} </el-button> <el-button @click="blinde = false">{{ $t('basicData.cancel') }}</el-button> </div> </template> </el-dialog> <el-dialog v-model="labelPrint" style="width: 80%; " destroy-on-close> <el-button :icon="Printer" circle @click="printOrder(1)">{{ $t('processCard.printing') }}</el-button> <print-custom-label-x-j id="childLabel" :faceOrientation="stateValue" :lableType="1" :list="listFlow" :lastList='lastList' :type="tag.name" style="width: 100%;height: 100%" /> </el-dialog> <!-- 删除任务 --> <el-dialog v-model="blindd" top="30vh" width="25%" :title="$t('hellow.hollowtaskdet')"> @@ -425,22 +429,13 @@ </template> </el-dialog> <!-- 预览 --> <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')" > <el-dialog v-model="dialogFormVisiblee" top="24vh" width="25%" :title="$t('hellow.reviewproject')"> <div style="margin-left: 50px;margin-bottom: 10px;"> <el-form-item :label="$t('basicData.projectnumber')" :required="true"> <el-select v-model="selectedProjectNo" filterable clearable :placeholder="$t('basicData.plselectproject')" style="width: 260px" > <el-option v-for="item in titleSelectJson.processType" :key="item.value" :label="item.value" :value="item.value" /> <el-select v-model="selectedProjectNo" filterable clearable :placeholder="$t('hellow.plselectproject')" style="width: 260px"> <el-option v-for="item in titleSelectJson.processType" :key="item.value" :label="item.value" :value="item.value" /> </el-select> </el-form-item> </div> @@ -455,60 +450,58 @@ </el-dialog> <!-- 中空配方 --> <el-dialog v-model="mulan" top="15vh" width="70%" :title="$t('hellow.hollowformula')"> <el-button id="searchButton" type="primary" @click="openAddDialog"> {{ $t('basicData.add') }} </el-button> <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatax" :header-cell-style="{background:'#F2F3F5 ',color:'#1D2129'}"> <el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')"/> <el-table-column prop="filmRemove" align="center" :label="$t('Mounting.removalmethodp')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOnea(scope.row.filmRemove)"> {{ getStatuscasOnea(scope.row.filmRemove) }} </el-tag> </template> </el-table-column> <el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')"> </el-table-column> <el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')"> </el-table-column> <el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')"> </el-table-column> <el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')"> </el-table-column> <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270"> <template #default="scope"> <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button> <el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button> </template> </el-table-column> </el-table> <template #footer> <el-button id="searchButton" type="primary" @click="openAddDialog"> {{ $t('basicData.add') }} </el-button> <el-table ref="table" style="margin-top: 20px;height: 400px;" :data="tableDatax" :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129' }"> <el-table-column prop="formulaName" fixed align="center" :label="$t('hellow.formulaNamep')" /> <el-table-column prop="filmRemove" align="center" :label="$t('Mounting.removalmethodp')" min-width="110"> <template #default="scope"> <el-tag :type="getcasOnea(scope.row.filmRemove)"> {{ getStatuscasOnea(scope.row.filmRemove) }} </el-tag> </template> </el-table-column> <el-table-column prop="topRemove" align="center" :label="$t('hellow.topRemovep')"> </el-table-column> <el-table-column prop="bottomRemove" align="center" :label="$t('hellow.bottomRemovep')"> </el-table-column> <el-table-column prop="leftRemove" align="center" :label="$t('hellow.leftRemovep')"> </el-table-column> <el-table-column prop="rightRemove" align="center" :label="$t('hellow.rightRemovep')"> </el-table-column> <el-table-column fixed="right" :label="$t('productStock.operate')" align="center" width="270"> <template #default="scope"> <el-button type="text" plain @click="handleEdit(scope.row)">{{ $t('productStock.exit') }}</el-button> <el-button type="text" plain @click="opena(scope.row)">{{ $t('productStock.delete') }}</el-button> </template> </el-table-column> </el-table> <template #footer> <div id="dialog-footer"> <el-button @click="mulan = false">{{ $t('large.close') }}</el-button> </div> </template> </el-dialog> <!-- 历史任务 --> <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl=''"> <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" frameborder="0" ></iframe> </el-dialog> <!-- 历史任务 --> <el-dialog v-model="blindb" top="5vh" width="95%" @close="iframeUrl = ''"> <iframe :src="iframeUrl" marginwidth="2000px" marginheight="2000px" width="100%" height="750px" frameborder="0"></iframe> </el-dialog> </template> <script setup> import { CircleCheck, Download, Printer } from "@element-plus/icons-vue/global"; import { ElMessage, ElMessageBox } from 'element-plus' import {onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed} from "vue"; import { onBeforeUnmount, onMounted, onUnmounted, ref, reactive, watch, computed } from "vue"; import request from "@/utils/request" import {host, WebSocketHost} from '@/utils/constants' import {closeWebSocket, initializeWebSocket} from '@/utils/WebSocketService'; import {useI18n} from 'vue-i18n' const {t} = useI18n() import requestErp from "@/utils/requestErp" import { host, WebSocketHost } from '@/utils/constants' import { closeWebSocket, initializeWebSocket } from '@/utils/WebSocketService' import PrintCustomLabelXJ from './PrintCustomLabelTwo.vue' import { useI18n } from 'vue-i18n' const { t } = useI18n() const blinda = ref(false) const blindb = ref(false) const blindc = ref(false) const blindd = ref(false) const mulan = ref(false) const tableDataa = ref([]) const tableDatab = ref([]) @@ -545,7 +538,7 @@ const selectedFormulaName = ref(''); let selectedFormulaId = ref(null); const formulaNameid = ref({ id: null }); const titleformulaName = ref({ formulaName: [] ,formulaId: []}); const titleformulaName = ref({ formulaName: [], formulaId: [] }); const titleSelectJson = ref({ processType: [] }); const iframeUrl = ref(''); const handlehistorical = (row) => { @@ -562,6 +555,30 @@ label: t('hellow.line2'), } ] const stateValue = ref('') const stateOptions = [ { value: t('processCard.thisIsTheIndoorSurface'), label: t('processCard.thisIsTheIndoorSurface'), }, { value: t('processCard.thisSideIsOutsideTheRoom'), label: t('processCard.thisSideIsOutsideTheRoom'), }, ] const labelPrint = ref(false); const listFlow = ref([]) // let labelRow = ref({ // list: null,//勾选的数据 // faceOrientation: null,//内外面 // type: null,//标签模板 // lableType: null,//标签类型 // dataType: null, // landingSequence: null // }) let socket = null; const socketUrl = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/HollowGlassTwo`; const currentPage = ref(parseInt(window.localStorage.getItem('currentPage')) || 1); @@ -584,7 +601,7 @@ const currentPageData = allPageData[currentPageKeyValue]; if (data.freeRequest != null) { freetwo.value = data.freeRequest[0] == true ? 'green' : '#911005'; } } // if (currentPageData && Array.isArray(currentPageData) && currentPageData.length > 0) { // tableDataa.value = currentPageData[0]; // } else { @@ -602,25 +619,25 @@ closeWebSocket(socket); } }); function getcasOnea(filmRemove) { switch (filmRemove) { function getcasOnea(filmRemove) { switch (filmRemove) { case 1: return 'success'; case 0: return 'warning'; return 'success'; case 0: return 'warning'; default: return 'info'; } } return 'info'; } } function getStatuscasOnea(filmRemove) { switch (filmRemove) { case 1: case 1: return t('Mounting.removal'); case 0: return t('Mounting.noremoval'); case 0: return t('Mounting.noremoval'); default: return ''; } } } // 开始任务 const handleBinda = (row) => { @@ -634,28 +651,33 @@ const handleBindd = (row) => { blindd.value = true; }; const handleBinde = (row) => { blinde.value = true; getTags(); hiprint.init(); }; const removalMethodMap = { 1: t('Mounting.removal'), 0: t('Mounting.noremoval') }; // 处理编辑按钮点击 function handleEdit(row) { formulaName.value = row.formulaName; filmRemove.value = removalMethodMap[row.filmRemove]; bottomRemove.value = row.bottomRemove; leftRemove.value = row.leftRemove; rightRemove.value = row.rightRemove; topRemove.value = row.topRemove; adda.value = true; } function openAddDialog() { formulaName.value = ''; filmRemove.value = ''; bottomRemove.value = ''; leftRemove.value = ''; rightRemove.value = ''; topRemove.value = ''; add.value = true; function handleEdit(row) { formulaName.value = row.formulaName; filmRemove.value = removalMethodMap[row.filmRemove]; bottomRemove.value = row.bottomRemove; leftRemove.value = row.leftRemove; rightRemove.value = row.rightRemove; topRemove.value = row.topRemove; adda.value = true; } function openAddDialog() { formulaName.value = ''; filmRemove.value = ''; bottomRemove.value = ''; leftRemove.value = ''; rightRemove.value = ''; topRemove.value = ''; add.value = true; } const handlezhiban = () => { dialogFormVisiblea.value = true; @@ -674,9 +696,9 @@ const handleBindRack = (row) => { currentPage2.value = 1; const { flowCardId } = row; currentRow.flowCardId = row.flowCardId; currentRow.flowCardId = row.flowCardId; dialogFormVisibleb.value = true; fetchFlowBind(flowCardId,currentPage2.value); fetchFlowBind(flowCardId, currentPage2.value); }; // 领取任务 const handletake = (row) => { @@ -693,7 +715,7 @@ // 创建任务 const fetchFlowCardId = async () => { try { const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{ const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard', { deviceId: 0, filmsId: '', flowCardId: '', @@ -722,7 +744,7 @@ } const fetchFlowCardsearch = async () => { try { const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard',{ const response = await request.post('/hollowGlass/hollowGlassRelationInfo/queryHollowAllFlowCard', { filmsId: filmsId.value, flowCardId: flowCardId.value, thickness: thickness.value @@ -739,7 +761,7 @@ // 中空配方 const fetchmulan = async () => { try { var url="/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword="+''; var url = "/hollowGlass/hollowFormulaDetails/listFormulaDetails?keyword=" + ''; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); @@ -786,7 +808,7 @@ return } try { const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails',{ const response = await request.post('/hollowGlass/hollowFormulaDetails/saveFormulaDetails', { formulaName: formulaName.value, filmRemove: filmRemove.value, bottomRemove: bottomRemove.value, @@ -841,7 +863,7 @@ return } try { const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails',{ const response = await request.post('/hollowGlass/hollowFormulaDetails/updateFormulaDetails', { formulaName: formulaName.value, filmRemove: removalMethodMapa[filmRemove.value], bottomRemove: bottomRemove.value, @@ -859,33 +881,33 @@ } }; // 中空配方删除 const opena = async(row) => { const opena = async (row) => { try { const confirmResult = await ElMessageBox.confirm( t('hellow.hollowformuldet'), t('productStock.prompt'), { confirmButtonText: t('productStock.yes'), const confirmResult = await ElMessageBox.confirm( t('hellow.hollowformuldet'), t('productStock.prompt'), { confirmButtonText: t('productStock.yes'), cancelButtonText: t('productStock.cancel'), type: 'warning', } type: 'warning', } ); if (confirmResult === 'confirm') { var url="/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList="+row.id; const response = await request.post(url) if (response.code === 200) { ElMessage.success(response.message); fetchmulan() } else { } } var url = "/hollowGlass/hollowFormulaDetails/deleteFormulaDetails?idList=" + row.id; const response = await request.post(url) if (response.code === 200) { ElMessage.success(response.message); fetchmulan() } else { } } } catch (error) { } } }; // 工程号 const selectgong = async () => { try { var url="/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell="+ 931; var url = "/hollowGlass/hollowGlassOutRelationInfo/hollowTaskList?cell=" + 931; const response = await request.post(url) if (response.code == 200) { const processTypes = response.data.map((projectNo, index) => ({ @@ -901,20 +923,35 @@ // 预览 const handleup = async () => { if (!selectedProjectNo.value) { ElMessage.error(t('basicData.plselectproject')) ElMessage.error(t('hellow.plselectproject')) return } try { var url="/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell="+ 931 + "&flowCardId=" + selectedProjectNo.value; window.localStorage.setItem('flowCardId', selectedProjectNo.value) const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/appointHollowTaskDetails?cell=" + 931 + "&flowCardId=" + selectedProjectNo.value; window.localStorage.setItem('flowCardId', selectedProjectNo.value) const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); tableDataa.value = response.data; dialogFormVisiblee.value = false selectedProjectNo.value = '' closeWebSocket(socket); } else { const summary = response.data.reduce((map, item) => { const key = `${item.hollowSequence}`; if (!map[key]) { map[key] = { printQuantity: 1, order_number: item.glassType, processId: item.flowCardId, orderId:item.flowCardId.slice(0, 10) }; } return map; }, {}); listFlow.value = Object.values(summary); } else { } } catch (error) { } @@ -933,7 +970,7 @@ }; const fetchFlowBind = async (flowCardId, page) => { try { var url="/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId="+flowCardId + "&layer=" + 1; var url = "/hollowGlass/hollowGlassRelationInfo/queryLackByFlowCard?flowCardId=" + flowCardId + "&layer=" + 1; const response = await request.post(url) if (response.code == 200) { tableDatac.value = response.data[page]; @@ -948,8 +985,8 @@ try { let flowCardId = window.localStorage.getItem('flowCardId') if (flowCardId !== '') { var url="/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId="+flowCardId + "&cell=" + 931; const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/startTask?flowCardId=" + flowCardId + "&cell=" + 931; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); blinda.value = false; @@ -969,8 +1006,8 @@ try { let flowCardId = window.localStorage.getItem('flowCardId') if (flowCardId !== '') { var url="/hollowGlass/hollowGlassOutRelationInfo/pauseTask?flowCardId="+flowCardId + "&cell=" + 931; const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/pauseTask?flowCardId=" + flowCardId + "&cell=" + 931; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); blindc.value = false; @@ -990,8 +1027,8 @@ try { let flowCardId = window.localStorage.getItem('flowCardId') if (flowCardId !== '') { var url="/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId="+flowCardId + "&cell=" + 931; const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/deleteHollowTaskDetails?flowCardId=" + flowCardId + "&cell=" + 931; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); blindd.value = false; @@ -1018,9 +1055,9 @@ ElMessage.error(t('hellow.phollowformula')) return } try { var url="/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell="+ 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value+ "&formulaId=" + id; const response = await request.post(url) try { var url = "/hollowGlass/hollowGlassOutRelationInfo/receiveTask?cell=" + 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantity.value + "&formulaId=" + id; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); dialogFormVisiblec.value = false; @@ -1028,10 +1065,10 @@ formulaName.value = ''; totalPairQuantity.value = ''; } else { } } catch (error) { } } } catch (error) { } } // 强制出片 const finishb = async () => { let flowCardId = window.localStorage.getItem('flowCardId') @@ -1045,37 +1082,103 @@ return } try { var url="/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell="+ 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value+ "&formulaId=" + id; const response = await request.post(url) var url = "/hollowGlass/hollowGlassOutRelationInfo/forceOutGlass?cell=" + 931 + "&flowCardId=" + flowCardId + "&totalPairQuantity=" + totalPairQuantitya.value + "&formulaId=" + id; const response = await request.post(url) if (response.code == 200) { ElMessage.success(response.message); dialogFormVisibled.value = false; cella.value = ''; totalPairQuantitya.value = ''; } else { } } catch (error) { } } } catch (error) { } } onBeforeUnmount(() => { closeWebSocket(); }); import { hiprint } from "vue-plugin-hiprint"; let hiprintTemplate = ref() const blinde = ref(false) const changeTag = () => { hiprintTemplate.value = new hiprint.PrintTemplate({}); const json = JSON.parse(tag.value.value) hiprintTemplate.value.update(json) } const getTags = async () => { try { const response = await requestErp.get('tagStyle/getTagList') if (response.code == 200) { tags.value = response.data ElMessage.success(response.message); } } catch (error) { } } const printOrder = (type) => { const list = hiprintTemplate.value.getJson() list.panels[0].printElements.forEach(element => { element.options.fontFamily = 'Arial' }) console.log(lastList.value) let object = lastList.value //判断是否为表格 let columnsNum = null if (list.panels[0].printElements[0].options.field === 'table') { object = { table: lastList.value } columnsNum = (list.panels[0].printElements[0].options.gridColumns || 1) } hiprintTemplate.value.print(object) } let lastList = ref([]) const tags = ref([]) const tag = ref({ id: null, name: null, type: 1, tagWidth: null, tagHeight: null, value: null, size: null }) </script> <style scoped> #dt { display:block; float:left;line-height: 20px;margin-left: 10px;} #dta { display:block; float:left;line-height: 20px;margin-left: 70%;} #dt { display: block; float: left; line-height: 20px; margin-left: 10px; } #dta { display: block; float: left; line-height: 20px; margin-left: 70%; } #dialog-footer { text-align: center; margin-top: -5px; } #dotClass { display: flex; margin-left: 20px; margin-left: 20px; size: 50px; margin-top: 20px; margin-bottom: 10px; } ::v-deep(.row-red-background) { background-color: rgb(224.6, 242.8, 215.6) !important; } UI-Project/src/views/largescreendisplay/screendisplay.vue
@@ -30,7 +30,7 @@ const debouncedUpdate = debounce((data, handler) => { handler(data); }, 300); const handleMessage = (data) => { let handleMessage = (data) => { debouncedUpdate(data, (cleanData) => { rawGlassStorageDetailList.value = cleanData.rawGlassStorageDetailList[0]; orderDTOS.value = cleanData.orderDTOS[0]; @@ -62,7 +62,7 @@ let myChartTemp = null; let myChartHollow = null; const socketUrl1 = `ws://${WebSocketHost}:${host}/api/cacheGlass/api/talk/largenScreen`; const handleMessage1 = (data) => { let handleMessage1 = (data) => { edgOneTasks.value = data.edgOneCount[0]; edgTwoTasks.value = data.edgOneCount[0]; engineeringOne.value = data.engineeringOne[0]; @@ -83,7 +83,7 @@ const temperingGlassInfoList = ref([]) const temperingGlassInfoInList = ref([]) const socketUrl2 = `ws://${WebSocketHost}:${host}/api/temperingGlass/api/talk/largenScreen`; const handleMessage2 = (data) => { let handleMessage2 = (data) => { temperingTaskType.value = data.temperingTaskType[0]; temperingGlassInfoList.value = data.temperingGlassInfoList[0]; if (numBoxes3.value != temperingTaskType.value) { @@ -106,7 +106,7 @@ let socket3 = null; const bigStorageCageUsage = ref([]) const socketUrl3 = `ws://${WebSocketHost}:${host}/api/cacheVerticalGlass/api/talk/largenScreen`; const handleMessage3 = (data) => { let handleMessage3 = (data) => { bigStorageCageUsage.value = data.bigStorageCageUsage[0]; timeAxisCreate(t('large.temperingState'), chartTemp.value, myChartTemp, tableDataTime(false, data.tempRunTimes[0])); }; @@ -292,7 +292,7 @@ let socket4 = null; const hollowBigStorageCageUsage = ref([]) const socketUrl4 = `ws://${WebSocketHost}:${host}/api/hollowGlass/api/talk/largenScreen`; const handleMessage4 = (data) => { let handleMessage4 = (data) => { hollowBigStorageCageUsage.value = data.hollowBigStorageCageUsage[0]; timeAxisCreate(t('large.hollowState'), chartHollow.value, myChartHollow, tableDataTime(false, data.hollowRunTimes[0])); }; @@ -466,7 +466,7 @@ }; myChart2.setOption(option2, true); } const handleMessage5 = (data) => { let handleMessage5 = (data) => { productionVO.value = data.productionVO[0]; createchart(productionVO); };