合同管理
This commit is contained in:
parent
50ff159e2b
commit
d3643e3d58
|
|
@ -11,7 +11,7 @@ VITE_API_URL = '/proxyApi'
|
|||
# VITE_proxyTarget = 'http://192.168.2.127:28080' # 梁超
|
||||
# VITE_proxyTarget = 'http://36.33.26.201:17788/proxyApi' # 测试服务
|
||||
# VITE_proxyTarget = 'http://192.168.0.244:28580' # 测试服务
|
||||
VITE_proxyTarget = 'http://192.168.2.72:28080' # 盛旭
|
||||
VITE_proxyTarget = 'http://192.168.0.110:28080' # 盛旭
|
||||
|
||||
# VITE_proxyTarget = 'http://10.40.92.185:9206' # 赵福海 ( 设备类型)
|
||||
# VITE_proxyTarget = 'http://10.40.92.16:9502' # 牛 (个人中心 基础信息企业申请认证)
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@
|
|||
"@element-plus/icons-vue": "^2.3.1",
|
||||
"@js-preview/docx": "^1.6.2",
|
||||
"@vue-office/docx": "^1.6.2",
|
||||
"@vueup/vue-quill": "^1.2.0",
|
||||
"@vueuse/core": "^10.6.1",
|
||||
"axios": "^1.6.2",
|
||||
"element-plus": "^2.4.3",
|
||||
|
|
@ -21,6 +22,7 @@
|
|||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.1.7",
|
||||
"pinia-plugin-persist": "^1.0.0",
|
||||
"quill": "^2.0.3",
|
||||
"vite-plugin-html": "^3.2.0",
|
||||
"vite-plugin-zip-file": "^2.2.0",
|
||||
"vue": "^3.3.4",
|
||||
|
|
@ -955,6 +957,82 @@
|
|||
"integrity": "sha512-CPuIReonid9+zOG/CGTT05FXrPYATEqoDGNrEaqS4hwcw5BUNM2FguC0mOwJD4Jr16UpRVl9N0pY3P+srIbqmg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@vueup/vue-quill": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/@vueup/vue-quill/-/vue-quill-1.2.0.tgz",
|
||||
"integrity": "sha512-kd5QPSHMDpycklojPXno2Kw2JSiKMYduKYQckTm1RJoVDA557MnyUXgcuuDpry4HY/Rny9nGNcK+m3AHk94wag==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"quill": "^1.3.7",
|
||||
"quill-delta": "^4.2.2"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "^3.2.41"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueup/vue-quill/node_modules/eventemitter3": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/eventemitter3/-/eventemitter3-2.0.3.tgz",
|
||||
"integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@vueup/vue-quill/node_modules/fast-diff": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/fast-diff/-/fast-diff-1.2.0.tgz",
|
||||
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/@vueup/vue-quill/node_modules/parchment": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/parchment/-/parchment-1.1.4.tgz",
|
||||
"integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==",
|
||||
"license": "BSD-3-Clause"
|
||||
},
|
||||
"node_modules/@vueup/vue-quill/node_modules/quill": {
|
||||
"version": "1.3.7",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/quill/-/quill-1.3.7.tgz",
|
||||
"integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"clone": "^2.1.1",
|
||||
"deep-equal": "^1.0.1",
|
||||
"eventemitter3": "^2.0.3",
|
||||
"extend": "^3.0.2",
|
||||
"parchment": "^1.1.4",
|
||||
"quill-delta": "^3.6.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueup/vue-quill/node_modules/quill-delta": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/quill-delta/-/quill-delta-4.2.2.tgz",
|
||||
"integrity": "sha512-qjbn82b/yJzOjstBgkhtBjN2TNK+ZHP/BgUQO+j6bRhWQQdmj2lH6hXG7+nwwLF41Xgn//7/83lxs9n2BkTtTg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"fast-diff": "1.2.0",
|
||||
"lodash.clonedeep": "^4.5.0",
|
||||
"lodash.isequal": "^4.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueup/vue-quill/node_modules/quill/node_modules/fast-diff": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/fast-diff/-/fast-diff-1.1.2.tgz",
|
||||
"integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==",
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/@vueup/vue-quill/node_modules/quill/node_modules/quill-delta": {
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/quill-delta/-/quill-delta-3.6.3.tgz",
|
||||
"integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"deep-equal": "^1.0.1",
|
||||
"extend": "^3.0.2",
|
||||
"fast-diff": "1.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/core": {
|
||||
"version": "10.11.1",
|
||||
"resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-10.11.1.tgz",
|
||||
|
|
@ -1642,12 +1720,12 @@
|
|||
}
|
||||
},
|
||||
"node_modules/dunder-proto": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/dunder-proto/-/dunder-proto-1.0.0.tgz",
|
||||
"integrity": "sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==",
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/dunder-proto/-/dunder-proto-1.0.1.tgz",
|
||||
"integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind-apply-helpers": "^1.0.0",
|
||||
"call-bind-apply-helpers": "^1.0.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"gopd": "^1.2.0"
|
||||
},
|
||||
|
|
@ -1853,9 +1931,9 @@
|
|||
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
|
||||
},
|
||||
"node_modules/eventemitter3": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/eventemitter3/-/eventemitter3-2.0.3.tgz",
|
||||
"integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==",
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/eventemitter3/-/eventemitter3-5.0.1.tgz",
|
||||
"integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/extend": {
|
||||
|
|
@ -1865,9 +1943,9 @@
|
|||
"license": "MIT"
|
||||
},
|
||||
"node_modules/fast-diff": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/fast-diff/-/fast-diff-1.1.2.tgz",
|
||||
"integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==",
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/fast-diff/-/fast-diff-1.3.0.tgz",
|
||||
"integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==",
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/fast-glob": {
|
||||
|
|
@ -2479,6 +2557,18 @@
|
|||
"lodash-es": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/lodash.clonedeep": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
|
||||
"integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lodash.isequal": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
|
||||
"integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/lower-case": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/lower-case/-/lower-case-2.0.2.tgz",
|
||||
|
|
@ -2815,9 +2905,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/parchment": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/parchment/-/parchment-1.1.4.tgz",
|
||||
"integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/parchment/-/parchment-3.0.0.tgz",
|
||||
"integrity": "sha512-HUrJFQ/StvgmXRcQ1ftY6VEZUq3jA2t9ncFN4F84J/vN0/FPpQF+8FKXb3l6fLces6q0uOHj6NJn+2xvZnxO6A==",
|
||||
"license": "BSD-3-Clause"
|
||||
},
|
||||
"node_modules/pascal-case": {
|
||||
|
|
@ -3055,31 +3145,32 @@
|
|||
]
|
||||
},
|
||||
"node_modules/quill": {
|
||||
"version": "1.3.7",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/quill/-/quill-1.3.7.tgz",
|
||||
"integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==",
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/quill/-/quill-2.0.3.tgz",
|
||||
"integrity": "sha512-xEYQBqfYx/sfb33VJiKnSJp8ehloavImQ2A6564GAbqG55PGw1dAWUn1MUbQB62t0azawUS2CZZhWCjO8gRvTw==",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"clone": "^2.1.1",
|
||||
"deep-equal": "^1.0.1",
|
||||
"eventemitter3": "^2.0.3",
|
||||
"extend": "^3.0.2",
|
||||
"parchment": "^1.1.4",
|
||||
"quill-delta": "^3.6.2"
|
||||
"eventemitter3": "^5.0.1",
|
||||
"lodash-es": "^4.17.21",
|
||||
"parchment": "^3.0.0",
|
||||
"quill-delta": "^5.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"npm": ">=8.2.3"
|
||||
}
|
||||
},
|
||||
"node_modules/quill-delta": {
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/quill-delta/-/quill-delta-3.6.3.tgz",
|
||||
"integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/quill-delta/-/quill-delta-5.1.0.tgz",
|
||||
"integrity": "sha512-X74oCeRI4/p0ucjb5Ma8adTXd9Scumz367kkMK5V/IatcX6A0vlgLgKbzXWy5nZmCGeNJm2oQX0d2Eqj+ZIlCA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"deep-equal": "^1.0.1",
|
||||
"extend": "^3.0.2",
|
||||
"fast-diff": "1.1.2"
|
||||
"fast-diff": "^1.3.0",
|
||||
"lodash.clonedeep": "^4.5.0",
|
||||
"lodash.isequal": "^4.5.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10"
|
||||
"node": ">= 12.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/read-package-json-fast": {
|
||||
|
|
@ -3888,6 +3979,52 @@
|
|||
"npm": ">= 3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-quill-editor/node_modules/eventemitter3": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/eventemitter3/-/eventemitter3-2.0.3.tgz",
|
||||
"integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/vue-quill-editor/node_modules/fast-diff": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/fast-diff/-/fast-diff-1.1.2.tgz",
|
||||
"integrity": "sha512-KaJUt+M9t1qaIteSvjc6P3RbMdXsNhK61GRftR6SNxqmhthcd9MGIi4T+o0jD8LUSpSnSKXE20nLtJ3fOHxQig==",
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/vue-quill-editor/node_modules/parchment": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/parchment/-/parchment-1.1.4.tgz",
|
||||
"integrity": "sha512-J5FBQt/pM2inLzg4hEWmzQx/8h8D0CiDxaG3vyp9rKrQRSDgBlhjdP5jQGgosEajXPSQouXGHOmVdgo7QmJuOg==",
|
||||
"license": "BSD-3-Clause"
|
||||
},
|
||||
"node_modules/vue-quill-editor/node_modules/quill": {
|
||||
"version": "1.3.7",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/quill/-/quill-1.3.7.tgz",
|
||||
"integrity": "sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==",
|
||||
"license": "BSD-3-Clause",
|
||||
"dependencies": {
|
||||
"clone": "^2.1.1",
|
||||
"deep-equal": "^1.0.1",
|
||||
"eventemitter3": "^2.0.3",
|
||||
"extend": "^3.0.2",
|
||||
"parchment": "^1.1.4",
|
||||
"quill-delta": "^3.6.2"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-quill-editor/node_modules/quill-delta": {
|
||||
"version": "3.6.3",
|
||||
"resolved": "https://mirrors.huaweicloud.com/repository/npm/quill-delta/-/quill-delta-3.6.3.tgz",
|
||||
"integrity": "sha512-wdIGBlcX13tCHOXGMVnnTVFtGRLoP0imqxM696fIPwIf5ODIYUHIvHbZcyvGlZFiFhK5XzDC2lpjbxRhnM05Tg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"deep-equal": "^1.0.1",
|
||||
"extend": "^3.0.2",
|
||||
"fast-diff": "1.1.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10"
|
||||
}
|
||||
},
|
||||
"node_modules/vue-router": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmmirror.com/vue-router/-/vue-router-4.5.0.tgz",
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@
|
|||
"@element-plus/icons-vue": "^2.3.1",
|
||||
"@js-preview/docx": "^1.6.2",
|
||||
"@vue-office/docx": "^1.6.2",
|
||||
"@vueup/vue-quill": "^1.2.0",
|
||||
"@vueuse/core": "^10.6.1",
|
||||
"axios": "^1.6.2",
|
||||
"element-plus": "^2.4.3",
|
||||
|
|
@ -27,6 +28,7 @@
|
|||
"nprogress": "^0.2.0",
|
||||
"pinia": "^2.1.7",
|
||||
"pinia-plugin-persist": "^1.0.0",
|
||||
"quill": "^2.0.3",
|
||||
"vite-plugin-html": "^3.2.0",
|
||||
"vite-plugin-zip-file": "^2.2.0",
|
||||
"vue": "^3.3.4",
|
||||
|
|
|
|||
|
|
@ -21,3 +21,7 @@ export const delContractApi = (data: any = {}) => {
|
|||
export const updateStatus = (data: any = {}) => {
|
||||
return post('/material-mall/contract/updateStatus', data)
|
||||
}
|
||||
//合同模板选择
|
||||
export const getContractSelectList = () => {
|
||||
return get('/material-mall/contract/lisTemplate', {})
|
||||
}
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
import { get, post } from '../../index'
|
||||
|
||||
// 新增快捷消息
|
||||
export const addMessageApi = (data: any = {}) => {
|
||||
return post('/material-mall/reply/add', data)
|
||||
}
|
||||
// 快捷消息列表
|
||||
export const getMessageListApi = (data: any = {}) => {
|
||||
return get('/material-mall/reply/list', data)
|
||||
}
|
||||
// 快捷消息编辑
|
||||
export const editMessageApi = (data: any = {}) => {
|
||||
return post('/material-mall/reply/edit', data)
|
||||
}
|
||||
// 快捷消息删除
|
||||
export const delMessageApi = (data: any = {}) => {
|
||||
return post('/material-mall/reply/del', data)
|
||||
}
|
||||
|
|
@ -12,17 +12,17 @@ import './assets/font/iconfont.js'
|
|||
import ElementPlus from 'element-plus'
|
||||
import zhCn from 'element-plus/es/locale/lang/zh-cn'
|
||||
import VueQrcode from 'vue-qrcode'
|
||||
|
||||
import { QuillEditor } from '@vueup/vue-quill';
|
||||
import '@vueup/vue-quill/dist/vue-quill.snow.css'; // 引入样式
|
||||
|
||||
import registerDirectives from 'utils/directive'
|
||||
const app = createApp(App)
|
||||
|
||||
|
||||
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
||||
app.component(key, component)
|
||||
app.component('vue-qr-code', VueQrcode)
|
||||
}
|
||||
|
||||
app.component('QuillEditor', QuillEditor); // 全局注册
|
||||
|
||||
app.use(pinia)
|
||||
app.use(router)
|
||||
|
|
|
|||
|
|
@ -259,6 +259,17 @@ const routes: Array<RouteRecordRaw> = [
|
|||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/quickMessage',
|
||||
name: 'quickMessage',
|
||||
component: () => import('views/user/quickMessage/index.vue'),
|
||||
meta: {
|
||||
title: '快捷消息设置',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/rent-termination',
|
||||
name: 'rent-termination',
|
||||
|
|
|
|||
|
|
@ -96,7 +96,7 @@
|
|||
></el-switch>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column align="center" prop="qcTime" label="合同附件">
|
||||
<!-- <el-table-column align="center" prop="qcTime" label="合同附件">
|
||||
<template #default="{ row }">
|
||||
<a
|
||||
:href="row.bmFileInfoList.length>0 ? row.bmFileInfoList[0].fileUrl:null"
|
||||
|
|
@ -105,7 +105,7 @@
|
|||
>查看</a
|
||||
>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column> -->
|
||||
<el-table-column align="center" prop="createTime" label="创建时间" />
|
||||
<el-table-column align="center" prop="updateTime" label="更新时间" />
|
||||
<el-table-column align="center" label="操作" :width="220">
|
||||
|
|
@ -166,41 +166,22 @@
|
|||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="1" style="margin-bottom: 0" class="upload-tip">
|
||||
支持格式:word.单个文件大小不能超过2M,最多可上传1张
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" >
|
||||
<el-col :span="24">
|
||||
<el-form-item label="附件" prop="fileInfoList">
|
||||
<div style="flex: 1">
|
||||
<UploadComponentNew
|
||||
:maxSize="10"
|
||||
:max-limit="1"
|
||||
width="100%"
|
||||
height="100%"
|
||||
:multiple="true"
|
||||
:autoUpload="true"
|
||||
:minLimit="addAndEditForm.fileInfoList.length"
|
||||
:actionUrl="uploadUrl"
|
||||
listType="text"
|
||||
:justifyContent="`flex-start`"
|
||||
@onFileChange="onFileChange"
|
||||
:acceptTypeList="['.doc','.docx' ]"
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同模板:" prop="contentId">
|
||||
<el-select
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="请选择"
|
||||
v-model="addAndEditForm.contentId"
|
||||
@change="handleSelectChange"
|
||||
>
|
||||
<template v-slot:default>
|
||||
<!-- <el-icon size="48" color="#aaa"><Plus /></el-icon> -->
|
||||
<el-button
|
||||
:icon="UploadFilled"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
>上传文件</el-button
|
||||
>
|
||||
</template>
|
||||
</UploadComponentNew>
|
||||
</div>
|
||||
<el-option
|
||||
:key="item.id"
|
||||
:value="item.id"
|
||||
:label="item.templateName"
|
||||
v-for="item in contractList"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -221,7 +202,8 @@
|
|||
<el-dialog
|
||||
v-model="dialogVisibleSettleinEdit"
|
||||
:title="settleinTitle"
|
||||
width="40%"
|
||||
width="50%"
|
||||
height="50%"
|
||||
destroy-on-close
|
||||
class="centered-dialog"
|
||||
:close-on-click-modal="false"
|
||||
|
|
@ -234,26 +216,17 @@
|
|||
:model="addAndEditForm"
|
||||
:rules="addAndEditFormRules"
|
||||
>
|
||||
<el-row style="font-weight:bold">
|
||||
<el-col><span>资讯信息</span></el-col>
|
||||
<el-divider></el-divider>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="14">
|
||||
<el-form-item label="资讯标题" prop="xwbt">
|
||||
<el-input v-model="dataForm.xwbt" placeholder="请输入资讯标题"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<el-form-item label="副标题" prop="fbt">
|
||||
<el-input v-model="dataForm.fbt" placeholder="请输入副标题"></el-input>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="合同模板名称" prop="xwbt">
|
||||
<el-input v-model="dataForm.xwbt" placeholder="请输入合同模板名称"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="内容" prop="nr" >
|
||||
<QuillEditor v-model="dataForm.nr" class="editor" :options="editorOption" />
|
||||
<el-form-item label="内容" prop="nr" class="form-item-content">
|
||||
<quill-editor v-model="dataForm.nr" class="editor" :options="editorOption" ></quill-editor>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
|
@ -287,11 +260,10 @@ import { useStore } from 'store/user'
|
|||
const store = useStore()
|
||||
import { mainStore } from 'store/main'
|
||||
// 引入富文本组件
|
||||
import QuillEditor from 'vue-quill-editor'
|
||||
// 引入富文本组件样式
|
||||
import 'quill/dist/quill.core.css'
|
||||
import 'quill/dist/quill.snow.css'
|
||||
import 'quill/dist/quill.bubble.css'
|
||||
import { QuillEditor } from '@vueup/vue-quill';
|
||||
import "quill/dist/quill.core.css";
|
||||
import "quill/dist/quill.snow.css";
|
||||
import "quill/dist/quill.bubble.css";
|
||||
const store2 = mainStore()
|
||||
const isViewForm = ref(false)
|
||||
|
||||
|
|
@ -308,6 +280,7 @@ import {
|
|||
editContractApi, //修改
|
||||
delContractApi, //删除
|
||||
updateStatus, //修改状态
|
||||
getContractSelectList, //合同选择列表
|
||||
} from 'http/api/contract-manage'
|
||||
import { InfoFilled, UploadFilled } from '@element-plus/icons-vue'
|
||||
const total = ref(0)
|
||||
|
|
@ -325,6 +298,8 @@ const queryParams: any = reactive({
|
|||
const addAndEditForm = ref<any>({
|
||||
id: '',
|
||||
contractName: '',
|
||||
content:'',
|
||||
contentId:'',
|
||||
fileInfoList: [],
|
||||
fileInfoTempList: [],
|
||||
bmFileInfoList: [],
|
||||
|
|
@ -381,12 +356,35 @@ const settleinTitle = ref('')
|
|||
// 合同新增弹框显示隐藏
|
||||
const dialogVisibleSettlein: any = ref(false)
|
||||
const dialogVisibleSettleinEdit: any = ref(false)
|
||||
const contractList:any = ref([])
|
||||
// 合同新增
|
||||
const addContract = () => {
|
||||
const addContract = async() => {
|
||||
settleinTitle.value = '合同新建'
|
||||
contractList.value = []
|
||||
const res: any = await getContractSelectList()
|
||||
if(res.data.length>0 ){
|
||||
res.data.forEach((item:any) => {
|
||||
contractList.value.push({
|
||||
id:item.id,
|
||||
templateName:item.templateName,
|
||||
content:item.content,
|
||||
})
|
||||
});
|
||||
}
|
||||
dialogVisibleSettlein.value = true;
|
||||
}
|
||||
|
||||
const handleSelectChange = (selectedId:number) => {
|
||||
console.log('111111',selectedId)
|
||||
let selectedContract = ''
|
||||
contractList.value.forEach((item:any) => {
|
||||
if (item.id === selectedId) {
|
||||
selectedContract = item.content;
|
||||
}
|
||||
});
|
||||
console.log('2222',selectedContract)
|
||||
addAndEditForm.value.content = selectedContract;
|
||||
}
|
||||
// 合同编辑
|
||||
const onContract = (row: any) => {
|
||||
addAndEditForm.value.id = row.id
|
||||
|
|
@ -420,16 +418,14 @@ const onFileChange = (fileList: any) => {
|
|||
|
||||
const addAndEditFormRules = reactive({
|
||||
contractName: [{ required: true, message: '请输入合同名称', trigger: 'blur' }],
|
||||
fileInfoList: [{ required: true, message: '请上传合同附件', trigger: 'blur' }],
|
||||
contentId: [{ required: true, message: '请选择合同模板', trigger: 'blur' }],
|
||||
})
|
||||
|
||||
// 提交
|
||||
const onSubmit = () => {
|
||||
addAndEditForm.value.fileInfoList = addAndEditForm.value.fileInfoTempList
|
||||
addAndEditFormRef.value.validate(async (valid: any) => {
|
||||
if (valid) {
|
||||
const SEN_API = settleinTitle.value === '合同修改' ? editContractApi : addContractApi
|
||||
addAndEditForm.value.bmFileInfoList = addAndEditForm.value.fileInfoList
|
||||
const res: any = await SEN_API(addAndEditForm.value)
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
|
|
@ -463,6 +459,12 @@ const onCancel = () => {
|
|||
|
||||
const myQuillEditor = ref()
|
||||
|
||||
// 样式部分
|
||||
const toolbarStyle = {
|
||||
width: '100%', // 与编辑工具器一样的宽度
|
||||
height: '50px', // 固定高度
|
||||
};
|
||||
|
||||
// 工具栏配置
|
||||
const toolbarOptions = ref<any>([
|
||||
['bold', 'italic', 'underline', 'strike'], // 加粗 斜体 下划线 删除线
|
||||
|
|
@ -471,7 +473,7 @@ const toolbarOptions = ref<any>([
|
|||
[{ list: 'ordered' }, { list: 'bullet' }], // 有序、无序列表
|
||||
[{ script: 'sub' }, { script: 'super' }], // 上标/下标
|
||||
[{ indent: '-1' }, { indent: '+1' }], // 缩进
|
||||
// [{'direction': 'rtl'}], // 文本方向
|
||||
// [{'direction': 'rtl'}], // 文本方向
|
||||
[{ size: ['small', false, 'large', 'huge'] }], // 字体大小
|
||||
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题
|
||||
[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色
|
||||
|
|
@ -481,11 +483,11 @@ const toolbarOptions = ref<any>([
|
|||
|
||||
const editorOption = ref<any>({ // 编辑框操作事件
|
||||
theme: 'snow', // or 'bubble'
|
||||
placeholder: '请输入资讯内容...',
|
||||
// placeholder: '请输入资讯内容...',
|
||||
modules: {
|
||||
toolbar: {
|
||||
container: toolbarOptions,
|
||||
}
|
||||
},
|
||||
}
|
||||
})
|
||||
const dataForm = ref<any>( {
|
||||
|
|
@ -503,6 +505,9 @@ onMounted(() => {
|
|||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
:deep.editor {
|
||||
height: 300px;
|
||||
}
|
||||
:deep.upload-tip .el-form-item__label {
|
||||
color: transparent;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ const allList = [
|
|||
{ title: '订单管理', name: 'orderManagement', permission: ['2'] },
|
||||
{ title: '收货地址管理', name: 'address-manage', permission: ['2'] },
|
||||
{ title: '合同管理', name: 'contract-manage', permission: ['1'] },
|
||||
{ title: '快捷消息设置', name: 'quickMessage', permission: ['1'] },
|
||||
]
|
||||
const menuList: any = computed(() => {
|
||||
return allList.filter((e) => e.permission.includes(isType.value))
|
||||
|
|
|
|||
|
|
@ -0,0 +1,396 @@
|
|||
<template>
|
||||
<!-- 寻源需求 -->
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryFormRef"
|
||||
:inline="true"
|
||||
size="default"
|
||||
label-width="0"
|
||||
>
|
||||
<!-- 表单搜索 -->
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="replyTitle">
|
||||
<el-input
|
||||
v-model.trim="queryParams.replyTitle"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="请输入快捷回复标题"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="creater">
|
||||
<el-input
|
||||
v-model.trim="queryParams.creater"
|
||||
style="width: 100%"
|
||||
clearable
|
||||
placeholder="请输入上传人"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="createrTime">
|
||||
<el-date-picker
|
||||
v-model="createrTime"
|
||||
type="daterange"
|
||||
style="width: 100%"
|
||||
range-separator="-"
|
||||
value-format="YYYY-MM-DD"
|
||||
start-placeholder="上传开始日期"
|
||||
end-placeholder="上传结束日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-button class="primary-lease" type="primary" @click="getMessageListData"
|
||||
>查询</el-button
|
||||
>
|
||||
<el-button
|
||||
class="primary-lease"
|
||||
type="primary"
|
||||
@click="onReset"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="18">
|
||||
<el-form-item>
|
||||
<el-button class="primary-lease" type="primary" @click="addContract"
|
||||
>新建</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<!-- 表格 -->
|
||||
<el-table
|
||||
:data="qualityLis"
|
||||
show-overflow-tooltip
|
||||
:header-cell-style="{
|
||||
background: '#00a288',
|
||||
color: '#fff',
|
||||
}"
|
||||
>
|
||||
<el-table-column align="center" label="序号" type="index" width="80" />
|
||||
<el-table-column align="center" prop="replyTitle" label="快捷问题" />
|
||||
<el-table-column align="center" prop="replyContent" label="快捷回答" />
|
||||
<el-table-column align="center" prop="nickName" label="上传人" />
|
||||
<el-table-column align="center" prop="createrTime" label="创建时间" />
|
||||
<el-table-column align="center" label="操作" :width="220">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="onContract(row, false)"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
size="small"
|
||||
type="danger"
|
||||
@click="onDelete(row.id, true)"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<PagingComponent
|
||||
@getList="getMessageListData"
|
||||
:pageSize="queryParams.pageSize"
|
||||
:pageNumber="queryParams.pageNum"
|
||||
:total="total"
|
||||
/>
|
||||
|
||||
<!-- 新增和修改弹框 -->
|
||||
<el-dialog
|
||||
v-model="dialogVisibleSettlein"
|
||||
:title="settleinTitle"
|
||||
width="40%"
|
||||
destroy-on-close
|
||||
class="centered-dialog"
|
||||
:close-on-click-modal="false"
|
||||
@close="onDialogClose"
|
||||
>
|
||||
<el-form
|
||||
label-width="140px"
|
||||
ref="addAndEditFormRef"
|
||||
label-position="right"
|
||||
:model="addAndEditForm"
|
||||
:rules="addAndEditFormRules"
|
||||
>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="快捷问题:" prop="replyTitle">
|
||||
<el-input
|
||||
autocomplete="off"
|
||||
style="width: 100%"
|
||||
maxlength="30"
|
||||
v-model="addAndEditForm.replyTitle"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="快捷回答:" prop="replyContent">
|
||||
<el-input
|
||||
autocomplete="off"
|
||||
style="width: 100%"
|
||||
maxlength="100"
|
||||
type="textarea"
|
||||
:rows="4"
|
||||
v-model="addAndEditForm.replyContent"
|
||||
placeholder="请输入快捷回答内容"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" class="primary-lease" @click="onCancel"
|
||||
>取消</el-button
|
||||
>
|
||||
<el-button class="primary-lease" type="primary" @click="onSubmit()">
|
||||
提交
|
||||
</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import TableComponent from 'components/TableComponent/index.vue'
|
||||
import FormComponent from 'components/FormComponent/index.vue'
|
||||
import PagingComponent from 'components/PagingComponent/index.vue'
|
||||
import UploadComponentNew from 'components/uploadComponentNew/index.vue'
|
||||
import TitleTip from 'components/TitleTip/index.vue'
|
||||
import uploadComponent from 'components/uploadComponent/index.vue'
|
||||
import previewImg from './previewImg/index.vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import type { FormInstance } from 'element-plus'
|
||||
import { ref } from 'vue'
|
||||
import { useStore } from 'store/user'
|
||||
const store = useStore()
|
||||
import { mainStore } from 'store/main'
|
||||
|
||||
const store2 = mainStore()
|
||||
const isViewForm = ref(false)
|
||||
|
||||
const isDisabled = ref(false)
|
||||
|
||||
const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
|
||||
|
||||
const qualityLis = ref<any>([])
|
||||
const queryFormRef = ref<any>(null)
|
||||
|
||||
import {
|
||||
getMessageListApi, //列表
|
||||
addMessageApi, //新增
|
||||
editMessageApi, //修改
|
||||
delMessageApi, //删除
|
||||
} from 'http/api/quickMessage'
|
||||
import { InfoFilled, UploadFilled } from '@element-plus/icons-vue'
|
||||
const total = ref(0)
|
||||
const createTime = ref([])
|
||||
/* 查询参数 */
|
||||
const queryParams: any = reactive({
|
||||
replyTitle: '',
|
||||
creater: '',
|
||||
startTime: '',
|
||||
endTime: '',
|
||||
pageSize: 10,
|
||||
pageNum: 1,
|
||||
})
|
||||
|
||||
const addAndEditForm = ref<any>({
|
||||
id: '',
|
||||
replyTitle: '',
|
||||
replyContent: '',
|
||||
})
|
||||
|
||||
// 获取列表
|
||||
const getMessageListData = async () => {
|
||||
if (createTime.value.length > 0) {
|
||||
queryParams.startTime = createTime.value[0]
|
||||
queryParams.endTime = createTime.value[1]
|
||||
}
|
||||
const { data: res }: any = await getMessageListApi(queryParams)
|
||||
qualityLis.value = res.rows
|
||||
total.value = res.total
|
||||
}
|
||||
|
||||
// 重置
|
||||
const onReset = () => {
|
||||
createTime.value = []
|
||||
queryParams.startTime = ''
|
||||
queryParams.endTime = ''
|
||||
queryParams.pageNum = 1
|
||||
queryParams.pageSize = 10
|
||||
queryFormRef.value.resetFields()
|
||||
getMessageListData()
|
||||
}
|
||||
|
||||
|
||||
const addAndEditFormRef = ref()
|
||||
const settleinTitle = ref('')
|
||||
// 快捷消息新增弹框显示隐藏
|
||||
const dialogVisibleSettlein: any = ref(false)
|
||||
const dialogVisibleSettleinEdit: any = ref(false)
|
||||
// 快捷消息新增
|
||||
const addContract = () => {
|
||||
settleinTitle.value = '快捷消息新建'
|
||||
dialogVisibleSettlein.value = true;
|
||||
}
|
||||
|
||||
// 快捷消息编辑
|
||||
const onContract = (row: any) => {
|
||||
addAndEditForm.value.id = row.id
|
||||
addAndEditForm.value.replyTitle = row.replyTitle
|
||||
addAndEditForm.value.replyContent = row.replyContent
|
||||
settleinTitle.value = '快捷消息修改'
|
||||
dialogVisibleSettlein.value = true
|
||||
}
|
||||
|
||||
const onDialogClose = () => {
|
||||
addAndEditFormRef.value.resetFields()
|
||||
addAndEditForm.value.id = ''
|
||||
addAndEditForm.value.replyTitle = ''
|
||||
addAndEditForm.value.replyContent = ''
|
||||
}
|
||||
|
||||
// 提交
|
||||
const onSubmit = () => {
|
||||
addAndEditFormRef.value.validate(async (valid: any) => {
|
||||
if (valid) {
|
||||
const SEN_API = settleinTitle.value === '快捷消息修改' ? editMessageApi : addMessageApi
|
||||
const res: any = await SEN_API(addAndEditForm.value)
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '提交成功',
|
||||
})
|
||||
dialogVisibleSettlein.value = false
|
||||
getMessageListData()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 删除
|
||||
const onDelete = async (id: any) => {
|
||||
ElMessageBox.confirm('是否确定删除?', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
})
|
||||
.then(() => {
|
||||
return delMessageApi({ id })
|
||||
})
|
||||
.then((res) => {
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '删除成功',
|
||||
})
|
||||
getMessageListData()
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
|
||||
|
||||
// 取消按钮
|
||||
const onCancel = () => {
|
||||
dialogVisibleSettlein.value = false
|
||||
}
|
||||
const addAndEditFormRules = reactive({
|
||||
replyTitle: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入快捷问题',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
replyContent: [
|
||||
{
|
||||
required: true,
|
||||
message: '请输入快捷回答',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
})
|
||||
onMounted(() => {
|
||||
getMessageListData()
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
:deep.upload-tip .el-form-item__label {
|
||||
color: transparent;
|
||||
}
|
||||
.el-pagination {
|
||||
justify-content: flex-end;
|
||||
padding: 5px 0;
|
||||
}
|
||||
:deep.el-pagination.is-background .el-pager li.is-active {
|
||||
background-color: #3cb4a6;
|
||||
}
|
||||
:deep.el-form--inline .el-form-item {
|
||||
margin-right: 6px;
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
.img-list {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img-items {
|
||||
width: 120px;
|
||||
height: 120px;
|
||||
margin-right: 8px;
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.mask-img {
|
||||
visibility: hidden;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #000;
|
||||
opacity: 0.5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.delete-icon {
|
||||
font-size: 20px;
|
||||
cursor: pointer;
|
||||
z-index: 9;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.img-items:hover .mask-img {
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue