forked from integrated_whb/integrated_whb_vue
init
parent
a643da6979
commit
62798bee5f
|
@ -12,6 +12,7 @@
|
|||
"@icon-park/vue-next": "^1.4.2",
|
||||
"@vueuse/core": "^9.13.0",
|
||||
"@vueuse/integrations": "^10.7.1",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
"animate.css": "^4.1.1",
|
||||
"autofit.js": "^3.0.7",
|
||||
"axios": "^1.6.3",
|
||||
|
@ -24,6 +25,7 @@
|
|||
"mitt": "^3.0.1",
|
||||
"nanoid": "^5.0.4",
|
||||
"normalize.css": "^8.0.1",
|
||||
"pako": "^2.1.0",
|
||||
"pinia": "^2.1.7",
|
||||
"pinia-plugin-persistedstate": "^3.2.1",
|
||||
"qrcode": "^1.5.3",
|
||||
|
@ -1255,6 +1257,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@transloadit/prettier-bytes": {
|
||||
"version": "0.0.7",
|
||||
"resolved": "https://registry.npmmirror.com/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz",
|
||||
"integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@types/eslint": {
|
||||
"version": "8.56.2",
|
||||
"resolved": "https://registry.npmmirror.com/@types/eslint/-/eslint-8.56.2.tgz",
|
||||
|
@ -1271,6 +1279,12 @@
|
|||
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/event-emitter": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmmirror.com/@types/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||
"integrity": "sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@types/json-schema": {
|
||||
"version": "7.0.15",
|
||||
"resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.15.tgz",
|
||||
|
@ -1328,6 +1342,85 @@
|
|||
"integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@uppy/companion-client": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmmirror.com/@uppy/companion-client/-/companion-client-2.2.2.tgz",
|
||||
"integrity": "sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@uppy/utils": "^4.1.2",
|
||||
"namespace-emitter": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@uppy/core": {
|
||||
"version": "2.3.4",
|
||||
"resolved": "https://registry.npmmirror.com/@uppy/core/-/core-2.3.4.tgz",
|
||||
"integrity": "sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@transloadit/prettier-bytes": "0.0.7",
|
||||
"@uppy/store-default": "^2.1.1",
|
||||
"@uppy/utils": "^4.1.3",
|
||||
"lodash.throttle": "^4.1.1",
|
||||
"mime-match": "^1.0.2",
|
||||
"namespace-emitter": "^2.0.1",
|
||||
"nanoid": "^3.1.25",
|
||||
"preact": "^10.5.13"
|
||||
}
|
||||
},
|
||||
"node_modules/@uppy/core/node_modules/nanoid": {
|
||||
"version": "3.3.7",
|
||||
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
|
||||
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@uppy/store-default": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/@uppy/store-default/-/store-default-2.1.1.tgz",
|
||||
"integrity": "sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/@uppy/utils": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmmirror.com/@uppy/utils/-/utils-4.1.3.tgz",
|
||||
"integrity": "sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"lodash.throttle": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@uppy/xhr-upload": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmmirror.com/@uppy/xhr-upload/-/xhr-upload-2.1.3.tgz",
|
||||
"integrity": "sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@uppy/companion-client": "^2.2.2",
|
||||
"@uppy/utils": "^4.1.2",
|
||||
"nanoid": "^3.1.25"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@uppy/core": "^2.3.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@uppy/xhr-upload/node_modules/nanoid": {
|
||||
"version": "3.3.7",
|
||||
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
|
||||
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@vitejs/plugin-basic-ssl": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.1.0.tgz",
|
||||
|
@ -1654,6 +1747,176 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor": {
|
||||
"version": "5.1.23",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/editor/-/editor-5.1.23.tgz",
|
||||
"integrity": "sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@uppy/core": "^2.1.1",
|
||||
"@uppy/xhr-upload": "^2.0.3",
|
||||
"@wangeditor/basic-modules": "^1.1.7",
|
||||
"@wangeditor/code-highlight": "^1.0.3",
|
||||
"@wangeditor/core": "^1.1.19",
|
||||
"@wangeditor/list-module": "^1.0.5",
|
||||
"@wangeditor/table-module": "^1.1.4",
|
||||
"@wangeditor/upload-image-module": "^1.0.2",
|
||||
"@wangeditor/video-module": "^1.1.4",
|
||||
"dom7": "^3.0.0",
|
||||
"is-hotkey": "^0.2.0",
|
||||
"lodash.camelcase": "^4.3.0",
|
||||
"lodash.clonedeep": "^4.5.0",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"lodash.foreach": "^4.5.0",
|
||||
"lodash.isequal": "^4.5.0",
|
||||
"lodash.throttle": "^4.1.1",
|
||||
"lodash.toarray": "^4.4.0",
|
||||
"nanoid": "^3.2.0",
|
||||
"slate": "^0.72.0",
|
||||
"snabbdom": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor-for-vue": {
|
||||
"version": "5.1.12",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/editor-for-vue/-/editor-for-vue-5.1.12.tgz",
|
||||
"integrity": "sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==",
|
||||
"peerDependencies": {
|
||||
"@wangeditor/editor": ">=5.1.0",
|
||||
"vue": "^3.0.5"
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor/node_modules/@wangeditor/basic-modules": {
|
||||
"version": "1.1.7",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/basic-modules/-/basic-modules-1.1.7.tgz",
|
||||
"integrity": "sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"is-url": "^1.2.4"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@wangeditor/core": "1.x",
|
||||
"dom7": "^3.0.0",
|
||||
"lodash.throttle": "^4.1.1",
|
||||
"nanoid": "^3.2.0",
|
||||
"slate": "^0.72.0",
|
||||
"snabbdom": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor/node_modules/@wangeditor/code-highlight": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz",
|
||||
"integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"prismjs": "^1.23.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@wangeditor/core": "1.x",
|
||||
"dom7": "^3.0.0",
|
||||
"slate": "^0.72.0",
|
||||
"snabbdom": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor/node_modules/@wangeditor/core": {
|
||||
"version": "1.1.19",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/core/-/core-1.1.19.tgz",
|
||||
"integrity": "sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@types/event-emitter": "^0.3.3",
|
||||
"event-emitter": "^0.3.5",
|
||||
"html-void-elements": "^2.0.0",
|
||||
"i18next": "^20.4.0",
|
||||
"scroll-into-view-if-needed": "^2.2.28",
|
||||
"slate-history": "^0.66.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@uppy/core": "^2.1.1",
|
||||
"@uppy/xhr-upload": "^2.0.3",
|
||||
"dom7": "^3.0.0",
|
||||
"is-hotkey": "^0.2.0",
|
||||
"lodash.camelcase": "^4.3.0",
|
||||
"lodash.clonedeep": "^4.5.0",
|
||||
"lodash.debounce": "^4.0.8",
|
||||
"lodash.foreach": "^4.5.0",
|
||||
"lodash.isequal": "^4.5.0",
|
||||
"lodash.throttle": "^4.1.1",
|
||||
"lodash.toarray": "^4.4.0",
|
||||
"nanoid": "^3.2.0",
|
||||
"slate": "^0.72.0",
|
||||
"snabbdom": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor/node_modules/@wangeditor/list-module": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/list-module/-/list-module-1.0.5.tgz",
|
||||
"integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==",
|
||||
"peer": true,
|
||||
"peerDependencies": {
|
||||
"@wangeditor/core": "1.x",
|
||||
"dom7": "^3.0.0",
|
||||
"slate": "^0.72.0",
|
||||
"snabbdom": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor/node_modules/@wangeditor/table-module": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/table-module/-/table-module-1.1.4.tgz",
|
||||
"integrity": "sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==",
|
||||
"peer": true,
|
||||
"peerDependencies": {
|
||||
"@wangeditor/core": "1.x",
|
||||
"dom7": "^3.0.0",
|
||||
"lodash.isequal": "^4.5.0",
|
||||
"lodash.throttle": "^4.1.1",
|
||||
"nanoid": "^3.2.0",
|
||||
"slate": "^0.72.0",
|
||||
"snabbdom": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor/node_modules/@wangeditor/upload-image-module": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/upload-image-module/-/upload-image-module-1.0.2.tgz",
|
||||
"integrity": "sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==",
|
||||
"peer": true,
|
||||
"peerDependencies": {
|
||||
"@uppy/core": "^2.0.3",
|
||||
"@uppy/xhr-upload": "^2.0.3",
|
||||
"@wangeditor/basic-modules": "1.x",
|
||||
"@wangeditor/core": "1.x",
|
||||
"dom7": "^3.0.0",
|
||||
"lodash.foreach": "^4.5.0",
|
||||
"slate": "^0.72.0",
|
||||
"snabbdom": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor/node_modules/@wangeditor/video-module": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmmirror.com/@wangeditor/video-module/-/video-module-1.1.4.tgz",
|
||||
"integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==",
|
||||
"peer": true,
|
||||
"peerDependencies": {
|
||||
"@uppy/core": "^2.1.4",
|
||||
"@uppy/xhr-upload": "^2.0.7",
|
||||
"@wangeditor/core": "1.x",
|
||||
"dom7": "^3.0.0",
|
||||
"nanoid": "^3.2.0",
|
||||
"slate": "^0.72.0",
|
||||
"snabbdom": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@wangeditor/editor/node_modules/nanoid": {
|
||||
"version": "3.3.7",
|
||||
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.7.tgz",
|
||||
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||
"peer": true,
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/acorn": {
|
||||
"version": "8.11.3",
|
||||
"resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.11.3.tgz",
|
||||
|
@ -2151,6 +2414,12 @@
|
|||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/compute-scroll-into-view": {
|
||||
"version": "1.0.20",
|
||||
"resolved": "https://registry.npmmirror.com/compute-scroll-into-view/-/compute-scroll-into-view-1.0.20.tgz",
|
||||
"integrity": "sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/concat-map/-/concat-map-0.0.1.tgz",
|
||||
|
@ -2215,6 +2484,16 @@
|
|||
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
|
||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw=="
|
||||
},
|
||||
"node_modules/d": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/d/-/d-1.0.1.tgz",
|
||||
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"es5-ext": "^0.10.50",
|
||||
"type": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/dayjs": {
|
||||
"version": "1.11.10",
|
||||
"resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.10.tgz",
|
||||
|
@ -2303,6 +2582,15 @@
|
|||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/dom7": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/dom7/-/dom7-3.0.0.tgz",
|
||||
"integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"ssr-window": "^3.0.0-alpha.1"
|
||||
}
|
||||
},
|
||||
"node_modules/dommatrix": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/dommatrix/-/dommatrix-1.0.3.tgz",
|
||||
|
@ -2460,6 +2748,42 @@
|
|||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/es5-ext": {
|
||||
"version": "0.10.62",
|
||||
"resolved": "https://registry.npmmirror.com/es5-ext/-/es5-ext-0.10.62.tgz",
|
||||
"integrity": "sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==",
|
||||
"hasInstallScript": true,
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"es6-iterator": "^2.0.3",
|
||||
"es6-symbol": "^3.1.3",
|
||||
"next-tick": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/es6-iterator": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/es6-iterator/-/es6-iterator-2.0.3.tgz",
|
||||
"integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.35",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/es6-symbol": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmmirror.com/es6-symbol/-/es6-symbol-3.1.3.tgz",
|
||||
"integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"d": "^1.0.1",
|
||||
"ext": "^1.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.18.20",
|
||||
"resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.18.20.tgz",
|
||||
|
@ -2983,6 +3307,31 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/event-emitter": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmmirror.com/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||
"integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"node_modules/ext": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmmirror.com/ext/-/ext-1.7.0.tgz",
|
||||
"integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"type": "^2.7.2"
|
||||
}
|
||||
},
|
||||
"node_modules/ext/node_modules/type": {
|
||||
"version": "2.7.2",
|
||||
"resolved": "https://registry.npmmirror.com/type/-/type-2.7.2.tgz",
|
||||
"integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/fast-deep-equal": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmmirror.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
|
||||
|
@ -3367,6 +3716,12 @@
|
|||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/html-void-elements": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/html-void-elements/-/html-void-elements-2.0.1.tgz",
|
||||
"integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/html2canvas": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz",
|
||||
|
@ -3379,6 +3734,15 @@
|
|||
"node": ">=8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/i18next": {
|
||||
"version": "20.6.1",
|
||||
"resolved": "https://registry.npmmirror.com/i18next/-/i18next-20.6.1.tgz",
|
||||
"integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@babel/runtime": "^7.12.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ignore": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/ignore/-/ignore-5.3.0.tgz",
|
||||
|
@ -3388,6 +3752,12 @@
|
|||
"node": ">= 4"
|
||||
}
|
||||
},
|
||||
"node_modules/immer": {
|
||||
"version": "9.0.21",
|
||||
"resolved": "https://registry.npmmirror.com/immer/-/immer-9.0.21.tgz",
|
||||
"integrity": "sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/immutable": {
|
||||
"version": "4.3.4",
|
||||
"resolved": "https://registry.npmmirror.com/immutable/-/immutable-4.3.4.tgz",
|
||||
|
@ -3550,6 +3920,12 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-hotkey": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/is-hotkey/-/is-hotkey-0.2.0.tgz",
|
||||
"integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/is-negative-zero": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
|
||||
|
@ -3589,6 +3965,15 @@
|
|||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/is-plain-object": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz",
|
||||
"integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/is-regex": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.1.4.tgz",
|
||||
|
@ -3647,6 +4032,12 @@
|
|||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/is-url": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmmirror.com/is-url/-/is-url-1.2.4.tgz",
|
||||
"integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/is-weakref": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.0.2.tgz",
|
||||
|
@ -3814,12 +4205,54 @@
|
|||
"lodash-es": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/lodash.camelcase": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
|
||||
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/lodash.clonedeep": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
|
||||
"integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/lodash.debounce": {
|
||||
"version": "4.0.8",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
|
||||
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/lodash.foreach": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz",
|
||||
"integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/lodash.isequal": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
||||
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/lodash.merge": {
|
||||
"version": "4.6.2",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.merge/-/lodash.merge-4.6.2.tgz",
|
||||
"integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/lodash.throttle": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz",
|
||||
"integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/lodash.toarray": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz",
|
||||
"integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/lru-cache": {
|
||||
"version": "5.1.1",
|
||||
"resolved": "https://registry.npmmirror.com/lru-cache/-/lru-cache-5.1.1.tgz",
|
||||
|
@ -3877,6 +4310,15 @@
|
|||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-match": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/mime-match/-/mime-match-1.0.2.tgz",
|
||||
"integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"wildcard": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/mime-types": {
|
||||
"version": "2.1.35",
|
||||
"resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
|
||||
|
@ -3929,6 +4371,12 @@
|
|||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/namespace-emitter": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/namespace-emitter/-/namespace-emitter-2.0.1.tgz",
|
||||
"integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "5.0.4",
|
||||
"resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-5.0.4.tgz",
|
||||
|
@ -3946,6 +4394,12 @@
|
|||
"integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/next-tick": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/next-tick/-/next-tick-1.1.0.tgz",
|
||||
"integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/node-releases": {
|
||||
"version": "2.0.14",
|
||||
"resolved": "https://registry.npmmirror.com/node-releases/-/node-releases-2.0.14.tgz",
|
||||
|
@ -4125,6 +4579,11 @@
|
|||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/pako": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/pako/-/pako-2.1.0.tgz",
|
||||
"integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug=="
|
||||
},
|
||||
"node_modules/parent-module": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/parent-module/-/parent-module-1.0.1.tgz",
|
||||
|
@ -4326,6 +4785,12 @@
|
|||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/preact": {
|
||||
"version": "10.19.3",
|
||||
"resolved": "https://registry.npmmirror.com/preact/-/preact-10.19.3.tgz",
|
||||
"integrity": "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/prelude-ls": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmmirror.com/prelude-ls/-/prelude-ls-1.2.1.tgz",
|
||||
|
@ -4359,6 +4824,15 @@
|
|||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/prismjs": {
|
||||
"version": "1.29.0",
|
||||
"resolved": "https://registry.npmmirror.com/prismjs/-/prismjs-1.29.0.tgz",
|
||||
"integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
|
@ -4611,6 +5085,15 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/scroll-into-view-if-needed": {
|
||||
"version": "2.2.31",
|
||||
"resolved": "https://registry.npmmirror.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.31.tgz",
|
||||
"integrity": "sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"compute-scroll-into-view": "^1.0.20"
|
||||
}
|
||||
},
|
||||
"node_modules/scule": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/scule/-/scule-1.2.0.tgz",
|
||||
|
@ -4691,6 +5174,38 @@
|
|||
"object-inspect": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/slate": {
|
||||
"version": "0.72.8",
|
||||
"resolved": "https://registry.npmmirror.com/slate/-/slate-0.72.8.tgz",
|
||||
"integrity": "sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"immer": "^9.0.6",
|
||||
"is-plain-object": "^5.0.0",
|
||||
"tiny-warning": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"node_modules/slate-history": {
|
||||
"version": "0.66.0",
|
||||
"resolved": "https://registry.npmmirror.com/slate-history/-/slate-history-0.66.0.tgz",
|
||||
"integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"is-plain-object": "^5.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"slate": ">=0.65.3"
|
||||
}
|
||||
},
|
||||
"node_modules/snabbdom": {
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npmmirror.com/snabbdom/-/snabbdom-3.6.1.tgz",
|
||||
"integrity": "sha512-HHr93dBRkek19QB8OQ5QdGNRPzqLeqcUyAmbxtdE/koLKR6slFtnOlMBgeA9untY9wC7+8cw7oEAFY78K4p+Ug==",
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=12.17.0"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map": {
|
||||
"version": "0.7.4",
|
||||
"resolved": "https://registry.npmmirror.com/source-map/-/source-map-0.7.4.tgz",
|
||||
|
@ -4708,6 +5223,12 @@
|
|||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/ssr-window": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/ssr-window/-/ssr-window-3.0.0.tgz",
|
||||
"integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/stackblur-canvas": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmmirror.com/stackblur-canvas/-/stackblur-canvas-2.6.0.tgz",
|
||||
|
@ -4856,6 +5377,12 @@
|
|||
"node": ">=12.22"
|
||||
}
|
||||
},
|
||||
"node_modules/tiny-warning": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/tiny-warning/-/tiny-warning-1.0.3.tgz",
|
||||
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/to-fast-properties": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmmirror.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
||||
|
@ -4894,6 +5421,12 @@
|
|||
"resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
|
||||
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
||||
},
|
||||
"node_modules/type": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/type/-/type-1.2.0.tgz",
|
||||
"integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/type-check": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/type-check/-/type-check-0.4.0.tgz",
|
||||
|
@ -5530,6 +6063,12 @@
|
|||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/wildcard": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmmirror.com/wildcard/-/wildcard-1.1.2.tgz",
|
||||
"integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==",
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/wrap-ansi": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
"@icon-park/vue-next": "^1.4.2",
|
||||
"@vueuse/core": "^9.13.0",
|
||||
"@vueuse/integrations": "^10.7.1",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
"animate.css": "^4.1.1",
|
||||
"autofit.js": "^3.0.7",
|
||||
"axios": "^1.6.3",
|
||||
|
|
|
@ -255,14 +255,6 @@ div::-webkit-scrollbar-track {
|
|||
border-bottom: 1px dashed var(--el-border-color-darker);
|
||||
}
|
||||
|
||||
.w-e-bar-item:has([data-menu-key="group-video"]) {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.w-e-bar-item-menus-container .w-e-bar-item:has([data-menu-key="insertImage"]) {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.vue-auth-box_ {
|
||||
background: #020f3a !important;
|
||||
border: 1px solid #223765 !important;
|
||||
|
|
|
@ -2155,6 +2155,18 @@ export default [
|
|||
component:
|
||||
"three_institutional_libraries/safety_production_responsibility_system/index",
|
||||
},
|
||||
{
|
||||
path: "/three_institutional_libraries/safety_production_management_system",
|
||||
meta: { title: "安全生产管理制度", isSubMenu: false },
|
||||
component:
|
||||
"three_institutional_libraries/safety_production_management_system/index",
|
||||
},
|
||||
{
|
||||
path: "/three_institutional_libraries/safety_operating_procedures",
|
||||
meta: { title: "安全操作规程", isSubMenu: false },
|
||||
component:
|
||||
"three_institutional_libraries/safety_operating_procedures/index",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
|
@ -2675,54 +2687,6 @@ export default [
|
|||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/stakeholder_management",
|
||||
redirect: "/stakeholder_management/related_parties_management",
|
||||
meta: { title: "相关方管理", model: MODEL["5"] },
|
||||
component: "children",
|
||||
children: [
|
||||
{
|
||||
path: "/stakeholder_management/related_parties_management",
|
||||
meta: { title: "相关方单位管理", isSubMenu: false },
|
||||
component: "children",
|
||||
children: [
|
||||
{
|
||||
path: "",
|
||||
component:
|
||||
"stakeholder_management/related_parties_management/index",
|
||||
},
|
||||
{
|
||||
path: "/stakeholder_management/related_parties_management/add",
|
||||
meta: {
|
||||
title: "新增",
|
||||
activeMenu: "/stakeholder_management/related_parties_management",
|
||||
},
|
||||
component: "stakeholder_management/related_parties_management/add",
|
||||
},
|
||||
{
|
||||
path: "/stakeholder_management/related_parties_management/edit",
|
||||
meta: {
|
||||
title: "修改",
|
||||
activeMenu: "/stakeholder_management/related_parties_management",
|
||||
},
|
||||
component: "stakeholder_management/related_parties_management/add",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/stakeholder_management/outsourcing_project_management",
|
||||
meta: { title: "外包工程管理", isSubMenu: false },
|
||||
component: "children",
|
||||
children: [
|
||||
{
|
||||
path: "",
|
||||
component:
|
||||
"stakeholder_management/outsourcing_project_management/index",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
path: "/special_operations",
|
||||
redirect: "/special_operations/personnel_management",
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
<template>
|
||||
<div>
|
||||
<Toolbar :editor="editorRef" :default-config="toolbarConfig" />
|
||||
<Editor
|
||||
:style="{ height, 'overflow-y': 'hidden' }"
|
||||
v-model="modelValue"
|
||||
@onCreated="fnEditorCreated"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { Editor, Toolbar } from "@wangeditor/editor-for-vue";
|
||||
import "@wangeditor/editor/dist/css/style.css";
|
||||
import { shallowRef, onBeforeUnmount } from "vue";
|
||||
import { useVModel } from "@vueuse/core";
|
||||
|
||||
defineOptions({
|
||||
name: "LayoutEditor",
|
||||
});
|
||||
const props = defineProps({
|
||||
modelValue: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
height: {
|
||||
type: String,
|
||||
default: "300px",
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:modelValue"]);
|
||||
const modelValue = useVModel(props, "modelValue", emits);
|
||||
const editorRef = shallowRef();
|
||||
const toolbarConfig = {
|
||||
excludeKeys: [
|
||||
"group-image",
|
||||
"group-video",
|
||||
"insertLink",
|
||||
"codeBlock",
|
||||
"emotion",
|
||||
"todo",
|
||||
],
|
||||
};
|
||||
const fnEditorCreated = (editor) => {
|
||||
editorRef.value = editor;
|
||||
};
|
||||
onBeforeUnmount(() => {
|
||||
editorRef.value && editorRef.value.destroy();
|
||||
});
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -18,12 +18,12 @@
|
|||
:clearable="true"
|
||||
show-checkbox
|
||||
multiple
|
||||
collapse-tags
|
||||
:collapse-tags="collapseTags"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { nextTick, ref } from "vue";
|
||||
import { useVModel } from "@vueuse/core";
|
||||
import { layoutFnGetLevelsAndChildrenNumber } from "@/assets/js/data_dictionary.js";
|
||||
import { getThreeInstitutionalLibrariesLabel } from "@/request/three_institutional_libraries.js";
|
||||
|
@ -54,6 +54,14 @@ const props = defineProps({
|
|||
}
|
||||
},
|
||||
},
|
||||
pathName: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
collapseTags: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:modelValue", "update:checkList"]);
|
||||
const modelValue = useVModel(props, "modelValue", emits);
|
||||
|
@ -74,7 +82,8 @@ const fnLoad = async (node, resolve) => {
|
|||
})
|
||||
);
|
||||
};
|
||||
const getCheckedNodes = () => {
|
||||
const getCheckedNodes = async () => {
|
||||
await nextTick();
|
||||
return treeSelectRef.value.getCheckedNodes();
|
||||
};
|
||||
defineExpose({
|
||||
|
@ -82,8 +91,13 @@ defineExpose({
|
|||
});
|
||||
let tree = [];
|
||||
let id = "";
|
||||
const idByPathName = {
|
||||
safety_production_responsibility_system: "5a7c94b2b9514285b433759edd848b4a",
|
||||
safety_production_management_system: "675ed73a7d7d42a488491f6e0e9c8fd5",
|
||||
safety_operating_procedures: "ca4e4a7597f8485d8be323bd6876c40b",
|
||||
};
|
||||
if (props.type === "regulations") id = "84254cb5b2ae40eb9f451509b2d370ae";
|
||||
if (props.type === "type") id = "5a7c94b2b9514285b433759edd848b4a";
|
||||
if (props.type === "type") id = idByPathName[props.pathName];
|
||||
if (props.type === "industry") id = "f2598ba72e864eadabf0ca4b664d26b9";
|
||||
if (props.type === "label") {
|
||||
const resData = await getThreeInstitutionalLibrariesLabel();
|
||||
|
|
|
@ -1,24 +0,0 @@
|
|||
import { post, upload } from "@/request/axios.js";
|
||||
|
||||
export const getRelatedPartiesManagementList = (params) =>
|
||||
post("/units/list", params); // 相关方单位管理列表
|
||||
export const getRelatedPartiesManagementView = (params) =>
|
||||
post("/units/goEdit", params); // 相关方单位管理查看
|
||||
export const setRelatedPartiesManagementDelete = (params) =>
|
||||
post("/units/delete", params); // 相关方单位管理删除
|
||||
export const setRelatedPartiesManagementDeleteMultiple = (params) =>
|
||||
post("/units/deleteAll", params); // 相关方单位管理批量删除
|
||||
export const setRelatedPartiesManagementAdd = (params) =>
|
||||
upload("/units/add", params); // 相关方单位管理新增
|
||||
export const setRelatedPartiesManagementEdit = (params) =>
|
||||
upload("/units/edit", params); // 相关方单位管理编辑
|
||||
export const getVerifyDeduplicationUser = (params) =>
|
||||
post("/units/hasName", params); // 相关方单位名称验证
|
||||
export const getVerifyDeduplicationCode = (params) =>
|
||||
post("/units/hasCode", params); // 统一社会信用代码验证
|
||||
export const getOutsourcingProjectManagementList = (params) =>
|
||||
post("/outsourced/list", params); // 外包工程管理列表
|
||||
export const setOutsourcingProjectManagementDelete = (params) =>
|
||||
post("/outsourced/delete", params); // 外包工程管理删除
|
||||
export const setOutsourcingProjectManagementDeleteMultiple = (params) =>
|
||||
post("/outsourced/deleteAll", params); // 外包工程管理批量删除
|
|
@ -1,6 +1,16 @@
|
|||
import { post } from "@/request/axios.js";
|
||||
import { post, upload } from "@/request/axios.js";
|
||||
|
||||
export const getThreeInstitutionalLibrariesList = (params) =>
|
||||
post("/textLibrary/list", params); // 三项制度库列表
|
||||
export const getThreeInstitutionalLibrariesLabel = (params) =>
|
||||
post("/labelFactory/tree", params); // 三项制度库标签
|
||||
export const getThreeInstitutionalLibrariesList = (params) =>
|
||||
post("/textLibrary/list", params); // 三项制度库列表
|
||||
export const getThreeInstitutionalLibrariesView = (params) =>
|
||||
post("/textLibrary/goEdit", params); // 三项制度库查看
|
||||
export const getThreeInstitutionalLibrariesViewText = (params) =>
|
||||
post("/textLibrary/getTextInfo", params); // 三项制度库查看富文本
|
||||
export const setThreeInstitutionalLibrariesDelete = (params) =>
|
||||
post("/textLibrary/delete", params); // 三项制度库删除
|
||||
export const setThreeInstitutionalLibrariesSave = (params) =>
|
||||
upload("/textLibrary/init", params); // 三项制度库保存
|
||||
export const setThreeInstitutionalLibrariesJoinLocal = (params) =>
|
||||
post("/textLibrary/copyToOperate", params); // 三项制度库加入本地
|
||||
|
|
|
@ -131,7 +131,7 @@
|
|||
<span>姓名:{{ data.info.NAME }}</span>
|
||||
</div>
|
||||
<div class="sub_flex">
|
||||
<span>考试时间:{{ data.info.OPERATTIME }}</span>
|
||||
<span>考试时间:{{ data.info.EXAMTIMEBEGIN }}</span>
|
||||
<span>分数:{{ data.info.userSecond?.[0] }}</span>
|
||||
</div>
|
||||
<template v-if="data.selectList.length > 0">
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="检查时间:" prop="CHECKTIME">
|
||||
<el-form-item label="检查时间" prop="CHECKTIME">
|
||||
<el-date-picker
|
||||
v-model="form.CHECKTIME"
|
||||
value-format="YYYY-MM-DD"
|
||||
|
@ -26,17 +26,17 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="检查机构:" prop="CHECKAGENT">
|
||||
<el-form-item label="检查机构" prop="CHECKAGENT">
|
||||
<el-input v-model="form.CHECKAGENT" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="检查情况:" prop="CHECKOUT">
|
||||
<el-form-item label="检查情况" prop="CHECKOUT">
|
||||
<el-input v-model="form.CHECKOUT" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="在岗情况:" prop="ONSITUATION">
|
||||
<el-form-item label="在岗情况" prop="ONSITUATION">
|
||||
<el-select v-model="form.ONSITUATION">
|
||||
<el-option
|
||||
v-for="item in dutySituationList"
|
||||
|
@ -48,7 +48,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注:" prop="REMARKS">
|
||||
<el-form-item label="备注" prop="REMARKS">
|
||||
<el-input
|
||||
v-model="form.REMARKS"
|
||||
type="textarea"
|
||||
|
@ -60,7 +60,7 @@
|
|||
<el-divider content-position="left">职业健康检查</el-divider>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="上岗时间:" prop="STARTINGTIME">
|
||||
<el-form-item label="上岗时间" prop="STARTINGTIME">
|
||||
<el-date-picker
|
||||
v-model="form.STARTINGTIME"
|
||||
value-format="YYYY-MM-DD"
|
||||
|
@ -70,7 +70,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="离岗时间:" prop="OUTTIME">
|
||||
<el-form-item label="离岗时间" prop="OUTTIME">
|
||||
<el-date-picker
|
||||
v-model="form.OUTTIME"
|
||||
value-format="YYYY-MM-DD"
|
||||
|
@ -80,22 +80,22 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="岗位检查情况:" prop="POSTINSPECTION">
|
||||
<el-form-item label="岗位检查情况" prop="POSTINSPECTION">
|
||||
<el-input v-model="form.POSTINSPECTION" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="在岗检查情况:" prop="ONINSPECTION">
|
||||
<el-form-item label="在岗检查情况" prop="ONINSPECTION">
|
||||
<el-input v-model="form.ONINSPECTION" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="离岗检查情况:" prop="OUTINSPECTION">
|
||||
<el-form-item label="离岗检查情况" prop="OUTINSPECTION">
|
||||
<el-input v-model="form.OUTINSPECTION" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注:" prop="REMARK">
|
||||
<el-form-item label="备注" prop="REMARK">
|
||||
<el-input
|
||||
v-model="form.REMARKS2"
|
||||
type="textarea"
|
||||
|
@ -107,7 +107,7 @@
|
|||
<el-divider content-position="left">职业病诊疗情况</el-divider>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="确认日期:" prop="CONFIRMATIONTIME">
|
||||
<el-form-item label="确认日期" prop="CONFIRMATIONTIME">
|
||||
<el-date-picker
|
||||
v-model="form.CONFIRMATIONTIME"
|
||||
value-format="YYYY-MM-DD"
|
||||
|
@ -117,17 +117,17 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="诊断疾病名称:" prop="DISEASENAME">
|
||||
<el-form-item label="诊断疾病名称" prop="DISEASENAME">
|
||||
<el-input v-model="form.DISEASENAME" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="治疗情况:" prop="TREATMENT">
|
||||
<el-form-item label="治疗情况" prop="TREATMENT">
|
||||
<el-input v-model="form.TREATMENT" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="备注:" prop="REMARK">
|
||||
<el-form-item label="备注" prop="REMARK">
|
||||
<el-input
|
||||
v-model="form.REMARKS3"
|
||||
type="textarea"
|
||||
|
@ -139,7 +139,7 @@
|
|||
<el-divider content-position="left">职业禁忌证</el-divider>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="职业禁忌证:" prop="CONTRAINDICATION">
|
||||
<el-form-item label="职业禁忌证" prop="CONTRAINDICATION">
|
||||
<el-select v-model="form.CONTRAINDICATION">
|
||||
<el-option
|
||||
v-for="item in contraindicationList"
|
||||
|
@ -151,12 +151,12 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="作业性质:" prop="NATURE">
|
||||
<el-form-item label="作业性质" prop="NATURE">
|
||||
<el-input v-model="form.NATURE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="检查时间:" prop="CHECKTIME2">
|
||||
<el-form-item label="检查时间" prop="CHECKTIME2">
|
||||
<el-date-picker
|
||||
v-model="form.CHECKTIME2"
|
||||
value-format="YYYY-MM-DD"
|
||||
|
@ -166,7 +166,7 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="检查机构:" prop="CHECKAGENT2">
|
||||
<el-form-item label="检查机构" prop="CHECKAGENT2">
|
||||
<el-input v-model="form.CHECKAGENT2" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
|
@ -113,7 +113,6 @@
|
|||
|
||||
<script setup>
|
||||
import { layoutFnGetPersonnelManagementJobType } from "@/assets/js/data_dictionary.js";
|
||||
import { getRelatedPartiesManagementList } from "@/request/stakeholder_management.js";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { ref } from "vue";
|
||||
import {
|
||||
|
@ -127,6 +126,7 @@ import { useUserStore } from "@/pinia/user.js";
|
|||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { getUnitsListAll } from "@/request/keyprojects.js";
|
||||
|
||||
const userStore = useUserStore();
|
||||
const route = useRoute();
|
||||
|
@ -144,11 +144,7 @@ const sexList = [
|
|||
];
|
||||
const personnelManagementJobTypeList =
|
||||
await layoutFnGetPersonnelManagementJobType();
|
||||
const { list: unitsNameList } = useListData(getRelatedPartiesManagementList, {
|
||||
otherParams: {
|
||||
showCount: 99999,
|
||||
},
|
||||
});
|
||||
const { list: unitsNameList } = useListData(getUnitsListAll);
|
||||
const fnHasCertificate = async (rule, value, callback) => {
|
||||
if (value) {
|
||||
const resData = await getVerifyDeduplicationCertificateNum({
|
||||
|
|
|
@ -1,205 +0,0 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="80px"
|
||||
@submit.prevent="fnResetPaginationTransfer"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="关键字" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item
|
||||
label="合同起止时间"
|
||||
prop="CONTRACTTIME"
|
||||
label-width="120"
|
||||
>
|
||||
<el-date-picker
|
||||
v-model="searchForm.CONTRACTTIME"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPaginationTransfer">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
row-key="OUTSOURCED_ID"
|
||||
:data="list"
|
||||
v-model:pagination="pagination"
|
||||
@get-data="fnGetDataTransfer"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="OUTSOURCED_NAME"
|
||||
label="外包工程名称"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column label="合同起止时间" width="180">
|
||||
<template v-slot="{ row }">
|
||||
<template v-if="row.CONTRACT_STIME && row.CONTRACT_ETIME">
|
||||
{{ row.CONTRACT_STIME }} - {{ row.CONTRACT_ETIME }}
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="UNITS_NAME"
|
||||
label="相关方单位名称"
|
||||
width="250"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column
|
||||
prop="UNITS_PIC"
|
||||
label="相关方单位本项目负责人"
|
||||
width="160"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column prop="APPLICANT" label="申请人" width="150" />
|
||||
<el-table-column prop="STATE" label="状态" width="100" />
|
||||
<el-table-column label="操作" width="150">
|
||||
<template v-slot="{ row }">
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/stakeholder_management/related_parties_management/edit',
|
||||
query: { OUTSOURCED_ID: row.OUTSOURCED_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/stakeholder_management/related_parties_management/edit',
|
||||
query: { OUTSOURCED_ID: row.OUTSOURCED_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.OUTSOURCED_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.add"
|
||||
type="primary"
|
||||
@click="
|
||||
router.push({
|
||||
path: '/stakeholder_management/related_parties_management/add',
|
||||
})
|
||||
"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="danger"
|
||||
@click="fnDeleteAll"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import {
|
||||
getOutsourcingProjectManagementList,
|
||||
setOutsourcingProjectManagementDelete,
|
||||
setOutsourcingProjectManagementDeleteMultiple,
|
||||
} from "@/request/stakeholder_management.js";
|
||||
|
||||
const router = useRouter();
|
||||
const { list, pagination, searchForm, fnResetPagination, fnGetData, tableRef } =
|
||||
useListData(getOutsourcingProjectManagementList);
|
||||
const fnGetDataTransfer = () => {
|
||||
fnGetData({
|
||||
CONTRACT_STIME: searchForm.value.CONTRACTTIME?.[0],
|
||||
CONTRACT_ETIME: searchForm.value.CONTRACTTIME?.[1],
|
||||
});
|
||||
};
|
||||
const fnResetPaginationTransfer = () => {
|
||||
fnResetPagination({
|
||||
CONTRACT_STIME: searchForm.value.CONTRACTTIME?.[0],
|
||||
CONTRACT_ETIME: searchForm.value.CONTRACTTIME?.[1],
|
||||
});
|
||||
};
|
||||
const buttonJurisdiction = await useButtonJurisdiction("outsourced");
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (OUTSOURCED_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setOutsourcingProjectManagementDelete({ OUTSOURCED_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPaginationTransfer();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选择要删除的数据");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData.map((item) => item.OUTSOURCED_ID).join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setOutsourcingProjectManagementDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPaginationTransfer();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -1,260 +0,0 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-form ref="formRef" :model="form" :rules="rules" label-width="170px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="相关方单位名称" prop="UNITS_NAME">
|
||||
<el-input v-model="form.UNITS_NAME" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="统一社会信用代码" prop="CODE">
|
||||
<el-input v-model="form.CODE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="属地" prop="POSSESSION">
|
||||
<layout-territory
|
||||
ref="territoryCascaderRef"
|
||||
v-model="form.POSSESSION"
|
||||
:level="4"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="企事业单位经营地址" prop="ADDRESS">
|
||||
<el-input v-model="form.ADDRESS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="主要负责人" prop="CONTACTS">
|
||||
<el-input v-model="form.CONTACTS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="主要负责人电话" prop="CONTACTS_PHONE">
|
||||
<el-input v-model="form.CONTACTS_PHONE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="法人手机号" prop="LR_MOBILE">
|
||||
<el-input v-model="form.LR_MOBILE" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="职工人数(人)" prop="EMPLOYEES">
|
||||
<el-input-number
|
||||
:min="0"
|
||||
v-model="form.EMPLOYEES"
|
||||
controls-position="right"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="成立时间">
|
||||
<el-date-picker
|
||||
v-model="form.CREATE_DATE"
|
||||
value-format="YYYY-MM-DD"
|
||||
format="YYYY-MM-DD"
|
||||
type="date"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="注册资金(万元)">
|
||||
<el-input-number
|
||||
:min="0"
|
||||
v-model="form.REGCAPITAL"
|
||||
controls-position="right"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="资产总额(万元)">
|
||||
<el-input-number
|
||||
:min="0"
|
||||
v-model="form.TOTALASSETS"
|
||||
controls-position="right"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="类型" prop="UNITS_TYPE">
|
||||
<el-select v-model="form.UNITS_TYPE">
|
||||
<el-option
|
||||
v-for="item in typeList"
|
||||
:key="item.ID"
|
||||
:label="item.NAME"
|
||||
:value="item.NAME"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="营业执照" prop="file">
|
||||
<layout-upload
|
||||
v-model:file-list="form.file"
|
||||
accept=".jpg,.jpeg,.png"
|
||||
list-type="picture-card"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div class="mt-10 tc">
|
||||
<el-button type="primary" @click="fnSubmit">提交</el-button>
|
||||
</div>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import LayoutUpload from "@/components/upload/index.vue";
|
||||
import { ref } from "vue";
|
||||
import LayoutTerritory from "@/components/territory/index.vue";
|
||||
import {
|
||||
getRelatedPartiesManagementView,
|
||||
getVerifyDeduplicationCode,
|
||||
getVerifyDeduplicationUser,
|
||||
setRelatedPartiesManagementAdd,
|
||||
setRelatedPartiesManagementEdit,
|
||||
} from "@/request/stakeholder_management.js";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { addingPrefixToFile } from "@/assets/js/utils.js";
|
||||
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const { UNITS_ID } = route.query;
|
||||
const typeList = [
|
||||
{ ID: "0", NAME: "常驻" },
|
||||
{ ID: "1", NAME: "临时" },
|
||||
];
|
||||
const fnHasUser = async (rule, value, callback) => {
|
||||
if (value) {
|
||||
try {
|
||||
await getVerifyDeduplicationUser({
|
||||
UNITS_NAME: value,
|
||||
UNITS_ID,
|
||||
});
|
||||
callback();
|
||||
} catch (err) {
|
||||
callback(new Error(err.msg));
|
||||
}
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
const fnHasCode = async (rule, value, callback) => {
|
||||
if (value) {
|
||||
try {
|
||||
await getVerifyDeduplicationCode({
|
||||
CODE: value,
|
||||
UNITS_ID,
|
||||
});
|
||||
callback();
|
||||
} catch (err) {
|
||||
callback(new Error(err.msg));
|
||||
}
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
const rules = {
|
||||
UNITS_NAME: [
|
||||
{ required: true, message: "相关方单位名称不能为空", trigger: "blur" },
|
||||
{ validator: fnHasUser, trigger: "blur" },
|
||||
],
|
||||
CODE: [
|
||||
{ required: true, message: "统一社会信用代码不能为空", trigger: "blur" },
|
||||
{
|
||||
pattern: /^[^_IOZSVa-z\W]{2}\d{6}[^_IOZSVa-z\W]{10}$/,
|
||||
message: "请输入正确的统一社会信用代码",
|
||||
},
|
||||
{ validator: fnHasCode, trigger: "blur" },
|
||||
],
|
||||
POSSESSION: [{ required: true, message: "属地不能为空", trigger: "change" }],
|
||||
ADDRESS: [
|
||||
{ required: true, message: "企事业单位经营地址不能为空", trigger: "blur" },
|
||||
],
|
||||
CONTACTS: [
|
||||
{ required: true, message: "主要负责人不能为空", trigger: "blur" },
|
||||
],
|
||||
CONTACTS_PHONE: [
|
||||
{ required: true, message: "主要负责人电话不能为空", trigger: "blur" },
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
LR_MOBILE: [
|
||||
{ min: 11, max: 11, message: "请输入11位手机号码", trigger: "blur" },
|
||||
{
|
||||
pattern:
|
||||
/^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/,
|
||||
message: "请输入正确的手机号码",
|
||||
},
|
||||
],
|
||||
UNITS_TYPE: [{ required: true, message: "类型不能为空", trigger: "change" }],
|
||||
file: [{ required: true, message: "营业执照不能为空", trigger: "change" }],
|
||||
};
|
||||
const form = ref({
|
||||
UNITS_NAME: "",
|
||||
CODE: "",
|
||||
POSSESSION: [],
|
||||
ADDRESS: "",
|
||||
CONTACTS: "",
|
||||
CONTACTS_PHONE: "",
|
||||
LR_MOBILE: "",
|
||||
EMPLOYEES: "",
|
||||
CREATE_DATE: "",
|
||||
REGCAPITAL: "",
|
||||
TOTALASSETS: "",
|
||||
UNITS_TYPE: "",
|
||||
file: [],
|
||||
});
|
||||
const formRef = ref(null);
|
||||
const territoryCascaderRef = ref(null);
|
||||
const fnGetData = async () => {
|
||||
if (!UNITS_ID) return;
|
||||
const resData = await getRelatedPartiesManagementView({ UNITS_ID });
|
||||
console.log(resData.pd);
|
||||
form.value = resData.pd;
|
||||
form.value.file = addingPrefixToFile([{ FILEPATH: resData.pd.FILEPATH }]);
|
||||
};
|
||||
fnGetData();
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
useFormValidate(formRef);
|
||||
const formData = new FormData();
|
||||
Object.keys(form.value).forEach((key) => {
|
||||
formData.append(key, form.value[key]);
|
||||
});
|
||||
formData.delete("file");
|
||||
for (let i = 0; i < form.value.file.length; i++) {
|
||||
form.value.file[i].raw && formData.append("file", form.value.file[i].raw);
|
||||
}
|
||||
formData.append("PROVINCE", form.value.POSSESSION[0]);
|
||||
formData.append("CITY", form.value.POSSESSION[1]);
|
||||
formData.append("COUNTY", form.value.POSSESSION[2]);
|
||||
formData.append("VILLAGE", form.value.POSSESSION[3]);
|
||||
formData.append("STREET", form.value.POSSESSION[4]);
|
||||
formData.append(
|
||||
"COMPANY_AREA",
|
||||
territoryCascaderRef.value.getCheckedNodes()
|
||||
);
|
||||
!UNITS_ID
|
||||
? await setRelatedPartiesManagementAdd(formData)
|
||||
: await setRelatedPartiesManagementEdit(formData);
|
||||
ElMessage.success("提交成功");
|
||||
router.back();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -1,166 +0,0 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-card>
|
||||
<el-form
|
||||
:model="searchForm"
|
||||
label-width="80px"
|
||||
@submit.prevent="fnResetPagination"
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="关键字" prop="KEYWORDS">
|
||||
<el-input v-model="searchForm.KEYWORDS" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="类型" prop="UNITS_TYPE">
|
||||
<el-select v-model="searchForm.UNITS_TYPE">
|
||||
<el-option
|
||||
v-for="item in typeList"
|
||||
:key="item.ID"
|
||||
:label="item.NAME"
|
||||
:value="item.NAME"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button type="primary" native-type="submit">搜索</el-button>
|
||||
<el-button native-type="reset" @click="fnResetPagination">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</el-card>
|
||||
<layout-card>
|
||||
<layout-table
|
||||
ref="tableRef"
|
||||
row-key="UNITS_ID"
|
||||
:data="list"
|
||||
v-model:pagination="pagination"
|
||||
@get-data="fnGetData"
|
||||
>
|
||||
<el-table-column reserve-selection type="selection" width="55" />
|
||||
<el-table-column label="序号" width="60">
|
||||
<template #default="{ $index }">
|
||||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="UNITS_NAME"
|
||||
label="相关方单位名称"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column prop="CODE" label="统一社会信用代码" width="160" />
|
||||
<el-table-column
|
||||
prop="CONTACTS"
|
||||
label="主要负责人"
|
||||
width="150"
|
||||
show-overflow-tooltip
|
||||
/>
|
||||
<el-table-column prop="UNITS_TYPE" label="类型" width="100" />
|
||||
<el-table-column label="操作" width="150">
|
||||
<template v-slot="{ row }">
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="
|
||||
router.push({
|
||||
path: '/stakeholder_management/related_parties_management/edit',
|
||||
query: { UNITS_ID: row.UNITS_ID },
|
||||
})
|
||||
"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.UNITS_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.add"
|
||||
type="primary"
|
||||
@click="
|
||||
router.push({
|
||||
path: '/stakeholder_management/related_parties_management/add',
|
||||
})
|
||||
"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="danger"
|
||||
@click="fnDeleteAll"
|
||||
>
|
||||
批量删除
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
</layout-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import {
|
||||
getRelatedPartiesManagementList,
|
||||
setRelatedPartiesManagementDelete,
|
||||
setRelatedPartiesManagementDeleteMultiple,
|
||||
} from "@/request/stakeholder_management.js";
|
||||
|
||||
const router = useRouter();
|
||||
const typeList = [
|
||||
{ ID: "0", NAME: "常驻" },
|
||||
{ ID: "1", NAME: "临时" },
|
||||
];
|
||||
const { list, pagination, searchForm, fnResetPagination, fnGetData, tableRef } =
|
||||
useListData(getRelatedPartiesManagementList);
|
||||
const buttonJurisdiction = await useButtonJurisdiction("units");
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (UNITS_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setRelatedPartiesManagementDelete({ UNITS_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnDeleteAll = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
const selectionData = tableRef.value.getSelectionRows();
|
||||
if (selectionData.length === 0) {
|
||||
ElMessage.warning("请选择要删除的数据");
|
||||
return;
|
||||
}
|
||||
const DATA_IDS = selectionData.map((item) => item.UNITS_ID).join(",");
|
||||
await ElMessageBox.confirm("确定要删除吗?", { type: "warning" });
|
||||
await setRelatedPartiesManagementDeleteMultiple({ DATA_IDS });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPagination();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
|
@ -0,0 +1,9 @@
|
|||
<template>
|
||||
<index-view path-name="safety_operating_procedures" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import IndexView from "../safety_production_responsibility_system/index.vue";
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,9 @@
|
|||
<template>
|
||||
<index-view path-name="safety_production_management_system" />
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import IndexView from "../safety_production_responsibility_system/index.vue";
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -0,0 +1,158 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
v-model="visible"
|
||||
:title="type === 'add' ? '新增' : '修改'"
|
||||
:on-close="fnClose"
|
||||
>
|
||||
<el-form ref="formRef" :model="form" :rules="rules" label-width="170">
|
||||
<el-form-item :label="labelName" prop="REMARKS">
|
||||
<el-input v-model="form.REMARKS" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型" prop="TYPES">
|
||||
<layout-three-institutional-libraries
|
||||
ref="typeRef"
|
||||
v-model="form.TYPES"
|
||||
type="type"
|
||||
:path-name="pathName"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="文件" prop="file">
|
||||
<layout-upload v-model:file-list="form.file" accept=".pdf" />
|
||||
</el-form-item>
|
||||
<el-form-item label="文件内容" prop="TEXT_INFO">
|
||||
<div
|
||||
class="tr mb-10"
|
||||
style="flex: 1"
|
||||
v-if="form.TEXT_INFO && type === 'edit'"
|
||||
>
|
||||
<el-button type="primary" @click="fnExport">导出WORD</el-button>
|
||||
</div>
|
||||
<layout-editor v-model="form.TEXT_INFO" />
|
||||
</el-form-item>
|
||||
<el-form-item label="标签" prop="labels">
|
||||
<layout-three-institutional-libraries
|
||||
ref="labelRef"
|
||||
v-model="form.labels"
|
||||
type="label"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="fnClose">取消</el-button>
|
||||
<el-button type="primary" @click="fnSubmit">确定</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useVModels } from "@vueuse/core";
|
||||
import { ref } from "vue";
|
||||
import { debounce } from "throttle-debounce";
|
||||
import useFormValidate from "@/assets/js/useFormValidate.js";
|
||||
import { ElMessage } from "element-plus";
|
||||
import LayoutThreeInstitutionalLibraries from "@/components/three_institutional_libraries/index.vue";
|
||||
import LayoutUpload from "@/components/upload/index.vue";
|
||||
import LayoutEditor from "@/components/editor/index.vue";
|
||||
import { setThreeInstitutionalLibrariesSave } from "@/request/three_institutional_libraries.js";
|
||||
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
form: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => ({}),
|
||||
},
|
||||
type: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
labelName: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
association: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
pathName: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:visible", "update:form", "get-data"]);
|
||||
const { visible, form } = useVModels(props, emits);
|
||||
const rules = {
|
||||
REMARKS: [
|
||||
{ required: true, message: `请输入${props.labelName}`, trigger: "blur" },
|
||||
],
|
||||
TYPES: [{ required: true, message: "请选择类型", trigger: "change" }],
|
||||
file: [{ required: true, message: "请上传文件", trigger: "change" }],
|
||||
};
|
||||
const formRef = ref(null);
|
||||
const typeRef = ref(null);
|
||||
const labelRef = ref(null);
|
||||
const fnClose = () => {
|
||||
formRef.value.resetFields();
|
||||
visible.value = false;
|
||||
};
|
||||
const fnSubmit = debounce(
|
||||
1000,
|
||||
async () => {
|
||||
await useFormValidate(formRef);
|
||||
const formData = new FormData();
|
||||
Object.keys(form.value).forEach((key) => {
|
||||
formData.append(key, form.value[key]);
|
||||
});
|
||||
formData.delete("file");
|
||||
formData.delete("TYPES");
|
||||
formData.delete("CATEGORY_LIST");
|
||||
formData.delete("labels");
|
||||
form.value.file?.[0]?.raw &&
|
||||
formData.append("FILE", form.value.file[0].raw);
|
||||
formData.append(
|
||||
"labels",
|
||||
JSON.stringify(await labelRef.value.getCheckedNodes())
|
||||
);
|
||||
const SOURCE_TYPES = await typeRef.value.getCheckedNodes();
|
||||
const TYPES = [];
|
||||
for (let i = 0; i < SOURCE_TYPES.length; i++) {
|
||||
TYPES.push({
|
||||
CATEGORY: "TYPES",
|
||||
CATEGORY_ID: SOURCE_TYPES[i].DICTIONARIES_ID,
|
||||
CATEGORY_NAME: SOURCE_TYPES[i].NAME,
|
||||
});
|
||||
}
|
||||
formData.append("TYPES", JSON.stringify(TYPES));
|
||||
const CATEGORY_LIST = [
|
||||
{
|
||||
CATEGORY: "CATEGORY_LIST",
|
||||
CATEGORY_ID: "7158f688d0f34054a28a9275139298df",
|
||||
CATEGORY_NAME: "行业专属类",
|
||||
},
|
||||
];
|
||||
formData.append("CATEGORY_LIST", JSON.stringify(CATEGORY_LIST));
|
||||
formData.append("ASSOCIATION", props.association);
|
||||
await setThreeInstitutionalLibrariesSave(formData);
|
||||
ElMessage.success("操作成功");
|
||||
fnClose();
|
||||
emits("get-data");
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnExport = () => {
|
||||
window.location.href =
|
||||
import.meta.env[import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL"] +
|
||||
"/textLibrary/exportWord?BUS_TEXT_LIBRARY_ID=" +
|
||||
form.value.BUS_TEXT_LIBRARY_ID;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -20,6 +20,7 @@
|
|||
ref="regulationsRef"
|
||||
v-model="searchForm.CATEGORY_LIST"
|
||||
type="regulations"
|
||||
collapse-tags
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -29,6 +30,8 @@
|
|||
ref="typeRef"
|
||||
v-model="searchForm.TYPES"
|
||||
type="type"
|
||||
collapse-tags
|
||||
:path-name="pathName"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -42,15 +45,17 @@
|
|||
ref="industryRef"
|
||||
v-model="searchForm.SPECIFICATION_TYPES"
|
||||
type="industry"
|
||||
collapse-tags
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="标签" prop="LABELS">
|
||||
<el-form-item label="标签" prop="labels">
|
||||
<layout-three-institutional-libraries
|
||||
ref="labelRef"
|
||||
v-model="searchForm.LABELS"
|
||||
v-model="searchForm.labels"
|
||||
type="label"
|
||||
collapse-tags
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
@ -94,7 +99,7 @@
|
|||
{{ serialNumber(pagination, $index) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="REMARKS" label="安全生产管理制度名称" />
|
||||
<el-table-column prop="REMARKS" :label="labelName" />
|
||||
<el-table-column label="类型">
|
||||
<template v-slot="{ row }">
|
||||
{{
|
||||
|
@ -127,40 +132,177 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="UPLOAD_TIME" label="上传时间" width="150px" />
|
||||
<el-table-column label="操作" width="200">
|
||||
<template v-slot="{ row }">
|
||||
<el-button
|
||||
v-if="tabName === 'platform_resource_library'"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnJoinLocal(row.BUS_TEXT_LIBRARY_ID)"
|
||||
>
|
||||
加入本地
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnView(row.BUS_TEXT_LIBRARY_ID)"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<template v-if="tabName === 'self_administered'">
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.edit"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnAddOrEdit(row.BUS_TEXT_LIBRARY_ID, 'edit')"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="useDownloadFile(row.PATH)"
|
||||
>
|
||||
导出
|
||||
</el-button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.del"
|
||||
type="primary"
|
||||
text
|
||||
link
|
||||
@click="fnDelete(row.BUS_TEXT_LIBRARY_ID)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<template #button>
|
||||
<el-button
|
||||
v-if="buttonJurisdiction.add && tabName === 'self_administered'"
|
||||
type="primary"
|
||||
@click="fnAddOrEdit('', 'add')"
|
||||
>
|
||||
新增
|
||||
</el-button>
|
||||
</template>
|
||||
</layout-table>
|
||||
<add
|
||||
v-model:visible="data.addOrEditDialog.visible"
|
||||
v-model:form="data.addOrEditDialog.form"
|
||||
:type="data.addOrEditDialog.type"
|
||||
:label-name="labelName"
|
||||
:association="ASSOCIATION[pathName]"
|
||||
:path-name="pathName"
|
||||
@get-data="fnResetPaginationTransfer"
|
||||
/>
|
||||
<view-info
|
||||
v-model:visible="data.viewDialog.visible"
|
||||
:info="data.viewDialog.info"
|
||||
:label-name="labelName"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { serialNumber } from "@/assets/js/utils.js";
|
||||
import { addingPrefixToFile, serialNumber } from "@/assets/js/utils.js";
|
||||
import useListData from "@/assets/js/useListData.js";
|
||||
import { getThreeInstitutionalLibrariesList } from "@/request/three_institutional_libraries.js";
|
||||
import {
|
||||
getThreeInstitutionalLibrariesList,
|
||||
getThreeInstitutionalLibrariesView,
|
||||
getThreeInstitutionalLibrariesViewText,
|
||||
setThreeInstitutionalLibrariesDelete,
|
||||
setThreeInstitutionalLibrariesJoinLocal,
|
||||
} from "@/request/three_institutional_libraries.js";
|
||||
import LayoutThreeInstitutionalLibraries from "@/components/three_institutional_libraries/index.vue";
|
||||
import { ref } from "vue";
|
||||
import { nextTick, reactive, ref } from "vue";
|
||||
import { getEnterpriseList } from "@/request/enterprise_management.js";
|
||||
import { throttle } from "throttle-debounce";
|
||||
import { debounce, throttle } from "throttle-debounce";
|
||||
import useButtonJurisdiction from "@/assets/js/useButtonJurisdiction.js";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import useDownloadFile from "@/assets/js/useDownloadFile.js";
|
||||
import Add from "./add.vue";
|
||||
import ViewInfo from "./view.vue";
|
||||
|
||||
const props = defineProps({
|
||||
tabName: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
pathName: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
labelName: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
});
|
||||
const regulationsRef = ref(null);
|
||||
const typeRef = ref(null);
|
||||
const industryRef = ref(null);
|
||||
const labelRef = ref(null);
|
||||
const data = reactive({
|
||||
addOrEditDialog: {
|
||||
visible: false,
|
||||
type: "",
|
||||
form: {
|
||||
REMARKS: "",
|
||||
TYPES: [],
|
||||
file: [],
|
||||
TEXT_INFO: "",
|
||||
labels: [],
|
||||
},
|
||||
},
|
||||
viewDialog: {
|
||||
visible: false,
|
||||
info: {},
|
||||
},
|
||||
});
|
||||
const ASSOCIATION = {
|
||||
safety_production_responsibility_system: "2",
|
||||
safety_production_management_system: "1",
|
||||
safety_operating_procedures: "0",
|
||||
};
|
||||
const fnGetOtherParams = () => {
|
||||
const otherParams = { ASSOCIATION: ASSOCIATION[props.pathName] };
|
||||
if (props.tabName === "self_administered") {
|
||||
otherParams.ENTERPRISE_SIDE = "0";
|
||||
} else if (props.tabName === "platform_resource_library") {
|
||||
otherParams.CORPINFO_ID = "0";
|
||||
}
|
||||
return otherParams;
|
||||
};
|
||||
const { list, pagination, searchForm, fnGetData, fnResetPagination } =
|
||||
useListData(getThreeInstitutionalLibrariesList, {
|
||||
otherParams: { ASSOCIATION: "2", ENTERPRISE_SIDE: "0" },
|
||||
otherParams: fnGetOtherParams(),
|
||||
});
|
||||
const fnGetCheckedNodes = () => {
|
||||
const buttonJurisdiction = await useButtonJurisdiction("textlibrary");
|
||||
const fnGetCheckedNodes = async () => {
|
||||
await nextTick();
|
||||
const CATEGORY_LIST = await regulationsRef.value.getCheckedNodes();
|
||||
const TYPES = await typeRef.value.getCheckedNodes();
|
||||
const SPECIFICATION_TYPES = await industryRef.value.getCheckedNodes();
|
||||
const labels = await labelRef.value.getCheckedNodes();
|
||||
return {
|
||||
CATEGORY_LIST: JSON.stringify(regulationsRef.value.getCheckedNodes()),
|
||||
TYPES: JSON.stringify(typeRef.value.getCheckedNodes()),
|
||||
SPECIFICATION_TYPES: JSON.stringify(industryRef.value.getCheckedNodes()),
|
||||
LABELS: JSON.stringify(labelRef.value.getCheckedNodes()),
|
||||
CATEGORY_LIST: JSON.stringify(CATEGORY_LIST),
|
||||
TYPES: JSON.stringify(TYPES),
|
||||
SPECIFICATION_TYPES: JSON.stringify(SPECIFICATION_TYPES),
|
||||
labels: JSON.stringify(labels),
|
||||
};
|
||||
};
|
||||
const fnGetDataTransfer = () => {
|
||||
fnGetData({ ...fnGetCheckedNodes() });
|
||||
const fnGetDataTransfer = async () => {
|
||||
fnGetData({ ...(await fnGetCheckedNodes()) });
|
||||
};
|
||||
const fnResetPaginationTransfer = () => {
|
||||
fnResetPagination({ ...fnGetCheckedNodes() });
|
||||
const fnResetPaginationTransfer = async () => {
|
||||
fnResetPagination({ ...(await fnGetCheckedNodes()) });
|
||||
};
|
||||
const selectLoading = ref(false);
|
||||
const enterpriseList = ref([]);
|
||||
|
@ -172,6 +314,69 @@ const fnRemoteMethod = throttle(500, async (query) => {
|
|||
selectLoading.value = false;
|
||||
}
|
||||
});
|
||||
const fnDelete = debounce(
|
||||
1000,
|
||||
async (BUS_TEXT_LIBRARY_ID) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", {
|
||||
type: "warning",
|
||||
});
|
||||
await setThreeInstitutionalLibrariesDelete({ BUS_TEXT_LIBRARY_ID });
|
||||
ElMessage.success("删除成功");
|
||||
fnResetPaginationTransfer();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnView = async (BUS_TEXT_LIBRARY_ID) => {
|
||||
const resData = await getThreeInstitutionalLibrariesView({
|
||||
BUS_TEXT_LIBRARY_ID,
|
||||
});
|
||||
const { info } = await getThreeInstitutionalLibrariesViewText({
|
||||
BUS_TEXT_LIBRARY_ID,
|
||||
});
|
||||
data.viewDialog.info = resData.data;
|
||||
data.viewDialog.info.TEXT_INFO = info.TEXT_INFO;
|
||||
data.viewDialog.visible = true;
|
||||
};
|
||||
const fnAddOrEdit = async (BUS_TEXT_LIBRARY_ID, type) => {
|
||||
data.addOrEditDialog.visible = true;
|
||||
await nextTick();
|
||||
data.addOrEditDialog.type = type;
|
||||
if (type === "edit") {
|
||||
const resData = await getThreeInstitutionalLibrariesView({
|
||||
BUS_TEXT_LIBRARY_ID,
|
||||
});
|
||||
const { info } = await getThreeInstitutionalLibrariesViewText({
|
||||
BUS_TEXT_LIBRARY_ID,
|
||||
});
|
||||
data.addOrEditDialog.form = resData.data;
|
||||
data.addOrEditDialog.form.TEXT_INFO = info.TEXT_INFO;
|
||||
data.addOrEditDialog.form.file = addingPrefixToFile([
|
||||
{ FILEPATH: resData.data.PATH },
|
||||
]);
|
||||
const TYPES = [];
|
||||
for (let i = 0; i < resData.data.TYPES.length; i++) {
|
||||
TYPES.push(resData.data.TYPES[i].CATEGORY_ID);
|
||||
}
|
||||
data.addOrEditDialog.form.TYPES = TYPES;
|
||||
const labels = [];
|
||||
for (let i = 0; i < resData.data.labels.length; i++) {
|
||||
labels.push(resData.data.labels[i].BUS_LABEL_FACTORY_ID);
|
||||
}
|
||||
data.addOrEditDialog.form.labels = labels;
|
||||
}
|
||||
};
|
||||
const fnJoinLocal = debounce(
|
||||
1000,
|
||||
async (BUS_TEXT_LIBRARY_ID) => {
|
||||
await ElMessageBox.confirm("确定要将此条数据添加到本地?", {
|
||||
type: "warning",
|
||||
});
|
||||
await setThreeInstitutionalLibrariesJoinLocal({ BUS_TEXT_LIBRARY_ID });
|
||||
ElMessage.success("添加成功");
|
||||
fnResetPaginationTransfer();
|
||||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" title="查看">
|
||||
<el-descriptions :column="1" border>
|
||||
<el-descriptions-item :label="labelName">
|
||||
{{ info.REMARKS }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="规程属性">
|
||||
{{
|
||||
info.CATEGORY_LIST.map((item) => item.CATEGORY_NAME)
|
||||
.filter(Boolean)
|
||||
.join("、")
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="类型">
|
||||
{{
|
||||
info.TYPES.map((item) => item.CATEGORY_NAME)
|
||||
.filter(Boolean)
|
||||
.join("、")
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="国民经济行业类型">
|
||||
{{
|
||||
info.SPECIFICATION_TYPES.map((item) => item.CATEGORY_NAME)
|
||||
.filter(Boolean)
|
||||
.join("、")
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="上传时间">
|
||||
{{ info.UPLOAD_TIME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="上传人">
|
||||
{{ info.UPLOAD_USER_NAME }}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="标签">
|
||||
{{
|
||||
info.labels
|
||||
.map((item) => item.NAME)
|
||||
.filter(Boolean)
|
||||
.join("、")
|
||||
}}
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="文件">
|
||||
{{ getFileName(info.PATH) }}
|
||||
<el-button
|
||||
type="primary"
|
||||
class="ml-10"
|
||||
@click="useDownloadFile(info.PATH)"
|
||||
>
|
||||
下载
|
||||
</el-button>
|
||||
</el-descriptions-item>
|
||||
<el-descriptions-item label="文件内容">
|
||||
<div v-html="info.TEXT_INFO" />
|
||||
<el-button v-if="info.TEXT_INFO" type="primary" @click="fnExport">
|
||||
导出WORD
|
||||
</el-button>
|
||||
</el-descriptions-item>
|
||||
</el-descriptions>
|
||||
<template #footer>
|
||||
<el-button @click="visible = false">关闭</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { useVModel } from "@vueuse/core";
|
||||
import { getFileName } from "@/assets/js/utils.js";
|
||||
import useDownloadFile from "@/assets/js/useDownloadFile.js";
|
||||
|
||||
const props = defineProps({
|
||||
visible: {
|
||||
type: Boolean,
|
||||
required: true,
|
||||
default: false,
|
||||
},
|
||||
info: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => ({}),
|
||||
},
|
||||
labelName: {
|
||||
type: String,
|
||||
required: true,
|
||||
default: "",
|
||||
},
|
||||
});
|
||||
const emits = defineEmits(["update:visible"]);
|
||||
const visible = useVModel(props, "visible", emits);
|
||||
const fnExport = () => {
|
||||
window.location.href =
|
||||
import.meta.env[import.meta.env.DEV ? "VITE_PROXY" : "VITE_BASE_URL"] +
|
||||
"/textLibrary/exportWord?BUS_TEXT_LIBRARY_ID=" +
|
||||
props.info.BUS_TEXT_LIBRARY_ID;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
|
@ -1,14 +1,24 @@
|
|||
<template>
|
||||
<layout-card>
|
||||
<el-tabs v-model="name" @tab-change="fnTabChange">
|
||||
<el-tab-pane label="安全生产责任制" name="responsibility_system" lazy>
|
||||
<list-view />
|
||||
<el-tab-pane :label="labelName[pathName]" name="self_administered" lazy>
|
||||
<list-view
|
||||
tab-name="self_administered"
|
||||
:path-name="pathName"
|
||||
:label-name="labelName[pathName] + '名称'"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane
|
||||
label="安全生产责任制平台资源库"
|
||||
:label="labelName[pathName] + '平台资源库'"
|
||||
name="platform_resource_library"
|
||||
lazy
|
||||
></el-tab-pane>
|
||||
>
|
||||
<list-view
|
||||
tab-name="platform_resource_library"
|
||||
:path-name="pathName"
|
||||
:label-name="labelName[pathName] + '名称'"
|
||||
/>
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
</layout-card>
|
||||
</template>
|
||||
|
@ -18,17 +28,28 @@ import { ref } from "vue";
|
|||
import { onBeforeRouteUpdate, useRoute, useRouter } from "vue-router";
|
||||
import ListView from "./components/list.vue";
|
||||
|
||||
const props = defineProps({
|
||||
pathName: {
|
||||
type: String,
|
||||
default: "safety_production_responsibility_system",
|
||||
},
|
||||
});
|
||||
const labelName = {
|
||||
safety_production_responsibility_system: "安全生产责任制",
|
||||
safety_production_management_system: "安全生产管理制度",
|
||||
safety_operating_procedures: "安全操作规程",
|
||||
};
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const defaultName = "responsibility_system";
|
||||
const defaultName = "self_administered";
|
||||
const name = ref(route.query.name || defaultName);
|
||||
onBeforeRouteUpdate((to, from, next) => {
|
||||
onBeforeRouteUpdate(async (to, from, next) => {
|
||||
name.value = to.query.name || defaultName;
|
||||
next();
|
||||
});
|
||||
const fnTabChange = (name) => {
|
||||
router.push({
|
||||
path: "/three_institutional_libraries/safety_production_responsibility_system",
|
||||
router.replace({
|
||||
path: `/three_institutional_libraries/${props.pathName}`,
|
||||
query: {
|
||||
name,
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue