From 9b5ad7cc035622aa34c4649fc66b8f66901f1023 Mon Sep 17 00:00:00 2001 From: mediabot-pt <295750538+mediabot-pt@users.noreply.github.com> Date: Tue, 30 Jun 2026 12:30:06 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AB=99=E7=82=B9=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=8A=B6=E6=80=81=E5=AD=97=E6=AE=B5=20active?= =?UTF-8?q?/deprecated=20=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/par/api/controller/SiteController.java | 3 ++- .../main/java/com/par/core/service/SiteService.java | 2 +- .../com/par/core/service/impl/SiteServiceImpl.java | 5 ++++- web/src/views/Sites.vue | 11 +++++++++-- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/par-api/src/main/java/com/par/api/controller/SiteController.java b/par-api/src/main/java/com/par/api/controller/SiteController.java index c449bf0..35d3c60 100644 --- a/par-api/src/main/java/com/par/api/controller/SiteController.java +++ b/par-api/src/main/java/com/par/api/controller/SiteController.java @@ -51,10 +51,11 @@ public class SiteController { String description = (String) payload.get("description"); String baseUrl = (String) payload.get("baseUrl"); String siteType = (String) payload.get("siteType"); + String status = (String) payload.get("status"); Long operatorId = (Long) request.getAttribute("accountId"); try { - Site site = siteService.updateSite(siteId, name, description, baseUrl, siteType, operatorId); + Site site = siteService.updateSite(siteId, name, description, baseUrl, siteType, status, operatorId); return ApiResponse.success(siteService.toDTO(site)); } catch (IllegalArgumentException e) { return ApiResponse.error(404, e.getMessage()); diff --git a/par-core/src/main/java/com/par/core/service/SiteService.java b/par-core/src/main/java/com/par/core/service/SiteService.java index 78bd451..6ce0814 100644 --- a/par-core/src/main/java/com/par/core/service/SiteService.java +++ b/par-core/src/main/java/com/par/core/service/SiteService.java @@ -44,7 +44,7 @@ public interface SiteService { * 管理员编辑站点基本信息 */ Site updateSite(String siteId, String name, String description, String baseUrl, - String siteType, Long operatorId); + String siteType, String status, Long operatorId); /** 所有站点列表(管理员用) */ List listAllSites(); diff --git a/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java b/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java index 0800d54..7fdfdc0 100644 --- a/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java +++ b/par-core/src/main/java/com/par/core/service/impl/SiteServiceImpl.java @@ -195,7 +195,7 @@ public class SiteServiceImpl implements SiteService { @Override public Site updateSite(String siteId, String name, String description, String baseUrl, - String siteType, Long operatorId) { + String siteType, String status, Long operatorId) { Site site = siteMapper.selectBySiteId(siteId); if (site == null) throw new IllegalArgumentException("站点不存在: " + siteId); @@ -215,6 +215,9 @@ public class SiteServiceImpl implements SiteService { if (siteType != null && !siteType.isBlank()) { try { site.setSiteType(SiteType.fromValue(siteType)); } catch (Exception ignored) {} } + if (status != null && !status.isBlank()) { + try { site.setStatus(SiteStatus.fromValue(status)); } catch (Exception ignored) {} + } siteMapper.updateById(site); log.info("站点编辑: siteId={}", siteId); return site; diff --git a/web/src/views/Sites.vue b/web/src/views/Sites.vue index 7803133..c1d0ad1 100644 --- a/web/src/views/Sites.vue +++ b/web/src/views/Sites.vue @@ -49,6 +49,12 @@ + + + + + + @@ -116,7 +122,7 @@ import api from '../api' const sites = ref([]) const loading = ref(false) const editVisible = ref(false), saving = ref(false) -const editForm = ref({ id: null, siteId: '', name: '', baseUrl: '', siteType: '', description: '' }) +const editForm = ref({ id: null, siteId: '', name: '', baseUrl: '', siteType: '', status: '', description: '' }) const siteTypes = [ { value: 'nexusphp', label: 'NexusPHP' }, { value: 'mtorrent', label: 'MTorrent' }, { value: 'mteam', label: 'M-Team API' }, { value: 'pttime', label: 'PTTime' }, @@ -140,7 +146,7 @@ const fetchAll = async () => { } const handleEdit = (row) => { - editForm.value = { id: row.id, siteId: row.siteId, name: (row.names||[]).join('\n'), baseUrl: (row.urls||[]).join('\n'), siteType: row.siteType||'', description: row.description||'' } + editForm.value = { id: row.id, siteId: row.siteId, name: (row.names||[]).join('\n'), baseUrl: (row.urls||[]).join('\n'), siteType: row.siteType||'', status: row.status||'active', description: row.description||'' } editVisible.value = true } @@ -152,6 +158,7 @@ const handleSave = async () => { 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', + status: editForm.value.status||'active', description: editForm.value.description.trim()||null, }) ElMessage.success('保存成功'); editVisible.value = false; fetchAll()