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