approve.js 98 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164
  1. /**************************提示:只允许修改开发区域,其他区域会被覆盖!********************************/
  2. mod.definePage("workflow/metas/js/approve",function(waf,wfCommonUtil){
  3. var _public = {},_private = {},me=_self;
  4. var okPolicy = new Array();
  5. var noPolicy = new Array();
  6. var assign = {};
  7. var selnextPersons={};
  8. var transId = null;
  9. var locationurl = waf.getUrlParams(document.location.href);
  10. var approvetype = locationurl.type;
  11. var passId = locationurl.passid;
  12. var sourceIDs = locationurl.sourceIDs;
  13. var msgId=locationurl.msgId;
  14. var showerror = "";
  15. var nextActIndex = "#nextAct";
  16. var approveOpinions={};
  17. var isFirst=true;
  18. var approvePolicy={};
  19. var riskInsight=false;
  20. var billInsightOption={};
  21. /**
  22. * 初始化CA认证配置
  23. */
  24. var caConfig = {
  25. caConfigInfo:null,
  26. rootDiv:null,
  27. CA_plainText:null,
  28. CA_signature:null,
  29. plainTextMap:null,
  30. plainSignatureMap:null
  31. };
  32. //@beginPublic
  33. waf.extend(_public,{
  34. //控件事件描述:
  35. submit:function(event,value){
  36. return _private.submit(event,value);
  37. }
  38. ,
  39. //控件事件描述:
  40. save:function(event,value){
  41. return _private.save(event,value);
  42. }
  43. ,
  44. //控件事件描述:
  45. deliver:function(event,value){
  46. return _private.deliver(event,value);
  47. }
  48. ,
  49. //控件事件描述:
  50. passAssignment:function(event,value){
  51. return _private.passAssignment(event,value);
  52. }
  53. ,
  54. //控件事件描述:
  55. kickback:function(event,value){
  56. return _private.kickback(event,value);
  57. }
  58. ,
  59. //控件事件描述:
  60. appendActivity:function(event,value){
  61. return _private.appendActivity(event,value);
  62. }
  63. ,
  64. //控件事件描述:
  65. dynamicSign:function(event,value){
  66. return _private.dynamicSign(event,value);
  67. }
  68. ,
  69. //控件事件描述:
  70. jumpto:function(event,value){
  71. return _private.jumpto(event,value);
  72. }
  73. ,
  74. //控件事件描述:
  75. viewProcessDiagram:function(event,value){
  76. return _private.viewProcessDiagram(event,value);
  77. }
  78. ,
  79. //控件事件描述:
  80. billImage:function(event,value){
  81. return _private.billImage(event,value);
  82. }
  83. ,
  84. //控件事件描述:
  85. bill:function(event,value){
  86. return _private.bill(event,value);
  87. }
  88. ,
  89. //控件事件描述:
  90. showoperate:function(event,value){
  91. return _private.showoperate(event,value);
  92. }
  93. ,
  94. //控件事件描述:
  95. nextActs:function(event,ui){
  96. return _private.nextActs(event,ui);
  97. }
  98. ,
  99. //控件事件描述:
  100. modifynextActs:function(event,value){
  101. return _private.modifynextActs(event,value);
  102. }
  103. ,
  104. //控件事件描述:
  105. changePolicy:function(event,ui){
  106. return _private.changePolicy(event,ui);
  107. }
  108. ,
  109. //控件事件描述:
  110. changeselPolicy:function(event,ui){
  111. return _private.changeselPolicy(event,ui);
  112. }
  113. ,
  114. //控件事件描述:
  115. myPhrase:function(event,value){
  116. return _private.myPhrase(event,value);
  117. }
  118. ,
  119. //控件事件描述:
  120. openPerson:function(event,value){
  121. return _private.openPerson(event,value);
  122. }
  123. ,
  124. //控件事件描述:
  125. esignatureOnClick:function(event,ui){
  126. return _private.esignatureOnClick(event,ui);
  127. }
  128. ,
  129. //控件事件描述:
  130. nextAct:function(event,ui){
  131. return _private.nextAct(event,ui);
  132. }
  133. ,
  134. //控件事件描述:
  135. modifynextAct:function(event,value){
  136. return _private.modifynextAct(event,value);
  137. }
  138. ,
  139. //页面事件描述:
  140. pageOnload:function(e){
  141. return _private.pageOnload(e);
  142. }
  143. ,
  144. //页面事件描述:
  145. pageOnRenderBefore:function(e){
  146. return _private.pageOnRenderBefore(e);
  147. }
  148. ,
  149. //页面事件描述:
  150. phrasedel:function(e){
  151. return _private.phrasedel(e);
  152. }
  153. ,
  154. //页面事件描述:
  155. phrasesure:function(e){
  156. return _private.phrasesure(e);
  157. }
  158. ,
  159. addphrase:function(e){
  160. return _private.addphrase(e);
  161. }
  162. ,
  163. //页面事件描述:
  164. phraseback:function(e){
  165. return _private.phraseback(e);
  166. }
  167. ,
  168. //页面事件描述:
  169. phraseadd:function(e){
  170. return _private.phraseadd(e);
  171. }
  172. ,
  173. //页面函数描述:$event.get("desc")
  174. reloadTranId:function(){
  175. return _private.reloadTranId();
  176. }
  177. ,
  178. //页面函数描述:$event.get("desc")
  179. getnextacts:function(){
  180. return _private.getnextacts();
  181. }
  182. ,
  183. //页面函数描述:$event.get("desc")
  184. showtab:function(){
  185. return _private.showtab();
  186. }
  187. ,
  188. //页面函数描述:$event.get("desc")
  189. setmanualdecision:function(){
  190. return _private.setmanualdecision();
  191. }
  192. ,
  193. //页面函数描述:$event.get("desc")
  194. setmodifynextAct:function(){
  195. return _private.setmodifynextAct();
  196. }
  197. ,
  198. //页面函数描述:批量审批内嵌列表界面
  199. getbatchlist:function(){
  200. return _private.getbatchlist();
  201. }
  202. ,
  203. //页面函数描述:显示内嵌单据
  204. displayBillInfo:function(url){
  205. return _private.displayBillInfo(url);
  206. }
  207. ,
  208. //页面函数描述:$event.get("desc")
  209. getPolicy:function(approveValueStr){
  210. return _private.getPolicy(approveValueStr);
  211. }
  212. ,
  213. //页面函数描述:$event.get("desc")
  214. setPolicy:function(val){
  215. return _private.setPolicy(val);
  216. }
  217. ,
  218. //页面函数描述:$event.get("desc")
  219. isNeedDefaultOption:function(vals){
  220. return _private.isNeedDefaultOption(vals);
  221. }
  222. ,
  223. //页面函数描述:$event.get("desc")
  224. setsendmailormsg:function(isOpenMessageSendOnUI,notifyNextBySMS,notifyNextByMail){
  225. return _private.setsendmailormsg(isOpenMessageSendOnUI,notifyNextBySMS,notifyNextByMail);
  226. }
  227. ,
  228. //页面函数描述:$event.get("desc")
  229. resizePage:function(){
  230. return _private.resizePage();
  231. }
  232. ,
  233. //页面函数描述:$event.get("desc")
  234. showapprovehis:function(procInstId){
  235. return _private.showapprovehis(procInstId);
  236. }
  237. ,
  238. //页面函数描述:$event.get("desc")
  239. showbtn:function(){
  240. return _private.showbtn();
  241. }
  242. ,
  243. //页面函数描述:$event.get("desc")
  244. setselnextperson:function(actId,name,id){
  245. return _private.setselnextperson(actId,name,id);
  246. }
  247. ,
  248. //页面函数描述:$event.get("desc")
  249. loadNextActs:function(){
  250. return _private.loadNextActs();
  251. }
  252. ,
  253. //页面函数描述:$event.get("desc")
  254. getOpinion:function(actInstId,assignId,billId){
  255. return _private.getOpinion(actInstId,assignId,billId);
  256. }
  257. ,
  258. //页面函数描述:$event.get("desc")
  259. getphrase:function(){
  260. return _private.getphrase();
  261. }
  262. ,
  263. //页面函数描述:$event.get("desc")
  264. setselnextactperson:function(resultStr){
  265. return _private.setselnextactperson(resultStr);
  266. }
  267. ,
  268. //页面函数描述:$event.get("desc")
  269. shownextActs:function(nextactname,ui){
  270. return _private.shownextActs(nextactname,ui);
  271. }
  272. ,
  273. //页面函数描述:传阅反馈提交
  274. passComentsubmit:function(){
  275. return _private.passComentsubmit();
  276. }
  277. ,
  278. //页面函数描述:初始化加载CA
  279. initCAConfig:function(tCAConfig){
  280. return _private.initCAConfig(tCAConfig);
  281. }
  282. ,
  283. //页面函数描述:批量提交的处理CA
  284. batchSubmitForCA:function(){
  285. return _private.batchSubmitForCA();
  286. }
  287. ,
  288. //页面函数描述:CA认证调用第三方js,弹出密码校验处理,isBatch 是否批量
  289. checkCAPassword:function(isBatch){
  290. return _private.checkCAPassword(isBatch);
  291. }
  292. ,
  293. //页面函数描述:批量审批提交
  294. batchSubmit:function(){
  295. return _private.batchSubmit();
  296. }
  297. ,
  298. //页面函数描述:获取批量审批所选信息
  299. getbatchid:function(){
  300. return _private.getbatchid();
  301. }
  302. ,
  303. //页面函数描述:批量审批提交
  304. _batchsubmit:function(info){
  305. return _private._batchsubmit(info);
  306. }
  307. ,
  308. //页面函数描述:获取提交审批信息
  309. getApprove:function(){
  310. return _private.getApprove();
  311. }
  312. ,
  313. //页面函数描述:批量审批,CA获取业务单据签名的明码,与加密后的密文
  314. beforeBatchSubmitSigature:function(selectBillIds){
  315. return _private.beforeBatchSubmitSigature(selectBillIds);
  316. }
  317. ,
  318. //页面函数描述:提交时获取下一步参与人信息
  319. getNextPersons:function(isSave){
  320. return _private.getNextPersons(isSave);
  321. }
  322. ,
  323. //页面函数描述:决策提交
  324. manualdecisionsubmit:function(){
  325. return _private.manualdecisionsubmit();
  326. }
  327. ,
  328. //页面函数描述:审批提交的处理CA
  329. beforeInnerSubmit:function(){
  330. return _private.beforeInnerSubmit();
  331. }
  332. ,
  333. //页面函数描述:审批提交单据校验
  334. innerSubmit:function(){
  335. return _private.innerSubmit();
  336. }
  337. ,
  338. //页面函数描述:审批提交
  339. _submit:function(isReadOnly){
  340. return _private._submit(isReadOnly);
  341. }
  342. ,
  343. //页面函数描述:审批提交前对加签数据进行处理,获取加签的数据
  344. beforeSubmitSigature:function(){
  345. return _private.beforeSubmitSigature();
  346. }
  347. ,
  348. //页面函数描述:对数字类型进行处理
  349. toDecimal:function(src, pos){
  350. return _private.toDecimal(src, pos);
  351. }
  352. ,
  353. //页面函数描述:检查是否保存
  354. checkIsSave:function(callback,type){
  355. return _private.checkIsSave(callback,type);
  356. }
  357. ,
  358. //页面函数描述:审批保存
  359. _save:function(isReadOnly){
  360. return _private._save(isReadOnly);
  361. }
  362. ,
  363. //页面函数描述:关闭当前页面
  364. backto:function(){
  365. return _private.backto();
  366. }
  367. ,
  368. //页面函数描述:流程附件html片段
  369. addUploadHtml:function(){
  370. return _private.addUploadHtml();
  371. }
  372. ,
  373. //页面函数描述:获取附件数量及详情
  374. getAttchmentcount:function(){
  375. return _private.getAttchmentcount();
  376. }
  377. ,
  378. //页面函数描述:选择附件事件
  379. selattachment:function(item,attcreater,beizhu){
  380. return _private.selattachment(item,attcreater,beizhu);
  381. }
  382. ,
  383. //页面函数描述:附件删除
  384. attachmentDelete:function(item,id){
  385. return _private.attachmentDelete(item,id);
  386. }
  387. ,
  388. //页面函数描述:附件预览
  389. attachmentView:function(id,type){
  390. return _private.attachmentView(id,type);
  391. }
  392. ,
  393. //页面函数描述:判断是否是waf1的单据
  394. isWaf1Bill:function(url){
  395. return _private.isWaf1Bill(url);
  396. }
  397. ,
  398. //页面函数描述:显示单据摘要
  399. messageDigest:function(){
  400. return _private.messageDigest();
  401. },
  402. jMessageAlert:function(message){
  403. return _private.jMessageAlert(message);
  404. },
  405. //控件事件描述:
  406. onselect:function(event,ui){
  407. return _private.onselect(event,ui);
  408. },
  409. //页面函数描述:保存常用审批意见
  410. addphrase:function(){
  411. return _private.addphrase();
  412. }
  413. ,
  414. //控件事件描述:
  415. openAttachmentPage:function(event,value){
  416. return _private.openAttachmentPage(event,value);
  417. }
  418. ,
  419. //页面函数描述:
  420. getAssignInfo:function(){
  421. return _private.getAssignInfo();
  422. }
  423. });
  424. _self.subscribeEvent("pageOnLoadEvent",_public.pageOnload,"after");
  425. _self.subscribeEvent("pageOnRenderEvent",_public.pageOnRenderBefore,"before");
  426. _self.subscribeEvent("phrasedelActionEvent",_public.phrasedel,"overwrite");
  427. _self.subscribeEvent("phrasesureActionEvent",_public.phrasesure,"overwrite");
  428. _self.subscribeEvent("phrasebackActionEvent",_public.phraseback,"overwrite");
  429. _self.subscribeEvent("phraseaddActionEvent",_public.phraseadd,"overwrite");
  430. //@endPublic
  431. //@beginTemplateFunctions
  432. //@endTemplateFunctions
  433. /**************************开发区域开始**********************************************/
  434. //@beginPrivate
  435. waf.extend(_private,{
  436. modifyNextAct:"#modifynextAct",
  437. charFrameId:"predictionChartIframe",
  438. curTab:"",
  439. leftPanelWidth:"",
  440. rightPanelWidth:"",
  441. isPredict:true,
  442. displayBillInfo:function (url){
  443. if(assign.attachmentMode){
  444. if(!url.endsWith("nobill.html")){
  445. url+="&hasAttachment=false";
  446. }
  447. }
  448. waf("#billFrame").wafIframe('option','src',url);
  449. },
  450. getPolicy:function(approveValueStr){
  451. if(approveValueStr==null||approveValueStr==""){
  452. approveValueStr = "0;"+_self._localeStr.WEB_AGREE+";"+_self._localeStr.WEB_AGREE+";:1;"+_self._localeStr.WEB_DISAGREE+";"+_self._localeStr.WEB_DISAGREE+";";
  453. }
  454. var strs =approveValueStr.split(":"); //字符分割
  455. for (var i=0;i<strs.length ;i++){
  456. var strTemp=strs[i].split(";");
  457. var key = strTemp[0];
  458. var text = strTemp[1];
  459. var type = strTemp.length == 2 ? _self._localeStr.WEB_ALL : strTemp[2];
  460. var line = strTemp.length < 4 ? "" : strTemp[3];
  461. var o={};
  462. o.alias=text;
  463. o.value=key;
  464. if ("agree"==type || type==_self._localeStr.WEB_AGREE || "同意"==type) {
  465. okPolicy.push(o);
  466. } else if ("disagree"==type || type==_self._localeStr.WEB_DISAGREE || "不同意"==type) {
  467. noPolicy.push(o);
  468. } else if ("all"==type || type==_self._localeStr.WEB_ALL || "全部"==type) {
  469. okPolicy.push(o);
  470. noPolicy.push(o);
  471. }
  472. }
  473. },
  474. setPolicy:function(val){
  475. if(val=="true"){
  476. if(isFirst){
  477. isFirst=false;
  478. }else{
  479. approveOpinions.disagree = $("#approveOpinion").val();
  480. approvePolicy.disagree = waf("#policy").wafSelect("getValue");
  481. }
  482. if(approvePolicy.agree){
  483. waf("#policy").wafSelect("setValue",approvePolicy.agree);
  484. }
  485. $("#approveOpinion").val(approveOpinions.agree);
  486. waf("#policy").wafSelect("option","enumSource", okPolicy);
  487. }else{
  488. if(isFirst){
  489. isFirst=false;
  490. }else{
  491. approveOpinions.agree = $("#approveOpinion").val();
  492. approvePolicy.agree = waf("#policy").wafSelect("getValue");
  493. }
  494. if(approvePolicy.disagree){
  495. waf("#policy").wafSelect("setValue",approvePolicy.disagree);
  496. }
  497. $("#approveOpinion").val(approveOpinions.disagree);
  498. waf("#policy").wafSelect("option","enumSource", noPolicy);
  499. }
  500. _private.reloadTranId();
  501. if(waf(nextActIndex).wafCheckbox("isChecked")){
  502. _private.loadNextActs();
  503. }
  504. },
  505. isNeedDefaultOption:function(vals){
  506. if(assign.isNeedDefaultOption){
  507. waf("#approveOpinion").val(vals);
  508. }
  509. if(assign.defaultOpinion!=null&&assign.defaultOpinion!=""){
  510. waf("#approveOpinion").val(assign.defaultOpinion);
  511. }
  512. },
  513. getDefaultOption:function(vals){
  514. if(assign.isNeedDefaultOption){
  515. approveOpinions={agree:_self._localeStr.WEB_AGREE,disagree:_self._localeStr.WEB_DISAGREE};
  516. }
  517. if(assign.defaultOpinion!=null&&assign.defaultOpinion!=""){
  518. approveOpinions={agree:assign.defaultOpinion,disagree:assign.defaultOpinion};
  519. }
  520. },
  521. setsendmailormsg:function(isOpenMessageSendOnUI,notifyNextBySMS,notifyNextByMail){
  522. waf("#issendmsgormail").wafPanel("option","hidden",!isOpenMessageSendOnUI);
  523. waf("#sendmsg").wafCheckbox("option","hidden",!isOpenMessageSendOnUI);
  524. waf("#sendmail").wafCheckbox("option","hidden",!isOpenMessageSendOnUI);
  525. waf("#sendmsg").wafCheckbox("setChecked",notifyNextBySMS);
  526. waf("#sendmail").wafCheckbox("setChecked",notifyNextByMail);
  527. },
  528. resizePage:function (){
  529. var rightwidth = Math.ceil((300/window.innerWidth)*100);
  530. if(window.screen.width<=1366){
  531. rightwidth = 21;
  532. }
  533. var leftwidth = 100-rightwidth;
  534. waf("#splitPanel").wafSplitPanel("option",{split:false,leftWidth:leftwidth,rightWidth:rightwidth});
  535. var billHeightOffset=220;
  536. var tabOffset=100;
  537. if(assign.newPage&&approvetype=="approve"){
  538. billHeightOffset=160;
  539. tabOffset=155;
  540. }
  541. if(approvetype!="approve"){
  542. billHeightOffset-=120;
  543. }
  544. $("#tabs .ui-waftabs-panel").eq(0).height(window.innerHeight-tabOffset);
  545. if(approvetype=="batchapprove"){
  546. if(assign.batchApproveUrl){
  547. var times = 0;
  548. waf("#billFrame").wafIframe("option","height",window.innerHeight-100);
  549. var interval = setInterval(function(){
  550. try{
  551. window.frames['billFrame'].$("#gview_queryGrid .ui-jqgrid-bdiv").eq(0).css("height",window.innerHeight-220);
  552. if(times > 4){
  553. clearInterval(interval);
  554. }
  555. times++;
  556. }catch(e){}
  557. },500);
  558. waf("#billFrame").wafIframe("option","scrolling","auto");
  559. }else{
  560. $("#gview_queryGrid .ui-jqgrid-bdiv").height($("#tabs").height()-100);
  561. $("#gview_queryGrid .ui-jqgrid-bdiv").css("overflow-y","auto");
  562. $("#panel5 .ui-jqgrid").height($("#tabs").height());
  563. }
  564. }else{
  565. if(assign.messageDigest){
  566. $("#panel5").css({"height":window.innerHeight-billHeightOffset,"overflow-y":"auto","overflow-x":"hidden"});
  567. $("#bill_content").css({"height":window.innerHeight-billHeightOffset,"overflow":"auto"});
  568. }else{
  569. waf("#billFrame").wafIframe("option","height",window.innerHeight-billHeightOffset);
  570. waf("#billFrame").wafIframe("option","scrolling","auto");
  571. }
  572. }
  573. if(assign.absStr||assign.decisionDesc){
  574. _private.changeBillHeight(90,false);
  575. }
  576. if(approvetype=="batchapprove"||approvetype=="approve"){
  577. $("#myPhraseList .scrollhid").height($("#approveTask").height()-100);
  578. }
  579. },
  580. changeBillHeight:function(height,isClose){
  581. var billHeight = 0;
  582. if(assign.messageDigest){
  583. billHeight = $("#panel5").height();
  584. }else{
  585. billHeight = waf("#billFrame").wafIframe("option","height");
  586. }
  587. if(isClose){
  588. billHeight+=height;
  589. }else{
  590. billHeight-=height;
  591. }
  592. if(assign.messageDigest){
  593. $("#panel5").css({"height":billHeight,"overflow-y":"auto"});
  594. }else{
  595. waf("#billFrame").wafIframe("option","height",billHeight);
  596. waf("#billFrame").wafIframe("option","scrolling","auto");
  597. }
  598. },
  599. showapprovehis:function (procInstId){
  600. var params={};
  601. params.embed="true";
  602. params.proInstId=procInstId;
  603. waf.doPost({
  604. url:waf.getContextPath() + '/flowRelated.do?method=getFlowRealted',
  605. data:params,
  606. success:function(data){
  607. var _html='';
  608. for(var i=0;i<data.length;i++){
  609. var action = data[i].action;
  610. var node = data[i].node;
  611. if(node==null){
  612. node="";
  613. }
  614. var operatorResult = data[i].operatorResult;
  615. if(operatorResult==""||operatorResult==null){
  616. operatorResult = action;
  617. }
  618. var op = '';
  619. var operatorOpinion = data[i].operatorOpinion;
  620. if(operatorOpinion==""||operatorOpinion==null){
  621. operatorOpinion ="";
  622. }
  623. var classname = 'agree';
  624. /*
  625. * 0:打回;1:跳转 ;2:加签;3:转交; 4:终止;5:重新指定执行人;6:添加执行人;7:挂起;8:撤销挂起;9:审批;10;审批撤回
  626. */
  627. var type= data[i].type;
  628. var titlename = "";
  629. if(type==9||type==10){
  630. var operatorResults = operatorResult.split(",");
  631. if(operatorResults.length==2){
  632. op+="<span title="+_self._localeStr.WEB_APPROVALRESULTS+">"+_self._localeStr.WEB_APPROVALRESULTS+":</span><span title='"+operatorResults[0]+"'>"+operatorResults[0]+"</span><br/>";
  633. op+="<span title="+_self._localeStr.WEB_HANDLEROPINIONS+">"+_self._localeStr.WEB_HANDLEROPINIONS+":</span><span title='"+operatorResults[1]+"'>"+operatorResults[1]+"</span><br/>";
  634. if(operatorResults[0]==_self._localeStr.WEB_DISAGREE||operatorResults[0]=="Disagree"){
  635. classname = 'disagree';
  636. }
  637. }else{
  638. op+="<span title='"+operatorResult+"'>"+operatorResult+"</span><br/>";
  639. }
  640. titlename = _self._localeStr.WEB_APPROVALCOMMENTS;
  641. }else{
  642. op+="<span title='"+operatorResult+"'>"+operatorResult+"</span><br/>";
  643. if(type==1){
  644. classname = 'jump';
  645. titlename = _self._localeStr.WEB_JUMPCOMMENTS;
  646. }else if(type==2){
  647. classname = 'append';
  648. titlename = _self._localeStr.WEB_COUNTERSIGNCOMMENTS;
  649. }else if(type==4){
  650. classname = 'stop';
  651. titlename = _self._localeStr.WEB_ENDCOMMENTS;
  652. }else if(type==3){
  653. classname = 'deliver';
  654. titlename = _self._localeStr.WEB_TRANSFERRCOMMENTS;
  655. }else if(type==0){
  656. classname = 'jump';
  657. titlename = _self._localeStr.WEB_REJECTCOMMENTS;
  658. }
  659. }
  660. if(titlename!=""){
  661. op+="<span title='"+titlename+"'>"+titlename+":</span><span title='"+operatorOpinion+"'>"+operatorOpinion+"</span><br/>";
  662. }
  663. if(i>0){
  664. if(data[i].node==data[i-1].node){
  665. _html+= '<div class="infos">'+
  666. ' <div class="content">'+
  667. ' <div class="title">'+
  668. ' <i></i>'+
  669. ' <span style="float:left;">'+data[i].operatorTime+'</span>'+
  670. ' <span style="float:right;">'+data[i].operator+'</span>'+
  671. ' </div>'+
  672. ' <div class="op">'+op+'</div>'+
  673. ' </div>'+
  674. '</div>';
  675. if(i!=data.length-1){
  676. if(data[i].node!=data[i+1].node){
  677. _html+='</div></li>';
  678. }
  679. }
  680. continue;
  681. }
  682. }
  683. _html+= '<li>'+
  684. '<div class="node">'+
  685. ' <i class="'+classname+'"></i>'+
  686. ' <span>'+node+'</span>'+
  687. '</div>';
  688. if(i!=data.length-1){
  689. if(data[i].node==data[i+1].node){
  690. _html+='<div class="info"><div class="infos">';
  691. }else{
  692. _html+='<div class="info">';
  693. }
  694. }else{
  695. _html+='<div class="info">';
  696. }
  697. _html+= ' <div class="content">'+
  698. ' <div class="title">';
  699. if(i!=data.length-1){
  700. if(data[i].node==data[i+1].node){
  701. _html+='<i></i>';
  702. }
  703. }
  704. _html+= ' <span style="float:left;">'+data[i].operatorTime+'</span>'+
  705. ' <span style="float:right;">'+data[i].operator+'</span>'+
  706. ' </div>'+
  707. ' <div class="op">'+op+'</div>'+
  708. ' </div>'+
  709. '</div>';
  710. if(i!=data.length-1){
  711. if(data[i].node!=data[i+1].node){
  712. _html+='</li>';
  713. }
  714. }
  715. }
  716. if(!_html){
  717. _html=_self._localeStr.WEB_NOAPPROVALRECORDS;
  718. }
  719. $("#approveHisInfo ul")[0].innerHTML=_html;
  720. }
  721. });
  722. },
  723. showbtn:function (){
  724. waf('#dynamicSign').wafLinkButton ("option","hidden",!assign.dynamicSign);
  725. waf('#appendActivity').wafLinkButton ("option","hidden",!assign.allowAppendActivity||approvetype=="manualdecision");
  726. waf('#jumpto').wafLinkButton ("option","hidden",!assign.allowJumpTo);
  727. waf('#kickback').wafLinkButton ("option","hidden",!assign.allowKickBack);
  728. waf('#deliver').wafLinkButton ("option","hidden",!assign.allowDeliver);
  729. waf('#YZJShare').wafLinkButton ("option","hidden",true);
  730. if(assign.allowJumpTo||assign.allowKickBack){
  731. var assignId = assign.assignId;
  732. waf.doPost({
  733. url:waf.getContextPath() + '/common/tree.do?method=getJumpAndKickBackModel',
  734. async:false,
  735. data:{"assignId":assignId},
  736. success:function(data){
  737. if(assign.allowJumpTo){
  738. waf('#jumpto').wafLinkButton ("option","hidden",!data.jumpTo);
  739. }
  740. if(assign.allowKickBack){
  741. waf('#kickback').wafLinkButton ("option","hidden",!data.kickBack);
  742. }
  743. }
  744. });
  745. }
  746. if (assign.canSpecifyNextPerformer||assign.mustShowPostActivities||assign.showNextP) {
  747. if (assign.mustShowPostActivities||assign.showNextP) {
  748. waf(nextActIndex).wafCheckbox("option","checked",true);
  749. }
  750. }else{
  751. waf(nextActIndex).wafCheckbox("option","hidden",true);
  752. }
  753. if(approvetype=="batchapprove"){
  754. waf('#btnImage').wafLinkButton ("option","hidden",false);
  755. waf('#btnBill').wafLinkButton ("option","hidden",false);
  756. }
  757. if(approvetype=="approve"){
  758. waf("#save").wafLinkButton("option","hidden",false);
  759. }
  760. },
  761. setselnextperson:function(actId,name,id){
  762. var ps = {};
  763. if(selnextPersons[actId]){
  764. ps = selnextPersons[actId];
  765. if(ps[id]){
  766. return;
  767. }
  768. }
  769. ps[id] = {
  770. number: "",
  771. name: name,
  772. id: id
  773. };
  774. selnextPersons[actId]=ps;
  775. },
  776. loadNextActs:function(){
  777. _private.getnextacts();
  778. var nextActs=assign.nextActs;
  779. _private.innerloadNextActs(nextActs);
  780. },
  781. innerloadNextActs:function(nextActs,selectAct){
  782. var table=$("#nextActList");
  783. var _innerhtml = "";
  784. if(nextActs){//有后继活动
  785. var actTitles={};
  786. if (nextActs.length==0) {
  787. _innerhtml += "<div>"+_self._localeStr.WEB_NOSETACTIVITYPERSON+"</div>";
  788. $(_private.modifyNextAct).wafLinkButton ("option","hidden",true);
  789. } else {
  790. var hasAct=false;
  791. var selectActobj={};
  792. if(selectAct){
  793. for(var actid in selectAct){
  794. selectActobj[actid]=actid;
  795. }
  796. }
  797. for(var i=0; i!=nextActs.length; i++){
  798. var act=nextActs[i];
  799. var num=0;
  800. var actId = act.actId;
  801. var candidateselected = act.candidateselected;
  802. if(!selectActobj[actId]){
  803. for(var id in candidateselected){
  804. _private.setselnextperson(actId,candidateselected[id],id);
  805. num++;
  806. }
  807. }
  808. if(_private.isPredict&&!act.isPredict)continue;
  809. hasAct=true;
  810. var actKey = act.actKey;
  811. var actName = act.actName;
  812. var isAllPersonAsPerformer = act.isAllPersonAsPerformer;
  813. var persons = act.persons;
  814. var count = act.count;
  815. var issel = false;
  816. var title = "";
  817. if(num>0){
  818. issel=true;
  819. }
  820. _innerhtml +="<div class='actInfo' actId='"+actId+"' actKey='"+actKey+"' title='"+actName+"'>"+actName+"</div>"+
  821. "<div class='actInfoperson' id='"+actId+"'>";
  822. if(issel){
  823. _innerhtml +=_self._localeStr.WEB_SELECTED;
  824. var j=0;
  825. for(var id in candidateselected){
  826. if(j>0){
  827. title +="、";
  828. }
  829. title += candidateselected[id];
  830. if(j>2){
  831. j++;
  832. continue;
  833. }
  834. if(j>0){
  835. _innerhtml +="、";
  836. }
  837. _innerhtml +="<span class='persons' personid='"+id+"'>"+candidateselected[id]+"</span>";
  838. j++;
  839. }
  840. actTitles[actId] = title;
  841. if(j>2){
  842. _innerhtml +=_self._localeStr.WEB_ANDSOON+j+_self._localeStr.WEB_PEOPLE;
  843. }
  844. }else if(count>0){
  845. _innerhtml +="";
  846. var j=0;
  847. for(var id in persons){
  848. if(j>0){
  849. title +="、";
  850. }
  851. title += persons[id];
  852. if(j>2){
  853. _innerhtml +=_self._localeStr.WEB_ANDSOON+count+_self._localeStr.WEB_PEOPLE;
  854. break;
  855. }
  856. if(j>0){
  857. _innerhtml +="、";
  858. }
  859. _innerhtml +="<span class='persons' personid='"+id+"'>"+persons[id]+"</span>";
  860. j++;
  861. }
  862. actTitles[actId] = title;
  863. }else{
  864. _innerhtml +=_self._localeStr.WEB_UNSELECTEDPERSON;
  865. }
  866. _innerhtml +="</div>";
  867. }
  868. if(!hasAct){
  869. _innerhtml += "<div>"+_self._localeStr.WEB_POINTNEXTTIP+"</div>";
  870. }
  871. $(_private.modifyNextAct).wafLinkButton ("option","hidden",false);
  872. }
  873. table.html(_innerhtml);
  874. for(var actTitle in actTitles){
  875. $("#"+actTitle).attr("title",actTitles[actTitle]);
  876. }
  877. }
  878. },
  879. getOpinion:function(actInstId,assignId,billId){
  880. var params={};
  881. params.actInstId=actInstId;
  882. params.assignId=assignId;
  883. params.billId=billId;
  884. params.type=approvetype;
  885. waf.doPost({
  886. url:waf.getContextPath() + '/workflow/approve.do?method=getOpinion',
  887. data:params,
  888. success:function(data){
  889. if(data!=null&&data!=""&&data.option!=null&&data.option!=""){
  890. $("#approveOpinionInfo span").text(data.option);
  891. }else{
  892. $("#approveOpinionInfo").hide();
  893. }
  894. }
  895. });
  896. }
  897. ,
  898. supportMulti:function(){
  899. $("#approveDeliverBtn span").text(_self._localeStr.WEB_DELIVER);
  900. $("#approvePassBtn span").text(_self._localeStr.WEB_CIRCULATEBTN);
  901. $("#approveAppendBtn span").text(_self._localeStr.WEB_ADDSIGN);
  902. $("#approveDynamicSignBtn span").text(_self._localeStr.WEB_CONTERSIGNED);
  903. $("#approveSaveBtn span").text(_self._localeStr.WEB_SAVE);
  904. $("#approveSubmitBtn span").text(_self._localeStr.WEB_SUBMIT);
  905. $("#btnUpload").prepend(_self._localeStr.WEB_UPLOADATTACH);
  906. $("#attachmul1").prepend(_self._localeStr.WEB_ATTCHNUM);
  907. $("#attchmul2").prepend(_self._localeStr.WEB_VIEWDETAIL);
  908. $("#attachmul3").prepend(_self._localeStr.WEB_ATTCHGE);
  909. $("#attchment").append($(".attchmentnuminfo"));
  910. $("#attchment").append($("#upload"));
  911. $("#myPhraseInfo .edit").text(_self._localeStr.WEB_SAVE);
  912. $("#myPhraseInfo .backprevious").text(_self._localeStr.WEB_BACK);
  913. $("#myPhraseInfo .commit").text(_self._localeStr.WEB_DETERMINE);
  914. $("#myPhrasetext").prop("placeholder",_self._localeStr.WEB_ENTER_COMMENTS);
  915. }
  916. ,
  917. initApprove:function(){
  918. if(assign.riskInsight){
  919. _private.initRiskInsight();
  920. }else{
  921. waf("#riskInsight").wafTab("remove");
  922. }
  923. _private.initEsignature();
  924. _private.initCCPerson();
  925. _private.showbtn();
  926. _private.initBillPage();
  927. _private.initAttachment();
  928. _private.initOperateIframe();
  929. _private.initAbstractAndPhrase();
  930. _private.initApprovePolicy()
  931. }
  932. ,
  933. initBatchapprove:function(){
  934. _private.initEsignature();
  935. _private.showbtn();
  936. locationurl.billIds=decodeURIComponent(parent.window.billIDs);
  937. locationurl.assignmentIds=parent.window.assignmentIDs;
  938. _private.getbatchlist();
  939. _private.initAbstractAndPhrase();
  940. _private.initApprovePolicy()
  941. waf("#attchment").wafSection("option","hidden",true);
  942. $("#upload").remove();
  943. $("#operateInfo").remove();
  944. $(".attchmentnuminfo").remove();
  945. }
  946. ,
  947. initManualdecision:function(){
  948. _private.initManualdecisionNextAct();
  949. _private.showbtn();
  950. _private.initBillPage();
  951. _private.initAttachment();
  952. _private.initOperateIframe();
  953. _private.initDecisionDescAndVal();
  954. }
  955. ,
  956. initPassComent:function(){
  957. if(assign.passcoment!=null){
  958. waf('#passComentOpinion').val(assign.passcoment);
  959. }
  960. if(assign.isFeedBack){
  961. waf("#sendmsgs").wafCheckbox("disable");
  962. waf("#sendmails").wafCheckbox("disable");
  963. }
  964. waf('#submit').wafLinkButton ("option","hidden",assign.isFeedBack);
  965. waf("#passAssignment").wafLinkButton ("option","hidden",(assign.againPass==="false"));
  966. _private.initBillPage();
  967. _private.initAttachment();
  968. _private.initOperateIframe();
  969. }
  970. ,
  971. initManualdecisionNextAct:function(){
  972. nextActIndex = "#nextAct1";
  973. _private.modifyNextAct = "#modifynextAct1";
  974. if(waf(nextActIndex).wafCheckbox("isChecked")){
  975. _private.loadNextActs();
  976. }
  977. }
  978. ,
  979. initRiskInsight:function(){
  980. try{
  981. //动态引入风险洞察模块 与web框架解耦
  982. mod.use("billInsight", function () {
  983. //如果进入说明有风险洞察模块
  984. riskInsight=true;
  985. $("#form").append('<div id="billInsight" class="" ctrlrole="waf.billInsight" data-domcreated="true"></div>');
  986. $("#li_approveTask").css("width","50%");
  987. $("#li_riskInsight").show();
  988. billInsightOption = _private.getWeakRisk();
  989. _private.updateBillInsightNum(billInsightOption);
  990. $(window).resize(function() {
  991. _private.resizeBillInsight(true);
  992. });
  993. });
  994. }catch(e){
  995. console.log(_self._localeStr.WEB_CONSOLETEXT);
  996. }
  997. }
  998. ,
  999. initCCPerson:function(){
  1000. if (assign.allowCC) {
  1001. $('#panelCC').show();
  1002. }
  1003. if(assign.ccPersonIds != null && assign.ccPersonName != null){
  1004. waf("#textCC").prop("personIds",assign.ccPersonIds);
  1005. waf("#textCC").val(assign.ccPersonName);
  1006. }
  1007. }
  1008. ,
  1009. initEsignature:function(){
  1010. if(!assign.isEsignature||assign.esignatureAttachId==undefined||assign.esignatureAttachId==''){
  1011. $("#panel6").remove();
  1012. }else{
  1013. var _html = "<img src='/easweb/webviews/webframework/webcom/attachment/view.jsp?bosID="+assign.esignatureAttachId+"'/>";
  1014. $("#esigndiv")[0].innerHTML = _html;
  1015. }
  1016. }
  1017. ,
  1018. initBillPage:function(){
  1019. if(assign.messageDigest){
  1020. try{
  1021. _private.messageDigest();
  1022. }catch(e){
  1023. console.log(_self._localeStr.WEB_BILLINITFAILED);
  1024. }
  1025. }else{
  1026. if(!assign.billEditUrl||assign.billEditUrl=="nobill.html"){
  1027. assign.billEditUrl='/easweb/webviews/workflow/nobill.html?';
  1028. }
  1029. if(approvetype=="passComent"&&msgId){
  1030. assign.billEditUrl=assign.billEditUrl+'&msgId='+encodeURIComponent(msgId);
  1031. }
  1032. _private.displayBillInfo(assign.billEditUrl);
  1033. }
  1034. }
  1035. ,
  1036. initAttachment:function(){
  1037. waf("#attachmentBtn").wafLinkButton ("option","hidden",assign.attachDisabled);
  1038. _private.refreshAttachCountInner(assign.attachmentCount);
  1039. }
  1040. ,
  1041. initOperateIframe:function(){
  1042. var url="/easweb/dynamicPage.do?event=initialize&method=doEvent&uipk=com.kingdee.bos.workflow.metas.approveRelatedInfo&isshowapprove=true&assignmentId="+assign.assignId;
  1043. waf("#operateiframe").wafIframe('option','src',url);
  1044. }
  1045. ,
  1046. initApprovePolicy:function(){
  1047. _private.getPolicy(assign.approveValue);
  1048. _private.getDefaultOption();
  1049. if(assign.id){
  1050. waf("#approveResult").wafRadioGroup("setValue", assign.approveResult);
  1051. waf("#policy").wafSelect("setValue",assign.handlerOpinion)
  1052. }else{
  1053. waf("#approveResult").wafRadioGroup("setValue", "true");
  1054. }
  1055. }
  1056. ,
  1057. initAbstractAndPhrase:function(){
  1058. if(assign.absStr){
  1059. waf("#optionalSection").wafSection("option","title",_self._localeStr.WEB_PROCESSSUMMARY );
  1060. waf("#optionalSection").wafSection("option","hidden",false);
  1061. $("#description").text(assign.absStr);
  1062. }
  1063. _private.getphrase();
  1064. $("#myPhraseList").on("click","li",function(e){_private.clickPhrase(e)});
  1065. $("#myPhraseList").on("dblclick","li",function(e){_private.dblclickPhrase(e)});
  1066. $("#myPhraseList").on("click","li i",function(e){_private.phrasedel(e)});
  1067. }
  1068. ,
  1069. initDecisionDescAndVal:function(){
  1070. if(assign.decisionDesc){
  1071. waf("#optionalSection").wafSection("option","title",_self._localeStr.WEB_DECISONDESC);
  1072. waf("#optionalSection").wafSection("option","hidden",false);
  1073. $("#description").text(assign.decisionDesc);
  1074. _private.changeBillHeight(85,false);
  1075. }
  1076. _private.setmanualdecision();
  1077. }
  1078. ,
  1079. initCalProcDiagram:function(){
  1080. var url="/easweb/webviews/workflow/calProcDiagramNew.jsp?procInstId="+assign.procInstId+"&actinstId="+assign.actInstId+"&newPage="+assign.newPage;
  1081. waf("#"+_private.charFrameId).wafIframe('option','src',url);
  1082. var urlWin = "/easweb/webviews/workflow/calProcDiagram.jsp?procInstId=" + assign.procInstId + "&actinstId=" + assign.actInstId;
  1083. waf("#chartIframe").wafIframe('option','src',urlWin);
  1084. $("#chart").click(function() {
  1085. $("#chart").hide()
  1086. });
  1087. $("#chartClose").click(function() {
  1088. $("#chart").hide()
  1089. });
  1090. $("#openChartIframe").click(function() {
  1091. $("#chart").show()
  1092. });
  1093. var times = 0;
  1094. var interval = setInterval(function() {
  1095. if(window.frames[_private.charFrameId]){
  1096. var num = window.frames[_private.charFrameId].num;
  1097. if(num>0){
  1098. var iWidth = window.innerWidth * (4 / 5);
  1099. var rowNum = parseInt(iWidth/176);
  1100. var calcHeight = Math.ceil(num/rowNum)*140;
  1101. var winHeight = "";
  1102. if(top==parent.parent){
  1103. winHeight = window.innerHeight;
  1104. }else{
  1105. //门户打开
  1106. winHeight = window.screen.availHeight-120;
  1107. }
  1108. var iHeight = winHeight * (4 / 5);
  1109. if(calcHeight<iHeight){
  1110. iHeight=calcHeight;
  1111. }
  1112. var iTop = (winHeight - 70 - iHeight) / 2;
  1113. var iLeft = (window.innerWidth - 10 - iWidth) / 2;
  1114. $("#chartIframe").css({
  1115. "margin-left": iLeft,
  1116. "margin-top": iTop,
  1117. width: iWidth,
  1118. height: iHeight
  1119. });
  1120. }
  1121. }
  1122. times++
  1123. if (times > 100) {
  1124. clearInterval(interval)
  1125. }
  1126. }, 100);
  1127. }
  1128. ,
  1129. initPageLayout:function(){
  1130. //按钮布局:按钮靠左,按钮靠右 不同布局简略图位置也显示不一样
  1131. if(assign.newPage){
  1132. $("#predictionChart").remove();
  1133. _private.charFrameId="predictionChartIframeNew";
  1134. _private.initBtnNew();
  1135. }else{
  1136. $("#predictionChartNew").remove();
  1137. }
  1138. if(locationurl.isOpenNewTab != undefined && locationurl.isOpenNewTab == "true"){
  1139. $("#nextActList").css("height","20vh");
  1140. }
  1141. }
  1142. ,
  1143. initCalProcDiagramPanel:function(){
  1144. //只有审批时才展示预估图
  1145. if(approvetype=="approve"){
  1146. _private.initCalProcDiagram();
  1147. }else{
  1148. $("#chart").remove();
  1149. $("#predictionChart").remove();
  1150. $("#predictionChartNew").remove();
  1151. }
  1152. }
  1153. ,
  1154. initSection:function(){
  1155. if(approvetype!="batchapprove"){
  1156. waf("#predictionChart").wafSection("option",'onopen',function(event){
  1157. _private.changeBillHeight(50,false);
  1158. });
  1159. waf("#predictionChart").wafSection("option",'onclose',function(event){
  1160. _private.changeBillHeight(50,true);
  1161. });
  1162. waf("#operateInfo").wafSection("option",'onopen',function(event){
  1163. _private.changeBillHeight(220,false);
  1164. });
  1165. waf("#operateInfo").wafSection("option",'onclose',function(event){
  1166. _private.changeBillHeight(220,true);
  1167. });
  1168. waf("#optionalSection").wafSection("option",'onopen',function(event){
  1169. _private.changeBillHeight(60,false);
  1170. });
  1171. waf("#optionalSection").wafSection("option",'onclose',function(event){
  1172. _private.changeBillHeight(60,true);
  1173. });
  1174. }
  1175. }
  1176. ,
  1177. initZoomTool:function(){
  1178. $("#onClose").show();
  1179. $("#tabs_ul li").eq($("#tabs_ul li").length-1).append($("#onClose"));
  1180. $("#splitPanel_LeftSplitPanel").prepend($("#onOpen"));
  1181. $("#onClose").bind("click",function(){
  1182. $("#splitPanel").height($("#splitPanel_LeftSplitPanel").height());
  1183. rightPanelWidth = $("#splitPanel_RightSplitPanel").width();
  1184. leftPanelWidth = $("#splitPanel_LeftSplitPanel").width();
  1185. $("#splitPanel_RightSplitPanel").css("width","0%");
  1186. $("#splitPanel_LeftSplitPanel").css("width","100%");
  1187. $("#onOpen").show();
  1188. if(riskInsight&&_private.curTab=="riskInsight"){
  1189. $(".billInsight_cardPanel").css("display","none");
  1190. }
  1191. if(approvetype=="batchapprove"&&!assign.batchApproveUrl){
  1192. var newWidth = $("#queryGrid").wafGrid("getGridParentWidth");
  1193. $("#queryGrid").jqGrid("setGridWidth", newWidth);
  1194. }
  1195. });
  1196. $("#onOpen").bind("click",function(){
  1197. $("#onOpen").hide();
  1198. $("#splitPanel_RightSplitPanel").css("width",rightPanelWidth);
  1199. $("#splitPanel_LeftSplitPanel").css("width",leftPanelWidth);
  1200. if(riskInsight&&_private.curTab=="riskInsight"){
  1201. $(".billInsight_cardPanel").show();
  1202. }
  1203. if(approvetype=="batchapprove"&&!assign.batchApproveUrl){
  1204. var newWidth = $("#queryGrid").wafGrid("getGridParentWidth");
  1205. $("#queryGrid").jqGrid("setGridWidth", newWidth);
  1206. }
  1207. });
  1208. $("#onOpen").bind("hover",function(){
  1209. $("#onOpen").css("opacity",1);
  1210. });
  1211. }
  1212. ,
  1213. pageOnload:function (e){
  1214. $("body").ready(function(){
  1215. _private.supportMulti();
  1216. _private.showtab();
  1217. var billId = assign.billId;
  1218. if(approvetype=="approve"){
  1219. _private.initApprove();
  1220. }else if(approvetype=="batchapprove"){
  1221. _private.initBatchapprove();
  1222. // 添加首次查看记录
  1223. if (locationurl && locationurl.assignmentIds){
  1224. var actionUrl=waf.getContextPath() + "/activityProperty.do?method=addAssignReadTime";
  1225. var params = {};
  1226. params.assignIds = locationurl.assignmentIds;
  1227. waf.doPost({
  1228. url:actionUrl,
  1229. data:params,
  1230. async : true,
  1231. success:function(data){
  1232. }
  1233. });
  1234. }
  1235. }else if(approvetype=="manualdecision"){
  1236. _private.initManualdecision();
  1237. }else if(approvetype=="passComent"){
  1238. _private.initPassComent();
  1239. billId = passId;
  1240. }
  1241. _private.initSection();
  1242. _private.initPageLayout();
  1243. _private.initCalProcDiagramPanel();
  1244. _private.getOpinion(assign.actInstId,assign.assignId,billId);
  1245. _private.setsendmailormsg(assign.isOpenMessageSendOnUI,assign.notifyNextBySMS,assign.notifyNextByMail);
  1246. if(assign.newPage){
  1247. _private.initZoomTool();
  1248. }
  1249. _private.resizePage();
  1250. window.scrollTo(0,0);
  1251. var newTab = waf.getUrlParams(document.URL).isOpenNewTab
  1252. if(newTab){
  1253. $("#operateInfo").css("margin","3px 5px 5px 0");
  1254. }
  1255. });
  1256. }
  1257. ,
  1258. initBtnNew:function(){
  1259. var submitBtn = waf('#submit').wafLinkButton ("option","hidden");
  1260. $("#toolBar .ui-toolbar-ul").css("float","right");
  1261. if(approvetype=="approve"||approvetype=="batchapprove"){
  1262. if(approvetype=="approve"){
  1263. var offset = $("#panelNew1").width()-($("#approveSaveBtn").width()*2+20);
  1264. if(offset>0){
  1265. $("#approveSaveBtn").css("margin-left",offset/2);
  1266. }
  1267. }else{
  1268. $("#approveSubmitBtn").css("float","right");
  1269. }
  1270. $("#toolBarNew1").show();
  1271. $("#panelNew1").show();
  1272. $("#labelapproveResult_label").hide();
  1273. waf('#approveSubmitBtn').wafLinkButton ("option","hidden",submitBtn);
  1274. waf('#approveSaveBtn').wafLinkButton ("option","hidden",waf('#save').wafLinkButton ("option","hidden"));
  1275. waf('#approveDeliverBtn').wafLinkButton ("option","hidden",waf('#deliver').wafLinkButton ("option","hidden"));
  1276. waf('#approvePassBtn').wafLinkButton ("option","hidden",waf('#passAssignment').wafLinkButton ("option","hidden"));
  1277. waf('#approveKickbackBtn').wafLinkButton ("option","hidden",waf('#kickback').wafLinkButton ("option","hidden"));
  1278. waf('#approveAppendBtn').wafLinkButton ("option","hidden",waf('#appendActivity').wafLinkButton ("option","hidden"));
  1279. waf('#approveDynamicSignBtn').wafLinkButton ("option","hidden",waf('#dynamicSign').wafLinkButton ("option","hidden"));
  1280. waf('#approveJumpBtn').wafLinkButton ("option","hidden",waf('#jumpto').wafLinkButton ("option","hidden"));
  1281. }else if(approvetype=="manualdecision"){
  1282. $("#panelNew3").show();
  1283. var b = waf('#deliver').wafLinkButton ("option","hidden");
  1284. if(!b){
  1285. $("#toolBarNew3").show();
  1286. }
  1287. waf('#decisionDeliverBtn').wafLinkButton ("option","hidden",waf('#deliver').wafLinkButton ("option","hidden"));
  1288. waf('#decisionSubmitBtn').wafLinkButton ("option","hidden",submitBtn);
  1289. }else if(approvetype=="passComent"){
  1290. $("#panelNew2").show();
  1291. var b = waf('#passAssignment').wafLinkButton ("option","hidden");
  1292. if(!b){
  1293. $("#toolBarNew2").show();
  1294. }
  1295. waf('#passPassBtn').wafLinkButton ("option","hidden",b);
  1296. waf('#passSubmitBtn').wafLinkButton ("option","hidden",submitBtn);
  1297. }
  1298. waf('#submit').wafLinkButton ("option","hidden",true);
  1299. waf('#save').wafLinkButton ("option","hidden",true);
  1300. waf('#deliver').wafLinkButton ("option","hidden",true);
  1301. waf('#passAssignment').wafLinkButton ("option","hidden",true);
  1302. waf('#kickback').wafLinkButton ("option","hidden",true);
  1303. waf('#appendActivity').wafLinkButton ("option","hidden",true);
  1304. waf('#dynamicSign').wafLinkButton ("option","hidden",true);
  1305. waf('#jumpto').wafLinkButton ("option","hidden",true);
  1306. if(approvetype!="batchapprove"){
  1307. $("#assignTitle").show();
  1308. $("#assignTitle").css("width",$("#toolBar").width()-$("#toolBar .ui-toolbar-ul").width());
  1309. $("#assignTitle").text(assign.title);
  1310. $("#assignTitle").prop("title",assign.title);
  1311. }
  1312. },
  1313. changePolicy:function(event,ui){
  1314. _private.setPolicy(ui.current);
  1315. if(ui.current=="false"){
  1316. $("#panel").hide();
  1317. }else{
  1318. $("#panel").show();
  1319. }
  1320. }
  1321. ,
  1322. deliver:function (event,value){
  1323. var para = {};
  1324. if(approvetype=="batchapprove"){
  1325. para.sourceID = _private.getbatchid().assignIds;
  1326. }else{
  1327. para.sourceID = assign.assignId;
  1328. }
  1329. wfCommonUtil.deliverAssignment(para);
  1330. }
  1331. ,
  1332. passAssignment:function (event,value){
  1333. var para = {};
  1334. if(approvetype=="batchapprove"){
  1335. var info = _private.getbatchid();
  1336. para.sourceID = info.assignIds;
  1337. para.bizObjID = info.billIds;
  1338. }else{
  1339. para.sourceID = assign.assignId;
  1340. para.bizObjID = assign.billId;
  1341. }
  1342. wfCommonUtil.passComment(para);
  1343. }
  1344. ,
  1345. kickback:function (event,value){
  1346. var assignid = "";
  1347. if(approvetype=="batchapprove"){
  1348. assignid = _private.getbatchid().assignIds;
  1349. }else{
  1350. assignid = assign.assignId;
  1351. }
  1352. var url = waf.getContextPath() +"/dynamicPage.do?event=initialize&method=doEvent&uipk=com.kingdee.bos.workflow.metas.kickBackPage&assignmentId="+encodeURIComponent(assignid);
  1353. wfCommonUtil.windowopen(url,_self._localeStr.WEB_REJECT,450,320);
  1354. }
  1355. ,
  1356. jumpto:function (event,value){
  1357. var assignid = "";
  1358. if(approvetype=="batchapprove"){
  1359. assignid = _private.getbatchid().assignIds;
  1360. }else{
  1361. assignid = assign.assignId;
  1362. }
  1363. var url = waf.getContextPath() +"/dynamicPage.do?event=initialize&method=doEvent&uipk=com.kingdee.bos.workflow.metas.jump&assignmentId="+encodeURIComponent(assignid);
  1364. wfCommonUtil.windowopen(url,_self._localeStr.WEB_JUMP,450,281);
  1365. }
  1366. ,
  1367. dynamicSign:function (event,value){
  1368. var assignid = "";
  1369. if(approvetype=="batchapprove"){
  1370. assignid = _private.getbatchid().assignIds;
  1371. }else{
  1372. assignid = assign.assignId;
  1373. }
  1374. var url = waf.getContextPath() +"/dynamicPage.do?event=initialize&method=doEvent&uipk=com.kingdee.bos.workflow.metas.dynamicSignPage&assignmentId="+encodeURIComponent(assignid);
  1375. wfCommonUtil.windowopen(url,_self._localeStr.WEB_COUNTERSIGNPART,450,281);
  1376. }
  1377. ,
  1378. appendActivity:function (event,value){
  1379. var billId="";
  1380. var assignId = "";
  1381. if(approvetype=="batchapprove"){
  1382. var info = _private.getbatchid();
  1383. assignId = info.assignIds;
  1384. billId = info.billIds;
  1385. }else{
  1386. assignId = assign.assignId;
  1387. billId = assign.billId;
  1388. }
  1389. var url = waf.getContextPath() +"/dynamicPage.do?event=initialize&method=doEvent&uipk=com.kingdee.bos.workflow.metas.appendSignPage&assignmentId="+encodeURIComponent(assignId)+"&billIds="+encodeURIComponent(billId)+"&isAppended="+assign.isAppended;
  1390. if(assign.appendMode){
  1391. url+='&appendMode='+assign.appendMode[0];
  1392. }
  1393. if(assign.routeMode){
  1394. url+='&routeMode='+assign.routeMode[0];
  1395. }
  1396. wfCommonUtil.windowopen(url,_self._localeStr.WEB_COUNTERSIGN,520,746);
  1397. }
  1398. ,
  1399. modifynextAct:function (event,value){
  1400. _private.setmodifynextAct();
  1401. },
  1402. setselnextactperson:function(resultStr){
  1403. _private.innerloadNextActs(assign.nextActs,resultStr);
  1404. for(var actid in resultStr){
  1405. var ps = resultStr[actid];
  1406. var _innerhtml =_self._localeStr.WEB_SELECTED;
  1407. var j=0;
  1408. if(_private.isEmptyObject(ps)){
  1409. delete selnextPersons[actid];
  1410. }else{
  1411. var title="";
  1412. for(var id in ps){
  1413. var person = ps[id];
  1414. var name = person.name;
  1415. _private.setselnextperson(actid,name,id);
  1416. if(j>0){
  1417. title +="、";
  1418. }
  1419. title += name;
  1420. if(j>2){
  1421. j++;
  1422. continue;
  1423. }
  1424. if(j>0){
  1425. _innerhtml +="、";
  1426. }
  1427. _innerhtml +="<span class='persons' personid='"+id+"'>"+name+"</span>";
  1428. j++;
  1429. }
  1430. if(j>2){
  1431. _innerhtml +=_self._localeStr.WEB_ANDSOON+j+_self._localeStr.WEB_PEOPLE;
  1432. }
  1433. $("#"+actid).html(_innerhtml);
  1434. $("#"+actid).attr("title",title);
  1435. }
  1436. }
  1437. },
  1438. isEmptyObject:function (obj) {
  1439. for (var key in obj) {
  1440. return false;
  1441. }
  1442. return true;
  1443. }
  1444. ,
  1445. getphrase:function(){
  1446. waf.doPost({
  1447. url:waf.getContextPath() + '/workflow/approve.do?method=getAppMyPhraseList',
  1448. success:function(data){
  1449. var myPhraseList = $("#myPhraseList .showdel");
  1450. myPhraseList.html("");
  1451. for(var i=0;i<data.length;i++){
  1452. //<li data-id="p4AAAABOtHGGjkdQ" onclick="setPhraseColor(this)" ondblclick="myPhraseCommit()" title="h">h<i onclick="myPhraseDelete(&quot;p4AAAABOtHGGjkdQ&quot;)"></i></li>
  1453. var row = $("<li></li>");
  1454. row.attr({"data-id":data[i].id,title:data[i].phraseText});
  1455. row.text(data[i].phraseText);
  1456. row.append("<i></i>");
  1457. myPhraseList.append(row);
  1458. }
  1459. }
  1460. });
  1461. },
  1462. clickPhrase:function(e){
  1463. $("#myPhraseInfo li").removeClass("cur");
  1464. var targetElem = $(e.target);
  1465. targetElem.addClass("cur");
  1466. $("#myPhrasetext").val(targetElem.attr("title"));
  1467. $("#myPhrasetext").attr("data-id",targetElem.attr("data-id"));
  1468. },
  1469. dblclickPhrase:function(e){
  1470. var itemval =$(e.target).attr("title");
  1471. $("#approveOpinion").val(itemval);
  1472. $("#myPhraseInfo li").removeClass("cur");
  1473. $("#myPhrasetext").attr("data-id","");
  1474. $("#myPhrasetext").val("");
  1475. $("#phrasePanel").hide();
  1476. },
  1477. phrasesure:function (e){
  1478. var text = $("#myPhrasetext").val();
  1479. if(text != null && text.length > 1000){
  1480. _self.showInfo(_self._localeStr.WEB_APPROVALCOMMENTS_TOOLONG);
  1481. return null;
  1482. }
  1483. $("#approveOpinion").val(text);
  1484. $("#myPhraseInfo li").removeClass("cur");
  1485. $("#myPhrasetext").attr("data-id","");
  1486. $("#myPhrasetext").val("");
  1487. $("#phrasePanel").hide();
  1488. }
  1489. ,
  1490. phraseback:function (e){
  1491. $("#myPhraseInfo li").removeClass("cur");
  1492. $("#myPhrasetext").attr("data-id","");
  1493. $("#myPhrasetext").val("");
  1494. $("#phrasePanel").hide();
  1495. }
  1496. ,
  1497. myPhrase:function (event,value){
  1498. $("#phrasePanel").show();
  1499. $("#myPhrasesection .ui-jqgrid-bdiv").css("height","auto");
  1500. }
  1501. ,
  1502. addphrase:function (){
  1503. // 对添加新的的超长审批意见做判断
  1504. var text = $("#myPhrasetext").val();
  1505. if(text != null && text.length > 1000){
  1506. _self.showInfo(_self._localeStr.WEB_APPROVALCOMMENTS_TOOLONG);
  1507. return null;
  1508. }
  1509. var param = {};
  1510. var rowid = $("#myPhrasetext").attr("data-id");
  1511. var value = $("#myPhrasetext").val();
  1512. if(!value){
  1513. return;
  1514. }
  1515. if(rowid){
  1516. param.method = "updateOption";
  1517. param.opId = rowid;
  1518. param.opName = value;
  1519. }else{
  1520. param.phraseTxt = value;
  1521. param.method = "saveMyPhrase";
  1522. }
  1523. waf.doPost({
  1524. url:waf.getContextPath() + '/workflow/approve.do',
  1525. data:param,
  1526. success:function(data){
  1527. _private.getphrase();
  1528. _self.showSuccess(_self._localeStr.WEB_ADDCOMMONCOMMENTS);
  1529. }
  1530. });
  1531. }
  1532. ,
  1533. phrasedel:function (e){
  1534. var param={};
  1535. param.phraseIds = $(e.target).parent().attr("data-id");
  1536. $("#myPhrasetext").attr("data-id","");
  1537. $("#myPhrasetext").val("");
  1538. waf.doPost({
  1539. url:waf.getContextPath() + '/workflow/approve.do?method=delMyPhrase',
  1540. data:param,
  1541. success:function(data){
  1542. _private.getphrase();
  1543. _self.showSuccess(_self._localeStr.WEB_DELETECOMMONCOMMENTS);
  1544. }
  1545. });
  1546. }
  1547. ,
  1548. pageOnRenderBefore:function (e){
  1549. assign = _self.getPageInitData();
  1550. //获取CA初始化的值
  1551. if(approvetype!="passComent"){
  1552. _private.initCAConfig(assign.CAConfig);
  1553. }
  1554. var title = '';
  1555. if(approvetype=="batchapprove"){
  1556. title = _self._localeStr.WEB_BATCHAPPROVAL;
  1557. }else{
  1558. title = assign.title;
  1559. }
  1560. _self.changeTitle(title);
  1561. }
  1562. ,
  1563. phraseadd:function(e){
  1564. var datarow={phraseText:""};
  1565. waf("#myPhrasegrid").wafGrid('addRow',{data:datarow});
  1566. }
  1567. ,
  1568. viewProcessDiagram:function (event,value){
  1569. var para = {};
  1570. if(approvetype=="batchapprove"){
  1571. var assignIds= _private.getbatchid().assignIds;
  1572. if(assignIds.split(";").length!=1){
  1573. _self.showInfo(_self._localeStr.WEB_SELECTARECORD);
  1574. return false;
  1575. }
  1576. para.sourceID = assignIds.split(";")[0];
  1577. }else{
  1578. para.sourceID = assign.assignId;
  1579. }
  1580. wfCommonUtil.viewProcessDiagram(para);
  1581. }
  1582. ,
  1583. reloadTranId:function (){
  1584. var approveResult = waf("#approveResult").wafRadioGroup("getValue");
  1585. var policy = waf("#policy").wafSelect("getValue");
  1586. var ispass;
  1587. if(approveResult=="false"){
  1588. ispass =false;
  1589. }else if(approveResult=="true"){
  1590. ispass =true;
  1591. }
  1592. if(assign){
  1593. var approveValueStr = assign.approveValue;
  1594. if (approveValueStr == null || approveValueStr == ""){
  1595. approveValueStr = "0;"+_self._localeStr.WEB_AGREE+";"+_self._localeStr.WEB_AGREE+";:1;"+_self._localeStr.WEB_DISAGREE+";"+_self._localeStr.WEB_DISAGREE+";";
  1596. }
  1597. var strs =approveValueStr.split(":"); //字符分割
  1598. for (var i=0;i<strs.length ;i++ )
  1599. {
  1600. var strTemp=strs[i].split(";");
  1601. //如果没有4位长度说明没有配置关联决策项
  1602. if(strTemp.length!=4)
  1603. continue;
  1604. if(ispass&&policy==strTemp[0]){
  1605. transId = strTemp[3];
  1606. return;
  1607. }
  1608. }
  1609. }
  1610. }
  1611. ,
  1612. changeselPolicy:function(event,ui){
  1613. _private.reloadTranId();
  1614. if(waf(nextActIndex).wafCheckbox("isChecked")){
  1615. _private.loadNextActs();
  1616. }
  1617. }
  1618. ,
  1619. getnextacts:function (){
  1620. var param={};
  1621. param.assignId=assign.assignId;
  1622. param.associatedLine=transId;
  1623. param.isPredict=_private.isPredict;
  1624. param.isNewProcessCenter=true;
  1625. waf.doPost({
  1626. url:waf.getContextPath() + '/common/tree.do?method=findPostParticipants',
  1627. data:param,
  1628. async:false,
  1629. success:function(data){
  1630. assign.nextActs = data;
  1631. }
  1632. });
  1633. }
  1634. ,
  1635. showtab:function (){
  1636. if(approvetype=="approve"||approvetype=="batchapprove"){
  1637. $("#tabs").wafTabs("remove", "#manualdecision");
  1638. $("#tabs").wafTabs("remove", "#passComent");
  1639. }else if(approvetype=="manualdecision"){
  1640. $("#tabs").wafTabs("remove", "#approveTask");
  1641. $("#tabs").wafTabs("remove", "#passComent");
  1642. }else if(approvetype=="passComent"){
  1643. $("#tabs").wafTabs("remove", "#approveTask");
  1644. $("#tabs").wafTabs("remove", "#manualdecision");
  1645. }
  1646. if(approvetype!="approve"){
  1647. waf("#riskInsight").wafTab("remove");
  1648. }
  1649. }
  1650. ,
  1651. setmanualdecision:function (){
  1652. var items = assign.decisionItems;
  1653. var opinions = assign.decisionOpinions;
  1654. var _html="";
  1655. var itemArr = items.split(";");
  1656. var opinionArr = new Array();
  1657. if(!opinions){
  1658. var opinionItem="";
  1659. for(var i=0;i<itemArr.length;i++){
  1660. opinionItem+=(i+1);
  1661. if(i<itemArr.length-1){
  1662. opinionItem+=";";
  1663. }
  1664. opinionArr.push(i+1);
  1665. }
  1666. assign.decisionOpinions = opinionItem;
  1667. }else{
  1668. opinionArr = opinions.split(";");
  1669. }
  1670. var json = [];
  1671. for(var i=0;i<itemArr.length;i++){
  1672. var name = itemArr[i];
  1673. var val = opinionArr[i];
  1674. var para={};
  1675. para.value = val+"_"+i;
  1676. para.alias = name;
  1677. json.push(para);
  1678. }
  1679. waf("#radioDecision").wafRadioGroup("setItems", null, json);
  1680. waf("#radioDecision").wafRadioGroup("setValue", json[0].value);
  1681. }
  1682. ,
  1683. nextActs:function (event,ui){
  1684. _private.shownextActs("modifynextAct1",ui);
  1685. }
  1686. ,
  1687. nextAct:function (event,ui){
  1688. _private.shownextActs("modifynextAct",ui);
  1689. }
  1690. ,
  1691. modifynextActs:function (event,value){
  1692. _private.setmodifynextAct();
  1693. }
  1694. ,
  1695. setmodifynextAct:function (){
  1696. var jsonval = "";
  1697. if(selnextPersons==null||selnextPersons.length==0){
  1698. jsonval = "";
  1699. }else{
  1700. jsonval = JSON.stringify(selnextPersons);
  1701. }
  1702. waf.window.open({
  1703. url:waf.getContextPath() +"/dynamicPage.do?event=initialize&method=doEvent&uipk=com.kingdee.bos.workflow.metas.setNextAct&debug=true&assignmentId="+encodeURIComponent(assign.assignId)+"&selnextPersons="+encodeURIComponent(jsonval)+"&asso="+transId+"&isPredict="+_private.isPredict,
  1704. openType:"iframe",
  1705. method:'POST',
  1706. data:{},
  1707. modal:true,
  1708. title:_self._localeStr.WEB_NEXTACTIVITY,
  1709. position: 'center',
  1710. width: 1020,
  1711. height: 580,
  1712. minHeight:560,
  1713. minWidth:1020,
  1714. iconCls:"waf-ui-icon",
  1715. draggable: true,
  1716. resizable: true,
  1717. close:function(event, ui){
  1718. },
  1719. retValCallBack:function(resultData){
  1720. if(resultData&&resultData.resultStr&&resultData.resultStr.length>0) {
  1721. var resultStr = JSON.parse(resultData.resultStr);
  1722. selnextPersons={};
  1723. _private.isPredict=resultData.isPredict;
  1724. _private.setselnextactperson(resultStr);
  1725. }
  1726. }
  1727. });
  1728. }
  1729. ,
  1730. getbatchlist:function (){
  1731. if(assign.batchApproveUrl){
  1732. var url = waf.getContextPath() + assign.batchApproveUrl+'&hasToolbar=false&showCommonQuery=false';
  1733. var billIds=locationurl.billIds.split(";");
  1734. var temp='id%20in%20(';
  1735. for(var i=0;i<billIds.length;i++){
  1736. if(billIds[i]){
  1737. if(i==0){
  1738. temp+="%27"+encodeURIComponent(billIds[i])+"%27";
  1739. }else{
  1740. temp+="%2C%27"+encodeURIComponent(billIds[i])+"%27";
  1741. }
  1742. }
  1743. }
  1744. temp+=')';
  1745. //waf頁面片段加form表單還不行,只能出此下策
  1746. $("<form id='framesrcbillform' method='POST' type='hidden' target='billFrame' action='" + url + "'></form>")
  1747. .insertAfter($("#billFrame"))
  1748. .append($("<input type='hidden' name='filterInfo' value='" + temp+ "'>"))
  1749. .append($("<input type='hidden' name='botpFilter' value='" + temp + "'>"))
  1750. setTimeout(function(){document.getElementById("framesrcbillform").submit();},500);
  1751. var times=0;
  1752. var interval = setInterval(function(){
  1753. var frame=document.getElementById("billFrame");
  1754. $($(frame)[0].contentDocument.body).find(".ui-jqgrid").css({"margin":"0px","width":"100%"});
  1755. if(times > 600){
  1756. clearInterval(interval);
  1757. }
  1758. times++;
  1759. });
  1760. }else{
  1761. waf("#billFrame").remove();
  1762. var listinfo={};
  1763. waf.doPost({
  1764. url:waf.getContextPath() + '/workflow/approve.do?method=getBatchApproveBillGrid',
  1765. data:{billIds:locationurl.billIds},
  1766. async:false,
  1767. success:function(data){
  1768. listinfo = data;
  1769. }
  1770. });
  1771. var headers = listinfo.headers;
  1772. var list = listinfo.list;
  1773. var fields = listinfo.fields;
  1774. if(headers.length>0){
  1775. var colmodel = [];
  1776. var paraid = {
  1777. name:"id",
  1778. label:"id",
  1779. hidden:true,
  1780. key:true
  1781. };
  1782. colmodel.push(paraid);
  1783. for(var m=0;m<headers.length;m++){
  1784. var para = {
  1785. name:fields[m],
  1786. label:headers[m]
  1787. };
  1788. colmodel.push(para);
  1789. }
  1790. var myGridoptions = {
  1791. id:"queryGrid",
  1792. colModel:colmodel,
  1793. multiselect:true,
  1794. loadInit:false,
  1795. shrinkToFit:true
  1796. };
  1797. //列数太多显示的表格有问题 web框架bug 暂时这样
  1798. if(headers.length>15){
  1799. myGridoptions.shrinkToFit=false;
  1800. }
  1801. var dom = waf.createDOM("grid", myGridoptions);
  1802. waf.appendDOM(waf("#panel5"), dom);
  1803. waf.initComponent("grid", myGridoptions, dom);
  1804. for(var i=0;i<list.length;i++){
  1805. for(var j in list[i]){
  1806. if(list[i][j]!=null && typeof list[i][j]=="object"){
  1807. list[i][j]=list[i][j].alias;
  1808. }
  1809. }
  1810. waf("#queryGrid").wafGrid('addRow',{data:list[i]});
  1811. }
  1812. }
  1813. }
  1814. }
  1815. ,
  1816. shownextActs:function(nextactname,ui){
  1817. if(ui.checked){
  1818. $(".approve-next-persons").show();
  1819. _private.loadNextActs();
  1820. }else{
  1821. $(".approve-next-persons").hide();
  1822. waf("#"+nextactname).wafLinkButton("option","hidden",true);
  1823. selnextPersons={};
  1824. }
  1825. }
  1826. ,
  1827. submit:function(event,value){
  1828. if(approvetype=="approve"){
  1829. _private.confirmSumit("beforeInnerSubmit");
  1830. }else if(approvetype=="manualdecision"){
  1831. _private.manualdecisionsubmit();
  1832. }else if(approvetype=="batchapprove"){
  1833. _private.confirmSumit("batchSubmitForCA");
  1834. }else if(approvetype=="passComent"){
  1835. _private.passComentsubmit();
  1836. }
  1837. }
  1838. ,
  1839. confirmSumit:function(funcName){
  1840. if(assign.enableMultiapproveConfirm=="true"){
  1841. var ok = function(){
  1842. _private[funcName]();
  1843. };
  1844. var cancel = function(){
  1845. return;
  1846. };
  1847. waf.msgBox.showConfirm({
  1848. title:_self._localeStr.WEB_MESSPROMPT,
  1849. summaryMsg:_self._localeStr.WEB_CONFIRMSUBMITAPPROVAL,
  1850. buttonType:"ok-cancel",
  1851. buttonCallBack:[ok,cancel]
  1852. });
  1853. }else{
  1854. _private[funcName]();
  1855. }
  1856. }
  1857. ,
  1858. passComentsubmit:function (){
  1859. var params={};
  1860. params.parameter=sourceIDs;
  1861. params.chksendMessage="yes";
  1862. if(waf("#sendmsgs").wafCheckbox("isChecked")){
  1863. params.chksendMobile="yes";
  1864. }
  1865. if(waf("#sendmails").wafCheckbox("isChecked")){
  1866. params.chksendMail="yes";
  1867. }
  1868. params.opinion=$("#passComentOpinion").val();
  1869. var option = $("#passComentOpinion").val();
  1870. if(option != null && option.length > 1000){
  1871. _self.showInfo(_self._localeStr.WEB_FEEDBACKCOMMENTS_TOOLONG);
  1872. return null;
  1873. }
  1874. waf.doPost({
  1875. url:waf.getContextPath() + '/passComment/get.do?method=commit',
  1876. data:params,
  1877. success:function(data){
  1878. _self.showSuccess(_self._localeStr.WEB_DEEDBACKCIRCULATESUCCESS);
  1879. _private.backto();
  1880. }
  1881. });
  1882. }
  1883. ,
  1884. initCAConfig:function(tCAConfig){
  1885. caConfig.caConfigInfo = tCAConfig;
  1886. if(caConfig.caConfigInfo.isSignatureApprove ==="true"&&caConfig.caConfigInfo.caType!="5") {//只有做CA认证时加载CA控件
  1887. var initflag = initTopesa();
  1888. if(initflag!=0) {
  1889. waf.msgBox.showError(_self._localeStr.WEB_CAINITFAILED);
  1890. }
  1891. }
  1892. }
  1893. ,
  1894. batchSubmitForCA:function (){
  1895. if(caConfig.caConfigInfo.checkPassword==="true"&&caConfig.caConfigInfo.isSignatureApprove ==="true"&&caConfig.caConfigInfo.caType!="5") {//CA进行密码验证处理
  1896. _private.checkCAPassword(true);
  1897. }else {
  1898. _private.batchSubmit();
  1899. }
  1900. }
  1901. ,
  1902. checkCAPassword:function(isBatch){
  1903. var setcss = function(){
  1904. var item = parent.$(".ui-msgbox .ui-prompt .prompt");
  1905. if($(item)){
  1906. $(item).css({"height": "78px","margin": "20px 0 20px 190px","background": "url(/easweb/webviews/workflow/img/waitpic.png) no-repeat"});
  1907. }
  1908. };
  1909. setTimeout(setcss,100);
  1910. var prmt = function(r,dialog){
  1911. if(r) {//验证密码
  1912. var res = -1;
  1913. try {
  1914. res = checkPassword(r, caConfig.caConfigInfo.userName);
  1915. }catch(errMsg) {
  1916. _self.showInfo(_self._localeStr.WEB_USBKEYCHECKPASSDETAIL + errMsg.message);
  1917. return false;
  1918. }
  1919. if(res!=0) {
  1920. _self.showInfo(_self._localeStr.WEB_USBKEYCHECKPASS);
  1921. }else{//调用提交方法
  1922. if(isBatch) {//判断是否是批量提交
  1923. _private.batchSubmit();
  1924. }else {
  1925. _private.innerSubmit();
  1926. }
  1927. }
  1928. }
  1929. };
  1930. var cancel = function(){
  1931. return;
  1932. };
  1933. waf.msgBox.showPrompt({
  1934. title:_self._localeStr.WEB_MESSPROMPT,
  1935. icon:"prompt",
  1936. summaryMsg:_self._localeStr.WEB_INPUTUSBKEYPASSWORD,
  1937. buttonCallBack:[prmt,cancel]
  1938. });
  1939. parent.$("#waf-messageBox-prompt-input").prop("type","password");
  1940. }
  1941. ,
  1942. batchSubmit:function (){
  1943. var info = _private.getbatchid();
  1944. if(info==null){
  1945. return;
  1946. }
  1947. _private._batchsubmit(info);
  1948. }
  1949. ,
  1950. getbatchid:function (){
  1951. var info = {};
  1952. var assignIds="";
  1953. var billIds = "";
  1954. var allbillIds = locationurl.billIds;
  1955. var allassignmentIds = locationurl.assignmentIds;
  1956. if(assign.batchApproveUrl){
  1957. var frame=document.getElementById("billFrame");
  1958. billIds=$(frame)[0].contentWindow.waf("#queryGrid").dataGrid("getSelectedRows");
  1959. }else{
  1960. billIds=waf("#queryGrid").wafGrid("getSelectedRows");
  1961. }
  1962. if(billIds.length==0){
  1963. billIds = allbillIds;
  1964. assignIds = allassignmentIds;
  1965. }else{
  1966. for(var i=0;i<allbillIds.split(";").length;i++){
  1967. var allbillId = allbillIds.split(";")[i];
  1968. if(billIds.toString().indexOf(allbillId)>-1){
  1969. if(assignIds!=""){
  1970. assignIds+=";";
  1971. }
  1972. assignIds+=allassignmentIds.split(";")[i];
  1973. }
  1974. }
  1975. billIds = billIds.join(";");
  1976. }
  1977. info.billIds = billIds;
  1978. info.assignIds = assignIds;
  1979. return info;
  1980. }
  1981. ,
  1982. _batchsubmit:function (info){
  1983. var approve=_private.getApprove();
  1984. if(!approve){
  1985. return;
  1986. }
  1987. var billIds = info.billIds;
  1988. var assignIds = info.assignIds;
  1989. //add by liujx 添加CA批量认证的判断
  1990. approve.isSignatureApprove = caConfig.caConfigInfo.isSignatureApprove;
  1991. if(caConfig.caConfigInfo.isSignatureApprove ==="true"&&caConfig.caConfigInfo.caType!="5") {//判断是否处理CA认证签名
  1992. //获取需要签名的明码,与签名后的密文
  1993. if(!_private.beforeBatchSubmitSigature(billIds)) {
  1994. return;
  1995. }
  1996. approve.plainTextMap = caConfig.plainTextMap;
  1997. approve.plainSignatureMap = caConfig.plainSignatureMap;
  1998. }
  1999. var nextPersons=_private.getNextPersons();
  2000. if(!nextPersons){
  2001. return;
  2002. }
  2003. var ok = function(){
  2004. var params ={};
  2005. approve.nextActs = nextPersons;
  2006. params.approve = JSON.stringify(approve);
  2007. params.assignIds = assignIds;
  2008. params.billIds = billIds;
  2009. waf.doPost({
  2010. url:waf.getContextPath() + '/common/tree.do?method=batchSubmits',
  2011. data:params,
  2012. success:function(data){
  2013. if(data=="OK"){
  2014. _self.showSuccess(_self._localeStr.WEB_BATCHAPPROVESUCCESS);
  2015. _private.backto();
  2016. }else{
  2017. _self.showInfo(_self._localeStr.WEB_PLEASEREFRESH);
  2018. }
  2019. }
  2020. });
  2021. };
  2022. var cancel = function(){
  2023. return;
  2024. };
  2025. if(showerror!=""){
  2026. waf.msgBox.showConfirm({
  2027. title:_self._localeStr.WEB_MESSPROMPT,
  2028. summaryMsg:showerror,
  2029. buttonType:"ok-cancel",
  2030. buttonCallBack:[ok,cancel]
  2031. });
  2032. }else{
  2033. ok();
  2034. }
  2035. }
  2036. ,
  2037. getApprove:function (){
  2038. var opinion=waf("#approveOpinion").val();
  2039. if(assign.needApproveOpinion&&(opinion==null||opinion.trim()=="")){//必须填写审批意见的判断
  2040. _self.showInfo(_self._localeStr.WEB_APPROVALCOMMENTSNOBLANK);
  2041. return null;
  2042. }
  2043. if(opinion!=null&&opinion.length>1000){
  2044. _self.showInfo(_self._localeStr.WEB_APPROVALCOMMENTSTOOLONG);
  2045. return null;
  2046. }
  2047. var ispass=null;
  2048. var approveResult= waf("#approveResult").wafRadioGroup("getValue");
  2049. if(approveResult=="false"){
  2050. ispass ='false';
  2051. if(assign.mustFillOpinionWhenDisagree=="true"){
  2052. if((opinion==null||opinion.trim()=="")||opinion==_self._localeStr.WEB_DISAGREE){//mustFillOpinionWhenDisagree 不同意时必须填写审批意见的判断
  2053. _self.showInfo(_self._localeStr.WEB_DISAGREEOPINION);
  2054. return null;
  2055. }
  2056. }
  2057. } else if(approveResult=="true"){
  2058. ispass ='true';
  2059. }
  2060. var approve={};
  2061. approve.assignId=assign.assignId;
  2062. approve.id=assign.id;
  2063. approve.opinion=opinion;
  2064. var handlerOpinion = waf("#policy").wafSelect("getValue");
  2065. if(handlerOpinion){
  2066. approve.handlerOpinion=handlerOpinion;
  2067. }else{
  2068. approve.handlerOpinion="0";
  2069. }
  2070. approve.handlerContent=waf("#policy").wafSelect("getSelectedAlias");
  2071. //审批结果
  2072. approve.approveResult=ispass;
  2073. //关联路径
  2074. approve.transitionId=transId;
  2075. //是否发送邮件/短信
  2076. approve.isSendSMS=waf("#sendmsg").wafCheckbox("isChecked")?"true":"false";
  2077. approve.isSendMail=waf("#sendmail").wafCheckbox("isChecked")?"true":"false";
  2078. if(assign.multiapproveinfoId)
  2079. approve.id = assign.multiapproveinfoId;
  2080. var isesignaturecheck=false;
  2081. if(approvetype=="approve"||approvetype=="batchapprove"){
  2082. isesignaturecheck = waf("#esignature").wafCheckbox("isChecked");
  2083. }else if(approvetype=="manualdecision"){
  2084. isesignaturecheck = waf("#esignature1").wafCheckbox("isChecked");
  2085. }
  2086. if(assign.isEsignature&& isesignaturecheck){//电子签名
  2087. approve.esignatureid = assign.esignatureId;
  2088. }
  2089. return approve;
  2090. }
  2091. ,
  2092. beforeBatchSubmitSigature:function(selectBillIds){
  2093. //组织业务id
  2094. var modelIDs = "";
  2095. var tbillIDs;
  2096. if(Object.prototype.toString.call(selectBillIds) === '[object Array]') {
  2097. tbillIDs = selectBillIds;
  2098. }else {
  2099. tbillIDs = selectBillIds.split(";");
  2100. }
  2101. for (var i=0;i<tbillIDs.length;i++) {
  2102. if(modelIDs!=""){
  2103. modelIDs += ",";
  2104. }
  2105. modelIDs += tbillIDs[i];
  2106. }
  2107. if(modelIDs===undefined || modelIDs==null || modelIDs===""){
  2108. waf.msgBox.showError("bill id can't be null");
  2109. return false;
  2110. }
  2111. //列表界面在前端无法获取bosType,webServer层根据单据ID获得bosType进而获得相关的配置信息
  2112. var actionUrl=waf.getContextPath() + "/component/ca.do?method=getPlainTextFromDB&billIDs=" + waf.encodeURIComponent(modelIDs) + "&isFromWF=true";
  2113. waf.doPost({
  2114. url:actionUrl,
  2115. async : false,
  2116. success:function(data){
  2117. if(data == null || data == "" || data == undefined) {
  2118. return false;
  2119. }else {
  2120. caConfig.plainTextMap = data.plainTextMap;
  2121. }
  2122. },
  2123. error:function(data){
  2124. waf.msgBox.showError("getPlainTextFromDB failed");
  2125. return false ;
  2126. }
  2127. });
  2128. //对明文字段进行签名,获取密文数据
  2129. var arraySignature = "";
  2130. var billids = modelIDs.split(",");
  2131. for (var i=0;i<billids.length;i++) {
  2132. var key = billids[i];
  2133. //签名接口调用
  2134. var signResult = -1;
  2135. try {
  2136. signResult = signMessage(caConfig.plainTextMap[key], caConfig.caConfigInfo.userName);
  2137. }catch(errMsg) {
  2138. _self.showInfo(_self._localeStr.WEB_SIGANATUREFAILED + errMsg.message);
  2139. return false;
  2140. }
  2141. if(signResult==1 || signResult==2 || signResult==3){
  2142. if(signResult==1 || signResult==2){
  2143. _self.showInfo(_self._localeStr.WEB_SIGAFAILEDUSBKEY);
  2144. }
  2145. return false;
  2146. }
  2147. if(arraySignature!="") {
  2148. arraySignature += ",";
  2149. }
  2150. arraySignature += signResult;
  2151. }
  2152. caConfig.plainSignatureMap = arraySignature;
  2153. return true;
  2154. }
  2155. ,
  2156. getNextPersons:function (isSave){
  2157. var locale = waf.getContext().locale;
  2158. var symbol = "。";
  2159. if(locale=="l1"){
  2160. symbol = ".";
  2161. }
  2162. //下一步参与人设置
  2163. showerror="";
  2164. var nextPersons=[];
  2165. //判断是否是审批同意 add by liujx 审批不同意的不校验下一步参与人
  2166. var ispass= waf("#approveResult").wafRadioGroup("getValue");//1 不同意
  2167. if(ispass=="false") {
  2168. return nextPersons;
  2169. }
  2170. var isnextact = waf(nextActIndex).wafCheckbox("isChecked");
  2171. var directActName = "";
  2172. if(isnextact){
  2173. var num=0;
  2174. var index=0;
  2175. var directCount = 0;
  2176. var directIsSel = false;
  2177. for(var i=0; i!=assign.nextActs.length; i++){
  2178. if(_private.isPredict&&!assign.nextActs[i].isPredict)continue;
  2179. var act={};
  2180. act.actKey=assign.nextActs[i].actKey;
  2181. act.persons={};
  2182. var flag=false;
  2183. directCount++;
  2184. for(var actId in selnextPersons){
  2185. if(actId==assign.nextActs[i].actId){
  2186. var persons = selnextPersons[actId];
  2187. for(var id in persons){
  2188. act.persons[id]='true';
  2189. flag=true;
  2190. }
  2191. }
  2192. }
  2193. if(directCount==1){
  2194. directIsSel = flag;
  2195. }
  2196. if(!flag){
  2197. if(num<3){
  2198. if(showerror!=""){
  2199. showerror+="、";
  2200. }
  2201. showerror+=assign.nextActs[i].actName;
  2202. }
  2203. num++;
  2204. if(num==1){
  2205. directActName=assign.nextActs[i].actName;
  2206. }
  2207. }else{
  2208. nextPersons[index]=act;
  2209. index++;
  2210. }
  2211. }
  2212. if(num>0){
  2213. if(num>2){
  2214. showerror+=_self._localeStr.WEB_ANDSOON+num+_self._localeStr.WEB_NODE;
  2215. }
  2216. if(!isSave&&assign.mustSetAllNextPerson){
  2217. _self.showInfo(_self._localeStr.WEB_NEXTACTIVITY+":"+showerror+symbol);
  2218. return null;
  2219. }
  2220. if(!isSave&&assign.mustSetAllNextPersonDirectNull&&!directIsSel){
  2221. _self.showInfo(_self._localeStr.WEB_NEXTACTIVITY+":"+directActName+symbol);
  2222. return null;
  2223. }
  2224. showerror+=_self._localeStr.WEB_NOPARTICIPANTSUBMIT;
  2225. }
  2226. }
  2227. return nextPersons;
  2228. }
  2229. ,
  2230. manualdecisionsubmit:function (){
  2231. var selectValue = waf("#radioDecision").wafRadioGroup("getValue");
  2232. if(selectValue){
  2233. var selItems = $("#radioDecision input[value='"+selectValue+"']").next()[0].innerHTML;
  2234. var params={};
  2235. var nextPersons=_private.getNextPersons();
  2236. if(!nextPersons){
  2237. return;
  2238. }
  2239. var ok = function(){
  2240. nextPersons = JSON.stringify(nextPersons);
  2241. params.nextperson=nextPersons;
  2242. params.assignId=assign.assignId;
  2243. params.decisionTitle=assign.decisionName;
  2244. params.decisionItems=assign.decisionItems;
  2245. params.decisionDesc=assign.decisionDesc;
  2246. params.decisionOpinions = assign.decisionOpinions;
  2247. params.SelectedItems = selItems;
  2248. params.SelectedOpinions = selectValue.substr(0,selectValue.indexOf("_"));
  2249. waf.doPost({
  2250. url:waf.getContextPath() + '/manualdecision/submit.do?method=submit',
  2251. data:params,
  2252. success:function(data){
  2253. _self.showSuccess(_self._localeStr.WEB_DECISIONSUBMITSUCCESS);
  2254. _private.backto();
  2255. }
  2256. });
  2257. };
  2258. var cancel = function(){
  2259. return;
  2260. };
  2261. if(showerror!=""){
  2262. waf.msgBox.showConfirm({
  2263. title:_self._localeStr.WEB_MESSPROMPT,
  2264. summaryMsg:showerror,
  2265. buttonType:"ok-cancel",
  2266. buttonCallBack:[ok,cancel]
  2267. });
  2268. }else{
  2269. ok();
  2270. }
  2271. }
  2272. }
  2273. ,
  2274. beforeInnerSubmit:function(){
  2275. if(caConfig.caConfigInfo.checkPassword==="true"&&caConfig.caConfigInfo.isSignatureApprove ==="true"&&caConfig.caConfigInfo.caType!="5") {
  2276. _private.checkCAPassword(false);
  2277. }else {
  2278. _private.innerSubmit();
  2279. }
  2280. }
  2281. ,
  2282. innerSubmit:function (){
  2283. if(assign.mustUploadAttachment&&waf("#approveResult").wafRadioGroup("getValue")=="true"){
  2284. var isCurAssignUploadAttach=false;
  2285. waf.doPost({
  2286. url:waf.getContextPath() + '/iwebattachment.do?method=isCurAssignUploadAttach',
  2287. data:{assignId:assign.assignId},
  2288. async:false,
  2289. success:function(data){
  2290. if(data == false){
  2291. _self.showWarning(_self._localeStr.WEB_MUSTUPLOAD);
  2292. }
  2293. isCurAssignUploadAttach=data;
  2294. }
  2295. });
  2296. if(!isCurAssignUploadAttach)return;
  2297. }
  2298. assign.operation='approve';
  2299. var callback = function(isSuccess){
  2300. if(isSuccess){
  2301. _private._submit(false);
  2302. }
  2303. }
  2304. var issubmit = _private.checkIsSave(callback,"submit");
  2305. if(issubmit==null){
  2306. //_self.showInfo(_self._localeStr.WEB_CHECKERRORSUBMITEND);
  2307. _self.jMessageAlert(_self._localeStr.WEB_CHECKERRORSUBMITEND)
  2308. return false;
  2309. }
  2310. _private._submit(issubmit);
  2311. }
  2312. ,
  2313. _submit:function (isReadOnly){
  2314. var approve=_private.getApprove();
  2315. if(!approve){
  2316. return;
  2317. }
  2318. var nextPersons=_private.getNextPersons();
  2319. if(!nextPersons){
  2320. return;
  2321. }
  2322. var ok = function(){
  2323. approve.operation=assign.operation;
  2324. var op=approve.operation;
  2325. if(caConfig.caConfigInfo.isSignatureApprove ==="true"&&caConfig.caConfigInfo.caType!="5") {//判断是否处理CA认证
  2326. if(!_private.beforeSubmitSigature()) {//工作流审批CA认证,
  2327. return;
  2328. }
  2329. approve.plainText = caConfig.CA_plainText;
  2330. approve.signature = caConfig.CA_signature;
  2331. }
  2332. if(isReadOnly===undefined||isReadOnly===null||isReadOnly==="") {//没有参数默认为只做提交
  2333. isReadOnly = true;
  2334. }
  2335. if(!isReadOnly) {//传入保存的参数
  2336. var frame=document.getElementById("billFrame");
  2337. if(frame.contentDocument.getElementById("frame_tab_0")!=null
  2338. &&frame.contentDocument.getElementById("frame_tab_0")!=undefined){
  2339. frame = frame.contentDocument.getElementById("frame_tab_0");
  2340. }
  2341. if(frame.contentWindow._self.getCurrentModel){
  2342. var modelInfo = frame.contentWindow._self.getCurrentModel();
  2343. var editModel = JSON.stringify(modelInfo);
  2344. approve.model = editModel;
  2345. }
  2346. if(approve.model==null){
  2347. if (frame.contentWindow._self.fireEvent){
  2348. var s=frame.contentWindow._self.fireEvent("save");
  2349. if(!s){
  2350. return false;
  2351. }
  2352. }
  2353. }
  2354. }
  2355. approve.isReadOnly = isReadOnly.toString();
  2356. approve.isSignatureApprove = caConfig.caConfigInfo.isSignatureApprove;
  2357. approve.nextActs = nextPersons;
  2358. if($("#textCC").prop('personIds')){
  2359. approve.ccPersonIds=$("#textCC").prop('personIds');
  2360. }
  2361. var params ={};
  2362. params.approve = JSON.stringify(approve);
  2363. waf.doPost({
  2364. url:waf.getContextPath() + '/common/tree.do?method=submits',
  2365. data:params,
  2366. success:function(data){
  2367. if(data){
  2368. assign.id=data;
  2369. _self.showSuccess(_self._localeStr.WEB_SUBMITSUCCESS);
  2370. _private.backto();
  2371. }else{
  2372. _self.showInfo(_self._localeStr.WEB_PLEASEREFRESH);
  2373. }
  2374. }
  2375. });
  2376. };
  2377. var cancel = function(){
  2378. return;
  2379. };
  2380. if(showerror!=""){
  2381. waf.msgBox.showConfirm({
  2382. title:_self._localeStr.WEB_MESSPROMPT,
  2383. summaryMsg:showerror,
  2384. buttonType:"ok-cancel",
  2385. buttonCallBack:[ok,cancel]
  2386. });
  2387. }else{
  2388. ok();
  2389. }
  2390. }
  2391. ,
  2392. beforeSubmitSigature:function(){
  2393. //获取表单数据
  2394. var plainText="";
  2395. var signatureField = caConfig.caConfigInfo.signatureFields;
  2396. if(signatureField===null||signatureField==="") {
  2397. return true;
  2398. }
  2399. var signatureFields = signatureField.split(';');
  2400. for (var i=0;i<signatureFields.length;i++) {
  2401. var srcValue = "CANOTSIGNATURE";//默认不处理
  2402. try {
  2403. srcValue = eval("document.getElementById('billFrame').contentWindow.document.getElementsByName('"+signatureFields[i]+"')[0].value");
  2404. }catch(e) {
  2405. srcValue = "CANOTSIGNATURE";
  2406. }
  2407. if(typeof(srcValue)=="undefined") {
  2408. srcValue = "CANOTSIGNATURE";
  2409. }
  2410. if(caConfig.caConfigInfo.precisionInfo && caConfig.caConfigInfo.precisionInfo[signatureFields[i]]) {
  2411. var pos = parseInt(caConfig.caConfigInfo.precisionInfo[signatureFields[i]]);
  2412. if(pos < 0){
  2413. pos = 2;
  2414. }else if(pos > 4){
  2415. pos = 4;
  2416. }
  2417. srcValue = _private.toDecimal(srcValue, pos);
  2418. }
  2419. plainText = plainText + srcValue;
  2420. }
  2421. //签名接口调用
  2422. var signResult = -1;
  2423. try {
  2424. signResult = signMessage(plainText, caConfig.caConfigInfo.userName);
  2425. }catch(errMsg) {
  2426. _self.showInfo(_self._localeStr.WEB_SIGANATUREFAILED + errMsg.message);
  2427. return false;
  2428. }
  2429. if(signResult==1 || signResult==2 || signResult==3){
  2430. if(signResult==1 || signResult==2){
  2431. _self.showInfo(_self._localeStr.WEB_SIGAFAILEDUSBKEY);
  2432. return false;
  2433. }
  2434. }else {
  2435. //设置签名结果到数据中
  2436. caConfig.CA_plainText=plainText;
  2437. caConfig.CA_signature=signResult;
  2438. }
  2439. return true;
  2440. }
  2441. ,
  2442. toDecimal:function(src, pos){
  2443. var f = parseFloat(src);
  2444. if (isNaN(f)) {
  2445. return false;
  2446. }
  2447. //判断是否有小数点
  2448. var src_rs = src.indexOf('.');
  2449. if(src_rs > 0){
  2450. //判断小数点末尾是否为0,是则消去
  2451. var src_zero = src.lastIndexOf('0');
  2452. while (src.length==src_zero + 1){
  2453. src = src.substring(0,src_zero);
  2454. src_zero = src.lastIndexOf('0');
  2455. }
  2456. //判断小数点末尾是否为".",是则消去
  2457. if(src.length==src_rs + 1){
  2458. var src_int = src.substring(0,src_rs);
  2459. src = src_int;
  2460. }
  2461. //判断是否有配置签名要求的浮点数,0为没有配置
  2462. if (pos == 0){
  2463. return src;
  2464. }
  2465. }
  2466. //如果配置了浮点数则进行这里的逻辑
  2467. var f = Math.round(src*Math.pow(10, pos))/Math.pow(10, pos);
  2468. var s = f.toString();
  2469. var rs = s.indexOf('.');
  2470. if (rs < 0&&pos>0) {
  2471. rs = s.length;
  2472. s += '.';
  2473. }
  2474. while (s.length <= rs + pos) {
  2475. s += '0';
  2476. }
  2477. return s;
  2478. }
  2479. ,
  2480. save:function (event,value){
  2481. var callback = function(isSuccess){
  2482. if(isSuccess){
  2483. _private._save();
  2484. }
  2485. }
  2486. var issubmit = _private.checkIsSave(callback,"save");
  2487. if(issubmit=="callBack"){
  2488. return;
  2489. }
  2490. if(issubmit==null){
  2491. //_self.showInfo(_self._localeStr.WEB_CHECKERRORSUBMITEND);
  2492. _self.jMessageAlert(_self._localeStr.WEB_CHECKERRORSUBMITEND);
  2493. return false;
  2494. }
  2495. _private._save(issubmit);
  2496. //单据如果有修改,更新风险洞察
  2497. if(!issubmit && riskInsight){
  2498. billInsightOption = _private.getWeakRisk();
  2499. _private.updateBillInsightNum(billInsightOption);
  2500. }
  2501. }
  2502. ,
  2503. checkIsSave:function(callback,type){
  2504. var issubmit = null;
  2505. if (!assign.billIsReadOnly) {//非只读
  2506. //流程参数(不同意不校验单据必录项)
  2507. if(type=="submit"&&assign.disagreenotsave&&waf("#approveResult").wafRadioGroup("getValue")=="false"){
  2508. return true;
  2509. }
  2510. var frame=document.getElementById("billFrame");
  2511. if (frame) {
  2512. if (frame.contentWindow._self&&frame.contentWindow._self.saveAndCallBack) {//回调
  2513. frame.contentWindow._self.saveAndCallBack(callback);
  2514. return "callBack";
  2515. }else{//waf2
  2516. var canSaveBill = false;
  2517. var haveChangeBill=null;//单据是否修改过,不是所有的单据会有这个校验
  2518. var contentWindowSelf=null;
  2519. if(frame.contentWindow._self){
  2520. contentWindowSelf=frame.contentWindow._self;
  2521. }else if(frame.contentDocument.getElementById("frame_tab_0")&&frame.contentDocument.getElementById("frame_tab_0").contentWindow._self){
  2522. contentWindowSelf=frame.contentDocument.getElementById("frame_tab_0").contentWindow._self;
  2523. }
  2524. if(contentWindowSelf){
  2525. var WFBizSubmitCheckPriority = false;
  2526. if(contentWindowSelf.isWFBizSubmitCheckPriority){
  2527. WFBizSubmitCheckPriority=contentWindowSelf.isWFBizSubmitCheckPriority();
  2528. }
  2529. if(WFBizSubmitCheckPriority){
  2530. if(contentWindowSelf.fireEvent){
  2531. haveChangeBill=contentWindowSelf.fireEvent("judgeDataModifyActionEvent",["workflow"]);
  2532. }else{
  2533. if(contentWindowSelf.checkBillDataChanges){//检查s-HR 单据数据是否发生变化
  2534. haveChangeBill=contentWindowSelf.checkBillDataChanges();
  2535. }
  2536. }
  2537. if(contentWindowSelf.beforeSubmit){
  2538. canSaveBill=contentWindowSelf.beforeSubmit();
  2539. }else{
  2540. if(contentWindowSelf.fireEvent){
  2541. canSaveBill = contentWindowSelf.fireEvent("fieldOnStoreEvent")&&contentWindowSelf.fireEvent("submitBeforeActionEvent");
  2542. }
  2543. }
  2544. }else{
  2545. if(contentWindowSelf.beforeSubmit){
  2546. canSaveBill=contentWindowSelf.beforeSubmit();
  2547. }else{
  2548. if(contentWindowSelf.fireEvent){
  2549. canSaveBill = contentWindowSelf.fireEvent("fieldOnStoreEvent")&&contentWindowSelf.fireEvent("submitBeforeActionEvent");
  2550. }
  2551. }
  2552. if(contentWindowSelf.fireEvent){
  2553. haveChangeBill=contentWindowSelf.fireEvent("judgeDataModifyActionEvent",["workflow"]);
  2554. }else{
  2555. if(contentWindowSelf.checkBillDataChanges){//检查s-HR 单据数据是否发生变化
  2556. haveChangeBill=contentWindowSelf.checkBillDataChanges();
  2557. }
  2558. }
  2559. }
  2560. if(canSaveBill){//如果校验通过
  2561. if(typeof haveChangeBill=="boolean"){
  2562. issubmit=!haveChangeBill;
  2563. }else{
  2564. issubmit=false;
  2565. }
  2566. }
  2567. }else{
  2568. issubmit=true;
  2569. }
  2570. }
  2571. }else{
  2572. issubmit=true;
  2573. }
  2574. }else{
  2575. issubmit = true;
  2576. }
  2577. return issubmit;
  2578. }
  2579. ,
  2580. _save:function (isReadOnly){
  2581. assign.operation='approve';
  2582. var approve=_private.getApprove();
  2583. if(!approve)return;
  2584. //var nextPersons=_private.getNextPersons(true);
  2585. //if(!nextPersons)nextPersons=[];
  2586. if(isReadOnly===undefined||isReadOnly===null||isReadOnly==="") {//没有参数默认为只做提交
  2587. isReadOnly = true;
  2588. }
  2589. if(!isReadOnly) {//传入保存的参数
  2590. var frame=document.getElementById("billFrame");
  2591. if(frame.contentDocument.getElementById("frame_tab_0")!=null
  2592. &&frame.contentDocument.getElementById("frame_tab_0")!=undefined){
  2593. frame = frame.contentDocument.getElementById("frame_tab_0");
  2594. }
  2595. if(frame.contentWindow._self.getCurrentModel){
  2596. var modelInfo = frame.contentWindow._self.getCurrentModel();
  2597. var editModel = JSON.stringify(modelInfo);
  2598. approve.model = editModel;
  2599. }
  2600. if(approve.model==null){
  2601. if (frame.contentWindow._self.fireEvent){
  2602. var s=frame.contentWindow._self.fireEvent("save");
  2603. if(!s){
  2604. return false;
  2605. }
  2606. }
  2607. }
  2608. }
  2609. approve.isReadOnly = isReadOnly.toString();
  2610. //approve.nextActs = nextPersons;
  2611. if($("#textCC").prop('personIds')){
  2612. approve.ccPersonIds=$("#textCC").prop('personIds');
  2613. approve.personName = $("#textCC").prop('value');
  2614. }
  2615. var params ={};
  2616. params.approve = JSON.stringify(approve);
  2617. waf.doPost({
  2618. url:waf.getContextPath() + '/common/tree.do?method=saves',
  2619. data:params,
  2620. success:function(data){
  2621. if(data){
  2622. assign.id=data;
  2623. _self.showSuccess(_self._localeStr.WEB_SAVESUCCESS);
  2624. }
  2625. }
  2626. });
  2627. }
  2628. ,
  2629. backto:function (){
  2630. //谷歌部分低版本不能释放互斥锁,只能手动释放
  2631. try{
  2632. if($("#billFrame").length>0&&$("#billFrame")[0].contentWindow._self.fireEvent){
  2633. $("#billFrame")[0].contentWindow._self.fireEvent('destroyEvent');
  2634. }
  2635. }catch(e){
  2636. console.log("流程中心手动释放单据锁失败");
  2637. }
  2638. if (waf.isInFramePage()){
  2639. waf.closeCurPageTab();
  2640. }else if(top && top.jMessager && top.jMsgcenter&&top.jMsgcenter.tab_post_add){
  2641. //不加时间提示会被冲掉
  2642. setTimeout(function(){
  2643. top.jMessager.sendMsg(top.jMsgcenter.tab_close);
  2644. },800);
  2645. }else{
  2646. setTimeout(function(){
  2647. try{
  2648. if(window.opener){
  2649. //门户
  2650. if(window.opener.refreshCurrentPage){
  2651. window.opener.refreshCurrentPage();
  2652. }
  2653. //新页签形式打开
  2654. if(opener.waf&&opener.waf("#queryGrid")[0]!= undefined){
  2655. opener.waf("#queryGrid").wafGrid("reloadGrid");
  2656. }
  2657. }
  2658. //parent.location.reload();
  2659. }catch(e){
  2660. }
  2661. window.close();
  2662. _self.showSuccess(_self._localeStr.WEB_TASKHASDONE);
  2663. },500);
  2664. }
  2665. }
  2666. ,
  2667. addUploadHtml:function (){
  2668. var attachmentUploadUrl=waf.getContextPath()+'/iwebattachment.do?method=upload&bosID='+encodeURIComponent(assign.billId)+'&beizhu='+assign.assignId;
  2669. var options={
  2670. autoUpload:true,
  2671. url:attachmentUploadUrl,
  2672. multiSelect:true,
  2673. onComplete:function(e,data){
  2674. _private.getAttchmentcount();
  2675. },
  2676. onAdd:function(e,data){
  2677. },
  2678. onFail:function(e,data){
  2679. if(data.result.length>0){
  2680. if(data.result[0].error){
  2681. _self.showInfo(data.result[0].error);
  2682. }
  2683. }
  2684. }
  2685. };
  2686. $("#upload").wafFileUploadUI(options);
  2687. _private.getAttchmentcount();
  2688. }
  2689. ,
  2690. getAttchmentcount:function (){
  2691. var params={};
  2692. params.assignId=assign.assignId;
  2693. params.billId=assign.billId;
  2694. var pageType = _self.getUrlParam('type');
  2695. if(pageType != null && 'passComent'=== pageType){
  2696. params.isPassAround = true;
  2697. }
  2698. waf.doPost({
  2699. url:waf.getContextPath() + '/iwebattachment.do?method=getDataList',
  2700. data:params,
  2701. success:function(data){
  2702. if(data.disabled){
  2703. $("#attchment,.attchmentnuminfo,#upload").remove();
  2704. return;
  2705. }
  2706. if(!data.canAdd){
  2707. $("#upload").remove();
  2708. }
  2709. var len=data.list.length;
  2710. $("#attchmentnum").html(len);
  2711. if(len>0){
  2712. waf("#attchment").wafSection("open");
  2713. }else{
  2714. waf("#attchment").wafSection("close");
  2715. }
  2716. var _html='';
  2717. for(var i=0;i<len;i++){
  2718. var row=data.list[i];
  2719. var simpleName = row.simpleName;
  2720. var classname="file";
  2721. var picFormat = ['jpg','gif','jpeg','png','bmp'];
  2722. if(picFormat.indexOf(simpleName)>-1){
  2723. classname="pic";
  2724. }
  2725. _html+='<li><div><i class="'+classname+'"></i>'+
  2726. '<span class="name" title="'+row.name+'.'+simpleName+'">'+row.name+'.'+simpleName+'</span>'+
  2727. '<span class="size">('+row.size+')</span>'+
  2728. '<a class="download" href="/easweb/webviews/workflow/download.jsp?bosID='+row.id+'" download="'+row.name+'.'+simpleName+'" target="_blank"></a>';
  2729. //图片和pdf支持预览
  2730. if(classname=='pic'){
  2731. _html+= '<i class="preview" onclick="javascript:_self.attachmentView(\''+row.id+'\',\'pic\')"></i>';
  2732. }else if (simpleName=='pdf'){
  2733. _html+= '<i class="preview" onclick="javascript:_self.attachmentView(\''+row.id+'\',\'pdf\')"></i>';
  2734. }
  2735. if(row.canDelete){
  2736. _html+= '<i class="delete" onclick="javascript:_self.attachmentDelete(\''+row['boAttchAsso.id']+'\',\''+row.id+'\')"></i>';
  2737. }
  2738. _html+= '</div></li>';
  2739. }
  2740. $("#attachmentContent ul")[0].innerHTML=_html;
  2741. }
  2742. });
  2743. }
  2744. ,
  2745. attachmentDelete:function(bosId,attachId){
  2746. var ok = function(){
  2747. waf.doPost({
  2748. url:waf.getContextPath() + '/iwebattachment.do?method=delete',
  2749. data:{"bosId":bosId,"attachId":attachId},
  2750. success:function(data){
  2751. _self.showSuccess(_self._localeStr.WEB_ATTACHMENTDELETESUCESS);
  2752. _self.getAttchmentcount();
  2753. }
  2754. });
  2755. };
  2756. var cancel = function(){
  2757. return;
  2758. };
  2759. waf.msgBox.showConfirm({
  2760. title:_self._localeStr.WEB_MESSPROMPT,
  2761. summaryMsg:_self._localeStr.WEB_DeleteFile,
  2762. buttonType:"ok-cancel",
  2763. buttonCallBack:[ok,cancel]
  2764. });
  2765. }
  2766. ,
  2767. attachmentView:function(id,type){
  2768. var url="";
  2769. if(type=="pic"){
  2770. url="/easweb/webviews/workflow/viewpic.jsp?bosID="+id;
  2771. }else if(type=="pdf"){
  2772. url="/easweb/webviews/webframework/webcom/attachment/view.jsp?bosID="+id;
  2773. }
  2774. window.open(url,"_blank");
  2775. }
  2776. ,
  2777. billImage:function (event,value){
  2778. var params={};
  2779. params.billID=assign.billId;
  2780. params.method = 'getimageurl';
  2781. waf.doPost({
  2782. url:waf.getContextPath() + '/workflow/approve.do',
  2783. data:params,
  2784. success:function(data){
  2785. var url=data.imgurl;
  2786. if(url==""){
  2787. _self.showWarning(_self._localeStr.WEB_IMAGESTATE+data.state+_self._localeStr.WEB_SUPPORTSTATE);
  2788. }else if(url=="noImg"){
  2789. _self.showWarning(_self._localeStr.WEB_HASNOIMAGE);
  2790. }else{
  2791. window.open(url,"_blank");
  2792. }
  2793. }
  2794. });
  2795. }
  2796. ,
  2797. bill:function (event,value){
  2798. var para = {};
  2799. if(approvetype=="batchapprove"){
  2800. var assignIds= _private.getbatchid().assignIds;
  2801. if(assignIds.split(";").length!=1){
  2802. _self.showInfo(_self._localeStr.WEB_SELECTARECORD);
  2803. return false;
  2804. }
  2805. para.sourceID = assignIds;
  2806. }else{
  2807. para.sourceID = assign.assignId;
  2808. }
  2809. para.msgId=msgId;
  2810. wfCommonUtil.showBill(para);
  2811. }
  2812. ,
  2813. messageDigest:function (){
  2814. var messageDigest=assign.messageDigest;
  2815. if(messageDigest.toString().indexOf('table')>0){
  2816. waf("#panel5").wafPanel("option","hidden",true);
  2817. waf("#bill").wafSection("option","hidden",false);
  2818. document.getElementById("bill_content").innerHTML=messageDigest;
  2819. }else{
  2820. waf("#billFrame").remove();
  2821. waf("#billAttachment").remove();
  2822. //单据头
  2823. var billDigest=eval('('+messageDigest+')');
  2824. var options = {
  2825. title:_self._localeStr.WEB_BASICINFO,
  2826. id:'billBaseInfo',
  2827. name:"billBaseInfo",
  2828. openIconCls:'ui-section-minus',
  2829. closeIconCls:'ui-section-plus',
  2830. autoOpen:true,
  2831. style:"margin-right: 0px;"
  2832. };
  2833. var billBaseInfo = waf.createDOM("section", options);
  2834. waf.appendDOM(waf("#panel5"), billBaseInfo);
  2835. waf.initComponent("section", options, billBaseInfo);
  2836. var items = billDigest.items;
  2837. for(var i=0;i<items.length;i++){
  2838. var labeloptions = {id:"labelContainer"+i,caption:items[i][0],style:"width: 33%;float: left;"};
  2839. var labeldom = waf.createDOM("labelContainer", labeloptions);
  2840. waf("#billBaseInfo").wafSection("appendChildren",labeldom);
  2841. waf.initComponent("labelContainer", labeloptions, labeldom);
  2842. var txtoptions = {
  2843. id:"billbase"+i,
  2844. caption:items[i][1]
  2845. };
  2846. var textDom = waf.createDOM("label", txtoptions);
  2847. labeldom.wafLabelContainer('append',textDom);
  2848. waf.initComponent("label", txtoptions, textDom);
  2849. }
  2850. //分录
  2851. var entries = billDigest.entrys;
  2852. for(var j=0;j<entries.length;j++){
  2853. var obj = entries[j];
  2854. var billEntriesoptions = {
  2855. title:obj.alias.l2,
  2856. id:'billEntriesInfo'+j,
  2857. name:"billEntriesInfo"+j,
  2858. openIconCls:'ui-section-minus',
  2859. closeIconCls:'ui-section-plus',
  2860. autoOpen:true,
  2861. style:"margin-right: 0px;"
  2862. };
  2863. var billEntriesInfo = waf.createDOM("section", billEntriesoptions);
  2864. waf.appendDOM(waf("#panel5"), billEntriesInfo);
  2865. waf.initComponent("section", billEntriesoptions, billEntriesInfo);
  2866. if(obj.values.length>0){
  2867. var colmodel = [];
  2868. var env = obj.values[0].items;
  2869. for(var m=0;m<env.length;m++){
  2870. var para = {
  2871. name:env[m][3],
  2872. label:env[m][0]
  2873. };
  2874. colmodel.push(para);
  2875. }
  2876. var myGridoptions = {
  2877. id:"myGrid"+j,
  2878. colModel:colmodel
  2879. };
  2880. var dom = waf.createDOM("grid", myGridoptions);
  2881. waf("#billEntriesInfo"+j).wafSection("appendChildren",dom);
  2882. waf.initComponent("grid", myGridoptions, dom);
  2883. var rowData = obj.values;
  2884. var gridData = new Array();
  2885. for(var n=0;n<rowData.length;n++){
  2886. var rr =rowData[n].items;
  2887. var rowdata = {};
  2888. for(var h = 0;h <rr.length;h++ ){
  2889. var colname = rr[h][3];
  2890. rowdata[colname] = rr[h][1];
  2891. }
  2892. gridData.push(rowdata);
  2893. }
  2894. waf("#myGrid"+j).wafGrid('addRow',{data:gridData});
  2895. }
  2896. }
  2897. }
  2898. }
  2899. ,
  2900. initMsgDigestBillAttach:function(){
  2901. var billAttachmentList=assign.billAttachments;
  2902. var billAttachmentOptions = {
  2903. title:_self._localeStr.WEB_ATTACHMENT,
  2904. id:'billAttachment',
  2905. name:"billAttachment",
  2906. openIconCls:'ui-section-minus',
  2907. closeIconCls:'ui-section-plus',
  2908. autoOpen:true,
  2909. style:"margin-right: 0px;"
  2910. };
  2911. var billAttachment = waf.createDOM("section", billAttachmentOptions);
  2912. waf.appendDOM(waf("#panel5"), billAttachment);
  2913. waf.initComponent("section", billAttachmentOptions, billAttachment);
  2914. $("#billAttachment .title").after('<span id="billAttachTitle">'+_self._localeStr.WEB_TOTALATCHMNT+'<i></i><span>'+billAttachmentList.length+'</span>个</span>');
  2915. var _html="<div class='attachmentContent'><ul>";
  2916. for(var i=0;i<billAttachmentList.length;i++){
  2917. var row=billAttachmentList[i];
  2918. var simpleName = row.simpleName;
  2919. var classname="file";
  2920. var picFormat = ['jpg','gif','jpeg','png','bmp'];
  2921. if(picFormat.indexOf(simpleName)>-1){
  2922. classname="pic";
  2923. }
  2924. var judgeAttachType="";
  2925. if(row.attachTypeEnum==1){
  2926. judgeAttachType="<span class='procAttach'>"+_self._localeStr.WEB_PROCESSATTACHMENTS+"</span>";
  2927. }
  2928. _html+='<li><div><i class="'+classname+'"></i>'+
  2929. '<span class="name" title="'+row.name+'.'+simpleName+'">'+judgeAttachType+row.name+'.'+simpleName+'</span>'+
  2930. '<span class="size">('+row.size+')</span>'+
  2931. '<a class="download" href="/easweb/webviews/workflow/download.jsp?bosID='+row.id+'" download="'+row.name+'.'+simpleName+'" target="_blank"></a>';
  2932. //图片和pdf支持预览
  2933. if(classname=='pic'){
  2934. _html+= '<i class="preview" onclick="javascript:_self.attachmentView(\''+row.id+'\',\'pic\')"></i>';
  2935. }else if (simpleName=='pdf'){
  2936. _html+= '<i class="preview" onclick="javascript:_self.attachmentView(\''+row.id+'\',\'pdf\')"></i>';
  2937. }
  2938. _html+= '</div></li>';
  2939. }
  2940. _html+="</ul></div>";
  2941. return _html;
  2942. }
  2943. ,
  2944. selattachment:function(item,attcreater,beizhu){
  2945. }
  2946. ,
  2947. showoperate:function(event,value){
  2948. var para = {};
  2949. if(approvetype=="batchapprove"){
  2950. var assignIds= _private.getbatchid().assignIds;
  2951. if(assignIds.split(";").length!=1){
  2952. _self.showInfo(_self._localeStr.WEB_SELECTARECORD);
  2953. return false;
  2954. }
  2955. para.assignmentId = assignIds.split(";")[0];
  2956. }else{
  2957. para.assignmentId = assign.assignId;
  2958. }
  2959. if(wfCommonUtil.getOperationRecordsPerm(para.assignmentId)){
  2960. wfCommonUtil.showApproveDetail(para);
  2961. }else{
  2962. waf.msgBox.showInfo({title:_self._localeStr.WEB_MESSAGEALERT,summaryMsg:_self._localeStr.WEB_FORBIDVIEW});
  2963. $(".ui-msgbox .content").width("330px");
  2964. }
  2965. }
  2966. ,
  2967. esignatureOnClick:function(event,ui){
  2968. if(ui.checked){
  2969. $("#esigndiv").show();
  2970. }else{
  2971. $("#esigndiv").hide();
  2972. }
  2973. }
  2974. ,
  2975. isWaf1Bill:function(url){
  2976. }
  2977. ,
  2978. jMessageAlert:function(message){
  2979. _self.showInfo(message);
  2980. }
  2981. ,
  2982. onselect:function(event,ui){
  2983. //风险洞察
  2984. if(riskInsight){
  2985. if(ui.panel.id=="riskInsight"){
  2986. waf("#billInsight").billInsight("intelligentInspection",billInsightOption.list);
  2987. //解绑框架的click事件,否则当点击其他地方风险洞察内容会消失
  2988. waf("body").unbind("click");
  2989. $(".billInsight_cardPanel" ).draggable("disable");
  2990. _private.updateBillInsightNum(billInsightOption);
  2991. _private.resizeBillInsight(false);
  2992. _private.curTab="riskInsight";
  2993. }else{
  2994. $(".billInsight_cardPanel").css("display","none");
  2995. _private.curTab="";
  2996. }
  2997. }
  2998. }
  2999. ,
  3000. resizeBillInsight:function(windowResize){
  3001. var top = $("#li_approveTask").offset().top+44;
  3002. var left = $("#li_approveTask").offset().left;
  3003. if(!windowResize)left+=10;
  3004. var width = $("#tabs_ul").width();
  3005. var t = $(".ui-cardPanel").attr("style")+"width:"+width+"px !important";
  3006. $(".billInsight_cardPanel").css("cssText",t);
  3007. $(".billInsight_cardPanel").css({"top":top,"left":left});
  3008. $(".ui-cardPanel .noRecords,.ui-cardPanel .noRecordsImage,.ui-cardPanel .noRecordsText").css({width: "100%",margin:"0px","min-width":"160px"});
  3009. }
  3010. ,
  3011. getWeakRisk:function(){
  3012. var urlParams = waf.getUrlParam(assign.billEditUrl);
  3013. var billId= urlParams.billId;
  3014. var uipk = urlParams.uipk;
  3015. var billInsightOption = {};
  3016. waf.doPost({
  3017. async: false,
  3018. url: waf.getContextPath() + "/risk/ForWebController.do?method=getWeakRisk",
  3019. data:{
  3020. uipk:uipk,
  3021. id:billId,
  3022. riskIds:assign.riskInsight
  3023. },
  3024. success: function (data) {
  3025. if(data!=null){
  3026. billInsightOption = data;
  3027. }
  3028. }
  3029. });
  3030. return billInsightOption;
  3031. }
  3032. ,
  3033. updateBillInsightNum:function(billInsightOption){
  3034. if(!billInsightOption.allExecSuccess){
  3035. $("#li_riskInsight span").eq(0).text(_self._localeStr.WEB_RISKINSIGHT+"("+billInsightOption.failSize+")");
  3036. }else{
  3037. $("#li_riskInsight span").eq(0).text(_self._localeStr.WEB_RISKINSIGHT);
  3038. }
  3039. }
  3040. ,
  3041. openPerson:function(event,value){
  3042. var selectedIds = waf("#textCC").prop("personIds");
  3043. var height=552;
  3044. if(window.screen.height<800){
  3045. height=500;
  3046. }
  3047. var tempWin;
  3048. if(parent.waf){
  3049. tempWin=parent.waf.window;
  3050. }else{
  3051. tempWin=waf.window;
  3052. }
  3053. var params = {};
  3054. params.f7Type = encodeURIComponent("person");
  3055. params.singleSelect = false;
  3056. tempWin.open({
  3057. url:waf.getContextPath() +"/webviews/workflow/commonSelectF7.jsp?selectedIds="+encodeURIComponent(selectedIds),
  3058. openType:"iframe",
  3059. method:'POST',
  3060. data:params,
  3061. style:{'padding':'0px'},
  3062. modal:true,
  3063. title:_self._localeStr.WEB_CC,
  3064. position: 'center',
  3065. width: 1000,
  3066. height: height,
  3067. minHeight:height,
  3068. minWidth:1000,
  3069. iconCls:"waf-ui-icon",
  3070. draggable: true,
  3071. resizable: true,
  3072. close:function(event, ui){
  3073. },
  3074. retValCallBack:function(resultData){
  3075. if(resultData&&resultData.resultStr&&resultData.resultStr.length>0) {
  3076. var val = resultData.resultStr.split("||");
  3077. waf("#textCC").prop("personIds",val[1]);
  3078. waf("#textCC").val(val[2]);
  3079. }
  3080. }
  3081. });
  3082. }
  3083. ,
  3084. _pageLoadCompletedEventHandler:function(){
  3085. }
  3086. ,
  3087. openAttachmentPage:function(event,value){
  3088. var url = "/easweb/dynamicPage.do?event=initialize&method=doEvent&uipk=com.kingdee.bos.workflow.metas.AttachmentList&assignId="+assign.assignId+"&billId="+encodeURIComponent(assign.billId);
  3089. var pageType = _self.getUrlParam('type');
  3090. if(pageType != null && 'passComent'=== pageType){
  3091. url += "&isPassAround=true";
  3092. }
  3093. waf.window.open({
  3094. url:url,
  3095. openType:"iframe",
  3096. modal:true,
  3097. title:_self._localeStr.WEB_ATCHMNTMANAGE,
  3098. position: 'center',
  3099. width: 900,
  3100. height: 600,
  3101. iconCls:"waf-ui-icon",
  3102. draggable: true,
  3103. resizable: true,
  3104. close:function(event, ui){
  3105. waf.window.close();
  3106. _private.refreshAttachCount();
  3107. }
  3108. });
  3109. }
  3110. ,
  3111. refreshAttachCount:function(){
  3112. waf.doPost({
  3113. url:waf.getContextPath() + '/iwebattachment.do?method=getAttachCountByBill',
  3114. data:{billId:assign.billId},
  3115. async:false,
  3116. success:function(data){
  3117. _private.refreshAttachCountInner(data);
  3118. }
  3119. });
  3120. }
  3121. ,
  3122. refreshAttachCountInner:function(count){
  3123. var attachmentBtnTitle = _self._localeStr.WEB_ATCHMNTMANAGE;
  3124. if(count>0){
  3125. attachmentBtnTitle =_self._localeStr.WEB_ATCHMNTMANAGE+"("+count+")";
  3126. }
  3127. $("#attachmentBtn span").text(attachmentBtnTitle);
  3128. }
  3129. ,
  3130. getAssignInfo:function(){
  3131. return assign;
  3132. }
  3133. });//@endPrivate
  3134. _self.subscribeEvent("pageLoadCompletedEvent",_private._pageLoadCompletedEventHandler,"after");
  3135. /**************************开发区域结束**********************************************/
  3136. return _public;
  3137. });