/**
* 按钮池
* @author weidy@2019-11-26
*/
layui.define(['layer','element','form','table','util'],function(exports){
var Class = function(){
this.MODELNAME = "platform/securityManage/SmButton";
this.moduleKey = "SmButton";
this.id='SmButton';
this.sourceData={};
this.columns = [];
this.backPath = configData.compatibility?path:configData.frameworkPath;
this.url={
dataGrid:'smButtonController/dataGrid',//列表数据和查询
add:'smButtonController/addSave',
edit:'smButtonController/editSave',
deleteUrl:'smButtonController/delete'
};
this.buttonIconMap = {
SEARCH:'layui-icon-refresh-2',
SENIORSEARCH:'layui-icon-query',
ADD:'layui-icon-add-1',
EDIT:'layui-icon-edit',
DELETE:'layui-icon-delete'
};
this.getContent=function(){//返回这个组件的基础html
var that = this;
var html = "";
html = [
'
',
'
',
that.getToolbarHtml(),
'
',//主列表
'
',
'
'
].join("");
return html;
};
this.getToolbarHtml =function(){
var that = this;
var html = [
'',//主列表的按钮
'
'
].join("");
return html;
};
this.getDetailToolbarHtml = function(){
var me = this;
return '';
};
this.init=function(){//基础的html被添加后,再执行初始化
var that = this;
$webUtil.copyConfig(that,that.moduleKey);
$webUtil.createButtonHtmlEx(that.sourceData,that.buttonIconMap,$('[layui-filter="toolbar_' + that.id + '"]'),that.id,
[{uniqueFlag:'ADD',alias:'添加'},{uniqueFlag:'EDIT',alias:'修改'},{uniqueFlag:'DEL',alias:'删除'},{uniqueFlag:'LISTUSED',alias:'查看应用范围'},{uniqueFlag:'CASCADEDEL',alias:'关联删除'},{uniqueFlag:'refresh',alias:'刷新'}],
[],function(buttons,hasViewRight,hasQueryRight) {
hasViewRight = true;
hasQueryRight = true;
if (hasViewRight) {
$webUtil.bindDefultButtonLisenter(that, that.id);
var table = layui.table;
that.checkColumns();//主列表中列。
table.render({
elem: '#table_' + that.id,
id: 'table_' + that.id,
url: that.backPath + that.url.dataGrid,
page: {
limit: 30,
page: 1
},
cols: [that.columns],
done: function (res, cur, count) {
if(res && res.data && res.data.length>0){
table.selectRecord('table_' + that.id,res.data[0]);
}
},
rowClick: function (thisTableFilter, record) {
if(that.hasDetailRight) {
table.reload("person_" + that.id, {
where: {
oid: record.oid
}
});
}
}
});
if(hasQueryRight) {
$webUtil.createSearchHtml({
id: '按钮标识',
name: '按钮名称'
}, $('[layui-filter="toolbar_' + that.id + '"]'), 'table_' + that.id);
}
}else{
$webUtil.showErrorMsg("您没有权限浏览本页面");
}
});
};
this.ADD = function(){//保存
var that = this;
layui.use('form',function(){
var form = layui.form;
var filter ="form_" + that.id;
var addSaveIndex = layer.open({
type:1,
title:'添加按钮',
btn:['保存','取消'],
skin:'layui-layer-lan',
content:'',
area:['800px','270px'],
closeBtn:2,
shade:true,
shadeClose:true,
resize:true,
resizing:function(layero){
form.doResize(filter);
},
success:function(layero) {
form.addItems(filter,that.getFormItems(false),
function () {}, {}, {defaultColumnOneRow: 2});
},
yes:function(layero){
if(form.validata(filter)){
var values = form.getValues(filter);
$webUtil.post(that.url.add,values,function(result){
if(result.success){
$webUtil.showMsg("添加按钮成功");
layer.close(addSaveIndex);
that.refresh();
}else{
$webUtil.showErrorMsg(result.msg);
}
},function (xhr,error) {
},that.backPath);
}
},
btn2:function(layero){
layer.close(addSaveIndex);
that.refresh();
}
});
});
};
this.getFormItems = function(isEdit){
return [{
type: 'text',
name: 'id',
text: '按钮标识',
required: true
}, {
type: 'text',
name: 'name',
text: '按钮名称',
required: true
}, {
name: 'iconCss',
text: '显示图标'
}, {
type: 'text',
name: 'description',
text: '描述'
}];
};
this.EDIT = function(){
var that = this;
var oid = $webUtil.getOidFromGrid("table_" + that.id,true,true);
if(!oid){
return false;
}
var selectRowData = layui.table.checkStatus("table_" + that.id);
layui.use('form',function(){
var form = layui.form;
var filter ="form_" + that.id;
var addSaveIndex = layer.open({
type: 1,
title: '修改按钮',
btn: ['保存', '取消'],
url: that.backPath + that.url.edit,
skin: 'layui-layer-lan',
content: '',
area: ['800px', '270px'],
closeBtn: 2,
shade: true,
shadeClose: true,
resize: true,
resizing: function (layero) {
form.doResize(filter);
},
success: function (layero) {
form.addItems(filter,that.getFormItems(true),
function () {
form.setValues(selectRowData.data[0],filter);
}
, {}
, {
defaultColumnOneRow: 2
});
},
yes:function(layero){
if(form.validata(filter)){
var formValues = form.getValues(filter,true);
formValues['oid'] = selectRowData.data[0].oid;
formValues['ts'] = selectRowData.data[0].ts;
$webUtil.put(that.url.edit,formValues,function (result) {
if(result.success){
$webUtil.showMsg("修改按钮成功");
that.refresh();
layer.close(addSaveIndex);
}else{
$webUtil.showErrorMsg(result.msg);
}
},function (error) {
},that.backPath);
}
},
btn2:function(layero){
that.refresh();
layer.close()
}
});
});
};
this.DEL= function(){
var that = this;
var oid = $webUtil.getOidFromGrid("table_" +that.id,true,true);
if(!oid){
return false;
}
var ts = $webUtil.getOidFromGrid("table_" +that.id,false,false,"ts");
$webUtil.showConfirmMsg("是否删除这个按钮,对应的功能菜单中的按钮不会自动删除",function () {
$webUtil.deleteRequest(that.url.deleteUrl,{oid:oid,ts:ts},function(result){
if(result.success){
$webUtil.showMsg("删除按钮成功");
that.refresh();
}else{
$webUtil.showErrorMsg(result.msg);
}
},function (xhr,error) {
},that.backPath);
});
};
this.checkColumns = function(){
var that = this;
var table = layui.table;
if(that.columns==null || that.columns.length==0){//如果其他地方想使用这个组件的时候,可以自定义列
that.columns = [table.getIndexColumn(),table.getCheckColumn(),{
field:'id',
title:'按钮标识',
width:150
},{
field:'name',
title:'按钮名称',
width:200
},{
field:'iconCss',
title:'显示图标',
width:100
},{
field:'description',
title:'描述',
width:150
}];
}
};
this.refresh = function(){
var that = this;
layui.table.reload("table_" + that.id);
};
};
var cs = new Class();
exports(cs.MODELNAME,cs);
});