功能优化
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
<script setup>
|
||||
import { ref, computed } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { useUserStore } from '@/stores/user'
|
||||
import LoginModal from '@/components/LoginModal.vue'
|
||||
import UserDropdown from '@/components/UserDropdown.vue'
|
||||
import TestService from '@/api/test'
|
||||
|
||||
const styles = {
|
||||
background: 'var(--color-surface)',
|
||||
@@ -11,6 +13,34 @@ const styles = {
|
||||
// const route = useRoute()
|
||||
const userStore = useUserStore()
|
||||
const showLogin = ref(false)
|
||||
const testLoading = ref(false)
|
||||
|
||||
// 测试按钮点击事件
|
||||
const handleTest = async () => {
|
||||
if (testLoading.value) return
|
||||
|
||||
testLoading.value = true
|
||||
try {
|
||||
// 调用一键测试接口(升级会员 + 初始化OSS)
|
||||
const res = await TestService.testAll({
|
||||
vipLevel: 1,
|
||||
totalStorage: 10 * 1024 * 1024 * 1024, // 10GB
|
||||
totalQuota: 10000
|
||||
})
|
||||
|
||||
if (res.code === 0) {
|
||||
message.success('测试成功!已升级会员并创建OSS目录', 3)
|
||||
console.log('OSS初始化信息:', res.data)
|
||||
} else {
|
||||
message.error(res.msg || '测试失败', 3)
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('测试失败:', error)
|
||||
message.error(error?.response?.data?.msg || error?.message || '测试失败', 3)
|
||||
} finally {
|
||||
testLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
// 计算是否应该显示用户组件
|
||||
// 判断用户是否有用户名,有用户名说明用户信息已加载完成
|
||||
@@ -39,6 +69,15 @@ const shouldShowUser = computed(() => {
|
||||
<!-- 左侧可放 logo 或其他内容 -->
|
||||
</div>
|
||||
<div class="flex items-center gap-4 pr-[35px]">
|
||||
<!-- 测试按钮(仅开发环境显示) -->
|
||||
<button
|
||||
v-if="shouldShowUser"
|
||||
class="btn-test-nav"
|
||||
:disabled="testLoading"
|
||||
@click="handleTest"
|
||||
>
|
||||
{{ testLoading ? '测试中...' : '测试' }}
|
||||
</button>
|
||||
|
||||
<template v-if="shouldShowUser">
|
||||
<UserDropdown />
|
||||
@@ -112,4 +151,28 @@ const shouldShowUser = computed(() => {
|
||||
box-shadow: var(--glow-primary);
|
||||
filter: brightness(1.03);
|
||||
}
|
||||
|
||||
.btn-test-nav {
|
||||
height: 32px;
|
||||
padding: 0 12px;
|
||||
border-radius: 8px;
|
||||
background: var(--color-surface);
|
||||
border: 1px solid var(--color-border);
|
||||
color: var(--color-text);
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: all .2s ease;
|
||||
}
|
||||
|
||||
.btn-test-nav:hover:not(:disabled) {
|
||||
background: var(--color-bg);
|
||||
border-color: var(--color-primary);
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
.btn-test-nav:disabled {
|
||||
opacity: 0.6;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user