feat: 站点名称/地址支持多值编辑,动态增删

- Sites.vue: 名称和地址改为动态列表 + 增删按钮
- SiteController: updateSite 接受 names[]/urls[] 数组
- SiteServiceImpl: 更新时直接覆盖整个名称/地址列表
This commit is contained in:
mediabot-pt
2026-06-30 13:17:06 +08:00
parent 1667bdd145
commit 08b5040c74
4 changed files with 41 additions and 29 deletions

View File

@@ -43,7 +43,7 @@ public interface SiteService {
/**
* 管理员编辑站点基本信息
*/
Site updateSite(String siteId, String name, String description, String baseUrl,
Site updateSite(String siteId, List<String> names, List<String> urls, String description,
String siteType, String status, Long operatorId);
/** 所有站点列表(管理员用) */

View File

@@ -194,22 +194,16 @@ public class SiteServiceImpl implements SiteService {
}
@Override
public Site updateSite(String siteId, String name, String description, String baseUrl,
public Site updateSite(String siteId, List<String> names, List<String> urls, String description,
String siteType, String status, Long operatorId) {
Site site = siteMapper.selectBySiteId(siteId);
if (site == null) throw new IllegalArgumentException("站点不存在: " + siteId);
if (name != null && !name.isBlank()) {
List<String> names = fromJsonArray(site.getNamesJson());
if (names.isEmpty()) names.add(name);
else names.set(0, name);
site.setNamesJson(toJsonArray(names));
if (names != null && !names.isEmpty()) {
site.setNamesJson(toJsonArray(names.stream().filter(n -> n != null && !n.isBlank()).toList()));
}
if (baseUrl != null && !baseUrl.isBlank()) {
List<String> urls = fromJsonArray(site.getUrlsJson());
if (urls.isEmpty()) urls.add(baseUrl);
else urls.set(0, baseUrl);
site.setUrlsJson(toJsonArray(urls));
if (urls != null && !urls.isEmpty()) {
site.setUrlsJson(toJsonArray(urls.stream().filter(u -> u != null && !u.isBlank()).toList()));
}
if (description != null) site.setDescription(description);
if (siteType != null && !siteType.isBlank()) {