| | |
| | | |
| | | var popupRight; |
| | | var cstmrByMore; |
| | | var orderByMore; |
| | |
| | | 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"></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"></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: '甲方单位'} |
| | |
| | | ,{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} |
| | | ]], |
| | |
| | | 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; |
| | | })); |
| | | }); |
| | | |
| | | // 监听排序事件 |
| | |
| | | }); |
| | | }); |
| | | |
| | | // 监听头工具栏事件 |
| | | 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; |
| | |
| | | // 搜索 |
| | | 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) { |
| | |
| | | } |
| | | layDateRender(); |
| | | |
| | | // 省市区选择 |
| | | function cascaderRender() { |
| | | cascader.render({ |
| | | elem: '#cascaderVal', |
| | | data: citysData, |
| | | itemHeight: '250px', |
| | | filterable: true, |
| | | onChange: function (values, data) { |
| | | // console.log(values);console.log(data); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | }); |
| | | |
| | | // 关闭动作 |
| | |
| | | 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}); |
| | | } |
| | |
| | | <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"></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">  |
| | | <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"></i>搜索 |
| | | </button> |
| | | <button class="layui-btn icon-btn" lay-filter="reset" lay-submit> |
| | | <i class="layui-icon"></i>重置 |
| | | <button id="orderAddBtn" class="layui-btn icon-btn btn-add layui-btn-sm"><i class="layui-icon"></i>添加 |
| | | </button> |
| | | <button class="layui-btn layui-btn-danger icon-btn layui-btn-sm" lay-filter="orderDel" lay-submit> |
| | | <i class="layui-icon"></i>删除 |
| | | </button> |
| | | <button id="data-btn" class="layui-btn layui-btn-primary layui-border-black icon-btn layui-btn-sm"> 数据同步 |
| | | </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> |
| | |
| | | <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> |
| | | <!-- 表单弹窗 --> |
New file |
| | |
| | | <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"></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"> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="card-body-item" style="width: 400px"> |
| | | <div class="header-sub"> |
| | | 详细地址 |
| | | </div> |
| | | <div class="header-desc" id="form-addr"> |
| | | |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="card-body-item"> |
| | | <div class="header-sub"> |
| | | 负责人 |
| | | </div> |
| | | <div class="header-desc" id="form-director" style="color: #006fdb;"> |
| | | |
| | | </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;"></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"></i> 刷新 </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> |