/**
|
* 物料/工具基本分类
|
* @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(),
|
'<div class="layui-layout" style="display:block;overflow-y: hidden">',
|
'<div class="layui-vci-tree" style="width:400px;float: left;background-color:#ffffff;overflow-y: auto;">',
|
'<label class="layui-icon layui-icon-tree" style="line-height: 20px;color:red;font-size:20px;">物料/工具基本分类</label>',
|
'<ul layui-filter="tree_',that.id,'" style="overflow-x: auto;"><ul>',
|
'</div>',
|
'<div class="layui-layout-border" style="display:block;margin-top:0px;margin-left:405px;">',
|
'<div class="layui-center" style="overflow-y:auto;">',
|
'<form class="layui-form" lay-filter="form_',that.id,'"></form>',
|
'</div>',
|
'</div>',
|
'</div>'
|
].join("");
|
return html;
|
};
|
this.getToolbarHtml =function(){
|
var that = this;
|
return ['<div layui-filter="toolbar_',that.id, '" class="layui-btn-container">',//主列表的按钮
|
'<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"><i class="layui-icon layui-icon-refresh"></i>刷新</button>',
|
'</div>'].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: '<form id="form_' + filter + '" lay-filter="' + filter + '" class="layui-form" style="margin-top:5px" ></form>',
|
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);
|
});
|