|
@@ -171,19 +171,34 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
- <!-- 财富服务 8 宫格 -->
|
|
|
|
|
- <view class="section">
|
|
|
|
|
|
|
+ <!-- 保单管理 -->
|
|
|
|
|
+ <view class="section" v-if="insuranceLoaded">
|
|
|
<view class="section-header">
|
|
<view class="section-header">
|
|
|
- <text class="section-title">🚀 财富服务</text>
|
|
|
|
|
|
|
+ <text class="section-title">🛡️ 保单管理</text>
|
|
|
|
|
+ <text class="section-more" @click="goToInsuranceList">查看更多 ›</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="insurance-card" v-if="insuranceList.length === 0">
|
|
|
|
|
+ <view class="insurance-empty">
|
|
|
|
|
+ <text class="insurance-empty-icon">📋</text>
|
|
|
|
|
+ <text class="insurance-empty-text">暂无保单</text>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="service-grid">
|
|
|
|
|
- <view class="service-item" v-for="item in serviceList" :key="item.label" @click="onServiceClick(item.action)">
|
|
|
|
|
- <view class="service-icon-wrap">
|
|
|
|
|
- <text class="service-icon">{{ item.icon }}</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <text class="service-label">{{ item.label }}</text>
|
|
|
|
|
|
|
+ <view class="insurance-card" v-else>
|
|
|
|
|
+ <view class="insurance-item" v-for="(item, idx) in insuranceList" :key="idx" @click="goToInsuranceList">
|
|
|
|
|
+ <view class="insurance-item-header">
|
|
|
|
|
+ <text class="insurance-item-name">{{ item.policyName }}</text>
|
|
|
|
|
+ <text class="insurance-item-status" :class="'status-' + item.status">{{ getPolicyStatusLabel(item.status) }}</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="insurance-item-row">
|
|
|
|
|
+ <text class="insurance-item-label">保险公司</text>
|
|
|
|
|
+ <text class="insurance-item-value">{{ item.insuranceCompany || '未知' }}</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="insurance-item-row">
|
|
|
|
|
+ <text class="insurance-item-label">被保人</text>
|
|
|
|
|
+ <text class="insurance-item-value">{{ item.insuredPerson }}</text>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
<!-- 富维度介绍卡片 -->
|
|
<!-- 富维度介绍卡片 -->
|
|
@@ -208,6 +223,7 @@ import {
|
|
|
getReferralSummary,
|
|
getReferralSummary,
|
|
|
getCommissionSummary,
|
|
getCommissionSummary,
|
|
|
getFamilyMemberList,
|
|
getFamilyMemberList,
|
|
|
|
|
+ getInsuranceList,
|
|
|
productList
|
|
productList
|
|
|
} from '../../utils/api.js'
|
|
} from '../../utils/api.js'
|
|
|
import nav from '../../utils/nav.js'
|
|
import nav from '../../utils/nav.js'
|
|
@@ -267,6 +283,9 @@ export default {
|
|
|
familyMembersVisible: [],
|
|
familyMembersVisible: [],
|
|
|
selectedMemberId: null,
|
|
selectedMemberId: null,
|
|
|
guestProducts: [],
|
|
guestProducts: [],
|
|
|
|
|
+ // 保单列表
|
|
|
|
|
+ insuranceList: [],
|
|
|
|
|
+ insuranceLoaded: false,
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
computed: {
|
|
computed: {
|
|
@@ -312,6 +331,7 @@ export default {
|
|
|
this.loadWealthDetail()
|
|
this.loadWealthDetail()
|
|
|
this.loadWealthData()
|
|
this.loadWealthData()
|
|
|
this.loadFamilyMembersVisible()
|
|
this.loadFamilyMembersVisible()
|
|
|
|
|
+ this.loadInsuranceList()
|
|
|
this._watchPageReady()
|
|
this._watchPageReady()
|
|
|
},
|
|
},
|
|
|
/** 每月引导语 */
|
|
/** 每月引导语 */
|
|
@@ -346,6 +366,22 @@ export default {
|
|
|
self.familyMembersVisible = []
|
|
self.familyMembersVisible = []
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
|
|
+ loadInsuranceList() {
|
|
|
|
|
+ var self = this
|
|
|
|
|
+ this.insuranceLoaded = false
|
|
|
|
|
+ getInsuranceList({}).then(function(res) {
|
|
|
|
|
+ if (res && res.code === 200) {
|
|
|
|
|
+ self.insuranceList = (res.data || []).slice(0, 3)
|
|
|
|
|
+ }
|
|
|
|
|
+ self.insuranceLoaded = true
|
|
|
|
|
+ }).catch(function() {
|
|
|
|
|
+ self.insuranceLoaded = true
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+ getPolicyStatusLabel: function(status) {
|
|
|
|
|
+ var map = { active: '有效', expired: '已过期', cancelled: '已取消' }
|
|
|
|
|
+ return map[status] || status || '未知'
|
|
|
|
|
+ },
|
|
|
goLogin() {
|
|
goLogin() {
|
|
|
uni.navigateTo({ url: '/pages/login/login' })
|
|
uni.navigateTo({ url: '/pages/login/login' })
|
|
|
},
|
|
},
|
|
@@ -465,6 +501,9 @@ export default {
|
|
|
goToInsurance() {
|
|
goToInsurance() {
|
|
|
uni.navigateTo({ url: '/pages/wealth-sub/insurance-list' })
|
|
uni.navigateTo({ url: '/pages/wealth-sub/insurance-list' })
|
|
|
},
|
|
},
|
|
|
|
|
+ goToInsuranceList: function() {
|
|
|
|
|
+ uni.navigateTo({ url: '/pages/wealth-sub/insurance-list' })
|
|
|
|
|
+ },
|
|
|
goToCreator() {
|
|
goToCreator() {
|
|
|
uni.navigateTo({ url: '/pages/promotion/index' })
|
|
uni.navigateTo({ url: '/pages/promotion/index' })
|
|
|
},
|
|
},
|
|
@@ -946,6 +985,53 @@ export default {
|
|
|
font-weight: bold;
|
|
font-weight: bold;
|
|
|
color: #F59E0B;
|
|
color: #F59E0B;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+/* 保单管理 */
|
|
|
|
|
+.insurance-card {
|
|
|
|
|
+ background: #fff;
|
|
|
|
|
+ border-radius: 20rpx;
|
|
|
|
|
+ padding: 24rpx;
|
|
|
|
|
+ box-shadow: 0 2rpx 8rpx rgba(0,0,0,0.08);
|
|
|
|
|
+}
|
|
|
|
|
+.insurance-empty {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding: 40rpx 0;
|
|
|
|
|
+}
|
|
|
|
|
+.insurance-empty-icon { font-size: 60rpx; }
|
|
|
|
|
+.insurance-empty-text { font-size: 24rpx; color: #999; margin-top: 12rpx; }
|
|
|
|
|
+.insurance-item {
|
|
|
|
|
+ padding: 16rpx 0;
|
|
|
|
|
+ border-bottom: 1rpx solid #f5f5f5;
|
|
|
|
|
+}
|
|
|
|
|
+.insurance-item:last-child { border-bottom: none; }
|
|
|
|
|
+.insurance-item-header {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ margin-bottom: 8rpx;
|
|
|
|
|
+}
|
|
|
|
|
+.insurance-item-name {
|
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
|
+ font-weight: 600;
|
|
|
|
|
+ color: #333;
|
|
|
|
|
+}
|
|
|
|
|
+.insurance-item-status {
|
|
|
|
|
+ font-size: 20rpx;
|
|
|
|
|
+ padding: 4rpx 12rpx;
|
|
|
|
|
+ border-radius: 8rpx;
|
|
|
|
|
+}
|
|
|
|
|
+.insurance-item-status.status-active { background: #DCFCE7; color: #16A34A; }
|
|
|
|
|
+.insurance-item-status.status-expired { background: #FEF2F2; color: #DC2626; }
|
|
|
|
|
+.insurance-item-status.status-cancelled { background: #F5F5F5; color: #999; }
|
|
|
|
|
+.insurance-item-row {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ padding: 4rpx 0;
|
|
|
|
|
+}
|
|
|
|
|
+.insurance-item-label { font-size: 22rpx; color: #999; }
|
|
|
|
|
+.insurance-item-value { font-size: 22rpx; color: #666; }
|
|
|
</style>
|
|
</style>
|
|
|
|
|
|
|
|
/* 月度引导语 */
|
|
/* 月度引导语 */
|