update:新增门店vip相关
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user