/**
* 物料/工具基本分类
* @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);
});