项目对接完毕
This commit is contained in:
parent
dcb91bcbb0
commit
87a6a908eb
|
|
@ -8,15 +8,30 @@ export {}
|
|||
declare module 'vue' {
|
||||
export interface GlobalComponents {
|
||||
ComNav: typeof import('./src/components/comNav/index.vue')['default']
|
||||
EditorWang: typeof import('./src/components/com/editorWang.vue')['default']
|
||||
ElButton: typeof import('element-plus/es')['ElButton']
|
||||
ElCard: typeof import('element-plus/es')['ElCard']
|
||||
ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider']
|
||||
ElDatePicker: typeof import('element-plus/es')['ElDatePicker']
|
||||
ElDialog: typeof import('element-plus/es')['ElDialog']
|
||||
ElForm: typeof import('element-plus/es')['ElForm']
|
||||
'ElForm-': typeof import('element-plus/es')['ElForm-']
|
||||
ElFormItem: typeof import('element-plus/es')['ElFormItem']
|
||||
ElIcon: typeof import('element-plus/es')['ElIcon']
|
||||
ElInput: typeof import('element-plus/es')['ElInput']
|
||||
ElMenu: typeof import('element-plus/es')['ElMenu']
|
||||
ElMenuItem: typeof import('element-plus/es')['ElMenuItem']
|
||||
ElMenuItemGroup: typeof import('element-plus/es')['ElMenuItemGroup']
|
||||
ElOption: typeof import('element-plus/es')['ElOption']
|
||||
ElProgress: typeof import('element-plus/es')['ElProgress']
|
||||
ElRadioButton: typeof import('element-plus/es')['ElRadioButton']
|
||||
ElRadioGroup: typeof import('element-plus/es')['ElRadioGroup']
|
||||
ElSelect: typeof import('element-plus/es')['ElSelect']
|
||||
ElSubMenu: typeof import('element-plus/es')['ElSubMenu']
|
||||
ElTable: typeof import('element-plus/es')['ElTable']
|
||||
ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
|
||||
ElTag: typeof import('element-plus/es')['ElTag']
|
||||
ElUpload: typeof import('element-plus/es')['ElUpload']
|
||||
Header: typeof import('./src/components/header.vue')['default']
|
||||
HeaderNav: typeof import('./src/components/headerCom/headerNav.vue')['default']
|
||||
HeaderTop: typeof import('./src/components/headerCom/headerTop.vue')['default']
|
||||
|
|
@ -24,5 +39,6 @@ declare module 'vue' {
|
|||
RouterLink: typeof import('vue-router')['RouterLink']
|
||||
RouterView: typeof import('vue-router')['RouterView']
|
||||
SubMenu: typeof import('./src/components/comNav/sideBar/subMenu.vue')['default']
|
||||
UploadCom: typeof import('./src/components/com/uploadCom.vue')['default']
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,2 +1,4 @@
|
|||
/// <reference types="vite/client" />
|
||||
declare module "nprogress"
|
||||
declare module "nprogress"
|
||||
|
||||
declare module "@wangeditor/editor-for-vue"
|
||||
|
|
@ -14,9 +14,13 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"@element-plus/icons-vue": "^2.3.1",
|
||||
"@jsdawn/vue3-tinymce": "^2.0.4",
|
||||
"@vueuse/core": "^10.6.1",
|
||||
"@wangeditor/editor": "^5.1.23",
|
||||
"@wangeditor/editor-for-vue": "^5.1.12",
|
||||
"axios": "^1.6.2",
|
||||
"element-plus": "^2.4.3",
|
||||
"js-base64": "^3.7.5",
|
||||
"mitt": "^3.0.1",
|
||||
"moment": "^2.29.4",
|
||||
"nprogress": "^0.2.0",
|
||||
|
|
|
|||
453
pnpm-lock.yaml
453
pnpm-lock.yaml
|
|
@ -8,15 +8,27 @@ dependencies:
|
|||
'@element-plus/icons-vue':
|
||||
specifier: ^2.3.1
|
||||
version: 2.3.1(vue@3.3.4)
|
||||
'@jsdawn/vue3-tinymce':
|
||||
specifier: ^2.0.4
|
||||
version: 2.0.4(vue@3.3.4)
|
||||
'@vueuse/core':
|
||||
specifier: ^10.6.1
|
||||
version: 10.6.1(vue@3.3.4)
|
||||
'@wangeditor/editor':
|
||||
specifier: ^5.1.23
|
||||
version: 5.1.23
|
||||
'@wangeditor/editor-for-vue':
|
||||
specifier: ^5.1.12
|
||||
version: 5.1.12(@wangeditor/editor@5.1.23)(vue@3.3.4)
|
||||
axios:
|
||||
specifier: ^1.6.2
|
||||
version: 1.6.2
|
||||
element-plus:
|
||||
specifier: ^2.4.3
|
||||
version: 2.4.3(vue@3.3.4)
|
||||
js-base64:
|
||||
specifier: ^3.7.5
|
||||
version: 3.7.5
|
||||
mitt:
|
||||
specifier: ^3.0.1
|
||||
version: 3.0.1
|
||||
|
|
@ -363,6 +375,13 @@ packages:
|
|||
'@babel/plugin-syntax-typescript': 7.23.3(@babel/core@7.23.5)
|
||||
dev: true
|
||||
|
||||
/@babel/runtime@7.23.5:
|
||||
resolution: {integrity: sha512-NdUTHcPe4C99WxPub+K9l9tK5/lV4UXIoaHSYgzco9BCyjKAAwzdBI+wWtYqHt7LJdbo74ZjRPJgzVweq1sz0w==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
dependencies:
|
||||
regenerator-runtime: 0.14.0
|
||||
dev: false
|
||||
|
||||
/@babel/template@7.22.15:
|
||||
resolution: {integrity: sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
|
@ -653,6 +672,16 @@ packages:
|
|||
'@jridgewell/resolve-uri': 3.1.1
|
||||
'@jridgewell/sourcemap-codec': 1.4.15
|
||||
|
||||
/@jsdawn/vue3-tinymce@2.0.4(vue@3.3.4):
|
||||
resolution: {integrity: sha512-2s9RdeivIIrJQ4pDbS8DgpnL2Nmiojzjuj1AQKWERd891JULSlJbf8HAxY8OIVXIrQYh9vBvPG4orwFxswZCjw==}
|
||||
engines: {node: '>14.0.0'}
|
||||
peerDependencies:
|
||||
vue: ^3.2.6
|
||||
dependencies:
|
||||
vue: 3.3.4
|
||||
vue-router: 4.2.5(vue@3.3.4)
|
||||
dev: false
|
||||
|
||||
/@nodelib/fs.scandir@2.1.5:
|
||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||
engines: {node: '>= 8'}
|
||||
|
|
@ -697,6 +726,10 @@ packages:
|
|||
resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
|
||||
dev: false
|
||||
|
||||
/@transloadit/prettier-bytes@0.0.7:
|
||||
resolution: {integrity: sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==}
|
||||
dev: false
|
||||
|
||||
/@tsconfig/node18@18.2.2:
|
||||
resolution: {integrity: sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==}
|
||||
dev: true
|
||||
|
|
@ -705,6 +738,10 @@ packages:
|
|||
resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==}
|
||||
dev: true
|
||||
|
||||
/@types/event-emitter@0.3.5:
|
||||
resolution: {integrity: sha512-zx2/Gg0Eg7gwEiOIIh5w9TrhKKTeQh7CPCOPNc0el4pLSwzebA8SmnHwZs2dWlLONvyulykSwGSQxQHLhjGLvQ==}
|
||||
dev: false
|
||||
|
||||
/@types/lodash-es@4.17.12:
|
||||
resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
|
||||
dependencies:
|
||||
|
|
@ -733,6 +770,47 @@ packages:
|
|||
/@types/web-bluetooth@0.0.20:
|
||||
resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==}
|
||||
|
||||
/@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.7
|
||||
preact: 10.19.2
|
||||
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.7
|
||||
dev: false
|
||||
|
||||
/@vitejs/plugin-vue-jsx@3.0.2(vite@4.4.11)(vue@3.3.4):
|
||||
resolution: {integrity: sha512-obF26P2Z4Ogy3cPp07B4VaW6rpiu0ue4OT2Y15UxT5BZZ76haUY9guOsZV3uWh/I6xc+VeiW+ZVabRE82FyzWw==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
|
|
@ -984,6 +1062,192 @@ packages:
|
|||
- vue
|
||||
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.7)(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.7)(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.7
|
||||
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.7)(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.7)(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.5
|
||||
'@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.7
|
||||
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.23)(vue@3.3.4):
|
||||
resolution: {integrity: sha512-0Ds3D8I+xnpNWezAeO7HmPRgTfUxHLMd9JKcIw+QzvSmhC5xUHbpCcLU+KLmeBKTR/zffnS5GQo6qi3GhTMJWQ==}
|
||||
peerDependencies:
|
||||
'@wangeditor/editor': '>=5.1.0'
|
||||
vue: ^3.0.5
|
||||
dependencies:
|
||||
'@wangeditor/editor': 5.1.23
|
||||
vue: 3.3.4
|
||||
dev: false
|
||||
|
||||
/@wangeditor/editor@5.1.23:
|
||||
resolution: {integrity: sha512-0RxfeVTuK1tktUaPROnCoFfaHVJpRAIE2zdS0mpP+vq1axVQpLjM8+fCvKzqYIkH0Pg+C+44hJpe3VVroSkEuQ==}
|
||||
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.7)(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.7)(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.7)(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.7)(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.7
|
||||
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.7)(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.7)(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.7)(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.7
|
||||
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.7)(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.7)(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.7)(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.7)(slate@0.72.8)(snabbdom@3.5.1)
|
||||
dom7: 3.0.0
|
||||
nanoid: 3.3.7
|
||||
slate: 0.72.8
|
||||
snabbdom: 3.5.1
|
||||
dev: false
|
||||
|
||||
/acorn@8.11.2:
|
||||
resolution: {integrity: sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
|
|
@ -1176,6 +1440,10 @@ packages:
|
|||
engines: {node: '>= 12'}
|
||||
dev: false
|
||||
|
||||
/compute-scroll-into-view@1.0.20:
|
||||
resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
|
||||
dev: false
|
||||
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
|
||||
dev: false
|
||||
|
|
@ -1223,6 +1491,13 @@ packages:
|
|||
/csstype@3.1.2:
|
||||
resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
|
||||
|
||||
/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.10:
|
||||
resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==}
|
||||
dev: false
|
||||
|
|
@ -1255,6 +1530,12 @@ packages:
|
|||
entities: 2.2.0
|
||||
dev: false
|
||||
|
||||
/dom7@3.0.0:
|
||||
resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==}
|
||||
dependencies:
|
||||
ssr-window: 3.0.0
|
||||
dev: false
|
||||
|
||||
/domelementtype@2.3.0:
|
||||
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
|
||||
dev: false
|
||||
|
|
@ -1338,6 +1619,31 @@ packages:
|
|||
is-arrayish: 0.2.1
|
||||
dev: true
|
||||
|
||||
/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@0.18.20:
|
||||
resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==}
|
||||
engines: {node: '>=12'}
|
||||
|
|
@ -1389,6 +1695,13 @@ packages:
|
|||
/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
|
||||
|
||||
/execa@5.1.1:
|
||||
resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
|
||||
engines: {node: '>=10'}
|
||||
|
|
@ -1419,6 +1732,12 @@ packages:
|
|||
strip-final-newline: 3.0.0
|
||||
dev: false
|
||||
|
||||
/ext@1.7.0:
|
||||
resolution: {integrity: sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==}
|
||||
dependencies:
|
||||
type: 2.7.2
|
||||
dev: false
|
||||
|
||||
/fast-glob@3.3.2:
|
||||
resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
|
||||
engines: {node: '>=8.6.0'}
|
||||
|
|
@ -1570,6 +1889,10 @@ packages:
|
|||
engines: {node: '>=8'}
|
||||
dev: true
|
||||
|
||||
/html-void-elements@2.0.1:
|
||||
resolution: {integrity: sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==}
|
||||
dev: false
|
||||
|
||||
/human-signals@2.1.0:
|
||||
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
|
||||
engines: {node: '>=10.17.0'}
|
||||
|
|
@ -1580,10 +1903,20 @@ packages:
|
|||
engines: {node: '>=16.17.0'}
|
||||
dev: false
|
||||
|
||||
/i18next@20.6.1:
|
||||
resolution: {integrity: sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==}
|
||||
dependencies:
|
||||
'@babel/runtime': 7.23.5
|
||||
dev: false
|
||||
|
||||
/immediate@3.0.6:
|
||||
resolution: {integrity: sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==}
|
||||
dev: false
|
||||
|
||||
/immer@9.0.21:
|
||||
resolution: {integrity: sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==}
|
||||
dev: false
|
||||
|
||||
/immutable@4.3.4:
|
||||
resolution: {integrity: sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA==}
|
||||
|
||||
|
|
@ -1617,10 +1950,19 @@ packages:
|
|||
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-stream@2.0.1:
|
||||
resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -1631,6 +1973,10 @@ packages:
|
|||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||
dev: false
|
||||
|
||||
/is-url@1.2.4:
|
||||
resolution: {integrity: sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==}
|
||||
dev: false
|
||||
|
||||
/isarray@1.0.0:
|
||||
resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
|
||||
dev: false
|
||||
|
|
@ -1649,6 +1995,10 @@ packages:
|
|||
minimatch: 3.1.2
|
||||
dev: false
|
||||
|
||||
/js-base64@3.7.5:
|
||||
resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==}
|
||||
dev: false
|
||||
|
||||
/js-tokens@4.0.0:
|
||||
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
|
||||
dev: true
|
||||
|
|
@ -1739,6 +2089,34 @@ packages:
|
|||
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
|
||||
|
|
@ -1802,6 +2180,12 @@ packages:
|
|||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/mime-match@1.0.2:
|
||||
resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==}
|
||||
dependencies:
|
||||
wildcard: 1.1.2
|
||||
dev: false
|
||||
|
||||
/mime-types@2.1.35:
|
||||
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
|
@ -1862,11 +2246,19 @@ packages:
|
|||
resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==}
|
||||
dev: true
|
||||
|
||||
/namespace-emitter@2.0.1:
|
||||
resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==}
|
||||
dev: false
|
||||
|
||||
/nanoid@3.3.7:
|
||||
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
|
||||
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
|
||||
hasBin: true
|
||||
|
||||
/next-tick@1.1.0:
|
||||
resolution: {integrity: sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==}
|
||||
dev: false
|
||||
|
||||
/no-case@3.0.4:
|
||||
resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==}
|
||||
dependencies:
|
||||
|
|
@ -2088,6 +2480,15 @@ packages:
|
|||
picocolors: 1.0.0
|
||||
source-map-js: 1.0.2
|
||||
|
||||
/preact@10.19.2:
|
||||
resolution: {integrity: sha512-UA9DX/OJwv6YwP9Vn7Ti/vF80XL+YA5H2l7BpCtUr3ya8LWHFzpiO5R+N7dN16ujpIxhekRFuOOF82bXX7K/lg==}
|
||||
dev: false
|
||||
|
||||
/prismjs@1.29.0:
|
||||
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/process-nextick-args@2.0.1:
|
||||
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
||||
dev: false
|
||||
|
|
@ -2127,6 +2528,10 @@ packages:
|
|||
dependencies:
|
||||
picomatch: 2.3.1
|
||||
|
||||
/regenerator-runtime@0.14.0:
|
||||
resolution: {integrity: sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==}
|
||||
dev: false
|
||||
|
||||
/relateurl@0.2.7:
|
||||
resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
|
||||
engines: {node: '>= 0.10'}
|
||||
|
|
@ -2170,6 +2575,12 @@ packages:
|
|||
immutable: 4.3.4
|
||||
source-map-js: 1.0.2
|
||||
|
||||
/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
|
||||
|
||||
/scule@1.1.0:
|
||||
resolution: {integrity: sha512-vRUjqhyM/YWYzT+jsMk6tnl3NkY4A4soJ8uyh3O6Um+JXEQL9ozUCe7pqrxn3CSKokw0hw3nFStfskzpgYwR0g==}
|
||||
dev: true
|
||||
|
|
@ -2214,6 +2625,28 @@ packages:
|
|||
engines: {node: '>=14'}
|
||||
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'}
|
||||
|
|
@ -2252,6 +2685,10 @@ packages:
|
|||
resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==}
|
||||
dev: true
|
||||
|
||||
/ssr-window@3.0.0:
|
||||
resolution: {integrity: sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==}
|
||||
dev: false
|
||||
|
||||
/string_decoder@1.1.1:
|
||||
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||
dependencies:
|
||||
|
|
@ -2308,6 +2745,10 @@ packages:
|
|||
source-map-support: 0.5.21
|
||||
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'}
|
||||
|
|
@ -2332,6 +2773,14 @@ packages:
|
|||
engines: {node: '>=16'}
|
||||
dev: true
|
||||
|
||||
/type@1.2.0:
|
||||
resolution: {integrity: sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==}
|
||||
dev: false
|
||||
|
||||
/type@2.7.2:
|
||||
resolution: {integrity: sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==}
|
||||
dev: false
|
||||
|
||||
/typescript@5.2.2:
|
||||
resolution: {integrity: sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==}
|
||||
engines: {node: '>=14.17'}
|
||||
|
|
@ -2620,6 +3069,10 @@ packages:
|
|||
dependencies:
|
||||
isexe: 2.0.0
|
||||
|
||||
/wildcard@1.1.2:
|
||||
resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==}
|
||||
dev: false
|
||||
|
||||
/yallist@3.1.1:
|
||||
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
|
||||
dev: true
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
<template>
|
||||
<RouterView />
|
||||
<el-config-provider :size="size" :z-index="zIndex">
|
||||
<RouterView />
|
||||
</el-config-provider>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
const zIndex = ref(3000)
|
||||
const size = ref("medium")
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@import url("./style/css/reset.css");
|
||||
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,75 @@
|
|||
<template>
|
||||
<div style="border: 1px solid #ccc">
|
||||
<Toolbar style="border-bottom: 1px solid #ccc" :editor="editorRef" :defaultConfig="toolbarConfig" :mode="mode" />
|
||||
<Editor style="height: 500px; overflow-y: hidden;" v-model="valueHtml" :defaultConfig="editorConfig" :mode="mode"
|
||||
@onCreated="handleCreated" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import '@wangeditor/editor/dist/css/style.css' // 引入 css
|
||||
import { Editor, Toolbar } from '@wangeditor/editor-for-vue'
|
||||
// 编辑器实例,必须用 shallowRef
|
||||
const editorRef = shallowRef()
|
||||
|
||||
// 内容 HTML
|
||||
const valueHtml = ref()
|
||||
|
||||
// 模拟 ajax 异步获取内容
|
||||
onMounted(() => {
|
||||
setTimeout(() => {
|
||||
valueHtml.value = ''
|
||||
}, 1500)
|
||||
})
|
||||
|
||||
const toolbarConfig = {
|
||||
excludeKeys: [//隐藏的toolbarKey,默认为空
|
||||
// "group-more-style",
|
||||
'group-video',//视频控件
|
||||
// 'redo',
|
||||
// 'undo',
|
||||
// 'group-image',
|
||||
]
|
||||
}
|
||||
const editorConfig = {
|
||||
placeholder: '请输入内容...',
|
||||
readOnly:false
|
||||
|
||||
}
|
||||
|
||||
// 组件销毁时,也及时销毁编辑器
|
||||
onBeforeUnmount(() => {
|
||||
const editor = editorRef.value
|
||||
if (editor == null) return
|
||||
editor.destroy()
|
||||
})
|
||||
|
||||
const handleCreated = (editor: any) => {
|
||||
editorRef.value = editor // 记录 editor 实例,重要!
|
||||
}
|
||||
|
||||
const getHtmlByFather =()=>{//获取html
|
||||
return editorRef.value.getHtml()
|
||||
}
|
||||
|
||||
const setHtmlByFather =(val:any)=>{
|
||||
editorRef.value.setHtml(val)
|
||||
}
|
||||
|
||||
|
||||
const editorIsEmpty =()=>{
|
||||
return editorRef.value.isEmpty()
|
||||
}
|
||||
const editorClear =()=>{
|
||||
return editorRef.value.clear()
|
||||
}
|
||||
|
||||
|
||||
defineExpose({
|
||||
getHtmlByFather,
|
||||
setHtmlByFather,
|
||||
editorIsEmpty,
|
||||
editorClear
|
||||
})
|
||||
|
||||
</script>
|
||||
|
|
@ -0,0 +1,233 @@
|
|||
<template>
|
||||
<div>
|
||||
<!--action="/api/abk/web/v1/resource/file" -->
|
||||
<el-upload :action="actionUrl" :auto-upload="autoUpload" style="width: 100%" :on-success="(response, file) => successUpload(response, file)"
|
||||
:on-error="errorUpload" :accept="acceptTypeList.join(',')" :before-upload="beforeUpload" :multiple="multiple"
|
||||
:limit="maxLimit" :on-exceed="handleExceed" :file-list="fileList" :disabled="disabledFlag"
|
||||
:on-remove="(file, fileList) => removeFile(file, fileList)" :on-preview="(file) => preview(file)"
|
||||
:on-progress="(event, file, fileList) => onProgressFn(event, file, fileList)"
|
||||
list-type="picture-card"
|
||||
|
||||
>
|
||||
<!-- 上传的按钮 或者 icon 通过具名插槽的方式 -->
|
||||
<slot name="uploadBtn"></slot>
|
||||
</el-upload>
|
||||
<el-progress v-if="showProcessFlag && processFlag" :percentage="loadProcess"></el-progress>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref ,nextTick} from "vue"
|
||||
import { ElMessage } from 'element-plus'
|
||||
import {Base64} from 'js-base64'
|
||||
const props = defineProps({
|
||||
actionUrl: {
|
||||
//上传的地址
|
||||
type: String,
|
||||
default: '',
|
||||
},
|
||||
autoUpload:{//是否开启自动上传
|
||||
type:Boolean,
|
||||
default:false
|
||||
},
|
||||
acceptTypeList: {
|
||||
//接受的文件类型
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['.jpg','.jpeg','.png']
|
||||
// ['doc', 'docx', 'xlsx', 'xls', 'txt', 'pdf','jpg','jpeg','png','zip,'rar']
|
||||
},
|
||||
},
|
||||
multiple: {//是否开启多图上传
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
maxLimit: {
|
||||
// 最大上传个数限制
|
||||
type: Number || String,
|
||||
default: 1,
|
||||
},
|
||||
maxSize: {
|
||||
// 文件上传的最大体积 M
|
||||
type: Number || String,
|
||||
default: 4,
|
||||
|
||||
},
|
||||
disabledFlag: {
|
||||
//是否禁用
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
fileList: {//文件列表
|
||||
type: Array,
|
||||
default: () => {
|
||||
return [ ]
|
||||
},
|
||||
},
|
||||
listType:{
|
||||
type: String,//'text' | 'picture' | 'picture-card'
|
||||
default: 'picture',
|
||||
},
|
||||
extraData: {}, //上传时的额外参数 如 name等
|
||||
/*
|
||||
{
|
||||
name:'12321'
|
||||
}
|
||||
*/
|
||||
dragFlag: {
|
||||
type: Boolean,
|
||||
default: true, //是否启用拖拽上传 此处默认启用 element 官方默认是 不启用的
|
||||
},
|
||||
downLoadTypeList: {
|
||||
//需要下载的文件类型
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['doc', 'docx', 'xlsx', 'xls', 'txt']
|
||||
},
|
||||
},
|
||||
preveiwTypeList: {
|
||||
//需要预览的文件类型
|
||||
type: Array,
|
||||
default: () => {
|
||||
return ['pdf', 'jpg', 'jpeg', 'png']
|
||||
},
|
||||
},
|
||||
officePreviewFlag: {
|
||||
//是否启用office在线预览
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
showProcessFlag: {
|
||||
//是否显示进度条
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
})
|
||||
// office预览
|
||||
// https://view.officeapps.live.com/op/view.aspx?src=
|
||||
// https://view.officeapps.live.com/op/view.aspx?src=文档地址
|
||||
//
|
||||
|
||||
const officeOnlineAddress =
|
||||
'https://view.officeapps.live.com/op/view.aspx?src='
|
||||
const officeType = ['doc', 'docx', 'xlsx', 'xls']
|
||||
let processFlag = ref(false)//是否显示进度条
|
||||
let loadProcess = ref(0)//进度条的刻度值
|
||||
|
||||
|
||||
|
||||
// 上传图片 成功
|
||||
const successUpload = (response:any, file:any) => {
|
||||
console.log("successUpload",response,file)
|
||||
if (response.rt.status === 200) {
|
||||
props.fileList.push({
|
||||
url: response.data,
|
||||
name: file.name,
|
||||
})
|
||||
} else {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: response.data
|
||||
})
|
||||
}
|
||||
}
|
||||
const errorUpload = (res: any) => {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: '上传失败请重试!'
|
||||
})
|
||||
|
||||
}
|
||||
const beforeUpload = (file) => {
|
||||
const { name = '', size } = file
|
||||
if (size > props.maxSize * 1024 * 1000) {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: `文件最大仅支持${props.maxSize}M`
|
||||
})
|
||||
return false
|
||||
}
|
||||
|
||||
if (!props.acceptTypeList.includes(name.split('.').pop())+'.') {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: `文件格式仅支持${props.acceptTypeList.join(',')}M`
|
||||
})
|
||||
return false
|
||||
}
|
||||
}
|
||||
const handleExceed = (files, fileList) => {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: `当前限制选择 10 个文件,本次选择了 ${files.length
|
||||
} 个文件,共选择了 ${files.length + fileList.length} 个文件`
|
||||
})
|
||||
|
||||
}
|
||||
// 移除文件
|
||||
const removeFile = (file, data) => {
|
||||
console.log(file, data)
|
||||
props.fileList = data
|
||||
}
|
||||
// 预览
|
||||
const preview = (data) => {
|
||||
const { url, response = {} } = data || {}
|
||||
let name = data.name
|
||||
const downLoadTypeList = props.downLoadTypeList
|
||||
const preveiwTypeList = props.preveiwTypeList
|
||||
if (!name) {
|
||||
name = ''
|
||||
}
|
||||
const suffixFileType = name.split('.').pop()
|
||||
if (downLoadTypeList.includes(suffixFileType)) {
|
||||
//预览 'doc', 'docx', 'xlsx', 'xls', 'txt' 文件
|
||||
name = name.replace(/&/g, '') // & 不兼容
|
||||
const target = encodeURIComponent(
|
||||
Base64.encode(
|
||||
`${location.origin
|
||||
}/api/abk/web/v1/resource/file?fileId=${url || response.data
|
||||
}&fullfilename=${name}&sid=4AC67ADB4E264AB0A8B899A671072875`
|
||||
)
|
||||
)
|
||||
if (
|
||||
props.officePreviewFlag &&
|
||||
officeType.includes(suffixFileType)
|
||||
) {
|
||||
// office预览的
|
||||
const preveiewURL = officeOnlineAddress + target
|
||||
window.open(preveiewURL)
|
||||
} else {
|
||||
// 非office预览
|
||||
window.open(
|
||||
`https://test/preview/onlinePreview?url=${target}`,
|
||||
'_blank'
|
||||
)
|
||||
}
|
||||
} else if (preveiwTypeList.includes(suffixFileType)) {
|
||||
//新窗口打开 预览图片文件
|
||||
window.open(
|
||||
'/api/abk/web/v1/resource/file?fileId=' +
|
||||
(url || response.data),
|
||||
'_blank'
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const onProgressFn=(event, file, fileList)=>{
|
||||
processFlag.value = true
|
||||
loadProcess.value = event.percent.toFixed(2)
|
||||
if (loadProcess.value >= 100) {
|
||||
loadProcess.value = 100
|
||||
nextTick(() => {
|
||||
processFlag.value = false
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<style lang="scss" scoped></style>
|
||||
|
||||
|
|
@ -18,7 +18,7 @@ const navStore = comNavStore()
|
|||
textColor:"",
|
||||
activeTextColor:'',
|
||||
defaultActive:"",
|
||||
defaultOpeneds:['staticDefault_PathParent'],
|
||||
defaultOpeneds:['staticDefault_PathParent&&配置管理'],
|
||||
router:false,
|
||||
collapseTransition:true,
|
||||
menuList:list,
|
||||
|
|
|
|||
|
|
@ -36,10 +36,7 @@ const props: any = defineProps({
|
|||
type: Array,
|
||||
default: []
|
||||
},
|
||||
uniqueOpened: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
menuTrigger: {
|
||||
type: String,
|
||||
default: "hover"//hover / click
|
||||
|
|
|
|||
|
|
@ -23,9 +23,11 @@ const TapNavTagFn=(tag:any)=>{
|
|||
<style scoped lang="scss">
|
||||
.nav_out{
|
||||
height: 48px;
|
||||
box-shadow: 0px 0px 12px rgba(0, 0, 0, .12);
|
||||
box-shadow:$ShadowColor;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-left: 12px;
|
||||
background-color: #fff;
|
||||
}
|
||||
.navItem{
|
||||
margin-right:8px;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ const routes: Array<RouteRecordRaw> = [
|
|||
{
|
||||
path: 'swiperConfig',
|
||||
name: 'swiperConfig',
|
||||
component: () => import('views/configuration/swiperConfig.vue'),
|
||||
component: () => import('views/configuration/swiperConfig/index.vue'),
|
||||
meta: {
|
||||
title: '轮播图配置',
|
||||
keepAlive: true,
|
||||
|
|
@ -25,7 +25,7 @@ const routes: Array<RouteRecordRaw> = [
|
|||
{
|
||||
path: 'specialInformationConfiguration',
|
||||
name: 'specialInformationConfiguration',
|
||||
component: () => import('views/configuration/specialInformationConfiguration.vue'),
|
||||
component: () => import('views/configuration/specialInformationConfiguration/index.vue'),
|
||||
meta: {
|
||||
title: '专题资讯配置',
|
||||
keepAlive: true,
|
||||
|
|
@ -35,7 +35,7 @@ const routes: Array<RouteRecordRaw> = [
|
|||
{
|
||||
path: 'privacyAgreement',
|
||||
name: 'privacyAgreement',
|
||||
component: () => import('views/configuration/privacyAgreement.vue'),
|
||||
component: () => import('views/configuration/privacyAgreement/index.vue'),
|
||||
meta: {
|
||||
title: '隐私协议模板管理',
|
||||
keepAlive: true,
|
||||
|
|
@ -43,16 +43,16 @@ const routes: Array<RouteRecordRaw> = [
|
|||
}
|
||||
},
|
||||
|
||||
{
|
||||
path: 'enterpriseManagement',
|
||||
name: 'enterpriseManagement',
|
||||
component: () => import('views/enterpriseManagement/AppMain.vue'),
|
||||
meta: {
|
||||
title: '企业管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
},
|
||||
},
|
||||
// {
|
||||
// path: 'enterpriseManagement',
|
||||
// name: 'enterpriseManagement',
|
||||
// component: () => import('views/enterpriseManagement/AppMain.vue'),
|
||||
// meta: {
|
||||
// title: '企业管理',
|
||||
// keepAlive: true,
|
||||
// AuthFlag: true
|
||||
// },
|
||||
// },
|
||||
|
||||
{
|
||||
path: 'enterpriseType',
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ export const list:any = [
|
|||
{
|
||||
path: 'specialInformationConfiguration',
|
||||
name: 'specialInformationConfiguration',
|
||||
component: 'views/configuration/specialInformationConfiguration.vue',
|
||||
component: 'views/configuration/specialInformationConfiguration/index.vue',
|
||||
meta: {
|
||||
title: '专题资讯配置',
|
||||
keepAlive: true,
|
||||
|
|
@ -31,7 +31,7 @@ export const list:any = [
|
|||
{
|
||||
path: 'privacyAgreement',
|
||||
name: 'privacyAgreement',
|
||||
component: 'views/configuration/privacyAgreement.vue',
|
||||
component: 'views/configuration/privacyAgreement/index.vue',
|
||||
meta: {
|
||||
title: '隐私协议模板管理',
|
||||
keepAlive: true,
|
||||
|
|
@ -44,21 +44,12 @@ export const list:any = [
|
|||
name: "企业管理",
|
||||
path: '',
|
||||
meta: {
|
||||
title: '轮播图配置',
|
||||
title: '企业管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
},
|
||||
children: [
|
||||
{
|
||||
path: 'enterpriseManagement',
|
||||
name: 'enterpriseManagement',
|
||||
component: 'views/enterpriseManagement/AppMain.vue',
|
||||
meta: {
|
||||
title: '企业管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: true
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
path: 'enterpriseType',
|
||||
|
|
|
|||
|
|
@ -1,26 +1,29 @@
|
|||
|
||||
|
||||
export const comNavStore = defineStore('main_com_nav', {
|
||||
state: () => {
|
||||
return {
|
||||
topNavList: [] as any, //loading控制,
|
||||
maxNavCount: 5
|
||||
maxNavCount: 8
|
||||
}
|
||||
},
|
||||
getters: {},
|
||||
actions: {
|
||||
addNavTarget(ev:any) {
|
||||
console.log("topNavList",this.topNavList)
|
||||
if(!this.topNavList.map((ele:any)=>ele.path).includes(ev.path)){
|
||||
addNavTarget(ev: any) {
|
||||
console.log("topNavList", this.topNavList)
|
||||
if (!this.topNavList.map((ele: any) => ele.path).includes(ev.path)) {
|
||||
this.topNavList.push(ev)
|
||||
}
|
||||
}
|
||||
if (this.topNavList.length > this.maxNavCount) {
|
||||
this.topNavList.splice(0,1)
|
||||
}
|
||||
},
|
||||
deleteNavTarget(index:any) {
|
||||
if(this.topNavList.length>0){
|
||||
this.topNavList.splice(index,1)
|
||||
}
|
||||
deleteNavTarget(index: any) {
|
||||
if (this.topNavList.length > 0) {
|
||||
this.topNavList.splice(index, 1)
|
||||
}
|
||||
},
|
||||
clearTarget(val: any) {
|
||||
this.topNavList=[]
|
||||
this.topNavList = []
|
||||
}
|
||||
},
|
||||
persist: {
|
||||
|
|
|
|||
|
|
@ -2,4 +2,22 @@
|
|||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.search_header_top_row1{
|
||||
.el-card__body{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.el-form-item{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.content_body_row{
|
||||
margin-top: 12px;
|
||||
flex: 1;
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
$main-color: #3fb9f7;
|
||||
$second-color: #666;
|
||||
|
||||
$ShadowColor:0px 0px 12px rgba(0, 0, 0, .12);
|
||||
|
||||
$headerTopHeight:72px;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
|
||||
|
||||
export const ElConfirmBeforeOpert =(title='操作确认',text="是否确定删除数据?",callBack,confirmText='确定',cancelText='取消',row:any)=>{
|
||||
ElMessageBox.confirm(
|
||||
text,
|
||||
title,
|
||||
{
|
||||
confirmButtonText:confirmText,
|
||||
cancelButtonText:cancelText,
|
||||
type: 'warning',
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
callBack(row)
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
})
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1 @@
|
|||
export const linkReg = /^((http|https):\/\/)?(([A-Za-z0-9]+-[A-Za-z0-9]+|[A-Za-z0-9]+)\.)+([A-Za-z]+)[/\?\:]?.*$/;
|
||||
|
|
@ -48,3 +48,6 @@ export const isIOS = inBrowser
|
|||
export const isAndroid = inBrowser
|
||||
? /android|linux/.test(navigator.userAgent.toLowerCase())
|
||||
: false
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,10 @@
|
|||
</div>
|
||||
<div class="main_content">
|
||||
<headerNav></headerNav>
|
||||
<RouterView />
|
||||
<div class="view_out_c">
|
||||
|
||||
<RouterView />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -26,7 +29,7 @@ import headerNav from "components/headerCom/headerNav.vue"
|
|||
flex-direction: column;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
|
||||
background-color:#f0f2f5;
|
||||
.main_top {
|
||||
height: $headerTopHeight;
|
||||
}
|
||||
|
|
@ -39,22 +42,37 @@ import headerNav from "components/headerCom/headerNav.vue"
|
|||
|
||||
.main_nav {
|
||||
width: 240px;
|
||||
border-right: 1px solid $second-color;
|
||||
background-color:#d3e6f3;
|
||||
}
|
||||
|
||||
.main_content {
|
||||
border-left: 1px solid $second-color;
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
height: calc(100% - var($headerTopHeight) - 48px);
|
||||
height: calc(100% - 4px);
|
||||
margin-left: 8px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
w &::-webkit-scrollbar {
|
||||
width: 2px;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb{
|
||||
|
||||
&::-webkit-scrollbar-thumb {
|
||||
height: 6px;
|
||||
width: 2px;
|
||||
background-color: $main-color;
|
||||
}
|
||||
}
|
||||
|
||||
.view_out_c {
|
||||
|
||||
width:calc(100% - 24px) ;
|
||||
flex: 1;
|
||||
margin: 12px;
|
||||
display:flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<template>
|
||||
<div>
|
||||
|
||||
</div>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts"></script>
|
||||
<script lang="ts" setup>
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
|
|||
|
|
@ -1,9 +0,0 @@
|
|||
<template>
|
||||
<div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts"></script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
<template>
|
||||
<el-dialog v-model="addShow" :title="title" width="1200px" draggable :close-on-click-modal="false" >
|
||||
<el-form :model="form" ref="ruleFormRef" label-width="102px" :rules="formRules" style="padding: 0 80px 0px 0;">
|
||||
<el-form-item label="模版编号:" prop="title">
|
||||
<el-input v-model.trim="form.title" placeholder="请输入模版编号" clearable maxlength="30" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应用模块" prop="applyModel">
|
||||
<el-select v-model="form.applyModel" placeholder="Select" clearable filterable style="width: 100%;">
|
||||
<el-option v-for="item in applyModelList.list" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="协议附件:" prop="fileUrl">
|
||||
<uploadCom :maxLimit="3" listType="picture-card" :acceptTypeList="['.jpg','.jpeg','.png']">
|
||||
<template v-slot:uploadBtn>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
</template>
|
||||
</uploadCom>
|
||||
</el-form-item>
|
||||
<el-form-item label="协议内容:" style="width:1000px;" prop="editHtml">
|
||||
<editorWang ref="editorWangRef"></editorWang>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="cancelFn">取消</el-button>
|
||||
<el-button type="primary" @click="publishFn">
|
||||
确认发布
|
||||
</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import type { FormInstance, FormRules } from 'element-plus'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import editorWang from "components/com/editorWang.vue"
|
||||
const emits = defineEmits(['send'])
|
||||
const addShow = ref(false)
|
||||
let title = ref("新增")
|
||||
const editorWangRef = ref()
|
||||
|
||||
const ruleFormRef: any = ref()
|
||||
const form = reactive({
|
||||
code: '',
|
||||
applyModel: '',
|
||||
fileUrl: '',
|
||||
editHtml:""
|
||||
})
|
||||
const applyModelList = reactive({
|
||||
list: [{
|
||||
|
||||
value: 'Option1',
|
||||
label: 'Option1',
|
||||
},
|
||||
{
|
||||
value: 'Option2',
|
||||
label: 'Option2',
|
||||
|
||||
}]
|
||||
})
|
||||
|
||||
const formRules = reactive<FormRules<any>>({
|
||||
applyModel: [
|
||||
{ required: true, message: '请选择应用模块', trigger: 'blur' },
|
||||
],
|
||||
fileUrl: [
|
||||
{ required: true, message: '请上传协议附件', trigger: 'change' },
|
||||
],
|
||||
editHtml: [
|
||||
{ required: true, message: '请编辑协议内容', trigger: 'blur' },
|
||||
]
|
||||
|
||||
})
|
||||
|
||||
const publishFn = () => {
|
||||
if (!ruleFormRef) return
|
||||
ruleFormRef.value.validate((valid: any) => {
|
||||
if (valid) {
|
||||
const editVal= editorWangRef.value.getHtmlByFather()
|
||||
console.log("editVal",editVal)
|
||||
|
||||
console.log('submit!')
|
||||
} else {
|
||||
console.log('error submit!')
|
||||
return false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const cancelFn = (formEl: FormInstance | undefined) => {
|
||||
if (!ruleFormRef) return
|
||||
ruleFormRef.value.resetFields()
|
||||
editorWangRef.value.editorClear()
|
||||
addShow.value = false
|
||||
}
|
||||
|
||||
const open = (val: any) => {
|
||||
title.value = "新增"
|
||||
addShow.value = true
|
||||
}
|
||||
|
||||
const edit = () => {
|
||||
title.value = "编辑"
|
||||
addShow.value = true
|
||||
editorWangRef.value.setHtmlByFather("<p>head</p><p>hello <strong>word</strong></p>")
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
edit
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
<template>
|
||||
<el-card shadow="always" class="search_header_top_row1">
|
||||
|
||||
<el-form :inline="true" :model="filterForm" class="demo-form-inline">
|
||||
<el-form-item label="是否启用">
|
||||
<el-select v-model="filterForm.isEnable" placeholder="请选择是否启用" clearable filterable >
|
||||
<el-option v-for="item in isEnableList.list" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="模版编号">
|
||||
<el-input v-model.trim="filterForm.code" placeholder="请输入模版编号" clearable />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="serachFn">查询</el-button>
|
||||
<el-button type="plain" @click="resetFn">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div>
|
||||
<el-button type="primary" @click="addFn">新增</el-button>
|
||||
<el-button type="primary" @click="exportFn">导出</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
const emits = defineEmits(['search', 'reset', 'export', 'add'])
|
||||
const isEnableList = reactive({
|
||||
list: [{
|
||||
|
||||
value: 'Option1',
|
||||
label: 'Option1',
|
||||
},
|
||||
{
|
||||
value: 'Option2',
|
||||
label: 'Option2',
|
||||
|
||||
}]
|
||||
})
|
||||
const filterForm = reactive({
|
||||
isEnable:'',
|
||||
code: '',
|
||||
})
|
||||
|
||||
const serachFn = () => {
|
||||
emits('search', filterForm)
|
||||
}
|
||||
|
||||
const resetFn = () => {
|
||||
emits('reset')
|
||||
}
|
||||
|
||||
const exportFn = () => {
|
||||
emits('export')
|
||||
}
|
||||
const addFn = () => {
|
||||
emits('add')
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
<template>
|
||||
<headerTop
|
||||
@search="searchFn"
|
||||
@reset="resetFn"
|
||||
@export="exportFn"
|
||||
@add="addFn"
|
||||
></headerTop>
|
||||
<addCom ref="addComRef"></addCom>
|
||||
<el-card shadow="always" class="content_body_row">
|
||||
<el-table :data="tableListInfo.list" style="width: 100%" border
|
||||
:max-height="'calc(100vh - 72px - 48px - 65px - 12px - 60px)'">
|
||||
<el-table-column type="index" width="72" label="序号" />
|
||||
<el-table-column prop="v_title" label="标题" min-width="100" />
|
||||
<el-table-column prop="v_category" label="分类" min-width="120" />
|
||||
<el-table-column prop="v_publisher" label="发布人" min-width="120" />
|
||||
<el-table-column prop="v_showCount" label="查看人数" min-width="220" />
|
||||
<el-table-column label="操作" width="210" align="center">
|
||||
|
||||
<template #default="scope">
|
||||
<el-button type="primary" size="small" @click.prevent="showRowFn(scope.row)">
|
||||
查看
|
||||
</el-button>
|
||||
<el-button type="primary" size="small" @click.prevent="editRowFn(scope.row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="danger" size="small" @click.prevent="deleteRowFn(scope.row)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import headerTop from "./com/headerTop.vue"
|
||||
import addCom from "./com/addCom.vue"
|
||||
import {ElConfirmBeforeOpert} from "utils/elementCom"
|
||||
const addComRef = ref()
|
||||
|
||||
const tableData = [
|
||||
{
|
||||
v_id:'1',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
{
|
||||
v_id:'2',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
{
|
||||
v_id:'3',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
{
|
||||
v_id:'4',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
{
|
||||
v_id:'5',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
let tableListInfo = reactive({
|
||||
list: tableData
|
||||
})
|
||||
|
||||
const showRowFn=(row:any)=>{
|
||||
|
||||
}
|
||||
|
||||
|
||||
const editRowFn =(row:any)=>{
|
||||
addComRef.value.open({
|
||||
a:"111"
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const deleteItem = (row:any)=>{
|
||||
const itemID =row.v_id
|
||||
console.log("ITEMid",row)
|
||||
}
|
||||
|
||||
const deleteRowFn =(row:any)=>{
|
||||
ElConfirmBeforeOpert(
|
||||
'操作确认',
|
||||
'是否确定删除数据?',
|
||||
deleteItem,
|
||||
'确定',
|
||||
'取消',
|
||||
row
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
const searchFn =()=>{
|
||||
|
||||
}
|
||||
|
||||
const resetFn =()=>{
|
||||
|
||||
}
|
||||
|
||||
const exportFn =()=>{
|
||||
|
||||
}
|
||||
|
||||
const addFn =()=>{
|
||||
addComRef.value.open({
|
||||
a:"111"
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
<template>
|
||||
<el-dialog v-model="addShow" :title="title" width="1200px" draggable :close-on-click-modal="false" >
|
||||
<el-form :model="form" ref="ruleFormRef" label-width="88px" :rules="formRules" style="padding: 0 80px 0px 0;">
|
||||
<el-form-item label="标题:" prop="title">
|
||||
<el-input v-model.trim="form.title" placeholder="请输入标题" clearable maxlength="30" />
|
||||
</el-form-item>
|
||||
<el-form-item label="分类" prop="category">
|
||||
<el-select v-model="form.category" placeholder="Select" clearable filterable>
|
||||
<el-option v-for="item in categoryList.list" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<editorWang ref="editorWangRef"></editorWang>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="cancelFn">取消</el-button>
|
||||
<el-button type="primary" @click="publishFn">
|
||||
确认发布
|
||||
</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import type { FormInstance, FormRules } from 'element-plus'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import editorWang from "components/com/editorWang.vue"
|
||||
const emits = defineEmits(['send'])
|
||||
const addShow = ref(false)
|
||||
let title = ref("新增")
|
||||
const editorWangRef = ref()
|
||||
|
||||
const ruleFormRef: any = ref()
|
||||
const form = reactive({
|
||||
title: '',
|
||||
category: '',
|
||||
editorText: ''
|
||||
})
|
||||
const categoryList = reactive({
|
||||
list: [{
|
||||
|
||||
value: 'Option1',
|
||||
label: 'Option1',
|
||||
},
|
||||
{
|
||||
value: 'Option2',
|
||||
label: 'Option2',
|
||||
|
||||
}]
|
||||
})
|
||||
|
||||
const formRules = reactive<FormRules<any>>({
|
||||
title: [
|
||||
{ required: true, message: '请输入标题', trigger: 'blur' },
|
||||
],
|
||||
category: [
|
||||
{ required: true, message: '请选择分类', trigger: 'change' },
|
||||
]
|
||||
|
||||
})
|
||||
|
||||
const publishFn = () => {
|
||||
if (!ruleFormRef) return
|
||||
ruleFormRef.value.validate((valid: any) => {
|
||||
if (valid) {
|
||||
const editVal= editorWangRef.value.getHtmlByFather()
|
||||
console.log("editVal",editVal)
|
||||
|
||||
console.log('submit!')
|
||||
} else {
|
||||
console.log('error submit!')
|
||||
return false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const cancelFn = (formEl: FormInstance | undefined) => {
|
||||
if (!ruleFormRef) return
|
||||
ruleFormRef.value.resetFields()
|
||||
editorWangRef.value.editorClear()
|
||||
addShow.value = false
|
||||
}
|
||||
|
||||
const open = (val: any) => {
|
||||
title.value = "新增"
|
||||
addShow.value = true
|
||||
}
|
||||
|
||||
const edit = () => {
|
||||
title.value = "编辑"
|
||||
addShow.value = true
|
||||
editorWangRef.value.setHtmlByFather("<p>head</p><p>hello <strong>word</strong></p>")
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
edit
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
<template>
|
||||
<el-card shadow="always" class="search_header_top_row1">
|
||||
|
||||
<el-form :inline="true" :model="filterForm" class="demo-form-inline">
|
||||
<el-form-item label="分类">
|
||||
<el-select v-model="filterForm.category" placeholder="Select" clearable filterable >
|
||||
<el-option v-for="item in categoryList.list" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="关键字">
|
||||
<el-input v-model="filterForm.keyword" placeholder="请输入关键字" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="时间范围">
|
||||
<el-date-picker v-model="filterForm.dataRange" type="daterange" range-separator="To"
|
||||
start-placeholder="Start date" end-placeholder="End date" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="serachFn">查询</el-button>
|
||||
<el-button type="primary" @click="resetFn">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div>
|
||||
<el-button type="primary" @click="addFn">新增</el-button>
|
||||
<el-button type="primary" @click="exportFn">导出</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
const emits = defineEmits(['search', 'reset', 'export', 'add'])
|
||||
const categoryList = reactive({
|
||||
list: [{
|
||||
|
||||
value: 'Option1',
|
||||
label: 'Option1',
|
||||
},
|
||||
{
|
||||
value: 'Option2',
|
||||
label: 'Option2',
|
||||
|
||||
}]
|
||||
})
|
||||
const filterForm = reactive({
|
||||
category:'',
|
||||
keyword: '',
|
||||
dataRange: ''
|
||||
|
||||
})
|
||||
|
||||
const serachFn = () => {
|
||||
emits('search', filterForm)
|
||||
}
|
||||
|
||||
const resetFn = () => {
|
||||
emits('reset')
|
||||
}
|
||||
|
||||
const exportFn = () => {
|
||||
emits('export')
|
||||
}
|
||||
const addFn = () => {
|
||||
emits('add')
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -0,0 +1,137 @@
|
|||
<template>
|
||||
<headerTop
|
||||
@search="searchFn"
|
||||
@reset="resetFn"
|
||||
@export="exportFn"
|
||||
@add="addFn"
|
||||
></headerTop>
|
||||
<addCom ref="addComRef"></addCom>
|
||||
<el-card shadow="always" class="content_body_row">
|
||||
<el-table :data="tableListInfo.list" style="width: 100%" border
|
||||
:max-height="'calc(100vh - 72px - 48px - 65px - 12px - 60px)'">
|
||||
<el-table-column type="index" width="72" label="序号" />
|
||||
<el-table-column prop="v_title" label="标题" min-width="100" />
|
||||
<el-table-column prop="v_category" label="分类" min-width="120" />
|
||||
<el-table-column prop="v_publisher" label="发布人" min-width="120" />
|
||||
<el-table-column prop="v_showCount" label="查看人数" min-width="220" />
|
||||
<el-table-column label="操作" width="210" align="center">
|
||||
|
||||
<template #default="scope">
|
||||
<el-button type="primary" size="small" @click.prevent="showRowFn(scope.row)">
|
||||
查看
|
||||
</el-button>
|
||||
<el-button type="primary" size="small" @click.prevent="editRowFn(scope.row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="danger" size="small" @click.prevent="deleteRowFn(scope.row)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import headerTop from "./com/headerTop.vue"
|
||||
import addCom from "./com/addCom.vue"
|
||||
import {ElConfirmBeforeOpert} from "utils/elementCom"
|
||||
const addComRef = ref()
|
||||
|
||||
const tableData = [
|
||||
{
|
||||
v_id:'1',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
{
|
||||
v_id:'2',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
{
|
||||
v_id:'3',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
{
|
||||
v_id:'4',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
{
|
||||
v_id:'5',
|
||||
v_title: '2016-05-03',
|
||||
v_category: 'Tom',
|
||||
v_publisher: 'California',
|
||||
v_showCount: 'Los Angeles',
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
let tableListInfo = reactive({
|
||||
list: tableData
|
||||
})
|
||||
|
||||
const showRowFn=(row:any)=>{
|
||||
|
||||
}
|
||||
|
||||
|
||||
const editRowFn =(row:any)=>{
|
||||
addComRef.value.open({
|
||||
a:"111"
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const deleteItem = (row:any)=>{
|
||||
const itemID =row.v_id
|
||||
console.log("ITEMid",row)
|
||||
}
|
||||
|
||||
const deleteRowFn =(row:any)=>{
|
||||
ElConfirmBeforeOpert(
|
||||
'操作确认',
|
||||
'是否确定删除数据?',
|
||||
deleteItem,
|
||||
'确定',
|
||||
'取消',
|
||||
row
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
const searchFn =()=>{
|
||||
|
||||
}
|
||||
|
||||
const resetFn =()=>{
|
||||
|
||||
}
|
||||
|
||||
const exportFn =()=>{
|
||||
|
||||
}
|
||||
|
||||
const addFn =()=>{
|
||||
addComRef.value.open({
|
||||
a:"111"
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
<template>
|
||||
<div style="width: 100%;height: 520vh;">
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts"></script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
<template>
|
||||
<el-dialog v-model="addShow" :title="title" width="30%" draggable :close-on-click-modal="false" >
|
||||
<el-form :model="form" ref="ruleFormRef" label-width="88px" :rules="formRules" style="padding: 0 80px 0px 0;" >
|
||||
<el-form-item label="标题:" prop="title">
|
||||
<el-input v-model.trim="form.title" placeholder="请输入标题" clearable maxlength="30" />
|
||||
</el-form-item>
|
||||
<el-form-item label="图片:" prop="picture">
|
||||
<uploadCom :maxLimit="3" listType="picture-card" :acceptTypeList="['.jpg','.jpeg','.png']">
|
||||
<template v-slot:uploadBtn>
|
||||
<el-icon size="48" color="#aaa"><Plus /></el-icon>
|
||||
</template>
|
||||
</uploadCom>
|
||||
</el-form-item>
|
||||
<el-form-item label="跳转链接:" prop="linkUrl">
|
||||
<el-input v-model.trim="form.linkUrl" clearable />
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<span class="dialog-footer">
|
||||
<el-button @click="cancelFn">取消</el-button>
|
||||
<el-button type="primary" @click="publishFn">
|
||||
发布
|
||||
</el-button>
|
||||
</span>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import uploadCom from "components/com/uploadCom.vue"
|
||||
import type { FormInstance, FormRules } from 'element-plus'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { linkReg } from "utils/reg"
|
||||
const emits = defineEmits(['send'])
|
||||
const addShow = ref(false)
|
||||
let title = ref("新增")
|
||||
const ruleFormRef: any = ref()
|
||||
const form = reactive({
|
||||
title: '',
|
||||
picture: '',
|
||||
linkUrl: ''
|
||||
})
|
||||
// const validatorLink = (rule: any, value: any, callback: any) => {
|
||||
// if (linkReg.test(value)) {
|
||||
// callback()
|
||||
// } else {
|
||||
// callback(new Error("请输入正确格式的跳转链接"))
|
||||
// }
|
||||
// }
|
||||
const formRules = reactive<FormRules<any>>({
|
||||
title: [
|
||||
{ required: true, message: '请输入标题', trigger: 'blur' },
|
||||
],
|
||||
picture: [
|
||||
{ required: true, message: '请上传图片', trigger: 'blur' },
|
||||
],
|
||||
// linkUrl: [
|
||||
// {
|
||||
// required: true,
|
||||
// message: '请输入跳转链接',
|
||||
// trigger: 'blur',
|
||||
// },
|
||||
// {
|
||||
// validator: validatorLink,
|
||||
// trigger: 'blur'
|
||||
// }
|
||||
// ],
|
||||
|
||||
})
|
||||
|
||||
const publishFn = () => {
|
||||
if (!ruleFormRef) return
|
||||
ruleFormRef.value.validate((valid: any) => {
|
||||
if (valid) {
|
||||
if (form.linkUrl&&linkReg.test(form.linkUrl)) {
|
||||
ElMessage({
|
||||
type:'warning',
|
||||
message:"请输入正确格式的跳转链接"
|
||||
})
|
||||
}
|
||||
console.log('submit!')
|
||||
} else {
|
||||
console.log('error submit!')
|
||||
return false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const cancelFn = (formEl: FormInstance | undefined) => {
|
||||
if (!ruleFormRef) return
|
||||
ruleFormRef.value.resetFields()
|
||||
addShow.value =false
|
||||
}
|
||||
|
||||
const open = (val:any) => {
|
||||
title.value = "新增"
|
||||
addShow.value = true
|
||||
}
|
||||
|
||||
const edit = () => {
|
||||
title.value = "编辑"
|
||||
addShow.value = true
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
open,
|
||||
edit
|
||||
})
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
<template>
|
||||
<el-card shadow="always" class="search_header_top_row1">
|
||||
|
||||
<el-form :inline="true" :model="filterForm" class="demo-form-inline">
|
||||
<el-form-item label="关键字">
|
||||
<el-input v-model="filterForm.keyword" placeholder="请输入关键字" clearable />
|
||||
</el-form-item>
|
||||
<el-form-item label="时间范围">
|
||||
<el-date-picker v-model="filterForm.dataRange" type="daterange" range-separator="To" start-placeholder="Start date"
|
||||
end-placeholder="End date" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="serachFn">查询</el-button>
|
||||
<el-button type="plain" @click="resetFn">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div>
|
||||
<el-button type="primary" @click="sortFn">编辑排序</el-button>
|
||||
<el-button type="primary" @click="addFn">新增</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
const emits = defineEmits(['search','reset','sort','add'])
|
||||
|
||||
const filterForm = reactive({
|
||||
keyword: '',
|
||||
dataRange:''
|
||||
|
||||
})
|
||||
|
||||
const serachFn = () => {
|
||||
emits('search',filterForm)
|
||||
}
|
||||
|
||||
const resetFn=()=>{
|
||||
emits('reset')
|
||||
}
|
||||
|
||||
const sortFn =()=>{
|
||||
emits('sort')
|
||||
}
|
||||
const addFn =()=>{
|
||||
emits('add')
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
|
|
@ -0,0 +1,140 @@
|
|||
<template>
|
||||
<headerTop
|
||||
@search="searchFn"
|
||||
@reset="resetFn"
|
||||
@sort="sortFn"
|
||||
@add="addFn"
|
||||
></headerTop>
|
||||
<addCom ref="addComRef"></addCom>
|
||||
<el-card shadow="always" class="content_body_row">
|
||||
<el-table :data="tableListInfo.list" border style="width: 100%"
|
||||
:max-height="'calc(100vh - 72px - 48px - 65px - 12px - 60px)'">
|
||||
<el-table-column type="index" width="72" label="序号" />
|
||||
<el-table-column prop="date" label="标题" min-width="150" />
|
||||
<el-table-column prop="name" label="轮播图" min-width="120" />
|
||||
<el-table-column prop="state" label="跳转页面" min-width="120" />
|
||||
<el-table-column prop="city" label="是否启用" min-width="320" />
|
||||
<el-table-column prop="address" label="创建人" min-width="400" />
|
||||
<el-table-column prop="zip" label="创建日期" min-width="120" />
|
||||
<el-table-column prop="zip" label="操作" align="center" min-width="180">
|
||||
|
||||
<template #default="scope">
|
||||
<el-button type="primary" size="small" @click.prevent="editRowFn(scope.row)">
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button type="danger" size="small" @click.prevent="deleteRowFn(scope.row)">
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import headerTop from "./com/headerTop.vue"
|
||||
import addCom from "./com/addCom.vue"
|
||||
import {ElConfirmBeforeOpert} from "utils/elementCom"
|
||||
const addComRef = ref()
|
||||
|
||||
const tableData = [
|
||||
{
|
||||
v_id:'1',
|
||||
date: '2016-05-03',
|
||||
name: 'Tom',
|
||||
state: 'California',
|
||||
city: 'Los Angeles',
|
||||
address: 'No. 189, Grove St, Los Angeles',
|
||||
zip: 'CA 90036',
|
||||
},
|
||||
{
|
||||
v_id:'2',
|
||||
date: '2016-05-02',
|
||||
name: 'Tom',
|
||||
state: 'California',
|
||||
city: 'Los Angeles',
|
||||
address: 'No. 189, Grove St, Los Angeles',
|
||||
zip: 'CA 90036',
|
||||
},
|
||||
{
|
||||
v_id:'3',
|
||||
date: '2016-05-04',
|
||||
name: 'Tom',
|
||||
state: 'California',
|
||||
city: 'Los Angeles',
|
||||
address: 'No. 189, Grove St, Los Angeles',
|
||||
zip: 'CA 90036',
|
||||
},
|
||||
{
|
||||
v_id:'4',
|
||||
date: '2016-05-01',
|
||||
name: 'Tom',
|
||||
state: 'California',
|
||||
city: 'Los Angeles',
|
||||
address: 'No. 189, Grove St, Los Angeles',
|
||||
zip: 'CA 90036',
|
||||
},
|
||||
{
|
||||
v_id:'5',
|
||||
date: '2016-05-08',
|
||||
name: 'Tom',
|
||||
state: 'California',
|
||||
city: 'Los Angeles',
|
||||
address: 'No. 189, Grove St, Los Angeles',
|
||||
zip: 'CA 90036',
|
||||
},
|
||||
|
||||
]
|
||||
|
||||
let tableListInfo = reactive({
|
||||
list: tableData
|
||||
})
|
||||
|
||||
|
||||
const editRowFn =(row:any)=>{
|
||||
addComRef.value.open({
|
||||
a:"111"
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const deleteItem = (row:any)=>{
|
||||
const itemID =row.v_id
|
||||
console.log("ITEMid",row)
|
||||
}
|
||||
|
||||
const deleteRowFn =(row:any)=>{
|
||||
ElConfirmBeforeOpert(
|
||||
'操作确认',
|
||||
'是否确定删除数据?',
|
||||
deleteItem,
|
||||
'确定',
|
||||
'取消',
|
||||
row
|
||||
)
|
||||
|
||||
}
|
||||
|
||||
const searchFn =()=>{
|
||||
|
||||
}
|
||||
|
||||
const resetFn =()=>{
|
||||
|
||||
}
|
||||
|
||||
const sortFn =()=>{
|
||||
|
||||
}
|
||||
|
||||
const addFn =()=>{
|
||||
addComRef.value.open({
|
||||
a:"111"
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss"></style>
|
||||
Loading…
Reference in New Issue