fix: 充值成功与记录页面增加联系客服,apikey教程更改
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup xmlns="http://www.w3.org/1999/html">
|
||||||
import { CircleCheck } from '@element-plus/icons-vue';
|
import { CircleCheck } from '@element-plus/icons-vue';
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||||
import { onMounted, ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
@@ -239,14 +239,43 @@ onMounted(async () => {
|
|||||||
<!-- 使用说明 -->
|
<!-- 使用说明 -->
|
||||||
<div v-if="apiKey" class="usage-guide">
|
<div v-if="apiKey" class="usage-guide">
|
||||||
<el-divider />
|
<el-divider />
|
||||||
<h3>使用说明</h3>
|
|
||||||
<div class="guide-content">
|
<div class="max-w-4xl mx-auto p-4 space-y-4">
|
||||||
|
<!-- 标题链接 -->
|
||||||
|
<h1 class="text-2xl font-bold text-gray-800 hover:text-blue-600 transition-colors">
|
||||||
|
<a
|
||||||
|
href="https://ccnetcore.com/article/3a1bc4d1-6a7d-751d-91cc-2817eb2ddcde"
|
||||||
|
target="_blank"
|
||||||
|
class="flex items-center gap-2 group"
|
||||||
|
title="点击跳转玩法指南专栏"
|
||||||
|
>
|
||||||
|
【意心Ai】AI工具玩法指南
|
||||||
|
<span class="text-sm text-blue-500 opacity-0 group-hover:opacity-100 transition-opacity">
|
||||||
|
→ 点击查看完整指南
|
||||||
|
</span>
|
||||||
|
</a>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<!-- iframe 容器(关键修复部分) -->
|
||||||
|
<div class="relative w-full overflow-auto rounded-xl shadow-lg border border-gray-200 bg-gray-50">
|
||||||
|
<!-- 自适应缩放 iframe -->
|
||||||
|
<iframe
|
||||||
|
src="https://ccnetcore.com/article/3a1bc4d1-6a7d-751d-91cc-2817eb2ddcde"
|
||||||
|
class="min-w-full h-[700px] scale-100 hover:scale-[0.98] transition-transform duration-300"
|
||||||
|
loading="lazy"
|
||||||
|
sandbox="allow-scripts allow-same-origin allow-popups"
|
||||||
|
@load="document.querySelector('.iframe-loading')?.remove()"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div v-if="false" class="guide-content">
|
||||||
<p><strong>API地址:</strong>https://ai.ccnetcore.com</p>
|
<p><strong>API地址:</strong>https://ai.ccnetcore.com</p>
|
||||||
<p><strong>密钥:</strong>上面申请的token</p>
|
<p><strong>密钥:</strong>上面申请的token</p>
|
||||||
<p><strong>模型:</strong>聊天界面显示的模型名称</p>
|
<p><strong>模型:</strong>聊天界面显示的模型名称</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="guide-images">
|
<div v-if="false" class="guide-images">
|
||||||
<el-image
|
<el-image
|
||||||
style="max-width: 100%; margin: 10px 0;"
|
style="max-width: 100%; margin: 10px 0;"
|
||||||
src="/images/api_usage_instructions.png"
|
src="/images/api_usage_instructions.png"
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { List, Refresh, Search } from '@element-plus/icons-vue';
|
import { ChatLineRound, List, Refresh, Search } from '@element-plus/icons-vue';
|
||||||
|
import { ElMessage } from 'element-plus';
|
||||||
import { computed, onMounted, ref } from 'vue';
|
import { computed, onMounted, ref } from 'vue';
|
||||||
import { getRechargeLog } from '@/api/model/index.ts';
|
import { getRechargeLog } from '@/api/model/index.ts';
|
||||||
|
import { isUserVip } from '@/utils/user.ts';
|
||||||
|
|
||||||
interface RechargeLog {
|
interface RechargeLog {
|
||||||
id: string;
|
id: string;
|
||||||
@@ -15,11 +17,48 @@ interface RechargeLog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
const innerVisibleContact = ref(false);
|
||||||
const logData = ref<RechargeLog[]>([]);
|
const logData = ref<RechargeLog[]>([]);
|
||||||
const searchText = ref('');
|
const searchText = ref('');
|
||||||
const currentSort = ref({ prop: '', order: '' });
|
const currentSort = ref({ prop: '', order: '' });
|
||||||
const currentPage = ref(1);
|
const currentPage = ref(1);
|
||||||
const pageSize = ref(10);
|
const pageSize = ref(10);
|
||||||
|
const showWechatFullscreen = ref(false);
|
||||||
|
const showWxGroupFullscreen = ref(false);
|
||||||
|
|
||||||
|
const wxSrc = computed(
|
||||||
|
() => `${import.meta.env.VITE_WEB_BASE_API}/wwwroot/aihub/wx.png`,
|
||||||
|
);
|
||||||
|
const wxGroupQD = computed(
|
||||||
|
() => `${import.meta.env.VITE_WEB_BASE_API}/wwwroot/aihub/jlq.png`,
|
||||||
|
);
|
||||||
|
|
||||||
|
// 复制微信号
|
||||||
|
function copyWechatId() {
|
||||||
|
navigator.clipboard.writeText('chengzilaoge520').then(() => {
|
||||||
|
ElMessage({
|
||||||
|
message: '微信号已复制到剪贴板',
|
||||||
|
type: 'success',
|
||||||
|
duration: 2000,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示微信二维码全屏
|
||||||
|
function showWechatFullscreenImage() {
|
||||||
|
showWechatFullscreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示微信群二维码全屏
|
||||||
|
function showWxGroupFullscreenImage() {
|
||||||
|
showWxGroupFullscreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭全屏图片
|
||||||
|
function closeFullscreenImage() {
|
||||||
|
showWechatFullscreen.value = false;
|
||||||
|
showWxGroupFullscreen.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
// 模拟数据获取
|
// 模拟数据获取
|
||||||
async function fetchRechargeLog() {
|
async function fetchRechargeLog() {
|
||||||
@@ -60,6 +99,11 @@ function refreshLog() {
|
|||||||
currentSort.value = { prop: '', order: '' };
|
currentSort.value = { prop: '', order: '' };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 联系售后弹窗
|
||||||
|
function contactCustomerService() {
|
||||||
|
innerVisibleContact.value = !innerVisibleContact.value;
|
||||||
|
}
|
||||||
|
|
||||||
// 过滤和排序后的数据
|
// 过滤和排序后的数据
|
||||||
const filteredData = computed(() => {
|
const filteredData = computed(() => {
|
||||||
let data = [...logData.value];
|
let data = [...logData.value];
|
||||||
@@ -90,18 +134,11 @@ const filteredData = computed(() => {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
// 分页处理
|
|
||||||
// if (showPagination.value) {
|
|
||||||
// const start = (currentPage.value - 1) * pageSize.value;
|
|
||||||
// return data.slice(start, start + pageSize.value);
|
|
||||||
// }
|
|
||||||
|
|
||||||
return data;
|
return data;
|
||||||
});
|
});
|
||||||
|
|
||||||
// 是否显示分页 暂时不需要分页功能
|
// 是否显示分页 暂时不需要分页功能
|
||||||
const showPagination = computed(() => {
|
const showPagination = computed(() => {
|
||||||
// return logData.value.length > 10;
|
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -111,6 +148,74 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
v-model="innerVisibleContact"
|
||||||
|
width="500"
|
||||||
|
title="售后支持"
|
||||||
|
append-to-body
|
||||||
|
>
|
||||||
|
<h3 class="text-lg font-bold mb-3">
|
||||||
|
请扫码加入微信交流群<br>
|
||||||
|
或添加站长微信加入售后群获取专属客服支持
|
||||||
|
</h3>
|
||||||
|
<div class="mb-4 flex items-center justify-center space-x-2">
|
||||||
|
<span class="font-semibold">站长微信账号:</span>
|
||||||
|
<span id="wechat-id" class="text-blue-600 font-mono select-text">chengzilaoge520</span>
|
||||||
|
<span
|
||||||
|
class="cursor-pointer"
|
||||||
|
title="点击复制"
|
||||||
|
@click="copyWechatId"
|
||||||
|
>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 opacity-70 hover:opacity-100" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v16h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 18H8V7h11v16z" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex justify-center mb-4">
|
||||||
|
<div class="px-4">
|
||||||
|
<h4>站长微信(备注“AI”以便通过)</h4>
|
||||||
|
|
||||||
|
<img
|
||||||
|
:src="wxSrc"
|
||||||
|
class="w-50 py-5 h-70 border border-gray-200 rounded-lg shadow-md cursor-pointer hover:shadow-lg transition-transform hover:scale-105"
|
||||||
|
alt="微信二维码"
|
||||||
|
@click="showWechatFullscreenImage"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="px-4">
|
||||||
|
<h4>微信交流群</h4>
|
||||||
|
<img
|
||||||
|
:src="wxGroupQD"
|
||||||
|
class="w-50 py-5 h-70 border border-gray-200 rounded-lg shadow-md cursor-pointer hover:shadow-lg transition-transform hover:scale-105"
|
||||||
|
alt="微信二维码"
|
||||||
|
@click="showWxGroupFullscreenImage"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 全屏放大二维码 -->
|
||||||
|
<div
|
||||||
|
v-if="showWechatFullscreen"
|
||||||
|
class="fullscreen-image-overlay"
|
||||||
|
@click="closeFullscreenImage"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
:src="wxSrc"
|
||||||
|
class="fullscreen-image"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-if="showWxGroupFullscreen"
|
||||||
|
class="fullscreen-image-overlay"
|
||||||
|
@click="closeFullscreenImage"
|
||||||
|
>
|
||||||
|
<img
|
||||||
|
:src="wxGroupQD"
|
||||||
|
class="fullscreen-image"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
<div class="recharge-log-container">
|
<div class="recharge-log-container">
|
||||||
<div class="log-header">
|
<div class="log-header">
|
||||||
<h2 class="log-title">
|
<h2 class="log-title">
|
||||||
@@ -118,6 +223,13 @@ onMounted(() => {
|
|||||||
充值记录
|
充值记录
|
||||||
</h2>
|
</h2>
|
||||||
<div class="header-actions">
|
<div class="header-actions">
|
||||||
|
<el-tooltip v-if="isUserVip()" content="联系售后" placement="top">
|
||||||
|
<el-button circle :loading="loading" @click="contactCustomerService">
|
||||||
|
<el-icon color="#07c160">
|
||||||
|
<ChatLineRound />
|
||||||
|
</el-icon>
|
||||||
|
</el-button>
|
||||||
|
</el-tooltip>
|
||||||
<el-tooltip content="刷新数据" placement="top">
|
<el-tooltip content="刷新数据" placement="top">
|
||||||
<el-button circle :loading="loading" @click="refreshLog">
|
<el-button circle :loading="loading" @click="refreshLog">
|
||||||
<el-icon><Refresh /></el-icon>
|
<el-icon><Refresh /></el-icon>
|
||||||
@@ -218,6 +330,25 @@ onMounted(() => {
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
/* 新增全屏图片样式 */
|
||||||
|
.fullscreen-image-overlay {
|
||||||
|
position: fixed;
|
||||||
|
inset: 0;
|
||||||
|
background: rgba(0, 0, 0, 0.8);
|
||||||
|
z-index: 9999;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fullscreen-image {
|
||||||
|
max-width: 90%;
|
||||||
|
max-height: 90%;
|
||||||
|
border: 8px solid white;
|
||||||
|
border-radius: 16px;
|
||||||
|
box-shadow: 0 0 40px rgba(255, 255, 255, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
.recharge-log-container {
|
.recharge-log-container {
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
|
|||||||
@@ -177,14 +177,6 @@ function onProductPackage() {
|
|||||||
class="buy-btn flex items-center gap-2 px-5 py-2 font-semibold shadow-lg"
|
class="buy-btn flex items-center gap-2 px-5 py-2 font-semibold shadow-lg"
|
||||||
@click="onProductPackage"
|
@click="onProductPackage"
|
||||||
>
|
>
|
||||||
<!-- <svg -->
|
|
||||||
<!-- xmlns="http://www.w3.org/2000/svg" -->
|
|
||||||
<!-- class="icon-rocket w-5 h-5 animate-bounce" -->
|
|
||||||
<!-- viewBox="0 0 24 24" -->
|
|
||||||
<!-- fill="currentColor" -->
|
|
||||||
<!-- > -->
|
|
||||||
<!-- <path d="M12 2C10 5 8 8 8 11l-5 5c0 3 3 3 5 5s5-3 8-5l5-5c-3-2-6-4-8-9z" /> -->
|
|
||||||
<!-- </svg> -->
|
|
||||||
<span>立即购买</span>
|
<span>立即购买</span>
|
||||||
</el-button>
|
</el-button>
|
||||||
<!-- 用户信息区域 -->
|
<!-- 用户信息区域 -->
|
||||||
@@ -344,6 +336,19 @@ function onProductPackage() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//移动端,屏幕小于756px
|
||||||
|
@media screen and (max-width: 756px) {
|
||||||
|
.buy-btn {
|
||||||
|
background: linear-gradient(90deg, #FFD700, #FFC107);
|
||||||
|
color: #fff;
|
||||||
|
border: none;
|
||||||
|
border-radius: 9999px;
|
||||||
|
transition: transform 0.2s, box-shadow 0.2s;
|
||||||
|
font-size: 12px;
|
||||||
|
max-width: 60px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@keyframes bounce {
|
@keyframes bounce {
|
||||||
0%, 100% { transform: translateY(0); }
|
0%, 100% { transform: translateY(0); }
|
||||||
50% { transform: translateY(-4px); }
|
50% { transform: translateY(-4px); }
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ElButton, ElDivider } from 'element-plus';
|
import { ElButton, ElDivider, ElMessage } from 'element-plus';
|
||||||
import { onMounted, ref } from 'vue';
|
import { computed, onMounted, ref } from 'vue';
|
||||||
|
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
|
||||||
@@ -16,6 +16,9 @@ import { useSessionStore } from '@/stores/modules/session.ts';
|
|||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
const sessionStore = useSessionStore();
|
const sessionStore = useSessionStore();
|
||||||
|
const innerVisibleContact = ref(false);
|
||||||
|
const showWechatFullscreen = ref(false);
|
||||||
|
const showWxGroupFullscreen = ref(false);
|
||||||
|
|
||||||
interface PayResult {
|
interface PayResult {
|
||||||
out_trade_no: string;
|
out_trade_no: string;
|
||||||
@@ -107,6 +110,45 @@ function handleThirdPartyLogin(type: any) {
|
|||||||
function toHome() {
|
function toHome() {
|
||||||
router.replace('/');
|
router.replace('/');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const wxSrc = computed(
|
||||||
|
() => `${import.meta.env.VITE_WEB_BASE_API}/wwwroot/aihub/wx.png`,
|
||||||
|
);
|
||||||
|
const wxGroupQD = computed(
|
||||||
|
() => `${import.meta.env.VITE_WEB_BASE_API}/wwwroot/aihub/jlq.png`,
|
||||||
|
);
|
||||||
|
|
||||||
|
// 显示微信二维码全屏
|
||||||
|
function showWechatFullscreenImage() {
|
||||||
|
showWechatFullscreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 显示微信群二维码全屏
|
||||||
|
function showWxGroupFullscreenImage() {
|
||||||
|
showWxGroupFullscreen.value = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 关闭全屏图片
|
||||||
|
function closeFullscreenImage() {
|
||||||
|
showWechatFullscreen.value = false;
|
||||||
|
showWxGroupFullscreen.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 复制微信号
|
||||||
|
function copyWechatId() {
|
||||||
|
navigator.clipboard.writeText('chengzilaoge520').then(() => {
|
||||||
|
ElMessage({
|
||||||
|
message: '微信号已复制到剪贴板',
|
||||||
|
type: 'success',
|
||||||
|
duration: 2000,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 联系售后弹窗
|
||||||
|
function contactCustomerService() {
|
||||||
|
innerVisibleContact.value = !innerVisibleContact.value;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@@ -140,8 +182,12 @@ function toHome() {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 重新登录提示 -->
|
<!-- 重新登录提示 -->
|
||||||
<div class="mb-4 text-gray-600">
|
<!-- 绿色背景 -->
|
||||||
开通 VIP 后,需要重新登录意社区生效
|
<div class="mb-4 text-gray-600 ">
|
||||||
|
开通 VIP 后,需要重新登录意社区生效。<br>
|
||||||
|
</div>
|
||||||
|
<div v-if="false" class="order-info p-4 rounded-lg mb-4 bg-[#ffc406] mb-4 text-gray-600 ">
|
||||||
|
加入售后群获得更多专业支持!
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ElDivider content-position="center">
|
<ElDivider content-position="center">
|
||||||
@@ -168,8 +214,64 @@ function toHome() {
|
|||||||
返回首页
|
返回首页
|
||||||
</ElButton>
|
</ElButton>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<ElButton
|
||||||
|
class="mt-6 w-full py-3 text-lg font-medium"
|
||||||
|
type="default"
|
||||||
|
size="large"
|
||||||
|
@click="contactCustomerService()"
|
||||||
|
>
|
||||||
|
联系客服获取售后支持
|
||||||
|
</ElButton>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<el-dialog
|
||||||
|
v-model="innerVisibleContact"
|
||||||
|
width="500"
|
||||||
|
title="售后支持"
|
||||||
|
append-to-body
|
||||||
|
>
|
||||||
|
<h3 class="text-lg font-bold mb-3">
|
||||||
|
请扫码加入微信交流群<br>
|
||||||
|
或添加站长微信加入售后群获取专属客服支持
|
||||||
|
</h3>
|
||||||
|
<div class="py-10 flex items-center justify-center space-x-2">
|
||||||
|
<span class="font-semibold">站长微信账号:</span>
|
||||||
|
<span id="wechat-id" class="text-blue-600 font-mono select-text">chengzilaoge520</span>
|
||||||
|
|
||||||
|
<span
|
||||||
|
class="cursor-pointer"
|
||||||
|
title="点击复制"
|
||||||
|
@click="copyWechatId"
|
||||||
|
>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" class="w-5 h-5 opacity-70 hover:opacity-100" viewBox="0 0 24 24" fill="currentColor">
|
||||||
|
<path d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v16h14c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 18H8V7h11v16z" />
|
||||||
|
</svg>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex justify-center mb-4">
|
||||||
|
<div class="px-4">
|
||||||
|
<h4>站长微信(备注“AI”以便通过)</h4>
|
||||||
|
<img
|
||||||
|
:src="wxSrc"
|
||||||
|
class="w-50 py-5 h-70 border border-gray-200 rounded-lg shadow-md cursor-pointer hover:shadow-lg transition-transform hover:scale-105"
|
||||||
|
alt="微信二维码"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="px-4">
|
||||||
|
<h4>微信交流群</h4>
|
||||||
|
<img
|
||||||
|
:src="wxGroupQD"
|
||||||
|
class="w-50 py-5 h-70 border border-gray-200 rounded-lg shadow-md cursor-pointer hover:shadow-lg transition-transform hover:scale-105"
|
||||||
|
alt="微信二维码"
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 全屏放大二维码 -->
|
||||||
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
|
|||||||
@@ -4,7 +4,8 @@ import { useUserStore } from '@/stores/index.js';
|
|||||||
export function isUserVip(): boolean {
|
export function isUserVip(): boolean {
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const userRoles = userStore.userInfo?.roles ?? [];
|
const userRoles = userStore.userInfo?.roles ?? [];
|
||||||
return userRoles.some((role: any) => role.roleCode === 'YiXinAi-Vip');
|
const isVip = userRoles.some((role: any) => role.roleCode === 'YiXinAi-Vip');
|
||||||
|
return isVip;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 用户头像
|
// 用户头像
|
||||||
|
|||||||
1
Yi.Ai.Vue3/types/components.d.ts
vendored
1
Yi.Ai.Vue3/types/components.d.ts
vendored
@@ -56,6 +56,7 @@ declare module 'vue' {
|
|||||||
UserManagement: typeof import('./../src/components/userPersonalCenter/components/UserManagement.vue')['default']
|
UserManagement: typeof import('./../src/components/userPersonalCenter/components/UserManagement.vue')['default']
|
||||||
VerificationCode: typeof import('./../src/components/LoginDialog/components/FormLogin/VerificationCode.vue')['default']
|
VerificationCode: typeof import('./../src/components/LoginDialog/components/FormLogin/VerificationCode.vue')['default']
|
||||||
WelecomeText: typeof import('./../src/components/WelecomeText/index.vue')['default']
|
WelecomeText: typeof import('./../src/components/WelecomeText/index.vue')['default']
|
||||||
|
X: typeof import('./../src/components/userPersonalCenter/components/x.vue')['default']
|
||||||
}
|
}
|
||||||
export interface GlobalDirectives {
|
export interface GlobalDirectives {
|
||||||
vLoading: typeof import('element-plus/es')['ElLoadingDirective']
|
vLoading: typeof import('element-plus/es')['ElLoadingDirective']
|
||||||
|
|||||||
Reference in New Issue
Block a user