From ce396f73fa41c66cbdb02c61cafa90b08f41ab48 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 31 三月 2025 10:02:11 +0800 Subject: [PATCH] 惠民卡协议管理保存 --- cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminAgreementController.java | 50 +++++++ cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminAgreement/tHuiminAgreement_add.html | 162 ++++++++++++++++++---- cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreement.java | 12 + cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminAgreementController.java | 107 +++++++++++++++ cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreementSetting.java | 4 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreementSetting.java | 3 cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreement.java | 12 - cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/HuiminAgreementQuery.java | 22 +++ cloud-server-activity/src/main/java/com/dsh/activity/model/HuiminAgreementQuery.java | 22 +++ cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/HuiminAgreementClient.java | 20 ++ 10 files changed, 374 insertions(+), 40 deletions(-) diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminAgreementController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminAgreementController.java new file mode 100644 index 0000000..0e58ec6 --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminAgreementController.java @@ -0,0 +1,107 @@ +package com.dsh.activity.controller; + +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.dsh.activity.entity.THuiminAgreement; +import com.dsh.activity.entity.THuiminAgreementSetting; +import com.dsh.activity.model.HuiminAgreementQuery; +import com.dsh.activity.service.HuiminAgreementService; +import com.dsh.activity.service.HuiminAgreementSettingService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Objects; + +/** + * @author zhibing.pu + * @date 2023/6/24 11:27 + */ +@RestController +@RequestMapping("") +public class HuiminAgreementController { + + @Autowired + private HuiminAgreementService huiminAgreementService; + + @Autowired + private HuiminAgreementSettingService huiminAgreementSettingService; + + /** + * 根据当前用户类型查询惠民卡协议 + * @param objectType + * @param operatorId + * @return + */ + @ResponseBody + @PostMapping("/base/tHuiminAgreement/selectByObjectType") + public THuiminAgreement selectByObjectType(@RequestBody HuiminAgreementQuery query) { + THuiminAgreement huiminAgreement = null; + if (query.getObjectType().equals(1)) { + //平台 + huiminAgreement = huiminAgreementService.getOne(new LambdaQueryWrapper<THuiminAgreement>() + .isNull(THuiminAgreement::getOperatorId)); + + }else if (query.getObjectType().equals(2)) { + //运营商 + huiminAgreement = huiminAgreementService.getOne(new LambdaQueryWrapper<THuiminAgreement>() + .eq(THuiminAgreement::getOperatorId,query.getOperatorId())); + } + if (Objects.nonNull(huiminAgreement)) { + //查询协议配置 + List<THuiminAgreementSetting> tHuiminAgreementSettingList = huiminAgreementSettingService.list(new LambdaQueryWrapper<THuiminAgreementSetting>() + .eq(THuiminAgreementSetting::getAgreementId, huiminAgreement.getId())); + huiminAgreement.setTHuiminAgreementSettingList(tHuiminAgreementSettingList); + } + return huiminAgreement; + } + /** + * 保存惠民卡协议 + * @param tHuiminAgreement + */ + @PostMapping("/base/tHuiminAgreement/save") + @Transactional(rollbackFor = Exception.class) + public void insert(@RequestBody THuiminAgreement tHuiminAgreement){ + Integer operatorId = tHuiminAgreement.getOperatorId(); + if (tHuiminAgreement.getObjectType().equals(1)) { + tHuiminAgreement.setOperatorId(null); + } + huiminAgreementService.saveOrUpdate(tHuiminAgreement); + List<THuiminAgreementSetting> tHuiminAgreementSettingList = tHuiminAgreement.getTHuiminAgreementSettingList(); + if (CollUtil.isNotEmpty(tHuiminAgreementSettingList)) { + if (tHuiminAgreement.getObjectType().equals(2) || tHuiminAgreement.getObjectType().equals(1) && Objects.isNull(operatorId)) { + //删除之前的协议配置 + huiminAgreementSettingService.remove(new LambdaQueryWrapper<THuiminAgreementSetting>().eq(THuiminAgreementSetting::getAgreementId, tHuiminAgreement.getId())); + //保存协议配置 + tHuiminAgreementSettingList.forEach(t -> { + t.setAgreementId(tHuiminAgreement.getId()); + }); + huiminAgreementSettingService.saveBatch(tHuiminAgreementSettingList); + } else { + THuiminAgreement agreement = huiminAgreementService.lambdaQuery() + .eq(THuiminAgreement::getOperatorId, operatorId) + .last("LIMIT 1").one(); + if (Objects.isNull(agreement)) { + agreement = new THuiminAgreement(); + agreement.setOperatorId(operatorId); + huiminAgreementService.save(agreement); + } + //删除之前的协议配置 + huiminAgreementSettingService.remove(new LambdaQueryWrapper<THuiminAgreementSetting>() + .eq(THuiminAgreementSetting::getAgreementId, agreement.getId())); + //保存协议配置 + THuiminAgreement finalAgreement = agreement; + tHuiminAgreementSettingList.forEach(t -> { + t.setAgreementId(finalAgreement.getId()); + }); + huiminAgreementSettingService.saveBatch(tHuiminAgreementSettingList); + } + + } + } +} diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreement.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreement.java index 7bd27ae..b3bba16 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreement.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreement.java @@ -10,6 +10,7 @@ import lombok.experimental.Accessors; import java.io.Serializable; +import java.util.List; /** * <p> @@ -44,6 +45,17 @@ */ @TableField("selectUserRemark") private String selectUserRemark; + /** + * 门店无惠民卡介绍页 + */ + @TableField("storeNoHuiminCardIntro") + private String storeNoHuiminCardIntro; + + @TableField(exist = false) + private Integer objectType; + + @TableField(exist = false) + private List<THuiminAgreementSetting> tHuiminAgreementSettingList; @Override protected Serializable pkVal() { return this.id; diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreementSetting.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreementSetting.java index e0b2979..175167c 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreementSetting.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/THuiminAgreementSetting.java @@ -22,7 +22,7 @@ @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@TableName("t_points_merchandise_city") +@TableName("t_huimin_agreement_setting") public class THuiminAgreementSetting extends Model<THuiminAgreementSetting> { private static final long serialVersionUID = 1L; @@ -32,6 +32,8 @@ */ @TableId(value = "id", type = IdType.AUTO) private Integer id; + @TableField("agreementId") + private Integer agreementId; /** * 协议名称 */ diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/model/HuiminAgreementQuery.java b/cloud-server-activity/src/main/java/com/dsh/activity/model/HuiminAgreementQuery.java new file mode 100644 index 0000000..158748b --- /dev/null +++ b/cloud-server-activity/src/main/java/com/dsh/activity/model/HuiminAgreementQuery.java @@ -0,0 +1,22 @@ +package com.dsh.activity.model; + +import lombok.Data; + +/** + * <p> + * 惠民卡协议查询 + * </p> + * + * @since 2023-07-12 + */ +@Data +public class HuiminAgreementQuery { + /** + * 运营商id 选择默认传null + */ + private Integer operatorId; + /** + *账号类型 + */ + private Integer objectType; +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/HuiminAgreementClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/HuiminAgreementClient.java index ad19a17..e530616 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/HuiminAgreementClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/HuiminAgreementClient.java @@ -1,8 +1,10 @@ package com.dsh.course.feignClient.activity; +import com.dsh.course.feignClient.activity.model.HuiminAgreementQuery; import com.dsh.course.feignClient.activity.model.THuiminAgreement; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; /** * @author mitao @@ -10,6 +12,20 @@ */ @FeignClient(value = "mb-cloud-activity") public interface HuiminAgreementClient { - @PostMapping("/tHuiminAgreement/save") - void insert(THuiminAgreement tHuiminAgreement); + /** + * 根据当前用户类型查询惠民卡协议 + * @param objectType + * @param operatorId + * @return + */ + @PostMapping("/base/tHuiminAgreement/selectByObjectType") + THuiminAgreement selectByObjectType(@RequestBody HuiminAgreementQuery query); + + /** + * 保存惠民卡协议 + * @param tHuiminAgreement + */ + @PostMapping("/base/tHuiminAgreement/save") + void insert(@RequestBody THuiminAgreement tHuiminAgreement); + } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/HuiminAgreementQuery.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/HuiminAgreementQuery.java new file mode 100644 index 0000000..8348677 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/HuiminAgreementQuery.java @@ -0,0 +1,22 @@ +package com.dsh.course.feignClient.activity.model; + +import lombok.Data; + +/** + * <p> + * 惠民卡协议查询 + * </p> + * + * @since 2023-07-12 + */ +@Data +public class HuiminAgreementQuery { + /** + * 运营商id 选择默认传null + */ + private Integer operatorId; + /** + *账号类型 + */ + private Integer objectType; +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreement.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreement.java index 750f03b..c0fd57a 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreement.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreement.java @@ -1,8 +1,5 @@ package com.dsh.course.feignClient.activity.model; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import lombok.Data; @@ -28,27 +25,28 @@ /** * 主键 */ - @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 运营商id 选择默认传null */ - @TableField("operatorId") private Integer operatorId; /** *添加人员说明文案 */ - @TableField("addUserRemark") private String addUserRemark; /** *选择人员说明文案 */ - @TableField("selectUserRemark") private String selectUserRemark; + /** + * 门店无惠民卡介绍页 + */ + private String storeNoHuiminCardIntro; private String agreementSettings; private List<THuiminAgreementSetting> tHuiminAgreementSettingList; + private Integer objectType; @Override protected Serializable pkVal() { return this.id; diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreementSetting.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreementSetting.java index 83a87b2..c04ba86 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreementSetting.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/THuiminAgreementSetting.java @@ -1,5 +1,6 @@ package com.dsh.course.feignClient.activity.model; +import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -36,11 +37,13 @@ * 协议名称 */ @TableField("agreementName") + @JSONField(name = "title") private String agreementName; /** *协议内容 */ @TableField("agreementContent") + @JSONField(name = "content") private String agreementContent; @Override diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminAgreementController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminAgreementController.java index 057f573..b4a0ba7 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminAgreementController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/THuiminAgreementController.java @@ -1,14 +1,24 @@ package com.dsh.guns.modular.system.controller.code; +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.feignClient.activity.HuiminAgreementClient; +import com.dsh.course.feignClient.activity.model.HuiminAgreementQuery; import com.dsh.course.feignClient.activity.model.THuiminAgreement; +import com.dsh.course.feignClient.activity.model.THuiminAgreementSetting; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.base.controller.BaseController; +import com.dsh.guns.modular.system.model.TOperator; +import com.dsh.guns.modular.system.service.TOperatorService; +import com.dsh.guns.modular.system.util.ResultUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; +import java.util.Objects; /** * 惠民卡控制器 @@ -24,6 +34,8 @@ @Autowired private HuiminAgreementClient huiminAgreementClient; + @Autowired + private TOperatorService operatorService; /** * 跳转到惠民卡首页 @@ -31,15 +43,53 @@ @RequestMapping("") public String index(Model model) { Integer objectType = UserExt.getUser().getObjectType(); + Integer operatorId = null; + if (objectType.equals(2)){ + //查询运营商 + TOperator operator = operatorService.getOne(new QueryWrapper<TOperator>() + .eq("userId", UserExt.getUser().getId()) + .ne("state", 3) + .last("LIMIT 1")); + if (Objects.nonNull(operator)) { + operatorId = operator.getId(); + } + } + HuiminAgreementQuery huiminAgreementQuery = new HuiminAgreementQuery(); + huiminAgreementQuery.setOperatorId(operatorId); + huiminAgreementQuery.setObjectType(objectType); + THuiminAgreement huiminAgreement = huiminAgreementClient.selectByObjectType(huiminAgreementQuery); model.addAttribute("objectType", objectType); + model.addAttribute("item", huiminAgreement); + model.addAttribute("tHuiminAgreementSettingList", Objects.nonNull(huiminAgreement) ? JSONArray.toJSONString(huiminAgreement.getTHuiminAgreementSettingList()) : ""); + //查询运营商列表 + model.addAttribute("operatorList", operatorService.list(new QueryWrapper<TOperator>().eq("state", 1))); + model.addAttribute("operatorId", operatorId); return PREFIX + "tHuiminAgreement_add.html"; } @RequestMapping(value = "/save") @ResponseBody public Object save(THuiminAgreement tHuiminAgreement) { + tHuiminAgreement.setObjectType(UserExt.getUser().getObjectType()); + String agreementSettings = tHuiminAgreement.getAgreementSettings(); + List<THuiminAgreementSetting> tHuiminAgreementSettings = JSONArray.parseArray(agreementSettings, THuiminAgreementSetting.class); + tHuiminAgreement.setTHuiminAgreementSettingList(tHuiminAgreementSettings); huiminAgreementClient.insert(tHuiminAgreement); return SUCCESS_TIP; } + @RequestMapping(value = "/selectAgreementByOperationId") + @ResponseBody + public ResultUtil<String> selectAgreementByOperationId(Integer operatorId) { + String tHuiminAgreementSettings = ""; + HuiminAgreementQuery huiminAgreementQuery = new HuiminAgreementQuery(); + huiminAgreementQuery.setOperatorId(operatorId); + huiminAgreementQuery.setObjectType(Objects.isNull(operatorId) ? 1 : 2); + THuiminAgreement huiminAgreement = huiminAgreementClient.selectByObjectType(huiminAgreementQuery); + if (Objects.nonNull(huiminAgreement)) { + //查询协议配置 + tHuiminAgreementSettings = JSONArray.toJSONString(huiminAgreement.getTHuiminAgreementSettingList()); + } + return ResultUtil.success(tHuiminAgreementSettings); + } /* *//** * 跳转到修改惠民卡 diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminAgreement/tHuiminAgreement_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminAgreement/tHuiminAgreement_add.html index 24a524c..1e5c68c 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminAgreement/tHuiminAgreement_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tHuiminAgreement/tHuiminAgreement_add.html @@ -13,7 +13,7 @@ <div class="tab-content"> <div id="tab-1" class="tab-pane active"> <div class="panel-body"> - <textarea id="editor_1" type="text/plain" style="width:1200px;height:400px;"></textarea> + <textarea id="editor_1" type="text/plain" style="width:1200px;height:400px;">${item.addUserRemark!}</textarea> <!--<div class="row btn-group-m-t"> <div class="col-sm-10 col-sm-offset-5"> <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun=""/> @@ -23,7 +23,7 @@ </div> <div id="tab-2" class="tab-pane"> <div class="panel-body"> - <textarea type="text/plain" id="editor_2" style="width:1200px;height:400px;"></textarea> + <textarea type="text/plain" id="editor_2" style="width:1200px;height:400px;"${item.selectUserRemark!}</textarea> <!--<div class="row btn-group-m-t"> <div class="col-sm-10"> <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun=""/> @@ -37,12 +37,16 @@ @} <div class="form-group"> <label class="col-sm-1 control-label" for="operator">所属运营商:</label> - <div class="col-sm-9"> + <div class="col-sm-3"> <select id="operator" class="form-control"> - <option value="" selected>默认</option> + <option value="">默认</option> @if(isNotEmpty(operatorList)){ @for(item in operatorList){ - <option value="${item.id}">${item.name}</option> + @if(objectType == 2){ + <option value="${item.id}" ${operatorId == item.id ? 'selected disabled' : ''}>${item.name}</option> + @}else{ + <option value="${item.id}">${item.name}</option> + @} @} @} </select> @@ -50,10 +54,14 @@ </div> <div class="form-group"> <label class="col-sm-1 control-label">门店无惠民卡介绍页</label> + <div class="col-sm-9"> + <textarea id="editor_3" type="text/plain" style="width:1200px;height:400px;">${item.storeNoHuiminCardIntro!}</textarea> + </div> + </div> </div> <div class="form-group"> <label class="col-sm-1 control-label" for="agreement">协议配置:</label> - <div class="col-sm-9"> + <div class="col-sm-3"> <div class="input-group"> <input type="text" id="agreement" name="agreement" class="form-control" placeholder="请输入协议配置标题"> <span class="input-group-btn"> @@ -90,6 +98,7 @@ <script> var editor_1 = null; var editor_2 = null; + var editor_3 = null; var dynamicEditors = []; // 存储动态创建的编辑器实例 var editorCounter = 0; // 用于生成唯一ID @@ -97,7 +106,8 @@ //初始化编辑器 editor_1 = UE.getEditor('editor_1'); editor_2 = UE.getEditor('editor_2'); - + editor_3 = UE.getEditor('editor_3'); + // 绑定添加按钮的点击事件 $("#agreementAdd").click(function() { var title = $("#agreement").val().trim(); @@ -107,15 +117,76 @@ } // 创建新的编辑器区域 - addNewEditor(title); + addNewEditor(title,""); // 清空输入框 $("#agreement").val(""); }); + + //协议配置回显 + let settingList = '${tHuiminAgreementSettingList}'; + if (settingList != "" && typeof settingList != "undefined"){ + let settingArr = JSON.parse(settingList); + review(settingArr); + } + + + //经营商切换事件 + $("#operator").change(function() { + //清空协议配置 + removeAll() + //调用接口获取协议配置数据 + //提交信息 + var ajax = new $ax(Feng.ctxPath + "/tHuiminAgreement/selectAgreementByOperationId", function(data){ + if (data.data != "" && data.data != null){ + console.log("协议配置数据:"+data.data); + let settingArr = JSON.parse(data.data); + review(settingArr); + } + },function(data){ + }); + ajax.set("operatorId",$("#operator").val()); + ajax.start(); + }); }); - - // 添加新的编辑器函数 - function addNewEditor(title) { + + // 清空所有编辑器实例和UI元素 + function removeAll(){ + console.log("清空协议配置"); + $("#dynamic-tabs-container").hide(); + // 彻底清空容器内容,确保没有残留 + $("#agreement-tabs").empty(); + $("#agreement-content").empty(); + + // 销毁所有编辑器实例 + for(var i = 0; i < dynamicEditors.length; i++) { + try { + if(dynamicEditors[i].editor) { + dynamicEditors[i].editor.destroy(); + dynamicEditors[i].editor = null; + } + } catch(e) { + console.error("销毁编辑器出错:", e); + } + } + + editorCounter = 0; + //清空动态创建的编辑器实例 + dynamicEditors=[]; + console.log("dynamicEditors",dynamicEditors) + } + + // 协议配置回显 + function review(settingArr){ + if (typeof settingArr !== 'undefined' && settingArr.length > 0) { + settingArr.forEach(function(item) { + addNewEditor(item.title, item.content || ""); + }); + } + } + + // 添加新的编辑器函数 - 修改为接受内容参数 + function addNewEditor(title, content) { editorCounter++; var editorId = "dynamic-editor-" + editorCounter; var tabId = "agreement-tab-" + editorCounter; @@ -157,24 +228,41 @@ // 确保编辑器已准备好 editor.ready(function() { - // 初始化为空内容 - editor.setContent(""); - - // 存储编辑器实例和标题信息 - dynamicEditors.push({ - id: editorId, - tabId: tabId, - counter: editorCounter, - title: title, - editor: editor - }); - - // 绑定删除按钮事件 - $(".delete-tab[data-editor-id='" + editorId + "']").click(function(e) { - e.preventDefault(); - e.stopPropagation(); - deleteEditor($(this).data("counter")); - }); + try { + // 检查编辑器是否已准备好接收内容 + if(editor.body) { + // 初始化内容 + editor.setContent(content || ""); + } else { + // 如果编辑器body未准备好,延迟设置内容 + setTimeout(function() { + try { + editor.setContent(content || ""); + } catch(e) { + console.error("延迟设置编辑器内容出错:", e); + } + }, 500); + } + + // 存储编辑器实例和标题信息 + dynamicEditors.push({ + id: editorId, + tabId: tabId, + counter: editorCounter, + title: title, + editor: editor, + content: content || "" + }); + + // 绑定删除按钮事件 + $(".delete-tab[data-editor-id='" + editorId + "']").click(function(e) { + e.preventDefault(); + e.stopPropagation(); + deleteEditor($(this).data("counter")); + }); + } catch(e) { + console.error("编辑器初始化出错:", e); + } }); // 手动激活新添加的标签页 @@ -239,9 +327,22 @@ collectDynamicEditors = function() { var agreements = []; for(var i = 0; i < dynamicEditors.length; i++) { + var content = ""; + try { + // 确保编辑器实例存在且可用 + if(dynamicEditors[i].editor && dynamicEditors[i].editor.isReady) { + content = dynamicEditors[i].editor.getContent(); + } else { + content = dynamicEditors[i].content || ""; + } + } catch(e) { + console.error("获取编辑器内容出错:", e); + content = dynamicEditors[i].content || ""; + } + agreements.push({ title: dynamicEditors[i].title, - content: dynamicEditors[i].editor.getContent() + content: content }); } return agreements; @@ -256,6 +357,7 @@ }); ajax.set("addUserRemark", editor_1.getContent()); ajax.set("selectUserRemark", editor_2.getContent()); + ajax.set("storeNoHuiminCardIntro", editor_3.getContent()); ajax.set("operatorId", $("#operator").val()); ajax.set("agreementSettings", JSON.stringify(collectDynamicEditors())); ajax.set("id", $("#id").val()); -- Gitblit v1.7.1