```javascript
/**
* 自定义模块功能封装
*
* @author liang <23426945@qq.com>
* @version 1.0.0
* @datetime 2020-07-28
*
* 添加、编辑、单个删除、批量删除、表格搜索、修改字段
* 请求接口、批量操作数据
*/
layui.define(['table', 'admin', 'view', 'form'], function(exports){
var table = layui.table
,admin = layui.admin
,form = layui.form
,$ = layui.$
,view = layui.view
// 调试模式
let debug = true
var obj = new Object();
// 添加和编辑
obj.addEdit = (opt, param, editData = {}) => {
let init = {
title: '添加'
,area: ['500px', '450px']
,id: 'LAY-popup-user-add'
}
// package.addEdit({
// title: '添加出勤',
// area: ['500px', '400px'],
// }, {
// url: '/index/attendance/add',
// tableId: 'attendance',
// viewPath: 'worker/attendance/form',
// formFilter: 'layuiadmin-form-useradmin',
// }, data);
let url = param.url
let tableId = param.tableId
let viewPath = param.viewPath
let formFilter = param.formFilter
init.success = function (layero, index) {
view(this.id).render(viewPath, editData).done(function(){
form.render(null, formFilter);
let submitFilter = $('[lay-filter="' + formFilter + '"] [lay-submit]').attr('lay-filter')
// 监听提交
form.on('submit(' + submitFilter + ')', function(data){
//获取提交的字段
var field = data.field;
// 如果是编辑操作,将id传入
if (editData.id != undefined) {
field.id = editData.id
}
// 前台用户表单
if (formFilter == 'layuiadmin-form-member') {
field.avatar = $('#avatar-hidden').val()
}
// 调试模式
if (debug === true) {
console.log(field)
}
admin.req({
url: url
,type: 'post'
,data: field
,done: res => {
console.log(res)
layer.msg(res.msg)
if (res.status == 200) {
layui.table.reload(tableId); //重载表格
layer.close(index); //执行关闭
}
}
})
});
});
}
admin.popup(Object.assign(init, opt))
}
// 批量删除
obj.batchdel = (opt, param) => {
// package.batchdel({
// title: '批量删除'
// },{
// msg: '确定删除吗?',
// url: '/index/attendance/del',
// tableId: 'attendance',
// })
let msg = param.msg
let url = param.url
let tableId = param.tableId
let init = {
title: '批量删除'
}
var checkStatus = table.checkStatus(tableId)
,checkData = checkStatus.data; //得到选中的数据
if(checkData.length === 0){
return layer.msg('请选择数据');
}
var ids = [];
for (var v of checkData) ids.push(v.id);
let requsest = {ids: ids}
layer.confirm(msg, Object.assign(init, opt), function(index) {
admin.req({
url: url,
type: 'post',
data: requsest,
done: res => {
if (debug === true) {
console.log(res)
}
layer.msg(res.msg, {
time: 1500,
});
if (res.status == 200) {
table.reload(tableId);
}
}
});
layer.close(index)
});
}
// 批量操作数据
// opt, param, data 补充的数据
obj.batch = (opt, param, data = {}) => {
// package.batch({
// title: '批量通过'
// }, {
// msg: '确定批量通过吗?',
// url: '/shop.merch/adoptReject',
// tableId: 'merch-apply',
// }, {
// status: 2
// })
let msg = param.msg
let url = param.url
let tableId = param.tableId
let init = {
title: '批量操作'
}
var checkStatus = table.checkStatus(tableId)
,checkData = checkStatus.data; //得到选中的数据
if(checkData.length === 0){
return layer.msg('请选择数据');
}
var ids = [];
for (var v of checkData) ids.push(v.id);
let requsest = Object.assign({ids: ids}, data)
if (debug === true) {
console.log(requsest)
}
layer.confirm(msg, Object.assign(init, opt), function(index) {
admin.req({
url: url,
type: 'post',
data: requsest,
done: res => {
if (debug === true) {
console.log(res)
}
layer.msg(res.msg, {
time: 1500,
});
if (res.status == 200) {
table.reload(tableId);
}
}
});
layer.close(index)
});
}
// 单个删除
obj.del = (opt, param, data) => {
// package.del({
// title: '删除'
// },{
// msg: '确定删除吗?',
// url: '/index/attendance/del',
// tableId: 'attendance',
// }, data)
let msg = param.msg
let url = param.url
let tableId = param.tableId
let init = {
title: '批量删除'
}
layer.confirm(msg, Object.assign(init, opt), function(index){
admin.req({
url: url,
type: 'get',
data: {id: data.id},
success: res => {
if (debug === true) {
console.log(res)
}
layer.msg(res.msg)
if (res.status == 200) {
table.reload(tableId)
}
}
})
layer.close(index);
});
}
// 数据表格搜索
obj.search = (param) => {
// package.search({
// // 数据表格容器ID
// tableId: 'attendance',
// // 表单容器的 lay-filter
// formFilter: 'layadmin-userfront-formlist',
// // 提交按钮的 lay-filter
// submitFilter: 'LAY-user-front-search',
// });
let tableId = param.tableId
let formFilter = param.formFilter
let submitFilter = param.submitFilter
form.render(null, formFilter);
//监听搜索
form.on('submit(' + submitFilter + ')', function(data){
var field = data.field;
if (debug === true) {
console.log(field)
}
//执行重载
table.reload(tableId, {
where: field
,page: {
curr: 1
}
,text: {
none: '没有查询到数据'
}
});
});
}
// 数据表格搜索 v2
// 自动匹配搜索表单提交按钮事件过滤器的值
obj.searchTable = (param) => {
// package.searchTable({
// // 数据表格容器ID
// tableId: 'order-close',
// // 搜索表单容器事件过滤器
// layfilter: 'search-form',
// });
let submitFilter = $('[lay-filter="' + param.layfilter + '"] [lay-submit]').attr('lay-filter')
// 更新渲染
form.render(null, param.layfilter);
//监听搜索
form.on('submit(' + submitFilter + ')', function(data){
// 搜索表单字段
var field = data.field;
// 调试模式输出表单数据
if (debug === true) console.log(field);
// 表单重载,从第一页开始
table.reload(param.tableId, {
where: field
,page: {
curr: 1
}
,text: {
none: '没有查询到数据'
}
});
});
}
// 修改某个字段 直接执行修改
obj.switch = (param) => {
// package.switch({
// url: '/admin/switchStatus',
// data: {
// id: data.id,
// status: data.status,
// },
// tableId: 'admin',
// })
let url = param.url;
let data = param.data;
let tableId = param.tableId;
admin.req({
url: url,
type: 'post',
data: data,
done: res => {
if (debug === true) console.log(res);
layer.msg(res.msg, {
time: 1000,
})
if (res.status == 200) {
table.reload(tableId)
}
}
})
}
// 修改某个字段 先询问再修改
obj.switchMsg = (param) => {
// package.switchMsg({
// url: '/admin/switchStatus',
// tableId: 'admin',
// data: {
// id: data.id,
// status: data.status,
// },
// msg: '确定要下架吗?',
// ConfirmOpt: {
// title: '下架商品'
// },
// successMsgOpt: {
// time: 1200,
// }
// })
layer.confirm(param.msg, param.ConfirmOpt, function(index){
admin.req({
url: param.url,
type: 'post',
data: param.data,
done: res => {
if (debug === true) console.log(res);
layer.msg(res.msg, param.successMsgOpt)
if (res.status == 200) {
table.reload(param.tableId)
}
}
})
layer.close(index);
});
}
// 发送添加和编辑请求
obj.addEditReq = (param) => {
// package.addEditReq({
// // 提交按钮事件过滤器
// submitFilter: 'form-submit'
// // 添加数据的接口
// ,url: '/shop.merch/add'
// // 可选项,请求类型,默认post
// ,type: 'post'
// // 可选项,hash路径值(添加成功时跳转的路径),默认返回上一页
// ,hash: '/merch'
// })
// 监听提交
form.on('submit(' + param.submitFilter + ')', function(data){
//获取提交的字段
var field = data.field;
if (debug === true) {
console.log(field)
}
admin.req({
url: param.url
,type: param.type ? param.type : 'post'
,data: field
,done: res => {
if (debug === true) {
console.log(res)
}
if (res.status == 200) {
layer.msg(res.msg, {
time: 1000
},()=>{
param.hash ? location.hash = param.hash : history.go(-1)
})
} else {
layer.msg(res.msg)
}
}
})
return false
});
}
exports('package', obj);
});
```