/**
* 库房类型
* 可以增加上下级
* @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 = [
'
',//主列表的按钮
'',
'',
'',
'',
'',
'',
'
',
''];
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:'',
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);
});