00029-layui 表格table 操作列支持下拉按鈕(菜單),多級下拉按鈕(菜單),dropdown


用到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>&nbsp;&nbsp;稅務查詢</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>&nbsp;&nbsp;賬務管理</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>&nbsp;&nbsp;服務中心</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>&nbsp;&nbsp;業務管理</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>&nbsp;&nbsp;稅務管理</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'
                });
            },


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM