| | |
| | | "name": "vue-project", |
| | | "version": "0.0.0", |
| | | "dependencies": { |
| | | "exceljs": "^4.4.0", |
| | | "js-base64": "^3.7.7", |
| | | "view-ui-plus": "^1.3.19", |
| | | "vue": "^3.5.13", |
| | |
| | | "node": ">=18" |
| | | } |
| | | }, |
| | | "node_modules/@fast-csv/format": { |
| | | "version": "4.3.5", |
| | | "resolved": "https://registry.npmmirror.com/@fast-csv/format/-/format-4.3.5.tgz", |
| | | "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", |
| | | "dependencies": { |
| | | "@types/node": "^14.0.1", |
| | | "lodash.escaperegexp": "^4.1.2", |
| | | "lodash.isboolean": "^3.0.3", |
| | | "lodash.isequal": "^4.5.0", |
| | | "lodash.isfunction": "^3.0.9", |
| | | "lodash.isnil": "^4.0.0" |
| | | } |
| | | }, |
| | | "node_modules/@fast-csv/format/node_modules/@types/node": { |
| | | "version": "14.18.63", |
| | | "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.63.tgz", |
| | | "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" |
| | | }, |
| | | "node_modules/@fast-csv/parse": { |
| | | "version": "4.3.6", |
| | | "resolved": "https://registry.npmmirror.com/@fast-csv/parse/-/parse-4.3.6.tgz", |
| | | "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", |
| | | "dependencies": { |
| | | "@types/node": "^14.0.1", |
| | | "lodash.escaperegexp": "^4.1.2", |
| | | "lodash.groupby": "^4.6.0", |
| | | "lodash.isfunction": "^3.0.9", |
| | | "lodash.isnil": "^4.0.0", |
| | | "lodash.isundefined": "^3.0.1", |
| | | "lodash.uniq": "^4.5.0" |
| | | } |
| | | }, |
| | | "node_modules/@fast-csv/parse/node_modules/@types/node": { |
| | | "version": "14.18.63", |
| | | "resolved": "https://registry.npmmirror.com/@types/node/-/node-14.18.63.tgz", |
| | | "integrity": "sha512-fAtCfv4jJg+ExtXhvCkCqUKZ+4ok/JQk01qDKhL5BDDoS3AxKXhV5/MAVUZyQnSEd2GT92fkgZl0pz0Q0AzcIQ==" |
| | | }, |
| | | "node_modules/@intlify/core-base": { |
| | | "version": "11.1.1", |
| | | "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-11.1.1.tgz", |
| | |
| | | "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/@types/node": { |
| | | "version": "22.13.10", |
| | | "resolved": "https://registry.npmmirror.com/@types/node/-/node-22.13.10.tgz", |
| | | "integrity": "sha512-I6LPUvlRH+O6VRUqYOcMudhaIdUVWfsjnZavnsraHvpBwaEyMN29ry+0UVJhImYL16xsscu0aske3yA+uPOWfw==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "peer": true, |
| | | "dependencies": { |
| | | "undici-types": "~6.20.0" |
| | | } |
| | | }, |
| | | "node_modules/@vitejs/plugin-vue": { |
| | | "version": "5.2.1", |
| | | "resolved": "https://registry.npmmirror.com/@vitejs/plugin-vue/-/plugin-vue-5.2.1.tgz", |
| | |
| | | "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.13.tgz", |
| | | "integrity": "sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==" |
| | | }, |
| | | "node_modules/archiver": { |
| | | "version": "5.3.2", |
| | | "resolved": "https://registry.npmmirror.com/archiver/-/archiver-5.3.2.tgz", |
| | | "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==", |
| | | "dependencies": { |
| | | "archiver-utils": "^2.1.0", |
| | | "async": "^3.2.4", |
| | | "buffer-crc32": "^0.2.1", |
| | | "readable-stream": "^3.6.0", |
| | | "readdir-glob": "^1.1.2", |
| | | "tar-stream": "^2.2.0", |
| | | "zip-stream": "^4.1.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 10" |
| | | } |
| | | }, |
| | | "node_modules/archiver-utils": { |
| | | "version": "2.1.0", |
| | | "resolved": "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-2.1.0.tgz", |
| | | "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", |
| | | "dependencies": { |
| | | "glob": "^7.1.4", |
| | | "graceful-fs": "^4.2.0", |
| | | "lazystream": "^1.0.0", |
| | | "lodash.defaults": "^4.2.0", |
| | | "lodash.difference": "^4.5.0", |
| | | "lodash.flatten": "^4.4.0", |
| | | "lodash.isplainobject": "^4.0.6", |
| | | "lodash.union": "^4.6.0", |
| | | "normalize-path": "^3.0.0", |
| | | "readable-stream": "^2.0.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 6" |
| | | } |
| | | }, |
| | | "node_modules/archiver-utils/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/archiver-utils/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/archiver-utils/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/async": { |
| | | "version": "3.2.6", |
| | | "resolved": "https://registry.npmmirror.com/async/-/async-3.2.6.tgz", |
| | | "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==" |
| | | }, |
| | | "node_modules/async-validator": { |
| | | "version": "3.5.2", |
| | | "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-3.5.2.tgz", |
| | | "integrity": "sha512-8eLCg00W9pIRZSB781UUX/H6Oskmm8xloZfr09lz5bikRpBVDlJ3hRVuxxP1SxcwsEYfJ4IU8Q19Y8/893r3rQ==" |
| | | }, |
| | | "node_modules/balanced-match": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/balanced-match/-/balanced-match-1.0.2.tgz", |
| | | "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" |
| | | }, |
| | | "node_modules/base64-js": { |
| | | "version": "1.5.1", |
| | | "resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz", |
| | | "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", |
| | | "funding": [ |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/feross" |
| | | }, |
| | | { |
| | | "type": "patreon", |
| | | "url": "https://www.patreon.com/feross" |
| | | }, |
| | | { |
| | | "type": "consulting", |
| | | "url": "https://feross.org/support" |
| | | } |
| | | ] |
| | | }, |
| | | "node_modules/batch-processor": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmmirror.com/batch-processor/-/batch-processor-1.0.0.tgz", |
| | | "integrity": "sha512-xoLQD8gmmR32MeuBHgH0Tzd5PuSZx71ZsbhVxOCRbgktZEPe4SQy7s9Z50uPp0F/f7iw2XmkHN2xkgbMfckMDA==" |
| | | }, |
| | | "node_modules/big-integer": { |
| | | "version": "1.6.52", |
| | | "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz", |
| | | "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg==", |
| | | "engines": { |
| | | "node": ">=0.6" |
| | | } |
| | | }, |
| | | "node_modules/binary": { |
| | | "version": "0.3.0", |
| | | "resolved": "https://registry.npmmirror.com/binary/-/binary-0.3.0.tgz", |
| | | "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", |
| | | "dependencies": { |
| | | "buffers": "~0.1.1", |
| | | "chainsaw": "~0.1.0" |
| | | }, |
| | | "engines": { |
| | | "node": "*" |
| | | } |
| | | }, |
| | | "node_modules/birpc": { |
| | | "version": "0.2.19", |
| | |
| | | "dev": true, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/antfu" |
| | | } |
| | | }, |
| | | "node_modules/bl": { |
| | | "version": "4.1.0", |
| | | "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz", |
| | | "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", |
| | | "dependencies": { |
| | | "buffer": "^5.5.0", |
| | | "inherits": "^2.0.4", |
| | | "readable-stream": "^3.4.0" |
| | | } |
| | | }, |
| | | "node_modules/bluebird": { |
| | | "version": "3.4.7", |
| | | "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz", |
| | | "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" |
| | | }, |
| | | "node_modules/brace-expansion": { |
| | | "version": "1.1.11", |
| | | "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-1.1.11.tgz", |
| | | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", |
| | | "dependencies": { |
| | | "balanced-match": "^1.0.0", |
| | | "concat-map": "0.0.1" |
| | | } |
| | | }, |
| | | "node_modules/browserslist": { |
| | |
| | | }, |
| | | "engines": { |
| | | "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" |
| | | } |
| | | }, |
| | | "node_modules/buffer": { |
| | | "version": "5.7.1", |
| | | "resolved": "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz", |
| | | "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", |
| | | "funding": [ |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/feross" |
| | | }, |
| | | { |
| | | "type": "patreon", |
| | | "url": "https://www.patreon.com/feross" |
| | | }, |
| | | { |
| | | "type": "consulting", |
| | | "url": "https://feross.org/support" |
| | | } |
| | | ], |
| | | "dependencies": { |
| | | "base64-js": "^1.3.1", |
| | | "ieee754": "^1.1.13" |
| | | } |
| | | }, |
| | | "node_modules/buffer-crc32": { |
| | | "version": "0.2.13", |
| | | "resolved": "https://registry.npmmirror.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz", |
| | | "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", |
| | | "engines": { |
| | | "node": "*" |
| | | } |
| | | }, |
| | | "node_modules/buffer-indexof-polyfill": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", |
| | | "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", |
| | | "engines": { |
| | | "node": ">=0.10" |
| | | } |
| | | }, |
| | | "node_modules/buffers": { |
| | | "version": "0.1.1", |
| | | "resolved": "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz", |
| | | "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", |
| | | "engines": { |
| | | "node": ">=0.2.0" |
| | | } |
| | | }, |
| | | "node_modules/bundle-name": { |
| | |
| | | } |
| | | ] |
| | | }, |
| | | "node_modules/chainsaw": { |
| | | "version": "0.1.0", |
| | | "resolved": "https://registry.npmmirror.com/chainsaw/-/chainsaw-0.1.0.tgz", |
| | | "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", |
| | | "dependencies": { |
| | | "traverse": ">=0.3.0 <0.4" |
| | | }, |
| | | "engines": { |
| | | "node": "*" |
| | | } |
| | | }, |
| | | "node_modules/compress-commons": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/compress-commons/-/compress-commons-4.1.2.tgz", |
| | | "integrity": "sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==", |
| | | "dependencies": { |
| | | "buffer-crc32": "^0.2.13", |
| | | "crc32-stream": "^4.0.2", |
| | | "normalize-path": "^3.0.0", |
| | | "readable-stream": "^3.6.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 10" |
| | | } |
| | | }, |
| | | "node_modules/concat-map": { |
| | | "version": "0.0.1", |
| | | "resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz", |
| | | "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" |
| | | }, |
| | | "node_modules/convert-source-map": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmmirror.com/convert-source-map/-/convert-source-map-2.0.0.tgz", |
| | |
| | | "url": "https://github.com/sponsors/mesqueeb" |
| | | } |
| | | }, |
| | | "node_modules/core-util-is": { |
| | | "version": "1.0.3", |
| | | "resolved": "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz", |
| | | "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" |
| | | }, |
| | | "node_modules/countup.js": { |
| | | "version": "1.9.3", |
| | | "resolved": "https://registry.npmmirror.com/countup.js/-/countup.js-1.9.3.tgz", |
| | | "integrity": "sha512-UHf2P/mFKaESqdPq+UdBJm/1y8lYdlcDd0nTZHNC8cxWoJwZr1Eldm1PpWui446vDl5Pd8PtRYkr3q6K4+Qa5A==" |
| | | }, |
| | | "node_modules/crc-32": { |
| | | "version": "1.2.2", |
| | | "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", |
| | | "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", |
| | | "bin": { |
| | | "crc32": "bin/crc32.njs" |
| | | }, |
| | | "engines": { |
| | | "node": ">=0.8" |
| | | } |
| | | }, |
| | | "node_modules/crc32-stream": { |
| | | "version": "4.0.3", |
| | | "resolved": "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.3.tgz", |
| | | "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==", |
| | | "dependencies": { |
| | | "crc-32": "^1.2.0", |
| | | "readable-stream": "^3.4.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 10" |
| | | } |
| | | }, |
| | | "node_modules/cross-spawn": { |
| | | "version": "7.0.6", |
| | |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/duplexer2": { |
| | | "version": "0.1.4", |
| | | "resolved": "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz", |
| | | "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", |
| | | "dependencies": { |
| | | "readable-stream": "^2.0.2" |
| | | } |
| | | }, |
| | | "node_modules/duplexer2/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/duplexer2/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/duplexer2/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/electron-to-chromium": { |
| | | "version": "1.5.109", |
| | | "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.5.109.tgz", |
| | |
| | | "integrity": "sha512-Fl5Ftk6WwXE0wqCgNoseKWndjzZlDCwuPTcoVZfCP9R3EHQF8qUtr3YUPNETegRBOKqQKPW3n4kiIWngGi8tKg==", |
| | | "dependencies": { |
| | | "batch-processor": "1.0.0" |
| | | } |
| | | }, |
| | | "node_modules/end-of-stream": { |
| | | "version": "1.4.4", |
| | | "resolved": "https://registry.npmmirror.com/end-of-stream/-/end-of-stream-1.4.4.tgz", |
| | | "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", |
| | | "dependencies": { |
| | | "once": "^1.4.0" |
| | | } |
| | | }, |
| | | "node_modules/entities": { |
| | |
| | | "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", |
| | | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" |
| | | }, |
| | | "node_modules/exceljs": { |
| | | "version": "4.4.0", |
| | | "resolved": "https://registry.npmmirror.com/exceljs/-/exceljs-4.4.0.tgz", |
| | | "integrity": "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==", |
| | | "dependencies": { |
| | | "archiver": "^5.0.0", |
| | | "dayjs": "^1.8.34", |
| | | "fast-csv": "^4.3.1", |
| | | "jszip": "^3.10.1", |
| | | "readable-stream": "^3.6.0", |
| | | "saxes": "^5.0.1", |
| | | "tmp": "^0.2.0", |
| | | "unzipper": "^0.10.11", |
| | | "uuid": "^8.3.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=8.3.0" |
| | | } |
| | | }, |
| | | "node_modules/execa": { |
| | | "version": "9.5.2", |
| | | "resolved": "https://registry.npmmirror.com/execa/-/execa-9.5.2.tgz", |
| | |
| | | "url": "https://github.com/sindresorhus/execa?sponsor=1" |
| | | } |
| | | }, |
| | | "node_modules/fast-csv": { |
| | | "version": "4.3.6", |
| | | "resolved": "https://registry.npmmirror.com/fast-csv/-/fast-csv-4.3.6.tgz", |
| | | "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", |
| | | "dependencies": { |
| | | "@fast-csv/format": "4.3.5", |
| | | "@fast-csv/parse": "4.3.6" |
| | | }, |
| | | "engines": { |
| | | "node": ">=10.0.0" |
| | | } |
| | | }, |
| | | "node_modules/figures": { |
| | | "version": "6.1.0", |
| | | "resolved": "https://registry.npmmirror.com/figures/-/figures-6.1.0.tgz", |
| | |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/fs-constants": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz", |
| | | "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" |
| | | }, |
| | | "node_modules/fs-extra": { |
| | | "version": "11.3.0", |
| | | "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-11.3.0.tgz", |
| | |
| | | "node": ">=14.14" |
| | | } |
| | | }, |
| | | "node_modules/fs.realpath": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmmirror.com/fs.realpath/-/fs.realpath-1.0.0.tgz", |
| | | "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" |
| | | }, |
| | | "node_modules/fsevents": { |
| | | "version": "2.3.3", |
| | | "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", |
| | |
| | | ], |
| | | "engines": { |
| | | "node": "^8.16.0 || ^10.6.0 || >=11.0.0" |
| | | } |
| | | }, |
| | | "node_modules/fstream": { |
| | | "version": "1.0.12", |
| | | "resolved": "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz", |
| | | "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", |
| | | "deprecated": "This package is no longer supported.", |
| | | "dependencies": { |
| | | "graceful-fs": "^4.1.2", |
| | | "inherits": "~2.0.0", |
| | | "mkdirp": ">=0.5 0", |
| | | "rimraf": "2" |
| | | }, |
| | | "engines": { |
| | | "node": ">=0.6" |
| | | } |
| | | }, |
| | | "node_modules/gensync": { |
| | |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/glob": { |
| | | "version": "7.2.3", |
| | | "resolved": "https://registry.npmmirror.com/glob/-/glob-7.2.3.tgz", |
| | | "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", |
| | | "deprecated": "Glob versions prior to v9 are no longer supported", |
| | | "dependencies": { |
| | | "fs.realpath": "^1.0.0", |
| | | "inflight": "^1.0.4", |
| | | "inherits": "2", |
| | | "minimatch": "^3.1.1", |
| | | "once": "^1.3.0", |
| | | "path-is-absolute": "^1.0.0" |
| | | }, |
| | | "engines": { |
| | | "node": "*" |
| | | }, |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/isaacs" |
| | | } |
| | | }, |
| | | "node_modules/globals": { |
| | | "version": "11.12.0", |
| | | "resolved": "https://registry.npmmirror.com/globals/-/globals-11.12.0.tgz", |
| | |
| | | "node_modules/graceful-fs": { |
| | | "version": "4.2.11", |
| | | "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz", |
| | | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", |
| | | "dev": true |
| | | "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" |
| | | }, |
| | | "node_modules/hookable": { |
| | | "version": "5.5.3", |
| | |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/ieee754": { |
| | | "version": "1.2.1", |
| | | "resolved": "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz", |
| | | "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", |
| | | "funding": [ |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/feross" |
| | | }, |
| | | { |
| | | "type": "patreon", |
| | | "url": "https://www.patreon.com/feross" |
| | | }, |
| | | { |
| | | "type": "consulting", |
| | | "url": "https://feross.org/support" |
| | | } |
| | | ] |
| | | }, |
| | | "node_modules/image-size": { |
| | | "version": "0.5.5", |
| | | "resolved": "https://registry.npmmirror.com/image-size/-/image-size-0.5.5.tgz", |
| | |
| | | "engines": { |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/immediate": { |
| | | "version": "3.0.6", |
| | | "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz", |
| | | "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" |
| | | }, |
| | | "node_modules/inflight": { |
| | | "version": "1.0.6", |
| | | "resolved": "https://registry.npmmirror.com/inflight/-/inflight-1.0.6.tgz", |
| | | "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", |
| | | "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", |
| | | "dependencies": { |
| | | "once": "^1.3.0", |
| | | "wrappy": "1" |
| | | } |
| | | }, |
| | | "node_modules/inherits": { |
| | | "version": "2.0.4", |
| | | "resolved": "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz", |
| | | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" |
| | | }, |
| | | "node_modules/is-docker": { |
| | | "version": "3.0.0", |
| | |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/isarray": { |
| | | "version": "1.0.0", |
| | | "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz", |
| | | "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" |
| | | }, |
| | | "node_modules/isexe": { |
| | | "version": "2.0.0", |
| | | "resolved": "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", |
| | |
| | | "graceful-fs": "^4.1.6" |
| | | } |
| | | }, |
| | | "node_modules/jszip": { |
| | | "version": "3.10.1", |
| | | "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz", |
| | | "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", |
| | | "dependencies": { |
| | | "lie": "~3.3.0", |
| | | "pako": "~1.0.2", |
| | | "readable-stream": "~2.3.6", |
| | | "setimmediate": "^1.0.5" |
| | | } |
| | | }, |
| | | "node_modules/jszip/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/jszip/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/jszip/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/kolorist": { |
| | | "version": "1.8.0", |
| | | "resolved": "https://registry.npmmirror.com/kolorist/-/kolorist-1.8.0.tgz", |
| | | "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/lazystream": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz", |
| | | "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", |
| | | "dependencies": { |
| | | "readable-stream": "^2.0.5" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 0.6.3" |
| | | } |
| | | }, |
| | | "node_modules/lazystream/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/lazystream/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/lazystream/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/less": { |
| | | "version": "4.2.2", |
| | |
| | | "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/lie": { |
| | | "version": "3.3.0", |
| | | "resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz", |
| | | "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", |
| | | "dependencies": { |
| | | "immediate": "~3.0.5" |
| | | } |
| | | }, |
| | | "node_modules/listenercount": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmmirror.com/listenercount/-/listenercount-1.0.1.tgz", |
| | | "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" |
| | | }, |
| | | "node_modules/lodash.chunk": { |
| | | "version": "4.2.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.chunk/-/lodash.chunk-4.2.0.tgz", |
| | | "integrity": "sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==" |
| | | }, |
| | | "node_modules/lodash.defaults": { |
| | | "version": "4.2.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz", |
| | | "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" |
| | | }, |
| | | "node_modules/lodash.difference": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.difference/-/lodash.difference-4.5.0.tgz", |
| | | "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" |
| | | }, |
| | | "node_modules/lodash.escaperegexp": { |
| | | "version": "4.1.2", |
| | | "resolved": "https://registry.npmmirror.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", |
| | | "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" |
| | | }, |
| | | "node_modules/lodash.flatten": { |
| | | "version": "4.4.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz", |
| | | "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" |
| | | }, |
| | | "node_modules/lodash.groupby": { |
| | | "version": "4.6.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.groupby/-/lodash.groupby-4.6.0.tgz", |
| | | "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" |
| | | }, |
| | | "node_modules/lodash.isboolean": { |
| | | "version": "3.0.3", |
| | | "resolved": "https://registry.npmmirror.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", |
| | | "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" |
| | | }, |
| | | "node_modules/lodash.isequal": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz", |
| | | "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", |
| | | "deprecated": "This package is deprecated. Use require('node:util').isDeepStrictEqual instead." |
| | | }, |
| | | "node_modules/lodash.isfunction": { |
| | | "version": "3.0.9", |
| | | "resolved": "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", |
| | | "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" |
| | | }, |
| | | "node_modules/lodash.isnil": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz", |
| | | "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" |
| | | }, |
| | | "node_modules/lodash.isplainobject": { |
| | | "version": "4.0.6", |
| | | "resolved": "https://registry.npmmirror.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", |
| | | "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" |
| | | }, |
| | | "node_modules/lodash.isundefined": { |
| | | "version": "3.0.1", |
| | | "resolved": "https://registry.npmmirror.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", |
| | | "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" |
| | | }, |
| | | "node_modules/lodash.throttle": { |
| | | "version": "4.1.1", |
| | | "resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz", |
| | | "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" |
| | | }, |
| | | "node_modules/lodash.union": { |
| | | "version": "4.6.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.union/-/lodash.union-4.6.0.tgz", |
| | | "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" |
| | | }, |
| | | "node_modules/lodash.uniq": { |
| | | "version": "4.5.0", |
| | | "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz", |
| | | "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" |
| | | }, |
| | | "node_modules/lru-cache": { |
| | | "version": "5.1.1", |
| | |
| | | "node": ">=4" |
| | | } |
| | | }, |
| | | "node_modules/minimatch": { |
| | | "version": "3.1.2", |
| | | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-3.1.2.tgz", |
| | | "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", |
| | | "dependencies": { |
| | | "brace-expansion": "^1.1.7" |
| | | }, |
| | | "engines": { |
| | | "node": "*" |
| | | } |
| | | }, |
| | | "node_modules/minimist": { |
| | | "version": "1.2.8", |
| | | "resolved": "https://registry.npmmirror.com/minimist/-/minimist-1.2.8.tgz", |
| | | "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/ljharb" |
| | | } |
| | | }, |
| | | "node_modules/mitt": { |
| | | "version": "3.0.1", |
| | | "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", |
| | | "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/mkdirp": { |
| | | "version": "0.5.6", |
| | | "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz", |
| | | "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", |
| | | "dependencies": { |
| | | "minimist": "^1.2.6" |
| | | }, |
| | | "bin": { |
| | | "mkdirp": "bin/cmd.js" |
| | | } |
| | | }, |
| | | "node_modules/mrmime": { |
| | | "version": "2.0.1", |
| | |
| | | "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/normalize-path": { |
| | | "version": "3.0.0", |
| | | "resolved": "https://registry.npmmirror.com/normalize-path/-/normalize-path-3.0.0.tgz", |
| | | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", |
| | | "engines": { |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/npm-run-path": { |
| | | "version": "6.0.0", |
| | | "resolved": "https://registry.npmmirror.com/npm-run-path/-/npm-run-path-6.0.0.tgz", |
| | |
| | | "node": "*" |
| | | } |
| | | }, |
| | | "node_modules/once": { |
| | | "version": "1.4.0", |
| | | "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", |
| | | "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", |
| | | "dependencies": { |
| | | "wrappy": "1" |
| | | } |
| | | }, |
| | | "node_modules/open": { |
| | | "version": "10.1.0", |
| | | "resolved": "https://registry.npmmirror.com/open/-/open-10.1.0.tgz", |
| | |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/pako": { |
| | | "version": "1.0.11", |
| | | "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz", |
| | | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" |
| | | }, |
| | | "node_modules/parse-ms": { |
| | | "version": "4.0.0", |
| | |
| | | "dev": true, |
| | | "engines": { |
| | | "node": ">= 0.10" |
| | | } |
| | | }, |
| | | "node_modules/path-is-absolute": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmmirror.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz", |
| | | "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", |
| | | "engines": { |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/path-key": { |
| | |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/process-nextick-args": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz", |
| | | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" |
| | | }, |
| | | "node_modules/prr": { |
| | | "version": "1.0.1", |
| | | "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz", |
| | |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "node_modules/readable-stream": { |
| | | "version": "3.6.2", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz", |
| | | "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", |
| | | "dependencies": { |
| | | "inherits": "^2.0.3", |
| | | "string_decoder": "^1.1.1", |
| | | "util-deprecate": "^1.0.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 6" |
| | | } |
| | | }, |
| | | "node_modules/readdir-glob": { |
| | | "version": "1.1.3", |
| | | "resolved": "https://registry.npmmirror.com/readdir-glob/-/readdir-glob-1.1.3.tgz", |
| | | "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", |
| | | "dependencies": { |
| | | "minimatch": "^5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/readdir-glob/node_modules/brace-expansion": { |
| | | "version": "2.0.1", |
| | | "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz", |
| | | "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", |
| | | "dependencies": { |
| | | "balanced-match": "^1.0.0" |
| | | } |
| | | }, |
| | | "node_modules/readdir-glob/node_modules/minimatch": { |
| | | "version": "5.1.6", |
| | | "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz", |
| | | "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", |
| | | "dependencies": { |
| | | "brace-expansion": "^2.0.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">=10" |
| | | } |
| | | }, |
| | | "node_modules/rfdc": { |
| | | "version": "1.4.1", |
| | | "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz", |
| | | "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/rimraf": { |
| | | "version": "2.7.1", |
| | | "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz", |
| | | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", |
| | | "deprecated": "Rimraf versions prior to v4 are no longer supported", |
| | | "dependencies": { |
| | | "glob": "^7.1.3" |
| | | }, |
| | | "bin": { |
| | | "rimraf": "bin.js" |
| | | } |
| | | }, |
| | | "node_modules/rollup": { |
| | | "version": "4.34.8", |
| | |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/safe-buffer": { |
| | | "version": "5.2.1", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz", |
| | | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", |
| | | "funding": [ |
| | | { |
| | | "type": "github", |
| | | "url": "https://github.com/sponsors/feross" |
| | | }, |
| | | { |
| | | "type": "patreon", |
| | | "url": "https://www.patreon.com/feross" |
| | | }, |
| | | { |
| | | "type": "consulting", |
| | | "url": "https://feross.org/support" |
| | | } |
| | | ] |
| | | }, |
| | | "node_modules/safer-buffer": { |
| | | "version": "2.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz", |
| | |
| | | "dev": true, |
| | | "optional": true |
| | | }, |
| | | "node_modules/saxes": { |
| | | "version": "5.0.1", |
| | | "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz", |
| | | "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", |
| | | "dependencies": { |
| | | "xmlchars": "^2.2.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">=10" |
| | | } |
| | | }, |
| | | "node_modules/select": { |
| | | "version": "1.1.2", |
| | | "resolved": "https://registry.npmmirror.com/select/-/select-1.1.2.tgz", |
| | |
| | | "bin": { |
| | | "semver": "bin/semver.js" |
| | | } |
| | | }, |
| | | "node_modules/setimmediate": { |
| | | "version": "1.0.5", |
| | | "resolved": "https://registry.npmmirror.com/setimmediate/-/setimmediate-1.0.5.tgz", |
| | | "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" |
| | | }, |
| | | "node_modules/shebang-command": { |
| | | "version": "2.0.0", |
| | |
| | | "node": ">=0.10.0" |
| | | } |
| | | }, |
| | | "node_modules/string_decoder": { |
| | | "version": "1.3.0", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz", |
| | | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.2.0" |
| | | } |
| | | }, |
| | | "node_modules/strip-final-newline": { |
| | | "version": "4.0.0", |
| | | "resolved": "https://registry.npmmirror.com/strip-final-newline/-/strip-final-newline-4.0.0.tgz", |
| | |
| | | "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/tar-stream": { |
| | | "version": "2.2.0", |
| | | "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz", |
| | | "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", |
| | | "dependencies": { |
| | | "bl": "^4.0.3", |
| | | "end-of-stream": "^1.4.1", |
| | | "fs-constants": "^1.0.0", |
| | | "inherits": "^2.0.3", |
| | | "readable-stream": "^3.1.1" |
| | | }, |
| | | "engines": { |
| | | "node": ">=6" |
| | | } |
| | | }, |
| | | "node_modules/tinycolor2": { |
| | | "version": "1.6.0", |
| | | "resolved": "https://registry.npmmirror.com/tinycolor2/-/tinycolor2-1.6.0.tgz", |
| | | "integrity": "sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==" |
| | | }, |
| | | "node_modules/tmp": { |
| | | "version": "0.2.3", |
| | | "resolved": "https://registry.npmmirror.com/tmp/-/tmp-0.2.3.tgz", |
| | | "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", |
| | | "engines": { |
| | | "node": ">=14.14" |
| | | } |
| | | }, |
| | | "node_modules/totalist": { |
| | | "version": "3.0.1", |
| | |
| | | "node": ">=6" |
| | | } |
| | | }, |
| | | "node_modules/traverse": { |
| | | "version": "0.3.9", |
| | | "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.3.9.tgz", |
| | | "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", |
| | | "engines": { |
| | | "node": "*" |
| | | } |
| | | }, |
| | | "node_modules/tslib": { |
| | | "version": "2.8.1", |
| | | "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", |
| | | "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", |
| | | "dev": true |
| | | }, |
| | | "node_modules/undici-types": { |
| | | "version": "6.20.0", |
| | | "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-6.20.0.tgz", |
| | | "integrity": "sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==", |
| | | "dev": true, |
| | | "optional": true, |
| | | "peer": true |
| | | }, |
| | | "node_modules/unicorn-magic": { |
| | | "version": "0.3.0", |
| | |
| | | "dev": true, |
| | | "engines": { |
| | | "node": ">= 10.0.0" |
| | | } |
| | | }, |
| | | "node_modules/unzipper": { |
| | | "version": "0.10.14", |
| | | "resolved": "https://registry.npmmirror.com/unzipper/-/unzipper-0.10.14.tgz", |
| | | "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", |
| | | "dependencies": { |
| | | "big-integer": "^1.6.17", |
| | | "binary": "~0.3.0", |
| | | "bluebird": "~3.4.1", |
| | | "buffer-indexof-polyfill": "~1.0.0", |
| | | "duplexer2": "~0.1.4", |
| | | "fstream": "^1.0.12", |
| | | "graceful-fs": "^4.2.2", |
| | | "listenercount": "~1.0.1", |
| | | "readable-stream": "~2.3.6", |
| | | "setimmediate": "~1.0.4" |
| | | } |
| | | }, |
| | | "node_modules/unzipper/node_modules/readable-stream": { |
| | | "version": "2.3.8", |
| | | "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz", |
| | | "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", |
| | | "dependencies": { |
| | | "core-util-is": "~1.0.0", |
| | | "inherits": "~2.0.3", |
| | | "isarray": "~1.0.0", |
| | | "process-nextick-args": "~2.0.0", |
| | | "safe-buffer": "~5.1.1", |
| | | "string_decoder": "~1.1.1", |
| | | "util-deprecate": "~1.0.1" |
| | | } |
| | | }, |
| | | "node_modules/unzipper/node_modules/safe-buffer": { |
| | | "version": "5.1.2", |
| | | "resolved": "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz", |
| | | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" |
| | | }, |
| | | "node_modules/unzipper/node_modules/string_decoder": { |
| | | "version": "1.1.1", |
| | | "resolved": "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz", |
| | | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", |
| | | "dependencies": { |
| | | "safe-buffer": "~5.1.0" |
| | | } |
| | | }, |
| | | "node_modules/update-browserslist-db": { |
| | |
| | | }, |
| | | "peerDependencies": { |
| | | "browserslist": ">= 4.21.0" |
| | | } |
| | | }, |
| | | "node_modules/util-deprecate": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz", |
| | | "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" |
| | | }, |
| | | "node_modules/uuid": { |
| | | "version": "8.3.2", |
| | | "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", |
| | | "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", |
| | | "bin": { |
| | | "uuid": "dist/bin/uuid" |
| | | } |
| | | }, |
| | | "node_modules/v-click-outside-x": { |
| | |
| | | "node": ">= 8" |
| | | } |
| | | }, |
| | | "node_modules/wrappy": { |
| | | "version": "1.0.2", |
| | | "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", |
| | | "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" |
| | | }, |
| | | "node_modules/xmlchars": { |
| | | "version": "2.2.0", |
| | | "resolved": "https://registry.npmmirror.com/xmlchars/-/xmlchars-2.2.0.tgz", |
| | | "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" |
| | | }, |
| | | "node_modules/yallist": { |
| | | "version": "3.1.1", |
| | | "resolved": "https://registry.npmmirror.com/yallist/-/yallist-3.1.1.tgz", |
| | |
| | | "funding": { |
| | | "url": "https://github.com/sponsors/sindresorhus" |
| | | } |
| | | }, |
| | | "node_modules/zip-stream": { |
| | | "version": "4.1.1", |
| | | "resolved": "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.1.tgz", |
| | | "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==", |
| | | "dependencies": { |
| | | "archiver-utils": "^3.0.4", |
| | | "compress-commons": "^4.1.2", |
| | | "readable-stream": "^3.6.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 10" |
| | | } |
| | | }, |
| | | "node_modules/zip-stream/node_modules/archiver-utils": { |
| | | "version": "3.0.4", |
| | | "resolved": "https://registry.npmmirror.com/archiver-utils/-/archiver-utils-3.0.4.tgz", |
| | | "integrity": "sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==", |
| | | "dependencies": { |
| | | "glob": "^7.2.3", |
| | | "graceful-fs": "^4.2.0", |
| | | "lazystream": "^1.0.0", |
| | | "lodash.defaults": "^4.2.0", |
| | | "lodash.difference": "^4.5.0", |
| | | "lodash.flatten": "^4.4.0", |
| | | "lodash.isplainobject": "^4.0.6", |
| | | "lodash.union": "^4.6.0", |
| | | "normalize-path": "^3.0.0", |
| | | "readable-stream": "^3.6.0" |
| | | }, |
| | | "engines": { |
| | | "node": ">= 10" |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | "preview": "vite preview" |
| | | }, |
| | | "dependencies": { |
| | | "exceljs": "^4.4.0", |
| | | "js-base64": "^3.7.7", |
| | | "view-ui-plus": "^1.3.19", |
| | | "vue": "^3.5.13", |
| | |
| | | :data="data" |
| | | :height="paged ? tableHeight - 70 : tableHeight" |
| | | border |
| | | :highlight-row="highlightRow" |
| | | @on-current-change="onCurrentChange" |
| | | @on-selection-change="onSelectionChange" |
| | | ref="refTable" |
| | | ></Table> |
| | | <Page |
| | |
| | | @on-next="onNext" |
| | | ref="refPage" |
| | | /> |
| | | <Spin fix :show="loading" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | type: Array, |
| | | default: () => [10, 20, 30, 40], |
| | | }, |
| | | loading: Boolean, |
| | | highlightRow: Boolean, |
| | | }, |
| | | data() { |
| | | return {}; |
| | |
| | | <style lang="less" scoped> |
| | | .data-table { |
| | | height: 100%; |
| | | position: relative; |
| | | .text-center { |
| | | text-align: center; |
| | | } |
| | |
| | | width: 5px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .ivu-spin-fix{ |
| | | background-color: rgba(255, 255, 255, .3); |
| | | } |
New file |
| | |
| | | import ExcelJS from 'exceljs' |
| | | |
| | | class Excel { |
| | | async exportExcel(options) { |
| | | const { |
| | | datas, |
| | | name, |
| | | columns, |
| | | sheetName = 'Sheet1', |
| | | frozenColumnId = 0, |
| | | } = options |
| | | const workbook = new ExcelJS.Workbook() |
| | | workbook.creator = 'mobox' |
| | | workbook.created = new Date() |
| | | |
| | | this.worksheet = workbook.addWorksheet(sheetName) |
| | | |
| | | this.headerRowId = 1 |
| | | |
| | | this.worksheet.columns = columns |
| | | this.worksheet.addRows(datas) |
| | | this.frozenColumnId = frozenColumnId |
| | | this.setStyles(datas) |
| | | workbook.xlsx.writeBuffer().then(data => { |
| | | let blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); |
| | | const a = document.createElement('a') |
| | | a.href = URL.createObjectURL(blob) |
| | | a.download = name + '.xlsx' |
| | | document.body.appendChild(a) |
| | | a.click() |
| | | document.body.removeChild(a) |
| | | window.URL.revokeObjectURL(a.href) |
| | | }) |
| | | } |
| | | setStyles(datas) { |
| | | this.worksheet.eachRow({ includeEmpty: true }, (row) => { |
| | | row.height = 14 |
| | | row.font = { |
| | | size: 9 |
| | | } |
| | | }) |
| | | this.worksheet.columns.forEach(column => column.style.alignment = Object.assign({ |
| | | vertical: 'middle', |
| | | horizontal: 'center', |
| | | wrapText: true |
| | | }, column.style.alignment || {})) |
| | | for (let i = 1; i <= this.headerRowId; i++) { |
| | | let row = this.worksheet.getRow(i) |
| | | row.height = 18 |
| | | row.eachCell(cell => { |
| | | cell.style.alignment = { |
| | | vertical: 'middle', |
| | | horizontal: 'center', |
| | | wrapText: false |
| | | } |
| | | cell.fill = { |
| | | type: 'pattern', |
| | | pattern: 'solid', |
| | | fgColor: { argb: 'dddddd' }, |
| | | } |
| | | cell.border = { |
| | | right: { style: 'thin' }, |
| | | bottom: { style: 'thin' } |
| | | } |
| | | cell.font = { |
| | | size: 9 |
| | | } |
| | | }) |
| | | } |
| | | this.worksheet.autoFilter = { |
| | | from: { |
| | | row: this.headerRowId, |
| | | column: 1 |
| | | }, |
| | | to: { |
| | | row: datas.length, |
| | | column: this.worksheet.columns.length |
| | | } |
| | | } |
| | | this.worksheet.views = [ |
| | | { state: 'frozen', xSplit: this.frozenColumnId, ySplit: this.headerRowId } |
| | | ] |
| | | } |
| | | } |
| | | |
| | | export default Excel |
| | |
| | | <template> |
| | | <div class="login-view"> |
| | | <Form :model="formInline" :rules="ruleInline" inline ref="refFormInline"> |
| | | <FormItem prop="user"> |
| | | <Input type="text" v-model="formInline.user" placeholder="Username"> |
| | | <template #prepend> |
| | | <Icon type="ios-person-outline"></Icon> |
| | | </template> |
| | | </Input> |
| | | </FormItem> |
| | | <FormItem prop="password"> |
| | | <Input |
| | | type="password" |
| | | v-model="formInline.password" |
| | | placeholder="Password" |
| | | <div class="login-wrap"> |
| | | <div class="login-account"> |
| | | <div class="account-logo"> |
| | | <img src="http://115.29.185.26:5101/userphoto?login=sa" /> |
| | | </div> |
| | | <article class="ivu-typography ivu-text-center ivu-mt"> |
| | | <h1 class="ivu-typography">Vue Template<!----></h1> |
| | | <div class="ivu-typography"> |
| | | 基于 Vue3.0、VueRouter 和ViewUIPlus的管理系统模板演示 |
| | | <!----> |
| | | </div> |
| | | </article> |
| | | <Form |
| | | class="account-form" |
| | | :model="form" |
| | | :rules="rules" |
| | | label-position="top" |
| | | ref="refFormInline" |
| | | > |
| | | <template #prepend> |
| | | <Icon type="ios-lock-outline"></Icon> |
| | | </template> |
| | | </Input> |
| | | </FormItem> |
| | | <FormItem> |
| | | <Button type="primary" @click="onSignIn">Signin</Button> |
| | | </FormItem> |
| | | </Form> |
| | | <div class="ivu-login"> |
| | | <FormItem prop="user"> |
| | | <Input |
| | | type="text" |
| | | v-model="form.user" |
| | | size="large" |
| | | prefix="ios-person-outline" |
| | | > |
| | | </Input> |
| | | </FormItem> |
| | | <FormItem prop="password"> |
| | | <Input |
| | | type="password" |
| | | v-model="form.password" |
| | | size="large" |
| | | prefix="ios-lock-outline" |
| | | > |
| | | </Input> |
| | | </FormItem> |
| | | <FormItem> |
| | | <Button type="primary" @click="onSignIn" size="large" long |
| | | >登录</Button |
| | | > |
| | | </FormItem> |
| | | </div> |
| | | </Form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | name: "LoginView", |
| | | data() { |
| | | return { |
| | | formInline: { |
| | | user: "", |
| | | password: "", |
| | | form: { |
| | | user: "admin", |
| | | password: "0000", |
| | | }, |
| | | ruleInline: { |
| | | rules: { |
| | | user: [ |
| | | { |
| | | required: true, |
| | |
| | | message: "Please fill in the password.", |
| | | trigger: "blur", |
| | | }, |
| | | { |
| | | type: "string", |
| | | min: 6, |
| | | message: "The password length cannot be less than 6 bits", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | onSignIn() { |
| | | // 测试用户 |
| | | if (this.form.user == "admin" && this.form.password == "0000") { |
| | | setToken("uid"); |
| | | this.showSuccess("登录成功"); |
| | | this.$router.push("/"); |
| | | return; |
| | | } |
| | | this.refFormInline.validate(async (valid) => { |
| | | try { |
| | | if (valid) { |
| | | let res = await login({ |
| | | user_login: Base64.encode(this.formInline.user), |
| | | user_psw: Base64.encode(this.formInline.password), |
| | | user_login: Base64.encode(this.form.user), |
| | | user_psw: Base64.encode(this.form.password), |
| | | }); |
| | | setToken(res.session_id); |
| | | this.showSuccess("登录成功"); |
| | |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | <style lang="less"> |
| | | .login-view { |
| | | height: 100vh; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | background-repeat: no-repeat; |
| | | background-size: 100% 100%; |
| | | background-position: right bottom; |
| | | background-image: url("../../assets/login_bg.png"); |
| | | background-attachment: fixed; |
| | | .login-wrap { |
| | | display: -webkit-box; |
| | | display: -ms-flexbox; |
| | | display: flex; |
| | | -webkit-box-orient: vertical; |
| | | -webkit-box-direction: normal; |
| | | -ms-flex-direction: column; |
| | | flex-direction: column; |
| | | height: 100vh; |
| | | overflow: auto; |
| | | } |
| | | .login-account { |
| | | -webkit-box-flex: 1; |
| | | -ms-flex: 1; |
| | | flex: 1; |
| | | padding: 16px 0 0; |
| | | max-width: 420px; |
| | | margin: 0 auto; |
| | | margin-top: 100px; |
| | | } |
| | | .account-logo { |
| | | width: 80px; |
| | | height: 80px; |
| | | margin: 0 auto; |
| | | border: 1px solid #eee; |
| | | border-radius: 50%; |
| | | background-color: #fafafc; |
| | | img { |
| | | width: 100%; |
| | | border-style: none; |
| | | border-radius: 100%; |
| | | } |
| | | } |
| | | .account-form { |
| | | margin-top: 32px; |
| | | } |
| | | .ivu-form-item { |
| | | margin-bottom: 24px; |
| | | vertical-align: top; |
| | | zoom: 1; |
| | | } |
| | | .ivu-form-item-content { |
| | | position: relative; |
| | | line-height: 32px; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <Form :model="form" :label-width="110"> |
| | | <template v-if="model != 'info'"> |
| | | <FormItem label="仓库编码:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.code" size="small"></Input> |
| | | </FormItem> |
| | | <FormItem label="仓库名称:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.name" size="small"></Input> |
| | | </FormItem> |
| | | <FormItem label="仓库负责人:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.leader" size="small"></Input> |
| | | </FormItem> |
| | | <FormItem label="仓库电话:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.tel" size="small"></Input> |
| | | </FormItem> |
| | | <FormItem label="上级仓库编码:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.topCode" size="small"></Input> |
| | | </FormItem> |
| | | <FormItem label="地址:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.address" size="small"></Input> |
| | | </FormItem> |
| | | <FormItem> |
| | | <Checkbox v-model="form.WH_Code" size="small">是否本级</Checkbox> |
| | | <Checkbox v-model="form.isThisLevel" size="small">是否本级</Checkbox> |
| | | </FormItem> |
| | | <FormItem> |
| | | <Checkbox v-model="form.WH_Code" size="small">是否代管</Checkbox> |
| | | <Checkbox v-model="form.isEscrow" size="small">是否代管</Checkbox> |
| | | </FormItem> |
| | | <FormItem> |
| | | <Checkbox v-model="form.WH_Code" size="small">是否启用</Checkbox> |
| | | <Checkbox v-model="form.isEnable" size="small">是否启用</Checkbox> |
| | | </FormItem> |
| | | </template> |
| | | <template v-else> |
| | | <FormItem label="仓库编码:"> 仓库编码 </FormItem> |
| | | <FormItem label="仓库名称:"> 仓库名称 </FormItem> |
| | | <FormItem label="仓库负责人:"> 仓库负责人 </FormItem> |
| | | <FormItem label="仓库电话:"> 仓库电话 </FormItem> |
| | | <FormItem label="上级仓库编码:"> 上级仓库编码 </FormItem> |
| | | <FormItem label="地址:"> 地址 </FormItem> |
| | | <FormItem label="仓库编码:"> {{ this.form.code }} </FormItem> |
| | | <FormItem label="仓库名称:"> {{ this.form.name }} </FormItem> |
| | | <FormItem label="仓库负责人:"> {{ this.form.leader }} </FormItem> |
| | | <FormItem label="仓库电话:"> {{ this.form.tel }} </FormItem> |
| | | <FormItem label="上级仓库编码:"> {{ this.form.topCode }} </FormItem> |
| | | <FormItem label="地址:"> {{ this.form.address }} </FormItem> |
| | | <FormItem> |
| | | <Checkbox v-model="form.WH_Code" size="small" disabled |
| | | <Checkbox v-model="form.isThisLevel" size="small" disabled |
| | | >是否本级</Checkbox |
| | | > |
| | | </FormItem> |
| | | <FormItem> |
| | | <Checkbox v-model="form.WH_Code" size="small" disabled |
| | | <Checkbox v-model="form.isEscrow" size="small" disabled |
| | | >是否代管</Checkbox |
| | | > |
| | | </FormItem> |
| | | <FormItem> |
| | | <Checkbox v-model="form.WH_Code" size="small" disabled |
| | | <Checkbox v-model="form.isEnable" size="small" disabled |
| | | >是否启用</Checkbox |
| | | > |
| | | </FormItem> |
| | | </template> |
| | | <Spin fix :show="loading" /> |
| | | </Form> |
| | | <template #footer> |
| | | <template v-if="model != 'info'"> |
| | | <Space> |
| | | <Button type="text" @click="onCancel">取消</Button> |
| | | <Button type="primary" @click="onOk">确定</Button> |
| | | <Button type="primary" @click="onOk" :loading="loading">确定</Button> |
| | | </Space> |
| | | </template> |
| | | <template v-else> |
| | |
| | | type: String, |
| | | default: () => "info", |
| | | }, |
| | | dataId: String, |
| | | }, |
| | | data() { |
| | | return { |
| | | form: {}, |
| | | form: { |
| | | code: "", |
| | | name: "", |
| | | leader: "", |
| | | tel: "", |
| | | topCode: "", |
| | | address: "", |
| | | isThisLevel: false, |
| | | isEscrow: false, |
| | | isEnable: false, |
| | | }, |
| | | loading: false, |
| | | }; |
| | | }, |
| | | methods: { |
| | | onOk() {}, |
| | | onCancel() {}, |
| | | onClose() {}, |
| | | onOk() { |
| | | this.loading = true; |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | this.onClose(); |
| | | }, 2000); |
| | | }, |
| | | onCancel() { |
| | | this.onClose(); |
| | | }, |
| | | onClose() { |
| | | this.$emit("update:modelValue", false); |
| | | }, |
| | | loadData() { |
| | | if (!this.dataId) this.clear(); |
| | | else this.loadFormData(); |
| | | }, |
| | | loadFormData() { |
| | | let data = this.$parent.data.find((d) => d.code == this.dataId); |
| | | Object.assign(this.form, data); |
| | | }, |
| | | clear() { |
| | | this.code = ""; |
| | | this.name = ""; |
| | | this.leader = ""; |
| | | this.tel = ""; |
| | | this.topCode = ""; |
| | | this.address = ""; |
| | | this.isThisLevel = false; |
| | | this.isEscrow = false; |
| | | this.isEnable = false; |
| | | }, |
| | | }, |
| | | watch: { |
| | | modelValue(visible) { |
| | | if (visible) { |
| | | this.loadData(); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | .ivu-modal { |
| | | top: 40px; |
| | | } |
| | | .ivu-checkbox-input[disabled] { |
| | | cursor: default; |
| | | } |
| | | .ivu-checkbox-disabled .ivu-checkbox-inner { |
| | | border-color: #666; |
| | | background-color: #fff; |
| | | } |
| | | .ivu-checkbox-disabled.ivu-checkbox-checked .ivu-checkbox-inner:after { |
| | | border-color: #666; |
| | | } |
| | | .ivu-checkbox-disabled + span { |
| | | color: #666; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <Row> |
| | | <Col span="6"> |
| | | <FormItem label="仓库编码:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.code" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="仓库名称:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.name" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="仓库负责人:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.leader" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="仓库电话:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.tel" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | </Row> |
| | | <Row> |
| | | <Col span="6"> |
| | | <FormItem label="上级仓库编码:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.topCode" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="地址:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.address" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="4"> |
| | | <FormItem :label-width="34"> |
| | | <Checkbox v-model="form.WH_Code" size="small">是否本级</Checkbox> |
| | | <Checkbox v-model="form.isThisLevel" size="small" |
| | | >是否本级</Checkbox |
| | | > |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="4"> |
| | | <FormItem :label-width="34"> |
| | | <Checkbox v-model="form.WH_Code" size="small">是否代管</Checkbox> |
| | | <Checkbox v-model="form.isEscrow" size="small">是否代管</Checkbox> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="4"> |
| | | <FormItem :label-width="34"> |
| | | <Checkbox v-model="form.WH_Code" size="small">是否启用</Checkbox> |
| | | <Checkbox v-model="form.isEnable" size="small">是否启用</Checkbox> |
| | | </FormItem> |
| | | </Col> |
| | | </Row> |
| | |
| | | :tableHeight="tableHeight" |
| | | :columns="columns" |
| | | :data="data" |
| | | :page="page" |
| | | :limit="limit" |
| | | :limits="limits" |
| | | :total="total" |
| | | :loading="loading" |
| | | @on-selection-change="onSelectionChange" |
| | | @on-change="onPageChange" |
| | | @on-page-size-change="onPageSizeChange" |
| | | @on-prev="onPrev" |
| | | @on-next="onNext" |
| | | ></DataTable> |
| | | <DataTableInfo |
| | | v-model="infoDialog.visible" |
| | |
| | | columns: [], |
| | | data: [], |
| | | tableHeight: 0, |
| | | // 分页信息 |
| | | page: 1, |
| | | limit: 30, |
| | | limits: [10, 20, 30], |
| | | total: 0, |
| | | selection: [], |
| | | loading: false, |
| | | // 查询表单定义 |
| | | form: { |
| | | WH_Code: "", |
| | | code: "", |
| | | name: "", |
| | | leader: "", |
| | | tel: "", |
| | | topCode: "", |
| | | address: "", |
| | | isThisLevel: false, |
| | | isEscrow: false, |
| | | isEnable: false, |
| | | }, |
| | | // 弹框参数定义 |
| | | infoDialog: { |
| | | model: "info", |
| | | visible: false, |
| | |
| | | async loadColumns() { |
| | | this.columns = [ |
| | | { |
| | | type: "index", |
| | | type: "selection", |
| | | width: 40, |
| | | fixed: "left", |
| | | align: "center", |
| | | }, |
| | | { |
| | | key: "index", |
| | | title: " ", |
| | | render: (h, { index }) => { |
| | | return h(index); |
| | | return h("div", (this.page - 1) * this.limit + index + 1); |
| | | }, |
| | | width: 50, |
| | | width: 40, |
| | | fixed: "left", |
| | | align: "center", |
| | | }, |
| | | { |
| | | key: "row_button", |
| | |
| | | type: "md-build", |
| | | size: 14, |
| | | color: "#f90", |
| | | onClick: () => {}, |
| | | onClick: () => this.onEditRowClick(index), |
| | | }), |
| | | } |
| | | ), |
| | |
| | | fixed: "left", |
| | | }, |
| | | { |
| | | key: "WH_Code", |
| | | key: "code", |
| | | title: "仓库编码", |
| | | width: 150, |
| | | fixed: "left", |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "WH_Name", |
| | | key: "name", |
| | | title: "仓库名称", |
| | | width: 200, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "WH_Leader", |
| | | key: "leader", |
| | | title: "仓库负责人", |
| | | width: 100, |
| | | width: 150, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "WH_Tel", |
| | | key: "tel", |
| | | title: "仓库电话", |
| | | width: 100, |
| | | width: 150, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "Address", |
| | | key: "address", |
| | | title: "地址", |
| | | width: 100, |
| | | width: 150, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "TopLevelWH_Code", |
| | | key: "topCode", |
| | | title: "上级仓库编码", |
| | | width: 100, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "IsThisLevel", |
| | | key: "isThisLevel", |
| | | title: "是否本级", |
| | | width: 70, |
| | | render: (h, { row }) => { |
| | | return h( |
| | | "div", |
| | | h(resolveComponent("Checkbox"), { |
| | | modelValue: row.isThisLevel, |
| | | disabled: true, |
| | | size: "small", |
| | | }) |
| | | ); |
| | | }, |
| | | width: 80, |
| | | align: "center", |
| | | sortable: true, |
| | | }, |
| | | { |
| | | key: "IsEscrow", |
| | | key: "isEscrow", |
| | | title: "是否代管", |
| | | width: 70, |
| | | render: (h, { row }) => { |
| | | return h( |
| | | "div", |
| | | h(resolveComponent("Checkbox"), { |
| | | modelValue: row.isEscrow, |
| | | disabled: true, |
| | | size: "small", |
| | | }) |
| | | ); |
| | | }, |
| | | width: 80, |
| | | align: "center", |
| | | sortable: true, |
| | | }, |
| | | { |
| | | key: "IsEnable", |
| | | key: "isEnable", |
| | | title: "是否启用", |
| | | width: 70, |
| | | render: (h, { row }) => { |
| | | return h( |
| | | "div", |
| | | h(resolveComponent("Checkbox"), { |
| | | modelValue: row.isEnable, |
| | | disabled: true, |
| | | size: "small", |
| | | }) |
| | | ); |
| | | }, |
| | | width: 80, |
| | | align: "center", |
| | | sortable: true, |
| | | }, |
| | | ]; |
| | | }, |
| | | // 加载数据行 |
| | | async loadData() { |
| | | this.data = [{}]; |
| | | let msg = this.$Message.loading("正在加载数据..."); |
| | | this.loading = true; |
| | | |
| | | let { data, total } = await this.fakeDataList(); |
| | | |
| | | msg(); |
| | | |
| | | this.data = data; |
| | | this.total = total; |
| | | this.loading = false; |
| | | }, |
| | | // 测试数据列表 |
| | | fakeDataList(limit) { |
| | | return new Promise((resolve) => { |
| | | let total = 99; |
| | | let fakeList = []; |
| | | for (let i = 0; i < (limit || this.limit); i++) { |
| | | let row = { |
| | | code: `仓库编码-${(this.page - 1) * this.limit + i + 1}`, |
| | | name: `仓库名称-${(this.page - 1) * this.limit + i + 1}`, |
| | | leader: `仓库负责人-${(this.page - 1) * this.limit + i + 1}`, |
| | | tel: `仓库电话-${(this.page - 1) * this.limit + i + 1}`, |
| | | address: `地址-${(this.page - 1) * this.limit + i + 1}`, |
| | | topCode: `上级仓库编码-${(this.page - 1) * this.limit + i + 1}`, |
| | | isThisLevel: |
| | | ((this.page - 1) * this.limit + i + 1) % 2 == 0 ? true : false, |
| | | isEscrow: |
| | | ((this.page - 1) * this.limit + i + 1) % 2 == 0 ? true : false, |
| | | isEnable: |
| | | ((this.page - 1) * this.limit + i + 1) % 2 == 0 ? true : false, |
| | | }; |
| | | if ((this.page - 1) * this.limit + i + 1 < 100) fakeList.push(row); |
| | | } |
| | | setTimeout(() => { |
| | | resolve({ data: fakeList, total }); |
| | | }, 1 * 1000); |
| | | }); |
| | | }, |
| | | resize() { |
| | | let height = |
| | |
| | | this.infoDialog.visible = true; |
| | | }, |
| | | onEditClick() { |
| | | if (this.selection.length == 0) return this.showWarning("未选择操作项"); |
| | | else if (this.selection.length > 1) |
| | | return this.showWarning("只能选择一项进行编辑"); |
| | | let code = this.selection[0].code; |
| | | this.infoDialog.model = "edit"; |
| | | this.infoDialog.dataId = ""; |
| | | this.infoDialog.dataId = code; |
| | | this.infoDialog.visible = true; |
| | | }, |
| | | onEditRowClick(index) { |
| | | let code = this.data[index].code; |
| | | this.infoDialog.model = "edit"; |
| | | this.infoDialog.dataId = code; |
| | | this.infoDialog.visible = true; |
| | | }, |
| | | onViewClick() { |
| | | if (this.selection.length == 0) return this.showWarning("未选择操作项"); |
| | | else if (this.selection.length > 1) |
| | | return this.showWarning("只能选择一项查看"); |
| | | let code = this.selection[0].code; |
| | | this.infoDialog.model = "info"; |
| | | this.infoDialog.dataId = ""; |
| | | this.infoDialog.dataId = code; |
| | | this.infoDialog.visible = true; |
| | | }, |
| | | showWarning(tip) { |
| | | this.$Message.warning({ |
| | | content: tip, |
| | | duration: 0, |
| | | closable: true, |
| | | }); |
| | | }, |
| | | async onDelClick() { |
| | | this.$Modal.confirm({ |
| | |
| | | this.$Message.success("删除成功!"); |
| | | }, 2000); |
| | | }, |
| | | onSelectionChange(selection) { |
| | | this.selection = selection; |
| | | }, |
| | | onPageChange(page) { |
| | | this.page = page; |
| | | this.loadData(); |
| | | }, |
| | | onPageSizeChange(limit) { |
| | | this.limit = limit; |
| | | this.loadData(); |
| | | }, |
| | | onPrev(page) { |
| | | this.page = page; |
| | | this.loadData(); |
| | | }, |
| | | onNext(page) { |
| | | this.page = page; |
| | | this.loadData(); |
| | | }, |
| | | }, |
| | | async mounted() { |
| | | await this.loadColumns(); |
| | | await this.loadData(); |
| | | this.$nextTick(() => { |
| | | this.resize(); |
| | | this.loadData(); |
| | | }); |
| | | }, |
| | | setup() { |
| | |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | <style lang="less"> |
| | | .example-data-table { |
| | | height: 100%; |
| | | .search-form, |
| | | .buttons { |
| | | margin-bottom: 9px; |
| | | } |
| | | .table { |
| | | height: calc(100% - 170px); |
| | | } |
| | | .ivu-form .ivu-form-item-label, |
| | | .ivu-checkbox-wrapper { |
| | | font-size: 12px; |
| | | } |
| | | .ivu-input-wrapper { |
| | | .ivu-icon { |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .ivu-checkbox-input[disabled] { |
| | | cursor: default; |
| | | } |
| | | .ivu-checkbox-disabled .ivu-checkbox-inner { |
| | | border-color: #666; |
| | | background-color: #fff; |
| | | } |
| | | .ivu-checkbox-disabled.ivu-checkbox-checked .ivu-checkbox-inner:after { |
| | | border-color: #666; |
| | | } |
| | | } |
| | | </style> |
New file |
| | |
| | | import Excel from '@/libs/excel' |
| | | |
| | | /** |
| | | * 导出数据到xlsx文件 |
| | | * @param {*} vm |
| | | * @param {*} btn |
| | | */ |
| | | export const exportExcel = async (vm, datas) => { |
| | | const columns = vm.columns.filter(c => c.key != 'index').map(c => ({ |
| | | header: c.title, |
| | | key: c.key, |
| | | width: (c.width || 25) / 8, |
| | | style: { |
| | | alignment: { |
| | | horizontal: c.TextAlign || 'left' |
| | | } |
| | | } |
| | | })); |
| | | let frozenColumnId = 1 |
| | | const excel = new Excel(); |
| | | excel.exportExcel({ |
| | | name: '导出文件', |
| | | datas, |
| | | columns, |
| | | frozenColumnId, |
| | | }) |
| | | } |
| | |
| | | <Row> |
| | | <Col span="6"> |
| | | <FormItem label="仓库编码:"> |
| | | <Input |
| | | v-model="topForm.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="topForm.WH_Code" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="仓库名称:"> |
| | | <Input |
| | | v-model="topForm.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="topForm.WH_Code" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="仓库负责人:"> |
| | | <Input |
| | | v-model="topForm.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="topForm.WH_Code" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="仓库电话:"> |
| | | <Input |
| | | v-model="topForm.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="topForm.WH_Code" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | </Row> |
| | | <Row> |
| | | <Col span="6"> |
| | | <FormItem label="上级仓库编码:"> |
| | | <Input |
| | | v-model="topForm.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="topForm.WH_Code" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="地址:"> |
| | | <Input |
| | | v-model="topForm.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="topForm.WH_Code" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="4"> |
| | |
| | | :tableHeight="tableTopHeight" |
| | | :columns="topColumns" |
| | | :data="topData" |
| | | :page="topPage" |
| | | :limit="topLimit" |
| | | :limits="topLimits" |
| | | :total="topTotal" |
| | | :loading="topLoading" |
| | | highlight-row |
| | | @on-current-change="onCurrentChange" |
| | | @on-change="onPageChange" |
| | | @on-page-size-change="onPageSizeChange" |
| | | @on-prev="onPrev" |
| | | @on-next="onNext" |
| | | ref="refTopTable" |
| | | ></DataTable> |
| | | </div> |
| | | </template> |
| | |
| | | </div> |
| | | </template> |
| | | </Split> |
| | | <Spin fix :show="loading" /> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | // 分隔比例 |
| | | split: 0.6, |
| | | // 主表参数定义 |
| | | topColumns: [], |
| | | topData: [], |
| | | tableTopHeight: 0, |
| | |
| | | topForm: { |
| | | WH_Code: "", |
| | | }, |
| | | topPage: 1, |
| | | topLimit: 30, |
| | | topLimits: [10, 20, 30], |
| | | topTotal: 0, |
| | | topLoading: false, |
| | | currentRow: undefined, |
| | | // 从表参数定义 |
| | | bottomColumns: [], |
| | | bottomData: [], |
| | | split: 0.6, |
| | | |
| | | loading: false, |
| | | }; |
| | | }, |
| | | methods: { |
| | | async loadTopColumns() { |
| | | this.topColumns = [ |
| | | { |
| | | type: "index", |
| | | key: "index", |
| | | title: " ", |
| | | render: (h, { index }) => { |
| | | return h(index); |
| | | return h("div", (this.topPage - 1) * this.topLimit + index + 1); |
| | | }, |
| | | width: 50, |
| | | width: 40, |
| | | align: "center", |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "orderNo", |
| | | title: "到货单号", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "checkNo", |
| | | title: "检查单号", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "invertoryCode", |
| | | title: "存货编码", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "invertoryName", |
| | | title: "存货名称", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "specModel", |
| | | title: "规格型号", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "logo", |
| | | title: "品牌", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "desc", |
| | | title: "参数描述", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "material", |
| | | title: "材料", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "unit", |
| | | title: "单位", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "count", |
| | | title: "入库数量", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "arriveDate", |
| | | title: "到货日期", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "checkDate", |
| | | title: "检查日期", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "business", |
| | | title: "业务类型", |
| | | width: 100, |
| | | }, |
| | | ]; |
| | | }, |
| | | async loadTopData() {}, |
| | | // 加载主表数据 |
| | | async loadTopData() { |
| | | let msg = this.$Message.loading("正在加载数据..."); |
| | | this.topLoading = true; |
| | | |
| | | this.bottomData = []; |
| | | |
| | | let { data, total } = await this.fakeTopDataList(); |
| | | |
| | | msg(); |
| | | |
| | | this.topData = data; |
| | | this.topTotal = total; |
| | | this.topLoading = false; |
| | | |
| | | this.$nextTick(() => { |
| | | let firstRow = this.refTopTable.refTable.objData[0]; |
| | | if (firstRow) { |
| | | firstRow._isHighlight = true; |
| | | this.currentRow = this.topData[0]; |
| | | this.loadBottomData(); |
| | | } |
| | | }); |
| | | }, |
| | | // 主表测试数据列表 |
| | | fakeTopDataList() { |
| | | return new Promise((resolve) => { |
| | | let total = 99; |
| | | let fakeList = []; |
| | | for (let i = 0; i < this.topLimit; i++) { |
| | | let row = { |
| | | orderNo: `到货单号-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | checkNo: `检查单号-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | invertoryCode: `存货编码-${ |
| | | (this.topPage - 1) * this.topLimit + i + 1 |
| | | }`, |
| | | invertoryName: `存货名称-${ |
| | | (this.topPage - 1) * this.topLimit + i + 1 |
| | | }`, |
| | | specModel: `规格型号-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | logo: `品牌-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | desc: `参数描述-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | material: `材料-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | unit: `单位-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | count: `入库数量-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | arriveDate: `到货日期-${ |
| | | (this.topPage - 1) * this.topLimit + i + 1 |
| | | }`, |
| | | checkDate: `检查日期-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | business: `业务类型-${(this.topPage - 1) * this.topLimit + i + 1}`, |
| | | }; |
| | | if ((this.topPage - 1) * this.topLimit + i + 1 < 100) |
| | | fakeList.push(row); |
| | | } |
| | | setTimeout(() => { |
| | | resolve({ data: fakeList, total }); |
| | | }, 1 * 1000); |
| | | }); |
| | | }, |
| | | // 从表测试数据列表 |
| | | fakeBottomDataList(topDataId) { |
| | | return new Promise((resolve) => { |
| | | let total = Math.floor(Math.random() * 10); |
| | | let fakeList = []; |
| | | for (let i = 0; i < total; i++) { |
| | | let row = { |
| | | checkOrder: `${topDataId}-${i + 1}`, |
| | | arriveOrder: `${topDataId}-${i + 1}`, |
| | | location: `${topDataId}-${i + 1}`, |
| | | supplier: `${topDataId}-${i + 1}`, |
| | | asnCode: `${topDataId}-${i + 1}`, |
| | | supplierCode: `${topDataId}-${i + 1}`, |
| | | WHName: `${topDataId}-${i + 1}`, |
| | | count: `${topDataId}-${i + 1}`, |
| | | canUsedCount: `${topDataId}-${i + 1}`, |
| | | invertoryCode: `${topDataId}-${i + 1}`, |
| | | invertoryName: `${topDataId}-${i + 1}`, |
| | | specModel: `${topDataId}-${i + 1}`, |
| | | logo: `${topDataId}-${i + 1}`, |
| | | wpn: `${topDataId}-${i + 1}`, |
| | | }; |
| | | fakeList.push(row); |
| | | } |
| | | setTimeout(() => { |
| | | resolve(fakeList); |
| | | }, 1 * 1000); |
| | | }); |
| | | }, |
| | | loadBottomColumns() { |
| | | this.bottomColumns = [ |
| | | { |
| | | type: "index", |
| | | key: "index", |
| | | title: " ", |
| | | render: (h, { index }) => { |
| | | return h(index); |
| | | return h("div", index + 1); |
| | | }, |
| | | width: 50, |
| | | width: 40, |
| | | align: "center", |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "checkOrder", |
| | | title: "检验单", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "arriveOrder", |
| | | title: "到货单", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "location", |
| | | title: "待检货位", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "supplier", |
| | | title: "供应商名称", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "asnCode", |
| | | title: "ASN单号", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "supplierCode", |
| | | title: "供应商编码", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "WHName", |
| | | title: "仓库名称", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "count", |
| | | title: "数量", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "canUsedCount", |
| | | title: "可用绑定数量", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "invertoryCode", |
| | | title: "存货编码", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "invertoryName", |
| | | title: "存货名称", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "specModel", |
| | | title: "规格型号", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "logo", |
| | | title: "品牌", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "wpn", |
| | | title: "WPN", |
| | | width: 100, |
| | | }, |
| | | ]; |
| | | }, |
| | | async loadBottomData() {}, |
| | | // 加载从表数据 |
| | | async loadBottomData() { |
| | | let { orderNo } = this.currentRow; |
| | | let data = await this.fakeBottomDataList(orderNo); |
| | | this.bottomData = data; |
| | | }, |
| | | resize() { |
| | | this.$nextTick(() => { |
| | | let topHeight = |
| | |
| | | this.tableBottomHeight = bottomHeight; |
| | | }); |
| | | }, |
| | | // 主表切换选择行时触发 |
| | | async onCurrentChange(row) { |
| | | this.currentRow = row; |
| | | this.loading = true; |
| | | await this.loadBottomData(); |
| | | this.loading = false; |
| | | }, |
| | | onPageChange(page) { |
| | | this.topPage = page; |
| | | this.loadTopData(); |
| | | }, |
| | | onPageSizeChange(limit) { |
| | | this.topLimit = limit; |
| | | this.loadTopData(); |
| | | }, |
| | | onPrev(page) { |
| | | this.topPage = page; |
| | | this.loadTopData(); |
| | | }, |
| | | onNext(page) { |
| | | this.topPage = page; |
| | | this.loadTopData(); |
| | | }, |
| | | }, |
| | | async mounted() { |
| | | await this.loadTopColumns(); |
| | | await this.loadTopData(); |
| | | await this.loadBottomColumns(); |
| | | await this.loadBottomData(); |
| | | this.$nextTick(() => { |
| | | this.$nextTick(async () => { |
| | | await this.loadTopData(); |
| | | this.resize(); |
| | | }); |
| | | }, |
| | | setup() { |
| | | const refTopView = ref(null); |
| | | const refBottomView = ref(null); |
| | | return { refTopView, refBottomView }; |
| | | const refTopTable = ref(null); |
| | | return { refTopView, refBottomView, refTopTable }; |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | <Row> |
| | | <Col span="6"> |
| | | <FormItem label="供应商编码:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.SupplierCode" size="small"> |
| | | <template #suffix> |
| | | <Icon type="ios-more" /> |
| | | </template> |
| | | </Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="供应商名称:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.SupplierName" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="ASN单号:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | <Input v-model="form.ASNCode" size="small"> |
| | | <template #suffix> <Icon type="ios-more" /> </template |
| | | ></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="存货:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | <Input v-model="form.Invertory" size="small"> |
| | | <template #suffix> <Icon type="ios-more" /> </template |
| | | ></Input> |
| | | </FormItem> |
| | | </Col> |
| | |
| | | <Row> |
| | | <Col span="6"> |
| | | <FormItem label="代购订单号:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | <Input v-model="form.PurchaseOrderNo" size="small"> |
| | | <template #suffix> <Icon type="ios-more" /> </template |
| | | ></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="12"> |
| | | <FormItem label="订单交期:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | <DatePicker |
| | | type="daterange" |
| | | v-model="form.OrderDate" |
| | | separator=" 至 " |
| | | size="small" |
| | | ></Input> |
| | | style="width: 100%" |
| | | ></DatePicker> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="状态:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Select v-model="form.State" size="small"> |
| | | <Option :value="0">一</Option> |
| | | <Option :value="1">二</Option> |
| | | <Option :value="2">三</Option> |
| | | </Select> |
| | | </FormItem> |
| | | </Col> |
| | | </Row> |
| | | <Row> |
| | | <Col span="6"> |
| | | <FormItem label="采购员:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Input v-model="form.Purchase" size="small"></Input> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="采购类型:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Select v-model="form.PurchaseType" size="small"> |
| | | <Option :value="0">一</Option> |
| | | <Option :value="1">二</Option> |
| | | <Option :value="2">三</Option> |
| | | </Select> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="单据类型:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Select v-model="form.DocumentType" size="small"> |
| | | <Option :value="0">一</Option> |
| | | <Option :value="1">二</Option> |
| | | <Option :value="2">三</Option> |
| | | </Select> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="关闭状态:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Select v-model="form.CloseState" size="small"> |
| | | <Option :value="0">一</Option> |
| | | <Option :value="1">二</Option> |
| | | <Option :value="2">三</Option> |
| | | </Select> |
| | | </FormItem> |
| | | </Col> |
| | | </Row> |
| | | <Row> |
| | | <Col span="6"> |
| | | <FormItem label="是否到货完成:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <Select v-model="form.IsArrived" size="small"> |
| | | <Option :value="0">一</Option> |
| | | <Option :value="1">二</Option> |
| | | <Option :value="2">三</Option> |
| | | </Select> |
| | | </FormItem> |
| | | </Col> |
| | | <Col span="6"> |
| | | <FormItem label="ASN创建日期:"> |
| | | <Input |
| | | v-model="form.WH_Code" |
| | | placeholder="Enter something..." |
| | | size="small" |
| | | ></Input> |
| | | <DatePicker type="date" v-model="form.CreateTime" size="small" /> |
| | | </FormItem> |
| | | </Col> |
| | | </Row> |
| | | </Form> |
| | | </div> |
| | | <div class="buttons"> |
| | | <Button type="success" size="small" @click="onExportClick">导出</Button> |
| | | <Space> |
| | | <Button type="primary" size="small" @click="onSearchClick">查询</Button> |
| | | <Button type="primary" size="small" @click="onClearClick">清空</Button> |
| | | <Button type="success" size="small" @click="onExportClick">导出</Button> |
| | | </Space> |
| | | </div> |
| | | <DataTable |
| | | :tableHeight="tableHeight" |
| | | :columns="columns" |
| | | :data="data" |
| | | ></DataTable> |
| | | <div class="table"> |
| | | <DataTable |
| | | :tableHeight="tableHeight" |
| | | :columns="columns" |
| | | :data="data" |
| | | :page="page" |
| | | :limit="limit" |
| | | :limits="limits" |
| | | :total="total" |
| | | :loading="loading" |
| | | @on-change="onPageChange" |
| | | @on-page-size-change="onPageSizeChange" |
| | | @on-prev="onPrev" |
| | | @on-next="onNext" |
| | | ></DataTable> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { ref } from "vue"; |
| | | import DataTable from "@/components/examples/data-table.vue"; |
| | | import { exportExcel } from "./excel.js"; |
| | | export default { |
| | | name: "ExampleReportView", |
| | | components: { |
| | |
| | | columns: [], |
| | | data: [], |
| | | tableHeight: 0, |
| | | // 查询表单的定义 |
| | | form: { |
| | | WH_Code: "", |
| | | SupplierCode: "", |
| | | ASNName: "", |
| | | ASNCode: "", |
| | | Invertory: "", |
| | | PurchaseOrderNo: "", |
| | | OrderDate: [], |
| | | State: "", |
| | | Purchase: "", |
| | | PurchaseType: "", |
| | | DocumentType: "", |
| | | CloseState: "", |
| | | IsArrived: "", |
| | | ASNCreateDate: "", |
| | | }, |
| | | // 分页参数 |
| | | page: 1, |
| | | limit: 30, |
| | | limits: [10, 20, 30], |
| | | total: 0, |
| | | loading: false, |
| | | }; |
| | | }, |
| | | methods: { |
| | | async loadColumns() { |
| | | this.columns = [ |
| | | { |
| | | type: "index", |
| | | key: "index", |
| | | title: " ", |
| | | render: (h, { index }) => { |
| | | return h(index); |
| | | return h("div", (this.page - 1) * this.limit + index + 1); |
| | | }, |
| | | width: 50, |
| | | width: 40, |
| | | align: "center", |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "ASNCode", |
| | | title: "ASN单号", |
| | | width: 100, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "CloseState", |
| | | title: "关闭状态", |
| | | width: 100, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "InventoryState", |
| | | title: "存货状态", |
| | | width: 100, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "InvertoryName", |
| | | title: "存货名称", |
| | | width: 100, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "SpecModel", |
| | | title: "规格型号", |
| | | width: 100, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "AuditState", |
| | | title: "审核状态", |
| | | width: 100, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "SendDate", |
| | | title: "发货日期", |
| | | width: 100, |
| | | sortable: true, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "SupplierCode", |
| | | title: "供应商编码", |
| | | width: 100, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "SupplierName", |
| | | title: "供应商名称", |
| | | width: 100, |
| | | resizable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "Creator", |
| | | title: "创建人", |
| | | width: 100, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "CreateTime", |
| | | title: "创建时间", |
| | | width: 100, |
| | | sortable: true, |
| | | }, |
| | | { |
| | | key: "", |
| | | key: "PurchasePoint", |
| | | title: "采购点", |
| | | width: 100, |
| | | }, |
| | | ]; |
| | | }, |
| | | async loadData() {}, |
| | | // 加载数据行 |
| | | async loadData() { |
| | | let msg = this.$Message.loading("正在加载数据..."); |
| | | this.loading = true; |
| | | |
| | | let { data, total } = await this.fakeDataList(); |
| | | |
| | | msg(); |
| | | |
| | | this.data = data; |
| | | this.total = total; |
| | | this.loading = false; |
| | | }, |
| | | // 加载全部数据(导出) |
| | | async loadAllData() { |
| | | let msg = this.$Message.loading("正在加载数据..."); |
| | | this.loading = true; |
| | | |
| | | let { data } = await this.fakeDataList(this.total); |
| | | |
| | | msg(); |
| | | |
| | | this.loading = false; |
| | | |
| | | return data; |
| | | }, |
| | | // 测试数据列表 |
| | | fakeDataList(limit) { |
| | | return new Promise((resolve) => { |
| | | let total = 99; |
| | | let fakeList = []; |
| | | for (let i = 0; i < (limit || this.limit); i++) { |
| | | let row = { |
| | | ASNCode: `ASN单号-${(this.page - 1) * this.limit + i + 1}`, |
| | | CloseState: `关闭状态-${(this.page - 1) * this.limit + i + 1}`, |
| | | InventoryState: `存货状态-${(this.page - 1) * this.limit + i + 1}`, |
| | | InvertoryName: `存货名称-${(this.page - 1) * this.limit + i + 1}`, |
| | | SpecModel: `规格型号-${(this.page - 1) * this.limit + i + 1}`, |
| | | AuditState: `审核状态-${(this.page - 1) * this.limit + i + 1}`, |
| | | SendDate: `发货日期-${(this.page - 1) * this.limit + i + 1}`, |
| | | SupplierCode: `供应商编码-${(this.page - 1) * this.limit + i + 1}`, |
| | | SupplierName: `供应商名称-${(this.page - 1) * this.limit + i + 1}`, |
| | | Creator: `创建人-${(this.page - 1) * this.limit + i + 1}`, |
| | | CreateTime: `创建时间-${(this.page - 1) * this.limit + i + 1}`, |
| | | PurchasePoint: `采购点-${(this.page - 1) * this.limit + i + 1}`, |
| | | }; |
| | | if ((this.page - 1) * this.limit + i + 1 < 100) fakeList.push(row); |
| | | } |
| | | setTimeout(() => { |
| | | resolve({ data: fakeList, total }); |
| | | }, 1 * 1000); |
| | | }); |
| | | }, |
| | | resize() { |
| | | let height = |
| | | this.refView.clientHeight - |
| | |
| | | 9; |
| | | this.tableHeight = height; |
| | | }, |
| | | onExportClick() {}, |
| | | onSearchClick() { |
| | | alert(JSON.stringify(this.form, "", " ")); |
| | | }, |
| | | onClearClick() { |
| | | this.form.SupplierCode = ""; |
| | | this.form.ASNName = ""; |
| | | this.form.ASNCode = ""; |
| | | this.form.Invertory = ""; |
| | | this.form.PurchaseOrderNo = ""; |
| | | this.form.OrderDate = []; |
| | | this.form.State = ""; |
| | | this.form.Purchase = ""; |
| | | this.form.PurchaseType = ""; |
| | | this.form.DocumentType = ""; |
| | | this.form.CloseState = ""; |
| | | this.form.IsArrived = ""; |
| | | this.form.ASNCreateDate = ""; |
| | | }, |
| | | async onExportClick() { |
| | | let datas = await this.loadAllData(); |
| | | await exportExcel(this, datas); |
| | | }, |
| | | onPageChange(page) { |
| | | this.page = page; |
| | | this.loadData(); |
| | | }, |
| | | onPageSizeChange(limit) { |
| | | this.limit = limit; |
| | | this.loadData(); |
| | | }, |
| | | onPrev(page) { |
| | | this.page = page; |
| | | this.loadData(); |
| | | }, |
| | | onNext(page) { |
| | | this.page = page; |
| | | this.loadData(); |
| | | }, |
| | | }, |
| | | async mounted() { |
| | | await this.loadColumns(); |
| | | await this.loadData(); |
| | | this.loadData(); |
| | | this.$nextTick(() => { |
| | | this.resize(); |
| | | }); |
| | |
| | | .buttons { |
| | | margin-bottom: 9px; |
| | | } |
| | | .table { |
| | | height: calc(100% - 170px); |
| | | } |
| | | .ivu-form .ivu-form-item-label, |
| | | .ivu-checkbox-wrapper { |
| | | font-size: 12px; |
| | | } |
| | | .ivu-input-wrapper { |
| | | .ivu-icon { |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | } |
| | | </style> |