团购支付

This commit is contained in:
2024-04-08 21:33:15 +08:00
parent 935d56227d
commit c94ddeed1a
14 changed files with 483 additions and 384 deletions

View File

@@ -15,10 +15,10 @@
"postinstall": "simple-git-hooks"
},
"dependencies": {
"@dcloudio/uni-app": "3.0.0-4000720240327001",
"@dcloudio/uni-app-plus": "3.0.0-4000720240327001",
"@dcloudio/uni-components": "3.0.0-4000720240327001",
"@dcloudio/uni-mp-weixin": "3.0.0-4000720240327001",
"@dcloudio/uni-app": "3.0.0-4000820240401001",
"@dcloudio/uni-app-plus": "3.0.0-4000820240401001",
"@dcloudio/uni-components": "3.0.0-4000820240401001",
"@dcloudio/uni-mp-weixin": "3.0.0-4000820240401001",
"dayjs": "^1.11.10",
"pinia": "2.0.36",
"pinia-plugin-persistedstate": "^3.2.1",
@@ -30,10 +30,10 @@
"devDependencies": {
"@antfu/eslint-config": "1.1.0",
"@dcloudio/types": "^3.4.3",
"@dcloudio/uni-automator": "3.0.0-4000720240327001",
"@dcloudio/uni-cli-shared": "3.0.0-4000720240327001",
"@dcloudio/uni-stacktracey": "3.0.0-4000720240327001",
"@dcloudio/vite-plugin-uni": "3.0.0-4000720240327001",
"@dcloudio/uni-automator": "3.0.0-4000820240401001",
"@dcloudio/uni-cli-shared": "3.0.0-4000820240401001",
"@dcloudio/uni-stacktracey": "3.0.0-4000820240401001",
"@dcloudio/vite-plugin-uni": "3.0.0-4000820240401001",
"@types/node": "^20.8.10",
"@typescript-eslint/parser": "^6.10.0",
"@uni-helper/uni-app-types": "^0.5.9",

255
pnpm-lock.yaml generated
View File

@@ -6,17 +6,17 @@ settings:
dependencies:
'@dcloudio/uni-app':
specifier: 3.0.0-4000720240327001
version: 3.0.0-4000720240327001(@dcloudio/types@3.4.3)(postcss@8.4.38)(vue@3.4.21)
specifier: 3.0.0-4000820240401001
version: 3.0.0-4000820240401001(@dcloudio/types@3.4.3)(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-app-plus':
specifier: 3.0.0-4000720240327001
version: 3.0.0-4000720240327001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21)
specifier: 3.0.0-4000820240401001
version: 3.0.0-4000820240401001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21)
'@dcloudio/uni-components':
specifier: 3.0.0-4000720240327001
version: 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
specifier: 3.0.0-4000820240401001
version: 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-mp-weixin':
specifier: 3.0.0-4000720240327001
version: 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
specifier: 3.0.0-4000820240401001
version: 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
dayjs:
specifier: ^1.11.10
version: 1.11.10
@@ -47,17 +47,17 @@ devDependencies:
specifier: ^3.4.3
version: 3.4.3
'@dcloudio/uni-automator':
specifier: 3.0.0-4000720240327001
version: 3.0.0-4000720240327001(jest-environment-node@27.5.1)(jest@27.0.4)(postcss@8.4.38)(vue@3.4.21)
specifier: 3.0.0-4000820240401001
version: 3.0.0-4000820240401001(jest-environment-node@27.5.1)(jest@27.0.4)(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-cli-shared':
specifier: 3.0.0-4000720240327001
version: 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
specifier: 3.0.0-4000820240401001
version: 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-stacktracey':
specifier: 3.0.0-4000720240327001
version: 3.0.0-4000720240327001
specifier: 3.0.0-4000820240401001
version: 3.0.0-4000820240401001
'@dcloudio/vite-plugin-uni':
specifier: 3.0.0-4000720240327001
version: 3.0.0-4000720240327001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21)
specifier: 3.0.0-4000820240401001
version: 3.0.0-4000820240401001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21)
'@types/node':
specifier: ^20.8.10
version: 20.10.3
@@ -257,7 +257,7 @@ packages:
'@babel/helper-compilation-targets': 7.22.15
'@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.5)
'@babel/helpers': 7.23.5
'@babel/parser': 7.23.5
'@babel/parser': 7.24.1
'@babel/template': 7.22.15
'@babel/traverse': 7.23.5
'@babel/types': 7.23.5
@@ -2648,12 +2648,12 @@ packages:
/@dcloudio/types@3.4.3:
resolution: {integrity: sha512-WzQGX06z2+HU3HnOO+/DxX37jyUECSXCuI7GVjFXs10+ZExTbdouwQXZvH8hR7k/FjuXFjQKHV9fuvfexyXluw==}
/@dcloudio/uni-app-plus@3.0.0-4000720240327001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21):
resolution: {integrity: sha512-QD5JEHQ+vGQ3iN1kUA3p0rm40+ohrg4ymctHPYRit6VdIkJmGLuxOaTiBWf8j93/EdNSHfPpFrMxAPbB3c5AZg==}
/@dcloudio/uni-app-plus@3.0.0-4000820240401001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21):
resolution: {integrity: sha512-zYjE1nik7Uot0PbmdaLr5x1QgdibYo++WFysjrxH09jJGP6kBtuKKPLN3wAooKBMYU7aX99GYZt2nuZFJFE1kg==}
dependencies:
'@dcloudio/uni-app-uts': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-app-vite': 3.0.0-4000720240327001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21)
'@dcloudio/uni-app-vue': 3.0.0-4000720240327001
'@dcloudio/uni-app-uts': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-app-vite': 3.0.0-4000820240401001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21)
'@dcloudio/uni-app-vue': 3.0.0-4000820240401001
debug: 4.3.4
fs-extra: 10.1.0
licia: 1.39.1
@@ -2669,15 +2669,15 @@ packages:
- vue
dev: false
/@dcloudio/uni-app-uts@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-ED/2sAsaMq0w4d8Rf4XpZhPNuhqagwAjZaQ/fgy6iaAjgDUNMBBFjRw5yW+cgqaEm16BOIwh6ubN8313ghqrvQ==}
/@dcloudio/uni-app-uts@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-6MPQAnDX/M1FFVMYmsP7yd5g8u8a1QO5GfvhT/QlMaCAS+Z1TQQhzBaYZWuCjF4Xu+fibEUQXrKUsphefcDFAw==}
dependencies:
'@babel/parser': 7.23.5
'@babel/parser': 7.24.1
'@babel/types': 7.23.5
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000720240327001
'@dcloudio/uni-nvue-styler': 3.0.0-4000720240327001
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000820240401001
'@dcloudio/uni-nvue-styler': 3.0.0-4000820240401001
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@jridgewell/gen-mapping': 0.3.3
'@jridgewell/trace-mapping': 0.3.20
'@rollup/pluginutils': 4.2.1
@@ -2689,9 +2689,9 @@ packages:
es-module-lexer: 1.4.1
estree-walker: 2.0.2
fs-extra: 10.1.0
magic-string: 0.30.5
magic-string: 0.30.8
picocolors: 1.0.0
source-map-js: 1.0.2
source-map-js: 1.2.0
unplugin-auto-import: 0.16.7
transitivePeerDependencies:
- '@nuxt/kit'
@@ -2703,13 +2703,13 @@ packages:
- vue
dev: false
/@dcloudio/uni-app-vite@3.0.0-4000720240327001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21):
resolution: {integrity: sha512-up8h+8NwUSbbfelspTyHCuRUi66BJT8+elfWzGSNAHBo77PGyoEEg+n9Jbp55VuoqU5NiyGwARC1kfRFPVupBg==}
/@dcloudio/uni-app-vite@3.0.0-4000820240401001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21):
resolution: {integrity: sha512-w9HuZZTm4oVbsJ3/cLcOFiy8nDqNllEGtgj2coI+Bkn3YpSMHJm+NjLui0JGyn2AWy8mJOhvPiZGcWWBPVxfww==}
dependencies:
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000720240327001
'@dcloudio/uni-nvue-styler': 3.0.0-4000720240327001
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000820240401001
'@dcloudio/uni-nvue-styler': 3.0.0-4000820240401001
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@rollup/pluginutils': 4.2.1
'@vitejs/plugin-vue': 4.5.1(vite@4.5.3)(vue@3.4.21)
'@vue/compiler-dom': 3.3.11
@@ -2728,22 +2728,22 @@ packages:
- vue
dev: false
/@dcloudio/uni-app-vue@3.0.0-4000720240327001:
resolution: {integrity: sha512-N0/Gi4rhqbDvQGU9NOeKF38B5G1faaTuLUlItJR6FErHn2/oqnXPDAGoin48tX6q1ecy7r4k2fEpfIXmMIcMpA==}
/@dcloudio/uni-app-vue@3.0.0-4000820240401001:
resolution: {integrity: sha512-tJqtz03ZwTdsK4baAdVBhOHacWpTrbU7JXZTm/YY2Zy4lQQpM0yX+EAWLs41WyvSdif1h2LLtAbfgf7CFn3wZQ==}
dev: false
/@dcloudio/uni-app@3.0.0-4000720240327001(@dcloudio/types@3.4.3)(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-H2kp3/RogQHLoZg3eVHECaSdseXiYFMLg9C5kv9IwCwJBcxShCfEglADJgVUAkc6HCqRZdMP5EdIQUIHlYykpA==}
/@dcloudio/uni-app@3.0.0-4000820240401001(@dcloudio/types@3.4.3)(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-7tpaE9WwkUHNzpaquTigSd34H42nCj+jshzw9DrJmSzyC1OtTYwiWXHEIVZm3iJLAGLPBLW+gkm//X5VnULGRw==}
peerDependencies:
'@dcloudio/types': ^3.4.8
dependencies:
'@dcloudio/types': 3.4.3
'@dcloudio/uni-cloud': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-components': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000720240327001
'@dcloudio/uni-push': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-stat': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-cloud': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-components': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000820240401001
'@dcloudio/uni-push': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@dcloudio/uni-stat': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@vue/shared': 3.3.11
transitivePeerDependencies:
- '@nuxt/kit'
@@ -2755,13 +2755,13 @@ packages:
- vue
dev: false
/@dcloudio/uni-automator@3.0.0-4000720240327001(jest-environment-node@27.5.1)(jest@27.0.4)(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-HYFcxuUqerWWxhDF6IUYdZvvjr8J219IcBLE/kPcEZjqw88OiVIK12zk6hRXtKYoUgwkACzNBvf5wVbNpgDBSQ==}
/@dcloudio/uni-automator@3.0.0-4000820240401001(jest-environment-node@27.5.1)(jest@27.0.4)(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-0HSvm5iQz8H8loxJ6hZFAqkySITlpDMTnIWGyP4owBAaltJI5KljPu8rs0q6rtFx91fVsGPcOfhmipOQiUWO9g==}
peerDependencies:
jest: 27.0.4
jest-environment-node: 27.5.1
dependencies:
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
address: 1.2.2
cross-env: 7.0.3
debug: 4.3.4
@@ -2787,8 +2787,8 @@ packages:
- vue
dev: true
/@dcloudio/uni-cli-shared@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-drgnFhSuCHOhE7xtJ3F6YkpGluoE1M1HMJHL9PhTm+ewEX+0BCXYvnpoIaKptRWbYFXZ/CqzgcHH2c/Wu38waQ==}
/@dcloudio/uni-cli-shared@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-zv7cL2zlhH0VNVnwEHCE+6XMLhHf1gnba+rlqTE15HdOmtn1fUWTOAExXYQKS38yf17VLFMepWqqqJFAH9GuGQ==}
engines: {node: ^14.18.0 || >=16.0.0}
dependencies:
'@ampproject/remapping': 2.2.1
@@ -2796,8 +2796,8 @@ packages:
'@babel/core': 7.23.5
'@babel/parser': 7.24.1
'@babel/types': 7.23.5
'@dcloudio/uni-i18n': 3.0.0-4000720240327001
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-i18n': 3.0.0-4000820240401001
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@intlify/core-base': 9.1.9
'@intlify/shared': 9.1.9
'@intlify/vue-devtools': 9.1.9
@@ -2843,12 +2843,12 @@ packages:
- ts-node
- vue
/@dcloudio/uni-cloud@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-LTD+8Xzv4FQZJWLrFGbecttzESzDiaABl1XoAOBlLKIgDAKK4bZKnNhwkcIl4XiOvYIB0cYbB1qqzeKBjWs45A==}
/@dcloudio/uni-cloud@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-uvk4BJP3Duuq5RWUXBvMe11urxuCpkhYc2FtjfkzqYe3w2FDDG5zQD7Nltr6rrlkQKn7Mnx5koHgbNbSAxF66g==}
dependencies:
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000720240327001
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000820240401001
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@vue/shared': 3.3.11
fast-glob: 3.3.2
transitivePeerDependencies:
@@ -2861,12 +2861,12 @@ packages:
- vue
dev: false
/@dcloudio/uni-components@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-lMtM28Qp6DHpWaZ4pKJPePYlIcjB9tValOgvLByuQNwlHL+uxxh27dAILt0KfsGsMN2Ima2hFRvGAcRW+JCTRw==}
/@dcloudio/uni-components@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-8hV+86ax99BoLykVMVp1yPG5m5n4Jpv2IWPnfpDF2mb9HehP66jAi3RRgAz5H9+ZpoLFbDyGf4+8Jb+vIa55Pw==}
dependencies:
'@dcloudio/uni-cloud': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-h5': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000720240327001
'@dcloudio/uni-cloud': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-h5': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000820240401001
transitivePeerDependencies:
- '@nuxt/kit'
- '@vueuse/core'
@@ -2877,11 +2877,11 @@ packages:
- vue
dev: false
/@dcloudio/uni-h5-vite@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-PNIMiH4dAFMXNn6NG+YvGzWPkRd3zyYVm62H6YEotVCtNUBodLDySOXx3Zz5RdRM7JHKMQMH968ZCGo2NyxDXQ==}
/@dcloudio/uni-h5-vite@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-do6JWnrQjJJSOkdUfqG5wsuhFoYa9DxjXTzXudP6G0pjFB/dcUgjcMp9rIfJY/qBb8u37f05oTS09puBgtJ+Fw==}
dependencies:
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@rollup/pluginutils': 4.2.1
'@vue/compiler-dom': 3.3.11
'@vue/compiler-sfc': 3.3.11
@@ -2901,22 +2901,22 @@ packages:
- vue
dev: false
/@dcloudio/uni-h5-vue@3.0.0-4000720240327001(vue@3.4.21):
resolution: {integrity: sha512-i5VjGhcaM28mb78pedambeYxlHb3dBEFOfJMMPtdrnFHtVRFm1BIenocZy6o0HsgsJb85hlQenMYxt4o2W85Cg==}
/@dcloudio/uni-h5-vue@3.0.0-4000820240401001(vue@3.4.21):
resolution: {integrity: sha512-17+dd8FewneBJwmYbY8wzL9SUpXiZldlOxe0CjYYaczrzYyTThcO/kdh9df5lY22QEhncz2ozU65vd4xwptyXA==}
dependencies:
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@vue/server-renderer': 3.3.11(vue@3.4.21)
transitivePeerDependencies:
- vue
dev: false
/@dcloudio/uni-h5@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-qWx1szp1eJGxsjMh5O+phUnBjxm5Eb49ueTbO1rvQqnoqw02PMpNItW2qz0JfULi3Szsva18lmxV2H2j7q9vyw==}
/@dcloudio/uni-h5@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-hIY/d0HmktLNgUohvEA2Z5rBZxZTmWtY/6uLaqdwPyfIQpAg2GYjURc1RkGlZfnUpGH9RE3Emqr4PWqqcKmRNQ==}
dependencies:
'@dcloudio/uni-h5-vite': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-h5-vue': 3.0.0-4000720240327001(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000720240327001
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-h5-vite': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-h5-vue': 3.0.0-4000820240401001(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000820240401001
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@vue/server-renderer': 3.3.11(vue@3.4.21)
'@vue/shared': 3.3.11
debug: 4.3.4
@@ -2935,17 +2935,17 @@ packages:
- vue
dev: false
/@dcloudio/uni-i18n@3.0.0-4000720240327001:
resolution: {integrity: sha512-Mh7p+abklK3q4+IZ3M+O/XUy4tJrim+WMpsPnbKC7fuPl2uWb41eOOvyYam1gsqNOyiOpI9X7hJp8h/PQop68g==}
/@dcloudio/uni-i18n@3.0.0-4000820240401001:
resolution: {integrity: sha512-j1foVaqH/aHbxTHL08uh/OXe7E0yd2XgnPcwfjlsU4iwqJT6tzya1SSmWHfsZe3AnNiZmG49hmTTCP406uufvQ==}
/@dcloudio/uni-mp-compiler@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-OsNyanrrW8+NdWKyWBE/xK5kBuCgowedXOwlBjjF762+fpozh5V65b8KPSuZKWI00wyfl7BdIF0kadFOc50TgA==}
/@dcloudio/uni-mp-compiler@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-UIHd5cWlb1KdAORJnSjtnb9rjC3NRDrEbPC/35I0GtnMl4nAex5BLZZfTPXGaJ5Rai7mqe/pyBWHHrvQpaf5IA==}
dependencies:
'@babel/generator': 7.23.5
'@babel/parser': 7.23.5
'@babel/parser': 7.24.1
'@babel/types': 7.23.5
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@vue/compiler-core': 3.3.11
'@vue/compiler-dom': 3.3.11
'@vue/shared': 3.3.11
@@ -2960,14 +2960,14 @@ packages:
- vue
dev: false
/@dcloudio/uni-mp-vite@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-ZYkL6ewz06JmkS+wRSQTUAXulwl2VV85j3sOl52+a2QusmSjkWqO70UdDMPtH36K+lTncB5l8DRxyt8BOd81fw==}
/@dcloudio/uni-mp-vite@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-/5BBf3e5iAahG05Pk9dJY1/JxbMeQZJqPKSi+BBkmDOB643Jy8aau+IfStGurHYrv9Y0ipW3LSJKnYzoy2STJQ==}
dependencies:
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000720240327001
'@dcloudio/uni-mp-compiler': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-mp-vue': 3.0.0-4000720240327001
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-i18n': 3.0.0-4000820240401001
'@dcloudio/uni-mp-compiler': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-mp-vue': 3.0.0-4000820240401001
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@vue/compiler-sfc': 3.3.11
'@vue/shared': 3.3.11
debug: 4.3.4
@@ -2981,20 +2981,20 @@ packages:
- vue
dev: false
/@dcloudio/uni-mp-vue@3.0.0-4000720240327001:
resolution: {integrity: sha512-Y0ZM4zu9hh+Z9r5+tn1RCFgGKAYRy0xkqfPRogWr2st9axerO8VO49aB8etnMhiKexfCEfoqmzY4t2XPtricnA==}
/@dcloudio/uni-mp-vue@3.0.0-4000820240401001:
resolution: {integrity: sha512-DyabCrEt4BzUaJrMefYeHPo19aCxrtF3lst1dbsGqvxJJFuuq0bDy/dtEp7JF2tXKE6BomZrjdJ0s5ClDSUijA==}
dependencies:
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@vue/shared': 3.3.11
dev: false
/@dcloudio/uni-mp-weixin@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-EJgJALb5KSJwidGvsoBMtEojMCvgsQSsKYTTYVWSNDFMEjZl39vI8RZptIFqdb+1S7chRGkVrUin4E/YT5uw7g==}
/@dcloudio/uni-mp-weixin@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-Hao7pbTgm4/YfwfdnyWuEGtKx8eOXGQZmQ9QJs7VVhDvWkEiNSOQRGr5LByCWUM/7Xg9bHrHoAR7Zvw3SdAFfg==}
dependencies:
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-mp-vite': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-mp-vue': 3.0.0-4000720240327001
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-mp-vite': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-mp-vue': 3.0.0-4000820240401001
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@vue/shared': 3.3.11
jimp: 0.10.3
licia: 1.39.1
@@ -3013,17 +3013,17 @@ packages:
- vue
dev: false
/@dcloudio/uni-nvue-styler@3.0.0-4000720240327001:
resolution: {integrity: sha512-WflANzPpf+pUs4cldH3+SM6Wf3CVJtpdCo9gwz5H5ATnXhwDhVVDUtpXY+46NAxS77nOiL+ek6MDnK+FJXE3Ww==}
/@dcloudio/uni-nvue-styler@3.0.0-4000820240401001:
resolution: {integrity: sha512-oCDSNuZL/gddmJr8fTD7Ajw5AIaPPufI3OaLPhVmbOBc0HxgevahvTTb0tA17HyNpXojGa1Id9QPEK6kntdglw==}
dependencies:
parse-css-font: 4.0.0
postcss: 8.4.32
postcss: 8.4.38
dev: false
/@dcloudio/uni-push@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-5041im7OTq9JeKTdXgjsIWZKnbCYX5PfWxz4StyPnXJWw1mBm4Wvcr/HdvMXoNCjfQeFP93yR3KLkQSzhWH66Q==}
/@dcloudio/uni-push@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-BaZBB9lJmysP6ex9h/nviYGIykeqGYDdle8+0Adiop5zpAYp+lI60IYCvObzEy7XeGNhrS2GzQvimr4CXTzcnQ==}
dependencies:
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
transitivePeerDependencies:
- '@nuxt/kit'
- '@vueuse/core'
@@ -3034,20 +3034,20 @@ packages:
- vue
dev: false
/@dcloudio/uni-shared@3.0.0-4000720240327001:
resolution: {integrity: sha512-Pku+eZtTR8qCa1p+qkBTGwgsbl9ZwWM7iru2AaRDavjb0r9NX4nePVSxv5cLUD8o+O4aRNzFX1DFWY+zgjvttQ==}
/@dcloudio/uni-shared@3.0.0-4000820240401001:
resolution: {integrity: sha512-rjMU8zuiqDrw0OjHvfPjIEKrU+tw3h1d3AGLs2fvHu813i9onzjs39UOF48rDld9gAS1n841htfrlmqqmAJ5OA==}
dependencies:
'@vue/shared': 3.3.11
/@dcloudio/uni-stacktracey@3.0.0-4000720240327001:
resolution: {integrity: sha512-dpcyf6w2GsVMsj6VhIZp/9y08iYRdztJGBpDtBIXpe307e1XLux372ok4X/w8n23DLw3wo34SRJTqiWIMDDpfg==}
/@dcloudio/uni-stacktracey@3.0.0-4000820240401001:
resolution: {integrity: sha512-07rLpzyz1Mm3o/2SJCmTZH+78jzrYA3Iy0Z1b0szn1NE0BCwMBSpvTmVf7UHWqvLDbVsCb7zI8pqnaWXIwaJsw==}
dev: true
/@dcloudio/uni-stat@3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-gtIolvo/VP1Kt9BI2/T4xhkSXTdOROuxr1v6Sj1cqHF65MoHMaLemab1PSTPU53o0hIdWepya2/TOv8IMWN8+w==}
/@dcloudio/uni-stat@3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21):
resolution: {integrity: sha512-A1EvLjZUgHkWT88CPfBj7PZont7Gv+naw4hA/TB3EbEu77rKpMTMdtTMgnTOV5rS3HQ/lvKr0ETCNRCsLKdNnQ==}
dependencies:
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000820240401001
debug: 4.3.4
transitivePeerDependencies:
- '@nuxt/kit'
@@ -3059,8 +3059,8 @@ packages:
- vue
dev: false
/@dcloudio/vite-plugin-uni@3.0.0-4000720240327001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21):
resolution: {integrity: sha512-lqgVa6H85AP0Beg9QNp8TwCNiVjRXpBhFiBDgQP7p8QN6UQZ37+K7liZgeL8sfHebqwZ4azRgb74LXAZoVlglw==}
/@dcloudio/vite-plugin-uni@3.0.0-4000820240401001(postcss@8.4.38)(vite@4.5.3)(vue@3.4.21):
resolution: {integrity: sha512-EHL2FHU5VtFEYwLVroRMthQEEd/s6mLQ4Zd4EOKQYPtCU8rE3RXtYpL1va/U+rT6bE0UttaW6UiqY4kYaA0ZlQ==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
@@ -3069,8 +3069,8 @@ packages:
'@babel/core': 7.23.5
'@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.5)
'@babel/plugin-transform-typescript': 7.23.5(@babel/core@7.23.5)
'@dcloudio/uni-cli-shared': 3.0.0-4000720240327001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000720240327001
'@dcloudio/uni-cli-shared': 3.0.0-4000820240401001(postcss@8.4.38)(vue@3.4.21)
'@dcloudio/uni-shared': 3.0.0-4000820240401001
'@rollup/pluginutils': 4.2.1
'@vitejs/plugin-legacy': 4.1.1(terser@5.24.0)(vite@4.5.3)
'@vitejs/plugin-vue': 4.5.1(vite@4.5.3)(vue@3.4.21)
@@ -3584,7 +3584,7 @@ packages:
engines: {node: '>= 16'}
dependencies:
'@intlify/shared': 9.9.0
source-map-js: 1.0.2
source-map-js: 1.2.0
dev: false
/@intlify/message-resolver@9.1.9:
@@ -5351,7 +5351,7 @@ packages:
engines: {node: '>=14'}
dependencies:
'@unocss/core': 0.57.7
magic-string: 0.30.5
magic-string: 0.30.8
dev: true
/@unocss/scope@0.57.7:
@@ -5506,18 +5506,18 @@ packages:
/@vue/compiler-core@3.3.11:
resolution: {integrity: sha512-h97/TGWBilnLuRaj58sxNrsUU66fwdRKLOLQ9N/5iNDfp+DZhYH9Obhe0bXxhedl8fjAgpRANpiZfbgWyruQ0w==}
dependencies:
'@babel/parser': 7.23.5
'@babel/parser': 7.24.1
'@vue/shared': 3.3.11
estree-walker: 2.0.2
source-map-js: 1.0.2
source-map-js: 1.2.0
/@vue/compiler-core@3.3.9:
resolution: {integrity: sha512-+/Lf68Vr/nFBA6ol4xOtJrW+BQWv3QWKfRwGSm70jtXwfhZNF4R/eRgyVJYoxFRhdCTk/F6g99BP0ffPgZihfQ==}
dependencies:
'@babel/parser': 7.23.5
'@babel/parser': 7.24.1
'@vue/shared': 3.3.9
estree-walker: 2.0.2
source-map-js: 1.0.2
source-map-js: 1.2.0
dev: true
/@vue/compiler-core@3.4.21:
@@ -5527,7 +5527,7 @@ packages:
'@vue/shared': 3.4.21
entities: 4.5.0
estree-walker: 2.0.2
source-map-js: 1.0.2
source-map-js: 1.2.0
/@vue/compiler-dom@3.3.11:
resolution: {integrity: sha512-zoAiUIqSKqAJ81WhfPXYmFGwDRuO+loqLxvXmfUdR5fOitPoUiIeFI9cTTyv9MU5O1+ZZglJVTusWzy+wfk5hw==}
@@ -5559,8 +5559,8 @@ packages:
'@vue/shared': 3.3.11
estree-walker: 2.0.2
magic-string: 0.30.8
postcss: 8.4.32
source-map-js: 1.0.2
postcss: 8.4.38
source-map-js: 1.2.0
/@vue/compiler-sfc@3.4.21:
resolution: {integrity: sha512-me7epoTxYlY+2CUM7hy9PCDdpMPfIwrOvAXud2Upk10g4YLv9UBW7kL798TvMeDhPthkZ0CONNrK2GoeI1ODiQ==}
@@ -12702,6 +12702,7 @@ packages:
nanoid: 3.3.7
picocolors: 1.0.0
source-map-js: 1.0.2
dev: true
/postcss@8.4.38:
resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==}

View File

@@ -65,3 +65,76 @@ export interface StockBean {
stockId: string;
count: number;
}
export interface OrderBean {
allowIntegral: boolean;
bizId: string;
classify: number;
companyId: string;
consignTime: string;
consumerId: string;
consumerName: string;
coupon: string;
couponIds: string;
couponsStatus: number;
createTime: string;
creatorId: number;
creatorName: string;
device: string;
discount: number;
discountPrice: number;
finishTime: string;
freePrice: number;
goodsNum: number;
id: string;
integral: number;
itemNum: number;
marketingPrice: number;
marketingText: string;
modifierIds: string;
needPaid: number;
ogList: any[];
orderGoods: GoodsBean[];
changeStockNum: number;
consumePrice: number;
discountOriginPrice: number;
goodsCode: string;
goodsId: string;
goodsName: string;
goodsPriceModify: string;
goodsTypeName: string;
images: string;
offset: string;
orderId: string;
orderNo: string;
originPrice: number;
originStockNum: number;
priceModify: [];
produceIntegral: number;
salePrice: number;
stockId: string;
stockStock: StockBean[];
payStatus: number;
payTypeIds: string;
printed: string;
produceIntegralNumber: number;
profit: string;
reducePrice: number;
relatedId: string;
remark: string;
replacementOrder: string;
saleNum: number;
salers: [];
status: number;
storeId: string;
storeName: string;
storeOrder: string;
totalPrice: number;
transactionPrice: number;
type: number;
typeName: string;
updateTime: string;
updated: boolean;
useGold: number;
wholePrice: number;
}

View File

@@ -1,4 +1,4 @@
import { GoodsBean, StockBean } from '@/api/goods/types';
import { GoodsBean } from '@/api/goods/types';
import { CouponBean } from '@/api/user/types';
export interface GroupBuyBean {
@@ -35,76 +35,3 @@ export interface RecordBean {
groupId: string;
memberImage: string;
}
export interface OrderBean {
allowIntegral: boolean;
bizId: string;
classify: number;
companyId: string;
consignTime: string;
consumerId: string;
consumerName: string;
coupon: string;
couponIds: string;
couponsStatus: number;
createTime: string;
creatorId: number;
creatorName: string;
device: string;
discount: number;
discountPrice: number;
finishTime: string;
freePrice: number;
goodsNum: number;
id: string;
integral: number;
itemNum: number;
marketingPrice: number;
marketingText: string;
modifierIds: string;
needPaid: number;
ogList: any[];
orderGoods: GoodsBean[];
changeStockNum: number;
consumePrice: number;
discountOriginPrice: number;
goodsCode: string;
goodsId: string;
goodsName: string;
goodsPriceModify: string;
goodsTypeName: string;
images: string;
offset: string;
orderId: string;
orderNo: string;
originPrice: number;
originStockNum: number;
priceModify: [];
produceIntegral: number;
salePrice: number;
stockId: string;
stockStock: StockBean[];
payStatus: number;
payTypeIds: string;
printed: string;
produceIntegralNumber: number;
profit: string;
reducePrice: number;
relatedId: string;
remark: string;
replacementOrder: string;
saleNum: number;
salers: [];
status: number;
storeId: string;
storeName: string;
storeOrder: string;
totalPrice: number;
transactionPrice: number;
type: number;
typeName: string;
updateTime: string;
updated: boolean;
useGold: number;
wholePrice: number;
}

View File

@@ -14,7 +14,7 @@
<view class='divider' style='margin: 40rpx 0' />
<view class='c-flex-row' @click.stop='doPayment(PAYMENT_TYPE_BALANCE)'>
<image :src='assetsUrl("ic_balance.png")' />
<text>余额剩余100</text>
<text>余额剩余{{ userInfo.balance }}</text>
<image :src='assetsUrl(currentType===PAYMENT_TYPE_BALANCE?"ic_checkbox_active.png":"ic_checkbox_normal.png")' />
</view>
</view>
@@ -23,11 +23,16 @@
<script lang='ts' setup>
import { assetsUrl } from '@/utils/assets';
import { useUserStore } from '@/store';
const popupRef = ref();
const PAYMENT_TYPE_WECHAT = 0;
const PAYMENT_TYPE_BALANCE = 1;
const currentType = ref(PAYMENT_TYPE_WECHAT);
const PAYMENT_TYPE_WECHAT = ref(0);
const PAYMENT_TYPE_BALANCE = ref(1);
const currentType = ref(PAYMENT_TYPE_WECHAT.value);
const userStore = useUserStore();
const { userInfo } = storeToRefs(userStore);
const emits = defineEmits(['change']);
const show = () => {
@@ -42,10 +47,10 @@ const doPayment = (paymentType: number) => {
emits('change', paymentType);
currentType.value = paymentType;
switch (paymentType) {
case PAYMENT_TYPE_WECHAT:
case PAYMENT_TYPE_WECHAT.value:
console.log('PAYMENT_TYPE_WECHAT');
break;
case PAYMENT_TYPE_BALANCE:
case PAYMENT_TYPE_BALANCE.value:
console.log('PAYMENT_TYPE_BALANCE');
break;
}

View File

@@ -5,13 +5,11 @@
"versionName": "1.0.0",
"versionCode": "100",
"transformPx": false,
"app-plus":
{
"app-plus": {
"usingComponents": true,
"nvueStyleCompiler": "uni-app",
"compilerVersion": 3,
"splashscreen":
{
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
@@ -19,25 +17,27 @@
},
"modules": {}
},
"mp-weixin":
{
"mp-weixin": {
"appid": "wx92e663dc11d0c0a8",
// "appid": "wx67a750d0ceed4d88",
"setting":
{
"setting": {
"urlCheck": false
},
"usingComponents": true
"usingComponents": true,
"plugins": {
"sqb-pay": {
"version": "1.3.0",
"provider": "wx55540b288c5ce319"
}
}
},
"uniStatistics":
{
"uniStatistics": {
"enable": false
},
"vueVersion": "3",
"h5":
{
"router":
{
"h5": {
"router": {
"mode": "hash",
"base": "/uniapp-vue3-template/"
}

View File

@@ -65,9 +65,12 @@
}
},
{
"path": "groupbuy/order",
"path": "groupbuy/order-confirm",
"style": {
"navigationBarTitleText": "确认订单"
"navigationBarTitleText": "确认订单",
"usingComponents": {
"sqb-pay": "plugin://sqb-pay/sqb-pay"
}
}
},
{
@@ -99,7 +102,10 @@
{
"path": "order/order-confirm",
"style": {
"navigationBarTitleText": "确认订单"
"navigationBarTitleText": "确认订单",
"usingComponents": {
"sqb-pay": "plugin://sqb-pay/sqb-pay"
}
}
},
{

View File

@@ -125,7 +125,7 @@
<view class='place-order-button' @click.stop='placeOrder'>跟团购买</view>
</view>
</view>
<sku-dialog ref='skuDialogRef' :flash-price='groupBuyBean?.payPrice || 0' />
<sku-dialog ref='skuDialogRef' :flash-price='Number(groupBuyBean?.payPrice) || 0' />
</template>
<script lang='ts' setup>
@@ -252,7 +252,7 @@ const placeOrder = async () => {
};
const result = await preOrder(params);
goPath(`/pages/common/groupbuy/order?orderBean=${encodeURIComponent(JSON.stringify(result))}`);
goPath(`/pages/common/groupbuy/order-confirm?orderBean=${encodeURIComponent(JSON.stringify(result))}`);
}
showSkuDialog((e: GoodsBean) => {

View File

@@ -2,7 +2,7 @@
<view class='content'>
<view class='card-view'>
<template v-for='(item,index) in orderBean?.orderGoods' :key='index'>
<template class='c-flex-row' v-for='item in orderBean?.orderGoods' :key='item.id'>
<image class='goods-image' :src='item?.images' />
<view class='c-flex-column' style='flex: 1'>
<text class='goods-name'>{{ item?.goodsName }}</text>
@@ -26,7 +26,18 @@
</view>
<view class='bottom-view c-flex-row'>
<view class='confirm-button' @click.stop='payment'>支付</view>
<sqb-pay @bindnavigateTo='navigateTo'
:return_url='payParams.return_url'
:total_amount='payParams.total_amount'
:terminal_sn='payParams.terminal_sn'
:client_sn='payParams.client_sn'
:subject='payParams.subject'
:subject_img='payParams.subject_img '
:merchant_name='payParams.merchant_name'
:notify_url='payParams.notify_url'
:sign='payParams.sign'>
<button class='confirm-button' @click='payment'>支付</button>
</sqb-pay>
</view>
</view>
@@ -34,7 +45,7 @@
<script lang='ts' setup>
import { pay, progress } from '@/api/groupbuy';
import { OrderBean } from '@/api/groupbuy/types';
import { OrderBean } from '@/api/goods/types';
import { parseParameter, sortASCII } from '@/utils';
import { hexMD5 } from '@/utils/common/md5';
import { useUserStore } from '@/store';
@@ -43,36 +54,59 @@ const userState = useUserStore();
const { terminalInfo } = storeToRefs(userState);
const orderBean = ref<OrderBean>();
const payParams = ref({
return_url: '',
total_amount: '',
client_sn: '',
terminal_sn: '',
subject: '',
subject_img: '',
merchant_name: '',
notify_url: '',
sign: ''
});
onLoad((e: any) => {
orderBean.value = JSON.parse(decodeURIComponent(e?.orderBean));
let signParams = buildSignParams.value;
const signStr = parseParameter(signParams) + '&key=' + terminalInfo.value.terminalKey;
const sign = hexMD5(signStr).toUpperCase();
payParams.value = {
...signParams,
sign: sign
};
});
const payment = () => {
let signParams = {
return_url: 'return_url',
total_amount: orderBean.value?.totalPrice,
client_sn: orderBean.value?.id,
const buildSignParams = computed(() => {
return sortASCII({
client_sn: orderBean.value?.id || '',
return_url: '/pages/payResult/index',
total_amount: ((orderBean.value?.totalPrice || 0) * 100).toString(),
terminal_sn: terminalInfo.value.terminalSn,
subject: 'subject',
subject_img: 'subject_img',
merchant_name: 'merchant_name',
subject: '商品团购券',
subject_img: orderBean?.value?.orderGoods[0].images || '',
merchant_name: terminalInfo.value.companyName,
notify_url: 'https://www.baidu.com'
}, true);
});
const navigateTo = (e: any) => {
console.log('----------->>>>>navigateTo ', e);
uni.redirectTo({
url: e.detail.url,
fail(e) {
uni.showToast({
title: '支付失败'
});
}
});
};
// signParams = util.sortASCII(signParams, true);
sortASCII(signParams, true);
//
// const signStr = util.pars(signParams) + '&key=' + terminalInfo.value.terminalKey;
const signStr = parseParameter(signParams) + '&key=' + terminalInfo.value.terminalKey;
console.log('签名字符串', signStr);
// const sign = utilMd5.hexMD5(signStr).toUpperCase();
const sign = hexMD5(signStr);
console.log('签名结果', sign);
const payment = () => {
const params = {
'id': orderBean.value?.id,
'orderSn': signParams.client_sn,
'orderSn': buildSignParams.value.client_sn,
'terminal_key': terminalInfo.value.terminalKey,
'terminal_sn': terminalInfo.value.terminalSn
};
@@ -80,14 +114,13 @@ const payment = () => {
progress(params);
pay({
'orderId': orderBean.value?.id,
'result': JSON.stringify('{payResult:xxx}')
'result': '{payResult:xxx}'
});
};
</script>
<style lang='scss' scoped>
.content {
.card-view:nth-of-type(1) {
margin-top: 30rpx;
@@ -142,6 +175,9 @@ const payment = () => {
right: 0;
bottom: 0;
sqb-pay {
flex: 1;
.confirm-button {
display: flex;
flex: 1;
@@ -156,4 +192,5 @@ const payment = () => {
border-radius: 40rpx;
}
}
}
</style>

View File

@@ -107,7 +107,7 @@ onShow(async () => {
getCompanyList(userInfo.value.maOpenId).then(res => {
const companyList = res.map((res: { company: any }) => res.company);
const userList = res.map((res: { user: any }) => res.user);
if(!getCompanyId()) {
// if(!getCompanyId()) {
uni.showActionSheet({
itemList: companyList.map((res: { companyName: string }) => res.companyName),
success: (res) => {
@@ -116,7 +116,7 @@ onShow(async () => {
userStore.fetchTerminal();
}
});
}
// }
});
} else {
await userStore.getProfile();

View File

@@ -98,7 +98,7 @@ import { assetsUrl } from '@/utils/assets';
import SkuDialog from '@/components/sku-dialog.vue';
import { goPath, showToast } from '@/utils';
import { getGoodsDetail, getGoodsList } from '@/api/goods';
import { GoodsBean, StockBean } from '@/api/goods/types';
import { GoodsBean } from '@/api/goods/types';
import useShoppingCartStore from '@/store/modules/shoppingcart';
const shoppingCartStore = useShoppingCartStore();
@@ -158,8 +158,12 @@ const addShoppingCart = () => {
};
const placeOrder = () => {
showSkuDialog((e: StockBean) => {
goPath('/pages/mall/subs/order/order-confirm');
showSkuDialog((e: GoodsBean) => {
const orderBean = {
totalPrice: e.price * e.checkedStock.count,
orderGoods: [e]
};
goPath(`/pages/mall/subs/order/order-confirm?orderBean=${encodeURIComponent(JSON.stringify(orderBean))}`);
});
};
</script>

View File

@@ -1,4 +1,5 @@
<template>
<scroll-view scroll-y>
<view class='content'>
<view class='c-flex-row'>
<view class='tab c-flex-row' :class='{"tab-active": tabIndex === 0}' @click.stop='tabIndex=0'>
@@ -29,20 +30,21 @@
</view>
<view class='goods-info-view c-flex-column'>
<view class='c-flex-row'>
<image class='goods-image' :src='assetsUrl("test_bg.png")' />
<view class='c-flex-row' style='margin-bottom: 20rpx' v-for='(item,index) in orderBean?.orderGoods'
:key='index'>
<image class='goods-image' :src='item.images' />
<view class='c-flex-column' style='flex: 1;'>
<view class='c-flex-row'>
<text class='goods-name'>女童夏装套装洋气装短袖阔腿裤子夏装套装</text>
<text class='goods-name'>{{ item.name }}</text>
</view>
<text style='color: #999999;margin-top: 30rpx'>
2356235654
{{ item.code }}
</text>
<view class='bottom-view c-flex-row'>
<view class='bottom-sku-view c-flex-row'>
<text>
紫色120cm x1
{{ item.checkedStock.colorName }}{{ item.checkedStock.sizeName }} x{{ item.checkedStock.count }}
</text>
<text>23.20</text>
<text>¥{{ item.price }}</text>
</view>
</view>
</view>
@@ -50,14 +52,14 @@
<view class='remark-view c-flex-row'>
<text>备注</text>
<input placeholder='请填写订单备注' />
<input placeholder='请填写订单备注' @input='orderBean!.remark = $event.detail.value' />
</view>
</view>
<view class='card-view'>
<view class='c-flex-row'>
<text class='card-view-title'>商品总价</text>
<text class='card-view-value'>29.90</text>
<text class='card-view-value'>{{ orderBean?.totalPrice || 0 }}</text>
</view>
<view class='c-flex-row'>
<text class='card-view-title'>运费</text>
@@ -76,7 +78,7 @@
<view style='flex: 1' />
<view class='c-flex-row'>
<text class='card-view-value'>共1件商品 合计
<text style='font-size: 34rpx;color:#F32B2B'>¥29.90</text>
<text style='font-size: 34rpx;color:#F32B2B'>¥{{ orderBean?.totalPrice || 0 }}</text>
</text>
</view>
</view>
@@ -91,12 +93,24 @@
<view class='bottom-view c-flex-row'>
<text>合计</text>
<text>29.90</text>
<text @click.stop='payment'>确认订单</text>
<text>{{ orderBean?.totalPrice || 0 }}</text>
<sqb-pay @bindnavigateTo='navigateTo'
:return_url='payParams.return_url'
:total_amount='payParams.total_amount'
:terminal_sn='payParams.terminal_sn'
:client_sn='payParams.client_sn'
:subject='payParams.subject'
:subject_img='payParams.subject_img '
:merchant_name='payParams.merchant_name'
:notify_url='payParams.notify_url'
:sign='payParams.sign'>
<text class='confirm-order' @click.stop='payment'>确认订单</text>
</sqb-pay>
</view>
</view>
</scroll-view>
<payment-dialog ref='paymentDialogRef' @change='args => paymentType=args' />
<coupon-dialog ref='couponDialogRef' @confirm='confirmCoupon' :order-price='500' />
<coupon-dialog ref='couponDialogRef' @confirm='confirmCoupon' :order-price='orderBean?.totalPrice' />
</template>
<script lang='ts' setup>
@@ -106,6 +120,11 @@ import CouponDialog from '@/pages/mall/subs/components/coupon-dialog.vue';
import { goPath } from '@/utils';
import { orderCreate } from '@/api/goods';
import { CouponBean } from '@/api/user/types';
import { OrderBean } from '@/api/goods/types';
import { useUserStore } from '@/store';
const userStore = useUserStore();
const { terminalInfo } = storeToRefs(userStore);
const couponDialogRef = ref();
const paymentDialogRef = ref();
@@ -114,6 +133,24 @@ const tabIndex = ref(0);
const checkedCoupon = ref<CouponBean>();
const payParams = ref({
return_url: '',
total_amount: '',
client_sn: '',
terminal_sn: '',
subject: '',
subject_img: '',
merchant_name: '',
notify_url: '',
sign: ''
});
const orderBean = ref<OrderBean>();
onLoad((e) => {
orderBean.value = JSON.parse(decodeURIComponent(e?.orderBean));
console.log(orderBean.value);
});
const changePayment = () => {
paymentDialogRef.value.show();
};
@@ -126,42 +163,46 @@ const confirmCoupon = (item: CouponBean) => {
checkedCoupon.value = item;
};
const navigateTo = (e: any) => {
};
const payment = async () => {
await uni.showLoading();
const params = {
'discount': 0,
'freePrice': 0,
'reducePrice': 0,
'totalPrice': 0,
'totalPrice': orderBean?.value?.totalPrice,
'integral': 0,
'allowIntegral': 0,
'produceIntegralNumber': 0,
'remark': 'string',
'orderGoods': [
'remark': orderBean.value?.remark,
'orderGoods': orderBean?.value?.orderGoods?.map(item => (
{
'goodsId': 'string',
'goodsCode': 'string',
'goodsNum': 0,
'stockId': 'string',
'originPrice': 0,
'consumePrice': 0,
'goodsId': item.goodsId,
'goodsCode': item.code,
'goodsNum': item.checkedStock.count,
'stockId': item.checkedStock.stockId,
'originPrice': item.price,
'consumePrice': item.price,
'discount': 0,
'discountOriginPrice': 0,
'produceIntegral': 0,
'priceModify': [
0
],
'priceModify': [0],
'offset': 0
}
]
))
};
const result = await orderCreate(params);
uni.hideLoading();
};
</script>
<style lang='scss' scoped>
.content {
padding: 20rpx 30rpx;
padding: 20rpx 30rpx 200rpx 30rpx;
}
.tab {
@@ -283,7 +324,7 @@ const payment = async () => {
flex: 1;
}
.bottom-view {
.bottom-sku-view {
display: flex;
justify-content: space-between;
margin-top: 10rpx;
@@ -296,8 +337,9 @@ const payment = async () => {
}
text:nth-of-type(2) {
font-size: 24rpx;
font-size: 30rpx;
color: #333333;
font-weight: bold;
margin-right: 5rpx;
}
@@ -326,6 +368,7 @@ const payment = async () => {
text-align: right;
font-size: 28rpx;
color: #333333;
z-index: 0;
}
}
}
@@ -390,8 +433,7 @@ const payment = async () => {
bottom: 0;
left: 0;
right: 0;
padding: 12rpx 30rpx 78rpx 30rpx;
padding: 30rpx 30rpx 78rpx 30rpx;
text:nth-of-type(1) {
font-weight: 400;
@@ -407,7 +449,7 @@ const payment = async () => {
flex: 1;
}
text:nth-of-type(3) {
sqb-pay .confirm-order {
padding: 17rpx 45rpx;
border-radius: 43rpx;
border: 1rpx solid #F32B2B;

View File

@@ -131,7 +131,11 @@ const settlement = () => {
showToast('请选择商品');
return;
}
goPath('/pages/mall/subs/order/order-confirm');
const orderBean = {
totalPrice: totalPayPrice.value,
orderGoods: shoppingCartList.value.filter(res => res.checked)
};
goPath(`/pages/mall/subs/order/order-confirm?orderBean=${encodeURIComponent(JSON.stringify(orderBean))}`);
};
</script>

View File

@@ -77,10 +77,10 @@ export function sortASCII(obj: any, isSort = true) {
export function parseParameter(obj: any) {
if(obj === null || obj === undefined) return '';
const arr = [];
const keys: any = Object.keys(obj);
const keys: string[] = Object.keys(obj);
const entries: any[] = Object.entries(obj);
for (const [key, value] of entries) {
if(keys.contains(key) && !key.startsWith('function')) {
if(keys.includes(key) && !key.startsWith('function')) {
arr.push(key + '=' + value);
}
}