/**
|
* 库房管理/仓库基本信息
|
* @author weidy@2020/2/24
|
* @constructor
|
*/
|
layui.define(['layer','element','form','table','tree','transfer'],function(exports){
|
var Class = function(){
|
this.MODELNAME = "platform/basedoc/BdWarehouse";
|
this.moduleKey = "BdWarehouse";
|
this.id='BdWarehouse';
|
this.sourceData={};
|
this.backPath = configData.compatibility?path:configData.frameworkPath;
|
this.buttonIconMap = {};
|
this.url={
|
controller: 'warehouseController/',
|
tree:'warehouseClassifyController/treeAllEnabledWarehouseClassify',
|
referClassifyTree:'warehouseClassifyController/referTree',
|
listWarehouseByClass:'gridWarehouseByClassify',
|
listAdmin:'getAdminByWareHouseOid',
|
referWarehouse:'refTree',
|
add:'addWarehouse',
|
edit:'editWarehouse',
|
deleteUrl:'delWarehouse',
|
enabled:'enableWarehouse',
|
disabled:'disableWarehouse',
|
unLinkUser:'userQueryController/refDataGrid',
|
linkUser:'addWarehouseAdmin',
|
removeLinkUser:'delWarehouseAdmin'
|
};
|
this.controllerSecret = configData.controllerSecret;
|
this.columns = [];
|
this.getContent=function(){//返回这个组件的基础html
|
var that = this;
|
var html = "";
|
html = [
|
'<div class="layui-layout" style="display:block;overflow-y: hidden">',
|
'<div class="layui-vci-tree" style="width:250px;float: left;background-color:#ffffff;overflow-y: auto;">',
|
'<label class="layui-icon layui-icon-tree" style="line-height: 20px;color:red;font-size:20px;">库房类型</label>',
|
'<ul layui-filter="tree_',that.id,'"><ul>',
|
'</div>',
|
'<div class="layui-layout-border" style="display:block;margin-top:0px;margin-left:255px;">',
|
'<div class="layui-center" style="overflow-y:auto;">',
|
that.getToolbarHtml(),
|
'<table id="table_',that.id ,'" lay-filter="', that.id ,'"></table>',
|
'</div>',
|
'<div class="layui-south" >',
|
that.getDetailToolbarHtml(),
|
'<table id="detail_table_',that.id ,'" lay-filter="detail_table_', that.id ,'"></table>',
|
'<div id="toolbar_column_',that.id ,'" style="display:none;"></div>',
|
'</div>',
|
'</div>',
|
'</div>'
|
].join("");
|
return html;
|
};
|
this.getToolbarHtml = function(){
|
var that =this;
|
return ['<div layui-filter="toolbar_button_',that.id,'" class="layui-btn-container">',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_ADD"><i class="layui-icon layui-icon-add-1"></i>添加</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_EDIT"><i class="layui-icon layui-icon-edit"></i>修改</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_DEL"><i class="layui-icon layui-icon-delete"></i>删除</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_ENABLE"><i class="layui-icon layui-icon-ok-circle"></i>启用</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_DISABLE"><i class="layui-icon layui-icon-404"></i>停用</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_',that.id,'_refresh"><i class="layui-icon layui-icon-refresh"></i>刷新</button>',
|
'</div>'].join("");
|
};
|
this.getDetailToolbarHtml = function () {
|
var that =this;
|
return ['<div layui-filter="toolbar_detail_table_',that.id,'" class="layui-btn-container">',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_detail_table_',that.id,'_LINKUSER"><i class="layui-icon layui-icon-add-1"></i>添加管理员</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_detail_table_',that.id,'_REMOVEUSER"><i class="layui-icon layui-icon-edit"></i>移除管理员</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_detail_table_',that.id,'_refreshUser"><i class="layui-icon layui-icon-refresh"></i>刷新</button>',
|
'</div>'].join("");
|
};
|
this.init=function(){
|
//基础的html被添加后,再执行初始化
|
var that = this;
|
that.firstTreeLoad =false;
|
that.firstGridLoad = false;
|
$webUtil.copyConfig(that,that.moduleKey);
|
$webUtil.bindDefultButtonLisenter(that, that.id);
|
var tree = layui.tree;
|
var scrollHeight = window.innerHeight;
|
var treeUL = $('[layui-filter="tree_' + that.id + '"]');
|
var treeHeight = scrollHeight - 200;
|
treeUL.parent().height(treeHeight);
|
tree.init("tree_" + that.id, treeUL, {
|
url: that.url.tree,
|
backPath: that.backPath,
|
extraParams: {
|
isMuti: false
|
},
|
loadType:layui.tree.loadType.all,
|
showSearch:true,
|
click: function (item, elem, options) {
|
that.currentItemOid = item.oid;
|
that.currentItemAttributes = item.attributes;
|
that.loadListByClassify();
|
},
|
done: function (thisFilter,result) {
|
that.currentItemOid = "";
|
if(result && result.length > 0){
|
that.currentItemOid = result[0].oid;
|
}
|
if(!that.firstTreeLoad) {
|
that.initMainTable();
|
that.firstTreeLoad = true;
|
}
|
}
|
});
|
};
|
this.initMainTable = function(callback){
|
//加载主列表
|
var that = this;
|
var table = layui.table;
|
that.checkColumns();//主列表中列。
|
table.render({
|
elem: '#table_' + that.id,
|
id: 'table_' + that.id,
|
url: that.backPath + that.url.controller + that.url.listWarehouseByClass,
|
page: {
|
limit: 20,
|
page: 1
|
},
|
where:{
|
pkWarehouseClassify:that.currentItemOid
|
},
|
selectMode:table.selectMode.muti,
|
cols: [that.columns],
|
rowClick:function(filter,data){
|
if(data){
|
that.loadLinkAdmin(data.oid);
|
}
|
},
|
done:function(res, cur, count){
|
if(!that.firstGridLoad) {
|
that.initDetailTable((res && res.data) ? res.data[0] : "");
|
that.firstGridLoad = true;
|
}
|
}
|
});
|
$webUtil.createSearchHtml({
|
id:'库房编号',
|
name:'库房名称'
|
},$("[layui-filter='toolbar_button_" + that.id + "']"),'table_' + that.id);
|
$webUtil.bindDefultButtonLisenter(that, "table_" + that.id);
|
};
|
this.loadListByClassify = function(){
|
//加载右侧的表
|
var that = this;
|
if($webUtil.isNull(that.currentItemOid)){
|
return;
|
}
|
layui.table.reload("table_" + that.id,{
|
where:{
|
pkWarehouseClassify: that.currentItemOid
|
}
|
});
|
};
|
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:'address',
|
title:'库房地址',
|
width:150
|
},{
|
field:'hearder',
|
title:'负责人',
|
width:80
|
},{
|
field:'tel',
|
title:'联系电话',
|
width:120
|
},{
|
field:'parentWarehouseText',
|
title:'上级库房',
|
width:150
|
},{
|
field:'pkDepartmentName',
|
title:'管理部门',
|
width:150
|
},{
|
field:'secretGradeText',
|
title:'密级',
|
width:90,
|
hidden:!that.controllerSecret
|
},{
|
field:'lcStatusText',
|
title:'状态',
|
width:90
|
}];
|
}
|
};
|
this.checkDetailColumns = function () {
|
var that = this;
|
var table = layui.table;
|
if(that.detailColumns==null || that.detailColumns.length==0){//如果其他地方想使用这个组件的时候,可以自定义列
|
that.detailColumns = [table.getIndexColumn(),table.getCheckColumn(),{
|
field:'userId',
|
title:'用户名',
|
width:150
|
},{
|
field:'userName',
|
title:'管理员姓名',
|
width:200
|
},{
|
field:'options',
|
title:'操作',
|
toolbar: '#toolbar_column_' + that.id
|
}];
|
}
|
};
|
this.initDetailTable = function(wareHouseOid){
|
var that = this;
|
var table = layui.table;
|
that.checkDetailColumns();//主列表中列。
|
table.render({
|
elem: '#detail_table_' + that.id,
|
id: 'detail_table_' + that.id,
|
url: that.backPath + that.url.controller + that.url.listAdmin,
|
where:{
|
wareHouseOid:wareHouseOid
|
},
|
width:550,
|
selectMode:table.selectMode.muti,
|
cols: [that.detailColumns],
|
done:function (res,curr,count) {
|
table.on('tool(detail_table_' + that.id + ')',function(obj){
|
var data = obj.data;//当前选择行的数据
|
var layEvent = obj.event;//点的是什么按钮
|
if(layEvent == 'removeLinkPerson'){
|
that.doRemoveLinkPerson([data]);
|
}
|
});
|
}
|
});
|
document.getElementById("toolbar_column_" + that.id).innerHTML = '<a class="layui-btn layui-btn-intable" lay-event="removeLinkPerson">移除</a>';
|
$webUtil.bindDefultButtonLisenter(that, "detail_table_" + that.id);
|
};
|
this.loadLinkAdmin = function (warehouseOid) {
|
var that = this;
|
layui.table.reload('detail_table_' + that.id,{
|
where:{
|
wareHouseOid:warehouseOid
|
}
|
});
|
};
|
this.ADD=function(){
|
var that = this;
|
that.addOrEdit(false);
|
};
|
this.EDIT = function () {
|
var that = this;
|
that.addOrEdit(true);
|
};
|
this.addOrEdit = function(edit){
|
var that = this;
|
var filter ="addForm_" + that.id;
|
var form = layui.form;
|
var oid;
|
if(edit){
|
//先获取数据
|
oid = $webUtil.getOidFromGrid("table_" + that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
}
|
var selectRowData = layui.table.checkStatus("table_" + that.id);
|
var addSaveIndex = layer.open({
|
type:1,
|
title:edit?'修改库房档案':'添加库房档案',
|
btn:['保存','取消'],//,'保存新增'],
|
skin:'layui-layer-lan',
|
content:'<form id="form_' + filter + '" lay-filter="' + filter + '" class="layui-form" style="margin-top:5px" ></form>',
|
area:['850px','510px'],
|
closeBtn:2,
|
shade:true,
|
shadeClose:true,
|
resize:true,
|
resizing:function(layero){
|
form.doResize(filter);
|
},
|
success:function(layero){
|
form.addItems(filter,that.getFormItems(), function(){
|
//新增的时候,把左侧选择的节点需要添加在库房类别上
|
if(!edit) {
|
var values = {};
|
if($webUtil.isNotNull(that.currentItemOid) && that.currentItemAttributes){
|
values = {
|
pkWarehouseClassify:that.currentItemAttributes.oid,
|
pkWarehouseClassifyText:that.currentItemAttributes.name,
|
warehouseClassifyId:that.currentItemAttributes.id
|
}
|
}
|
values['pkDepartment'] = $webUtil.getSystemVar($webUtil.systemValueKey.deptOid);
|
values['pkDepartmentName'] = $webUtil.getSystemVar($webUtil.systemValueKey.deptName);
|
form.setValues(values, filter);
|
}else{
|
//修改的时候就需要把整个数据添加进去
|
form.setValues(selectRowData.data[0], filter);
|
}
|
},{},{defaultColumnOneRow:2,inDialog:true});
|
},
|
yes:function(layero){
|
if(form.validata(filter)){
|
var values = form.getValues(filter,true);
|
$webUtil.ajax(edit?'put':'post',that.url.controller + (edit?that.url.edit:that.url.add),values,function(result){
|
if(result.success){
|
if($webUtil.isNull(result.msg)){
|
result.msg = edit?"修改库房成功":'添加库房成功';
|
}
|
$webUtil.showMsg(result.msg);
|
layer.close(addSaveIndex);
|
that.refresh(that.currentItemOid);
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function (xhr,error) {
|
$webUtil.showErrorMsg("维护库房的信息的时候出现了错误");
|
},that.backPath);
|
}
|
},
|
btn2:function(layero){
|
layer.close(addSaveIndex);
|
that.refresh(that.currentItemOid);
|
}
|
});
|
};
|
this.DEL = function(){
|
var that = this;
|
var oid = $webUtil.getOidFromGrid("table_" + that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
$webUtil.showConfirmMsg("您确定要删除这个库房吗,如果库房中已经存在业务数据将不能被删除",function () {
|
that.doOperaData(oid,that.url.controller + that.url.deleteUrl,'删除成功',true,true);
|
});
|
};
|
this.ENABLE = function(){
|
var that = this;
|
var oid = $webUtil.getOidFromGrid("table_" + that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
$webUtil.showConfirmMsg("是否同时启用下级库房", function () {
|
that.doOperaData(oid,that.url.controller + that.url.enabled,'启用成功', false, true);
|
}, function () {
|
that.doOperaData(oid,that.url.controller + that.url.enabled,'启用成功', false, false);
|
});
|
};
|
this.DISABLE = function(){
|
var that = this;
|
var oid = $webUtil.getOidFromGrid("table_" + that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
$webUtil.showConfirmMsg("是否同时停用下级库房", function () {
|
that.doOperaData(oid,that.url.controller + that.url.disabled,'停用成功', false, true);
|
}, function () {
|
that.doOperaData(oid,that.url.controller + that.url.disabled,'停用成功', false, false);
|
});
|
};
|
this.doOperaData = function (oid,url,msg,deleteFlag,cascade) {
|
var that = this;
|
$webUtil.ajax(deleteFlag?'delete':'post',url,{
|
oid:oid,
|
cascade:cascade
|
},function(result){
|
if(result.success){
|
if($webUtil.isNull(result.msg)){
|
result.msg = msg;
|
}
|
$webUtil.showMsg(msg);
|
that.refresh(that.currentItemOid);
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function(xhr,error){
|
$webUtil.showErrorMsg("请求服务出现了错误,可能是因为服务器被关闭,网络连接失败或者程序错误");
|
},that.backPath);
|
};
|
this.refresh = function(classifyOid,warehouseOid){
|
var that = this;
|
if($webUtil.isNull(classifyOid) && $webUtil.isNull(warehouseOid)){
|
layui.tree.reload("tree_" + that.id);
|
that.currentItemOid = null;
|
that.currentItemAttributes = null;
|
}
|
if($webUtil.isNotNull(classifyOid)){
|
layui.table.reload("table_" + that.id);
|
}
|
if($webUtil.isNotNull(warehouseOid)) {
|
layui.table.reload("detail_table_" + that.id);
|
}
|
};
|
this.getFormItems = function(){
|
var that = this;
|
return [{
|
field: 'id',
|
text: '库房编号',
|
required:true
|
}, {
|
field: 'name',
|
text: '库房名称',
|
required:true
|
},{
|
field:'pkWarehouseClassify',
|
text:'所属库房类别',
|
type:'refer',
|
required:true,
|
showField:'pkWarehouseClassifyText',
|
referConfig:{
|
type:'tree',
|
url: that.url.referClassifyTree,
|
backPath:that.backPath,
|
textField:'name',
|
valueField:'oid',
|
isMuti:false
|
}
|
}, {
|
field: 'address',
|
text: '库房地址'
|
},{
|
field:'hearder',
|
text:'库房负责人'
|
}, {
|
field: 'tel',
|
text: '联系电话'
|
},{
|
field: 'parentWarehouse',
|
text: '上级库房',
|
type:'refer',
|
showField:'parentWarehouseText',
|
referConfig:{
|
type:'tree',
|
url:that.url.controller + that.url.referWarehouse,
|
backPath:that.backPath,
|
textField:'id,name',
|
valueField:'oid',
|
extraParams: {
|
pkWarehouseClassify:that.currentItemOid
|
},
|
useFormKey:'pkWarehouseClassify',
|
isMuti:false
|
}
|
}, {
|
field: 'pkDepartment',
|
text: '管理部门',
|
type:'refer',
|
showField:'pkDepartmentName',
|
referConfig:{
|
type:layui.vciAlias.referRegister.departmentRefer
|
}
|
},layui.vciWebComboxStore.getSecretObject(that.controlSecret)];
|
};
|
this.LINKUSER = function() {
|
var that = this;
|
//设置管理员
|
var table = layui.table;
|
var oid = $webUtil.getOidFromGrid("table_" +that.id,true,true);
|
if(!oid){
|
return false;
|
}
|
var sendPerIndex = layer.open({
|
type:1,
|
title:'选择管理员添加到库房',
|
btn:['确定','取消'],
|
skin:'layui-layer-lan',
|
content:'<div id="inkperson_'+that.id+'" class="demo-transfer"></div>',
|
area:['500px','610px'],
|
closeBtn:2,
|
shade:true,
|
shadeClose:true,
|
resize:false,
|
yes:function(layero){
|
var getData = layui.transfer.getData('linkuser_'+that.id);
|
var userOids = [];
|
if(getData && getData.length > 0){
|
for(var i = 0 ; i < getData.length ; i ++){
|
var value = getData[i]["value"];
|
if(!value || value == "undefined"){
|
value = "";
|
}
|
userOids.push(value);
|
}
|
}
|
if(userOids.length == 0){
|
$webUtil.showAutoMsg("请先选择管理员后再点击【确定】按钮");
|
return false;
|
}
|
var submitValues = {
|
f_oid:oid
|
};
|
for(var i = 0 ; i < userOids.length ; i ++){
|
submitValues['t_oid[' + i + ']'] = userOids[i];
|
}
|
$webUtil.post(that.url.controller + that.url.linkUser,submitValues,function(result){
|
if(result.success){
|
if($webUtil.isNull(result.msg)){
|
result.msg = "添加管理员成功";
|
}
|
$webUtil.showMsg("添加管理员成功");
|
layer.close(sendPerIndex);
|
that.refresh(null,oid);
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function(xhr,err){
|
$webUtil.showErrorMsg("执行保存管理员的时候出现了错误");
|
},that.backPath);
|
},
|
btn2:function(index,layero){
|
layer.close(sendPerIndex);
|
},
|
success:function(layero){
|
//从后台获取到用户的信息,然后添加到穿梭框中
|
var linkedUsers = table.checkStatus("detail_table_" + that.id);
|
var queryMap = {
|
limit:-1
|
};
|
if(linkedUsers && linkedUsers.data && linkedUsers.data.length >0){
|
var linkedUserOids = [];
|
layui.each(linkedUsers.data,function(_index,_item){
|
linkedUserOids.push("'" + _item.toid + "'");
|
});
|
queryMap['conditionMap["oid"]'] = "\\NOTIN(" + linkedUserOids.join(",") + ")";
|
}
|
$webUtil.get( that.url.unLinkUser,queryMap,function(result){//获取穿梭框的管理员
|
if(result.success){
|
layui.transfer.render({
|
elem: '#inkperson_'+that.id
|
,data: result.data
|
,width:200
|
,height:500
|
,id:'linkuser_'+that.id//索引
|
,parseData: function(res){
|
return {
|
"value": res.oid //数据值
|
,"title": (res.id + " " + res.name)//数据标题
|
}
|
}
|
,title: ['未选管理员', '已选管理员']
|
,showSearch: true
|
})
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function(xhr,err){
|
$webUtil.showErrorMsg("执行保存管理员的时候出现了错误");
|
},that.backPath,true);
|
|
}
|
});
|
};
|
this.REMOVEUSER = function () {
|
var that = this;
|
var oid = $webUtil.getOidFromGrid("detail_table_" +that.id,true,false);
|
if(!oid){
|
return false;
|
}
|
var selectData = layui.table.checkStatus("detail_table_" +that.id);
|
that.doRemoveLinkPerson(selectData.data);
|
};
|
this.doRemoveLinkPerson = function(records){
|
var that = this;
|
//执行移除,和最后一列显示的一样
|
if(!records){
|
return false;
|
}
|
if(!$webUtil.isArray(records)){
|
records = [records];
|
}
|
var oids = "";
|
layui.each(records,function(_index,_item){
|
oids += _item.oid + ",";
|
});
|
oids = layui.util.removeComma(oids);
|
$webUtil.showConfirmMsg("您是否确定移除这" + records.length + "个管理员?",function(){
|
$webUtil.deleteRequest(that.url.controller +that.url.removeLinkUser,{warehouseAdminOids:oids},function(result){
|
if(result.success){
|
if($webUtil.isNull(result.msg)){
|
result.msg = "移除成功";
|
}
|
$webUtil.showMsg(result.msg);
|
that.refreshUser();
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function(xhr,error){
|
$webUtil.showErrorMsg("移除管理员出错,可能是服务器无法连接")
|
},that.backPath);
|
});
|
};
|
this.refreshUser = function(){
|
var that = this;
|
layui.table.reload("detail_table_" + that.id);
|
};
|
};
|
var c = new Class();
|
exports(c.MODELNAME,c);
|
});
|