/**
|
* 库房类型
|
* 可以增加上下级
|
* @author weidy@2019-11-26
|
*/
|
layui.define(['layer','element','form','table','util'],function(exports){
|
var Class = function(){
|
this.MODELNAME = "platform/basedoc/BdWarehouseClassify";
|
this.moduleKey = "BdWarehouseClassify";
|
this.id='BdWarehouseClassify';
|
this.sourceData={};
|
this.columns = [];
|
this.backPath = configData.compatibility?path:configData.frameworkPath;//默认流程和项目的路径是一样的
|
this.url = {
|
controller: '/warehouseClassifyController/',
|
storeType:'getAllWarehouseClassify',
|
add:'addWarehouseClassify',
|
edit:'editWarehouseClassify',
|
del:'delWarehouseClassify',
|
checkIsDelete:'checkIsCanDelete',
|
star:'enableWarehouseClassify',
|
stop:'disableWarehouseClassify',
|
referTree:'referTree'
|
};
|
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(){
|
return this.getTableHtml() ;
|
};
|
this.init=function(){
|
var that = this;
|
$webUtil.copyConfig(that,that.moduleKey);
|
var buttonIdPrefix = that.id;
|
$webUtil.createButtonHtmlEx(that.sourceData,that.buttonIconMap,$('[layui-filter="toolbar_' + that.id + '"]'),that.id,[],[],function(buttons,hasViewRight,hasQueryRight) {
|
//初始化树界面
|
var filter= that.id;
|
var scrollHeight = window.innerHeight;
|
var treeUL = $('[layui-filter="tree_' + filter + '"]');
|
var treeHeight = scrollHeight - 200;
|
treeUL.parent().height(treeHeight);
|
layui.tree.init("tree_" + filter,$('[layui-filter="tree_' + filter + '"]'),{
|
url:that.url.controller + that.url.storeType,
|
backPath:that.backPath,
|
showSearch:true,
|
loadType:layui.tree.loadType.all,
|
treeFilter:that.id,
|
treeName:'storeType',
|
click:function(item,elem,options){
|
that.currentItemOid = item.oid;
|
that.currentItemAttributes = item.attributes;
|
that.showItemInfo(item.attributes,filter);
|
}
|
});
|
//初始化form
|
|
layui.form.addItems("form_" +filter,that.getFormItems(true),function(){
|
|
},null,{
|
defaultColumnOneRow:2,defaultLabelWidth:120
|
});
|
$webUtil.bindDefultButtonLisenter(that,that.id);
|
});
|
};
|
this.getTableHtml = function(){
|
var that = this;
|
var html = [
|
'<div layui-filter="toolbar_',that.id, '" class="layui-btn-container" vci-permission-config="type:button;default-premission:true">',//主列表的按钮
|
'<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+ '_STAR"><i class="layui-icon layui-icon-ok-circle"></i>启用</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_'+ that.id+ '_STOP"><i class="layui-icon layui-icon-404"></i>停用</button>',
|
'<button class="layui-btn layui-btn-sm" layui-filter="toolbar_'+ that.id+ '_refresh" vci-premisson="false"><i class="layui-icon layui-icon-refresh"></i>刷新</button>',
|
'</div>',
|
'<div class="layui-layout" style="display:block;">',
|
'<div style="width:300px;float: left;background-color:#ffffff">',
|
'<label class="layui-icon layui-icon-tree" style="line-height: 20px;color:red;font-size:20px;">库房类型</label>',
|
'<ul layui-filter="tree_',that.id,'" style="border:1px solid #6886ff;overflow-x:auto"><ul>',
|
'</div>',
|
'<div class="layui-layout-border" style="display:block;position:fixed;float:right;margin-top:0px;margin-left:305px;">',
|
'<div class="layui-center">',
|
'<form class="layui-form" lay-filter="form_',that.id,'"></form>',
|
'</div>',
|
'</div>',
|
'</div>'];
|
return html.join("");
|
};
|
this.showItemInfo=function(attributes,filter){
|
var that = this;
|
if(attributes){
|
var values = attributes;
|
try{
|
var form = layui.form;
|
form.clear("form_" + filter);
|
if(values.lcStatus == 'Enabled'){
|
values.lcStatusText = "启用";
|
}else{
|
values.lcStatusText = "停用";
|
}
|
form.setValues(values,"form_" + filter);//不需要转换对象,因为attributes已经是对象格式了
|
}catch (e){
|
$webUtil.showDebugMsg(e);
|
}
|
}
|
};
|
this.getFormItems = function(readOnly){
|
var that = this;
|
var formItems = [{
|
type:'text',
|
name:'id',
|
readOnly:readOnly,
|
required:true,
|
verify:'letter',
|
text:'内部标识(唯一)'
|
},{
|
type:'text',
|
name:'name',
|
readOnly:readOnly,
|
required:true,
|
text:'分类名称'
|
},{
|
type:'combox',
|
name:'warehouseType',
|
text:'库房物品类别',
|
required:true,
|
comboxKey:'invMaterialType'
|
// data:[{key:'1',value:'物料/材料/成品/标准件'},{key:'2',value:'工刀器量/设备/工装'}]
|
},{
|
type:'text',
|
name:'lcStatusText',
|
readOnly:true,
|
hidden:!readOnly,
|
text:'状态'
|
},{
|
type:'refer',
|
text:'上级分类',
|
hidden:readOnly,
|
name:'parentWarehouseClassify',
|
showField:'parantWarehouseClassifyName',
|
referConfig:{
|
type:'tree',
|
url:that.url.controller + that.url.referTree,
|
backPath:that.backPath,
|
textField:'name',
|
valueField:'oid',
|
isMuti:false
|
}
|
}];
|
return formItems;
|
};
|
this.ADD = function(){
|
var that = this;
|
that.dealData(true);
|
};
|
this.EDIT = function(){
|
var that = this;
|
that.dealData(false)
|
};
|
this.DEL = function(){
|
var that = this;
|
that.operaData(that.url.controller + that.url.del,'删除成功',true);
|
};
|
this.STAR = function(){
|
var that = this;
|
that.operaData(that.url.controller + that.url.star,'启用成功');
|
};
|
this.STOP = function(){
|
var that = this;
|
that.operaData(that.url.controller + that.url.stop,'停用成功');
|
};
|
this.operaData = function(url,msg,deleteFlag){
|
var that = this;
|
if($webUtil.isNull(that.currentItemOid)){
|
$webUtil.showErrorMsg("请从库房类型树上选择节点");
|
return;
|
}
|
if(deleteFlag){
|
$webUtil.showConfirmMsg("您确定要删除这个库房基本分类吗,如果库房中已经使用了这个分类将不能被删除.如果存在下级节点会一起删除",function () {
|
var submitValue= {
|
oid:that.currentItemOid,
|
ts:that.currentItemAttributes.ts
|
};
|
$webUtil.post(that.url.controller + that.url.checkIsDelete,submitValue,function(result){
|
if(result.success){
|
if('true' == result.obj || result.obj == true){
|
$webUtil.showConfirmMsg("当前库房基本分类存在下级分类,你要连同下级分类一起删除吗?",function () {
|
that.doDelete(submitValue);
|
});
|
}else{
|
that.doDelete(submitValue);
|
}
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function(xhr,error){
|
$webUtil.showErrorMsg("在判断是否可以删除的时候出现了错误,可能是链接服务出现了错误");
|
},that.backPath);
|
});
|
}else {
|
$webUtil.showConfirmMsg("是否子节点也一同处理", function () {
|
that.doOperaData(url, msg, deleteFlag, true);
|
}, function () {
|
that.doOperaData(url, msg, deleteFlag, false);
|
});
|
}
|
};
|
this.doDelete = function(submitValues){
|
var that = this;
|
$webUtil.deleteRequest(that.url.controller + that.url.del,submitValues,function(result){
|
if(result.success){
|
$webUtil.showMsgFromResult(result,"删除成功");
|
that.refresh();
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function (xhr,err) {
|
$webUtil.showErrorMsg("执行删除的时候出错了错误,可能是服务器暂时无法访问");
|
},that.backPath);
|
};
|
this.doOperaData = function (url,msg,deleteFlag,cascade) {
|
var that = this;
|
$webUtil.ajax(deleteFlag?'delete':'post',url,{
|
oid:that.currentItemOid,
|
cascade:cascade
|
},function(result){
|
if(result.success){
|
$webUtil.showMsg(msg);
|
|
that.refresh();
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function(xhr,error){
|
$webUtil.showErrorMsg("请求服务出现了错误,可能是因为服务器被关闭,网络连接失败或者程序错误");
|
},that.backPath);
|
};
|
this.dealData = function(add){
|
var that = this;
|
if(!add && $webUtil.isNull(that.currentItemOid)){
|
$webUtil.showErrorMsg("请从库房类型(分类)树上选择节点");
|
return;
|
}
|
var form = layui.form;
|
var filter ="addform_" + that.id;
|
var addstore = layer.open({
|
type:1,
|
title:add?'添加库房分类':'修改库房分类',
|
btn:['保存','取消'],
|
skin:'layui-layer-lan',
|
content:'<form id="' + filter + '" lay-filter="' + filter + '" class="layui-form" style="margin-top:5px" ></form>',
|
area:['850px','350px'],
|
closeBtn:2,
|
shade:true,
|
shadeClose:true,
|
resize:true,
|
success:function(layero) {
|
form.addItems(filter,that.getFormItems(false),
|
function () {
|
if(!add){
|
form.setValues(that.currentItemAttributes,filter);
|
}else{
|
if($webUtil.isNotNull(that.currentItemOid)) {
|
form.setValues({
|
"parentWarehouseClassify": that.currentItemOid,
|
"parantWarehouseClassifyName": that.currentItemAttributes.name,
|
"warehouseType":that.currentItemAttributes.warehouseType
|
}, filter);
|
}
|
}
|
}, {}, {defaultColumnOneRow: 2});
|
},
|
yes:function(layero){
|
var values = form.getValues(filter);
|
var reg = new RegExp("^[A-Za-z]+$");
|
if (!reg.test(values.id)){
|
$webUtil.showErrorMsg("内容标识应为纯英文");
|
return false;
|
}
|
if(!add) {
|
values.oid = that.currentItemOid;
|
values.ts = that.currentItemAttributes.ts
|
}
|
var url = that.url.controller + (add?that.url.add:that.url.edit);
|
$webUtil.ajax(add?"post":"put",url,values,function(result){
|
if(result.success){
|
var msg = add?"添加成功":'修改成功';
|
$webUtil.showMsgFromResult(result,msg);
|
layer.close(addstore);
|
that.refresh();
|
}else{
|
$webUtil.showErrorMsg(result.msg);
|
}
|
},function(xhr,err){
|
$webUtil.showErrorMsg("请求服务出现了错误,可能是因为服务被关闭,或者程序的问题");
|
},that.backPath)
|
},
|
btn2:function(layero){
|
layer.close(addstore);
|
that.refresh();
|
}
|
});
|
};
|
this.refresh = function(parentNodeOid){
|
//刷新
|
var that = this;
|
var tree = layui.tree;
|
if(parentNodeOid && parentNodeOid !='refresh'){
|
tree.reloadNode("tree_" + that.id,parentNodeOid);
|
}else {
|
that.selectTreeOid = null;
|
that.selectTreeAttribute = null;
|
tree.reload("tree_" + that.id);
|
}
|
}
|
};
|
var cs = new Class();
|
exports(cs.MODELNAME,cs);
|
});
|