Commit 461a5ae7 authored by 张耀's avatar 张耀

feat:

工单管理页面开发
parent 265f2a0b
lockfileVersion: '6.0'
dependencies:
'@element-plus/icons-vue':
specifier: ^2.0.6
version: 2.0.6(vue@3.2.31)
'@wangeditor/editor':
specifier: ^5.1.14
version: 5.1.14
'@wangeditor/editor-for-vue':
specifier: ^5.1.12
version: 5.1.12(@wangeditor/editor@5.1.14)(vue@3.2.31)
ace-builds:
specifier: ^1.9.6
version: 1.9.6
axios:
specifier: ^0.21.1
version: 0.21.1
clipboard:
specifier: ^2.0.11
version: 2.0.11
echarts:
specifier: ^5.3.3
version: 5.3.3
element-plus:
specifier: ^2.2.9
version: 2.2.9(vue@3.2.31)
html2canvas:
specifier: ^1.4.1
version: 1.4.1
sass:
specifier: ^1.35.1
version: 1.35.1
string-format:
specifier: ^2.0.0
version: 2.0.0
uuid:
specifier: ^8.3.2
version: 8.3.2
vue:
specifier: ^3.2.31
version: 3.2.31
vue-demi:
specifier: ^0.14.5
version: 0.14.5(vue@3.2.31)
vue-i18n:
specifier: ^9.1.7
version: 9.1.7(vue@3.2.31)
vue-router:
specifier: ^4.0.10
version: 4.0.10(vue@3.2.31)
vue3-ace-editor:
specifier: ^2.2.2
version: 2.2.2
vuex:
specifier: ^4.0.2
version: 4.0.2(vue@3.2.31)
devDependencies:
'@vitejs/plugin-vue':
specifier: ^3.0.0
version: 3.0.0(vite@3.0.0)(vue@3.2.31)
'@vue/compiler-sfc':
specifier: ^3.2.31
version: 3.2.31
vite:
specifier: ^3.0.0
version: 3.0.0(sass@1.35.1)
packages:
/@babel/helper-string-parser@7.22.5:
resolution: {integrity: sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==}
engines: {node: '>=6.9.0'}
/@babel/helper-validator-identifier@7.22.5:
resolution: {integrity: sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==}
engines: {node: '>=6.9.0'}
/@babel/parser@7.22.5:
resolution: {integrity: sha512-DFZMC9LJUG9PLOclRC32G63UXwzqS2koQC8dkx+PLdmt1xSePYpbT/NbsrJy8Q/muXz7o/h/d4A7Fuyixm559Q==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.22.5
/@babel/runtime@7.22.5:
resolution: {integrity: sha512-ecjvYlnAaZ/KVneE/OdKYBYfgXV3Ptu6zQWmgEF7vwKhQnvVS6bjMD2XYgj+SNvQ1GfK/pjgokfPkC/2CO8CuA==}
engines: {node: '>=6.9.0'}
dependencies:
regenerator-runtime: 0.13.11
dev: false
/@babel/types@7.22.5:
resolution: {integrity: sha512-zo3MIHGOkPOfoRXitsgHLjEXmlDaD/5KU1Uzuc9GNiZPhSqVxVRtxuPaSBZDsYZ9qV88AjtMtWW7ww98loJ9KA==}
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-string-parser': 7.22.5
'@babel/helper-validator-identifier': 7.22.5
to-fast-properties: 2.0.0
/@ctrl/tinycolor@3.6.0:
resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==}
engines: {node: '>=10'}
dev: false
/@element-plus/icons-vue@2.0.6(vue@3.2.31):
resolution: {integrity: sha512-lPpG8hYkjL/Z97DH5Ei6w6o22Z4YdNglWCNYOPcB33JCF2A4wye6HFgSI7hEt9zdLyxlSpiqtgf9XcYU+m5mew==}
peerDependencies:
vue: ^3.2.0
dependencies:
vue: 3.2.31
dev: false
/@esbuild/linux-loong64@0.14.54:
resolution: {integrity: sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@floating-ui/core@0.7.3:
resolution: {integrity: sha512-buc8BXHmG9l82+OQXOFU3Kr2XQx9ys01U/Q9HMIrZ300iLc8HLMgh7dcCqgYzAzf4BkoQvDcXf5Y+CuEZ5JBYg==}
dev: false
/@floating-ui/dom@0.5.4:
resolution: {integrity: sha512-419BMceRLq0RrmTSDxn8hf9R3VCJv2K9PUfugh5JyEFmdjzDo+e8U5EdR8nzKq8Yj1htzLm3b6eQEEam3/rrtg==}
dependencies:
'@floating-ui/core': 0.7.3
dev: false
/@intlify/core-base@9.1.7:
resolution: {integrity: sha512-q1W2j81xbHyfKrNcca/CeJyf0Bcx4u9UDu05l7AaiJbqOseTme2o2I3wp1hDDCtmC7k7HgX0sAygyHNJH9swuQ==}
engines: {node: '>= 10'}
dependencies:
'@intlify/devtools-if': 9.1.7
'@intlify/message-compiler': 9.1.7
'@intlify/message-resolver': 9.1.7
'@intlify/runtime': 9.1.7
'@intlify/shared': 9.1.7
'@intlify/vue-devtools': 9.1.7
dev: false
/@intlify/devtools-if@9.1.7:
resolution: {integrity: sha512-/DcN5FUySSkQhDqx5y1RvxfuCXO3Ot/dUEIOs472qbM7Hyb2qif+eXCnwHBzlI4+wEfQVT6L0PiM1a7Er/ro9g==}
engines: {node: '>= 10'}
dependencies:
'@intlify/shared': 9.1.7
dev: false
/@intlify/message-compiler@9.1.7:
resolution: {integrity: sha512-JZNkAhr3O7tnbdbRBcpYfqr/Ai26WTzX0K/lV8Y1KVdOIj/dGiamaffdWUdFiDXUnbJRNbPiOaKxy7Pwip3KxQ==}
engines: {node: '>= 10'}
dependencies:
'@intlify/message-resolver': 9.1.7
'@intlify/shared': 9.1.7
source-map: 0.6.1
dev: false
/@intlify/message-resolver@9.1.7:
resolution: {integrity: sha512-WTK+OaXJYjyquLGhuCyDvU2WHkG+kXzXeHagmVFHn+s118Jf2143zzkLLUrapP5CtZ/csuyjmYg7b3xQRQAmvw==}
engines: {node: '>= 10'}
dev: false
/@intlify/runtime@9.1.7:
resolution: {integrity: sha512-QURPSlzhOVnRwS2XMGpCDsDkP42kfVBh94aAORxh/gVGzdgJip2vagrIFij/J69aEqdB476WJkMhVjP8VSHmiA==}
engines: {node: '>= 10'}
dependencies:
'@intlify/message-compiler': 9.1.7
'@intlify/message-resolver': 9.1.7
'@intlify/shared': 9.1.7
dev: false
/@intlify/shared@9.1.7:
resolution: {integrity: sha512-zt0zlUdalumvT9AjQNxPXA36UgOndUyvBMplh8uRZU0fhWHAwhnJTcf0NaG9Qvr8I1n3HPSs96+kLb/YdwTavQ==}
engines: {node: '>= 10'}
dev: false
/@intlify/vue-devtools@9.1.7:
resolution: {integrity: sha512-DI5Wc0aOiohtBUGUkKAcryCWbbuaO4/PK4Pa/LaNCsFNxbtgR5qkIDmhBv9xVPYGTUhySXxaDDAMvOpBjhPJjw==}
engines: {node: '>= 10'}
dependencies:
'@intlify/message-resolver': 9.1.7
'@intlify/runtime': 9.1.7
'@intlify/shared': 9.1.7
dev: false
/@sxzz/popperjs-es@2.11.7:
resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
dev: false
/@transloadit/prettier-bytes@0.0.7:
resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==}
dev: false
/@types/event-emitter@0.3.3:
resolution: {integrity: sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==}
dev: false
/@types/lodash-es@4.17.7:
resolution: {integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==}
dependencies:
'@types/lodash': 4.14.195
dev: false
/@types/lodash@4.14.195:
resolution: {integrity: sha512-Hwx9EUgdwf2GLarOjQp5ZH8ZmblzcbTBC2wtQWNKARBSxM9ezRIAUpeDTgoQRAFB0+8CNWXVA9+MaSOzOF3nPg==}
dev: false
/@types/web-bluetooth@0.0.14:
resolution: {integrity: sha512-5d2RhCard1nQUC3aHcq/gHzWYO6K0WJmAbjO7mQJgCQKtZpgXxv1rOM6O/dBDhDYYVutk1sciOgNSe+5YyfM8A==}
dev: false
/@uppy/companion-client@2.2.2:
resolution: {integrity: sha512-5mTp2iq97/mYSisMaBtFRry6PTgZA6SIL7LePteOV5x0/DxKfrZW3DEiQERJmYpHzy7k8johpm2gHnEKto56Og==}
dependencies:
'@uppy/utils': 4.1.3
namespace-emitter: 2.0.1
dev: false
/@uppy/core@2.3.4:
resolution: {integrity: sha512-iWAqppC8FD8mMVqewavCz+TNaet6HPXitmGXpGGREGrakZ4FeuWytVdrelydzTdXx6vVKkOmI2FLztGg73sENQ==}
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.3.6
preact: 10.15.1
dev: false
/@uppy/store-default@2.1.1:
resolution: {integrity: sha512-xnpTxvot2SeAwGwbvmJ899ASk5tYXhmZzD/aCFsXePh/v8rNvR2pKlcQUH7cF/y4baUGq3FHO/daKCok/mpKqQ==}
dev: false
/@uppy/utils@4.1.3:
resolution: {integrity: sha512-nTuMvwWYobnJcytDO3t+D6IkVq/Qs4Xv3vyoEZ+Iaf8gegZP+rEyoaFT2CK5XLRMienPyqRqNbIfRuFaOWSIFw==}
dependencies:
lodash.throttle: 4.1.1
dev: false
/@uppy/xhr-upload@2.1.3(@uppy/core@2.3.4):
resolution: {integrity: sha512-YWOQ6myBVPs+mhNjfdWsQyMRWUlrDLMoaG7nvf/G6Y3GKZf8AyjFDjvvJ49XWQ+DaZOftGkHmF1uh/DBeGivJQ==}
peerDependencies:
'@uppy/core': ^2.3.3
dependencies:
'@uppy/companion-client': 2.2.2
'@uppy/core': 2.3.4
'@uppy/utils': 4.1.3
nanoid: 3.3.6
dev: false
/@vitejs/plugin-vue@3.0.0(vite@3.0.0)(vue@3.2.31):
resolution: {integrity: sha512-yWP34ArFh/jAeNUDkkLz/kVRLjf5ppJiq4L36f64Cp6dIrMQeYZGDP9xxdemlXfZR9ylN9JgHUl3GzfqOtgYDg==}
engines: {node: '>=14.18.0'}
peerDependencies:
vite: ^3.0.0
vue: ^3.2.25
dependencies:
vite: 3.0.0(sass@1.35.1)
vue: 3.2.31
dev: true
/@vue/compiler-core@3.2.31:
resolution: {integrity: sha512-aKno00qoA4o+V/kR6i/pE+aP+esng5siNAVQ422TkBNM6qA4veXiZbSe8OTXHXquEi/f6Akc+nLfB4JGfe4/WQ==}
dependencies:
'@babel/parser': 7.22.5
'@vue/shared': 3.2.31
estree-walker: 2.0.2
source-map: 0.6.1
/@vue/compiler-dom@3.2.31:
resolution: {integrity: sha512-60zIlFfzIDf3u91cqfqy9KhCKIJgPeqxgveH2L+87RcGU/alT6BRrk5JtUso0OibH3O7NXuNOQ0cDc9beT0wrg==}
dependencies:
'@vue/compiler-core': 3.2.31
'@vue/shared': 3.2.31
/@vue/compiler-sfc@3.2.31:
resolution: {integrity: sha512-748adc9msSPGzXgibHiO6T7RWgfnDcVQD+VVwYgSsyyY8Ans64tALHZANrKtOzvkwznV/F4H7OAod/jIlp/dkQ==}
dependencies:
'@babel/parser': 7.22.5
'@vue/compiler-core': 3.2.31
'@vue/compiler-dom': 3.2.31
'@vue/compiler-ssr': 3.2.31
'@vue/reactivity-transform': 3.2.31
'@vue/shared': 3.2.31
estree-walker: 2.0.2
magic-string: 0.25.9
postcss: 8.4.24
source-map: 0.6.1
/@vue/compiler-ssr@3.2.31:
resolution: {integrity: sha512-mjN0rqig+A8TVDnsGPYJM5dpbjlXeHUm2oZHZwGyMYiGT/F4fhJf/cXy8QpjnLQK4Y9Et4GWzHn9PS8AHUnSkw==}
dependencies:
'@vue/compiler-dom': 3.2.31
'@vue/shared': 3.2.31
/@vue/devtools-api@6.5.0:
resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==}
dev: false
/@vue/reactivity-transform@3.2.31:
resolution: {integrity: sha512-uS4l4z/W7wXdI+Va5pgVxBJ345wyGFKvpPYtdSgvfJfX/x2Ymm6ophQlXXB6acqGHtXuBqNyyO3zVp9b1r0MOA==}
dependencies:
'@babel/parser': 7.22.5
'@vue/compiler-core': 3.2.31
'@vue/shared': 3.2.31
estree-walker: 2.0.2
magic-string: 0.25.9
/@vue/reactivity@3.2.31:
resolution: {integrity: sha512-HVr0l211gbhpEKYr2hYe7hRsV91uIVGFYNHj73njbARVGHQvIojkImKMaZNDdoDZOIkMsBc9a1sMqR+WZwfSCw==}
dependencies:
'@vue/shared': 3.2.31
/@vue/runtime-core@3.2.31:
resolution: {integrity: sha512-Kcog5XmSY7VHFEMuk4+Gap8gUssYMZ2+w+cmGI6OpZWYOEIcbE0TPzzPHi+8XTzAgx1w/ZxDFcXhZeXN5eKWsA==}
dependencies:
'@vue/reactivity': 3.2.31
'@vue/shared': 3.2.31
/@vue/runtime-dom@3.2.31:
resolution: {integrity: sha512-N+o0sICVLScUjfLG7u9u5XCjvmsexAiPt17GNnaWHJUfsKed5e85/A3SWgKxzlxx2SW/Hw7RQxzxbXez9PtY3g==}
dependencies:
'@vue/runtime-core': 3.2.31
'@vue/shared': 3.2.31
csstype: 2.6.21
/@vue/server-renderer@3.2.31(vue@3.2.31):
resolution: {integrity: sha512-8CN3Zj2HyR2LQQBHZ61HexF5NReqngLT3oahyiVRfSSvak+oAvVmu8iNLSu6XR77Ili2AOpnAt1y8ywjjqtmkg==}
peerDependencies:
vue: 3.2.31
dependencies:
'@vue/compiler-ssr': 3.2.31
'@vue/shared': 3.2.31
vue: 3.2.31
/@vue/shared@3.2.31:
resolution: {integrity: sha512-ymN2pj6zEjiKJZbrf98UM2pfDd6F2H7ksKw7NDt/ZZ1fh5Ei39X5tABugtT03ZRlWd9imccoK0hE8hpjpU7irQ==}
/@vueuse/core@8.9.4(vue@3.2.31):
resolution: {integrity: sha512-B/Mdj9TK1peFyWaPof+Zf/mP9XuGAngaJZBwPaXBvU3aCTZlx3ltlrFFFyMV4iGBwsjSCeUCgZrtkEj9dS2Y3Q==}
peerDependencies:
'@vue/composition-api': ^1.1.0
vue: ^2.6.0 || ^3.2.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
vue:
optional: true
dependencies:
'@types/web-bluetooth': 0.0.14
'@vueuse/metadata': 8.9.4
'@vueuse/shared': 8.9.4(vue@3.2.31)
vue: 3.2.31
vue-demi: 0.14.5(vue@3.2.31)
dev: false
/@vueuse/metadata@8.9.4:
resolution: {integrity: sha512-IwSfzH80bnJMzqhaapqJl9JRIiyQU0zsRGEgnxN6jhq7992cPUJIRfV+JHRIZXjYqbwt07E1gTEp0R0zPJ1aqw==}
dev: false
/@vueuse/shared@8.9.4(vue@3.2.31):
resolution: {integrity: sha512-wt+T30c4K6dGRMVqPddexEVLa28YwxW5OFIPmzUHICjphfAuBFTTdDoyqREZNDOFJZ44ARH1WWQNCUK8koJ+Ag==}
peerDependencies:
'@vue/composition-api': ^1.1.0
vue: ^2.6.0 || ^3.2.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
vue:
optional: true
dependencies:
vue: 3.2.31
vue-demi: 0.14.5(vue@3.2.31)
dev: false
/@wangeditor/basic-modules@1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1):
resolution: {integrity: sha512-cY9CPkLJaqF05STqfpZKWG4LpxTMeGSIIF1fHvfm/mz+JXatCagjdkbxdikOuKYlxDdeqvOeBmsUBItufDLXZg==}
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
dependencies:
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.6)(slate@0.72.8)(snabbdom@3.5.1)
dom7: 3.0.0
is-url: 1.2.4
lodash.throttle: 4.1.1
nanoid: 3.3.6
slate: 0.72.8
snabbdom: 3.5.1
dev: false
/@wangeditor/code-highlight@1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1):
resolution: {integrity: sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==}
peerDependencies:
'@wangeditor/core': 1.x
dom7: ^3.0.0
slate: ^0.72.0
snabbdom: ^3.1.0
dependencies:
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.6)(slate@0.72.8)(snabbdom@3.5.1)
dom7: 3.0.0
prismjs: 1.29.0
slate: 0.72.8
snabbdom: 3.5.1
dev: false
/@wangeditor/core@1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.6)(slate@0.72.8)(snabbdom@3.5.1):
resolution: {integrity: sha512-KevkB47+7GhVszyYF2pKGKtCSj/YzmClsD03C3zTt+9SR2XWT5T0e3yQqg8baZpcMvkjs1D8Dv4fk8ok/UaS2Q==}
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
dependencies:
'@types/event-emitter': 0.3.3
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
dom7: 3.0.0
event-emitter: 0.3.5
html-void-elements: 2.0.1
i18next: 20.6.1
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.3.6
scroll-into-view-if-needed: 2.2.31
slate: 0.72.8
slate-history: 0.66.0(slate@0.72.8)
snabbdom: 3.5.1
dev: false
/@wangeditor/editor-for-vue@5.1.12(@wangeditor/editor@5.1.14)(vue@3.2.31):
resolution: {integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==}
peerDependencies:
'@wangeditor/editor': '>=5.1.0'
vue: ^3.0.5
dependencies:
'@wangeditor/editor': 5.1.14
vue: 3.2.31
dev: false
/@wangeditor/editor@5.1.14:
resolution: {integrity: sha512-erILPAkpKldyGi4cEwrOW65v12GhZy2qj2A8kPlypU46lE72Y3XowZxWogN1TI/mqMDR84AHr0QWOvygOV1xwQ==}
dependencies:
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
'@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1)
'@wangeditor/code-highlight': 1.0.3(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.6)(slate@0.72.8)(snabbdom@3.5.1)
'@wangeditor/list-module': 1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1)
'@wangeditor/table-module': 1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1)
'@wangeditor/upload-image-module': 1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1)
'@wangeditor/video-module': 1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1)
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.3.6
slate: 0.72.8
snabbdom: 3.5.1
dev: false
/@wangeditor/list-module@1.0.5(@wangeditor/core@1.1.19)(dom7@3.0.0)(slate@0.72.8)(snabbdom@3.5.1):
resolution: {integrity: sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==}
peerDependencies:
'@wangeditor/core': 1.x
dom7: ^3.0.0
slate: ^0.72.0
snabbdom: ^3.1.0
dependencies:
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.6)(slate@0.72.8)(snabbdom@3.5.1)
dom7: 3.0.0
slate: 0.72.8
snabbdom: 3.5.1
dev: false
/@wangeditor/table-module@1.1.4(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.isequal@4.5.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1):
resolution: {integrity: sha512-5saanU9xuEocxaemGdNi9t8MCDSucnykEC6jtuiT72kt+/Hhh4nERYx1J20OPsTCCdVr7hIyQenFD1iSRkIQ6w==}
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
dependencies:
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.6)(slate@0.72.8)(snabbdom@3.5.1)
dom7: 3.0.0
lodash.isequal: 4.5.0
lodash.throttle: 4.1.1
nanoid: 3.3.6
slate: 0.72.8
snabbdom: 3.5.1
dev: false
/@wangeditor/upload-image-module@1.0.2(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/basic-modules@1.1.7)(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.foreach@4.5.0)(slate@0.72.8)(snabbdom@3.5.1):
resolution: {integrity: sha512-z81lk/v71OwPDYeQDxj6cVr81aDP90aFuywb8nPD6eQeECtOymrqRODjpO6VGvCVxVck8nUxBHtbxKtjgcwyiA==}
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
dependencies:
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
'@wangeditor/basic-modules': 1.1.7(@wangeditor/core@1.1.19)(dom7@3.0.0)(lodash.throttle@4.1.1)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.6)(slate@0.72.8)(snabbdom@3.5.1)
dom7: 3.0.0
lodash.foreach: 4.5.0
slate: 0.72.8
snabbdom: 3.5.1
dev: false
/@wangeditor/video-module@1.1.4(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.3)(@wangeditor/core@1.1.19)(dom7@3.0.0)(nanoid@3.3.6)(slate@0.72.8)(snabbdom@3.5.1):
resolution: {integrity: sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==}
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
dependencies:
'@uppy/core': 2.3.4
'@uppy/xhr-upload': 2.1.3(@uppy/core@2.3.4)
'@wangeditor/core': 1.1.19(@uppy/core@2.3.4)(@uppy/xhr-upload@2.1.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.3.6)(slate@0.72.8)(snabbdom@3.5.1)
dom7: 3.0.0
nanoid: 3.3.6
slate: 0.72.8
snabbdom: 3.5.1
dev: false
/ace-builds@1.9.6:
resolution: {integrity: sha512-M/Li4hPruMSbkkg35LgdbsIBq0WuwrV4ztP2pKaww47rC/MvDc1bOrYxwJrfgxdlzyLKrja5bn+9KwwuzqB2xQ==}
dev: false
/anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
/async-validator@4.2.5:
resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
dev: false
/axios@0.21.1:
resolution: {integrity: sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==}
dependencies:
follow-redirects: 1.15.2
transitivePeerDependencies:
- debug
dev: false
/base64-arraybuffer@1.0.2:
resolution: {integrity: sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==}
engines: {node: '>= 0.6.0'}
dev: false
/binary-extensions@2.2.0:
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
engines: {node: '>=8'}
/braces@3.0.2:
resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
engines: {node: '>=8'}
dependencies:
fill-range: 7.0.1
/chokidar@3.5.3:
resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
engines: {node: '>= 8.10.0'}
dependencies:
anymatch: 3.1.3
braces: 3.0.2
glob-parent: 5.1.2
is-binary-path: 2.1.0
is-glob: 4.0.3
normalize-path: 3.0.0
readdirp: 3.6.0
optionalDependencies:
fsevents: 2.3.2
/clipboard@2.0.11:
resolution: {integrity: sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==}
dependencies:
good-listener: 1.2.2
select: 1.1.2
tiny-emitter: 2.1.0
dev: false
/compute-scroll-into-view@1.0.20:
resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
dev: false
/css-line-break@2.1.0:
resolution: {integrity: sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==}
dependencies:
utrie: 1.0.2
dev: false
/csstype@2.6.21:
resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
/d@1.0.1:
resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==}
dependencies:
es5-ext: 0.10.62
type: 1.2.0
dev: false
/dayjs@1.11.8:
resolution: {integrity: sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ==}
dev: false
/delegate@3.2.0:
resolution: {integrity: sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==}
dev: false
/dom7@3.0.0:
resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==}
dependencies:
ssr-window: 3.0.0
dev: false
/echarts@5.3.3:
resolution: {integrity: sha512-BRw2serInRwO5SIwRviZ6Xgm5Lb7irgz+sLiFMmy/HOaf4SQ+7oYqxKzRHAKp4xHQ05AuHw1xvoQWJjDQq/FGw==}
dependencies:
tslib: 2.3.0
zrender: 5.3.2
dev: false
/element-plus@2.2.9(vue@3.2.31):
resolution: {integrity: sha512-jYbL0JkCdv95rkT6trZJjCAizLPySa0qcd2cgq+57SKQnCZAcNDDq4GbTuFRnNavdoeCJnuM3HIficTIUpsMOQ==}
peerDependencies:
vue: ^3.2.0
dependencies:
'@ctrl/tinycolor': 3.6.0
'@element-plus/icons-vue': 2.0.6(vue@3.2.31)
'@floating-ui/dom': 0.5.4
'@popperjs/core': /@sxzz/popperjs-es@2.11.7
'@types/lodash': 4.14.195
'@types/lodash-es': 4.17.7
'@vueuse/core': 8.9.4(vue@3.2.31)
async-validator: 4.2.5
dayjs: 1.11.8
escape-html: 1.0.3
lodash: 4.17.21
lodash-es: 4.17.21
lodash-unified: 1.0.3(@types/lodash-es@4.17.7)(lodash-es@4.17.21)(lodash@4.17.21)
memoize-one: 6.0.0
normalize-wheel-es: 1.2.0
vue: 3.2.31
transitivePeerDependencies:
- '@vue/composition-api'
dev: false
/es5-ext@0.10.62:
resolution: {integrity: sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA==}
engines: {node: '>=0.10'}
requiresBuild: true
dependencies:
es6-iterator: 2.0.3
es6-symbol: 3.1.3
next-tick: 1.1.0
dev: false
/es6-iterator@2.0.3:
resolution: {integrity: sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==}
dependencies:
d: 1.0.1
es5-ext: 0.10.62
es6-symbol: 3.1.3
dev: false
/es6-symbol@3.1.3:
resolution: {integrity: sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==}
dependencies:
d: 1.0.1
ext: 1.7.0
dev: false
/esbuild-android-64@0.14.54:
resolution: {integrity: sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
/esbuild-android-arm64@0.14.54:
resolution: {integrity: sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/esbuild-darwin-64@0.14.54:
resolution: {integrity: sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/esbuild-darwin-arm64@0.14.54:
resolution: {integrity: sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/esbuild-freebsd-64@0.14.54:
resolution: {integrity: sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/esbuild-freebsd-arm64@0.14.54:
resolution: {integrity: sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-32@0.14.54:
resolution: {integrity: sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-64@0.14.54:
resolution: {integrity: sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-arm64@0.14.54:
resolution: {integrity: sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-arm@0.14.54:
resolution: {integrity: sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-mips64le@0.14.54:
resolution: {integrity: sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-ppc64le@0.14.54:
resolution: {integrity: sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-riscv64@0.14.54:
resolution: {integrity: sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-s390x@0.14.54:
resolution: {integrity: sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-netbsd-64@0.14.54:
resolution: {integrity: sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
optional: true
/esbuild-openbsd-64@0.14.54:
resolution: {integrity: sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
optional: true
/esbuild-sunos-64@0.14.54:
resolution: {integrity: sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-32@0.14.54:
resolution: {integrity: sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-64@0.14.54:
resolution: {integrity: sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-arm64@0.14.54:
resolution: {integrity: sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild@0.14.54:
resolution: {integrity: sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
'@esbuild/linux-loong64': 0.14.54
esbuild-android-64: 0.14.54
esbuild-android-arm64: 0.14.54
esbuild-darwin-64: 0.14.54
esbuild-darwin-arm64: 0.14.54
esbuild-freebsd-64: 0.14.54
esbuild-freebsd-arm64: 0.14.54
esbuild-linux-32: 0.14.54
esbuild-linux-64: 0.14.54
esbuild-linux-arm: 0.14.54
esbuild-linux-arm64: 0.14.54
esbuild-linux-mips64le: 0.14.54
esbuild-linux-ppc64le: 0.14.54
esbuild-linux-riscv64: 0.14.54
esbuild-linux-s390x: 0.14.54
esbuild-netbsd-64: 0.14.54
esbuild-openbsd-64: 0.14.54
esbuild-sunos-64: 0.14.54
esbuild-windows-32: 0.14.54
esbuild-windows-64: 0.14.54
esbuild-windows-arm64: 0.14.54
dev: true
/escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
dev: false
/estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
/event-emitter@0.3.5:
resolution: {integrity: sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==}
dependencies:
d: 1.0.1
es5-ext: 0.10.62
dev: false
/ext@1.7.0:
resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
dependencies:
type: 2.7.2
dev: false
/fill-range@7.0.1:
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
/follow-redirects@1.15.2:
resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
engines: {node: '>=4.0'}
peerDependencies:
debug: '*'
peerDependenciesMeta:
debug:
optional: true
dev: false
/fsevents@2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
optional: true
/function-bind@1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
dev: true
/glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
dependencies:
is-glob: 4.0.3
/good-listener@1.2.2:
resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==}
dependencies:
delegate: 3.2.0
dev: false
/has@1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
dependencies:
function-bind: 1.1.1
dev: true
/html-void-elements@2.0.1:
resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
dev: false
/html2canvas@1.4.1:
resolution: {integrity: sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==}
engines: {node: '>=8.0.0'}
dependencies:
css-line-break: 2.1.0
text-segmentation: 1.0.3
dev: false
/i18next@20.6.1:
resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==}
dependencies:
'@babel/runtime': 7.22.5
dev: false
/immer@9.0.21:
resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
dev: false
/is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
dependencies:
binary-extensions: 2.2.0
/is-core-module@2.12.1:
resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
dependencies:
has: 1.0.3
dev: true
/is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
/is-glob@4.0.3:
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
engines: {node: '>=0.10.0'}
dependencies:
is-extglob: 2.1.1
/is-hotkey@0.2.0:
resolution: {integrity: sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==}
dev: false
/is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
/is-plain-object@5.0.0:
resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==}
engines: {node: '>=0.10.0'}
dev: false
/is-url@1.2.4:
resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
dev: false
/lodash-es@4.17.21:
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
dev: false
/lodash-unified@1.0.3(@types/lodash-es@4.17.7)(lodash-es@4.17.21)(lodash@4.17.21):
resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
peerDependencies:
'@types/lodash-es': '*'
lodash: '*'
lodash-es: '*'
dependencies:
'@types/lodash-es': 4.17.7
lodash: 4.17.21
lodash-es: 4.17.21
dev: false
/lodash.camelcase@4.3.0:
resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
dev: false
/lodash.clonedeep@4.5.0:
resolution: {integrity: sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==}
dev: false
/lodash.debounce@4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
dev: false
/lodash.foreach@4.5.0:
resolution: {integrity: sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==}
dev: false
/lodash.isequal@4.5.0:
resolution: {integrity: sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==}
dev: false
/lodash.throttle@4.1.1:
resolution: {integrity: sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==}
dev: false
/lodash.toarray@4.4.0:
resolution: {integrity: sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==}
dev: false
/lodash@4.17.21:
resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
dev: false
/magic-string@0.25.9:
resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
dependencies:
sourcemap-codec: 1.4.8
/memoize-one@6.0.0:
resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
dev: false
/mime-match@1.0.2:
resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==}
dependencies:
wildcard: 1.1.2
dev: false
/namespace-emitter@2.0.1:
resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==}
dev: false
/nanoid@3.3.6:
resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
/next-tick@1.1.0:
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
dev: false
/normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
/normalize-wheel-es@1.2.0:
resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
dev: false
/path-parse@1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
dev: true
/picocolors@1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
/picomatch@2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
/postcss@8.4.24:
resolution: {integrity: sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.6
picocolors: 1.0.0
source-map-js: 1.0.2
/preact@10.15.1:
resolution: {integrity: sha512-qs2ansoQEwzNiV5eAcRT1p1EC/dmEzaATVDJNiB3g2sRDWdA7b7MurXdJjB2+/WQktGWZwxvDrnuRFbWuIr64g==}
dev: false
/prismjs@1.29.0:
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
engines: {node: '>=6'}
dev: false
/readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
dependencies:
picomatch: 2.3.1
/regenerator-runtime@0.13.11:
resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
dev: false
/resize-observer-polyfill@1.5.1:
resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
dev: false
/resolve@1.22.2:
resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
hasBin: true
dependencies:
is-core-module: 2.12.1
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
dev: true
/rollup@2.79.1:
resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
engines: {node: '>=10.0.0'}
hasBin: true
optionalDependencies:
fsevents: 2.3.2
dev: true
/sass@1.35.1:
resolution: {integrity: sha512-oCisuQJstxMcacOPmxLNiLlj4cUyN2+8xJnG7VanRoh2GOLr9RqkvI4AxA4a6LHVg/rsu+PmxXeGhrdSF9jCiQ==}
engines: {node: '>=8.9.0'}
hasBin: true
dependencies:
chokidar: 3.5.3
/scroll-into-view-if-needed@2.2.31:
resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
dependencies:
compute-scroll-into-view: 1.0.20
dev: false
/select@1.1.2:
resolution: {integrity: sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==}
dev: false
/slate-history@0.66.0(slate@0.72.8):
resolution: {integrity: sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==}
peerDependencies:
slate: '>=0.65.3'
dependencies:
is-plain-object: 5.0.0
slate: 0.72.8
dev: false
/slate@0.72.8:
resolution: {integrity: sha512-/nJwTswQgnRurpK+bGJFH1oM7naD5qDmHd89JyiKNT2oOKD8marW0QSBtuFnwEbL5aGCS8AmrhXQgNOsn4osAw==}
dependencies:
immer: 9.0.21
is-plain-object: 5.0.0
tiny-warning: 1.0.3
dev: false
/snabbdom@3.5.1:
resolution: {integrity: sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==}
engines: {node: '>=8.3.0'}
dev: false
/source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
/source-map@0.6.1:
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
engines: {node: '>=0.10.0'}
/sourcemap-codec@1.4.8:
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
deprecated: Please use @jridgewell/sourcemap-codec instead
/ssr-window@3.0.0:
resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==}
dev: false
/string-format@2.0.0:
resolution: {integrity: sha512-bbEs3scLeYNXLecRRuk6uJxdXUSj6le/8rNPHChIJTn2V79aXVTR1EH2OH5zLKKoz0V02fOUKZZcw01pLUShZA==}
dev: false
/supports-preserve-symlinks-flag@1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
dev: true
/text-segmentation@1.0.3:
resolution: {integrity: sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==}
dependencies:
utrie: 1.0.2
dev: false
/tiny-emitter@2.1.0:
resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==}
dev: false
/tiny-warning@1.0.3:
resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
dev: false
/to-fast-properties@2.0.0:
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
engines: {node: '>=4'}
/to-regex-range@5.0.1:
resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
/tslib@2.3.0:
resolution: {integrity: sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==}
dev: false
/type@1.2.0:
resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}
dev: false
/type@2.7.2:
resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==}
dev: false
/utrie@1.0.2:
resolution: {integrity: sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==}
dependencies:
base64-arraybuffer: 1.0.2
dev: false
/uuid@8.3.2:
resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==}
hasBin: true
dev: false
/vite@3.0.0(sass@1.35.1):
resolution: {integrity: sha512-M7phQhY3+fRZa0H+1WzI6N+/onruwPTBTMvaj7TzgZ0v2TE+N2sdLKxJOfOv9CckDWt5C4HmyQP81xB4dwRKzA==}
engines: {node: '>=14.18.0'}
hasBin: true
peerDependencies:
less: '*'
sass: '*'
stylus: '*'
terser: ^5.4.0
peerDependenciesMeta:
less:
optional: true
sass:
optional: true
stylus:
optional: true
terser:
optional: true
dependencies:
esbuild: 0.14.54
postcss: 8.4.24
resolve: 1.22.2
rollup: 2.79.1
sass: 1.35.1
optionalDependencies:
fsevents: 2.3.2
dev: true
/vue-demi@0.14.5(vue@3.2.31):
resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
peerDependencies:
'@vue/composition-api': ^1.0.0-rc.1
vue: ^3.0.0-0 || ^2.6.0
peerDependenciesMeta:
'@vue/composition-api':
optional: true
dependencies:
vue: 3.2.31
dev: false
/vue-i18n@9.1.7(vue@3.2.31):
resolution: {integrity: sha512-ujuuDanoHqtEd4GejWrbG/fXE9nrP51ElsEGxp0WBHfv+/ki0/wyUqkO+4fLikki2obGtXdviTPH0VNpas5K6g==}
engines: {node: '>= 10'}
peerDependencies:
vue: ^3.0.0
dependencies:
'@intlify/core-base': 9.1.7
'@intlify/shared': 9.1.7
'@intlify/vue-devtools': 9.1.7
'@vue/devtools-api': 6.5.0
vue: 3.2.31
dev: false
/vue-router@4.0.10(vue@3.2.31):
resolution: {integrity: sha512-YbPf6QnZpyyWfnk7CUt2Bme+vo7TLfg1nGZNkvYqKYh4vLaFw6Gn8bPGdmt5m4qrGnKoXLqc4htAsd3dIukICA==}
peerDependencies:
vue: ^3.0.0
dependencies:
'@vue/devtools-api': 6.5.0
vue: 3.2.31
dev: false
/vue3-ace-editor@2.2.2:
resolution: {integrity: sha512-fZ6OWosbU+odLrtrcGC/536QjCigujYJB0Hf6/tBp+ef/ohTadwQAqyBlVzOmvrmzZyubphpV9zkaZcx5Fuivw==}
dependencies:
ace-builds: 1.9.6
resize-observer-polyfill: 1.5.1
vue: 3.2.31
dev: false
/vue@3.2.31:
resolution: {integrity: sha512-odT3W2tcffTiQCy57nOT93INw1auq5lYLLYtWpPYQQYQOOdHiqFct9Xhna6GJ+pJQaF67yZABraH47oywkJgFw==}
dependencies:
'@vue/compiler-dom': 3.2.31
'@vue/compiler-sfc': 3.2.31
'@vue/runtime-dom': 3.2.31
'@vue/server-renderer': 3.2.31(vue@3.2.31)
'@vue/shared': 3.2.31
/vuex@4.0.2(vue@3.2.31):
resolution: {integrity: sha512-M6r8uxELjZIK8kTKDGgZTYX/ahzblnzC4isU1tpmEuOIIKmV+TRdc+H4s8ds2NuZ7wpUTdGRzJRtoj+lI+pc0Q==}
peerDependencies:
vue: ^3.0.2
dependencies:
'@vue/devtools-api': 6.5.0
vue: 3.2.31
dev: false
/wildcard@1.1.2:
resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==}
dev: false
/zrender@5.3.2:
resolution: {integrity: sha512-8IiYdfwHj2rx0UeIGZGGU4WEVSDEdeVCaIg/fomejg1Xu6OifAL1GVzIPHg2D+MyUkbNgPWji90t0a8IDk+39w==}
dependencies:
tslib: 2.3.0
dev: false
:root { :root {
--font-color: #404a62; --font-color: #404a62;
/* --el-color-primary-light-9: #f7f7f9; */ /* --el-color-primary-light-9: #f7f7f9; */
--el-color-white: #ffffff;
--el-color-white: #ffffff; --el-color-black: #1a1a1a;
--el-color-black: #1a1a1a; --el-color-primary: #2b4695;
--el-color-primary: #2b4695; --el-color-primary-light-3: #6b7eb5;
--el-color-primary-light-3: #6b7eb5; --el-color-primary-light-5: #95a3ca;
--el-color-primary-light-5: #95a3ca; --el-color-primary-light-7: #c0c8df;
--el-color-primary-light-7: #c0c8df; --el-color-primary-light-8: #d5daea;
--el-color-primary-light-8: #d5daea; --el-color-primary-light-9: #eaedf5;
--el-color-primary-light-9: #eaedf5; --el-color-primary-dark-2: #223877;
--el-color-primary-dark-2: #223877; --el-color-success: #429e8a;
--el-color-success: #429e8a; --el-color-success-light-3: #7bbbad;
--el-color-success-light-3: #7bbbad; --el-color-success-light-5: #a1cfc5;
--el-color-success-light-5: #a1cfc5; --el-color-success-light-7: #c7e2dc;
--el-color-success-light-7: #c7e2dc; --el-color-success-light-8: #e1f3d8;
--el-color-success-light-8: #e1f3d8; --el-color-success-light-9: #ecf5f4;
--el-color-success-light-9: #ecf5f4; --el-color-success-dark-2: #357e6e;
--el-color-success-dark-2: #357e6e; --el-color-warning: #e56600;
--el-color-warning: #e56600; --el-color-warning-light-3: #ed944d;
--el-color-warning-light-3: #ed944d; --el-color-warning-light-5: #f2b380;
--el-color-warning-light-5: #f2b380; --el-color-warning-light-7: #f7d1b3;
--el-color-warning-light-7: #f7d1b3; --el-color-warning-light-8: #fae0cc;
--el-color-warning-light-8: #fae0cc; --el-color-warning-light-9: #fcf0e6;
--el-color-warning-light-9: #fcf0e6; --el-color-warning-dark-2: #b75200;
--el-color-warning-dark-2: #b75200; --el-color-danger: #d75138;
--el-color-danger: #d75138; --el-color-danger-light-3: #e38674;
--el-color-danger-light-3: #e38674; --el-color-danger-light-5: #eba89c;
--el-color-danger-light-5: #eba89c; --el-color-danger-light-7: #f3cbc4;
--el-color-danger-light-7: #f3cbc4; --el-color-danger-light-8: #f7dcd7;
--el-color-danger-light-8: #f7dcd7; --el-color-danger-light-9: #fbeeeb;
--el-color-danger-light-9: #fbeeeb; --el-color-danger-dark-2: #ac412d;
--el-color-danger-dark-2: #ac412d; --el-color-error: #d75138;
--el-color-error: #d75138; --el-color-error-light-3: #e38674;
--el-color-error-light-3: #e38674; --el-color-error-light-5: #eba89c;
--el-color-error-light-5: #eba89c; --el-color-error-light-7: #f3cbc4;
--el-color-error-light-7: #f3cbc4; --el-color-error-light-8: #f7dcd7;
--el-color-error-light-8: #f7dcd7; --el-color-error-light-9: #fbeeeb;
--el-color-error-light-9: #fbeeeb; --el-color-error-dark-2: #ac412d;
--el-color-error-dark-2: #ac412d; --el-color-info: #404a62;
--el-color-info: #404a62; --el-color-info-light-3: #7a8191;
--el-color-info-light-3: #7a8191; --el-color-info-light-5: #a0a5b1;
--el-color-info-light-5: #a0a5b1; --el-color-info-light-7: #c6c9d0;
--el-color-info-light-7: #c6c9d0; --el-color-info-light-8: #d9dbe0;
--el-color-info-light-8: #d9dbe0; --el-color-info-light-9: #ecedf0;
--el-color-info-light-9: #ecedf0; --el-color-info-dark-2: #333b4e;
--el-color-info-dark-2: #333b4e; --el-bg-color: #ffffff;
--el-bg-color: #ffffff; --el-bg-color-page: #f2f3f5;
--el-bg-color-page: #f2f3f5; --el-bg-color-overlay: #ffffff;
--el-bg-color-overlay: #ffffff; --el-text-color-primary: #202531;
--el-text-color-primary: #202531; --el-text-color-regular: #404a62;
--el-text-color-regular: #404a62; --el-text-color-secondary: #909bb6;
--el-text-color-secondary: #909bb6; --el-text-color-placeholder: #a9b1c7;
--el-text-color-placeholder: #a9b1c7; --el-text-color-disabled: #a9b1c7;
--el-text-color-disabled: #a9b1c7; --el-border-color: #dadee7;
--el-border-color: #dadee7; --el-border-color-light: #e3e5eb;
--el-border-color-light: #e3e5eb; --el-border-color-lighter: #e6e9ef;
--el-border-color-lighter: #e6e9ef; --el-border-color-extra-light: #edf0f5;
--el-border-color-extra-light: #edf0f5; --el-border-color-dark: #d1d5de;
--el-border-color-dark: #d1d5de; --el-border-color-darker: #cbced7;
--el-border-color-darker: #cbced7; --el-fill-color: #f0f2f5;
--el-fill-color: #f0f2f5; --el-fill-color-light: #f5f7fa;
--el-fill-color-light: #f5f7fa; --el-fill-color-lighter: #fafafa;
--el-fill-color-lighter: #fafafa; --el-fill-color-extra-light: #fafcff;
--el-fill-color-extra-light: #fafcff; --el-fill-color-dark: #ebedf0;
--el-fill-color-dark: #ebedf0; --el-fill-color-darker: #e6e8eb;
--el-fill-color-darker: #e6e8eb; --el-fill-color-blank: #ffffff;
--el-fill-color-blank: #ffffff;
} }
[v-cloak] { [v-cloak] {
display: none; display: none;
} }
/* 新增按钮颜色 */ /* 新增按钮颜色 */
.form-group .el-button--primary { .form-group .el-button--primary {
background-color: #264dd9 !important; background-color: #264dd9 !important;
border-color: #264dd9 !important; border-color: #264dd9 !important;
} }
/* 返回按钮颜色 */ /* 返回按钮颜色 */
.from_return>.el-button--primary { .from_return>.el-button--primary {
background-color: #edf0ff !important; background-color: #edf0ff !important;
border-color: #edf0ff !important; border-color: #edf0ff !important;
color: #264dd9 !important; color: #264dd9 !important;
} }
/* 取消按钮颜色 */ /* 取消按钮颜色 */
.form_c { .form_c {
background-color: #dde4ff !important; background-color: #dde4ff !important;
border-color: #dde4ff !important; border-color: #dde4ff !important;
color: #264dd9 !important; color: #264dd9 !important;
} }
/* 确定按钮颜色 */ /* 确定按钮颜色 */
.form_t { .form_t {
background-color: #264dd9 !important; background-color: #264dd9 !important;
border-color: #264dd9 !important; border-color: #264dd9 !important;
color: #f4f7fc !important; color: #f4f7fc !important;
} }
/* 搜索框颜色 */ /* 搜索框颜色 */
.form-group .el-input__inner { .form-group .el-input__inner {
border-radius: 28px !important; border-radius: 28px !important;
border: 1px solid #bcc1d0 !important; border: 1px solid #bcc1d0 !important;
background: #f4f7fc !important; background: #f4f7fc !important;
color: #8890a7 !important; color: #8890a7 !important;
} }
.drawer_return .el-input__inner { .drawer_return .el-input__inner {
border-radius: 28px !important; border-radius: 28px !important;
border: 1px solid #bcc1d0 !important; border: 1px solid #bcc1d0 !important;
background: #f4f7fc !important; background: #f4f7fc !important;
color: #8890a7 !important; color: #8890a7 !important;
} }
/* 多行文本框样式 */ /* 多行文本框样式 */
.jbxx_desc textarea { .jbxx_desc textarea {
height: 150px !important; height: 150px !important;
border-radius: 8px !important; border-radius: 8px !important;
border-color: #bcc1d0 !important; border-color: #bcc1d0 !important;
outline: none !important; outline: none !important;
resize: none !important; resize: none !important;
} }
/* 面包屑文字大小 */ /* 面包屑文字大小 */
.el-breadcrumb { .el-breadcrumb {
font-size: 14px; font-size: 14px;
color: #898d9e; color: #898d9e;
} }
/* 编辑颜色*/ /* 编辑颜色*/
.primary-edit { .primary-edit {
color: #264dd9; color: #264dd9;
cursor: pointer; cursor: pointer;
} }
/* 删除颜色 */ /* 删除颜色 */
.primary-del { .primary-del {
color: #264dd9; color: #264dd9;
cursor: pointer; cursor: pointer;
} }
.space_bet {} .space_bet {}
/* reset */ /* reset */
html {} html {}
html,body { html,
margin: 0; body {
font-family: Microsoft YaHei, sans-serif; margin: 0;
/* font-size: 17px; */ font-family: Microsoft YaHei, sans-serif;
/* font-size: 17px; */
} }
ul { ul {
list-style: none; list-style: none;
padding: 0; padding: 0;
margin: 0; margin: 0;
} }
p { p {
margin: 0; margin: 0;
} }
h1, h1,
...@@ -167,244 +188,269 @@ h2, ...@@ -167,244 +188,269 @@ h2,
h3, h3,
h4, h4,
h5 { h5 {
margin: 0; margin: 0;
font-weight: normal; font-weight: normal;
} }
h1{ h1 {
font-size: 32px; font-size: 32px;
} }
h2{
font-size: 24px; h2 {
font-size: 24px;
} }
h3{
font-size: 18.7px; h3 {
font-size: 18.7px;
} }
h4{
font-size: 16px; h4 {
font-size: 16px;
} }
div { div {
box-sizing: border-box; box-sizing: border-box;
} }
/* reset end */ /* reset end */
/* common */ /* common */
/* #app { /* #app {
height: 100%; height: 100%;
overflow: hidden; overflow: hidden;
} */ } */
.text_clip { .text_clip {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
word-break: break-all; word-break: break-all;
white-space: nowrap; white-space: nowrap;
} }
.text_clip_2 { .text_clip_2 {
text-overflow: -o-ellipsis-lastline; text-overflow: -o-ellipsis-lastline;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
display: -webkit-box; display: -webkit-box;
line-clamp: 2; line-clamp: 2;
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
} }
.map_container { .map_container {
background-color: #eee; background-color: #eee;
} }
.ss_card { .ss_card {
padding: 1.2rem; padding: 1.2rem;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
align-items: flex-start; align-items: flex-start;
} }
.ss_card>.sc_left_container { .ss_card>.sc_left_container {
width: 6rem; width: 6rem;
height: 6rem; height: 6rem;
flex-shrink: 0; flex-shrink: 0;
border-radius: 0.5rem; border-radius: 0.5rem;
overflow: hidden; overflow: hidden;
font-size: 0; font-size: 0;
} }
.ss_card>.sc_right_container { .ss_card>.sc_right_container {
width: calc(100% - 7rem); width: calc(100% - 7rem);
flex-grow: 1; flex-grow: 1;
margin-left: 1.2rem; margin-left: 1.2rem;
} }
.ss_card>.sc_right_container>.sc_title { .ss_card>.sc_right_container>.sc_title {
font-size: 1.6rem; font-size: 1.6rem;
font-weight: bold; font-weight: bold;
line-height: 2.6rem; line-height: 2.6rem;
} }
.ss_card>.sc_right_container>.sc_info { .ss_card>.sc_right_container>.sc_info {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
.form-group { .form-group {
padding: 20px 20px 15px; padding: 20px 20px 15px;
box-sizing: border-box; box-sizing: border-box;
border-bottom: 1px solid #edf0ff; border-bottom: 1px solid #edf0ff;
} }
.padding_table { .padding_table {
padding: 0 20px; padding: 0 20px;
} }
/* 设置抽屉的样式 */ /* 设置抽屉的样式 */
.el-drawer__header { .el-drawer__header {
display: none; display: none;
} }
.from_return { .from_return {
text-align: center; text-align: center;
padding: 18px 20px 10px; padding: 18px 20px 10px;
border-bottom: 1px solid #edf0ff; border-bottom: 1px solid #edf0ff;
position: relative; position: relative;
} }
.from_return>.el-button--primary { .from_return>.el-button--primary {
position: absolute; position: absolute;
top: 15px; top: 15px;
left: 20px; left: 20px;
} }
.from_return>span { .from_return>span {
color: #1a2236; color: #1a2236;
font-size: 16px; font-size: 16px;
} }
.demo-drawer__content .el-form-item__label { .demo-drawer__content .el-form-item__label {
color: #242c43; color: #242c43;
} }
.demo-drawer__content .el-input__inner { .demo-drawer__content .el-input__inner {
border: 1px solid #bcc1d0; border: 1px solid #bcc1d0;
border-radius: 17px; border-radius: 17px;
color: #58617a; color: #58617a;
background: #fff; background: #fff;
} }
.demo-drawer__footer { .demo-drawer__footer {
text-align: right; text-align: right;
padding-right: 40px; padding-right: 40px;
margin-top: 40px; margin-top: 40px;
} }
.el-form-item__error { .el-form-item__error {
font-size: 11px; font-size: 11px;
} }
/* 设置提示弹窗的样式 */ /* 设置提示弹窗的样式 */
.el-dialog { .el-dialog {
border-radius: 6px; border-radius: 6px;
margin-top: 240px;
} }
.el-dialog__header { .el-dialog__header {
border-bottom: 1px solid #edf0ff; border-bottom: 1px solid #edf0ff;
padding: 16px; padding: 16px;
} }
.el-dialog__title { .el-dialog__title {
font-size: 18px; font-size: 18px;
font-weight: 700; font-weight: 700;
color: #1d1e20; color: #1d1e20;
padding-left: 12px; padding-left: 12px;
position: relative; position: relative;
} }
.el-dialog__title::before { .el-dialog__title::before {
content: ""; content: "";
position: absolute; position: absolute;
width: 4px; width: 4px;
height: 16px; height: 16px;
border-radius: 2px; border-radius: 2px;
background-color: #515fe7; background-color: #515fe7;
left: 0; left: 0;
top: 5px; top: 5px;
} }
.el-dialog__headerbtn .el-dialog__close { .el-dialog__headerbtn .el-dialog__close {
color: #8890a7; color: #8890a7;
} }
.el-dialog__headerbtn:focus .el-dialog__close, .el-dialog__headerbtn:focus .el-dialog__close,
.el-dialog__headerbtn:hover .el-dialog__close { .el-dialog__headerbtn:hover .el-dialog__close {
color: #515fe7; color: #515fe7;
} }
.el-dialog__body { .el-dialog__body {
font-size: 18px; font-size: 18px;
color: #242c43; color: #242c43;
text-align: center; text-align: center;
padding: 0 16px; padding: 0 16px;
} }
.dialog_box .el-dialog__body { .dialog_box .el-dialog__body {
padding: 24px; padding: 24px;
} }
.dialog_box .el-dialog__footer { .dialog_box .el-dialog__footer {
padding: 16px; padding: 16px;
} }
.result_box .el-dialog__body { .result_box .el-dialog__body {
padding: 0px; padding: 0px;
} }
.sold_up_dialog .el-dialog__body { .sold_up_dialog .el-dialog__body {
padding: 24px 24px 4px; padding: 24px 24px 4px;
} }
/* 设置tab切换的样式 */ /* 设置tab切换的样式 */
.el-tabs__item.is-disabled { .el-tabs__item.is-disabled {
color: #8890a7 !important; color: #8890a7 !important;
} }
.el-tabs__item { .el-tabs__item {
font-size: 14px; font-size: 14px;
color: #404a62; color: #404a62;
line-height: 14px !important; line-height: 14px !important;
} }
/* .el-tabs__nav-scroll { /* .el-tabs__nav-scroll {
height: 35px; height: 35px;
} */ } */
.el-tabs__nav-scroll .el-tabs__nav { .el-tabs__nav-scroll .el-tabs__nav {
height: 40px; height: 40px;
} }
.el-tabs__nav-scroll .el-tabs__item { .el-tabs__nav-scroll .el-tabs__item {
line-height: 14px !important; line-height: 14px !important;
height: 40px !important; height: 40px !important;
} }
.el-tabs__item:hover { .el-tabs__item:hover {
color: #404a62; color: #404a62;
} }
.el-tabs__item.is-active { .el-tabs__item.is-active {
color: #3759be !important; color: #3759be !important;
} }
.el-tabs__active-bar { .el-tabs__active-bar {
height: 3px; height: 3px;
border-radius: 1px; border-radius: 1px;
background-color: #2b4695 !important; background-color: #2b4695 !important;
} }
.el-tabs__nav-wrap::after { .el-tabs__nav-wrap::after {
height: 1px; height: 1px;
background-color: #edf0ff; background-color: #edf0ff;
} }
/* 设置tree的样式 */ /* 设置tree的样式 */
.el-tree-node__content{
height: 36px; .el-tree-node__content {
height: 36px;
} }
/* .usrrole .el-tree-node:focus>.el-tree-node__content{ /* .usrrole .el-tree-node:focus>.el-tree-node__content{
background: rgb(248, 249, 253) !important; background: rgb(248, 249, 253) !important;
} }
...@@ -446,151 +492,164 @@ border-radius:8px; ...@@ -446,151 +492,164 @@ border-radius:8px;
border-bottom-left-radius:0; border-bottom-left-radius:0;
border-bottom-right-radius:0; border-bottom-right-radius:0;
} */ } */
/* 左右布局 */ /* 左右布局 */
.flex { .flex {
height: 100%; height: 100%;
display: -webkit-box; display: -webkit-box;
/* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */ /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
display: -moz-box; display: -moz-box;
/* Firefox 17- */ /* Firefox 17- */
display: -webkit-flex; display: -webkit-flex;
/* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */ /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
display: -moz-flex; display: -moz-flex;
/* Firefox 18+ */ /* Firefox 18+ */
display: -ms-flexbox; display: -ms-flexbox;
/* IE 10 */ /* IE 10 */
display: flex; display: flex;
/* Chrome 29+, Firefox 22+, IE 11+, Opera 12.1/17/18, Android 4.4+ */ /* Chrome 29+, Firefox 22+, IE 11+, Opera 12.1/17/18, Android 4.4+ */
} }
.flex-left { .flex-left {
width: 178px; width: 178px;
background-color: #1a2236; background-color: #1a2236;
height: 100%; height: 100%;
} }
.flex-right { .flex-right {
padding: 0 20px 20px; padding: 0 20px 20px;
box-sizing: border-box; box-sizing: border-box;
-webkit-box-flex: auto; -webkit-box-flex: auto;
-ms-flex: auto; -ms-flex: auto;
-webkit-flex: auto; -webkit-flex: auto;
flex: 1; flex: 1;
overflow-y: auto; overflow-y: auto;
} }
.flex-right-box { .flex-right-box {
width: 100%; width: 100%;
height: 100%; height: 100%;
position: relative; position: relative;
} }
.ces-main { .ces-main {
position: absolute; position: absolute;
width: 100%; width: 100%;
} }
.v-modal { .v-modal {
background: #000a2b !important; background: #000a2b !important;
} }
.drawer600 { .drawer600 {
width: 600px !important; width: 600px !important;
} }
.drawer620 { .drawer620 {
width: 620px !important; width: 620px !important;
} }
.drawer1202 { .drawer1202 {
width: 1202px !important; width: 1202px !important;
} }
/* .el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before, /* .el-form-item.is-required:not(.is-no-asterisk) .el-form-item__label-wrap>.el-form-item__label:before,
.el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before { .el-form-item.is-required:not(.is-no-asterisk)>.el-form-item__label:before {
content: ""; content: "";
} */ } */
/* 设置switch的样式 */ /* 设置switch的样式 */
.switchStyle1 .el-switch__label { .switchStyle1 .el-switch__label {
position: absolute; position: absolute;
display: none; display: none;
color: #fff; color: #fff;
} }
/*打开时文字位置设置*/ /*打开时文字位置设置*/
.switchStyle1 .el-switch__label--right { .switchStyle1 .el-switch__label--right {
z-index: 1; z-index: 1;
right: -10px; right: -10px;
top: 1px; top: 1px;
} }
/*关闭时文字位置设置*/ /*关闭时文字位置设置*/
.switchStyle1 .el-switch__label--left { .switchStyle1 .el-switch__label--left {
z-index: 1; z-index: 1;
left: 28px; left: 28px;
top: 1px; top: 1px;
} }
.switchStyle1 .el-switch__label.is-active { .switchStyle1 .el-switch__label.is-active {
display: block; display: block;
} }
.switchStyle1.el-switch .el-switch__core, .switchStyle1.el-switch .el-switch__core,
.switchStyle1.el-switch .el-switch__label { .switchStyle1.el-switch .el-switch__label {
width: 62px !important; width: 62px !important;
height: 28px !important; height: 28px !important;
border-radius: 28px !important; border-radius: 28px !important;
} }
.switchStyle1 .el-switch__core { .switchStyle1 .el-switch__core {
background: #f8f9fd !important; background: #f8f9fd !important;
border: 1px solid #8890a7 !important; border: 1px solid #8890a7 !important;
} }
.switchStyle1 .el-switch__core:after { .switchStyle1 .el-switch__core:after {
background: #8890a7 !important; background: #8890a7 !important;
width: 22px; width: 22px;
height: 22px; height: 22px;
left: 2px; left: 2px;
top: 2.1px; top: 2.1px;
} }
.switchStyle1.el-switch.is-checked .el-switch__core { .switchStyle1.el-switch.is-checked .el-switch__core {
background: #f8f9fd !important; background: #f8f9fd !important;
border: 1px solid #5c82ff !important; border: 1px solid #5c82ff !important;
} }
.switchStyle1.el-switch.is-checked .el-switch__core:after { .switchStyle1.el-switch.is-checked .el-switch__core:after {
background: #5c82ff !important; background: #5c82ff !important;
width: 22px; width: 22px;
height: 22px; height: 22px;
right: 0; right: 0;
top: 2.1px; top: 2.1px;
} }
.switchStyle1.el-switch.is-checked .el-switch__core::after { .switchStyle1.el-switch.is-checked .el-switch__core::after {
margin-left: -25px; margin-left: -25px;
} }
.switchStyle1 .el-switch__label * { .switchStyle1 .el-switch__label * {
font-size: 14px !important; font-size: 14px !important;
font-weight: 800; font-weight: 800;
} }
.switchStyle1.el-switch .el-switch__label { .switchStyle1.el-switch .el-switch__label {
color: #8890a7 !important; color: #8890a7 !important;
} }
.switchStyle1.el-switch.is-checked .el-switch__label { .switchStyle1.el-switch.is-checked .el-switch__label {
color: #5c82ff !important; color: #5c82ff !important;
} }
.switchStyle1.el-switch:hover { .switchStyle1.el-switch:hover {
opacity: 0.8; opacity: 0.8;
} }
/* 自定义图表提示框小三角 */ /* 自定义图表提示框小三角 */
/* .div-tip-warp { /* .div-tip-warp {
position: relative; position: relative;
line-height: 22px; line-height: 22px;
...@@ -611,913 +670,933 @@ border-radius:8px; ...@@ -611,913 +670,933 @@ border-radius:8px;
.triangle-position { .triangle-position {
margin-left: 35px; margin-left: 35px;
} */ } */
.el-input__inner { .el-input__inner {
border-radius: 6px; border-radius: 6px;
} }
.el-input-group__append, .el-input-group__append,
.el-input-group__prepend { .el-input-group__prepend {
border-radius: 8px; border-radius: 8px;
} }
.el-button { .el-button {
border-radius: 4px; border-radius: 4px;
height: 36px; height: 36px;
line-height: 36px; line-height: 36px;
} }
.el-select-dropdown { .el-select-dropdown {
z-index: 20000 !important; z-index: 20000 !important;
} }
/* /*
下拉选样式 下拉选样式
此处勿删,apaasV3下拉选择样式统一用这个 此处勿删,apaasV3下拉选择样式统一用这个
*/ */
.el-select-dropdown { .el-select-dropdown {
border-radius: 8px; border-radius: 8px;
} }
.el-select-dropdown__empty { .el-select-dropdown__empty {
color: #f4f7fc; color: #f4f7fc;
border-radius: 8px; border-radius: 8px;
} }
.el-select-dropdown__list { .el-select-dropdown__list {
padding: 0; padding: 0;
top: 10px; top: 10px;
border-radius: 4px; border-radius: 4px;
} }
.el-select-dropdown__item { .el-select-dropdown__item {
font-size: 12px; font-size: 12px;
padding: 0 20px; padding: 0 20px;
height: 34px; height: 34px;
line-height: 34px; line-height: 34px;
} }
.el-select-dropdown.is-multiple .el-select-dropdown__item.selected { .el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
background-color: transparent; background-color: transparent;
color: #2b4695; color: #2b4695;
} }
.el-scrollbar { .el-scrollbar {
border-radius: 8px; border-radius: 8px;
} }
.el-popper[x-placement^="bottom"] .popper__arrow::after { .el-popper[x-placement^="bottom"] .popper__arrow::after {
border-bottom-color: transparent; border-bottom-color: transparent;
} }
.el-popper[x-placement^="top"] .popper__arrow::after { .el-popper[x-placement^="top"] .popper__arrow::after {
border-top-color: transparent; border-top-color: transparent;
} }
/* 单选激活样式 */ /* 单选激活样式 */
.el-radio__input .el-radio__inner { .el-radio__input .el-radio__inner {
border-color: #dadee7; border-color: #dadee7;
background-color: #fff; background-color: #fff;
width: 16px; width: 16px;
height: 16px; height: 16px;
} }
.el-radio__input.is-checked .el-radio__inner { .el-radio__input.is-checked .el-radio__inner {
border-color: #dadee7; border-color: #dadee7;
background-color: #fff; background-color: #fff;
} }
.el-radio__input.is-checked+.el-radio__label { .el-radio__input.is-checked+.el-radio__label {
color: #1a2236; color: #1a2236;
font-weight: 700; font-weight: 700;
} }
.el-radio__inner::after { .el-radio__inner::after {
width: 8px; width: 8px;
height: 8px; height: 8px;
} }
.el-radio__input.is-checked .el-radio__inner::after { .el-radio__input.is-checked .el-radio__inner::after {
background-color: #2b4695; background-color: #2b4695;
} }
.el-radio__inner:hover { .el-radio__inner:hover {
border-color: #2b4695; border-color: #2b4695;
} }
/* 面包屑样式 */ /* 面包屑样式 */
.bread_crumb { .bread_crumb {
margin: 20px; margin: 20px;
font-size: 14px; font-size: 14px;
} }
.bread_crumb .el-breadcrumb__inner { .bread_crumb .el-breadcrumb__inner {
color: #b4c0f5 !important; color: #b4c0f5 !important;
} }
.bread_crumb .is-link { .bread_crumb .is-link {
color: #626de9 !important; color: #626de9 !important;
} }
.bread_crumb1 { .bread_crumb1 {
margin: 20px; margin: 20px;
font-size: 14px; font-size: 14px;
} }
.bread_crumb1 .el-breadcrumb__inner { .bread_crumb1 .el-breadcrumb__inner {
color: #242c43 !important; color: #242c43 !important;
} }
.bread_crumb1 .is-link { .bread_crumb1 .is-link {
color: #898d9e !important; color: #898d9e !important;
} }
/* 应用超市详情页公共样式 */ /* 应用超市详情页公共样式 */
.sevice_detail { .sevice_detail {
max-width: 1340px; max-width: 1340px;
padding-top: 1px; padding-top: 1px;
margin: 0 auto; margin: 0 auto;
} }
/* common */ /* common */
.apass_breadcrumb>.el-breadcrumb { .apass_breadcrumb>.el-breadcrumb {
padding: 10px 0; padding: 10px 0;
} }
.apass_breadcrumb>.el-breadcrumb .el-breadcrumb__inner { .apass_breadcrumb>.el-breadcrumb .el-breadcrumb__inner {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #898d9e; color: #898d9e;
line-height: 23px; line-height: 23px;
} }
.apass_breadcrumb>.el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner { .apass_breadcrumb>.el-breadcrumb .el-breadcrumb__item:last-child .el-breadcrumb__inner {
color: #242c43; color: #242c43;
font-weight: normal; font-weight: normal;
} }
.apaas_button .el-button { .apaas_button .el-button {
/* min-width: 90px; */ /* min-width: 90px; */
color: #404a62; color: #404a62;
} }
.apaas_button .el-button--mini, .apaas_button .el-button--mini,
.apaas_button .el-button--mini.is-round { .apaas_button .el-button--mini.is-round {
padding: 10px 15px; padding: 10px 15px;
} }
.apaas_button .el-button--primary { .apaas_button .el-button--primary {
color: #fff; color: #fff;
background-color: #2b4695; background-color: #2b4695;
border-color: #2b4695; border-color: #2b4695;
} }
.apaas_button .el-button--primary.is-plain { .apaas_button .el-button--primary.is-plain {
color: #2b4695; color: #2b4695;
background-color: #e1e4fb; background-color: #e1e4fb;
border-color: #e1e4fb; border-color: #e1e4fb;
} }
.apaas_button .el-button--danger { .apaas_button .el-button--danger {
color: #fff; color: #fff;
background-color: #ad3a4a; background-color: #ad3a4a;
border-color: #ad3a4a; border-color: #ad3a4a;
} }
.apaas_button .el-button.is-disabled, .apaas_button .el-button.is-disabled,
.apaas_button .el-button.is-disabled:focus, .apaas_button .el-button.is-disabled:focus,
.apaas_button .el-button.is-disabled:hover { .apaas_button .el-button.is-disabled:hover {
cursor: not-allowed; cursor: not-allowed;
} }
.apaas_button .el-button--warning.is-plain { .apaas_button .el-button--warning.is-plain {
background-color: #fcefd6; background-color: #fcefd6;
border-color: #fac266; border-color: #fac266;
color: #e56600; color: #e56600;
} }
.apaas_button .el-button--warning { .apaas_button .el-button--warning {
background-color: #e56600; background-color: #e56600;
border-color: #e56600; border-color: #e56600;
color: #fcefd6; color: #fcefd6;
} }
.apaas_button .el-button--success { .apaas_button .el-button--success {
background-color: #429e8a; background-color: #429e8a;
border-color: #429e8a; border-color: #429e8a;
color: #fff; color: #fff;
} }
.apaas_button .gray-button { .apaas_button .gray-button {
color: #fff; color: #fff;
background-color: #404a62; background-color: #404a62;
border-color: #404a62; border-color: #404a62;
} }
.apaas_button .el-button.is-disabled, .apaas_button .el-button.is-disabled,
.apaas_button .el-button.is-disabled:focus, .apaas_button .el-button.is-disabled:focus,
.apaas_button .el-button.is-disabled:hover { .apaas_button .el-button.is-disabled:hover {
color: #c0c4cc; color: #c0c4cc;
cursor: not-allowed; cursor: not-allowed;
background-image: none; background-image: none;
background-color: #fff; background-color: #fff;
border-color: #ebeef5; border-color: #ebeef5;
} }
.apass_table .el-table th>.cell { .apass_table .el-table th>.cell {
color: #1a2236; color: #1a2236;
} }
.apass_table .el-table td, .apass_table .el-table td,
.apass_table .el-table th.is-leaf { .apass_table .el-table th.is-leaf {
border: none !important; border: none !important;
line-height: 23px; line-height: 23px;
} }
.apass_table .el-table::before { .apass_table .el-table::before {
display: none; display: none;
} }
.apass_table .el-table { .apass_table .el-table {
width: 100%; width: 100%;
} }
.apass_table .el-table__row:nth-child(odd) td { .apass_table .el-table__row:nth-child(odd) td {
background-color: #f7f7f9; background-color: #f7f7f9;
} }
.apass_table .table_html a { .apass_table .table_html a {
font-size: 14px; font-size: 14px;
color: #2b4695; color: #2b4695;
cursor: pointer; cursor: pointer;
} }
.apass_table .row_action { .apass_table .row_action {
user-select: none; user-select: none;
} }
.apass_table .row_action .btn { .apass_table .row_action .btn {
font-size: 14px; font-size: 14px;
color: #3759be; color: #3759be;
cursor: pointer; cursor: pointer;
} }
.apass_table .row_action .btn.warn { .apass_table .row_action .btn.warn {
color: #830f53; color: #830f53;
} }
.apass_table .row_action .btn.disabled { .apass_table .row_action .btn.disabled {
color: #999; color: #999;
cursor: not-allowed; cursor: not-allowed;
} }
.apass_table .row_action .disabled.hide { .apass_table .row_action .disabled.hide {
opacity: 0; opacity: 0;
cursor: auto; cursor: auto;
} }
.apass_table .row_action .interval_line { .apass_table .row_action .interval_line {
font-size: 14px; font-size: 14px;
color: #c1c7d7; color: #c1c7d7;
margin: 0 20px; margin: 0 20px;
} }
.apass_table .border-active td { .apass_table .border-active td {
padding: 10px 0; padding: 10px 0;
background-color: #e6ebfe; background-color: #e6ebfe;
border-top: 2px solid #515fe7 !important; border-top: 2px solid #515fe7 !important;
border-bottom: 2px solid #515fe7 !important; border-bottom: 2px solid #515fe7 !important;
} }
.apass_table .border-active td:first-child { .apass_table .border-active td:first-child {
border-left: 2px solid #515fe7 !important; border-left: 2px solid #515fe7 !important;
} }
.apass_table .border-active td:last-child { .apass_table .border-active td:last-child {
border-right: 2px solid #515fe7 !important; border-right: 2px solid #515fe7 !important;
} }
.apass_checkbox .el-checkbox__input.is-checked .el-checkbox__inner, .apass_checkbox .el-checkbox__input.is-checked .el-checkbox__inner,
.apass_checkbox .el-checkbox__input.is-indeterminate .el-checkbox__inner { .apass_checkbox .el-checkbox__input.is-indeterminate .el-checkbox__inner {
background-color: #3759be; background-color: #3759be;
border-color: #515fe7; border-color: #515fe7;
} }
.apass_checkbox .el-checkbox__input.is-checked+.el-checkbox__label { .apass_checkbox .el-checkbox__input.is-checked+.el-checkbox__label {
color: #58617a; color: #58617a;
} }
.apaas_scroll::-webkit-scrollbar { .apaas_scroll::-webkit-scrollbar {
width: 16px; width: 16px;
height: 1px; height: 1px;
} }
.apaas_scroll::-webkit-scrollbar-thumb { .apaas_scroll::-webkit-scrollbar-thumb {
border-radius: 8px; border-radius: 8px;
/* background: #dde4ff; */ /* background: #dde4ff; */
box-shadow: 8px 0 0 #a5adb7 inset; box-shadow: 8px 0 0 #a5adb7 inset;
border: 4px solid rgba(0, 0, 0, 0); border: 4px solid rgba(0, 0, 0, 0);
} }
.apaas_scroll::-webkit-scrollbar-track { .apaas_scroll::-webkit-scrollbar-track {
border-radius: 8px; border-radius: 8px;
/* background: #f4f4f4; */ /* background: #f4f4f4; */
box-shadow: 8px 0 0 #f4f4f4 inset; box-shadow: 8px 0 0 #f4f4f4 inset;
border: 4px solid rgba(0, 0, 0, 0); border: 4px solid rgba(0, 0, 0, 0);
} }
.apaas_scroll_nor::-webkit-scrollbar { .apaas_scroll_nor::-webkit-scrollbar {
width: 0px; width: 0px;
height: 0px; height: 0px;
} }
.apaas_scroll_min::-webkit-scrollbar { .apaas_scroll_min::-webkit-scrollbar {
width: 6px; width: 6px;
height: 1px; height: 1px;
} }
.apaas_scroll_min::-webkit-scrollbar-thumb { .apaas_scroll_min::-webkit-scrollbar-thumb {
border-radius: 3px; border-radius: 3px;
background: #e6e9ef; background: #e6e9ef;
box-shadow: 8px 0 0 #e6e9ef inset; box-shadow: 8px 0 0 #e6e9ef inset;
border: 4px solid rgba(0, 0, 0, 0); border: 4px solid rgba(0, 0, 0, 0);
} }
.apaas_scroll_min::-webkit-scrollbar-track { .apaas_scroll_min::-webkit-scrollbar-track {
border-radius: 3px; border-radius: 3px;
background: #fff; background: #fff;
box-shadow: 8px 0 0 #fff inset; box-shadow: 8px 0 0 #fff inset;
border: 4px solid rgba(0, 0, 0, 0); border: 4px solid rgba(0, 0, 0, 0);
} }
/* 详情页公共样式 by xuyiming */ /* 详情页公共样式 by xuyiming */
.apaas_detail_container { .apaas_detail_container {
padding: 0 20px; padding: 0 20px;
} }
.apaas_detail_container .main_contaner { .apaas_detail_container .main_contaner {
min-height: calc(100vh - 32px - 83px); min-height: calc(100vh - 32px - 83px);
flex-grow: 1; flex-grow: 1;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: flex-start; justify-content: flex-start;
align-items: stretch; align-items: stretch;
padding: 30px; padding: 30px;
background-color: #fff; background-color: #fff;
border-radius: 10px; border-radius: 10px;
margin-bottom: 14px; margin-bottom: 14px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: space-between; justify-content: space-between;
} }
.apaas_detail_container .main_contaner.locked_height { .apaas_detail_container .main_contaner.locked_height {
height: calc(100vh - 58px - 83px); height: calc(100vh - 58px - 83px);
min-height: 400px; min-height: 400px;
} }
.apaas_detail_container .main_contaner.locked_height_900 { .apaas_detail_container .main_contaner.locked_height_900 {
height: calc(100vh - 58px - 83px); height: calc(100vh - 58px - 83px);
min-height: 900px; min-height: 900px;
} }
.apaas_detail_container .detail_action { .apaas_detail_container .detail_action {
text-align: right; text-align: right;
margin-top: 50px; margin-top: 50px;
} }
.apaas_detail_container .detail_action .el-button+.el-button { .apaas_detail_container .detail_action .el-button+.el-button {
margin-left: 30px; margin-left: 30px;
} }
.apaas_detail_form { .apaas_detail_form {
max-width: 970px; max-width: 970px;
} }
.apaas_detail_form .el-input__inner, .apaas_detail_form .el-input__inner,
.apaas_detail_form .el-textarea__inner { .apaas_detail_form .el-textarea__inner {
width: 100%; width: 100%;
background-color: #f7f8f9; background-color: #f7f8f9;
} }
.apaas_detail_form .el-select { .apaas_detail_form .el-select {
width: 100%; width: 100%;
} }
.apaas_detail_form.el-form--label-top .el-form-item__label { .apaas_detail_form.el-form--label-top .el-form-item__label {
padding: 0 0 15px; padding: 0 0 15px;
font-size: 14px; font-size: 14px;
line-height: 1; line-height: 1;
color: #58617a; color: #58617a;
} }
.apaas_detail_form .el-form-item { .apaas_detail_form .el-form-item {
margin-bottom: 30px; margin-bottom: 30px;
} }
.apaas_detail_form .textarea_count { .apaas_detail_form .textarea_count {
font-size: 14px; font-size: 14px;
line-height: 1; line-height: 1;
color: #a9aec0; color: #a9aec0;
text-align: right; text-align: right;
margin-top: 10px; margin-top: 10px;
} }
.apaas_steps { .apaas_steps {
height: 100%; height: 100%;
} }
.apaas_steps .apaas_step { .apaas_steps .apaas_step {
height: 100%; height: 100%;
position: relative; position: relative;
} }
.apaas_steps .apaas_step .apaas_step_content { .apaas_steps .apaas_step .apaas_step_content {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
height: calc(100% - 64px); height: calc(100% - 64px);
border-bottom: 1px solid #f4f7fc; border-bottom: 1px solid #f4f7fc;
/* overflow: hidden; */ /* overflow: hidden; */
} }
.apaas_steps .apaas_step .apaas_step_action { .apaas_steps .apaas_step .apaas_step_action {
position: absolute; position: absolute;
bottom: 0; bottom: 0;
left: 0; left: 0;
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: flex-start; align-items: flex-start;
} }
.apaas_steps .apaas_step .apaas_step_action .el-button { .apaas_steps .apaas_step .apaas_step_action .el-button {
height: 44px; height: 44px;
width: 124px; width: 124px;
} }
.apaas_steps .apaas_step .apaas_step_action .el-button+.el-button { .apaas_steps .apaas_step .apaas_step_action .el-button+.el-button {
margin-left: 20px; margin-left: 20px;
} }
.top_fliter { .top_fliter {
display: flex; display: flex;
} }
.top_fliter .filter_list { .top_fliter .filter_list {
flex-grow: 1; flex-grow: 1;
min-width: 550px; min-width: 550px;
font-size: 0; font-size: 0;
padding-left: 16px; padding-left: 16px;
} }
.filter_list>.filter_item { .filter_list>.filter_item {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
margin-top: 16px; margin-top: 16px;
} }
.filter_list>.filter_item { .filter_list>.filter_item {
margin-right:34px; margin-right: 34px;
} }
.filter_list>.filter_item>* { .filter_list>.filter_item>* {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
} }
.filter_list>.filter_item>.filter_title { .filter_list>.filter_item>.filter_title {
min-width: 56px; min-width: 56px;
text-align: right; text-align: right;
font-size: 14px; font-size: 14px;
font-weight: 700; font-weight: 700;
color: #242c43; color: #242c43;
margin-right: 10px; margin-right: 10px;
white-space: nowrap; white-space: nowrap;
} }
.filter_list>.filter_item>.filter_title+* { .filter_list>.filter_item>.filter_title+* {
width: 300px; width: 300px;
} }
.filter_list>.filter_item>.date-time-range { .filter_list>.filter_item>.date-time-range {
width: 460px !important; width: 460px !important;
} }
.filter_list>.filter_item .el-date-editor .el-range__close-icon { .filter_list>.filter_item .el-date-editor .el-range__close-icon {
position: absolute; position: absolute;
right: 5px; right: 5px;
top: 1px; top: 1px;
} }
.top_fliter .filter_action { .top_fliter .filter_action {
flex-shrink: 0; flex-shrink: 0;
margin-left: 25px; margin-left: 25px;
text-align: right; text-align: right;
} }
.filter_action>.el-button { .filter_action>.el-button {
/* min-width: 90px; */ /* min-width: 90px; */
height: 36px; height: 36px;
margin-top: 16px; margin-top: 16px;
padding: 12px 17px; padding: 12px 17px;
} }
.filter_action>.el-button+.el-button { .filter_action>.el-button+.el-button {
margin-left: 10px; margin-left: 10px;
} }
.meassage_detail_dialog { .meassage_detail_dialog {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
text-align: left; text-align: left;
} }
.meassage_detail_dialog .detail_item { .meassage_detail_dialog .detail_item {
flex: 1 1 auto; flex: 1 1 auto;
width: 50%; width: 50%;
margin-top: 20px; margin-top: 20px;
} }
.meassage_detail_dialog .detail_item.full_line { .meassage_detail_dialog .detail_item.full_line {
width: 100%; width: 100%;
} }
.meassage_detail_dialog .detail_item p { .meassage_detail_dialog .detail_item p {
padding: 0 15px; padding: 0 15px;
font-size: 14px; font-size: 14px;
line-height: 22px; line-height: 22px;
color: #8890a7; color: #8890a7;
} }
.meassage_detail_dialog .detail_item .item_content { .meassage_detail_dialog .detail_item .item_content {
color: #000; color: #000;
margin-top: 10px; margin-top: 10px;
} }
.meassage_detail_dialog .detail_item .full_content { .meassage_detail_dialog .detail_item .full_content {
padding: 10px 0; padding: 10px 0;
border-radius: 8px; border-radius: 8px;
background-color: #f8f9fd; background-color: #f8f9fd;
margin-top: 5px; margin-top: 5px;
} }
.meassage_detail_dialog .detail_item .full_content>.apaas_scroll { .meassage_detail_dialog .detail_item .full_content>.apaas_scroll {
height: 176px; height: 176px;
overflow: auto; overflow: auto;
} }
.meassage_detail_dialog .detail_item .full_content .item_content { .meassage_detail_dialog .detail_item .full_content .item_content {
margin: 0; margin: 0;
} }
.no_wrap .apass_table td .cell { .no_wrap .apass_table td .cell {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
word-break: break-all; word-break: break-all;
white-space: nowrap; white-space: nowrap;
} }
/* 详情页公共样式 by xuyiming ~~~end */ /* 详情页公共样式 by xuyiming ~~~end */
/* /*
form_content form_content
*/ */
.from_content1 { .from_content1 {
width: calc(100% - 40px); width: calc(100% - 40px);
background-color: rgba(255, 255, 255, 1); background-color: rgba(255, 255, 255, 1);
overflow: hidden; overflow: hidden;
margin: 0 20px 20px; margin: 0 20px 20px;
position: relative; position: relative;
box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05); box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05);
border-radius: 12px; border-radius: 12px;
padding-top: 20px; padding-top: 20px;
} }
.from_content { .from_content {
width: calc(100% - 40px); width: calc(100% - 40px);
background-color: rgba(255, 255, 255, 1); background-color: rgba(255, 255, 255, 1);
/* flex: 1 0 auto; */ /* flex: 1 0 auto; */
position: relative; position: relative;
box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05); box-shadow: 0px 3px 6px 0px rgba(15, 19, 65, 0.05);
border-radius: 12px; border-radius: 12px;
margin: 0 20px; margin: 0 20px;
padding: 20px 20px 30px; padding: 20px 20px 30px;
} }
.from_content_table { .from_content_table {
height: calc(100% - 90px); height: calc(100% - 90px);
} }
.from_content_table_app { .from_content_table_app {
height: calc(100% - 170px); height: calc(100% - 170px);
} }
.from_content_table_auth { .from_content_table_auth {
height: calc(100% - 100px); height: calc(100% - 100px);
} }
.from_content_btn { .from_content_btn {
height: 40px; height: 40px;
margin-bottom: 20px; margin-bottom: 20px;
} }
/* 时间控件样式 */ /* 时间控件样式 */
.el-picker-panel { .el-picker-panel {
background-color: #fff !important; background-color: #fff !important;
border-radius: 8px !important; border-radius: 8px !important;
font-size: 12px !important; font-size: 12px !important;
color: #202531 !important; color: #202531 !important;
box-shadow: 0 !important; box-shadow: 0 !important;
border: none !important; border: none !important;
} }
.el-date-editor.el-input__wrapper { .el-date-editor.el-input__wrapper {
background-color: #fff; background-color: #fff;
}
.el-picker-panel__footer {
border-top: 1px solid #3f4864 !important;
background-color: #242c43 !important;
} }
.el-picker-panel__icon-btn { .el-picker-panel__icon-btn {
color: #202531; color: #202531;
} }
.el-date-table th { .el-date-table th {
border-bottom: 1px solid #e6e9ef !important; border-bottom: 1px solid #e6e9ef !important;
color: #202531 !important; color: #202531 !important;
} }
.el-date-table td.current:not(.disabled) span { .el-date-table td.current:not(.disabled) span {
color: #e3e5ef !important; color: #e3e5ef !important;
background-color: #315efc !important; background-color: #315efc !important;
} }
.el-date-table td.next-month, .el-date-table td.next-month,
.el-date-table td.prev-month { .el-date-table td.prev-month {
color: #a9b1c7 !important; color: #a9b1c7 !important;
} }
.el-date-picker__time-header { .el-date-picker__time-header {
border-bottom: 1px solid #3f4864 !important; border-bottom: 1px solid #3f4864 !important;
} }
.el-picker-panel__body .el-input__inner { .el-picker-panel__body .el-input__inner {
height: 24px !important; height: 24px !important;
line-height: 24px !important; line-height: 24px !important;
background-color: #1a2236 !important; border-radius: 12px !important;
border-radius: 12px !important; font-size: 12px;
border: solid 1px #3f4864 !important;
color: #e3e5ef !important;
font-size: 12px;
} }
.el-picker-panel__footer .el-button { .el-picker-panel__footer .el-button {
background-color: #264dd9; background-color: #264dd9;
border-radius: 12px; padding: 5px 12px;
padding: 5px 12px; color: #f4f7fc;
color: #f4f7fc; font-size: 12px;
font-size: 12px; border: none !important;
border: none !important;
} }
.el-picker-panel__footer .el-button--text { .el-picker-panel__footer .el-button--text {
background-color: #dde4ff; background-color: #dde4ff;
border-radius: 12px; border-radius: 12px;
padding: 5px 12px; padding: 5px 12px;
color: #264dd9; color: #264dd9;
font-size: 12px; font-size: 12px;
} }
.el-button.is-plain:focus, .el-button.is-plain:focus,
.el-button.is-plain:hover { .el-button.is-plain:hover {
background-color: #264dd9; background-color: #264dd9;
color: #f4f7fc; color: #f4f7fc;
} }
.el-button--text:focus, .el-button--text:focus,
.el-button--text:hover { .el-button--text:hover {
color: #264dd9; color: #264dd9;
} }
.el-time-panel { .el-time-panel {
border-radius: 8px !important; border-radius: 8px !important;
border: 1px solid #3f4864 !important; border: 1px solid #3f4864 !important;
background-color: #242c43 !important; background-color: #242c43 !important;
} }
.el-time-panel__footer { .el-time-panel__footer {
border: 1px solid #3f4864 !important; border: 1px solid #3f4864 !important;
} }
.el-time-panel__btn.confirm { .el-time-panel__btn.confirm {
background-color: #264dd9; background-color: #264dd9;
border-radius: 12px !important; border-radius: 12px !important;
padding: 0px 12px; padding: 0px 12px;
color: #f4f7fc !important; color: #f4f7fc !important;
font-size: 12px !important; font-size: 12px !important;
} }
.el-time-panel__btn { .el-time-panel__btn {
line-height: 22px !important; line-height: 22px !important;
height: 22px !important; height: 22px !important;
} }
.el-time-spinner__item:hover:not(.disabled):not(.active) { .el-time-spinner__item:hover:not(.disabled):not(.active) {
background-color: #264dd9 !important; background-color: #264dd9 !important;
border-radius: 12px !important; border-radius: 12px !important;
color: #f4f7fc; color: #f4f7fc;
} }
.el-time-spinner__item { .el-time-spinner__item {
color: #58617a !important; color: #58617a !important;
} }
.el-date-table td.in-range div, .el-date-table td.in-range div,
.el-date-table td.in-range div:hover, .el-date-table td.in-range div:hover,
.el-date-table.is-week-mode .el-date-table__row.current div, .el-date-table.is-week-mode .el-date-table__row.current div,
.el-date-table.is-week-mode .el-date-table__row:hover div { .el-date-table.is-week-mode .el-date-table__row:hover div {
background-color: #eff2fa!important; background-color: #eff2fa!important;
} }
.el-date-table td.end-date .el-date-table-cell__text,
.el-date-table td.end-date .el-date-table-cell__text,
.el-date-table td.start-date .el-date-table-cell__text { .el-date-table td.start-date .el-date-table-cell__text {
background-color: #3759be!important; background-color: #3759be!important;
} }
.el-date-table td.end-date span, .el-date-table td.end-date span,
.el-date-table td.start-date span { .el-date-table td.start-date span {
background-color: #264dd9; background-color: #264dd9;
} }
.el-date-table td.today span { .el-date-table td.today span {
color: #0c3ff7; color: #0c3ff7;
} }
.el-date-editor .el-range-separator { .el-date-editor .el-range-separator {
width: 15%; width: 15%;
line-height: 28px; line-height: 28px;
color: #202531; color: #202531;
} }
/* table select window */ /* table select window */
.el-checkbox__input.is-checked .el-checkbox__inner, .el-checkbox__input.is-checked .el-checkbox__inner,
.el-checkbox__input.is-indeterminate .el-checkbox__inner { .el-checkbox__input.is-indeterminate .el-checkbox__inner {
background-color: #3759be; background-color: #3759be;
border-color: #2b4695; border-color: #2b4695;
} }
.el-checkbox__input.is-focus .el-checkbox__inner { .el-checkbox__input.is-focus .el-checkbox__inner {
border-color: #2b4695; border-color: #2b4695;
} }
.el-checkbox__input:hover .el-checkbox__inner { .el-checkbox__input:hover .el-checkbox__inner {
border-color: #2b4695; border-color: #2b4695;
} }
.el-date-editor .el-range-input { .el-date-editor .el-range-input {
width: 36%; width: 36%;
} }
.el-input__inner:focus { .el-input__inner:focus {
border-color: #515fe7; border-color: #515fe7;
} }
.el-textarea__inner:focus { .el-textarea__inner:focus {
border-color: #515fe7; border-color: #515fe7;
} }
.el-select .el-input .el-select__caret { .el-select .el-input .el-select__caret {
color: #515fe7; color: #515fe7;
} }
.el-input-number__decrease, .el-input-number__decrease,
.el-input-number__increase { .el-input-number__increase {
color: #515fe7; color: #515fe7;
} }
.el-input__inner::-webkit-input-placeholder, .el-input__inner::-webkit-input-placeholder,
.el-textarea__inner::-webkit-input-placeholder { .el-textarea__inner::-webkit-input-placeholder {
color: #a9aec0; color: #a9aec0;
} }
.el-input__inner:-moz-placeholder, .el-input__inner:-moz-placeholder,
.el-textarea__inner:-moz-placeholder { .el-textarea__inner:-moz-placeholder {
/* Firefox 18- */ /* Firefox 18- */
color: #a9aec0; color: #a9aec0;
} }
.el-input__inner::-moz-placeholder, .el-input__inner::-moz-placeholder,
.el-textarea__inner::-moz-placeholder { .el-textarea__inner::-moz-placeholder {
/* Firefox 19+ */ /* Firefox 19+ */
color: #a9aec0; color: #a9aec0;
} }
.el-input__inner:-ms-input-placeholder, .el-input__inner:-ms-input-placeholder,
.el-textarea__inner:-ms-input-placeholder { .el-textarea__inner:-ms-input-placeholder {
color: #a9aec0; color: #a9aec0;
} }
[class*=" el-icon-"], [class*=" el-icon-"],
[class^="el-icon-"] { [class^="el-icon-"] {
font-weight: 700; font-weight: 700;
} }
.el-rate__item .el-rate__icon { .el-rate__item .el-rate__icon {
font-size: 18px; font-size: 18px;
margin-right: 0; margin-right: 0;
} }
.detai_form .el-input__inner, .detai_form .el-input__inner,
.detai_form .el-textarea__inner { .detai_form .el-textarea__inner {
background-color: #f7f7f9; background-color: #f7f7f9;
border-radius: 4px; border-radius: 4px;
border: solid 1px #dadee7; border: solid 1px #dadee7;
} }
.detai_form .el-input.is-disabled .el-input__inner { .detai_form .el-input.is-disabled .el-input__inner {
background-color: #e6e9ef; background-color: #e6e9ef;
} }
.tip-box-popper { .tip-box-popper {
background: #242c43 !important; background: #242c43 !important;
} }
.p-1 { .p-1 {
padding: 5px; padding: 5px;
} }
.source_table .el-table thead tr { .source_table .el-table thead tr {
background-color: #dfe5f6 !important; background-color: #dfe5f6 !important;
} }
.source_table .el-table th { .source_table .el-table th {
background-color: transparent; background-color: transparent;
} }
.source_table .el-table td { .source_table .el-table td {
border-bottom: 1px solid #dadee7 !important; border-bottom: 1px solid #dadee7 !important;
} }
.source_table .el-table__header { .source_table .el-table__header {
border: 1px solid #b0bee8; border: 1px solid #b0bee8;
} }
.source_table .el-table__body-wrapper { .source_table .el-table__body-wrapper {
border-left: 1px solid #dadee7 !important; border-left: 1px solid #dadee7 !important;
border-right: 1px solid #dadee7 !important; border-right: 1px solid #dadee7 !important;
} }
.source_table .el-table__empty-block { .source_table .el-table__empty-block {
border-bottom: 1px solid #dadee7 !important; border-bottom: 1px solid #dadee7 !important;
} }
.source_footer { .source_footer {
margin-top: 15px; margin-top: 15px;
text-align: center; text-align: center;
} }
.source_title { .source_title {
font-size: 14px; font-size: 14px;
padding: 10px 0; padding: 10px 0;
text-align: left; text-align: left;
} }
.headerBox { .headerBox {
font-size: 18px; font-size: 18px;
line-height: 18px; line-height: 18px;
font-weight: 700; font-weight: 700;
font-stretch: normal; font-stretch: normal;
letter-spacing: 0px; letter-spacing: 0px;
color: #1a1a1a; color: #1a1a1a;
} }
.headerBox span:first-child { .headerBox span:first-child {
display: inline-block; display: inline-block;
width: 4px; width: 4px;
height: 16px; height: 16px;
background-color: #3759be; background-color: #3759be;
border-radius: 2px; border-radius: 2px;
margin-right: 10px; margin-right: 10px;
vertical-align: bottom; vertical-align: bottom;
} }
.row_text { .row_text {
-webkit-line-clamp: 2; -webkit-line-clamp: 2;
display: -webkit-box; display: -webkit-box;
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
word-break: break-all; word-break: break-all;
} }
.close_reason { .close_reason {
padding: 2px 5px; padding: 2px 5px;
background-color: #dedede; background-color: #dedede;
display: inline-block; display: inline-block;
margin-top: 10px; margin-top: 10px;
} }
.pointer { .pointer {
cursor: pointer; cursor: pointer;
} }
.pr-1 { .pr-1 {
padding-right: 10px; padding-right: 10px;
} }
/* test */
/* test */
\ No newline at end of file
.page_container { .page_container {
width: 100%; width: 100%;
padding: 0 24px; padding: 0 24px;
/* min-height: 100%; */ /* min-height: 100%; */
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: flex-start; justify-content: flex-start;
align-items: stretch; align-items: stretch;
} }
.page_content { .page_content {
background-color: #fff; background-color: #fff;
height: calc(100% - 46px - 20px); height: calc(100% - 46px - 20px);
box-shadow: 0px 1px 4px 0px box-shadow: 0px 1px 4px 0px rgba(0, 7, 101, 0.15);
rgba(0, 7, 101, 0.15); border-radius: 6px;
border-radius: 6px;
} }
\ No newline at end of file
<template>
<div class="gap-title">
<span>{{title}}</span>
</div>
</template>
<script>
export default {
props: {
title:{
type:String,
default:""
}
},
components: {
},
data() {
return {
};
},
watch: {
},
computed: {
},
created() {
},
mounted() {
},
methods: {
},
};
</script>
<style scoped>
.gap-title{
font-size: 18px;
font-weight: 600;
color: #202531;
display: flex;
align-items: center;
}
.gap-title::before{
content:'';
display: inline-block;
margin-right: 8px;
width: 4px;
height: 16px;
background-color: #2b4695;
border-radius: 2px;
}
</style>
// 通知方式
export const METHODS = {
1: '钉钉',
2: '短信'
}
// 可以新增的数量
export const ADD_NUM = 5
\ No newline at end of file
<template>
<el-form
:model="state.form"
ref="form"
:rules="state.rules"
label-width="80px"
:disabled="disabled"
>
<el-form-item label="通知方式" prop="method">
<el-checkbox-group v-model="state.form.method">
<el-checkbox v-for="(value, key) in METHODS" :key="key" :label="key">
{{ value }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<el-form-item label="" prop="lists" class="user-table bg-scroll">
<el-table :data="state.form.lists" stripe border>
<el-table-column type="index" label="序号" width="60px">
</el-table-column>
<el-table-column
v-for="header in headers"
:prop="header.prop"
:key="header.prop"
:label="header.label"
:width="header.width"
>
<template #default="{ $index }">
<div v-if="header.prop == 'user_id'">
<el-select
v-model="state.form.lists[$index].user_id"
placeholder="请选择"
filterable
@change="($event) => chooseUser($event, $index)"
>
<el-option
v-for="item in userOptions($index)"
:key="item.user_id"
:label="item.user_id"
:value="item.user_id"
>
</el-option>
</el-select>
</div>
<div v-else>
<el-input
v-model="state.form.lists[$index][header.prop]"
placeholder="请输入"
></el-input>
</div>
</template>
</el-table-column>
<el-table-column prop="" label="操作" width="125px">
<template #default="{ $index }">
<div class="table-operation">
<el-button
link
type="primary"
@click="Add($index)"
:disabled="
userLists.length <= state.form.lists.length ||
addTrue >= ADD_NUM
"
>
新增
</el-button>
<span class="line"></span>
<el-button
link
type="primary"
@click="Remove($index)"
:disabled="state.form.lists.length == 1"
>
删除
</el-button>
</div>
</template>
</el-table-column>
</el-table>
</el-form-item>
</el-form>
</template>
<script setup>
import { reactive, watch, ref, computed } from "vue";
import { METHODS, ADD_NUM } from "./env";
const props = defineProps({
disabled: {
type: Boolean,
default: false,
},
});
const form = ref(null);
// 表单数据
const state = reactive({
form: {
method: [],
lists: [],
},
rules: {
method: [
{
type: "array",
required: true,
message: "请至少选择一个通知方式",
trigger: "change",
},
],
},
});
// 已选中的用户id列表
const selectedUser = computed(() => {
return state.form.lists.map((e) => e.user_id) || [];
});
// 表头
const headers = [
{
prop: "user_id",
label: "账号",
},
{
prop: "user_name",
label: "姓名",
},
{
prop: "phone",
label: "联系方式",
},
];
// 立即下发
const Submit = (cb = null) => {
form.value.validate((valid) => {
if (valid) {
console.log(state.form);
cb && cb();
} else {
return false;
}
});
};
// 已经新增的数量记录
const addTrue = ref(0);
// 获取远程用户列表
const userLists = ref([]);
const getUserLists = () => {
userLists.value = [
{
user_id: 1,
user_name: 11,
phone: 13000000001,
},
{
user_id: 2,
user_name: 22,
phone: 13000000002,
},
{
user_id: 3,
user_name: 33,
phone: 13000000003,
},
{
user_id: 4,
user_name: 44,
phone: 13000000004,
},
{
user_id: 5,
user_name: 55,
phone: 13000000005,
},
{
user_id: 6,
user_name: 66,
phone: 13000000006,
},
{
user_id: 7,
user_name: 77,
phone: 13000000007,
},
];
};
// 格式化处理用户下拉列表,去除已经选择的用户,并将当前选中的也显示到列表中
const userOptions = computed(() => {
return (index) => {
let user_id = state.form.lists[index].user_id;
let s_u_ids = [...selectedUser.value];
if (user_id) {
let i = s_u_ids.findIndex((e) => e == user_id);
s_u_ids.splice(i, 1);
}
return userLists.value.filter((e) => !s_u_ids.includes(e.user_id));
};
});
// 表格新增
const Add = (index) => {
// 新增上限
if (addTrue.value >= ADD_NUM) return;
state.form.lists.splice(index + 1, 0, {
user_id: "",
user_name: "",
phone: "",
});
addTrue.value += 1;
};
// 表格删除
const Remove = (index) => {
state.form.lists.splice(index, 1);
addTrue.value -= 1;
};
// 初始化加载基础数据和获取用户下拉列表
const init = (history) => {
getUserLists();
state.form.method = history?.method || [];
state.form.lists = history?.lists || [];
// 如果没有默认下发用户则创建一条空数据
if (state.form.lists.length == 0) {
Add(0);
}
setTimeout(() => {
form.value.clearValidate();
});
};
// 选择用户操作
const chooseUser = ($event, index) => {
let user = userLists.value.find(
(e) => e.user_id == state.form.lists[index].user_id
);
state.form.lists[index].user_name = user.user_name;
state.form.lists[index].phone = user.phone;
};
defineExpose({
Submit,
form,
init,
});
watch(
() => state.form.lists,
(n) => {
console.log(n);
},
{ deep: true }
);
</script>
<style lang="scss" scoped>
.table-operation {
display: flex;
align-items: center;
.line {
width: 1px;
height: 14px;
background-color: #c1c7d7;
margin: 0 16px;
display: inline-block;
}
}
.user-table {
max-height: 345px;
:deep(.el-form-item__content) {
margin-left: 0 !important;
.el-table thead th {
background-color: #f5f6f9;
}
}
}
</style>
<template>
<el-dialog
v-model="show"
width="804px"
top="10vh"
:close-on-click-modal="false"
:before-close="beforeClose"
>
<template #header>
<GapTitle title="手动下发"></GapTitle>
</template>
<div class="manual-distribution">
<Form ref="form" />
</div>
<template #footer>
<el-button size="default" @click="Close">关闭</el-button>
<el-button type="primary" size="default" @click="Submit">
立即下发
</el-button>
</template>
</el-dialog>
</template>
<script setup>
import GapTitle from "@/components/gap-title.vue";
import Form from "./form.vue";
import { computed, nextTick, ref, watch } from "vue";
const props = defineProps({
// 显示隐藏开关
visible: {
type: Boolean,
default: false,
},
// 关闭前调用
beforeClose: {
type: Function,
default: null,
},
// 默认数据展示
/*
{
methd:['1','2'],
lists:[
{
user_id:'1111',
user_name:'11111111',
phone:'13011111111'
}
]
}
*/
history: {
type: Object,
default: null,
},
});
const emits = defineEmits(["update:visible"]);
const form = ref(null);
// 关闭调用
const Close = async () => {
form.value.form.resetFields();
emits("update:visible", false);
};
const show = computed({
get() {
return props.visible;
},
set() {
Close();
},
});
// 监听是否开启弹窗,并将已经填写的数据配置
watch(
() => show.value,
async (n) => {
if (!n) return;
await nextTick();
form.value.init(props.history);
},
{
immediate: true,
}
);
// 关闭前调用
const beforeClose = () => {
props.beforeClose && props.beforeClose();
Close();
};
// 立即下发
const Submit = () => {
form.value.Submit(() => {
Close();
});
};
</script>
<style lang="scss" scoped>
.manual-distribution {
text-align: left;
padding: 16px 16px 0;
}
</style>
<template>
<div
class="bg-filters"
:style="{
'border-bottom': showFlag ? 'none' : '',
'padding-bottom': showFlag ? '8px' : '16px',
}"
>
<div class="top-filter">
<div class="left-slot">
<slot name="left_action"></slot>
</div>
<div class="right-filter">
<el-input
v-model.trim="modelValue"
:placeholder="placeholder"
clearable
>
<template #append>
<div
class="append-btn"
style="margin-top: 1px"
@click="keywordAction"
>
<el-icon><Search /></el-icon>
</div>
</template>
</el-input>
<div
v-if="options.length > 0"
class="more-btn"
:class="showFlag ? 'more-btn1' : ''"
>
<el-button type="default" class="more-filter" @click="moreFilter">
高级搜索
<el-icon
v-if="!showFlag"
style="
font-weight: 900 !important;
color: #404a62;
margin-left: 8px;
"
><ArrowUp
/></el-icon>
<el-icon
v-else
style="
font-weight: 900 !important;
color: #404a62;
margin-left: 8px;
"
><ArrowDown
/></el-icon>
</el-button>
</div>
</div>
</div>
<div v-if="showFlag" class="filter-group">
<ul class="bg-flex-fs-c filters-list">
<li
v-for="(item, index) in options"
:key="`opt_${index}`"
class="bg-flex-fs-c"
>
<span v-if="item.label" class="filter-name">{{ item.label }}</span>
<!-- 下拉选 select -->
<el-select
v-if="item.type === 'select'"
v-model="filters[item.prop]"
:placeholder="item.placeholder || '请选择'"
:clearable="item.clearable !== false"
>
<el-option
v-for="(v, i) in item.options"
:key="`opt_${index}_v_${i}`"
:label="v.label"
:value="v.value"
/>
</el-select>
<!-- 年月日 daterange-->
<el-date-picker
v-else-if="item.type === 'daterange'"
v-model="filters[item.prop]"
type="daterange"
start-placeholder="开始日期"
range-separator="至"
end-placeholder="结束日期"
value-format="yyyy-MM-DD"
:picker-options="{ disabledDate: item.disabledDate }"
:clearable="item.clearable !== false"
/>
<!-- 年月日时分秒 datetimerange :shortcuts="shortcuts"(显示快捷键)-->
<el-date-picker
v-else-if="item.type === 'datetimerange'"
v-model="filters[item.prop]"
type="datetimerange"
start-placeholder="开始时间"
range-separator="至"
end-placeholder="结束时间"
value-format="YYYY-MM-DD HH:mm:ss"
:picker-options="{ disabledDate: item.disabledDate }"
:clearable="item.clearable !== false"
:shortcuts="item.shortcuts"
/>
<!-- 单选 -->
<el-cascader
v-else-if="item.type === 'cascader'"
v-model="filters[item.prop]"
:options="item.options"
:props="item.props"
:placeholder="item.placeholder || '请选择'"
collapse-tags
collapse-tags-tooltip
/>
<!-- 多选 -->
<el-cascader
v-else-if="item.type === 'collapse-cascader'"
v-model="filters[item.prop]"
:options="item.options"
:props="{
multiple: true,
}"
:placeholder="item.placeholder || '请选择'"
/>
<el-input
v-else
v-model="filters[item.prop]"
:placeholder="item.placeholder || '请输入'"
:clearable="item.clearable !== false"
prefix-icon="Search"
>
</el-input>
</li>
</ul>
<div class="filters-action">
<el-button type="primary" @click="searchAction"> 查询 </el-button>
<el-button type="default" @click="resetAction"> 重置 </el-button>
</div>
</div>
</div>
</template>
<script setup>
import {
defineProps,
defineEmits,
onBeforeMount,
reactive,
watch,
ref,
computed,
toRefs,
onMounted,
nextTick,
} from "vue";
let props = defineProps({
options: {
type: Array,
default: () => [],
},
immediately: {
type: Boolean,
default: true,
},
placeholder: {
type: String,
default: "请输入",
},
});
let emits = defineEmits([
"filters",
"filtersChange",
"keyword",
"keywordChange",
]);
let filters = reactive({});
let state = reactive({
showFlag: false,
modelValue: "",
});
onBeforeMount(() => {
if (props.immediately) {
initFilters();
}
});
onMounted(() => {
if (props.immediately) {
searchAction();
}
});
watch(
() => state.modelValue,
(newValue) => {
emits("keywordChange", newValue);
}
);
watch(filters, (newVal) => {
emits("filtersChange", newVal);
});
const initFilters = () => {
props.options.forEach(({ type, prop, defaultValue }) => {
let value = defaultValue || "";
if ((type === "daterange" || type === "datetimerange") && value === "") {
value = ["", ""];
}
if (type === "cascader" && value === "") {
value = [];
}
filters[prop] = value;
});
};
const keywordAction = () => {
emits("keyword", state.modelValue, filters);
};
const resetAction = () => {
initFilters();
nextTick(() => {
searchAction();
});
};
const searchAction = () => {
emits("filters", filters, state.modelValue);
};
const moreFilter = () => {
state.showFlag = !state.showFlag;
};
const reset = () => {
state.modelValue = "";
resetAction();
};
defineExpose({ reset });
const { modelValue, showFlag } = toRefs(state);
</script>
<style lang="scss" scoped>
// 列表筛选
.bg-filters {
width: 100%;
padding: 16px;
border-bottom: 1px solid #e6e9ef;
.top-filter {
width: 100%;
display: flex;
.left-slot {
flex: 1;
}
.right-filter {
width: 398px;
justify-content: end;
display: flex;
:deep(.el-input-group__append) {
padding: 0;
border-radius: 0;
}
.el-input {
width: 280px;
height: 36px;
.el-input-group__append {
border-radius: 0 4px 4px 0;
background-color: #f7f7f9;
padding: 0;
.append-btn {
padding: 0 16px;
cursor: pointer;
}
}
}
.more-btn {
margin-left: 16px;
width: 102px;
box-sizing: border-box;
border: 1px solid #e6e9ef;
border-radius: 4px;
height: 36px;
.more-filter {
width: 100px;
border: none;
height: 34px;
padding: 10px 15px;
line-height: 1;
&:active,
&:hover {
background-color: #fff;
color: #3759be;
}
&:focus {
background-color: #fff;
}
}
}
.more-btn1 {
height: 53px;
border-bottom: 1px solid #fff;
border-radius: 4px 4px 0 0;
margin-bottom: -1px;
}
}
}
.filter-group {
display: flex;
align-items: flex-end;
border-radius: 4px 0 4px 4px;
width: 100%;
border: 1px solid #e6e9ef;
padding: 24px 16px 8px;
}
.filters-list {
display: flex;
justify-content: flex-start;
align-items: center;
flex-grow: 1;
flex-wrap: wrap;
li {
margin: 0 48px 16px 0;
display: flex;
justify-content: flex-start;
align-items: center;
.filter-name {
font-size: 14px;
// font-weight: bolder;
line-height: 20px;
color: #202531;
white-space: nowrap;
margin-right: 8px;
width: 90px;
text-align: right;
& + * {
margin-left: 0;
}
}
.el-input {
width: 240px;
height: 36px;
}
.el-select {
width: 240px;
height: 36px;
}
.el-range-editor {
width: 320px;
height: 36px;
&.el-date-editor--datetimerange {
width: 360px;
height: 36px;
}
}
}
}
.filters-action {
flex-shrink: 0;
padding-bottom: 16px;
}
}
</style>
<template>
<el-pagination
layout="total,sizes ,prev, pager, next,jumper"
:page-size="pagination.rowsPerPage"
:current-page="pagination.page"
:total="pagination.total"
:page-sizes="[15, 30, 50]"
@current-change="handleCurrentChange"
@size-change="handleSizeChange"
></el-pagination>
</template>
<script setup>
import { defineProps, defineEmits } from 'vue'
let props = defineProps({
pagination: {
type: Object,
default() {
return {
rowsPerPage: 15,
page: 1,
total: 0,
}
},
}, // 表格数据
})
const emits = defineEmits(['current', 'sizechange'])
const handleCurrentChange = (val) => {
emits('current', val)
}
const handleSizeChange = (val) => {
emits('sizechange', val)
}
</script>
<template>
<div class="href" @click="goTo">{{ label }}</div>
</template>
<script setup>
import { computed } from "vue";
import { useRouter } from "vue-router";
const router = useRouter();
const props = defineProps({
row: {
type: Object,
default: () => ({}),
},
header: {
type: Object,
default: () => ({}),
},
});
const label = computed(() => props.row[props.header.prop]);
const href = computed(() => {
const { baseurl: path, params } = props.header.href;
const query = {};
Object.keys(params).forEach((key) => {
query[key] = props.row[params[key]];
});
return {
path,
query,
};
});
const goTo = () => {
router.push(href.value);
};
</script>
<style lang="scss" scoped>
.href {
font-size: 14px;
color: #3759be;
cursor: pointer;
}
</style>
<template>
<div class="bg-table-list" v-bind="$attrs">
<div v-if="$slots.tabs" class="bg-list-tabs">
<slot name="tabs" />
</div>
<!-- 筛选条件 -->
<div v-if="$slots.filter" class="bg-list-filters">
<slot name="filter" />
</div>
<!-- 列表 -->
<main v-if="$slots.main" class="bg-container-main">
<div>
<slot name="main" />
</div>
</main>
<!-- 分页 -->
<footer v-if="$slots.footer" class="bg-container-footer">
<slot name="footer" />
</footer>
<!-- </div> -->
</div>
<slot />
</template>
<script>
export default {
name: "BgTableList",
};
</script>
<style lang="scss" scoped>
.bg-table-list {
height: 100%;
width: 100%;
display: flex;
flex-direction: column;
align-content: stretch;
}
.bg-container-main {
margin: 0 16px;
flex: 1;
position: relative;
& > div {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
:deep(.el-table__body-wrapper) {
height: calc(100% - 46px);
}
}
}
.bg-container-footer {
padding: 16px;
:deep(.el-pagination) {
justify-content: flex-end;
}
}
</style>
<template>
<el-table
ref="bgTable"
:data="tablerows"
style="width: 100%"
class="bg-table"
:height="height"
stripe
tooltip-effect="light"
:border="border"
@selection-change="selectAction"
@sort-change="sortChange"
>
<!-- 多选框 -->
<el-table-column
v-if="isSelect"
type="selection"
:selectable="selectables"
width="50"
align="center"
>
</el-table-column>
<el-table-column
v-if="isIndex"
type="index"
:label="indexLabel"
width="50"
>
<!-- 序号 -->
</el-table-column>
<el-table-column
v-for="(header, index) in headers"
:key="'col_' + index"
:width="header.width"
:min-width="header.minWidth"
:align="header.align"
:show-overflow-tooltip="showOverflowTooltip"
:sortable="header.sortable ? 'custom' : null"
:prop="header.prop"
>
<template #header>
<p class="text-header">{{ header.label }}</p>
</template>
<template #default="scope">
<slot
v-if="$slots[header.prop]"
:index="scope.$index"
:name="header.prop"
:row="scope.row"
:header="header"
/>
<template v-else>
{{ scope.row[header.prop] || "-" }}
</template>
</template>
</el-table-column>
</el-table>
</template>
<script setup>
import {
defineProps,
onMounted,
computed,
defineEmits,
watch,
getCurrentInstance,
} from "vue";
const { proxy } = getCurrentInstance();
let props = defineProps({
headers: { type: Array, default: () => [] }, // 表头
rows: { type: Array, default: () => [] }, // 表格数据
//标签列是要展开所有内容
showOverflowTooltip: {
type: Boolean,
default: true,
},
//table高度
height: {
type: String,
default: undefined,
},
// 是否有多选列
isSelect: {
type: Boolean,
default: false,
},
// 是否有border
border: {
type: Boolean,
default: false,
},
isIndex: {
type: Boolean,
default: false,
},
indexLabel: {
type: String,
default: "序号",
},
});
const emits = defineEmits(["select", "sortchange"]);
// 权限展示列的时候计算属性
let tablerows = computed(() => {
return props.rows;
});
watch(
props.rows,
(newValue) => {
toggleRowSelection(newValue);
},
{ immediate: false, deep: true }
);
// ***********多选框功能start
// 选中项
const selectAction = (selection) => {
emits("select", selection);
};
// 后端返回数据带选中内容
const toggleRowSelection = (rows) => {
rows.forEach((row) => {
if (row.isSelet == true) {
proxy.$nextTick(function () {
proxy.$refs.bgTable.toggleRowSelection(row, true);
});
}
});
};
// *********多选是否禁用**********
const selectables = (row) => {
if (row.state !== 2) {
return true;
}
};
// ***********多选框功能end
const clearSelection = () => {
proxy.$refs.bgTable.clearSelection();
};
const sortChange = (column) => {
emits("sortchange", column);
};
defineExpose({ clearSelection });
</script>
<template>
<el-dialog
v-model="show"
width="774px"
top="10vh"
:before-close="beforeClose"
:close-on-click-modal="false"
>
<template #header>
<GapTitle title="关闭工单"></GapTitle>
</template>
<div class="feedback-body">
<el-form
:model="state.form"
ref="form"
:rules="state.rules"
label-width="80px"
>
<el-form-item label="关闭原因" prop="reason">
<el-input
type="textarea"
v-model="state.form.reason"
rows="5"
placeholder="请输入关闭原因"
></el-input>
</el-form-item>
</el-form>
</div>
<template #footer>
<el-button size="default" @click="Close">关闭</el-button>
<el-button type="primary" size="default" @click="Submit">提交</el-button>
</template>
</el-dialog>
</template>
<script setup>
import { computed, reactive, ref } from "vue";
import GapTitle from "@/components/gap-title.vue";
const props = defineProps({
visible: {
type: Boolean,
default: false,
},
beforeClose: {
type: Function,
default: () => {},
},
active_row: {
type: Object,
default: null,
},
});
const state = reactive({
form: {
reason: "",
},
rules: {
reason: [{ required: true, message: "请输入关闭原因", trigger: "blur" }],
},
});
const emits = defineEmits(["update:visible"]);
const form = ref(null);
const Close = () => {
form.value.resetFields();
emits("update:visible", false);
};
const show = computed({
get() {
return props.visible;
},
set() {
Close();
},
});
const beforeClose = () => {
props.beforeClose();
Close();
};
const Submit = () => {
form.value.validate((valid) => {
if (valid) {
console.log(state.form);
} else {
return false;
}
});
};
</script>
<style lang="scss" scoped>
.feedback-body {
text-align: left;
padding: 24px 16px 0;
}
</style>
<template>
<div class="my-alert">
<div class="breadcrumb"></div>
<div class="content">
<bg-table-list>
<template #filter>
<bg-filter-form
:keyword="search"
placeholder="请输入任务名称"
:options="filter_data"
@keyword="keywordAction"
@filters="get_filter_list"
>
</bg-filter-form>
</template>
<template #main>
<bg-table
ref="listtable"
:headers="headers"
:rows="rows"
height="100%"
:isIndex="true"
:stripe="true"
>
<template #work_order_name="{ row, header }">
<BgTableHref
:row="row"
:header="header"
></BgTableHref>
</template>
<template #operation="{ row }">
<span class="primary-edit" @click="operation(row)">
关闭工单
</span>
</template>
</bg-table>
</template>
<template #footer>
<bg-pagination
:pagination="pagination"
@sizechange="sizechange"
@current="current"
>
</bg-pagination>
</template>
</bg-table-list>
<!-- <el-button type="primary" size="default" @click="feedback">
处置反馈
</el-button> -->
<!-- <ManualDistributionForm ref="form" :disabled="true" /> -->
<CloseWorkOrder v-model:visible="visible" :active_row="active_row" />
<!-- <ManualDistribution v-model:visible="visible" /> -->
</div>
</div>
</template>
<script setup>
// import { nextTick, onBeforeMount, onMounted, ref } from "vue";
// import ManualDistribution from "@/components/manual-distribution/index.vue";
// import ManualDistributionForm from "@/components/manual-distribution/form.vue";
// const form = ref(null);
// onMounted(async () => {
// await nextTick();
// form.value.init({
// method: ["1", "2"],
// lists: [
// {
// user_id: 1,
// user_name: 1111,
// phone: "13011111111",
// },
// ],
// });
// });
import { ref, reactive, onMounted, nextTick } from "vue";
import bgTableList from "@/components/table/bg-table-list.vue";
import BgTableHref from "@/components/table/bg-table-href.vue";
import bgFilterForm from "@/components/table/bg-filter-form.vue";
import bgPagination from "@/components/table/bg-pagination.vue";
import bgTable from '@/components/table/bg-table.vue'
import CloseWorkOrder from "./close-work-order.vue";
let search = ref("");
let filter_data = reactive([
{
label: "工单等级",
prop: "work_order_level",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "状态",
prop: "status",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "创建时间",
prop: "create_time",
type: "datetimerange",
},
{
label: "完成时间",
prop: "finish_time",
type: "datetimerange",
},
]);
let headers = reactive([
{
label: "工单名称",
prop: "work_order_name",
align: "left",
href: {
baseurl: "/work-order/my-business-detail",
params: { id: "id", name: "work_order_name" },
},
},
{
label: "工单等级",
prop: "work_order_level",
align: "left",
},
{
label: "工单状态",
prop: "work_order_status",
align: "left",
},
{
label: "下发对象",
prop: "distribute_target",
align: "left",
},
{
label: "创建人",
prop: "create_by",
align: "left",
},
{
label: "创建时间",
prop: "create_time",
align: "left",
},
{
label: "完成时间",
prop: "finish_time",
align: "left",
},
{
label: "操作",
prop: "operation",
align: "left",
width: "80px",
},
]);
let rows = ref([
{ work_order_name: 11, id: 111 },
{ work_order_name: 22, id: 222 },
{ work_order_name: 33, id: 333 },
]);
const pagination = reactive({
rowsPerPage: 15,
page: 1,
total: 0,
});
let searchData = reactive({
create_time: [],
finish_time: [],
work_order_level:"",
status: "",
});
// *********分页start
const sizechange = (val) => {
pagination.page = 1;
pagination.rowsPerPage = val;
init();
};
const current = (val) => {
pagination.page = val;
init();
};
onMounted(() => {
init();
});
//搜索内容
const get_filter_list = (
{ create_time, finish_time, work_order_level, status },
val
) => {
pagination.rowsPerPage = 15;
pagination.page = 1;
searchData.create_time = create_time || [];
searchData.finish_time = finish_time || [];
searchData.work_order_level = work_order_level;
searchData.status = status;
search.value = val.value;
init();
};
const init = async () => {
let [createStartTime, createEndTime] = searchData.create_time;
let [finishStartTime, finishEndTime] = searchData.finish_time;
let urlParams = {
keyword: search.value || "",
createStartTime,
createEndTime,
finishStartTime,
finishEndTime,
work_order_level: searchData.work_order_level,
status: searchData.status,
page: pagination.page,
limit: pagination.rowsPerPage,
};
// const { data, total } = await instanceList(urlParams);
// rows.value = data.list || [];
// pagination.total = data.total_count;
};
const keywordAction = async (val) => {
search.value = val;
init();
};
// 处置反馈
const visible = ref(false);
const active_row = ref(null);
const operation = (row) => {
active_row.value = row;
visible.value = true;
};
</script>
<style lang="scss" scoped>
.my-alert {
width: 100%;
height: 100%;
padding: 0 24px 16px;
.breadcrumb {
width: 100%;
height: 46px;
}
.content {
width: 100%;
height: calc(100% - 46px);
background-color: #ffffff;
box-shadow: 0px 1px 4px 0px rgba(0, 7, 101, 0.15);
border-radius: 6px;
}
}
</style>
<template>
<div>
business-manage-detail
</div>
</template>
<script setup>
</script>
<style lang="scss" scoped>
</style>
\ No newline at end of file
<template>
<div class="my-alert">
<div class="breadcrumb"></div>
<div class="content">
<bg-table-list>
<template #filter>
<bg-filter-form
:keyword="search"
placeholder="请输入任务名称"
:options="filter_data"
@keyword="keywordAction"
@filters="get_filter_list"
>
<template #left_action>
<div class="left_action">
<el-button type="primary" @click="AddWorkOrder">
新增
</el-button>
<el-button type="danger" @click="delBatch">
批量删除
</el-button>
<span class="select-num">
已选择
<span>{{ selectedItems.length }}</span>
</span>
<el-button type="primary" link @click="clearSelected"
>清空</el-button
>
</div>
</template>
</bg-filter-form>
</template>
<template #main>
<bg-table
ref="listtable"
:headers="headers"
:rows="rows"
height="100%"
:isIndex="true"
:isSelect="true"
:stripe="true"
@select="selectRows"
>
<template #work_order_name="{ row, header }">
<BgTableHref :row="row" :header="header"></BgTableHref>
</template>
<template #status="{ row }">
<span>
<span>{{ status[row.status] }}</span>
<span v-if="row.status != 3">
{{ row.finish }}/{{ row.all }}
</span>
</span>
</template>
<template #operation="{ row }">
<div class="table-operation">
<span class="primary-edit" @click="operation(row)">
手动下发
</span>
<span class="line"></span>
<span class="primary-edit" @click="Edit(row)"> 编辑 </span>
<span class="line"></span>
<span class="primary-edit" @click="Delete(row)"> 删除 </span>
</div>
</template>
</bg-table>
</template>
<template #footer>
<bg-pagination
:pagination="pagination"
@sizechange="sizechange"
@current="current"
>
</bg-pagination>
</template>
</bg-table-list>
<ManualDistribution v-model:visible="visible" :active_row="active_row" />
</div>
</div>
</template>
<script setup>
import { ref, reactive, onMounted, nextTick, computed } from "vue";
import bgTableList from "@/components/table/bg-table-list.vue";
import BgTableHref from "@/components/table/bg-table-href.vue";
import bgFilterForm from "@/components/table/bg-filter-form.vue";
import bgPagination from "@/components/table/bg-pagination.vue";
import bgTable from "@/components/table/bg-table.vue";
import ManualDistribution from "@/components/manual-distribution/index.vue";
const status = {
1: "已完成",
2: "待处置",
3: "已关闭",
};
let search = ref("");
let filter_data = reactive([
{
label: "工单等级",
prop: "work_order_level",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "状态",
prop: "status",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "创建时间",
prop: "create_time",
type: "datetimerange",
},
{
label: "完成时间",
prop: "finish_time",
type: "datetimerange",
},
]);
let headers = reactive([
{
label: "工单名称",
prop: "work_order_name",
align: "left",
href: {
baseurl: "/work-order/business-manage-detail",
params: { id: "id", name: "work_order_name" },
},
},
{
label: "工单等级",
prop: "work_order_level",
align: "left",
},
{
label: "实例工单数",
prop: "example_work_order_num",
align: "left",
},
{
label: "下发对象",
prop: "distribute_target",
align: "left",
},
{
label: "定时规则",
prop: "timing_rules",
align: "left",
},
{
label: "定时是否启用",
prop: "status",
align: "left",
width: 150,
},
{
label: "创建人",
prop: "create_by",
align: "left",
},
{
label: "创建时间",
prop: "create_time",
align: "left",
},
{
label: "操作",
prop: "operation",
align: "left",
width: "200px",
},
]);
let rows = ref([
{ work_order_name: 11, id: 111, status: 1, finish: 10, all: 10 },
{ work_order_name: 22, id: 222, status: 2, finish: 5, all: 10 },
{ work_order_name: 33, id: 333, status: 3, finish: 0, all: 10 },
]);
const pagination = reactive({
rowsPerPage: 15,
page: 1,
total: 0,
});
let searchData = reactive({
create_time: [],
finish_time: [],
work_order_level: "",
status: "",
});
// *********分页start
const sizechange = (val) => {
pagination.page = 1;
pagination.rowsPerPage = val;
init();
};
const current = (val) => {
pagination.page = val;
init();
};
//搜索内容
const get_filter_list = (
{ create_time, finish_time, work_order_level, status },
val
) => {
pagination.rowsPerPage = 15;
pagination.page = 1;
searchData.create_time = create_time || [];
searchData.finish_time = finish_time || [];
searchData.work_order_level = work_order_level;
searchData.status = status;
search.value = val.value;
init();
};
const init = async () => {
let [createStartTime, createEndTime] = searchData.create_time;
let [finishStartTime, finishEndTime] = searchData.finish_time;
let urlParams = {
keyword: search.value || "",
createStartTime,
createEndTime,
finishStartTime,
finishEndTime,
work_order_level: searchData.work_order_level,
status: searchData.status,
page: pagination.page,
limit: pagination.rowsPerPage,
};
// const { data, total } = await instanceList(urlParams);
// rows.value = data.list || [];
// pagination.total = data.total_count;
};
const keywordAction = async (val) => {
search.value = val;
init();
};
// 手动下发
const visible = ref(false);
const active_row = ref(null);
const operation = (row) => {
active_row.value = row;
visible.value = true;
};
// 编辑调用
const Edit = (row) => {
active_row.value = row;
};
// 删除调用
const selectedItems = ref([]);
const Delete = (row) => {
selectedItems.value = [row];
console.log(del_ids.value);
};
const del_ids = computed(() => {
return selectedItems.value.map((e) => e.id) || [];
});
// 表格选中
const selectRows = (items) => {
selectedItems.value = items;
};
// 新增
const AddWorkOrder = () => {};
// 批量删除
const delBatch = () => {
console.log(del_ids.value);
};
// 清空选中
const listtable = ref(null);
const clearSelected = () => {
listtable.value.clearSelection();
};
onMounted(() => {
init();
});
</script>
<style lang="scss" scoped>
.my-alert {
width: 100%;
height: 100%;
padding: 0 24px 16px;
.breadcrumb {
width: 100%;
height: 46px;
}
.content {
width: 100%;
height: calc(100% - 46px);
background-color: #ffffff;
box-shadow: 0px 1px 4px 0px rgba(0, 7, 101, 0.15);
border-radius: 6px;
.select-num {
margin: 0 40px 0 24px;
font-size: 14px;
color: #404a62;
span {
font-weight: bold;
}
}
.table-operation {
display: flex;
align-items: center;
.line {
width: 1px;
height: 14px;
background-color: #c1c7d7;
margin: 0 16px;
display: inline-block;
}
}
}
}
</style>
<template>
<div>detail</div>
</template>
<script setup></script>
<style lang="scss" scoped></style>
<template>
<el-dialog
v-model="show"
width="774px"
top="10vh"
:before-close="beforeClose"
:close-on-click-modal="false"
>
<template #header>
<GapTitle title="处置反馈"></GapTitle>
</template>
<div class="feedback-body">
<el-form
:model="state.form"
ref="form"
:rules="state.rules"
label-width="80px"
>
<el-form-item label="预警状态" prop="status">
<el-radio-group v-model="state.form.status">
<el-radio v-for="(value, key) in status" :key="key" :label="key">
{{ value }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="结果反馈" prop="result">
<el-input
type="textarea"
v-model="state.form.result"
rows="5"
placeholder="请输入结果反馈"
></el-input>
</el-form-item>
</el-form>
</div>
<template #footer>
<el-button size="default" @click="Close">关闭</el-button>
<el-button type="primary" size="default" @click="Submit">保存</el-button>
</template>
</el-dialog>
</template>
<script setup>
import { computed, reactive, ref } from "vue";
import GapTitle from "@/components/gap-title.vue";
const props = defineProps({
visible: {
type: Boolean,
default: false,
},
beforeClose: {
type: Function,
default: () => {},
},
active_row: {
type: Object,
default: null,
},
});
const state = reactive({
form: {
status: "",
result: "",
},
rules: {
status: [{ required: true, message: "请选择预警状态", trigger: "change" }],
result: [{ required: true, message: "请输入结果反馈", trigger: "blur" }],
},
});
const status = {
1: "未恢复",
2: "已恢复",
};
const emits = defineEmits(["update:visible"]);
const form = ref(null);
const Close = () => {
form.value.resetFields();
emits("update:visible", false);
};
const show = computed({
get() {
return props.visible;
},
set() {
Close();
},
});
const beforeClose = () => {
props.beforeClose();
Close();
};
const Submit = () => {
form.value.validate((valid) => {
if (valid) {
console.log(state.form);
} else {
return false;
}
});
};
</script>
<style lang="scss" scoped>
.feedback-body {
text-align: left;
padding: 24px 16px 0;
}
</style>
<template>
<div>
my-alert-detail
</div>
</template>
<script setup>
</script>
<style lang="scss" scoped>
</style>
\ No newline at end of file
<template>
<div class="my-alert">
<div class="breadcrumb"></div>
<div class="content">
<bg-table-list>
<template #filter>
<bg-filter-form
:keyword="search"
placeholder="请输入预警点"
:options="filter_data"
@keyword="keywordAction"
@filters="get_filter_list"
>
</bg-filter-form>
</template>
<template #main>
<bg-table
ref="listtable"
:headers="headers"
:rows="rows"
height="100%"
:isIndex="true"
:stripe="true"
>
<template #warning_point="{ row, header }">
<BgTableHref :row="row" :header="header"></BgTableHref>
</template>
<template #operation="{ row }">
<span class="primary-edit" @click="operation(row)">
处置反馈
</span>
</template>
</bg-table>
</template>
<template #footer>
<bg-pagination
:pagination="pagination"
@sizechange="sizechange"
@current="current"
>
</bg-pagination>
</template>
</bg-table-list>
<!-- <el-button type="primary" size="default" @click="feedback">
处置反馈
</el-button> -->
<!-- <ManualDistributionForm ref="form" :disabled="true" /> -->
<FeedBack v-model:visible="visible" :active_row="active_row" />
<!-- <ManualDistribution v-model:visible="visible" /> -->
</div>
</div>
</template>
<script setup>
// import { nextTick, onBeforeMount, onMounted, ref } from "vue";
// import ManualDistribution from "@/components/manual-distribution/index.vue";
// import ManualDistributionForm from "@/components/manual-distribution/form.vue";
// const form = ref(null);
// onMounted(async () => {
// await nextTick();
// form.value.init({
// method: ["1", "2"],
// lists: [
// {
// user_id: 1,
// user_name: 1111,
// phone: "13011111111",
// },
// ],
// });
// });
import { ref, reactive, onMounted, nextTick } from "vue";
import bgTableList from "@/components/table/bg-table-list.vue";
import BgTableHref from "@/components/table/bg-table-href.vue";
import bgFilterForm from "@/components/table/bg-filter-form.vue";
import bgPagination from "@/components/table/bg-pagination.vue";
import bgTable from '@/components/table/bg-table.vue'
import FeedBack from "../modules/feedback.vue";
let search = ref("");
let filter_data = reactive([
{
label: "预警分类",
prop: "waining_type",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "预警指标",
prop: "warning_index",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "风险等级",
prop: "risk_level",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "状态",
prop: "status",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "预警时段",
prop: "date",
type: "datetimerange",
},
]);
let headers = reactive([
{
label: "预警点",
prop: "warning_point",
align: "left",
href: {
baseurl: "/work-order/my-alert-detail",
params: { id: "warning_point" },
},
},
{
label: "预警时间",
prop: "warning_time",
align: "left",
},
{
label: "预警分类",
prop: "warning_type",
align: "left",
},
{
label: "预警指标",
prop: "warning_index",
align: "left",
},
{
label: "风险等级",
prop: "risk_level",
align: "left",
},
{
label: "当前报警值",
prop: "current_alarm_value",
align: "left",
},
{
label: "预警阀值",
prop: "warning_threshold",
align: "left",
},
{
label: "推送次数",
prop: "push_num",
align: "left",
},
{
label: "最近推送时间",
prop: "push_time",
align: "left",
},
{
label: "状态",
prop: "status",
align: "left",
},
{
label: "操作",
prop: "operation",
align: "left",
width: "80px",
},
]);
let rows = ref([{
warning_point:1
}]);
const pagination = reactive({
rowsPerPage: 15,
page: 1,
total: 0,
});
let searchData = reactive({
date: [],
waining_type: "",
warning_index: "",
risk_level: "",
status: "",
});
// *********分页start
const sizechange = (val) => {
pagination.page = 1;
pagination.rowsPerPage = val;
init();
};
const current = (val) => {
pagination.page = val;
init();
};
onMounted(() => {
init();
});
//搜索内容
const get_filter_list = (
{ date, waining_type, warning_index, risk_level, status },
val
) => {
pagination.rowsPerPage = 15;
pagination.page = 1;
searchData.date = date || [];
searchData.waining_type = waining_type;
searchData.warning_index = warning_index;
searchData.risk_level = risk_level;
searchData.status = status;
search.value = val.value;
init();
};
const init = async () => {
let [startTime, endTime] = searchData.date;
let urlParams = {
keyword: search.value || "",
startTime,
endTime,
waining_type: searchData.waining_type,
warning_index: searchData.warning_index,
risk_level: searchData.risk_level,
status: searchData.status,
page: pagination.page,
limit: pagination.rowsPerPage,
};
// const { data, total } = await instanceList(urlParams);
// rows.value = data.list || [];
// pagination.total = data.total_count;
};
const keywordAction = async (val) => {
search.value = val;
init();
};
// 处置反馈
const visible = ref(false);
const active_row = ref(null);
const operation = (row) => {
active_row.value = row;
visible.value = true;
};
</script>
<style lang="scss" scoped>
.my-alert {
width: 100%;
height: 100%;
padding: 0 24px 16px;
.breadcrumb {
width: 100%;
height: 46px;
}
.content {
width: 100%;
height: calc(100% - 46px);
background-color: #ffffff;
box-shadow: 0px 1px 4px 0px rgba(0, 7, 101, 0.15);
border-radius: 6px;
}
}
</style>
<template>
<div>my-business-detail</div>
</template>
<script setup></script>
<style lang="scss" scoped></style>
<template>
<div class="my-alert">
<div class="breadcrumb"></div>
<div class="content">
<bg-table-list>
<template #filter>
<bg-filter-form
:keyword="search"
placeholder="请输入任务名称"
:options="filter_data"
@keyword="keywordAction"
@filters="get_filter_list"
>
</bg-filter-form>
</template>
<template #main>
<bg-table
ref="listtable"
:headers="headers"
:rows="rows"
height="100%"
:isIndex="true"
:stripe="true"
>
<template #work_order_name="{ row, header }">
<BgTableHref
:row="row"
:header="header"
></BgTableHref>
</template>
<template #operation="{ row }">
<span class="primary-edit" @click="operation(row)">
处置反馈
</span>
</template>
</bg-table>
</template>
<template #footer>
<bg-pagination
:pagination="pagination"
@sizechange="sizechange"
@current="current"
>
</bg-pagination>
</template>
</bg-table-list>
<!-- <el-button type="primary" size="default" @click="feedback">
处置反馈
</el-button> -->
<!-- <ManualDistributionForm ref="form" :disabled="true" /> -->
<FeedBack v-model:visible="visible" :active_row="active_row" />
<!-- <ManualDistribution v-model:visible="visible" /> -->
</div>
</div>
</template>
<script setup>
// import { nextTick, onBeforeMount, onMounted, ref } from "vue";
// import ManualDistribution from "@/components/manual-distribution/index.vue";
// import ManualDistributionForm from "@/components/manual-distribution/form.vue";
// const form = ref(null);
// onMounted(async () => {
// await nextTick();
// form.value.init({
// method: ["1", "2"],
// lists: [
// {
// user_id: 1,
// user_name: 1111,
// phone: "13011111111",
// },
// ],
// });
// });
import { ref, reactive, onMounted, nextTick } from "vue";
import bgTableList from "@/components/table/bg-table-list.vue";
import BgTableHref from "@/components/table/bg-table-href.vue";
import bgFilterForm from "@/components/table/bg-filter-form.vue";
import bgPagination from "@/components/table/bg-pagination.vue";
import bgTable from '@/components/table/bg-table.vue'
import FeedBack from "../modules/feedback.vue";
let search = ref("");
let filter_data = reactive([
{
label: "工单等级",
prop: "work_order_level",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "状态",
prop: "status",
type: "select",
options: [
{
value: "",
label: "全部",
},
],
},
{
label: "创建时间",
prop: "create_time",
type: "datetimerange",
},
{
label: "完成时间",
prop: "finish_time",
type: "datetimerange",
},
]);
let headers = reactive([
{
label: "工单名称",
prop: "work_order_name",
align: "left",
href: {
baseurl: "/work-order/my-business-detail",
params: { id: "id", name: "work_order_name" },
},
},
{
label: "工单等级",
prop: "work_order_level",
align: "left",
},
{
label: "工单状态",
prop: "work_order_status",
align: "left",
},
{
label: "下发对象",
prop: "distribute_target",
align: "left",
},
{
label: "创建人",
prop: "create_by",
align: "left",
},
{
label: "创建时间",
prop: "create_time",
align: "left",
},
{
label: "完成时间",
prop: "finish_time",
align: "left",
},
{
label: "操作",
prop: "operation",
align: "left",
width: "80px",
},
]);
let rows = ref([
{ work_order_name: 11, id: 111 },
{ work_order_name: 22, id: 222 },
{ work_order_name: 33, id: 333 },
]);
const pagination = reactive({
rowsPerPage: 15,
page: 1,
total: 0,
});
let searchData = reactive({
date: [],
waining_type: "",
warning_index: "",
risk_level: "",
status: "",
});
// *********分页start
const sizechange = (val) => {
pagination.page = 1;
pagination.rowsPerPage = val;
init();
};
const current = (val) => {
pagination.page = val;
init();
};
onMounted(() => {
init();
});
//搜索内容
const get_filter_list = (
{ create_time, finish_time, work_order_level, status },
val
) => {
pagination.rowsPerPage = 15;
pagination.page = 1;
searchData.create_time = create_time || [];
searchData.finish_time = finish_time || [];
searchData.work_order_level = work_order_level;
searchData.status = status;
search.value = val.value;
init();
};
const init = async () => {
let [createStartTime, createEndTime] = searchData.create_time;
let [finishStartTime, finishEndTime] = searchData.finish_time;
let urlParams = {
keyword: search.value || "",
createStartTime,
createEndTime,
finishStartTime,
finishEndTime,
work_order_level: searchData.work_order_level,
status: searchData.status,
page: pagination.page,
limit: pagination.rowsPerPage,
};
// const { data, total } = await instanceList(urlParams);
// rows.value = data.list || [];
// pagination.total = data.total_count;
};
const keywordAction = async (val) => {
search.value = val;
init();
};
// 处置反馈
const visible = ref(false);
const active_row = ref(null);
const operation = (row) => {
active_row.value = row;
visible.value = true;
};
</script>
<style lang="scss" scoped>
.my-alert {
width: 100%;
height: 100%;
padding: 0 24px 16px;
.breadcrumb {
width: 100%;
height: 46px;
}
.content {
width: 100%;
height: calc(100% - 46px);
background-color: #ffffff;
box-shadow: 0px 1px 4px 0px rgba(0, 7, 101, 0.15);
border-radius: 6px;
}
}
</style>
//路由前端原则可以不写,但是需要在recorder中记录,防止以后忘记 //路由前端原则可以不写,但是需要在recorder中记录,防止以后忘记
//不用新建父路由的文件,父路由全部由parent/parent.vue来支撑 //不用新建父路由的文件,父路由全部由parent/parent.vue来支撑
import {createRouter, createWebHashHistory} from "vue-router"; import { createRouter, createWebHashHistory } from "vue-router";
import store from '../store' import store from '../store'
let work_order = [{
path: '/work-order',
name: 'work-order',
component: () =>
import ("../page/parent/parent.vue"),
redirect: "/work-order/my-alert",
children: [{
path: '/work-order/my-alert',
name: 'my-alert',
show: true,
component: () =>
import ("../page/main/work-order/my-alert-work-order/index.vue")
},
{
path: '/work-order/my-alert-detail',
name: 'my-alert-detail',
show: true,
component: () =>
import ("../page/main/work-order/my-alert-work-order/detail.vue")
},
{
path: '/work-order/my-business',
name: 'my-business',
show: true,
component: () =>
import ("../page/main/work-order/my-business-work-order/index.vue")
},
{
path: '/work-order/my-business-detail',
name: 'my-business-detail',
show: true,
component: () =>
import ("../page/main/work-order/my-business-work-order/detail.vue")
},
{
path: '/work-order/business-list',
name: 'business-list',
show: true,
component: () =>
import ("../page/main/work-order/business-work-order-list/index.vue")
},
{
path: '/work-order/business-manage',
name: 'business-manage',
show: true,
component: () =>
import ("../page/main/work-order/business-work-order-manage/index.vue")
},
{
path: '/work-order/business-manage-detail',
name: 'business-manage-detail',
show: true,
component: () =>
import ("../page/main/work-order/business-work-order-manage/detail.vue")
},
]
}]
//写入初始必须有的路由 //写入初始必须有的路由
//或者隐藏式路由,不会表现在菜单上,但是需要存在的路由 //或者隐藏式路由,不会表现在菜单上,但是需要存在的路由
const routes = [ const routes = [{
{ path: '/login',
path: '/login', name: 'login',
name: 'login', show: true,
show:true, component: () =>
component: () => import('../page/login/index.vue') import ('../page/login/index.vue')
}, },
{ {
path: '/', path: '/',
name: 'index', name: 'index',
component: () => import('../page/welcom.vue'), component: () =>
}, import ('../page/welcom.vue'),
{ },
path: '/404', {
show:true, path: '/404',
component: () => import('../page/404.vue') show: true,
}, component: () =>
import ('../page/404.vue')
},
...work_order
] ]
//重新创建router //重新创建router
function newRouterFunc(){ function newRouterFunc() {
return createRouter({ return createRouter({
history: createWebHashHistory(), history: createWebHashHistory(),
routes routes
}); });
} }
const router = newRouterFunc() const router = newRouterFunc()
function inWhiteList(toPath) { function inWhiteList(toPath) {
//配置白名单 //配置白名单
const whiteList = ['/login'] const whiteList = ['/login']
const path = whiteList.find((value) => { const path = whiteList.find((value) => {
// 使用正则匹配 // 使用正则匹配
const reg = new RegExp('^' + value) const reg = new RegExp('^' + value)
return reg.test(toPath) return reg.test(toPath)
}) })
return !!path return !!path
} }
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
const userInfo = store.state.userInfo const userInfo = store.state.userInfo
//已登录不可跳转登陆页 //已登录不可跳转登陆页
if(userInfo&&to.path=='/login'){ if (userInfo && to.path == '/login') {
next({path:from.path}) next({ path: from.path })
} }
// 检查to.path是否存在于免登陆白名单 // 检查to.path是否存在于免登陆白名单
if (inWhiteList(to.path)) { if (inWhiteList(to.path)) {
next() next()
} else {
// 判断是否已经登录,未登录则重定向到首页或其他页面(通过query传参记录原来的路径)
// 根据配置判断是否跳转第三方登录,跳转第三方登录则不跳login
// axios封装中也需要对是否登录过期进行判断,如果登录过期,则跳转登录页,具体跳转地址根据配置来·
if (!userInfo) {
next({
path: '/login',
})
} else { } else {
// 判断是否已经登录,未登录则重定向到首页或其他页面(通过query传参记录原来的路径)
// 根据配置判断是否跳转第三方登录,跳转第三方登录则不跳login
// axios封装中也需要对是否登录过期进行判断,如果登录过期,则跳转登录页,具体跳转地址根据配置来·
// if (!userInfo) {
// next({
// path: '/login',
// })
// } else {
// }
}
//判读是否匹配,否则跳转404
if (to.matched.length !== 0) {
next()
} else {
return next({ path: '/404' })
} }
}
//判读是否匹配,否则跳转404
if (to.matched.length !== 0) {
next()
} else {
return next({ path: '/404' })
}
}) })
...@@ -85,42 +145,40 @@ router.beforeEach((to, from, next) => { ...@@ -85,42 +145,40 @@ router.beforeEach((to, from, next) => {
// router.onReady(() => { // router.onReady(() => {
// generateRoutes() // generateRoutes()
// }) // })
function addRoute(router,routers){ function addRoute(router, routers) {
routers.forEach(e => { routers.forEach(e => {
router.addRoute(e) router.addRoute(e)
if(e.children&&e.children.length){ if (e.children && e.children.length) {
addRoute(router,e.children) addRoute(router, e.children)
} }
}); });
} }
export function generateRoutes() { export function generateRoutes() {
const _asyncRoutes = store.state.route const _asyncRoutes = store.state.route
if (_asyncRoutes) { if (_asyncRoutes) {
//动态添加路由 //动态添加路由
addRoute(router,_asyncRoutes) addRoute(router, _asyncRoutes)
}
router.addRoute(
{
path: '/:pathMatch(.*)',
redirect: '/404'
} }
)
console.log(router.getRoutes()); router.addRoute({
path: '/:pathMatch(.*)',
redirect: '/404'
})
console.log(router.getRoutes());
} }
//新创建一个router替代之前的router,并把matcher方法替换成新的router的matcher //新创建一个router替代之前的router,并把matcher方法替换成新的router的matcher
export function resetRouter() { export function resetRouter() {
const newRouter = newRouterFunc() const newRouter = newRouterFunc()
router.matcher = newRouter.matcher router.matcher = newRouter.matcher
} }
export default router export default router
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment