/** * 库房类型 * 可以增加上下级 * @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); });