From 3d3e7f45086799fdd7a412e2079710a6cdf8dc2b Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期四, 24 十月 2024 08:30:04 +0800
Subject: [PATCH] Merge branch 'lsf-dataproduct-1018'
---
src/views/fysp/data-product/ProdSceneReport.vue | 8
src/views/fysp/task/components/CompSubTaskSelect.vue | 6
src/api/fysp/dataproductApi.js | 34
package-lock.json | 1600 +++++++++++++++++++++++++++++---
src/components.d.ts | 8
src/views/fysp/data-product/ProdProAnalysis.vue | 12
src/views/fysp/data-product/ProdStandardJudge.vue | 12
src/views/fysp/data-product/components/CompReportDownloadDialog.vue | 80 +
src/views/fysp/task/components/CompSubTaskEdit.vue | 170 +++
src/components/form/FYForm.vue | 4
src/views/fysp/data-product/ProdProFollow.vue | 12
src/views/fysp/task/components/CompTaskEdit.vue | 2
src/views/fysp/task/TaskProxy.js | 23
src/api/index.js | 2
src/api/fysp/subtaskApi.js | 20
src/views/fysp/task/components/CompDayTask.vue | 133 +
package.json | 6
src/components/core/SiderMenu.vue | 6
src/components/list-item/ItemSubTask.vue | 163 +++
src/views/fysp/task/components/CompSubTaskList.vue | 119 ++
src/views/fysp/data-product/components/BaseDataProduct.vue | 353 +++++++
src/views/fysp/task/TaskManage.vue | 46
src/views/fysp/task/components/CompMonitorPlan.vue | 53
23 files changed, 2,569 insertions(+), 303 deletions(-)
diff --git a/package-lock.json b/package-lock.json
index 508cba5..8c46b4e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -11,16 +11,20 @@
"@amap/amap-jsapi-loader": "^1.0.1",
"@ctrl/tinycolor": "^4.0.2",
"@element-plus/icons-vue": "^2.0.10",
+ "@vue-office/excel": "^1.7.11",
"@vueuse/core": "^9.7.0",
"axios": "^1.2.1",
"dayjs": "^1.11.13",
"element-plus": "^2.8.3",
+ "exceljs": "^4.4.0",
"js-base64": "^3.7.5",
"md5": "^2.3.0",
"pinia": "^2.0.26",
"vue": "^3.2.45",
+ "vue-demi": "^0.14.6",
"vue-i18n": "^9.8.0",
- "vue-router": "^4.1.6"
+ "vue-router": "^4.1.6",
+ "xlsx": "^0.18.5"
},
"devDependencies": {
"@babel/cli": "^7.19.3",
@@ -1899,6 +1903,33 @@
"url": "https://opencollective.com/eslint"
}
},
+ "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/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/@floating-ui/core": {
"version": "1.0.4",
"license": "MIT"
@@ -2208,7 +2239,6 @@
},
"node_modules/@types/node": {
"version": "14.18.34",
- "dev": true,
"license": "MIT"
},
"node_modules/@types/semver": {
@@ -2409,6 +2439,22 @@
"vue": "^3.2.25"
}
},
+ "node_modules/@vue-office/excel": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmmirror.com/@vue-office/excel/-/excel-1.7.11.tgz",
+ "integrity": "sha512-LF3R9IV573Sf4qTu6Ik5Ee8UMfkrsZQ6HEQE25/2m1c0CMcHX6KanIy6Cz0b0Q+FrLH3TjIsLTm6oPcqAbDGSA==",
+ "hasInstallScript": true,
+ "peerDependencies": {
+ "@vue/composition-api": "^1.7.1",
+ "vue": "^2.0.0 || >=3.0.0",
+ "vue-demi": "^0.14.6"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
+ }
+ },
"node_modules/@vue/compiler-core": {
"version": "3.2.45",
"license": "MIT",
@@ -2527,30 +2573,6 @@
"url": "https://github.com/sponsors/antfu"
}
},
- "node_modules/@vueuse/core/node_modules/vue-demi": {
- "version": "0.13.11",
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "vue-demi-fix": "bin/vue-demi-fix.js",
- "vue-demi-switch": "bin/vue-demi-switch.js"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.0-rc.1",
- "vue": "^3.0.0-0 || ^2.6.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- }
- }
- },
"node_modules/@vueuse/metadata": {
"version": "9.7.0",
"license": "MIT",
@@ -2566,30 +2588,6 @@
},
"funding": {
"url": "https://github.com/sponsors/antfu"
- }
- },
- "node_modules/@vueuse/shared/node_modules/vue-demi": {
- "version": "0.13.11",
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "vue-demi-fix": "bin/vue-demi-fix.js",
- "vue-demi-switch": "bin/vue-demi-switch.js"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.0-rc.1",
- "vue": "^3.0.0-0 || ^2.6.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- }
}
},
"node_modules/@webassemblyjs/ast": {
@@ -2800,6 +2798,14 @@
"node": ">=0.4.0"
}
},
+ "node_modules/adler-32": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+ "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/agent-base": {
"version": "6.0.2",
"dev": true,
@@ -2933,6 +2939,70 @@
],
"license": "MIT"
},
+ "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/arg": {
"version": "5.0.2",
"dev": true,
@@ -2986,7 +3056,6 @@
},
"node_modules/async": {
"version": "3.2.4",
- "dev": true,
"license": "MIT"
},
"node_modules/async-validator": {
@@ -3121,12 +3190,10 @@
},
"node_modules/balanced-match": {
"version": "1.0.2",
- "dev": true,
"license": "MIT"
},
"node_modules/base64-js": {
"version": "1.5.1",
- "dev": true,
"funding": [
{
"type": "github",
@@ -3151,12 +3218,42 @@
"tweetnacl": "^0.14.3"
}
},
+ "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/binary-extensions": {
"version": "2.2.0",
"dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
+ }
+ },
+ "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/blob-util": {
@@ -3176,7 +3273,6 @@
},
"node_modules/brace-expansion": {
"version": "1.1.11",
- "dev": true,
"license": "MIT",
"dependencies": {
"balanced-match": "^1.0.0",
@@ -3223,7 +3319,6 @@
},
"node_modules/buffer": {
"version": "5.7.1",
- "dev": true,
"funding": [
{
"type": "github",
@@ -3246,7 +3341,6 @@
},
"node_modules/buffer-crc32": {
"version": "0.2.13",
- "dev": true,
"license": "MIT",
"engines": {
"node": "*"
@@ -3257,6 +3351,22 @@
"dev": true,
"license": "MIT",
"peer": true
+ },
+ "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/cachedir": {
"version": "2.3.0",
@@ -3294,6 +3404,18 @@
"dev": true,
"license": "Apache-2.0"
},
+ "node_modules/cfb": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+ "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+ "dependencies": {
+ "adler-32": "~1.3.0",
+ "crc-32": "~1.2.0"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/chai": {
"version": "4.3.7",
"dev": true,
@@ -3309,6 +3431,17 @@
},
"engines": {
"node": ">=4"
+ }
+ },
+ "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/chalk": {
@@ -3463,6 +3596,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/codepage": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+ "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/color-convert": {
"version": "2.0.1",
"dev": true,
@@ -3510,9 +3651,22 @@
"node": ">=4.0.0"
}
},
+ "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",
- "dev": true,
"license": "MIT"
},
"node_modules/convert-source-map": {
@@ -3545,8 +3699,30 @@
},
"node_modules/core-util-is": {
"version": "1.0.2",
- "dev": true,
"license": "MIT"
+ },
+ "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.3",
@@ -3773,6 +3949,41 @@
"dev": true,
"license": "MIT"
},
+ "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/ecc-jsbn": {
"version": "0.1.2",
"dev": true,
@@ -3827,7 +4038,6 @@
},
"node_modules/end-of-stream": {
"version": "1.4.4",
- "dev": true,
"license": "MIT",
"dependencies": {
"once": "^1.4.0"
@@ -4285,6 +4495,36 @@
"node": ">=0.8.x"
}
},
+ "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/exceljs/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/execa": {
"version": "4.1.0",
"dev": true,
@@ -4349,6 +4589,18 @@
"node >=0.6.0"
],
"license": "MIT"
+ },
+ "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/fast-deep-equal": {
"version": "3.1.3",
@@ -4522,6 +4774,14 @@
"node": ">= 0.12"
}
},
+ "node_modules/frac": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+ "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/fraction.js": {
"version": "4.2.0",
"dev": true,
@@ -4538,6 +4798,11 @@
"version": "0.1.7",
"dev": true,
"license": "MIT"
+ },
+ "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": "9.1.0",
@@ -4560,8 +4825,34 @@
},
"node_modules/fs.realpath": {
"version": "1.0.0",
- "dev": true,
"license": "ISC"
+ },
+ "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/fstream/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/function-bind": {
"version": "1.1.1",
@@ -4616,7 +4907,6 @@
},
"node_modules/glob": {
"version": "7.2.3",
- "dev": true,
"license": "ISC",
"dependencies": {
"fs.realpath": "^1.0.0",
@@ -4706,7 +4996,6 @@
},
"node_modules/graceful-fs": {
"version": "4.2.10",
- "dev": true,
"license": "ISC"
},
"node_modules/grapheme-splitter": {
@@ -4809,7 +5098,6 @@
},
"node_modules/ieee754": {
"version": "1.2.1",
- "dev": true,
"funding": [
{
"type": "github",
@@ -4845,6 +5133,11 @@
"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/immutable": {
"version": "4.1.0",
@@ -4884,7 +5177,6 @@
},
"node_modules/inflight": {
"version": "1.0.6",
- "dev": true,
"license": "ISC",
"dependencies": {
"once": "^1.3.0",
@@ -4893,7 +5185,6 @@
},
"node_modules/inherits": {
"version": "2.0.4",
- "dev": true,
"license": "ISC"
},
"node_modules/ini": {
@@ -5036,6 +5327,11 @@
"version": "3.14.1",
"dev": true,
"license": "MIT"
+ },
+ "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",
@@ -5260,6 +5556,44 @@
"verror": "1.10.0"
}
},
+ "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/klona": {
"version": "2.0.5",
"dev": true,
@@ -5274,6 +5608,44 @@
"license": "MIT",
"engines": {
"node": "> 0.8"
+ }
+ },
+ "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": {
@@ -5331,6 +5703,19 @@
"engines": {
"node": ">= 0.8.0"
}
+ },
+ "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/listr2": {
"version": "3.14.0",
@@ -5414,6 +5799,61 @@
"dev": true,
"license": "MIT"
},
+ "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=="
+ },
+ "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.merge": {
"version": "4.6.2",
"dev": true,
@@ -5423,6 +5863,16 @@
"version": "4.1.1",
"dev": true,
"license": "MIT"
+ },
+ "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/log-symbols": {
"version": "4.1.0",
@@ -5621,7 +6071,6 @@
},
"node_modules/minimatch": {
"version": "3.1.2",
- "dev": true,
"license": "ISC",
"dependencies": {
"brace-expansion": "^1.1.7"
@@ -5632,10 +6081,20 @@
},
"node_modules/minimist": {
"version": "1.2.7",
- "dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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/ms": {
@@ -5697,7 +6156,6 @@
},
"node_modules/normalize-path": {
"version": "3.0.0",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -5744,7 +6202,6 @@
},
"node_modules/once": {
"version": "1.4.0",
- "dev": true,
"license": "ISC",
"dependencies": {
"wrappy": "1"
@@ -5827,6 +6284,11 @@
"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/parent-module": {
"version": "1.0.1",
"dev": true,
@@ -5867,7 +6329,6 @@
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=0.10.0"
@@ -5971,30 +6432,6 @@
}
}
},
- "node_modules/pinia/node_modules/vue-demi": {
- "version": "0.13.11",
- "hasInstallScript": true,
- "license": "MIT",
- "bin": {
- "vue-demi-fix": "bin/vue-demi-fix.js",
- "vue-demi-switch": "bin/vue-demi-switch.js"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sponsors/antfu"
- },
- "peerDependencies": {
- "@vue/composition-api": "^1.0.0-rc.1",
- "vue": "^3.0.0-0 || ^2.6.0"
- },
- "peerDependenciesMeta": {
- "@vue/composition-api": {
- "optional": true
- }
- }
- },
"node_modules/postcss": {
"version": "8.4.20",
"funding": [
@@ -6064,6 +6501,11 @@
"funding": {
"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/proxy-from-env": {
"version": "1.0.0",
@@ -6151,6 +6593,46 @@
"peer": true,
"dependencies": {
"safe-buffer": "^5.1.0"
+ }
+ },
+ "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/readdirp": {
@@ -6308,7 +6790,6 @@
},
"node_modules/rimraf": {
"version": "3.0.2",
- "dev": true,
"license": "ISC",
"dependencies": {
"glob": "^7.1.3"
@@ -6366,7 +6847,6 @@
},
"node_modules/safe-buffer": {
"version": "5.2.1",
- "dev": true,
"funding": [
{
"type": "github",
@@ -6462,6 +6942,11 @@
"randombytes": "^2.1.0"
}
},
+ "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",
"dev": true,
@@ -6544,6 +7029,17 @@
},
"engines": {
"node": "*"
+ }
+ },
+ "node_modules/ssf": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+ "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+ "dependencies": {
+ "frac": "~1.1.2"
+ },
+ "engines": {
+ "node": ">=0.8"
}
},
"node_modules/sshpk": {
@@ -6640,6 +7136,14 @@
"license": "MIT",
"dependencies": {
"duplexer": "~0.1.1"
+ }
+ },
+ "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/string-natural-compare": {
@@ -6740,6 +7244,21 @@
"node": ">=6"
}
},
+ "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/terser": {
"version": "5.16.1",
"dev": true,
@@ -6836,7 +7355,6 @@
},
"node_modules/tmp": {
"version": "0.2.1",
- "dev": true,
"license": "MIT",
"dependencies": {
"rimraf": "^3.0.0"
@@ -6885,6 +7403,14 @@
},
"engines": {
"node": ">=12"
+ }
+ },
+ "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/ts-api-utils": {
@@ -7178,6 +7704,55 @@
"node": ">=8"
}
},
+ "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/bluebird": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz",
+ "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="
+ },
+ "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": {
"version": "1.0.10",
"dev": true,
@@ -7222,12 +7797,10 @@
},
"node_modules/util-deprecate": {
"version": "1.0.2",
- "dev": true,
"license": "MIT"
},
"node_modules/uuid": {
"version": "8.3.2",
- "dev": true,
"license": "MIT",
"bin": {
"uuid": "dist/bin/uuid"
@@ -7357,6 +7930,31 @@
"@vue/runtime-dom": "3.2.45",
"@vue/server-renderer": "3.2.45",
"@vue/shared": "3.2.45"
+ }
+ },
+ "node_modules/vue-demi": {
+ "version": "0.14.6",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz",
+ "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+ "hasInstallScript": true,
+ "bin": {
+ "vue-demi-fix": "bin/vue-demi-fix.js",
+ "vue-demi-switch": "bin/vue-demi-switch.js"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/antfu"
+ },
+ "peerDependencies": {
+ "@vue/composition-api": "^1.0.0-rc.1",
+ "vue": "^3.0.0-0 || ^2.6.0"
+ },
+ "peerDependenciesMeta": {
+ "@vue/composition-api": {
+ "optional": true
+ }
}
},
"node_modules/vue-eslint-parser": {
@@ -7596,6 +8194,22 @@
"node": ">= 8"
}
},
+ "node_modules/wmf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+ "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/word": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+ "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/word-wrap": {
"version": "1.2.3",
"dev": true,
@@ -7622,7 +8236,6 @@
},
"node_modules/wrappy": {
"version": "1.0.2",
- "dev": true,
"license": "ISC"
},
"node_modules/ws": {
@@ -7645,6 +8258,26 @@
}
}
},
+ "node_modules/xlsx": {
+ "version": "0.18.5",
+ "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+ "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+ "dependencies": {
+ "adler-32": "~1.3.0",
+ "cfb": "~1.2.1",
+ "codepage": "~1.15.0",
+ "crc-32": "~1.2.1",
+ "ssf": "~0.11.2",
+ "wmf": "~1.0.1",
+ "word": "~0.3.0"
+ },
+ "bin": {
+ "xlsx": "bin/xlsx.njs"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
"node_modules/xml-name-validator": {
"version": "4.0.0",
"dev": true,
@@ -7655,7 +8288,6 @@
},
"node_modules/xmlchars": {
"version": "2.2.0",
- "dev": true,
"license": "MIT"
},
"node_modules/yallist": {
@@ -7681,6 +8313,39 @@
},
"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"
}
}
},
@@ -8827,6 +9492,33 @@
"strip-json-comments": "^3.1.1"
}
},
+ "@fast-csv/format": {
+ "version": "4.3.5",
+ "resolved": "https://registry.npmmirror.com/@fast-csv/format/-/format-4.3.5.tgz",
+ "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==",
+ "requires": {
+ "@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"
+ }
+ },
+ "@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==",
+ "requires": {
+ "@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"
+ }
+ },
"@floating-ui/core": {
"version": "1.0.4"
},
@@ -9049,8 +9741,7 @@
}
},
"@types/node": {
- "version": "14.18.34",
- "dev": true
+ "version": "14.18.34"
},
"@types/semver": {
"version": "7.5.5",
@@ -9182,6 +9873,12 @@
"dev": true,
"requires": {}
},
+ "@vue-office/excel": {
+ "version": "1.7.11",
+ "resolved": "https://registry.npmmirror.com/@vue-office/excel/-/excel-1.7.11.tgz",
+ "integrity": "sha512-LF3R9IV573Sf4qTu6Ik5Ee8UMfkrsZQ6HEQE25/2m1c0CMcHX6KanIy6Cz0b0Q+FrLH3TjIsLTm6oPcqAbDGSA==",
+ "requires": {}
+ },
"@vue/compiler-core": {
"version": "3.2.45",
"requires": {
@@ -9278,12 +9975,6 @@
"@vueuse/metadata": "9.7.0",
"@vueuse/shared": "9.7.0",
"vue-demi": "*"
- },
- "dependencies": {
- "vue-demi": {
- "version": "0.13.11",
- "requires": {}
- }
}
},
"@vueuse/metadata": {
@@ -9293,12 +9984,6 @@
"version": "9.7.0",
"requires": {
"vue-demi": "*"
- },
- "dependencies": {
- "vue-demi": {
- "version": "0.13.11",
- "requires": {}
- }
}
},
"@webassemblyjs/ast": {
@@ -9473,6 +10158,11 @@
"version": "8.2.0",
"dev": true
},
+ "adler-32": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz",
+ "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A=="
+ },
"agent-base": {
"version": "6.0.2",
"dev": true,
@@ -9544,6 +10234,66 @@
"version": "2.2.0",
"dev": true
},
+ "archiver": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmmirror.com/archiver/-/archiver-5.3.2.tgz",
+ "integrity": "sha512-+25nxyyznAXF7Nef3y0EbBeqmGZgeN/BxHX29Rs39djAfaFalmQ89SE6CWyDCHzGL0yt/ycBtNOmGTW0FyGWNw==",
+ "requires": {
+ "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"
+ }
+ },
+ "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==",
+ "requires": {
+ "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"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "requires": {
+ "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"
+ }
+ },
+ "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=="
+ },
+ "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==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
"arg": {
"version": "5.0.2",
"dev": true
@@ -9578,8 +10328,7 @@
"dev": true
},
"async": {
- "version": "3.2.4",
- "dev": true
+ "version": "3.2.4"
},
"async-validator": {
"version": "4.2.5"
@@ -9663,12 +10412,10 @@
}
},
"balanced-match": {
- "version": "1.0.2",
- "dev": true
+ "version": "1.0.2"
},
"base64-js": {
- "version": "1.5.1",
- "dev": true
+ "version": "1.5.1"
},
"bcrypt-pbkdf": {
"version": "1.0.2",
@@ -9677,9 +10424,33 @@
"tweetnacl": "^0.14.3"
}
},
+ "big-integer": {
+ "version": "1.6.52",
+ "resolved": "https://registry.npmmirror.com/big-integer/-/big-integer-1.6.52.tgz",
+ "integrity": "sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg=="
+ },
+ "binary": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/binary/-/binary-0.3.0.tgz",
+ "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==",
+ "requires": {
+ "buffers": "~0.1.1",
+ "chainsaw": "~0.1.0"
+ }
+ },
"binary-extensions": {
"version": "2.2.0",
"dev": true
+ },
+ "bl": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz",
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
+ "requires": {
+ "buffer": "^5.5.0",
+ "inherits": "^2.0.4",
+ "readable-stream": "^3.4.0"
+ }
},
"blob-util": {
"version": "2.0.2",
@@ -9695,7 +10466,6 @@
},
"brace-expansion": {
"version": "1.1.11",
- "dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -9720,20 +10490,28 @@
},
"buffer": {
"version": "5.7.1",
- "dev": true,
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.1.13"
}
},
"buffer-crc32": {
- "version": "0.2.13",
- "dev": true
+ "version": "0.2.13"
},
"buffer-from": {
"version": "1.1.2",
"dev": true,
"peer": true
+ },
+ "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=="
+ },
+ "buffers": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmmirror.com/buffers/-/buffers-0.1.1.tgz",
+ "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ=="
},
"cachedir": {
"version": "2.3.0",
@@ -9751,6 +10529,15 @@
"version": "0.12.0",
"dev": true
},
+ "cfb": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz",
+ "integrity": "sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA==",
+ "requires": {
+ "adler-32": "~1.3.0",
+ "crc-32": "~1.2.0"
+ }
+ },
"chai": {
"version": "4.3.7",
"dev": true,
@@ -9762,6 +10549,14 @@
"loupe": "^2.3.1",
"pathval": "^1.1.1",
"type-detect": "^4.0.5"
+ }
+ },
+ "chainsaw": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmmirror.com/chainsaw/-/chainsaw-0.1.0.tgz",
+ "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==",
+ "requires": {
+ "traverse": ">=0.3.0 <0.4"
}
},
"chalk": {
@@ -9853,6 +10648,11 @@
"string-width": "^4.2.0"
}
},
+ "codepage": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz",
+ "integrity": "sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA=="
+ },
"color-convert": {
"version": "2.0.1",
"dev": true,
@@ -9882,9 +10682,19 @@
"version": "1.8.2",
"dev": true
},
+ "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==",
+ "requires": {
+ "buffer-crc32": "^0.2.13",
+ "crc32-stream": "^4.0.2",
+ "normalize-path": "^3.0.0",
+ "readable-stream": "^3.6.0"
+ }
+ },
"concat-map": {
- "version": "0.0.1",
- "dev": true
+ "version": "0.0.1"
},
"convert-source-map": {
"version": "1.9.0",
@@ -9905,8 +10715,21 @@
}
},
"core-util-is": {
- "version": "1.0.2",
- "dev": true
+ "version": "1.0.2"
+ },
+ "crc-32": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz",
+ "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ=="
+ },
+ "crc32-stream": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmmirror.com/crc32-stream/-/crc32-stream-4.0.3.tgz",
+ "integrity": "sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==",
+ "requires": {
+ "crc-32": "^1.2.0",
+ "readable-stream": "^3.4.0"
+ }
},
"cross-spawn": {
"version": "7.0.3",
@@ -10067,6 +10890,43 @@
"version": "0.1.2",
"dev": true
},
+ "duplexer2": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmmirror.com/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
+ "requires": {
+ "readable-stream": "^2.0.2"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "requires": {
+ "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"
+ }
+ },
+ "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=="
+ },
+ "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==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
"ecc-jsbn": {
"version": "0.1.2",
"dev": true,
@@ -10114,7 +10974,6 @@
},
"end-of-stream": {
"version": "1.4.4",
- "dev": true,
"requires": {
"once": "^1.4.0"
}
@@ -10406,6 +11265,32 @@
"dev": true,
"peer": true
},
+ "exceljs": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmmirror.com/exceljs/-/exceljs-4.4.0.tgz",
+ "integrity": "sha512-XctvKaEMaj1Ii9oDOqbW/6e1gXknSY4g/aLCDicOXqBE4M0nRWkUu0PTp++UPNzoFY12BNHMfs/VadKIS6llvg==",
+ "requires": {
+ "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"
+ },
+ "dependencies": {
+ "saxes": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmmirror.com/saxes/-/saxes-5.0.1.tgz",
+ "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==",
+ "requires": {
+ "xmlchars": "^2.2.0"
+ }
+ }
+ }
+ },
"execa": {
"version": "4.1.0",
"dev": true,
@@ -10445,6 +11330,15 @@
"extsprintf": {
"version": "1.3.0",
"dev": true
+ },
+ "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==",
+ "requires": {
+ "@fast-csv/format": "4.3.5",
+ "@fast-csv/parse": "4.3.6"
+ }
},
"fast-deep-equal": {
"version": "3.1.3",
@@ -10555,6 +11449,11 @@
"mime-types": "^2.1.12"
}
},
+ "frac": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz",
+ "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA=="
+ },
"fraction.js": {
"version": "4.2.0",
"dev": true
@@ -10562,6 +11461,11 @@
"from": {
"version": "0.1.7",
"dev": true
+ },
+ "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=="
},
"fs-extra": {
"version": "9.1.0",
@@ -10578,8 +11482,28 @@
"dev": true
},
"fs.realpath": {
- "version": "1.0.0",
- "dev": true
+ "version": "1.0.0"
+ },
+ "fstream": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmmirror.com/fstream/-/fstream-1.0.12.tgz",
+ "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "inherits": "~2.0.0",
+ "mkdirp": ">=0.5 0",
+ "rimraf": "2"
+ },
+ "dependencies": {
+ "rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmmirror.com/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ }
+ }
},
"function-bind": {
"version": "1.1.1",
@@ -10616,7 +11540,6 @@
},
"glob": {
"version": "7.2.3",
- "dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -10675,8 +11598,7 @@
}
},
"graceful-fs": {
- "version": "4.2.10",
- "dev": true
+ "version": "4.2.10"
},
"grapheme-splitter": {
"version": "1.0.4",
@@ -10744,8 +11666,7 @@
}
},
"ieee754": {
- "version": "1.2.1",
- "dev": true
+ "version": "1.2.1"
},
"ignore": {
"version": "5.2.4",
@@ -10755,6 +11676,11 @@
"version": "0.5.5",
"dev": true,
"optional": true
+ },
+ "immediate": {
+ "version": "3.0.6",
+ "resolved": "https://registry.npmmirror.com/immediate/-/immediate-3.0.6.tgz",
+ "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ=="
},
"immutable": {
"version": "4.1.0",
@@ -10778,15 +11704,13 @@
},
"inflight": {
"version": "1.0.6",
- "dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
- "version": "2.0.4",
- "dev": true
+ "version": "2.0.4"
},
"ini": {
"version": "2.0.0",
@@ -10868,6 +11792,11 @@
"is-what": {
"version": "3.14.1",
"dev": true
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
},
"isexe": {
"version": "2.0.0",
@@ -11026,6 +11955,46 @@
"verror": "1.10.0"
}
},
+ "jszip": {
+ "version": "3.10.1",
+ "resolved": "https://registry.npmmirror.com/jszip/-/jszip-3.10.1.tgz",
+ "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==",
+ "requires": {
+ "lie": "~3.3.0",
+ "pako": "~1.0.2",
+ "readable-stream": "~2.3.6",
+ "setimmediate": "^1.0.5"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "requires": {
+ "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"
+ }
+ },
+ "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=="
+ },
+ "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==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
"klona": {
"version": "2.0.5",
"dev": true
@@ -11033,6 +12002,43 @@
"lazy-ass": {
"version": "1.6.0",
"dev": true
+ },
+ "lazystream": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmmirror.com/lazystream/-/lazystream-1.0.1.tgz",
+ "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==",
+ "requires": {
+ "readable-stream": "^2.0.5"
+ },
+ "dependencies": {
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "requires": {
+ "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"
+ }
+ },
+ "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=="
+ },
+ "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==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
},
"less": {
"version": "4.1.3",
@@ -11064,6 +12070,19 @@
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
}
+ },
+ "lie": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmmirror.com/lie/-/lie-3.3.0.tgz",
+ "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==",
+ "requires": {
+ "immediate": "~3.0.5"
+ }
+ },
+ "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=="
},
"listr2": {
"version": "3.14.0",
@@ -11109,6 +12128,61 @@
"version": "4.0.8",
"dev": true
},
+ "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=="
+ },
+ "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=="
+ },
+ "lodash.escaperegexp": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmmirror.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
+ "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "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=="
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ=="
+ },
+ "lodash.isfunction": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmmirror.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz",
+ "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw=="
+ },
+ "lodash.isnil": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmmirror.com/lodash.isnil/-/lodash.isnil-4.0.0.tgz",
+ "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng=="
+ },
+ "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=="
+ },
+ "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=="
+ },
"lodash.merge": {
"version": "4.6.2",
"dev": true
@@ -11116,6 +12190,16 @@
"lodash.once": {
"version": "4.1.1",
"dev": true
+ },
+ "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=="
+ },
+ "lodash.uniq": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmmirror.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
+ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="
},
"log-symbols": {
"version": "4.1.0",
@@ -11246,14 +12330,20 @@
},
"minimatch": {
"version": "3.1.2",
- "dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
- "version": "1.2.7",
- "dev": true
+ "version": "1.2.7"
+ },
+ "mkdirp": {
+ "version": "0.5.6",
+ "resolved": "https://registry.npmmirror.com/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
+ "requires": {
+ "minimist": "^1.2.6"
+ }
},
"ms": {
"version": "2.1.2",
@@ -11296,8 +12386,7 @@
"dev": true
},
"normalize-path": {
- "version": "3.0.0",
- "dev": true
+ "version": "3.0.0"
},
"normalize-range": {
"version": "0.1.2",
@@ -11326,7 +12415,6 @@
},
"once": {
"version": "1.4.0",
- "dev": true,
"requires": {
"wrappy": "1"
}
@@ -11375,6 +12463,11 @@
"aggregate-error": "^3.0.0"
}
},
+ "pako": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmmirror.com/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw=="
+ },
"parent-module": {
"version": "1.0.1",
"dev": true,
@@ -11398,8 +12491,7 @@
"dev": true
},
"path-is-absolute": {
- "version": "1.0.1",
- "dev": true
+ "version": "1.0.1"
},
"path-key": {
"version": "3.1.1",
@@ -11450,12 +12542,6 @@
"requires": {
"@vue/devtools-api": "^6.4.5",
"vue-demi": "*"
- },
- "dependencies": {
- "vue-demi": {
- "version": "0.13.11",
- "requires": {}
- }
}
},
"postcss": {
@@ -11491,6 +12577,11 @@
"pretty-bytes": {
"version": "5.6.0",
"dev": true
+ },
+ "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=="
},
"proxy-from-env": {
"version": "1.0.0",
@@ -11542,6 +12633,42 @@
"peer": true,
"requires": {
"safe-buffer": "^5.1.0"
+ }
+ },
+ "readable-stream": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz",
+ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
+ "requires": {
+ "inherits": "^2.0.3",
+ "string_decoder": "^1.1.1",
+ "util-deprecate": "^1.0.1"
+ }
+ },
+ "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==",
+ "requires": {
+ "minimatch": "^5.1.0"
+ },
+ "dependencies": {
+ "brace-expansion": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmmirror.com/brace-expansion/-/brace-expansion-2.0.1.tgz",
+ "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
+ "requires": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "minimatch": {
+ "version": "5.1.6",
+ "resolved": "https://registry.npmmirror.com/minimatch/-/minimatch-5.1.6.tgz",
+ "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==",
+ "requires": {
+ "brace-expansion": "^2.0.1"
+ }
+ }
}
},
"readdirp": {
@@ -11648,7 +12775,6 @@
},
"rimraf": {
"version": "3.0.2",
- "dev": true,
"requires": {
"glob": "^7.1.3"
}
@@ -11675,8 +12801,7 @@
}
},
"safe-buffer": {
- "version": "5.2.1",
- "dev": true
+ "version": "5.2.1"
},
"safer-buffer": {
"version": "2.1.2",
@@ -11727,6 +12852,11 @@
"requires": {
"randombytes": "^2.1.0"
}
+ },
+ "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=="
},
"shebang-command": {
"version": "2.0.0",
@@ -11779,6 +12909,14 @@
"dev": true,
"requires": {
"through": "2"
+ }
+ },
+ "ssf": {
+ "version": "0.11.2",
+ "resolved": "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz",
+ "integrity": "sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==",
+ "requires": {
+ "frac": "~1.1.2"
}
},
"sshpk": {
@@ -11842,6 +12980,14 @@
"duplexer": "~0.1.1"
}
},
+ "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==",
+ "requires": {
+ "safe-buffer": "~5.2.0"
+ }
+ },
"string-natural-compare": {
"version": "3.0.1",
"dev": true
@@ -11896,6 +13042,18 @@
"version": "2.2.1",
"dev": true,
"peer": true
+ },
+ "tar-stream": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz",
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
+ "requires": {
+ "bl": "^4.0.3",
+ "end-of-stream": "^1.4.1",
+ "fs-constants": "^1.0.0",
+ "inherits": "^2.0.3",
+ "readable-stream": "^3.1.1"
+ }
},
"terser": {
"version": "5.16.1",
@@ -11953,7 +13111,6 @@
},
"tmp": {
"version": "0.2.1",
- "dev": true,
"requires": {
"rimraf": "^3.0.0"
}
@@ -11983,6 +13140,11 @@
"requires": {
"punycode": "^2.1.1"
}
+ },
+ "traverse": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmmirror.com/traverse/-/traverse-0.3.9.tgz",
+ "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ=="
},
"ts-api-utils": {
"version": "1.0.3",
@@ -12154,6 +13316,57 @@
"version": "4.0.0",
"dev": true
},
+ "unzipper": {
+ "version": "0.10.14",
+ "resolved": "https://registry.npmmirror.com/unzipper/-/unzipper-0.10.14.tgz",
+ "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==",
+ "requires": {
+ "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"
+ },
+ "dependencies": {
+ "bluebird": {
+ "version": "3.4.7",
+ "resolved": "https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz",
+ "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA=="
+ },
+ "readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "requires": {
+ "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"
+ }
+ },
+ "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=="
+ },
+ "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==",
+ "requires": {
+ "safe-buffer": "~5.1.0"
+ }
+ }
+ }
+ },
"update-browserslist-db": {
"version": "1.0.10",
"dev": true,
@@ -12178,12 +13391,10 @@
}
},
"util-deprecate": {
- "version": "1.0.2",
- "dev": true
+ "version": "1.0.2"
},
"uuid": {
- "version": "8.3.2",
- "dev": true
+ "version": "8.3.2"
},
"verror": {
"version": "1.10.0",
@@ -12234,6 +13445,12 @@
"@vue/server-renderer": "3.2.45",
"@vue/shared": "3.2.45"
}
+ },
+ "vue-demi": {
+ "version": "0.14.6",
+ "resolved": "https://registry.npmmirror.com/vue-demi/-/vue-demi-0.14.6.tgz",
+ "integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
+ "requires": {}
},
"vue-eslint-parser": {
"version": "9.3.2",
@@ -12385,6 +13602,16 @@
"isexe": "^2.0.0"
}
},
+ "wmf": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz",
+ "integrity": "sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw=="
+ },
+ "word": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmmirror.com/word/-/word-0.3.0.tgz",
+ "integrity": "sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA=="
+ },
"word-wrap": {
"version": "1.2.3",
"dev": true
@@ -12399,21 +13626,33 @@
}
},
"wrappy": {
- "version": "1.0.2",
- "dev": true
+ "version": "1.0.2"
},
"ws": {
"version": "8.11.0",
"dev": true,
"requires": {}
},
+ "xlsx": {
+ "version": "0.18.5",
+ "resolved": "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz",
+ "integrity": "sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ==",
+ "requires": {
+ "adler-32": "~1.3.0",
+ "cfb": "~1.2.1",
+ "codepage": "~1.15.0",
+ "crc-32": "~1.2.1",
+ "ssf": "~0.11.2",
+ "wmf": "~1.0.1",
+ "word": "~0.3.0"
+ }
+ },
"xml-name-validator": {
"version": "4.0.0",
"dev": true
},
"xmlchars": {
- "version": "2.2.0",
- "dev": true
+ "version": "2.2.0"
},
"yallist": {
"version": "4.0.0",
@@ -12430,6 +13669,35 @@
"yocto-queue": {
"version": "0.1.0",
"dev": true
+ },
+ "zip-stream": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmmirror.com/zip-stream/-/zip-stream-4.1.1.tgz",
+ "integrity": "sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==",
+ "requires": {
+ "archiver-utils": "^3.0.4",
+ "compress-commons": "^4.1.2",
+ "readable-stream": "^3.6.0"
+ },
+ "dependencies": {
+ "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==",
+ "requires": {
+ "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"
+ }
+ }
+ }
}
}
}
diff --git a/package.json b/package.json
index 0f208cb..7308c77 100644
--- a/package.json
+++ b/package.json
@@ -16,16 +16,20 @@
"@amap/amap-jsapi-loader": "^1.0.1",
"@ctrl/tinycolor": "^4.0.2",
"@element-plus/icons-vue": "^2.0.10",
+ "@vue-office/excel": "^1.7.11",
"@vueuse/core": "^9.7.0",
"axios": "^1.2.1",
"dayjs": "^1.11.13",
"element-plus": "^2.8.3",
+ "exceljs": "^4.4.0",
"js-base64": "^3.7.5",
"md5": "^2.3.0",
"pinia": "^2.0.26",
"vue": "^3.2.45",
+ "vue-demi": "^0.14.6",
"vue-i18n": "^9.8.0",
- "vue-router": "^4.1.6"
+ "vue-router": "^4.1.6",
+ "xlsx": "^0.18.5"
},
"devDependencies": {
"@babel/cli": "^7.19.3",
diff --git a/src/api/fysp/dataproductApi.js b/src/api/fysp/dataproductApi.js
new file mode 100644
index 0000000..994fc55
--- /dev/null
+++ b/src/api/fysp/dataproductApi.js
@@ -0,0 +1,34 @@
+import { Base64 } from 'js-base64';
+import { $fysp } from '../index';
+
+export default {
+ /**
+ * 涓嬭浇鏁版嵁浜у搧
+ */
+ downloadProduct(area, type, forceUpdate) {
+ return $fysp
+ .post(`dataProduct/download?`, area, {
+ responseType: 'blob',
+ params: { type, forceUpdate }
+ })
+ .then((res) => {
+ // 鏂囨。鏈敓鎴愶紝宸插惎鍔ㄦ枃妗g敓鎴愬悗鍙颁换鍔�
+ if (res.data.type == 'application/json') {
+ return false;
+ }
+ // 鏂囨。宸插瓨鍦紝杩斿洖鏂囦欢鏁版嵁娴�
+ else {
+ return res.data
+ // const name = Base64.decode(res.headers.get('filename'));
+ // const url = window.URL.createObjectURL(res.data);
+ // const link = document.createElement('a');
+ // link.href = url;
+ // link.setAttribute('download', name);
+ // document.body.appendChild(link);
+ // link.click();
+ // document.body.removeChild(link);
+ // window.URL.revokeObjectURL(url);
+ }
+ });
+ }
+};
diff --git a/src/api/fysp/subtaskApi.js b/src/api/fysp/subtaskApi.js
new file mode 100644
index 0000000..bf890c2
--- /dev/null
+++ b/src/api/fysp/subtaskApi.js
@@ -0,0 +1,20 @@
+import { $fysp } from '../index';
+
+export default {
+ /**
+ * 璋冩暣瀛愪换鍔′俊鎭�
+ * @param {Object} subtask
+ * @returns
+ */
+ adjustSubtask(subtask) {
+ return $fysp.post(`subtask/adjust`, subtask).then((res) => res.data);
+ },
+
+ putSubtasks(subtaskList) {
+ return $fysp.put(`subtask/addlist`, subtaskList).then((res) => res.data);
+ },
+
+ deleteSubtask(stGuid) {
+ return $fysp.delete(`subtask/${stGuid}`).then((res) => res.data);
+ }
+};
diff --git a/src/api/index.js b/src/api/index.js
index 243b99c..231eaba 100644
--- a/src/api/index.js
+++ b/src/api/index.js
@@ -11,7 +11,7 @@
let ip2_file = 'https://fyami.com.cn/';
if (debug) {
- ip1 = 'http://192.168.0.138:8080/';
+ ip1 = 'http://192.168.0.138:9001/';
// ip1_file = 'http://192.168.0.138:8080/';
// ip2 = 'http://192.168.0.138:8080/';
// ip2_file = 'https://fyami.com.cn/';
diff --git a/src/components.d.ts b/src/components.d.ts
index 124cacb..37e7435 100644
--- a/src/components.d.ts
+++ b/src/components.d.ts
@@ -12,18 +12,23 @@
BasePanelLayout: typeof import('./components/core/BasePanelLayout.vue')['default']
CompQuickSet: typeof import('./components/search-option/CompQuickSet.vue')['default']
Content: typeof import('./components/core/Content.vue')['default']
+ ElAffix: typeof import('element-plus/es')['ElAffix']
ElAside: typeof import('element-plus/es')['ElAside']
ElAvatar: typeof import('element-plus/es')['ElAvatar']
ElBadge: typeof import('element-plus/es')['ElBadge']
ElBreadcrumb: typeof import('element-plus/es')['ElBreadcrumb']
ElBreadcrumbItem: typeof import('element-plus/es')['ElBreadcrumbItem']
ElButton: typeof import('element-plus/es')['ElButton']
+ ElCalendar: typeof import('element-plus/es')['ElCalendar']
ElCard: typeof import('element-plus/es')['ElCard']
+ ElCascader: typeof import('element-plus/es')['ElCascader']
+ ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
ElCol: typeof import('element-plus/es')['ElCol']
ElCollapse: typeof import('element-plus/es')['ElCollapse']
ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
ElContainer: typeof import('element-plus/es')['ElContainer']
+ ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
ElDescriptions: typeof import('element-plus/es')['ElDescriptions']
ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem']
ElDialog: typeof import('element-plus/es')['ElDialog']
@@ -36,6 +41,7 @@
ElIcon: typeof import('element-plus/es')['ElIcon']
ElImage: typeof import('element-plus/es')['ElImage']
ElInput: typeof import('element-plus/es')['ElInput']
+ ElLink: typeof import('element-plus/es')['ElLink']
ElMain: typeof import('element-plus/es')['ElMain']
ElMenu: typeof import('element-plus/es')['ElMenu']
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
@@ -44,6 +50,7 @@
ElPopover: typeof import('element-plus/es')['ElPopover']
ElRow: typeof import('element-plus/es')['ElRow']
ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
+ ElSegmented: typeof import('element-plus/es')['ElSegmented']
ElSelect: typeof import('element-plus/es')['ElSelect']
ElSpace: typeof import('element-plus/es')['ElSpace']
ElStep: typeof import('element-plus/es')['ElStep']
@@ -55,6 +62,7 @@
ElTabs: typeof import('element-plus/es')['ElTabs']
ElTag: typeof import('element-plus/es')['ElTag']
ElText: typeof import('element-plus/es')['ElText']
+ ElTooltip: typeof import('element-plus/es')['ElTooltip']
ElTree: typeof import('element-plus/es')['ElTree']
ElUpload: typeof import('element-plus/es')['ElUpload']
Footer: typeof import('./components/core/Footer.vue')['default']
diff --git a/src/components/core/SiderMenu.vue b/src/components/core/SiderMenu.vue
index abe2269..4e53868 100644
--- a/src/components/core/SiderMenu.vue
+++ b/src/components/core/SiderMenu.vue
@@ -77,7 +77,7 @@
data() {
return {
popVisible: false,
- menuHeight: '800px',
+ menuHeight: '600px',
title: '鐢熸�佺幆澧冪嚎涓婄洃绠�',
subTitle: '漏涓婃捣椋炵窘鐜繚绉戞妧鏈夐檺鍏徃',
sysIndex: 0,
@@ -139,7 +139,7 @@
this.navPage(...this.menuPath(this.menus[0]));
},
mounted() {
- // this.menuHeight = this.calMenuHeight();
+ this.menuHeight = this.calMenuHeight();
}
};
</script>
@@ -179,7 +179,7 @@
.el-menu-vertical-demo:not(.el-menu--collapse) {
/* width: 200px; */
min-height: 100vh;
- /* max-height: 100vh; */
+ max-height: 100vh;
}
.el-menu--collapse {
diff --git a/src/components/form/FYForm.vue b/src/components/form/FYForm.vue
index f8654cc..ef4cbb8 100644
--- a/src/components/form/FYForm.vue
+++ b/src/components/form/FYForm.vue
@@ -120,15 +120,13 @@
'submit',
formObj,
() => {
- loading.value = false;
resolve();
},
(err) => {
- loading.value = false;
reject(err ? err : '');
}
);
- });
+ }).finally(() => (loading.value = false));
}
//鍙栨秷鎸夐挳瑙﹀彂
diff --git a/src/components/list-item/ItemSubTask.vue b/src/components/list-item/ItemSubTask.vue
index 58abf2b..ac1f3ab 100644
--- a/src/components/list-item/ItemSubTask.vue
+++ b/src/components/list-item/ItemSubTask.vue
@@ -1,27 +1,68 @@
<template>
<div class="wrapper">
- <div>
- <el-text truncated class="w-250px" size="large">{{ item.name }}</el-text>
- </div>
- <div>
- <el-text truncated class="w-250px" size="small">{{ item.scenseaddress }}</el-text>
- </div>
- <div>
- <el-text truncated size="small">{{
- $fm.formatYMDH(item.planstarttime)
- }}</el-text>
- </div>
- <div>
- <el-text truncated class="w-250px" size="small">{{
- item.executorrealtimes
- }}</el-text>
- </div>
- <el-row justify="end" style="margin-top: 4px">
- <slot :item="item"></slot>
+ <el-row justify="space-between" class="m-t-4">
+ <el-col :span="20">
+ <div class="text-title">
+ <el-tag
+ size="small"
+ :type="statusType.type"
+ effect="plain"
+ class="m-r-4 m-b-4"
+ >
+ <el-space :size="4">
+ <el-icon size="16">
+ <component :is="statusType.icon"></component>
+ </el-icon>
+ {{ item.status }}
+ </el-space>
+ </el-tag>
+ {{ item.name }}
+ </div>
+ <div class="text-info">
+ <div class="text-label">
+ <el-icon class="m-r-4" size="16"><LocationInformation /></el-icon>
+ <span>浠诲姟鍦板潃锛�</span>
+ </div>
+ {{ item.scenseaddress }}
+ </div>
+ <div class="text-info">
+ <div class="text-label">
+ <!-- <el-icon><Clock /></el-icon> -->
+ <el-icon class="m-r-4" size="16"><AlarmClock /></el-icon>
+ <span>浠诲姟鏃堕棿锛�</span>
+ </div>
+ {{ $fm.formatYMD(item.planstarttime) }}
+ </div>
+ <div class="text-info">
+ <div class="text-label">
+ <el-icon class="m-r-4" size="16"><User /></el-icon>
+ 浠诲姟浜哄憳锛�
+ </div>
+ {{ item.executorrealtimes }}
+ </div>
+ <el-space class="m-t-4">
+ <el-tag size="small" type="info" effect=""
+ >闂锛歿{ status.proNum }}</el-tag
+ >
+ <el-tag size="small" type="info" effect=""
+ >鏁存敼锛歿{ status.changeNum }}</el-tag
+ >
+ <el-tag size="small" :type="changePerType" effect=""
+ >鏁存敼鐜囷細{{ status.changePer }}</el-tag
+ >
+ </el-space>
+ </el-col>
+ <el-col :span="4">
+ <slot :item="item"></slot>
+ </el-col>
</el-row>
</div>
</template>
<script setup>
+import { ref, watch, computed } from 'vue';
+import taskApi from '@/api/fysp/taskApi';
+import ProCheckProxy from '@/views/fysp/check/ProCheckProxy';
+
/**
* 鐩戠瀵硅薄
*/
@@ -31,12 +72,98 @@
default: () => {}
}
});
+
+const loading = ref(false);
+const proList = ref([]);
+const status = ref({});
+
+const statusType = computed(() => {
+ switch (props.item.status) {
+ case '鏈墽琛�':
+ return {
+ type: 'danger',
+ icon: 'WarningFilled'
+ };
+ case '姝e湪鎵ц':
+ return {
+ type: 'success',
+ icon: 'Timer'
+ };
+ case '宸茬粨鏉�':
+ return {
+ type: 'info',
+ icon: 'SuccessFilled'
+ };
+ default:
+ return {
+ type: 'danger',
+ icon: 'Warning'
+ };
+ }
+});
+
+const changePerType = computed(() => {
+ if (status.value.changeNum == 0) {
+ if (status.value.proNum == 0) {
+ return 'success';
+ } else {
+ return 'danger';
+ }
+ } else if (status.value.proNum == status.value.changeNum) {
+ return 'success';
+ } else {
+ return 'warning';
+ }
+});
+
+watch(
+ () => props.item,
+ (nV, oV) => {
+ if (nV != oV) {
+ fetchProblems(nV);
+ }
+ },
+ { immediate: true }
+);
+
+function fetchProblems(subtask) {
+ loading.value = true;
+ taskApi
+ .getProBySubtask(subtask.stguid)
+ .then((res) => {
+ proList.value = res;
+ status.value = ProCheckProxy.calProStatus(res);
+ })
+ .finally(() => {
+ loading.value = false;
+ });
+}
</script>
<style scoped>
.wrapper {
/* width: 300px; */
+ width: 100%;
border: 1px solid var(--el-border-color);
border-radius: var(--el-border-radius-base);
padding: 4px 8px;
}
+
+.text-title {
+ font-weight: var(--el-font-weight-primary);
+ color: var(--el-text-color-primary);
+ font-size: var(--el-font-size-medium);
+}
+
+.text-info {
+ display: flex;
+ align-items: flex-start;
+ color: var(--el-text-color-secondary);
+ font-size: var(--el-font-size-small);
+}
+
+.text-label {
+ display: flex;
+ align-items: center;
+ white-space: nowrap;
+}
</style>
diff --git a/src/views/fysp/data-product/ProdProAnalysis.vue b/src/views/fysp/data-product/ProdProAnalysis.vue
index 78b8c00..2a102cf 100644
--- a/src/views/fysp/data-product/ProdProAnalysis.vue
+++ b/src/views/fysp/data-product/ProdProAnalysis.vue
@@ -1,9 +1,11 @@
<template>
- <div>DailyReport</div>
+ <BaseDataProduct product-type="3"></BaseDataProduct>
</template>
+<script setup>
+/**
+ * 闂鏁存敼鍒嗘瀽
+ */
+import BaseDataProduct from './components/BaseDataProduct.vue';
-<script>
-export default {
- name: 'DailyReport',
-};
+
</script>
diff --git a/src/views/fysp/data-product/ProdProFollow.vue b/src/views/fysp/data-product/ProdProFollow.vue
index 78b8c00..9819de8 100644
--- a/src/views/fysp/data-product/ProdProFollow.vue
+++ b/src/views/fysp/data-product/ProdProFollow.vue
@@ -1,9 +1,11 @@
<template>
- <div>DailyReport</div>
+ <BaseDataProduct product-type="1"></BaseDataProduct>
</template>
+<script setup>
+/**
+ * 闂鍔ㄦ�佽窡韪�
+ */
+import BaseDataProduct from './components/BaseDataProduct.vue';
-<script>
-export default {
- name: 'DailyReport',
-};
+
</script>
diff --git a/src/views/fysp/data-product/ProdSceneReport.vue b/src/views/fysp/data-product/ProdSceneReport.vue
index 78b8c00..c2d8d05 100644
--- a/src/views/fysp/data-product/ProdSceneReport.vue
+++ b/src/views/fysp/data-product/ProdSceneReport.vue
@@ -1,9 +1,3 @@
<template>
- <div>DailyReport</div>
+ 鍦烘櫙鎶ュ憡绠$悊
</template>
-
-<script>
-export default {
- name: 'DailyReport',
-};
-</script>
diff --git a/src/views/fysp/data-product/ProdStandardJudge.vue b/src/views/fysp/data-product/ProdStandardJudge.vue
index 78b8c00..257e617 100644
--- a/src/views/fysp/data-product/ProdStandardJudge.vue
+++ b/src/views/fysp/data-product/ProdStandardJudge.vue
@@ -1,9 +1,11 @@
<template>
- <div>DailyReport</div>
+ <BaseDataProduct product-type="2"></BaseDataProduct>
</template>
+<script setup>
+/**
+ * 瑙勮寖鎬ц瘎浼�
+ */
+import BaseDataProduct from './components/BaseDataProduct.vue';
-<script>
-export default {
- name: 'DailyReport',
-};
+
</script>
diff --git a/src/views/fysp/data-product/components/BaseDataProduct.vue b/src/views/fysp/data-product/components/BaseDataProduct.vue
new file mode 100644
index 0000000..b53953e
--- /dev/null
+++ b/src/views/fysp/data-product/components/BaseDataProduct.vue
@@ -0,0 +1,353 @@
+<template>
+ <FYSearchBar ref="searchRef" @search="handleSearch">
+ <template #options>
+ <!-- 鍖哄幙 -->
+ <FYOptionLocation
+ :allOption="false"
+ :level="3"
+ :checkStrictly="false"
+ v-model:value="formSearch.locations"
+ ></FYOptionLocation>
+ <!-- 鍦烘櫙绫诲瀷 -->
+ <FYOptionScene
+ :allOption="false"
+ :type="2"
+ v-model:value="formSearch.scenetype"
+ ></FYOptionScene>
+ <!-- 鏃堕棿 -->
+ <FYOptionTime
+ :initValue="false"
+ type="month"
+ v-model:value="formSearch.time"
+ ></FYOptionTime>
+ </template>
+ <template #buttons>
+ <CompReportDownloadDialog
+ name="闂涓庢暣鏀规眹鎬诲垎鏋愪笌鍔ㄦ�佽窡韪竻鍗�"
+ :locations="formSearch.locations"
+ :scenetype="formSearch.scenetype"
+ :time="formSearch.time"
+ @submit="handleSearch"
+ ></CompReportDownloadDialog>
+ </template>
+ </FYSearchBar>
+ <el-form ref="expandRef" :inline="true">
+ <CompQuickSet @quick-set="setOptions"></CompQuickSet>
+ </el-form>
+ <el-space ref="segmentedRef">
+ <el-segmented
+ :model-value="activeSheet"
+ :options="sheetNames"
+ @change="tabChange"
+ />
+ </el-space>
+ <el-table
+ ref="tableRef"
+ :data="activeExcelData.data"
+ v-loading="loading"
+ table-layout="auto"
+ size="small"
+ :height="tableHeight"
+ fit
+ flexible
+ stripe
+ border
+ >
+ <template v-if="activeExcelData.head">
+ <el-table-column
+ v-for="(item, index) in activeExcelData.head"
+ :key="index"
+ :prop="item.name"
+ :label="item.name"
+ >
+ <template v-if="item.children" #default="{ row }">
+ <span v-html="row[item.name]"></span>
+ <el-table-column
+ v-for="(item1, index1) in item.children"
+ :key="index1"
+ :prop="item1.name"
+ :label="item1.name"
+ >
+ <template v-if="item1.children" #default="{ row1 }">
+ <span v-html="row1[item1.name]"></span>
+ <el-table-column
+ v-for="(item2, index2) in item1.children"
+ :key="index2"
+ :prop="item2.name"
+ :label="item2.name"
+ >
+ <template v-if="item2.children" #default="{ row2 }">
+ <span v-html="row2[item2.name]"></span>
+ </template>
+ </el-table-column>
+ </template>
+ </el-table-column>
+ </template>
+ </el-table-column>
+ </template>
+ </el-table>
+ <!-- <vue-office-excel
+ :src="excel"
+ :style="'height: ' + tableHeight"
+ @rendered="renderedHandler"
+ @error="errorHandler"
+ /> -->
+</template>
+<script setup>
+/**
+ * 闂鍔ㄦ�佽窡韪�
+ */
+//寮曞叆VueOfficeExcel缁勪欢
+import VueOfficeExcel from '@vue-office/excel';
+//寮曞叆鐩稿叧鏍峰紡
+import '@vue-office/excel/lib/index.css';
+
+import { ref, onMounted } from 'vue';
+import dayjs from 'dayjs';
+import * as XLSX from 'xlsx';
+import * as ExcelJS from 'exceljs';
+import dataproductApi from '@/api/fysp/dataproductApi';
+import CompReportDownloadDialog from './CompReportDownloadDialog.vue';
+
+const emit = defineEmits(['search']);
+
+const props = defineProps({
+ // 鏁版嵁浜у搧绫诲瀷锛�1锛氶棶棰樺姩鎬佽窡韪紱2锛氳鑼冩�ц瘎浼帮紱3锛氶棶棰樻暣鏀瑰垎鏋�
+ productType: Number,
+ // 鍦ㄦ暟鎹睍绀轰箣鍓嶏紝鍋氶澶勭悊锛堜富瑕佹槸澶勭悊鍚堝苟琛ㄥご锛�
+ beforeDataShow: {
+ type: Function,
+ default: (data) => {
+ return data;
+ }
+ },
+ // 鏁版嵁琛ㄦ牸鐨勮〃澶磋鏁�
+ headNum: {
+ type: Number,
+ default: 1
+ }
+});
+
+const formSearch = ref({
+ locations: {},
+ scenetype: {},
+ time: dayjs().add(-1, 'M').date(1).toDate()
+});
+const loading = ref(false);
+const tableHeight = ref('500');
+let workbook;
+const sheetNames = ref();
+const excelDatas = ref(new Map());
+const activeSheet = ref();
+const activeExcelData = ref({});
+const excel = ref('');
+
+const searchRef = ref(null);
+const expandRef = ref(null);
+const segmentedRef = ref(null);
+
+function setOptions(param) {
+ formSearch.value.locations = param.locations;
+ formSearch.value.scenetype = param.scenetype;
+ formSearch.value.sourceType = param.sourceType;
+ handleSearch(false);
+}
+
+function tabChange(tabName) {
+ activeSheet.value = tabName;
+ getTable(activeSheet.value);
+}
+
+function handleSearch(forceUpdate) {
+ const locations = formSearch.value.locations;
+ const time = formSearch.value.time;
+ const scenetype = formSearch.value.scenetype;
+ const area = {
+ provincecode: locations.pCode,
+ provincename: locations.pName,
+ citycode: locations.cCode,
+ cityname: locations.cName,
+ districtcode: locations.dCode,
+ districtname: locations.dName,
+ starttime: dayjs(time).format('YYYY-MM-DD HH:mm:ss'),
+ scensetypeid: scenetype.value
+ };
+
+ excelDatas.value.clear();
+ loading.value = true;
+ dataproductApi
+ .downloadProduct(area, props.productType, forceUpdate ? forceUpdate : false)
+ .then(async (res) => {
+ // const data = new Uint8Array(res);
+ res.arrayBuffer().then((data) => {
+ workbook = XLSX.read(data, { type: 'array' });
+ sheetNames.value = workbook.SheetNames;
+ activeSheet.value = sheetNames.value[0];
+ getTable(activeSheet.value);
+ });
+
+ // const workbook = new ExcelJS.Workbook();
+ // await workbook.xlsx.load(res);
+ // workbook.eachSheet(function (worksheet, sheetId) {
+ // console.log(worksheet.name);
+ // });
+ // const sheet1 = workbook.worksheets[0]
+ // const row = sheet1.getRow(1)
+ // console.log(row);
+
+ // console.log(res);
+ // console.log(new ArrayBuffer(res));
+ // res.arrayBuffer().then(r=>{
+ // excel.value = r
+ // })
+
+ // excel.value = new ArrayBuffer(res)
+ })
+ .finally(() => (loading.value = false));
+}
+
+function getTable(sheetName) {
+ if (!excelDatas.value.has(sheetName)) {
+ const worksheet = workbook.Sheets[sheetName];
+ // const tableData = XLSX.utils.sheet_to_json(worksheet, { header: 3 });
+ let tableData = XLSX.utils.sheet_to_txt(worksheet);
+ // console.log(tableData);
+
+ const regx = new RegExp(/"([^"]|\n)+"/, 'g');
+ let matchTxt = tableData.match(regx);
+
+ if (matchTxt) {
+ matchTxt.forEach((txt) => {
+ let newTxt = txt.replace(new RegExp(/\n/, 'g'), '<br />');
+ newTxt = newTxt.replace(new RegExp(/"/, 'g'), '');
+ tableData = tableData.replace(txt, newTxt);
+ });
+ // console.log(tableData);
+ }
+
+ const t = strToTableObj(tableData);
+ // console.log(head);
+ // console.log(data);
+ excelDatas.value.set(sheetName, t);
+ }
+ activeExcelData.value = excelDatas.value.get(sheetName);
+
+ // activeExcelData.value = props.beforeDataShow(tableData);
+}
+
+// 鏍规嵁琛ㄥご鐨勮鏁帮紝鍚堝苟琛ㄥご
+function combineTableHead(excelData) {
+ if (excelData.length < props.headNum) return;
+
+ // const newHead = {};
+ // excelData.splice(0, props.headNum).forEach((row) => {
+ // for (const key in row) {
+ // console.log(key);
+ // }
+ // });
+}
+
+function calcTableHeight() {
+ const h1 = searchRef.value.$el.offsetHeight;
+ const h2 = expandRef.value.$el.offsetHeight;
+ const h3 = segmentedRef.value.$el.offsetHeight;
+
+ const h = h1 + h2 + h3;
+ return `calc(100vh - ${h}px - 60px - var(--el-main-padding) * 2)`;
+}
+
+function renderedHandler() {
+ console.log('娓叉煋瀹屾垚');
+}
+function errorHandler(e) {
+ console.log('娓叉煋澶辫触', e);
+}
+
+function strToTableObj(data, headNum) {
+ const rows = data.split('\n').map((r) => r.split('\t'));
+ if (rows.length == 0) return;
+
+ let header = 1;
+ for (let i = 1; i < rows.length; i++) {
+ const row = rows[i];
+ if (row.length == 0) {
+ break;
+ }
+ if (row[0] == '') {
+ header++;
+ } else {
+ break;
+ }
+ }
+
+ if (rows.length < header) {
+ throw new Error(`鏂囦欢琛屾暟灏忎簬${header}`);
+ }
+ // 琛ㄥご
+ let lastHead = [];
+ // 灞炴�у悕
+ const dataKeys = [];
+ let offset = 1;
+ for (let i = header - 1; i >= 0; i--) {
+ const row = rows[i];
+ if (lastHead.length == 0) {
+ row.forEach((r, y) => {
+ lastHead.push({ name: r });
+ dataKeys.push(r);
+ });
+ } else {
+ const newHead = [];
+ row.forEach((r, y) => {
+ if (dataKeys[y] == '') {
+ dataKeys[y] = r;
+ }
+
+ const last = lastHead[y];
+ if (!last) {
+ console.log(last);
+ }
+ if (last.name == '') {
+ newHead.push({ name: r });
+ offset++;
+ } else if (r != '') {
+ newHead.push({
+ name: r,
+ children: [last]
+ });
+ offset = 1;
+ } else {
+ newHead.push({ name: '' });
+ let _index = newHead.length - 1 - offset;
+ _index = _index >= 0 ? _index : 0;
+ newHead[_index].children.push(last);
+ offset++;
+ }
+ });
+ lastHead = newHead;
+ }
+ }
+ const heads = [];
+ lastHead.forEach((h) => {
+ if (h && h.name != '') {
+ heads.push(h);
+ }
+ });
+
+ const tableData = [];
+ for (let i = header; i < rows.length; i++) {
+ const row = rows[i];
+ const data = {};
+ row.forEach((r, y) => {
+ data[dataKeys[y]] = r;
+ });
+ tableData.push(data);
+ }
+
+ return { head: heads, data: tableData };
+}
+
+onMounted(() => {
+ tableHeight.value = calcTableHeight();
+ // handleSearch()
+});
+</script>
diff --git a/src/views/fysp/data-product/components/CompReportDownloadDialog.vue b/src/views/fysp/data-product/components/CompReportDownloadDialog.vue
new file mode 100644
index 0000000..985f669
--- /dev/null
+++ b/src/views/fysp/data-product/components/CompReportDownloadDialog.vue
@@ -0,0 +1,80 @@
+<template>
+ <el-button icon="Download" type="success" @click="dialogVisible = true"
+ >瀵煎嚭鎶ュ憡</el-button
+ >
+ <el-dialog v-model="dialogVisible" :title="name" width="500">
+ <el-text tag="b" size="large">鏁版嵁鑼冨洿纭</el-text>
+ <el-text tag="div">鍖哄煙锛歿{ locationText }}</el-text>
+ <el-text tag="div">绫诲瀷锛歿{ scenetype.label }}</el-text>
+ <el-text tag="div">鏃堕棿锛歿{ timeText }}</el-text>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-row align="middle">
+ <el-checkbox v-model="forceUpdate" label="寮哄埗鐢熸垚鏂版姤鍛�" />
+ <el-tooltip placement="bottom-start" effect="light">
+ <template #content>
+ <el-text tag="b" size="small">涓嶅嬀閫夛細</el-text><br />
+ <el-text size="small"
+ >涓嶅嬀閫夋椂锛屽鏋滃凡鐢熸垚杩囩浉鍚屽尯鍩熺殑鎶ュ憡锛屽垯鐩存帴鑾峰彇璇ヤ唤鎶ュ憡璁板綍</el-text
+ ><br />
+ <el-text tag="b" size="small">鍕鹃�夛細</el-text><br />
+ <el-text size="small"
+ >鍕鹃�夋椂锛屾棤璁烘槸鍚︽湁鍘嗗彶璁板綍锛岄兘浼氬惎鍔ㄦ姤鍛婄敓鎴愪换鍔¤鐩栨棫璁板綍锛屽彲鍦ㄥ悗鍙颁换鍔$晫闈㈡煡鐪嬩换鍔¤繘搴�</el-text
+ ><br />
+ </template>
+ <el-icon
+ class="m-l-8 cursor-p"
+ :size="16"
+ color="var(--el-color-warning)"
+ ><QuestionFilled
+ /></el-icon>
+ </el-tooltip>
+ </el-row>
+ <div>
+ <el-button @click="dialogVisible = false">鍙栨秷</el-button>
+ <el-button type="primary" @click="handleSubmit">纭畾</el-button>
+ </div>
+ </div>
+ </template>
+ </el-dialog>
+</template>
+
+<script>
+import dayjs from 'dayjs';
+
+export default {
+ props: ['name', 'locations', 'time', 'scenetype'],
+ emits: ['submit'],
+ data() {
+ return {
+ dialogVisible: false,
+ forceUpdate: false
+ };
+ },
+ computed: {
+ locationText() {
+ const loc = this.locations;
+ let text = '';
+ text = loc.pName == loc.cName ? loc.pName : loc.pName + loc.cName;
+ text += loc.dName;
+ return text;
+ },
+ timeText() {
+ return dayjs(this.time).format('YYYY骞碝M鏈�');
+ }
+ },
+ methods: {
+ handleSubmit() {
+ this.$emit('submit', this.forceUpdate);
+ }
+ }
+};
+</script>
+<style scoped>
+.dialog-footer {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: 2px;
+}
+</style>
diff --git a/src/views/fysp/task/TaskManage.vue b/src/views/fysp/task/TaskManage.vue
index 68efe34..5685aa5 100644
--- a/src/views/fysp/task/TaskManage.vue
+++ b/src/views/fysp/task/TaskManage.vue
@@ -39,24 +39,28 @@
<el-tabs model-value="first">
<el-tab-pane label="鐩戠璁″垝" name="first">
<el-row>
- <el-col :span="curSubTaskList.length > 0 ? 16 : 24">
+ <el-col :span="curSubTaskList ? 16 : 24">
<CompMonitorPlan
+ ref="planRef"
:task="curTask.data"
@date-change="onDateChange"
></CompMonitorPlan>
</el-col>
- <el-col v-if="curSubTaskList.length > 0" :span="8">
+ <el-col v-if="curSubTaskList" :span="8">
<CompSubTaskList
- :data="curSubTaskList"
+ create
+ v-model="curSubTaskList"
+ :loading="subTaskLoading"
height="56vh"
@add="subTaskDrawer = true"
+ @submit="handleSubtaskSubmit"
></CompSubTaskList>
</el-col>
</el-row>
</el-tab-pane>
- <el-tab-pane label="鐩戠鍦板浘" name="second">
+ <!-- <el-tab-pane label="鐩戠鍦板浘" name="second">
<CompTaskMap></CompTaskMap>
- </el-tab-pane>
+ </el-tab-pane> -->
</el-tabs>
</el-row>
<el-divider></el-divider>
@@ -91,6 +95,7 @@
<CompDayTask
:day-task="curDayTask"
:mObjList="curMonitorObjList"
+ @submit="handleSubtaskSubmit"
></CompDayTask>
</el-drawer>
<el-dialog
@@ -177,7 +182,8 @@
// 褰撳墠閫夋嫨鐨勬棩浠诲姟
curDayTask: {},
// 褰撳墠閫夋嫨鐨勬棩浠诲姟涓嬬殑瀛愪换鍔�
- curSubTaskList: [],
+ curSubTaskList: undefined,
+ subTaskLoading: false,
// 鎬讳换鍔℃柊澧炲脊鍑烘
topTaskAddVisible: false
};
@@ -238,12 +244,12 @@
this.task = task;
this.sideLoading = false;
this.mainLoading = true;
- this.curSubTaskList = []
+ this.curSubTaskList = undefined;
+ this.curTask = task;
taskApi
.fetchMonitorObjectVersion(task.data.tguid)
.then((res) => {
this.curMonitorObjList = res;
- this.curTask = task;
})
.finally(() => {
this.mainLoading = false;
@@ -268,11 +274,19 @@
});
},
onDateChange(dayTask) {
- // this.subTaskDrawer = true;
- this.curDayTask = dayTask;
- taskApi.fetchSubtaskByDayTask(dayTask.guid).then((res) => {
- this.curSubTaskList = res;
- });
+ if (dayTask) {
+ this.subTaskLoading = true;
+ // this.subTaskDrawer = true;
+ this.curDayTask = dayTask;
+ taskApi
+ .fetchSubtaskByDayTask(dayTask.guid)
+ .then((res) => {
+ this.curSubTaskList = res;
+ })
+ .finally(() => (this.subTaskLoading = false));
+ } else {
+ this.curSubTaskList = [];
+ }
},
navToTaskCreate(value) {
this.topTaskAddVisible = false;
@@ -282,6 +296,12 @@
task: encodeURIComponent(JSON.stringify(value))
}
});
+ },
+ handleSubtaskSubmit() {
+ this.subTaskLoading = true;
+ this.$refs.planRef
+ .fetchDayTasks()
+ .finally(() => (this.subTaskLoading = false));
}
},
mounted() {
diff --git a/src/views/fysp/task/TaskProxy.js b/src/views/fysp/task/TaskProxy.js
index 076fcbb..7433661 100644
--- a/src/views/fysp/task/TaskProxy.js
+++ b/src/views/fysp/task/TaskProxy.js
@@ -4,5 +4,28 @@
*/
ceateSubTask(){
+ },
+
+ /**
+ * 鏍规嵁澶氶�変笅鎷夋鐨勯�夐」鍊硷紝杩斿洖浠诲姟鎵ц浜哄璞�
+ * @returns
+ */
+ getExecutors(data, executorOptions) {
+ const ids = [];
+ const uNames = [];
+ const rNames = [];
+ executorOptions.forEach((e) => {
+ const index = data.indexOf(e.value);
+ if (index != -1) {
+ ids.push(e.data.guid);
+ uNames.push(e.data.acountname);
+ rNames.push(e.data.realname);
+ }
+ });
+ return {
+ id: ids.join('#'),
+ uName: uNames.join('#'),
+ rName: rNames.join('#')
+ };
}
}
\ No newline at end of file
diff --git a/src/views/fysp/task/components/CompDayTask.vue b/src/views/fysp/task/components/CompDayTask.vue
index db5bab8..15a2797 100644
--- a/src/views/fysp/task/components/CompDayTask.vue
+++ b/src/views/fysp/task/components/CompDayTask.vue
@@ -9,56 +9,40 @@
:data="seletedSceneList"
:dayTask="dayTask"
@delete="deleteScene"
+ @submit="createSubtasks"
></CompSubTaskSelect>
<div>
<!-- <el-scrollbar height="50vh"> -->
- <CompMonitorObj :data="curMonitorObjList" height="50vh">
- <template #default="{ item }">
- <el-button
- v-if="item.select"
- size="small"
- type="info"
- plain
- disabled
- icon="select"
- >閫夋嫨</el-button
- >
- <el-button
- v-else
- size="small"
- type="primary"
- plain
- @click="selectScene(item)"
- >閫夋嫨</el-button
- >
- </template>
- </CompMonitorObj>
+ <CompMonitorObj :data="curMonitorObjList" height="50vh">
+ <template #default="{ item }">
+ <el-button
+ v-if="item.select"
+ size="small"
+ type="info"
+ plain
+ disabled
+ icon="select"
+ >閫夋嫨</el-button
+ >
+ <el-button
+ v-else
+ size="small"
+ type="primary"
+ plain
+ @click="selectScene(item)"
+ >閫夋嫨</el-button
+ >
+ </template>
+ </CompMonitorObj>
<!-- </el-scrollbar> -->
</div>
</el-col>
<el-col :span="8">
- <el-row justify="space-between">
- <el-text>鍗曟棩璁″垝</el-text>
- <el-button type="success" size="small" @click="editTask"
- >鏂板</el-button
- >
- </el-row>
- <el-divider />
- <div>
- <el-scrollbar :height="height">
- <ItemSubTask
- v-for="stask in curSubTaskList"
- :key="stask.guid"
- :item="stask"
- >
- <template #default="{ item }">
- <el-button type="danger" size="small" @click="editTask"
- >绉婚櫎</el-button
- >
- </template>
- </ItemSubTask>
- </el-scrollbar>
- </div>
+ <CompSubTaskList
+ v-model="curSubTaskList"
+ :height="height"
+ @submit="deleteSubtasks"
+ ></CompSubTaskList>
</el-col>
</el-row>
</template>
@@ -66,11 +50,15 @@
import { ref, watch, onMounted } from 'vue';
import { useCloned } from '@vueuse/core';
import { useRoute, useRouter } from 'vue-router';
+import { ElMessage, ElNotification, ElMessageBox } from 'element-plus';
import taskApi from '@/api/fysp/taskApi';
+import subtaskApi from '@/api/fysp/subtaskApi';
import TaskProxy from '../TaskProxy';
import CompMonitorObj from './CompMonitorObj.vue';
import CompSubTaskSelect from './CompSubTaskSelect.vue';
+import CompSubTaskList from './CompSubTaskList.vue';
+import dayjs from 'dayjs';
const route = useRoute();
@@ -79,6 +67,8 @@
dayTask: Object,
mObjList: Array
});
+
+const emit = defineEmits(['submit'])
/*************************** 鏁版嵁鍒濆鍖� ************************************/
// 宸℃煡瀛愪换鍔¢泦鍚�
@@ -137,5 +127,62 @@
const index = seletedSceneList.value.indexOf(item);
seletedSceneList.value.splice(index, 1);
}
+
+function createSubtasks(executors) {
+ const dt = props.dayTask;
+ const subtasks = seletedSceneList.value.map((_) => {
+ const s = _.scene;
+ return {
+ // 涓婚敭鐢辨湇鍔$鍒涘缓
+ stguid: undefined,
+ tguid: dt.tsGuid,
+ tsguid: dt.guid,
+ name: `${s.name}宸℃煡`,
+ typeno: 1,
+ type: '宸℃煡',
+ provincecode: s.provincecode,
+ provincename: s.provincename,
+ citycode: s.citycode,
+ cityname: s.cityname,
+ districtcode: s.districtcode,
+ districtname: s.districtname,
+ scensename: s.name,
+ scenseid: s.guid,
+ scenseaddress: s.location,
+ planstarttime: dt.date,
+ planendtime: dayjs(dt.date).endOf('day').set('millisecond', 0).toDate(),
+ deployerguid: 'rAR0A4gJdlOZEqZs',
+ deployerusername: 'ccheck',
+ deployerrealname: '鏁存敼瀹℃牳',
+ executorguids: executors.ids,
+ executorusernames: executors.uName,
+ executorrealtimes: executors.rName,
+ status: '鏈墽琛�',
+ remark: undefined
+ };
+ });
+
+ // 鏇存柊鍦烘櫙鐩戠娆℃暟
+ seletedSceneList.value.forEach((s) => {
+ s.extension1 = s.extension1 ? parseInt(s.extension1) + 1 + '' : '1';
+ });
+ taskApi.updateMonitorObject(seletedSceneList.value).then((res) => {
+ if (res > 0) {
+ subtaskApi.putSubtasks(subtasks).then((res) => {
+ seletedSceneList.value = [];
+ fetchSubTask(props.dayTask.guid);
+ ElMessage({
+ message: '宸℃煡浠诲姟娣诲姞鎴愬姛',
+ type: 'success'
+ });
+ emit('submit')
+ });
+ }
+ });
+}
+
+function deleteSubtasks() {
+ emit('submit')
+}
</script>
<style scoped></style>
diff --git a/src/views/fysp/task/components/CompMonitorPlan.vue b/src/views/fysp/task/components/CompMonitorPlan.vue
index e59c37a..5b86666 100644
--- a/src/views/fysp/task/components/CompMonitorPlan.vue
+++ b/src/views/fysp/task/components/CompMonitorPlan.vue
@@ -22,15 +22,15 @@
<el-row justify="space-between" class="m-t-16">
<el-space direction="vertical">
<el-text size="small">鎬昏</el-text>
- <el-text>{{computeDayTask(data.day).totalTaskNum}}</el-text>
+ <el-text>{{ computeDayTask(data.day).totalTaskNum }}</el-text>
</el-space>
<el-space direction="vertical">
<el-text size="small">瀹屾垚</el-text>
- <el-text>{{computeDayTask(data.day).completeTaskNum}}</el-text>
+ <el-text>{{ computeDayTask(data.day).completeTaskNum }}</el-text>
</el-space>
<el-space direction="vertical">
<el-text size="small">鏁存敼</el-text>
- <el-text>{{computeDayTask(data.day).changedTaskNum}}</el-text>
+ <el-text>{{ computeDayTask(data.day).changedTaskNum }}</el-text>
</el-space>
<!-- <el-statistic title="鎬昏" :value="computeDayTask(data.day).totalTaskNum" />
<el-statistic title="瀹屾垚" :value="computeDayTask(data.day).completeTaskNum" />
@@ -55,9 +55,9 @@
default: () => {}
}
});
-const emit = defineEmits(['dateChange'])
+const emit = defineEmits(['dateChange']);
// 閫変腑鏃ユ湡
-const dateValue = ref(new Date());
+const dateValue = ref();
// 鏃ュ巻鏍囬
const title = computed(() => {
if (props.task) {
@@ -70,18 +70,27 @@
// 鏃ュ巻鑼冨洿
const startDay = computed(() => dayjs(props.task.starttime));
const endDay = computed(() => dayjs(props.task.endtime));
-const dateRange = computed(() => [startDay.value.toDate(), endDay.value.toDate()]);
+const dateRange = computed(() => [
+ startDay.value.toDate(),
+ endDay.value.toDate()
+]);
// const dateRange = computed(() => [new Date(2024, 4, 27), new Date(2024, 5, 30)]);
// 鏃ユ湡鏄惁鍦ㄤ换鍔¤寖鍥村唴
function isDayEnable(day) {
const _day = dayjs(day);
- return _day.isSameOrAfter(startDay.value, 'day') && _day.isSameOrBefore(endDay.value, 'day');
+ return (
+ _day.isSameOrAfter(startDay.value, 'day') &&
+ _day.isSameOrBefore(endDay.value, 'day')
+ );
}
/********************** 鏃ユ湡鏍峰紡 *********************************/
function calendarDayClz(day) {
- return 'calendar-day ' + (isDayEnable(day) ? 'calendar-day-enable' : 'calendar-day-disable');
+ return (
+ 'calendar-day ' +
+ (isDayEnable(day) ? 'calendar-day-enable' : 'calendar-day-disable')
+ );
}
function getDay(day) {
return day.split('-').splice(1, 2).join('-');
@@ -92,12 +101,16 @@
// 鑾峰彇鏃ヤ换鍔$粺璁′俊鎭�
const dayTaskLoading = ref(false);
const dayTaskList = ref([]);
-function fetchDayTasks(topTaskId) {
+function fetchDayTasks() {
dayTaskLoading.value = true;
- taskApi
- .fetchDayTasks(topTaskId)
+ return taskApi
+ .fetchDayTasks(props.task.tguid)
.then((res) => {
dayTaskList.value = res;
+ // 濡傛灉宸查�夋棩鏈熷瓨鍦紝鍦ㄩ噸鏂拌幏鍙栨棩浠诲姟缁熻淇℃伅鍚庯紝鍐嶆瑙﹀彂鐐瑰嚮浜嬩欢
+ if (dateValue.value) {
+ onDateChange(dateValue.value)
+ }
})
.finally(() => (dayTaskLoading.value = false));
}
@@ -119,11 +132,11 @@
}
function onDateChange(e) {
- const day = dayjs(e).format('YYYY-MM-DD')
- const t = computeDayTask(day)
- console.log(t);
-
- emit('dateChange', t)
+ if (isDayEnable(e)) {
+ const day = dayjs(e).format('YYYY-MM-DD');
+ const t = computeDayTask(day);
+ emit('dateChange', t);
+ }
}
// 鎬讳换鍔$粺璁�
@@ -141,12 +154,14 @@
watch(
() => props.task,
(nV) => {
- if (nV.tguid) {
- fetchDayTasks(nV.tguid);
+ if (nV && nV.tguid) {
+ fetchDayTasks();
}
},
{ immediate: true }
);
+
+defineExpose({ fetchDayTasks });
</script>
<style scoped>
.li-01 {
@@ -185,7 +200,7 @@
border: 1px solid rgb(172, 165, 165);
border-radius: 50%; */
padding: 8px;
- height: var(--el-calendar-cell-width);
+ /* min-height: var(--el-calendar-cell-width); */
}
.calendar-day-enable {
diff --git a/src/views/fysp/task/components/CompSubTaskEdit.vue b/src/views/fysp/task/components/CompSubTaskEdit.vue
new file mode 100644
index 0000000..f80a20a
--- /dev/null
+++ b/src/views/fysp/task/components/CompSubTaskEdit.vue
@@ -0,0 +1,170 @@
+<template>
+ <FYForm
+ ref="formRef"
+ :form-info="formInfo"
+ :rules="rules"
+ :useCancel="true"
+ @submit="submit"
+ @cancel="cancel"
+ >
+ <template #form-item="{ formObj }">
+ <el-form-item label="浠诲姟鍚嶇О" prop="name">
+ <el-input disabled v-model="formObj.name" placeholder="浠诲姟鍚嶇О" />
+ </el-form-item>
+ <el-form-item label="鍦烘櫙鍦板潃" prop="name">
+ <el-input
+ disabled
+ v-model="formObj.scenseaddress"
+ placeholder="鍦烘櫙鍦板潃"
+ />
+ </el-form-item>
+ <FYOptionTime
+ label="璁″垝鏃堕棿"
+ prop="planstarttime"
+ :initValue="false"
+ type="date"
+ v-model:value="formObj.planstarttime"
+ @change="handleTimeChange"
+ ></FYOptionTime>
+ <el-form-item label="鎵ц浜�" prop="_executors">
+ <el-select
+ v-model="formObj._executors"
+ multiple
+ clearable
+ collapse-tags
+ placeholder="閫夋嫨鎵ц浜�"
+ :max-collapse-tags="3"
+ style="width: 300px"
+ >
+ <el-option
+ v-for="s in executorOptions"
+ :key="s.value"
+ :label="s.label"
+ :value="s.value"
+ />
+ </el-select>
+ </el-form-item>
+ </template>
+ </FYForm>
+</template>
+<script setup>
+import { ref, computed, onMounted, reactive } from 'vue';
+import subtaskApi from '@/api/fysp/subtaskApi';
+import userApi from '@/api/fysp/userApi';
+import dayjs from 'dayjs';
+
+const props = defineProps({
+ //鍩烘湰淇℃伅
+ modelValue: Object,
+ //鏄垱寤烘垨鑰呮洿鏂�
+ create: Boolean
+});
+
+const emit = defineEmits(['submit', 'cancel', 'update:modelValue']);
+
+const formRef = ref(null);
+// 浠诲姟鎵ц浜洪�夐」
+const executorOptions = ref([]);
+const formInfo = computed(() => {
+ return {
+ ...props.modelValue,
+ _executors: props.modelValue
+ ? props.modelValue.executorguids.split('#')
+ : []
+ };
+});
+
+const rules = reactive({
+ name: [
+ {
+ required: true,
+ message: '鍦烘櫙鍚嶇О涓嶈兘涓虹┖',
+ trigger: 'blur'
+ }
+ ],
+ _scenetype: [
+ {
+ required: true,
+ message: '鍦烘櫙绫诲瀷涓嶈兘涓虹┖',
+ trigger: 'change'
+ }
+ ]
+});
+
+function handleTimeChange(time) {
+ formRef.value.formObj.planendtime = dayjs(time).endOf('day').set('millisecond', 0)
+}
+
+function getExecutors(data) {
+ const ids = [];
+ const uNames = [];
+ const rNames = [];
+ executorOptions.value.forEach((e) => {
+ const index = data._executors.indexOf(e.value);
+ if (index != -1) {
+ ids.push(e.data.guid);
+ uNames.push(e.data.acountname);
+ rNames.push(e.data.realname);
+ }
+ });
+ return {
+ id: ids.join('#'),
+ uName: uNames.join('#'),
+ rName: rNames.join('#')
+ };
+}
+
+// 鍒涘缓鏂板満鏅�
+function createScene(v, success, fail) {
+ // return sceneApi
+ // .createScene(v)
+ // .then(() => {
+ // emit('onSubmit', v);
+ // success();
+ // })
+ // .catch((err) => {
+ // fail(err);
+ // });
+}
+// 鏇存柊鍦烘櫙
+function updateScene(v, success, fail) {
+ return subtaskApi
+ .adjustSubtask(v)
+ .then(() => {
+ emit('update:modelValue', v)
+ emit('submit', v);
+ success();
+ })
+ .catch((err) => {
+ fail(err);
+ });
+}
+function submit(v, success, fail) {
+ const executors = getExecutors(v.value);
+ v.value.executorguids = executors.id
+ v.value.executorusernames = executors.uName
+ v.value.executorrealtimes = executors.rName
+ return props.create
+ ? createScene(v.value, success, fail)
+ : updateScene(v.value, success, fail);
+}
+function cancel() {
+ emit('cancel');
+}
+
+function initOptions() {
+ userApi.getUserByType(1).then((res) => {
+ executorOptions.value = res.map((v) => {
+ return {
+ label: v.realname,
+ value: v.guid,
+ data: v
+ };
+ });
+ });
+}
+
+onMounted(() => {
+ initOptions();
+});
+</script>
diff --git a/src/views/fysp/task/components/CompSubTaskList.vue b/src/views/fysp/task/components/CompSubTaskList.vue
index d6cc205..ef20ca8 100644
--- a/src/views/fysp/task/components/CompSubTaskList.vue
+++ b/src/views/fysp/task/components/CompSubTaskList.vue
@@ -1,42 +1,137 @@
<template>
<el-row justify="space-between">
<el-text>鍗曟棩璁″垝</el-text>
- <el-button type="success" size="small" @click="add">鏂板</el-button>
+ <el-button
+ v-show="create && data && data.length > 0"
+ type="success"
+ size="small"
+ @click="add"
+ >浠诲姟璋冩暣</el-button
+ >
</el-row>
<el-divider />
<div>
- <el-scrollbar :height="height">
- <el-space fill direction="vertical">
+ <el-scrollbar v-loading="loading" :height="height">
+ <el-space
+ v-if="data && data.length > 0"
+ fill
+ :fill-ratio="100"
+ direction="vertical"
+ style="width: 100%"
+ >
<ItemSubTask v-for="s in data" :key="s.guid" :item="s">
<template #default="{ item }">
- <el-button type="danger" size="small" @click="remove(item)"
- >绉婚櫎</el-button
- >
+ <el-space direction="vertical">
+ <el-button
+ :disabled="item.status != '鏈墽琛�'"
+ plain
+ type="primary"
+ size="small"
+ @click="edit(item)"
+ >缂栬緫</el-button
+ >
+ <el-button
+ :disabled="item.status != '鏈墽琛�'"
+ type="default"
+ size="small"
+ @click="remove(item)"
+ >绉婚櫎</el-button
+ >
+ </el-space>
</template>
</ItemSubTask>
</el-space>
+ <div v-else>
+ <el-empty description="鏃犱换鍔¤褰�" />
+ <el-row v-if="create" justify="center">
+ <el-button type="success" size="small" @click="add"
+ >娣诲姞浠诲姟</el-button
+ >
+ </el-row>
+ </div>
</el-scrollbar>
</div>
+ <el-dialog
+ v-model="dialogVisible"
+ width="600"
+ title="宸℃煡浠诲姟缂栬緫"
+ destroy-on-close
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ :show-close="false"
+ >
+ <CompSubTaskEdit
+ v-model="activeItem"
+ @submit="onEditSubmit"
+ @cancel="dialogVisible = false"
+ ></CompSubTaskEdit>
+ </el-dialog>
</template>
<script setup>
-import { ref, watch, onMounted } from 'vue';
+import { ref, computed, watch, onMounted, onUnmounted } from 'vue';
+import { ElMessageBox, ElNotification, ElMessage } from 'element-plus';
+import CompSubTaskEdit from './CompSubTaskEdit.vue';
+import subtaskApi from '@/api/fysp/subtaskApi';
const props = defineProps({
- data: Array,
+ modelValue: Array,
height: {
type: String,
default: '70vh'
- }
+ },
+ // 鏄惁鏄剧ず娣诲姞浠诲姟鎸夐挳
+ create: Boolean,
+ loading: Boolean
});
-const curSubTaskList = ref([]);
-const emit = defineEmits(['add', 'remove']);
+const dialogVisible = ref(false);
+const activeItem = ref(null);
+const data = computed(() => props.modelValue);
+
+const emit = defineEmits(['submit', 'add', 'remove', 'update:modelValue']);
function remove(item) {
- emit('remove', item);
+ if (item.status == '鏈墽琛�') {
+ ElMessageBox.confirm('鏄惁绉婚櫎鐩戠浠诲姟', `绉婚櫎纭`, {
+ confirmButtonText: '纭',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ return subtaskApi.deleteSubtask(item.stguid).then(res=>{
+ if (res == 1) {
+ const index = data.value.indexOf(item);
+ data.value.splice(index, 1);
+
+ emit('update:modelValue', data.value);
+ emit('remove', item);
+ } else {
+ Promise.reject('鍒犻櫎宸℃煡浠诲姟澶辫触')
+ }
+ })
+ });
+ }
+}
+
+function edit(item) {
+ activeItem.value = item;
+ dialogVisible.value = true;
+}
+
+function onEditSubmit(item) {
+ dialogVisible.value = false;
+ const index = data.value.findIndex((v) => {
+ return item.stguid == v.stguid;
+ });
+ data.value.splice(index, 1, item);
+ emit('update:modelValue', data.value);
+ emit('submit');
}
function add() {
emit('add');
}
+
+onUnmounted(() => {
+ dialogVisible.value = false;
+});
</script>
diff --git a/src/views/fysp/task/components/CompSubTaskSelect.vue b/src/views/fysp/task/components/CompSubTaskSelect.vue
index cdf66b9..53a4e03 100644
--- a/src/views/fysp/task/components/CompSubTaskSelect.vue
+++ b/src/views/fysp/task/components/CompSubTaskSelect.vue
@@ -73,6 +73,7 @@
import { ref, reactive, watch, computed, onMounted } from 'vue';
import { ElMessageBox, ElNotification, ElMessage } from 'element-plus';
import taskApi from '@/api/fysp/taskApi';
+import TaskProxy from '../TaskProxy';
onMounted(() => {
// if (props.height) {
@@ -91,7 +92,7 @@
dayTask: Object
});
-const emit = defineEmits(['delete']);
+const emit = defineEmits(['submit', 'delete']);
const scrollHeight = ref('14vh');
@@ -120,6 +121,9 @@
fail('鏈�夋嫨鐩戠鍦烘櫙');
} else {
success();
+ // 灏嗕换鍔℃墽琛屼汉鏍煎紡鍖栧苟浼犻��
+ const param = TaskProxy.getExecutors(v.value.executor, executors.value)
+ emit('submit', param)
}
}
diff --git a/src/views/fysp/task/components/CompTaskEdit.vue b/src/views/fysp/task/components/CompTaskEdit.vue
index 3058aec..6833d9f 100644
--- a/src/views/fysp/task/components/CompTaskEdit.vue
+++ b/src/views/fysp/task/components/CompTaskEdit.vue
@@ -87,7 +87,7 @@
<el-form-item>
<el-row justify="center">
<el-link type="primary" @click="showMore = !showMore">
- {{ showMore ? '鏀惰捣' : '鏌ョ湅鏇村閫夐」' }}
+ {{ showMore ? '鏀惰捣' : '鏇村閫夐」' }}
<el-icon v-if="showMore"><ArrowUp /></el-icon>
<el-icon v-else><ArrowDown /></el-icon>
</el-link>
--
Gitblit v1.9.3