关键
表格
增加:edit: 'text' ,单击单元格就会出现 输入框
更多代码如下:
table.render({
elem: '#main_table'
,url:'/materialAll'
,method:'post',
contentType: 'application/json;charset=utf-8'
,where: {
"status":1,
}
,cols: [[
{type:'checkbox'}
,{field:'id', width:80, title: 'ID',hide:true}
,{field:'name',align:'center', width:155, title: '原料名称'
,templet: '<div><div class="namedesc">{{d.name}}</div></div>'
}
,{ field:'wm_type',width:155, title: '原料种类',
templet: '<div><div class="namedesc">{{d.name}}</div></div>'
},{ field:'code',width:155, title: '原料编号',
templet: '<div><div class="namedesc">{{d.code}}</div></div>'
},{ field:'price',width:155, title: '库存类型',
templet: '<div><div class="namedesc">{{d.type_2_text}} </div></div>'
},{ field:'unit',width:155, title: '单位',
templet: '<div><div class="namedesc">{{d.unit}} </div></div>'
},{ field:'purchase_price',width:155,title: '采购成本价', edit: 'text',
templet: '<div><div class="namedesc">{{d.purchase_price}} </div></div>'
}
,{align:'center', title: '操作', toolbar: '#operation_bar'}
]]
,page: true
,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
return {
"code": res.code, //解析接口状态
"msg": res.msg, //解析提示文本
"count": res.total, //解析数据长度
"data": res.data //解析数据列表
};
}
,id:'main_table'
});
获取修改后的数据
按钮:
<button class="layui-btn layui-btn-danger" id="save"><i class="layui-icon"></i>保存</button>
点击事件函数:
//点击保存按钮,获取表格所有数据
$('#save').on('click', function(){
var data=layui.table.cache["main_table"];//获取表格的数据
console.log(data);
//通过ajax提交数据
});
完整代码
<!DOCTYPE html>
<html class="x-admin-sm">
<head>
<meta charset="UTF-8">
<title></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi" />
<link rel="stylesheet" href="./css/font.css">
<link rel="stylesheet" href="./css/xadmin.css">
<script src="js/jquery.min.js?v=2.1.4"></script>
<script src="./lib/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="./js/xadmin.js"></script>
<script src="js/doT.js"></script>
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style type="text/css">
/*.layui-table-cell{*/
/* height: 100%;*/
/* max-width: 100%;*/
/*}*/
.layui-table-cell{
/*height:80px; */ /*设置此参数,表头高度也改变*/
height: auto; /*设置此样式,可以正常显示图片,显示多行文字。但不能固定列,否则表格样式乱套*/
}
.namedesc{
white-space: normal;/*设置此样式,可以显示完整的文字*/
}
</style>
</head>
<body>
<div class="x-nav">
<span class="layui-breadcrumb">
<a href="">首页</a>
<a href="">原料管理</a>
</span>
<a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" onclick="location.reload()" title="刷新">
<i class="layui-icon layui-icon-refresh" style="line-height:30px"></i>
</a>
</div>
<div class="layui-fluid">
<div class="layui-row layui-col-space15">
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-body ">
<div class="layui-inline layui-show-xs-block">
<input type="text" name="keyword" id="keyword" placeholder="请输入名称/拼音/编号" autocomplete="off" class="layui-input"></div>
<div class="layui-inline layui-show-xs-block">
<button class="layui-btn" id="search">
<i class="layui-icon"></i></button>
</div>
</form>
</div>
<div class="layui-card-header">
<button class="layui-btn" onclick="xadmin.open('添加','./addGoods.html',900,700)"><i class="layui-icon"></i>添加</button>
<button class="layui-btn layui-btn-danger" id="batchDel"><i class="layui-icon"></i>批量删除</button>
<button class="layui-btn layui-btn-danger" id="save"><i class="layui-icon"></i>保存</button>
</div>
<div class="layui-card-body ">
<table class="layui-hide" id="main_table" lay-filter="main_table" lay-data="{height:500}"></table>
</div>
</div>
</div>
</div>
</div>
</body>
<script type="text/html" id="operation_bar">
<a class="layui-btn layui-btn-xs" lay-event="edit" ><i class="layui-icon layui-icon-edit"></i>编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del" ><i class="layui-icon layui-icon-delete"></i>删除</a>
</script>
<script>
layui.use('table', function(){
var table = layui.table;
table.render({
elem: '#main_table'
,url:'/materialAll'
,method:'post',
contentType: 'application/json;charset=utf-8'
,where: {
"status":1,
}
,cols: [[
{type:'checkbox'}
,{field:'id', width:80, title: 'ID',hide:true}
,{field:'name',align:'center', width:155, title: '原料名称'
,templet: '<div><div class="namedesc">{{d.name}}</div></div>'
}
,{ field:'wm_type',width:155, title: '原料种类',
templet: '<div><div class="namedesc">{{d.name}}</div></div>'
},{ field:'code',width:155, title: '原料编号',
templet: '<div><div class="namedesc">{{d.code}}</div></div>'
},{ field:'price',width:155, title: '库存类型',
templet: '<div><div class="namedesc">{{d.type_2_text}} </div></div>'
},{ field:'unit',width:155, title: '单位',
templet: '<div><div class="namedesc">{{d.unit}} </div></div>'
},{ field:'purchase_price',width:155,title: '采购成本价', edit: 'text',
templet: '<div><div class="namedesc">{{d.purchase_price}} </div></div>'
}
,{align:'center', title: '操作', toolbar: '#operation_bar'}
]]
,page: true
,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
return {
"code": res.code, //解析接口状态
"msg": res.msg, //解析提示文本
"count": res.total, //解析数据长度
"data": res.data //解析数据列表
};
}
,id:'main_table'
});
//监听工具条
table.on('tool(main_table)', function(obj){
var data = obj.data;//一行数据
var layEvent = obj.event;
if(layEvent === 'edit'){
xadmin.open('修改','./showGoods.html?id='+data.id,900,700)//窗口高、宽
}else if(layEvent === 'del'){
del(data.id,obj)
}
});
// table.on('edit(main_table)', function(obj){ //注:edit是固定事件名,test是table原始容器的属性 lay-filter="对应的值"
// console.log(obj.value); //得到修改后的值
// console.log(obj.field); //当前编辑的字段名
// console.log(obj.data); //所在行的所有相关数据
// });
$('#search').on('click', function(){
var keyword = $('#keyword');
//执行重载
table.reload('main_table', {
page: {
curr: 1 //重新从第 1 页开始
}
,where: {
keyword: keyword.val(),
status:1,
}
}, 'data');
});
$('#batchDel').on('click', function(){
var checkStatus = table.checkStatus('main_table')
var datas = checkStatus.data;
dels(datas)
});
//点击保存按钮,获取表格所有数据
$('#save').on('click', function(){
var data=layui.table.cache["main_table"];//获取表格的数据
console.log(data);
//通过ajax提交数据
});
});
layui.use(['laydate'], function(){
var laydate = layui.laydate;
//执行一个laydate实例
laydate.render({
elem: '#start' //指定元素
});
//执行一个laydate实例
laydate.render({
elem: '#end' //指定元素
});
});
</script>
</html>