/** * 物料/工具基本分类 * @author weidy@2020/3/13 */ layui.define(['layer','element','form','table','util'],function(exports){ var Class = function(){ this.MODELNAME = "platform/basedoc/BdMaterialClassify"; this.moduleKey = "BdMaterialClassify"; this.id = 'BdMaterialClassify'; this.sourceData = {}; this.columns = []; this.backPath = configData.compatibility?path:configData.frameworkPath;//默认流程和项目的路径是一样的 this.url={ controller:'materialClassifyController/', classifyTree:'treeMaterialClassify', add:'addMaterialClassify', edit:'editMaterialClassify', checkIsDelete:'checkIsCanDelete', deleteUrl:'delMaterialClassify', disableUrl:'disableMaterialClassify', enableUrl:"enableMaterialClassify", referTree:'referTree', referBtmType:'btmTypeController/referDataGridNotPlatform' }; 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(){ var that = this; var html = ""; html = [ that.getToolbarHtml(), '
', '
', '', '
', '
', '
', '
', '
', '
', '
' ].join(""); return html; }; this.getToolbarHtml =function(){ var that = this; return ['
',//主列表的按钮 '', '', '', '', '', '', '
'].join(""); }; this.init=function(){ //基础的html被添加后,再执行初始化 var that = this; $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.controller + that.url.classifyTree, backPath: that.backPath, extraParams: { isMuti: false, isQueryAllColumn: true }, showSearch:true, click: function (item, elem, options) { that.currentItemOid = item.oid; that.currentItemAttributes = item.attributes; that.setFormValues(that.currentItemAttributes); }, done: function (thisFilter) { that.initForm(); } }); }; this.initForm = function(){ var that = this; var form = layui.form; form.addItems("form_" + that.id, that.getFormItems(true), function () { }, {}, { defaultColumnOneRow: 1, labelWidth: 200 }); }; this.setFormValues = function (attributes) { var that = this; if(attributes){ try{ var form = layui.form; form.clear("form_" + that.id,true); form.setValues(attributes,"form_" + that.id);//不需要转换对象,因为attributes已经是对象格式了 }catch (e){ $webUtil.showDebugMsg(e); } } }; this.getFormItems = function(onlyShow){ var that = this; return [{ field: 'id', text: '物料/工具分类编号', required:true, readOnly: onlyShow }, { field: 'name', text: '物料/工具分类名称', required:true, readOnly: onlyShow },{ name:'extendAttrFlag', text:'包含扩展属性', type:'truefalse' },{ name:'extendAttrStoreBtm', text:'扩展属性业务类型', type:'refer', showField:'extendAttrStoreBtmName', referConfig:{ type:'grid', backPath:configData.objectServicePath, url:that.url.referBtmType, textField:'id,name', valueField:'id', isMuti:false, where:{ 'id':'material*' }, tableConfig:{ page:{ limit:15, page:1 }, cols:that.getBtmTypeReferColumns(), method:'get', queryColumns:[{ field:'id', title:'业务类型英文名称' },{ field:'name', title:'业务类型名称' }] } } },{ name:'parentToolClassify', text:'上级分类', type:'refer', showField: 'parentToolClassifyName', referConfig:{ type:'tree', url:that.url.controller + that.url.referTree, backPath:that.backPath, textField:'id,name', valueField:'oid', isMuti:false } },{ name:'description', text:'备注' },{ field: 'lcStatusText', text: '状态', readOnly: true, hidden:!onlyShow }]; }; this.getBtmTypeReferColumns = function () { var that = this; var table = layui.table; return [table.getIndexColumn(),table.getCheckColumn(),{ field:'id', text:'英文名称' },{ field:'name', text:'中文名称' }] }; this.ADD = function(){//保存 var that = this; that.addOrEdit(true); }; this.EDIT = function(){ var that = this; that.addOrEdit(false); }; this.addOrEdit = function (add) { var that = this; if(!add && $webUtil.isNull(that.currentItemOid)){ $webUtil.showErrorMsg("请先选择一个物料/工具基本分类"); return false; } var filter = "addOrEdit_" + that.id; var form = layui.form; var addSaveIndex = layer.open({ type: 1, title: add?'新增物料/工具基本分类':'修改物料/工具基本分类', btn: ['保存', '取消'], skin: 'layui-layer-lan', content: '
', area: ['900px', '500px'], closeBtn: 2, shade: true, shadeClose: true, resize: true, resizing: function (layero) { form.doResize(filter); }, success: function (layero) { form.addItems(filter,that.getFormItems(false), function () { if(add){ //添加的时候,如果选择了节点,那么选择的节点就是当前的上级节点 if($webUtil.isNotNull(that.currentItemOid)){ form.setValues({ parentToolClassify:that.currentItemOid, parentToolClassifyName:(that.currentItemAttributes.id + " " + that.currentItemAttributes.name), extendAttrStoreBtm:that.currentItemAttributes.extendAttrStoreBtm, extendAttrStoreBtmName:that.currentItemAttributes.extendAttrStoreBtmName },filter); }else{ form.setValues({},filter); } }else{ form.setValues(that.currentItemAttributes,filter); } } , {} , { defaultColumnOneRow: 2 }); }, yes:function(layero){ if(form.validata(filter)){ var formValues = form.getValues(filter,true); if(!"extendAttrFlag" in formValues || $webUtil.isNull(formValues['extendAttrFlag'])){ formValues['extendAttrFlag'] = false; } $webUtil.ajax(add?'post':'put',that.url.controller + (add?that.url.add:that.url.edit),formValues,function (result) { if(result.success){ $webUtil.showMsgFromResult(result,add?"新增物料/工具基本分类成功":"修改物料/工具基本分类成功"); that.refresh(that.currentItemOid); layer.close(addSaveIndex); }else{ $webUtil.showErrorMsg(result.msg); } },function (xhr,error) { $webUtil.showErrorMsg("访问服务器出现了错误,可能服务器没有开启,或者连接失败"); },that.backPath); } }, btn2:function(layero){ that.refresh(); layer.close() } }); }; this.DEL= function(){ var that = this; if($webUtil.isNull(that.currentItemOid)){ $webUtil.showErrorMsg("请先选择一个分类的节点"); return false; } var ts = that.currentItemAttributes.ts; $webUtil.showConfirmMsg("是否删除这个物料/工具基本分类?如果被物料/工具基本信息引用将不能被删除!",function () { var submitValue = {oid:that.currentItemOid,ts:ts}; $webUtil.post(that.url.controller + that.url.checkIsDelete,submitValue,function(result){ if(result.success){ if('true' == result.obj || true == result.obj){ $webUtil.showConfirmMsg("当前分类包含有下级分类,要删除的话会和下级分类一起删除,你确认继续?",function () { that.doDelete(submitValue); }); }else{ //说明可以删除 that.doDelete(submitValue); } }else{ $webUtil.showErrorMsg(result.msg); } },function (xhr,error) { $webUtil.showErrorMsg("校验删除出现了错误,可能是服务器未启动") },that.backPath); }); }; this.doDelete = function (submitValue) { var that = this; $webUtil.deleteRequest(that.url.controller + that.url.deleteUrl,submitValue,function(result){ if(result.success){ $webUtil.showMsgFromResult(result,"删除成功"); that.refresh(); }else{ $webUtil.showErrorMsg(result.msg); } },function (xhr,err) { $webUtil.showErrorMsg("执行删除的时候出错了错误,可能是服务器暂时无法访问"); },that.backPath); }; this.STAR = function(){ var that = this; if($webUtil.isNull(that.currentItemOid)){ $webUtil.showErrorMsg("请先选择一个分类的节点"); return false; } that.operaData(that.url.controller +that.url.enableUrl,{oid:that.currentItemOid,ts:that.currentItemAttributes.ts},'启用成功') }; this.STOP = function(){ var that = this; if($webUtil.isNull(that.currentItemOid)){ $webUtil.showErrorMsg("请先选择一个分类的节点"); return false; } that.operaData(that.url.controller +that.url.disableUrl,{oid:that.currentItemOid,ts:that.currentItemAttributes.ts},'停用成功') }; this.operaData = function(url,submitValue,msg){ var that = this; if($webUtil.isNull(that.currentItemOid)){ return false; } $webUtil.showConfirmMsg("子节点是否一起操作?",function(){ submitValue['cascade'] = true; $webUtil.post(url,submitValue,function(result){ if(result.success){ $webUtil.showMsgFromResult(result,msg); that.refresh(); }else{ $webUtil.showErrorMsg(result.msg); } },function (xhr,err) { $webUtil.showErrorMsg("执行的时候出错了错误,可能是服务器暂时无法访问"); },that.backPath) },function(){ $webUtil.post(url,submitValue,function(result){ if(result.success){ $webUtil.showMsgFromResult(result,msg); that.refresh(); }else{ $webUtil.showErrorMsg(result.msg); } },function (xhr,err) { $webUtil.showErrorMsg("执行的时候出错了错误,可能是服务器暂时无法访问"); },that.backPath); }); }; this.refresh = function(parentNodeOid){ var that = this; var tree = layui.tree; if($webUtil.isNotNull(parentNodeOid)){ tree.reloadNode("tree_" + that.id,parentNodeOid); }else { tree.reload("tree_" + that.id); } }; }; var cs = new Class(); exports(cs.MODELNAME,cs); });