layui.use(['laytpl', 'table', 'jquery', 'form', 'miniTab', 'xmSelect', 'laydate'], function () { let $ = layui.jquery, form = layui.form, table = layui.table, layer = layui.layer, laydate = layui.laydate, xmSelect = layui.xmSelect, miniTab = layui.miniTab; /**** index begin ***/ //index页面 if ($('.location-index-page').length > 0) { miniTab.listen(); laydate.render({ elem: '#publish-date', }); // 渲染表格 let listUrl = $('#table-container').data('url'); let insTb = table.render({ elem: '#table-container', toolbar: '#toolbar-tpl', defaultToolbar: ['filter', 'exports', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可 title: '搜索' , layEvent: 'search' , icon: 'layui-icon-search' }], url: listUrl, method: 'post', even: true, limits: [10, 20, 50, 100, 200, 500, 1000, 2000], request: { pageName: 'page', limitName: 'size', }, parseData: function (res) { return { "code": res.code, //解析接口状态 "msg": res.msg, //解析提示文本 "count": res.data.total, //解析数据长度 "data": res.data.list //解析数据列表 }; }, page: true, cols: [[ {type: 'checkbox'}, {field: 'id', minWidth: 50, title: '编号'}, {field: 'nickname', minWidth: 150, title: '昵称'}, {field: 'real_name', minWidth: 150, title: '真实姓名'}, {field: 'mobile', minWidth: 150, title: '电话'}, {field: 'channel_text', minWidth: 150, title: '客户来源'}, {field: 'source_detail', minWidth: 200, title: '详细来源'}, {field: 'service_name', minWidth: 150, title: '所属客服'}, {field: 'tag', minWidth: 150, title: '客户标签'}, {field: 'created_at', minWidth: 200, title: '注册时间'}, {field: 'is_sign_text', minWidth: 100, title: '是否到店'}, {field: 'score', minWidth: 100, title: '积分'}, {field: 'coin', minWidth: 100, title: '孔雀币'}, {field: 'gender_text', minWidth: 100, title: '性别'}, {templet: '#row-operate', fixed: "right", minWidth: 250, title: '操作'}, ]], done: function () { Tools.setInsTb(insTb); } }); //监听工具条 注意区别toolbar和tool toolbar是表头上的工具条 tool是行中的工具条 table.on('toolbar(table-container)', function (obj) { let layEvent = obj.event; let insTb = Tools.getInsTb(); let url = $($(this).context).data('href') let title = $($(this).context).data('title') let width = $($(this).context).data('width') ? $($(this).context).data('width') : '100%'; let height = $($(this).context).data('height') ? $($(this).context).data('height') : '100%'; // debugger; switch (layEvent) { // toolbar 分配指定员工 分配客户标签 到店设置 来源设置 case 'staff': case 'tag': case 'sign': case 'recharge-coin': case 'source': let checkStatus = table.checkStatus('table-container'); if (checkStatus.data.length <= 0) { layer.msg('请先选择数据'); return false; } let selected = checkStatus.data; let ids = []; $.each(selected, function (index, val) { ids.push(val.id); }) if (ids.length > 500) { layer.msg('一次操作请不要超过500条'); return false; } url += '?id=' + ids; openLayer(url, title, width, height); return false; // toolbar 刷新 case 'refresh': refreshTab(insTb); return false; // toolbar 搜索 case 'search': let search = $('.table-search-fieldset'); if (search.hasClass('div-show')) { search.css('display', 'none').removeClass('div-show'); } else { search.css('display', 'block').addClass('div-show'); } return false; // 其他 默认为打开弹出层 default: if (layEvent !== 'LAYTABLE_COLS' && layEvent !== 'LAYTABLE_EXPORT') { openLayer(url, title, width, height); return false; } } }); // 监听搜索操作 form.on('submit(data-search-btn)', function (data) { //执行搜索重载 table.reload('table-container', { page: {curr: 1} , where: {searchParams: data.field} }, 'data'); return false; }); } /*** index end ***/ if ($('.location-staff-page').length > 0) { let staffList = $('#staff-list'); let dataOne = staffList.data('data') ? staffList.data('data') : []; xmSelect.render({ el: '#staff-list', paging: true, autoRow: true, radio: true, clickClose: true, name: 'staff_id', tips: '请选择员工', direction: 'auto', height: 'auto', prop: { name: 'name', value: 'id', }, model: { icon: 'hidden', }, theme: { color: '#1e84ff', }, data: dataOne }); } if ($('.location-source-page').length > 0) { form.on('select(channel-select)', function (data) { //切换 $('.channel-div').hide();//全部隐藏 $('.current-channel-' + data.value).show(); }) xmSelect.render({ el: '#staff-list', autoRow: true, radio: true, clickClose: true, page: true, name: 'type_staff', tips: '请选择员工', direction: 'auto', height: 'auto', model: { icon: 'hidden', }, prop: { name: 'name', value: 'account_id', }, filterable: true, toolbar: {show: true}, remoteSearch: true, remoteMethod: function (val, cb, show) { $.post('/manager/account/get-staff-list', {keyword: val}, function (res) { if (res.code === 0) { cb(res.data.list); } }); }, theme: { color: '#1e84ff', }, }); xmSelect.render({ el: '#customer-list', autoRow: true, radio: true, clickClose: true, name: 'type_customer', tips: '请选择客户', direction: 'auto', height: 'auto', model: { icon: 'hidden', }, template({ item, sels, name, value }){ return item.nickname + '真实姓名:'+item.real_name + '手机号:'+item.mobile+ '' }, prop: { name: 'nickname', value: 'id', }, filterable: true, toolbar: {show: true}, remoteSearch: true, remoteMethod: function (val, cb, show) { $.post('/manager/account/get-account-list', {keyword: val}, function (res) { if (res.code === 0) { cb(res.data.list); } }); }, theme: { color: '#1e84ff', }, }); xmSelect.render({ el: '#activity-list', autoRow: true, radio: true, clickClose: true, name: 'type_activity', tips: '请选择活动', direction: 'auto', height: 'auto', model: { icon: 'hidden', }, prop: { name: 'name', value: 'code', }, filterable: true, toolbar: {show: true}, remoteSearch: true, remoteMethod: function (val, cb, show) { $.post('/manager/activity/get-activity-list', {keyword: val}, function (res) { if (res.code === 0) { cb(res.data.list); } }); }, theme: { color: '#1e84ff', }, }); } if ($('.location-tag-page').length > 0) { let tagList = $('#tag-list'); let dataOne = tagList.data('data') ? tagList.data('data') : []; var xmSelectObj = xmSelect.render({ el: '#tag-list', paging: true, autoRow: true, name: 'tag_id', tips: '请选择客户标签', direction: 'auto', height: 'auto', prop: { name: 'name', value: 'id', }, model: { icon: 'hidden', }, theme: { color: '#1e84ff', }, on: function(data){ //可以return一个数组, 代表想选中的数据 //arr: 当前多选已选中的数据 var arr = data.arr; //change, 此次选择变化的数据,数组 var change = data.change; //isAdd, 此次操作是新增还是删除 var isAdd = data.isAdd; if(isAdd){ for(j = 0,len=change.length; j < len; j++) { if(change[j].add != undefined && change[j].add==true){ console.log( change[j].name); $.ajax('/manager/account-tag/add', { data: {name: change[j].name}, async: false, dataType: 'json',//服务器返回json格式数据 type: 'post',//HTTP请求类型 timeout: 10000,//超时时间设置为10秒; success: function (res) { console.log(res) if (res.code == 0) { let id = res.data.id; var name = change[j].name var value = change[j].value arr.find(function(item){ if(item.name == name){ item.id = id; item.value = value; } }); layer.msg("创建新标签成功"); //返回一个创建成功的对象, val是搜索的数据, arr是搜索后的当前页面数据 }else{ layer.msg("创建新标签失败"); } }, error: function (xhr, type, errorThrown) { } }); } } } console.log(arr); xmSelectObj.setValue(arr) }, filterable: true, create: function(val, arr){ if(arr.length === 0){ return { name: "新增_" + val, id: val, value:val, add:true } } }, data: dataOne }); } if ($('.location-detail-page').length > 0) { miniTab.listen(); laydate.render({ elem: '#publish-date', }); // 渲染表格 let listUrl = $('#table-container-detail').data('url'); let insTb = table.render({ elem: '#table-container-detail', toolbar: '#toolbar-tpl-detail', defaultToolbar: ['filter', 'exports', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可 title: '搜索' , layEvent: 'search' , icon: 'layui-icon-search' }], url: listUrl, method: 'post', even: true, limits: [10, 20, 50, 100, 200, 500, 1000, 2000], request: { pageName: 'page', limitName: 'size', }, parseData: function (res) { return { "code": res.code, //解析接口状态 "msg": res.msg, //解析提示文本 "count": res.data.total, //解析数据长度 "data": res.data.list //解析数据列表 }; }, page: true, cols: [[ {type: 'checkbox'}, {field: 'id', minWidth: 50, title: '编号'}, {field: 'created_at', minWidth: 200, title: '时间'}, {field: 'nickname', minWidth: 150, title: '用户'}, {field: 'real_name', minWidth: 150, title: '真实姓名'}, {field: 'mobile', minWidth: 150, title: '电话'}, {templet: '#row-action', minWidth: 200, title: '浏览'}, {field: 'event', minWidth: 80, title: '操作触发'}, ]], done: function () { Tools.setInsTb(insTb); } }); // 监听搜索操作 form.on('submit(data-search-btn)', function (data) { // 打开新的窗口 //执行搜索重载 table.reload('table-container-detail', { page: {curr: 1} , where: {searchParams: data.field} }, 'data'); return false; }); } });