wf.js 57 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943
  1. var mainDialog;
  2. //初始化参数
  3. var init = 'Init';
  4. var WfDailog = function(dialogId,options){
  5. return {
  6. id : dialogId,
  7. init: function(dialogId,options){
  8. this.id = dialogId;
  9. $('#'+this.id).fwwindow(options);
  10. return this;
  11. },
  12. open: function(){
  13. $('#'+this.id).fwwindow('open');
  14. },
  15. close: function(){
  16. $('#'+this.id).fwwindow('close');
  17. }
  18. }.init(dialogId,options);
  19. };
  20. $(document).ready(function(){
  21. try{
  22. mainDialog = WfDailog("mainWindow",{
  23. title: '选择接收人',
  24. width: 420,
  25. modal: true,
  26. shadow: false,
  27. closed: true,
  28. closable : false,
  29. height: 340
  30. });
  31. }catch (e){ }
  32. try{
  33. bpmMainDialog = WfDailog("bpmMainWindow",{
  34. title: '选择接收人',
  35. width: 420,
  36. modal: true,
  37. shadow: false,
  38. closed: true,
  39. closable : false,
  40. height: 440
  41. });
  42. }catch (e){ }
  43. try{
  44. if($("#accepterWindow").length>0){
  45. $('#accepterWindow').fwwindow({
  46. title: '选择接收人',
  47. width: 420,
  48. modal: true,
  49. shadow: false,
  50. closed: true,
  51. closable : false,
  52. height: 340
  53. });
  54. }
  55. }catch (e){ }
  56. try{
  57. msgDialog = WfDailog("_msgWindow",{
  58. title: '提示',
  59. width: 600,
  60. noheader:false,
  61. modal: true,
  62. shadow: false,
  63. closed: true,
  64. closable : false,
  65. height: 340
  66. });
  67. }catch (e){ }
  68. try{
  69. susscessDialog = WfDailog("_susscessWindow",{
  70. title: '操作成功',
  71. width: 420,
  72. noheader:false,
  73. modal: true,
  74. shadow: false,
  75. closed: true,
  76. closable : false,
  77. height: 260
  78. });
  79. }catch (e){ }
  80. try{
  81. playDialog = WfDailog("playWindow",{
  82. title: '流程图查看',
  83. width: 850,
  84. noheader:false,
  85. modal: true,
  86. shadow: false,
  87. closed: true,
  88. closable : true,
  89. height: 450
  90. });
  91. }catch (e){ }
  92. });
  93. var wfOpen = function(dialog){
  94. switch(dialog){
  95. case 'mainDialog' :
  96. mainDialog.open();break;
  97. case 'msgDialog' :
  98. msgDialog.open();break;
  99. case 'susscessDialog' :
  100. susscessDialog.open();break;
  101. case 'bpmMainDialog' :
  102. bpmMainDialog.open();break;
  103. default:
  104. }
  105. };
  106. var wfClose = function(dialog){
  107. switch(dialog){
  108. case 'mainDialog' :
  109. mainDialog.close();
  110. break;
  111. case 'msgDialog' :
  112. msgDialog.close();
  113. break;
  114. case 'susscessDialog' :
  115. susscessDialog.close();break;
  116. case 'bpmMainDialog' :
  117. bpmMainDialog.close();break;
  118. default:
  119. }
  120. };
  121. /**
  122. * 显示可选环节
  123. * @param formname 表单名
  124. * @param type 环节类型 nextAct or backAct
  125. */
  126. function getActs(formname,type){
  127. var toNextDefId = $("#"+formname+"_toNextDefId").val();
  128. var jbr = $("#"+formname+"_operId").val();
  129. var toUnitOpr = $("#"+formname+"_toUnitOpr").val();
  130. var getItemOpr = $("#"+formname+"_getItemOpr").val();
  131. var orgCode = $("#"+formname+"_bae006").val();
  132. var args = {'_processDefId':$("#"+formname+"_processDefId").val(),
  133. '_curActDefId':$("#"+formname+"_curActDefId").val(),
  134. 'pid':$("#"+formname+"_pid").val(),
  135. 'wid':$("#"+formname+"_wid").val(),
  136. 'orgCode':orgCode,
  137. 'cascade':$("#"+formname+"_cascade").val(),
  138. '_unitId':$("#"+formname+"_unitId").val(),
  139. '_toUnitOpr':toUnitOpr,
  140. 'jbr':jbr,
  141. 'toNextDefId':toNextDefId,
  142. 'actType':type};
  143. new Service({serviceId:'wfService',method:'getActs',parameters:args})
  144. .sentAjax(function(data){
  145. if (data == null || data == undefined){
  146. CFW.oWin.fnAlert('获取任务失败!');
  147. return;
  148. }
  149. var actLists = data[0];
  150. $("#div_acts",$('#mainWindow')).empty();
  151. var actList = [];
  152. actList.length = 0;
  153. var isSelPreOpr = false;
  154. if (type === 'backAct') {
  155. isSelPreOpr = true;
  156. }
  157. if (type === 'nextAct' && getItemOpr == 'true') {
  158. isSelPreOpr = true;
  159. }
  160. var toApplyOpr = $("#"+formname+"_toApplyOpr").val();
  161. var actlength=actLists.length;
  162. for (i = 0 ; i < actLists.length ;i++){
  163. var actName = actLists[i].ACTNAME;
  164. var actId = actLists[i].ACTID;
  165. var oActId = actLists[i].OACTID; //原始ID
  166. var receiver = actLists[i].RECEIVER;
  167. var gwOrg = actLists[i].GWORG;
  168. var gwUnitId = actLists[i].GWUNITID;
  169. var defvOpr = actLists[i].DEFAOPR;
  170. var chooseBtn = '';
  171. var first = true;
  172. var preJbr = '';
  173. actList[i] = {'actName':actName,'actId':actId,'oActId':oActId,'gwOrg':gwOrg,'gwUnitId':gwUnitId};
  174. var receiverOption = '<option value="" >-请选择-</option><option value="-1">岗位待办</option>';
  175. for (var k =0; k<receiver.length;k++){
  176. if (isSelPreOpr && first) {
  177. if (receiver[k][0] != '') {
  178. preJbr = receiver[k][0];
  179. first = false;
  180. if (toApplyOpr === 'true') {
  181. receiverOption +="<option value="+receiver[k][0]+" selected>"+receiver[k][1]+"</option>";
  182. break;
  183. } else {
  184. receiverOption +="<option value="+receiver[k][0]+" selected>"+receiver[k][1]+"</option>";
  185. }
  186. } else {
  187. first = false;
  188. }
  189. } else if(i == 0 && k == 0){//湛江人社:默认第一个为第一个接收人
  190. receiverOption +="<option value="+receiver[k][0]+" selected>"+receiver[k][1]+"</option>";
  191. }else if (preJbr != receiver[k][0]){
  192. receiverOption +="<option value="+receiver[k][0]+">"+receiver[k][1]+"</option>";
  193. }
  194. if ( jbr == receiver[k][0]){
  195. chooseBtn = '<a href="javascript:void(0)" onclick="chooseSelf(\''+actId+'\',\''+jbr+'\');">&nbsp;&nbsp;自己&nbsp;&nbsp;</a>';
  196. }
  197. }
  198. //alert("===receiverOption==="+receiverOption);
  199. var acts = '<div id="workitem" class="act">'+
  200. '<div class="actTitle">'+actName+'</div>';
  201. if (toApplyOpr != 'true') {
  202. var selName = "选择机构";
  203. if(toUnitOpr == 'true') {
  204. selName = "选择单位";
  205. }
  206. acts += '<div id="orgselect" class="orgSelect"><a href="javascript:void(0)" onclick="orgSelect(\''+formname+"','"+actId+'\',\''+type+'\',\''+toUnitOpr+'\')">'+selName+'</a></div>';
  207. }
  208. acts += '<div id="accepter" class="accepter">'+
  209. '接收人列表:<br/><input type="text" id="'+actId+'_accepterFilter" style="width:70px"/>&nbsp;<a class="buttonlink l-btn" style="padding-right:5px;" id="'+actId+'_quickSearch" href="javascript:void(0);"><span class="l-btn-left" style="padding-left:5px;"><span class="l-btn-text">搜索</span></span></a><br>'+
  210. '<input type="hidden" name="actid" value="'+oActId+'" />'+
  211. '<select size="10" id="'+actId+'_accepter" style="width:120px" >'+
  212. receiverOption +
  213. '</select>'+
  214. '</div>'+
  215. '<div id="chooseBtn_'+actId+'" class="chooseSelf"></div>'+
  216. '</div>';
  217. $("#div_acts", $('#mainWindow')).append(acts);
  218. $("#chooseBtn_"+actId, $('#mainWindow')).empty().append(chooseBtn);
  219. $("#chooseBtn_"+actId, $('#mainWindow')).append('<a href="javascript:void(0)" onclick="_cancelJar(\''+actId+'_accepter\');">取消选择</a>');
  220. $("#wfDialogBtn", $('#mainWindow')).css({"display":"block"});
  221. if (toApplyOpr != 'true') {
  222. if (i == 0 && (defvOpr == null || defvOpr == '')) {
  223. //$("#"+actId + "_accepter", $('#mainWindow')).val("-1"); 湛江默认第一个接收人
  224. } else {
  225. $("#"+actId + "_accepter", $('#mainWindow')).val(""+defvOpr);
  226. }
  227. }
  228. //核三工作流选择接收人界面,目前两个接收人列表都会默认岗位代办,需要先取消选择一个,再选择一个才能提交。
  229. //建议两个不默认,由用户自主选择。请检查处理。if(actlength!=1)
  230. //湛江人社:仅默认第一个
  231. if(i > 0){
  232. $("#"+actId + "_accepter", $('#mainWindow')).val("");
  233. }
  234. }
  235. $("#btn_cancel", $('#mainWindow')).click(function(){
  236. btnCancel(formname);
  237. disableOkBtn(false);
  238. $("#btn_ok",$('#mainWindow')).unbind("click");
  239. });
  240. //每次绑定框架确定按钮先解绑,避免多次绑定造成重复提交
  241. $("#btn_ok", $('#mainWindow')).unbind("click").click(function(){
  242. btnOk(formname,actList,false);
  243. return false;
  244. });
  245. $("#"+actId+"_quickSearch", $('#mainWindow')).click(function(){
  246. var value=$("#"+actId+"_accepterFilter", $('#mainWindow')).attr("value");
  247. if(value==""){
  248. $("#"+actId+"_accepter span option", $('#mainWindow')).each(function(i){
  249. $(this).clone().replaceAll($(this).parent());
  250. });
  251. }else{
  252. $("#"+actId+"_accepter option", $('#mainWindow')).each(function(i){
  253. if(i==0)return;//请选择选项
  254. if($(this).parent().is("span"))return;//已经被span包含
  255. $(this).wrap("<span style='display:none'></span>");
  256. });
  257. $("#"+actId+"_accepter span option", $('#mainWindow')).filter(":contains('" + value + "')").each(function(i){
  258. $(this).show();
  259. $(this).clone().replaceAll($(this).parent());
  260. });
  261. }
  262. });
  263. _wfInit(formname,actList);
  264. });
  265. }
  266. /**
  267. * 直接提交到岗位待办,无需弹出窗口选择接收人
  268. * @param formname 表单名
  269. */
  270. function directSubmit(formname,type) {
  271. var jbr = $("#"+formname+"_operId").val();
  272. var actExtendsService=$("#"+formname+"_actExtendsService").val();//配合orgCode使用
  273. var methodstr="getActs";
  274. if(actExtendsService!=""){
  275. methodstr="getActsExtends";
  276. }
  277. var toUnitOpr = $("#"+formname+"_toUnitOpr").val();
  278. var getItemOpr = $("#"+formname+"_getItemOpr").val();
  279. var args = {'_processDefId':$("#"+formname+"_processDefId").val(),
  280. '_curActDefId':$("#"+formname+"_curActDefId").val(),
  281. 'pid':$("#"+formname+"_pid").val(),
  282. 'wid':$("#"+formname+"_wid").val(),
  283. 'orgCode':$("#"+formname+"_bae006").val(),
  284. 'cascade':$("#"+formname+"_cascade").val(),
  285. 'jbr':jbr,
  286. '_unitId':$("#"+formname+"_unitId").val(),
  287. '_toUnitOpr':toUnitOpr,
  288. 'toNextDefId':$("#"+formname+"_toNextDefId").val(),
  289. 'actExtendsService':actExtendsService,
  290. 'actType':type};
  291. new Service({serviceId:'wfService',method:methodstr,parameters:args})
  292. .sentAjax(function(data){
  293. if (data == null || data == undefined){
  294. CFW.oWin.fnAlert('获取任务失败!');
  295. return;
  296. }
  297. //alert(JSON.stringify(data));
  298. var actLists = data[0];
  299. var actName = actLists[0].ACTNAME;
  300. var actId = actLists[0].ACTID;
  301. var oActId = actLists[0].OACTID; //原始ID
  302. var receiver = actLists[0].RECEIVER;
  303. var gwOrg = actLists[0].GWORG;
  304. var gwUnitId = actLists[0].GWUNITID;
  305. var defvOpr = actLists[0].DEFAOPR;
  306. var toApplyOpr = $("#"+formname+"_toApplyOpr").val();
  307. var isSelPreOpr = false;
  308. if (type === 'backAct') {
  309. isSelPreOpr = true;
  310. }
  311. if (type === 'nextAct' && getItemOpr == 'true') {
  312. isSelPreOpr = true;
  313. }
  314. if (isSelPreOpr && toApplyOpr === 'true') {
  315. if (receiver != null && receiver[0] != null && receiver[0][0] != '') {
  316. $("#"+formname+"_accepterId").val(receiver[0][0]);
  317. //alert($("#"+formname+"_operId").val());
  318. } else {
  319. CFW.oWin.fnAlert("未查找到原提交人,或是没人有权限接收任务");
  320. return;
  321. }
  322. }
  323. if (actExtendsService!="") {
  324. //alert(gwUnitId+"-------"+defvOpr+"-------"+gwOrg);
  325. $("#"+formname+"_accepterId").val(defvOpr);
  326. }
  327. var actList = [];
  328. actList[0] = {'actName':actName,'actId':actId,'oActId':oActId,'gwOrg':gwOrg,'gwUnitId':gwUnitId};
  329. btnOk(formname,actList,true);
  330. });
  331. }
  332. /**
  333. * 选择机构
  334. * @param formname 表单名
  335. * @param actId 环节id
  336. */
  337. function orgSelect(formname,actId,type,toUnitOpr){
  338. var jbr = $("#"+formname+"_operId").val();
  339. var bae006 = $("#"+formname+"_bae006").val();
  340. var args = {'_processDefId':$("#"+formname+"_processDefId").val(),
  341. '_curActDefId':$("#"+formname+"_curActDefId").val(),
  342. '_nextActDefId':actId,
  343. 'pid':$("#"+formname+"_pid").val(),
  344. 'wid':$("#"+formname+"_wid").val(),
  345. 'cascade':$("#"+formname+"_cascade").val(),
  346. 'jbr':jbr,
  347. '_toUnitOpr':toUnitOpr,
  348. 'actType':type};
  349. if (toUnitOpr != 'true') {
  350. if (bae006 != null && bae006.length > 4){
  351. bae006 = bae006.substr(0,4);
  352. }
  353. var rst = CFW.oWin.fnOpenOrgTree({root:bae006,whereCls:'1=1'});
  354. if(!rst){//如果没有返回值的处理
  355. //rst = {key:'',title:''};
  356. return;
  357. }
  358. //获取机构树和机构名称
  359. var orgCode =rst.key;
  360. var orgName = rst.title;
  361. args['orgCode'] = orgCode;
  362. $("#"+formname+"_bae006").val(orgCode);
  363. } else {
  364. var href = contextPath +"/jsp/framework/unitQuery.jsp?bae006="+bae006;
  365. var resp = FW.showModalDialog(href);
  366. var unitId = resp.unitId;
  367. var orgCode = resp.orgCode;
  368. if (unitId == undefined || unitId == null || $.trim(unitId) == '') {
  369. return;
  370. }
  371. args['_unitId'] = unitId;
  372. args['orgCode'] = orgCode;
  373. $("#"+formname+"_unitId").val(unitId);
  374. $("#"+formname+"_bae006").val(orgCode);
  375. }
  376. new Service({serviceId:'wfService',method:'getRecevier',parameters:args})
  377. .sentAjax(function(data){
  378. if (data == null || data == undefined){
  379. CFW.oWin.fnAlert('获取接收人失败!');
  380. return;
  381. }
  382. var actLists = data[0];
  383. var receiver = actLists.RECEIVER;
  384. var selectObj = $("#"+actId + "_accepter",$('#mainWindow'));
  385. var receiverOption = "<option value=\"\" >-请选择-</option><option value='-1' selected>岗位待办</option>";
  386. var chooseBtn = '';
  387. var isSelPreOpr = false;
  388. if (type === 'backAct') {
  389. isSelPreOpr = true;
  390. }
  391. var first = true;
  392. var preJbr = '';
  393. var toApplyOpr = $("#"+formname+"_toApplyOpr").val();
  394. for (var k =0; k<receiver.length;k++){
  395. if (isSelPreOpr && first) {
  396. if (receiver[k][0] != '') {
  397. preJbr = receiver[k][0];
  398. first = false;
  399. if (toApplyOpr === 'true') {
  400. receiverOption +="<option value="+receiver[k][0]+" selected>"+receiver[k][1]+"</option>";
  401. break;
  402. } else {
  403. receiverOption +="<option value="+receiver[k][0]+">"+receiver[k][1]+"</option>";
  404. }
  405. } else {
  406. first = false;
  407. }
  408. } else if (preJbr != receiver[k][0]){
  409. receiverOption +="<option value="+receiver[k][0]+">"+receiver[k][1]+"</option>";
  410. }
  411. if ( jbr == receiver[k][0]){
  412. chooseBtn = '<a href="javascript:void(0)" onclick="chooseSelf(\''+actId+'\',\''+jbr+'\');">&nbsp;&nbsp;自己&nbsp;&nbsp;</a>';
  413. }
  414. }
  415. selectObj.empty().append(receiverOption);
  416. $("#chooseBtn_"+actId,$('#mainWindow')).empty().append(chooseBtn);
  417. $("#chooseBtn_"+actId,$('#mainWindow')).append('<a href="javascript:void(0)" onclick="_cancelJar(\''+actId+'_accepter\');">取消选择</a>');
  418. });
  419. }
  420. function _getWfData(formname) {
  421. return eval("("+$("#"+formname+"_wfData").val()+")");
  422. }
  423. //数据重置
  424. function _resetData(formname) {
  425. var wfData = _getWfData(formname);
  426. $("#"+formname+"_accepterId").val("");
  427. $("#"+formname+"_nextActDefId").val(wfData._nextActDefId);
  428. $("#"+formname+"_nextActDefName").val(wfData._nextActDefName);
  429. $("#"+formname+"_bae006").val(wfData._bae006);
  430. }
  431. //退单
  432. function backOrder(obj,formname){
  433. var formStr = ' document.'+formname+'.submit();';
  434. //var nextDefIdStr = $("#"+formname+"_nextActDefId").val();
  435. //var nextDefNameStr = $("#"+formname+"_nextActDefName").val();
  436. var wfData = _getWfData(formname);
  437. var nextDefIds = wfData._nextActDefId.split(",");
  438. var nextDefNames = wfData._nextActDefName.split(",");
  439. var backOrderDefId = "";
  440. var backOrderDefName = "";
  441. for (i = 0 ; i < nextDefIds.length; i++){
  442. if (nextDefIds[i].indexOf("!!") == 0){
  443. backOrderDefId = nextDefIds[i];
  444. backOrderDefName = nextDefNames[i];
  445. break;
  446. }
  447. }
  448. if ( backOrderDefId == ""){
  449. CFW.oWin.fnAlert("回退环节不能为空!");
  450. return;
  451. }
  452. $("#"+formname+"_accepterId").val("");
  453. $("#"+formname+"_wfState").val("all");
  454. $("#"+formname+"_nextActDefName").val(backOrderDefName);//流程定义时约定
  455. $("#"+formname+"_nextActDefId").val(backOrderDefId);
  456. try{
  457. //校验
  458. if (!_wfJY(formname,'exit')) {
  459. return;
  460. }
  461. $(obj).linkbutton("disable");
  462. _createFrame(formname,'exit');
  463. eval(formStr);
  464. $(obj).linkbutton("enable");
  465. }catch(ex){
  466. }
  467. }
  468. /**
  469. * 提交环节
  470. * @param formname 表单名
  471. *
  472. * @param isPost 是否直接提交岗位待办
  473. */
  474. function wfNext(formname,isPost){
  475. //校验
  476. if (!_wfJY(formname,'next')) {
  477. return;
  478. }
  479. if (!isPost) {
  480. directSubmit(formname,'nextAct');
  481. } else {
  482. wfOpen('mainDialog');
  483. getActs(formname,'nextAct'); //前进环节
  484. }
  485. }
  486. /**
  487. * 回退环节
  488. * @param formname 表单名
  489. * @return void
  490. */
  491. function wfBack(formname,isPost){
  492. //校验
  493. if (!_wfJY(formname,'back')) {
  494. return;
  495. }
  496. if (!isPost) {
  497. directSubmit(formname,'backAct');
  498. } else {
  499. wfOpen('mainDialog');
  500. getActs(formname,'backAct'); //回退环节
  501. }
  502. }
  503. /**
  504. * 保存
  505. * @param formname 表单名
  506. * @return void
  507. */
  508. function wfSave(obj,formname){
  509. //校验
  510. if (!_wfJY(formname,'save')) {
  511. return;
  512. }
  513. if($("#jbpmWfState").val()=="true"){
  514. var formStr = ' document.'+formname+'.submit();';
  515. eval(formStr);
  516. }else{
  517. var formStr = ' document.'+formname+'.submit();';
  518. try{
  519. $("#"+formname+"_nextActDefId").val($("#"+formname+"_curActDefId").val());
  520. $("#"+formname+"_wfState").val("data");
  521. $(obj).linkbutton("disable");
  522. _createFrame(formname,'save');
  523. $(obj).linkbutton("enable");
  524. eval(formStr);
  525. }catch(ex){
  526. }
  527. }
  528. }
  529. function _createFrame(formname,btn){
  530. var _redirect = $("form[name="+formname+"] input[name=_redirect]").val();
  531. if ( _redirect == "true" ) {
  532. return;
  533. }
  534. var resultMsg = '<iframe name="_msgFrame" src="'+contextPath+'/jsp/framework/wait.jsp" width="100%" height="100%" frameborder="0">'
  535. //+'<div id="div_wait" style="text-align:center;width:100%;height:20px;"><img width="100%" height="30px" src="'+contextPath+'/themes/default/images/wait.gif" /></div>';
  536. +'</iframe>';
  537. //var wait = '<div style="margin:auto;width:500px;height:100px;"><img src="'+contextPath+'/themes/default/images/wait.gif" /></div>';
  538. //$(wait).appentTo($("#div_msg_context"));
  539. document.forms[formname].target="_msgFrame";
  540. document.getElementById("div_wait").style.display="block";
  541. disableMsgBtn("none");
  542. wfOpen("msgDialog");
  543. var jFrame = $("iframe[name=_msgFrame]");
  544. var frame = jFrame.get(0);
  545. //if ( frame == null || frame == undefined) {
  546. $("#div_msg_context").empty().append(resultMsg);
  547. //}
  548. $("#btn_msg_cancel").click(function(){
  549. try{
  550. var jsClassObj = $("#"+formname+"_jsClassObj").val() || "";
  551. if (jsClassObj != null && $.trim(jsClassObj) != "" && jsClassObj != 'undefined'){
  552. jsClassObj = jsClassObj + ".";
  553. } else {
  554. jsClassObj = "";
  555. }
  556. eval(' var callbakFun = '+jsClassObj + formname+"_"+$("#"+formname+"_curActDefId").val()+"_err ;");
  557. } catch(e) {
  558. }
  559. if(typeof (callbakFun) == 'function'){
  560. try {
  561. callbakFun(btn);
  562. } catch (e) {
  563. alert(e.name+","+e.message);
  564. }
  565. }
  566. disableMsgBtn("none");
  567. wfClose("msgDialog");
  568. _resetData(formname);
  569. });
  570. }
  571. /**
  572. * 校验
  573. * @param formname
  574. * @returns {Boolean}
  575. */
  576. function _wfJY(formname,btnFlag) {
  577. try{
  578. var jsClassObj = $("#"+formname+"_jsClassObj").val() || "";
  579. if (jsClassObj != null && $.trim(jsClassObj) != "" && jsClassObj != 'undefined'){
  580. jsClassObj = jsClassObj + ".";
  581. } else {
  582. jsClassObj = "";
  583. }
  584. var filterFun = eval(''+jsClassObj + formname+"_"+$("#"+formname+"_curActDefId").val()+";");
  585. } catch(e) {
  586. }
  587. var flag = true;
  588. //调用自定义过渡方法
  589. if (typeof (filterFun) == 'function'){
  590. try{
  591. flag = filterFun(btnFlag) ;
  592. }catch(ex){
  593. flag = false;
  594. CFW.oWin.fnAlert(ex.message);
  595. }
  596. }
  597. return flag === undefined || flag == null ? true : flag;
  598. }
  599. /**
  600. * 选择自已
  601. * @param actid 环节id
  602. * @param oprid 当前经办人id
  603. */
  604. function chooseSelf(actid,oprid,readOnly){
  605. if (oprid != '') {
  606. $("#"+actid + "_accepter").val(oprid);
  607. }
  608. //if (readOnly){
  609. //alert(readOnly);
  610. //$("#"+actid + "_accepter").attr("readOnly","true");
  611. //}
  612. }
  613. //取消
  614. function btnCancel(formname){
  615. wfClose('mainDialog');
  616. _resetData(formname);
  617. }
  618. /**
  619. * 结束
  620. * @param formname 表单名
  621. * @return void
  622. */
  623. function btnEnd(obj,formname){
  624. //校验
  625. if (!_wfJY(formname,'end')) {
  626. return;
  627. }
  628. var formStr = ' document.'+formname+'.submit();';
  629. var nextDefIdStr = $("#"+formname+"_nextActDefId").val();
  630. var nextDefNameStr = $("#"+formname+"_nextActDefName").val();
  631. var nextDefIds = nextDefIdStr.split(",");
  632. var nextDefNames = nextDefNameStr.split(",");
  633. var backOrderDefId = "";
  634. var backOrderDefName = "";
  635. for (var i = 0 ; i < nextDefIds.length; i++){
  636. if (nextDefIds[i].indexOf("!!") < 0){
  637. backOrderDefId = nextDefIds[i];
  638. backOrderDefName = nextDefNames[i];
  639. break;
  640. }
  641. }
  642. $("#"+formname+"_wfState").val("all");
  643. $("#"+formname+"_nextActDefName").val(backOrderDefName);//流程定义时约定
  644. $("#"+formname+"_nextActDefId").val(backOrderDefId);
  645. try{
  646. $(obj).linkbutton("disable");
  647. _createFrame(formname,'next');
  648. $(obj).linkbutton("enable");
  649. eval(formStr);
  650. }catch(ex){
  651. }
  652. }
  653. /**
  654. * 确定
  655. * @param formname 表单名
  656. * @param actList 选择的环节对象
  657. * @param isPost 是否直接提交岗位待办
  658. */
  659. function btnOk(formname,actList,isPost){
  660. disableOkBtn("true");
  661. var formStr = ' document.'+formname+'.submit();';
  662. try{
  663. if (actList != null){
  664. var accepterStr = "";
  665. var i = 0;
  666. var nextDefId = "";
  667. var nextDefName = "";
  668. var accNum = 0;
  669. if (isPost) {
  670. if (actList.length > 1) {
  671. CFW.oWin.fnAlert('存在多个可选择的环节,不允许直接提交当前任务!');
  672. disableOkBtn(false);
  673. return;
  674. } else {
  675. var accepterVal=$("#"+formname+"_accepterId").val();
  676. if(accepterVal!=null&&accepterVal!=''){
  677. accepterStr = accepterVal+",";
  678. }else{
  679. accepterStr = ",";
  680. }
  681. nextDefId = actList[0].oActId;
  682. nextDefName = actList[0].actName;
  683. if (actList[0].gwOrg != '') {
  684. $("#"+formname+"_bae006").val(actList[0].gwOrg);
  685. }
  686. if (actList[0].gwUnitId != '') {
  687. $("#"+formname+"_unitId").val(actList[0].gwUnitId);
  688. }
  689. }
  690. } else {
  691. for ( ; i < actList.length ; i++){
  692. var actObj = actList[i];
  693. var accepter = $("#"+actObj.actId+"_accepter").val();
  694. if (!CFW.oValid.fnIsNull(accepter)) {
  695. accNum++;
  696. nextDefId = actObj.oActId;
  697. nextDefName = actObj.actName;
  698. //岗位待办
  699. if (accepter == "-1"){
  700. accepter = "";
  701. if (actObj.gwOrg != '') {
  702. $("#"+formname+"_bae006").val(actObj.gwOrg);
  703. }
  704. if (actObj.gwUnitId != '') {
  705. $("#"+formname+"_unitId").val(actObj.gwUnitId);
  706. }
  707. }
  708. accepterStr += accepter + ",";
  709. } else {
  710. accepter = "";
  711. }
  712. /*if (accepter == null || $.trim(accepter) == '' ) {
  713. CFW.oWin.fnAlert('请选择"'+actObj.actName+'"接收人!');
  714. disableOkBtn(false);
  715. return;
  716. }*/
  717. //accepterStr += actObj.actId + "=" + accepter + ",";
  718. }
  719. if ( accNum == 0){
  720. CFW.oWin.fnAlert('请为环节选择接收人!');
  721. disableOkBtn(false);
  722. return;
  723. }
  724. if ( accNum != 1){
  725. CFW.oWin.fnAlert('只能为其中某个环节选择接收人!'); //多环节”或"
  726. disableOkBtn(false);
  727. return;
  728. }
  729. }
  730. accepterStr = accepterStr.substring(0, accepterStr.lastIndexOf(","));
  731. $("#"+formname+"_accepterId").val(accepterStr);
  732. $("#"+formname+"_nextActDefId").val(nextDefId);
  733. $("#"+formname+"_nextActDefName").val(nextDefName);
  734. $("#"+formname+"_wfState").val("all");
  735. //校验
  736. if (!_wfJY(formname,nextDefName)) {
  737. disableOkBtn(false);
  738. return;
  739. }
  740. wfClose("mainDialog");
  741. //alert(" accepterStr =" +accepterStr);
  742. _createFrame(formname,nextDefName);
  743. disableOkBtn(false);
  744. eval(formStr);
  745. } else {
  746. CFW.oWin.fnAlert('提交任务出错!');
  747. disableOkBtn(false);
  748. _resetData(formname);
  749. }
  750. }catch(ex){
  751. alert(ex.name+","+ ex.message);
  752. }
  753. }
  754. /**
  755. * 初始化参数
  756. * @param formname 表单名
  757. * @param actList 选择的环节定义ID
  758. * @return void
  759. */
  760. function _wfInit(formname,actList) {
  761. try{
  762. var _wfCusInit = eval(''+ formname+init+" ;");
  763. //调用自定义检验方法
  764. if (typeof (_wfCusInit) == 'function'){
  765. try{
  766. for (var i = 0 ;i < actList.length ;i++) {
  767. _wfCusInit(actList[i].actId,chooseSelf);
  768. }
  769. }catch(ex){
  770. CFW.oWin.fnAlert("ddd"+ex.message);
  771. }
  772. }
  773. }catch(e){
  774. }
  775. }
  776. /**
  777. * @param obj
  778. */
  779. function commentValidate(obj){
  780. var str = obj.value;
  781. var length = str.replace(/[^\x00-\xff]/g,"**").length;
  782. if (length > 200){
  783. CFW.oWin.fnAlert('流程备注不能超过200个字符!');
  784. obj.focus();
  785. return;
  786. }
  787. }
  788. /**
  789. * 屏蔽或取消屏蔽确定按钮
  790. * @param val "true" or "false"
  791. */
  792. function disableOkBtn(val){
  793. $("#btn_ok").attr("disabled","");
  794. $("#btn_ok").attr("disabled",val);
  795. $("#btn_cancel").attr("disabled","");
  796. $("#btn_cancel").attr("disabled",val);
  797. }
  798. /**
  799. * 屏蔽或取消屏蔽确定按钮
  800. * @param val "true" or "false"
  801. */
  802. function disableAllBtn(val){
  803. var arrBtn = new Array();
  804. indexAr=0;
  805. $(".buttonlink").each(function(index){
  806. var target=this;
  807. if($(target).attr("name")!=""){
  808. arrBtn[indexAr]=$(target).attr('name');
  809. indexAr++;
  810. }
  811. });
  812. CFW.oBtn.fnBtnStatus(arrBtn, false);
  813. }
  814. /**
  815. * 屏蔽或取消屏蔽确定按钮
  816. * @param val "none" or "block"
  817. */
  818. function disableMsgBtn(val){
  819. $("#divMsgDialogBtn").css({"display":val});
  820. }
  821. /**
  822. * ajax开启流程,返回业务流水号
  823. * @param formname 流程表单名
  824. * @param callback 回调函数,传入业务流水号
  825. * @param flag false:不调用业务保存,true:调用业务保存 ; 缺陷不调用业务保存
  826. * @return String 业务流水号
  827. */
  828. function startWf(formname,callback,errCallbak,flag){
  829. var pid= "";
  830. var wid = "";
  831. var vFlag = flag && true;
  832. var nId = $("#"+formname+"_nextActDefId").val().split(',');
  833. var args = {'_processDefId':$("#"+formname+"_processDefId").val(),
  834. '_curActDefId':$("#"+formname+"_curActDefId").val(),
  835. '_nextActDefId':nId[0],
  836. //'_wfState':$("#"+formname+"_wfState").val(),
  837. '_isWfStart':$("#"+formname+"_isWfStart").val(),
  838. 'pid':$("#"+formname+"_pid").val(),
  839. '_commDo':$("input[name=_commDo]").val(),
  840. '_keyData':$("#"+formname+"_keyData").val(),
  841. '_operId':$("#"+formname+"_operId").val(),
  842. '_aab001':$("#"+formname+"_aab001").val(),
  843. '_aac001':$("#"+formname+"_aac001").val(),
  844. '_bae006':$("#"+formname+"_bae006").val()
  845. };
  846. if(vFlag) {
  847. args['_wfState'] = "data";
  848. } else {
  849. args['_wfState'] = "wf";
  850. }
  851. //CFW.oWin.fnAlert(JSON.stringify(args));
  852. new Service({serviceId:'commService',method:'startWf',parameters:args})
  853. .sentAjax(function(data){
  854. if (data == null || data == undefined){
  855. CFW.oWin.fnAlert('开启流程失败!');
  856. return;
  857. }
  858. var respObj = data[0];
  859. pid = respObj.pid;
  860. wid = respObj.wid;
  861. //alert("ywlsh="+pid);
  862. $("#"+formname+"_wfState").val("data");
  863. $("#"+formname+"_isWfStart").val("false");
  864. $("#"+formname+"_pid").val(pid);
  865. $("#"+formname+"_wid").val(wid);
  866. $("#"+formname+"_isWfStart").val("false");
  867. //alert($("#"+formname+"_wfState").val());
  868. //alert( $("#"+formname+"_isWfStart").val());
  869. //调用自定义检验方法
  870. if (typeof (callback) == 'function'){
  871. try{
  872. _initTd(formname);
  873. callback(pid);
  874. }catch(ex){
  875. CFW.oWin.fnAlert(ex.message);
  876. }
  877. }
  878. },function(data){
  879. //错误时调用自定义方法
  880. if (typeof (errCallbak) == 'function'){
  881. try{
  882. _initTd(formname);
  883. errCallbak(pid,data);
  884. }catch(ex){
  885. CFW.oWin.fnAlert(ex.message);
  886. }
  887. }
  888. });
  889. return pid;
  890. }
  891. function _cancelJar(id) {
  892. $("#"+id).val("");
  893. }
  894. /**
  895. * 初始化退单按钮,当ajax开启流程时需要动态添加退单按钮
  896. * @param formname 表单名
  897. */
  898. function _initTd(formname) {
  899. if($("form[name="+formname+"] a[name=wf_btn_exit]").get(0) != undefined || $("form[name="+formname+"] a[name=wf_btn_back]").get(0) != undefined) {
  900. return;
  901. }
  902. if (CFW.oValid.fnIsNull(window[formname].pid.value)) {
  903. return;
  904. }
  905. var td = '&nbsp;<a class="buttonlink wf_btn" name="wf_btn_exit" onclick="backOrder(this,\''+formname+'\');return false;"'
  906. +' href="javascript:void(0);" title="回退本次办理的业务" >退单</a>&nbsp;';
  907. var nextBtn = $("form[name="+formname+"] a[name=wf_btn_next]");
  908. var saveBtn = $("form[name="+formname+"] a[name=wf_btn_save]");
  909. if(saveBtn.get(0) != undefined) {
  910. saveBtn.before(td);
  911. }else if(nextBtn.get(0) != undefined) {
  912. nextBtn.before(td);
  913. } else {
  914. $("form[name="+formname+"] a[name=wf_btn_end]").before(td);
  915. }
  916. $("form[name="+formname+"] a[name=wf_btn_exit]").each(function(){
  917. var plain = $(this).attr("plain");
  918. if(plain=="false"||plain==null||plain==""){
  919. $(this).attr({"plain":"true"});
  920. $(this).linkbutton({plain:false});
  921. }
  922. });
  923. }
  924. /**
  925. * 打开影像资料录入界面
  926. * @param formname 表单名
  927. */
  928. function _openYxzl(obj,formname) {
  929. if (CFW.oValid.fnIsNull($("#"+formname+"_pid").val())) {
  930. CFW.oWin.fnAlert('请先生成业务流水号,再选择上传文件!');
  931. return;
  932. }
  933. var ywlsh=$("#"+formname+"_pid").val();
  934. var url=contextPath + "/framework/web/uploadyx.do?ywlsh="+ywlsh;
  935. //var position ="resizable:1;status:0;help:0;dialogWidth:950px;dialogHeight:600px;dialogLeft:320;dialogTop:200";
  936. //showModelessDialog(url,window,position);
  937. window.open (url, "newwindow", "height=300, width=800, toolbar =no, menubar=no, scrollbars=yes, resizable=no, location=no, status=no")
  938. }
  939. /**
  940. * 下载影像资料文件
  941. * @param formname 表单名
  942. */
  943. function _down(bae007,filename,filepath,ftpserver){
  944. //把文件绝对路径+名字传给downloadform表单
  945. var url = contextPath + '/downFile.do?serviceId=yxzlFileService&method=exportFile&FILENAME='+filename+'&FILEPATH='+filepath+'&FTPIP='+ftpserver+'&YWLSH='+bae007;
  946. window.location.href = url;
  947. }
  948. function _delete(bae007,filename,filepath,ftpserver){
  949. var params = {BAE007:bae007,FILENAME:filename,FILEPATH:filepath,FTPIP:ftpserver};
  950. new Service({
  951. serviceId:'yxzlDeleteService',
  952. method:'deleteYXFile',
  953. parameters:params
  954. }).sentAjax(function(data){
  955. var whereCls="BAE007='"+bae007+"'";
  956. CFW.oGlt.fnGetData('fw_wf_yxzllist',whereCls);
  957. alert('操作成功!');
  958. },function(msg){
  959. alert(msg);
  960. });
  961. }
  962. /**
  963. * 打开附件下载录入界面
  964. * @param formname 表单名
  965. */
  966. function _openAttach(obj,formname) {
  967. if (CFW.oValid.fnIsNull(window[formname].pid.value)) {
  968. CFW.oWin.fnAlert('请先生成业务流水号,再选择上传文件!');
  969. return;
  970. }
  971. var ywlsh=window[formname].pid.value;
  972. var uploadType=window[formname].uploadType.value;
  973. var uploadPath=window[formname].uploadPath.value;
  974. var uploadService=window[formname].uploadService.value;
  975. var paramStr='';
  976. if (CFW.oValid.fnIsNull(uploadType)) {
  977. CFW.oWin.fnAlert('请选择上传类别!!');
  978. return;
  979. }
  980. if(CFW.oValid.fnIsNull(uploadType)){
  981. paramStr+='&uploadType='+uploadType;
  982. }
  983. if(CFW.oValid.fnIsNull(uploadPath)){
  984. paramStr+='&uploadPath='+uploadPath;
  985. }
  986. if(CFW.oValid.fnIsNull(uploadService)){
  987. paramStr+='&uploadService='+uploadService;
  988. }
  989. var url=contextPath + "/framework/web/uploadattach.do?ywlsh="+ywlsh+paramStr;
  990. //var position ="resizable:1;status:0;help:0;dialogWidth:950px;dialogHeight:600px;dialogLeft:320;dialogTop:200";
  991. //showModelessDialog(url,window,position);
  992. window.open (url, "newwindow", "height=300, width=800, toolbar =no, menubar=no, scrollbars=yes, resizable=no, location=no, status=no")
  993. }
  994. /**
  995. * 删除附件
  996. * @param formname 表单名
  997. */
  998. function _deleteAttach(zlid){
  999. CFW.oComm.fnDeleteAttach(zlid);
  1000. }
  1001. /**
  1002. * 下载附件
  1003. * @param formname 表单名
  1004. */
  1005. function _downAttach(zlid){
  1006. CFW.oComm.fnDownAttach(zlid);
  1007. }
  1008. /**
  1009. * 业务需求:多记录表页面,需新增 批量操作流程功能(可批量接收,提交,回退)
  1010. * @param type:receive(批量接收),submit(批量提交),submit(批量回退)
  1011. * @param pid:流程实例ID (多个流程用 英文逗号 ','隔开)
  1012. * @param wid:环节实例ID (多个流程用 英文逗号 ','隔开)
  1013. * @param accepter:批量提交的时候有指定接收人业务,其他操作传空。
  1014. * @param nextDefId:批量提交/批量回退的时候,指定下一环节
  1015. * @param callBackFunction:回调函数
  1016. * @return void
  1017. */
  1018. function dobatch(type,pid,wid,accepter,nextDefId,callBackFunction){
  1019. var methodname="";
  1020. var submittype="";
  1021. var message="";
  1022. if(type=='receive'){
  1023. methodname="wfBatchReceive";
  1024. message="批量接收成功!";
  1025. }else if(type=='submit'){
  1026. submittype="1";
  1027. methodname="wfBatchSubmit";
  1028. message="批量提交成功!";
  1029. }else if(type=='back'){
  1030. submittype="2";
  1031. methodname="wfBatchSubmit";
  1032. message="批量回退成功!";
  1033. }else if(type=='end'){
  1034. submittype="3";
  1035. methodname="wfBatchSubmit";
  1036. message="批量结束成功!";
  1037. }
  1038. var args = {'actType':submittype,
  1039. 'wid': wid,
  1040. 'pid':pid,
  1041. 'nextActId':nextDefId,
  1042. 'accepter':accepter};
  1043. new Service({serviceId:'workflowService',method:methodname,parameters:args})
  1044. .sentAjax(function(data){
  1045. CFW.oWin.fnAlert(data);
  1046. if(callBackFunction&&typeof(callBackFunction)=="function"){
  1047. callBackFunction();
  1048. }
  1049. //CFW.oGlt.fnGetData('fw_blank_todolist',whereCls);
  1050. return;
  1051. });
  1052. }
  1053. //撤回:将已办列表中的流程撤回为待办【1.根据WID判断下一环节是否处理,已处理。不能撤回。】
  1054. function backPre(pid,wid,accepter){
  1055. var message="成功撤回!";
  1056. var args = {
  1057. 'wid': wid,
  1058. 'pid':pid,
  1059. //'_unitId':unitId,
  1060. 'accepter':accepter};
  1061. new Service({serviceId:'workflowService',method:"wfBack",parameters:args})
  1062. .sentAjax(function(data){
  1063. CFW.oWin.fnAlert(message);
  1064. return;
  1065. });
  1066. }
  1067. /** 返回值 "next" 可以提交
  1068. * 返回值 "end" 可以结束
  1069. * 返回值 "next_back" 可以 提交 回退
  1070. * 返回值 "next_end" 可以 提交 结束
  1071. * 返回值 "back_next_end"可以 提交 回退 结束
  1072. * 返回值 "back_end" 可以 回退 结束
  1073. */
  1074. function canOperator(processDefId,curActDefId){
  1075. var result="";
  1076. var args = {'_processDefId':processDefId,
  1077. '_curActDefId':curActDefId};
  1078. new Service({serviceId:'workflowService',method:'showBtn',parameters:args})
  1079. .sentAjax(function(data){
  1080. result=data;
  1081. });
  1082. return result;
  1083. }
  1084. /**批量提交接口【弹出选择人框(该方法仅供流程提交 使用)】
  1085. * @param pid:流程实例ID (多个流程用 英文逗号 ','隔开)
  1086. * @param wid:环节实例ID (多个流程用 英文逗号 ','隔开)
  1087. * @param processDefId:流程实例ID 例如:cbdj_cbdj
  1088. * @return curActDefId:当前环节ID 例如:cbdj_cbdj_ch
  1089. * callBackFunction 回调函数;不需要回调传null
  1090. */
  1091. function batchSubmit(pid,wid,processDefId,curActDefId,callBackFunction,params){
  1092. var type='nextAct';
  1093. if(params==undefined){
  1094. var params=new Object();
  1095. params.actType=type;
  1096. }
  1097. params._processDefId=processDefId;
  1098. params._curActDefId=curActDefId;
  1099. var toUnitOpr = params.toUnitOpr;
  1100. var getItemOpr = params.getItemOpr;
  1101. var orgCode = params.orgCode;
  1102. var toApplyOpr = params.toApplyOpr;
  1103. var jbr = params.jbr;
  1104. new Service({serviceId:'workflowService',method:'getActs',parameters:params})
  1105. .sentAjax(function(data){
  1106. if (data == ""||data == null || data == undefined){
  1107. CFW.oWin.fnAlert('不能提交!');
  1108. return;
  1109. }
  1110. $('#accepterWindow').find('div[id=div_acts]').empty();
  1111. var actLists = data[0];
  1112. var actList = [];
  1113. actList.length = 0;
  1114. var isSelPreOpr = false;
  1115. if (type === 'backAct') {
  1116. isSelPreOpr = true;
  1117. }
  1118. if (type === 'nextAct' && getItemOpr == 'true') {
  1119. isSelPreOpr = true;
  1120. }
  1121. var actlength=actLists.length;
  1122. for (i = 0 ; i < actLists.length ;i++){
  1123. var actName = actLists[i].ACTNAME;
  1124. var actId = actLists[i].ACTID;
  1125. var oActId = actLists[i].OACTID; //原始ID
  1126. var receiver = actLists[i].RECEIVER;
  1127. var gwOrg = actLists[i].GWORG;
  1128. var gwUnitId = actLists[i].GWUNITID;
  1129. var defvOpr = actLists[i].DEFAOPR;
  1130. var operId=actLists[0]._operId;
  1131. var bae006=actLists[0]._bae006;
  1132. var unitId=actLists[0]._unitId;
  1133. var chooseBtn = '';
  1134. var first = true;
  1135. var preJbr = '';
  1136. actList[i] = {'actName':actName,'actId':actId,'oActId':oActId,'gwOrg':gwOrg,'gwUnitId':gwUnitId};
  1137. var receiverOption = '<option value="" >-请选择-</option><option value="-1" selected>岗位待办</option>';
  1138. for (var k =0; k<receiver.length;k++){
  1139. if (isSelPreOpr && first) {
  1140. if (receiver[k][0] != '') {
  1141. preJbr = receiver[k][0];
  1142. first = false;
  1143. if (toApplyOpr === 'true') {
  1144. receiverOption +="<option value="+receiver[k][0]+" selected>"+receiver[k][1]+"</option>";
  1145. break;
  1146. } else {
  1147. receiverOption +="<option value="+receiver[k][0]+">"+receiver[k][1]+"</option>";
  1148. }
  1149. } else {
  1150. first = false;
  1151. }
  1152. } else if (preJbr != receiver[k][0]){
  1153. receiverOption +="<option value="+receiver[k][0]+">"+receiver[k][1]+"</option>";
  1154. }
  1155. if ( jbr == receiver[k][0]){
  1156. chooseBtn = '<a href="javascript:void(0)" onclick="chooseSelf(\''+actId+'\',\''+jbr+'\');">&nbsp;&nbsp;自己&nbsp;&nbsp;</a>';
  1157. }
  1158. }
  1159. var acts = '<div id="workitem" class="act">'+
  1160. '<div class="actTitle">'+actName+'</div>';
  1161. if (toApplyOpr != 'true') {
  1162. var selName = "选择机构";
  1163. if(toUnitOpr == 'true') {
  1164. selName = "选择单位";
  1165. }
  1166. acts += '<div id="orgselect" class="orgSelect"><a href="javascript:void(0)" name=orgselectBtn id="'+actId+'">'+selName+'</a></div>';
  1167. }
  1168. acts += '<div id="accepter" class="accepter">'+
  1169. '接收人列表:<br/>'+
  1170. '<input type="hidden" name="actid" value="'+oActId+'" />'+
  1171. '<select size="10" id="'+actId+'_accepter" style="width:120px" >'+
  1172. receiverOption +
  1173. '</select>'+
  1174. '</div>'+
  1175. '<div id="chooseBtn_'+actId+'" class="chooseSelf"></div>'+
  1176. '</div>';
  1177. $('#accepterWindow').find('div[id=div_acts]').append(acts);
  1178. $('#accepterWindow').find('div[id=chooseBtn_'+actId+']').append(chooseBtn);
  1179. $('#accepterWindow').find('div[id=chooseBtn_'+actId+']').append('<a href="javascript:void(0)" onclick="_cancelJar(\''+actId+'_accepter\');">取消选择</a>');
  1180. $('#accepterWindow').fwwindow('open');
  1181. if (toApplyOpr != 'true') {
  1182. if (i == 0 && (defvOpr == null || defvOpr == '')) {
  1183. $("#"+actId + "_accepter",$('#accepterWindow')).val("-1");
  1184. } else {
  1185. $("#"+actId + "_accepter",$('#accepterWindow')).val(""+defvOpr);
  1186. }
  1187. }
  1188. //核三工作流选择接收人界面,目前两个接收人列表都会默认岗位代办,需要先取消选择一个,再选择一个才能提交。建议两个不默认,由用户自主选择。请检查处理。
  1189. if(actlength!=1){
  1190. $("#"+actId + "_accepter",$('#accepterWindow')).val("");
  1191. }
  1192. }
  1193. //给多个流程的选择机构按钮 注册方法
  1194. $('#accepterWindow').find('a[name=orgselectBtn]').each(function(index,target){
  1195. btnId=$(target).attr("id");
  1196. $('#accepterWindow').find('a[id='+btnId+']').click(function(){
  1197. orgSelectBatch(formname,processDefId,curActDefId,target.id,type,"",operId,bae006,unitId);
  1198. });
  1199. });
  1200. $('#accepterWindow').find('a[id=btn_cancel]').click(function(){
  1201. //disableOkBtn(false);
  1202. $('#accepterWindow').find('a[id=btn_ok]').unbind("click");
  1203. $('#accepterWindow').fwwindow('close');
  1204. });
  1205. //每次绑定框架确定按钮先解绑,避免多次绑定造成重复提交
  1206. $('#accepterWindow').find('a[id=btn_ok]').unbind("click").click(function(){
  1207. BatchbtnOk(actList,false,pid,wid,callBackFunction);
  1208. return false;
  1209. });
  1210. });
  1211. return;
  1212. }
  1213. /**
  1214. * 批量提交功能BatchbtnOk(此方法来源于btnOk )
  1215. * @param formname 表单名
  1216. * @param actList 选择的环节对象
  1217. * @param isPost 是否直接提交岗位待办
  1218. */
  1219. function BatchbtnOk(actList,isPost,pid,wid,callBackFunction){
  1220. try{
  1221. if (actList != null){
  1222. var accepterStr = "";
  1223. var i = 0;
  1224. var nextDefId = "";
  1225. var nextDefName = "";
  1226. var accNum = 0;
  1227. if (isPost) {
  1228. if (actList.length > 1) {
  1229. CFW.oWin.fnAlert('存在多个可选择的环节,不允许直接提交当前任务!');
  1230. disableOkBtn(false);
  1231. return;
  1232. } else {
  1233. var accepterVal=$("#"+formname+"_accepterId").val();
  1234. if(accepterVal!=null&&accepterVal!=''){
  1235. accepterStr = accepterVal+",";
  1236. }else{
  1237. accepterStr = ",";
  1238. }
  1239. nextDefId = actList[0].oActId;
  1240. nextDefName = actList[0].actName;
  1241. if (actList[0].gwOrg != '') {
  1242. $("#"+formname+"_bae006").val(actList[0].gwOrg);
  1243. }
  1244. if (actList[0].gwUnitId != '') {
  1245. $("#"+formname+"_unitId").val(actList[0].gwUnitId);
  1246. }
  1247. }
  1248. } else {
  1249. for ( ; i < actList.length ; i++){
  1250. var actObj = actList[i];
  1251. var accepter = $("#"+actObj.actId+"_accepter").val();
  1252. if (!CFW.oValid.fnIsNull(accepter)) {
  1253. accNum++;
  1254. nextDefId = actObj.oActId;
  1255. nextDefName = actObj.actName;
  1256. //岗位待办
  1257. if (accepter == "-1"){
  1258. accepter = "";
  1259. if (actObj.gwOrg != '') {
  1260. $("#"+formname+"_bae006").val(actObj.gwOrg);
  1261. }
  1262. if (actObj.gwUnitId != '') {
  1263. $("#"+formname+"_unitId").val(actObj.gwUnitId);
  1264. }
  1265. }
  1266. accepterStr += accepter + ",";
  1267. } else {
  1268. accepter = "";
  1269. }
  1270. /*if (accepter == null || $.trim(accepter) == '' ) {
  1271. CFW.oWin.fnAlert('请选择"'+actObj.actName+'"接收人!');
  1272. disableOkBtn(false);
  1273. return;
  1274. }*/
  1275. //accepterStr += actObj.actId + "=" + accepter + ",";
  1276. }
  1277. if ( accNum == 0){
  1278. CFW.oWin.fnAlert('请为环节选择接收人!');
  1279. disableOkBtn(false);
  1280. return;
  1281. }
  1282. if ( accNum != 1){
  1283. CFW.oWin.fnAlert('只能为其中某个环节选择接收人!'); //多环节”或"
  1284. disableOkBtn(false);
  1285. return;
  1286. }
  1287. }
  1288. accepterStr = accepterStr.substring(0, accepterStr.lastIndexOf(","));
  1289. // $("#"+formname+"_accepterId").val(accepterStr);
  1290. // $("#"+formname+"_nextActDefId").val(nextDefId);
  1291. // $("#"+formname+"_nextActDefName").val(nextDefName);
  1292. // $("#"+formname+"_wfState").val("all");
  1293. //校验
  1294. // if (!_wfJY(formname,nextDefName)) {
  1295. // disableOkBtn(false);
  1296. // return;
  1297. // }
  1298. // _createFrame(formname,nextDefName);
  1299. // disableOkBtn(false);
  1300. // eval(formStr);
  1301. wfClose("mainDialog");
  1302. var args = {'actType':'1',
  1303. 'wid': wid,
  1304. 'pid':pid,
  1305. 'nextActId':nextDefId,
  1306. 'accepter':accepterStr};
  1307. new Service({serviceId:'workflowService',method:'wfBatchSubmit',parameters:args})
  1308. .sentAjax(function(data){
  1309. CFW.oWin.fnAlert(data);
  1310. $('#accepterWindow').fwwindow('close');
  1311. if(callBackFunction&&typeof(callBackFunction)=="function"){
  1312. callBackFunction();
  1313. }
  1314. return;
  1315. });
  1316. } else {
  1317. CFW.oWin.fnAlert('提交任务出错!');
  1318. disableOkBtn(false);
  1319. _resetData(formname);
  1320. }
  1321. }catch(ex){
  1322. alert(ex.name+","+ ex.message);
  1323. }
  1324. }
  1325. /**
  1326. * 选择机构
  1327. * @param formname 表单名
  1328. * @param actId 环节id
  1329. */
  1330. function orgSelectBatch(formname,processDefId,curActDefId,actId,type,toUnitOpr,jbr,bae006){
  1331. var args = {'_processDefId':processDefId,
  1332. '_curActDefId':curActDefId,
  1333. '_nextActDefId':actId,
  1334. 'pid':$("#"+formname+"_pid").val(),
  1335. 'wid':$("#"+formname+"_wid").val(),
  1336. 'cascade':$("#"+formname+"_cascade").val(),
  1337. 'jbr':jbr,
  1338. '_toUnitOpr':toUnitOpr,
  1339. 'actType':type};
  1340. if (toUnitOpr != 'true') {
  1341. if (bae006 != null && bae006.length > 4){
  1342. bae006 = bae006.substr(0,4);
  1343. }
  1344. var rst = CFW.oWin.fnOpenOrgTree({root:bae006,whereCls:'1=1'});
  1345. if(!rst){//如果没有返回值的处理
  1346. //rst = {key:'',title:''};
  1347. return;
  1348. }
  1349. //获取机构树和机构名称
  1350. var orgCode =rst.key;
  1351. var orgName = rst.title;
  1352. args['orgCode'] = orgCode;
  1353. $("#"+formname+"_bae006").val(orgCode);
  1354. } else {
  1355. var href = contextPath +"/jsp/framework/unitQuery.jsp?bae006="+bae006;
  1356. var resp = FW.showModalDialog(href);
  1357. var unitId = resp.unitId;
  1358. var orgCode = resp.orgCode;
  1359. if (unitId == undefined || unitId == null || $.trim(unitId) == '') {
  1360. return;
  1361. }
  1362. args['_unitId'] = unitId;
  1363. args['orgCode'] = orgCode;
  1364. $("#"+formname+"_unitId").val(unitId);
  1365. $("#"+formname+"_bae006").val(orgCode);
  1366. }
  1367. new Service({serviceId:'wfService',method:'getRecevier',parameters:args})
  1368. .sentAjax(function(data){
  1369. if (data == null || data == undefined){
  1370. CFW.oWin.fnAlert('获取接收人失败!');
  1371. return;
  1372. }
  1373. var actLists = data[0];
  1374. var receiver = actLists.RECEIVER;
  1375. var receiverOption = "<option value=\"\" >-请选择-</option><option value='-1' selected>岗位待办</option>";
  1376. var chooseBtn = '';
  1377. var isSelPreOpr = false;
  1378. if (type === 'backAct') {
  1379. isSelPreOpr = true;
  1380. }
  1381. var first = true;
  1382. var preJbr = '';
  1383. var toApplyOpr = $("#"+formname+"_toApplyOpr").val();
  1384. for (var k =0; k<receiver.length;k++){
  1385. if (isSelPreOpr && first) {
  1386. if (receiver[k][0] != '') {
  1387. preJbr = receiver[k][0];
  1388. first = false;
  1389. if (toApplyOpr === 'true') {
  1390. receiverOption +="<option value="+receiver[k][0]+" selected>"+receiver[k][1]+"</option>";
  1391. break;
  1392. } else {
  1393. receiverOption +="<option value="+receiver[k][0]+">"+receiver[k][1]+"</option>";
  1394. }
  1395. } else {
  1396. first = false;
  1397. }
  1398. } else if (preJbr != receiver[k][0]){
  1399. receiverOption +="<option value="+receiver[k][0]+">"+receiver[k][1]+"</option>";
  1400. }
  1401. if ( jbr == receiver[k][0]){
  1402. chooseBtn = '<a href="javascript:void(0)" onclick="chooseSelf(\''+actId+'\',\''+jbr+'\');">&nbsp;&nbsp;自己&nbsp;&nbsp;</a>';
  1403. }
  1404. }
  1405. $('#accepterWindow').find('select[id='+actId + '_accepter]').empty().append(receiverOption);
  1406. $('#accepterWindow').find("#chooseBtn_"+actId).empty().append(chooseBtn);
  1407. $('#accepterWindow').find("#chooseBtn_"+actId).append('<a href="javascript:void(0)" onclick="_cancelJar(\''+actId+'_accepter\');">取消选择</a>');
  1408. });
  1409. }
  1410. function showProcessGraph(ctx,processDefId,pid,wid){
  1411. var title = encodeURIComponent('流程图查看');
  1412. var url = ctx+"/jsp/framework/showProcessGraph.jsp?processDefId="+ processDefId+"&processInstanceId=" + pid + "&currentWiId=" + wid+ "&title=" + title + "&_t=" + new Date().getTime();
  1413. var position = "resizable:1;status:0;help:0;scroll:1;center:1;dialogWidth:850px;dialogHeight:450px";
  1414. window.showModelessDialog(url,window,position);
  1415. }
  1416. //流程图展示--新版本
  1417. function wfPlay(processDefid,pid,ctx){
  1418. if(ctx=='' && window.contextPath) {
  1419. ctx=contextPath;
  1420. }
  1421. var url="";
  1422. if(pid==""){
  1423. url = ctx+ '/player/design/show.jsp?id='+ processDefid;
  1424. }else{
  1425. url = ctx+ '/player/design/fw_play.jsp?id='+pid;
  1426. }
  1427. if(window.showModalDialog == undefined){
  1428. //var iWidth = 800;
  1429. //var iHeight = 500;
  1430. //var iTop = (window.screen.availHeight - 30 - iHeight) / 2;
  1431. //var iLeft = (window.screen.availWidth - 10 - iWidth) / 2;
  1432. //var win = window.open(url, "流程图展示", "width=" + iWidth + ", height=" + iHeight + ",top=" + iTop + ",left=" + iLeft + ",toolbar=no, menubar=no, scrollbars=no, resizable=0,location=no, status=no,alwaysRaised=yes,depended=yes");
  1433. $('#mainContent').attr("src",url);
  1434. playDialog.open();
  1435. }else{
  1436. var position = "resizable:1;status:0;help:0;scroll:1;center:1;dialogWidth:1050px;dialogHeight:550px";
  1437. window.showModalDialog(url,window,position);
  1438. }
  1439. }
  1440. /**********************************************************与工作流系统整合(嵌套)START **************************************************************************/
  1441. //流程图展示--新版本
  1442. function wfbpmPlay(processDefid,pid,ctx){
  1443. if(wfplayurl==""){
  1444. alert("请联系管理员配置流程图查看功能!");
  1445. return;
  1446. }
  1447. var url=wfplayurl+"?processInstanceId="+pid;
  1448. var position = "resizable:0;status:0;help:0;scroll:0;center:1;dialogWidth:1250px;dialogHeight:700px";
  1449. window.showModalDialog(url,window,position);
  1450. }
  1451. function toJBPMWork(formname,pid,btnobj,opType,roleid){
  1452. $("#"+formname+"_opType").val(opType);
  1453. $("#"+formname+"_transition").val($(btnobj).attr("keycomb"));
  1454. //表示结束流程,不需要选择接收人
  1455. if(roleid=="END"){
  1456. $("#reciver_div").css({"display":"none"});
  1457. $("#div_acts").empty();
  1458. $("#btn_cancel").click(function(){
  1459. wfClose('bpmMainDialog');
  1460. disableOkBtn(false);
  1461. $("#btn_ok").unbind("click");
  1462. return false;
  1463. });
  1464. //每次绑定框架确定按钮先解绑,避免多次绑定造成重复提交
  1465. $("#btn_ok").unbind("click").click(function(){
  1466. var comment = $("#"+formname+"_comment").val();
  1467. var orgCode = $("#"+formname+"_bae006").val();
  1468. if(comment==""){
  1469. CFW.oTip.fnValidateTip($("#"+formname+"_comment"),"不能为空!");
  1470. return false;
  1471. }
  1472. var formStr = ' document.'+formname+'.submit();';
  1473. eval(formStr);
  1474. disableOkBtn("true");
  1475. return false;
  1476. });
  1477. }else{
  1478. getBpmActs(formname,btnobj,opType,roleid);
  1479. }
  1480. wfOpen('bpmMainDialog');
  1481. }
  1482. /**
  1483. * 显示可选环节
  1484. * @param formname 表单名
  1485. * @param transition 节点名
  1486. * @param opType 环节类型 nextAct or backAct
  1487. */
  1488. function getBpmActs(formname,btnobj,opType,roleid){
  1489. var jbr = $("#"+formname+"_operId").val();
  1490. var bae006 = $("#"+formname+"_bae006").val();
  1491. var unitId = $("#"+formname+"_unitId").val();
  1492. var pid=$("#"+formname+"_pid").val();
  1493. var toUnitOpr = $("#"+formname+"_toUnitOpr").val();
  1494. var getItemOpr = $("#"+formname+"_getItemOpr").val();
  1495. var toApplyOpr = $("#"+formname+"_toApplyOpr").val();
  1496. var cascade = $("#"+formname+"_cascade").val();
  1497. var nodeName=$(btnobj).attr("name");
  1498. if(nodeName=="wf_btn_back"){
  1499. nodeName=$("#"+formname+"_previousNodeName").val();//回退到上一步处理人
  1500. }
  1501. var args = {
  1502. 'roleid':roleid,
  1503. 'pid':pid,
  1504. 'opType':'nodeProperty',
  1505. 'nodeName':nodeName,
  1506. 'orgCode':bae006,
  1507. 'unitId':unitId,
  1508. 'cascade':cascade
  1509. };
  1510. $("#div_acts").empty();
  1511. new Service({serviceId:'bpmService',method:'getOperators',parameters:args})
  1512. .sentAjax(function(data){
  1513. if (data == null || data == undefined){
  1514. CFW.oWin.fnAlert('获取任务失败!');
  1515. return;
  1516. }
  1517. var receiver = data[0];
  1518. $("#reciver_div").css({"display":"block"});
  1519. // $("#div_acts").css({"display":"block"});
  1520. $("#div_acts").empty();
  1521. var isSelPreOpr = false;
  1522. var preJbr = '';
  1523. var first = true;
  1524. var chooseBtn="";
  1525. if (opType === 'rollback') {
  1526. isSelPreOpr = true;
  1527. }
  1528. if (opType === 'signal' && getItemOpr == 'true') {//提交给定环节经办人
  1529. isSelPreOpr = true;
  1530. }
  1531. var receiverOption = "<option value=\"\" >-请选择-</option><option value='-1' selected>岗位待办</option>";
  1532. for (var k =0; k<receiver.length;k++){
  1533. receiverOption +="<option value="+receiver[k].OPERID+">"+receiver[k].OPERNAME+"</option>";
  1534. if ( jbr == receiver[k].OPERID){
  1535. chooseBtn = '<a href="javascript:void(0)" onclick="chooseSelf(\''+pid+'\',\''+jbr+'\');">&nbsp;&nbsp;自己&nbsp;&nbsp;</a>';
  1536. }
  1537. }
  1538. var acts = '<div id="workitem" class="act">'+
  1539. '<div class="actTitle">'+nodeName+'</div>';
  1540. if (toApplyOpr != 'true') {
  1541. var selName = "选择机构";
  1542. if(toUnitOpr == 'true') {
  1543. selName = "选择单位";
  1544. }
  1545. acts += '<div id="orgselect" class="orgSelect"><a href="javascript:void(0)" onclick="orgSelectjbpm(\''+formname+"','"+roleid+'\',\''+pid+'\',\''+toUnitOpr+'\')">'+selName+'</a></div>';
  1546. }
  1547. acts += '<div id="accepter" class="accepter">'+
  1548. '<input type="hidden" name="actid" value="'+pid+'" />'+
  1549. '<select size="10" id="'+pid+'_accepter" name="accepter" style="width:120px" >'+
  1550. receiverOption +
  1551. '</select>'+
  1552. '</div>'+
  1553. '<div id="chooseBtn_'+pid+'" class="chooseSelf"></div>'+
  1554. '</div>';
  1555. $("#bpmMainWindow #div_acts").append(acts);
  1556. $("#bpmMainWindow #chooseBtn_"+pid).empty().append(chooseBtn);
  1557. $("#bpmMainWindow #chooseBtn_"+pid).append('<a href="javascript:void(0)" onclick="_cancelJar(\''+pid+'_accepter\');">取消选择</a>');
  1558. $("#bpmMainWindow #btn_cancel").click(function(){
  1559. wfClose('bpmMainDialog');
  1560. disableOkBtn(false);
  1561. $("#btn_ok").unbind("click");
  1562. return false;
  1563. });
  1564. //每次绑定框架确定按钮先解绑,避免多次绑定造成重复提交
  1565. $("#bpmMainWindow #btn_ok").unbind("click").click(function(){
  1566. var comment = $("#"+formname+"_comment").val();
  1567. if(comment==""){
  1568. CFW.oTip.fnValidateTip($("#"+formname+"_comment"),"不能为空!");
  1569. return false;
  1570. }
  1571. var accepter=$("#bpmMainWindow #"+pid+"_accepter").val();
  1572. if(accepter!="-1"){
  1573. var chooseAct=false;
  1574. for (var k =0; k<receiver.length;k++){
  1575. if(receiver[k].OPERID==accepter){
  1576. chooseAct=true;
  1577. $("#"+formname+"_accepterOrg").val(receiver[k].BAE001);
  1578. $("#"+formname+"_accepterUnitId").val(receiver[k].OPERUNITID);
  1579. }
  1580. }
  1581. if(!chooseAct){
  1582. alert("接收人不能为空!");
  1583. return false;
  1584. }
  1585. }
  1586. var formStr = ' document.'+formname+'.submit();';
  1587. eval(formStr);
  1588. disableOkBtn("true");
  1589. return false;
  1590. });
  1591. });
  1592. }
  1593. /**
  1594. * 选择机构
  1595. * @param formname 表单名
  1596. * @param actId 环节id
  1597. */
  1598. function orgSelectjbpm(formname,roleid,pid,toUnitOpr){
  1599. var jbr = $("#"+formname+"_operId").val();
  1600. var bae006 = $("#"+formname+"_bae006").val();
  1601. var opType= $("#"+formname+"_opType").val();
  1602. var cascade = $("#"+formname+"_cascade").val();
  1603. var args = {'pid':$("#"+formname+"_pid").val(),
  1604. 'cascade':cascade,
  1605. 'roleid':roleid,
  1606. '_toUnitOpr':toUnitOpr,
  1607. 'opType':'nodeProperty'};
  1608. if (toUnitOpr != 'true') {
  1609. if (bae006 != null && bae006.length > 4){
  1610. bae006 = bae006.substr(0,4);
  1611. }
  1612. var rst = CFW.oWin.fnOpenOrgTree({root:bae006,whereCls:'1=1'});
  1613. if(!rst){//如果没有返回值的处理
  1614. //rst = {key:'',title:''};
  1615. return;
  1616. }
  1617. //获取机构树和机构名称
  1618. var orgCode =rst.key;
  1619. var orgName = rst.title;
  1620. args['orgCode'] = orgCode;
  1621. $("#"+formname+"_accepterOrg").val(orgCode);
  1622. } else {
  1623. var href = contextPath +"/jsp/framework/unitQuery.jsp?bae006="+bae006;
  1624. var resp = FW.showModalDialog(href);
  1625. var unitId = resp.unitId;
  1626. var orgCode = resp.orgCode;
  1627. if (unitId == undefined || unitId == null || $.trim(unitId) == '') {
  1628. return;
  1629. }
  1630. args['unitId'] = unitId;
  1631. args['orgCode'] = orgCode;
  1632. $("#"+formname+"_accepterUnitId").val(unitId);
  1633. $("#"+formname+"_accepterOrg").val(orgCode);
  1634. }
  1635. new Service({serviceId:'bpmService',method:'getOperators',parameters:args})
  1636. .sentAjax(function(data){
  1637. if (data == null || data == undefined){
  1638. CFW.oWin.fnAlert('获取接收人失败!');
  1639. return;
  1640. }
  1641. var receiver = data[0];
  1642. var selectObj = $("#"+pid + "_accepter");
  1643. var chooseBtn = '';
  1644. var isSelPreOpr = false;
  1645. if (opType === 'rollback') {
  1646. isSelPreOpr = true;
  1647. toApplyOpr='true';
  1648. }
  1649. if (opType === 'nextAct' && getItemOpr == 'true') {
  1650. isSelPreOpr = true;
  1651. }
  1652. var receiverOption = "<option value=\"\" >-请选择-</option><option value='-1' selected>岗位待办</option>";
  1653. for (var k =0; k<receiver.length;k++){
  1654. receiverOption +="<option value="+receiver[k].OPERID+">"+receiver[k].OPERNAME+"</option>";
  1655. if ( jbr == receiver[k].OPERID){
  1656. chooseBtn = '<a href="javascript:void(0)" onclick="chooseSelf(\''+pid+'\',\''+jbr+'\');">&nbsp;&nbsp;自己&nbsp;&nbsp;</a>';
  1657. }
  1658. }
  1659. selectObj.empty().append(receiverOption);
  1660. $("#chooseBtn_"+pid).empty().append(chooseBtn);
  1661. $("#chooseBtn_"+pid).append('<a href="javascript:void(0)" onclick="_cancelJar(\''+pid+'_accepter\');">取消选择</a>');
  1662. });
  1663. }
  1664. /**********************************************************与工作流系统整合(嵌套)END **************************************************************************/