修改
This commit is contained in:
parent
57f316dcac
commit
035cc138eb
@ -10,3 +10,6 @@ VITE_APP_BASE_API = 'http://192.168.5.213:9100/gateway'
|
||||
#VITE_APP_BASE_API = 'http://192.168.7.152:9100/gateway'
|
||||
#VITE_APP_BASE_API = '/dev-api'
|
||||
#VITE_APP_BASE_API = 'https://api.evo-techina.com'
|
||||
|
||||
|
||||
|
||||
|
||||
@ -46,12 +46,14 @@
|
||||
"screenfull": "^6.0.2",
|
||||
"splitpanes": "^3.1.5",
|
||||
"tiny-svg": "^4.0.0",
|
||||
"video.js": "^8.22.0",
|
||||
"vue": "~3.3.4",
|
||||
"vue-cropper": "^1.1.1",
|
||||
"vue-demi": "^0.14.7",
|
||||
"vue-jsonp": "^2.0.0",
|
||||
"vue-qqmap": "^1.1.1",
|
||||
"vue-router": "^4.2.4",
|
||||
"vue-video-player": "^6.0.0",
|
||||
"zeebe-bpmn-moddle": "^1.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
203
pnpm-lock.yaml
203
pnpm-lock.yaml
@ -107,6 +107,9 @@ importers:
|
||||
tiny-svg:
|
||||
specifier: ^4.0.0
|
||||
version: 4.1.2
|
||||
video.js:
|
||||
specifier: ^8.22.0
|
||||
version: 8.22.0
|
||||
vue:
|
||||
specifier: ~3.3.4
|
||||
version: 3.3.13(typescript@5.0.4)
|
||||
@ -125,6 +128,9 @@ importers:
|
||||
vue-router:
|
||||
specifier: ^4.2.4
|
||||
version: 4.4.5(vue@3.3.13(typescript@5.0.4))
|
||||
vue-video-player:
|
||||
specifier: ^6.0.0
|
||||
version: 6.0.0(@types/video.js@7.3.58)(video.js@8.22.0)(vue@3.3.13(typescript@5.0.4))
|
||||
zeebe-bpmn-moddle:
|
||||
specifier: ^1.1.0
|
||||
version: 1.6.0
|
||||
@ -216,7 +222,7 @@ packages:
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/runtime@7.25.6':
|
||||
resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==}
|
||||
resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==, tarball: https://registry.npmmirror.com/@babel/runtime/-/runtime-7.25.6.tgz}
|
||||
engines: {node: '>=6.9.0'}
|
||||
|
||||
'@babel/types@7.25.6':
|
||||
@ -593,6 +599,9 @@ packages:
|
||||
'@types/tough-cookie@4.0.5':
|
||||
resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==}
|
||||
|
||||
'@types/video.js@7.3.58':
|
||||
resolution: {integrity: sha512-1CQjuSrgbv1/dhmcfQ83eVyYbvGyqhTvb2Opxr0QCV+iJ4J6/J+XWQ3Om59WiwCd1MN3rDUHasx5XRrpUtewYQ==, tarball: https://registry.npmmirror.com/@types/video.js/-/video.js-7.3.58.tgz}
|
||||
|
||||
'@types/web-bluetooth@0.0.16':
|
||||
resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
|
||||
|
||||
@ -677,6 +686,26 @@ packages:
|
||||
peerDependencies:
|
||||
'@uppy/core': ^2.3.3
|
||||
|
||||
'@videojs-player/vue@1.0.0':
|
||||
resolution: {integrity: sha512-WonTezRfKu3fYdQLt/ta+nuKH6gMZUv8l40Jke/j4Lae7IqeO/+lLAmBnh3ni88bwR+vkFXIlZ2Ci7VKInIYJg==, tarball: https://registry.npmmirror.com/@videojs-player/vue/-/vue-1.0.0.tgz}
|
||||
peerDependencies:
|
||||
'@types/video.js': 7.x
|
||||
video.js: 7.x
|
||||
vue: 3.x
|
||||
|
||||
'@videojs/http-streaming@3.17.0':
|
||||
resolution: {integrity: sha512-Ch1P3tvvIEezeZXyK11UfWgp4cWKX4vIhZ30baN/lRinqdbakZ5hiAI3pGjRy3d+q/Epyc8Csz5xMdKNNGYpcw==, tarball: https://registry.npmmirror.com/@videojs/http-streaming/-/http-streaming-3.17.0.tgz}
|
||||
engines: {node: '>=8', npm: '>=5'}
|
||||
peerDependencies:
|
||||
video.js: ^8.19.0
|
||||
|
||||
'@videojs/vhs-utils@4.1.1':
|
||||
resolution: {integrity: sha512-5iLX6sR2ownbv4Mtejw6Ax+naosGvoT9kY+gcuHzANyUZZ+4NpeNdKMUhb6ag0acYej1Y7cmr/F2+4PrggMiVA==, tarball: https://registry.npmmirror.com/@videojs/vhs-utils/-/vhs-utils-4.1.1.tgz}
|
||||
engines: {node: '>=8', npm: '>=5'}
|
||||
|
||||
'@videojs/xhr@2.7.0':
|
||||
resolution: {integrity: sha512-giab+EVRanChIupZK7gXjHy90y3nncA2phIOyG3Ne5fvpiMJzvqYwiTOnEVW2S4CoYcuKJkomat7bMXA/UoUZQ==, tarball: https://registry.npmmirror.com/@videojs/xhr/-/xhr-2.7.0.tgz}
|
||||
|
||||
'@vitejs/plugin-vue@3.2.0':
|
||||
resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==}
|
||||
engines: {node: ^14.18.0 || >=16.0.0}
|
||||
@ -932,6 +961,10 @@ packages:
|
||||
slate: ^0.72.0
|
||||
snabbdom: ^3.1.0
|
||||
|
||||
'@xmldom/xmldom@0.8.10':
|
||||
resolution: {integrity: sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==, tarball: https://registry.npmmirror.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz}
|
||||
engines: {node: '>=10.0.0'}
|
||||
|
||||
abab@2.0.6:
|
||||
resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==}
|
||||
deprecated: Use your platform's native atob() and btoa() methods instead
|
||||
@ -953,6 +986,9 @@ packages:
|
||||
engines: {node: '>=0.4.0'}
|
||||
hasBin: true
|
||||
|
||||
aes-decrypter@4.0.2:
|
||||
resolution: {integrity: sha512-lc+/9s6iJvuaRe5qDlMTpCFjnwpkeOXp8qP3oiZ5jsj1MRg+SBVUmmICrhxHvc8OELSmc+fEyyxAuppY6hrWzw==, tarball: https://registry.npmmirror.com/aes-decrypter/-/aes-decrypter-4.0.2.tgz}
|
||||
|
||||
agent-base@6.0.2:
|
||||
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
|
||||
engines: {node: '>= 6.0.0'}
|
||||
@ -1398,6 +1434,9 @@ packages:
|
||||
dom-serializer@1.4.1:
|
||||
resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==}
|
||||
|
||||
dom-walk@0.1.2:
|
||||
resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==, tarball: https://registry.npmmirror.com/dom-walk/-/dom-walk-0.1.2.tgz}
|
||||
|
||||
dom7@3.0.0:
|
||||
resolution: {integrity: sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==}
|
||||
|
||||
@ -1899,6 +1938,9 @@ packages:
|
||||
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
|
||||
deprecated: Glob versions prior to v9 are no longer supported
|
||||
|
||||
global@4.4.0:
|
||||
resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==, tarball: https://registry.npmmirror.com/global/-/global-4.4.0.tgz}
|
||||
|
||||
globals@13.24.0:
|
||||
resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==}
|
||||
engines: {node: '>=8'}
|
||||
@ -2125,6 +2167,9 @@ packages:
|
||||
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
is-function@1.0.2:
|
||||
resolution: {integrity: sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==, tarball: https://registry.npmmirror.com/is-function/-/is-function-1.0.2.tgz}
|
||||
|
||||
is-glob@4.0.3:
|
||||
resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -2356,6 +2401,9 @@ packages:
|
||||
resolution: {integrity: sha512-rh+Zjr6DNfUYR3bPwJEnuwDdqMbxZW7LOQfUN4B54+Cl+0o5zaU9RJ6bcidfDtC1cWCZXQ+nvX8bf6bAji37QQ==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
m3u8-parser@7.2.0:
|
||||
resolution: {integrity: sha512-CRatFqpjVtMiMaKXxNvuI3I++vUumIXVVT/JpCpdU/FynV/ceVw1qpPyyBNindL+JlPMSesx+WX1QJaZEJSaMQ==, tarball: https://registry.npmmirror.com/m3u8-parser/-/m3u8-parser-7.2.0.tgz}
|
||||
|
||||
magic-string@0.30.11:
|
||||
resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==}
|
||||
|
||||
@ -2420,6 +2468,9 @@ packages:
|
||||
min-dash@4.2.1:
|
||||
resolution: {integrity: sha512-to+unsToePnm7cUeR9TrMzFlETHd/UXmU+ELTRfWZj5XGT41KF6X3L233o3E/GdEs3sk2Tbw/lOLD1avmWkg8A==}
|
||||
|
||||
min-document@2.19.0:
|
||||
resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==, tarball: https://registry.npmmirror.com/min-document/-/min-document-2.19.0.tgz}
|
||||
|
||||
min-dom@4.2.1:
|
||||
resolution: {integrity: sha512-TMoL8SEEIhUWYgkj7XMSgxmwSyGI+4fP2KFFGnN3FbHfbGHVdsLYSz8LoIsgPhz4dWRmLvxWWSMgzZMJW5sZuA==}
|
||||
|
||||
@ -2442,12 +2493,21 @@ packages:
|
||||
moddle@6.2.3:
|
||||
resolution: {integrity: sha512-bLVN+ZHL3aKnhxc19XtjUfvdJsS3EsiEJC7bT6YPD11qYmTzvsxrGgyYz1Ouof7TZuGw0lDJ1OLmEnxcpQWk3Q==}
|
||||
|
||||
mpd-parser@1.3.1:
|
||||
resolution: {integrity: sha512-1FuyEWI5k2HcmhS1HkKnUAQV7yFPfXPht2DnRRGtoiiAAW+ESTbtEXIDpRkwdU+XyrQuwrIym7UkoPKsZ0SyFw==, tarball: https://registry.npmmirror.com/mpd-parser/-/mpd-parser-1.3.1.tgz}
|
||||
hasBin: true
|
||||
|
||||
ms@2.0.0:
|
||||
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
|
||||
|
||||
ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
|
||||
mux.js@7.1.0:
|
||||
resolution: {integrity: sha512-NTxawK/BBELJrYsZThEulyUMDVlLizKdxyAsMuzoCD1eFj97BVaA8D/CvKsKu6FOLYkFojN5CbM9h++ZTZtknA==, tarball: https://registry.npmmirror.com/mux.js/-/mux.js-7.1.0.tgz}
|
||||
engines: {node: '>=8', npm: '>=5'}
|
||||
hasBin: true
|
||||
|
||||
namespace-emitter@2.0.1:
|
||||
resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==}
|
||||
|
||||
@ -2638,6 +2698,10 @@ packages:
|
||||
typescript:
|
||||
optional: true
|
||||
|
||||
pkcs7@1.0.4:
|
||||
resolution: {integrity: sha512-afRERtHn54AlwaF2/+LFszyAANTCggGilmcmILUzEjvs3XgFZT+xE6+QWQcAGmu4xajy+Xtj7acLOPdx5/eXWQ==, tarball: https://registry.npmmirror.com/pkcs7/-/pkcs7-1.0.4.tgz}
|
||||
hasBin: true
|
||||
|
||||
posix-character-classes@0.1.1:
|
||||
resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@ -2700,6 +2764,10 @@ packages:
|
||||
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
|
||||
engines: {node: '>=6'}
|
||||
|
||||
process@0.11.10:
|
||||
resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, tarball: https://registry.npmmirror.com/process/-/process-0.11.10.tgz}
|
||||
engines: {node: '>= 0.6.0'}
|
||||
|
||||
proxy-from-env@1.1.0:
|
||||
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
|
||||
|
||||
@ -2749,7 +2817,7 @@ packages:
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
regenerator-runtime@0.14.1:
|
||||
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
|
||||
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==, tarball: https://registry.npmmirror.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz}
|
||||
|
||||
regex-not@1.0.2:
|
||||
resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
|
||||
@ -3201,6 +3269,21 @@ packages:
|
||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
video.js@8.22.0:
|
||||
resolution: {integrity: sha512-xge2kpjsvC0zgFJ1cqt+wTqsi21+huFswlonPFh7qiplypsb4FN/D2Rz6bWdG/S9eQaPHfWHsarmJL/7D3DHoA==, tarball: https://registry.npmmirror.com/video.js/-/video.js-8.22.0.tgz}
|
||||
|
||||
videojs-contrib-quality-levels@4.1.0:
|
||||
resolution: {integrity: sha512-TfrXJJg1Bv4t6TOCMEVMwF/CoS8iENYsWNKip8zfhB5kTcegiFYezEA0eHAJPU64ZC8NQbxQgOwAsYU8VXbOWA==, tarball: https://registry.npmmirror.com/videojs-contrib-quality-levels/-/videojs-contrib-quality-levels-4.1.0.tgz}
|
||||
engines: {node: '>=16', npm: '>=8'}
|
||||
peerDependencies:
|
||||
video.js: ^8
|
||||
|
||||
videojs-font@4.2.0:
|
||||
resolution: {integrity: sha512-YPq+wiKoGy2/M7ccjmlvwi58z2xsykkkfNMyIg4xb7EZQQNwB71hcSsB3o75CqQV7/y5lXkXhI/rsGAS7jfEmQ==, tarball: https://registry.npmmirror.com/videojs-font/-/videojs-font-4.2.0.tgz}
|
||||
|
||||
videojs-vtt.js@0.15.5:
|
||||
resolution: {integrity: sha512-yZbBxvA7QMYn15Lr/ZfhhLPrNpI/RmCSCqgIff57GC2gIrV5YfyzLfLyZMj0NnZSAz8syB4N0nHXpZg9MyrMOQ==, tarball: https://registry.npmmirror.com/videojs-vtt.js/-/videojs-vtt.js-0.15.5.tgz}
|
||||
|
||||
vite-plugin-svg-icons@2.0.1:
|
||||
resolution: {integrity: sha512-6ktD+DhV6Rz3VtedYvBKKVA2eXF+sAQVaKkKLDSqGUfnhqXl3bj5PPkVTl3VexfTuZy66PmINi8Q6eFnVfRUmA==}
|
||||
peerDependencies:
|
||||
@ -3318,6 +3401,13 @@ packages:
|
||||
peerDependencies:
|
||||
typescript: '*'
|
||||
|
||||
vue-video-player@6.0.0:
|
||||
resolution: {integrity: sha512-WP47OtefsjMEReRCIKIL3tRRgH/PyNm8ELjsbYgr/WWrYAj5Ih9Adzkzp+ylYOI/v57jJ4O7O4XkbXBCmsTqNw==, tarball: https://registry.npmmirror.com/vue-video-player/-/vue-video-player-6.0.0.tgz}
|
||||
peerDependencies:
|
||||
'@types/video.js': 7.x
|
||||
video.js: 7.x
|
||||
vue: 3.x
|
||||
|
||||
vue@2.7.16:
|
||||
resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==}
|
||||
deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.
|
||||
@ -3796,6 +3886,8 @@ snapshots:
|
||||
|
||||
'@types/tough-cookie@4.0.5': {}
|
||||
|
||||
'@types/video.js@7.3.58': {}
|
||||
|
||||
'@types/web-bluetooth@0.0.16': {}
|
||||
|
||||
'@types/web-bluetooth@0.0.20': {}
|
||||
@ -3915,6 +4007,34 @@ snapshots:
|
||||
'@uppy/utils': 4.1.3
|
||||
nanoid: 3.3.7
|
||||
|
||||
'@videojs-player/vue@1.0.0(@types/video.js@7.3.58)(video.js@8.22.0)(vue@3.3.13(typescript@5.0.4))':
|
||||
dependencies:
|
||||
'@types/video.js': 7.3.58
|
||||
video.js: 8.22.0
|
||||
vue: 3.3.13(typescript@5.0.4)
|
||||
|
||||
'@videojs/http-streaming@3.17.0(video.js@8.22.0)':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
'@videojs/vhs-utils': 4.1.1
|
||||
aes-decrypter: 4.0.2
|
||||
global: 4.4.0
|
||||
m3u8-parser: 7.2.0
|
||||
mpd-parser: 1.3.1
|
||||
mux.js: 7.1.0
|
||||
video.js: 8.22.0
|
||||
|
||||
'@videojs/vhs-utils@4.1.1':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
global: 4.4.0
|
||||
|
||||
'@videojs/xhr@2.7.0':
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
global: 4.4.0
|
||||
is-function: 1.0.2
|
||||
|
||||
'@vitejs/plugin-vue@3.2.0(vite@4.5.5(@types/node@16.18.108)(less@4.2.0))(vue@3.3.13(typescript@5.0.4))':
|
||||
dependencies:
|
||||
vite: 4.5.5(@types/node@16.18.108)(less@4.2.0)
|
||||
@ -4265,6 +4385,8 @@ snapshots:
|
||||
slate: 0.72.8
|
||||
snabbdom: 3.6.2
|
||||
|
||||
'@xmldom/xmldom@0.8.10': {}
|
||||
|
||||
abab@2.0.6: {}
|
||||
|
||||
acorn-globals@7.0.1:
|
||||
@ -4282,6 +4404,13 @@ snapshots:
|
||||
|
||||
acorn@8.12.1: {}
|
||||
|
||||
aes-decrypter@4.0.2:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
'@videojs/vhs-utils': 4.1.1
|
||||
global: 4.4.0
|
||||
pkcs7: 1.0.4
|
||||
|
||||
agent-base@6.0.2:
|
||||
dependencies:
|
||||
debug: 4.3.7
|
||||
@ -4786,6 +4915,8 @@ snapshots:
|
||||
domhandler: 4.3.1
|
||||
entities: 2.2.0
|
||||
|
||||
dom-walk@0.1.2: {}
|
||||
|
||||
dom7@3.0.0:
|
||||
dependencies:
|
||||
ssr-window: 3.0.0
|
||||
@ -5418,6 +5549,11 @@ snapshots:
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
|
||||
global@4.4.0:
|
||||
dependencies:
|
||||
min-document: 2.19.0
|
||||
process: 0.11.10
|
||||
|
||||
globals@13.24.0:
|
||||
dependencies:
|
||||
type-fest: 0.20.2
|
||||
@ -5640,6 +5776,8 @@ snapshots:
|
||||
|
||||
is-extglob@2.1.1: {}
|
||||
|
||||
is-function@1.0.2: {}
|
||||
|
||||
is-glob@4.0.3:
|
||||
dependencies:
|
||||
is-extglob: 2.1.1
|
||||
@ -5876,6 +6014,12 @@ snapshots:
|
||||
|
||||
luxon@3.5.0: {}
|
||||
|
||||
m3u8-parser@7.2.0:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
'@videojs/vhs-utils': 4.1.1
|
||||
global: 4.4.0
|
||||
|
||||
magic-string@0.30.11:
|
||||
dependencies:
|
||||
'@jridgewell/sourcemap-codec': 1.5.0
|
||||
@ -5944,6 +6088,10 @@ snapshots:
|
||||
|
||||
min-dash@4.2.1: {}
|
||||
|
||||
min-document@2.19.0:
|
||||
dependencies:
|
||||
dom-walk: 0.1.2
|
||||
|
||||
min-dom@4.2.1:
|
||||
dependencies:
|
||||
component-event: 0.2.1
|
||||
@ -5976,10 +6124,22 @@ snapshots:
|
||||
dependencies:
|
||||
min-dash: 4.2.1
|
||||
|
||||
mpd-parser@1.3.1:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
'@videojs/vhs-utils': 4.1.1
|
||||
'@xmldom/xmldom': 0.8.10
|
||||
global: 4.4.0
|
||||
|
||||
ms@2.0.0: {}
|
||||
|
||||
ms@2.1.3: {}
|
||||
|
||||
mux.js@7.1.0:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
global: 4.4.0
|
||||
|
||||
namespace-emitter@2.0.1: {}
|
||||
|
||||
nanoid@3.3.7: {}
|
||||
@ -6158,6 +6318,10 @@ snapshots:
|
||||
optionalDependencies:
|
||||
typescript: 5.0.4
|
||||
|
||||
pkcs7@1.0.4:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
|
||||
posix-character-classes@0.1.1: {}
|
||||
|
||||
possible-typed-array-names@1.0.0: {}
|
||||
@ -6219,6 +6383,8 @@ snapshots:
|
||||
|
||||
prismjs@1.29.0: {}
|
||||
|
||||
process@0.11.10: {}
|
||||
|
||||
proxy-from-env@1.1.0: {}
|
||||
|
||||
prr@1.0.1:
|
||||
@ -6753,6 +6919,32 @@ snapshots:
|
||||
|
||||
vary@1.1.2: {}
|
||||
|
||||
video.js@8.22.0:
|
||||
dependencies:
|
||||
'@babel/runtime': 7.25.6
|
||||
'@videojs/http-streaming': 3.17.0(video.js@8.22.0)
|
||||
'@videojs/vhs-utils': 4.1.1
|
||||
'@videojs/xhr': 2.7.0
|
||||
aes-decrypter: 4.0.2
|
||||
global: 4.4.0
|
||||
m3u8-parser: 7.2.0
|
||||
mpd-parser: 1.3.1
|
||||
mux.js: 7.1.0
|
||||
videojs-contrib-quality-levels: 4.1.0(video.js@8.22.0)
|
||||
videojs-font: 4.2.0
|
||||
videojs-vtt.js: 0.15.5
|
||||
|
||||
videojs-contrib-quality-levels@4.1.0(video.js@8.22.0):
|
||||
dependencies:
|
||||
global: 4.4.0
|
||||
video.js: 8.22.0
|
||||
|
||||
videojs-font@4.2.0: {}
|
||||
|
||||
videojs-vtt.js@0.15.5:
|
||||
dependencies:
|
||||
global: 4.4.0
|
||||
|
||||
vite-plugin-svg-icons@2.0.1(vite@4.5.5(@types/node@16.18.108)(less@4.2.0)):
|
||||
dependencies:
|
||||
'@types/svgo': 2.6.4
|
||||
@ -6852,6 +7044,13 @@ snapshots:
|
||||
'@volar/vue-typescript': 0.38.9
|
||||
typescript: 5.0.4
|
||||
|
||||
vue-video-player@6.0.0(@types/video.js@7.3.58)(video.js@8.22.0)(vue@3.3.13(typescript@5.0.4)):
|
||||
dependencies:
|
||||
'@types/video.js': 7.3.58
|
||||
'@videojs-player/vue': 1.0.0(@types/video.js@7.3.58)(video.js@8.22.0)(vue@3.3.13(typescript@5.0.4))
|
||||
video.js: 8.22.0
|
||||
vue: 3.3.13(typescript@5.0.4)
|
||||
|
||||
vue@2.7.16:
|
||||
dependencies:
|
||||
'@vue/compiler-sfc': 2.7.16
|
||||
|
||||
@ -91,5 +91,5 @@ export function checktoken() {
|
||||
return server.requestT({
|
||||
url: "/oauth2/login/checktoken",
|
||||
method: "post"
|
||||
});
|
||||
},false);
|
||||
}
|
||||
|
||||
@ -49,3 +49,25 @@ export function update(data:Addobj) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//审核
|
||||
export function examine(data:any) {
|
||||
return server.request({
|
||||
url: '/cloud/wechat/user/alterState',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//解绑公司
|
||||
export function unbind(wuid:string,pcode:string) {
|
||||
return server.request({
|
||||
url: '/cloud/wechat/user/companyunbind',
|
||||
method: 'post',
|
||||
data:{
|
||||
wuid,
|
||||
pcode
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@ -59,4 +59,13 @@ export function delhdz(id:string) {
|
||||
id
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
//分账
|
||||
export function getyysfz(params:any) {
|
||||
return server.request({
|
||||
url: '/cloud/independent/account/list',
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
22
src/api/swapstation/video.ts
Normal file
22
src/api/swapstation/video.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import server from '@/utils/request'
|
||||
|
||||
|
||||
//获取设备
|
||||
export function getdevice() {
|
||||
return server.request({
|
||||
url: '/cloud/dh/device/list',
|
||||
method: 'get'
|
||||
},false)
|
||||
}
|
||||
|
||||
//获取直播地址
|
||||
export function getlive(deviceId:string,channelId:string) {
|
||||
return server.request({
|
||||
url: '/cloud/dh/device/live',
|
||||
method: 'post',
|
||||
data:{
|
||||
deviceId,
|
||||
channelId
|
||||
}
|
||||
},false)
|
||||
}
|
||||
@ -11,7 +11,7 @@ interface Query{
|
||||
status?:String //状态:1-启用,0-禁用
|
||||
}
|
||||
|
||||
export function getlist(params:Query) {
|
||||
export function getyyslist(params:Query) {
|
||||
return server.request({
|
||||
url: '/resource/proxyoperater/list',
|
||||
method: 'get',
|
||||
|
||||
@ -40,7 +40,7 @@ export function delrole(rid:String) {
|
||||
}
|
||||
|
||||
//查询
|
||||
export function getlist(userId:String) {
|
||||
export function getjslist(userId:String) {
|
||||
return server.request({
|
||||
url: '/resource/role/list',
|
||||
method: 'get',
|
||||
|
||||
@ -86,4 +86,17 @@ export function adduserrole(data:Addrole) {
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//运营商用户分配换电站
|
||||
interface Fpsta{
|
||||
uid:String,
|
||||
stationIds:String
|
||||
}
|
||||
export function dispstation(data:Fpsta) {
|
||||
return server.request({
|
||||
url: '/resource/user/adduserstation',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@ -16,10 +16,15 @@ import myIcons from "@/components/SvgIcon/myIcon";
|
||||
// import formCreate from "@form-create/element-ui";
|
||||
// import fcDesigner from "@form-create/designer";
|
||||
|
||||
import VueVideoPlayer from 'vue-video-player'
|
||||
|
||||
// 引入video.js样式
|
||||
import 'video.js/dist/video-js.css'
|
||||
|
||||
const app = createApp(App);
|
||||
app.use(createPinia());
|
||||
app.use(router);
|
||||
app.use(VueVideoPlayer)
|
||||
// element plus Icons
|
||||
for (const [name, comp] of Object.entries(ElementPlusIconsVue)) {
|
||||
app.component(name, comp);
|
||||
|
||||
@ -59,7 +59,8 @@ const store = defineStore({
|
||||
avatar,
|
||||
roles:data.roleList,
|
||||
name:data.uname,
|
||||
nickName:data.nickName
|
||||
nickName:data.nickName,
|
||||
type:data.type
|
||||
})
|
||||
|
||||
localStorage.setItem('Infor',infor)
|
||||
|
||||
@ -95,8 +95,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="订单类型" min-width="80" align="center" prop="sourceFrom" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.status == 1">换电</div>
|
||||
<div v-else-if="scope.row.status == 2">充电</div>
|
||||
<div v-if="scope.row.orderType == 1">换电</div>
|
||||
<div v-else-if="scope.row.orderType == 2">充电</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="车牌号" min-width="120" align="center" prop="plateNum" :show-overflow-tooltip="true" />
|
||||
|
||||
@ -691,7 +691,7 @@
|
||||
getqrcode
|
||||
} from '@/api/swapstation/hdz'
|
||||
import {
|
||||
getlist
|
||||
getyyslist
|
||||
} from '@/api/systemSet/operator'
|
||||
import {
|
||||
getArea
|
||||
@ -739,8 +739,8 @@
|
||||
|
||||
//初始查询运营商
|
||||
let yunList = ref<any>([])
|
||||
getlist({
|
||||
pageSize:20,
|
||||
getyyslist({
|
||||
pageSize:200,
|
||||
pageNo:1
|
||||
}).then(rps => {
|
||||
if(rps.data){
|
||||
|
||||
110
src/views/swapstation/video/index.vue
Normal file
110
src/views/swapstation/video/index.vue
Normal file
@ -0,0 +1,110 @@
|
||||
<template>
|
||||
<el-row>
|
||||
<el-col :span="4" style="position: relative;height:calc(100vh - 170px);border: 4px solid #fff;background: #fff;">
|
||||
<!--@check="treecheck"-->
|
||||
<!--show-checkbox-->
|
||||
<div style="position: absolute;width: 100%;top:0;left: 0;height:calc(100vh - 170px);overflow-y: scroll;">
|
||||
<el-tree
|
||||
v-if="menuTree.length>0"
|
||||
ref="menutree"
|
||||
style="width: 100%;"
|
||||
:data="menuTree"
|
||||
default-expand-all
|
||||
@node-click="treeNode"
|
||||
|
||||
node-key="pkId"
|
||||
highlight-current
|
||||
:props="{
|
||||
children: 'childList',
|
||||
label: 'name'
|
||||
}"
|
||||
/>
|
||||
<div v-else style="display: flex;align-items: center;justify-content: center;width: 100%;height:calc(100vh - 140px);color: #ccc;">数据加载中...</div>
|
||||
</div>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="20">
|
||||
<div v-if="init" style="display: flex;align-items: center;justify-content: center;width: 100%;height:calc(100vh - 140px);font-size: 28px;color: #ccc;">请点击设备查看监控</div>
|
||||
<video-player
|
||||
v-else
|
||||
:key="datestr"
|
||||
ref="videoPlayer"
|
||||
:playsinline="false"
|
||||
:options="playerOptions"
|
||||
/>
|
||||
|
||||
<!-- <div v-else>视频加载中...</div> -->
|
||||
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
|
||||
import {
|
||||
getdevice,
|
||||
getlive
|
||||
} from '@/api/swapstation/video'
|
||||
import {
|
||||
getRouters
|
||||
} from '@/api/menu'
|
||||
import { ref,reactive } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
|
||||
|
||||
//查询
|
||||
let menuTree = ref<any>([])
|
||||
let livesrc = ref('')
|
||||
// getRouters().then(rps => {
|
||||
// menuTree.value = rps.data
|
||||
// })
|
||||
|
||||
getdevice().then((rps:any) => {
|
||||
menuTree.value = rps.data.data
|
||||
})
|
||||
|
||||
let showVideo = ref(false)
|
||||
let init = ref(true)
|
||||
let datestr = ref<any>('')
|
||||
function treeNode(v:any) {
|
||||
|
||||
if(!v.childList || v.childList.length == 0){
|
||||
init.value = false
|
||||
showVideo.value = false
|
||||
getlive(v.deviceId,v.channelId).then((rps:any) => {
|
||||
datestr.value = new Date().getTime()
|
||||
playerOptions.sources.splice(0)
|
||||
playerOptions.sources.push({
|
||||
type:'application/x-mpegURL',
|
||||
src:rps.data.data
|
||||
})
|
||||
showVideo.value = true
|
||||
console.log(rps.data.data)
|
||||
})
|
||||
}
|
||||
}
|
||||
function treecheck() {}
|
||||
|
||||
let playerOptions =reactive({
|
||||
autoplay: true,
|
||||
controls: true,
|
||||
liveui: true,
|
||||
language: 'zh-CN', // 语言
|
||||
aspectRatio: '16:9', // 宽高比
|
||||
fluid: true, // 自适应父容器
|
||||
sources: [{
|
||||
type: 'application/x-mpegURL',
|
||||
src: ''
|
||||
}],
|
||||
techOrder: ['html5'],
|
||||
html5: {
|
||||
hls: {
|
||||
withCredentials: false,
|
||||
lowLatencyMode: true,
|
||||
liveSyncDuration: 3
|
||||
}
|
||||
}
|
||||
//poster: '/path/to/poster.jpg'
|
||||
})
|
||||
</script>
|
||||
@ -221,7 +221,7 @@
|
||||
</template>
|
||||
<script setup lang="ts" name="UserPage">
|
||||
import {
|
||||
getlist,
|
||||
getyyslist,
|
||||
addyunys,
|
||||
updateyys,
|
||||
delyys
|
||||
@ -260,7 +260,7 @@
|
||||
|
||||
function getyys() {
|
||||
yysList.value.splice(0)
|
||||
getlist(queryParams).then(rps => {
|
||||
getyyslist(queryParams).then(rps => {
|
||||
if(rps.data){
|
||||
total.value = (rps.data as any).total
|
||||
let list = (rps.data as any).records
|
||||
|
||||
@ -164,7 +164,7 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import {
|
||||
getlist,
|
||||
getjslist,
|
||||
addrole,
|
||||
updaterole,
|
||||
delrole,
|
||||
@ -186,7 +186,7 @@
|
||||
let dictlist = ref<any>([])
|
||||
function querytype() {
|
||||
dictlist.value.splice(0)
|
||||
getlist('').then(rps => {
|
||||
getjslist('').then(rps => {
|
||||
dictlist.value = rps.data
|
||||
})
|
||||
}
|
||||
|
||||
197
src/views/system/user/fphdz.vue
Normal file
197
src/views/system/user/fphdz.vue
Normal file
@ -0,0 +1,197 @@
|
||||
<template>
|
||||
<el-dialog
|
||||
v-model="showpop"
|
||||
title="分配换电站"
|
||||
width="800px"
|
||||
append-to-body
|
||||
:close-on-click-modal="false"
|
||||
@close="cancel"
|
||||
>
|
||||
|
||||
<el-table
|
||||
ref="tableRef"
|
||||
style="margin-top: 20px;"
|
||||
:data="hdzList"
|
||||
border
|
||||
stripe
|
||||
max-height="800px"
|
||||
@select="selectClick"
|
||||
@selection-change="selChange"
|
||||
>
|
||||
<!--:selectable="selectable"-->
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="站点名称" min-width="200" align="center" prop="name" :show-overflow-tooltip="true" />
|
||||
|
||||
<el-table-column label="站点编码" min-width="300" align="center" prop="code" :show-overflow-tooltip="true" />
|
||||
<!-- <el-table-column label="运营商" min-width="200" align="center" prop="proxyId" :show-overflow-tooltip="true" /> -->
|
||||
<el-table-column label="状态" min-width="100" align="center" prop="status" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.status == 1">正常营业</div>
|
||||
<div v-else-if="scope.row.status == 2">正常停运</div>
|
||||
<div v-else-if="scope.row.status == 3">故障停运</div>
|
||||
<div v-else-if="scope.row.status == 4">指令停运</div>
|
||||
<div v-else-if="scope.row.status == 9">其它</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="地址" min-width="400" align="center" prop="address" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="注册日期" min-width="120" align="center" prop="registerDate" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="联系人" min-width="200" align="center" prop="contacts" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="联系电话" min-width="140" align="center" prop="phone" />
|
||||
<el-table-column label="激活日期" min-width="160" align="center" prop="activeDate" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="营业时间" min-width="120" align="center" prop="openAllDay" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.openAllDay == 1">全天</div>
|
||||
<div v-else>{{scope.row.runStartTime}} — {{scope.row.runEndTime}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="通道数" min-width="100" align="center" prop="tdQuantity" />
|
||||
|
||||
<el-table-column label="机器人数量" min-width="100" align="center" prop="jqrQuantity" />
|
||||
<el-table-column label="充电机数量" min-width="160" align="center" prop="cdjQuantity" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="电池仓数量" min-width="100" align="center" prop="dccQuantity" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="电池数量" min-width="100" align="center" prop="dcQuantity" /> -->
|
||||
</el-table>
|
||||
<div v-if="total > 10" style="display: flex;justify-content: right;padding-top: 20px;">
|
||||
<el-pagination
|
||||
v-model:current-page="queryParams.pageNo"
|
||||
v-model:page-size="queryParams.pageSize"
|
||||
:page-sizes="[10, 20, 30, 40]"
|
||||
background
|
||||
size="small"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="fphdz"
|
||||
/>
|
||||
</div>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="fphdzhand">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref,reactive,watch,nextTick } from 'vue'
|
||||
|
||||
import {
|
||||
gethdzlist
|
||||
} from '@/api/swapstation/hdz'
|
||||
|
||||
|
||||
import {
|
||||
dispstation
|
||||
} from '@/api/systemSet/user'
|
||||
|
||||
import { ElMessage} from 'element-plus'
|
||||
const props = withDefaults(defineProps<{
|
||||
show?:boolean,
|
||||
uid?:string,
|
||||
code?:string
|
||||
}>(), {
|
||||
show:false,
|
||||
uid:'',
|
||||
code:''
|
||||
})
|
||||
|
||||
|
||||
const emit = defineEmits<{
|
||||
cancel: [v?:boolean]
|
||||
}>()
|
||||
|
||||
let showpop = ref(props.show)
|
||||
|
||||
watch(() => props.show,(v) => {
|
||||
showpop.value = v
|
||||
})
|
||||
|
||||
//分配换电站
|
||||
let fphdzpop = ref(false)
|
||||
let hdzList = ref([])
|
||||
let total = ref(0)
|
||||
//let selectable = (row:any) => ![1].includes(row.pkId)
|
||||
|
||||
let queryParams = reactive({
|
||||
pageSize:20, //每页条数
|
||||
pageNo:1, //页数
|
||||
proxyId:'', //归属运营商ID
|
||||
name:'', //站点名称
|
||||
code:'', //站点编码
|
||||
status:1, //状态:1-正常营业,2-正常停运,3-故障停运,4-指令停运,9-其它
|
||||
type:'', //站点类型ID
|
||||
})
|
||||
|
||||
|
||||
const tableRef = ref()
|
||||
function fphdz() {
|
||||
hdzList.value.splice(0)
|
||||
gethdzlist(queryParams).then(rps => {
|
||||
if(rps.data){
|
||||
total.value = (rps.data as any).total
|
||||
let list = (rps.data as any).records
|
||||
hdzList.value = list?list:[]
|
||||
|
||||
// 默认选中的ID数组
|
||||
if(props.code){
|
||||
|
||||
nextTick(() => {
|
||||
let hdzcode = props.code.split(',')
|
||||
hdzcode.forEach(n => {
|
||||
const rows = hdzList.value.find((item:any) => item.code == n)
|
||||
if (rows) {
|
||||
tableRef.value?.toggleRowSelection(rows, true)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function handleSizeChange(val:number) {
|
||||
queryParams.pageSize = val
|
||||
fphdz()
|
||||
}
|
||||
|
||||
function selectClick() {}
|
||||
|
||||
function cancel() {
|
||||
showpop.value = false
|
||||
emit('cancel',showpop.value)
|
||||
}
|
||||
|
||||
let xzarr = ref<any>([])
|
||||
function selChange(v:any) {
|
||||
xzarr.value = v
|
||||
}
|
||||
|
||||
|
||||
function fphdzhand() {
|
||||
if(xzarr.value.length > 0){
|
||||
dispstation({
|
||||
uid:props.uid,
|
||||
stationIds:xzarr.value.map((n:any)=>n.pkId).join(',')
|
||||
}).then(() => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '分配成功'
|
||||
})
|
||||
setTimeout(() => {
|
||||
cancel()
|
||||
},2000)
|
||||
|
||||
})
|
||||
}else{
|
||||
ElMessage({
|
||||
type: 'warning',
|
||||
message: '请选择换电站'
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
fphdz()
|
||||
</script>
|
||||
<style>
|
||||
</style>
|
||||
@ -52,8 +52,14 @@
|
||||
:data="userList"
|
||||
border
|
||||
stripe
|
||||
highlight-current-row
|
||||
>
|
||||
<el-table-column label="账号" align="center" prop="uname" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="账号" align="center" prop="uname" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.readonly != 1" @click="showpop(2,scope.row)" style="display: inline-block;color:#16599d;border-bottom: 1px solid #417ebb;cursor:pointer">{{scope.row.uname}}</div>
|
||||
<div v-else>{{scope.row.uname}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="账号类型" align="center" prop="type">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.type == 1">开发者</div>
|
||||
@ -61,10 +67,13 @@
|
||||
<div v-else="scope.row.type == 3">企业用户</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="所属运营商或企业用户" align="center" width="240" prop="businessName" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="关联方代码" align="center" width="140" prop="typeRelateCode" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="姓名" align="center" prop="name" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="手机号" align="center" width="120" prop="phone" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="邮箱" align="center" width="200" prop="email" :show-overflow-tooltip="true" />
|
||||
|
||||
<!-- <el-table-column label="所属企业用户" align="center" width="200" prop="typeRelateCode" :show-overflow-tooltip="true" /> -->
|
||||
<!-- <el-table-column label="性别" align="center" prop="sex">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.sex == 1">男</div>
|
||||
@ -83,10 +92,11 @@
|
||||
<span>{{ dayjs(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss") }}</span>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="操作" align="center" width="260">
|
||||
<el-table-column label="操作" align="left" width="260">
|
||||
<template #default="scope">
|
||||
<el-button link v-if="scope.row.readonly != 1" type="primary" icon="Edit" @click="showpop(2,scope.row)">修改</el-button>
|
||||
<!-- <el-button link v-if="scope.row.readonly != 1" type="primary" icon="Edit" @click="showpop(2,scope.row)">修改</el-button> -->
|
||||
<el-button link v-if="scope.row.readonly != 1" type="primary" icon="CircleCheck" @click="handleAuthRole(scope.row)">分配角色</el-button>
|
||||
<el-button link v-if="scope.row.readonly != 1 && scope.row.type == 2" type="primary" icon="Monitor" @click="feiphdz(scope.row)">分配站</el-button>
|
||||
<el-button link v-if="scope.row.readonly != 1" type="danger" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -111,25 +121,22 @@
|
||||
<el-dialog
|
||||
v-model="openpop"
|
||||
:title="usertit"
|
||||
width="800px"
|
||||
width="500px"
|
||||
append-to-body
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
<el-form ref="userRef" :model="userform" :rules="rules" label-width="100px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="账号" prop="uname">
|
||||
<el-input v-model="userform.uname" placeholder="请输入账号" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="账号类型" prop="type">
|
||||
|
||||
<el-col :span="24">
|
||||
<el-form-item v-if="userType == 1" label="账号类型" prop="type">
|
||||
<el-radio-group v-model="userform.type">
|
||||
<el-radio value="1">开发者</el-radio>
|
||||
<el-radio value="2">运营商</el-radio>
|
||||
<el-radio value="3">企业用户</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item label="" prop="status">
|
||||
<el-select v-model="userform.type" placeholder="请选择运营商" style="width: 160px;">
|
||||
<el-option value="1" label="正常营业" />
|
||||
@ -140,7 +147,30 @@
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col v-if="userform.type == '2'" :span="24">
|
||||
<el-form-item label="运营商" prop="businessCode">
|
||||
|
||||
<el-select v-model="userform.businessCode" placeholder="请选择运营商">
|
||||
<el-option v-for="n in yunList" :label="n.poname" :value="n.pocode" />
|
||||
</el-select>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="userform.type == '3'" :span="24">
|
||||
|
||||
<el-form-item label="企业用户" prop="businessCode1">
|
||||
<el-select v-model="userform.businessCode1" placeholder="请选择企业用户">
|
||||
<el-option v-for="n in qyuserList" :label="n.cname" :value="n.ccode" />
|
||||
</el-select>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="账号" prop="uname">
|
||||
<el-input v-model="userform.uname" placeholder="请输入账号" maxlength="20" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="用户密码" prop="password">
|
||||
<el-input
|
||||
v-model="userform.password"
|
||||
@ -151,7 +181,7 @@
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="状态" prop="status">
|
||||
<el-radio-group v-model="userform.status">
|
||||
<el-radio value="1">启用</el-radio>
|
||||
@ -159,18 +189,18 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="关联方代码" prop="typeRelateCode">
|
||||
<el-input v-model="userform.typeRelateCode" placeholder="请输入关联方代码" maxlength="30" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="姓名" prop="name">
|
||||
<el-input v-model="userform.name" placeholder="请输入姓名" maxlength="30" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="邮箱" prop="email">
|
||||
<el-input v-model="userform.email" placeholder="请输入邮箱" maxlength="50" />
|
||||
</el-form-item>
|
||||
@ -183,7 +213,7 @@
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col> -->
|
||||
<el-col :span="12">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="内置账号" prop="readonly">
|
||||
<el-radio-group v-model="userform.readonly">
|
||||
<el-radio value="1">是</el-radio>
|
||||
@ -229,12 +259,13 @@
|
||||
plain
|
||||
@click="fenpeirole">分配角色</el-button>
|
||||
<el-table
|
||||
ref="multipleTableRef"
|
||||
ref="taskTableRef"
|
||||
style="margin-top: 20px;"
|
||||
:data="rolelist"
|
||||
border
|
||||
stripe
|
||||
@selection-change="handleSelectionChange"
|
||||
@select="selectClick"
|
||||
:header-cell-class-name="cellClass"
|
||||
>
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column label="角色名称" align="center" prop="name" />
|
||||
@ -248,9 +279,20 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-drawer>
|
||||
|
||||
<!--分配换电站-->
|
||||
|
||||
<fphdz
|
||||
v-if="hdzpop"
|
||||
:show="hdzpop"
|
||||
:uid="uid"
|
||||
:code="hdzcode"
|
||||
@update="handhdx"
|
||||
@cancel="hdzpop = false"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts" name="UserPage">
|
||||
<script setup lang="ts">
|
||||
import {
|
||||
getuser,
|
||||
adduser,
|
||||
@ -258,10 +300,65 @@
|
||||
deleteuser,
|
||||
adduserrole
|
||||
} from '@/api/systemSet/user'
|
||||
import { getlist } from '@/api/systemSet/role'
|
||||
import { ref,reactive } from 'vue'
|
||||
|
||||
import { getjslist } from '@/api/systemSet/role'
|
||||
import {
|
||||
getyyslist
|
||||
} from '@/api/systemSet/operator'
|
||||
import {
|
||||
getlist
|
||||
} from '@/api/operation/company'
|
||||
|
||||
import Fphdz from './fphdz.vue'
|
||||
|
||||
import { ref,reactive,nextTick } from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
|
||||
//用户类型
|
||||
let Info:any = localStorage.getItem('Infor')
|
||||
let userType = ref<any>('')
|
||||
let roles = ''
|
||||
if(Info){
|
||||
Info = JSON.parse(Info)
|
||||
userType.value = (Info as any).type
|
||||
if((Info as any).roles && (Info as any).roles.length > 0){
|
||||
roles = (Info as any).roles[0].rcode
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
let yunList = ref<any>([])
|
||||
let qyuserList = ref<any>([])
|
||||
if(userType.value == 1){
|
||||
//初始查询运营商
|
||||
getyyslist({
|
||||
pageSize:200,
|
||||
pageNo:1
|
||||
}).then(rps => {
|
||||
if(rps.data){
|
||||
let list = (rps.data as any).records
|
||||
yunList.value = list?list:[]
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
//初始获取企业用户
|
||||
getlist({
|
||||
pageSize:200,
|
||||
pageNo:1
|
||||
}).then(rps => {
|
||||
if(rps.data){
|
||||
let list = (rps.data as any).records
|
||||
qyuserList.value = list?list:[]
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//查询用户
|
||||
let queryParams = reactive({
|
||||
uid:'',
|
||||
@ -274,7 +371,6 @@
|
||||
})
|
||||
let total = ref(0)
|
||||
let userList = ref([])
|
||||
|
||||
//查询
|
||||
function handBtnqu() {
|
||||
queryParams.pageNo = 1
|
||||
@ -310,20 +406,22 @@
|
||||
let openpop = ref(false)
|
||||
let userRef = ref()
|
||||
let usertit = ref('添加用户')
|
||||
let userform = reactive({
|
||||
let userform = reactive<any>({
|
||||
pkId:'',
|
||||
uname:'', //账号
|
||||
type:'', //账号类型:1-开发者,2-运营方,3-客户
|
||||
password:'', // 密码
|
||||
status:'', //状态:1-启用,0-禁用
|
||||
status:'1', //状态:1-启用,0-禁用
|
||||
uid:'', //用户ID(修改时用)
|
||||
typeRelateCode:'', //关联方代码
|
||||
name:'', //姓名
|
||||
email:'', //邮箱
|
||||
phone:'', //手机号码
|
||||
//sex:'', //性别
|
||||
readonly:'', //是否内置账号,内置账号不允许动
|
||||
avatar:'' //头像
|
||||
readonly:'2', //是否内置账号,内置账号不允许动
|
||||
avatar:'', //头像
|
||||
businessCode:'', //运营商code 企业用户code
|
||||
businessCode1:'' //运营商code 企业用户code
|
||||
})
|
||||
|
||||
const rules = ref({
|
||||
@ -348,6 +446,12 @@
|
||||
trigger: "blur",
|
||||
},
|
||||
],
|
||||
businessCode:[
|
||||
{ required: true, message: "请选择运营商", trigger: "blur" },
|
||||
],
|
||||
businessCode1:[
|
||||
{ required: true, message: "请选择企业用户", trigger: "blur" },
|
||||
],
|
||||
status:[
|
||||
{ required: true, message: "请选择状态", trigger: "blur" },
|
||||
],
|
||||
@ -384,26 +488,39 @@
|
||||
userform.email = row.email
|
||||
userform.phone = row.phone
|
||||
//userform.sex = row.sex+''
|
||||
userform.readonly = row.readonly+''
|
||||
userform.avatar = row.avatar
|
||||
userform.readonly = row.readonly?row.readonly+'':'2'
|
||||
if(userform.type == 1){
|
||||
userform.businessCode = ''
|
||||
}else if(userform.type == 2){
|
||||
userform.businessCode = row.businessCode
|
||||
}else if(userform.type == 3){
|
||||
userform.businessCode1 = row.businessCode
|
||||
}
|
||||
|
||||
//userform.avatar = row.avatar
|
||||
}else{
|
||||
userform.pkId = ''
|
||||
userform.uid = ''
|
||||
userform.uname = ''
|
||||
userform.type = ''
|
||||
userform.password = ''
|
||||
userform.status = ''
|
||||
userform.status = '1'
|
||||
userform.typeRelateCode = ''
|
||||
userform.name = ''
|
||||
userform.email = ''
|
||||
userform.phone = ''
|
||||
//userform.sex = ''
|
||||
userform.readonly = ''
|
||||
userform.avatar = ''
|
||||
userform.readonly = '2'
|
||||
//userform.avatar = ''
|
||||
userform.businessCode = ''
|
||||
userform.businessCode1 = ''
|
||||
}
|
||||
}
|
||||
|
||||
function caozuohand() {
|
||||
if(userform.type == 3){
|
||||
userform.businessCode = userform.businessCode1
|
||||
}
|
||||
if(cztype.value == 1){
|
||||
return adduser(userform)
|
||||
}
|
||||
@ -474,58 +591,26 @@
|
||||
}else if(row.type == 2){
|
||||
userInfor.value.type = '运营方'
|
||||
}else{
|
||||
userInfor.value.type = '客户'
|
||||
userInfor.value.type = '企业用户'
|
||||
}
|
||||
getlist('').then(rps => {
|
||||
getjslist('').then(rps => {
|
||||
rolelist.value = rps.data
|
||||
})
|
||||
//??
|
||||
// rolelist.value = [
|
||||
// {
|
||||
// name:'系统管理员',
|
||||
// pkId:500,
|
||||
// rcode:'SYSADMIN',
|
||||
// readonly:1,
|
||||
// status:1,
|
||||
// type:1
|
||||
// },
|
||||
// {
|
||||
// name:'运营商',
|
||||
// pkId:500,
|
||||
// rcode:'SYSADMIN',
|
||||
// readonly:1,
|
||||
// status:1,
|
||||
// type:1
|
||||
// }
|
||||
// ]
|
||||
//??
|
||||
// 默认选中的ID数组
|
||||
nextTick(() => {
|
||||
const rows = rolelist.value.find((item:any) => item.rcode == row.rcodes)
|
||||
if (rows) {
|
||||
taskTableRef.value?.toggleRowSelection(rows, true)
|
||||
rolesave.value.push({rcode:row.rcodes})
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
// getrolelist('123').then(rps => {
|
||||
// rolelist.value = [
|
||||
// {
|
||||
// name:'系统管理员',
|
||||
// pkId:500,
|
||||
// rcode:'SYSADMIN',
|
||||
// readonly:1,
|
||||
// status:1,
|
||||
// type:1
|
||||
// },
|
||||
// {
|
||||
// name:'运营商',
|
||||
// pkId:500,
|
||||
// rcode:'SYSADMIN',
|
||||
// readonly:1,
|
||||
// status:1,
|
||||
// type:1
|
||||
// }
|
||||
// ]
|
||||
// })
|
||||
})
|
||||
}
|
||||
|
||||
function handleSelectionChange(val:any) {
|
||||
rolesave.value = val
|
||||
}
|
||||
// function handleSelectionChange(val:any) {
|
||||
// rolesave.value = val
|
||||
// }
|
||||
|
||||
function handleClose() {
|
||||
drawer.value = false
|
||||
@ -537,8 +622,8 @@
|
||||
if(rolesave.value.length > 0){
|
||||
adduserrole({
|
||||
uid:userInfor.value.uid, //用户id
|
||||
rcode:rolesave.value[0].rcode, //角色编码
|
||||
pkId:rolesave.value[0].pkId
|
||||
rcode:rolesave.value[0].rcode //角色编码
|
||||
//pkId:rolesave.value[0].pkId
|
||||
}).then(() => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
@ -552,9 +637,51 @@
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//设置单选
|
||||
const taskTableRef = ref()
|
||||
const selectClick = (selection: any, row: any) => {
|
||||
if(selection.length > 1) {
|
||||
let del_row = selection.shift();
|
||||
taskTableRef.value.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中);第二个参数为true时又变成了多选
|
||||
}
|
||||
rolesave.value = selection
|
||||
|
||||
}
|
||||
|
||||
function cellClass(row: any) {
|
||||
// 隐藏多选框一列的表头即全选框
|
||||
if (row.columnIndex === 0) {
|
||||
return 'disabledCheck'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//分配换电站
|
||||
let hdzpop = ref(false)
|
||||
let uid = ref('')
|
||||
let hdzcode = ref('')
|
||||
function feiphdz(row:any){
|
||||
hdzpop.value = true
|
||||
uid.value = row.uid
|
||||
hdzcode.value = row.stationCodes
|
||||
}
|
||||
|
||||
function handhdx() {
|
||||
hdzpop.value = false
|
||||
handleQuery()
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
<style>
|
||||
/* 隐藏全选按钮 */
|
||||
.el-table .disabledCheck .cell .el-checkbox__inner {
|
||||
display: none;
|
||||
}
|
||||
.el-divider--horizontal{
|
||||
border-color:#5b98cd;
|
||||
}
|
||||
.el-divider--horizontal{
|
||||
border-color:#5b98cd;
|
||||
}
|
||||
|
||||
@ -1253,6 +1253,14 @@
|
||||
|
||||
function handleClick() {}
|
||||
</script>
|
||||
<style>
|
||||
.el-table .disabledCheck .cell .el-checkbox__inner {
|
||||
display: none;
|
||||
}
|
||||
.el-divider--horizontal{
|
||||
border-color:#5b98cd;
|
||||
}
|
||||
</style>
|
||||
<style scoped>
|
||||
.el-divider--horizontal{
|
||||
border-color:#5b98cd;
|
||||
|
||||
211
src/views/vehicle/sepaaccou/index.vue
Normal file
211
src/views/vehicle/sepaaccou/index.vue
Normal file
@ -0,0 +1,211 @@
|
||||
<template>
|
||||
<div>
|
||||
<div v-if="search" class="app-container" style="margin-bottom: 12px;padding-bottom: 5px;border-radius: 10px;">
|
||||
<el-form
|
||||
ref="querform"
|
||||
:model="queryParams"
|
||||
:inline="true"
|
||||
label-width="auto"
|
||||
>
|
||||
<!-- <el-form-item label="车辆类型" prop="typeCode">
|
||||
<el-select v-model="queryParams.typeCode" style="width: 200px;" placeholder="请选择车辆类型">
|
||||
<el-option v-for="n in cartypelist" :label="n.typeName" :value="n.typeCode" />
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item label="运营商" prop="proxyId">
|
||||
<el-select v-model="queryParams.proxyId" placeholder="请选择运营商" style="width: 200px;">
|
||||
<el-option v-for="n in yunList" :label="n.poname" :value="n.pkId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="分账状态">
|
||||
<el-select v-model="queryParams.status" placeholder="请选择分账状态" style="width: 200px;">
|
||||
<el-option label="待分账" :value="0" />
|
||||
<el-option label="已分账" :value="1" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handBtnqu">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
<div class="app-container" style="margin-bottom: 12px;border-radius: 10px;">
|
||||
<!-- <div style="display: flex;justify-content: right;">
|
||||
<el-tooltip class="item" effect="dark" :content="search? '隐藏搜索' : '显示搜索'" placement="top">
|
||||
<el-button size="mini" circle icon="Search" @click="search = !search" />
|
||||
</el-tooltip>
|
||||
</div> -->
|
||||
<el-table
|
||||
style="width:100%;margin-top: 10px;"
|
||||
:data="yysList"
|
||||
border
|
||||
stripe
|
||||
:max-height="search?'600px':'680px'"
|
||||
:summary-method="getSummaries"
|
||||
show-summary
|
||||
>
|
||||
<el-table-column label="运营商" min-width="150" align="center" prop="proxyName" :show-overflow-tooltip="true" />
|
||||
|
||||
<el-table-column label="订单数量" min-width="150" align="left" prop="orderCount" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="分账总金额(元)" min-width="150" align="left" prop="accountTotalAmount" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div>{{scope.row.accountTotalAmount/100}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="应分金额(元)" min-width="150" align="left" prop="orderTotalAmount" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div>{{scope.row.orderTotalAmount/100}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="税点总金额(元)" min-width="150" align="left" prop="taxPointTotalAmount" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div>{{scope.row.taxPointTotalAmount/100}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="手续费" min-width="150" align="left" prop="totalHandlingFee" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div>{{scope.row.totalHandlingFee/100}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="实际分账金额(元)" min-width="150" align="left" prop="totalAmount" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div>{{scope.row.totalAmount/100}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="分账开始时间" min-width="150" align="left" prop="independentAccountBegin" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="分账结束时间" min-width="150" align="left" prop="independentAccountEnd" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="分账状态" min-width="100" align="left" prop="status" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.status == 0">待分账</div>
|
||||
<div v-else-if="scope.row.status == 1" style="color: #237d00;">已分账</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<div v-if="total > 10" style="display: flex;justify-content: right;padding-top:20px;">
|
||||
<el-pagination
|
||||
v-model:current-page="queryParams.pageNo"
|
||||
v-model:page-size="queryParams.pageSize"
|
||||
:page-sizes="[10, 20, 30, 40]"
|
||||
background
|
||||
size="small"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total"
|
||||
@size-change="handleSizeChange"
|
||||
@current-change="getyys"
|
||||
/>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import {
|
||||
getyysfz
|
||||
} from '@/api/order/account'
|
||||
import {
|
||||
getyyslist
|
||||
} from '@/api/systemSet/operator'
|
||||
import { ref,reactive,watch,h} from 'vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
|
||||
let search = ref(true)
|
||||
|
||||
let queryParams = reactive({
|
||||
pageNo:1,
|
||||
pageSize:20,
|
||||
proxyId:'', //运营商名称
|
||||
status:0 //分账状态
|
||||
})
|
||||
|
||||
//初始查询运营商
|
||||
let yunList = ref<any>([])
|
||||
getyyslist({
|
||||
pageSize:200,
|
||||
pageNo:1
|
||||
}).then(rps => {
|
||||
if(rps.data){
|
||||
let list = (rps.data as any).records
|
||||
yunList.value = list?list:[]
|
||||
}
|
||||
})
|
||||
|
||||
//查询
|
||||
let total = ref(0)
|
||||
let yysList = ref<any>([])
|
||||
|
||||
let sumtotal = ref<any>({})
|
||||
function handBtnqu(){
|
||||
queryParams.pageNo = 1
|
||||
getyys()
|
||||
}
|
||||
|
||||
function getyys() {
|
||||
yysList.value.splice(0)
|
||||
getyysfz(queryParams).then(rps => {
|
||||
if(rps.data){
|
||||
yysList.value = (rps.data as any).pageList.records
|
||||
total.value = (rps.data as any).pageList.total
|
||||
sumtotal.value = (rps.data as any).totalAmount
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function handleSizeChange(val:number) {
|
||||
queryParams.pageSize = val
|
||||
getyys()
|
||||
}
|
||||
|
||||
//重置
|
||||
let querform = ref()
|
||||
function resetQuery() {
|
||||
querform.value?.resetFields()
|
||||
}
|
||||
|
||||
|
||||
const getSummaries = (param:any) => {
|
||||
const { columns } = param
|
||||
const sums:any = []
|
||||
columns.forEach((column:any, i:any) => {
|
||||
if (i === 0) {
|
||||
sums[i] = h('div', { style: { fontSize:'18px' } }, [
|
||||
'合 计',
|
||||
])
|
||||
}else if(i == 1) {
|
||||
sums[i] = sumtotal.value.orderCount
|
||||
}else if(i == 2){
|
||||
sums[i] = sumtotal.value.accountTotalAmount/100
|
||||
}else if(i == 3){
|
||||
sums[i] = sumtotal.value.orderTotalAmount/100
|
||||
}else if(i == 4){
|
||||
sums[i] = sumtotal.value.taxPointTotalAmount/100
|
||||
}else if(i == 5){
|
||||
sums[i] = sumtotal.value.handlingFee/100
|
||||
}else if(i == 6){
|
||||
sums[i] = sumtotal.value.totalAmount/100
|
||||
}else {
|
||||
sums[i] = ''
|
||||
}
|
||||
})
|
||||
|
||||
return sums
|
||||
}
|
||||
|
||||
|
||||
getyys()
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<style scoped>
|
||||
/* 隐藏全选按钮 */
|
||||
:deep(.el-table .disabledCheck .cell .el-checkbox__inner) {
|
||||
display: none;
|
||||
}
|
||||
.el-divider--horizontal{
|
||||
border-color:#5b98cd;
|
||||
}
|
||||
</style>
|
||||
@ -19,6 +19,19 @@
|
||||
<el-form-item label="用户名称" prop="name">
|
||||
<el-input v-model="queryParams.name" placeholder="请输入名称" clearable style="width: 200px;" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属公司" prop="pname">
|
||||
<el-input v-model="queryParams.pname" placeholder="请输入公司名称" clearable style="width: 200px;" />
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="审核状态" prop="state">
|
||||
<el-select v-model="queryParams.state" placeholder="请选择审核状态" style="width: 200px;">
|
||||
<el-option label="待审核" :value="1" />
|
||||
<el-option label="通过" :value="2" />
|
||||
<el-option label="拒绝" :value="3" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" @click="handBtnqu">搜索</el-button>
|
||||
<el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
||||
@ -36,6 +49,7 @@
|
||||
:data="yysList"
|
||||
border
|
||||
stripe
|
||||
highlight-current-row
|
||||
:max-height="search?'600px':'680px'"
|
||||
>
|
||||
<el-table-column type="index" min-width="50" align="center">
|
||||
@ -71,12 +85,27 @@
|
||||
<div v-else-if="scope.row.type == 2">公司</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" min-width="100" fixed="right">
|
||||
<el-table-column label="所属公司" min-width="150" align="center" prop="name" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<!-- <el-button link type="primary" icon="Edit" @click="showpop(2,scope.row)">修改</el-button> -->
|
||||
<el-button v-if="scope.row.type == 1" link type="primary" icon="Connection" @click="showbdgs(scope.row.wuid)">绑定公司</el-button>
|
||||
<div>{{scope.row.pname?scope.row.pname:''}}</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="审核状态" min-width="100" align="center" prop="name" :show-overflow-tooltip="true">
|
||||
<template #default="scope">
|
||||
<div v-if="scope.row.state == 1">待审核</div>
|
||||
<div v-else-if="scope.row.state == 2" style="color: #529b2e;">通过</div>
|
||||
<div v-else-if="scope.row.state == 3" style="color: #b88230;">拒绝</div>
|
||||
<div v-else></div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" min-width="100" fixed="right">
|
||||
<template #default="scope">
|
||||
<el-button v-if="scope.row.state == 1" link type="primary" icon="Edit" @click="showshpop(scope.row.wuid)">审核</el-button>
|
||||
<el-button v-else-if="scope.row.state == 2" link type="danger" icon="Paperclip" @click="jiebing(scope.row.wuid,scope.row.pcode)">解绑公司</el-button>
|
||||
<el-button v-else link type="primary" icon="Connection" @click="showbdgs(scope.row.wuid)">绑定公司</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
<div v-if="total > 10" style="display: flex;justify-content: right;padding-top:20px;">
|
||||
<el-pagination
|
||||
@ -178,13 +207,49 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
|
||||
<!--审核-->
|
||||
<el-dialog
|
||||
v-model="shenhepop"
|
||||
title="审核"
|
||||
width="500px"
|
||||
append-to-body
|
||||
:close-on-click-modal="false"
|
||||
>
|
||||
|
||||
<el-form ref="shRef" :model="shenhdata" :rules="shrules" label-width="110px">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="审核意见" prop="state">
|
||||
<el-radio-group v-model="shenhdata.state">
|
||||
<el-radio :value="2">同意</el-radio>
|
||||
<el-radio :value="3">拒绝</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col v-if="(shenhdata.state as any) == 3" :span="24">
|
||||
<el-form-item label="拒绝原因" prop="reason">
|
||||
<el-input v-model="shenhdata.reason" maxlength="200" placeholder="请输入拒绝原因" clearable />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<div class="dialog-footer">
|
||||
<el-button type="primary" @click="shehesave">确 定</el-button>
|
||||
<el-button @click="cancelsh">取 消</el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import {
|
||||
getwxlist,
|
||||
gulgs,
|
||||
update
|
||||
update,
|
||||
examine,
|
||||
unbind
|
||||
} from '@/api/operation/wxuser'
|
||||
import {
|
||||
getlist
|
||||
@ -201,7 +266,9 @@
|
||||
pageSize:20, //每页条数
|
||||
pageNo:1, //页数
|
||||
phoneNumber:'', //手机号
|
||||
name:'' //名称
|
||||
name:'', //名称
|
||||
pname:'', //公司名称
|
||||
state:'' //审核状态
|
||||
// wuid:'', //微信用户id
|
||||
// nickName:'', //用户昵称
|
||||
// gender:'', //用户性别:1-男;2-女
|
||||
@ -263,7 +330,7 @@
|
||||
|
||||
function getsglist() {
|
||||
gsList.value.splice(0)
|
||||
getlist(queryParams).then(rps => {
|
||||
getlist(gsqueryParams).then(rps => {
|
||||
if(rps.data){
|
||||
gsList.value = (rps.data as any).records
|
||||
gstotal.value = (rps.data as any).total
|
||||
@ -399,18 +466,94 @@
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//审核
|
||||
let shenhepop = ref(false)
|
||||
let shenhdata = reactive({
|
||||
wuid:'',
|
||||
state:'', //审核状态:1-待审核,2-审核通过,3-审核拒绝
|
||||
reason:'' //拒绝原因
|
||||
})
|
||||
|
||||
const shrules = ref({
|
||||
state:[
|
||||
{ required: true, message: "请选择审核意见", trigger: "blur" }
|
||||
]
|
||||
})
|
||||
|
||||
let shRef = ref()
|
||||
function showshpop(wuid:string) {
|
||||
shenhdata.wuid = wuid
|
||||
shenhdata.state = ''
|
||||
shenhdata.reason = ''
|
||||
shRef.value?.resetFields()
|
||||
shenhepop.value = true
|
||||
}
|
||||
|
||||
|
||||
function shehesave(){
|
||||
shRef.value?.validate((valid:Boolean) => {
|
||||
if (valid) {
|
||||
examine(shenhdata).then(() => {
|
||||
shenhepop.value = false
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '操作成功'
|
||||
})
|
||||
setTimeout(()=> {
|
||||
openpop.value = false
|
||||
getyys()
|
||||
},600)
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
function cancelsh() {
|
||||
shenhepop.value = false
|
||||
}
|
||||
|
||||
|
||||
//解绑公司
|
||||
function jiebing(wuid:string,pcode:string){
|
||||
ElMessageBox.confirm(
|
||||
`确定解绑`,
|
||||
'温馨提示',
|
||||
{
|
||||
// confirmButtonText: '',
|
||||
// cancelButtonText: 'Cancel',
|
||||
type: 'warning',
|
||||
}
|
||||
).then(() => {
|
||||
unbind(wuid,pcode).then(() => {
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '解绑成功'
|
||||
})
|
||||
setTimeout(()=> {
|
||||
getyys()
|
||||
},600)
|
||||
})
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
getyys()
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<style scoped >
|
||||
<style>
|
||||
/* 隐藏全选按钮 */
|
||||
:deep(.el-table .disabledCheck .cell .el-checkbox__inner) {
|
||||
.el-table .disabledCheck .cell .el-checkbox__inner {
|
||||
display: none;
|
||||
}
|
||||
.el-divider--horizontal{
|
||||
border-color:#5b98cd;
|
||||
}
|
||||
/* .el-checkbox__inner{
|
||||
display: none;
|
||||
} */
|
||||
</style>
|
||||
Loading…
Reference in New Issue
Block a user