feat: sites表支持多名称/多地址(names/urls JSON列), DTO/Service/前端全部适配
This commit is contained in:
@@ -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,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user