用到dropdown 控件:
地址:
http://test.microanswer.cn/page/dropdown.html
引入css,js:
<link rel="stylesheet" href="${ctxLayui}/layuiadmin/style/dropdown.css" media="all">
layui.config({
base: '${ctxLayui}/layuiadmin/'
}).extend({
index: 'lib/index'
}).use(['index', 'table','dict','laydate','util','element','dropdown'], function(){
var $ = layui.$,table = layui.table,form = layui.form;
var dict = layui.dict;
var laydate = layui.laydate;
var admin = layui.admin;
var util = layui.util;
var element = layui.element;
var dropdown = layui.dropdown;
操作列模板:
<script id="myCompanyList-bar" type="text/html">
<button class="layui-btn layui-btn-xs" lay-filter="ft{{d.id}}" lay-dropdown="{template: '#bar_content',maxHeight:'600px;'}" >
<span>操作</span>
<i class="layui-icon layui-icon-triangle-d"></i>
</button>
</script>
bar_content 即為下拉多級按鈕,也是模板:
<script id="bar_content" type="text/html">
<div style="width:170px;">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title" lay-event="header_h1" style="text-align:left;padding-left:8px;"><i class="layui-icon layui-icon-down"></i> 稅務查詢</h2>
<div class="layui-colla-content" lay-event="showTaxInfo" style="text-align:left;">稅務登記</div>
<div class="layui-colla-content" lay-event="showTaxCategory" style="text-align:left;">認定管理</div>
<div class="layui-colla-content" lay-event="showTaxLevyOverdue" style="text-align:left;">申報征收查詢</div>
<div class="layui-colla-content" lay-event="showTaxSocialReocrd" style="text-align:left;">社保登記查詢</div>
<div class="layui-colla-content" lay-event="showTaxTicket" style="text-align:left;">發票業務</div>
<div class="layui-colla-content" lay-event="showTaxLllegal" style="text-align:left;">違法違章</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title" lay-event="header_h2" style="text-align:left;padding-left:8px;"><i class="layui-icon layui-icon-down"></i> 賬務管理</h2>
<div class="layui-colla-content" lay-event="showAccountNote" style="text-align:left;">做賬要求</div>
<div class="layui-colla-content" lay-event="showAccount" style="text-align:left;">做賬記錄</div>
<div class="layui-colla-content" lay-event="showAccountProfile" style="text-align:left;">賬務概況(年)</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title" lay-event="header_h3" style="text-align:left;padding-left:8px;"><i class="layui-icon layui-icon-down"></i> 服務中心</h2>
<div class="layui-colla-content" lay-event="showContacts" style="text-align:left;">聯系人</div>
<div class="layui-colla-content" lay-event="showServiceItem" style="text-align:left;">業務服務</div>
<div class="layui-colla-content" lay-event="showException" style="text-align:left;">異常業務</div>
<div class="layui-colla-content" lay-event="showItemWorkDetail" style="text-align:left;">服務進度</div>
<div class="layui-colla-content" lay-event="showServiceUser" style="text-align:left;">服務人員</div>
<div class="layui-colla-content" lay-event="showOrder" style="text-align:left;">合同記錄</div>
<div class="layui-colla-content" lay-event="showTask" style="text-align:left;">任務記錄</div>
<div class="layui-colla-content" lay-event="showWorkTask" style="text-align:left;">工單記錄</div>
<div class="layui-colla-content" lay-event="showPaper" style="text-align:left;">證照信息</div>
<div class="layui-colla-content" lay-event="showQuality" style="text-align:left;">公司資質</div>
<div class="layui-colla-content" lay-event="showAccountNumber" style="text-align:left;">賬號信息</div>
<div class="layui-colla-content" lay-event="showAddressee" style="text-align:left;">收件人</div>
<div class="layui-colla-content" lay-event="showCompanyNoticeEvent" style="text-align:left;">通知事件</div>
<div class="layui-colla-content" lay-event="showCompanyWarn" style="text-align:left;">公司預警</div>
<div class="layui-colla-content" lay-event="showCompanyTag" style="text-align:left;">公司標簽</div>
<div class="layui-colla-content" lay-event="showLog" style="text-align:left;">操作日志</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title" lay-event="header_h4" style="text-align:left;padding-left:8px;"><i class="layui-icon layui-icon-down"></i> 業務管理</h2>
<div class="layui-colla-content" lay-event="signOrder" style="text-align:left;">添加合同</div>
<div class="layui-colla-content" lay-event="renewOrder" style="text-align:left;">續費合同</div>
<div class="layui-colla-content" lay-event="addTask" style="text-align:left;">添加任務單</div>
<div class="layui-colla-content" lay-event="addWorkTask" style="text-align:left;">添加工單</div>
<div class="layui-colla-content" lay-event="addException" style="text-align:left;">標記異常</div>
<div class="layui-colla-content" lay-event="recover" style="text-align:left;">恢復服務</div>
<div class="layui-colla-content" lay-event="editServiceDate" style="text-align:left;">修改服務時間</div>
</div>
<div class="layui-colla-item">
<h2 class="layui-colla-title" lay-event="header_h5" style="text-align:left;padding-left:8px;"><i class="layui-icon layui-icon-down"></i> 稅務管理</h2>
<div class="layui-colla-content" lay-event="showDeclareRecord" style="text-align:left;">申報記錄</div>
<div class="layui-colla-content" lay-event="showSalary" style="text-align:left;">員工工資</div>
<div class="layui-colla-content" lay-event="showSocial" style="text-align:left;">員工社保</div>
<div class="layui-colla-content" lay-event="showProvidentFund" style="text-align:left;">員工公積金</div>
<div class="layui-colla-content" lay-event="showInvoice" style="text-align:left;">開票管理</div>
</div>
</div>
</div>
</script>
表格js:
var elemId = "myCompanyList";
var tableIns = table.render({
elem:'#'+elemId
,url: ctx+'/company/company/queryMy'
,error:admin.error
,cellMinWidth: 80
,toolbar: '#'+elemId+'-toolbar'
,defaultToolbar: [{
title: '條件過濾' //標題
,layEvent: 'searchDiv' //事件名,用於 toolbar 事件中使用
,icon: 'layui-icon-search' //圖標類名
},
'filter']
,cols: [[
{width: 100, align:'center', toolbar: '#'+elemId+'-bar'}
// {width: 100, align:'center', toolbar: '#test2'}
// ,{field:'contacts', title: 'test', align: 'center',width:200,templet:"#test1",hide:true}
,{field:'name', title: '公司名稱', align: 'center',minWidth:200 ,templet:tplName}
,{field:'contacts', title: '聯系人', align: 'center',width:130 }
,{field:'mobile', title: '聯系電話', align: 'center',width:130 }
,{field:'issueTime', title: '注冊時間', align: 'center',width:160,templet:tplIssueTime}
,{field:'regionName', title: '所屬區域', align: 'center',width:130 }
,{field:'industry', title: '行業分類', align: 'center',width:130 }
,{field:'serviceBeginDate', title: '服務起止時間', align: 'center',width:160,templet:tplServiceBeginDate}
,{field:'serviceBeginDate', title: '到期剩余時間', align: 'center',width:120,templet:tplRemainMonths}
,{field:'taxpayerType', title: '納稅人類型', align: 'center',width:130,templet:tplTaxpayerType}
// ,{field:'serviceUserId', title: '客服用戶', align: 'center',width:130 }
// ,{field:'accountUserId', title: '記帳用戶', align: 'center',width:130 }
// ,{field:'saleUserId', title: '銷售用戶', align: 'center',width:130 }
,{field:'serviceStatus', title: '服務狀態', align: 'center',width:130,templet:tplServiceStatus}
,{field:'createTime', title: '創建時間', align: 'center',width:160,templet:tplCreateTime}
,{field:'customerType', title: '客戶類型', align: 'center',width:100,hide:true ,templet:tplCustomerType}
,{field:'taxType', title: '申報方式', align: 'center',width:100,hide:true,templet:taxTypeTpl }
,{field:'serviceAmount', title: '服務費/月', align: 'center',width:100,hide:true }
,{field:'accountType', title: '賬務類型', align: 'center',width:100,hide:true,templet:tplAccountType }
,{field:'socialStatus', title: '社保開通狀態', align: 'center',width:120,hide:true,templet:tplSocialStatus }
,{field:'invoiceType', title: '開票方式', align: 'center',width:100,hide:true ,templet:invoiceTypeTpl}
,{field:'taxPlateStatus', title: '稅盤狀態', align: 'center',width:100,hide:true,templet:tplTaxPlateStatus }
]]
,page: true
,limit: 10
,limits: layui.setter.limits
,height: 'full-1'
,done: function(res, curr, count){
var _tableData = res;
dropdown.suite();
/*for (var i = 0; i < _tableData.data.length; i++) {
var row = _tableData.data[i];
mapData.set(""+row.id,row);
dropdown.onFilter("ft" + row.id, function (event) {
var arr = event.split("_");
active[arr[0]].call({},{key:arr[1]})
});
}*/
}
});
監聽按鈕事件:
table.on('tool('+elemId+')', function(obj){
var eventName = obj.event;
if(eventName=='showRec'){
active.showRec(obj);
}else if(eventName.indexOf("header_")!=-1){
active.header(obj,eventName);
}else{
active[eventName].call({},obj)
}
});
active.header(obj,eventName) 的代碼如下:
var active = {
header:function (obj,eName) {
var headerDiv = $(obj.tr).find("[lay-event="+eName+"]");
var headerIcon = headerDiv.find(".layui-icon");
if(headerIcon.hasClass("layui-icon-down")){
headerIcon.removeClass("layui-icon-down");
headerIcon.addClass("layui-icon-up");
}else{
headerIcon.addClass("layui-icon-down");
headerIcon.removeClass("layui-icon-up");
}
var contentDiv = headerDiv.parent().find("div");
if(contentDiv.hasClass("layui-show")){
contentDiv.removeClass("layui-show")
}else{
contentDiv.addClass("layui-show")
}
},
}
其他事件格式如下:
showTaxInfo:function (obj) {
active.showPage(obj.data,'tax/taxInfoTabs.jsp','稅務登記');
},
showPage 代碼如下:
showPage:function (data,page,title) {
top.layui.admin.popupRight({
id: 'LAY_'+elemId+'PopupLayer'
,title:title?title:false
,type: 2
,content: page
,area: layui.setter.popup_layer_area
,success: function(layero,index){
top.window.formData = data;
}
,btn: ['關閉']
,btnAlign: 'c'
});
},