Files
hhrs/pages/mine/mine.vue
T
jacobxu666 0cf11a4163 feat: 参加指南改整图展示,联系客服唤起拨号
1. 参加指南页由占位文字改为整图(hhrs_zhinan.jpg,图片待运营上传),加载失败时显示文字兜底,不再白屏

2. 我的-联系客服接入 uni.makePhoneCall,号码取 common/config.js.servicePhone(0731-88912301),与协议页公示一致

3. 站内图片域名统一为 aliyunoss.hn12301.net/hhrs(已逐个核实资源存在)
2026-09-14 23:39:00 +08:00

196 lines
4.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<view class="page">
<!-- 未登录 -->
<view class="user-section" v-if="!isLogin" @click="goLogin">
<view class="user-info">
<image class="user-avatar" src="https://aliyunoss.hn12301.net/hhrs/hhrs_wd_tx.png" mode="aspectFill" />
<text class="login-hint">点击登录</text>
</view>
</view>
<!-- 已登录 -->
<view class="user-section" v-else>
<view class="user-info">
<image class="user-avatar" src="https://aliyunoss.hn12301.net/hhrs/hhrs_wd_tx.png" mode="aspectFill" />
<view class="user-detail">
<text class="user-phone">{{ maskPhone }}</text>
</view>
</view>
<view class="logout-btn" @click="onLogout">退出登录</view>
</view>
<!-- 菜单列表 -->
<view class="menu-list">
<view class="menu-item" @click="goWinners">
<image class="menu-icon" src="https://aliyunoss.hn12301.net/hhrs/hhrs_wd_zjcx.png" mode="aspectFit" />
<text class="menu-label">用户中奖查询</text>
<u-icon name="arrow-right" color="#cccccc" size="28"></u-icon>
</view>
<view class="menu-item" @click="goGuide">
<image class="menu-icon" src="https://aliyunoss.hn12301.net/hhrs/hhrs_wd_syzn.png" mode="aspectFit" />
<text class="menu-label">使用指南</text>
<u-icon name="arrow-right" color="#cccccc" size="28"></u-icon>
</view>
<view class="menu-item" @click="goService">
<image class="menu-icon" src="https://aliyunoss.hn12301.net/hhrs/hhrs_wd_lxkf.png" mode="aspectFit" />
<text class="menu-label">联系客服</text>
<u-icon name="arrow-right" color="#cccccc" size="28"></u-icon>
</view>
</view>
</view>
</template>
<script>
import config from '@/common/config.js'
export default {
data() {
return {
isLogin: false,
phone: ''
}
},
computed: {
maskPhone() {
if (!this.phone || this.phone.length < 7) return this.phone
return this.phone.substring(0, 3) + '****' + this.phone.substring(7)
}
},
onShow() {
this.phone = uni.getStorageSync('phone') || ''
this.isLogin = !!this.phone
},
methods: {
goLogin() {
uni.navigateTo({ url: '/pages/index/login' })
},
onLogout() {
uni.showModal({
title: '提示',
content: '确定要退出登录吗?',
success: (res) => {
if (res.confirm) {
uni.removeStorageSync('token')
uni.removeStorageSync('phone')
this.isLogin = false
this.phone = ''
uni.showToast({ title: '已退出登录', icon: 'success' })
}
}
})
},
goWinners() {
uni.navigateTo({ url: '/pages/winners/winners' })
},
goGuide() {
uni.navigateTo({ url: '/pages/guide/use' })
},
goService() {
// xuchao: 唤起拨号,号码与协议页公示的统一客服电话同源(common/config.js)
uni.makePhoneCall({
phoneNumber: config.servicePhone,
fail: () => {
uni.showToast({ title: '拨号失败,客服电话 ' + config.servicePhone, icon: 'none' })
}
})
}
}
}
</script>
<style>
page {
background-color: #f2f2f7;
}
</style>
<style>
/* 用户信息 */
.user-section {
display: flex;
align-items: center;
justify-content: space-between;
background: linear-gradient(to bottom, #0066cc, #f2f2f7);
padding: 40px 16px 130px;
}
.login-hint {
font-size: 16px;
color: #ffffff;
font-weight: 500;
margin-left: 12px;
}
.user-info {
display: flex;
align-items: center;
gap: 12px;
}
.user-avatar {
width: 48px;
height: 48px;
border-radius: 50%;
background-color: #ffffff;
}
.user-detail {
display: flex;
flex-direction: column;
gap: 4px;
}
.user-name {
font-size: 16px;
font-weight: 500;
color: #ffffff;
}
.user-phone {
font-size: 14px;
color: rgba(255, 255, 255, 0.8);
}
.logout-btn {
background-color: rgba(255, 255, 255, 0.2);
color: #ffffff;
font-size: 13px;
padding: 6px 16px;
border-radius: 4px;
}
/* 菜单列表 */
.menu-list {
margin: -88px 12px 0;
background-color: #ffffff;
border-radius: 8px;
}
.menu-item {
display: flex;
align-items: center;
height: 64px;
padding: 0 16px;
border-bottom: 1px solid #f5f5f5;
}
.menu-item:last-child {
border-bottom: none;
}
.menu-icon {
width: 36rpx;
height: 36rpx;
}
.menu-label {
flex: 1;
font-size: 15px;
color: #333333;
margin-left: 12px;
}
</style>