feat: sites表支持多名称/多地址(names/urls JSON列), DTO/Service/前端全部适配

This commit is contained in:
mediabot-pt
2026-06-30 08:53:22 +08:00
parent b37b5cc5de
commit aa1e3e9b28
6 changed files with 122 additions and 77 deletions

View File

@@ -4,8 +4,16 @@
<el-card style="margin-top: 20px">
<el-table :data="sites" v-loading="loading" stripe>
<el-table-column prop="siteId" label="站点ID" width="120" />
<el-table-column prop="name" label="名称" width="150" />
<el-table-column prop="baseUrl" label="基础URL" />
<el-table-column label="名称" width="180">
<template #default="scope">
<div v-for="(n, i) in scope.row.names" :key="i" class="text-xs">{{ n }}</div>
</template>
</el-table-column>
<el-table-column label="地址" min-width="200">
<template #default="scope">
<div v-for="(u, i) in scope.row.urls" :key="i" class="text-xs">{{ u }}</div>
</template>
</el-table-column>
<el-table-column prop="siteType" label="类型" width="100" />
<el-table-column prop="status" label="状态" width="100">
<template #default="scope">
@@ -35,10 +43,10 @@
<el-input v-model="editForm.siteId" disabled />
</el-form-item>
<el-form-item label="名称">
<el-input v-model="editForm.name" placeholder="站点名称" />
<el-input v-model="editForm.name" type="textarea" :rows="3" placeholder="站点名称(一行一个)" />
</el-form-item>
<el-form-item label="基础URL">
<el-input v-model="editForm.baseUrl" placeholder="https://example.com" />
<el-form-item label="地址">
<el-input v-model="editForm.baseUrl" type="textarea" :rows="3" placeholder="站点地址(一行一个)" />
</el-form-item>
<el-form-item label="类型">
<el-select v-model="editForm.siteType" placeholder="选择类型" style="width:100%">
@@ -192,8 +200,8 @@ const handleEdit = (row) => {
editForm.value = {
id: row.id,
siteId: row.siteId,
name: row.name || '',
baseUrl: row.baseUrl || '',
name: (row.names || []).join('\n'),
baseUrl: (row.urls || []).join('\n'),
siteType: row.siteType || '',
description: row.description || '',
}
@@ -202,14 +210,14 @@ const handleEdit = (row) => {
const handleSave = async () => {
if (!editForm.value.name.trim() || !editForm.value.baseUrl.trim()) {
ElMessage.warning('名称和基础URL不能为空')
ElMessage.warning('名称和地址不能为空')
return
}
saving.value = true
try {
await api.sites.update(editForm.value.siteId, {
name: editForm.value.name.trim(),
baseUrl: editForm.value.baseUrl.trim(),
name: editForm.value.name.trim().split('\n').filter(Boolean)[0] || '',
baseUrl: editForm.value.baseUrl.trim().split('\n').filter(Boolean)[0] || '',
siteType: editForm.value.siteType.trim() || 'unknown',
description: editForm.value.description.trim() || null,
})