| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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" |
| | | }, |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | } |
| | | }, |
| | | "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", |
| | |
| | | "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": { |
| | |
| | | ], |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | }, |
| | | "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": { |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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" |
| | | } |
| | |
| | | } |
| | | }, |
| | | "@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", |
| | |
| | | } |
| | | }, |
| | | "@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", |
| | |
| | | "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": { |
| | |
| | | "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": { |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | "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", |
| | |
| | | }, |
| | | "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", |
| | |
| | | "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": { |
| | |
| | | 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 |
| | | }); |
| | | } |
| | | }; |
| | | } |
| | |
| | | //安全目标考核 列表 |
| | | 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 |
| | | }); |
| | |
| | | .el-row { |
| | | padding: 0 0 20px 0; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | <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"> |
| | |
| | | |
| | | // 定义接口来定义对象的类型 |
| | | 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> |
| | |
| | | height: 178px; |
| | | text-align: center; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | .el-row { |
| | | padding: 0 0 20px 0; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | .upload-demo{ |
| | | width: 100%; |
| | | } |
| | | </style> |
| | | </style> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
对比新文件 |
| | |
| | | <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> |
| | |
| | | min-width: 30px; |
| | | border-radius: 2px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | min-width: 30px; |
| | | border-radius: 2px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | width: 500px; |
| | | height: 400px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | min-width: 30px; |
| | | border-radius: 2px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | .el-table .sort-caret.ascending{ |
| | | border-bottom-color: #c0c4cc; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | font-weight: 500; |
| | | font-size: 14px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | 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"; |
| | |
| | | margin-right: 0; |
| | | border-radius: 4px 4px 0 0; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | } 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'; |
| | | |
| | |
| | | </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> |
| | |
| | | }, |
| | | 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' |
| | |
| | | min-width: 30px; |
| | | border-radius: 2px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | min-width: 30px; |
| | | border-radius: 2px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | min-width: 30px; |
| | | border-radius: 2px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | // 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'; |
| | | |
| | |
| | | min-width: 30px; |
| | | border-radius: 2px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | .el-select { |
| | | width: 100%; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | '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'; |
| | | |
| | |
| | | min-width: 30px; |
| | | border-radius: 2px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | <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> |
| | |
| | | const handleClicks = (tab: TabsPaneContext, event: Event) => { |
| | | console.log(tab, event); |
| | | }; |
| | | |
| | | |
| | | const activeName = ref('first'); |
| | | // const Show=ref() |
| | | // const openUp=()=>{ |
| | |
| | | display: flex; |
| | | justify-content: right; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | display: flex; |
| | | justify-content: right; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | display: flex; |
| | | justify-content: right; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | .el-row { |
| | | padding: 0 0 20px 0; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | name: 'Tom', |
| | | address: 'No. 189, Grove St, Los Angeles', |
| | | }, |
| | | { |
| | | id:3, |
| | | { |
| | | id:3, |
| | | date: '岗位3', |
| | | name: 'Tom', |
| | | address: 'No. 189, Grove St, Los Angeles', |
| | |
| | | display: flex; |
| | | justify-content: right; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | .el-row { |
| | | padding: 0 0 20px 0; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | .el-row { |
| | | padding: 0 0 20px 0; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | const radio1 = ref(''); |
| | | const list=ref([]) |
| | | const radio = (event: any) => { |
| | | |
| | | |
| | | goalManagementApi() |
| | | .getexamineTemplateDetail(event.id) |
| | | .then((res) => { |
| | |
| | | .el-row { |
| | | padding: 0 0 20px 0; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | .tableC { |
| | | margin: 0 10%; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | background-color: #fff; |
| | | padding: 20px 0px 20px 0px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | form.value = {}; |
| | | formUp.value = {}; |
| | | tableData.value=[]; |
| | | dialogVisible.value = false; |
| | | dialogVisible.value = false; |
| | | }; |
| | | const titleName = ref(); |
| | | const typeScope = ref(); |
| | |
| | | .el-row { |
| | | padding-bottom: 20px; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | display: flex; |
| | | justify-content: right; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | /> |
| | | </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" /> |
| | |
| | | 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; |
| | |
| | | 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; |
| | | }; |
| | |
| | | qName: [ |
| | | { |
| | | required: true, |
| | | message: '安全目标指标不能为空', |
| | | message: '安全目标项不能为空', |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | | indexNum: [ |
| | | { |
| | | required: true, |
| | | message: '目标指标编号不能为空', |
| | | message: '目标编号不能为空', |
| | | trigger: 'change', |
| | | }, |
| | | ], |
| | |
| | | trigger: 'change', |
| | | }, |
| | | { |
| | | type:"number", |
| | | type: 'number', |
| | | message: '指标值只能为数字类型', |
| | | trigger: 'change', |
| | | }, |
| | |
| | | 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() |
| | |
| | | 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, |
| | |
| | | .el-row { |
| | | padding: 0 0 20px 0; |
| | | } |
| | | </style> |
| | | </style> |
| | |
| | | <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%"> |
| | |
| | | </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"> |
| | |
| | | value: res.data.data.complete, |
| | | name: '已完成', |
| | | }); |
| | | console.log(arr); |
| | | init(arr); |
| | | }); |
| | | }; |
| | |
| | | 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" |
| | |
| | | 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" |
| | | |
| | |
| | | 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" |
| | |
| | | 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" |
| | |
| | | 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" |
| | |
| | | |
| | | 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: |
| | |
| | | |
| | | 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" |
| | |
| | | |
| | | 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: |
| | |
| | | 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" |
| | |
| | | |
| | | 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: |
| | |
| | | |
| | | 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: |
| | |
| | | |
| | | 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" |
| | |
| | | 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" |
| | |
| | | "@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" |
| | |
| | | |
| | | 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: |
| | |
| | | |
| | | 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: |
| | |
| | | |
| | | 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" |