zouyuxuan il y a 5 ans
Parent
commit
5fde5a0cb6

+ 87 - 0
src/service/customer_service.go

@@ -875,6 +875,26 @@ func (c *Customer) CustomerAllRule() {
 		"s_userid": customerId,
 		"b_delete": false,
 	}
+	inc_query := bson.M{
+		"s_appid":customerId,
+	}
+	//获取新增历史规则
+	inc_rules  := []map[string]interface{}{}
+	inc_rule :=make(map[string]interface{})
+	inc_data,_ := Mgo.FindOne("historylog",inc_query)
+	if inc_data!=nil&&(len(*inc_data) !=0){
+		for _,t := range (*inc_data)["dep_rule"].([]interface{}){
+			if t.(map[string]interface{})["is_new"].(bool){
+				inc_rule["id"] = t.(map[string]interface{})["id"]  //规则id
+				inc_rule["s_depart_name"] = t.(map[string]interface{})["s_depart_name"]
+				inc_rule["s_name"] = t.(map[string]interface{})["s_name"]
+				inc_rule["s_depart_status"] = t.(map[string]interface{})["s_depart_status"]
+				inc_rule["s_rule_status"] = t.(map[string]interface{})["s_rule_status"]
+				inc_rule["rule_updatetime"] = t.(map[string]interface{})["rule_updatetime"]
+				inc_rules = append(inc_rules,inc_rule)
+			}
+		}
+	}
 	data, _ := Mgo.Find("cuserdepart", query, `{"i_createtime":-1}`, nil, false, 0, 0)
 	if data != nil && len(*data) != 0 {
 		res := []map[string]interface{}{}
@@ -892,12 +912,14 @@ func (c *Customer) CustomerAllRule() {
 					j["_id"] = j["_id"].(bson.ObjectId).Hex()
 				}
 				history_rule_data["department_rule"] = depart_rule_data
+				history_rule_data["is_slected"] = true
 			}
 			res = append(res, history_rule_data)
 		}
 		c.ServeJson(map[string]interface{}{
 			"status": "success",
 			"data":   res,
+			"inc_rules":inc_rules,
 		})
 	} else {
 		c.ServeJson(map[string]interface{}{
@@ -909,6 +931,71 @@ func (c *Customer) CustomerAllRule() {
 
 //保存历史规则
 func (c *Customer) SaveHistoryRule() {
+	rules_id:=c.GetSlice("rulesid")
+	userid := c.GetString("userid")
+	var tag_rules []map[string]interface{}
+	user_rules := make(map[string]interface{})
+	//获取私有标签
+	if userid !=""{
+		usertags,_:=Mgo.Find("eusertagrule",map[string]interface{}{"s_userid":userid,"b_delete":false},`{"i_createtime":-1}`,`{"o_list":1}`,false,0,0)
+		if usertags!=nil&&len(*usertags)!=0{
+			log.Println("usertags",*usertags)
+			for _,tag_rule:=range *usertags{
+				log.Println("tag_rule",tag_rule)
+				delete(tag_rule,"_id")
+				tag_rules = append(tag_rules,tag_rule)
+			}
+		}
+		userinfo,_ := Mgo.FindOne("euer",map[string]interface{}{
+			"s_userid":userid,
+		})
+		if userinfo !=nil&&len(*userinfo)!=0{
+			log.Println("s_name",user_rules["s_name"])
+			user_rules["s_name"] = (*userinfo)["s_customername"]
+			user_rules["s_appid"] = (*userinfo)["s_appid"]
+		}
+	}
+	//获取用户规则
+	if len(rules_id)>0{
+		dep_rules := []interface{}{}
+		for _,rule := range rules_id{
+			dep_rule := make(map[string]interface{})
+			query := bson.M{
+				"_id":   bson.ObjectIdHex(rule),
+				"b_delete":   false,
+			}
+			res,_:=Mgo.FindOne("cuserdepartrule",query)
+			if res !=nil&&len(*res)!=0{
+				//获取规则所属部门信息
+				department_info,_:=Mgo.FindOne("cuserdepart",map[string]interface{}{
+					"_id":bson.ObjectIdHex((*res)["s_departid"].(string)),
+					"b_delete":false,
+				})
+				dep_rule["id"] = (*res)["_id"].(bson.ObjectId).Hex()
+				dep_rule["is_new"] = true
+				dep_rule["s_departid"] = (*res)["s_departid"]
+				dep_rule["s_name"] = (*res)["s_tagname"]
+				dep_rule["o_rules"] = (*res)["o_rules"]
+				dep_rule["rule_updatetime"] = (*department_info)["i_updatetime"]
+				dep_rule["s_depart_name"] = (*department_info)["s_name"]
+				dep_rule["s_depart_status"] = (*department_info)["i_isuse"]
+				dep_rules = append(dep_rules,dep_rule)
+			}
+		}
+		user_rules["dep_rules"] = dep_rules
+		user_rules["tag_rules"] = tag_rules
+		user_rules["createtime"] = time.Now().Unix()
+	}
+	issave :=Mgo.Save("historylog",user_rules)
+	if issave!=""{
+		c.ServeJson(map[string]interface{}{
+			"status":"success",
+		})
+	}else{
+		c.ServeJson(map[string]interface{}{
+			"status":"fail",
+		})
+	}
 
 }
 

BIN
src/web/res/标签导出1595837440.xlsx


+ 87 - 91
src/web/templates/private/customer_history.html

@@ -20,7 +20,7 @@
         <div class="tab-content">
             <div class="nav-tabs-custom">
                 <ul class="nav nav-tabs edit-step">
-                    <li class="active" data-mode="guide"><a href="#tab_1" data-toggle="tab" aria-expanded="true">客户信息</a></li>
+                    <li class="active" data-mode="guide"><a href="#tab_1" data-toggle="tab" aria-expanded="true">新建历史任务</a></li>
                     <li data-mode="guide" class="tab_2"><a href="#tab_2" data-toggle="tab" aria-expanded="false">私有标签</a></li>
                 </ul>
                 <div class="tab-content">
@@ -30,7 +30,7 @@
                             <div class="box box-primary">
                                 <div class="box-header with-border">
                                     <i class="fa fa-tag"></i>
-                                    <h3 class="box-title">基本信息</h3>
+                                    <h3 class="box-title">用户基本信息</h3>
                                     <a class="btn btn-primary btn-sm" style="float: right;margin-top: 7px;margin-right: 10px" onclick="saveCuser()"><i class="fa fa-fw fa-file-text fa-lg"></i>保存</a>
                                 </div>
                                 <div class="box-body">
@@ -38,23 +38,23 @@
                                         <label class="col-sm-2 control-label"><span style="color:red;">* </span>客户名称</label>
                                         <div class="col-sm-2">
                                             <input type="text" class="form-control" id="customername" placeholder="公司名称"
-                                                   value="{{.T.data.s_name}}" required>
+                                                   value="{{.T.data.s_name}}" required disabled>
                                         </div>
                                         <label class="col-sm-2 control-label"><span style="color:red;">* </span>销售人员</label>
                                         <div class="col-sm-2">
                                             <input type="text" class="form-control" id="seller" placeholder="销售人员名称"
-                                                   value="{{.T.data.s_salesperson}}" required>
+                                                   value="{{.T.data.s_salesperson}}" required disabled>
                                         </div>
                                         <label class="col-sm-2 control-label">客户联系人</label>
                                         <div class="col-sm-2">
                                             <input type="text" class="form-control" id="contract" placeholder="客户联系人名称"
-                                                   value="{{.T.data.s_customername}}">
+                                                   value="{{.T.data.s_customername}}" disabled>
                                         </div>
                                     </div>
                                     <div id="pushDiv">
                                         <div class="box-header with-border">
                                             <i class="fa fa-tag"></i>
-                                            <h3 class="box-title">企业客户信息</h3>
+                                            <h3 class="box-title">全局规则设置</h3>
                                         </div>
                                         <div class="box-body">
                                             <div class="form-group">
@@ -100,26 +100,27 @@
                                     </div>
                                     <div class="box-header with-border">
                                         <i class="fa fa-tag"></i>
-                                        <h3 class="box-title">部门信息</h3>
+                                        <h3 class="box-title">选择规则</h3>
                                     </div>
                                     <table id="departTable" class="table table-bordered">
                                         <thead>
                                         <div style="margin: 10px 10px 0px;">
                                             <a class="btn btn-default" onclick="showDepart()">新增</a>
-                                            <a class="btn btn-default" onclick="modify_Depart()">修改</a>
-                                            <a class="btn btn-default" onclick="del_Depart()">删除</a>
                                             <a class="btn btn-default" onclick="select_Depart()">选择</a>
                                         </div>
-                                        <tr>
-                                            <th></th>
+                                        <tr class="show-select" hidden>
                                             <th>编号</th>
                                             <th>部门名称</th>
-                                            <th>部门联系人</th>
+                                            <th>规则名称</th>
                                             <th>修改时间</th>
-                                            <th>是否启用</th>
-                                            <th>功能</th>
+                                            <th>部门状态</th>
+                                            <th>规则状态</th>
+                                            <th>操作</th>
                                         </tr>
                                         </thead>
+                                        <tbody class="selected-rules">
+
+                                        </tbody>
                                     </table>
                                 </div>
                             </div>
@@ -276,7 +277,6 @@
 <script>
     menuActive("/customer/list");
     var dataMap = {{.T.data}}
-    var departArr = {{.T.depart}}
     var tagruleArr = []
     var ruleArr = []
 
@@ -312,59 +312,6 @@
                 $('#expandSelect').find("option[value = enterpise]").attr("selected","selected");
             }
         }
-        $('#departTable').DataTable({
-            "paging": false,
-            "lengthChange": true,
-            "searching": false,
-            "ordering": false,
-            "info": false,
-            "autoWidth": true,
-            "language": {
-                "url": "/dist/js/dataTables.chinese.lang"
-            },
-            "data": departArr,
-            "fnDrawCallback": function () {
-                this.api().column(1).nodes().each(function (cell, i) {
-                    cell.innerHTML = i + 1;
-                });
-            },
-            "columns": [
-                {"data":function() {
-                        return `<input type="checkbox" name="ckb-depart" onclick="singleSelect1(this)" style="text-align: center">`
-                    }, width: "3%"},
-                {"data": null, width: "3%"},
-                {"data": "s_name", width: "10%"},
-                {"data": function (row) {
-                        if (row.s_contract == "") {
-                            return ""
-                        }else {
-                            return row.s_contract
-                        }
-                    }, width: "10%"},
-                {"data": "i_updatetime", render: function (val) {
-                        var dt = new Date();
-                        dt.setTime(parseInt(val) * 1000);
-                        return dt.format("yyyy-MM-dd hh:mm:ss")
-                    }, width: "20%"},
-                {"data": "i_isuse", render: function (val, a, row) {
-                        tmp = ""
-                        if(val == 1){
-                            tmp="<a href='#' title='停用' onclick='setup(\""+row._id+"\",false)'><i class='fa fa-fw fa-circle text-green'></i></a>已启用"
-                        }else{
-                            tmp="<a href='#' title='启用' onclick='setup(\""+row._id+"\",true)'><i class='fa fa-fw fa-circle text-red'></i></a>未启用"
-                        }
-                        return tmp
-                    }, width: "10%" },
-                {"data": "_id", width: "20%", render: function (val, a, row, pos) {
-                        var s = [val, row.s_userid];
-                        tmp = '<div>' +
-                            '<a class="btn btn-sm btn-primary" href="/service/cuser/rule/list?ids=' + s + '">规则列表</a>&nbsp&nbsp'
-                            '</div>';
-                        return tmp
-                    }
-                }
-            ],
-        });
         $('#tagrule').DataTable({
             "paging": false,
             "lengthChange": false,
@@ -508,20 +455,12 @@
 
     var depart_flag = -1;      // 0:新增,1:修改
     function showDepart() {
-        depart_flag = 0
-        $('#depart_name').val("");
-        $('#depart_contract').val("");
-        $('#s_depart_name').val("");
-        $('#modal-add-depart').modal("show")
+        window.location.href="/service/cuser/rule/history/edit?id="+c_id
     }
     //修改部门
     function modify_Depart() {
         depart_flag = 1
         var index = selectIndex[0] - 1;
-        $('#depart_name').val(departArr[index].s_name);
-        $('#depart_contract').val(departArr[index].s_contract);
-        $('#s_depart_name').val(departArr[index].s_subname)
-        $("#isuseSelect").val(departArr[index].i_isuse)
         $('#modal-add-depart').modal("show");
     }
     function del_Depart() {
@@ -551,16 +490,6 @@
                 if (!bol) {
                     return
                 }
-                departArr = deleteArrayVal(departArr, tmp)
-
-                keyTableChecked = false;
-                if (departArr.length == 0) {
-                    $('#allCheckbox').prop("checked", false);
-                    $('#departTable').dataTable().fnClearTable();
-                }else {
-                    $('#departTable').dataTable().fnClearTable();
-                    $('#departTable').dataTable().fnAddData(departArr);
-                }
             })
         }else {
             showTip("请选中需要删除的关键词", 1000)
@@ -742,9 +671,9 @@
             }
         })
     }
+    var c_id = getParam("id")
     function select_Depart() {
         //获取用户自定义规则
-        var c_id = getParam("id")
         $.ajax({
            url:"/service/customer/history/allrule",
            type:"POST",
@@ -756,7 +685,7 @@
                     for (var i=0;i<r.data.length;i++){
                         if (r.data[i].department_rule.length!=0){
                             for (var l=0;l<r.data[i].department_rule.length;l++){
-                                html += '<tr><td><input type="checkbox" id="selrow"/></td><td>'+number+'</td><td>'+r.data[i].depart_name+'</td><td>'+r.data[i].department_rule[l].s_tagname+'</td><td>'+formattime(r.data[i].department_rule[l].i_updatetime)+'</td>';
+                                html += '<tr><td><input type="checkbox" id="rule_id" onclick="getcheck(this)"/></td><td>'+number+'</td><td>'+r.data[i].depart_name+'</td><td>'+r.data[i].department_rule[l].s_tagname+'</td><td>'+formattime(r.data[i].department_rule[l].i_updatetime)+'</td>';
                                 if (r.data[i].department_isuse ==1){
                                     html += "<td>"+"已启用"
                                 }else{
@@ -767,11 +696,29 @@
                                 }else{
                                     html += "</td><td>"+"未启用"+"</td>"
                                 }
-                                html += "<td class='hidden'>"+r.data[i].department_rule[l]._id+"</td>"
+                                html += "<td hidden>"+r.data[i].department_rule[l]._id+"</td><td hidden class='is_inc'>false</td>";
                                 number++
                             }
                         }
                     }
+                    //新增历史规则
+                    if (r.inc_rules.length>0){
+                        for (var t=0;t<r.inc_rules.length;t++){
+                            html += '<tr><td><input type="checkbox" id="rule_id" onclick="getcheck(this)"/></td><td>'+number+'</td><td>'+r.inc_rules[t].s_depart_name+'</td><td>'+r.inc_rules[t].s_name+'</td><td>'+formattime(r.inc_rules[t].rule_updatetime)+'</td>';
+                            if (r.inc_rules[t].s_depart_status ==1){
+                                html += "<td>"+"已启用"
+                            }else{
+                                html += "</td><td>"+"未启用"
+                            }
+                            if (r.inc_rules[t].s_rule_status ==1){
+                                html += "</td><td>"+"已启用"+"</td>"
+                            }else{
+                                html += "</td><td>"+"未启用"+"</td>"
+                            }
+                            html += "<td hidden>"+r.inc_rules[i].id+"</td><td hidden class='is_inc'>true</td>"
+                            number++
+                        }
+                    }
                     $(".history_rules").html(html)
                 }
            }
@@ -809,9 +756,58 @@
 
         return dates;
     }
-    
+
     function saveHistoryRule(e) {
+        var rules_id = new Array();
+        var selected_rules = new Array()
+        $(".history_rules tr").each(function () {
+            var chk = $(this).find('td').eq(0).find("#rule_id");
+            if (chk.hasClass('checked')){
+                var selected_rule = new Object()
+                selected_rule.department_name = $(this).find('td').eq(2).text();
+                selected_rule.rule_name = $(this).find('td').eq(3).text();
+                selected_rule.update_time = $(this).find('td').eq(4).text();
+                selected_rule.department_status = $(this).find('td').eq(5).text();
+                selected_rule.rule_status = $(this).find('td').eq(6).text();
+                selected_rule.isinc = $(this).find('td').eq(8).text();
+
+                var rule_id = $(this).find('td').eq(7).text();
+                rules_id.push(rule_id);
+                selected_rules.push(selected_rule)
+            }
+        })
+        var num = 1
+        var html = ""
+        if (selected_rules.length>0){
+            for (var i=0;i<selected_rules.length;i++){
+                html += '<tr><td>'+num+'</td><td>'+selected_rules[i].department_name+'</td><td>'+selected_rules[i].rule_name+'</td><td>'+selected_rules[i].update_time+'</td>'+'<td>'+selected_rules[i].department_status+'</td>'+'<td>'+selected_rules[i].rule_status+'</td>';
+                if (selected_rules.isinc == "true"){
+                    html += "<td><span>修改</span><span>删除</span></td>"
+                }else{
+                    html += "<td></td>"
+                }
+                num++
+            }
+        }
+        $(".show-select").show();
+        $(".selected-rules").append(html);
+        $("#modal-history").modal("hide");
+        $.ajax({
+            url:"/service/customer/history/saverule",
+            type:"POST",
+            data:{'rulesid':rules_id,'userid':c_id,},
+            traditional:true,
+            success:function (r) {
+                if (r.status == "success"){
 
+                }else{
+                    $("#modal-history").modal("hide");
+                }
+            }
+        })
+    }
+    function getcheck(e) {
+        $(e).toggleClass("checked")
     }
 </script>
 /service/cuser/rule/list