From a73673f8444261be338ad63cdaeb0b9a9a12b66c Mon Sep 17 00:00:00 2001 From: "HDM58\\hdm58" Date: Sun, 13 Aug 2023 01:34:17 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96tableplus=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=AE=9E=E7=8E=B0defaultToolbar=E4=B8=AD=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E5=88=97=E8=AE=B0=E5=BF=86=E5=8A=9F=E8=83=BD=202?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E5=AE=A2=E6=88=B7=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E6=90=9C=E7=B4=A2=E6=9D=A1=E4=BB=B6=203=E3=80=81?= =?UTF-8?q?=E5=B7=A5=E4=BD=9C=E5=8F=B0=E6=B6=88=E6=81=AF=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E3=80=81=E5=9F=BA=E6=9C=AC=E8=B5=84=E6=96=99=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=AF=86=E7=A0=81=E7=9A=84tabid=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8C=E9=98=B2=E6=AD=A2=E6=89=93=E5=BC=80=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E7=9A=84tab?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/customer/controller/Index.php | 4 +- app/home/view/index/index.html | 6 +- app/home/view/index/layout_fastentry.html | 4 +- .../static/assets/gougu/module/tablePlus.js | 59 +++++++++++++++---- public/static/assets/gougu/module/xlsx.js | 2 +- 5 files changed, 56 insertions(+), 19 deletions(-) diff --git a/app/customer/controller/Index.php b/app/customer/controller/Index.php index 1d02945..bafc0ac 100644 --- a/app/customer/controller/Index.php +++ b/app/customer/controller/Index.php @@ -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) { diff --git a/app/home/view/index/index.html b/app/home/view/index/index.html index 55803fe..d18100f 100644 --- a/app/home/view/index/index.html +++ b/app/home/view/index/index.html @@ -43,7 +43,7 @@ - + @@ -57,8 +57,8 @@ {$login_admin.nickname}
-
基本资料
-
修改密码
+
基本资料
+
修改密码

退出
diff --git a/app/home/view/index/layout_fastentry.html b/app/home/view/index/layout_fastentry.html index d7c4c3d..b4458d7 100644 --- a/app/home/view/index/layout_fastentry.html +++ b/app/home/view/index/layout_fastentry.html @@ -2,13 +2,13 @@
  • - + 通讯录
  • - + 日程安排 diff --git a/public/static/assets/gougu/module/tablePlus.js b/public/static/assets/gougu/module/tablePlus.js index 6cb04f8..60656d0 100644 --- a/public/static/assets/gougu/module/tablePlus.js +++ b/public/static/assets/gougu/module/tablePlus.js @@ -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: '
    '+content+'
    ' + }) + }) } //重写渲染方法 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