Your Name
2022-08-25 0203ef4d930ba7a56996debad9d14c9528390fba
合并
已修改43个文件
已添加3个文件
1421 ■■■■ 文件已修改
package-lock.json 236 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/accidentManagementSystem/index.ts 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/goalManagement/index.ts 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/DailogClass/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/editor/index.vue 198 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/equipmentDailog/DailogS.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/equipmentDailog/repairDailog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/uploaderFile/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/accidentManagementSystem/accidentCases/component/DailogCases.vue 187 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/accidentManagementSystem/accidentCases/component/wangEditor/index.vue 171 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/accidentManagementSystem/accidentCases/index.vue 261 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/accidentManagementSystem/accidentExpress/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/accidentManagementSystem/accidentReport/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/accidentManagementSystem/accidentStatistics/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/accidentManagementSystem/workInjuryDeclaration/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/contingency/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyDrillStatistics/index.vue 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyPlanStartRecord/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/emergencyResources/maintenanceOfEmergencyMaterials/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/panManagement/component/openAdd.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/contingencyManagement/panManagement/index.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/facilityManagement/ProductionEquipment/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/Goalsummary/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/IncentiveRecording/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/Incentivestandard/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/TargetBook/component/DailogAdd.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/TargetBook/component/DailogSearch.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/TargetBook/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/performanceAppraisal/component/DailogAq.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/performanceAppraisal/component/DailogKh.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/performanceAppraisal/component/DailogSearch.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/safetyAssessment/component/Dailog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/safetyAssessment/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/targetDecompositionHalfYear/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/targetEscalation/component/TypeDailog.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/targetEscalation/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/targetSettings/component/dailogAdd.vue 80 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/goalManagement/targetStatistics/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yarn.lock 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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",
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": {
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
            });
        }
    };
}
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
            });
src/components/DailogClass/index.vue
@@ -144,4 +144,4 @@
.el-row {
    padding: 0 0 20px 0;
}
</style>
</style>
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>
src/components/equipmentDailog/DailogS.vue
@@ -698,4 +698,4 @@
    height: 178px;
    text-align: center;
}
</style>
</style>
src/components/equipmentDailog/repairDailog.vue
@@ -213,4 +213,4 @@
.el-row {
    padding: 0 0 20px 0;
}
</style>
</style>
src/components/uploaderFile/index.vue
@@ -175,4 +175,4 @@
    .upload-demo{
        width: 100%;
    }
</style>
</style>
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>
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>
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>
src/views/accidentManagementSystem/accidentExpress/index.vue
@@ -356,4 +356,4 @@
    min-width: 30px;
    border-radius: 2px;
}
</style>
</style>
src/views/accidentManagementSystem/accidentReport/index.vue
@@ -386,4 +386,4 @@
  min-width: 30px;
  border-radius: 2px;
}
</style>
</style>
src/views/accidentManagementSystem/accidentStatistics/index.vue
@@ -179,4 +179,4 @@
    width: 500px;
    height: 400px;
}
</style>
</style>
src/views/accidentManagementSystem/workInjuryDeclaration/index.vue
@@ -389,4 +389,4 @@
    min-width: 30px;
    border-radius: 2px;
}
</style>
</style>
src/views/contingencyManagement/contingency/index.vue
@@ -398,4 +398,4 @@
.el-table .sort-caret.ascending{
  border-bottom-color: #c0c4cc;
}
</style>
</style>
src/views/contingencyManagement/emergencyDrill/drillImplementationEvaluation/component/approvalProgress.vue
@@ -922,4 +922,4 @@
  font-weight: 500;
  font-size: 14px;
}
</style>
</style>
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";
src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue
@@ -588,4 +588,4 @@
  margin-right: 0;
  border-radius: 4px 4px 0 0;
}
</style>
</style>
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';
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'
src/views/contingencyManagement/emergencyPlanStartRecord/index.vue
@@ -405,4 +405,4 @@
  min-width: 30px;
  border-radius: 2px;
}
</style>
</style>
src/views/contingencyManagement/emergencyResources/emergencyMaterialsInspection/index.vue
@@ -388,4 +388,4 @@
    min-width: 30px;
    border-radius: 2px;
}
</style>
</style>
src/views/contingencyManagement/emergencyResources/emergencySupplies/index.vue
@@ -394,4 +394,4 @@
    min-width: 30px;
    border-radius: 2px;
}
</style>
</style>
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>
src/views/contingencyManagement/panManagement/component/openAdd.vue
@@ -468,4 +468,4 @@
.el-select {
    width: 100%;
}
</style>
</style>
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>
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=()=>{
src/views/goalManagement/Goalsummary/index.vue
@@ -224,4 +224,4 @@
    display: flex;
    justify-content: right;
}
</style>
</style>
src/views/goalManagement/IncentiveRecording/index.vue
@@ -299,4 +299,4 @@
    display: flex;
    justify-content: right;
}
</style>
</style>
src/views/goalManagement/Incentivestandard/index.vue
@@ -280,4 +280,4 @@
    display: flex;
    justify-content: right;
}
</style>
</style>
src/views/goalManagement/TargetBook/component/DailogAdd.vue
@@ -243,4 +243,4 @@
.el-row {
    padding: 0 0 20px 0;
}
</style>
</style>
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',
src/views/goalManagement/TargetBook/index.vue
@@ -286,4 +286,4 @@
    display: flex;
    justify-content: right;
}
</style>
</style>
src/views/goalManagement/performanceAppraisal/component/DailogAq.vue
@@ -452,4 +452,4 @@
.el-row {
    padding: 0 0 20px 0;
}
</style>
</style>
src/views/goalManagement/performanceAppraisal/component/DailogKh.vue
@@ -244,4 +244,4 @@
.el-row {
    padding: 0 0 20px 0;
}
</style>
</style>
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) => {
src/views/goalManagement/safetyAssessment/component/Dailog.vue
@@ -261,4 +261,4 @@
.el-row {
    padding: 0 0 20px 0;
}
</style>
</style>
src/views/goalManagement/safetyAssessment/index.vue
@@ -238,4 +238,4 @@
.tableC {
    margin: 0 10%;
}
</style>
</style>
src/views/goalManagement/targetDecompositionHalfYear/index.vue
@@ -283,4 +283,4 @@
    background-color: #fff;
    padding: 20px 0px 20px 0px;
}
</style>
</style>
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>
src/views/goalManagement/targetEscalation/index.vue
@@ -196,4 +196,4 @@
    display: flex;
    justify-content: right;
}
</style>
</style>
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>
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);
                });
        };
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"