中扬CRM客户关系管理系统
#
luxiaotao1123
2022-11-08 19c9d6fa6eb8cac0898886e1a9508f8a83792f3f
#
3个文件已修改
1个文件已添加
840 ■■■■ 已修改文件
src/main/webapp/static/js/common.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/order/order.js 324 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order.html 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/views/order/order_more.html 425 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/webapp/static/js/common.js
@@ -262,3 +262,4 @@
var popupRight;
var cstmrByMore;
var orderByMore;
src/main/webapp/static/js/order/order.js
@@ -1,29 +1,141 @@
var pageCurr;
var pageCount = 0;
var treeCond;
var admin;
layui.config({
    base: baseUrl + "/static/layui/lay/modules/"
}).use(['table','laydate', 'form', 'admin'], function(){
}).extend({
    cascader: 'cascader/cascader',
}).use(['table','laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'tree', 'dropdown'], function(){
    var table = layui.table;
    var $ = layui.jquery;
    var layer = layui.layer;
    var layDate = layui.laydate;
    var form = layui.form;
    var admin = layui.admin;
    admin = layui.admin;
    var xmSelect = layui.xmSelect;
    var cascader = layui.cascader;
    var tree = layui.tree;
    var dropdown = layui.dropdown;
    $('#organization').html(localStorage.getItem('nickname') + ' <i class="layui-icon">&#xe61a;</i>');
    // 部门人员 筛选
    dropdown.render({
        elem: '#organization'
        ,content: ['<div id="organizationTree" style="height: calc(100vh - 525px);border: none"></div>'].join('')
        ,style: 'width: 370px; height: 350px; padding: 0 15px; box-shadow: 1px 1px 30px rgb(0 0 0 / 12%);'
        ,ready: function(){
            loadTree();
        }
    });
    // 数据同步
    dropdown.render({
        elem: '#data-btn'
        ,align: 'right'
        ,style: 'border-radius: 5px;'
        ,className: 'site-dropdown-demo'
        ,data: [
            {
                title: '模板下载'
                ,templet: '<i class="layui-icon layui-icon-template-1"></i>{{d.title}}'
                ,id: 1
            },
            {
                title: '导入 Excel'
                ,templet: '<i class="layui-icon layui-icon-upload"></i>{{d.title}}'
                ,id: 2
            },
            {type: '-'}, //分割线
            {
                title: '导出 Excel'
                ,templet: '<i class="layui-icon layui-icon-export"></i>{{d.title}}'
                ,id: 3
            }
        ]
        ,click: async function(item){
            switch (item.id) {
                case 1:
                    // 模板下载
                    layer.load(1, {shade: [0.1,'#fff']});
                    location.href = baseUrl + "/mould/甲方单位导入模板.xls";
                    layer.closeAll('loading');
                    break
                case 2:
                    // 导入 Excel
                    $("#importExcel").trigger("click");
                    break
                case 3:
                    // 导出 Excel
                    layer.msg("来不及做,等等", {icon: 6});
                    break
                default:
                    break
            }
        }
    });
    // 树形图
    var organizationTree;
    window.loadTree = function(condition){
        var loadIndex = layer.load(2);
        $.ajax({
            url: baseUrl+"/dept/user/tree/auth",
            headers: {'token': localStorage.getItem('token')},
            data: {
                'condition': condition
            },
            method: 'POST',
            success: function (res) {
                layer.close(loadIndex);
                if (res.code === 200){
                    organizationTree = tree.render({
                        elem: '#organizationTree',
                        id: 'organizationTree',
                        onlyIconControl: true,
                        data: res.data,
                        click: function (obj) {
                            treeCond = {
                                key: obj.data.key,
                                val: obj.data.id
                            }
                            $('#organization').html(obj.data.title + ' <i class="layui-icon">&#xe61a;</i>');
                            $('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click');
                            $(obj.elem).children('.layui-tree-entry').addClass('ew-tree-click');
                            clearFormVal($('#search-box'));
                            tableIns.reload({
                                where: {[obj.data.key]: obj.data.id},
                                page: {curr: 1}
                            });
                        }
                    });
                    treeData = res.data;
                } else if (res.code === 403){
                    top.location.href = baseUrl+"/";
                } else {
                    layer.msg(res.msg)
                }
            }
        })
    }
    // 数据渲染
    tableIns = table.render({
        elem: '#order',
        headers: {token: localStorage.getItem('token')},
        url: baseUrl+'/order/list/auth',
        url: baseUrl+'/order/page/auth',
        page: true,
        limit: 15,
        limits: [15, 30, 50, 100, 200, 500],
        toolbar: '#toolbar',
        cellMinWidth: 50,
        height: 'full-120',
        // cellMinWidth: 100,
        height: 'full-148',
        // size: 'sm',
        skin: 'line',
        cols: [[
            {type: 'checkbox'}
            ,{field: 'id', align: 'center',title: 'ID'}
            ,{field: 'hostId$', align: 'center',title: '所属商户'}
            // ,{field: 'id', align: 'center',title: 'ID'}
            // ,{field: 'hostId$', align: 'center',title: '所属商户'}
            ,{field: 'deptId$', align: 'center',title: '所属部门'}
            ,{field: 'userId$', align: 'center',title: '所属人员'}
            ,{field: 'cstmrId$', align: 'center',title: '甲方单位'}
@@ -33,18 +145,18 @@
            ,{field: 'company$', align: 'center',title: '所属公司'}
            ,{field: 'remarks', align: 'center',title: '备注'}
            ,{field: 'director$', align: 'center',title: '负责人'}
            ,{field: 'province', align: 'center',title: '省'}
            ,{field: 'city', align: 'center',title: '市'}
            ,{field: 'district', align: 'center',title: '县'}
            ,{field: 'town', align: 'center',title: '镇'}
            ,{field: 'addr', align: 'center',title: '详细地址'}
            ,{field: 'files', align: 'center',title: '附件'}
            ,{field: 'status$', align: 'center',title: '状态'}
            ,{field: 'createBy$', align: 'center',title: '添加人员'}
            ,{field: 'createTime$', align: 'center',title: '添加时间'}
            ,{field: 'updateBy$', align: 'center',title: '修改人员'}
            ,{field: 'updateTime$', align: 'center',title: '修改时间'}
            ,{field: 'memo', align: 'center',title: '注释'}
            ,{field: 'province', align: 'center',title: '省', hide: true}
            ,{field: 'city', align: 'center',title: '市', hide: true}
            ,{field: 'district', align: 'center',title: '县', hide: true}
            ,{field: 'town', align: 'center',title: '镇', hide: true}
            ,{field: 'addr', align: 'center',title: '详细地址', hide: true}
            ,{field: 'files', align: 'center',title: '附件', hide: true}
            ,{field: 'status$', align: 'center',title: '状态', hide: true}
            ,{field: 'createBy$', align: 'center',title: '添加人员', hide: true}
            ,{field: 'createTime$', align: 'center',title: '添加时间', hide: true}
            ,{field: 'updateBy$', align: 'center',title: '修改人员', hide: true}
            ,{field: 'updateTime$', align: 'center',title: '修改时间', hide: true}
            ,{field: 'memo', align: 'center',title: '注释', hide: true}
            ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120}
        ]],
@@ -68,8 +180,26 @@
                top.location.href = baseUrl+"/";
            }
            pageCurr=curr;
            pageCount = count;
            limit();
        }
    });
    // 添加
    $("#orderAddBtn").click(function () {
        showEditModel();
    });
    // 删除
    form.on('submit(orderDel)', function (data) {
        let checkStatus = layui.table.checkStatus('order').data;
        if (checkStatus.length === 0) {
            layer.msg('请选择要删除的数据', {icon: 2});
            return;
        }
        del(checkStatus.map(function (d) {
            return d.id;
        }));
    });
    // 监听排序事件
@@ -86,67 +216,23 @@
        });
    });
    // 监听头工具栏事件
    table.on('toolbar(order)', function (obj) {
        var checkStatus = table.checkStatus(obj.config.id).data;
        switch(obj.event) {
            case 'addData':
                showEditModel();
                break;
            case 'deleteData':
               if (checkStatus.length === 0) {
                   layer.msg('请选择要删除的数据', {icon: 2});
                   return;
               }
               del(checkStatus.map(function (d) {
                   return d.id;
               }));
               break;
            case 'exportData':
                admin.confirm('确定导出Excel吗', {shadeClose: true}, function(){
                    var titles=[];
                    var fields=[];
                    obj.config.cols[0].map(function (col) {
                        if (col.type === 'normal' && col.hide === false && col.toolbar == null) {
                            titles.push(col.title);
                            fields.push(col.field);
                        }
                    });
                    var exportData = {};
                    $.each($('#search-box [name]').serializeArray(), function() {
                        exportData[this.name] = this.value;
                    });
                    var param = {
                        'order': exportData,
                        'fields': fields
                    };
                    $.ajax({
                        url: baseUrl+"/order/export/auth",
                        headers: {'token': localStorage.getItem('token')},
                        data: JSON.stringify(param),
                        dataType:'json',
                        contentType:'application/json;charset=UTF-8',
                        method: 'POST',
                        success: function (res) {
                            layer.closeAll();
                            if (res.code === 200) {
                                table.exportFile(titles,res.data,'xls');
                            } else if (res.code === 403) {
                                top.location.href = baseUrl+"/";
                            } else {
                                layer.msg(res.msg, {icon: 2})
                            }
                        }
                    });
                });
                break;
        }
    });
    // 监听行工具事件
    table.on('tool(order)', function(obj){
        var data = obj.data;
        switch (obj.event) {
            case 'more':
                top.orderByMore = data.id;
                admin.popupRight({
                    type: 1,
                    window: "top",
                    area: "1250px",
                    url: "order_more.html",
                    end: function () {
                        // $(".layui-laypage-btn")[0].click();
                    }
                })
                break;
            case 'edit':
                showEditModel(data);
                break;
@@ -225,15 +311,10 @@
    // 搜索
    form.on('submit(search)', function (data) {
        pageCurr = 1;
        pageCount = 0;
        tableReload(false);
    });
    // 重置
    form.on('submit(reset)', function (data) {
        pageCurr = 1;
        clearFormVal($('#search-box'));
        tableReload(false);
    });
    // 时间选择器
    function layDateRender(data) {
@@ -258,6 +339,19 @@
    }
    layDateRender();
    // 省市区选择
    function cascaderRender() {
        cascader.render({
            elem: '#cascaderVal',
            data: citysData,
            itemHeight: '250px',
            filterable: true,
            onChange: function (values, data) {
                // console.log(values);console.log(data);
            }
        });
    }
});
// 关闭动作
@@ -265,13 +359,63 @@
    parent.layer.closeAll();
});
function tableReload(child) {
    var searchData = {};
    $.each($('#search-box [name]').serializeArray(), function() {
        searchData[this.name] = this.value;
function tableReload() {
    if (pageCount === 0) {
        let searchData = {};
        $.each($('#search-box [name]').serializeArray(), function() {
            searchData[this.name] = this.value;
        });
        if (treeCond) {
            searchData[treeCond.key] = treeCond.val;
        }
        tableIns.reload({
            where: searchData,
            page: {curr: pageCurr}
        });
    } else {
        $(".layui-laypage-btn")[0].click();
    }
}
function upload(obj){
    if(!obj.files) {
        return;
    }
    var file = obj.files[0];
    admin.confirm('确认同步 [' + file.name +'] 文件吗?', function (index) {
        layer.load(1, {shade: [0.1,'#fff']});
        var url = baseUrl + "/order/excel/import/auth";
        var form = new FormData();
        form.append("file", file);
        let xhr = new XMLHttpRequest();
        xhr.open("post", url, true);
        xhr.setRequestHeader('token', localStorage.getItem('token'));
        xhr.onload = uploadComplete;
        xhr.onerror =  uploadFailed;
        xhr.onloadend = function () {
            layer.closeAll('loading');
        };
        // xhr.upload.onprogress = progressFunction;
        xhr.upload.onloadstart = function(){
            ot = new Date().getTime();
            oloaded = 0;
        };
        xhr.send(form);
    }, function(index){
    });
    tableIns.reload({
        where: searchData,
        page: {curr: pageCurr}
     });
}
function uploadComplete(evt) {
    let res = JSON.parse(evt.target.responseText);
    if(res.code === 200) {
        layer.msg(res.msg, {icon: 1});
        tableReload();
    } else {
        alert(res.msg);
        // layer.msg(res.msg, {icon: 2});
    }
}
function uploadFailed(evt) {
    let res = JSON.parse(evt.target.responseText);
    alert(res.msg);
    // layer.msg(res.msg, {icon: 2});
}
src/main/webapp/views/order/order.html
@@ -9,51 +9,92 @@
    <link rel="stylesheet" href="../../static/layui/css/layui.css" media="all">
    <link rel="stylesheet" href="../../static/css/admin.css?v=318" media="all">
    <link rel="stylesheet" href="../../static/css/cool.css" media="all">
    <link rel="stylesheet" href="../../static/css/tree.css" media="all">
    <style>
        .nav-box {
            position: absolute;
            top: 1px;
            left: 5px;
        }
        .nav-box-item {
            display: inline-block;
            vertical-align: middle;
            margin-right: 5px;
        }
        .layui-dropdown.layui-border-box.layui-panel.layui-anim.layui-anim-downbit,.layui-dropdown.layui-border-box.layui-panel.layui-anim.layui-anim-downbit * {
            box-sizing:inherit;
        }
        .layui-menu li {
            width: inherit;
        }
        .layui-tree-icon {
            height: 16px;
            line-height: 15px;
            width: 15px;
            text-align: center;
            border: 1px solid #c0c4cc;
        }
        .site-dropdown-demo,
        .site-dropdown-demo .layui-menu{background: #32363F;border-color: #484e58;}
        .site-dropdown-demo .layui-menu li{color: #a1a8b8;}
        .site-dropdown-demo .layui-menu li:hover{background-color: #32363F;}
        .layui-menu-body-title>.layui-icon {
            position: relative;
            margin-right: 5px;
        }
    </style>
</head>
<body>
<!-- 新 -->
<div class="layui-fluid">
    <div class="layui-card">
    <div class="layui-card" style="margin-bottom: 5px">
        <div class="layui-card-body">
            <div class="layui-form toolbar" id="search-box">
            <div id="search-box" class="layui-form toolbar" style="display: flex;justify-content: flex-end;position: relative">
                <div class="nav-box">
                    <div class="nav-box-item">
                        <i class="layui-icon" style="color: #1890ff;font-weight: bold">&#xe613;</i>
                    </div>
                    <div class="nav-box-item">
                        <button id="organization" style="border: none;padding-right: 35px;" class="layui-btn layui-btn-primary icon-btn">
                            未知
                        </button>
                    </div>
                </div>
                <div class="layui-form-item">
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="id" placeholder="编号" autocomplete="off">
                        </div>
                    </div>
                     <div class="layui-inline" style="width: 300px">
                        <div class="layui-input-inline">
                            <input class="layui-input layui-laydate-range" name="create_time" type="text" placeholder="起始时间 - 终止时间" autocomplete="off" style="width: 300px">
                        </div>
                    </div>
                    <div class="layui-inline">
                        <div class="layui-input-inline">
                            <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off">
                            <input class="layui-input" type="text" name="condition" placeholder="请输入" autocomplete="off" style="border-color: #e1e1e1">
                        </div>
                    </div>
                    <div class="layui-inline">&emsp;
                        <button class="layui-btn icon-btn" lay-filter="search" lay-submit>
                        <button class="layui-btn icon-btn layui-btn-sm" lay-filter="search" lay-submit>
                            <i class="layui-icon">&#xe615;</i>搜索
                        </button>
                        <button class="layui-btn icon-btn" lay-filter="reset" lay-submit>
                            <i class="layui-icon">&#xe666;</i>重置
                        <button id="orderAddBtn" class="layui-btn icon-btn btn-add layui-btn-sm"><i class="layui-icon">&#xe654;</i>添加
                        </button>
                        <button class="layui-btn layui-btn-danger icon-btn layui-btn-sm" lay-filter="orderDel" lay-submit>
                            <i class="layui-icon">&#xe640;</i>删除
                        </button>
                        <button id="data-btn" class="layui-btn layui-btn-primary layui-border-black icon-btn layui-btn-sm">&nbsp;数据同步
                        </button>
                    </div>
                </div>
            </div>
            <table class="layui-hide" id="order" lay-filter="order"></table>
            <input style="display:none" id="importExcel" type="file" onchange="upload(this)" >
        </div>
    </div>
    <div class="layui-card" style="margin-bottom: 0">
        <div class="layui-card-body">
            甲方资料:数据关联订单,
            <span class="text-danger">请勿随意删除。</span>
        </div>
    </div>
</div>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn layui-btn-sm" id="btn-add" lay-event="addData">新增</button>
        <button class="layui-btn layui-btn-sm layui-btn-danger" id="btn-delete" lay-event="deleteData">删除</button>
        <button class="layui-btn layui-btn-primary layui-btn-sm" id="btn-export" lay-event="exportData" style="float: right">导出</button>
    </div>
</script>
<script type="text/html" id="operate">
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="edit">修改</a>
@@ -64,6 +105,7 @@
<script type="text/javascript" src="../../static/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/cool.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/layui/lay/modules/cascader/citys-data.js" charset="utf-8"></script>
<script type="text/javascript" src="../../static/js/order/order.js" charset="utf-8"></script>
</body>
<!-- 表单弹窗 -->
src/main/webapp/views/order/order_more.html
New file
@@ -0,0 +1,425 @@
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<style>
    #formAdvForm {
        background-color: #f3f3f3;
    }
    #formAdvForm .layui-form-item {
        margin-top: 20px;
        margin-bottom: 0;
    }
    #formAdvForm .layui-form-item .layui-inline {
        margin-bottom: 25px;
        margin-right: 0;
    }
    .form-group-bottom {
        position: fixed;
        left: 0;
        right: 0;
        bottom: 0;
        padding: 10px 20px;
        background-color: #fff;
        box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, .05);
    }
    .card-body-item {
        display: inline-block;
        border-right: 1px solid #e0e0e0;
        width: 250px;
        padding: 0 30px 0 10px;
    }
    .header-desc {
        overflow:hidden;
        white-space: nowrap;
        text-overflow: ellipsis;
        -o-text-overflow:ellipsis;
    }
</style>
<!-- 正文开始 -->
<form class="layui-form" id="formAdvForm" lay-filter="formAdvForm" style="height: 100%">
    <div class="layui-fluid" style="padding-bottom: 75px;">
        <!-- 标题 -->
        <div class="layui-card">
            <div class="layui-card-header" style="padding-top: 5px; padding-bottom: 5px">
                <div>
                    <i class="layui-icon" style="font-size: 20px;color: #1890ff;font-weight: bold">&#xe68e;</i>
                    <span id="form-name" style="margin: 0 6px;font-size: 18px;font-weight: bold;letter-spacing: 1px"></span>
                </div>
            </div>
            <div class="layui-card-body">
                <div class="card-body-item">
                    <div class="header-sub">
                        电话
                    </div>
                    <div class="header-desc" id="form-tel">
                        &nbsp;
                    </div>
                </div>
                <div class="card-body-item" style="width: 400px">
                    <div class="header-sub">
                        详细地址
                    </div>
                    <div class="header-desc" id="form-addr">
                        &nbsp;
                    </div>
                </div>
                <div class="card-body-item">
                    <div class="header-sub">
                        负责人
                    </div>
                    <div class="header-desc" id="form-director" style="color: #006fdb;">
                        &nbsp;
                    </div>
                </div>
            </div>
        </div>
        <div class="layui-row">
            <!-- 基本信息 -->
            <div class="layui-col-md9">
                <div class="layui-card">
                    <div class="layui-card-header">
                        基本信息
                    </div>
                    <div class="layui-card-body">
                        <div class="layui-form-item layui-row">
                            <input name="id" type="hidden" />
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">客户代号:</label>
                                <div class="layui-input-block">
                                    <input name="uuid" class="layui-input" disabled />
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">所属部门:</label>
                                <div class="layui-input-block">
                                    <input name="deptId$" class="layui-input" disabled />
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">客户类别:</label>
                                <div class="layui-input-block">
                                    <input name="cstmrType$" class="layui-input" disabled />
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">客户关系:</label>
                                <div class="layui-input-block">
                                    <input name="rela" class="layui-input" disabled/>
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">省市区:</label>
                                <div class="layui-input-block">
                                    <input name="pcd$" class="layui-input" disabled />
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">客户联系人:</label>
                                <div class="layui-input-block">
                                    <input name="contacts" class="layui-input" disabled />
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">区分:</label>
                                <div class="layui-input-block">
                                    <input name="type$" class="layui-input" disabled />
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">备注:</label>
                                <div class="layui-input-block">
                                    <input name="remarks" class="layui-input" disabled />
                                </div>
                            </div>
                            <fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
                                <legend style="font-size: 13px">其他</legend>
                            </fieldset>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">添加人员:</label>
                                <div class="layui-input-block">
                                    <input name="createBy$" class="layui-input" disabled/>
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">修改人员:</label>
                                <div class="layui-input-block">
                                    <input name="updateBy$" class="layui-input" disabled/>
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">添加时间:</label>
                                <div class="layui-input-block">
                                    <input name="createTime$" class="layui-input icon-date" autocomplete="off" disabled/>
                                </div>
                            </div>
                            <div class="layui-inline layui-col-md6">
                                <label class="layui-form-label">修改时间:</label>
                                <div class="layui-input-block">
                                    <input name="updateTime$" class="layui-input icon-date" autocomplete="off" disabled/>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            <!-- 跟进人 -->
            <div class="layui-col-md3" style="width: 24%;margin-left: 1%">
                <div class="layui-card">
                    <div class="layui-card-header">
                        <span>跟进人</span>
                        <span lay-filter="followerAdd" lay-submit style="float: right;cursor: pointer;">
                            <i class="layui-icon" style="font-size: 20px;color: #1890ff;">&#xe61f;</i>
                        </span>
                    </div>
                    <div class="layui-card-body">
                        <table id="followersTable" lay-filter="followersTable"></table>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="form-group-bottom text-right">
        <button class="layui-btn" lay-filter="refresh" lay-submit><i class="layui-icon">&#xe666;</i>&emsp;刷新&emsp;</button>
    </div>
</form>
<script type="text/html" id="followerTabOperate">
    <a class="layui-btn layui-btn-primary layui-btn-xs btn-edit" lay-event="del">删除</a>
</script>
<!-- 跟进人 -->
<script type="text/html" id="followerEditDialog">
    <form id="followerEditForm" lay-filter="followerEditForm" class="layui-form model-form">
        <input name="experimentId" type="hidden"/>
        <div class="layui-form-item" style="float: left;clear: none;margin-right: 20px">
            <label class="layui-form-label">选择成员</label>
            <div class="layui-input-block">
                <div id="followersBox" name="followersBox">
                </div>
            </div>
        </div>
        <div class="layui-form-item text-right" style="float: left;clear: none">
            <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
            <button class="layui-btn" lay-filter="followerSubmit" lay-submit>保存</button>
        </div>
    </form>
</script>
<script>
    var cstmrId = top.cstmrByMore;
    $('.layui-layer-close').hide();
    layui.config({
        base: baseUrl + "/static/layui/lay/modules/"
    }).extend({
        notice: 'notice/notice',
    }).use(['form', 'table', 'laydate', 'notice', 'xmSelect'], function () {
        var $ = layui.jquery;
        var form = layui.form;
        var table = layui.table;
        var laydate = layui.laydate;
        var notice = layui.notice;
        var xmSelect = layui.xmSelect;
        form.render('select');
        init();
        function init(){
            notice.msg('正在载入数据......', {icon: 4, position: "topRight"});
            $.ajax({
                url: baseUrl + "/cstmr/" + cstmrId + "/auth",
                headers: {'token': localStorage.getItem('token')},
                method: 'GET',
                success: function (res) {
                    notice.destroy();
                    if (res.code === 200) {
                        let cstmr = res.data;
                        top.cstmrByMore = null;
                        $("#form-name").html(cstmr.name);
                        if (cstmr.tel) {$("#form-tel").html(cstmr.tel);}
                        if (cstmr.addr) {$("#form-addr").html(cstmr.addr);$("#form-addr").attr("title", cstmr.addr);}
                        if (cstmr.director$) {$("#form-director").html(cstmr.director$);}
                        // 设备明细
                        form.val('formAdvForm', cstmr);
                        // 跟进人
                        initFollowers(cstmr.id);
                        layDateRender();
                    } else if (res.code === 403) {
                        top.location.href = baseUrl + "/";
                    } else {
                        layer.msg(res.msg, {icon: 2})
                    }
                }
            })
        }
        /* 渲染laydate */
        function layDateRender() {
            laydate.render({
                elem: '#endTime',
                type: 'datetime'
            });
        }
        layDateRender();
        // 渲染跟进人模块
        function initFollowers(cstmrId) {
            if (!cstmrId) {
                return;
            }
            $.ajax({
                url: baseUrl+"/cstmr/followers/table/auth",
                headers: {'token': localStorage.getItem('token')},
                data: {
                    cstmrId: cstmrId
                },
                method: 'GET',
                success: function (res) {
                    if (res.code === 200){
                        var follTab = table.render({
                            elem: '#followersTable',
                            data: res.data,
                            limit: 999,
                            height: 'full-408',
                            cols: [[
                                {field: 'userName', title: '工作人员'},
                                {fixed: 'right', title:'', align: 'center', toolbar: '#followerTabOperate', width: 70}
                            ]],
                            done: function (res, curr, count) {
                                $('#dictTable+.layui-table-view .layui-table-body tbody>tr:first').trigger('click');
                            }
                        });
                        // 监听行工具事件
                        table.on('tool(followersTable)', function(obj){
                            let data = obj.data;
                            switch (obj.event) {
                                case "del":
                                    let loadIndex = layer.load(2);
                                    $.ajax({
                                        url: baseUrl+"/cstmr/followers/remove/auth",
                                        headers: {'token': localStorage.getItem('token')},
                                        data: {
                                            cstmrId: cstmrId,
                                            userId: data.userId
                                        },
                                        method: 'POST',
                                        success: function (res) {
                                            layer.close(loadIndex);
                                            if (res.code === 200){
                                                initFollowers(cstmrId);
                                            } else if (res.code === 403){
                                                top.location.href = baseUrl+"/";
                                            } else {
                                                layer.msg(res.msg, {icon: 2});
                                            }
                                        }
                                    })
                                    break;
                            }
                        });
                    } else if (res.code === 403){
                        top.location.href = baseUrl+"/";
                    }else {
                        layer.msg(res.msg, {icon: 2})
                    }
                }
            })
        }
        // 添加跟进人
        var followerLayer;
        form.on('submit(followerAdd)', function (data) {
            if (followerLayer) {return;}
            followerLayer = admin.open({
                type: 1,
                offset: '150px',
                area: '600px',
                title: '添加跟进人',
                content: $('#followerEditDialog').html(),
                success: function (layero, dIndex) {
                    // 表单提交事件
                    form.on('submit(followerSubmit)', function (data) {
                        let selectList = xmSelectIdx.getValue();
                        if (selectList.length === 0) {
                            layer.msg("请选择至少一条数据", {icon: 3});
                            return false;
                        }
                        let loadIndex = layer.load(2);
                        $.ajax({
                            url: baseUrl+"/cstmr/followers/add/auth",
                            headers: {'token': localStorage.getItem('token')},
                            data: {
                                cstmrId: cstmrId,
                                followerIds: selectList.map(function (d) {
                                    return d.value;
                                })
                            },
                            method: 'POST',
                            success: function (res) {
                                if (res.code === 200){
                                    layer.close(loadIndex);
                                    initFollowers(cstmrId);
                                } else if (res.code === 403){
                                    top.location.href = baseUrl+"/";
                                }else {
                                    layer.msg(res.msg, {icon: 2})
                                }
                            }
                        })
                        layer.close(dIndex);
                        return false;
                    });
                    let xmSelectIdx = xmSelect.render({
                        el: '#followersBox',
                        style: {
                            width: '280px',
                        },
                        autoRow: true,
                        toolbar: { show: true },
                        filterable: true,
                        remoteSearch: true,
                        remoteMethod: function(val, cb, show){
                            $.ajax({
                                url: baseUrl+"/user/all/get/kv",
                                headers: {'token': localStorage.getItem('token')},
                                data: {
                                    condition: val
                                },
                                method: 'POST',
                                success: function (res) {
                                    if (res.code === 200){
                                        cb(res.data)
                                    } else {
                                        cb([]);
                                        layer.msg(res.msg, {icon: 2});
                                    }
                                }
                            });
                        }
                    })
                    // 弹窗不出现滚动条
                    $(layero).children('.layui-layer-content').css('overflow', 'visible');
                    layui.form.render('select');
                },
                end: function () {
                    followerLayer = null;
                }
            })
        });
        /* 监听表单提交 */
        form.on('submit(refresh)', function (data) {
            init();
            return false;
        });
    })
</script>