feat(hhrs): 新增权益包、门店详情、权益详情、我的四个H5页面
- 权益包页面支持3种状态切换:认证表单、未中奖空状态、权益信息(统计卡片+Tab+列表) - 门店详情页展示场馆信息、营业时间、商户优惠说明 - 权益详情页含日期选择卡片和底部预约按钮 - 我的页面含用户信息、菜单列表和底部TabBar - 新增权益相关API接口定义(getRightsInfo/getRightsDetail/doRightsAuth/doRightsBook) - 商户折扣列表跳转统一至门店详情页 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
b37aa6bf81
commit
073dfa5c00
@@ -0,0 +1,240 @@
|
||||
<template>
|
||||
<view class="page">
|
||||
<!-- 自定义导航栏 -->
|
||||
<view class="nav-bar" :style="{ paddingTop: statusBarHeight + 'px' }">
|
||||
<view class="nav-header">
|
||||
<view class="nav-back" @click="goBack">
|
||||
<text class="back-icon"></text>
|
||||
</view>
|
||||
<text class="nav-title">门店详情</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 门店信息卡片 -->
|
||||
<view class="store-card">
|
||||
<image class="store-img" :src="store.image" mode="aspectFill" />
|
||||
<view class="store-info">
|
||||
<text class="store-name">{{ store.name }}</text>
|
||||
<text class="store-category">{{ store.category }}</text>
|
||||
<text class="store-hours">营业时间:{{ store.hours }}</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 地址行 -->
|
||||
<view class="address-row">
|
||||
<text class="address-text">{{ store.address }}</text>
|
||||
<view class="distance-row">
|
||||
<text class="distance-icon"></text>
|
||||
<text class="distance-text">{{ store.distance }}km</text>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 商户优惠 -->
|
||||
<view class="discount-section">
|
||||
<view class="section-title">
|
||||
<text class="discount-tag-icon"></text>
|
||||
<text class="discount-title">商户优惠</text>
|
||||
</view>
|
||||
<view class="discount-list">
|
||||
<text class="discount-item" v-for="(item, index) in store.discounts" :key="index">{{ item }}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
statusBarHeight: 44,
|
||||
store: {
|
||||
id: 1,
|
||||
name: '怀化黄岩白马风景区',
|
||||
category: '景区',
|
||||
hours: '08:00~12:00',
|
||||
address: '怀化市鹤城区万达广场 C 区501',
|
||||
distance: '1.4',
|
||||
image: 'https://aliyunoss.hn12301.net/hhrs/hhrs_venue1.png',
|
||||
discounts: [
|
||||
'用本人 62 开头社保卡凭电子社保码,可享景区免费入园权益',
|
||||
'仅限社保卡持卡人本人使用,非持卡人核销后会扣除使用次数且无法入园',
|
||||
'电子社保码截图无效,需在核销时打开电子社保卡页面。电子社保卡可在云闪付-湖南社保卡,或者微信-湖南智慧人社公众号'
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
onLoad(options) {
|
||||
const sysInfo = uni.getSystemInfoSync()
|
||||
this.statusBarHeight = sysInfo.statusBarHeight || 44
|
||||
if (options.id) {
|
||||
this.loadDetail(options.id)
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
goBack() {
|
||||
uni.navigateBack()
|
||||
},
|
||||
loadDetail(id) {
|
||||
// TODO: 调用接口 this.$u.api.getVenueDetail({ id })
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.page {
|
||||
min-height: 100vh;
|
||||
background-color: #f2f2f7;
|
||||
}
|
||||
|
||||
.nav-bar {
|
||||
background-color: #ffffff;
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.nav-header {
|
||||
height: 44px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.nav-back {
|
||||
position: absolute;
|
||||
left: 14px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.back-icon {
|
||||
font-size: 20px;
|
||||
color: #1a1818;
|
||||
}
|
||||
|
||||
.nav-title {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #1a1818;
|
||||
}
|
||||
|
||||
/* 门店卡片 */
|
||||
.store-card {
|
||||
display: flex;
|
||||
background-color: #ffffff;
|
||||
margin: 12px;
|
||||
border-radius: 8px;
|
||||
padding: 12px;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.store-img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 6px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.store-info {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.store-name {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #1a1818;
|
||||
}
|
||||
|
||||
.store-category {
|
||||
font-size: 13px;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.store-hours {
|
||||
font-size: 13px;
|
||||
color: #666666;
|
||||
}
|
||||
|
||||
/* 地址行 */
|
||||
.address-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
background-color: #ffffff;
|
||||
padding: 12px 16px;
|
||||
}
|
||||
|
||||
.address-text {
|
||||
font-size: 13px;
|
||||
color: #999999;
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.distance-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 2px;
|
||||
flex-shrink: 0;
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.distance-icon {
|
||||
font-size: 12px;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
.distance-text {
|
||||
font-size: 12px;
|
||||
color: #999999;
|
||||
}
|
||||
|
||||
/* 商户优惠 */
|
||||
.discount-section {
|
||||
background-color: #ffffff;
|
||||
margin: 12px;
|
||||
border-radius: 8px;
|
||||
padding: 16px;
|
||||
}
|
||||
|
||||
.section-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
.discount-tag-icon {
|
||||
font-size: 16px;
|
||||
color: #0088ff;
|
||||
}
|
||||
|
||||
.discount-title {
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
color: #1a1818;
|
||||
}
|
||||
|
||||
.discount-list {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
}
|
||||
|
||||
.discount-item {
|
||||
font-size: 13px;
|
||||
color: #666666;
|
||||
line-height: 1.6;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user