From 073dfa5c00a7f35d865539333c8b0da0c50fa9f8 Mon Sep 17 00:00:00 2001 From: jacobxu666 Date: Tue, 14 Jul 2026 13:57:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(hhrs):=20=E6=96=B0=E5=A2=9E=E6=9D=83?= =?UTF-8?q?=E7=9B=8A=E5=8C=85=E3=80=81=E9=97=A8=E5=BA=97=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E3=80=81=E6=9D=83=E7=9B=8A=E8=AF=A6=E6=83=85=E3=80=81=E6=88=91?= =?UTF-8?q?=E7=9A=84=E5=9B=9B=E4=B8=AAH5=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 权益包页面支持3种状态切换:认证表单、未中奖空状态、权益信息(统计卡片+Tab+列表) - 门店详情页展示场馆信息、营业时间、商户优惠说明 - 权益详情页含日期选择卡片和底部预约按钮 - 我的页面含用户信息、菜单列表和底部TabBar - 新增权益相关API接口定义(getRightsInfo/getRightsDetail/doRightsAuth/doRightsBook) - 商户折扣列表跳转统一至门店详情页 Co-Authored-By: Claude Sonnet 5 --- common/http.api.js | 19 +- pages.json | 20 +- pages/discount/discount.vue | 2 +- pages/mine/mine.vue | 195 +++++++++++- pages/rights/detail.vue | 386 +++++++++++++++++++++++ pages/rights/rights.vue | 608 ++++++++++++++++++++++++++++++++++-- pages/venue/detail.vue | 240 ++++++++++++++ 7 files changed, 1432 insertions(+), 38 deletions(-) create mode 100644 pages/rights/detail.vue create mode 100644 pages/venue/detail.vue diff --git a/common/http.api.js b/common/http.api.js index 4dafedd..2fd3c6e 100644 --- a/common/http.api.js +++ b/common/http.api.js @@ -5,12 +5,14 @@ let VenueDetailUrl = 'mp-api/hhrs/venue/detail'; let MerchantListUrl = 'mp-api/hhrs/merchant/list'; let MerchantDetailUrl = 'mp-api/hhrs/merchant/detail'; let WinnerListUrl = 'mp-api/hhrs/winner/list'; +let RightsInfoUrl = 'mp-api/hhrs/rights/info'; +let RightsDetailUrl = 'mp-api/hhrs/rights/detail'; +let RightsAuthUrl = 'mp-api/hhrs/rights/auth'; +let RightsBookUrl = 'mp-api/hhrs/rights/book'; -// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作,更多内容详见uView对拦截器的介绍部分: -// https://uviewui.com/js/http.html#%E4%BD%95%E8%B0%93%E8%AF%B7%E6%B1%82%E6%8B%A6%E6%88%AA%EF%BC%9F +// 此处第二个参数vm,就是我们在页面使用的this const install = (Vue, vm) => { - // 此处没有使用传入的params参数 let checkerLogin = (params = {}) => vm.$u.post(LoginUrl, params); // 文旅场馆 @@ -24,7 +26,12 @@ const install = (Vue, vm) => { // 中奖名单 let getWinnerList = (params = {}) => vm.$u.get(WinnerListUrl, params); - // 将各个定义的接口名称,统一放进对象挂载到vm.$u.api(因为vm就是this,也即this.$u.api)下 + // 权益包 + let getRightsInfo = (params = {}) => vm.$u.get(RightsInfoUrl, params); + let getRightsDetail = (params = {}) => vm.$u.post(RightsDetailUrl, params); + let doRightsAuth = (params = {}) => vm.$u.post(RightsAuthUrl, params); + let doRightsBook = (params = {}) => vm.$u.post(RightsBookUrl, params); + vm.$u.api = { checkerLogin, getVenueList, @@ -32,6 +39,10 @@ const install = (Vue, vm) => { getMerchantList, getMerchantDetail, getWinnerList, + getRightsInfo, + getRightsDetail, + doRightsAuth, + doRightsBook, }; } diff --git a/pages.json b/pages.json index 0e2438b..f66619f 100644 --- a/pages.json +++ b/pages.json @@ -13,7 +13,8 @@ { "path": "pages/mine/mine", "style": { - "navigationBarTitleText": "我的" + "navigationBarTitleText": "我的", + "navigationStyle": "custom" } }, { @@ -33,7 +34,22 @@ { "path": "pages/rights/rights", "style": { - "navigationBarTitleText": "权益包" + "navigationBarTitleText": "权益信息", + "navigationStyle": "custom" + } + }, + { + "path": "pages/rights/detail", + "style": { + "navigationBarTitleText": "权益详情", + "navigationStyle": "custom" + } + }, + { + "path": "pages/venue/detail", + "style": { + "navigationBarTitleText": "门店详情", + "navigationStyle": "custom" } }, { diff --git a/pages/discount/discount.vue b/pages/discount/discount.vue index eec8dbb..164c607 100644 --- a/pages/discount/discount.vue +++ b/pages/discount/discount.vue @@ -72,7 +72,7 @@ export default { uni.navigateBack() }, goDetail(item) { - uni.navigateTo({ url: '/pages/discount/detail?id=' + item.id }) + uni.navigateTo({ url: '/pages/venue/detail?id=' + item.id }) }, onSearch() { // TODO: 调用搜索接口 diff --git a/pages/mine/mine.vue b/pages/mine/mine.vue index 00cb7e2..651c7ad 100644 --- a/pages/mine/mine.vue +++ b/pages/mine/mine.vue @@ -1,24 +1,193 @@ diff --git a/pages/rights/detail.vue b/pages/rights/detail.vue new file mode 100644 index 0000000..6109e18 --- /dev/null +++ b/pages/rights/detail.vue @@ -0,0 +1,386 @@ + + + + + diff --git a/pages/rights/rights.vue b/pages/rights/rights.vue index a380ffc..d285ce5 100644 --- a/pages/rights/rights.vue +++ b/pages/rights/rights.vue @@ -1,30 +1,602 @@ - diff --git a/pages/venue/detail.vue b/pages/venue/detail.vue new file mode 100644 index 0000000..54703e6 --- /dev/null +++ b/pages/venue/detail.vue @@ -0,0 +1,240 @@ + + + + +