From 298cd4775b7ec53ddf2fe055b5d987bb4a0f45b6 Mon Sep 17 00:00:00 2001 From: gyq <875626088@qq.com> Date: Mon, 15 Dec 2025 16:56:37 +0800 Subject: [PATCH 01/20] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=96=B0=E7=89=88?= =?UTF-8?q?=E7=A7=81=E5=9F=9F=E5=BC=95=E6=B5=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/config.js | 60 +-- components/attract-popup.vue | 230 ++++++++ components/drainage.vue | 145 +++--- components/order-finish-modal.vue | 64 +-- pages/index/indexs.vue | 840 +++++++++++++++--------------- utils/util.js | 20 + 6 files changed, 787 insertions(+), 572 deletions(-) create mode 100644 components/attract-popup.vue diff --git a/common/config.js b/common/config.js index f070d96..3992b85 100644 --- a/common/config.js +++ b/common/config.js @@ -1,5 +1,5 @@ // const debug = process.env.NODE_ENV == 'development' ? true : false; -const debug = false; +const debug = true; // false线上 true本地 // #ifdef H5 const proxyApi = "/api"; // #endif @@ -21,36 +21,36 @@ const baseUrlwws = debug ? proxyApiwws : "wss://czgeatws.sxczgkj.com/wss"; // const version = "100"; const autoRemoveCache = { - count: 100000, - size: 100000, + count: 100000, + size: 100000, }; - uni.conf = { - debug, - baseUrl, - version, - autoRemoveCache, - baseUrlwws, +uni.conf = { + debug, + baseUrl, + version, + autoRemoveCache, + baseUrlwws, }; export const changeEnv = (env) => { - if (env === "test") { - uni.conf = { - debug: true, - baseUrl: "http://192.168.1.42", - phpUrl:'http://192.168.1.42:8787/api/', - phpChatWx:'ws://192.168.1.42:2348', - version: 100, - autoRemoveCache, - baseUrlwws: "ws://192.168.1.42:2348", - }; - } - if (env === "prod") { - uni.conf = { - debug: false, - baseUrl: "https://cashier.sxczgkj.com", - version: 100, - autoRemoveCache, - baseUrlwws: "wss://czgeatws.sxczgkj.com/wss", - }; - } -}; + if (env === "test") { + uni.conf = { + debug: true, + baseUrl: "http://192.168.1.42", + phpUrl: 'http://192.168.1.42:8787/api/', + phpChatWx: 'ws://192.168.1.42:2348', + version: 100, + autoRemoveCache, + baseUrlwws: "ws://192.168.1.42:2348", + }; + } + if (env === "prod") { + uni.conf = { + debug: false, + baseUrl: "https://cashier.sxczgkj.com", + version: 100, + autoRemoveCache, + baseUrlwws: "wss://czgeatws.sxczgkj.com/wss", + }; + } +}; \ No newline at end of file diff --git a/components/attract-popup.vue b/components/attract-popup.vue new file mode 100644 index 0000000..5fef6ec --- /dev/null +++ b/components/attract-popup.vue @@ -0,0 +1,230 @@ + + + + + + diff --git a/components/drainage.vue b/components/drainage.vue index e0d1ceb..473365b 100644 --- a/components/drainage.vue +++ b/components/drainage.vue @@ -1,114 +1,93 @@ \ No newline at end of file + diff --git a/components/order-finish-modal.vue b/components/order-finish-modal.vue index 8f6e73a..b2c6d25 100644 --- a/components/order-finish-modal.vue +++ b/components/order-finish-modal.vue @@ -1,43 +1,49 @@ - - diff --git a/pages/index/indexs.vue b/pages/index/indexs.vue index 6e790d1..131b7fb 100644 --- a/pages/index/indexs.vue +++ b/pages/index/indexs.vue @@ -2,31 +2,27 @@ - - - HI,欢迎回来 + HI,欢迎回来 会员身份 - 优惠券:{{allConfig.couponNum}} - 积分:{{allConfig.pointNum}} + 优惠券:{{ allConfig.couponNum }} + 积分:{{ allConfig.pointNum }} - @@ -52,8 +48,6 @@ -自助下单 快人一步- - - @@ -90,10 +84,9 @@ 股东共享 邀请好友,获得佣金 - - + @@ -112,512 +105,499 @@ + + \ No newline at end of file +} + +.groupBuying { + padding: 16rpx 38rpx; + border-top: 2rpx solid #ededed; + background-color: #fff; + display: flex; + justify-content: space-between; + align-items: center; + + .img { + width: 40px; + height: 40px; + } +} + +.title { + color: #333333; + font-size: 36rpx; + font-weight: 700; +} + +.desc { + margin-top: 16rpx; + font-size: 28rpx; + color: #999; +} + +.points { + margin-top: 34rpx; + background-color: #fff; + padding: 16rpx 68rpx; + border-radius: 16rpx; + display: flex; + align-items: center; + justify-content: space-between; + + .img { + width: 98px; + height: 98px; + } +} + +.bottom_menus { + display: flex; + gap: 14rpx; + margin-top: 34rpx; + + .item { + flex: 1; + display: flex; + padding: 20rpx; + flex-direction: column; + align-items: center; + border-radius: 18rpx; + background: #fff; + + .img { + width: 39px; + height: 39px; + } + + .title { + font-size: 32rpx; + } + + .desc { + margin-top: 8rpx; + color: #999; + font-size: 24rpx; + white-space: nowrap; + } + } +} + diff --git a/utils/util.js b/utils/util.js index ac85718..d85b319 100644 --- a/utils/util.js +++ b/utils/util.js @@ -475,4 +475,24 @@ export function includesString(target, searchStr, options = {}) { // 4. 执行包含判断 return processedTarget.includes(processedSearch); +} + +/** + * 校验一维基础类型数组A的元素是否存在于数组B(支持部分/全部存在,默认全部存在) + * @param {Array} arrA - 待校验的一维数组 + * @param {Array} arrB - 参考的一维数组 + * @param {boolean} [partial=false] - 是否校验「部分存在」(true=部分存在,false=全部存在,默认false) + * @returns {boolean} 校验结果 + */ +export function checkArrayElementsExist(arrA, arrB, partial = false) { + // 边界处理:空数组特殊逻辑 + if (arrA.length === 0) return !partial + + // 转Set优化查找性能(一维数组核心优化) + const bSet = new Set(arrB) + + // 核心逻辑:partial=true → some(部分存在),partial=false → every(全部存在) + return partial ? + arrA.some(item => bSet.has(item)) : + arrA.every(item => bSet.has(item)) } \ No newline at end of file From f01b5f3625d03cd2ca44fdebcb6e8c728f489d74 Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Mon, 15 Dec 2025 17:24:15 +0800 Subject: [PATCH 02/20] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=86=8D=E6=9D=A5?= =?UTF-8?q?=E4=B8=80=E5=8D=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupBuying/index/index.vue | 228 ++++++++++++++++++++++++++++++------ pages.json | 7 +- pages/product/index.vue | 4 +- 3 files changed, 201 insertions(+), 38 deletions(-) diff --git a/groupBuying/index/index.vue b/groupBuying/index/index.vue index 17fdc85..6c924f9 100644 --- a/groupBuying/index/index.vue +++ b/groupBuying/index/index.vue @@ -1,36 +1,52 @@ \ No newline at end of file diff --git a/pages.json b/pages.json index 6980d60..09976b4 100644 --- a/pages.json +++ b/pages.json @@ -354,10 +354,9 @@ // } // ] // } - ,{ + , { "root": "groupBuying", - "pages": [ - { + "pages": [{ "path": "index/index", "style": { "navigationBarTitleText": "拼团特惠", @@ -371,7 +370,7 @@ "navigationStyle": "custom" } } - + ] } ], diff --git a/pages/product/index.vue b/pages/product/index.vue index 1a71bae..7fb3568 100644 --- a/pages/product/index.vue +++ b/pages/product/index.vue @@ -2170,7 +2170,9 @@ ...options.initMessage, ...extraInitPar }, onMessage); - useSocket.chnageInitMessage(options.initMessage) + setTimeout(()=>{ + useSocket.chnageInitMessage(options.initMessage) + },500) console.log('onLoad:e', e); cartStore.setOldOrder({ From 2931e9a22c9b280ae4eb29a6c3e49d08f58e215f Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Mon, 15 Dec 2025 18:01:19 +0800 Subject: [PATCH 03/20] =?UTF-8?q?=E6=8B=BC=E5=9B=A2=E6=A0=B7=E5=BC=8F?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupBuying/index/index.vue | 59 +++++++++++++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 5 deletions(-) diff --git a/groupBuying/index/index.vue b/groupBuying/index/index.vue index 6c924f9..ecad082 100644 --- a/groupBuying/index/index.vue +++ b/groupBuying/index/index.vue @@ -91,11 +91,26 @@ x1 - - + + + + + 可核销门店: + 这里是店铺名称 + + + 门店地址: + 这里是店铺名称 + + + 剩余成团时间: + 00:39:15 - + + 申请退款 + 邀请好友 + @@ -337,6 +352,11 @@ color: rgba(123, 209, 54, 1); background: rgba(123, 209, 54, 0.12); } + &.error{ + border-color:#FF1C1C; + color: #FF1C1C; + background: rgba(255, 28, 28, 0.18); + } } .price{ color: #ED5A2E; @@ -345,13 +365,42 @@ font-size: 40rpx; } .info{ - display: flex; padding: 16rpx 34rpx; flex-direction: column; align-items: flex-start; - gap: 32rpx; border-radius: 8rpx; background: #F8F8F8; + .title{ + min-width: 208rpx; + padding-right: 8rpx; + box-sizing: border-box; + } + .stitle{ + color: #666; + &.price{ + font-size: 32rpx; + color: #ed5a2e; + font-weight: 700; + } + } + + } + .btns{ + margin-top: 28rpx; + display: flex; + justify-content: flex-end; + gap: 34rpx; + .btn{ + padding: 8rpx 14rpx; + border-radius: 10rpx; + border: 2rpx solid #D9D9D9; + background: #FFF; + &.black{ + border-color:#343030 ; + background-color: #343030; + color: #fff; + } + } } } } From d66156140384f7f2b036611144d20d022d3ac75f Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Tue, 16 Dec 2025 15:15:11 +0800 Subject: [PATCH 04/20] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupBuying/detail/index.vue | 311 +++++++++++++++++++++++++++++++++++ pages.json | 7 + scoreShop/detail/index.vue | 2 +- 3 files changed, 319 insertions(+), 1 deletion(-) create mode 100644 groupBuying/detail/index.vue diff --git a/groupBuying/detail/index.vue b/groupBuying/detail/index.vue new file mode 100644 index 0000000..a881b51 --- /dev/null +++ b/groupBuying/detail/index.vue @@ -0,0 +1,311 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index 09976b4..11aed7a 100644 --- a/pages.json +++ b/pages.json @@ -369,6 +369,13 @@ "navigationBarTitleText": "拼团特惠", "navigationStyle": "custom" } + }, + { + "path": "detail/index", + "style": { + "navigationBarTitleText": "订单详情", + "navigationStyle": "custom" + } } ] diff --git a/scoreShop/detail/index.vue b/scoreShop/detail/index.vue index 6915d5b..1a06c87 100644 --- a/scoreShop/detail/index.vue +++ b/scoreShop/detail/index.vue @@ -166,7 +166,7 @@ uni.hideLoading() if (openId) { pointGoodsApi.exchange({ - pointsGoodsId: item.id, + paramId: item.id, shopId: item.shopId, number: 1, price: item.extraPrice, From 9be7e49229e150f883ccae3759db64390a5e84c7 Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Tue, 16 Dec 2025 17:32:54 +0800 Subject: [PATCH 05/20] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=85=BC=E5=AE=B9h5?= =?UTF-8?q?=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/api/request.js | 2 +- common/config.js | 9 ++++++--- framework/0-conf.js | 34 ---------------------------------- framework/8-cache.js | 4 +++- framework/bootstrap.js | 1 - main.js | 2 ++ stores/carts-websocket.js | 4 ++++ stores/user.js | 16 ++++++++++++++-- 8 files changed, 30 insertions(+), 42 deletions(-) diff --git a/common/api/request.js b/common/api/request.js index adda8b2..861e80f 100644 --- a/common/api/request.js +++ b/common/api/request.js @@ -8,7 +8,7 @@ export default (params) => { const shopId = uni.cache.get("shopId") * 1; const userInfo = uni.cache.get("userInfo") || {}; // #ifdef H5 - token = "21f0a0b10e1d40ce9c6464037fedb792"; + token = "b61c8b0f1c9d47ad924e33c48b496ce6"; // #endif let header = { version: uni.conf.version, diff --git a/common/config.js b/common/config.js index 95703ed..049fa46 100644 --- a/common/config.js +++ b/common/config.js @@ -32,13 +32,14 @@ uni.conf = { baseUrlwws, }; -console.log('uni.conf',uni.conf) export const changeEnv = (env) => { if (env === "test") { let baseUrl = "http://192.168.1.42" + let baseUrlwws="ws://192.168.1.42:2348" // #ifdef H5 baseUrl = "/api" + baseUrlwws="http://192.168.1.42:2348" // #endif uni.conf = { debug: true, @@ -47,7 +48,7 @@ export const changeEnv = (env) => { phpChatWx: 'ws://192.168.1.42:2348', version: 100, autoRemoveCache, - baseUrlwws: "ws://192.168.1.42:2348", + baseUrlwws, }; } if (env === "prod") { @@ -59,4 +60,6 @@ export const changeEnv = (env) => { baseUrlwws: "wss://czgeatws.sxczgkj.com/wss", }; } -}; \ No newline at end of file +}; + +export default uni.conf \ No newline at end of file diff --git a/framework/0-conf.js b/framework/0-conf.js index cf0810e..e69de29 100644 --- a/framework/0-conf.js +++ b/framework/0-conf.js @@ -1,34 +0,0 @@ -// const debug = process.env.NODE_ENV == 'development' ? true : false; -const debug = false -// #ifdef H5 -const proxyApi = "/api" -// #endif - -// #ifdef MP-WEIXIN || APP || MP-ALIPAY -const proxyApi = 'http://192.168.1.42' // 调试地址 -const proxyApiwws = 'ws://192.168.1.42:2348' // 调试地址 -// #endif - -// #ifdef H5 -const baseUrl = debug ? proxyApi : "http://192.168.1.42" -const baseUrlwws = 'ws://192.168.1.42:2348' -// #endif - -// #ifdef APP || MP-WEIXIN || MP-ALIPAY -const baseUrl = debug ? proxyApi : 'https://cashier.sxczgkj.com' // 线上 -const baseUrlwws = debug ? proxyApiwws : 'wss://czgeatws.sxczgkj.com/wss' // 线上 -// #endif - - -const version = '100' -const autoRemoveCache = { - count: 100000, - size: 100000 -} -uni.conf = { - debug, - baseUrl, - version, - autoRemoveCache, - baseUrlwws -} \ No newline at end of file diff --git a/framework/8-cache.js b/framework/8-cache.js index b8b8f41..036e281 100644 --- a/framework/8-cache.js +++ b/framework/8-cache.js @@ -11,7 +11,9 @@ function get(key) { return '' } - + // #ifdef H5 + return res.value + // #endif if (res.expiretime && res.expiretime < Date.now()) { remove(key) diff --git a/framework/bootstrap.js b/framework/bootstrap.js index 81e3b14..235f167 100644 --- a/framework/bootstrap.js +++ b/framework/bootstrap.js @@ -1,4 +1,3 @@ -import './0-conf' import './1-utils' import './2-url' import './3-pro' diff --git a/main.js b/main.js index cd79518..b371822 100644 --- a/main.js +++ b/main.js @@ -1,6 +1,8 @@ import App from './App' import uviewPlus from '@/uni_modules/uview-plus' import './framework/bootstrap' +import config from '@/common/config.js' + // #ifndef VUE3 import Vue from 'vue' import './uni.promisify.adaptor' diff --git a/stores/carts-websocket.js b/stores/carts-websocket.js index 0d35364..facdd39 100644 --- a/stores/carts-websocket.js +++ b/stores/carts-websocket.js @@ -233,6 +233,10 @@ export const useWebSocket = defineStore('socketTask', () => { // 发送消息 const sendMessage = (data) => { + console.log('data',data) + if(!data){ + return + } if (isConnected.value && data) { // console.log('发送消息', data); socketTask.value.send({ diff --git a/stores/user.js b/stores/user.js index 19bb25c..3d9f50e 100644 --- a/stores/user.js +++ b/stores/user.js @@ -115,6 +115,18 @@ export const productStore = defineStore("product", { getLocation() { return new Promise((resolve, reject) => { console.log("获取经纬度"); + // #ifdef H5 + resolve({ + accuracy: 65, + altitude: 0, + errMsg: "getLocation:ok", + horizontalAccuracy: 65, + latitude: 23.129163, + longitude: 113.264435, + speed: -1, + verticalAccuracy: 65, + }); + // #endif uni.getLocation({ type: "wgs84", altitude: true, @@ -298,11 +310,11 @@ export const productStore = defineStore("product", { ]) { resolve( true - ); + ); } else { reject( false - ); + ); } }, }); From 14d7f701ad31b976371c62546619407c906c0c22 Mon Sep 17 00:00:00 2001 From: gyq <875626088@qq.com> Date: Wed, 17 Dec 2025 15:59:59 +0800 Subject: [PATCH 06/20] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=A7=81=E5=9F=9F?= =?UTF-8?q?=E5=BC=95=E6=B5=81=E8=AE=A2=E5=8D=95=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/attract-popup.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/attract-popup.vue b/components/attract-popup.vue index 5fef6ec..44791f3 100644 --- a/components/attract-popup.vue +++ b/components/attract-popup.vue @@ -6,7 +6,7 @@ {{ form.title }} - + {{ form.content }} @@ -114,7 +114,7 @@ function showHandle() { case 'order': // 订单 只要包含用餐类型就显示 let shopMode = shopInfo.value.eatModel.split(','); - if (checkArrayElementsExist(shopMode, form.value.orderType)) { + if (checkArrayElementsExist(shopMode, form.value.orderType, true) && form.value.orderEnable) { show.value = true; } break; From 744f56468fcc45e6394439367a91bf016a44e53e Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Wed, 17 Dec 2025 18:08:27 +0800 Subject: [PATCH 07/20] =?UTF-8?q?=E6=8B=BC=E5=9B=A2=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- common/api/order/gbOrder.js | 80 +++ groupBuying/components/modal.vue | 97 +++ groupBuying/components/status.vue | 61 ++ groupBuying/detail/index.vue | 670 +++++++++++------- groupBuying/goodsDetail/goodsDetail.vue | 646 +++++++++++++++++ .../index/components/perpole-number.vue | 25 + groupBuying/index/index.vue | 338 +++++++-- groupBuying/static/image/copy.png | Bin 0 -> 2569 bytes groupBuying/success/index.vue | 497 +++++++++++++ pages.json | 12 + pages/index/indexs.vue | 8 +- pages/product/index.vue | 3 + src/auto-imports.d.ts | 1 + stores/user.js | 9 +- utils/countdown.js | 51 ++ utils/share.js | 6 + vite.config.js | 1 + 17 files changed, 2200 insertions(+), 305 deletions(-) create mode 100644 common/api/order/gbOrder.js create mode 100644 groupBuying/components/modal.vue create mode 100644 groupBuying/components/status.vue create mode 100644 groupBuying/goodsDetail/goodsDetail.vue create mode 100644 groupBuying/index/components/perpole-number.vue create mode 100644 groupBuying/static/image/copy.png create mode 100644 groupBuying/success/index.vue create mode 100644 utils/countdown.js create mode 100644 utils/share.js diff --git a/common/api/order/gbOrder.js b/common/api/order/gbOrder.js new file mode 100644 index 0000000..16f2edc --- /dev/null +++ b/common/api/order/gbOrder.js @@ -0,0 +1,80 @@ +// 引入 request 文件 +import request from '@/common/api/request.js' +const url = '/order' + +let platformType = ''; +let payType=''; +// #ifdef MP-WEIXIN +platformType = 'wechat' +payType='wechatPay' +// #endif +// #ifdef MP-ALIPAY +platformType = 'alipay' +payType='aliPay' +// #endif + +export const warePage = (data) => { + return request({ + url: url + '/user/gbOrder/ware/page', + method: 'get', + data: data + }) +} + +export const wareDetail = (data) => { + return request({ + url: url + '/user/gbOrder/ware/detail', + method: 'get', + data: data + }) +} +export const record = (data) => { + return request({ + url: url + '/user/gbOrder/record/page', + method: 'get', + data: data + }) +} +export const recordDetail = (data) => { + return request({ + url: url + '/user/gbOrder/record/detail', + method: 'get', + data: data + }) +} + + + + +export const exchange = (data) => { + // #ifdef MP-WEIXIN + const openId=uni.cache.get('userInfo').wechatOpenId; + // #endif + // #ifdef MP-ALIPAY + const openId=uni.cache.get('userInfo').alipayOpenId; + // #endif + return request({ + url: url + '/user/gbOrder/exchange', + method: 'post', + data: { + platformType, + payType, + openId, + ...data + } + }) +} +export const applyRefund = (data) => { + return request({ + url: url + '/user/gbOrder/applyRefund', + method: 'post', + data: data + }) +} +export const cancelRefund = (data) => { + return request({ + url: url + '/user/gbOrder/cancelRefund', + method: 'post', + data: data + }) +} \ No newline at end of file diff --git a/groupBuying/components/modal.vue b/groupBuying/components/modal.vue new file mode 100644 index 0000000..5d90202 --- /dev/null +++ b/groupBuying/components/modal.vue @@ -0,0 +1,97 @@ + + + + diff --git a/groupBuying/components/status.vue b/groupBuying/components/status.vue new file mode 100644 index 0000000..8ce3dfd --- /dev/null +++ b/groupBuying/components/status.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/groupBuying/detail/index.vue b/groupBuying/detail/index.vue index a881b51..393f30f 100644 --- a/groupBuying/detail/index.vue +++ b/groupBuying/detail/index.vue @@ -1,59 +1,261 @@ @@ -69,243 +271,217 @@ font-weight: 700; } - .map { - width: 48rpx; - height: 48rpx; - } + } - .steps { - display: flex; - padding: 20rpx 20rpx; - gap: 20rpx; - border-radius: 14rpx 14rpx 0 0; - background: linear-gradient(90deg, #FFF5E6 0%, #FFD2CA 100%); + .bottom { + margin: 0 28rpx; + transform: translateY(-160rpx); - .step { + .time { + padding: 18rpx 24rpx; + background: #FFF4E2; display: flex; - } + align-items: center; + border-radius: 16rpx 16rpx 0 0; - .index { - border-radius: 60rpx; - color: #fff; - width: 44rpx; - height: 44rpx; - line-height: 44rpx; - text-align: center; - background: #E55626; - } - - .text { - color: #5A352F; - margin-left: 10rpx; - margin-right: 22rpx; - white-space: nowrap; - } - - .icon { - color: rgba(90, 53, 47, 0.42); - } - - .icon1 { - color: #5A352F; - } - } - - .lists { - padding: 18rpx 10rpx; - - .item { - display: flex; - padding: 32rpx 16rpx; - border-radius: 32rpx; - background: #FFF; - margin-bottom: 14rpx; - - .numbers { - background: #4C2828; - padding: 8rpx 18rpx; - border-radius: 10rpx; - font-weight: 700; - color: #FAEAC6; - white-space: nowrap; - } - - .name { - max-width: 334rpx; - } - - .members { - margin-top: 26rpx; - background: #FDF1CB; - padding: 4rpx 18rpx; - border-radius: 10rpx 10rpx 10rpx 0; - width: fit-content; - font-size: 24rpx; - font-weight: 700; - color: #ED5A2E; - } - - .info { - background-image: url(https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/1/604c3f917daa41af9239145196c6d3f3.png); - width: 410rpx; - height: 102rpx; - background-size: cover; - transform: translateY(-10rpx); - display: flex; - - .left { - width: 306rpx; - color: #fff; - padding: 16rpx 22rpx; - } - - .right { - padding-left: 16rpx; - margin-top: 30rpx; - - .pin { - width: 76rpx; - height: 54rpx; - } - } - } - } - } - - .filters { - padding: 16rpx 28rpx; - border-radius: 6rpx 6rpx 16rpx 16rpx; - background: #FFF; - } - - .tabs { - display: flex; - justify-content: space-between; - font-size: 24rpx; - color: #999; - padding: 32rpx 88rpx; - - .tabs { - transition: all .3s linear; - } - - .active { - color: #ED5A2E; - font-size: 32rpx; - font-weight: 700; - font-weight: 700; - } - } - - .translateY20 { - transform: translateY(-20rpx); - } - - .orderStatus { - padding: 26rpx 28rpx; - justify-content: space-between; - - .orderState { - color: #999; - transition: all .3s linear; - - &.active { - color: #000; - font-size: 32rpx; - font-weight: 700; - } - } - } - - .orders { - padding: 0 26rpx 36rpx; - - .item { - padding: 32rpx 24rpx; - border-radius: 16rpx; - background: #FFF; - margin-bottom: 32rpx; - - .numbers { - background-color: #ED5A2E; - padding: 16rpx 30rpx; - border-radius: 12rpx; - font-size: 32rpx; + .number { + padding: 6rpx; + border-radius: 16rpx; + background: #ED5A2E; color: #fff; - font-weight: 700; - line-height: 36rpx; + font-size: 32rpx; + margin-left: 18rpx; + margin-right: 18rpx; } - .status { - padding: 8rpx 18rpx; - border-radius: 8rpx; - border: 2rpx solid transparent; + .gap { + font-size: 32rpx; + } + } - &.success { - border-color: rgba(123, 209, 54, 1); - color: rgba(123, 209, 54, 1); - background: rgba(123, 209, 54, 0.12); - } + .goods { + background-color: #fff; + padding: 22rpx 24rpx 0; + border-radius: 0 0 16rpx 16rpx; - &.error { - border-color: #FF1C1C; - color: #FF1C1C; - background: rgba(255, 28, 28, 0.18); - } + .pin { + width: 60rpx; + height: 38rpx; + } + + .tuan-members { + padding: 0 16rpx 0 0; + border-radius: 0 6rpx 6rpx 0; + background: #4C2828; + color: #f5d9ad; + font-weight: 700; } .price { - color: #ED5A2E; - font-weight: 700; - line-height: 36rpx; - font-size: 40rpx; + color: #ed5a2e; } - .info { - padding: 16rpx 34rpx; - flex-direction: column; - align-items: flex-start; - border-radius: 8rpx; - background: #F8F8F8; - - .title { - min-width: 208rpx; - padding-right: 8rpx; - box-sizing: border-box; - } - - .stitle { - color: #666; - - &.price { - font-size: 32rpx; - color: #ed5a2e; - font-weight: 700; - } - } - + .old-price { + color: #666666; } + } - .btns { - margin-top: 28rpx; + .u-font-48 { + font-size: 48rpx; + } + + .shop-box { + background: #fff; + padding: 32rpx 30rpx 28rpx 30rpx; + border-radius: 0 0 16rpx 16rpx; + } + + .copy { + width: 22rpx; + height: 22rpx; + margin-left: 22rpx; + } + + .shop { + border-radius: 8rpx; + background: #F8F8F8; + padding: 16rpx 34rpx; + } + + .relative { + position: relative; + } + + .members { + padding: 26rpx 24rpx; + border-radius: 16rpx; + margin-top: 32rpx; + background-color: #fff; + + .list { display: flex; - justify-content: flex-end; - gap: 34rpx; + } - .btn { - padding: 8rpx 14rpx; - border-radius: 10rpx; - border: 2rpx solid #D9D9D9; - background: #FFF; + .item { + width: calc(100% / 3); + display: flex; - &.black { - border-color: #343030; - background-color: #343030; - color: #fff; + .add-box { + width: 140rpx; + height: 140rpx; + border: 2rpx dashed #D9D9D9; + border-radius: 50%; + overflow: hidden; + position: relative; + + .share { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + opacity: 0; } } + + &:nth-of-type(2n) { + justify-content: center; + } + + &:nth-of-type(3n) { + justify-content: flex-end; + } + + .box { + display: flex; + flex-direction: column; + } + + .absolute { + bottom: 0; + display: flex; + justify-content: center; + left: 0; + right: 0; + } + + .tuanzhang { + padding: 8rpx 18rpx; + border-radius: 20rpx; + background: #ED5A2E; + color: #fff; + bottom: 0; + } } } + + .order { + padding: 32rpx 28rpx; + border-radius: 16rpx; + margin-top: 32rpx; + background-color: #fff; + + .item { + padding: 16rpx 0; + } + } + } + + .btns { + position: fixed; + left: 87rpx; + right: 87rpx; + bottom: 0; + padding-bottom: 60rpx; + display: flex; + gap: 40rpx; + + .btn { + flex: 1; + padding: 16rpx 28rpx; + border-radius: 200rpx; + text-align: center; + font-size: 32rpx; + line-height: 1; + margin: 0; + justify-content: center; + border: 2rpx solid #E8AD7B; + background: #FFF; + color: #E8AD7B; + + &.main { + background-color: #E8AD7B; + color: #fff; + } + } + } + + .guodu { + transition: all .3s; + } + + .pin-btn { + padding: 14rpx 60rpx; + border-radius: 200rpx; + text-align: center; + font-size: 32rpx; + justify-content: center; + border: 2rpx solid #E8AD7B; + background: #E8AD7B; + color: #fff; + margin-top: 32rpx; + } + + .rotate { + transform: rotate(-90deg); + } + + .refund { + padding: 18rpx 164rpx; + border-radius: 0 0 16rpx 16rpx; + background: #FFF4E2; + font-weight: 700; + margin-bottom: 32rpx; } \ No newline at end of file diff --git a/groupBuying/goodsDetail/goodsDetail.vue b/groupBuying/goodsDetail/goodsDetail.vue new file mode 100644 index 0000000..70a13b6 --- /dev/null +++ b/groupBuying/goodsDetail/goodsDetail.vue @@ -0,0 +1,646 @@ + + + + \ No newline at end of file diff --git a/groupBuying/index/components/perpole-number.vue b/groupBuying/index/components/perpole-number.vue new file mode 100644 index 0000000..06511c0 --- /dev/null +++ b/groupBuying/index/components/perpole-number.vue @@ -0,0 +1,25 @@ + + + + + \ No newline at end of file diff --git a/groupBuying/index/index.vue b/groupBuying/index/index.vue index ecad082..2959010 100644 --- a/groupBuying/index/index.vue +++ b/groupBuying/index/index.vue @@ -6,7 +6,7 @@ left-icon-color="#fff" title-color="#fff"> - 这里是店铺名称 + {{shopInfo.shopName||''}} @@ -30,8 +30,10 @@ @click="tabs.sel=index">{{item}} - - + + + - + - + - 3人团 - 这里是商品名称啊啊嗷嗷啊啊 + {{item.groupPeopleNum}}人团 + {{item.wareName}} 已团:9999 拼团到手 - ¥333 + ¥{{item.groupPrice}} 原价 - ¥333 + ¥{{item.originalPrice}} @@ -76,40 +78,41 @@ - + - 3人团 - 待成团 + {{1}}人团 + - + - 这里是商品名称 - ¥999.99 + {{item.wareJson.wareName}} + ¥{{item.payAmount}} - x1 + x{{item.num}} - - + + 可核销门店: - 这里是店铺名称 + {{item.shopName}} 门店地址: - 这里是店铺名称 + {{item.shopAddress}} - + 剩余成团时间: - 00:39:15 + {{returnTime(item)}} - - 申请退款 - 邀请好友 + + 申请退款 + 取消退款 + @@ -119,24 +122,40 @@ \ No newline at end of file diff --git a/groupBuying/static/image/copy.png b/groupBuying/static/image/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..4c0947423edb854d24951e51d04b73e5ee674db0 GIT binary patch literal 2569 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 literal 0 HcmV?d00001 diff --git a/groupBuying/success/index.vue b/groupBuying/success/index.vue new file mode 100644 index 0000000..a65d478 --- /dev/null +++ b/groupBuying/success/index.vue @@ -0,0 +1,497 @@ + + + + + \ No newline at end of file diff --git a/pages.json b/pages.json index 11aed7a..c6aaa9b 100644 --- a/pages.json +++ b/pages.json @@ -376,6 +376,18 @@ "navigationBarTitleText": "订单详情", "navigationStyle": "custom" } + }, + { + "path": "goodsDetail/goodsDetail", + "style": { + "navigationBarTitleText": "拼团特惠" + } + }, + { + "path": "success/index", + "style": { + "navigationBarTitleText": "支付成功" + } } ] diff --git a/pages/index/indexs.vue b/pages/index/indexs.vue index 131b7fb..d78651d 100644 --- a/pages/index/indexs.vue +++ b/pages/index/indexs.vue @@ -50,7 +50,7 @@ - + 快乐拼单 @@ -139,6 +139,12 @@ const props = defineProps({ } }); +function toGroupBuying(){ + uni.navigateTo({ + url:'/groupBuying/index/index' + }) +} + function toFenxiao() { uni.navigateTo({ url: '/distribution/shop-detail/index?shopId=' + uni.cache.get('shopId') diff --git a/pages/product/index.vue b/pages/product/index.vue index 50796cb..dc6311b 100644 --- a/pages/product/index.vue +++ b/pages/product/index.vue @@ -2438,9 +2438,12 @@ }) const oldOrder = ref(null); onMounted(async () => { + // #ifdef MP-WEIXIN await proxy.$onLaunched; + // #endif // 获取当前页面栈 const pages = getCurrentPages(); + // 获取当前页面实例 const currentPage = pages[pages.length - 1]; // 获取页面参数 diff --git a/src/auto-imports.d.ts b/src/auto-imports.d.ts index dc5e282..e69ecf0 100644 --- a/src/auto-imports.d.ts +++ b/src/auto-imports.d.ts @@ -38,6 +38,7 @@ declare global { const onRenderTriggered: typeof import('vue')['onRenderTriggered'] const onScopeDispose: typeof import('vue')['onScopeDispose'] const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onShareAppMessage: typeof import('@dcloudio/uni-app')['onShareAppMessage'] const onShow: typeof import('@dcloudio/uni-app')['onShow'] const onUnload: typeof import('@dcloudio/uni-app')['onUnload'] const onUnmounted: typeof import('vue')['onUnmounted'] diff --git a/stores/user.js b/stores/user.js index 3d9f50e..2070508 100644 --- a/stores/user.js +++ b/stores/user.js @@ -179,6 +179,13 @@ export const productStore = defineStore("product", { */ async scanCodeactions(q) { console.log("扫码内容", q); + // #ifdef H5 + uni.navigateTo({ + url:'/pages/product/index' + }) + return + // #endif + return new Promise(async (resolve, reject) => { if (q) { console.log(q); @@ -218,7 +225,7 @@ export const productStore = defineStore("product", { } } } else { - // #ifdef APP || MP-WEIXIN || MP-ALIPAY + // #ifdef APP || MP-WEIXIN || MP-ALIPAY uni.scanCode({ success: async (res) => { let tableCode = this.getQueryString( diff --git a/utils/countdown.js b/utils/countdown.js new file mode 100644 index 0000000..fdc7d52 --- /dev/null +++ b/utils/countdown.js @@ -0,0 +1,51 @@ +import dayjs from "dayjs" + +/** + * 计算剩余时间差(毫秒) + * @param {Object} item - 包含groupEndTime的订单/拼团对象 + * @returns {number} 剩余时间(毫秒) + */ +function returnRemainingTime(item) { + if (!item?.groupEndTime) return 0; // 容错:无结束时间则返回0 + return dayjs(item.groupEndTime).valueOf() - dayjs().valueOf(); +} + +/** + * 将毫秒差格式化为 HH:MM:SS(最多72小时) + * @param {number} ms - 时间差(毫秒) + * @returns {string} 格式化后的时分秒(如 09:09:09、72:00:00、00:00:00) + */ +function formatTimeToHMS(ms) { + // 边界1:已过期/无剩余时间 → 显示00:00:00 + if (ms <= 0) return '00:00:00'; + + // 边界2:超过72小时 → 按72小时算(72*60*60*1000 = 259200000毫秒) + const maxMs = 72 * 60 * 60 * 1000; + const validMs = Math.min(ms, maxMs); + + // 转换为总秒数(取整,避免小数) + const totalSeconds = Math.floor(validMs / 1000); + + // 拆解小时、分钟、秒 + const hours = Math.floor(totalSeconds / 3600); + const remainingSeconds = totalSeconds % 3600; + const minutes = Math.floor(remainingSeconds / 60); + const seconds = remainingSeconds % 60; + + // 补零(确保两位数,如 9 → 09) + const pad = (num) => String(num).padStart(2, '0'); + return `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`; +} + + +let timer = null +let nowTime = ref(Date.now()) +timer = setInterval(() => { + nowTime.value = Date.now() +}, 1000) + +// 组合使用:获取格式化后的剩余时间 +export function getRemainingHMS(item) { + const ms = returnRemainingTime(item); + return formatTimeToHMS(ms); +} \ No newline at end of file diff --git a/utils/share.js b/utils/share.js new file mode 100644 index 0000000..0aef716 --- /dev/null +++ b/utils/share.js @@ -0,0 +1,6 @@ +export function wxShare(par) { + return { + ...par, + type: 2 + } +} \ No newline at end of file diff --git a/vite.config.js b/vite.config.js index 0c675b2..9eab6e6 100644 --- a/vite.config.js +++ b/vite.config.js @@ -14,6 +14,7 @@ module.exports = defineConfig({ "vue", { "@dcloudio/uni-app": [ + "onShareAppMessage", "onLoad", "onShow", "onHide", From a4043cbfd0b199b7818af1aff47aaf3187461e77 Mon Sep 17 00:00:00 2001 From: YeMingfei666 <1619116647@qq.com> Date: Thu, 18 Dec 2025 09:42:46 +0800 Subject: [PATCH 08/20] =?UTF-8?q?=E6=8B=BC=E5=9B=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupBuying/detail/index.vue | 10 +- groupBuying/goodsDetail/goodsDetail.vue | 159 +++++++++++++----------- groupBuying/index/index.vue | 7 +- 3 files changed, 101 insertions(+), 75 deletions(-) diff --git a/groupBuying/detail/index.vue b/groupBuying/detail/index.vue index 393f30f..83351d7 100644 --- a/groupBuying/detail/index.vue +++ b/groupBuying/detail/index.vue @@ -1,7 +1,7 @@ + + @@ -330,7 +434,7 @@ if (!res) { uni.showModal({ title: '提示', - content :'当前商品已下架或者不存在', + content: '当前商品已下架或者不存在', showCancel: false, success(res) { uni.redirectTo({ diff --git a/pages.json b/pages.json index c2a84dd..3189a1a 100644 --- a/pages.json +++ b/pages.json @@ -427,9 +427,20 @@ "navigationBarTitleText": "", "navigationStyle": "custom" } + }, + { + "path": "confirm-order/confirm-order", + "style": { + "navigationBarTitleText": "确认订单" + } + }, + { + "path": "members/members", + "style": { + "navigationBarTitleText": "查看全部" + } } - ] } ], diff --git a/scoreShop/index/index.vue b/scoreShop/index/index.vue index 9d94857..268e5c9 100644 --- a/scoreShop/index/index.vue +++ b/scoreShop/index/index.vue @@ -87,8 +87,12 @@ // } function toDetail() { + if(!pointsUser.value||!pointsUser.value.id){ + return + } + uni.navigateTo({ - url: '/pages/user/member/billDetails?type=2&shopId=' + query.shopId + '&id=' + (pointsUser.value.id || + url: '/pages/user/member/billDetails?type=2&shopId=' + query.shopId + '&id=' + (pointsUser.value?pointsUser.value.id : '') }) } diff --git a/static/icon/copy.png b/static/icon/copy.png new file mode 100644 index 0000000000000000000000000000000000000000..4c0947423edb854d24951e51d04b73e5ee674db0 GIT binary patch literal 2569 zcmV+k3ikDhP)Iar(@077S`G)({ky%Xt0 z_T&ArQmM43TrO|%Ja0oM3bAh=8you zn;72qA-)8V&UJwtP)-IuNdTC78Oi^$ftQCk$Gy&&C%6i}Ba_KoSS%LPohV>1 zgO&0gFk8UqWr(qXnOsjb!qzxHijE1JlLSDKMP?zUww{1*9~c;Ti-fNj8XEekzrX*e zX>ii@U~sTdC~O)W9319zFG-$D%zF@1dz@zn51KmLr5`7N9Q`;T1Yk3@!SeY8c|QTm zGk~cBRFmSsSO-S(9Kg65uxc7HZWn~(1mMe`L`?VhMOeO?er-)4010{-b^!5f^H>G$ z_UmYuZkzxd;SbeuKmw}MtzESUaH`DJ>L&JC1?pivG3=aeJz4%af6Xy`<1!e1(9ox9 z0|J~X*K$yOZ|Hv5pl^%XgORtIz8PZtX6jRYeFW-YcO3_vGcS-l9KFaC3Vqv5eX6gI z04u-_(}=FFE+giqIZ^3_02dpKA7CllYv@yT0|X$z7Sj+`T@&V}Dc1D0hU6k}daY9S z31F9ORe~YFbCN$yGkI(1i@9lhlzJgRl=juO;|M4L98XZx?kNGHM%Z!tN`Pn+bj;5@ zcLB%!^zG0o0is2HqmTI$+y(sQqi>5!2@oOd9O*A$eho6w6#JY79Cp=kG32@qih z`uh6zk?eR)M*sqnA_`im1R$De z#bPm3r4pwIAV)tz3jx?nZJZXgQpr?Usx+-uDshScM52{S0KrCMWsrY-D*p=E&)j6C z5~m2j5niu)h6LmnjOq*sa2M6EQi(GJkma9;7h0*rkjx?8mnf|r;Lgpy}5|YTEVJHEDBA1YP zN`ROrGOYVbfUpS0e7+JO<_Qezz7ilTf-#@31c-S8!@92o2#a9M=PLnXp1`o~D*?hH z81wl`fS4xGmfK1ITS&&#juIfIiL>Rl62KOcF}0%vh-u<%xvd1Sg=9?aC;?)cI9qND z0et_4T{@k<)Yg}%9d{A%DwWD%gL~I6S+e8;L!YYKgn;d@l@-85fYiy8CvUU;g=)_& z1cU&8nq2Zc&sep?G)MLELckjw9NfieV57n9m$KQc@9*{v<5e9q1Y`wBaip&@_&o#t zFrqD?2#gb;R4T0|z9WcVo7dgl{eWMG>f(>UI01%+hW;azPZ8h7E#W#y@PXbH_`(xw zoS?l5s0uG*-$IFT<&9tVyyX#4Q(wV5Y_NW0>~E>i^ccZE<>7X5Md@Vr&hSDcm@Ll zkl=B)+8jopiU8s#B;;7&eoN5Zr# z!c5k=))4s0$I_aQx49^L+ zt2n?HvrQQZAe~Gc<>K(&a=CmL`>!JM=iAsc*O>Q4b0c+B)CiEv706Alagp~hvXH*l5V>fq68fH#am+J4VrH5)7Z7NQ0B1YOim;RS z2VWx}L5R1J-ddrrPsW`+Pd~efK+6PhGmPYV6?J4vfT$66+`baP@dQQfo)RExgdMl9 z1aLe-QM;!Eh#FzX?JEHsPf*nEDFLEJ*b)1@ne9b>Mvfw@dwO~<7uS>kf`Wr$(<>@C=p-+DYUHa7MlpXyraXnxr_*U;jfZqPeb^ZS5T#Zs0R-EP1ItK&QmJ&rB?4%r65H87W6xCP z=RmPoJnjqu2DMVjnRHqFe=e7M3Ul)jzcwgJX9zIvjOS^k5&^=Ju>8MS$J95{=M(`r zCuyY;$%+Nx>c1B=zQ4`n;_o|_|1I>p^*VT{gDaItGHeKmzZuz#Ex%X5s8cCchRJF$ zPOSjq9qiOfB?3eXBJcG%-#jWYI?vj;dw0C5h6TB%gRYBHsINz!!SC8hk>G;SpSK2Eb$KiGAW z01^r$uvw`@Om?yy$Ye6t)Fxj5ah3q$T%k}{>v^7>&%#zJ5p$g?D+&C@{{H^I*-mLr z6F|I$1U4#_h^dYet_e1Ax_gq9^fBbPDR}1zAdVA2s7fVbqf>;$uS1^Y$?82^P=C=V z?pP3DA_&f5EmbOEURC817xyjr^b!eQzy;pi(b3UMNc>#n6YMtC{s#a6|NrOF>Z1Sv f00v1!K~w_(JL|$)MvW$^00000NkvXXu0mjf=F6dy literal 0 HcmV?d00001 diff --git a/stores/user.js b/stores/user.js index 13ba86a..f271a91 100644 --- a/stores/user.js +++ b/stores/user.js @@ -49,7 +49,7 @@ export const Storelogin = defineStore("login", { rawData: infoRes.rawData, source: "wechat", }); - console.log('res',res); + console.log('APIuserlogin',res); if (res) { this.token = res.token; this.miniAppOpenId = res.userInfo @@ -96,8 +96,9 @@ export const Storelogin = defineStore("login", { }, }); // #endif - + // #ifdef H5 resolve(true) + // #endif }); }, }, diff --git a/userPackage/components/status.vue b/userPackage/components/status.vue index fb84b5d..f8e5a43 100644 --- a/userPackage/components/status.vue +++ b/userPackage/components/status.vue @@ -1,44 +1,67 @@ \ No newline at end of file diff --git a/userPackage/confirm-order/confirm-order.vue b/userPackage/confirm-order/confirm-order.vue new file mode 100644 index 0000000..5ba5823 --- /dev/null +++ b/userPackage/confirm-order/confirm-order.vue @@ -0,0 +1,356 @@ + + + + + \ No newline at end of file diff --git a/userPackage/goodsDetail/goodsDetail.vue b/userPackage/goodsDetail/goodsDetail.vue index fa39e67..4248ee6 100644 --- a/userPackage/goodsDetail/goodsDetail.vue +++ b/userPackage/goodsDetail/goodsDetail.vue @@ -101,7 +101,7 @@ - + 分享说明 @@ -126,13 +126,15 @@ - 分享期限(小时):4 + 分享期限(小时):{{item.expireHours}} 规定期限内的助力才会被计入 - 如何才是分享成功?
被分享人只需要点击《助力》,提示助力成功后即可 + 如何才是分享成功?被分享人只需要点击《助力》,提示助力成功后即可 + + @@ -158,10 +160,10 @@