/** * 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