xuzhiheng il y a 4 ans
Parent
commit
7845fbdb8e

BIN
src/client/.DS_Store


+ 34 - 0
src/client/client.go

@@ -0,0 +1,34 @@
+package client
+
+import (
+	"log"
+	mongoutil "qfw/mongodb"
+
+	"github.com/go-xweb/xweb"
+
+	. "util"
+)
+
+type Client struct {
+	*xweb.Action
+	index xweb.Mapper `xweb:"/client/index"` //客户首页
+}
+
+func (this *Client) Index() {
+	id := this.GetString("id")
+	log.Println("id", id)
+	query := map[string]interface{}{}
+	query["_id"] = mongoutil.StringTOBsonId(id)
+	data, _ := Mgo.FindOneByField("cuser", query, `{}`)
+	log.Println("data", data)
+	depart, _ := Mgo.Find("cuserdepart", map[string]interface{}{"s_userid": id, "b_delete": false}, nil, nil, false, -1, -1)
+	log.Println("depart", depart)
+	(*data)["_id"] = mongoutil.BsonIdToSId((*data)["_id"])
+	if (*data)["i_state"] == 1 {
+		tagRule, _ := Mgo.Find("eusertagrule", map[string]interface{}{"s_userid": id, "b_delete": false}, nil, nil, false, -1, -1)
+		this.T["tagrule"] = *tagRule
+	}
+	this.T["data"] = *data
+	this.T["depart"] = *depart
+	this.Render("/client/index.html")
+}

+ 15 - 2
src/front/front.go

@@ -1,13 +1,15 @@
 package front
 
 import (
-	"github.com/go-xweb/xweb"
-	"gopkg.in/mgo.v2/bson"
+	"log"
 	mongoutil "qfw/mongodb"
 	qu "qfw/util"
 	"strconv"
 	"time"
 	. "util"
+
+	"github.com/go-xweb/xweb"
+	"gopkg.in/mgo.v2/bson"
 )
 
 var UserMenu map[string][]map[string]interface{} //存储菜单
@@ -58,6 +60,7 @@ func (f *Front) Login() {
 		}
 		user, _ := Mgo.FindOne("user", query)
 		checked := false
+		s_id := ""
 		if user != nil && len(*user) > 0 {
 			checked = true
 			f.SetSession("user", map[string]interface{}{
@@ -68,9 +71,19 @@ func (f *Front) Login() {
 				"id":    mongoutil.BsonIdToSId((*user)["_id"]),
 			})
 			UserMenu[email] = GetUserMenu(qu.ObjToString((*user)["s_role"]))
+			if (*user)["s_role"] == "3" {
+				log.Println("users", (*user)["s_name"])
+				users, ok := Mgo.FindOne("cuser", map[string]interface{}{"s_name": (*user)["s_name"]})
+				log.Println("users", users)
+				if users != nil && ok {
+					s_id = mongoutil.BsonIdToSId((*users)["_id"])
+				}
+			}
 		}
 		f.ServeJson(map[string]interface{}{
 			"checked": checked,
+			"role":    (*user)["s_role"],
+			"id":      s_id,
 		})
 	} else {
 		f.Render("login.html")

+ 2 - 0
src/main.go

@@ -1,6 +1,7 @@
 package main
 
 import (
+	"client"
 	_ "filter"
 	"front"
 	"history"
@@ -36,6 +37,7 @@ func init() {
 	xweb.AddAction(&service.Customer{})
 	xweb.AddAction(&service.SecondPush{})
 	xweb.AddAction(&history.HistoryData{})
+	xweb.AddAction(&client.Client{})
 	xweb.RootApp().AppConfig.SessionTimeout = 1 * time.Hour
 	xweb.RootApp().Logger.SetOutputLevel(1)
 	go history.SaveMgo()

+ 743 - 0
src/web/templates/client/index.html

@@ -0,0 +1,743 @@
+{{include "com/inc.html"}}
+<!-- Main Header -->
+{{include "com/header.html"}}
+<div class="content-wrapper">
+    <section class="content-header">
+        <h1>编辑客户
+        </h1>
+        <ol class="breadcrumb">
+            <li><a href="#"><i class="fa fa-dashboard"></i> 首页</a></li>
+            <li><a href="/service/customer/list"> 客户列表</a></li>
+            <li><a href="#"> 编辑客户</a></li>
+        </ol>
+    </section>
+    <!-- Main content -->
+    <section class="content">
+        <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 data-mode="guide" class="tab_2"><a href="#tab_2" data-toggle="tab" aria-expanded="false">私有标签</a></li>
+                </ul>
+                <div class="tab-content">
+
+                    <div class="tab-pane active" id="tab_1">
+                        <form class="form-horizontal">
+                            <div class="box box-primary">
+                                <div class="box-header with-border">
+                                    <i class="fa fa-tag"></i>
+                                    <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">
+                                    <div class="form-group">
+                                        <label class="col-sm-2 control-label"><span style="color:red;">* </span>客户名称</label>
+                                        <div class="col-sm-3">
+                                            <input type="text" class="form-control" id="customername" placeholder="公司名称"
+                                                   value="{{.T.data.s_name}}" required>
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <label class="col-sm-2 control-label"><span style="color:red;">* </span>销售人员</label>
+                                        <div class="col-sm-3">
+                                            <input type="text" class="form-control" id="seller" placeholder="销售人员名称"
+                                                   value="{{.T.data.s_salesperson}}" required>
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <label class="col-sm-2 control-label">技术支持</label>
+                                        <div class="col-sm-3">
+                                            <input type="text" class="form-control" id="skills" placeholder="技术支持" value="{{.T.data.skills}}" required>
+                                        </div>
+                                    </div>
+                                    <div class="form-group">
+                                        <label class="col-sm-2 control-label">客户联系人</label>
+                                        <div class="col-sm-3">
+                                            <input type="text" class="form-control" id="contract" placeholder="客户联系人名称"
+                                                   value="{{.T.data.s_customername}}">
+                                        </div>
+                                    </div>
+                                    <div id="pushDiv">
+                                        <div class="box-header with-border">
+                                            <i class="fa fa-tag"></i>
+                                            <h3 class="box-title">企业客户信息</h3>
+                                        </div>
+                                        <div class="box-body">
+                                            <div class="form-group">
+                                                <label class="col-sm-2 control-label">推送设置</label>
+                                                <div class="col-sm-3">
+                                                    <input id="pushSwitch" type="checkbox" checked/>
+                                                </div>
+                                                <script>
+                                                    $('#pushSwitch').on('switchChange.bootstrapSwitch', function (event, state) {
+                                                        if (state) {
+                                                            dataMap["i_push"] = 1
+                                                        }else {
+                                                            dataMap["i_push"] = 0
+                                                        }
+                                                    })
+                                                </script>
+                                            </div>
+                                            <div class="form-group">
+                                                <label class="col-sm-2 control-label"><span style="color:red;">* </span>推送模式</label>
+                                                <div class="col-sm-3">
+                                                    <select class="form-control" id="pushModelSelect">
+                                                        <option value=0>全局模式</option>
+                                                        <option value=1>部门模式</option>
+                                                        <option value=2>标签模式</option>
+                                                        <option value=3>部门+标签模式</option>
+                                                        <option value=4>规则模式(不去重)</option>
+                                                    </select>
+                                                </div>
+                                            </div>
+                                            <div class="form-group">
+                                                <label class="col-sm-2 control-label"><span style="color:red;">* </span>推送方式</label>
+                                                <div class="col-sm-3">
+                                                    <select class="form-control" id="pushTypeSelect">
+                                                        <option value=0 code="email">邮箱</option>
+                                                        <option value=1 code="interface">接口</option>
+                                                    </select>
+                                                </div>
+                                            </div>
+                                            <div class="form-group">
+                                                <label class="col-sm-2 control-label">数据扩展</label>
+                                                <div class="col-sm-3">
+                                                    <select class="form-control selectpicker" multiple id="expandSelect">
+                                                        <option value="hospitalgrade" >医院等级</option>
+                                                        <option value="enterpise" >企业信息</option>
+                                                    </select>
+                                                    <script>
+                                                        $('#expandSelect').on('hide.bs.select', function () {
+                                                            var arr = $('#expandSelect').val();
+                                                            var arrStr = "";
+                                                            for (var i in arr) {
+                                                                if (arrStr === "") {
+                                                                    arrStr = arr[i]
+                                                                } else {
+                                                                    arrStr = arrStr + "," + arr[i]
+                                                                }
+                                                            }
+                                                            dataMap["s_extends"] = arrStr
+                                                        })
+                                                    </script>
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
+                                    <div class="box-header with-border">
+                                        <i class="fa fa-tag"></i>
+                                        <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>
+                                        </div>
+                                        <tr>
+                                            <th></th>
+                                            <th>编号</th>
+                                            <th>部门名称</th>
+                                            <th>部门联系人</th>
+                                            <th>修改时间</th>
+                                            <th>是否启用</th>
+                                            <th>功能</th>
+                                        </tr>
+                                        </thead>
+                                    </table>
+                                </div>
+                            </div>
+                        </form>
+                    </div>
+                    <div class="tab-pane" id="tab_2">
+                        <div class="box box-primary">
+                            <div class="box-header with-border">
+                                <i class="fa fa-bookmark"></i>
+                                <h3 class="box-title">私有标签</h3>
+                                <a class="btn btn-primary btn-sm" style="float: right;margin-top: 7px;margin-right: 10px" href="/service/euser/tag/edit?cid={{.T.data._id}}"><i class="fa fa-fw fa-file-code-o fa-lg"></i>新建标签</a>
+                            </div>
+                            <table id="tagrule" class="table table-bordered">
+                                <thead>
+                                <tr>
+                                    <th>编号</th>
+                                    <th>标签名称</th>
+                                    <th>修改时间</th>
+                                    <th>启用状态</th>
+                                    <th>操作</th>
+                                    <th>功能</th>
+                                </tr>
+                                </thead>
+                            </table>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </section>
+</div>
+
+<!-- 新增部门 -->
+<div class="modal fade" id="modal-add-depart" tabindex="-1" role="dialog" aria-hidden="true">
+    <div class="modal-dialog" style="width: 50%">
+        <div class="modal-content">
+            <div class="modal-header">
+                <div class="modal-header">
+                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+                    <div class="edit-form">
+                        <div class="edit-info">
+                            <span class="glyphicon glyphicon-ok-sign" aria-hidden="true"></span>
+                            <span>新增部门</span>
+                        </div>
+                        <form class="form-horizontal">
+                            <div class="form-group">
+                                <label class="col-sm-3 control-label"><span style="color:red;">* </span>部门名称</label>
+                                <div class="col-sm-6">
+                                    <input class="form-control" placeholder="销售部、销售部-xx子部门" id="depart_name"/></div>
+                            </div>
+                            <div class="form-group">
+                                <label class="col-sm-3 control-label">联系人</label>
+                                <div class="col-sm-6">
+                                    <input class="form-control" placeholder="输入联系人名称" id="depart_contract"/></div>
+                            </div>
+                            <div class="form-group">
+                                <label class="col-sm-3 control-label">是否启用</label>
+                                <div class="col-sm-6">
+                                    <select class="form-control selectpicker" id="isuseSelect">
+                                        <option value=1 selected>是</option>
+                                        <option value=0>否</option>
+                                    </select>
+                                </div>
+                            </div>
+                        </form>
+                    </div>
+                </div>
+                <div class="modal-footer">
+                    <input type="button" onclick="saveDepart()" class="btn btn-primary saveBtn" value="保存">
+                    <input type="button" onclick="cancelModel()" class="btn btn-default" style="margin-left: 24px"
+                           value="取消">
+                </div>
+            </div>
+        </div>
+    </div><!-- /.modal -->
+</div>
+<!-- 关联客户规则 -->
+<div class="modal fade" id="modal-associated" tabindex="-1" role="dialog" aria-hidden="true">
+    <div class="modal-dialog" style="width: 60%">
+        <div class="modal-content">
+            <div class="modal-header">
+                <div class="modal-header">
+                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+                    <div class="edit-form">
+                        <div class="edit-info">
+                            <span class="glyphicon glyphicon-ok-sign" aria-hidden="true"></span>
+                            <span>关联客户规则</span>
+                        </div>
+                        <div class="content">
+                            <table id="cuserRule" class="table table-bordered">
+                                <thead>
+                                <tr>
+                                    <th>编号</th>
+                                    <th><input type="checkbox" id="selrow" onclick="allSelect(this)"/></th>
+                                    <th>规则名称</th>
+                                    <th>部门名称</th>
+                                    <th>创建时间</th>
+                                </tr>
+                                </thead>
+                            </table>
+                        </div>
+                    </div>
+                </div>
+                <div class="modal-footer">
+                    <input type="button" onclick="saveTagrule()" class="btn btn-primary saveBtn" value="保存">
+                    <input type="button" onclick="cancelModel()" class="btn btn-default" style="margin-left: 24px"
+                           value="取消">
+                </div>
+            </div>
+        </div>
+    </div><!-- /.modal -->
+</div>
+
+{{include "com/footer.html"}}
+<script>
+    // menuActive("/customer/list");
+    var dataMap = {{.T.data}}
+    var departArr = {{.T.depart}}
+    var tagruleArr = []
+    var ruleArr = []
+
+    var selectIndex = [];               //选中的编号
+
+    $(document).ready(function () {
+        if (dataMap.i_state == 0) {
+            $('.tab_2').hide()
+            $('#pushDiv').hide()
+        }else {
+            tagruleArr = {{.T.tagrule}}
+            $('#pushSwitch').bootstrapSwitch({
+                onText: "开启",
+                offText: "关闭",
+            })
+            if (dataMap.i_push && dataMap.i_push == 1) {
+                $('#pushSwitch').bootstrapSwitch('state', true);
+            }else {
+                $('#pushSwitch').bootstrapSwitch('state', false);
+            }
+            $("#pushModelSelect option").each(function (){
+                if($(this).val()==dataMap.i_pushmodel){
+                    $(this).attr("selected",'selected');
+                }
+            });
+            $('#pushModelSelect').val(dataMap.i_pushmodel)
+            $("#pushTypeSelect option").each(function (){
+                if($(this).val()==dataMap.i_pushtype){
+                    $(this).attr("selected",'selected');
+                }
+            });
+            // if (dataMap.i_pushtype == 0) {
+            //     $('#pushTypeSelect').val(0)
+            // }else {
+            //     $('#pushTypeSelect').val(1)
+            // }
+            if (dataMap.s_extends && dataMap.s_extends.indexOf("hospitalgrade") >= 0 && dataMap.s_extends.indexOf("enterpise") >= 0) {
+                $('#expandSelect').find("option[value = hospitalgrade]").attr("selected","selected");
+                $('#expandSelect').find("option[value = enterpise]").attr("selected","selected");
+            }else if (dataMap.s_extends && dataMap.s_extends.indexOf("hospitalgrade") >= 0){
+                $('#expandSelect').find("option[value = hospitalgrade]").attr("selected","selected");
+            }else if (dataMap.s_extends && dataMap.s_extends.indexOf("enterpise") >= 0) {
+                $('#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,
+            "searching": false,
+            "ordering": false,
+            "info": true,
+            "autoWidth": false,
+            "language": {
+                "url": "/dist/js/dataTables.chinese.lang"
+            },
+            "fnDrawCallback": function () {
+                this.api().column(0).nodes().each(function (cell, i) {
+                    cell.innerHTML = i + 1;
+                });
+            },
+            "data": tagruleArr,
+            "columns": [
+                {"data": null, width: "1%"},
+                {"data": "s_name", width: "10%"},
+                {"data": "i_updatetime", width:"9%", render: function (val) {
+                        var dt = new Date()
+                        dt.setTime(parseInt(val) * 1000);
+                        return dt.format("yyyy-MM-dd hh:mm:ss")
+                    }},
+                {"data": "i_isuse", render: function (val, a, row) {
+                        tmp = ""
+                        if(val == 1){
+                            tmp="<a href='#' title='停用' onclick='setupTag(\""+row._id+"\",false)'><i class='fa fa-fw fa-circle text-green'></i></a>已启用"
+                        }else{
+                            tmp="<a href='#' title='启用' onclick='setupTag(\""+row._id+"\",true)'><i class='fa fa-fw fa-circle text-red'></i></a>未启用"
+                        }
+                        return tmp
+                    }, width: "10%" },
+                {"data": "_id", width:"11%",render: function (val, a, row, pos) {
+                        tmp = '<div>' +
+                            '<a class="btn btn-sm btn-primary" href="/service/euser/tag/edit?id='+val+'&cid='+row.s_userid+'">编辑</a>&nbsp&nbsp'+
+                            '<a class="btn btn-sm btn-danger" onclick="delTag(\''+val+'\')">删除</a>'+
+                            '</div>';
+                        return tmp
+                    }},
+                {"data": "_id", width:"11%",render: function (val, a, row, pos) {
+                        var s = [val, row.s_userid]
+                        tmp = '<div>' +
+                            '<a class="btn btn-sm btn-primary" onclick="associated(\''+s+'\')">关联数据范围</a>&nbsp&nbsp'+
+                            '</div>';
+                        return tmp
+                    }},
+            ],
+        });
+    })
+    function cancelModel() {
+        $('#modal-add-depart').modal("hide")
+        $('#modal-associated').modal("hide")
+    }
+    //表格全选
+    function allSelect(obj) {
+        if ($(obj).is(':checked')) {
+            keyTableChecked = true;
+            keyTableAllChecked = true;
+            $('input[name="ckb-rule"]').each(function () {
+                this.checked = true;
+                selectIndex.push($(this).parents("tr").index());
+            })
+        } else {
+            selectIndex.length = 0;
+            keyTableChecked = false;
+            keyTableAllChecked = false;
+            $('input[name="ckb-keyid"]').each(function () {
+                this.checked = false;
+            })
+        }
+    }
+    function singleSelect(obj) {
+        var tag = true;
+        selectIndex.length = 0;
+        $('input[name="ckb-rule"]').each(function () {
+            if (this.checked) {
+                keyTableChecked = true;
+                selectIndex.push($(this).parents("tr").index());
+            }else {
+                tag = false
+            }
+        });
+        if (tag) {
+            keyTableAllChecked = true;
+            $('#allCheckbox').prop("checked", true);
+        }else {
+            keyTableAllChecked = false;
+            $('#allCheckbox').prop("checked", false);
+        }
+    }
+    function singleSelect1(obj) {
+        var tag = true;
+        selectIndex.length = 0;
+        $('input[name="ckb-depart"]').each(function () {
+            if (this.checked) {
+                keyTableChecked = true;
+                selectIndex.push($(this).parents("tr").index() + 1);
+            }else {
+                tag = false
+            }
+        });
+        if (tag) {
+            keyTableAllChecked = true;
+            $('#allCheckbox').prop("checked", true);
+        }else {
+            keyTableAllChecked = false;
+            $('#allCheckbox').prop("checked", false);
+        }
+    }
+
+    function saveCuser() {
+        var name = $('#customername').val();
+        var contract = $('#contract').val();
+        var saleperson = $('#seller').val();
+        var skills = $('#skills').val();
+        if (name == "" || saleperson == "") {
+            showTip("请填写必填字段!", 1000)
+            return
+        }
+        dataMap.s_name = name
+        dataMap.s_customername = contract
+        dataMap.s_salesperson = saleperson
+        dataMap.skills = skills
+        if (dataMap.i_state == 1) {
+            dataMap.i_pushmodel = $('#pushModelSelect option:selected').val()
+            dataMap.i_pushtype = $('#pushTypeSelect option:selected').val()
+        }
+        dataMap.id = dataMap._id
+        $.ajax({
+            url: "/service/customer/save",
+            type: 'POST',
+            data: dataMap,
+            success: function (r) {
+                if (r.rep) {
+                    showTip("保存成功", 500);
+                } else {
+                    showTip("保存失败", 500);
+                }
+            }
+        })
+    }
+
+    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")
+    }
+    //修改部门
+    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() {
+        if (keyTableChecked && selectIndex.length > 0) {
+            showConfirm("确定删除?", function() {
+                var tmp = []
+                for (var i in selectIndex) {
+                    var j = selectIndex[i] - 1;
+                    tmp.push(j)
+                }
+                var did = departArr[tmp[0]]._id
+                var bol = false
+                $.ajax({
+                    url: "/service/depart/del",
+                    type: "post",
+                    data: {"id": did},
+                    success: function (r) {
+                        bol = r.rep
+                        if(r.rep){
+                            // showTip("删除成功", 1000)
+                            window.location.reload()
+                        }else{
+                            showTip("删除失败", 1000);
+                        }
+                    }
+                })
+                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)
+        }
+    }
+    function saveDepart() {
+        var name = $('#depart_name').val();
+        if (name != "") {
+            if (depart_flag == 1) {
+                var index = selectIndex[0] - 1;
+                var depart = departArr[index]
+                depart["id"] = depart["_id"]
+            }else {
+                var depart = {}
+                depart["s_userid"] = dataMap._id
+            }
+            depart["s_name"] = name;
+            depart["s_contract"] = $('#depart_contract').val();
+            depart["s_subname"] = $('#s_depart_name').val()
+            depart["i_isuse"] =  $('#isuseSelect').val()
+            if (depart_flag == 1) {
+                var index = selectIndex[0] - 1;
+                departArr.splice(index, 1, depart)
+            }else {
+                departArr.push(depart)
+            }
+            $('#departTable').dataTable().fnClearTable();
+            $('#departTable').dataTable().fnAddData(departArr);
+            $('#modal-add-depart').modal('hide');
+
+            $.ajax({
+                url: "/service/depart/edit",
+                type: "post",
+                data: depart,
+                success: function (r) {
+                    if(r.rep){
+                        // showTip("保存成功", 1000)
+                        window.location.reload()
+                    }else{
+                        showTip("保存失败", 1000);
+                    }
+                }
+            })
+        }else {
+            showTip("部门名称不能为空", 500)
+        }
+    }
+    function setup(val, bol) {
+        var msg = ""
+        var i_isuse = 0
+        if (bol) {
+            msg = "确定启用?"
+            i_isuse = 1
+        }else {
+            msg = "确定停用?"
+            i_isuse = 0
+        }
+        showConfirm(msg, function() {
+            $.ajax({
+                url:"/service/customer/setup",
+                type:"post",
+                data:{"_id": val, "i_isuse": i_isuse},
+                success:function(r){
+                    if(r.rep){
+                        // showTip("设置成功", 1000);
+                        window.location.reload()
+                    }else{
+                        showTip("设置失败", 1000);
+                    }
+                }
+            })
+        });
+    }
+    function setupTag(val, bol) {
+        var msg = ""
+        var i_isuse = 0
+        if (bol) {
+            msg = "确定启用?"
+            i_isuse = 1
+        }else {
+            msg = "确定停用?"
+            i_isuse = 0
+        }
+        showConfirm(msg, function() {
+            $.ajax({
+                url:"/service/euser/tag/setup",
+                type:"post",
+                data:{"_id": val, "i_isuse": i_isuse},
+                success:function(r){
+                    if(r.rep){
+                        // showTip("设置成功", 1000);
+                        window.location.reload()
+                    }else{
+                        showTip("设置失败", 1000);
+                    }
+                }
+            })
+        });
+    }
+    function delTag(val) {
+        showConfirm("确定删除?", function () {
+            $.ajax({
+                url: "/service/euser/tag/del",
+                type: "post",
+                data: {"_id": val},
+                success: function (r) {
+                    if (r.rep) {
+                        window.location.reload()
+                    } else {
+                        showTip("删除失败", 1000);
+                    }
+                }
+            })
+        });
+    }
+    var tagid = ""
+    //关联规则
+    function associated(val) {
+        tagid = val.split(",")[0]
+        $('#cuserRule').DataTable({
+            "destroy": true,
+            "paging": true,
+            "lengthChange": false,
+            "searching": false,
+            "ordering": false,
+            "info": true,
+            "autoWidth": false,
+            "serverSide": true,
+            "ajax": {
+                url: "/service/tag/ruleList",
+                type: "post",
+                data: {"eid": val.split(",")[1]},
+            },
+            "language": {
+                "url": "/dist/js/dataTables.chinese.lang"
+            },
+            "fnDrawCallback": function () {
+                this.api().column(0).nodes().each(function (cell, i) {
+                    cell.innerHTML = i + 1;
+                });
+            },
+            "columns": [
+                {"data": null, width: "1%"},
+                {"data": "", width: "1%", render: function() {
+                        return `<input type="checkbox" name="ckb-rule" onclick="singleSelect(this)" style="text-align: center">`
+                    }},
+                {"data": "s_name", width: "20%"},
+                {"data": "s_depart", width: "10%"},
+                {"data": "i_updatetime", width:"10%", render: function (val) {
+                        var dt = new Date()
+                        dt.setTime(parseInt(val) * 1000);
+                        return dt.format("yyyy-MM-dd hh:mm:ss")
+                    }},
+            ],
+        });
+        $('#modal-associated').modal("show")
+    }
+    function saveTagrule() {
+        var ids = [];
+        var table = $('#cuserRule').dataTable();
+        var nTrs = table.fnGetNodes();
+        for (var i = 0; i < nTrs.length; i++) {
+            if ($(nTrs[i].childNodes[1]).find("input").prop("checked")) {
+                ids.push(table.fnGetData(nTrs[i])._id);
+            }
+        }
+        $.ajax({
+            url: "/service/euser/tag/associated",
+            type: "post",
+            data: {"_id": tagid, "ids": ids.join(",")},
+            success: function (r) {
+                if (r.rep) {
+                    // window.location.reload()
+                    showTip("关联成功", 1000);
+                    $('#modal-associated').modal("hide")
+                } else {
+                    showTip("关联失败", 1000);
+                }
+            }
+        })
+    }
+</script>

+ 5 - 1
src/web/templates/login.html

@@ -93,7 +93,11 @@ function login(){
 		data:{"email":email,"pwd":pwd},
 		success:function(r){
 			if(r.checked){
-				window.location.href="/front/index"
+                if(r.role == "3"){
+                    window.location.href="/client/index?id="+ r.id;
+                }else{
+                    window.location.href="/front/index";
+                }
 			}else{
 				alert("fail");
 			}