Files
shoot-miniprograms/src/pages/coin/vip-intro.vue
T

49 lines
1.5 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.
<script setup>
import { ref } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import Container from "@/components/Container.vue";
import CoinHeader from "./components/CoinHeader.vue";
import { getStoreVipIntroAPI } from "@/apis";
const content = ref("");
const loading = ref(false);
const failed = ref(false);
const loadIntroduction = async () => {
if (loading.value) return;
loading.value = true;
failed.value = false;
try {
const result = await getStoreVipIntroAPI();
if (typeof result?.content !== "string") {
throw new Error("体验中心 VIP 介绍响应格式异常");
}
// 保留服务端原文与换行,空白内容单独展示提示。
content.value = result.content;
} catch (error) {
failed.value = true;
console.error("加载体验中心 VIP 介绍失败", error);
} finally {
loading.value = false;
}
};
onLoad(loadIntroduction);
</script>
<template>
<Container :bgType="6" bgColor="#22222e" :isHome="true">
<template #header><CoinHeader title="体验中心VIP介绍" /></template>
<view class="vip-intro">
<text v-if="loading">加载中...</text>
<text v-else-if="failed" @click="loadIntroduction">加载失败,点击重试</text>
<text v-else-if="content.trim()">{{ content }}</text>
<text v-else>暂无介绍内容</text>
</view>
</Container>
</template>
<style scoped lang="scss">
.vip-intro { padding: 32rpx 28rpx; color: #ffffff; font-size: 28rpx; line-height: 44rpx; white-space: pre-wrap; }
</style>