layuiTableColumnEdit
在layui table的基礎上對表格列進行擴展:點擊單元格顯示可搜索下拉列表及日期時間選擇器。
碼雲地址:https://gitee.com/yangqianlong98/layuiTableColumnEdit
一、介紹
此項目是為了解決layui table表格單元格(column)點擊事件中無下拉列表(select)及日期時間選擇器功能的問題。
a.可異步ajax請求后台數據。
b.可直接以數組形式傳參
c.可輸入關鍵字搜索下拉框數據
d.可加入日期時間選擇器
二、使用說明
使用方法
<table class="layui-hide" id="tableId" lay-filter="tableEvent"></table>
<script>
layui.config({
base: 'module/'
}).extend({
layuiTableColumnEdit:'js/layuiTableColumnEdit'
}).use(['table','layuiTableColumnEdit','layer'], function () {
var table = layui.table,layuiTableColumnEdit = layui.layuiTableColumnEdit,$ = layui.$;
var params = [
{name:1,value:"張三1"},
{name:2,value:"張三2"},
{name:3,value:"張三3"},
{name:4,value:"張三4"},
{name:5,value:"張三5"}
];
var cols = table.render({
elem: '#tableId'
,id:'id'
,url:'data.json'
,height: 'full-90'
,page: true
,cols: [[
{type:'checkbox'}
,{field:'name',title: '姓名',width:120,event:'name'}
//select(下拉框)date(時間選擇框)
,{field:'danxuan', title: '單選',width:120,event:'danxuan',select:{data:params}}
//data 為下拉框數據 enabled => true:多選,false:單選。默認為false
,{field:'duoxuan', title: '多選',width:120,event:'duoxuan',select:{data:params,enabled:true}}
//dateType表示日期時間格式,date為“yyyy-MM-dd”,datetime為“yyyy-MM-dd HH:ss:mm”
,{field:'birthday', title: '生日',width:120,event:'birthday',date:{dateType:'date'}}
]]
}).config.cols;
//參數cols是table.render({})中的cols屬性值
var aopTable = layuiTableColumnEdit.aopObj(cols); //獲取一個aop對象
aopTable.on('tool(tableEvent)',function (obj) {
var field = $(this).data('field');
console.log(obj);
if(field === 'danxuan'){
obj.update({danxuan:obj.value.value});
}
if(field === 'duoxuan'){
obj.update({duoxuan:obj.value[0].value});
}
if(field === 'birthday'){
obj.update({birthday:obj.value});
}
});
/*
* 注意:
*
* 1、 aopTable.on('tool(xxx)',function (obj) {})
* 2、 table.on('tool(yyy)',function (obj) {})
*
* 如果1中的xxx與2中的yyy字符串相同時,不能同時用,用了會造成后調用者覆蓋前調用者。
* 應該直接用1來代替2,因為1中包含了2中的事件。
*
* 如果不相同,則可以同時使用。
* */
});
</script>
效果圖


