fix: 站点管理改用admin全量接口, 显示待审核站点并提供通过/拒绝

This commit is contained in:
mediabot-pt
2026-06-30 08:44:46 +08:00
parent ec9d00f25a
commit b37b5cc5de
5 changed files with 56 additions and 4 deletions

View File

@@ -32,9 +32,12 @@ export default {
},
sites: {
list: () => api.get('/sites'),
adminList: () => api.get('/admin/sites'),
get: (id) => api.get(`/sites/${id}`),
create: (data) => api.post('/sites', data),
update: (id, data) => api.put(`/sites/${id}`, data)
update: (id, data) => api.put(`/sites/${id}`, data),
approve: (id) => api.post(`/admin/sites/${id}/approve`),
reject: (id) => api.post(`/admin/sites/${id}/reject`),
},
configs: {
list: () => api.get('/configs'),

View File

@@ -9,16 +9,20 @@
<el-table-column prop="siteType" label="类型" width="100" />
<el-table-column prop="status" label="状态" width="100">
<template #default="scope">
<el-tag :type="scope.row.status === 'active' ? 'success' : 'info'">
<el-tag :type="statusType(scope.row.status)">
{{ scope.row.status }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="schemaVersion" label="Schema版本" width="120" />
<el-table-column label="操作" width="200">
<el-table-column label="操作" width="280">
<template #default="scope">
<el-button size="small" @click="handleEdit(scope.row)">编辑</el-button>
<el-button size="small" @click="handleViewConfig(scope.row)">配置</el-button>
<template v-if="scope.row.status === 'pending'">
<el-button size="small" type="success" @click="handleApprove(scope.row)">通过</el-button>
<el-button size="small" type="danger" @click="handleReject(scope.row)">拒绝</el-button>
</template>
</template>
</el-table-column>
</el-table>
@@ -145,10 +149,16 @@ const escapeHtml = (str) => {
return str.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;')
}
const statusType = (s) => {
if (s === 'active') return 'success'
if (s === 'pending') return 'warning'
return 'info'
}
const fetchSites = async () => {
loading.value = true
try {
const res = await api.sites.list()
const res = await api.sites.adminList()
sites.value = res.data || []
} catch (e) {
ElMessage.error('获取站点列表失败')
@@ -157,6 +167,27 @@ const fetchSites = async () => {
}
}
const handleApprove = async (row) => {
try {
await api.sites.approve(row.id)
ElMessage.success('已通过')
fetchSites()
} catch (e) {
ElMessage.error(e.response?.data?.message || '操作失败')
}
}
const handleReject = async (row) => {
try {
await ElMessageBox.confirm(`确认拒绝站点 "${row.name}"?此操作将删除该站点。`, '警告', { type: 'warning' })
await api.sites.reject(row.id)
ElMessage.success('已拒绝')
fetchSites()
} catch (e) {
if (e !== 'cancel') ElMessage.error(e.response?.data?.message || '操作失败')
}
}
const handleEdit = (row) => {
editForm.value = {
id: row.id,