feat(admin): 添加管理员后台布局并优化Token管理界面

- 新增AdminView.vue作为管理员后台主布局组件
- 集成导航菜单支持Token管理和详情页面切换
- 添加管理员身份标识和退出功能
- 在TokenManageView中引入DocumentAdd图标用于数据添加
- 为表格行添加数据查看对话框功能
- 调整Token管理表格列宽度以改善显示效果
- 优化移动端响应式布局适配
This commit is contained in:
2026-04-24 16:51:20 +08:00
parent 37fd2c2bac
commit 4ca3356214
3 changed files with 17 additions and 7 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

+2 -2
View File
@@ -2,7 +2,7 @@
import {ref, watch, computed} from 'vue'
import {useRoute, useRouter} from "vue-router"
import {useCounterStore} from "@/stores/counter.ts"
import {Edit, Delete, Clock, User, Document} from '@element-plus/icons-vue'
import {Edit, Delete, Clock, User, Document, CloseBold} from '@element-plus/icons-vue'
const router = useRouter()
const route = useRoute()
@@ -70,7 +70,7 @@ const logout = () => {
@click="logout"
>
<el-icon>
<Delete/>
<CloseBold/>
</el-icon>
退出
</el-button>
+15 -5
View File
@@ -4,7 +4,7 @@ import axios from "@/axios.ts"
import {ElMessage} from 'element-plus'
import {useCounterStore} from "@/stores/counter.ts"
import {useRouter} from "vue-router"
import {Plus, View, Edit, Delete, Key, Document, Memo, Search, Lock} from '@element-plus/icons-vue'
import {Plus, View, Edit, Delete, Key, Document, Memo, Search, Lock, DocumentAdd} from '@element-plus/icons-vue'
const store = useCounterStore()
const router = useRouter()
@@ -114,6 +114,10 @@ const dialogNotesVisible = (row: any) => {
inputNotesVisible.value = true
}
const dialogDataADDVisible = (row: any) => {
rowOut.value = row
}
const updateDedupObject = async () => {
try {
await axios.put('/api/token', {}, {
@@ -265,7 +269,7 @@ const deleteToken = async (row: any) => {
</div>
<el-table :data="tableData" v-loading="loading" stripe style="width: 100%">
<el-table-column prop="token" label="Token" min-width="200" show-overflow-tooltip>
<el-table-column prop="token" label="Token" min-width="100" show-overflow-tooltip>
<template #default="{ row }">
<div class="token-cell">
<el-icon>
@@ -282,19 +286,19 @@ const deleteToken = async (row: any) => {
</template>
</el-table-column>
<el-table-column prop="data_format" label="数据格式" min-width="350" show-overflow-tooltip>
<el-table-column prop="data_format" label="数据格式" min-width="200" show-overflow-tooltip>
<template #default="{ row }">
<div class="format-cell">{{ row.data_format }}</div>
</template>
</el-table-column>
<el-table-column prop="notes" label="备注" min-width="250" show-overflow-tooltip>
<el-table-column prop="notes" label="备注" min-width="150" show-overflow-tooltip>
<template #default="{ row }">
<span class="notes-text">{{ row.notes || '-' }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="280" fixed="right">
<el-table-column label="操作" width="500" fixed="right">
<template #default="{ row }">
<div class="action-buttons">
<el-button type="primary" size="small" text @click="viewDetails(row)">
@@ -303,6 +307,12 @@ const deleteToken = async (row: any) => {
</el-icon>
详情
</el-button>
<el-button size="small" text @click="dialogNotesVisible(row)">
<el-icon>
<Plus/>
</el-icon>
数据
</el-button>
<el-button size="small" text @click="dialogDedupObjectVisible(row)">
<el-icon>
<Edit/>