feat: redesign public relationship services
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
{
|
||||
"usingComponents": {},
|
||||
"usingComponents": {
|
||||
"ui-service-hero": "/components/service-hero/index",
|
||||
"ui-loading": "/components/loading/index"
|
||||
},
|
||||
"navigationBarTitleText": "公益婚恋咨询"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,10 @@ import { request } from '../../utils/requestPromise'
|
||||
const app = getApp<{ globalData: { apiBase: string; token: string } }>()
|
||||
Page({
|
||||
data: {
|
||||
services: [] as Array<{ type: string; name: string; description: string; icon: string }>
|
||||
services: [] as Array<{ type: string; name: string; description: string; iconAsset: string }>,
|
||||
loading: true,
|
||||
serviceEnabled: false,
|
||||
disabledReason: '',
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
@@ -16,17 +19,46 @@ Page({
|
||||
header: { 'Authorization': `Bearer ${app.globalData.token}` }
|
||||
});
|
||||
if (res.statusCode === 200 && res.data.success) {
|
||||
this.setData({ services: res.data.data });
|
||||
const iconMap: Record<string, string> = {
|
||||
relationship_guidance: '/assets/icons/home/counseling.png',
|
||||
emotional_support: '/assets/icons/home/matchmaker.png',
|
||||
premarital_guidance: '/assets/icons/home/premarital.png',
|
||||
anti_fraud_guidance: '/assets/icons/home/anti-fraud.png',
|
||||
};
|
||||
this.setData({
|
||||
services: (res.data.data || []).map((item: any) => ({
|
||||
...item,
|
||||
iconAsset: iconMap[item.type] || '/assets/icons/home/counseling.png',
|
||||
})),
|
||||
loading: false,
|
||||
serviceEnabled: true,
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.setData({ loading: false, serviceEnabled: false, disabledReason: res.data?.message || '服务暂不可用' });
|
||||
} catch (e) {
|
||||
console.error('加载咨询介绍失败', e);
|
||||
this.setData({ loading: false, serviceEnabled: false, disabledReason: '暂时无法获取服务状态' });
|
||||
}
|
||||
},
|
||||
|
||||
onSelectService(e: any) {
|
||||
if (!this.data.serviceEnabled) {
|
||||
wx.showToast({ title: this.data.disabledReason || '服务暂不可用', icon: 'none' });
|
||||
return;
|
||||
}
|
||||
const type = e.currentTarget.dataset.type;
|
||||
wx.navigateTo({
|
||||
url: `/pages/counseling-request/counseling-request?type=${type}`
|
||||
});
|
||||
},
|
||||
|
||||
onBook() {
|
||||
const type = this.data.services[0]?.type || 'relationship_guidance';
|
||||
this.onSelectService({ currentTarget: { dataset: { type } } });
|
||||
},
|
||||
|
||||
onMyServices() {
|
||||
wx.navigateTo({ url: '/pages/my-counseling/my-counseling' });
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1 +1,19 @@
|
||||
<view class="service-page reference-page"><view class="hero"><text class="eyebrow">U55 公益婚恋咨询</text><text class="hero-title">当关系让你困扰,可以认真谈一谈</text><text class="hero-desc">由婚恋咨询人员提供关系与情绪支持;咨询服务与公益红娘服务彼此独立。</text></view><view class="content"><view class="block"><text class="block-title">我们可以提供的帮助</text><text class="block-subtitle">选择最接近当前需要的方向</text><view class="card"><view class="feature-row" wx:for="{{services}}" wx:key="type" bindtap="onSelectService" data-type="{{item.type}}"><view class="feature-icon">{{index+1}}</view><view class="feature-copy"><text class="feature-title">{{item.name}}</text><text class="feature-desc">{{item.description}}</text></view><text class="arrow">›</text></view></view></view><view class="notice">咨询内容会按敏感信息保护。公益红娘不能查看咨询正文,咨询人员也只能处理明确分配给自己的服务。</view></view></view>
|
||||
<view class="service-shell app-page reference-page">
|
||||
<ui-service-hero eyebrow="专业陪伴 · 严格保密" title="婚恋咨询" subtitle="倾听你的心声,陪你梳理关系与情绪困扰" image-src="/assets/service/counseling-hero.jpg" tone="rose" />
|
||||
<view class="service-content">
|
||||
<view class="service-status"><text class="service-status__label">服务状态</text><text class="service-status__value {{!serviceEnabled ? 'disabled' : ''}}">{{loading ? '获取中' : (serviceEnabled ? '可预约' : disabledReason)}}</text></view>
|
||||
|
||||
<view class="block"><text class="block-title">我们可以提供的帮助</text><text class="block-subtitle">选择最接近当前需要的方向</text>
|
||||
<ui-loading wx:if="{{loading}}" mode="skeleton" rows="2" />
|
||||
<view wx:else class="service-topics">
|
||||
<view class="service-topic" wx:for="{{services}}" wx:key="type" bindtap="onSelectService" data-type="{{item.type}}">
|
||||
<view class="service-topic__icon"><image src="{{item.iconAsset}}" mode="aspectFit" /></view>
|
||||
<text class="service-topic__title">{{item.name}}</text><text class="service-topic__desc">{{item.description}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="privacy-note"><image src="/assets/icons/home/anti-fraud.png" mode="aspectFit" /><text>咨询内容按敏感信息保护。公益红娘不能查看咨询正文,咨询人员仅处理明确分配给自己的服务。</text></view>
|
||||
</view>
|
||||
<view class="fixed-action"><view class="service-actions"><view class="secondary-btn" bindtap="onMyServices">我的咨询</view><view class="primary-btn {{!serviceEnabled ? 'disabled' : ''}}" bindtap="onBook">预约咨询</view></view></view>
|
||||
</view>
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"ui-matchmaker-card": "/components/matchmaker-card/index",
|
||||
"ui-button": "/components/button/index",
|
||||
"ui-loading": "/components/loading/index",
|
||||
"ui-empty": "/components/empty/index"
|
||||
"ui-empty": "/components/empty/index",
|
||||
"ui-service-hero": "/components/service-hero/index"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,89 +1,39 @@
|
||||
<!-- 公益红娘服务页 U33 -->
|
||||
<view class="mm-page reference-page">
|
||||
<ui-nav-bar
|
||||
title="公益红娘"
|
||||
status-bar-height="{{statusBarHeight}}"
|
||||
nav-bar-height="{{navBarHeight}}"
|
||||
bind:back="onBack"
|
||||
/>
|
||||
<view class="mm-page app-page reference-page">
|
||||
<ui-nav-bar title="公益红娘" status-bar-height="{{statusBarHeight}}" nav-bar-height="{{navBarHeight}}" bind:back="onBack" />
|
||||
<ui-service-hero eyebrow="专业牵线 · 公益助力" title="公益红娘" subtitle="认真倾听你的期待,帮助你认识更合适的人" image-src="/assets/service/matchmaker-hero.jpg" tone="rose" />
|
||||
|
||||
<!-- 首次加载 -->
|
||||
<view wx:if="{{loading && !firstLoaded}}" class="mm-loading">
|
||||
<ui-loading mode="skeleton" rows="2" />
|
||||
<view class="mm-promises">
|
||||
<view class="mm-promise"><image src="/assets/icons/home/matchmaker.png" mode="aspectFit" /><text class="mm-promise__title">公益免费</text><text>不收取服务费用</text></view>
|
||||
<view class="mm-promise"><image src="/assets/icons/home/find-object.png" mode="aspectFit" /><text class="mm-promise__title">真实匹配</text><text>基于审核资料推荐</text></view>
|
||||
<view class="mm-promise"><image src="/assets/icons/home/anti-fraud.png" mode="aspectFit" /><text class="mm-promise__title">隐私保护</text><text>由你本人决定意向</text></view>
|
||||
</view>
|
||||
|
||||
<view wx:if="{{loading && !firstLoaded}}" class="mm-loading"><ui-loading mode="skeleton" rows="2" /></view>
|
||||
<view wx:else class="mm-body">
|
||||
<!-- 进行中的服务 -->
|
||||
<view wx:if="{{activeService}}" class="mm-section">
|
||||
<ui-section-header title="我的服务" subtitle="当前进行中" />
|
||||
<ui-matchmaker-card
|
||||
service="{{activeService}}"
|
||||
show-recommendations="{{showRecommendations}}"
|
||||
bind:view="onViewService"
|
||||
bind:recommendations="onViewRecommendations"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<!-- 无活跃服务:空状态 + 申请入口 -->
|
||||
<view wx:else class="mm-empty">
|
||||
<ui-empty
|
||||
title="还没有红娘服务"
|
||||
description="公益红娘可以基于你的择偶条件,为你推荐合适的对象"
|
||||
illustration="default"
|
||||
actions="{{emptyActions}}"
|
||||
bind:action="onEmptyAction"
|
||||
/>
|
||||
</view>
|
||||
|
||||
<!-- 申请红娘帮助 CTA(无活跃服务时主入口;有活跃服务时仍可重新申请) -->
|
||||
<view class="mm-section">
|
||||
<ui-button
|
||||
variant="{{activeService ? 'secondary' : 'primary'}}"
|
||||
size="lg"
|
||||
block
|
||||
bind:tap="onApplyService"
|
||||
>{{activeService ? '提交新的红娘需求' : '申请红娘帮助'}}</ui-button>
|
||||
<ui-section-header title="申请状态" subtitle="红娘不会代替你表达喜欢" />
|
||||
<ui-matchmaker-card wx:if="{{activeService}}" service="{{activeService}}" show-recommendations="{{showRecommendations}}" bind:view="onViewService" bind:recommendations="onViewRecommendations" />
|
||||
<view wx:else class="mm-no-service"><image src="/assets/icons/home/matchmaker.png" mode="aspectFit" /><view><text class="mm-no-service__title">暂未申请红娘服务</text><text class="mm-no-service__desc">提交需求后,工作人员会根据你的择偶条件提供公益协助</text></view></view>
|
||||
</view>
|
||||
|
||||
<!-- 红娘能力说明(AGENTS 第 1 条:公益免费,无付费/会员差异化) -->
|
||||
<view class="mm-section">
|
||||
<view class="mm-cap card-base">
|
||||
<ui-section-header title="红娘能帮您什么?" />
|
||||
<view class="mm-cap__list">
|
||||
<view wx:for="{{capabilities}}" wx:key="*this" class="mm-cap__item">
|
||||
<view class="mm-cap__dot"></view>
|
||||
<text class="mm-cap__text">{{item}}</text>
|
||||
</view>
|
||||
</view>
|
||||
<view class="mm-cap__note">
|
||||
<text>公益服务,全程免费。</text>
|
||||
</view>
|
||||
<ui-section-header title="红娘可以如何帮助" subtitle="陪伴沟通,尊重你的每次决定" />
|
||||
<view class="mm-capability-grid">
|
||||
<view wx:for="{{capabilities}}" wx:key="*this" class="mm-capability"><image src="/assets/icons/home/counseling.png" mode="aspectFit" /><text>{{item}}</text></view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 历史服务列表 -->
|
||||
<view wx:if="{{historyServices.length}}" class="mm-section">
|
||||
<ui-section-header title="历史服务" subtitle="共 {{historyServices.length}} 条" />
|
||||
<view class="mm-history">
|
||||
<view
|
||||
wx:for="{{historyServices}}"
|
||||
wx:key="serviceId"
|
||||
class="mm-history__item card-base"
|
||||
data-service-id="{{item.serviceId}}"
|
||||
bindtap="onHistoryTap"
|
||||
>
|
||||
<view class="mm-history__row">
|
||||
<text class="mm-history__title">公益红娘服务</text>
|
||||
<text class="mm-history__status mm-history__status--{{item.status}}">{{item.statusText || item.status}}</text>
|
||||
</view>
|
||||
<view wx:if="{{item.matchmakerName}}" class="mm-history__meta">
|
||||
红娘:{{item.matchmakerName}}
|
||||
</view>
|
||||
<view wx:if="{{item.lastFollowUpAtText || item.lastFollowUpAt}}" class="mm-history__meta">
|
||||
最近跟进:{{item.lastFollowUpAtText || item.lastFollowUpAt}}
|
||||
</view>
|
||||
<view wx:for="{{historyServices}}" wx:key="serviceId" class="mm-history__item" data-service-id="{{item.serviceId}}" bindtap="onHistoryTap">
|
||||
<view><text class="mm-history__title">公益红娘服务</text><text wx:if="{{item.matchmakerName}}" class="mm-history__meta">红娘:{{item.matchmakerName}}</text></view>
|
||||
<text class="mm-history__status">{{item.statusText || item.status}}</text>
|
||||
<image src="/assets/icons/ui/chevron-right.png" mode="aspectFit" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="mm-fixed-action"><view class="mm-apply" bindtap="onApplyService">{{activeService ? '提交新的红娘需求' : '申请红娘服务'}}</view></view>
|
||||
</view>
|
||||
|
||||
@@ -1,113 +1 @@
|
||||
/**
|
||||
* 公益红娘服务页 U33
|
||||
*/
|
||||
|
||||
.mm-page {
|
||||
min-height: 100vh;
|
||||
background: var(--color-bg-page);
|
||||
padding-bottom: var(--spacing-section);
|
||||
}
|
||||
|
||||
/* ============ 加载 ============ */
|
||||
.mm-loading {
|
||||
padding: var(--spacing-3) var(--spacing-page-x);
|
||||
}
|
||||
|
||||
.mm-body {
|
||||
padding-top: var(--spacing-2);
|
||||
}
|
||||
|
||||
.mm-section {
|
||||
padding: var(--spacing-2) var(--spacing-page-x);
|
||||
}
|
||||
|
||||
/* ============ 空状态 ============ */
|
||||
.mm-empty {
|
||||
padding-top: 80rpx;
|
||||
}
|
||||
|
||||
/* ============ 红娘能力说明 ============ */
|
||||
.mm-cap {
|
||||
margin-top: var(--spacing-2);
|
||||
}
|
||||
|
||||
.mm-cap__list {
|
||||
margin-top: var(--spacing-3);
|
||||
}
|
||||
|
||||
.mm-cap__item {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
gap: var(--spacing-2);
|
||||
padding: var(--spacing-1) 0;
|
||||
}
|
||||
|
||||
.mm-cap__dot {
|
||||
width: 12rpx;
|
||||
height: 12rpx;
|
||||
margin-top: 14rpx;
|
||||
border-radius: 50%;
|
||||
background: var(--color-primary);
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.mm-cap__text {
|
||||
flex: 1;
|
||||
font-size: var(--font-size-sm);
|
||||
color: var(--color-text-secondary);
|
||||
line-height: var(--line-height-relaxed);
|
||||
}
|
||||
|
||||
.mm-cap__note {
|
||||
margin-top: var(--spacing-3);
|
||||
padding-top: var(--spacing-3);
|
||||
border-top: var(--border-width) solid var(--color-divider);
|
||||
font-size: var(--font-size-xs);
|
||||
color: var(--color-success);
|
||||
}
|
||||
|
||||
/* ============ 历史服务 ============ */
|
||||
.mm-history {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--spacing-2);
|
||||
margin-top: var(--spacing-2);
|
||||
}
|
||||
|
||||
.mm-history__item {
|
||||
padding: var(--spacing-3);
|
||||
}
|
||||
|
||||
.mm-history__row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: var(--spacing-1);
|
||||
}
|
||||
|
||||
.mm-history__title {
|
||||
font-size: var(--font-size-md);
|
||||
font-weight: var(--font-weight-semibold);
|
||||
color: var(--color-text-primary);
|
||||
}
|
||||
|
||||
.mm-history__status {
|
||||
font-size: var(--font-size-xs);
|
||||
padding: var(--spacing-1) var(--spacing-2);
|
||||
border-radius: var(--radius-sm);
|
||||
background: var(--color-bg-disabled);
|
||||
color: var(--color-text-tertiary);
|
||||
}
|
||||
|
||||
.mm-history__status--completed,
|
||||
.mm-history__status--cancelled {
|
||||
background: var(--color-bg-disabled);
|
||||
color: var(--color-text-disabled);
|
||||
}
|
||||
|
||||
.mm-history__meta {
|
||||
font-size: var(--font-size-xs);
|
||||
color: var(--color-text-tertiary);
|
||||
line-height: var(--line-height-normal);
|
||||
margin-top: var(--spacing-1);
|
||||
}
|
||||
.mm-page{min-height:100vh;padding-bottom:calc(136rpx + env(safe-area-inset-bottom));background:#F4F5FA}.mm-promises{position:relative;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);margin:-22rpx 24rpx 0;padding:22rpx 8rpx;border-radius:28rpx;background:#fff;box-shadow:var(--mini-shadow)}.mm-promise{display:flex;flex-direction:column;align-items:center;padding:0 8rpx;text-align:center;color:#8A8FA4;font-size:17rpx;line-height:1.35}.mm-promise image{width:46rpx;height:46rpx;margin-bottom:8rpx}.mm-promise__title{margin-bottom:4rpx;color:#303654;font-size:21rpx;font-weight:650}.mm-loading{padding:30rpx 24rpx}.mm-body{padding-top:8rpx}.mm-section{padding:8rpx 24rpx}.mm-no-service{display:flex;align-items:center;gap:18rpx;margin-top:10rpx;padding:24rpx;border-radius:26rpx;background:#fff;box-shadow:0 8rpx 28rpx rgba(35,35,95,.06)}.mm-no-service image{width:68rpx;height:68rpx}.mm-no-service>view{display:flex;flex:1;flex-direction:column}.mm-no-service__title{color:#283056;font-size:25rpx;font-weight:650}.mm-no-service__desc{margin-top:7rpx;color:#858A9E;font-size:20rpx;line-height:1.5}.mm-capability-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14rpx;margin-top:10rpx}.mm-capability{display:flex;align-items:center;gap:12rpx;min-height:88rpx;padding:16rpx;border-radius:22rpx;background:#fff;color:#555D79;font-size:20rpx;line-height:1.4;box-shadow:0 8rpx 24rpx rgba(35,35,95,.05)}.mm-capability image{width:36rpx;height:36rpx;flex:none}.mm-history{overflow:hidden;margin-top:10rpx;border-radius:24rpx;background:#fff}.mm-history__item{display:flex;align-items:center;min-height:92rpx;padding:0 20rpx;border-bottom:1rpx solid #EFF0F5}.mm-history__item:last-child{border-bottom:0}.mm-history__item>view{display:flex;flex:1;flex-direction:column}.mm-history__title{color:#303654;font-size:23rpx;font-weight:600}.mm-history__meta{margin-top:5rpx;color:#8A8FA4;font-size:18rpx}.mm-history__status{margin-right:8rpx;color:#8A6F91;font-size:19rpx}.mm-history__item>image{width:24rpx;height:24rpx}.mm-fixed-action{position:fixed;z-index:100;right:0;bottom:0;left:0;padding:18rpx 24rpx calc(18rpx + env(safe-area-inset-bottom));border-top:1rpx solid #EFF0F5;background:rgba(255,255,255,.96)}.mm-apply{display:flex;align-items:center;justify-content:center;height:88rpx;border-radius:44rpx;background:linear-gradient(135deg,var(--mini-accent-coral),var(--mini-accent-pink));color:#fff;font-size:28rpx;font-weight:650;box-shadow:0 10rpx 24rpx rgba(255,92,130,.22)}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
{
|
||||
"usingComponents": {},
|
||||
"usingComponents": {
|
||||
"ui-service-hero": "/components/service-hero/index"
|
||||
},
|
||||
"navigationBarTitleText": "婚前辅导"
|
||||
}
|
||||
|
||||
@@ -1,5 +1,52 @@
|
||||
import { request } from '../../utils/requestPromise'
|
||||
|
||||
const app = getApp<{ globalData: { apiBase: string; token: string } }>()
|
||||
|
||||
Page({
|
||||
data: {
|
||||
topics: [
|
||||
{ title: '沟通与期望', description: '表达需求、倾听差异,形成共同约定', iconAsset: '/assets/icons/home/counseling.png' },
|
||||
{ title: '家庭与责任', description: '讨论家庭角色与双方家庭关系', iconAsset: '/assets/icons/home/premarital.png' },
|
||||
{ title: '财务与规划', description: '了解消费习惯并讨论未来安排', iconAsset: '/assets/icons/home/classroom.png' },
|
||||
{ title: '冲突与修复', description: '学习处理分歧并建立修复方式', iconAsset: '/assets/icons/home/anti-fraud.png' },
|
||||
],
|
||||
loading: true,
|
||||
serviceEnabled: false,
|
||||
disabledReason: '',
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
this.loadAvailability()
|
||||
},
|
||||
|
||||
async loadAvailability() {
|
||||
try {
|
||||
const res = await request<any>({
|
||||
url: `${app.globalData.apiBase}/counseling/services/intro`,
|
||||
header: { Authorization: `Bearer ${app.globalData.token}` },
|
||||
})
|
||||
const services = res.statusCode === 200 && res.data.success ? (res.data.data || []) : []
|
||||
const serviceEnabled = services.some((item: any) => item.type === 'premarital_guidance')
|
||||
this.setData({
|
||||
loading: false,
|
||||
serviceEnabled,
|
||||
disabledReason: serviceEnabled ? '' : (res.data?.message || '服务暂不可用'),
|
||||
})
|
||||
} catch (error) {
|
||||
console.error('加载婚前辅导服务状态失败', error)
|
||||
this.setData({ loading: false, serviceEnabled: false, disabledReason: '暂时无法获取服务状态' })
|
||||
}
|
||||
},
|
||||
|
||||
onApply() {
|
||||
wx.navigateTo({ url: '/pages/premarital-request/premarital-request' });
|
||||
}
|
||||
});
|
||||
if (!this.data.serviceEnabled) {
|
||||
wx.showToast({ title: this.data.disabledReason || '服务暂不可用', icon: 'none' })
|
||||
return
|
||||
}
|
||||
wx.navigateTo({ url: '/pages/premarital-request/premarital-request?type=premarital_guidance' })
|
||||
},
|
||||
|
||||
onMyServices() {
|
||||
wx.navigateTo({ url: '/pages/my-counseling/my-counseling' })
|
||||
},
|
||||
})
|
||||
|
||||
@@ -1 +1,18 @@
|
||||
<view class="service-page reference-page"><view class="hero"><text class="eyebrow">U58 婚前辅导</text><text class="hero-title">在进入婚姻前,把重要的事认真谈清楚</text><text class="hero-desc">帮助双方讨论共同生活、家庭责任与沟通方式,可邀请伴侣共同参与。</text></view><view class="content"><view class="block"><text class="block-title">辅导内容</text><view class="card"><view class="feature-row"><view class="feature-icon">沟</view><view class="feature-copy"><text class="feature-title">沟通与期望</text><text class="feature-desc">表达需求、倾听差异,形成可以共同遵守的约定</text></view></view><view class="feature-row"><view class="feature-icon">家</view><view class="feature-copy"><text class="feature-title">家庭与责任</text><text class="feature-desc">讨论家庭角色、财务安排与双方家庭关系</text></view></view><view class="feature-row"><view class="feature-icon">伴</view><view class="feature-copy"><text class="feature-title">共同生活</text><text class="feature-desc">对生活方式、未来计划和冲突处理建立共识</text></view></view></view></view><view class="notice">双方共同参与效果更好,但必须基于自愿,不会因为一方申请而自动通知或要求另一方参加。</view></view><view class="fixed-action"><view class="primary-btn" bindtap="onApply">申请婚前辅导</view></view></view>
|
||||
<view class="service-shell app-page reference-page">
|
||||
<ui-service-hero eyebrow="共同成长 · 面向未来" title="婚前辅导" subtitle="在进入婚姻前,把重要的事认真谈清楚" image-src="/assets/service/premarital-hero.jpg" tone="rose" />
|
||||
<view class="service-content">
|
||||
<view class="service-status"><text class="service-status__label">服务状态</text><text class="service-status__value {{!serviceEnabled ? 'disabled' : ''}}">{{loading ? '获取中' : (serviceEnabled ? '可预约' : disabledReason)}}</text></view>
|
||||
|
||||
<view class="block"><text class="block-title">辅导内容</text><text class="block-subtitle">科学指导,走向更稳的幸福</text>
|
||||
<view class="service-topics">
|
||||
<view class="service-topic" wx:for="{{topics}}" wx:key="title">
|
||||
<view class="service-topic__icon"><image src="{{item.iconAsset}}" mode="aspectFit" /></view>
|
||||
<text class="service-topic__title">{{item.title}}</text><text class="service-topic__desc">{{item.description}}</text>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="privacy-note"><image src="/assets/icons/home/premarital.png" mode="aspectFit" /><text>双方共同参与效果更好,但必须基于自愿;不会因为一方申请而自动通知或要求另一方参加。</text></view>
|
||||
</view>
|
||||
<view class="fixed-action"><view class="service-actions"><view class="secondary-btn" bindtap="onMyServices">服务记录</view><view class="primary-btn {{!serviceEnabled ? 'disabled' : ''}}" bindtap="onApply">预约辅导</view></view></view>
|
||||
</view>
|
||||
|
||||
Reference in New Issue
Block a user