From c32de7df7d16fc09b584f299074f6747855c38c7 Mon Sep 17 00:00:00 2001 From: wk Date: Mon, 2 Mar 2026 15:32:41 +0800 Subject: [PATCH] =?UTF-8?q?=E7=82=B9=E8=B5=9E=E6=94=B6=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/service.js | 48 +++ .../DetailActionBar/DetailActionBar.vue | 283 ++++++++++++++++++ pages.json | 28 +- pages/activities/list.vue | 4 +- pages/activities/myCollect.vue | 32 +- pages/detail/activitiesDetail.vue | 259 ---------------- pages/detail/mapDetail.vue | 180 +++++++++-- pages/detail/richTextDetail.vue | 189 +++++++++--- pages/detail/serviceDetail.vue | 156 +++++++--- pages/index/index.vue | 13 +- pages/login/login.vue | 93 +++++- pages/profile/profile.vue | 105 ++++--- pages/profileSub/pointsMemberRules.vue | 237 +++++++++++++++ pages/profileSub/privacyPolicy.vue | 140 +++++++++ pages/profileSub/realNameAuth.vue | 69 ++++- pages/profileSub/userAgreement.vue | 136 +++++++++ pages/service/service.vue | 73 ++++- pages/webview/webview.vue | 5 + static/service/collect_icon.png | Bin 0 -> 6115 bytes static/service/like_icon.png | Bin 0 -> 4308 bytes static/service/phone_icon.png | Bin 0 -> 5087 bytes static/service/share_icon.png | Bin 0 -> 5916 bytes utils/coordinate.js | 168 +++++++++++ 23 files changed, 1762 insertions(+), 456 deletions(-) create mode 100644 components/DetailActionBar/DetailActionBar.vue delete mode 100644 pages/detail/activitiesDetail.vue create mode 100644 pages/profileSub/pointsMemberRules.vue create mode 100644 pages/profileSub/privacyPolicy.vue create mode 100644 pages/profileSub/userAgreement.vue create mode 100644 static/service/collect_icon.png create mode 100644 static/service/like_icon.png create mode 100644 static/service/phone_icon.png create mode 100644 static/service/share_icon.png create mode 100644 utils/coordinate.js diff --git a/api/service.js b/api/service.js index faaefd3..c94d33d 100644 --- a/api/service.js +++ b/api/service.js @@ -46,4 +46,52 @@ export function getMessagePage(params = {}) { method: 'GET', data: params, }) +} + +// 会员点赞和取消根据赞状态设置 +export function setMemberLike(params = {}) { + return request({ + url: '/app-api/member/labor-union-zan/zan', + method: 'POST', + data: params, + }) +} + +// 会员收藏 +export function setMemberCollect(params = {}) { + return request({ + url: '/app-api/member/labor-union-collect/collect', + method: 'POST', + data: params, + }) +} + +// 创建会员司机公会分享记录 +export function createMemberShare(params = {}) { + return request({ + url: '/app-api/member/labor-union-share/create', + method: 'POST', + data: params, + }) +} + +//判断是否需要地图 +export function isNeedMap(params = {}) { + return request({ + url: '/app-api/member/app/getCnf', + method: 'GET', + data: params, + }) +} + +// 工会优惠券/商品下单并发起微信支付(需要后端返回小程序支付参数) +// 约定:后端返回字段需包含 timeStamp、nonceStr、package、signType、paySign(或等价字段) +export function createGuildCouponWxPay(params = {}) { + return request({ + // TODO: 如后端实际路径不同,请替换这里的 url + url: '/app-api/member/labor-union-coupon/pay', + method: 'POST', + data: params, + showLoading: true, + }) } \ No newline at end of file diff --git a/components/DetailActionBar/DetailActionBar.vue b/components/DetailActionBar/DetailActionBar.vue new file mode 100644 index 0000000..852c968 --- /dev/null +++ b/components/DetailActionBar/DetailActionBar.vue @@ -0,0 +1,283 @@ + + + + + + diff --git a/pages.json b/pages.json index 4ed235b..3021e22 100644 --- a/pages.json +++ b/pages.json @@ -52,13 +52,6 @@ "navigationStyle": "custom" } }, - { - "path": "activitiesDetail", - "style": { - "navigationBarTitleText": "工会详情", - "navigationStyle": "custom" - } - }, { "path": "mapDetail", "style": { @@ -118,12 +111,33 @@ "navigationStyle": "custom" } }, + { + "path": "pointsMemberRules", + "style": { + "navigationBarTitleText": "积分会员制度", + "navigationStyle": "custom" + } + }, { "path": "serviceRecords", "style": { "navigationBarTitleText": "服务记录", "navigationStyle": "custom" } + }, + { + "path": "userAgreement", + "style": { + "navigationBarTitleText": "用户服务协议", + "navigationStyle": "custom" + } + }, + { + "path": "privacyPolicy", + "style": { + "navigationBarTitleText": "隐私政策", + "navigationStyle": "custom" + } } ] } diff --git a/pages/activities/list.vue b/pages/activities/list.vue index 182172d..61f6deb 100644 --- a/pages/activities/list.vue +++ b/pages/activities/list.vue @@ -161,7 +161,7 @@ export default { handleActivityClick(item) { // 点击活动项跳转到详情页 uni.navigateTo({ - url: `/pages/detail/activitiesDetail?id=${item.id}` + url: `/pages/detail/richTextDetail?id=${item.id}` }); }, @@ -169,7 +169,7 @@ export default { async handleJoinActivity(item) { // 跳转到活动详情页 uni.navigateTo({ - url: `/pages/detail/activitiesDetail?id=${item.id}` + url: `/pages/detail/richTextDetail?id=${item.id}` }); }, }, diff --git a/pages/activities/myCollect.vue b/pages/activities/myCollect.vue index 30c3cac..7b9c0e6 100644 --- a/pages/activities/myCollect.vue +++ b/pages/activities/myCollect.vue @@ -39,7 +39,9 @@ > - {{ item.title || item.collectName || '未命名' }} + {{ + item.title || item.collectName || "未命名" + }} {{ item.info }} {{ formatTime(item.createTime) }} @@ -48,7 +50,9 @@ 加载中... - 没有更多数据了 + 没有更多数据了 上拉加载更多 @@ -62,7 +66,7 @@ import NavHeader from "@/components/NavHeader/NavHeader.vue"; export default { components: { - NavHeader + NavHeader, }, data() { return { @@ -158,25 +162,9 @@ export default { // 收藏项点击 handleCollectClick(item) { - // 根据收藏类型跳转到对应的详情页 - // collectType: 收藏的类型 - // collectId: 收藏的id - if (item.collectType && item.collectId) { - // 这里可以根据 collectType 判断跳转到不同的详情页 - // 例如:1-活动详情,2-服务详情等 - if (item.collectType === 2) { - // 假设类型2是活动 - uni.navigateTo({ - url: `/pages/detail/activitiesDetail?id=${item.collectId}`, - }); - } else { - // 其他类型可以在这里扩展 - uni.showToast({ - title: "暂不支持查看详情", - icon: "none", - }); - } - } + // uni.navigateTo({ + // url: `/pages/detail/richTextDetail?id=${item.collectId}`, + // }); }, }, }; diff --git a/pages/detail/activitiesDetail.vue b/pages/detail/activitiesDetail.vue deleted file mode 100644 index a34e41f..0000000 --- a/pages/detail/activitiesDetail.vue +++ /dev/null @@ -1,259 +0,0 @@ - - - - - diff --git a/pages/detail/mapDetail.vue b/pages/detail/mapDetail.vue index 2b099a2..93321a9 100644 --- a/pages/detail/mapDetail.vue +++ b/pages/detail/mapDetail.vue @@ -12,9 +12,9 @@ :longitude="mapCenter.longitude" :markers="markers" :scale="16" - :show-location="false" - :enable-zoom="false" - :enable-scroll="false" + :show-location="true" + :enable-zoom="true" + :enable-scroll="true" :enable-rotate="false" :enable-poi="true" > @@ -47,7 +47,7 @@ src="/static/service/location-icon.png" mode="aspectFill" > - {{ storeInfo.distance || "0" }}km + {{ distanceText }} @@ -74,7 +74,9 @@ - + + 导航 + @@ -89,6 +91,7 @@ @@ -145,6 +253,7 @@ export default { display: flex; flex-direction: column; overflow: hidden; + padding-bottom: 120rpx; // 为底部操作栏留出空间 } /* 内容区域 */ @@ -164,7 +273,7 @@ export default { overflow-y: visible; word-wrap: break-word; word-break: break-all; - + // 图片容器样式 .rich-text-image-wrapper { width: 100%; @@ -173,7 +282,7 @@ export default { justify-content: center; align-items: center; box-sizing: border-box; - + .rich-text-image { width: 100%; height: auto; @@ -181,7 +290,7 @@ export default { max-width: 100%; } } - + // 文本内容样式 .rich-text-content { width: 100%; diff --git a/pages/detail/serviceDetail.vue b/pages/detail/serviceDetail.vue index 8dfdd21..2ad981e 100644 --- a/pages/detail/serviceDetail.vue +++ b/pages/detail/serviceDetail.vue @@ -3,8 +3,8 @@ - - + + 距您 {{ storeInfo.distance || "0" }}km距您 {{ distance || "0" }}km @@ -118,7 +118,7 @@ + + + + + diff --git a/pages/profileSub/privacyPolicy.vue b/pages/profileSub/privacyPolicy.vue new file mode 100644 index 0000000..4e2ce2c --- /dev/null +++ b/pages/profileSub/privacyPolicy.vue @@ -0,0 +1,140 @@ + + + + + + + + + diff --git a/pages/profileSub/realNameAuth.vue b/pages/profileSub/realNameAuth.vue index e9edddb..574b9ba 100644 --- a/pages/profileSub/realNameAuth.vue +++ b/pages/profileSub/realNameAuth.vue @@ -204,12 +204,27 @@ + + + + + + + + 我已阅读并同意 + 《用户服务协议》 + 和 + 《隐私政策》 + + + +