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

View File

@ -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(); $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'; $orderby = 'ct.next_time desc,a.create_time desc';
if(isset($param['orderby'])){ if(isset($param['orderby'])){
@ -122,7 +122,7 @@ class Index extends BaseController
->join('department d', 'a.belong_did = d.id') ->join('department d', 'a.belong_did = d.id')
->join($ct_sql.' ct', 'ct.cid = a.id','left') ->join($ct_sql.' ct', 'ct.cid = a.id','left')
->join($cc_sql.' cc', 'a.id = cc.cid','left') ->join($cc_sql.' cc', 'a.id = cc.cid','left')
->distinct() ->group('a.id')
->order($orderby) ->order($orderby)
->paginate($rows, false, ['query' => $param]) ->paginate($rows, false, ['query' => $param])
->each(function ($item, $key) { ->each(function ($item, $key) {

View File

@ -43,7 +43,7 @@
</a> </a>
</span> </span>
<span class="gg-head-item gg-head-message"> <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> <i class="layui-icon layui-icon-notice"></i>
<!-- 如果有新消息,则显示 --> <!-- 如果有新消息,则显示 -->
<div class="gg-message-num" id="msgNum" style="display: none;"><span>0</span></div> <div class="gg-message-num" id="msgNum" style="display: none;"><span>0</span></div>
@ -57,8 +57,8 @@
<cite>{$login_admin.nickname}</cite> <cite>{$login_admin.nickname}</cite>
</a> </a>
<dl class="layui-nav-child" style="text-align: center; cursor: pointer;"> <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_personal" data-id="1001" 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_password" data-id="1002" data-title="修改密码" class="side-menu-item">修改密码</a></dd>
<hr> <hr>
<dd gg-event="logout"><a>退出</a></dd> <dd gg-event="logout"><a>退出</a></dd>
</dl> </dl>

View File

@ -2,13 +2,13 @@
<div class="layui-row pt-3 px-3 py-2"> <div class="layui-row pt-3 px-3 py-2">
<ul class="layui-col-space12"> <ul class="layui-col-space12">
<li class="layui-col-xs3"> <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> <i class="iconfont icon-huamingce"></i>
<cite>通讯录</cite> <cite>通讯录</cite>
</a> </a>
</li> </li>
<li class="layui-col-xs3"> <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> <i class="iconfont icon-kaoshijihua"></i>
<cite>日程安排</cite> <cite>日程安排</cite>
</a> </a>

View File

@ -1,14 +1,11 @@
layui.define(['jquery','layer','table'], function(exports) { layui.define(['jquery','layer','table'], function(exports) {
//tablePlus在原来的table模块的基础上实现了批量数据导出功能实现defaultToolbar中筛选列记忆功能
var $ = layui.$, var $ = layui.$,
layer = layui.layer, layer = layui.layer,
table = layui.table; table = layui.table;
var MOD_NAME='tablePlus'; var MOD_NAME='tablePlus';
var tablePlus=$.extend({},table); var tablePlus=$.extend({},table);
tablePlus._render = tablePlus.render; tablePlus._render = tablePlus.render;
tablePlus.excel = function(data,page_size,obj){ tablePlus.excel = function(data,page_size,obj){
//表头工具栏导出按钮 //表头工具栏导出按钮
$('[lay-id="'+obj.id+'"]').find('[lay-event="LAYTABLE_EXCEL"]').off().on('click',function(){ $('[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'], area:['580px','240px'],
content: pageHtml, content: pageHtml,
success:function(res){ success:function(res){
var tableWhere = obj.where; var tableWhere = JSON.parse(JSON.stringify(obj.where));
tableWhere.limit=page_size; tableWhere.limit=page_size;
$('#exportPage').on('click','a',function(){ $('#exportPage').on('click','a',function(){
tableWhere.page=$(this).data('page'); tableWhere.page=$(this).data('page');
@ -51,13 +48,23 @@ layui.define(['jquery','layer','table'], function(exports) {
return false; 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){ tablePlus.render=function(params){
let is_excel = params.is_excel||false; let is_excel = params.is_excel||false;
let cols_save = params.cols_save||false;
let excel_limit = params.excel_limit||1000; let excel_limit = params.excel_limit||1000;
if(is_excel){ 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){ if(!params.defaultToolbar){
params.defaultToolbar = toolbar; params.defaultToolbar = toolbar;
} }
@ -70,16 +77,46 @@ layui.define(['jquery','layer','table'], function(exports) {
params.done = function(data, curr, count){ params.done = function(data, curr, count){
let obj = this; 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); tablePlus.excel(data,excel_limit,obj);
} }
} }
else{ else{
params.done = function(data){ params.done = function(data){
let obj = this; 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); 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); var init = tablePlus._render(params);
return init; return init;
//console.log(params); //console.log(params);

View File

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