@@ -254,7 +254,7 @@ const userStore = useUserStore()
const loading = ref(true)
const apiKeys = ref([])
-const maxApiKeys = ref(5) // 从配置获取
+const maxApiKeys = computed(() => userStore.config?.maxApiKeysPerUser || 5)
const showCreateModal = ref(false)
const showViewModal = ref(false)
@@ -270,6 +270,11 @@ const sortedApiKeys = computed(() => {
})
})
+// Computed property to count only active (non-deleted) API keys
+const activeApiKeysCount = computed(() => {
+ return apiKeys.value.filter((key) => !(key.isDeleted === 'true' || key.deletedAt)).length
+})
+
const formatNumber = (num) => {
if (num >= 1000000) {
return (num / 1000000).toFixed(1) + 'M'
diff --git a/web/admin-spa/src/stores/user.js b/web/admin-spa/src/stores/user.js
index 3421c5d6..db6a4dfc 100644
--- a/web/admin-spa/src/stores/user.js
+++ b/web/admin-spa/src/stores/user.js
@@ -9,7 +9,8 @@ export const useUserStore = defineStore('user', {
user: null,
isAuthenticated: false,
sessionToken: null,
- loading: false
+ loading: false,
+ config: null
}),
getters: {
@@ -72,6 +73,7 @@ export const useUserStore = defineStore('user', {
async checkAuth() {
const token = localStorage.getItem('userToken')
const userData = localStorage.getItem('userData')
+ const userConfig = localStorage.getItem('userConfig')
if (!token || !userData) {
this.clearAuth()
@@ -81,6 +83,7 @@ export const useUserStore = defineStore('user', {
try {
this.sessionToken = token
this.user = JSON.parse(userData)
+ this.config = userConfig ? JSON.parse(userConfig) : null
this.isAuthenticated = true
this.setAuthHeader()
@@ -101,7 +104,9 @@ export const useUserStore = defineStore('user', {
if (response.data.success) {
this.user = response.data.user
+ this.config = response.data.config
localStorage.setItem('userData', JSON.stringify(this.user))
+ localStorage.setItem('userConfig', JSON.stringify(this.config))
return response.data.user
}
} catch (error) {
@@ -170,9 +175,11 @@ export const useUserStore = defineStore('user', {
this.user = null
this.sessionToken = null
this.isAuthenticated = false
+ this.config = null
localStorage.removeItem('userToken')
localStorage.removeItem('userData')
+ localStorage.removeItem('userConfig')
// 清除 axios 默认头部
delete axios.defaults.headers.common['x-user-token']