1、优化tableplus组件实现defaultToolbar中筛选列记忆功能

2、优化客户列表的搜索条件
3、工作台消息中心、基本资料、修改密码的tabid修改,防止打开重复的tab
This commit is contained in:
HDM58\hdm58 2023-08-13 01:34:17 +08:00
parent 128a059fa7
commit a73673f844
5 changed files with 56 additions and 19 deletions
app
customer/controller
home/view/index
public/static/assets/gougu/module

@ -103,7 +103,7 @@ class Index extends BaseController
}
}
}
$cc_sql= Db::name('CustomerContact')->group('cid,mobile,qq,wechat,email')->field('cid,mobile,qq,wechat,email')->buildSql();
$cc_sql= Db::name('CustomerContact')->group('cid,name,mobile,qq,wechat,email')->field('cid,name,mobile,qq,wechat,email')->buildSql();
$ct_sql= Db::name('CustomerTrace')->group('cid')->field('cid,MAX(follow_time) AS follow_time,MAX(next_time) AS next_time')->buildSql();
$orderby = 'ct.next_time desc,a.create_time desc';
if(isset($param['orderby'])){
@ -122,7 +122,7 @@ class Index extends BaseController
->join('department d', 'a.belong_did = d.id')
->join($ct_sql.' ct', 'ct.cid = a.id','left')
->join($cc_sql.' cc', 'a.id = cc.cid','left')
->distinct()
->group('a.id')
->order($orderby)
->paginate($rows, false, ['query' => $param])
->each(function ($item, $key) {

@ -43,7 +43,7 @@
</a>
</span>
<span class="gg-head-item gg-head-message">
<a href="javascript:;" data-href="/message/index/inbox" data-id="0100" data-title="消息中心" class="side-menu-item" title="消息中心">
<a href="javascript:;" data-href="/message/index/inbox" data-id="1000" data-title="消息中心" class="side-menu-item" title="消息中心">
<i class="layui-icon layui-icon-notice"></i>
<!-- 如果有新消息,则显示 -->
<div class="gg-message-num" id="msgNum" style="display: none;"><span>0</span></div>
@ -57,8 +57,8 @@
<cite>{$login_admin.nickname}</cite>
</a>
<dl class="layui-nav-child" style="text-align: center; cursor: pointer;">
<dd><a data-href="/home/index/edit_personal" data-id="0101" data-title="基本资料" class="side-menu-item">基本资料</a></dd>
<dd><a data-href="/home/index/edit_password" data-id="0102" data-title="修改密码" class="side-menu-item">修改密码</a></dd>
<dd><a data-href="/home/index/edit_personal" data-id="1001" data-title="基本资料" class="side-menu-item">基本资料</a></dd>
<dd><a data-href="/home/index/edit_password" data-id="1002" data-title="修改密码" class="side-menu-item">修改密码</a></dd>
<hr>
<dd gg-event="logout"><a>退出</a></dd>
</dl>

@ -2,13 +2,13 @@
<div class="layui-row pt-3 px-3 py-2">
<ul class="layui-col-space12">
<li class="layui-col-xs3">
<a href="javascript:;" data-href="/home/index/mail_list" data-id="0001" class="tab-a" data-title="通讯录">
<a href="javascript:;" data-href="/home/index/mail_list" data-id="2000" class="tab-a" data-title="通讯录">
<i class="iconfont icon-huamingce"></i>
<cite>通讯录</cite>
</a>
</li>
<li class="layui-col-xs3">
<a href="javascript:;" data-href="/oa/plan/calendar" data-id="98" class="tab-a" data-title="日程安排">
<a href="javascript:;" data-href="/oa/plan/calendar" data-id="100" class="tab-a" data-title="日程安排">
<i class="iconfont icon-kaoshijihua"></i>
<cite>日程安排</cite>
</a>

@ -1,14 +1,11 @@
layui.define(['jquery','layer','table'], function(exports) {
//tablePlus在原来的table模块的基础上实现了批量数据导出功能实现defaultToolbar中筛选列记忆功能
var $ = layui.$,
layer = layui.layer,
table = layui.table;
var MOD_NAME='tablePlus';
var tablePlus=$.extend({},table);
tablePlus._render = tablePlus.render;
table = layui.table;
var MOD_NAME='tablePlus';
var tablePlus=$.extend({},table);
tablePlus._render = tablePlus.render;
tablePlus.excel = function(data,page_size,obj){
//表头工具栏导出按钮
$('[lay-id="'+obj.id+'"]').find('[lay-event="LAYTABLE_EXCEL"]').off().on('click',function(){
@ -30,7 +27,7 @@ layui.define(['jquery','layer','table'], function(exports) {
area:['580px','240px'],
content: pageHtml,
success:function(res){
var tableWhere = obj.where;
var tableWhere = JSON.parse(JSON.stringify(obj.where));
tableWhere.limit=page_size;
$('#exportPage').on('click','a',function(){
tableWhere.page=$(this).data('page');
@ -51,13 +48,23 @@ layui.define(['jquery','layer','table'], function(exports) {
return false;
}
});
$('[lay-id="'+obj.id+'"]').find('[lay-event="LAYTABLE_HELP"]').off().on('click',function(){
let content = obj.help||'无帮助说明';
layer.open({
shadeClose: true,
title:'帮助说明',
type: 1,
content: '<div style="padding:20px 15px; min-width:300px; line-height:1.8">'+content+'</div>'
})
})
}
//重写渲染方法
tablePlus.render=function(params){
let is_excel = params.is_excel||false;
let cols_save = params.cols_save||false;
let excel_limit = params.excel_limit||1000;
if(is_excel){
let toolbar = ['filter', {title:'导出EXCEL',layEvent: 'LAYTABLE_EXCEL',icon: 'layui-icon-export'}];
let toolbar = ['filter', {title:'导出EXCEL',layEvent: 'LAYTABLE_EXCEL',icon: 'layui-icon-export'},{title:'数据说明',layEvent: 'LAYTABLE_HELP',icon: 'layui-icon-help'}];
if(!params.defaultToolbar){
params.defaultToolbar = toolbar;
}
@ -69,17 +76,47 @@ layui.define(['jquery','layer','table'], function(exports) {
let _done = params.done;
params.done = function(data, curr, count){
let obj = this;
_done(data, curr, count);
_done(data, curr, count);
if(cols_save){
obj.elem.next().on('mousedown', 'input[lay-filter="LAY_TABLE_TOOL_COLS"]+', function(){
var input = $(this).prev()[0];
layui.data ('col-filter-'+params.url,{
key: input.name
,value: input.checked
})
});
}
tablePlus.excel(data,excel_limit,obj);
}
}
else{
params.done = function(data){
let obj = this;
if(cols_save){
obj.elem.next().on('mousedown', 'input[lay-filter="LAY_TABLE_TOOL_COLS"]+', function(){
var input = $(this).prev()[0];
layui.data ('col-filter-'+params.url,{
key: input.name
,value: input.checked
})
});
}
tablePlus.excel(data,excel_limit,obj);
}
}
}
if(cols_save){
// 从本地存储获取用户保存的列显示设置
let savedCols = localStorage.getItem('col-filter-'+params.url);
let colsStatus = savedCols ? JSON.parse(savedCols) : {};
let cols = params.cols;
for (var i=0;i<cols[0].length;i++){
if(cols[0][i].field!=undefined){
cols[0][i].hide=colsStatus[cols[0][i].field];
}
}
params.cols = cols;
}
var init = tablePlus._render(params);
return init;
//console.log(params);

@ -32,7 +32,7 @@ layui.define(['jquery','layer','table'], function(exports) {
area:['580px','240px'],
content: pageHtml,
success:function(res){
var tableWhere = obj.where;
var tableWhere = JSON.parse(JSON.stringify(obj.where));
tableWhere.limit=page_size;
$('#exportPage').on('click','a',function(){
tableWhere.page=$(this).data('page');