/**
* Created by weidy on 2018/5/18
* 发起流程
*/
layui.define(['layer','form','vciWebComboxStore'],function(exports){
var StartProcess = function(){
this.moduleKey = "vciWebStartProcess";
this.backPath = configData.compatibility ? path : configData.processServicePath ;//默认流程和项目的路径是一样的
this.url = {
getTemplate :'processDefineController/getTemplateByType',
getFavData:'wFWorkflowNodeFavController/listNodeFavByWorkflowTemplate',//收藏方案列表
addFav:'wFWorkflowNodeFavController/addSave',//收藏
editFav:'wFWorkflowNodeFavController/editSave',//编辑收藏方案
delFav:'wFWorkflowNodeFavController/deleteData',//删除收藏
getFavByOid:'wFWorkflowNodeFavController/listNodeFavItemVOBySchema',//根据方案的主键获取明细
getNode: 'processDefineController/getAllProcessNode',
startProcess:'webProcessCommandController/startProcess',
checkDataSecret:'webDataRightController/checkDataSecret',
checkAttribute:'webProcessCommandController/checkAttributesOnStartProcess'//发起流程时校验数据的属性是否符合要求
};
this.autoProcessSeparator = "_";
this.requiredProcessName = true;
this.requiredAllNode = true;//是否允许全部节点都选择
this.allowMutiExecuteTask = false;//是否允许批量执行任务
};
StartProcess.prototype.getContent = function(){//获取基础的html
return "";
};
StartProcess.prototype.init = function(){//初始化
var that = this;
$webUtil.copyConfig(that,that.moduleKey);
};
/**
* 显示流程的窗口
* @param type 流程模板所在类型,与之前的项目有区别,如果type为空自动取businessData里的第一条数据的btmname
* @param businessData 业务数据,可以是对象,可以是数组,但是都必须有oid和btmname属性
* @param options 参数
* isMutiProcess批量发起流程(即发起多条);
* beforeCheck发起之前的校验事件-不推荐使用,由发起之前校验;
* tableDefineCode流程执行过程中显示数据所使用的表格;
* autoProcessSeparator 流程名称中的分隔符
* autoProcessName自动流程名称;
* title 流程窗口的名称
* width 流程窗口的宽度
* height 流程窗口的高度
* canUseTemplate 可以使用的流程模板,用逗号分隔,如果为空表示所有的内容都有
* variablesInfo 参数信息
* @param callback 完成回调函数
* @returns {boolean}
*/
StartProcess.prototype.showStartWindow=function(type,businessData,options,callback) {
var that = this;
if (!businessData || businessData.length == 0) {
$webUtil.showErrorMsg("没有数据相关的信息");
return;
}
if (!$webUtil.isArray(businessData)) {
businessData = [businessData];
}
var isMutiProcess = false;
if (options.isMutiProcess == true && businessData.length > 1) {
isMutiProcess = true;
}
if ($webUtil.isNull(type)) {
type = businessData[0].btmname;
}
if ($webUtil.isNull(type)) {
$webUtil.showErrorMsg("业务数据中没有btmname属性的值");
return false;
}
var btmType = "";
var oids = [];
var maxSecret = -1;
var processName = [];
var isReturn = false;
layui.each(businessData, function (_index, _item) {
for (var key in _item) {
_item[key.toLowerCase()] = _item[key];
}
if (!_item.btmname || $webUtil.isNull(_item.btmname)) {
$webUtil.showErrorMsg("业务数据中没有btmname属性的值");
isReturn = true;
return;
} else if (!_item.oid || $webUtil.isNull(_item.oid)) {
$webUtil.showErrorMsg("业务数据中没有oid属性的值");
isReturn = true;
return;
}
if (_item.secretgrade || _item.secretgrade * 1 > 0) {
//说明是有密级的,获取最大的密级
var secretInThisData = _item.secretgrade * 1;
if (secretInThisData > maxSecret) {
maxSecret = secretInThisData;
}
}
oids.push(_item.oid);
if(options.processName && $webUtil.isNotNull(options.processName)){
processName.push(options.processName);
}
if (options.autoProcessName && $webUtil.isNotNull(options.autoProcessName)) {
processName.push(that.doAutoName(_item, options.autoProcessName));
}
btmType = _item.btmname;
});
if (isReturn) {
return false;
}
//看看是否需要校验属性
//checkAllowProperties:'lcstatus',
//checkAllowPropertiesValue:'Working'
if (options && (options.checkAllowAttributes|| options.checkAllowAttributeValues)) {
if (!options.checkAllowAttributes) {
options.checkAllowAttributes = 'lcstatus';//默认是校验生命周期状态
}
if ($webUtil.isNull(options.checkAllowAttributeValues)) {
//不校验了
that.doCheckSecret(maxSecret, type, btmType, oids, processName, options, isMutiProcess, callback);
} else {
$webUtil.post(options.checkAttributeUrl ? options.checkAttributeUrl : that.url.checkAttribute, {
oids: oids.join(","),
btmType: btmType,
uiType:options.UIType,
attributes: options.checkAllowAttributes,
attributeValues: options.checkAllowAttributeValues
}, function (result) {
if (result.success) {
that.doCheckSecret(maxSecret, type, btmType, oids, processName, options, isMutiProcess, callback);
} else {
$webUtil.showErrorMsg(result.msg + ',' + ((options.allowAttributesMsg)?options.allowAttributesMsg:""));
return false;
}
}, function (xhr, error) {
$webUtil.showErrorMsg("校验数据属性是否可以发起流程的时候出现了错误");
$webUtil.showDebugMsg(error);
}, that.backPath);
}
} else {
that.doCheckSecret(maxSecret, type, btmType, oids, processName, options, isMutiProcess, callback);
}
};
StartProcess.prototype.doCheckSecret = function(maxSecret,type,btmType,oids,processName,options,isMutiProcess,callback){
var that = this;
if(maxSecret> -1){
//说明有密级,需要先调用后台校验一下(因为密级可能不是单纯使用数值大小比较)
$webUtil.post(that.url.checkDataSecret,{dataSecret:maxSecret},function(result){
if(result.success){
that.gotoShowWindow(type,btmType,oids,maxSecret,processName,options,isMutiProcess,callback);
}else{
$webUtil.showErrorMsg(result.msg);
}
},function(xhr,error){
$webUtil.showErrorMsg("校验数据密级的时候出现了错误");
$webUtil.showDebugMsg(error);
},that.backPath);
}else {
that.gotoShowWindow(type, btmType, oids, maxSecret, processName, options, isMutiProcess, callback);
}
};
/**
* 自动构建流程名称
* @param _item
* @param autoProcessName
* @param separator
*/
StartProcess.prototype.doAutoName = function(_item,autoProcessName,separator){
var that= this;
var name = "";
if(!separator){
separator = that.autoProcessSeparator;
}
layui.each(autoProcessName.split(","),function(index,key){
key = key.toLowerCase();
if($webUtil.startWith(key,"${static}")){
name +=key.substring("${static}".length) + separator;
}else{
var value = _item[key];
if($webUtil.isNotNull(value)){
name += value + separator;
}
}
});
if($webUtil.endWith(name,separator)){
name = name.substring(0,name.length - separator.length);
}
return name;
};
/**
* 显示流程启动窗口
* @param type 流程分类
* @param oids 所有的主键数组
* @param maxSecret 数据中最大的密级值,如果该业务类型里没有密级字段,这个值为-1
* @param processName 所有的流程名称
* @param options 参数,与showStartWindow里的参数相同
* @param isMutiProcess 是否批量发起流程
* @param callback 完成后的回调函数
*/
StartProcess.prototype.gotoShowWindow = function(type,btmType,oids,maxSecret,processName,options,isMutiProcess,callback){
var that = this;
var form = layui.form;
var table = layui.table;
var formId = "start_process_form_" + oids[0];
var title = (options.title && $webUtil.isNotNull(options.title))?options.title:"启动流程";
var isMutiProcessAndHasName = false;//是批量发起,而且每个数据都有名称;
var thisProcessName = "";
if(isMutiProcess && processName && processName.length>0 && $webUtil.isNotNull(processName[0])){
thisProcessName = "批量发起流程,系统自动生成流程名称";
isMutiProcessAndHasName = true;
}else if( processName && processName.length>0 && $webUtil.isNotNull(processName[0])){
thisProcessName = processName[0];
}
that.loadTemplated = false;
var startProcessWindowIndex = layer.open({
type:1,
title:title,
btn:['启动流程','取消'],
//skin:'layui-layer-lan',
content:'
' +
''+
'
' +
''+
'',
area:[(($webUtil.isNotNull(options.width) && options.width*1>1) ?options.width*1 : 920) +'px',
(($webUtil.isNotNull(options.height) && options.height*1>1) ?options.height*1 : 600) + 'px'],
closeBtn:1,
shade:true,
shadeClose:true,
resize:true,
resizing:function(layero){
form.doResize();
},
yes:function(index,layero){
if(form.validata(formId) && form.validata("processNode_" + formId)){
that.doStartProcess(formId,btmType,oids,processName,isMutiProcess,options,startProcessWindowIndex,callback);
}
},
btn2:function(index,layero){
layer.close(startProcessWindowIndex);
if(callback){
callback(false);
}
},
cancel:function(index,layero){
if(callback){
callback(false);
}
},
success:function(layero){
var formItems = [];
/*if(options.canUseTemplate){
var canUseTemplate=options.canUseTemplate.split(',')
var templateData = [];
layui.each(canUseTemplate,function (i,item){
templateData.push({"key":item,"value":item});
})
formItems = [{
name:'processTemplateOid',
text:'流程模板',
type:'combox',
data:templateData,
reloadCombox:true,
labelWidth:120,
textWidth:400
}];
}else{
formItems = [{
type:'combox',
name:'processTemplateOid',
text:'流程模板',
comboxKey:'processTemplate',
labelWidth:120,
textWidth:400,
reloadCombox:true,
extraParams:{
type:type,
filterTemplate:options.canUseTemplate
},
url:that.url.getTemplate
}];
}*/
formItems.push({
type:'combox',
name:'processTemplateOid',
text:'流程模板',
comboxKey:'processTemplate',
labelWidth:120,
textWidth:400,
reloadCombox:true,
extraParams:{
type:type,
filterTemplate:options.canUseTemplate
},
url:that.url.getTemplate
},{
type:'text',
name:'title',
text:'流程名称',
textWidth:400,
labelWidth:120,
required:that.requiredProcessName,
readOnly:isMutiProcessAndHasName,
value:thisProcessName
},{
type:'textArea',
name:'description',
text:'流程描述',
labelWidth:120,
textWidth:400
})
form.addItems(formId,formItems,function(elemForm){
//如果有多个模板的时候,需要显示模板名称的下拉框,否则直接显示节点内容
form.setValues({
title:thisProcessName
});
form.on('select(processTemplateOid)',function(data){
var templateOid = data.value;//是流程的主键
var selected = $(data.elem.options[data.elem.selectedIndex]);
that.currTemplateAttr=selected.data('attributes');
that.getProcessNode(templateOid,maxSecret,formId,function (){
$('#table_' + formId).parent().css({'visibility':'hidden'});
table.reload('table_' + formId,{
extraParams: {
templateOid: that.currTemplateAttr.deploymentId,
templateRevision: that.currTemplateAttr.version
}
})
});
});
var templateOid = options.templateOid || form.getValues(formId).processTemplateOid;
var selectElem=elemForm.find('select')[0];
that.currTemplateAttr=$(selectElem.options[selectElem.selectedIndex]).data('attributes');
that.getProcessNode(templateOid,maxSecret,formId,function (){
table.render({
elem: '#table_' + formId,
id: 'table_' + formId,
backPath: that.backPath,
url: that.url.getFavData,
extraParams:{
templateOid: that.currTemplateAttr.deploymentId,
templateRevision: that.currTemplateAttr.version
},
limit: Number.MAX_VALUE,
width: 345,
height:220,
selectMode:table.selectMode.single,
cols: [[{
title: '方案名称',
field: 'name',
width: 145,
edit:'text'
}, {
field: 'options',
title: '操作',
templet: function (d) {
return '编辑' +
'删除' +
'选择并发起';
}
}]],
done: function (res, cur, total) {
that.clickTool=false;
$('#table_' + formId).next('.layui-table-view').css('border-width', '0').find('.layui-table-header').hide().next('.layui-table-body').height(220).find('td').css('border-color', '#ffffff');
$('#table_' + formId).parent().css({'visibility':'visible'})
if (total > 0) {
table.on('tool(table_' + formId + ')', function (obj) {
var data = obj.data;//当前选择行的数据
var layEvent = obj.event;//点的是什么按钮
if (layEvent == 'EDIT') {
if (form.validata("processNode_" + formId)) {
that.addOrEditFav(false, formId, data.oid, data.name)
}
}
if (layEvent == 'DEL') {
that.clickTool=true;
that.DEL(data.oid, data.ts, 'table_' + formId);
}
if (layEvent == 'doStart') {
that.clickTool=true;
if(obj.tr.hasClass('layui-table-click')){
if(form.validata(formId) && form.validata("processNode_" + formId)){
that.doStartProcess(formId,btmType,oids,processName,isMutiProcess,options,startProcessWindowIndex,callback);
}
}else{
that.checkedFav(data,formId,function (){
if(form.validata(formId) && form.validata("processNode_" + formId)){
that.doStartProcess(formId,btmType,oids,processName,isMutiProcess,options,startProcessWindowIndex,callback);
}
});
}
}
return false;
});
//监听单元格编辑
table.on('edit(table_' + formId + ')', function (obj) {
var value = obj.value //得到修改后的值
, data = obj.data //得到所在行所有键值
, field = obj.field; //得到字段
if ($webUtil.isNotNull(value)) {
$webUtil.manualAjax('put', that.url.editFav, JSON.stringify({
name: value,
oid: data.oid
}), function (result) {
if (result.success) {
$webUtil.showMsg("修改成功");
layui.table.reload('table_' + formId);
} else {
$webUtil.showErrorMsg("修改失败:" + result.msg);
}
}, function () {
}, that.backPath);
} else {
$(this).parent().trigger('click')
$webUtil.showErrorMsg("方案名称不能为空");
}
layui.stope(event)
});
table.selectRecord('table_' + formId, {index: 0});
} else {
$('#table_' + formId).next('.layui-table-view ').find('.layui-none').hide()
}
},
rowClick: function (thisTableFilter, record,tr) {
if(!that.clickTool){
that.checkedFav(record, formId);
}
that.clickTool=false;
}
});
$('#btnFav_'+formId).click(function () {
if (form.validata("processNode_" + formId)) {
that.addOrEditFav(true, formId)
}
})
$('#btnclear_'+formId).click(function (){
//alert('清空')
$("#processNode_" + formId).find(".layui-clear").trigger('click')
})
});
},{},{
defaultColumnOneRow:1,
inDialog:true
});
}
});
};
/**
* 获取流程模板上的节点
* @param templateOid 模板主键
* @param maxSecret 最大的密级
* @param formId 表单的id
*/
StartProcess.prototype.getProcessNode = function(templateOid,maxSecret,formId,callback){
var that = this;
if($webUtil.isNotNull(templateOid)){
$webUtil.post(that.url.getNode,{processOid:templateOid,maxSecret:maxSecret},function(result){
if(result.success){
that.showProcessNode(result.obj,formId,callback);
}else{
$webUtil.showErrorMsg(result.msg);
}
},function(result){},that.backPath);
}
};
/**
* 显示流程节点
* @param nodes 已经获取到的节点的信息
* @param formId 表单的主键
*/
StartProcess.prototype.showProcessNode=function(nodes,formId,callback){
var that = this;
var form = layui.form;
if($webUtil.isNotNull($("#processNode_" + formId).html())){
form.removeItems("#processNode_" + formId,[],true);//清除原有的
}
var nodeItems = [];
layui.each(nodes,function(_index,_item){
var thisNodeUsers = _item.processUserVO;
var referConfig={
textField:'name',
valueField:'id',
loadType:'all',
isMuti: true,
type:"process/vciWebUserTransferRefer"
}
if(thisNodeUsers && thisNodeUsers.length>0){
var roleuserData=[];
var deptuserData=[];
var userData=[];
layui.each(thisNodeUsers,function(_userIndex,_userItem){
var item=JSON.parse(JSON.stringify(_userItem))
item.users=_userItem.children;
item.children=null;
if(item.type == "role") {
roleuserData.push(item)
}else if(item.type == "dept") {
deptuserData.push(item)
}else if(item.type == "user"){
userData.push(item)
}
});
if(roleuserData.length>0){
referConfig.displayType=['roleUserData'];
referConfig.displayTypeTitle={roleUserData:{
title:'角色',
data:roleuserData
}}
referConfig.data=null;
}
if(deptuserData.length>0){
if(referConfig.displayType){
referConfig.displayType.push('departUserData');
referConfig.displayTypeTitle.departUserData={
title:'部门',
data:deptuserData
}
}else {
referConfig.displayType=['departUserData'];
referConfig.displayTypeTitle={departUserData:{
title:'部门',
data:deptuserData
}}
}
referConfig.data=null;
}
if(userData.length>0){
if(roleuserData.length>0 || deptuserData.length>0){
referConfig.displayType.push('usersData');
referConfig.displayTypeTitle.usersData={
title:'指定用户',
data:userData
}
referConfig.data=null;
}else{
referConfig.displayType=[]
referConfig.data=userData
}
}
}else{
//没有定义用户信息,显示全部用户
referConfig.displayType=['roleUser','departUser'];
referConfig.displayTypeTitle={
roleUser:{
title:'角色',
url:'roleQueryController/refTree',
queryField:'pkRole',
queryUserUrl:'userQueryController/refDataGridByPkRole'
},
departUser:{
title:'部门',
url:'departmentQueryController/refTree',
queryField:'pkDepartment',
queryUserUrl:'userQueryController/refDataGridByPkDepartment'
}
}
}
nodeItems.push({
type: 'refer',
name: _item.name,
text: _item.name,
showField: _item.name +'name',
textWidth: 730,
labelWidth:120,
required:that.requiredAllNode,
referConfig:referConfig,
readOnly: (_index==0?true:false)
});
});
form.addItems("processNode_" + formId,nodeItems,function(){
var firstNodeName = nodes[0].name;
var values = {};
values[firstNodeName] = $webUtil.getSystemVar($webUtil.systemValueKey.userId);
var userSecretText=$webUtil.getSystemVar($webUtil.systemValueKey.userSecretText)
values[firstNodeName + "name"] = $webUtil.getSystemVar($webUtil.systemValueKey.userName)+(userSecretText?("["+ userSecretText+"]"):'') ;
form.setValues(values,"processNode_" + formId);
//form.on('select(processNode_' + formId + ')',function(data){ });
if(callback){
callback();
}
},{},{
defaultColumnOneRow:1,
inDialog:true
});
};
/**
* 校验通过后,发起流程
* @param formId
* @param startProcessWindowIndex
* @param callback
*/
StartProcess.prototype.doStartProcess = function(formId,btmType,oids,processName,isMutiProcess,options,startProcessWindowIndex,callback){
var that = this;
var layer = layui.layer;
var form = layui.form;
//从下拉菜单中去找部署的信息
var formValues = form.getValues(formId);
var nodeValues = form.getValues("processNode_" + formId);
var processTemplateOid = formValues['processTemplateOid'];
var deployid = "";
var allTemplateAttr = $("[lay-combox='processTemplate']").data('processTemplate');
if(allTemplateAttr && allTemplateAttr.length > 0){
layui.each(allTemplateAttr,function(_index,_item){
if(_item.key == processTemplateOid){
deployid = _item.attributes.deploymentId;
return;
}
});
}
if($webUtil.isNotNull(deployid)){
if(isMutiProcess){
//批量发起流程
var finishCount = 0;
layui.each(oids,function(_oidIndex,_oid){
var startData = {
deployId :deployid,
title:processName.length >_oidIndex ? processName[_oidIndex]:"",
description:formValues.description,
btmType:btmType,
uiType:options.UIType||btmType,
oids:_oid,
tableDefineCode:options.tableDefineCode,
detailInfoUrl:options.detailUrl,
content:options.content,
startStatus:options.startStatus,
resetStatus:options.resetStatus,
releaseRemoteMethod: options.releaseRemoteMethod,
resetRemoteMethod:options.resetRemoteMethod,
alwaysDisplayNext:options.alwaysDisplayNext
};
if(options.otherParam){
$.extend(startData,options.otherParam)
}
for(var key in nodeValues){
var tempObj = {};
startData[ "nodeUsers['" + key + "']"] = nodeValues[key];
}
if(options.variablesInfo){
for(var key in options.variablesInfo){
var tempObj = {};
startData[ "data['" + key + "']"] = options.variablesInfo[key];
}
}
$webUtil.post(that.url.startProcess,startData,function(result){
if(result.success){
finishCount ++;
if(finishCount == oids.size()){
$webUtil.showMsg("批量发起流程全部完成,共发起了" + finishCount + "个流程");
layer.close(startProcessWindowIndex);
if(callback){
callback(true);
}
}
}else{
$webUtil.showErrorMsg("发起失败:" + result.msg);
/*layer.close(startProcessWindowIndex);
if(callback){
callback(false);
}*/
}
},function(){},that.backPath,true);
});
}else{
var startData = {
deployId :deployid,
title:formValues.title,
description:formValues.description,
btmType:btmType,
uiType:options.UIType||btmType,
oids:oids.join(","),
tableDefineCode:options.tableDefineCode,
detailInfoUrl:options.detailUrl,
content:options.content,
startStatus:options.startStatus,
resetStatus:options.resetStatus,
releaseRemoteMethod: options.releaseRemoteMethod,
resetRemoteMethod:options.resetRemoteMethod,
alwaysDisplayNext:options.alwaysDisplayNext
};
if(options.otherParam){
$.extend(startData,options.otherParam)
}
for(var key in nodeValues){
var tempObj = {};
startData[ "nodeUsers['" + key + "']"] = nodeValues[key];
}
if(options.variablesInfo){
for(var key in options.variablesInfo){
var tempObj = {};
startData[ "data['" + key + "']"] = options.variablesInfo[key];
}
}
$webUtil.post(that.url.startProcess,startData,function(result){
if(result.success){
$webUtil.showMsg(formValues.title + "发起成功");
layer.close(startProcessWindowIndex);
if(callback){
callback(true);
}
}else{
$webUtil.showErrorMsg(formValues.title + "发起失败:" + result.msg);
/*layer.close(startProcessWindowIndex);
if(callback){
callback(false);
}*/
}
},function(){},that.backPath,true);
}
}else{
$webUtil.showErrorMsg("数据错误,没有获取到流程模板的部署主键");
}
};
/**
* 新增修改收藏方案
* @param formId
*/
StartProcess.prototype.addOrEditFav = function(isAdd,formId,FavOid,FavName){
var that=this;
var form=layui.form;
var table=layui.table;
var formValues = form.getValues(formId);
var nodeValues = form.getValues("processNode_" + formId);
var processTemplateOid = formValues['processTemplateOid'];
var deployid = "";
var allTemplateAttr = $("[lay-combox='processTemplate']").data('processTemplate');
if(allTemplateAttr && allTemplateAttr.length > 0){
layui.each(allTemplateAttr,function(_index,_item){
if(_item.key == processTemplateOid){
deployid = _item.attributes.deploymentId;
return;
}
});
}
if($webUtil.isNotNull(deployid)) {
var FavIndex = layer.open({
type: 1,
title: isAdd?'新增收藏方案':'修改收藏方案',
btn: ['保存', '取消'],
content: '',
area: ['400px', '200px'],
closeBtn: 1,
shade: true,
shadeClose: true,
success: function (layero) {
form.addItems('Favform_'+formId, [{
field: 'name',
text: '方案名称',
type:'text',
defaultValue: FavName,
required:true
}])
},
yes: function (layero) {
if (form.validata('Favform_' + formId) ) {
var FavName = form.getValues('Favform_' + formId, true).name;
var hasName=false;
var items=[];
$.each(nodeValues,function (i,_item) {
if (i.indexOf('name') > -1) {
items.push({
name: i.replace('name', ''),
nodeUserIds: nodeValues[i.replace('name', '')],
nodeUserNames: _item
})
}
})
var favData = {
name: FavName,
id: deployid,
description: '',
wfTemplateName: that.currTemplateAttr.name,
wfTemplateRev:that.currTemplateAttr.version,
items: items
};
if(isAdd){
var Favlist=table.getData('table_' + formId);
layui.each(Favlist,function (index,item){
if(item.name==FavName){
hasName=true;
return ;
}
})
}else{
favData = {
name: FavName,
oid:FavOid
}
}
if(!hasName) {
$webUtil.manualAjax(isAdd ? 'post' : 'put', isAdd ? that.url.addFav : that.url.editFav, JSON.stringify(favData), function (result) {
if (result.success) {
$webUtil.showMsg(isAdd ?"收藏成功":'修改成功');
layer.close(FavIndex);
layui.table.reload('table_' + formId);
} else {
$webUtil.showErrorMsg((isAdd ?"收藏失败:":'修改失败:') + result.msg);
}
}, function () {
}, that.backPath);
}else {
$webUtil.showConfirmMsg('该名称已有方案,是否覆盖',function (r) {
if(r){
hasName=false;
$webUtil.manualAjax(isAdd ? 'post' : 'put', isAdd ? that.url.addFav : that.url.editFav, JSON.stringify(favData), function (result) {
if (result.success) {
$webUtil.showMsg(isAdd ?"收藏成功":'修改成功');
layer.close(FavIndex);
layui.table.reload('table_' + formId);
} else {
$webUtil.showErrorMsg((isAdd ?"收藏失败:":'修改失败:') + result.msg);
}
}, function () {
}, that.backPath);
}
});
}
}
},
btn2: function (layero) {
layer.close(FavIndex)
}
});
}
}
//删除收藏方案
StartProcess.prototype.DEL= function(FavOid,ts,tableid){
var that = this;
$webUtil.showConfirmMsg("是否删除这个方案?",function () {
$webUtil.deleteRequest(that.url.delFav, {oid:FavOid,TS:ts},function(result){
if(result.success){
$webUtil.showMsgFromResult(result,"删除成功");
layui.table.reload(tableid);
}else{
$webUtil.showErrorMsg(result.msg);
}
},function (xhr,err) {
$webUtil.showErrorMsg("执行删除的时候出错了错误,可能是服务器暂时无法访问");
},that.backPath);
});
};
//选中方案
StartProcess.prototype.checkedFav= function(data,formId,callback){
var that = this;
$webUtil.get(that.url.getFavByOid,{schemaOid:data.oid},function(result){
if(result.success){
var nodes= layui.form.getFormItems("processNode_" + formId);
var values={};
layui.each(nodes,function(_index,_item) {
for(var i=0;i-1){
values[_item.showField]=''
for(var nIndex=0;nIndex