|
-
+
+
+
+ |
+
+
+ ![]()
+ {{ key.type }}
+
|
- {{ key.type }} |
{{ key.name }} |
-
+
+
+
|
- {{ key.apikey }} |
- {{ key.endpoint }} |
+
+
@@ -133,7 +148,7 @@
+ :pageSizeOptions="[10, 20, 50, 100]" @changePage="changePage" @changePageSize="changePageSize" />
@@ -305,6 +320,24 @@ const deleteKey = async (key) => {
}
};
+const displayIcon = (apitype) => {
+ switch (apitype) {
+ case 'openai':
+ return '/assets/openai.svg';
+ case 'claude':
+ return '/assets/claude.svg';
+ case 'gemini':
+ return '/assets/gemini.svg'
+ case 'azure':
+ return '/assets/azure.svg';
+ case 'github':
+ return '/assets/github.svg';
+ default:
+ return '/assets/logo.svg';
+ }
+
+}
+
// 关闭模态框
const modalRef = ref(null);
const closeModal = async () => {
diff --git a/frontend/src/views/dashboard/TokenNew.vue b/frontend/src/views/dashboard/TokenNew.vue
index f2148e5..4ee63da 100644
--- a/frontend/src/views/dashboard/TokenNew.vue
+++ b/frontend/src/views/dashboard/TokenNew.vue
@@ -65,7 +65,7 @@
class="absolute inset-y-0 right-0 px-3 flex items-center text-base-content/60 hover:text-base-content/80 focus:outline-none focus:ring-0 rounded-r-md"
id="token-visibility-toggle">
-
+
diff --git a/frontend/src/views/dashboard/Tokens.vue b/frontend/src/views/dashboard/Tokens.vue
index a0e78a9..15d5116 100644
--- a/frontend/src/views/dashboard/Tokens.vue
+++ b/frontend/src/views/dashboard/Tokens.vue
@@ -28,65 +28,91 @@
+
+
+
+
+ | Token |
+ Status |
+
+ Expired |
+ Quota |
+ Used |
+ |
+
+
+
+
+ | {{ token.name }} |
+
+
+ |
+
+ {{ token.expired_at == 0 ? 'Never' : unixToDate(token.expired_at) }} |
+
+
+
+
+ {{ token.quota }}
+ |
+ {{ token.used_quota }} |
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
|