diff --git a/backend/src/main/java/com/designhub/controller/DingTalkController.java b/backend/src/main/java/com/designhub/controller/DingTalkController.java index 80d6e6d..9fa1a84 100644 --- a/backend/src/main/java/com/designhub/controller/DingTalkController.java +++ b/backend/src/main/java/com/designhub/controller/DingTalkController.java @@ -55,13 +55,16 @@ public class DingTalkController { try { // 处理enabledFeatures字段 Object enabledFeaturesObj = configMap.get("enabledFeatures"); - String enabledFeaturesJson = null; + String enabledFeaturesJson = "{}"; // 默认为空JSON对象 if (enabledFeaturesObj != null) { if (enabledFeaturesObj instanceof String) { enabledFeaturesJson = (String) enabledFeaturesObj; - } else { + } else if (enabledFeaturesObj instanceof Map && !((Map) enabledFeaturesObj).isEmpty()) { // 转换为JSON字符串 enabledFeaturesJson = objectMapper.writeValueAsString(enabledFeaturesObj); + } else { + // 如果是空对象或null,使用空JSON对象 + enabledFeaturesJson = "{}"; } } diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue index 9f357b7..474827d 100644 --- a/frontend/src/views/Settings.vue +++ b/frontend/src/views/Settings.vue @@ -2335,6 +2335,8 @@ const handleSaveDingTalk = async () => { await saveDingTalkConfig(configToSave as any) message.success('钉钉配置保存成功') + // 重新加载配置以确保UI同步 + await loadDingTalkConfig() } catch (error: any) { message.error(error.message || '保存失败') } finally {