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

@@ -8,6 +8,7 @@ import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.List;
import java.util.Map;
@@ -47,15 +48,17 @@ public class SiteController {
@RequestBody Map<String, Object> payload,
HttpServletRequest request) {
String name = (String) payload.get("name");
String description = (String) payload.get("description");
String baseUrl = (String) payload.get("baseUrl");
@SuppressWarnings("unchecked")
List<String> names = (List<String>) payload.get("names");
@SuppressWarnings("unchecked")
List<String> urls = (List<String>) payload.get("urls");
String siteType = (String) payload.get("siteType");
String status = (String) payload.get("status");
String description = (String) payload.get("description");
Long operatorId = (Long) request.getAttribute("accountId");
try {
Site site = siteService.updateSite(siteId, name, description, baseUrl, siteType, status, operatorId);
Site site = siteService.updateSite(siteId, names, urls, description, siteType, status, operatorId);
return ApiResponse.success(siteService.toDTO(site));
} catch (IllegalArgumentException e) {
return ApiResponse.error(404, e.getMessage());