zjk
7 小时以前 04756d85147a249adf8f2b9cdf9b1a52c3f9b954
hugray-user-miniapp/pages/contact/index.vue
@@ -18,7 +18,7 @@
        <!-- 联系方式列表:热线为纯展示文案,平台客服为绿色胶囊按钮 -->
        <view class="info-list">
            <view v-for="item in CONTACT_LIST" :key="item.key" class="info-row">
            <view v-for="item in contactList" :key="item.key" class="info-row">
                <text class="info-label">{{ item.label }}</text>
                <!-- 有 value 渲染文案,否则渲染「联系客服」按钮 -->
                <text v-if="item.value" class="info-value">{{ item.value }}</text>
@@ -32,19 +32,52 @@
</template>
<script setup>
import { ref } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { getToken } from '@/utils/request.js'
import { getContactInfo } from '@/api/index.js'
/** 状态栏高度:自定义导航栏下用于顶部留白 */
const statusBarHeight = uni.getSystemInfoSync().statusBarHeight || 0
/** 招商 / 合伙人热线:客服接口未就绪,先以常量维护(接口就绪后替换) */
const CITY_INVEST_HOTLINE = '400-451-666'
const PARTNER_RECRUIT_HOTLINE = '400-451-666'
/** 招商 / 合伙人热线兜底文案:后端未配置或请求失败时使用 */
const CITY_INVEST_HOTLINE = '-'
const PARTNER_RECRUIT_HOTLINE = '-'
/** 联系方式列表:value 为空表示该项渲染为客服按钮 */
const CONTACT_LIST = [
const contactList = ref([
    { key: 'invest', label: '城市招商热线', value: CITY_INVEST_HOTLINE },
    { key: 'partner', label: '合伙人招募', value: PARTNER_RECRUIT_HOTLINE },
    { key: 'service', label: '平台客服' }
]
])
/** 单项回填:后端有值才覆盖,为空则保留兜底文案 */
const applyHotline = (key, value) => {
    if (!value) return
    const item = contactList.value.find((it) => it.key === key)
    if (item) item.value = value
}
/**
 * 拉取平台联系方式并回填
 * 未登录(无 token)时跳过请求,直接使用兜底文案,避免在此页触发 401 跳登录;
 * 请求失败仅记录日志,不影响页面正常展示
 */
const loadContactInfo = async () => {
    if (!getToken()) return
    try {
        const res = await getContactInfo()
        const data = res.data || {}
        applyHotline('invest', data.cityHotline)
        applyHotline('partner', data.partnerRecruit)
    } catch (e) {
        console.error('[CONTACT_INFO] 获取联系方式失败,使用默认文案', e)
    }
}
onLoad(() => {
    loadContactInfo()
})
/** 返回上一页:无上级页面(如直接进入)时回到个人中心 */
const handleBack = () => {