wangshan 1 سال پیش
والد
کامیت
f7e7ccb5e0
2فایلهای تغییر یافته به همراه144 افزوده شده و 112 حذف شده
  1. 18 70
      CMPlatform/web/templates/com/modal.html
  2. 126 42
      CMPlatform/web/templates/private/cuser_rule_edit.html

+ 18 - 70
CMPlatform/web/templates/com/modal.html

@@ -84,65 +84,13 @@
         <div class="modal-content">
             <div class="modal-header">
                 <div class="modal-header">
-                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true" onclick="closeaaa()">&times;</button>
+                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true" >&times;</button>
                     <div class="edit-form">
                         <div class="edit-info" style="text-align: center">
                             <span >新增精准筛选规则</span>
                         </div>
                         <div id="insertexactRule">
 
-<!--                            &lt;!&ndash;规则1 &ndash;&gt;-->
-<!--                            <div class="insertexactRule-form exact-rule-1 ">-->
-<!--                                <div class="form-group" >-->
-<!--                                    <label class="col-sm-4 control-label"><span style="color:red;">* </span>关键词分组:</label>-->
-<!--                                    <div class="col-sm-8">-->
-<!--                                        <select class="form-control groupSelect" name="groupSelect">-->
-<!--                                        </select>-->
-<!--                                    </div>-->
-<!--                                </div>-->
-<!--                                <div class="form-group">-->
-<!--                                    <label class="col-sm-4 control-label"><span style="color:red;">* </span>出现次数>=</label>-->
-<!--                                    <div class="col-sm-8">-->
-<!--                                        <input  type='number' type="number" min='0' class="form-control" name="count" placeholder="请输入次数">-->
-<!--                                    </div>-->
-<!--                                </div>-->
-<!--                                <div class="form-group">-->
-<!--                                    <label class="col-sm-4 control-label"><span style="color:red;">* </span>匹配方式</label>-->
-<!--                                    <div class="col-sm-8">-->
-<!--                                        <select class="form-control selectpicker" multiple name="matchWay">-->
-<!--                                            <option value="title" selected>标题</option>-->
-<!--                                            <option value="content">正文</option>-->
-<!--                                        </select>-->
-<!--                                    </div>-->
-<!--                                </div>-->
-<!--                            </div>-->
-
-<!--                            &lt;!&ndash;规则1 &ndash;&gt;-->
-<!--                            <div class=" exact-rule-2" style="display: none">-->
-<!--                                <div class="form-group" >-->
-<!--                                    <label class="col-sm-4 control-label"><span style="color:red;">* </span>关键词分组:</label>-->
-<!--                                    <div class="col-sm-8">-->
-<!--                                        <select class="form-control groupSelect" name="groupSelect">-->
-<!--                                        </select>-->
-<!--                                    </div>-->
-<!--                                </div>-->
-<!--                                <div class="form-group">-->
-<!--                                    <label class="col-sm-4 control-label"><span style="color:red;">* </span>出现次数>=</label>-->
-<!--                                    <div class="col-sm-8">-->
-<!--                                        <input  type='number' min='0'  class="form-control" name="count" placeholder="请输入次数">-->
-<!--                                    </div>-->
-<!--                                </div>-->
-<!--                                <div class="form-group">-->
-<!--                                    <label class="col-sm-4 control-label"><span style="color:red;">* </span>匹配方式</label>-->
-<!--                                    <div class="col-sm-8">-->
-<!--                                        <select class="form-control selectpicker" multiple name="matchWay">-->
-<!--                                            <option value="title" selected>标题</option>-->
-<!--                                            <option value="content">正文</option>-->
-<!--                                        </select>-->
-<!--                                    </div>-->
-<!--                                </div>-->
-
-                            </div>
                         </div>
                     </div>
          <div style="text-align: center" id="addExactRuleButton">
@@ -151,7 +99,7 @@
 
                 </div>
                <div class="modal-footer">
-                   <button type="button" class="btn btn-default" data-dismiss="modal" onclick="formReset()">取消</button>
+                   <button type="button" class="btn btn-default" data-dismiss="modal" >取消</button>
                    <button type="button" class="btn btn-primary" onclick="add_exactRule_save()">确定</button>
                </div>
             </div>
@@ -163,15 +111,15 @@
         <div class="modal-content">
             <div class="modal-header">
                 <div class="modal-header">
-                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true" onclick="closeaaa()">&times;</button>
+                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true" >&times;</button>
                     <div class="edit-form">
                         <div class="edit-info" style="text-align: center">
                             <span >编辑精准筛选规则</span>
                         </div>
                         <div id="editexactRule">
-
+                            <input style="display: none" id="editexactRuleId">
                             <!--规则1 -->
-                            <div class="insertexactRule-form exact-rule-1">
+                            <div class="editexactRule-form exact-rule-1">
                                 <div class="form-group" >
                                     <label class="col-sm-4 control-label"><span style="color:red;">* </span>关键词分组:</label>
                                     <div class="col-sm-8">
@@ -182,22 +130,22 @@
                                 <div class="form-group">
                                     <label class="col-sm-4 control-label"><span style="color:red;">* </span>出现次数>=</label>
                                     <div class="col-sm-8">
-                                        <input  type='number' type="number" min='0' class="form-control" name="" placeholder="请输入次数">
+                                        <input  type='number' type="number" min='0' class="form-control" name="count" placeholder="请输入次数">
                                     </div>
                                 </div>
                                 <div class="form-group">
                                     <label class="col-sm-4 control-label"><span style="color:red;">* </span>匹配方式</label>
                                     <div class="col-sm-8">
-                                        <select class="form-control selectpicker" multiple name="dataTypeSelect3">
-                                            <option value="title" selected>标题</option>
-                                            <option value="content">正文</option>
+                                        <select class="form-control selectpicker" multiple name="matchWay">
+<!--                                            <option value="title" selected>标题</option>-->
+<!--                                            <option value="content">正文</option>-->
                                         </select>
                                     </div>
                                 </div>
                             </div>
 
-                            <!--规则1 -->
-                            <div class="insertexactRule-form exact-rule-2" style="display: none">
+                            <!--规则2 -->
+                            <div class="editexactRule-form exact-rule-2" style="display: none">
                             <div class="form-group" >
                                 <label class="col-sm-4 control-label"><span style="color:red;">* </span>关键词分组:</label>
                                 <div class="col-sm-8">
@@ -208,15 +156,15 @@
                             <div class="form-group">
                                 <label class="col-sm-4 control-label"><span style="color:red;">* </span>出现次数>=</label>
                                 <div class="col-sm-8">
-                                    <input  type='number' min='0'  class="form-control" name="" placeholder="请输入次数">
+                                    <input  type='number' min='0'  class="form-control" name="count" placeholder="请输入次数">
                                 </div>
                             </div>
                             <div class="form-group">
                                 <label class="col-sm-4 control-label"><span style="color:red;">* </span>匹配方式</label>
                                 <div class="col-sm-8">
-                                    <select class="form-control selectpicker" multiple name="dataTypeSelect3">
-                                        <option value="title" selected>标题</option>
-                                        <option value="content">正文</option>
+                                    <select class="form-control selectpicker" multiple name="matchWay">
+<!--                                        <option value="title" selected>标题</option>-->
+<!--                                        <option value="content">正文</option>-->
                                     </select>
                                 </div>
                             </div>
@@ -224,13 +172,13 @@
                         </div>
                     </div>
          <div style="text-align: center" id="editExactRuleButton">
-             <a onclick="addExactRule()" style="margin: 0 auto">+新增</a>
+             <a onclick="editExactRule()" style="margin: 0 auto">+新增</a>
          </div>
 
                 </div>
                <div class="modal-footer">
-                   <button type="button" class="btn btn-default" data-dismiss="modal" onclick="formReset1()">取消</button>
-                   <button type="button" class="btn btn-primary" onclick="edit_exactRule_save()">确定</button>
+                   <button type="button" class="btn btn-default" data-dismiss="modal" >取消</button>
+                   <button id="edit_exactRule_save" type="button" class="btn btn-primary" onclick="edit_exactRule_save()">确定</button>
                </div>
             </div>
         </div>

+ 126 - 42
CMPlatform/web/templates/private/cuser_rule_edit.html

@@ -1777,7 +1777,6 @@
         dataMap["s_globalnotkey"] = $('#g_notkey').val();
         dataMap["s_globalclearkey"] = $('#s_globalclearkey').val();
         dataMap["s_exactRule"] = exactRuleArrToStr()
-        debugger
         if (dataMap["s_customer"] == "" || dataMap["s_name"] == "" || dataMap["s_salesperson"] == "" || dataMap["s_serverperson"] == "") {
             alert("请填写必须字段!")
             return
@@ -2834,15 +2833,28 @@
     var groupList = new Array()
     // 精准筛选规则-新增按钮点击方法
     function addExactRuleShow(){
-        //初始化
-        $("#insertexactRule").html("");
-        $("#addExactRuleButton").show();
         // 判断是否设置关键词
         // 判断是否设置关键词匹配方式
-        //
+        // debugger
+        //  判断是否设置关键词
+        if (o_rules.length===0) {
+            showTip("请先设置关键词")
+            return
+        }
+        //  判断是否设置关键词匹配方式
+        if (!hasMatchWay()){
+            showTip("请先设置关键词匹配方式")
+            return
+        }
+        // 清空数据
         $("#modal-add-exactRule select[name='groupSelect']").empty()
         $("#modal-add-exactRule input[name='count']").val('')
-        // debugger
+        matchWayShow("#insertexactRule")
+        $("#insertexactRule  select[name=matchWay]").val("").trigger("change")
+        $("#insertexactRule  select[name=matchWay]").selectpicker('val', 'title');
+        //初始化
+        $("#insertexactRule").html("");
+        $("#addExactRuleButton").show();
         // 新增精准筛选规则弹框
        // 请求分组列表接口获取数据
         $.ajax({
@@ -2866,7 +2878,7 @@
 
         $("#modal-add-exactRule").modal("show");
     }
-    // 精准筛选规则-新增按钮
+    // 精准筛选规则-新增页面 +新增按钮
     function addExactRule(){
         // $("#insertexactRule .exact-rule-2").addClass("insertexactRule-form")
         // $("#insertexactRule .exact-rule-2").show()
@@ -2879,7 +2891,6 @@
     }
     // 精准筛选规则-新增精准匹配规则保存按钮点击事件
     function add_exactRule_save(){
-        debugger
         // 获取值
         let ruleArr = []
        let formList =  $("#insertexactRule .insertexactRule-form")
@@ -2890,6 +2901,7 @@
             let tmp = '#insertexactRule .exact-rule-'+(i+1)+' select[name=matchWay]'
             let matchWay = $(tmp).val();
             if (groupName==""||matchWay.length==0||count==""){
+                // todo
                 showMsg("必填项缺失")
                 return
             }
@@ -3020,12 +3032,34 @@
         })
 
     }
+    function showGroupListData(mId){
+        $.ajax({
+            url: "/service/cuser/groupList",
+            type: "post",
+            data: {"id": dataMap.id},
+            async: false,
+            success: function (r) {
+                if (r.data) {
+                    for (var i in r.data) {
+                        var groupOption = document.createElement('option');
+                        groupOption.innerText =r.data[i].name
+                        groupOption.value = r.data[i].name
+                        let s = mId+" select[name='groupSelect']"
+                        $(s).append(groupOption)
+                    }
+                }
+            }})
+    }
     // 编辑点击事件
     function editExacRuleClick(index){
+        showGroupListData("#modal-edit-exactRule") // 铺分组下拉列表数据
+        matchWayShow("#editexactRule")
+        $("#editexactRuleId").text(index) // 隐藏选中的数组行号
+        // 铺数据
         let contentArr = exactRuleTableArr[index]
         // keyArr 定义数组 维持最后有序
         let keyArr = []
-        // 合并 标题正文 如果
+        // 合并 标题正文
         let tmpDict = {}
         for (let i = 0; i < contentArr.length; i++) {
             let keyGroupCount = contentArr[i].group+"_"+ contentArr[i].count
@@ -3039,47 +3073,97 @@
                 keyArr.push(keyGroupCount)
             }
         }
-        if(keyArr.length===0){
+        if((keyArr.length===0)||(keyArr.length>2)){// 因为现在是写死的俩 后续有时间再优化
             showTip("数据有误")
         }
-
-        if(keyArr.length==2) { // 铺俩
-            $("#").val(tmpDict[keyArr[0]].count)
-        }
-
-            let str = ""
-        for (let tmpDictKey in keyArr) {
-            str += "关键词分组:"+tmpDict[keyArr[tmpDictKey]].group+",出现次数>="+tmpDict[keyArr[tmpDictKey]].count+",匹配方式:"+Array.from(tmpDict[keyArr[tmpDictKey]].match_way).join(",")+";"
+        //
+        if(keyArr.length==2){
+            $("#editexactRule .exact-rule-2").addClass("editexactRule-form")
+            $("#editexactRule .exact-rule-2").show() // 展示表单2
+            $("#editExactRuleButton").hide() // 隐藏新增按钮
         }
         // 铺数据
-        $.ajax({
-            url: "/service/cuser/groupList",
-            type: "post",
-            data: {"id": dataMap.id},
-            async: false,
-            success: function (r) {
-                if (r.data) {
-                    for (var i in r.data) {
-                        var groupOption = document.createElement('option');
-                        groupOption.innerText =r.data[i].name
-                        groupOption.value = r.data[i].name
-                        groupOption.selected = true
-                        if (selectElement.options[i].value === selectedValue) {
-                            selectElement.options[i].selected = true;
-                        $("#modal-edit-exactRule select[name='groupSelect']").append(groupOption)
-                    }
-                }
-            }
-        }})
-
+        for (let i = 0; i < keyArr.length; i++) {
+            $('#editexactRule .exact-rule-'+(i+1)+' select[name=groupSelect]').selectpicker('val',tmpDict[keyArr[i]].group)
+            $('#editexactRule .exact-rule-'+(i+1)+' select[name=matchWay]').val("").trigger("change")
+            let matchWayArr = Array.from(tmpDict[keyArr[i]].match_way)
+            $('#editexactRule .exact-rule-'+(i+1)+' select[name=matchWay]').selectpicker('val',matchWayArr);
+            $('#editexactRule .exact-rule-'+(i+1)+' input[name=count]').val(tmpDict[keyArr[i]].count)
+        }
         $("#modal-edit-exactRule").modal("show");
 
     }
-    function edit_exactRule_save(index){
-        debugger
+    // 编辑保存
+    function edit_exactRule_save(){
+       let index =  $("#editexactRuleId").text()
+        // 获取数
+        let ruleArr = []
+        let formList =  $("#editexactRule .editexactRule-form")
+        for (let i = 0; i < formList.length; i++) {
+            let groupName = formList[i].querySelector('[name=groupSelect]').value
+            let count = formList[i].querySelector('[name=count]').value
+            // 这是因为现在新增的表单是写死的两个
+            let tmp = '#editexactRule .exact-rule-'+(i+1)+' select[name=matchWay]'
+            let matchWay = $(tmp).val();
+            if (groupName==""||matchWay.length==0||count==""){
+                // todo
+                showMsg("必填项缺失")
+                return
+            }
+            for (let j = 0; j < matchWay.length; j++) {
+                let rule =      {
+                    "group":groupName,"match_way":matchWay[j],"count":count
+                }
+                ruleArr.push(rule)
+            }
+        }
+        // 保存到exactRuleTableArr 临时数组
+        exactRuleTableArr[index] = ruleArr
+        $('#exactRuleTable').dataTable().fnClearTable();
+        $('#exactRuleTable').dataTable().fnAddData(exactRuleTableArr);
+        if (exactRuleTableArr.length == 0) {
+            $('#exactRuleTable').dataTable().fnClearTable();
+        }
+        $("#modal-edit-exactRule").modal("hide");
+    }
+    // 精准筛选规则-编辑页面 +新增按钮
+    function editExactRule(){
+        $("#editexactRule .exact-rule-2").addClass("editexactRule-form")
+        $("#editexactRule .exact-rule-2").show()
+        $("#editExactRuleButton").hide() // 隐藏新增按钮
+        // $(".insertexactRule-form").selectpicker("refresh");
     }
-    // 判断是否设置关键词
-
     //  判断是否设置匹配方式
+    function hasMatchWay() {
+        for (let i = 0; i < o_rules.length; i++) {
+            if (o_rules[i]["s_keymatch"]!=""&&o_rules[i]["s_keymatch"]!=undefined){
+                return true
+            }
+        }
+        return false
+    }
+    // 获取已经设置的匹配方式  但是目前仅支持 标题和正文
+    const ruleMatchMruleStr = {
+        "1":"title",
+        "2":"content"
+    }
+    function matchWayShow(mId) {
+        let arr  = new Set();
+        for (let i = 0; i < o_rules.length; i++) {
+            if (o_rules[i]["s_keymatch"] != "" && o_rules[i]["s_keymatch"] != undefined) {
+                if (ruleMatchMruleStr.hasOwnProperty(o_rules[i]["s_keymatch"])){
+                    let matchWay = ruleMatchMruleStr[o_rules[i]["s_keymatch"]]
+                    arr.add({ value: matchWay, text: matchWayMap[matchWay] })
+                }
+            }
+        }
+        let  arr2 = Array.from(arr)
+        for (let i = 0; i <arr2.length; i++) {
+            let  option = arr2[i]
+            let s = `<option value="`+option.value+`">`+option.text+`</option>`
+            $(mId+'  select[name=matchWay]').append(`<option value="`+option.value+`">`+option.text+`</option>`)
+        }
+        $(mId+'  select[name=matchWay]').selectpicker('refresh');
 
+    }
 </script>