luck-draw/public/static/manager/js/account.js

427 lines
15 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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 + '<span style="position: absolute; right: 10px; color: #8799a3">真实姓名:'+item.real_name +
'手机号:'+item.mobile+
'</span>'
},
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;
});
}
});