提交 19fcee13 作者: 施汉文

合并分支 'release' 到 'master'

Release

查看合并请求 !66
# just a flag
NODE_ENV = 'staging'
ENV = 'staging'
......
......@@ -11,6 +11,9 @@ importers:
'@aliyun-sls/web-track-browser':
specifier: ^0.0.3
version: 0.0.3
'@bi-plugin/plugin-unicode-fix':
specifier: ^1.0.3
version: 1.0.3(@rsbuild/core@1.7.4)
'@wecom/jssdk':
specifier: ^2.3.1
version: 2.3.1
......@@ -70,7 +73,7 @@ importers:
version: 1.89.0
sass-loader:
specifier: ^16.0.5
version: 16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8)
version: 16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8)
tailwindcss:
specifier: npm:@tailwindcss/postcss7-compat@^2.2.17
version: '@tailwindcss/postcss7-compat@2.2.17'
......@@ -101,16 +104,16 @@ importers:
version: 0.4.8(vue@2.7.16)
'@vue/cli-plugin-babel':
specifier: ~5.0.0
version: 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))(core-js@3.42.0)(vue@2.7.16)
version: 5.0.8(@vue/cli-service@5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))(core-js@3.42.0)(vue@2.7.16)
'@vue/cli-plugin-router':
specifier: ~5.0.0
version: 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))
version: 5.0.8(@vue/cli-service@5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))
'@vue/cli-plugin-vuex':
specifier: ~5.0.0
version: 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))
version: 5.0.8(@vue/cli-service@5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))
'@vue/cli-service':
specifier: ~5.0.0
version: 5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)
version: 5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)
element-theme-chalk:
specifier: ^2.15.14
version: 2.15.14
......@@ -673,6 +676,11 @@ packages:
resolution: {integrity: sha512-+EzkxvLNfiUeKMgy/3luqfsCWFRXLb7U6wNQTk60tovuckwB15B191tJWvpp4HjiQWdJkCxO3Wbvc6jlk3Xb2Q==}
engines: {node: '>=6.9.0'}
'@bi-plugin/plugin-unicode-fix@1.0.3':
resolution: {integrity: sha512-oLbSTbzJUsZkvT48ioq4M83tDys3TnJZCKBgN+F3QNFP3VifC03FCmHlNpOxSzhNqWICk91P97xjPB0fkmvLDQ==}
peerDependencies:
'@rsbuild/core': 1.x
'@cell-x/el-table-sticky@1.0.4':
resolution: {integrity: sha512-2IYDq5czDFamyaqdY0s2A7T5crqslw/a3riKBJSxOlBNOOHdfSfLt1AlLOnkaFhYWg+/QApR0ysokAGRiTXnGQ==}
......@@ -680,6 +688,15 @@ packages:
resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==}
engines: {node: '>=10.0.0'}
'@emnapi/core@1.9.1':
resolution: {integrity: sha512-mukuNALVsoix/w1BJwFzwXBN/dHeejQtuVzcDsfOEsdpCumXb/E9j8w11h5S54tT1xhifGfbbSm/ICrObRb3KA==}
'@emnapi/runtime@1.9.1':
resolution: {integrity: sha512-VYi5+ZVLhpgK4hQ0TAjiQiZ6ol0oe4mBx7mVv7IflsiEp0OWoVsp/+f9Vc1hOhE0TtkORVrI1GvzyreqpgWtkA==}
'@emnapi/wasi-threads@1.2.0':
resolution: {integrity: sha512-N10dEJNSsUx41Z6pZsXU8FjPjpBEplgH24sfkmITrBED1/U2Esum9F3lfLrMjKHHjmi557zQn7kR9R+XWXu5Rg==}
'@hapi/hoek@9.3.0':
resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==}
......@@ -710,6 +727,27 @@ packages:
'@leichtgewicht/ip-codec@2.0.5':
resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==}
'@module-federation/error-codes@0.22.0':
resolution: {integrity: sha512-xF9SjnEy7vTdx+xekjPCV5cIHOGCkdn3pIxo9vU7gEZMIw0SvAEdsy6Uh17xaCpm8V0FWvR0SZoK9Ik6jGOaug==}
'@module-federation/runtime-core@0.22.0':
resolution: {integrity: sha512-GR1TcD6/s7zqItfhC87zAp30PqzvceoeDGYTgF3Vx2TXvsfDrhP6Qw9T4vudDQL3uJRne6t7CzdT29YyVxlgIA==}
'@module-federation/runtime-tools@0.22.0':
resolution: {integrity: sha512-4ScUJ/aUfEernb+4PbLdhM/c60VHl698Gn1gY21m9vyC1Ucn69fPCA1y2EwcCB7IItseRMoNhdcWQnzt/OPCNA==}
'@module-federation/runtime@0.22.0':
resolution: {integrity: sha512-38g5iPju2tPC3KHMPxRKmy4k4onNp6ypFPS1eKGsNLUkXgHsPMBFqAjDw96iEcjri91BrahG4XcdyKi97xZzlA==}
'@module-federation/sdk@0.22.0':
resolution: {integrity: sha512-x4aFNBKn2KVQRuNVC5A7SnrSCSqyfIWmm1DvubjbO9iKFe7ith5niw8dqSFBekYBg2Fwy+eMg4sEFNVvCAdo6g==}
'@module-federation/webpack-bundler-runtime@0.22.0':
resolution: {integrity: sha512-aM8gCqXu+/4wBmJtVeMeeMN5guw3chf+2i6HajKtQv7SJfxV/f4IyNQJUeUQu9HfiAZHjqtMV5Lvq/Lvh8LdyA==}
'@napi-rs/wasm-runtime@1.0.7':
resolution: {integrity: sha512-SeDnOO0Tk7Okiq6DbXmmBODgOAb9dp9gjlphokTUxmt8U3liIP1ZsozBahH69j/RJv+Rfs6IwUKHTgQYJ/HBAw==}
'@node-ipc/js-queue@2.0.3':
resolution: {integrity: sha512-fL1wpr8hhD5gT2dA1qifeVaoDFlQR5es8tFuKqjHX+kdOtdNHnxkVZbtIrR2rxnMFvehkjaZRNV2H/gPXlb0hw==}
engines: {node: '>=1.0.0'}
......@@ -755,36 +793,42 @@ packages:
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-arm-musl@2.5.1':
resolution: {integrity: sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==}
engines: {node: '>= 10.0.0'}
cpu: [arm]
os: [linux]
libc: [musl]
'@parcel/watcher-linux-arm64-glibc@2.5.1':
resolution: {integrity: sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-arm64-musl@2.5.1':
resolution: {integrity: sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==}
engines: {node: '>= 10.0.0'}
cpu: [arm64]
os: [linux]
libc: [musl]
'@parcel/watcher-linux-x64-glibc@2.5.1':
resolution: {integrity: sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [glibc]
'@parcel/watcher-linux-x64-musl@2.5.1':
resolution: {integrity: sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==}
engines: {node: '>= 10.0.0'}
cpu: [x64]
os: [linux]
libc: [musl]
'@parcel/watcher-win32-arm64@2.5.1':
resolution: {integrity: sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==}
......@@ -811,6 +855,79 @@ packages:
'@polka/url@1.0.0-next.29':
resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
'@rsbuild/core@1.7.4':
resolution: {integrity: sha512-1hn9j62Kkckh2CGUMQcr/H/PtHgN5iqB3kChaMCVGqxrC4jbJBQxRtuHuWVJDKeEO0uWPMABAR748qJISIyh5w==}
engines: {node: '>=18.12.0'}
hasBin: true
'@rspack/binding-darwin-arm64@1.7.10':
resolution: {integrity: sha512-bsXi7I6TpH+a4L6okIUh1JDvwT+XcK/L7Yvhu5G2t5YYyd2fl5vMM5O9cePRpEb0RdqJZ3Z8i9WIWHap9aQ8Gw==}
cpu: [arm64]
os: [darwin]
'@rspack/binding-darwin-x64@1.7.10':
resolution: {integrity: sha512-h/kOGL1bUflDDYnbiUjaRE9kagJpour4FatGihueV03+cRGQ6jpde+BjUakqzMx65CeDbeYI6jAiPhElnlAtRw==}
cpu: [x64]
os: [darwin]
'@rspack/binding-linux-arm64-gnu@1.7.10':
resolution: {integrity: sha512-Z4reus7UxGM4+JuhiIht8KuGP1KgM7nNhOlXUHcQCMswP/Rymj5oJQN3TDWgijFUZs09ULl8t3T+AQAVTd/WvA==}
cpu: [arm64]
os: [linux]
libc: [glibc]
'@rspack/binding-linux-arm64-musl@1.7.10':
resolution: {integrity: sha512-LYaoVmWizG4oQ3g+St3eM5qxsyfH07kLirP7NJcDMgvu3eQ29MeyTZ3ugkgW6LvlmJue7eTQyf6CZlanoF5SSg==}
cpu: [arm64]
os: [linux]
libc: [musl]
'@rspack/binding-linux-x64-gnu@1.7.10':
resolution: {integrity: sha512-aIm2G4Kcm3qxDTNqKarK0oaLY2iXnCmpRQQhAcMlR0aS2LmxL89XzVeRr9GFA1MzGrAsZONWCLkxQvn3WUbm4Q==}
cpu: [x64]
os: [linux]
libc: [glibc]
'@rspack/binding-linux-x64-musl@1.7.10':
resolution: {integrity: sha512-SIHQbAgB9IPH0H3H+i5rN5jo9yA/yTMq8b7XfRkTMvZ7P7MXxJ0dE8EJu3BmCLM19sqnTc2eX+SVfE8ZMDzghA==}
cpu: [x64]
os: [linux]
libc: [musl]
'@rspack/binding-wasm32-wasi@1.7.10':
resolution: {integrity: sha512-J9HDXHD1tj+9FmX4+K3CTkO7dCE2bootlR37YuC2Owc0Lwl1/i2oGT71KHnMqI9faF/hipAaQM5OywkiiuNB7w==}
cpu: [wasm32]
'@rspack/binding-win32-arm64-msvc@1.7.10':
resolution: {integrity: sha512-FaQGSCXH89nMOYW0bVp0bKQDQbrOEFFm7yedla7g6mkWlFVQo5UyBxid5wJUCqGJBtJepRxeRfByWiaI5nVGvg==}
cpu: [arm64]
os: [win32]
'@rspack/binding-win32-ia32-msvc@1.7.10':
resolution: {integrity: sha512-/66TNLOeM4R5dHhRWRVbMTgWghgxz+32ym0c/zGGXQRoMbz7210EoL40ALUgdBdeeREO8LoV+Mn7v8/QZCwHzw==}
cpu: [ia32]
os: [win32]
'@rspack/binding-win32-x64-msvc@1.7.10':
resolution: {integrity: sha512-SUa3v1W7PGFCy6AHRmDsm43/tkfaZFi1TN2oIk5aCdT9T51baDVBjAbehRDu9xFbK4piL3k7uqIVSIrKgVqk1g==}
cpu: [x64]
os: [win32]
'@rspack/binding@1.7.10':
resolution: {integrity: sha512-j+DPEaSJLRgasxXNpYQpvC7wUkQF5WoWPiTfm4fLczwlAmYwGSVkJiyWDrOlvVPiGGYiXIaXEjVWTw6fT6/vnA==}
'@rspack/core@1.7.10':
resolution: {integrity: sha512-dO7J0aHSa9Fg2kGT0+ZsM500lMdlNIyCHavIaz7dTDn6KXvFz1qbWQ/48x3OlNFw1mA0jxAjjw9e7h3sWQZUNg==}
engines: {node: '>=18.12.0'}
peerDependencies:
'@swc/helpers': '>=0.5.1'
peerDependenciesMeta:
'@swc/helpers':
optional: true
'@rspack/lite-tapable@1.1.0':
resolution: {integrity: sha512-E2B0JhYFmVAwdDiG14+DW0Di4Ze4Jg10Pc4/lILUrd5DRCaklduz2OvJ5HYQ6G+hd+WTzqQb3QnDNfK4yvAFYw==}
'@sideway/address@4.1.5':
resolution: {integrity: sha512-IqO/DUQHUkPeixNQ8n0JA6102hT9CmaljNTPmQ1u8MEhBo/R4Q8eKLN/vGZxuebwOroDB4cbpjheD4+/sKFK4Q==}
......@@ -846,6 +963,9 @@ packages:
'@stagewise/toolbar@0.4.8':
resolution: {integrity: sha512-0ByvC4hYdHHf3rK5M+xSR9mipHYr8naNn2OgDBtv4DE0SoSCr08KfQtZ6VpsBNbOW/Mh1Y4c/AoWcyCTOc2ocA==}
'@swc/helpers@0.5.20':
resolution: {integrity: sha512-2egEBHUMasdypIzrprsu8g+OEVd7Vp2MM3a2eVlM/cyFYto0nGz5BX5BTgh/ShZZI9ed+ozEq+Ngt+rgmUs8tw==}
'@tailwindcss/postcss7-compat@2.2.17':
resolution: {integrity: sha512-3h2svqQAqYHxRZ1KjsJjZOVTQ04m29LjfrLjXyZZEJuvUuJN+BCIF9GI8vhE1s0plS0mogd6E6YLg6mu4Wv/Vw==}
engines: {node: '>=12.13.0'}
......@@ -855,6 +975,9 @@ packages:
resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==}
engines: {node: '>=10.13.0'}
'@tybys/wasm-util@0.10.1':
resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==}
'@types/body-parser@1.19.5':
resolution: {integrity: sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==}
......@@ -2006,6 +2129,9 @@ packages:
core-js@3.42.0:
resolution: {integrity: sha512-Sz4PP4ZA+Rq4II21qkNqOEDTDrCvcANId3xpIgB34NDkWc3UduWj2dqEtN9yZIq8Dk3HyPI33x9sqqU5C8sr0g==}
core-js@3.47.0:
resolution: {integrity: sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==}
core-util-is@1.0.2:
resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
......@@ -3558,6 +3684,10 @@ packages:
resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==}
engines: {node: '>= 10.13.0'}
jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
joi@17.13.3:
resolution: {integrity: sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==}
......@@ -6803,6 +6933,10 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
'@bi-plugin/plugin-unicode-fix@1.0.3(@rsbuild/core@1.7.4)':
dependencies:
'@rsbuild/core': 1.7.4
'@cell-x/el-table-sticky@1.0.4':
dependencies:
gemini-scrollbar: 1.5.3
......@@ -6811,6 +6945,22 @@ snapshots:
'@discoveryjs/json-ext@0.5.7': {}
'@emnapi/core@1.9.1':
dependencies:
'@emnapi/wasi-threads': 1.2.0
tslib: 2.8.1
optional: true
'@emnapi/runtime@1.9.1':
dependencies:
tslib: 2.8.1
optional: true
'@emnapi/wasi-threads@1.2.0':
dependencies:
tslib: 2.8.1
optional: true
'@hapi/hoek@9.3.0': {}
'@hapi/topo@5.1.0':
......@@ -6841,6 +6991,38 @@ snapshots:
'@leichtgewicht/ip-codec@2.0.5': {}
'@module-federation/error-codes@0.22.0': {}
'@module-federation/runtime-core@0.22.0':
dependencies:
'@module-federation/error-codes': 0.22.0
'@module-federation/sdk': 0.22.0
'@module-federation/runtime-tools@0.22.0':
dependencies:
'@module-federation/runtime': 0.22.0
'@module-federation/webpack-bundler-runtime': 0.22.0
'@module-federation/runtime@0.22.0':
dependencies:
'@module-federation/error-codes': 0.22.0
'@module-federation/runtime-core': 0.22.0
'@module-federation/sdk': 0.22.0
'@module-federation/sdk@0.22.0': {}
'@module-federation/webpack-bundler-runtime@0.22.0':
dependencies:
'@module-federation/runtime': 0.22.0
'@module-federation/sdk': 0.22.0
'@napi-rs/wasm-runtime@1.0.7':
dependencies:
'@emnapi/core': 1.9.1
'@emnapi/runtime': 1.9.1
'@tybys/wasm-util': 0.10.1
optional: true
'@node-ipc/js-queue@2.0.3':
dependencies:
easy-stack: 1.0.1
......@@ -6920,6 +7102,69 @@ snapshots:
'@polka/url@1.0.0-next.29': {}
'@rsbuild/core@1.7.4':
dependencies:
'@rspack/core': 1.7.10(@swc/helpers@0.5.20)
'@rspack/lite-tapable': 1.1.0
'@swc/helpers': 0.5.20
core-js: 3.47.0
jiti: 2.6.1
'@rspack/binding-darwin-arm64@1.7.10':
optional: true
'@rspack/binding-darwin-x64@1.7.10':
optional: true
'@rspack/binding-linux-arm64-gnu@1.7.10':
optional: true
'@rspack/binding-linux-arm64-musl@1.7.10':
optional: true
'@rspack/binding-linux-x64-gnu@1.7.10':
optional: true
'@rspack/binding-linux-x64-musl@1.7.10':
optional: true
'@rspack/binding-wasm32-wasi@1.7.10':
dependencies:
'@napi-rs/wasm-runtime': 1.0.7
optional: true
'@rspack/binding-win32-arm64-msvc@1.7.10':
optional: true
'@rspack/binding-win32-ia32-msvc@1.7.10':
optional: true
'@rspack/binding-win32-x64-msvc@1.7.10':
optional: true
'@rspack/binding@1.7.10':
optionalDependencies:
'@rspack/binding-darwin-arm64': 1.7.10
'@rspack/binding-darwin-x64': 1.7.10
'@rspack/binding-linux-arm64-gnu': 1.7.10
'@rspack/binding-linux-arm64-musl': 1.7.10
'@rspack/binding-linux-x64-gnu': 1.7.10
'@rspack/binding-linux-x64-musl': 1.7.10
'@rspack/binding-wasm32-wasi': 1.7.10
'@rspack/binding-win32-arm64-msvc': 1.7.10
'@rspack/binding-win32-ia32-msvc': 1.7.10
'@rspack/binding-win32-x64-msvc': 1.7.10
'@rspack/core@1.7.10(@swc/helpers@0.5.20)':
dependencies:
'@module-federation/runtime-tools': 0.22.0
'@rspack/binding': 1.7.10
'@rspack/lite-tapable': 1.1.0
optionalDependencies:
'@swc/helpers': 0.5.20
'@rspack/lite-tapable@1.1.0': {}
'@sideway/address@4.1.5':
dependencies:
'@hapi/hoek': 9.3.0
......@@ -6952,6 +7197,10 @@ snapshots:
'@stagewise/toolbar@0.4.8': {}
'@swc/helpers@0.5.20':
dependencies:
tslib: 2.8.1
'@tailwindcss/postcss7-compat@2.2.17':
dependencies:
arg: 5.0.2
......@@ -6994,6 +7243,11 @@ snapshots:
'@trysound/sax@0.2.0': {}
'@tybys/wasm-util@0.10.1':
dependencies:
tslib: 2.8.1
optional: true
'@types/body-parser@1.19.5':
dependencies:
'@types/connect': 3.4.38
......@@ -7247,11 +7501,11 @@ snapshots:
'@vue/cli-overlay@5.0.8': {}
'@vue/cli-plugin-babel@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))(core-js@3.42.0)(vue@2.7.16)':
'@vue/cli-plugin-babel@5.0.8(@vue/cli-service@5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))(core-js@3.42.0)(vue@2.7.16)':
dependencies:
'@babel/core': 7.27.1
'@vue/babel-preset-app': 5.0.8(@babel/core@7.27.1)(core-js@3.42.0)(vue@2.7.16)
'@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)
'@vue/cli-service': 5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)
'@vue/cli-shared-utils': 5.0.8
babel-loader: 8.4.1(@babel/core@7.27.1)(webpack@5.99.8)
thread-loader: 3.0.4(webpack@5.99.8)
......@@ -7266,29 +7520,29 @@ snapshots:
- vue
- webpack-cli
'@vue/cli-plugin-router@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))':
'@vue/cli-plugin-router@5.0.8(@vue/cli-service@5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))':
dependencies:
'@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)
'@vue/cli-service': 5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)
'@vue/cli-shared-utils': 5.0.8
transitivePeerDependencies:
- encoding
'@vue/cli-plugin-vuex@5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))':
'@vue/cli-plugin-vuex@5.0.8(@vue/cli-service@5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))':
dependencies:
'@vue/cli-service': 5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)
'@vue/cli-service': 5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)
'@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)':
'@vue/cli-service@5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3)':
dependencies:
'@babel/helper-compilation-targets': 7.27.2
'@soda/friendly-errors-webpack-plugin': 1.8.1(webpack@5.99.8)
'@soda/get-current-script': 1.0.2
'@types/minimist': 1.2.5
'@vue/cli-overlay': 5.0.8
'@vue/cli-plugin-router': 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))
'@vue/cli-plugin-vuex': 5.0.8(@vue/cli-service@5.0.8(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))
'@vue/cli-plugin-router': 5.0.8(@vue/cli-service@5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))
'@vue/cli-plugin-vuex': 5.0.8(@vue/cli-service@5.0.8(@rspack/core@1.7.10(@swc/helpers@0.5.20))(@vue/compiler-sfc@3.5.14)(lodash@4.17.21)(sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8))(vue-template-compiler@2.7.16)(vue@2.7.16)(webpack-sources@3.2.3))
'@vue/cli-shared-utils': 5.0.8
'@vue/component-compiler-utils': 3.3.0(lodash@4.17.21)
'@vue/vue-loader-v15': vue-loader@15.11.1(@vue/compiler-sfc@3.5.14)(css-loader@6.11.0(webpack@5.99.8))(lodash@4.17.21)(vue-template-compiler@2.7.16)(webpack@5.99.8)
'@vue/vue-loader-v15': vue-loader@15.11.1(@vue/compiler-sfc@3.5.14)(css-loader@6.11.0(@rspack/core@1.7.10(@swc/helpers@0.5.20))(webpack@5.99.8))(lodash@4.17.21)(vue-template-compiler@2.7.16)(webpack@5.99.8)
'@vue/web-component-wrapper': 1.3.0
acorn: 8.14.1
acorn-walk: 8.3.4
......@@ -7300,7 +7554,7 @@ snapshots:
clipboardy: 2.3.0
cliui: 7.0.4
copy-webpack-plugin: 9.1.0(webpack@5.99.8)
css-loader: 6.11.0(webpack@5.99.8)
css-loader: 6.11.0(@rspack/core@1.7.10(@swc/helpers@0.5.20))(webpack@5.99.8)
css-minimizer-webpack-plugin: 3.4.1(webpack@5.99.8)
cssnano: 5.1.15(postcss@8.5.3)
debug: 4.4.1
......@@ -7310,7 +7564,7 @@ snapshots:
fs-extra: 9.1.0
globby: 11.1.0
hash-sum: 2.0.0
html-webpack-plugin: 5.6.3(webpack@5.99.8)
html-webpack-plugin: 5.6.3(@rspack/core@1.7.10(@swc/helpers@0.5.20))(webpack@5.99.8)
is-file-esm: 1.0.0
launch-editor-middleware: 2.10.0
lodash.defaultsdeep: 4.6.1
......@@ -7335,7 +7589,7 @@ snapshots:
webpack-virtual-modules: 0.4.6
whatwg-fetch: 3.6.20
optionalDependencies:
sass-loader: 16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8)
sass-loader: 16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8)
vue-template-compiler: 2.7.16
webpack-sources: 3.2.3
transitivePeerDependencies:
......@@ -8476,6 +8730,8 @@ snapshots:
core-js@3.42.0: {}
core-js@3.47.0: {}
core-util-is@1.0.2:
optional: true
......@@ -8532,7 +8788,7 @@ snapshots:
dependencies:
utrie: 1.0.2
css-loader@6.11.0(webpack@5.99.8):
css-loader@6.11.0(@rspack/core@1.7.10(@swc/helpers@0.5.20))(webpack@5.99.8):
dependencies:
icss-utils: 5.1.0(postcss@8.5.3)
postcss: 8.5.3
......@@ -8543,6 +8799,7 @@ snapshots:
postcss-value-parser: 4.2.0
semver: 7.7.2
optionalDependencies:
'@rspack/core': 1.7.10(@swc/helpers@0.5.20)
webpack: 5.99.8
css-minimizer-webpack-plugin@3.4.1(webpack@5.99.8):
......@@ -9850,7 +10107,7 @@ snapshots:
util.promisify: 1.0.0
webpack: 5.99.8
html-webpack-plugin@5.6.3(webpack@5.99.8):
html-webpack-plugin@5.6.3(@rspack/core@1.7.10(@swc/helpers@0.5.20))(webpack@5.99.8):
dependencies:
'@types/html-minifier-terser': 6.1.0
html-minifier-terser: 6.1.0
......@@ -9858,6 +10115,7 @@ snapshots:
pretty-error: 4.0.0
tapable: 2.2.1
optionalDependencies:
'@rspack/core': 1.7.10(@swc/helpers@0.5.20)
webpack: 5.99.8
html2canvas@1.4.1:
......@@ -10337,6 +10595,8 @@ snapshots:
merge-stream: 2.0.0
supports-color: 8.1.1
jiti@2.6.1: {}
joi@17.13.3:
dependencies:
'@hapi/hoek': 9.3.0
......@@ -11894,10 +12154,11 @@ snapshots:
yargs: 13.3.2
optional: true
sass-loader@16.0.5(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8):
sass-loader@16.0.5(@rspack/core@1.7.10(@swc/helpers@0.5.20))(node-sass@4.14.1)(sass@1.89.0)(webpack@5.99.8):
dependencies:
neo-async: 2.6.2
optionalDependencies:
'@rspack/core': 1.7.10(@swc/helpers@0.5.20)
node-sass: 4.14.1
sass: 1.89.0
webpack: 5.99.8
......@@ -12895,10 +13156,10 @@ snapshots:
vue-hot-reload-api@2.3.4: {}
vue-loader@15.11.1(@vue/compiler-sfc@3.5.14)(css-loader@6.11.0(webpack@5.99.8))(lodash@4.17.21)(vue-template-compiler@2.7.16)(webpack@5.99.8):
vue-loader@15.11.1(@vue/compiler-sfc@3.5.14)(css-loader@6.11.0(@rspack/core@1.7.10(@swc/helpers@0.5.20))(webpack@5.99.8))(lodash@4.17.21)(vue-template-compiler@2.7.16)(webpack@5.99.8):
dependencies:
'@vue/component-compiler-utils': 3.3.0(lodash@4.17.21)
css-loader: 6.11.0(webpack@5.99.8)
css-loader: 6.11.0(@rspack/core@1.7.10(@swc/helpers@0.5.20))(webpack@5.99.8)
hash-sum: 1.0.2
loader-utils: 1.4.2
vue-hot-reload-api: 2.3.4
......
......@@ -313,22 +313,35 @@ export function corp_follow_up_task_index(data) {
return request({
url: returnApi('/corp_follow_up_task/index'),
method: 'post',
data
})
data,
});
}
// 【智能待办】工作台-我的
export function corpIntelligentTaskMineList(data) {
return request({
url: returnApi('/corp_intelligent_task/mineList'),
method: 'post',
data
})
data,
});
}
// 【智能待办】工作台-完成、未完成
export function corpIntelligentTaskExternalList(data) {
return request({
url: returnApi('/corp_intelligent_task/externalList'),
method: 'post',
data
})
}
\ No newline at end of file
data,
});
}
/**
* 查询会员首次绑定企微微信信息(首次绑定昵称/标识与首次绑定时间)
* @see https://doc.wozhangwan.com/project/514/interface/api/58755
* @param {{ member_id: string|number }} data - 掌游会员 id
* @returns {import('axios').AxiosPromise}
*/
export function getFirstBindExternalUser(data) {
return request({
url: returnApi('/corp_zyou_bind/getFirstBindExternalUser'),
method: 'post',
data,
});
}
<template>
<el-drawer title="新增关联账号" :visible="show" size="360px" :append-to-body="true" @close="close">
<el-drawer
title="新增关联账号"
:visible="show"
size="360px"
:append-to-body="true"
@close="close"
>
<div class="content-wrapper">
<div class="content">
<el-form ref="form" :model="form" label-position="top" :rules="rules" label-width="120px">
<div class="inputContent">
<el-form-item label="请输入w账号" prop="username">
<el-input v-model.trim="form.username" placeholder="请输入w账号" class="input-with-select">
</el-input>
</el-form-item>
<el-form-item label="请输入主游戏名" prop="main_game_id">
<el-select v-model="form.main_game_id" filterable remote clearable reserve-keyword placeholder="请输入主游戏名"
style="width: 100%;" :remote-method="remoteMethod" :loading="loading" @focus="gameNameList = optionsList">
<el-option v-for="item in gameNameList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="请输入CP角色ID"
prop="username"
>
<el-input
v-model.trim="form.cp_role_id"
placeholder="请先选择主游戏"
:disabled="form.main_game_id==''"
class="input-with-select"
>
</el-input>
</el-form-item>
<el-form-item label="请输入区服" prop="server_info">
<el-select v-model.trim="form.server_info" filterable remote :disabled="form.main_game_id == ''" clearable
style="width: 100%;" reserve-keyword placeholder="请先选择主游戏" :remote-method="remoteMethodServer"
:loading="loading">
<el-option v-for="item in serverNameList" :key="item.id" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="请输入角色名" prop="role_name">
<el-input v-model.trim="form.role_name" :disabled="form.main_game_id==''" placeholder="请先选择主游戏" class="input-with-select">
</el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="onSubmit">搜索</el-button>
</el-form-item>
</div>
</el-form>
<div class="table account_table">
<div class="bind-account-title">
账号列表
</div>
<userTable :list="tableList" @checkedTag="checkedTag" />
</div>
<!-- <div class="line"></div> w92865226508-->
<div v-if="userDetails.username" class="account_select_userInfo">
<div class="bind-account-title" style="margin-top: 20px;">
账号详情
</div>
<div class="item rowFlex columnCenter"><span class="label">账号</span>
<p class="text">{{ userDetails.username }}</p> <span v-if="userDetails.account_type == 2"
class="account_type"></span>
</div>
<div class="item rowFlex columnCenter"><span class="label">获客渠道</span>
<p class="text">{{ userDetails.channel_name }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">注册渠道</span>
<p class="text">{{ userDetails.register_channel_name }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">运营渠道</span>
<p class="text">{{ userDetails.operator_channel_name }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">注册游戏</span>
<p class="text">{{ userDetails.reg_game_name }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">主游戏</span>
<p class="text">{{ userDetails.main_game_name }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">真实姓名</span>
<p class="text">{{ userDetails.real_name }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">手机号</span>
<p class="text">{{ userDetails.mobile }}</p>
<div class="content">
<el-form
ref="form"
:model="form"
label-position="top"
:rules="rules"
label-width="120px"
>
<div class="inputContent">
<el-form-item label="请输入w账号" prop="username">
<el-input
v-model.trim="form.username"
placeholder="请输入w账号"
class="input-with-select"
>
</el-input>
</el-form-item>
<el-form-item label="请输入主游戏名" prop="main_game_id">
<el-select
v-model="form.main_game_id"
filterable
remote
clearable
reserve-keyword
placeholder="请输入主游戏名"
style="width: 100%"
:remote-method="remoteMethod"
:loading="loading"
@focus="gameNameList = optionsList"
>
<el-option
v-for="item in gameNameList"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="请输入CP角色ID" prop="username">
<el-input
v-model.trim="form.cp_role_id"
placeholder="请先选择主游戏"
:disabled="form.main_game_id == ''"
class="input-with-select"
>
</el-input>
</el-form-item>
<el-form-item label="请输入区服" prop="server_info">
<el-select
v-model.trim="form.server_info"
filterable
remote
:disabled="form.main_game_id == ''"
clearable
style="width: 100%"
reserve-keyword
placeholder="请先选择主游戏"
:remote-method="remoteMethodServer"
:loading="loading"
>
<el-option
v-for="item in serverNameList"
:key="item.id"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="请输入角色名" prop="role_name">
<el-input
v-model.trim="form.role_name"
:disabled="form.main_game_id == ''"
placeholder="请先选择主游戏"
class="input-with-select"
>
</el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" size="small" @click="onSubmit"
>搜索</el-button
>
</el-form-item>
</div>
</el-form>
<div class="table account_table">
<div class="bind-account-title">账号列表</div>
<userTable :list="tableList" @checkedTag="checkedTag" />
</div>
<div class="item rowFlex columnCenter"><span class="label">染色时间</span>
<p class="text">{{ moment(userDetails.seq_time * 1000).format('YYYY-MM-DD') }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">注册时间</span>
<p class="text">{{ moment(userDetails.reg_time * 1000).format('YYYY-MM-DD') }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">登录系统</span>
<p class="text">{{ userDetails.last_login_os }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">充值金额</span>
<p class="text">{{ userDetails.recharge_total }}</p>
</div>
<div class="item rowFlex columnCenter"><span class="label">是否添加微信</span>
<p class="text">{{ userDetails.wechat_add_status_text }}</p>
<!-- <div class="line"></div> w92865226508-->
<div v-if="userDetails.username" class="account_select_userInfo">
<div class="bind-account-title" style="margin-top: 20px">
账号详情
</div>
<div class="item rowFlex columnCenter">
<span class="label">账号</span>
<p class="text">{{ userDetails.username }}</p>
<span v-if="userDetails.account_type == 2" class="account_type"
></span
>
</div>
<div class="item rowFlex columnCenter">
<span class="label">获客渠道</span>
<p class="text">{{ userDetails.channel_name }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">注册渠道</span>
<p class="text">{{ userDetails.register_channel_name }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">运营渠道</span>
<p class="text">{{ userDetails.operator_channel_name }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">注册游戏</span>
<p class="text">{{ userDetails.reg_game_name }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">主游戏</span>
<p class="text">{{ userDetails.main_game_name }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">真实姓名</span>
<p class="text">{{ userDetails.real_name }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">手机号</span>
<p class="text">{{ userDetails.mobile }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">染色时间</span>
<p class="text">
{{ moment(userDetails.seq_time * 1000).format('YYYY-MM-DD') }}
</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">注册时间</span>
<p class="text">
{{ moment(userDetails.reg_time * 1000).format('YYYY-MM-DD') }}
</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">登录系统</span>
<p class="text">{{ userDetails.last_login_os }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">充值金额</span>
<p class="text">{{ userDetails.recharge_total }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">是否添加微信</span>
<p class="text">{{ userDetails.wechat_add_status_text }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">首次绑定微信</span>
<p class="text">{{ firstWechatBind?.external_user_name }}</p>
</div>
<div class="item rowFlex columnCenter">
<span class="label">首次绑定时间</span>
<p class="text">{{ firstWechatBind?.bind_time }}</p>
</div>
</div>
</div>
</div>
<page class="pageInfo" :page-info="pageInfo" @requestNextPage="requestNextPage" />
<span class="dialog-footer rowFlex">
<el-button class="btn" type="primary" size="small" :disabled="!userDetails.id" @click="confirmSubmit">
</el-button>
<page
class="pageInfo"
:page-info="pageInfo"
@requestNextPage="requestNextPage"
/>
<span class="dialog-footer rowFlex">
<el-button
class="btn"
type="primary"
size="small"
:disabled="!userDetails.id"
@click="confirmSubmit"
>确 定</el-button
>
<el-button class="btn" size="small" @click="close">取 消</el-button>
</span>
</div>
......@@ -108,246 +193,296 @@
</template>
<script type="text/javascript">
import moment from 'moment'
import userTable from './userTable.vue'
import { getRoleHoLo, memberView, selectSearch } from '@/api/game'
import { checkZyouBind,zyouBind } from '@/api/works'
import { mapMutations, mapActions, mapState } from 'vuex'
import page from '@/components/page/pageNum.vue'
export default {
name: 'addUser',
components: {
userTable,
page
},
props: ['show'],
data() {
return {
moment,
tableList: [],
checkoutUser: {},
userDetails: {},
loading: false,
pageInfo: {
page: 1,
page_size: 20,
total: 0
},
form: {
member_id: '',
username: '',
role_name: '',
cp_role_id:'',
main_game_id: '',
server_info: ''
},
gameNameList: [],
optionsList: [],
serverNameList: [],
rules: {},
import moment from 'moment';
import userTable from './userTable.vue';
import { getRoleHoLo, memberView, selectSearch } from '@/api/game';
import { checkZyouBind, zyouBind } from '@/api/works';
import { mapMutations, mapActions, mapState } from 'vuex';
import { getFirstBindExternalUser } from '@/api/works';
import page from '@/components/page/pageNum.vue';
export default {
name: 'addUser',
components: {
userTable,
page,
},
props: ['show'],
data() {
return {
moment,
tableList: [],
checkoutUser: {},
userDetails: {},
firstWechatBind: {},
loading: false,
pageInfo: {
page: 1,
page_size: 20,
total: 0,
},
form: {
member_id: '',
username: '',
role_name: '',
cp_role_id: '',
main_game_id: '',
server_info: '',
},
gameNameList: [],
optionsList: [],
serverNameList: [],
rules: {},
};
},
computed: {
...mapState('game', ['chatUserInfo', 'userid', 'external_userid']),
},
watch: {
show(newVal, oldVal) {
if (newVal) {
// this.requestRoleList()
this.requestGameList();
}
},
computed: {
...mapState('game', ['chatUserInfo','userid','external_userid']),
},
watch: {
show(newVal, oldVal) {
if (newVal) {
// this.requestRoleList()
this.requestGameList()
},
mounted() {},
methods: {
...mapActions('game', ['gameBindUser']),
...mapMutations('game', ['set_accountSelect']),
requestRoleList() {
const data = {
member_id: this.form.member_id,
username: this.form.username.trim(),
role_name: this.form.role_name.trim(),
main_game_id:
this.form.main_game_id !== '' ? [this.form.main_game_id] : [],
zyou_server_id:
this.form.server_info !== '' ? [this.form.server_info] : [],
cp_role_id: this.form.cp_role_id.trim() || '',
search_type: 'bind',
...this.pageInfo,
};
getRoleHoLo(data).then((res) => {
if (res.status_code == 1) {
if (res.data.data.length == 0) {
this.tableList = [];
this.$message.warning('暂无数据');
} else {
this.tableList = res.data.data;
this.pageInfo = res.data.page_info;
}
}
}
});
},
mounted() {
// S181.啊呸¤可瑞 八荒181服
// 分页
requestNextPage(pageInfo) {
this.pageInfo.page = pageInfo.page;
this.requestRoleList();
},
methods: {
...mapActions('game', ['gameBindUser']),
...mapMutations('game', ['set_accountSelect']),
requestRoleList() {
remoteMethodServer(query) {
if (query !== '') {
this.loading = true;
const data = {
member_id: this.form.member_id,
username: this.form.username.trim(),
role_name: this.form.role_name.trim(),
main_game_id: this.form.main_game_id !== '' ? [this.form.main_game_id] : [],
zyou_server_id: this.form.server_info !== '' ? [this.form.server_info] : [],
cp_role_id: this.form.cp_role_id.trim() || '',
search_type: 'bind',
...this.pageInfo
}
getRoleHoLo(data).then(res => {
type: 'server_info',
value: query,
main_game_ids: this.form.main_game_id,
};
selectSearch(data).then((res) => {
this.loading = false;
if (res.status_code == 1) {
if (res.data.data.length == 0) {
this.tableList = []
this.$message.warning('暂无数据')
} else {
this.tableList = res.data.data
this.pageInfo = res.data.page_info
}
this.serverNameList = res.data.data;
}
})
},
// S181.啊呸¤可瑞 八荒181服
// 分页
requestNextPage(pageInfo) {
this.pageInfo.page = pageInfo.page
this.requestRoleList()
},
remoteMethodServer(query) {
if (query !== '') {
this.loading = true
const data = {
type: 'server_info',
value: query,
main_game_ids: this.form.main_game_id
}
selectSearch(data).then(res => {
this.loading = false
if (res.status_code == 1) {
this.serverNameList = res.data.data
}
})
});
}
},
remoteMethod(query) {
if (query !== '') {
this.gameNameList = this.optionsList.filter((item) => {
return item.label.toLowerCase().indexOf(query.toLowerCase()) > -1;
});
} else {
this.gameNameList = [];
}
},
requestGameList() {
const data = {
type: 'mainGameList',
value: '',
weixin_blong_id: '',
};
selectSearch(data).then((res) => {
this.loading = false;
if (res.status_code == 1) {
this.gameNameList = this.optionsList = res.data.data;
}
},
remoteMethod(query) {
if (query !== '') {
this.gameNameList = this.optionsList.filter(item => {
return item.label.toLowerCase()
.indexOf(query.toLowerCase()) > -1
})
});
},
close() {
this.$emit('update:show', false);
this.resizeData();
this.$emit('close');
},
onSubmit() {
this.$refs.form.validate((valid) => {
this.pageInfo = {
page: 1,
page_size: 20,
total: 0,
};
if (valid) {
if (
this.form.role_name == '' &&
this.form.username == '' &&
this.form.cp_role_id == ''
) {
this.$message.warning('请输入角色名或者w账号或者CP角色ID');
return;
}
this.requestRoleList();
} else {
this.gameNameList = []
console.log('error submit!!');
return false;
}
},
requestGameList() {
const data = {
type: 'mainGameList',
value: '',
weixin_blong_id: ''
}
selectSearch(data).then(res => {
this.loading = false
if (res.status_code == 1) {
this.gameNameList = this.optionsList = res.data.data
}
})
},
close() {
this.$emit('update:show', false)
this.resizeData()
this.$emit('close')
},
onSubmit() {
this.$refs.form.validate((valid) => {
this.pageInfo = {
page: 1,
page_size: 20,
total: 0
}
if (valid) {
if (this.form.role_name == '' && this.form.username == '' && this.form.cp_role_id == '') {
this.$message.warning('请输入角色名或者w账号或者CP角色ID')
return
}
this.requestRoleList()
});
},
resizeData() {
this.form = {
member_id: '',
username: '',
role_name: '',
cp_role_id: '',
main_game_id: '',
server_info: '',
};
this.tableList = [];
this.checkoutUser = {};
this.userDetails = {};
this.firstWechatBind = {};
},
/**
* 拉取当前选中会员的首次绑定微信信息;仅在表格勾选 w 账号并成功返回 memberView 后调用(见 rquestUserInfo)。
* 快速切换用户时用 member_id 比对,避免旧请求覆盖新数据。
* @param {string|number|undefined} memberId - 会员 id,与 userDetails.id 一致
*/
requestFirstWechatBind(memberId) {
if (!memberId) {
this.firstWechatBind = {};
return;
}
const reqMemberId = memberId;
getFirstBindExternalUser({ member_id: memberId })
.then((res) => {
if (reqMemberId !== this.userDetails.id) return;
if (res.status_code === 1 && res.data) {
this.firstWechatBind = res.data;
} else {
console.log('error submit!!')
return false
this.firstWechatBind = {};
}
})
},
resizeData() {
this.form = {
member_id: '',
username: '',
role_name: '',
cp_role_id: '',
main_game_id: '',
server_info: ''
.catch(() => {
if (reqMemberId === this.userDetails.id) {
this.firstWechatBind = {};
}
});
},
confirmSubmit() {
const data = {
member_id:
this.userDetails.id && this.userDetails.id != ''
? this.userDetails.id
: this.checkoutUser.member_id,
username: this.userDetails.username,
};
checkZyouBind(data).then((res) => {
console.log(data);
if (!res.data.has_bind) {
this.submit();
} else {
this.$confirm(res.data.tip || '', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
this.submit();
})
.catch((err) => {
console.log(err);
this.$message({
type: 'info',
message: '已取消删除',
});
});
}
this.tableList = []
this.checkoutUser = {}
this.userDetails = {}
},
confirmSubmit() {
const data = {
member_id: this.userDetails.id && this.userDetails.id != '' ? this.userDetails.id : this.checkoutUser.member_id,
username: this.userDetails.username
});
},
submit() {
const data = {
userid: this.userid || this.chatUserInfo.userid,
external_userid:
this.external_userid || this.chatUserInfo.external_userid,
member_id:
this.userDetails.id && this.userDetails.id != ''
? this.userDetails.id
: this.checkoutUser.member_id,
username: this.userDetails.username,
reg_game_id: this.userDetails.reg_game_id,
main_game_id: this.userDetails.main_game_id,
recharge_total: this.userDetails.recharge_total,
};
console.log(
this.chatUserInfo,
'this.chatUserInfo',
this.userid,
this.external_userid,
);
// 绑定掌游账号
zyouBind(data).then((res) => {
if (res.status_code == 1) {
this.$message.success(res.msg);
this.updateData();
}
checkZyouBind(data).then(res => {
console.log(data)
if (!res.data.has_bind) {
this.submit()
});
},
// 更新列表数据
updateData() {
const data = {
userid: this.chatUserInfo.userid,
external_userid: this.chatUserInfo.external_userid,
};
this.gameBindUser(data).then((res) => {
this.set_accountSelect(this.userDetails.id);
this.close();
});
},
// 勾选活码
checkedTag(value) {
this.checkoutUser = value;
const data = {
member_id: value.member_id,
need_channel: 1,
need_roleInfo: 1,
};
this.rquestUserInfo(data);
},
rquestUserInfo(data) {
memberView(data).then((res) => {
if (res.status_code == 1) {
this.userDetails = res.data;
const memberId = res.data.id ?? res.data.member_id ?? data.member_id;
if (memberId) {
this.requestFirstWechatBind(memberId);
} else {
this.$confirm(res.data.tip || '', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(() => {
this.submit()
})
.catch((err) => {
console.log(err)
this.$message({
type: 'info',
message: '已取消删除'
})
})
this.firstWechatBind = {};
}
})
},
submit() {
const data = {
userid: this.userid || this.chatUserInfo.userid ,
external_userid:this.external_userid || this.chatUserInfo.external_userid ,
member_id: this.userDetails.id && this.userDetails.id != '' ? this.userDetails.id : this.checkoutUser.member_id,
username: this.userDetails.username,
reg_game_id: this.userDetails.reg_game_id,
main_game_id: this.userDetails.main_game_id,
recharge_total: this.userDetails.recharge_total,
}
console.log(this.chatUserInfo,'this.chatUserInfo',this.userid,this.external_userid)
// 绑定掌游账号
zyouBind(data).then(res => {
if (res.status_code == 1) {
this.$message.success(res.msg)
this.updateData()
}
})
},
// 更新列表数据
updateData() {
const data = {
userid: this.chatUserInfo.userid,
external_userid: this.chatUserInfo.external_userid
}
this.gameBindUser(data).then(res => {
this.set_accountSelect(this.userDetails.id)
this.close()
})
},
// 勾选活码
checkedTag(value) {
this.checkoutUser = value
const data = {
member_id: value.member_id,
need_channel: 1,
need_roleInfo: 1
}
this.rquestUserInfo(data)
},
rquestUserInfo(data) {
memberView(data).then(res => {
if (res.status_code == 1) {
this.userDetails = res.data
}
})
}
}
}
</script>
});
},
},
};
</script>
<style lang="scss" scoped>
::v-deep .el-drawer {
......@@ -428,7 +563,6 @@
}
}
}
}
.account_table {
......@@ -477,4 +611,4 @@
::v-deep .el-select-dropdown {
min-width: 210px !important;
}
</style>
\ No newline at end of file
</style>
......@@ -63,7 +63,7 @@
:key="indexs"
class="gameListItem rowFlex columnCenter spaceBetween"
>
<p>{{ items.game_name + "/" + items.game_id }}</p>
<p>{{ items.game_name + '/' + items.game_id }}</p>
<el-popover placement="top" width="160" trigger="hover">
<div>
<p
......@@ -99,9 +99,24 @@
</p>
<!-- h5 安卓游戏 IOS游戏 发送分身包 -->
<div v-if="[2].includes(item.game_type)">
<p class="sendLink" @click="sendTransferCloneGame(2,items)">发送分身包-H5</p>
<p class="sendLink" @click="sendTransferCloneGame(3,items)">发送分身包-安卓</p>
<p class="sendLink" @click="sendTransferCloneGame(4,items)">发送分身包-IOS</p>
<p
class="sendLink"
@click="sendTransferCloneGame(2, items)"
>
发送分身包-H5
</p>
<p
class="sendLink"
@click="sendTransferCloneGame(3, items)"
>
发送分身包-安卓
</p>
<p
class="sendLink"
@click="sendTransferCloneGame(4, items)"
>
发送分身包-IOS
</p>
</div>
</div>
<el-button
......@@ -179,7 +194,7 @@
:key="indexs"
class="gameListItem rowFlex columnCenter spaceBetween"
>
<p>{{ items.game_name + "/" + items.game_id }}</p>
<p>{{ items.game_name + '/' + items.game_id }}</p>
<el-button
slot="reference"
size="mini"
......@@ -282,27 +297,67 @@
:key="indexs"
class="gameListItem rowFlex columnCenter spaceBetween"
>
<p>{{ items.label + "/" + items.id }}</p>
<p>{{ items.label + '/' + items.id }}</p>
<!--game_type: 1 微信小游戏 2 H5 游戏 3 安卓游戏 4 IOS 游戏 5 抖音小游戏 -->
<!-- 微信小游戏 安卓游戏 IOS游戏 处理逻辑 -->
<el-popover v-if="items.game_type == 1 || items.game_type == 3 || items.game_type == 4 || items.game_type == 5" placement="top" trigger="click">
<div v-if="items.game_type!=5">
<p class="sendLink" @click="sendChannelGame(items, item)">发送链接/渠道二维码</p>
<p class="sendLink" @click="handleGameType(items, item, item.game_type, index)">发送落地页</p>
<el-popover
v-if="
items.game_type == 1 ||
items.game_type == 3 ||
items.game_type == 4 ||
items.game_type == 5
"
placement="top"
trigger="click"
>
<div v-if="items.game_type != 5">
<p class="sendLink" @click="sendChannelGame(items, item)">
发送链接/渠道二维码
</p>
<p
class="sendLink"
@click="
handleGameType(items, item, item.game_type, index)
"
>
发送落地页
</p>
<div v-if="items.game_type == 1">
<!-- 发送 H5 安卓分身包 -->
<p class="sendLink" @click="sendH5CloneGame(items, 'android')">发送H5-安卓分身包</p>
<!-- 发送 H5 IOS 分身包 -->
<p class="sendLink" @click="sendH5CloneGame(items, 'ios')">发送H5-IOS分身包</p>
</div>
</div>
<!-- 抖音小游戏发送落地页 -->
<div v-else>
<p class="sendLink" @click="handleGameType(items, item, item.game_type, index)">发送落地页</p>
<div v-if="items.game_type == 1">
<!-- 发送 H5 安卓分身包 -->
<p
class="sendLink"
@click="sendH5CloneGame(items, 'android')"
>
发送H5-安卓分身包
</p>
<!-- 发送 H5 IOS 分身包 -->
<p
class="sendLink"
@click="sendH5CloneGame(items, 'ios')"
>
发送H5-IOS分身包
</p>
</div>
<el-button slot="reference" size="mini" :disabled="accountSelect == ''">发送</el-button>
</el-popover>
</div>
<!-- 抖音小游戏发送落地页 -->
<div v-else>
<p
class="sendLink"
@click="
handleGameType(items, item, item.game_type, index)
"
>
发送落地页
</p>
</div>
<el-button
slot="reference"
size="mini"
:disabled="accountSelect == ''"
>发送</el-button
>
</el-popover>
<el-button
v-else
size="mini"
......@@ -393,7 +448,7 @@
</div>
</template>
<script>
import { mapState, mapMutations, mapActions } from "vuex";
import { mapState, mapMutations, mapActions } from 'vuex';
import {
memberExtensionGameList,
passwardEncryption,
......@@ -407,8 +462,8 @@ import {
getClonePackageLink,
getLandingPageConfig,
getMemberTransStatus,
memberRegGameCloneLink
} from "@/api/game";
memberRegGameCloneLink,
} from '@/api/game';
import {
getRecentSendLog,
markTransScene,
......@@ -416,20 +471,20 @@ import {
getZqCserWxBelong,
getMediaId,
send_log_add,
} from "@/api/works";
import { companyviewConfig } from "@/api/user";
import { throttle, throttleStart } from "@/utils/index";
import createChannel from "./sendGame/createChannel";
import sendPage from "./sendGame/SendTransPage.vue";
import SendTransWxGame from "./sendGame/SendTransWxGame.vue";
import SendTransAppGame from "./sendGame/SendTransAppGame.vue";
import selectChannel from "./sendGame/selectChannel.vue";
import sendSelectChannel from "./sendGame/sendSelectChannel.vue";
import gameLogMixin from "@/mixins/gameLogMixin";
import { sendChatMessage } from "@/utils/index";
import QrcodeVue from "qrcode.vue";
} from '@/api/works';
import { companyviewConfig } from '@/api/user';
import { throttle, throttleStart } from '@/utils/index';
import createChannel from './sendGame/createChannel';
import sendPage from './sendGame/SendTransPage.vue';
import SendTransWxGame from './sendGame/SendTransWxGame.vue';
import SendTransAppGame from './sendGame/SendTransAppGame.vue';
import selectChannel from './sendGame/selectChannel.vue';
import sendSelectChannel from './sendGame/sendSelectChannel.vue';
import gameLogMixin from '@/mixins/gameLogMixin';
import { sendChatMessage } from '@/utils/index';
import QrcodeVue from 'qrcode.vue';
export default {
name: "sendGame",
name: 'sendGame',
mixins: [gameLogMixin],
components: {
createChannel,
......@@ -453,15 +508,15 @@ export default {
weixin_blongs_id: [],
regGameList: [],
allRegGameList: [],
filterGameText: "",
filterGameText: '',
channelselectList: [],
webForm: {
channel_id: "",
channel_id: '',
},
sendLoading: false,
belongList: [], // 项目列表
activeName: "1", // 转端 1 转游 2 召回 3
sendType: "", // 1 进发送链接 2 仅发送账号密码 3 发送链接和账号密码
activeName: '1', // 转端 1 转游 2 召回 3
sendType: '', // 1 进发送链接 2 仅发送账号密码 3 发送链接和账号密码
showCreateChannel: false,
showImageComposer: false,
showWxGameDrawer: false,
......@@ -475,7 +530,7 @@ export default {
channelInfoList: {},
transMemberStatus: true,
h5CloneGameInfo: {},
qrCodeValue: "", // 二维码内容
qrCodeValue: '', // 二维码内容
qrCodeSize: 200, // 二维码大小
};
},
......@@ -484,14 +539,14 @@ export default {
this.sendGameInfo();
},
computed: {
...mapState("game", [
"accountSelect",
"bindGameUserList",
"chatUserInfo",
"gameUserInfo",
"send_game_log",
...mapState('game', [
'accountSelect',
'bindGameUserList',
'chatUserInfo',
'gameUserInfo',
'send_game_log',
]),
...mapState("user", ["userInfo", "corp_id"]),
...mapState('user', ['userInfo', 'corp_id']),
},
// props: [ 'chatUserInfo', 'chatUser'],
watch: {
......@@ -499,7 +554,7 @@ export default {
// 切换 w 账号的时候清空 conversionGameList 数据
this.conversionGameList = [];
this.getMemberTransStatus();
if (newVal && newVal !== "" && this.bindGameUserList.length > 0) {
if (newVal && newVal !== '' && this.bindGameUserList.length > 0) {
this.disabled = false;
} else {
this.disabled = true;
......@@ -511,14 +566,14 @@ export default {
},
},
methods: {
...mapMutations("game", ["set_send_game_log"]),
...mapMutations('game', ['set_send_game_log']),
initDisable() {
// 切换 w 账号的时候清空 conversionGameList 数据
this.conversionGameList = [];
this.getMemberTransStatus();
if (
this.accountSelect &&
this.accountSelect !== "" &&
this.accountSelect !== '' &&
this.bindGameUserList.length > 0
) {
this.disabled = false;
......@@ -538,20 +593,20 @@ export default {
async sendH5CloneGame(items, type) {
const res = await getClonePackageLink({ mini_game_id: items.id });
if (res.status_code == 1) {
if (type == "android" && !res?.data?.data?.android_download_url) {
this.$message.warning("安卓分身包链接不存在,请联系掌游配置");
if (type == 'android' && !res?.data?.data?.android_download_url) {
this.$message.warning('安卓分身包链接不存在,请联系掌游配置');
return;
} else if (type == "ios" && !res?.data?.data?.ios_download_url) {
this.$message.warning("IOS分身包链接不存在,请联系掌游配置");
} else if (type == 'ios' && !res?.data?.data?.ios_download_url) {
this.$message.warning('IOS分身包链接不存在,请联系掌游配置');
return;
}
let srt = "";
if (type == "android") {
srt = "安卓分身包链接: " + res.data.data.android_download_url;
let srt = '';
if (type == 'android') {
srt = '安卓分身包链接: ' + res.data.data.android_download_url;
} else {
srt = "IOS分身包链接: " + res.data.data.ios_download_url;
srt = 'IOS分身包链接: ' + res.data.data.ios_download_url;
}
sendChatMessage(srt, "text");
sendChatMessage(srt, 'text');
} else {
this.$message.warning(res.msg);
}
......@@ -566,7 +621,7 @@ export default {
},
// 请求当前 W 账号是否符合转端条件 如果不符合 提示 当前w账号不满足转端要求,请联系组长处理
async getMemberTransStatus() {
if (this.accountSelect && this.accountSelect !== "") {
if (this.accountSelect && this.accountSelect !== '') {
const res = await getMemberTransStatus({
member_id: this.accountSelect,
});
......@@ -578,11 +633,11 @@ export default {
}
},
recallTabChange() {
this.activeName = "3";
this.activeName = '3';
this.sendGameRecallList();
},
async requestGameSendLog() {
this.filterGameText = "";
this.filterGameText = '';
const res = await getRecentSendLog();
if (res.status_code == 1) {
if (res.status_code == 1 && res.data.length > 0) {
......@@ -593,22 +648,22 @@ export default {
}
// 检查是否已经存在"最近发送"项
const recentSendIndex = this.regGameList.findIndex(
(item) => item.label === "最近发送"
(item) => item.label === '最近发送',
);
if (recentSendIndex !== -1) {
// 如果已存在,更新它
this.$set(this.regGameList[recentSendIndex], "children", res.data);
this.$set(this.regGameList[recentSendIndex], 'children', res.data);
} else {
// 如果不存在,添加它
this.regGameList.unshift({
label: "最近发送",
label: '最近发送',
children: res.data,
});
}
}
},
async sendGameInfo() {
this.activeName = "1";
this.activeName = '1';
this.conversionGameList = [];
this.recallGameList = [];
this.getMemberTransStatus();
......@@ -616,15 +671,15 @@ export default {
this.sendGameList();
},
requestRegGameList() {
this.activeName = "2";
this.activeName = '2';
if (
this.gameUserInfo.main_game_id ||
this.gameUserInfo.main_game_id == 0
) {
this.contentLoading = true;
const data = {
type: "gameListWithType",
value: "",
type: 'gameListWithType',
value: '',
use_type: 2,
game_id: this.gameUserInfo.main_game_id,
use_user_id: this.userInfo.id,
......@@ -635,7 +690,7 @@ export default {
if (res.status_code == 1) {
// 暂时隐藏快手小游戏
const ksGameIndex = res.data.data.findIndex(
(item) => item.label === "快手小游戏"
(item) => item.label === '快手小游戏',
);
if (ksGameIndex !== -1) {
res.data.data.splice(ksGameIndex, 1);
......@@ -655,26 +710,26 @@ export default {
// 召回发送渠道
sendChannel(items, type) {
items.type = 3;
type ? (this.sendType = type) : "";
type ? (this.sendType = type) : '';
this.channelList(items);
},
// 转游发送渠道
sendChannelGame(items, item, type) {
console.log(items, "items", item);
type ? (this.sendType = type) : "";
console.log(items, 'items', item);
type ? (this.sendType = type) : '';
const gameInfo = this.$clone(items);
gameInfo.type = 2;
this.channelList(gameInfo);
},
changeGameText() {
console.log(this.filterGameText);
if (this.filterGameText.trim() === "") {
if (this.filterGameText.trim() === '') {
this.regGameList = this.allRegGameList;
} else {
const list = JSON.parse(JSON.stringify(this.allRegGameList));
list.map((item, index) => {
item.children = item.children.filter(
(items) => items.label.indexOf(this.filterGameText) !== -1
(items) => items.label.indexOf(this.filterGameText) !== -1,
);
});
this.regGameList = list;
......@@ -682,7 +737,7 @@ export default {
},
// 获取渠道列表
channelList(items) {
console.log(items, "items");
console.log(items, 'items');
const data = {
game_id: items.game_id || items.id,
page_size: 200,
......@@ -691,7 +746,7 @@ export default {
weixin_blongs_id: items.weixin_blongs_id
? [items.weixin_blongs_id]
: this.weixin_blongs_id,
request_system: "company_wx",
request_system: 'company_wx',
member_id: this.accountSelect,
use_type: this.activeName,
};
......@@ -712,7 +767,7 @@ export default {
}
this.sendGameLog(items);
} else {
this.$message.warning("请到掌游创建运营渠道");
this.$message.warning('请到掌游创建运营渠道');
}
});
},
......@@ -727,7 +782,7 @@ export default {
this.contentLoading = false;
if (res.status_code === 1 && res.data.data.length > 0) {
const ksGameIndex = res.data.data.findIndex(
(item) => item.game_type == 6
(item) => item.game_type == 6,
);
if (ksGameIndex != -1) {
res.data.data.splice(ksGameIndex, 1);
......@@ -742,7 +797,7 @@ export default {
}
},
async conversionChangeOld(value) {
console.log("请求数据", this.conversionGameList);
console.log('请求数据', this.conversionGameList);
if (this.isReqeustData) {
return;
}
......@@ -765,7 +820,7 @@ export default {
// 使用解构赋值简化数据设置
const updates = {
children: reslist.data?.length > 0 ? reslist.data : [],
send_trans_page_id: "", // 转端要发送的游戏 ID
send_trans_page_id: '', // 转端要发送的游戏 ID
isReqeustData: true,
};
......@@ -776,17 +831,17 @@ export default {
} catch (error) {
console.error(
`Failed to fetch game list for index ${index}:`,
error
error,
);
// 设置空数组作为默认值
this.$set(this.conversionGameList[index], "children", []);
this.$set(this.conversionGameList[index], 'children', []);
}
});
await Promise.all(promiseList);
this.handleConversionGameList();
} catch (error) {
console.error("Failed to fetch conversion game lists:", error);
console.error('Failed to fetch conversion game lists:', error);
} finally {
this.gameLoding = false;
this.isReqeustData = false;
......@@ -803,56 +858,72 @@ export default {
item.children.length > 0
) {
const filteredChildren = item.children.filter((child) => {
return child.game_id !== "912" && child.game_id != "784";
return child.game_id !== '912' && child.game_id != '784';
});
this.$set(
this.conversionGameList[index],
"children",
filteredChildren
'children',
filteredChildren,
);
}
// 隐藏安卓游戏 安卓游戏 game_type: 3
// 隐藏神权之战 这里根据游戏名称判断 因为 game_id 是会变化的
if (
item.game_type === 3 &&
item.children &&
item.children.length > 0
) {
// 过滤掉 game_name 为"破日开天"的数据 英雄霸业 741:独步天龙 912:神权之战 繁华梦/2274
const filterList = [
'2365',
'2378',
'2431',
'2437',
'2439',
'2440',
'2441',
'2442',
'2443',
];
// 过滤掉 game_name 为"破日开天"的数据 英雄霸业 741:独步天龙 912:神权之战 繁华梦/2274 黑夜传奇/685 深海花园/2326
const filteredChildren = item.children.filter((child) => {
return (
child.game_name !== "破日开天" &&
child.game_name !== "英雄霸业" &&
child.game_id !== "741" &&
child.game_id !== "912" &&
child.game_name !== '神权之战' &&
child.game_id !== '741' &&
child.game_id !== '2274' &&
child.game_name !== '繁华梦'
child.game_name !== '破日开天' &&
child.game_name !== '英雄霸业' &&
child.game_name !== '神权之战' &&
child.game_id != '741' &&
child.game_id != '2274' &&
!filterList.includes(child.game_id) &&
child.game_name !== '繁华梦' &&
Number(child.game_id) !== 685
);
});
this.$set(
this.conversionGameList[index],
"children",
filteredChildren
'children',
filteredChildren,
);
}
// 隐藏 IOS 游戏 雄霸天下 有两个包 1 个是 691 一个是 819 王鑫说 暂时先隐藏 691 的功能
// 隐藏神权之战 这里根据游戏名称判断 因为 game_id 是会变化的
if (
item.game_type === 4 &&
item.children &&
item.children.length > 0
) {
const filteredChildren = item.children.filter((child) => {
return Number(child.game_id) !== 691;
return (
Number(child.game_id) !== 691 &&
child.game_name !== '神权之战' &&
child.game_id != '2393'
);
});
this.$set(
this.conversionGameList[index],
"children",
filteredChildren
'children',
filteredChildren,
);
}
});
console.log(this.conversionGameList, "conversionGameList");
}
},
// 转端展开
......@@ -860,7 +931,7 @@ export default {
if (value && value.length > 0) {
const gameType = value[value.length - 1];
const gameIndex = this.conversionGameList.findIndex(
(item) => item.game_type === gameType
(item) => item.game_type === gameType,
);
if (
!this.conversionGameList[gameIndex].children ||
......@@ -881,11 +952,11 @@ export default {
if (reslist.status_code === 1 && reslist.data.data.length > 0) {
this.$set(
this.conversionGameList[gameIndex],
"children",
reslist.data.data
'children',
reslist.data.data,
);
} else {
this.$set(this.conversionGameList[gameIndex], "children", []);
this.$set(this.conversionGameList[gameIndex], 'children', []);
}
setTimeout(() => {
this.gameLoding = false;
......@@ -902,7 +973,7 @@ export default {
this.contentLoading = false;
if (res.status_code === 1 && res.data.data.length > 0) {
const ksGameIndex = res.data.data.findIndex(
(item) => item.game_type == 6
(item) => item.game_type == 6,
);
if (ksGameIndex !== -1) {
res.data.data.splice(ksGameIndex, 1);
......@@ -921,7 +992,7 @@ export default {
if (value && value.length > 0) {
const gameType = value[value.length - 1];
const gameIndex = this.recallGameList.findIndex(
(item) => item.game_type === gameType
(item) => item.game_type === gameType,
);
if (
!this.recallGameList[gameIndex].children ||
......@@ -943,17 +1014,17 @@ export default {
if (reslist.status_code === 1 && reslist.data.data.length > 0) {
this.$set(
this.recallGameList[gameIndex],
"children",
reslist.data.data
'children',
reslist.data.data,
);
} else {
this.$set(this.recallGameList[gameIndex], "children", []);
this.$set(this.recallGameList[gameIndex], 'children', []);
}
setTimeout(() => {
this.gameLoding = false;
}, 2000);
} else {
console.log("之前请求过了");
console.log('之前请求过了');
}
}
},
......@@ -967,7 +1038,7 @@ export default {
handleAccount() {
if (this.bindGameUserList.length > 0) {
const account = this.bindGameUserList.find(
(item) => item.member_id == this.accountSelect
(item) => item.member_id == this.accountSelect,
);
if (account) {
return true;
......@@ -980,60 +1051,60 @@ export default {
},
sendLink: throttle(function (item, type) {
if (!this.transMemberStatus) {
this.$message.warning("当前w账号不满足转端要求,请联系组长处理");
this.$message.warning('当前w账号不满足转端要求,请联系组长处理');
return;
}
console.log(item, "转端发送仅发送链接");
console.log(item, '转端发送仅发送链接');
const result = this.handleAccount();
if (!result) {
this.$message.warning("请稍后再试");
this.$message.warning('请稍后再试');
return false;
}
let str = "";
let str = '';
if (type == 2) {
str = "网页游戏链接:";
str = '网页游戏链接:';
} else if (type == 3) {
str = "安卓游戏链接:";
str = '安卓游戏链接:';
} else if (type == 4) {
str = "IOS游戏链接:";
str = 'IOS游戏链接:';
} else {
}
// const list = [
// { msgtype: 'text', text: { content: `${str}${item.url}` }}
// ]
this.sendChatMessage(`${str}${item.url}`, "text");
this.sendChatMessage(`${str}${item.url}`, 'text');
this.markTransScene(type);
item.type = 1;
this.sendGameLog(item);
}, 500),
sendPassword: throttle(function (item, type) {
if (!this.transMemberStatus) {
this.$message.warning("当前w账号不满足转端要求,请联系组长处理");
this.$message.warning('当前w账号不满足转端要求,请联系组长处理');
return;
}
console.log(item, "转端仅发送账号密码");
console.log(item, '转端仅发送账号密码');
const result = this.handleAccount();
if (!result) {
this.$message.warning("请稍后再试");
this.$message.warning('请稍后再试');
return false;
}
const username = this.bindGameUserList.find(
(items) => items.member_id == this.accountSelect
(items) => items.member_id == this.accountSelect,
).username;
passwardEncryption({ member_id: this.accountSelect })
.then((res) => {
this.sendChatMessage(
`账号:${username} \n密码:${res.data.password}`,
"text"
'text',
);
this.markTransScene(type);
this.sendGameLog(item);
})
.catch((err) => {
const list = [
{ msgtype: "text", text: { content: `账号:${username}` } },
{ msgtype: 'text', text: { content: `账号:${username}` } },
];
this.sendChatMessage(`账号:${username}`, "text");
this.sendChatMessage(`账号:${username}`, 'text');
item.type = 1;
this.sendGameLog(item);
console.log(err);
......@@ -1041,31 +1112,31 @@ export default {
}, 500),
sendMessage: throttle(function (item, type) {
if (!this.transMemberStatus) {
this.$message.warning("当前w账号不满足转端要求,请联系组长处理");
this.$message.warning('当前w账号不满足转端要求,请联系组长处理');
return;
}
const result = this.handleAccount();
if (!result) {
this.$message.warning("请稍后再试");
this.$message.warning('请稍后再试');
return false;
}
let str = "";
let str = '';
if (type == 2) {
str = "网页游戏链接:";
str = '网页游戏链接:';
} else if (type == 3) {
str = "安卓游戏链接:";
str = '安卓游戏链接:';
} else if (type == 4) {
str = "IOS游戏链接:";
str = 'IOS游戏链接:';
} else {
}
const username = this.bindGameUserList.find(
(items) => items.member_id == this.accountSelect
(items) => items.member_id == this.accountSelect,
).username;
passwardEncryption({ member_id: this.accountSelect })
.then((res) => {
const list = [
{
msgtype: "text",
msgtype: 'text',
text: {
content: `${str}${item.url} \n账号:${username} \n密码:${res.data.password}`,
key: res.data.key,
......@@ -1075,7 +1146,7 @@ export default {
];
this.sendChatMessage(
`${str}${item.url} \n账号:${username} \n密码:${res.data.password}`,
"text"
'text',
);
this.markTransScene(type);
item.type = 1;
......@@ -1084,102 +1155,106 @@ export default {
.catch((err) => {
const list = [
{
msgtype: "text",
msgtype: 'text',
text: { content: `${str}${item.url} \n账号:${username}` },
},
];
this.sendChatMessage(`${str}${item.url} \n账号:${username}`, "text");
this.sendChatMessage(`${str}${item.url} \n账号:${username}`, 'text');
this.sendGameLog(item);
console.log(err);
});
}, 500),
// 发送游戏落地页
startSendPage(value) {
console.log(value, "value");
this.getMediaId(value, "image");
console.log(value, 'value');
this.getMediaId(value, 'image');
},
// 转端发送落地页面
sendDownLoadPage: throttleStart(function (items, type, index) {
if (!this.transMemberStatus) {
this.$message.warning("当前w账号不满足转端要求,请联系组长处理");
this.$message.warning('当前w账号不满足转端要求,请联系组长处理');
return;
}
this.$set(
this.conversionGameList[index],
"send_trans_page_id",
items.game_id
'send_trans_page_id',
items.game_id,
);
this.showSendPage = true;
}, 500),
// 转端发送游戏分身包 h5 安卓游戏 IOS游戏 发送分身包
async sendTransferCloneGame(type,items) {
if(!this.h5CloneGameInfo?.data?.h5_download_url){
this.h5CloneGameInfo = await memberRegGameCloneLink({ member_id: this.accountSelect ,game_id:items.game_id}) || {}
async sendTransferCloneGame(type, items) {
if (!this.h5CloneGameInfo?.data?.h5_download_url) {
this.h5CloneGameInfo =
(await memberRegGameCloneLink({
member_id: this.accountSelect,
game_id: items.game_id,
})) || {};
}
if (this.h5CloneGameInfo?.status_code == 1) {
// 通过 type 判断 用 switch
switch (type) {
case 2:
if (!this.h5CloneGameInfo?.data?.h5_download_url) {
this.$message.warning('H5安卓分身包链接不存在,请联系掌游配置')
return
this.$message.warning('H5安卓分身包链接不存在,请联系掌游配置');
return;
}
break
break;
case 3:
if (!this.h5CloneGameInfo?.data?.android_download_url) {
this.$message.warning('安卓分身包链接不存在,请联系掌游配置')
return
this.$message.warning('安卓分身包链接不存在,请联系掌游配置');
return;
}
break
break;
case 4:
if (!this.h5CloneGameInfo?.data?.ios_download_url) {
this.$message.warning('IOS分身包链接不存在,请联系掌游配置')
return
this.$message.warning('IOS分身包链接不存在,请联系掌游配置');
return;
}
break
break;
default:
this.$message.warning('不支持的游戏类型')
return
this.$message.warning('不支持的游戏类型');
return;
}
let srt = ''
let srt = '';
switch (type) {
case 2:
srt = this.h5CloneGameInfo?.data?.h5_download_url
break
srt = this.h5CloneGameInfo?.data?.h5_download_url;
break;
case 3:
srt = this.h5CloneGameInfo?.data?.android_download_url
break
srt = this.h5CloneGameInfo?.data?.android_download_url;
break;
case 4:
srt = this.h5CloneGameInfo?.data?.ios_download_url
break
srt = this.h5CloneGameInfo?.data?.ios_download_url;
break;
}
this.sendChatMessage(srt, "text");
this.sendChatMessage(srt, 'text');
} else {
this.$message.warning(this.h5CloneGameInfo?.msg)
this.$message.warning(this.h5CloneGameInfo?.msg);
}
},
// 转端发送游戏二维码
sendDownLoadQrCode: throttleStart(async function (items, type, index) {
if (!this.transMemberStatus) {
this.$message.warning("当前w账号不满足转端要求,请联系组长处理");
this.$message.warning('当前w账号不满足转端要求,请联系组长处理');
return;
}
const result = this.handleAccount();
if (!result) {
this.$message.warning("请稍后再试");
this.$message.warning('请稍后再试');
return false;
}
try {
this.sendLoading = true;
// 获取游戏落地页链接
let landingPageUrl = "";
let landingPageUrl = '';
if (items.url) {
landingPageUrl = items.url;
}
if (!landingPageUrl) {
this.$message.error("没有有效的链接可生成二维码");
this.$message.error('没有有效的链接可生成二维码');
return;
}
......@@ -1190,23 +1265,23 @@ export default {
await this.$nextTick();
// 获取二维码canvas并转换为Blob
const canvas = this.$refs.qrcode.$el.querySelector("canvas");
const canvas = this.$refs.qrcode.$el.querySelector('canvas');
if (!canvas) {
throw new Error("获取二维码canvas失败");
throw new Error('获取二维码canvas失败');
}
const blob = await new Promise((resolve) => {
canvas.toBlob((blob) => {
resolve(blob);
}, "image/png");
}, 'image/png');
});
// 创建File对象
blob.name = "qrcode.png";
blob.name = 'qrcode.png';
// 上传图片
const uploadConfig = {
dir: "/company_wx/service/avatars/",
dir: '/company_wx/service/avatars/',
};
const uploadResult = await this.uploading(blob, uploadConfig);
debugger;
......@@ -1225,17 +1300,17 @@ export default {
// };
// console.log(image, 12312321);
this.sendChatMessage(uploadResult.data, "image");
this.sendChatMessage(uploadResult.data, 'image');
this.markTransScene(type);
items.type = 1;
this.sendGameLog(items);
this.$message.success("二维码发送成功");
this.$message.success('二维码发送成功');
} else {
throw new Error("上传失败");
throw new Error('上传失败');
}
} catch (error) {
console.error("发送二维码失败:", error);
this.$message.error("发送二维码失败,请重试");
console.error('发送二维码失败:', error);
this.$message.error('发送二维码失败,请重试');
} finally {
this.sendLoading = false;
}
......@@ -1248,10 +1323,10 @@ export default {
};
const res = await markTransScene(data);
if (res.status_code == 1) {
console.log("标记转端成功");
console.log('标记转端成功');
if (
this.chatUserInfo.trans_scene &&
this.chatUserInfo.trans_scene !== "" &&
this.chatUserInfo.trans_scene !== '' &&
this.chatUserInfo.trans_scene != type
) {
this.chatUserInfo.trans_scene = type;
......@@ -1269,14 +1344,14 @@ export default {
return {
value: item.value,
label:
item.label && item.label.split("-")[0]
? item.label.split("-")[0]
: "",
item.label && item.label.split('-')[0]
? item.label.split('-')[0]
: '',
};
});
resolve(this.belongList);
} else {
this.$message.warning("暂无绑定项目,请先绑定项目");
this.$message.warning('暂无绑定项目,请先绑定项目');
reject(null);
}
});
......@@ -1297,7 +1372,7 @@ export default {
belonsList.length > 0
) {
groupItem = group.data.data[0];
const group_name_list = groupItem.label.split("-");
const group_name_list = groupItem.label.split('-');
const data = {
blongs_name: belonsList[0].label,
member_id: this.accountSelect,
......@@ -1305,7 +1380,7 @@ export default {
use_user_name: this.userInfo.username,
group_id: groupItem.value,
group_name: group_name_list[group_name_list.length - 1],
game_type: this.chatUserInfo.trans_scene || "",
game_type: this.chatUserInfo.trans_scene || '',
};
this.sendLoading = true;
try {
......@@ -1320,11 +1395,11 @@ export default {
this.$message.success(res.msg);
}
} catch (error) {
this.$message.error("获取召回链接失败,请重新再试");
this.$message.error('获取召回链接失败,请重新再试');
this.sendLoading = false;
}
} else {
this.$message.error("获取分组失败,请到掌权添加分组");
this.$message.error('获取分组失败,请到掌权添加分组');
return;
}
},
......@@ -1342,11 +1417,11 @@ export default {
*/
handleSendType(data) {
console.log(data, "获取一键发送的信息");
console.log(data, '获取一键发送的信息');
// 转端发送优先逻辑 不需要了 现在发送当前会话框选中的账号对应的注册游戏
data?.game_data?.game_type
? (this.chatUserInfo.trans_scene = data.game_data.game_type)
: "";
: '';
if (this.chatUserInfo.trans_scene && this.chatUserInfo.trans_scene != 1) {
this.sendCreateChannel(data.game_data, data.game_data.game_type);
} else {
......@@ -1362,13 +1437,13 @@ export default {
page: data.share_data.page,
imgUrl: data.share_data.share_img,
};
this.sendChatMessage(miniprogramInfo, "miniprogram");
this.sendChatMessage(miniprogramInfo, 'miniprogram');
const game_data = this.$clone(data.game_data);
game_data.type = 3;
console.log(game_data, "data----------");
console.log(game_data, 'data----------');
this.sendGameLog(game_data);
} else {
this.getMediaId(data.game_data.game_url, "image");
this.getMediaId(data.game_data.game_url, 'image');
this.sendGameLog(data.game_data);
}
}
......@@ -1386,26 +1461,26 @@ export default {
sendCreateChannel: throttle(function (item, type) {
const result = this.handleAccount();
if (!result) {
this.$message.warning("请稍后再试");
this.$message.warning('请稍后再试');
return false;
}
let str = "";
let str = '';
if (type == 2) {
str = "网页游戏链接:";
str = '网页游戏链接:';
} else if (type == 3) {
str = "安卓游戏链接:";
str = '安卓游戏链接:';
} else if (type == 4) {
str = "IOS游戏链接:";
str = 'IOS游戏链接:';
} else {
}
const username = this.bindGameUserList.find(
(items) => items.member_id == this.accountSelect
(items) => items.member_id == this.accountSelect,
).username;
passwardEncryption({ member_id: this.accountSelect }).then((res) => {
const list = [
{
msgtype: "text",
msgtype: 'text',
// 一键发送渠道任务相关的参数
taskInfo: {
task_id: this.chatUser.task_id,
......@@ -1422,7 +1497,7 @@ export default {
];
this.sendChatMessage(
`${str}${item.game_url} \n账号:${username} \n密码:${res.data.password}`,
"text"
'text',
);
item.type = 3;
this.sendGameLog(item);
......@@ -1433,7 +1508,12 @@ export default {
const params = {
main_game_id: items.main_game_id,
weixin_blongs_id: items.weixin_blongs_id,
type: items.game_type == 1 || items.game_type == 5 ? 2 : items.game_type == 3 || items.game_type == 4 ? 1 : ''
type:
items.game_type == 1 || items.game_type == 5
? 2
: items.game_type == 3 || items.game_type == 4
? 1
: '',
};
const res = await getLandingPageConfig(params);
if (res.status_code === 1 && res.data) {
......@@ -1457,7 +1537,7 @@ export default {
this.showWxGameDrawer = true;
return true;
} catch (error) {
console.error("处理微信小游戏失败:", error);
console.error('处理微信小游戏失败:', error);
return false;
}
},
......@@ -1468,12 +1548,12 @@ export default {
return targetList.filter(
(game) =>
game.weixin_blongs_id === sourceGame.weixin_blongs_id &&
game.main_game_id === sourceGame.main_game_id
game.main_game_id === sourceGame.main_game_id,
);
},
handleAndroidList(items, item) {
const androidGameList = this.regGameList.find((item) =>
item.label.includes("安卓")
item.label.includes('安卓'),
);
if (
androidGameList &&
......@@ -1482,7 +1562,7 @@ export default {
) {
androidGameList.children = this.filterGameList(
items,
androidGameList.children
androidGameList.children,
);
} else {
androidGameList.children = [];
......@@ -1496,7 +1576,7 @@ export default {
},
handleIosList(items, item) {
const IOSGameList = this.regGameList.find((item) =>
item.label.includes("IOS" || "ios")
item.label.includes('IOS' || 'ios'),
);
IOSGameList.game_type = 4;
if (
......@@ -1519,13 +1599,20 @@ export default {
this.showAppGameDrawer = true;
const androidGameList = this.handleAndroidList(items, item);
const IOSGameList = this.handleIosList(items, item);
androidGameList ? this.selectedAppGameList.push(androidGameList) : "";
IOSGameList ? this.selectedAppGameList.push(IOSGameList) : "";
console.log(this.selectedAppGameList, "selectedAppGameList");
androidGameList ? this.selectedAppGameList.push(androidGameList) : '';
IOSGameList ? this.selectedAppGameList.push(IOSGameList) : '';
console.log(this.selectedAppGameList, 'selectedAppGameList');
},
// 主方法
async handleGameType(items, item, type, index) {
if ((items.game_type == 1 || items.game_type == 3 || items.game_type == 4 || items.game_type == 5) && items.main_game_id && items.weixin_blongs_id) {
if (
(items.game_type == 1 ||
items.game_type == 3 ||
items.game_type == 4 ||
items.game_type == 5) &&
items.main_game_id &&
items.weixin_blongs_id
) {
const result = await this.getLandingPageConfig(items, item);
if (result && result.data?.data?.tag) {
if (items.game_type == 1 || items.game_type == 5) {
......@@ -1548,8 +1635,8 @@ export default {
},
// 小游戏游戏确认
async handleWxGameConfirm(value) {
console.log(value, "value");
this.getMediaId(value, "image");
console.log(value, 'value');
this.getMediaId(value, 'image');
},
SendTransAppGameClose() {
this.selectedAppGameList = [];
......@@ -1562,17 +1649,17 @@ export default {
this.selectedAppGameList = [];
this.sendChatMessage(
`游戏地址:${data.landing_page_url} \n账号:${data.username} \n密码:${data.password}`,
"text"
'text',
);
},
async getMediaId(picurl) {
// 发送图片作为链接消息
if (picurl) {
this.sendChatMessage(picurl, "image");
this.sendChatMessage(picurl, 'image');
} else {
// 如果没有图片URL,提示用户
this.$message.error("图片链接不存在,无法发送");
this.$message.error('图片链接不存在,无法发送');
}
},
},
......
......@@ -128,11 +128,12 @@
@change="handleInputRemark"
@blur="showInputRemark = false"
></el-input>
<i
class="el-icon-edit icon"
<svg-icon
icon-class="edit"
class="icon"
style="font-size: 14px"
@click="editRemark"
></i>
/>
</div>
<div class="item rowFlex columnCenter" v-if="lastTime">
<div class="rowFlex columnCenter">
......
const { defineConfig } = require('@vue/cli-service')
const path = require('path')
const fs = require('fs')
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin')
// 构建前删除 company_app 文件夹
function removeOutputDir() {
......@@ -20,7 +21,7 @@ function resolve(dir) {
return path.join(__dirname, dir)
}
module.exports = defineConfig({
publicPath: './',
publicPath: './',
assetsDir: 'static',
transpileDependencies: true,
outputDir: 'company_app',
......@@ -47,14 +48,29 @@ module.exports = defineConfig({
}
}
},
configureWebpack: {
name:'企微侧边栏',
// provide the app's title in webpack's name field, so that
// it can be accessed in index.html to inject the correct title.
resolve: {
alias: {
'@': resolve('src')
}
configureWebpack(config) {
config.name = '企微侧边栏'
config.resolve = config.resolve || {}
config.resolve.alias = {
...config.resolve.alias,
'@': resolve('src')
}
if (process.env.NODE_ENV === 'production') {
config.optimization = config.optimization || {}
config.optimization.minimizer = [
'...',
new CssMinimizerPlugin({
minimizerOptions: {
preset: [
'default',
{
normalizeUnicode: false
}
]
}
})
]
}
},
css: {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论