制作一个layui表格,表头为(序号,工作内容,计划完成日期,填报人,更新时间,操作)(操作里面有三个值,编辑,删除和提交)定义一个flag未填报,判断数据为填报的时候,展示表格操作里面只有提交,但数据为为填报时,表格操作列展示编辑和删除
时间: 2024-05-07 18:18:00 浏览: 9
好的,下面是基于layui的表格代码:
```html
<table id="dataTable" lay-filter="dataTable"></table>
<script>
layui.use(['table'], function () {
var table = layui.table;
// 数据
var data = [
{id: 1, content: '任务1', date: '2022-01-01', reporter: '张三', updateTime: '2021-12-01', flag: true},
{id: 2, content: '任务2', date: '2022-02-01', reporter: '李四', updateTime: '2021-12-02', flag: false},
{id: 3, content: '任务3', date: '2022-03-01', reporter: '王五', updateTime: '2021-12-03', flag: false},
{id: 4, content: '任务4', date: '2022-04-01', reporter: '赵六', updateTime: '2021-12-04', flag: false},
{id: 5, content: '任务5', date: '2022-05-01', reporter: '钱七', updateTime: '2021-12-05', flag: false},
];
// 列
var cols = [[
{field: 'id', title: '序号'},
{field: 'content', title: '工作内容'},
{field: 'date', title: '计划完成日期'},
{field: 'reporter', title: '填报人'},
{field: 'updateTime', title: '更新时间'},
{field: 'flag', title: '填报状态', templet: function (d) {
return d.flag ? '已填报' : '未填报';
}},
{title: '操作', toolbar: '#barDemo'},
]];
// 渲染表格
table.render({
elem: '#dataTable',
data: data,
cols: cols,
page: true,
});
// 监听操作列
table.on('tool(dataTable)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
// 编辑操作
console.log('编辑任务', data.id);
} else if (obj.event === 'delete') {
// 删除操作
console.log('删除任务', data.id);
} else if (obj.event === 'submit') {
// 提交操作
console.log('提交任务', data.id);
}
});
// 根据填报状态显示操作列
table.on('draw(dataTable)', function () {
var $table = $('#dataTable');
$table.next('.layui-table-view').find('.layui-table-body table tr').each(function () {
var $td = $(this).find('td[data-field="flag"]');
var flag = $td.text() === '已填报';
var $operate = $(this).find('.layui-table-cell:last-child .layui-btn');
if (flag) {
$operate.html('<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="submit">提交</button>');
} else {
$operate.html('<button class="layui-btn layui-btn-sm" lay-event="edit">编辑</button>' +
'<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="delete">删除</button>');
}
});
});
});
</script>
<!-- 操作列模板 -->
<script type="text/html" id="barDemo">
{{# if(d.flag) { }}
<button class="layui-btn layui-btn-sm layui-btn-normal" lay-event="submit">提交</button>
{{# } else { }}
<button class="layui-btn layui-btn-sm" lay-event="edit">编辑</button>
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="delete">删除</button>
{{# } }}
</script>
```
在上面的代码中,我们首先定义了数据和列的数组,然后使用`table.render`方法渲染表格。在列中,我们使用了`templet`属性来根据填报状态显示已填报或未填报的文本。在操作列中,我们使用了自定义模板,根据填报状态显示编辑、删除或提交按钮。最后,在`draw`事件中,我们使用jQuery修改了操作列的内容。