feat: 站点名称/地址支持多值编辑,动态增删
- Sites.vue: 名称和地址改为动态列表 + 增删按钮 - SiteController: updateSite 接受 names[]/urls[] 数组 - SiteServiceImpl: 更新时直接覆盖整个名称/地址列表
This commit is contained in:
@@ -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);
|
||||
|
||||
/** 所有站点列表(管理员用) */
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user