fix: 站点编辑实现编辑弹窗+PUT端点, 配置查看修复(加载失败)改用/content端点+DTO加submitterId
This commit is contained in:
@@ -22,6 +22,31 @@
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
</el-card>
|
||||
|
||||
<!-- 编辑对话框 -->
|
||||
<el-dialog v-model="editVisible" title="编辑站点" width="500px" :close-on-click-modal="false">
|
||||
<el-form :model="editForm" label-width="80px" @submit.prevent="handleSave">
|
||||
<el-form-item label="站点ID">
|
||||
<el-input v-model="editForm.siteId" disabled />
|
||||
</el-form-item>
|
||||
<el-form-item label="名称">
|
||||
<el-input v-model="editForm.name" placeholder="站点名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="基础URL">
|
||||
<el-input v-model="editForm.baseUrl" placeholder="https://example.com" />
|
||||
</el-form-item>
|
||||
<el-form-item label="类型">
|
||||
<el-input v-model="editForm.siteType" placeholder="nexusphp / mteam / ..." />
|
||||
</el-form-item>
|
||||
<el-form-item label="描述">
|
||||
<el-input v-model="editForm.description" type="textarea" :rows="3" placeholder="站点描述" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<el-button @click="editVisible = false">取消</el-button>
|
||||
<el-button type="primary" @click="handleSave" :loading="saving">保存</el-button>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -30,6 +55,9 @@ import api from '../api'
|
||||
|
||||
const sites = ref([])
|
||||
const loading = ref(false)
|
||||
const editVisible = ref(false)
|
||||
const saving = ref(false)
|
||||
const editForm = ref({ id: null, siteId: '', name: '', baseUrl: '', siteType: '', description: '' })
|
||||
|
||||
const fetchSites = async () => {
|
||||
loading.value = true
|
||||
@@ -44,7 +72,38 @@ const fetchSites = async () => {
|
||||
}
|
||||
|
||||
const handleEdit = (row) => {
|
||||
ElMessage.info(`编辑站点: ${row.name}`)
|
||||
editForm.value = {
|
||||
id: row.id,
|
||||
siteId: row.siteId,
|
||||
name: row.name || '',
|
||||
baseUrl: row.baseUrl || '',
|
||||
siteType: row.siteType || '',
|
||||
description: row.description || '',
|
||||
}
|
||||
editVisible.value = true
|
||||
}
|
||||
|
||||
const handleSave = async () => {
|
||||
if (!editForm.value.name.trim() || !editForm.value.baseUrl.trim()) {
|
||||
ElMessage.warning('名称和基础URL不能为空')
|
||||
return
|
||||
}
|
||||
saving.value = true
|
||||
try {
|
||||
await api.sites.update(editForm.value.siteId, {
|
||||
name: editForm.value.name.trim(),
|
||||
baseUrl: editForm.value.baseUrl.trim(),
|
||||
siteType: editForm.value.siteType.trim() || 'unknown',
|
||||
description: editForm.value.description.trim() || null,
|
||||
})
|
||||
ElMessage.success('保存成功')
|
||||
editVisible.value = false
|
||||
fetchSites()
|
||||
} catch (e) {
|
||||
ElMessage.error(e.response?.data?.message || '保存失败')
|
||||
} finally {
|
||||
saving.value = false
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(fetchSites)
|
||||
|
||||
Reference in New Issue
Block a user