From 0203ef4d930ba7a56996debad9d14c9528390fba Mon Sep 17 00:00:00 2001 From: Your Name <123456> Date: 星期四, 25 八月 2022 10:17:36 +0800 Subject: [PATCH] 合并 --- src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue | 2 src/views/goalManagement/safetyAssessment/index.vue | 2 package-lock.json | 236 ++++++++- src/api/accidentManagementSystem/index.ts | 39 + src/views/accidentManagementSystem/workInjuryDeclaration/index.vue | 2 src/views/contingencyManagement/panManagement/component/openAdd.vue | 2 src/views/accidentManagementSystem/accidentCases/component/wangEditor/index.vue | 171 +++++++ src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue | 2 src/views/goalManagement/targetDecompositionHalfYear/index.vue | 2 src/views/goalManagement/targetStatistics/index.vue | 4 src/views/accidentManagementSystem/accidentExpress/index.vue | 2 src/views/accidentManagementSystem/accidentReport/index.vue | 2 src/views/goalManagement/targetEscalation/index.vue | 2 src/views/goalManagement/Goalsummary/index.vue | 2 src/views/goalManagement/safetyAssessment/component/Dailog.vue | 2 src/views/goalManagement/Incentivestandard/index.vue | 2 src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue | 2 src/views/accidentManagementSystem/accidentStatistics/index.vue | 2 src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue | 2 src/views/contingencyManagement/emergencyDrillStatistics/index.vue | 54 +- src/views/accidentManagementSystem/accidentCases/index.vue | 261 ++++++++++ src/views/goalManagement/targetEscalation/component/TypeDailog.vue | 4 src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue | 8 src/components/editor/index.vue | 198 ++++---- src/components/DailogClass/index.vue | 2 src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue | 187 +++++++ src/views/contingencyManagement/panManagement/index.vue | 6 src/views/contingencyManagement/emergencyPlanStartRecord/index.vue | 2 src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue | 2 src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue | 4 src/views/goalManagement/TargetBook/component/DailogSearch.vue | 4 src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue | 2 src/views/goalManagement/TargetBook/index.vue | 2 src/components/uploaderFile/index.vue | 2 src/views/goalManagement/IncentiveRecording/index.vue | 2 src/views/facilityManagement/ProductionEquipment/index.vue | 4 yarn.lock | 100 ++- src/components/equipmentDailog/DailogS.vue | 2 src/views/contingencyManagement/contingency/index.vue | 2 package.json | 3 src/api/goalManagement/index.ts | 2 src/components/equipmentDailog/repairDailog.vue | 2 src/views/goalManagement/TargetBook/component/DailogAdd.vue | 2 src/views/goalManagement/targetSettings/component/dailogAdd.vue | 80 ++ src/views/goalManagement/performanceAppraisal/component/DailogKh.vue | 2 src/views/goalManagement/performanceAppraisal/component/DailogAq.vue | 2 46 files changed, 1,161 insertions(+), 260 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6287586..41a2c1e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@element-plus/icons-vue": "^2.0.6", - "@wangeditor/editor": "^5.1.1", + "@wangeditor/editor": "^5.1.14", "axios": "^0.27.2", "countup.js": "^2.2.0", "cropperjs": "^1.5.12", @@ -33,7 +33,8 @@ "vue-clipboard3": "^2.0.0", "vue-grid-layout": "^3.0.0-beta1", "vue-i18n": "^9.1.10", - "vue-router": "^4.0.15" + "vue-router": "^4.0.15", + "xlsx": "^0.18.5" }, "devDependencies": { "@types/json-bigint": "^1.0.1", @@ -957,9 +958,9 @@ "integrity": "sha512-g2s2BeyeEtJElmMFfFPnM+BTvnt0omniyvz8U18/zXDpQIMGozlNQgHoFeratyMfgVBhH/u2VKzmchChtDsgPQ==" }, "node_modules/@wangeditor/basic-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@wangeditor/basic-modules/-/basic-modules-1.1.1.tgz", - "integrity": "sha512-tQl2Pw8M2g3CM+ESx2phzr9zSKeuFCM1AMBoPdnlbatU7Dnae0CsEB/b3C+gI0dIQzM2jh34yTmqgbbhrwuRLg==", + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.3.tgz", + "integrity": "sha512-TGJix4UelO46yAgwI946ctx4lSIJbYBwNvjSJ9Tf8mKr0WMCeLVBV+MV85rXPsfcmWtR4wBNwSg648Z+RbqRUg==", "dependencies": { "is-url": "^1.2.4" }, @@ -987,9 +988,9 @@ } }, "node_modules/@wangeditor/core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@wangeditor/core/-/core-1.1.1.tgz", - "integrity": "sha512-SrbvOGlONMNMOeFIJI7fC9x0/6T6LvQHTITPCqjgbCm2QF+POcrHzRKGQOqKCsyKi9UJz9hLsjsvJnvP10rxjQ==", + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.11.tgz", + "integrity": "sha512-BwHVRJzESnkjKikTc2U2zsbd06l1pSo7qKy5+SpZLudYWrFxmd85VN+5GxM57FodogkNw/k04DFHcFSUfXcaKA==", "dependencies": { "@types/event-emitter": "^0.3.3", "event-emitter": "^0.3.5", @@ -1016,19 +1017,19 @@ } }, "node_modules/@wangeditor/editor": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@wangeditor/editor/-/editor-5.1.1.tgz", - "integrity": "sha512-BtccuHFm0QvYunIhIu7tllQWkwppkmEkD3OJ5Mn+F0REPQ/Z3HiEXbtlss2t9c/kHO4CtiFwv2XD/k/VEg7taA==", + "version": "5.1.14", + "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.14.tgz", + "integrity": "sha512-erILPAkpKldyGi4cEwrOW65v12GhZy2qj2A8kPlypU46lE72Y3XowZxWogN1TI/mqMDR84AHr0QWOvygOV1xwQ==", "dependencies": { "@uppy/core": "^2.1.1", "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "^1.1.1", + "@wangeditor/basic-modules": "^1.1.3", "@wangeditor/code-highlight": "^1.0.2", - "@wangeditor/core": "^1.1.1", + "@wangeditor/core": "^1.1.11", "@wangeditor/list-module": "^1.0.2", - "@wangeditor/table-module": "^1.1.0", + "@wangeditor/table-module": "^1.1.1", "@wangeditor/upload-image-module": "^1.0.1", - "@wangeditor/video-module": "^1.1.0", + "@wangeditor/video-module": "^1.1.1", "dom7": "^3.0.0", "is-hotkey": "^0.2.0", "lodash.camelcase": "^4.3.0", @@ -1055,9 +1056,9 @@ } }, "node_modules/@wangeditor/table-module": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@wangeditor/table-module/-/table-module-1.1.0.tgz", - "integrity": "sha512-QpjCXSzsXcsR0pEI5Pu28e8aYh9+lHcVV4TTmGV6lRGE/etQF3PHUZNGUlfhkCgmGPq+E7n/Whb4RpAM3PJVhw==", + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.1.tgz", + "integrity": "sha512-VPjEWQtncS2DsXYXiHUxPSxn2Xhc8GdhG3la7N5YhvxQde1+4N0SZLXeWsYvbGzOq4um5XToq5pktLLbE8G+EA==", "peerDependencies": { "@wangeditor/core": "1.x", "dom7": "^3.0.0", @@ -1084,9 +1085,9 @@ } }, "node_modules/@wangeditor/video-module": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@wangeditor/video-module/-/video-module-1.1.0.tgz", - "integrity": "sha512-VR6x7Vk9ebvXtxCPwobiNiTGZGgqEzCVc6ViWlNH3v4jlDIeo/s7N7OCgpvELR7X/X7GHecBu7wySDkHIskB5w==", + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.1.tgz", + "integrity": "sha512-6gzpS5cnJihW2T0HFjqmbv6v8ouyaeMUjdM2X8BPohwD74p1ov00dCmRt5QekNTyYSmRHK0ASkUMOvRGqaDxMg==", "peerDependencies": { "@uppy/core": "^2.1.4", "@uppy/xhr-upload": "^2.0.7", @@ -1301,6 +1302,14 @@ "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.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/ajv": { @@ -1519,6 +1528,18 @@ ], "peer": true }, + "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/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1599,6 +1620,14 @@ "tiny-emitter": "^2.0.0" } }, + "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", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -1650,6 +1679,17 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.2.0.tgz", "integrity": "sha512-m0TvFNXm9/eFqJm+QiKVI8e0wRUHzlQSewz9dqVjlhl2DFoZtceLbomwzxHz0hJ1+r4zBC7wSpR/TpthG49h6g==" + }, + "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/cropperjs": { "version": "1.5.12", @@ -2666,6 +2706,14 @@ }, "engines": { "node": ">= 6" + } + }, + "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/fs.realpath": { @@ -3955,6 +4003,17 @@ "resolved": "https://registry.npmjs.org/splitpanes/-/splitpanes-3.1.1.tgz", "integrity": "sha512-VUkxDJfIGSvTM/fm/+OSrx8ha9URwE/9B8FPvfzoBuAxVELIHBWpsfnJXIXv77zVwuex//QQL4kTU9SDBPeHjA==" }, + "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/ssr-window": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", @@ -4476,6 +4535,22 @@ "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", "integrity": "sha1-pwIEUwhNjNLv5wup02liY94XEKU=" }, + "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", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -4490,6 +4565,26 @@ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true + }, + "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", @@ -5179,9 +5274,9 @@ "integrity": "sha512-g2s2BeyeEtJElmMFfFPnM+BTvnt0omniyvz8U18/zXDpQIMGozlNQgHoFeratyMfgVBhH/u2VKzmchChtDsgPQ==" }, "@wangeditor/basic-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@wangeditor/basic-modules/-/basic-modules-1.1.1.tgz", - "integrity": "sha512-tQl2Pw8M2g3CM+ESx2phzr9zSKeuFCM1AMBoPdnlbatU7Dnae0CsEB/b3C+gI0dIQzM2jh34yTmqgbbhrwuRLg==", + "version": "1.1.3", + "resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.3.tgz", + "integrity": "sha512-TGJix4UelO46yAgwI946ctx4lSIJbYBwNvjSJ9Tf8mKr0WMCeLVBV+MV85rXPsfcmWtR4wBNwSg648Z+RbqRUg==", "requires": { "is-url": "^1.2.4" } @@ -5195,9 +5290,9 @@ } }, "@wangeditor/core": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@wangeditor/core/-/core-1.1.1.tgz", - "integrity": "sha512-SrbvOGlONMNMOeFIJI7fC9x0/6T6LvQHTITPCqjgbCm2QF+POcrHzRKGQOqKCsyKi9UJz9hLsjsvJnvP10rxjQ==", + "version": "1.1.11", + "resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.11.tgz", + "integrity": "sha512-BwHVRJzESnkjKikTc2U2zsbd06l1pSo7qKy5+SpZLudYWrFxmd85VN+5GxM57FodogkNw/k04DFHcFSUfXcaKA==", "requires": { "@types/event-emitter": "^0.3.3", "event-emitter": "^0.3.5", @@ -5208,19 +5303,19 @@ } }, "@wangeditor/editor": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@wangeditor/editor/-/editor-5.1.1.tgz", - "integrity": "sha512-BtccuHFm0QvYunIhIu7tllQWkwppkmEkD3OJ5Mn+F0REPQ/Z3HiEXbtlss2t9c/kHO4CtiFwv2XD/k/VEg7taA==", + "version": "5.1.14", + "resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.14.tgz", + "integrity": "sha512-erILPAkpKldyGi4cEwrOW65v12GhZy2qj2A8kPlypU46lE72Y3XowZxWogN1TI/mqMDR84AHr0QWOvygOV1xwQ==", "requires": { "@uppy/core": "^2.1.1", "@uppy/xhr-upload": "^2.0.3", - "@wangeditor/basic-modules": "^1.1.1", + "@wangeditor/basic-modules": "^1.1.3", "@wangeditor/code-highlight": "^1.0.2", - "@wangeditor/core": "^1.1.1", + "@wangeditor/core": "^1.1.11", "@wangeditor/list-module": "^1.0.2", - "@wangeditor/table-module": "^1.1.0", + "@wangeditor/table-module": "^1.1.1", "@wangeditor/upload-image-module": "^1.0.1", - "@wangeditor/video-module": "^1.1.0", + "@wangeditor/video-module": "^1.1.1", "dom7": "^3.0.0", "is-hotkey": "^0.2.0", "lodash.camelcase": "^4.3.0", @@ -5242,9 +5337,9 @@ "requires": {} }, "@wangeditor/table-module": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@wangeditor/table-module/-/table-module-1.1.0.tgz", - "integrity": "sha512-QpjCXSzsXcsR0pEI5Pu28e8aYh9+lHcVV4TTmGV6lRGE/etQF3PHUZNGUlfhkCgmGPq+E7n/Whb4RpAM3PJVhw==", + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.1.tgz", + "integrity": "sha512-VPjEWQtncS2DsXYXiHUxPSxn2Xhc8GdhG3la7N5YhvxQde1+4N0SZLXeWsYvbGzOq4um5XToq5pktLLbE8G+EA==", "requires": {} }, "@wangeditor/upload-image-module": { @@ -5254,9 +5349,9 @@ "requires": {} }, "@wangeditor/video-module": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@wangeditor/video-module/-/video-module-1.1.0.tgz", - "integrity": "sha512-VR6x7Vk9ebvXtxCPwobiNiTGZGgqEzCVc6ViWlNH3v4jlDIeo/s7N7OCgpvELR7X/X7GHecBu7wySDkHIskB5w==", + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.1.tgz", + "integrity": "sha512-6gzpS5cnJihW2T0HFjqmbv6v8ouyaeMUjdM2X8BPohwD74p1ov00dCmRt5QekNTyYSmRHK0ASkUMOvRGqaDxMg==", "requires": {} }, "@webassemblyjs/ast": { @@ -5455,6 +5550,11 @@ "dev": true, "requires": {} }, + "adler-32": { + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz", + "integrity": "sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A==" + }, "ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -5612,6 +5712,15 @@ "dev": true, "peer": 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" + } + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -5671,6 +5780,11 @@ "tiny-emitter": "^2.0.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", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -5716,6 +5830,11 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/countup.js/-/countup.js-2.2.0.tgz", "integrity": "sha512-m0TvFNXm9/eFqJm+QiKVI8e0wRUHzlQSewz9dqVjlhl2DFoZtceLbomwzxHz0hJ1+r4zBC7wSpR/TpthG49h6g==" + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" }, "cropperjs": { "version": "1.5.12", @@ -6410,6 +6529,11 @@ "combined-stream": "^1.0.8", "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==" }, "fs.realpath": { "version": "1.0.0", @@ -7328,6 +7452,14 @@ "resolved": "https://registry.npmjs.org/splitpanes/-/splitpanes-3.1.1.tgz", "integrity": "sha512-VUkxDJfIGSvTM/fm/+OSrx8ha9URwE/9B8FPvfzoBuAxVELIHBWpsfnJXIXv77zVwuex//QQL4kTU9SDBPeHjA==" }, + "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" + } + }, "ssr-window": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", @@ -7703,6 +7835,16 @@ "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", "integrity": "sha1-pwIEUwhNjNLv5wup02liY94XEKU=" }, + "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", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -7715,6 +7857,20 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, + "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", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", diff --git a/package.json b/package.json index 961c22e..ae2b9ee 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@element-plus/icons-vue": "^2.0.6", - "@wangeditor/editor": "^5.1.1", + "@wangeditor/editor": "^5.1.14", "axios": "^0.27.2", "countup.js": "^2.2.0", "cropperjs": "^1.5.12", @@ -35,6 +35,7 @@ "vue-grid-layout": "^3.0.0-beta1", "vue-i18n": "^9.1.10", "vue-router": "^4.0.15", + "wangeditor": "^4.7.15", "xlsx": "^0.18.5" }, "devDependencies": { diff --git a/src/api/accidentManagementSystem/index.ts b/src/api/accidentManagementSystem/index.ts index 9b18856..657ef56 100644 --- a/src/api/accidentManagementSystem/index.ts +++ b/src/api/accidentManagementSystem/index.ts @@ -101,6 +101,45 @@ url: import.meta.env.VITE_API_URL_OUT + `/accidentExpress/casualty/del/${id}`, method: 'get' }); + }, + // 事故案例 一览 + getaccidentCaseList: (params: object) => { + return request({ + url: import.meta.env.VITE_API_URL_OUT + `/accidentCase/page/list`, + method: 'post', + data: params + }); + }, + //事故案例 新增 + getaccidentCaseAdd: (params: object) => { + return request({ + url: import.meta.env.VITE_API_URL_OUT + `/accidentCase/add`, + method: 'post', + data: params + }); + }, + //事故案例 新增 + getaccidentCaseUpdata: (params: object) => { + return request({ + url: import.meta.env.VITE_API_URL_OUT + `/accidentCase/update`, + method: 'post', + data: params + }); + }, + //事故案例 详情 + getaccidentCaseDetail: (id: number) => { + return request({ + url: import.meta.env.VITE_API_URL_OUT + `/accidentCase/info/${id}`, + method: 'get' + }); + }, + //事故案例 删除 + getaccidentCaseDelete: (params: object) => { + return request({ + url: import.meta.env.VITE_API_URL_OUT + `/accidentCase/batchDelete`, + method: 'post', + data: params + }); } }; } diff --git a/src/api/goalManagement/index.ts b/src/api/goalManagement/index.ts index 340cdce..2b9409f 100644 --- a/src/api/goalManagement/index.ts +++ b/src/api/goalManagement/index.ts @@ -235,7 +235,7 @@ //安全目标考核 列表 gettargetExamineList: (params: object) => { return request({ - url: import.meta.env.VITE_API_URL_OUT + '/targetExamine/page/list', + url: import.meta.env.VITE_API_URL_OUT + '/targetMng/page/list', method: 'post', data: params }); diff --git a/src/components/DailogClass/index.vue b/src/components/DailogClass/index.vue index 88ff608..f629089 100644 --- a/src/components/DailogClass/index.vue +++ b/src/components/DailogClass/index.vue @@ -144,4 +144,4 @@ .el-row { padding: 0 0 20px 0; } -</style> +</style> \ No newline at end of file diff --git a/src/components/editor/index.vue b/src/components/editor/index.vue index 78e5726..577e98e 100644 --- a/src/components/editor/index.vue +++ b/src/components/editor/index.vue @@ -1,8 +1,8 @@ <template> - <div class="editor-container"> - <div ref="editorToolbar"></div> - <div ref="editorContent" :style="{ height }"></div> - </div> + <div class="editor-container"> + <div ref="editorToolbar"></div> + <div ref="editorContent" :style="{ height }"></div> + </div> </template> <script lang="ts"> @@ -13,103 +13,103 @@ // 定义接口来定义对象的类型 interface WangeditorState { - editorToolbar: HTMLDivElement | null; - editorContent: HTMLDivElement | null; - editor: any; + editorToolbar: HTMLDivElement | null; + editorContent: HTMLDivElement | null; + editor: any; } export default defineComponent({ - name: 'wngEditor', - props: { - // 节点 id - id: { - type: String, - default: () => 'wangeditor', - }, - // 是否禁用 - isDisable: { - type: Boolean, - default: () => false, - }, - // 内容框默认 placeholder - placeholder: { - type: String, - default: () => '请输入内容', - }, - // 双向绑定:双向绑定值,字段名为固定,改了之后将不生效 - // 参考:https://v3.cn.vuejs.org/guide/migration/v-model.html#%E8%BF%81%E7%A7%BB%E7%AD%96%E7%95%A5 - modelValue: String, - // https://www.wangeditor.com/v5/getting-started.html#mode-%E6%A8%A1%E5%BC%8F - // 模式,可选 <default|simple>,默认 default - mode: { - type: String, - default: () => 'default', - }, - // 高度 - height: { - type: String, - default: () => '310px', - }, - }, - setup(props, { emit }) { - const state = reactive<WangeditorState>({ - editorToolbar: null, - editor: null, - editorContent: null, - }); - // 富文本配置 - const wangeditorConfig = () => { - const editorConfig: Partial<IEditorConfig> = { MENU_CONF: {} }; - props.isDisable ? (editorConfig.readOnly = true) : (editorConfig.readOnly = false); - editorConfig.placeholder = props.placeholder; - editorConfig.onChange = (editor: IDomEditor) => { - // console.log('content', editor.children); - // console.log('html', editor.getHtml()); - emit('update:modelValue', editor.getHtml()); - }; - (<any>editorConfig).MENU_CONF['uploadImage'] = { - base64LimitSize: 10 * 1024 * 1024, - }; - return editorConfig; - }; - // - const toolbarConfig = () => { - const toolbarConfig: Partial<IToolbarConfig> = {}; - toolbarConfig.toolbarKeys = toolbarKeys; - return toolbarConfig; - }; - // 初始化富文本 - // https://www.wangeditor.com/ - const initWangeditor = () => { - state.editor = createEditor({ - html: props.modelValue, - selector: state.editorContent!, - config: wangeditorConfig(), - mode: props.mode, - }); - createToolbar({ - editor: state.editor, - selector: state.editorToolbar!, - mode: props.mode, - config: toolbarConfig(), - }); - }; - // 页面加载时 - onMounted(() => { - initWangeditor(); - }); - // 监听双向绑定值的改变 - // https://gitee.com/lyt-top/vue-next-admin/issues/I4LM7I - watch( - () => props.modelValue, - (value) => { - state.editor.clear(); - state.editor.dangerouslyInsertHtml(value); - } - ); - return { - ...toRefs(state), - }; - }, + name: 'wngEditor', + props: { + // 节点 id + id: { + type: String, + default: () => 'wangeditor' + }, + // 是否禁用 + isDisable: { + type: Boolean, + default: () => false + }, + // 内容框默认 placeholder + placeholder: { + type: String, + default: () => '请输入内容' + }, + // 双向绑定:双向绑定值,字段名为固定,改了之后将不生效 + // 参考:https://v3.cn.vuejs.org/guide/migration/v-model.html#%E8%BF%81%E7%A7%BB%E7%AD%96%E7%95%A5 + modelValue: String, + // https://www.wangeditor.com/v5/getting-started.html#mode-%E6%A8%A1%E5%BC%8F + // 模式,可选 <default|simple>,默认 default + mode: { + type: String, + default: () => 'default' + }, + // 高度 + height: { + type: String, + default: () => '310px' + } + }, + setup(props, { emit }) { + const state = reactive<WangeditorState>({ + editorToolbar: null, + editor: null, + editorContent: null + }); + // 富文本配置 + const wangeditorConfig = () => { + const editorConfig: Partial<IEditorConfig> = { MENU_CONF: {} }; + props.isDisable ? (editorConfig.readOnly = true) : (editorConfig.readOnly = false); + editorConfig.placeholder = props.placeholder; + editorConfig.onChange = (editor: IDomEditor) => { + // console.log('content', editor.children); + // console.log('html', editor.getHtml()); + emit('update:modelValue', editor.getHtml()); + }; + (<any>editorConfig).MENU_CONF['uploadImage'] = { + base64LimitSize: 10 * 1024 * 1024 + }; + return editorConfig; + }; + // + const toolbarConfig = () => { + const toolbarConfig: Partial<IToolbarConfig> = {}; + toolbarConfig.toolbarKeys = toolbarKeys; + return toolbarConfig; + }; + // 初始化富文本 + // https://www.wangeditor.com/ + const initWangeditor = () => { + state.editor = createEditor({ + html: props.modelValue, + selector: state.editorContent!, + config: wangeditorConfig(), + mode: props.mode + }); + createToolbar({ + editor: state.editor, + selector: state.editorToolbar!, + mode: props.mode, + config: toolbarConfig() + }); + }; + // 页面加载时 + onMounted(() => { + initWangeditor(); + }); + // 监听双向绑定值的改变 + // https://gitee.com/lyt-top/vue-next-admin/issues/I4LM7I + watch( + () => props.modelValue, + (value) => { + state.editor.clear(); + state.editor.dangerouslyInsertHtml(value); + } + ); + return { + ...toRefs(state) + }; + } }); </script> diff --git a/src/components/equipmentDailog/DailogS.vue b/src/components/equipmentDailog/DailogS.vue index 068778e..db4c2a4 100644 --- a/src/components/equipmentDailog/DailogS.vue +++ b/src/components/equipmentDailog/DailogS.vue @@ -698,4 +698,4 @@ height: 178px; text-align: center; } -</style> +</style> \ No newline at end of file diff --git a/src/components/equipmentDailog/repairDailog.vue b/src/components/equipmentDailog/repairDailog.vue index 25cc34e..18e0663 100644 --- a/src/components/equipmentDailog/repairDailog.vue +++ b/src/components/equipmentDailog/repairDailog.vue @@ -213,4 +213,4 @@ .el-row { padding: 0 0 20px 0; } -</style> +</style> \ No newline at end of file diff --git a/src/components/uploaderFile/index.vue b/src/components/uploaderFile/index.vue index 3434a5e..e84783c 100644 --- a/src/components/uploaderFile/index.vue +++ b/src/components/uploaderFile/index.vue @@ -175,4 +175,4 @@ .upload-demo{ width: 100%; } -</style> +</style> \ No newline at end of file diff --git a/src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue b/src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue new file mode 100644 index 0000000..3f1ffb1 --- /dev/null +++ b/src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue @@ -0,0 +1,187 @@ +<template> + <el-dialog v-model="dialogVisible" @close="resetForm(ruleFormRef)" :fullscreen="full" :title="titles" width="50%" draggable> + <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> + <el-form :model="form" ref="ruleFormRef" :rules="rules" :disabled="disabled" label-width="120px"> + <el-row> + <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="标题" size="default" prop="caseTitle"> + <el-input v-model="form.caseTitle" /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="11" :md="11" :lg="11" :xl="11" class="mb20"> + <el-form-item label="发布时间" size="default" prop="caseTime"> + <el-date-picker + v-model="form.caseTime" + format="YYYY-MM-DD HH:mm:ss" + value-format="YYYY-MM-DD HH:mm:ss" + type="datetime" + placeholder="请选择" + style="width: 100%" + /> + </el-form-item> + </el-col> + <el-col :xs="24" :sm="23" :md="23" :lg="23" :xl="23" class="mb20"> + <el-form-item label="内容" size="default" prop="caseContent"> + <Wangeditor v-if="dialogVisible" style="width: 100%" :value="form.caseContent" + @change="changeCaseContent" showTop=""></Wangeditor> + </el-form-item> + </el-col> + </el-row> + </el-form> + <template #footer> + <span class="dialog-footer"> + <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> + <el-button type="primary" v-if="disabled == false" @click="submitForm(ruleFormRef)" size="default">确定</el-button> + </span> + </template> + </el-dialog> +</template> +<script lang="ts"> +import { defineComponent, ref, reactive } from 'vue'; +import { timeDate } from '/@/assets/index.ts'; +import type { FormInstance, FormRules } from 'element-plus'; +import { Search, FullScreen } from '@element-plus/icons-vue'; +import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus'; +import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem'; +import Wangeditor from './wangEditor/index.vue'; + + +export default defineComponent({ + components: {Wangeditor}, + setup(props, { emit }) { + const getWangEditorValue = (str:string) => { + console.log(str); + } + const ruleFormRef = ref<FormInstance>(); + const dialogVisible = ref<boolean>(false); + const form = ref({ + caseTitle: '',///案例标题 + caseContent: '',///案例内容 + caseTime: '', + }); + const changeCaseContent = (e) => { + form.value.caseContent = e + } + const targetType = ref(); + const disabled = ref(false); + const titles = ref(); + const titleT = ref(); + const openDailog = (title: string, id: number) => { + dialogVisible.value = true; + titles.value = `${title}事故案例`; + titleT.value = title; + // targetType.value = type; + disabled.value = title == '查看' ? true : false; + if (title == '查看' || title == '修改') { + accidentManagementSystemApi() + .getaccidentCaseDetail(id) + .then((res) => { + if (res.data.code == 200) { + form.value = res.data.data; + } else { + ElMessage.error(res.data.msg); + } + }); + } + }; + const rules = reactive<FormRules>({ + caseTitle: [ + { + required: true, + message: '案例标题不能为空', + trigger: 'blur', + }, + ], + caseTime: [ + { + required: true, + message: '发布时间不能为空', + trigger: 'blur', + }, + ], + }); + const submitForm = async (formEl: FormInstance | undefined) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + if (titleT.value == '新建') { + delete form.value.id; + dialogVisible.value = false; + accidentManagementSystemApi() + .getaccidentCaseAdd(form.value) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + emit('onAdd'); + } else { + ElMessage.error(res.data.msg); + } + }); + }else{ + dialogVisible.value = false; + accidentManagementSystemApi() + .getaccidentCaseUpdata(form.value) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + emit('onAdd'); + } else { + ElMessage.error(res.data.msg); + } + }); + } + + } else { + console.log('error submit!', fields); + } + }); + }; + const resetForm = (formEl: FormInstance | undefined) => { + if (!formEl) return; + formEl.resetFields(); + form.value = {} + console.log(form.value) + dialogVisible.value = false; + }; + //全屏 + const full = ref(false); + const toggleFullscreen = () => { + if (full.value == false) { + full.value = true; + } else { + full.value = false; + } + }; + return { + timeDate, + ruleFormRef, + titleT, + rules, + submitForm, + resetForm, + form, + dialogVisible, + openDailog, + Search, + full, + toggleFullscreen, + FullScreen, + targetType, + disabled, + titles, + changeCaseContent + }; + }, +}); +</script> +<style scoped> +.el-row { + padding: 0 0 20px 0; +} +</style> \ No newline at end of file diff --git a/src/views/accidentManagementSystem/accidentCases/component/wangEditor/index.vue b/src/views/accidentManagementSystem/accidentCases/component/wangEditor/index.vue new file mode 100644 index 0000000..9fd7c9e --- /dev/null +++ b/src/views/accidentManagementSystem/accidentCases/component/wangEditor/index.vue @@ -0,0 +1,171 @@ +<template> + <div class="editor"> + <div ref="toolbar" class="toolbar" :class="showTop"></div> + <div ref="editor" class="text"></div> + </div> +</template> + +<script> +import E from 'wangeditor'; +// import {uploadNew,downloadNew} from '@/api/upload'; +// import defaultUrl from "@/api/defaultUrl"; +export default { + name: 'editoritem', + data() { + return { + // uploadPath, + editor: null, + info_: null, + // defaultUrl:defaultUrl, + defaultUrl: '' + }; + }, + model: { + prop: 'value', + event: 'change' + }, + props: { + value: { + type: String, + default: '' + }, + isClear: { + type: Boolean, + default: false + }, + showTop: { + type: String, + default: '' + } + }, + watch: { + isClear(val) { + // 触发清除文本域内容 + if (val) { + this.editor.txt.clear(); + this.info_ = null; + } + }, + value: function (value) { + if (value !== this.editor.txt.html()) { + this.editor.txt.html(this.value); + } + } + //value为编辑框输入的内容,这里我监听了一下值,当父组件调用得时候,如果给value赋值了,子组件将会显示父组件赋给的值 + }, + mounted() { + var that = this; + that.setEditor(); + that.editor.txt.html(that.value); + }, + methods: { + setEditor() { + var that = this; + this.editor = new E(this.$refs.toolbar, this.$refs.editor); + // 配置菜单 + this.editor.config.menus = [ + 'head', // 标题 + 'bold', // 粗体 + 'fontSize', // 字号 + 'fontName', // 字体 + 'italic', // 斜体 + 'underline', // 下划线 + 'strikeThrough', // 删除线 + 'foreColor', // 文字颜色 + 'backColor', // 背景颜色 + 'link', // 插入链接 + 'list', // 列表 + 'justify', // 对齐方式 + 'quote', // 引用 + 'emoticon', // 表情 + // 'image', // 插入图片 + 'table', // 表格 + // 'video', // 插入视频 + 'code', // 插入代码 + 'undo', // 撤销 + 'redo' // 重复 + ]; + + //配置上传图片 + this.editor.config.uploadImgShowBase64 = false; // base 64 存储图片 + this.editor.config.uploadImgServer = 'http://otp.cdinfotech.top/file/upload_images'; // 配置服务器端地址 + this.editor.config.uploadImgHeaders = {}; // 自定义 header + this.editor.config.uploadFileName = 'file'; // 后端接受上传文件的参数名 + this.editor.config.uploadImgMaxSize = 2 * 1024 * 1024; // 将图片大小限制为 2M + this.editor.config.uploadImgMaxLength = 1; // 限制一次最多上传 3 张图片 + this.editor.config.uploadImgTimeout = 3 * 60 * 1000; // 设置超时时间 + this.editor.config.uploadImgHooks = { + fail: (xhr, editor, result) => { + // 插入图片失败回调 + }, + success: (xhr, editor, result) => { + // 图片上传成功回调 + }, + timeout: (xhr, editor) => { + // 网络超时的回调 + }, + error: (xhr, editor) => { + // 图片上传错误的回调 + }, + customInsert: (insertImg, result, editor) => { + // 图片上传成功,插入图片的回调 + //result为上传图片成功的时候返回的数据,这里我打印了一下发现后台返回的是data:[{url:"路径的形式"},...] + // console.log(result.data[0].url) + //insertImg()为插入图片的函数 + //循环插入图片 + // for (let i = 0; i < 1; i++) { + // console.log(result) + let url = 'http://otp.cdinfotech.top' + result.url; + insertImg(url); + // } + } + }; + this.editor.config.customUploadImg = function (files, insert) { + let form = new FormData(); + form.append('file', files[0]); + form.append('dir', 'temp1'); + // uploadNew(form).then(res=>{ + // if(res.result){ + // let url = that.defaultUrl+`/upload/downloadNew?path=`+encodeURI(res.data.fileUrl) + // insert(url) + // that.$message("上传成功", 'success'); + // }else { + // that.$message.error("上传失败"); + // } + // + // }) + }; + + this.editor.config.onchange = (html) => { + this.info_ = html; // 绑定当前逐渐地值 + this.$emit('change', this.info_); // 将内容同步到父组件中 + }; + // 创建富文本编辑器 + this.editor.create(); + //是否可编辑 + if (this.showTop == 'hiddenClass') { + this.editor.disable(); + } + } + } +}; +</script> + +<style scoped> +.editor { + /*margin: 0 auto;*/ + position: relative; + z-index: 100; +} +.toolbar { + width: 100%; + border: 1px solid #ccc; +} +.text { + border: 1px solid #ccc; + min-height: 250px; +} +.hiddenClass { + display: none; +} +</style> diff --git a/src/views/accidentManagementSystem/accidentCases/index.vue b/src/views/accidentManagementSystem/accidentCases/index.vue new file mode 100644 index 0000000..8f7d01e --- /dev/null +++ b/src/views/accidentManagementSystem/accidentCases/index.vue @@ -0,0 +1,261 @@ +<template> + <div> + <el-form :model="ruleForm" status-icon label-width="20px" class="topTitle"> + <el-row> + <el-col :span="4"> + <el-form-item> + <el-input v-model="ruleForm.searchParams.caseTitle" size="default" placeholder="请输入关键词" /> + </el-form-item> + </el-col> + <!-- <el-col :span="4"> + <el-form-item> + <el-input v-model="ruleForm.searchParams.indexNum" size="default" placeholder="目标指标编号" /> + </el-form-item> + </el-col> --> + <el-col :span="16"> + <el-form-item> + <el-button type="primary" size="default" @click="listApi">查询</el-button> + <el-button size="default" @click="resetForm">重置</el-button> + </el-form-item> + </el-col> + </el-row> + </el-form> + <div class="minCenter"> + <div class="btns"> + <div> + <el-button size="default" type="primary" :icon="Plus" @click="openD('新建')">新建</el-button> + <!-- <el-button size="default" type="warning" :disabled="warning" :icon="EditPen" plain @click="openD('修改', deletAll[0])">修改</el-button> --> + <el-button size="default" type="danger" :disabled="danger" :icon="Delete" plain @click="onDeleteAll">删除</el-button> + </div> + </div> + <el-table ref="multipleTableRef" :data="tableData" @selection-change="handleSelectionChange" style="width: 100%"> + <el-table-column type="selection" align="center" width="55" /> + <el-table-column label="序号" align="center" type="index" width="70" /> + <el-table-column label="标题" align="center" property="caseTitle" sortable /> + <el-table-column property="caseTime" align="center" label="发布时间" sortable /> + <!-- <el-table-column property="year" label="年度" align="center" sortable show-overflow-tooltip /> + <el-table-column property="value" label="指标值" align="center" sortable show-overflow-tooltip /> --> + <el-table-column label="操作" align="center" sortable show-overflow-tooltip> + <template #default="scope"> + <!-- <el-button link type="primary" size="small" :icon="View" @click="openD('查看', scope.row.id)">查看</el-button> --> + <el-button link type="primary" size="small" :icon="EditPen" @click="openD('修改', scope.row.id)">编辑</el-button> + <el-button link type="primary" size="small" :icon="Delete" @click="onDelete(scope.row.id)">删除</el-button> + </template> + </el-table-column> + </el-table> + <div class="pages"> + <el-pagination + v-model:currentPage="currentPage4" + v-model:page-size="pageSize4" + :page-sizes="[10, 20, 30, 40]" + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="handleSizeChange" + @current-change="handleCurrentChange" + /> + </div> + </div> + <DailogCases ref="Show" @onAdd="add"></DailogCases> + </div> +</template> +<script lang="ts"> +import DailogCases from './component/DailogCases.vue'; +import { ref, toRefs, reactive, onMounted, defineComponent } from 'vue'; +import { ElMessageBox, ElMessage, ElButton, ElInput, TabsPaneContext, FormInstance } from 'element-plus'; +import { Plus, Delete, Upload, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; +import { accidentManagementSystemApi } from '/@/api/accidentManagementSystem'; +export default defineComponent({ + components: { ElButton, ElInput,DailogCases }, + setup() { + // 搜索条件 + const ruleForm = reactive({ + pageSize: 10, + pageIndex: 1, + searchParams: { + caseTitle: '', + }, + }); + // 下方导航与表格 + const tableData = ref([]); + const currentPage4 = ref(); + const pageSize4 = ref(); + const total = ref(); + const resetForm = () => { + ruleForm.searchParams.caseTitle = ''; + listApi(); + }; + const listApi = () => { + accidentManagementSystemApi() + .getaccidentCaseList(ruleForm) + .then((res) => { + if (res.data.code == 200) { + tableData.value = res.data.data; + currentPage4.value = res.data.pageIndex; + pageSize4.value = res.data.pageSize; + total.value = res.data.total; + } else { + ElMessage.error(res.data.msg); + } + }); + }; + onMounted(() => { + listApi(); + }); + + const handleSizeChange = (val: number) => { + // console.log(`${val} items per page`); + ruleForm.pageSize = val; + listApi(); + }; + const handleCurrentChange = (val: number) => { + // console.log(`current page: ${val}`); + ruleForm.pageIndex = val; + listApi(); + }; + const activeNames = ref('1'); + // 打开弹窗 + const Show = ref(); + const openD = (title: String, id: number) => { + Show.value.openDailog(title,id); + }; + // 删除 + const onDelete = (id: number) => { + let arr = []; + arr.push(id); + ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then(() => { + console.log(arr) + accidentManagementSystemApi() + .getaccidentCaseDelete(arr) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + listApi(); + } else { + ElMessage.error(res.data.msg); + } + }); + }) + .catch(() => { + // ElMessage({ + // type: 'info', + // message: 'Delete canceled', + // }); + }); + }; + // 批量删除 + const warning = ref(true); + const danger = ref(true); + const deletAll = ref(); + const handleSelectionChange = (val: any) => { + let valId = JSON.parse(JSON.stringify(val)); + let arr = []; + for (let i = 0; i < valId.length; i++) { + arr.push(valId[i].id); + } + deletAll.value = arr; + if (val.length == 1) { + warning.value = false; + danger.value = false; + } else if (val.length == 0) { + warning.value = true; + danger.value = true; + } else { + warning.value = true; + danger.value = false; + } + }; + const onDeleteAll = () => { + ElMessageBox.confirm('确定删除所选项吗?', 'Warning', { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning', + }) + .then(() => { + accidentManagementSystemApi() + .getaccidentCaseDelete(deletAll.value) + .then((res) => { + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + listApi(); + } else { + ElMessage.error(res.data.msg); + } + }); + }) + .catch(() => { + ElMessage({ + type: 'info', + message: 'Delete canceled', + }); + }); + }; + const add = () => { + listApi(); + }; + return { + listApi, + add, + resetForm, + tableData, + currentPage4, + pageSize4, + total, + ruleForm, + handleSizeChange, + handleCurrentChange, + Show, + openD, + activeNames, + onDelete, + warning, + danger, + deletAll, + handleSelectionChange, + onDeleteAll, + Plus, + Delete, + Upload, + Download, + Refresh, + View, + EditPen, + }; + }, +}); +</script> +<style scoped> +.topTitle { + background-color: #fff; + padding: 20px 0px 20px 0px; +} +.minCenter { + width: 100%; + background-color: #fff; + margin-top: 10px; + padding: 0 20px; +} +.btns { + padding: 20px 0px 10px 0px; + display: flex; + justify-content: space-between; +} +.pages { + padding: 20px 0; + display: flex; + justify-content: right; +} +.tableC { + margin: 0 10%; +} +</style> \ No newline at end of file diff --git a/src/views/accidentManagementSystem/accidentExpress/index.vue b/src/views/accidentManagementSystem/accidentExpress/index.vue index fd8d2fc..b6e134b 100644 --- a/src/views/accidentManagementSystem/accidentExpress/index.vue +++ b/src/views/accidentManagementSystem/accidentExpress/index.vue @@ -356,4 +356,4 @@ min-width: 30px; border-radius: 2px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/accidentManagementSystem/accidentReport/index.vue b/src/views/accidentManagementSystem/accidentReport/index.vue index b13db29..50d8b53 100644 --- a/src/views/accidentManagementSystem/accidentReport/index.vue +++ b/src/views/accidentManagementSystem/accidentReport/index.vue @@ -386,4 +386,4 @@ min-width: 30px; border-radius: 2px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/accidentManagementSystem/accidentStatistics/index.vue b/src/views/accidentManagementSystem/accidentStatistics/index.vue index cae5608..1337225 100644 --- a/src/views/accidentManagementSystem/accidentStatistics/index.vue +++ b/src/views/accidentManagementSystem/accidentStatistics/index.vue @@ -179,4 +179,4 @@ width: 500px; height: 400px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue b/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue index b046946..56b9e69 100644 --- a/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue +++ b/src/views/accidentManagementSystem/workInjuryDeclaration/index.vue @@ -389,4 +389,4 @@ min-width: 30px; border-radius: 2px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/contingency/index.vue b/src/views/contingencyManagement/contingency/index.vue index abd6fb3..8083231 100644 --- a/src/views/contingencyManagement/contingency/index.vue +++ b/src/views/contingencyManagement/contingency/index.vue @@ -398,4 +398,4 @@ .el-table .sort-caret.ascending{ border-bottom-color: #c0c4cc; } -</style> +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue b/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue index 9697053..327405b 100644 --- a/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue +++ b/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue @@ -922,4 +922,4 @@ font-weight: 500; font-size: 14px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue b/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue index a6a4c9b..bba7134 100644 --- a/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue +++ b/src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue @@ -231,9 +231,9 @@ Delete, EditPen, } from '@element-plus/icons-vue' -// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/components/flowChart.vue' +// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/flowChart.vue' import ApprovalProgress from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; +// import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; import RectificationDialog from '/@/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/rectificationDialog.vue'; import {emergencyDrillEvaluationApi} from '/@/api/contingencyManagement/emergencyDrillEvaluation' import {emergencyDrillExecuteApi} from "/@/api/contingencyManagement/emergencyDrillExecute"; diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue index e4e3fcf..8f988a3 100644 --- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue +++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue @@ -588,4 +588,4 @@ margin-right: 0; border-radius: 4px 4px 0 0; } -</style> +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue index 8799dd8..b1a7099 100644 --- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue +++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue @@ -130,7 +130,7 @@ } from '@element-plus/icons-vue' import {useRouter} from "vue-router" import OpenAdd from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue'; -// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/components/flowChart.vue'; +// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue'; import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; import { releaseDrillPlanApi } from '/@/api/contingencyManagement/emergencyDrillPlan'; diff --git a/src/views/contingencyManagement/emergencyDrillStatistics/index.vue b/src/views/contingencyManagement/emergencyDrillStatistics/index.vue index fed25d7..a219fea 100644 --- a/src/views/contingencyManagement/emergencyDrillStatistics/index.vue +++ b/src/views/contingencyManagement/emergencyDrillStatistics/index.vue @@ -20,31 +20,31 @@ </el-row> </el-form> <div ref="main" style="width: 100%; height: 300px"></div> - <el-select v-model="params.searchParams.classification" style="width: 200px" - placeholder="请选择物资分类" @change="emergencySuppliesCount"> - <el-option label="事故气体吸收装置" value="1"></el-option> - <el-option label="通讯设施" value="2"></el-option> - <el-option label="交通运输工具" value="3"></el-option> - <el-option label="照明装置" value="4"></el-option> - <el-option label="防护器材" value="5"></el-option> - <el-option label="其它" value="6"></el-option> - </el-select> - <div class="pie-body"> - <div class="pie-item" ref="echarts0"> + <div style="width: 100%; padding-left: 20px"> + <el-select v-model="params.searchParams.classification" style="width: 200px" + placeholder="请选择物资分类" @change="emergencySuppliesCount"> + <el-option label="事故气体吸收装置" value="1"></el-option> + <el-option label="通讯设施" value="2"></el-option> + <el-option label="交通运输工具" value="3"></el-option> + <el-option label="照明装置" value="4"></el-option> + <el-option label="防护器材" value="5"></el-option> + <el-option label="其它" value="6"></el-option> + </el-select> + <div class="pie-body"> + <div class="pie-item" ref="echarts0"> + </div> + <div class="pie-item" ref="echarts1"> + </div> + <div class="pie-item" ref="echarts2"> + </div> + <div class="pie-item" ref="echarts3"> + </div> + <div class="pie-item" ref="echarts4"> + </div> + <ArrowLeftBold class="pie-left" :class="disabledLeft" @click="leftClick" /> + <ArrowRightBold class="pie-right" :class="disabledRight" @click="rightClick" /> </div> - <div class="pie-item" ref="echarts1"> - </div> - <div class="pie-item" ref="echarts2"> - </div> - <div class="pie-item" ref="echarts3"> - </div> - <div class="pie-item" ref="echarts4"> - </div> - <ArrowLeftBold class="pie-left" :class="disabledLeft" @click="leftClick" /> - <ArrowRightBold class="pie-right" :class="disabledRight" @click="rightClick" /> </div> - - </div> </div> </template> @@ -131,13 +131,13 @@ }, color:['#24c548'], title: { - text: list.value[a].name+'\n'+list.value[a].totalNum, - x: 127, - y: 63, + text: list.value[a].name+'\n\n'+list.value[a].totalNum, + x: '49%', + y: '35%', textAlign:'center', textStyle: { color: '#24c548', - fontSize: 25, + fontSize: 19, fontWeight: "bold", fontFamily:'D-DIN', textShadowColor:'red' diff --git a/src/views/contingencyManagement/emergencyPlanStartRecord/index.vue b/src/views/contingencyManagement/emergencyPlanStartRecord/index.vue index 54794f7..1ce636f 100644 --- a/src/views/contingencyManagement/emergencyPlanStartRecord/index.vue +++ b/src/views/contingencyManagement/emergencyPlanStartRecord/index.vue @@ -405,4 +405,4 @@ min-width: 30px; border-radius: 2px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue b/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue index 2919780..7ad1c4f 100644 --- a/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue +++ b/src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue @@ -388,4 +388,4 @@ min-width: 30px; border-radius: 2px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue b/src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue index 7d5cbee..afe1cd7 100644 --- a/src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue +++ b/src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue @@ -394,4 +394,4 @@ min-width: 30px; border-radius: 2px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue b/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue index fee9bf1..7a4e8cd 100644 --- a/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue +++ b/src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue @@ -93,10 +93,10 @@ // FormInstance, } from 'element-plus'; import { Plus, Search, Delete, Edit, Download, Refresh, View, EditPen } from '@element-plus/icons-vue'; -// import OpenSee from '/@/views/contingencyManagement/emergencyPlanStartRecord/components/openSee.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; +// import OpenSee from '/@/views/contingencyManagement/emergencyPlanStartRecord/component/openSee.vue'; +// import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; // import EmergencySupplies from '/@/components/emergencySupplies/index.vue'; -// import OpenAdd from '/@/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/components/openAdd.vue'; +// import OpenAdd from '/@/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/component/openAdd.vue'; // import { contingencyApi } from '/@/api/contingency'; // import { emergencySuppliesMaintainApi } from '/@/api/emergencySuppliesMaintain'; @@ -392,4 +392,4 @@ min-width: 30px; border-radius: 2px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/openAdd.vue b/src/views/contingencyManagement/panManagement/component/openAdd.vue index 3e21206..4114bb7 100644 --- a/src/views/contingencyManagement/panManagement/component/openAdd.vue +++ b/src/views/contingencyManagement/panManagement/component/openAdd.vue @@ -468,4 +468,4 @@ .el-select { width: 100%; } -</style> +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/index.vue b/src/views/contingencyManagement/panManagement/index.vue index 46cdbb7..eed76c4 100644 --- a/src/views/contingencyManagement/panManagement/index.vue +++ b/src/views/contingencyManagement/panManagement/index.vue @@ -172,12 +172,12 @@ 'element-plus'; import { Plus, Edit, Delete, Upload, Download, Refresh, VideoPause, VideoPlay, EditPen, FullScreen } from '@element-plus/icons-vue'; import OpenAdd from '/@/views/contingencyManagement/panManagement/component/openAdd.vue'; -// import StartUp from '/@/views/contingencyManagement/panManagement/components/startUp.vue'; +// import StartUp from '/@/views/contingencyManagement/panManagement/component/startUp.vue'; import AbolishLibrary from '/@/views/contingencyManagement/panManagement/component/abolishLibrary.vue'; import ApprovalProcess from '/@/views/contingencyManagement/panManagement/component/approvalProcess.vue'; import InitiateApproval from '/@/views/contingencyManagement/panManagement/component/initiateApproval.vue'; import Approval from '/@/views/contingencyManagement/panManagement/component/approval.vue'; -// import UpData from '/@/views/contingencyManagement/panManagement/components/upData.vue'; +// import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan'; import { emergencyPlanLogApi } from '/@/api/contingencyManagement/emergencyPlanLog'; @@ -611,4 +611,4 @@ min-width: 30px; border-radius: 2px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/facilityManagement/ProductionEquipment/index.vue b/src/views/facilityManagement/ProductionEquipment/index.vue index d9450ed..a63b86b 100644 --- a/src/views/facilityManagement/ProductionEquipment/index.vue +++ b/src/views/facilityManagement/ProductionEquipment/index.vue @@ -19,7 +19,7 @@ <el-col :span="4"> <el-input v-model="filterText" style="height: 30px" placeholder="请输入关键字" /> <div class="tree"> - + <!-- <el-tree ref="treeRef" class="filter-tree" :data="data" :props="props" :filter-node-method="filterNode" /> --> <el-tree ref="treeRef" :data="data" :props="props" @node-click="handleNodeClick" :filter-node-method="filterNode" /> </div> @@ -322,7 +322,7 @@ const handleClicks = (tab: TabsPaneContext, event: Event) => { console.log(tab, event); }; - + const activeName = ref('first'); // const Show=ref() // const openUp=()=>{ diff --git a/src/views/goalManagement/Goalsummary/index.vue b/src/views/goalManagement/Goalsummary/index.vue index bd0b742..a345459 100644 --- a/src/views/goalManagement/Goalsummary/index.vue +++ b/src/views/goalManagement/Goalsummary/index.vue @@ -224,4 +224,4 @@ display: flex; justify-content: right; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/IncentiveRecording/index.vue b/src/views/goalManagement/IncentiveRecording/index.vue index 214dadb..829190a 100644 --- a/src/views/goalManagement/IncentiveRecording/index.vue +++ b/src/views/goalManagement/IncentiveRecording/index.vue @@ -299,4 +299,4 @@ display: flex; justify-content: right; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/Incentivestandard/index.vue b/src/views/goalManagement/Incentivestandard/index.vue index 0d0e863..c0aadc8 100644 --- a/src/views/goalManagement/Incentivestandard/index.vue +++ b/src/views/goalManagement/Incentivestandard/index.vue @@ -280,4 +280,4 @@ display: flex; justify-content: right; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/TargetBook/component/DailogAdd.vue b/src/views/goalManagement/TargetBook/component/DailogAdd.vue index 033448a..fa0bc2a 100644 --- a/src/views/goalManagement/TargetBook/component/DailogAdd.vue +++ b/src/views/goalManagement/TargetBook/component/DailogAdd.vue @@ -243,4 +243,4 @@ .el-row { padding: 0 0 20px 0; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/TargetBook/component/DailogSearch.vue b/src/views/goalManagement/TargetBook/component/DailogSearch.vue index 79aa042..4e7e97a 100644 --- a/src/views/goalManagement/TargetBook/component/DailogSearch.vue +++ b/src/views/goalManagement/TargetBook/component/DailogSearch.vue @@ -99,8 +99,8 @@ name: 'Tom', address: 'No. 189, Grove St, Los Angeles', }, - { - id:3, + { + id:3, date: '岗位3', name: 'Tom', address: 'No. 189, Grove St, Los Angeles', diff --git a/src/views/goalManagement/TargetBook/index.vue b/src/views/goalManagement/TargetBook/index.vue index 1737656..593acf8 100644 --- a/src/views/goalManagement/TargetBook/index.vue +++ b/src/views/goalManagement/TargetBook/index.vue @@ -286,4 +286,4 @@ display: flex; justify-content: right; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue b/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue index b192f25..1bf1044 100644 --- a/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue +++ b/src/views/goalManagement/performanceAppraisal/component/DailogAq.vue @@ -452,4 +452,4 @@ .el-row { padding: 0 0 20px 0; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogKh.vue b/src/views/goalManagement/performanceAppraisal/component/DailogKh.vue index bc2f97f..7d58a68 100644 --- a/src/views/goalManagement/performanceAppraisal/component/DailogKh.vue +++ b/src/views/goalManagement/performanceAppraisal/component/DailogKh.vue @@ -244,4 +244,4 @@ .el-row { padding: 0 0 20px 0; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue b/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue index 5516d0b..d50ea80 100644 --- a/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue +++ b/src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue @@ -137,7 +137,7 @@ const radio1 = ref(''); const list=ref([]) const radio = (event: any) => { - + goalManagementApi() .getexamineTemplateDetail(event.id) .then((res) => { diff --git a/src/views/goalManagement/safetyAssessment/component/Dailog.vue b/src/views/goalManagement/safetyAssessment/component/Dailog.vue index aabe83c..21771af 100644 --- a/src/views/goalManagement/safetyAssessment/component/Dailog.vue +++ b/src/views/goalManagement/safetyAssessment/component/Dailog.vue @@ -261,4 +261,4 @@ .el-row { padding: 0 0 20px 0; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/safetyAssessment/index.vue b/src/views/goalManagement/safetyAssessment/index.vue index 3113917..f52ba71 100644 --- a/src/views/goalManagement/safetyAssessment/index.vue +++ b/src/views/goalManagement/safetyAssessment/index.vue @@ -238,4 +238,4 @@ .tableC { margin: 0 10%; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetDecompositionHalfYear/index.vue b/src/views/goalManagement/targetDecompositionHalfYear/index.vue index 1a2c502..1ed6ed9 100644 --- a/src/views/goalManagement/targetDecompositionHalfYear/index.vue +++ b/src/views/goalManagement/targetDecompositionHalfYear/index.vue @@ -283,4 +283,4 @@ background-color: #fff; padding: 20px 0px 20px 0px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetEscalation/component/TypeDailog.vue b/src/views/goalManagement/targetEscalation/component/TypeDailog.vue index 592bed8..02c9afb 100644 --- a/src/views/goalManagement/targetEscalation/component/TypeDailog.vue +++ b/src/views/goalManagement/targetEscalation/component/TypeDailog.vue @@ -219,7 +219,7 @@ form.value = {}; formUp.value = {}; tableData.value=[]; - dialogVisible.value = false; + dialogVisible.value = false; }; const titleName = ref(); const typeScope = ref(); @@ -338,4 +338,4 @@ .el-row { padding-bottom: 20px; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetEscalation/index.vue b/src/views/goalManagement/targetEscalation/index.vue index cc522b6..22535be 100644 --- a/src/views/goalManagement/targetEscalation/index.vue +++ b/src/views/goalManagement/targetEscalation/index.vue @@ -196,4 +196,4 @@ display: flex; justify-content: right; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetSettings/component/dailogAdd.vue b/src/views/goalManagement/targetSettings/component/dailogAdd.vue index 9b384ac..8ab66ca 100644 --- a/src/views/goalManagement/targetSettings/component/dailogAdd.vue +++ b/src/views/goalManagement/targetSettings/component/dailogAdd.vue @@ -4,13 +4,13 @@ <el-form :model="form" :disabled="disabled" ref="ruleFormRef" :rules="rules" label-width="120px"> <el-row> <el-col :span="11"> - <el-form-item label="安全目标指标" prop="qName" size="default"> - <el-input v-model="form.qName" placeholder="请填写安全目标指标" /> + <el-form-item label="安全目标项" prop="qName" size="default"> + <el-input v-model="form.qName" placeholder="请填写安全目标项" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="目标指标编号" prop="indexNum" size="default"> - <el-input v-model="form.indexNum" placeholder="请填写目标指标编号" /> + <el-form-item label="目标编号" prop="indexNum" size="default"> + <el-input v-model="form.indexNum" placeholder="请填写目标编号" /> </el-form-item> </el-col> </el-row> @@ -22,7 +22,15 @@ </el-col> <el-col :span="11" :offset="2"> <el-form-item label="指标值" prop="value" size="default"> - <el-input v-model.number="form.value" placeholder="请填写指标值" /> + <el-input v-model.number="form.value" placeholder="请填写指标值"> + <template #prepend> + <el-select v-model="form.valueSign " placeholder="请选择" style="width: 115px"> + <el-option label="大于" :value="1" /> + <el-option label="等于" :value="2" /> + <el-option label="小于" :value="3" /> + </el-select> + </template> + </el-input> </el-form-item> </el-col> </el-row> @@ -48,6 +56,22 @@ /> </el-form-item> </el-col> + </el-row> + <el-row> + <el-col :span="11"> + <el-form-item label="目标制定部门" size="default" prop=""> + <el-tree-select + v-model="form.makerDepartmentId" + :data="data" + @current-change="makerName" + check-strictly="true" + class="w100" + :props="propse" + placeholder="请选择" + /> + </el-form-item> + </el-col> + <el-col :span="11" :offset="2"> </el-col> </el-row> <el-form-item label="备注信息" prop="memo"> <el-input v-model="form.memo" size="default" type="textarea" /> @@ -83,14 +107,17 @@ completeDate: '', ////完成期限 divideStatus: '2', ////分解状态 1:已分解 2:未分解 value: '', ////指标值 + makerDepartmentId: '', + valueSign:"" }); const titles = ref(); const disabled = ref(false); - const titleT=ref() + const titleT = ref(); // 打开弹窗 const openDialog = (title: string, value: any, id: number) => { + department(); Shows.value = true; - titleT.value=title + titleT.value = title; titles.value = `${title}目标设定`; form.value.targetType = value; disabled.value = title == '查看' ? true : false; @@ -115,7 +142,7 @@ const h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':'; const m = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes(); const s = date.getSeconds(); // 秒 - const dateString = Y + M + D + h + m +`:${s}`; + const dateString = Y + M + D + h + m + `:${s}`; // console.log('dateString', dateString); // > dateString 2021-07-06 14:23 return dateString; }; @@ -132,14 +159,14 @@ qName: [ { required: true, - message: '安全目标指标不能为空', + message: '安全目标项不能为空', trigger: 'change', }, ], indexNum: [ { required: true, - message: '目标指标编号不能为空', + message: '目标编号不能为空', trigger: 'change', }, ], @@ -157,7 +184,7 @@ trigger: 'change', }, { - type:"number", + type: 'number', message: '指标值只能为数字类型', trigger: 'change', }, @@ -171,8 +198,8 @@ if (!formEl) return; await formEl.validate((valid, fields) => { if (valid) { - if(titleT.value=='新建'){ - delete form.value.id + if (titleT.value == '新建') { + delete form.value.id; } Shows.value = false; goalManagementApi() @@ -204,7 +231,32 @@ const handleClose = (formEl: FormInstance | undefined) => { formEl.resetFields(); }; + //部门 + const department = () => { + goalManagementApi() + .getTreedepartment() + .then((res) => { + if (res.data.code == 200) { + data.value = res.data.data; + } else { + ElMessage.error(res.data.msg); + } + }); + }; + const propse = { + label: 'depName', + children: 'children', + value: 'depId', + }; + const data = ref(); + const makerName = (data: any) => { + form.value.makerDepartmentName = data.depName; + }; return { + department, + propse, + data, + makerName, timeC, openDialog, handleClose, @@ -229,4 +281,4 @@ .el-row { padding: 0 0 20px 0; } -</style> +</style> \ No newline at end of file diff --git a/src/views/goalManagement/targetStatistics/index.vue b/src/views/goalManagement/targetStatistics/index.vue index f746663..ae64857 100644 --- a/src/views/goalManagement/targetStatistics/index.vue +++ b/src/views/goalManagement/targetStatistics/index.vue @@ -1,5 +1,6 @@ <template> <div style="background-color: #fff"> + <h2 style="line-height:40px;text-align: center;padding: 20px 0;">目标完成情况统计</h2> <el-row style="padding:20px 0"> <el-col :span="4" :offset="17"> <el-select v-model="form.targetType" placeholder="" @change="listApi" style="width:100%"> @@ -10,7 +11,7 @@ </el-select> </el-col> </el-row> - <div ref="main" style="width: 100%; height: 400px;"></div> + <div ref="main" style="width: 100%; height: 450px;"></div> </div> </template> <script lang="ts"> @@ -42,7 +43,6 @@ value: res.data.data.complete, name: '已完成', }); - console.log(arr); init(arr); }); }; diff --git a/yarn.lock b/yarn.lock index 3984a08..2eab5f0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,6 +7,21 @@ resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.18.0.tgz" integrity sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg== +"@babel/runtime-corejs3@^7.11.2": + version "7.18.9" + resolved "https://registry.npmmirror.com/@babel/runtime-corejs3/-/runtime-corejs3-7.18.9.tgz#7bacecd1cb2dd694eacd32a91fcf7021c20770ae" + integrity sha512-qZEWeccZCrHA2Au4/X05QW5CMdm4VjUDCrGq5gf1ZDcM4hRqreKrtwAn7yci9zfgAS9apvnsFXiGBHBAxZdK9A== + dependencies: + core-js-pure "^3.20.2" + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.11.2": + version "7.18.9" + resolved "https://registry.npmmirror.com/@babel/runtime/-/runtime-7.18.9.tgz#b4fcfce55db3d2e5e080d2490f608a3b9f407f4a" + integrity sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw== + dependencies: + regenerator-runtime "^0.13.4" + "@babel/runtime@^7.12.0": version "7.18.0" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.0.tgz" @@ -560,10 +575,10 @@ dependencies: vue-demi "*" -"@wangeditor/basic-modules@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@wangeditor/basic-modules/-/basic-modules-1.1.1.tgz" - integrity sha512-tQl2Pw8M2g3CM+ESx2phzr9zSKeuFCM1AMBoPdnlbatU7Dnae0CsEB/b3C+gI0dIQzM2jh34yTmqgbbhrwuRLg== +"@wangeditor/basic-modules@^1.1.3": + version "1.1.3" + resolved "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.3.tgz" + integrity sha512-TGJix4UelO46yAgwI946ctx4lSIJbYBwNvjSJ9Tf8mKr0WMCeLVBV+MV85rXPsfcmWtR4wBNwSg648Z+RbqRUg== dependencies: is-url "^1.2.4" @@ -574,10 +589,10 @@ dependencies: prismjs "^1.23.0" -"@wangeditor/core@^1.1.1": - version "1.1.1" - resolved "https://registry.npmjs.org/@wangeditor/core/-/core-1.1.1.tgz" - integrity sha512-SrbvOGlONMNMOeFIJI7fC9x0/6T6LvQHTITPCqjgbCm2QF+POcrHzRKGQOqKCsyKi9UJz9hLsjsvJnvP10rxjQ== +"@wangeditor/core@^1.1.11": + version "1.1.11" + resolved "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.11.tgz" + integrity sha512-BwHVRJzESnkjKikTc2U2zsbd06l1pSo7qKy5+SpZLudYWrFxmd85VN+5GxM57FodogkNw/k04DFHcFSUfXcaKA== dependencies: "@types/event-emitter" "^0.3.3" event-emitter "^0.3.5" @@ -586,20 +601,20 @@ scroll-into-view-if-needed "^2.2.28" slate-history "^0.66.0" -"@wangeditor/editor@^5.1.1": - version "5.1.1" - resolved "https://registry.npmjs.org/@wangeditor/editor/-/editor-5.1.1.tgz" - integrity sha512-BtccuHFm0QvYunIhIu7tllQWkwppkmEkD3OJ5Mn+F0REPQ/Z3HiEXbtlss2t9c/kHO4CtiFwv2XD/k/VEg7taA== +"@wangeditor/editor@^5.1.14": + version "5.1.14" + resolved "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.14.tgz" + integrity sha512-erILPAkpKldyGi4cEwrOW65v12GhZy2qj2A8kPlypU46lE72Y3XowZxWogN1TI/mqMDR84AHr0QWOvygOV1xwQ== dependencies: "@uppy/core" "^2.1.1" "@uppy/xhr-upload" "^2.0.3" - "@wangeditor/basic-modules" "^1.1.1" + "@wangeditor/basic-modules" "^1.1.3" "@wangeditor/code-highlight" "^1.0.2" - "@wangeditor/core" "^1.1.1" + "@wangeditor/core" "^1.1.11" "@wangeditor/list-module" "^1.0.2" - "@wangeditor/table-module" "^1.1.0" + "@wangeditor/table-module" "^1.1.1" "@wangeditor/upload-image-module" "^1.0.1" - "@wangeditor/video-module" "^1.1.0" + "@wangeditor/video-module" "^1.1.1" dom7 "^3.0.0" is-hotkey "^0.2.0" lodash.camelcase "^4.3.0" @@ -618,20 +633,20 @@ resolved "https://registry.npmjs.org/@wangeditor/list-module/-/list-module-1.0.2.tgz" integrity sha512-VfENZEFvsLTiLxN/cj8cibFGy9NVV+/cfATTiLiH9ef+8lgKv8apttXYVlqIAfnlJLLuCk0cIm8c/zH+hbtrZg== -"@wangeditor/table-module@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@wangeditor/table-module/-/table-module-1.1.0.tgz" - integrity sha512-QpjCXSzsXcsR0pEI5Pu28e8aYh9+lHcVV4TTmGV6lRGE/etQF3PHUZNGUlfhkCgmGPq+E7n/Whb4RpAM3PJVhw== +"@wangeditor/table-module@^1.1.1": + version "1.1.1" + resolved "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.1.tgz" + integrity sha512-VPjEWQtncS2DsXYXiHUxPSxn2Xhc8GdhG3la7N5YhvxQde1+4N0SZLXeWsYvbGzOq4um5XToq5pktLLbE8G+EA== "@wangeditor/upload-image-module@^1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@wangeditor/upload-image-module/-/upload-image-module-1.0.1.tgz" integrity sha512-vgUV4ENttTITblqtVuzleIq732OmzmzzgrIvX6b3GRGPSw5u8glJ/87tOEhvHjHECc4oFo18B7xzJ1GpBj79/w== -"@wangeditor/video-module@^1.1.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@wangeditor/video-module/-/video-module-1.1.0.tgz" - integrity sha512-VR6x7Vk9ebvXtxCPwobiNiTGZGgqEzCVc6ViWlNH3v4jlDIeo/s7N7OCgpvELR7X/X7GHecBu7wySDkHIskB5w== +"@wangeditor/video-module@^1.1.1": + version "1.1.1" + resolved "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.1.tgz" + integrity sha512-6gzpS5cnJihW2T0HFjqmbv6v8ouyaeMUjdM2X8BPohwD74p1ov00dCmRt5QekNTyYSmRHK0ASkUMOvRGqaDxMg== acorn-jsx@^5.3.2: version "5.3.2" @@ -645,7 +660,7 @@ adler-32@~1.3.0: version "1.3.1" - resolved "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz#1dbf0b36dda0012189a32b3679061932df1821e2" + resolved "https://registry.npmmirror.com/adler-32/-/adler-32-1.3.1.tgz" integrity sha512-ynZ4w/nUUv5rrsR8UUGoe1VC9hZj6V5hU9Qw1HlMDJGEJw5S7TfTErWTjMys6M7vr0YWcPqs3qAr4ss0nDfP+A== ajv@^6.10.0, ajv@^6.12.4: @@ -753,7 +768,7 @@ cfb@~1.2.1: version "1.2.2" - resolved "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz#94e687628c700e5155436dac05f74e08df23bc44" + resolved "https://registry.npmmirror.com/cfb/-/cfb-1.2.2.tgz" integrity sha512-KfdUZsSOw19/ObEWasvBP/Ac4reZvAGauZhs6S/gqNhXhI7cKwvlH7ulj+dOEYnca4bm4SGo8C1bTAQvnTjgQA== dependencies: adler-32 "~1.3.0" @@ -798,7 +813,7 @@ codepage@~1.15.0: version "1.15.0" - resolved "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz#2e00519024b39424ec66eeb3ec07227e692618ab" + resolved "https://registry.npmmirror.com/codepage/-/codepage-1.15.0.tgz" integrity sha512-3g6NUTPd/YtuuGrhMnOMRjFc+LJw/bnMp3+0r/Wcz3IXUuCosKRJvMphm5+Q+bvTVGcJJuRvVLuYba+WojaFaA== color-convert@^2.0.1: @@ -830,6 +845,11 @@ resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= +core-js-pure@^3.20.2: + version "3.25.0" + resolved "https://registry.npmmirror.com/core-js-pure/-/core-js-pure-3.25.0.tgz#f8d1f176ff29abbfeb610110de891d5ae5a361d4" + integrity sha512-IeHpLwk3uoci37yoI2Laty59+YqH9x5uR65/yiA0ARAJrTrN4YU0rmauLWfvqOuk77SlNJXj2rM6oT/dBD87+A== + countup.js@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/countup.js/-/countup.js-2.2.0.tgz" @@ -837,7 +857,7 @@ crc-32@~1.2.0, crc-32@~1.2.1: version "1.2.2" - resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + resolved "https://registry.npmmirror.com/crc-32/-/crc-32-1.2.2.tgz" integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== cropperjs@^1.5.12: @@ -1357,7 +1377,7 @@ frac@~1.1.2: version "1.1.2" - resolved "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz#3d74f7f6478c88a1b5020306d747dc6313c74d0b" + resolved "https://registry.npmmirror.com/frac/-/frac-1.1.2.tgz" integrity sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA== fs.realpath@^1.0.0: @@ -2054,7 +2074,7 @@ ssf@~0.11.2: version "0.11.2" - resolved "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz#0b99698b237548d088fc43cdf2b70c1a7512c06c" + resolved "https://registry.npmmirror.com/ssf/-/ssf-0.11.2.tgz" integrity sha512-+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g== dependencies: frac "~1.1.2" @@ -2119,6 +2139,11 @@ version "1.14.1" resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== + +tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.npmmirror.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== tsutils@^3.21.0: version "3.21.0" @@ -2249,6 +2274,15 @@ "@vue/server-renderer" "3.2.36" "@vue/shared" "3.2.36" +wangeditor@^4.7.15: + version "4.7.15" + resolved "https://registry.npmmirror.com/wangeditor/-/wangeditor-4.7.15.tgz#38c5e279a79d0428e4fd77ae5be46367e9c819e5" + integrity sha512-aPTdREd8BxXVyJ5MI+LU83FQ7u1EPd341iXIorRNYSOvoimNoZ4nPg+yn3FGbB93/owEa6buLw8wdhYnMCJQLg== + dependencies: + "@babel/runtime" "^7.11.2" + "@babel/runtime-corejs3" "^7.11.2" + tslib "^2.1.0" + which@^2.0.1: version "2.0.2" resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" @@ -2263,7 +2297,7 @@ wmf@~1.0.1: version "1.0.2" - resolved "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz#7d19d621071a08c2bdc6b7e688a9c435298cc2da" + resolved "https://registry.npmmirror.com/wmf/-/wmf-1.0.2.tgz" integrity sha512-/p9K7bEh0Dj6WbXg4JG0xvLQmIadrner1bi45VMJTfnbVHsc7yIajZyoSoK60/dtVBs12Fm6WkUI5/3WAVsNMw== word-wrap@^1.2.3: @@ -2273,7 +2307,7 @@ word@~0.3.0: version "0.3.0" - resolved "https://registry.npmmirror.com/word/-/word-0.3.0.tgz#8542157e4f8e849f4a363a288992d47612db9961" + resolved "https://registry.npmmirror.com/word/-/word-0.3.0.tgz" integrity sha512-OELeY0Q61OXpdUfTp+oweA/vtLVg5VDOXh+3he3PNzLGG/y0oylSOC1xRVj0+l4vQ3tj/bB1HVHv1ocXkQceFA== wrappy@1: @@ -2283,7 +2317,7 @@ xlsx@^0.18.5: version "0.18.5" - resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz#16711b9113c848076b8a177022799ad356eba7d0" + resolved "https://registry.npmmirror.com/xlsx/-/xlsx-0.18.5.tgz" integrity sha512-dmg3LCjBPHZnQp5/F/+nnTa+miPJxUXB6vtk42YjBBKayDNagxGEeIdWApkYPOf3Z3pm3k62Knjzp7lMeTEtFQ== dependencies: adler-32 "~1.3.0" -- Gitblit v1.9.2