Explorar o código

独立保函系统配置页面修改时增加已重复校验

chengpan %!s(int64=2) %!d(string=hai) anos
pai
achega
7ba7a69c2a

+ 2 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/controller/opt/SysInfoConfigController.java

@@ -105,6 +105,8 @@ public class SysInfoConfigController extends BaseController
     @GetMapping("/edit/{confId}")
     @GetMapping("/edit/{confId}")
     public String edit(@PathVariable("confId") Long confId, ModelMap mmap)
     public String edit(@PathVariable("confId") Long confId, ModelMap mmap)
     {
     {
+        List<ConfigDictData> dictDataList = sysInfoConfigService.selectConfigSysTpList();
+        mmap.put("dictDataList", JSON.toJSON(dictDataList));
         SysInfoConfig sysInfoConfig = sysInfoConfigService.selectSysInfoConfigByConfId(confId);
         SysInfoConfig sysInfoConfig = sysInfoConfigService.selectSysInfoConfigByConfId(confId);
         mmap.put("sysInfoConfig", sysInfoConfig);
         mmap.put("sysInfoConfig", sysInfoConfig);
         return prefix + "/edit";
         return prefix + "/edit";

+ 45 - 15
ruoyi-admin/src/main/resources/templates/opt/config/edit.html

@@ -7,20 +7,20 @@
     <div class="wrapper wrapper-content animated fadeInRight ibox-content">
     <div class="wrapper wrapper-content animated fadeInRight ibox-content">
         <form class="form-horizontal m" id="form-config-edit" th:object="${sysInfoConfig}">
         <form class="form-horizontal m" id="form-config-edit" th:object="${sysInfoConfig}">
             <input name="confId" th:field="*{confId}" type="hidden">
             <input name="confId" th:field="*{confId}" type="hidden">
-            <div class="form-group">    
-                <label class="col-sm-3 control-label">系统类型:</label>
-                <div class="col-sm-8">
-                    <select name="typeCd" class="form-control m-b" th:with="type=${@dict.getType('sys_tp_cd')}">
-                        <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{typeCd}"></option>
-                    </select>
-                </div>
-            </div>
-            <div class="form-group">    
-                <label class="col-sm-3 control-label">场景类型:</label>
-                <div class="col-sm-8">
-                    <select name="sceneTpCd" class="form-control m-b" th:with="type=${@dict.getType('sys_tp_cd')}">
-                        <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{sceneTpCd}"></option>
-                    </select>
+            <div class="form-group">
+                <label class="col-sm-3 control-label">配置类型:</label>
+                <div id="element" class="row">
+                    <div class="col-sm-4">
+                        <select name="typeCd" class="type form-control m-b" th:attr='data-value=*{typeCd}' data-first-title="请选择">
+<!--                        <select name="typeCd" class="type form-control m-b" data-first-title="请选择">-->
+                            <option value="">请选择</option>
+                        </select>
+                    </div>
+                    <div class="col-sm-4">
+                        <select name="sceneTpCd" class="router form-control m-b" th:attr='data-value=*{sceneTpCd}' data-first-title="请选择">
+                            <option value="">请选择</option>
+                        </select>
+                    </div>
                 </div>
                 </div>
             </div>
             </div>
             <div class="form-group">    
             <div class="form-group">    
@@ -40,10 +40,40 @@
         </form>
         </form>
     </div>
     </div>
     <th:block th:include="include :: footer" />
     <th:block th:include="include :: footer" />
+    <th:block th:include="include :: jquery-cxselect-js" />
     <script th:inline="javascript">
     <script th:inline="javascript">
+        // 直接返回获取
+        var dictDataList = [[${dictDataList}]];
+        $('#element').cxSelect({
+            selects: ['type', 'router'],
+            jsonValue: 'v',
+            data: dictDataList
+        });
+
         var prefix = ctx + "opt/config";
         var prefix = ctx + "opt/config";
         $("#form-config-edit").validate({
         $("#form-config-edit").validate({
-            focusCleanup: true
+            rules: {
+                typeCd: {
+                    required: true
+                },
+                sceneTpCd: {
+                    required: true
+                },
+                content: {
+                    required: true
+                }
+            },
+            messages: {
+                typeCd: {
+                    required: "",
+                },
+                sceneTpCd: {
+                    required: "",
+                },
+                content: {
+                    required: "内容不能为空",
+                }
+            }
         });
         });
 
 
         function submitHandler() {
         function submitHandler() {

+ 4 - 0
ruoyi-system/src/main/java/com/ruoyi/opt/service/impl/SysInfoConfigServiceImpl.java

@@ -75,6 +75,10 @@ public class SysInfoConfigServiceImpl implements ISysInfoConfigService
     @Override
     @Override
     public int updateSysInfoConfig(SysInfoConfig sysInfoConfig)
     public int updateSysInfoConfig(SysInfoConfig sysInfoConfig)
     {
     {
+        int count = sysInfoConfigMapper.checkSysConfigExistByTypeCdAndSceneTpCd(sysInfoConfig);
+        if(count>0){
+            throw new RuntimeException("配置已存在,请确认后重试");
+        }
         sysInfoConfig.setUpdateTime(DateUtils.getNowDate());
         sysInfoConfig.setUpdateTime(DateUtils.getNowDate());
         return sysInfoConfigMapper.updateSysInfoConfig(sysInfoConfig);
         return sysInfoConfigMapper.updateSysInfoConfig(sysInfoConfig);
     }
     }

+ 3 - 0
ruoyi-system/src/main/resources/mapper/opt/SysInfoConfigMapper.xml

@@ -103,6 +103,9 @@
 
 
     <select id="checkSysConfigExistByTypeCdAndSceneTpCd" parameterType="SysInfoConfig" resultType="int">
     <select id="checkSysConfigExistByTypeCdAndSceneTpCd" parameterType="SysInfoConfig" resultType="int">
         select count(1) from sys_info_config s where s.type_cd = #{typeCd} and s.scene_tp_cd = #{sceneTpCd}
         select count(1) from sys_info_config s where s.type_cd = #{typeCd} and s.scene_tp_cd = #{sceneTpCd}
+        <if test="confId != null">
+            and s.conf_id != #{confId}
+        </if>
     </select>
     </select>
 
 
 </mapper>
 </mapper>