标签页面完善
This commit is contained in:
parent
26823d5cb8
commit
f6237bd741
|
|
@ -8,10 +8,10 @@ VITE_API_URL = '/proxyApi'
|
|||
# VITE_proxyTarget = 'http://10.40.92.74:8080' #盛旭
|
||||
|
||||
# VITE_proxyTarget = 'http://192.168.2.246:28080' # 马帅
|
||||
# VITE_proxyTarget = 'http://192.168.2.127:28080' # 梁超
|
||||
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.2.72:28080' # 盛旭
|
||||
|
||||
# VITE_proxyTarget = 'http://10.40.92.185:9206' # 赵福海 ( 设备类型)
|
||||
# VITE_proxyTarget = 'http://10.40.92.16:9502' # 牛 (个人中心 基础信息企业申请认证)
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
"vite-plugin-html": "^3.2.0",
|
||||
"vite-plugin-zip-file": "^2.2.0",
|
||||
"vue": "^3.3.4",
|
||||
"vue-qrcode": "^2.2.2",
|
||||
"vue-router": "^4.2.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
|
|
|||
207
pnpm-lock.yaml
207
pnpm-lock.yaml
|
|
@ -50,6 +50,9 @@ importers:
|
|||
vue:
|
||||
specifier: ^3.3.4
|
||||
version: 3.3.4
|
||||
vue-qrcode:
|
||||
specifier: ^2.2.2
|
||||
version: 2.2.2(qrcode@1.5.4)(vue@3.3.4)
|
||||
vue-router:
|
||||
specifier: ^4.2.5
|
||||
version: 4.2.5(vue@3.3.4)
|
||||
|
|
@ -581,6 +584,10 @@ packages:
|
|||
engines: {node: '>=0.4.0'}
|
||||
hasBin: true
|
||||
|
||||
ansi-regex@5.0.1:
|
||||
resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
ansi-styles@3.2.1:
|
||||
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
|
||||
engines: {node: '>=4'}
|
||||
|
|
@ -640,6 +647,10 @@ packages:
|
|||
camel-case@4.1.2:
|
||||
resolution: {integrity: sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==}
|
||||
|
||||
camelcase@5.3.1:
|
||||
resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
camelcase@6.3.0:
|
||||
resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
|
||||
engines: {node: '>=10'}
|
||||
|
|
@ -663,6 +674,9 @@ packages:
|
|||
resolution: {integrity: sha512-JVJbM+f3d3Q704rF4bqQ5UUyTtuJ0JRKNbTKVEeujCCBoMdkEi+V+e8oktO9qGQNSvHrFTM6JZRXrUvGR1czww==}
|
||||
engines: {node: '>= 10.0'}
|
||||
|
||||
cliui@6.0.0:
|
||||
resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==}
|
||||
|
||||
color-convert@1.9.3:
|
||||
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
|
||||
|
||||
|
|
@ -735,10 +749,17 @@ packages:
|
|||
supports-color:
|
||||
optional: true
|
||||
|
||||
decamelize@1.2.0:
|
||||
resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
delayed-stream@1.0.0:
|
||||
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
|
||||
dijkstrajs@1.0.3:
|
||||
resolution: {integrity: sha512-qiSlmBq9+BCdCA/L46dw8Uy93mloxsPSbwnm5yrKn2vMPiy8KyAskTF6zuV/j5BMsmOGZDPs7KjU+mjb670kfA==}
|
||||
|
||||
dom-serializer@1.4.1:
|
||||
resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
|
||||
|
||||
|
|
@ -776,6 +797,9 @@ packages:
|
|||
peerDependencies:
|
||||
vue: ^3.2.0
|
||||
|
||||
emoji-regex@8.0.0:
|
||||
resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
|
||||
|
||||
entities@2.2.0:
|
||||
resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
|
||||
|
||||
|
|
@ -822,6 +846,10 @@ packages:
|
|||
resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
find-up@4.1.0:
|
||||
resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
follow-redirects@1.15.3:
|
||||
resolution: {integrity: sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==}
|
||||
engines: {node: '>=4.0'}
|
||||
|
|
@ -851,6 +879,10 @@ packages:
|
|||
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
get-caller-file@2.0.5:
|
||||
resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==}
|
||||
engines: {node: 6.* || 8.* || >= 10.*}
|
||||
|
||||
glob-parent@5.1.2:
|
||||
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
|
||||
engines: {node: '>= 6'}
|
||||
|
|
@ -914,6 +946,10 @@ packages:
|
|||
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
is-fullwidth-code-point@3.0.0:
|
||||
resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
is-glob@4.0.3:
|
||||
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
|
@ -977,6 +1013,10 @@ packages:
|
|||
resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==}
|
||||
engines: {node: '>=14'}
|
||||
|
||||
locate-path@5.0.0:
|
||||
resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
lodash-es@4.17.21:
|
||||
resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
|
||||
|
||||
|
|
@ -1093,6 +1133,18 @@ packages:
|
|||
nth-check@2.1.1:
|
||||
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
|
||||
|
||||
p-limit@2.3.0:
|
||||
resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
p-locate@4.1.0:
|
||||
resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
p-try@2.2.0:
|
||||
resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
pako@1.0.11:
|
||||
resolution: {integrity: sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==}
|
||||
|
||||
|
|
@ -1109,6 +1161,10 @@ packages:
|
|||
path-browserify@1.0.1:
|
||||
resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
|
||||
|
||||
path-exists@4.0.0:
|
||||
resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
path-key@3.1.1:
|
||||
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
|
||||
engines: {node: '>=8'}
|
||||
|
|
@ -1159,6 +1215,10 @@ packages:
|
|||
pkg-types@1.0.3:
|
||||
resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
|
||||
|
||||
pngjs@5.0.0:
|
||||
resolution: {integrity: sha512-40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
|
||||
postcss@8.4.31:
|
||||
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
|
||||
engines: {node: ^10 || ^12 || >=14}
|
||||
|
|
@ -1169,6 +1229,11 @@ packages:
|
|||
proxy-from-env@1.1.0:
|
||||
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
|
||||
|
||||
qrcode@1.5.4:
|
||||
resolution: {integrity: sha512-1ca71Zgiu6ORjHqFBDpnSMTR2ReToX4l1Au1VFLyVeBTFavzQnv5JxMFr3ukHVKpSrSA2MCk0lNJSykjUfz7Zg==}
|
||||
engines: {node: '>=10.13.0'}
|
||||
hasBin: true
|
||||
|
||||
queue-microtask@1.2.3:
|
||||
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
|
||||
|
||||
|
|
@ -1187,6 +1252,13 @@ packages:
|
|||
resolution: {integrity: sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==}
|
||||
engines: {node: '>= 0.10'}
|
||||
|
||||
require-directory@2.1.1:
|
||||
resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
require-main-filename@2.0.0:
|
||||
resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==}
|
||||
|
||||
resolve@1.22.8:
|
||||
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
|
||||
hasBin: true
|
||||
|
|
@ -1223,6 +1295,9 @@ packages:
|
|||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
|
||||
set-blocking@2.0.0:
|
||||
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
|
||||
|
||||
setimmediate@1.0.5:
|
||||
resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==}
|
||||
|
||||
|
|
@ -1260,9 +1335,17 @@ packages:
|
|||
spdx-license-ids@3.0.16:
|
||||
resolution: {integrity: sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==}
|
||||
|
||||
string-width@4.2.3:
|
||||
resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
string_decoder@1.1.1:
|
||||
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||
|
||||
strip-ansi@6.0.1:
|
||||
resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
strip-literal@1.3.0:
|
||||
resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
|
||||
|
||||
|
|
@ -1418,6 +1501,12 @@ packages:
|
|||
'@vue/composition-api':
|
||||
optional: true
|
||||
|
||||
vue-qrcode@2.2.2:
|
||||
resolution: {integrity: sha512-SbrXq/mSb1g2tbDyXPe9gy9KiMYsvxWKRErlpij1BqiFoHwQckheZV63CTw6yRLLUVG2RXAVlX+APkpdCK7SQQ==}
|
||||
peerDependencies:
|
||||
qrcode: ^1.0.0
|
||||
vue: ^2.7.0 || ^3.0.0
|
||||
|
||||
vue-router@4.2.5:
|
||||
resolution: {integrity: sha512-DIUpKcyg4+PTQKfFPX88UWhlagBEBEfJ5A8XDXRJLUnZOvcpMF8o/dnL90vpVkGaPbjvXazV/rC1qBKrZlFugw==}
|
||||
peerDependencies:
|
||||
|
|
@ -1442,17 +1531,35 @@ packages:
|
|||
webpack-virtual-modules@0.6.1:
|
||||
resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==}
|
||||
|
||||
which-module@2.0.1:
|
||||
resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==}
|
||||
|
||||
which@2.0.2:
|
||||
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
|
||||
engines: {node: '>= 8'}
|
||||
hasBin: true
|
||||
|
||||
wrap-ansi@6.2.0:
|
||||
resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
y18n@4.0.3:
|
||||
resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==}
|
||||
|
||||
yallist@3.1.1:
|
||||
resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
|
||||
|
||||
yallist@4.0.0:
|
||||
resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
|
||||
|
||||
yargs-parser@18.1.3:
|
||||
resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
yargs@15.4.1:
|
||||
resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
snapshots:
|
||||
|
||||
'@ampproject/remapping@2.2.1':
|
||||
|
|
@ -1983,6 +2090,8 @@ snapshots:
|
|||
|
||||
acorn@8.11.2: {}
|
||||
|
||||
ansi-regex@5.0.1: {}
|
||||
|
||||
ansi-styles@3.2.1:
|
||||
dependencies:
|
||||
color-convert: 1.9.3
|
||||
|
|
@ -2045,6 +2154,8 @@ snapshots:
|
|||
pascal-case: 3.1.2
|
||||
tslib: 2.6.2
|
||||
|
||||
camelcase@5.3.1: {}
|
||||
|
||||
camelcase@6.3.0: {}
|
||||
|
||||
caniuse-lite@1.0.30001565: {}
|
||||
|
|
@ -2076,6 +2187,12 @@ snapshots:
|
|||
dependencies:
|
||||
source-map: 0.6.1
|
||||
|
||||
cliui@6.0.0:
|
||||
dependencies:
|
||||
string-width: 4.2.3
|
||||
strip-ansi: 6.0.1
|
||||
wrap-ansi: 6.2.0
|
||||
|
||||
color-convert@1.9.3:
|
||||
dependencies:
|
||||
color-name: 1.1.3
|
||||
|
|
@ -2134,8 +2251,12 @@ snapshots:
|
|||
dependencies:
|
||||
ms: 2.1.2
|
||||
|
||||
decamelize@1.2.0: {}
|
||||
|
||||
delayed-stream@1.0.0: {}
|
||||
|
||||
dijkstrajs@1.0.3: {}
|
||||
|
||||
dom-serializer@1.4.1:
|
||||
dependencies:
|
||||
domelementtype: 2.3.0
|
||||
|
|
@ -2190,6 +2311,8 @@ snapshots:
|
|||
transitivePeerDependencies:
|
||||
- '@vue/composition-api'
|
||||
|
||||
emoji-regex@8.0.0: {}
|
||||
|
||||
entities@2.2.0: {}
|
||||
|
||||
error-ex@1.3.2:
|
||||
|
|
@ -2253,6 +2376,11 @@ snapshots:
|
|||
dependencies:
|
||||
to-regex-range: 5.0.1
|
||||
|
||||
find-up@4.1.0:
|
||||
dependencies:
|
||||
locate-path: 5.0.0
|
||||
path-exists: 4.0.0
|
||||
|
||||
follow-redirects@1.15.3: {}
|
||||
|
||||
form-data@4.0.0:
|
||||
|
|
@ -2274,6 +2402,8 @@ snapshots:
|
|||
|
||||
gensync@1.0.0-beta.2: {}
|
||||
|
||||
get-caller-file@2.0.5: {}
|
||||
|
||||
glob-parent@5.1.2:
|
||||
dependencies:
|
||||
is-glob: 4.0.3
|
||||
|
|
@ -2326,6 +2456,8 @@ snapshots:
|
|||
|
||||
is-extglob@2.1.1: {}
|
||||
|
||||
is-fullwidth-code-point@3.0.0: {}
|
||||
|
||||
is-glob@4.0.3:
|
||||
dependencies:
|
||||
is-extglob: 2.1.1
|
||||
|
|
@ -2381,6 +2513,10 @@ snapshots:
|
|||
mlly: 1.4.2
|
||||
pkg-types: 1.0.3
|
||||
|
||||
locate-path@5.0.0:
|
||||
dependencies:
|
||||
p-locate: 4.1.0
|
||||
|
||||
lodash-es@4.17.21: {}
|
||||
|
||||
lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.21)(lodash@4.17.21):
|
||||
|
|
@ -2494,6 +2630,16 @@ snapshots:
|
|||
dependencies:
|
||||
boolbase: 1.0.0
|
||||
|
||||
p-limit@2.3.0:
|
||||
dependencies:
|
||||
p-try: 2.2.0
|
||||
|
||||
p-locate@4.1.0:
|
||||
dependencies:
|
||||
p-limit: 2.3.0
|
||||
|
||||
p-try@2.2.0: {}
|
||||
|
||||
pako@1.0.11: {}
|
||||
|
||||
param-case@3.0.4:
|
||||
|
|
@ -2516,6 +2662,8 @@ snapshots:
|
|||
|
||||
path-browserify@1.0.1: {}
|
||||
|
||||
path-exists@4.0.0: {}
|
||||
|
||||
path-key@3.1.1: {}
|
||||
|
||||
path-parse@1.0.7: {}
|
||||
|
|
@ -2550,6 +2698,8 @@ snapshots:
|
|||
mlly: 1.4.2
|
||||
pathe: 1.1.1
|
||||
|
||||
pngjs@5.0.0: {}
|
||||
|
||||
postcss@8.4.31:
|
||||
dependencies:
|
||||
nanoid: 3.3.7
|
||||
|
|
@ -2560,6 +2710,12 @@ snapshots:
|
|||
|
||||
proxy-from-env@1.1.0: {}
|
||||
|
||||
qrcode@1.5.4:
|
||||
dependencies:
|
||||
dijkstrajs: 1.0.3
|
||||
pngjs: 5.0.0
|
||||
yargs: 15.4.1
|
||||
|
||||
queue-microtask@1.2.3: {}
|
||||
|
||||
read-pkg@8.1.0:
|
||||
|
|
@ -2585,6 +2741,10 @@ snapshots:
|
|||
|
||||
relateurl@0.2.7: {}
|
||||
|
||||
require-directory@2.1.1: {}
|
||||
|
||||
require-main-filename@2.0.0: {}
|
||||
|
||||
resolve@1.22.8:
|
||||
dependencies:
|
||||
is-core-module: 2.13.1
|
||||
|
|
@ -2617,6 +2777,8 @@ snapshots:
|
|||
dependencies:
|
||||
lru-cache: 6.0.0
|
||||
|
||||
set-blocking@2.0.0: {}
|
||||
|
||||
setimmediate@1.0.5: {}
|
||||
|
||||
shebang-command@2.0.0:
|
||||
|
|
@ -2650,10 +2812,20 @@ snapshots:
|
|||
|
||||
spdx-license-ids@3.0.16: {}
|
||||
|
||||
string-width@4.2.3:
|
||||
dependencies:
|
||||
emoji-regex: 8.0.0
|
||||
is-fullwidth-code-point: 3.0.0
|
||||
strip-ansi: 6.0.1
|
||||
|
||||
string_decoder@1.1.1:
|
||||
dependencies:
|
||||
safe-buffer: 5.1.2
|
||||
|
||||
strip-ansi@6.0.1:
|
||||
dependencies:
|
||||
ansi-regex: 5.0.1
|
||||
|
||||
strip-literal@1.3.0:
|
||||
dependencies:
|
||||
acorn: 8.11.2
|
||||
|
|
@ -2804,6 +2976,12 @@ snapshots:
|
|||
dependencies:
|
||||
vue: 3.3.4
|
||||
|
||||
vue-qrcode@2.2.2(qrcode@1.5.4)(vue@3.3.4):
|
||||
dependencies:
|
||||
qrcode: 1.5.4
|
||||
tslib: 2.6.2
|
||||
vue: 3.3.4
|
||||
|
||||
vue-router@4.2.5(vue@3.3.4):
|
||||
dependencies:
|
||||
'@vue/devtools-api': 6.5.1
|
||||
|
|
@ -2833,10 +3011,39 @@ snapshots:
|
|||
|
||||
webpack-virtual-modules@0.6.1: {}
|
||||
|
||||
which-module@2.0.1: {}
|
||||
|
||||
which@2.0.2:
|
||||
dependencies:
|
||||
isexe: 2.0.0
|
||||
|
||||
wrap-ansi@6.2.0:
|
||||
dependencies:
|
||||
ansi-styles: 4.3.0
|
||||
string-width: 4.2.3
|
||||
strip-ansi: 6.0.1
|
||||
|
||||
y18n@4.0.3: {}
|
||||
|
||||
yallist@3.1.1: {}
|
||||
|
||||
yallist@4.0.0: {}
|
||||
|
||||
yargs-parser@18.1.3:
|
||||
dependencies:
|
||||
camelcase: 5.3.1
|
||||
decamelize: 1.2.0
|
||||
|
||||
yargs@15.4.1:
|
||||
dependencies:
|
||||
cliui: 6.0.0
|
||||
decamelize: 1.2.0
|
||||
find-up: 4.1.0
|
||||
get-caller-file: 2.0.5
|
||||
require-directory: 2.1.1
|
||||
require-main-filename: 2.0.0
|
||||
set-blocking: 2.0.0
|
||||
string-width: 4.2.3
|
||||
which-module: 2.0.1
|
||||
y18n: 4.0.3
|
||||
yargs-parser: 18.1.3
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
import { get, post } from '../../index'
|
||||
|
||||
// 获取维修列表
|
||||
export const getRepairListApi = (data: any = {}) => {
|
||||
return get('/material-mall/ma_rm/list', data)
|
||||
}
|
||||
// 新增维修保养数据
|
||||
export const addRepairDataApi = (data: any = {}) => {
|
||||
return post('/material-mall/ma_rm/add', data)
|
||||
}
|
||||
// 全证书列表
|
||||
export const getSafeBookByMaIdListApi = (data: any = {}) => {
|
||||
return get('/material-mall/safeBook/getSafeBookByMaId', data)
|
||||
}
|
||||
// 安全证书编辑
|
||||
export const editSafeBookApi = (data: any = {}) => {
|
||||
return post('/material-mall/safeBook/editSafeBook', data)
|
||||
}
|
||||
// 安全证书列表删除
|
||||
export const delSafeBookByIdApi = (data: any = {}) => {
|
||||
return post('/material-mall/safeBook/delSafeBook', data)
|
||||
}
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
import { get, post } from '../../index'
|
||||
|
||||
// 获取标签列表
|
||||
export const getTagDevListApi = (data: any = {}) => {
|
||||
return get('/material-mall/tag/getTagDevList', data)
|
||||
}
|
||||
// 新增安全证书
|
||||
export const addSafeBookApi = (data: any = {}) => {
|
||||
return post('/material-mall/safeBook/addSafeBook', data)
|
||||
}
|
||||
// 全证书列表
|
||||
export const getSafeBookByMaIdListApi = (data: any = {}) => {
|
||||
return get('/material-mall/safeBook/getSafeBookByMaId', data)
|
||||
}
|
||||
// 安全证书编辑
|
||||
export const editSafeBookApi = (data: any = {}) => {
|
||||
return post('/material-mall/safeBook/editSafeBook', data)
|
||||
}
|
||||
// 安全证书列表删除
|
||||
export const delSafeBookByIdApi = (data: any = {}) => {
|
||||
return post('/material-mall/safeBook/delSafeBook', data)
|
||||
}
|
||||
|
|
@ -329,7 +329,7 @@ const onJumpUser = () => {
|
|||
class="left-check-box"
|
||||
@click="
|
||||
() => {
|
||||
searchCheckVisible = true
|
||||
searchCheckVisible = !searchCheckVisible
|
||||
}
|
||||
"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -3,8 +3,6 @@ import * as ElementPlusIconsVue from '@element-plus/icons-vue'
|
|||
|
||||
|
||||
import { createApp } from 'vue'
|
||||
// import { createPinia } from 'pinia'
|
||||
|
||||
import App from './App.vue'
|
||||
import pinia from "./store"
|
||||
import router from './router'
|
||||
|
|
@ -13,6 +11,7 @@ import './style/css/reset.css'
|
|||
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 registerDirectives from 'utils/directive'
|
||||
|
|
@ -21,6 +20,7 @@ const app = createApp(App)
|
|||
|
||||
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
|
||||
app.component(key, component)
|
||||
app.component('vue-qr-code', VueQrcode)
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -296,7 +296,18 @@ const routes: Array<RouteRecordRaw> = [
|
|||
name: 'tag-manage',
|
||||
component: () => import('views/user/lessor/tag-manage/index.vue'),
|
||||
meta: {
|
||||
title: '标签',
|
||||
title: '标签管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
},
|
||||
},
|
||||
{
|
||||
path: '/repair-manage',
|
||||
name: 'repair-manage',
|
||||
component: () => import('views/user/lessor/repair-manage/index.vue'),
|
||||
meta: {
|
||||
title: '维修保养管理',
|
||||
keepAlive: true,
|
||||
AuthFlag: false,
|
||||
isLogin: true
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ const allList = [
|
|||
{ title: '质检管理', name: 'quality-manage', permission: ['1'] },
|
||||
{ title: '安全证书管理', name: 'security-certificate', permission: ['1'] },
|
||||
{ title: '标签管理', name: 'tag-manage', permission: ['1'] },
|
||||
{ title: '维修保养管理', name: 'repair-manage', permission: ['1'] },
|
||||
{ title: '需求管理', name: 'sourcingNeed', permission: ['2'] },
|
||||
{ title: '订单管理', name: 'orderManagement', permission: ['2'] },
|
||||
{ title: '合同管理', name: 'contract-manage', permission: ['1'] },
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@
|
|||
inputmode="numeric"
|
||||
v-model="searchParams.minNum"
|
||||
style="width: 100%"
|
||||
placeholder="质检次数"
|
||||
placeholder="维修保养次数"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -37,7 +37,7 @@
|
|||
inputmode="numeric"
|
||||
v-model.trim="searchParams.maxNum"
|
||||
style="width: 100%"
|
||||
placeholder="质检次数"
|
||||
placeholder="维修保养次数"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
@click="
|
||||
() => {
|
||||
isRepublish = true
|
||||
dialogTitle = '质检新增'
|
||||
dialogTitle = '新建维修保养'
|
||||
addOrEditDialogVisible = true
|
||||
}
|
||||
"
|
||||
|
|
@ -191,7 +191,7 @@
|
|||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="质检名称" prop="qcName">
|
||||
<el-form-item label="维修保养名称" prop="qcName">
|
||||
<el-input
|
||||
v-model.trim="addOrEditForm.qcName"
|
||||
placeholder="请输入质检名称"
|
||||
|
|
@ -199,26 +199,16 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="质检员" prop="qcUser">
|
||||
<el-input
|
||||
clearable
|
||||
placeholder="请输入质检员"
|
||||
v-model="addOrEditForm.qcUser"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="质检日期" prop="qcTime">
|
||||
<el-form-item label="维修保养日期" prop="rmTime">
|
||||
<el-date-picker
|
||||
clearable
|
||||
type="date"
|
||||
style="width: 100%"
|
||||
value-format="YYYY-MM-DD"
|
||||
v-model="addOrEditForm.qcTime"
|
||||
v-model="addOrEditForm.rmTime"
|
||||
placeholder="请选择质检日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -234,7 +224,7 @@
|
|||
</el-row>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="质检附件" prop="fileInfoList">
|
||||
<el-form-item label="维修保养附件" prop="fileInfoList">
|
||||
<UploadComponentNew
|
||||
:maxSize="2"
|
||||
:max-limit="1"
|
||||
|
|
@ -398,6 +388,8 @@ import {
|
|||
qualityDeleteByIdApi,
|
||||
getAssociationListApi,
|
||||
} from 'http/api/quality-manage'
|
||||
|
||||
import { getRepairListApi, addRepairDataApi } from 'http/api/repair-manage/index'
|
||||
import { InfoFilled } from '@element-plus/icons-vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
|
|
@ -421,7 +413,7 @@ const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
|
|||
|
||||
const searchParams = reactive({
|
||||
deviceCode: '',
|
||||
qcStartTime: '',
|
||||
StartTime: '',
|
||||
qcEndTime: '',
|
||||
createStartTime: '',
|
||||
createEndTime: '',
|
||||
|
|
@ -443,9 +435,9 @@ const searchParamsInDialog = reactive({
|
|||
|
||||
const addOrEditForm = ref<any>({
|
||||
maId: '',
|
||||
qcName: '',
|
||||
qcUser: '',
|
||||
qcTime: '',
|
||||
rmName: '',
|
||||
rmUser: '',
|
||||
rmTime: '',
|
||||
fileInfoList: [],
|
||||
fileInfoTempList: [],
|
||||
})
|
||||
|
|
@ -469,9 +461,9 @@ const checkMaxNum = (rule: any, value: any, callback: any) => {
|
|||
|
||||
const addOrEditFormRules = reactive({
|
||||
maId: [{ required: true, message: '请选择关联装备', trigger: 'change' }],
|
||||
qcName: [{ required: true, message: '请输入质检名称', trigger: 'blur' }],
|
||||
qcUser: [{ required: true, message: '请输入质检员', trigger: 'change' }],
|
||||
qcTime: [{ required: true, message: '请选择质检日期', trigger: 'change' }],
|
||||
rmName: [{ required: true, message: '请输入质检名称', trigger: 'blur' }],
|
||||
rmUser: [{ required: true, message: '请输入质检员', trigger: 'change' }],
|
||||
rmTime: [{ required: true, message: '请选择质检日期', trigger: 'change' }],
|
||||
fileInfoList: [{ required: true, message: '请上传质检附件', trigger: 'blur' }],
|
||||
})
|
||||
const searchFormRules = reactive({
|
||||
|
|
@ -509,7 +501,8 @@ const getLeaseListData = async () => {
|
|||
searchParams.createStartTime = createTime.value[0]
|
||||
searchParams.createEndTime = createTime.value[1]
|
||||
}
|
||||
const { data: res }: any = await getQualityListApi(searchParams)
|
||||
const { data: res }: any = await getRepairListApi()
|
||||
console.log(res, '维修列表')
|
||||
qualityLis.value = res.rows
|
||||
total.value = res.total
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
<template>
|
||||
<!-- 标签管理 -->
|
||||
<div class="qr-code-container">
|
||||
<h1>装备信息</h1>
|
||||
<div>装备名称:***</div>
|
||||
<div>装备编号:***</div>
|
||||
<div>装备图片:***</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts"></script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.qr-code-container {
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -21,32 +21,32 @@
|
|||
</el-col>
|
||||
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="code">
|
||||
<el-form-item prop="deviceName">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="请输入装备名称"
|
||||
v-model.trim="searchParams.code"
|
||||
v-model.trim="searchParams.deviceName"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="code">
|
||||
<el-form-item prop="nickName">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="请输入上传人"
|
||||
v-model.trim="searchParams.code"
|
||||
v-model.trim="searchParams.nickName"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item prop="code">
|
||||
<el-form-item prop="comName">
|
||||
<el-input
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="请输入归属公司"
|
||||
v-model.trim="searchParams.code"
|
||||
v-model.trim="searchParams.comName"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -61,11 +61,22 @@
|
|||
style="width: 100%"
|
||||
range-separator="-"
|
||||
value-format="YYYY-MM-DD"
|
||||
start-placeholder="上传开始日期"
|
||||
end-placeholder="上传结束日期"
|
||||
start-placeholder="上传日期"
|
||||
end-placeholder="上传日期"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6">
|
||||
<el-form-item>
|
||||
<el-button type="primary" class="primary-lease" @click="getLeaseListData">
|
||||
查询
|
||||
</el-button>
|
||||
<el-button @click="onReset" type="primary" class="primary-lease">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<!-- 表格 -->
|
||||
|
|
@ -79,46 +90,22 @@
|
|||
}"
|
||||
>
|
||||
<el-table-column align="center" label="序号" type="index" width="80" />
|
||||
<el-table-column align="center" prop="deviceCode" label="装备编号" />
|
||||
<el-table-column align="center" prop="code" label="装备编号" />
|
||||
<el-table-column align="center" prop="deviceName" label="装备名称" />
|
||||
<el-table-column align="center" prop="nickName" label="上传人" width="120" />
|
||||
<el-table-column align="center" prop="createTime" label="归属公司" />
|
||||
<el-table-column align="center" prop="updateTime" label="装备数量" />
|
||||
<el-table-column align="center" prop="updateTime" label="上传时间" />
|
||||
<el-table-column align="center" prop="comName" label="归属公司" />
|
||||
<el-table-column align="center" prop="deviceCount" label="装备数量" />
|
||||
<el-table-column align="center" prop="createTime" label="上传时间" />
|
||||
<el-table-column align="center" label="二维码标签" :width="220">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
size="small"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
@click="onViewQualityRecord(row)"
|
||||
@click="onViewQualityRecord(row.code)"
|
||||
>
|
||||
查看
|
||||
</el-button>
|
||||
<el-popconfirm
|
||||
width="220"
|
||||
:icon="InfoFilled"
|
||||
icon-color="#626AEF"
|
||||
title="确定删除该项需求吗?"
|
||||
@confirm="onDelete(row.maId)"
|
||||
>
|
||||
<template #reference>
|
||||
<el-button size="small" type="danger"> 删除 </el-button>
|
||||
</template>
|
||||
<template #actions="{ confirm }">
|
||||
<el-button type="primary" class="primary-lease" size="small"
|
||||
>取消</el-button
|
||||
>
|
||||
<el-button
|
||||
class="primary-lease"
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="confirm()"
|
||||
>
|
||||
确定
|
||||
</el-button>
|
||||
</template>
|
||||
</el-popconfirm>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
@ -133,172 +120,59 @@
|
|||
/>
|
||||
<!-- 新增修改对话框 -->
|
||||
<el-dialog
|
||||
width="40%"
|
||||
width="30%"
|
||||
align-center
|
||||
@close="onClose"
|
||||
destroy-on-close
|
||||
:title="dialogTitle"
|
||||
v-model="addOrEditDialogVisible"
|
||||
>
|
||||
<el-form
|
||||
label-width="auto"
|
||||
label-position="right"
|
||||
ref="addOrEditFormRef"
|
||||
:model="addOrEditForm"
|
||||
:rules="addOrEditFormRules"
|
||||
>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="查看标签" style="width: 100%" prop="maId">
|
||||
<el-select
|
||||
clearable
|
||||
style="width: 100%"
|
||||
placeholder="请选择关联装备"
|
||||
v-model="addOrEditForm.maId"
|
||||
@change="onMaIdChange"
|
||||
:disabled="dialogTitle != '证书新增'"
|
||||
>
|
||||
<el-option
|
||||
:key="item.maId"
|
||||
:value="item.maId * 1"
|
||||
:label="item.deviceName"
|
||||
v-for="item in associationList"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-button class="primary-lease" type="primary"> 下载标签 </el-button>
|
||||
</el-row>
|
||||
<!-- <el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="1" style="margin-bottom: 0" class="upload-tip">
|
||||
支持格式:.jpg、.png 单个文件大小不能超过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="2"
|
||||
:max-limit="1"
|
||||
width="100%"
|
||||
height="100%"
|
||||
:multiple="true"
|
||||
:autoUpload="true"
|
||||
:minLimit="addOrEditForm.fileInfoList.length"
|
||||
:actionUrl="uploadUrl"
|
||||
listType="text"
|
||||
:justifyContent="`flex-start`"
|
||||
@onFileChange="onFileChange"
|
||||
:acceptTypeList="['.jpg', '.png', '.pdf', '.doc']"
|
||||
>
|
||||
<template v-slot:default>
|
||||
<el-button
|
||||
:icon="UploadFilled"
|
||||
type="primary"
|
||||
class="primary-lease"
|
||||
>上传文件</el-button
|
||||
>
|
||||
</template>
|
||||
</UploadComponentNew>
|
||||
</div>
|
||||
</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>
|
||||
<div class="qr-code-container">
|
||||
<vue-qr-code :value="qrCodeValue" :width="200" id="qrCodeContainer" />
|
||||
<el-button
|
||||
style="width: 200px"
|
||||
class="primary-lease"
|
||||
type="primary"
|
||||
@click="onDownLoadQrCode"
|
||||
>
|
||||
下载标签
|
||||
</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { getTagDevListApi } from 'http/api/tag-manage/index'
|
||||
import PagingComponent from 'components/PagingComponent/index.vue'
|
||||
import UploadComponentNew from 'components/uploadComponentNew/index.vue'
|
||||
import {
|
||||
addSafeBookApi,
|
||||
getSafeBookByMaIdListApi,
|
||||
editSafeBookApi,
|
||||
delSafeBookByIdApi,
|
||||
getAssociationListApi,
|
||||
} from 'http/api/security-certificate'
|
||||
import { InfoFilled, UploadFilled } from '@element-plus/icons-vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
|
||||
const total = ref(0)
|
||||
const createTime = ref([])
|
||||
const qualityLis = ref<any>([])
|
||||
const dialogTitle = ref('')
|
||||
const qrCodeValue = ref<any>('')
|
||||
const searchFormRef = ref<any>(null)
|
||||
const addOrEditFormRef = ref<any>(null)
|
||||
const dialogTitle = ref('二维码查看')
|
||||
const addOrEditDialogVisible = ref(false)
|
||||
const associationList = ref<any>([])
|
||||
const uploadUrl = import.meta.env.VITE_API_URL + '/file/upload'
|
||||
|
||||
const searchParams = reactive({
|
||||
code: '',
|
||||
deviceName: '',
|
||||
nickName: '',
|
||||
comName: '',
|
||||
startTime: '',
|
||||
endTime: '',
|
||||
pageSize: 10,
|
||||
pageNum: 1,
|
||||
})
|
||||
|
||||
const addOrEditForm = ref<any>({
|
||||
maId: '',
|
||||
fileInfoList: [],
|
||||
fileInfoTempList: [],
|
||||
})
|
||||
|
||||
const addOrEditFormRules = reactive({
|
||||
maId: [{ required: true, message: '请选择关联装备', trigger: 'change' }],
|
||||
fileInfoList: [{ required: true, message: '请上传证书附件', trigger: 'blur' }],
|
||||
})
|
||||
|
||||
// 获取列表
|
||||
const getLeaseListData = async () => {
|
||||
if (createTime.value.length > 0) {
|
||||
searchParams.startTime = createTime.value[0]
|
||||
searchParams.endTime = createTime.value[1]
|
||||
}
|
||||
const { data: res }: any = await getSafeBookByMaIdListApi(searchParams)
|
||||
const { data: res }: any = await getTagDevListApi(searchParams)
|
||||
qualityLis.value = res.rows
|
||||
total.value = res.total
|
||||
}
|
||||
|
||||
// 获取关联装备
|
||||
const getAssociationListData = async () => {
|
||||
const res: any = await getAssociationListApi()
|
||||
associationList.value = res.data
|
||||
}
|
||||
|
||||
const onMaIdChange = (id: any) => {
|
||||
ElMessage.closeAll()
|
||||
try {
|
||||
associationList.value.forEach((e: any) => {
|
||||
if (e.maId == id && e.isSafeBook === 1) {
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: '当前装备证书已上传,不可重复选择!',
|
||||
})
|
||||
addOrEditForm.value.maId = ''
|
||||
throw new Error()
|
||||
}
|
||||
})
|
||||
} catch (error) {}
|
||||
}
|
||||
|
||||
// 重置
|
||||
const onReset = () => {
|
||||
createTime.value = []
|
||||
|
|
@ -309,72 +183,23 @@ const onReset = () => {
|
|||
searchFormRef.value.resetFields()
|
||||
getLeaseListData()
|
||||
}
|
||||
|
||||
// 删除
|
||||
const onDelete = async (maId: any) => {
|
||||
const res: any = await delSafeBookByIdApi({ maId })
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '删除成功',
|
||||
})
|
||||
getLeaseListData()
|
||||
}
|
||||
}
|
||||
|
||||
// 提交
|
||||
const onSubmit = () => {
|
||||
addOrEditForm.value.fileInfoList = addOrEditForm.value.fileInfoTempList
|
||||
addOrEditFormRef.value.validate(async (valid: any) => {
|
||||
if (valid) {
|
||||
const SEN_API = dialogTitle.value === '证书修改' ? editSafeBookApi : addSafeBookApi
|
||||
const res: any = await SEN_API(addOrEditForm.value)
|
||||
if (res.code === 200) {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '提交成功',
|
||||
})
|
||||
addOrEditDialogVisible.value = false
|
||||
getLeaseListData()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 编辑
|
||||
const onViewQualityRecord = (row: any) => {
|
||||
addOrEditForm.value.maId = row.maId
|
||||
dialogTitle.value = '标签查看'
|
||||
// 查看二维码
|
||||
const onViewQualityRecord = (code: any) => {
|
||||
qrCodeValue.value = 'http://192.168.0.244:17766/login'
|
||||
addOrEditDialogVisible.value = true
|
||||
}
|
||||
|
||||
// 自定义事件
|
||||
const onFileChange = (fileList: any) => {
|
||||
addOrEditForm.value.fileInfoTempList = []
|
||||
const fileListTemp = fileList.map((e: any) => {
|
||||
return {
|
||||
fileName: e.name,
|
||||
fileUrl: e.url,
|
||||
}
|
||||
})
|
||||
|
||||
addOrEditForm.value.fileInfoTempList.push(...fileListTemp)
|
||||
}
|
||||
|
||||
// 取消按钮
|
||||
const onCancel = () => {
|
||||
addOrEditDialogVisible.value = false
|
||||
}
|
||||
const onClose = () => {
|
||||
addOrEditFormRef.value.resetFields()
|
||||
addOrEditForm.value.fileInfoTempList = []
|
||||
addOrEditForm.value.fileInfoList = []
|
||||
addOrEditForm.value.maId = ''
|
||||
// 下载二维码
|
||||
const onDownLoadQrCode = () => {
|
||||
let qrCodeElement = document.getElementById('qrCodeContainer') as HTMLImageElement
|
||||
let qrCodeSrc = qrCodeElement.src
|
||||
const link = document.createElement('a')
|
||||
link.href = qrCodeSrc
|
||||
link.download = 'qr-code.png'
|
||||
link.click()
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
getLeaseListData()
|
||||
getAssociationListData()
|
||||
})
|
||||
</script>
|
||||
|
||||
|
|
@ -446,11 +271,20 @@ onMounted(() => {
|
|||
max-height: 100vh !important;
|
||||
.el-dialog__body {
|
||||
flex: 1;
|
||||
padding: 0 10px 20px;
|
||||
overflow-y: scroll !important;
|
||||
}
|
||||
.dialog-content {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
.qr-code-container {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
Loading…
Reference in New Issue