all-forms.js 164 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585
  1. //没找到model从哪里来的***************不知道如何调用form
  2. /**
  3. * 各种活动对应的属性面板
  4. */
  5. Ext.ns('App.form');
  6. /** 面向抽象编程***/
  7. App.form.AbstractForm = Ext.extend(Object, {
  8. eventNames: [
  9. ['start', '开始'],
  10. ['end', '结束']
  11. ],
  12. classNames:[['com.uas.erp.service.scm.impl.ScmBeforeEventListener','SCM-Before'],
  13. ['com.uas.erp.service.scm.impl.ScmAfterEventListener','SCM-After'],
  14. ['com.uas.erp.service.pm.impl.PmBeforeEventListener','PM-Before'],
  15. ['com.uas.erp.service.pm.impl.PmAfterEventListener','PM-After'],
  16. ['com.uas.erp.service.pm.impl.HrBeforeEventListener','HR-Before'],
  17. ['com.uas.erp.service.pm.impl.HrAfterEventListener','HR-After'],
  18. ['com.uas.erp.service.pm.impl.OaBeforeEventListener','OA-Before'],
  19. ['com.uas.erp.service.pm.impl.OaAfterEventListener','OA-After'],
  20. ['com.uas.erp.service.pm.impl.CrmBeforeEventListener','CRM-Before'],
  21. ['com.uas.erp.service.pm.impl.CrmAfterEventListener','CRM-After'],
  22. ['com.uas.erp.service.pm.impl.FaBeforeEventListener','FA-Before'],
  23. ['com.uas.erp.service.pm.impl.FaAfterEventListener','FA-After'],
  24. ['com.uas.erp.service.pm.impl.DrpBeforeEventListener','DRP-Before'],
  25. ['com.uas.erp.service.pm.impl.DrpAfterEventListener','DRP-After'],
  26. ],
  27. clearItem: function(p) {
  28. if (typeof p.items != 'undefined') {
  29. var item = null;
  30. while ((item = p.items.last())) {
  31. p.remove(item, true);
  32. }
  33. }
  34. },
  35. getParticipantData: function(model) {
  36. var data = [];
  37. var elements = model.dom.getElementsByTagName('participant');
  38. Gef.each(elements, function(elem) {
  39. data.push({
  40. name: elem.getAttribute('name'),
  41. type: elem.getAttribute('type')
  42. });
  43. });
  44. return data;
  45. },
  46. resetParticipant: function(tabPanel, model) {
  47. var data = this.getParticipantData(model);
  48. var Record = Ext.data.Record.create(['name', 'type']);
  49. var store = new Ext.data.JsonStore({
  50. fields: Record,
  51. data: data,
  52. listeners: {
  53. add: function(store, records, index) {
  54. var record = records[0];
  55. var participantName = record.get('name');
  56. var participantType = record.get('type');
  57. if ((!participantName) || participantName == '' || (!participantType) || participantType == '') {
  58. return;
  59. }
  60. var onDom = new Gef.model.Dom('participant');
  61. onDom.setAttribute('name', participantName);
  62. onDom.setAttribute('type', participantType);
  63. model.dom.addElement(onDom);
  64. },
  65. remove: function(store, record, index) {
  66. var candidateElements = model.dom.getElementsByTagName('participant');
  67. var elements = candidateElements;
  68. var element = elements[index];
  69. model.dom.elements.remove(element);
  70. },
  71. update: function(store, record, operation) {
  72. var participantName = record.get('name');
  73. var participantType = record.get('type');
  74. if ((!participantName) || participantName == '' || (!participantType) || participantType == '') {
  75. return;
  76. }
  77. var index = store.indexOf(record);
  78. var candidateElements = model.dom.getElementsByTagName('participant');
  79. var elements = candidateElements;
  80. var element = elements[index];
  81. if (!element) {
  82. var onDom = new Gef.model.Dom('participant');
  83. onDom.setAttribute('name', participantName);
  84. onDom.setAttribute('type', participantType);
  85. model.dom.addElement(onDom);
  86. } else {
  87. element.setAttribute('name', participantName);
  88. element.setAttribute('type', participantType);
  89. }
  90. this.commitChanges();
  91. }
  92. }
  93. });
  94. var grid = new Ext.grid.EditorGridPanel({
  95. title: '参与者配置',
  96. store: store,
  97. viewConfig: {
  98. forceFit: true
  99. },
  100. columns: [{
  101. header: '名称',
  102. dataIndex: 'name',
  103. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  104. }, {
  105. header: '类型',
  106. dataIndex: 'type',
  107. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  108. }],
  109. tbar: [{
  110. text: '添加',
  111. iconCls: 'tb-add',
  112. handler: function() {
  113. var p = new Record({
  114. name: '',
  115. type: ''
  116. });
  117. this.addRecord(grid, p);
  118. },
  119. scope: this
  120. }, {
  121. text: '删除',
  122. iconCls: 'tb-delete',
  123. handler: function() {
  124. this.removeRecord(grid);
  125. },
  126. scope: this
  127. }]
  128. });
  129. tabPanel.add(grid);
  130. },
  131. getEventData: function(model) {
  132. var data = [];
  133. var elements = model.dom.getElementsByTagName('on');
  134. Gef.each(elements, function(elem) {
  135. var timerElem = elem.getElementByTagName('timer');
  136. if (timerElem) {
  137. return true;
  138. }
  139. data.push({
  140. name: elem.getAttribute('event'),
  141. classname: elem.getElementAttribute('event-listener', 'class')
  142. });
  143. });
  144. return data;
  145. },
  146. resetEvent: function(tabPanel, model) {
  147. var data = this.getEventData(model);
  148. var Record = Ext.data.Record.create(['name', 'classname']);
  149. var store = new Ext.data.JsonStore({
  150. fields: Record,
  151. data: data,
  152. listeners: {
  153. add: function(store, records, index) {
  154. var record = records[0];
  155. var eventName = record.get('name');
  156. var eventClassName = record.get('classname');
  157. if ((!eventName) || eventName == '' || (!eventClassName) || eventClassName == '') {
  158. return;
  159. }
  160. var onDom = new Gef.model.Dom('on'); // 这才是 创建一个 新元素的正确方法!
  161. onDom.setAttribute('event', eventName);
  162. onDom.setElementAttribute('event-listener', 'class', eventClassName);
  163. model.dom.addElement(onDom);
  164. },
  165. remove: function(store, record, index) {
  166. var candidateElements = model.dom.getElementsByTagName('on');
  167. var elements = [];
  168. Gef.each(candidateElements, function(elem) {
  169. var timerElem = elem.getElementByTagName('timer');
  170. if (!timerElem) {
  171. elements.push(elem);
  172. }
  173. });
  174. var element = elements[index];
  175. model.dom.elements.remove(element);
  176. },
  177. update: function(store, record, operation) {
  178. var eventName = record.get('name');
  179. var eventClassName = record.get('classname');
  180. if ((!eventName) || eventName == '' || (!eventClassName) || eventClassName == '') {
  181. return;
  182. }
  183. var index = store.indexOf(record);
  184. var candidateElements = model.dom.getElementsByTagName('on');
  185. var elements = [];
  186. Gef.each(candidateElements, function(elem) {
  187. var timerElem = elem.getElementByTagName('timer');
  188. if (!timerElem) {
  189. elements.push(elem);
  190. }
  191. });
  192. var element = elements[index];
  193. if (!element) {
  194. var onDom = new Gef.model.Dom('on');
  195. onDom.setAttribute('event', eventName);
  196. onDom.setElementAttribute('event-listener', 'class', eventClassName);
  197. model.dom.addElement(onDom);
  198. } else {
  199. element.setAttribute('event', eventName);
  200. element.setElementAttribute('event-listener', 'class', eventClassName);
  201. }
  202. this.commitChanges();
  203. }
  204. }
  205. });
  206. var eventNameMap = {};
  207. Gef.each(this.eventNames, function(item) {
  208. eventNameMap[item[0]] = item[1];
  209. });
  210. var classNameMap = {};
  211. Gef.each(this.classNames, function(item) {
  212. classNameMap[item[0]] = item[1];
  213. });
  214. var grid = new Ext.grid.EditorGridPanel({
  215. title: '事件配置',
  216. store: store,
  217. viewConfig: {
  218. forceFit: true
  219. },
  220. columns: [{
  221. header: '事件类型',
  222. dataIndex: 'name',
  223. editor: new Ext.grid.GridEditor(new Ext.ux.TwoCombo({
  224. data: this.eventNames
  225. })),
  226. /* width:'15%',*/
  227. renderer: function(v) {
  228. return eventNameMap[v];
  229. }
  230. }, {
  231. header: '类名',
  232. dataIndex: 'classname',
  233. /* editor: new Ext.grid.GridEditor(new Ext.form.TextField())*/
  234. editor: new Ext.grid.GridEditor(new Ext.ux.TwoCombo({
  235. data: this.classNames
  236. })),
  237. renderer: function(v) {
  238. return classNameMap[v];
  239. }
  240. }],
  241. tbar: [{
  242. text: '添加',
  243. iconCls: 'tb-add',
  244. handler: function() {
  245. var p = new Record({
  246. name: this.eventNames[0][0],
  247. classname: ''
  248. });
  249. this.addRecord(grid, p);
  250. },
  251. scope: this
  252. }, {
  253. text: '删除',
  254. iconCls: 'tb-delete',
  255. handler: function() {
  256. this.removeRecord(grid);
  257. },
  258. scope: this
  259. }]
  260. });
  261. tabPanel.add(grid);
  262. },
  263. getSwimlaneData: function(model) {
  264. var data = [];
  265. var elements = model.dom.getElementsByTagName('swimlane');
  266. Gef.each(elements, function(item) {
  267. data.push({
  268. name: item.getAttribute('name'),
  269. assignee: item.getAttribute('assignee'),
  270. candidateUsers: item.getAttribute('candidate-users'),
  271. candidateGroups: item.getAttribute('candidate-groups'),
  272. description: item.getElementContent('description')
  273. });
  274. });
  275. return data;
  276. },
  277. resetSwimlane: function(tabPanel, model) {
  278. var data = this.getSwimlaneData(model);
  279. var Record = Ext.data.Record.create([
  280. 'name',
  281. 'assignee',
  282. 'candidateUsers',
  283. 'candidateGroups',
  284. 'description'
  285. ]);
  286. var store = new Ext.data.JsonStore({
  287. fields: Record,
  288. data: data,
  289. listeners: {
  290. add: function(store, records, index) {
  291. var record = records[0];
  292. var swimlaneDom = new Gef.model.Dom('swimlane');
  293. swimlaneDom.setAttribute('name', record.get('name'));
  294. swimlaneDom.setAttribute('assignee', record.get('assignee'));
  295. swimlaneDom.setAttribute('candidate-users', record.get('candidateUsers'));
  296. swimlaneDom.setAttribute('candidate-groups', record.get('candidateGroups'));
  297. swimlaneDom.setElementContent('description', record.get('description'));
  298. model.dom.addElement(swimlaneDom);
  299. },
  300. remove: function(store, record, index) {
  301. var elements = model.dom.getElementsByTagName('swimlane');
  302. var element = elements[index];
  303. model.dom.elements.remove(element);
  304. },
  305. update: function(store, record, operation) {
  306. var index = store.indexOf(record);
  307. var elements = model.dom.getElementsByTagName('swimlane');
  308. var element = elements[index];
  309. element.setAttribute('name', record.get('name'));
  310. element.setAttribute('assignee', record.get('assignee'));
  311. element.setAttribute('candidate-users', record.get('candidateUsers'));
  312. element.setAttribute('candidate-groups', record.get('candidateGroups'));
  313. element.setElementContent('description', record.get('description'));
  314. this.commitChanges();
  315. }
  316. }
  317. });
  318. var grid = new Ext.grid.EditorGridPanel({
  319. title: '泳道配置',
  320. store: store,
  321. viewConfig: {
  322. forceFit: true
  323. },
  324. columns: [{
  325. header: '泳道名',
  326. dataIndex: 'name',
  327. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  328. }, {
  329. header: '分配人',
  330. dataIndex: 'assignee',
  331. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  332. }, {
  333. header: '候选人',
  334. dataIndex: 'candidateUsers',
  335. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  336. }, {
  337. header: '候选群组',
  338. dataIndex: 'candidateGroups',
  339. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  340. }, {
  341. header: '备注',
  342. dataIndex: 'description',
  343. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  344. }],
  345. tbar: [{
  346. text: '添加',
  347. iconCls: 'tb-add',
  348. handler: function() {
  349. var p = new Record({
  350. name: '',
  351. assignee: '',
  352. candidateUsers: '',
  353. candidateGroups: '',
  354. description: ''
  355. });
  356. this.addRecord(grid, p);
  357. },
  358. scope: this
  359. }, {
  360. text: '删除',
  361. iconCls: 'tb-delete',
  362. handler: function() {
  363. this.removeRecord(grid);
  364. },
  365. scope: this
  366. }]
  367. });
  368. tabPanel.add(grid);
  369. },
  370. getTimerData: function(model) {
  371. var data = [];
  372. var elements = model.dom.getElementsByTagName('on');
  373. Gef.each(elements, function(elem) {
  374. var timerElem = elem.getElementByTagName('timer');
  375. if (!timerElem) {
  376. return true;
  377. }
  378. data.push({
  379. name: elem.getAttribute('event'),
  380. duedate: timerElem.getAttribute('duedate'),
  381. repeat: timerElem.getAttribute('repeat'),
  382. //duedatetime: timerElem.getAttribute('duedatetime'),
  383. classname: elem.getElementAttribute('event-listener', 'class')
  384. });
  385. });
  386. return data;
  387. },
  388. resetTimer: function(tabPanel, model) {
  389. var data = this.getTimerData(model);
  390. var Record = Ext.data.Record.create([
  391. 'name',
  392. 'duedate',
  393. 'repeat',
  394. //'duedatetime',
  395. 'classname'
  396. ]);
  397. var store = new Ext.data.JsonStore({
  398. fields: Record,
  399. data: data,
  400. listeners: {
  401. add: function(store, records, index) {
  402. var record = records[0];
  403. var onDom = new Gef.model.Dom('on');
  404. onDom.setAttribute('event', record.get('name'));
  405. var timerDom = new Gef.model.Dom('timer');
  406. timerDom.setAttribute('duedate', record.get('duedate'));
  407. timerDom.setAttribute('repeat', record.get('repeat'));
  408. //timerDom.setAttribute('duedatetime', record.get('duedatetime'));
  409. onDom.addElement(timerDom);
  410. onDom.setElementAttribute('event-listener', 'class', record.get('classname'));
  411. model.dom.addElement(onDom);
  412. },
  413. remove: function(store, record, index) {
  414. var candidateElements = model.dom.getElementsByTagName('on');
  415. var elements = [];
  416. Gef.each(candidateElements, function(elem) {
  417. var timerElem = elem.getElementByTagName('timer');
  418. if (!timerElem) {
  419. return true;
  420. } else {
  421. elements.push(elem);
  422. }
  423. });
  424. var element = elements[index];
  425. model.dom.elements.remove(element);
  426. },
  427. update: function(store, record, operation) {
  428. var index = store.indexOf(record);
  429. var candidateElements = model.dom.getElementsByTagName('on');
  430. var elements = [];
  431. Gef.each(candidateElements, function(elem) {
  432. var timerElem = elem.getElementByTagName('timer');
  433. if (!timerElem) {
  434. return true;
  435. } else {
  436. elements.push(elem);
  437. }
  438. });
  439. var element = elements[index];
  440. element.setAttribute('event', record.get('name'));
  441. var timerElem = element.getElementByTagName('timer');
  442. timerElem.setAttribute('duedate', record.get('duedate'));
  443. timerElem.setAttribute('repeat', record.get('repeat'));
  444. //element.setAttribute('duedatetime', record.get('duedatetime'));
  445. element.setElementAttribute('event-listener', 'class', record.get('classname'));
  446. element.setElementContent('description', record.get('description'));
  447. this.commitChanges();
  448. }
  449. }
  450. });
  451. var grid = new Ext.grid.EditorGridPanel({
  452. title: '定时器配置',
  453. xtype: 'editorgrid',
  454. store: store,
  455. viewConfig: {
  456. forceFit: true
  457. },
  458. columns: [{
  459. header: '名称',
  460. dataIndex: 'name',
  461. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  462. }, {
  463. header: '持续日期',
  464. dataIndex: 'duedate',
  465. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  466. }, {
  467. header: '重复次数',
  468. dataIndex: 'repeat',
  469. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  470. }, /*{
  471. header: '持续时间',
  472. dataIndex: 'duedatetime',
  473. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  474. }, */{
  475. header: '监听器类名',
  476. dataIndex: 'classname',
  477. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  478. }],
  479. tbar: [{
  480. text: '添加',
  481. iconCls: 'tb-add',
  482. handler: function() {
  483. var p = new Record({
  484. name: '',
  485. duedate: '',
  486. repeat: '',
  487. //duedatetime: '',
  488. classname: ''
  489. });
  490. this.addRecord(grid, p);
  491. },
  492. scope: this
  493. }, {
  494. text: '删除',
  495. iconCls: 'tb-delete',
  496. handler: function() {
  497. this.removeRecord(grid);
  498. },
  499. scope: this
  500. }]
  501. });
  502. tabPanel.add(grid);
  503. },
  504. getVariableData: function(model) {
  505. var data = [];
  506. var elements = model.dom.getElementsByTagName('variable');
  507. Gef.each(elements, function(item) {
  508. data.push({
  509. name: item.getAttribute('name'),
  510. type: item.getAttribute('type'),
  511. history: item.getAttribute('history'),
  512. init: item.getAttribute('init')
  513. });
  514. });
  515. return data;
  516. },
  517. resetVariable: function(tabPanel, model) {
  518. var data = this.getVariableData(model);
  519. var Record = Ext.data.Record.create([
  520. 'name',
  521. 'type',
  522. 'history',
  523. 'init'
  524. ]);
  525. var store = new Ext.data.JsonStore({
  526. fields: Record,
  527. data: data,
  528. listeners: {
  529. add: function(store, records, index) {
  530. var record = records[0];
  531. var variableDom = new Gef.model.Dom('variable');
  532. variableDom.setAttribute('name', record.get('duedate'));
  533. variableDom.setAttribute('type', record.get('type'));
  534. variableDom.setAttribute('history', record.get('history'));
  535. variableDom.setAttribute('init', record.get('init'));
  536. model.dom.addElement(variableDom);
  537. },
  538. remove: function(store, record, index) {
  539. var elements = model.dom.getElementsByTagName('variable');
  540. var element = elements[index];
  541. model.dom.elements.remove(element);
  542. },
  543. update: function(store, record, operation) {
  544. var index = store.indexOf(record);
  545. var elements = model.dom.getElementsByTagName('variable');
  546. var element = elements[index];
  547. element.setAttribute('name', record.get('name'));
  548. element.setAttribute('type', record.get('type'));
  549. element.setAttribute('init', record.get('history'));
  550. element.setAttribute('history', record.get('init'));
  551. this.commitChanges();
  552. }
  553. }
  554. });
  555. var grid = new Ext.grid.EditorGridPanel({
  556. title: '变量设置',
  557. store: store,
  558. viewConfig: {
  559. forceFit: true
  560. },
  561. columns: [{
  562. header: '变量名',
  563. dataIndex: 'name',
  564. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  565. }, {
  566. header: '变量类型',
  567. dataIndex: 'type',
  568. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  569. }, {
  570. header: '是否保存历史',
  571. dataIndex: 'history',
  572. editor: new Ext.grid.GridEditor(new Ext.ux.OneCombo({
  573. data: ['true', 'false']
  574. }))
  575. }, {
  576. header: '初始值',
  577. dataIndex: 'init',
  578. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  579. }],
  580. tbar: [{
  581. text: '添加',
  582. iconCls: 'tb-add',
  583. handler: function() {
  584. var p = new Record({
  585. name: '',
  586. type: ''
  587. });
  588. grid.stopEditing();
  589. grid.getStore().insert(0, p);
  590. grid.startEditing(0, 0);
  591. }
  592. }, {
  593. text: '删除',
  594. iconCls: 'tb-delete',
  595. handler: function() {
  596. Ext.Msg.confirm('信息', '确定删除?', function(btn){
  597. if (btn == 'yes') {
  598. var sm = grid.getSelectionModel();
  599. var cell = sm.getSelectedCell();
  600. var record = grid.getStore().getAt(cell[0]);
  601. grid.getStore().remove(record);
  602. }
  603. });
  604. }
  605. }]
  606. });
  607. tabPanel.add(grid);
  608. },
  609. addRecord: function(grid, record) {
  610. grid.stopEditing();
  611. var index = grid.getStore().getCount();
  612. grid.getStore().insert(index, record);
  613. grid.startEditing(index, 0);
  614. },
  615. removeRecord: function(grid) {
  616. Ext.Msg.confirm('信息', '确定删除?', function(btn) {
  617. if (btn != 'yes') {
  618. return;
  619. }
  620. var sm = grid.getSelectionModel();
  621. var cell = sm.getSelectedCell();
  622. var record = grid.getStore().getAt(cell[0]);
  623. grid.getStore().remove(record);
  624. });
  625. }
  626. });
  627. Ext.ns('App.form');
  628. App.form.AutoForm = Ext.extend(App.form.AbstractForm, {
  629. decorate: function(tabPanel, model) {
  630. this.clearItem(tabPanel);
  631. this.resetBasic(tabPanel, model);
  632. this.resetEvent(tabPanel, model);
  633. },
  634. resetBasic: function(tabPanel, model) {
  635. var p = new Ext.form.FormPanel({
  636. title: '基本配置',
  637. labelWidth: 70,
  638. labelAlign: 'right',
  639. border: false,
  640. defaultType: 'textfield',
  641. defaults: {
  642. anchor: '90%'
  643. },
  644. bodyStyle: {
  645. padding: '6px 0 0'
  646. },
  647. items: [{
  648. name: 'name',
  649. fieldLabel: '名称',
  650. value: model.text ? model.text : '',
  651. listeners: {
  652. 'blur': function(field) {
  653. var newValue = field.getValue();
  654. // FIXME: use command
  655. model.text = newValue;
  656. model.editPart.figure.updateAndShowText(newValue);
  657. }
  658. }
  659. }, {
  660. name: 'classname',
  661. fieldLabel: '类名',
  662. value: model.dom.getAttribute('class'),
  663. listeners: {
  664. 'blur': function(field) {
  665. var newValue = field.getValue();
  666. model.dom.setAttribute('class', newValue);
  667. }
  668. }
  669. }, {
  670. name: 'method',
  671. fieldLabel: '方法',
  672. value: model.dom.getAttribute('method'),
  673. listeners: {
  674. 'blur': function(field) {
  675. var newValue = field.getValue();
  676. model.dom.setAttribute('method', newValue);
  677. }
  678. }
  679. }, {
  680. name: 'description',
  681. fieldLabel: '备注',
  682. xtype: 'textarea',
  683. value: model.dom.getElementContent('description'),
  684. listeners: {
  685. 'blur': function(field) {
  686. var newValue = field.getValue();
  687. model.dom.setElementContent('description', newValue);
  688. }
  689. }
  690. }]
  691. });
  692. tabPanel.add(p);
  693. tabPanel.activate(p);
  694. }
  695. });
  696. Ext.ns('App.form');
  697. App.form.CancelForm = Ext.extend(App.form.AbstractForm, {
  698. decorate: function(tabPanel, model) {
  699. this.clearItem(tabPanel);
  700. this.resetBasic(tabPanel, model);
  701. this.resetEvent(tabPanel, model);
  702. },
  703. resetBasic: function(tabPanel, model) {
  704. var p = new Ext.form.FormPanel({
  705. title: '基本配置',
  706. labelWidth: 70,
  707. labelAlign: 'right',
  708. border: false,
  709. defaultType: 'textfield',
  710. defaults: {
  711. anchor: '90%'
  712. },
  713. bodyStyle: {
  714. padding: '6px 0 0'
  715. },
  716. items: [{
  717. name: 'name',
  718. fieldLabel: '名称',
  719. value: model.text ? model.text : '',
  720. listeners: {
  721. 'blur': function(field) {
  722. var newValue = field.getValue();
  723. model.text = newValue;
  724. }
  725. }
  726. }, {
  727. name: 'ends',
  728. fieldLabel: '结束方式',
  729. xtype: 'onecombo',
  730. data: ['processinstance', 'execution'],
  731. value: model.dom.getAttribute('ends'),
  732. listeners: {
  733. 'blur': function(field) {
  734. var newValue = field.getValue();
  735. model.dom.setAttribute('ends', newValue);
  736. }
  737. }
  738. }, {
  739. name: 'description',
  740. fieldLabel: '备注',
  741. xtype: 'textarea',
  742. value: model.dom.getElementContent('description'),
  743. listeners: {
  744. 'blur': function(field) {
  745. var newValue = field.getValue();
  746. model.dom.setElementContent('description', newValue);
  747. }
  748. }
  749. }]
  750. });
  751. tabPanel.add(p);
  752. tabPanel.activate(p);
  753. }
  754. });
  755. Ext.ns('App.form');
  756. App.form.CounterSignForm = Ext.extend(App.form.AbstractForm, {
  757. decorate: function(tabPanel, model) {
  758. this.clearItem(tabPanel);
  759. this.resetBasic(tabPanel, model);
  760. this.resetParticipant(tabPanel, model);
  761. this.resetEvent(tabPanel, model);
  762. },
  763. resetBasic: function(tabPanel, model) {
  764. var p = new Ext.form.FormPanel({
  765. title: '基本配置',
  766. labelWidth: 70,
  767. labelAlign: 'right',
  768. border: false,
  769. defaultType: 'textfield',
  770. defaults: {
  771. anchor: '90%'
  772. },
  773. bodyStyle: {
  774. padding: '6px 0 0'
  775. },
  776. items: [{
  777. name: 'name',
  778. fieldLabel: '名称',
  779. value: model.text ? model.text : '',
  780. listeners: {
  781. 'blur': function(field) {
  782. var newValue = field.getValue();
  783. // FIXME: use command
  784. model.text = newValue;
  785. model.editPart.figure.updateAndShowText(newValue);
  786. //model.dom.setProperty('name', newValue, 'string');
  787. }
  788. }
  789. }, {
  790. name: 'counterSignType',
  791. fieldLabel: '会签方式',
  792. xtype: 'twocombo',
  793. data: [['all', '一票否决'], ['rate', '百分比']],
  794. //value: model.dom.getProperty('form', 'string'),
  795. value: model.dom.getAttribute('counter-sign-type'),
  796. listeners: {
  797. 'select': function(field) {
  798. var newValue = field.getValue();
  799. //model.dom.setProperty('form', newValue, 'string');
  800. model.dom.setAttribute('counter-sign-type', newValue);
  801. if (newValue == 'rate') {
  802. var field = p.getForm().findField('counterSignValue');
  803. field.el.dom.parentNode.parentNode.style.display = '';
  804. } else {
  805. var field = p.getForm().findField('counterSignValue');
  806. field.setValue('');
  807. field.el.dom.parentNode.parentNode.style.display = 'none';
  808. model.dom.removeProperty('counter-sign-value');
  809. }
  810. }
  811. }
  812. }, {
  813. name: 'counterSignValue',
  814. fieldLabel: '会签通过百分比',
  815. //value: model.dom.getProperty('form', 'string'),
  816. value: model.dom.getAttribute('counter-sign-value'),
  817. xtype: 'numberfield',
  818. listeners: {
  819. 'blur': function(field) {
  820. var newValue = field.getValue();
  821. //model.dom.setProperty('form', newValue, 'string');
  822. model.dom.setAttribute('counter-sign-value', newValue);
  823. }
  824. }
  825. }, {
  826. name: 'form',
  827. fieldLabel: '表单',
  828. //value: model.dom.getProperty('form', 'string'),
  829. value: model.dom.getAttribute('form'),
  830. listeners: {
  831. 'blur': function(field) {
  832. var newValue = field.getValue();
  833. //model.dom.setProperty('form', newValue, 'string');
  834. model.dom.setAttribute('form', newValue);
  835. }
  836. }
  837. }, {
  838. name: 'description',
  839. fieldLabel: '备注',
  840. xtype: 'textarea',
  841. value: model.dom.getElementContent('description'),
  842. listeners: {
  843. 'blur': function(field) {
  844. var newValue = field.getValue();
  845. model.dom.setElementContent('description', newValue);
  846. }
  847. }
  848. }]
  849. });
  850. if (model.dom.getAttribute('counter-sign-type') != 'rate') {
  851. var fn = function() {
  852. var field = p.getForm().findField('counterSignValue');
  853. field.el.dom.parentNode.parentNode.style.display = 'none';
  854. p.un('afterlayout', fn);
  855. };
  856. p.on('afterlayout', fn);
  857. }
  858. tabPanel.add(p);
  859. tabPanel.activate(p);
  860. }
  861. });
  862. Ext.ns('App.form');
  863. App.form.CustomForm = Ext.extend(App.form.AbstractForm, {
  864. decorate: function(tabPanel, model) {
  865. this.clearItem(tabPanel);
  866. this.resetBasic(tabPanel, model);
  867. this.resetEvent(tabPanel, model);
  868. },
  869. resetBasic: function(tabPanel, model) {
  870. var p = new Ext.form.FormPanel({
  871. title: '基本配置',
  872. labelWidth: 70,
  873. labelAlign: 'right',
  874. border: false,
  875. defaultType: 'textfield',
  876. defaults: {
  877. anchor: '90%'
  878. },
  879. bodyStyle: {
  880. padding: '6px 0 0'
  881. },
  882. items: [{
  883. name: 'name',
  884. fieldLabel: '名称',
  885. value: model.text ? model.text : '',
  886. listeners: {
  887. 'blur': function(field) {
  888. var newValue = field.getValue();
  889. // FIXME: use command
  890. model.text = newValue;
  891. model.editPart.figure.updateAndShowText(newValue);
  892. }
  893. }
  894. }, {
  895. name: 'classname',
  896. fieldLabel: '类名',
  897. value: model.dom.getAttribute('class'),
  898. listeners: {
  899. 'blur': function(field) {
  900. var newValue = field.getValue();
  901. model.dom.setAttribute('class', newValue);
  902. }
  903. }
  904. }, {
  905. name: 'description',
  906. fieldLabel: '备注',
  907. xtype: 'textarea',
  908. value: model.dom.getElementContent('description'),
  909. listeners: {
  910. 'blur': function(field) {
  911. var newValue = field.getValue();
  912. model.dom.setElementContent('description', newValue);
  913. }
  914. }
  915. }]
  916. });
  917. tabPanel.add(p);
  918. tabPanel.activate(p);
  919. }
  920. });
  921. Ext.ns('App.form');
  922. App.form.DecisionForm = Ext.extend(App.form.AbstractForm, {
  923. decorate: function(tabPanel, model) {
  924. this.clearItem(tabPanel);
  925. this.resetBasic(tabPanel, model);
  926. this.resetEvent(tabPanel, model);
  927. },
  928. resetBasic: function(tabPanel, model) {
  929. var p = new Ext.form.FormPanel({
  930. title: '基本配置',
  931. labelWidth: 70,
  932. labelAlign: 'right',
  933. border: false,
  934. defaultType: 'textfield',
  935. defaults: {
  936. anchor: '90%'
  937. },
  938. bodyStyle: {
  939. padding: '6px 0 0'
  940. },
  941. items: [{
  942. name: 'name',
  943. fieldLabel: '名称',
  944. value: model.text ? model.text : '',
  945. listeners: {
  946. 'blur': function(field) {
  947. var newValue = field.getValue();
  948. model.text = newValue;
  949. }
  950. }
  951. }, {
  952. name: 'expr',
  953. fieldLabel: '表达式',
  954. value: model.dom.getAttribute('expr'),
  955. listeners: {
  956. 'blur': function(field) {
  957. var newValue = field.getValue();
  958. model.dom.setAttribute('expr', newValue);
  959. }
  960. }
  961. },/* {
  962. name: 'handler',
  963. fieldLabel: '决策处理器',
  964. value: model.dom.getElementAttribute('handler', 'class'),
  965. listeners: {
  966. 'blur': function(field) {
  967. var newValue = field.getValue();
  968. model.dom.setElementAttribute('handler', 'class', newValue);
  969. }
  970. }
  971. }, */{
  972. name: 'description',
  973. fieldLabel: '备注',
  974. xtype: 'textarea',
  975. value: model.dom.getElementContent('description'),
  976. listeners: {
  977. 'blur': function(field) {
  978. var newValue = field.getValue();
  979. model.dom.setElementContent('description', newValue);
  980. }
  981. }
  982. }]
  983. });
  984. tabPanel.add(p);
  985. tabPanel.activate(p);
  986. }
  987. });
  988. Ext.ns('App.form');
  989. App.form.EndForm = Ext.extend(App.form.AbstractForm, {
  990. decorate: function(tabPanel, model) {
  991. this.clearItem(tabPanel);
  992. this.resetBasic(tabPanel, model);
  993. this.resetEvent(tabPanel, model);
  994. },
  995. /**
  996. * 结束*/
  997. resetBasic: function(tabPanel, model) {
  998. var p = new Ext.form.FormPanel({
  999. title: '基本配置',
  1000. labelWidth: 70,
  1001. labelAlign: 'right',
  1002. border: false,
  1003. defaultType: 'textfield',
  1004. defaults: {
  1005. anchor: '90%'
  1006. },
  1007. bodyStyle: {
  1008. padding: '6px 0 0'
  1009. },
  1010. items: [{
  1011. name: 'name',
  1012. fieldLabel: '名称',
  1013. value: model.text ? model.text : '',
  1014. listeners: {
  1015. 'blur': function(field) {
  1016. var newValue = field.getValue();
  1017. model.text = newValue;
  1018. }
  1019. }
  1020. },/* {
  1021. name: 'ends',
  1022. fieldLabel: '结束方式',
  1023. xtype: 'onecombo',
  1024. data: ['processinstance', 'execution'],
  1025. value: model.dom.getAttribute('ends'),
  1026. listeners: {
  1027. 'blur': function(field) {
  1028. var newValue = field.getValue();
  1029. model.dom.setAttribute('ends', newValue);
  1030. }
  1031. }
  1032. }, {
  1033. name: 'state',
  1034. fieldLabel: '结束状态',
  1035. value: model.dom.getAttribute('state'),
  1036. listeners: {
  1037. 'blur': function(field) {
  1038. var newValue = field.getValue();
  1039. model.dom.setAttribute('state', newValue);
  1040. }
  1041. }
  1042. },*/ {
  1043. name: 'description',
  1044. fieldLabel: '备注',
  1045. xtype: 'textarea',
  1046. value: model.dom.getElementContent('description'),
  1047. listeners: {
  1048. 'blur': function(field) {
  1049. var newValue = field.getValue();
  1050. model.dom.setElementContent('description', newValue);
  1051. }
  1052. }
  1053. }]
  1054. });
  1055. tabPanel.add(p);
  1056. tabPanel.activate(p);
  1057. }
  1058. });
  1059. Ext.ns('App.form');
  1060. App.form.ErrorForm = Ext.extend(App.form.AbstractForm, {
  1061. decorate: function(tabPanel, model) {
  1062. this.clearItem(tabPanel);
  1063. this.resetBasic(tabPanel, model);
  1064. this.resetEvent(tabPanel, model);
  1065. },
  1066. resetBasic: function(tabPanel, model) {
  1067. var p = new Ext.form.FormPanel({
  1068. title: '基本配置',
  1069. labelWidth: 70,
  1070. labelAlign: 'right',
  1071. border: false,
  1072. defaultType: 'textfield',
  1073. defaults: {
  1074. anchor: '90%'
  1075. },
  1076. bodyStyle: {
  1077. padding: '6px 0 0'
  1078. },
  1079. items: [{
  1080. name: 'name',
  1081. fieldLabel: '名称',
  1082. value: model.text ? model.text : '',
  1083. listeners: {
  1084. 'blur': function(field) {
  1085. var newValue = field.getValue();
  1086. model.text = newValue;
  1087. }
  1088. }
  1089. }, {
  1090. name: 'ends',
  1091. fieldLabel: '结束方式',
  1092. xtype: 'onecombo',
  1093. data: ['processinstance', 'execution'],
  1094. value: model.dom.getAttribute('ends'),
  1095. listeners: {
  1096. 'blur': function(field) {
  1097. var newValue = field.getValue();
  1098. model.dom.setAttribute('ends', newValue);
  1099. }
  1100. }
  1101. }, {
  1102. name: 'description',
  1103. fieldLabel: '备注',
  1104. xtype: 'textarea',
  1105. value: model.dom.getElementContent('description'),
  1106. listeners: {
  1107. 'blur': function(field) {
  1108. var newValue = field.getValue();
  1109. model.dom.setElementContent('description', newValue);
  1110. }
  1111. }
  1112. }]
  1113. });
  1114. tabPanel.add(p);
  1115. tabPanel.activate(p);
  1116. }
  1117. });
  1118. Ext.ns('App.form');
  1119. App.form.ForeachForm = Ext.extend(App.form.AbstractForm, {
  1120. decorate: function(tabPanel, model) {
  1121. this.clearItem(tabPanel);
  1122. this.resetBasic(tabPanel, model);
  1123. this.resetEvent(tabPanel, model);
  1124. },
  1125. resetBasic: function(tabPanel, model) {
  1126. var p = new Ext.form.FormPanel({
  1127. title: '基本配置',
  1128. labelWidth: 70,
  1129. labelAlign: 'right',
  1130. border: false,
  1131. defaultType: 'textfield',
  1132. defaults: {
  1133. anchor: '90%'
  1134. },
  1135. bodyStyle: {
  1136. padding: '6px 0 0'
  1137. },
  1138. items: [{
  1139. name: 'name',
  1140. fieldLabel: '名称',
  1141. value: model.text ? model.text : '',
  1142. listeners: {
  1143. 'blur': function(field) {
  1144. var newValue = field.getValue();
  1145. model.text = newValue;
  1146. }
  1147. }
  1148. }, {
  1149. name: 'var',
  1150. fieldLabel: '变量',
  1151. value: model.dom.getAttribute('var'),
  1152. listeners: {
  1153. 'blur': function(field) {
  1154. var newValue = field.getValue();
  1155. model.dom.setAttribute('var', newValue);
  1156. }
  1157. }
  1158. }, {
  1159. name: 'in',
  1160. fieldLabel: '集合',
  1161. value: model.dom.getAttribute('in'),
  1162. listeners: {
  1163. 'blur': function(field) {
  1164. var newValue = field.getValue();
  1165. model.dom.setAttribute('in', newValue);
  1166. }
  1167. }
  1168. }, {
  1169. name: 'description',
  1170. fieldLabel: '备注',
  1171. xtype: 'textarea',
  1172. value: model.dom.getElementContent('description'),
  1173. listeners: {
  1174. 'blur': function(field) {
  1175. var newValue = field.getValue();
  1176. model.dom.setElementContent('description', newValue);
  1177. }
  1178. }
  1179. }]
  1180. });
  1181. tabPanel.add(p);
  1182. tabPanel.activate(p);
  1183. }
  1184. });
  1185. Ext.ns('App.form');
  1186. App.form.ForkForm = Ext.extend(App.form.AbstractForm, {
  1187. decorate: function(tabPanel, model) {
  1188. this.clearItem(tabPanel);
  1189. this.resetBasic(tabPanel, model);
  1190. this.resetEvent(tabPanel, model);
  1191. },
  1192. resetBasic: function(tabPanel, model) {
  1193. var p = new Ext.form.FormPanel({
  1194. title: '基本配置',
  1195. labelWidth: 70,
  1196. labelAlign: 'right',
  1197. border: false,
  1198. defaultType: 'textfield',
  1199. defaults: {
  1200. anchor: '90%'
  1201. },
  1202. bodyStyle: {
  1203. padding: '6px 0 0'
  1204. },
  1205. items: [{
  1206. name: 'name',
  1207. fieldLabel: '名称',
  1208. value: model.text ? model.text : '',
  1209. listeners: {
  1210. 'blur': function(field) {
  1211. var newValue = field.getValue();
  1212. model.text = newValue;
  1213. }
  1214. }
  1215. }, {
  1216. name: 'description',
  1217. fieldLabel: '备注',
  1218. xtype: 'textarea',
  1219. value: model.dom.getElementContent('description'), /**获取dom的值**/
  1220. listeners: {
  1221. 'blur': function(field) {
  1222. var newValue = field.getValue();
  1223. model.dom.setElementContent('description', newValue);
  1224. }
  1225. }
  1226. }]
  1227. });
  1228. tabPanel.add(p);
  1229. tabPanel.activate(p);
  1230. }
  1231. });
  1232. Ext.ns('App.form');
  1233. App.form.HqlForm = Ext.extend(App.form.AbstractForm, {
  1234. decorate: function(tabPanel, model) {
  1235. this.clearItem(tabPanel);
  1236. this.resetBasic(tabPanel, model);
  1237. this.resetEvent(tabPanel, model);
  1238. },
  1239. resetBasic: function(tabPanel, model) {
  1240. var p = new Ext.form.FormPanel({
  1241. title: '基本配置',
  1242. labelWidth: 70,
  1243. labelAlign: 'right',
  1244. border: false,
  1245. defaultType: 'textfield',
  1246. defaults: {
  1247. anchor: '90%'
  1248. },
  1249. bodyStyle: {
  1250. padding: '6px 0 0'
  1251. },
  1252. items: [{
  1253. name: 'name',
  1254. fieldLabel: '名称',
  1255. value: model.text ? model.text : '',
  1256. listeners: {
  1257. 'blur': function(field) {
  1258. var newValue = field.getValue();
  1259. // FIXME: use command
  1260. model.text = newValue;
  1261. model.editPart.figure.updateAndShowText(newValue);
  1262. }
  1263. }
  1264. }, {
  1265. name: 'var',
  1266. fieldLabel: '变量',
  1267. value: model.dom.getAttribute('var'),
  1268. listeners: {
  1269. 'blur': function(field) {
  1270. var newValue = field.getValue();
  1271. model.dom.setAttribute('var', newValue);
  1272. }
  1273. }
  1274. }, {
  1275. name: 'unique',
  1276. fieldLabel: '是否唯一',
  1277. value: model.dom.getAttribute('unique'),
  1278. listeners: {
  1279. 'blur': function(field) {
  1280. var newValue = field.getValue();
  1281. model.dom.setAttribute('unique', newValue);
  1282. }
  1283. }
  1284. }, {
  1285. name: 'query',
  1286. fieldLabel: '查询语句',
  1287. value: model.dom.setElementContent('query'),
  1288. listeners: {
  1289. 'blur': function(field) {
  1290. var newValue = field.getValue();
  1291. model.dom.setElementContent('query', newValue);
  1292. }
  1293. }
  1294. }, {
  1295. name: 'description',
  1296. fieldLabel: '备注',
  1297. xtype: 'textarea',
  1298. value: model.dom.getElementContent('description'),
  1299. listeners: {
  1300. 'blur': function(field) {
  1301. var newValue = field.getValue();
  1302. model.dom.setElementContent('description', newValue);
  1303. }
  1304. }
  1305. }]
  1306. });
  1307. tabPanel.add(p);
  1308. tabPanel.activate(p);
  1309. }
  1310. });
  1311. /**Ext.ns('App.form');
  1312. App.form.HumanForm = Ext.extend(App.form.AbstractForm, {
  1313. assigneeXtype: 'orgfield',
  1314. decorate: function(tabPanel, model) {
  1315. this.clearItem(tabPanel);
  1316. this.resetBasic(tabPanel, model);
  1317. this.resetParticipant(tabPanel, model);
  1318. this.resetEvent(tabPanel, model);
  1319. },
  1320. resetBasic: function(tabPanel, model) {
  1321. var p = new Ext.form.FormPanel({
  1322. title: '基本配置',
  1323. labelWidth: 70,
  1324. labelAlign: 'right',
  1325. border: false,
  1326. defaultType: 'textfield',
  1327. defaults: {
  1328. anchor: '90%'
  1329. },
  1330. bodyStyle: {
  1331. padding: '6px 0 0'
  1332. },
  1333. items: [{
  1334. name: 'name',
  1335. fieldLabel: '名称',
  1336. value: model.text ? model.text : '',
  1337. listeners: {
  1338. 'blur': function(field) {
  1339. var newValue = field.getValue();
  1340. // FIXME: use command
  1341. model.text = newValue;
  1342. model.editPart.figure.updateAndShowText(newValue);
  1343. }
  1344. }
  1345. }, {
  1346. name: 'form',
  1347. fieldLabel: '表单',
  1348. value: model.dom.getAttribute('form'),
  1349. listeners: {
  1350. 'blur': function(field) {
  1351. var newValue = field.getValue();
  1352. model.dom.setAttribute('form', newValue);
  1353. }
  1354. }
  1355. }, {
  1356. name: 'assignee',
  1357. xtype: this.assigneeXtype,
  1358. fieldLabel: '分配人',
  1359. value: model.dom.getAttribute('assignee'),
  1360. listeners: {
  1361. 'select': function(field) {
  1362. var newValue = field.getValue();
  1363. model.dom.setAttribute('assignee', newValue);
  1364. }
  1365. }
  1366. }, {
  1367. name: 'duedate',
  1368. fieldLabel: '任务时限',
  1369. value: model.dom.getAttribute('duedate'),
  1370. listeners: {
  1371. 'blur': function(field) {
  1372. var newValue = field.getValue();
  1373. model.dom.setAttribute('duedate', newValue);
  1374. }
  1375. }
  1376. }, {
  1377. name: 'timeoutType',
  1378. fieldLabel: '超时处理方式',
  1379. value: model.dom.getAttribute('timeout-type'),
  1380. xtype: 'onecombo',
  1381. data: ['message', 'continue', 'end'],
  1382. listeners: {
  1383. 'blur': function(field) {
  1384. var newValue = field.getValue();
  1385. model.dom.setAttribute('timeout-type', newValue);
  1386. }
  1387. }
  1388. }, {
  1389. name: 'swimlaneName',
  1390. fieldLabel: '泳道',
  1391. value: model.dom.getProperty('swimlaneName', 'string'),
  1392. listeners: {
  1393. 'blur': function(field) {
  1394. var newValue = field.getValue();
  1395. model.dom.setProperty('swimlaneName', newValue, 'string');
  1396. }
  1397. }
  1398. }, {
  1399. name: 'description',
  1400. fieldLabel: '备注',
  1401. xtype: 'textarea',
  1402. value: model.dom.getElementContent('description'),
  1403. listeners: {
  1404. 'blur': function(field) {
  1405. var newValue = field.getValue();
  1406. model.dom.setElementContent('description', newValue);
  1407. }
  1408. }
  1409. }]
  1410. });
  1411. tabPanel.add(p);
  1412. tabPanel.activate(p);
  1413. }
  1414. });
  1415. **/
  1416. Ext.ns('App.form');
  1417. App.form.JavaForm = Ext.extend(App.form.AbstractForm, {
  1418. decorate: function(tabPanel, model) {
  1419. this.clearItem(tabPanel);
  1420. this.resetBasic(tabPanel, model);
  1421. this.resetEvent(tabPanel, model);
  1422. },
  1423. resetBasic: function(tabPanel, model) {
  1424. var p = new Ext.form.FormPanel({
  1425. title: '基本配置',
  1426. labelWidth: 70,
  1427. labelAlign: 'right',
  1428. border: false,
  1429. defaultType: 'textfield',
  1430. defaults: {
  1431. anchor: '90%'
  1432. },
  1433. bodyStyle: {
  1434. padding: '6px 0 0'
  1435. },
  1436. items: [{
  1437. name: 'name',
  1438. fieldLabel: '名称',
  1439. value: model.text ? model.text : '',
  1440. listeners: {
  1441. 'blur': function(field) {
  1442. var newValue = field.getValue();
  1443. // FIXME: use command
  1444. model.text = newValue;
  1445. model.editPart.figure.updateAndShowText(newValue);
  1446. }
  1447. }
  1448. }, {
  1449. name: 'classname',
  1450. fieldLabel: '类名',
  1451. value: model.dom.getAttribute('class'),
  1452. listeners: {
  1453. 'blur': function(field) {
  1454. var newValue = field.getValue();
  1455. model.dom.setAttribute('class', newValue);
  1456. }
  1457. }
  1458. }, {
  1459. name: 'method',
  1460. fieldLabel: '方法',
  1461. value: model.dom.getAttribute('method'),
  1462. listeners: {
  1463. 'blur': function(field) {
  1464. var newValue = field.getValue();
  1465. model.dom.setAttribute('method', newValue);
  1466. }
  1467. }
  1468. }, {
  1469. name: 'description',
  1470. fieldLabel: '备注',
  1471. xtype: 'textarea',
  1472. value: model.dom.getElementContent('description'),
  1473. listeners: {
  1474. 'blur': function(field) {
  1475. var newValue = field.getValue();
  1476. model.dom.setElementContent('description', newValue);
  1477. }
  1478. }
  1479. }]
  1480. });
  1481. tabPanel.add(p);
  1482. tabPanel.activate(p);
  1483. }
  1484. });
  1485. Ext.ns('App.form');
  1486. App.form.JmsForm = Ext.extend(App.form.AbstractForm, {
  1487. decorate: function(tabPanel, model) {
  1488. this.clearItem(tabPanel);
  1489. this.resetBasic(tabPanel, model);
  1490. this.resetEvent(tabPanel, model);
  1491. },
  1492. resetBasic: function(tabPanel, model) {
  1493. var p = new Ext.form.FormPanel({
  1494. title: '基本配置',
  1495. labelWidth: 70,
  1496. labelAlign: 'right',
  1497. border: false,
  1498. defaultType: 'textfield',
  1499. defaults: {
  1500. anchor: '90%'
  1501. },
  1502. bodyStyle: {
  1503. padding: '6px 0 0'
  1504. },
  1505. items: [{
  1506. name: 'name',
  1507. fieldLabel: '名称',
  1508. value: model.text ? model.text : '',
  1509. listeners: {
  1510. 'blur': function(field) {
  1511. var newValue = field.getValue();
  1512. // FIXME: use command
  1513. model.text = newValue;
  1514. model.editPart.figure.updateAndShowText(newValue);
  1515. }
  1516. }
  1517. }, {
  1518. name: 'connectionFactory',
  1519. fieldLabel: '连接工厂',
  1520. value: model.dom.getAttribute('connection-factory'),
  1521. listeners: {
  1522. 'blur': function(field) {
  1523. var newValue = field.getValue();
  1524. model.dom.setAttribute('connection-factory', newValue);
  1525. }
  1526. }
  1527. }, {
  1528. name: 'destination',
  1529. fieldLabel: '消息目标',
  1530. value: model.dom.getAttribute('destination'),
  1531. listeners: {
  1532. 'blur': function(field) {
  1533. var newValue = field.getValue();
  1534. model.dom.setAttribute('destination', newValue);
  1535. }
  1536. }
  1537. }, {
  1538. name: 'transacted',
  1539. fieldLabel: '事务性',
  1540. xtype: 'onecombo',
  1541. data: ['true', 'false'],
  1542. value: model.dom.getAttribute('transacted'),
  1543. listeners: {
  1544. 'blur': function(field) {
  1545. var newValue = field.getValue();
  1546. model.dom.setAttribute('transacted', newValue);
  1547. }
  1548. }
  1549. }, {
  1550. name: 'acknowledge',
  1551. fieldLabel: '提醒方式',
  1552. xtype: 'onecombo',
  1553. data: ['auto', 'client', 'dups-ok'],
  1554. value: model.dom.getAttribute('acknowledge'),
  1555. listeners: {
  1556. 'blur': function(field) {
  1557. var newValue = field.getValue();
  1558. model.dom.setAttribute('acknowledge', newValue);
  1559. }
  1560. }
  1561. }, {
  1562. name: 'textObject',
  1563. fieldLabel: '内容',
  1564. xtype: 'textarea',
  1565. value: model.dom.getElementContent('text'),
  1566. listeners: {
  1567. 'blur': function(field) {
  1568. var newValue = field.getValue();
  1569. model.dom.setElementContent('text', newValue);
  1570. }
  1571. }
  1572. }, {
  1573. name: 'description',
  1574. fieldLabel: '备注',
  1575. xtype: 'textarea',
  1576. value: model.dom.getElementContent('description'),
  1577. listeners: {
  1578. 'blur': function(field) {
  1579. var newValue = field.getValue();
  1580. model.dom.setElementContent('description', newValue);
  1581. }
  1582. }
  1583. }]
  1584. });
  1585. tabPanel.add(p);
  1586. tabPanel.activate(p);
  1587. }
  1588. });
  1589. Ext.ns('App.form');
  1590. App.form.JoinForm = Ext.extend(App.form.AbstractForm, {
  1591. decorate: function(tabPanel, model) {
  1592. this.clearItem(tabPanel);
  1593. this.resetBasic(tabPanel, model);
  1594. this.resetEvent(tabPanel, model);
  1595. },
  1596. resetBasic: function(tabPanel, model) {
  1597. var p = new Ext.form.FormPanel({
  1598. title: '基本配置',
  1599. labelWidth: 70,
  1600. labelAlign: 'right',
  1601. border: false,
  1602. defaultType: 'textfield',
  1603. defaults: {
  1604. anchor: '90%'
  1605. },
  1606. bodyStyle: {
  1607. padding: '6px 0 0'
  1608. },
  1609. items: [{
  1610. name: 'name',
  1611. fieldLabel: '名称',
  1612. value: model.text ? model.text : '',
  1613. listeners: {
  1614. 'blur': function(field) {
  1615. var newValue = field.getValue();
  1616. model.text = newValue;
  1617. }
  1618. }
  1619. }, {
  1620. name: 'multiplicity',
  1621. fieldLabel: '汇聚数目',
  1622. value: model.dom.getAttribute('multiplicity'),
  1623. xtype: 'numberfield',
  1624. listeners: {
  1625. 'blur': function(field) {
  1626. var newValue = field.getValue();
  1627. model.dom.setAttribute('multiplicity', newValue);
  1628. }
  1629. }
  1630. }/*, {
  1631. name: 'lockmode',
  1632. fieldLabel: '锁定模式',
  1633. xtype: 'onecombo',
  1634. data: ['none', 'read', 'upgrade', 'upgrade_nowait', 'write'],
  1635. value: model.dom.getAttribute('lockmode'),
  1636. listeners: {
  1637. 'blur': function(field) {
  1638. var newValue = field.getValue();
  1639. model.dom.setAttribute('lockmode', newValue);
  1640. }
  1641. }
  1642. }*/, {
  1643. name: 'description',
  1644. fieldLabel: '备注',
  1645. xtype: 'textarea',
  1646. value: model.dom.getElementContent('description'),
  1647. listeners: {
  1648. 'blur': function(field) {
  1649. var newValue = field.getValue();
  1650. model.dom.setElementContent('description', newValue);
  1651. }
  1652. }
  1653. }]
  1654. });
  1655. tabPanel.add(p);
  1656. tabPanel.activate(p);
  1657. }
  1658. });
  1659. Ext.ns('App.form');
  1660. App.form.MailForm = Ext.extend(App.form.AbstractForm, {
  1661. decorate: function(tabPanel, model) {
  1662. this.clearItem(tabPanel);
  1663. this.resetBasic(tabPanel, model);
  1664. this.resetEvent(tabPanel, model);
  1665. },
  1666. resetBasic: function(tabPanel, model) {
  1667. var p = new Ext.form.FormPanel({
  1668. title: '基本配置',
  1669. labelWidth: 70,
  1670. labelAlign: 'right',
  1671. border: false,
  1672. defaultType: 'textfield',
  1673. defaults: {
  1674. anchor: '90%'
  1675. },
  1676. bodyStyle: {
  1677. padding: '6px 0 0'
  1678. },
  1679. items: [{
  1680. name: 'name',
  1681. fieldLabel: '名称',
  1682. value: model.text ? model.text : '',
  1683. listeners: {
  1684. 'blur': function(field) {
  1685. var newValue = field.getValue();
  1686. // FIXME: use command
  1687. model.text = newValue;
  1688. model.editPart.figure.updateAndShowText(newValue);
  1689. }
  1690. }
  1691. }, {
  1692. name: 'template',
  1693. fieldLabel: '模板',
  1694. value: model.dom.getAttribute('template'),
  1695. listeners: {
  1696. 'blur': function(field) {
  1697. var newValue = field.getValue();
  1698. model.dom.setAttribute('template', newValue);
  1699. }
  1700. }
  1701. }, {
  1702. name: 'from',
  1703. fieldLabel: '发信人',
  1704. value: model.dom.getElementContent('from'),
  1705. listeners: {
  1706. 'blur': function(field) {
  1707. var newValue = field.getValue();
  1708. model.dom.setElementContent('from', newValue);
  1709. }
  1710. }
  1711. }, {
  1712. name: 'to',
  1713. fieldLabel: '收信人',
  1714. value: model.dom.getElementContent('to'),
  1715. listeners: {
  1716. 'blur': function(field) {
  1717. var newValue = field.getValue();
  1718. model.dom.setElementContent('to', newValue);
  1719. }
  1720. }
  1721. }, {
  1722. name: 'subject',
  1723. fieldLabel: '标题',
  1724. value: model.dom.getElementContent('subject'),
  1725. listeners: {
  1726. 'blur': function(field) {
  1727. var newValue = field.getValue();
  1728. model.dom.setElementContent('subject', newValue);
  1729. }
  1730. }
  1731. }, {
  1732. name: 'content',
  1733. fieldLabel: '内容',
  1734. value: model.dom.getElementContent('html'),
  1735. xtype: 'htmleditor',
  1736. listeners: {
  1737. 'sync': function(field, newValue) {
  1738. model.dom.setElementContent('html', newValue);
  1739. }
  1740. }
  1741. }, {
  1742. name: 'description',
  1743. fieldLabel: '备注',
  1744. value: model.dom.getElementContent('description'),
  1745. listeners: {
  1746. 'blur': function(field) {
  1747. var newValue = field.getValue();
  1748. model.dom.setElementContent('description', newValue);
  1749. }
  1750. }
  1751. }]
  1752. });
  1753. tabPanel.add(p);
  1754. tabPanel.activate(p);
  1755. }
  1756. });
  1757. App.form.ProcessForm = Ext.extend(App.form.AbstractForm, {
  1758. decorate: function(tabPanel, model) {
  1759. this.clearItem(tabPanel);
  1760. this.resetBasic(tabPanel, model);
  1761. /* this.resetEvent(tabPanel, model);*/
  1762. /* this.resetSwimlane(tabPanel, model);*/
  1763. /* this.resetTimer(tabPanel, model);*/
  1764. },
  1765. resetBasic: function(tabPanel, model) {
  1766. var cstore = new Ext.data.SimpleStore({
  1767. fields : ["value"],
  1768. data : [["是"],["否"]]
  1769. });
  1770. var k=model.dom.getAttribute("data");
  1771. if(k.length==0){
  1772. var combo = new Ext.form.ComboBox({
  1773. name:'pr_enabled',
  1774. fieldLabel:'启用',
  1775. editable:false,
  1776. allowBlanmodel: false,
  1777. store:cstore,
  1778. /*style:'background:#D3D3D3',*/
  1779. value:model.pr_enabled?model.pr_enabled:'',
  1780. valueField : "value",
  1781. displayField : "value",
  1782. mode : "local",
  1783. triggerAction : "all",
  1784. /*value:model.pr_id?model.pr_id:'',*/
  1785. listeners:{
  1786. 'blur':function(field){
  1787. var newValue=field.getValue();
  1788. /*model.dom.setElementContent('pr_id', newValue);*/
  1789. model.pr_enabled=newValue;
  1790. }
  1791. }
  1792. });
  1793. var p = new Ext.form.FormPanel({
  1794. id:'FirstForm',
  1795. title: '基本配置',
  1796. labelWidth: 70,
  1797. labelAlign: 'right',
  1798. border: false,
  1799. defaultType: 'textfield',
  1800. defaults: {
  1801. anchor: '90%'
  1802. },
  1803. bodyStyle: {
  1804. padding: '6px 0 0'
  1805. },
  1806. items: [
  1807. //{
  1808. //name: 'pr_CatId',
  1809. //fieldLabel: '业务目录',
  1810. //value: model.pr ? model.procCatName : '',
  1811. //allowBlanmodel: false,
  1812. //xtype: 'treefield',
  1813. //treeConfig: {
  1814. //title: '业务目录',
  1815. //dataTag: '../console/proccat!getEditTree.do',
  1816. //hiddenId: 'processCatalogId',
  1817. //hiddenName: 'procCatId',
  1818. //handler: function(picmodeler, node) {
  1819. //var form = p.getForm();
  1820. //var field = form.findField("procCatId");
  1821. //field.setValue(node.attributes.dbid);
  1822. //field.setRawValue(node.text);
  1823. //this.procCatId = node.attributes.dbid;
  1824. //model.procCatId = this.procCatId;
  1825. //model.pr_CatId = node.text;
  1826. //},
  1827. //scope: this
  1828. //}
  1829. //},
  1830. {
  1831. name: 'pr_defname',
  1832. fieldLabel: '流程名称',
  1833. allowBlanmodel: false,
  1834. value: model.pr_defname ? model.pr_defname : '',
  1835. listeners: {
  1836. 'blur': function(field) {
  1837. var newValue = field.getValue();
  1838. /*model.dom.setAttribute('name',newValue);*/
  1839. /* var editor = Gef.activeEditor;
  1840. var xml = editor.serial();
  1841. console.log(xml);*/
  1842. model.pr_defname = newValue;
  1843. /* model.text = newValue;*/
  1844. }
  1845. /* 'beforerender':function(field){
  1846. var dataListId=getUrlParam('datalistId');
  1847. if(dataListId){
  1848. console.log(parent.Ext.getCmp(dataListId));
  1849. }
  1850. }*/
  1851. }
  1852. //xtype: 'combo',
  1853. //displayField: 'name',
  1854. //valueField: 'name',
  1855. //triggerAction: 'all',
  1856. //store: new Ext.data.Store({
  1857. //url: '../console/procver!getProcDefByProcCat.do',
  1858. //reader: new Ext.data.JsonReader({
  1859. //root: ''
  1860. //}, ['id', 'name', 'code']),
  1861. //listeners: {
  1862. //beforeload: function() {
  1863. //var form = p.getForm();
  1864. //var field = form.findField("procDefName");
  1865. //field.store.baseParams.procCatId = this.procCatId;
  1866. //},
  1867. //scope: this
  1868. //}
  1869. //}),
  1870. //listeners: {
  1871. //select: function(combo, record) {
  1872. //var form = p.getForm();
  1873. //this.procDefId = record.get('id');
  1874. //form.findField('procDefCode').setValue(record.get('code'));
  1875. //model.procDefId = record.get('id');
  1876. //model.procDefCode = record.get('code');
  1877. //},
  1878. //scope: this
  1879. //}
  1880. }/*,{
  1881. name:'pr_constructor',
  1882. id:'pr_constructor',
  1883. fieldLabel:'操作人',
  1884. readOnly:true,
  1885. style:'background:#D3D3D3',
  1886. //allowBlanmodel: false,
  1887. value:model.pr_constructor?model.pr_constructor:'',
  1888. listeners: {
  1889. 'blur': function(field) {
  1890. var newValue = field.getValue();
  1891. model.pr_constructor = newValue;
  1892. },
  1893. }
  1894. }*/,{
  1895. name: 'pr_caller',
  1896. fieldLabel: '关联表单(caller)',
  1897. allowBlanmodel: false,
  1898. value: model.pr_caller?model.pr_caller:'',
  1899. listeners: {
  1900. 'blur': function(field) {
  1901. var newValue = field.getValue();
  1902. // console.log(model);
  1903. model.pr_caller = newValue;
  1904. },
  1905. 'beforerender':function(field){
  1906. var condition=getUrlParam('formCondition');
  1907. if(condition){
  1908. field.setValue(condition.split("IS")[1]);
  1909. }
  1910. }
  1911. }
  1912. }/*,{
  1913. name: 'pr_vername',
  1914. fieldLabel: '版本号',
  1915. value: model.pr_vername ? model.pr_verName : '',
  1916. xtype: 'combo',
  1917. displayField: 'name',
  1918. valueField: 'name',
  1919. triggerAction: 'all',
  1920. store: new Ext.data.Store({
  1921. url: '../console/procver!getProcVerByProcDef.do',
  1922. reader: new Ext.data.JsonReader({
  1923. root: ''
  1924. }, ['name']),
  1925. listeners: {
  1926. beforeload: function() {
  1927. var form = p.getForm();
  1928. var field = form.findField("pr_VerName");
  1929. field.store.baseParams.procDefId = this.procDefId;
  1930. },
  1931. scope: this
  1932. }
  1933. }),
  1934. listeners: {
  1935. 'blur': function(field) {
  1936. var newValue = field.getValue();
  1937. model.pr_VerName = newValue;
  1938. }
  1939. }
  1940. }*/,combo, {
  1941. name: 'pr_descn',
  1942. fieldLabel: '备注',
  1943. xtype: 'textarea',
  1944. //value: model.dom.getElementContent('description'),//设置。。
  1945. value:model.pr_descn ? model.pr_descn:'',
  1946. listeners: {
  1947. 'blur': function(field) {
  1948. var newValue = field.getValue();
  1949. model.dom.setElementContent('description', newValue);
  1950. var a=model;
  1951. model.pr_descn=newValue;
  1952. }
  1953. }
  1954. }]
  1955. });
  1956. }else{
  1957. var combo = new Ext.form.ComboBox({
  1958. name:'pr_enabled',
  1959. fieldLabel:'启用',
  1960. editable:false,
  1961. allowBlanmodel: false,
  1962. store:cstore,
  1963. /*style:'background:#D3D3D3',*/
  1964. value:k.pr_enabled?k.pr_enabled:'',
  1965. valueField : "value",
  1966. displayField : "value",
  1967. mode : "local",
  1968. triggerAction : "all",
  1969. /*value:model.pr_id?model.pr_id:'',*/
  1970. listeners:{
  1971. 'blur':function(field){
  1972. var newValue=field.getValue();
  1973. /*model.dom.setElementContent('pr_id', newValue);*/
  1974. k.pr_enabled=newValue;
  1975. }
  1976. }
  1977. });
  1978. var p = new Ext.form.FormPanel({
  1979. id:'FirstForm',
  1980. title: '基本配置',
  1981. labelWidth: 70,
  1982. labelAlign: 'right',
  1983. border: false,
  1984. defaultType: 'textfield',
  1985. defaults: {
  1986. anchor: '90%'
  1987. },
  1988. bodyStyle: {
  1989. padding: '6px 0 0'
  1990. },
  1991. items: [
  1992. //{
  1993. //name: 'pr_CatId',
  1994. //fieldLabel: '业务目录',
  1995. //value: model.pr ? model.procCatName : '',
  1996. //allowBlank: false,
  1997. //xtype: 'treefield',
  1998. //treeConfig: {
  1999. //title: '业务目录',
  2000. //dataTag: '../console/proccat!getEditTree.do',
  2001. //hiddenId: 'processCatalogId',
  2002. //hiddenName: 'procCatId',
  2003. //handler: function(picker, node) {
  2004. //var form = p.getForm();
  2005. //var field = form.findField("procCatId");
  2006. //field.setValue(node.attributes.dbid);
  2007. //field.setRawValue(node.text);
  2008. //this.procCatId = node.attributes.dbid;
  2009. //model.procCatId = this.procCatId;
  2010. //model.pr_CatId = node.text;
  2011. //},
  2012. //scope: this
  2013. //}
  2014. //},
  2015. {
  2016. name: 'pr_defname',
  2017. fieldLabel: '流程名称',
  2018. allowBlank: false,
  2019. value: k.pr_defname ? k.pr_defname : '',
  2020. listeners: {
  2021. 'blur': function(field) {
  2022. var newValue = field.getValue();
  2023. k.pr_defname = newValue;
  2024. }
  2025. }
  2026. //xtype: 'combo',
  2027. //displayField: 'name',
  2028. //valueField: 'name',
  2029. //triggerAction: 'all',
  2030. //store: new Ext.data.Store({
  2031. //url: '../console/procver!getProcDefByProcCat.do',
  2032. //reader: new Ext.data.JsonReader({
  2033. //root: ''
  2034. //}, ['id', 'name', 'code']),
  2035. //listeners: {
  2036. //beforeload: function() {
  2037. //var form = p.getForm();
  2038. //var field = form.findField("procDefName");
  2039. //field.store.baseParams.procCatId = this.procCatId;
  2040. //},
  2041. //scope: this
  2042. //}
  2043. //}),
  2044. //listeners: {
  2045. //select: function(combo, record) {
  2046. //var form = p.getForm();
  2047. //this.procDefId = record.get('id');
  2048. //form.findField('procDefCode').setValue(record.get('code'));
  2049. //model.procDefId = record.get('id');
  2050. //model.procDefCode = record.get('code');
  2051. //},
  2052. //scope: this
  2053. //}
  2054. },/*{
  2055. name:'pr_constructor',
  2056. id:'pr_constructor',
  2057. fieldLabel:'操作人',
  2058. readOnly:true,
  2059. style:'background:#D3D3D3',
  2060. //allowBlank: false,
  2061. value:k.pr_constructor?k.pr_constructor:'',
  2062. listeners: {
  2063. 'blur': function(field) {
  2064. var newValue = field.getValue();
  2065. k.pr_constructor = newValue;
  2066. },
  2067. }
  2068. },{
  2069. name:'pr_id',
  2070. fieldLabel:'流程Id',
  2071. //disabled:true,
  2072. readOnly:true,
  2073. style:'background:#D3D3D3',
  2074. //value:model.pr_Id?model.pr_Id:'',
  2075. value:k.pr_id?k.pr_id:'',
  2076. listeners:{
  2077. 'blur':function(field){
  2078. var newValue=field.getValue();
  2079. model.dom.setElementContent('pr_id', newValue);
  2080. k.pr_id=newValue;
  2081. }
  2082. }
  2083. },*/{
  2084. name: 'pr_caller',
  2085. fieldLabel: '流程对应表单(caller)',
  2086. allowBlank: false,
  2087. value: k.pr_caller?k.pr_caller:'',
  2088. listeners: {
  2089. 'blur': function(field) {
  2090. var newValue = field.getValue();
  2091. k.pr_caller = newValue;
  2092. },
  2093. 'afterrender':function(field){
  2094. alert(getUrlParam('formCondition'));
  2095. }
  2096. }
  2097. },/*{
  2098. name: 'pr_vername',
  2099. fieldLabel: '版本号',
  2100. value: k.pr_vername ? k.pr_verName : '',
  2101. xtype: 'combo',
  2102. displayField: 'name',
  2103. valueField: 'name',
  2104. triggerAction: 'all',
  2105. store: new Ext.data.Store({
  2106. url: '../console/procver!getProcVerByProcDef.do',
  2107. reader: new Ext.data.JsonReader({
  2108. root: ''
  2109. }, ['name']),
  2110. listeners: {
  2111. beforeload: function() {
  2112. var form = p.getForm();
  2113. var field = form.findField("pr_VerName");
  2114. field.store.baseParams.procDefId = this.procDefId;
  2115. },
  2116. scope: this
  2117. }
  2118. }),
  2119. listeners: {
  2120. 'blur': function(field) {
  2121. var newValue = field.getValue();
  2122. model.pr_VerName = newValue;
  2123. }
  2124. }
  2125. },*/ combo,{
  2126. name: 'pr_descn',
  2127. fieldLabel: '备注',
  2128. xtype: 'textarea',
  2129. //value: model.dom.getElementContent('description'),//设置。。
  2130. value: k.pr_descn ? k.pr_descn : '',
  2131. listeners: {
  2132. 'blur': function(field) {
  2133. var newValue = field.getValue();
  2134. model.dom.setElementContent('description', newValue);
  2135. var a=model;
  2136. k.pr_descn=newValue;
  2137. }
  2138. }
  2139. }]
  2140. });
  2141. }
  2142. tabPanel.add(p);
  2143. tabPanel.activate(p);
  2144. }
  2145. });
  2146. Ext.ns('App.form');
  2147. App.form.RuleDecisionForm = Ext.extend(App.form.AbstractForm, {
  2148. decorate: function(tabPanel, model) {
  2149. this.clearItem(tabPanel);
  2150. this.resetBasic(tabPanel, model);
  2151. this.resetEvent(tabPanel, model);
  2152. },
  2153. resetBasic: function(tabPanel, model) {
  2154. var p = new Ext.form.FormPanel({
  2155. title: '基本配置',
  2156. labelWidth: 70,
  2157. labelAlign: 'right',
  2158. border: false,
  2159. defaultType: 'textfield',
  2160. defaults: {
  2161. anchor: '90%'
  2162. },
  2163. bodyStyle: {
  2164. padding: '6px 0 0'
  2165. },
  2166. items: [{
  2167. name: 'name',
  2168. fieldLabel: '名称',
  2169. value: model.text ? model.text : '',
  2170. listeners: {
  2171. 'blur': function(field) {
  2172. var newValue = field.getValue();
  2173. model.text = newValue;
  2174. }
  2175. }
  2176. }, {
  2177. name: 'description',
  2178. fieldLabel: '备注',
  2179. xtype: 'textarea',
  2180. value: model.dom.getElementContent('description'),
  2181. listeners: {
  2182. 'blur': function(field) {
  2183. var newValue = field.getValue();
  2184. model.dom.setElementContent('description', newValue);
  2185. }
  2186. }
  2187. }]
  2188. });
  2189. tabPanel.add(p);
  2190. tabPanel.activate(p);
  2191. }
  2192. });
  2193. Ext.ns('App.form');
  2194. App.form.RulesForm = Ext.extend(App.form.AbstractForm, {
  2195. decorate: function(tabPanel, model) {
  2196. this.clearItem(tabPanel);
  2197. this.resetBasic(tabPanel, model);
  2198. this.resetEvent(tabPanel, model);
  2199. },
  2200. resetBasic: function(tabPanel, model) {
  2201. var p = new Ext.form.FormPanel({
  2202. title: '基本配置',
  2203. labelWidth: 70,
  2204. labelAlign: 'right',
  2205. border: false,
  2206. defaultType: 'textfield',
  2207. defaults: {
  2208. anchor: '90%'
  2209. },
  2210. bodyStyle: {
  2211. padding: '6px 0 0'
  2212. },
  2213. items: [{
  2214. name: 'name',
  2215. fieldLabel: '名称',
  2216. value: model.text ? model.text : '',
  2217. listeners: {
  2218. 'blur': function(field) {
  2219. var newValue = field.getValue();
  2220. // FIXME: use command
  2221. model.text = newValue;
  2222. model.editPart.figure.updateAndShowText(newValue);
  2223. }
  2224. }
  2225. }, {
  2226. name: 'factVar',
  2227. fieldLabel: '变量',
  2228. value: model.dom.getElementAttribute('fact', 'var'),
  2229. listeners: {
  2230. 'blur': function(field) {
  2231. var newValue = field.getValue();
  2232. model.dom.setElementAttribute('fact', 'var', newValue);
  2233. }
  2234. }
  2235. }, {
  2236. name: 'factExpr',
  2237. fieldLabel: '表达式',
  2238. value: model.dom.getElementAttribute('fact', 'expr'),
  2239. listeners: {
  2240. 'blur': function(field) {
  2241. var newValue = field.getValue();
  2242. model.dom.setElementAttribute('fact', 'expr', newValue);
  2243. }
  2244. }
  2245. }, {
  2246. name: 'description',
  2247. fieldLabel: '备注',
  2248. xtype: 'textarea',
  2249. value: model.dom.getElementContent('description'),
  2250. listeners: {
  2251. 'blur': function(field) {
  2252. var newValue = field.getValue();
  2253. model.dom.setElementContent('description', newValue);
  2254. }
  2255. }
  2256. }]
  2257. });
  2258. tabPanel.add(p);
  2259. tabPanel.activate(p);
  2260. }
  2261. });
  2262. Ext.ns('App.form');
  2263. App.form.ScriptForm = Ext.extend(App.form.AbstractForm, {
  2264. decorate: function(tabPanel, model) {
  2265. this.clearItem(tabPanel);
  2266. this.resetBasic(tabPanel, model);
  2267. this.resetEvent(tabPanel, model);
  2268. },
  2269. resetBasic: function(tabPanel, model) {
  2270. var p = new Ext.form.FormPanel({
  2271. title: '基本配置',
  2272. labelWidth: 70,
  2273. labelAlign: 'right',
  2274. border: false,
  2275. defaultType: 'textfield',
  2276. defaults: {
  2277. anchor: '90%'
  2278. },
  2279. bodyStyle: {
  2280. padding: '6px 0 0'
  2281. },
  2282. items: [{
  2283. name: 'name',
  2284. fieldLabel: '名称',
  2285. value: model.text ? model.text : '',
  2286. listeners: {
  2287. 'blur': function(field) {
  2288. var newValue = field.getValue();
  2289. // FIXME: use command
  2290. model.text = newValue;
  2291. model.editPart.figure.updateAndShowText(newValue);
  2292. }
  2293. }
  2294. }, {
  2295. name: 'expr',
  2296. fieldLabel: '表达式',
  2297. value: model.dom.getAttribute('expr'),
  2298. listeners: {
  2299. 'blur': function(field) {
  2300. var newValue = field.getValue();
  2301. model.dom.setAttribute('expr', newValue);
  2302. }
  2303. }
  2304. }, {
  2305. name: 'lang',
  2306. fieldLabel: '脚本语言',
  2307. value: model.dom.getAttribute('lang'),
  2308. listeners: {
  2309. 'blur': function(field) {
  2310. var newValue = field.getValue();
  2311. model.dom.setAttribute('lang', newValue);
  2312. }
  2313. }
  2314. }, {
  2315. name: 'description',
  2316. fieldLabel: '备注',
  2317. xtype: 'textarea',
  2318. value: model.dom.getElementContent('description'),
  2319. listeners: {
  2320. 'blur': function(field) {
  2321. var newValue = field.getValue();
  2322. model.dom.setElementContent('description', newValue);
  2323. }
  2324. }
  2325. }]
  2326. });
  2327. tabPanel.add(p);
  2328. tabPanel.activate(p);
  2329. }
  2330. });
  2331. Ext.ns('App.form');
  2332. App.form.SqlForm = Ext.extend(App.form.AbstractForm, {
  2333. decorate: function(tabPanel, model) {
  2334. this.clearItem(tabPanel);
  2335. this.resetBasic(tabPanel, model);
  2336. this.resetEvent(tabPanel, model);
  2337. },
  2338. resetBasic: function(tabPanel, model) {
  2339. // 对象型参数
  2340. var objFS = new Ext.form.FieldSet({
  2341. title: '对象型参数设置',
  2342. collapsible: true,
  2343. autoHeight : true,
  2344. checkboxToggle : true,
  2345. id:'objFS',
  2346. checkboxName :'',
  2347. defaults: {
  2348. anchor: '90%'
  2349. },
  2350. /*layout:'column',*/
  2351. /*defaultType: 'textfield',*/
  2352. items :[new Ext.form.TextField({
  2353. fieldLabel: '名称',
  2354. name: 'field1',
  2355. disabled:true,
  2356. listeners: {
  2357. 'blur': function(field) {
  2358. var para = model.dom.getElementByTagName('parameters');
  2359. var newValue = field.getValue();
  2360. console.log(model);
  2361. var el = para.getElementByTagName('object');
  2362. if(!el){
  2363. var obj = new Gef.model.Dom('object');
  2364. obj.setAttribute('name',newValue);
  2365. para.addElement(obj);
  2366. }else{
  2367. el.setAttribute('name',newValue);
  2368. }
  2369. },
  2370. 'beforerender':function(field){
  2371. var para = model.dom.getElementByTagName('parameters');
  2372. if(para){
  2373. var el = para.getElementByTagName('object');
  2374. if(el){
  2375. var v = para.getElementByTagName('object').getAttribute('name');
  2376. field.setValue(v);
  2377. }
  2378. }else{
  2379. return;
  2380. }
  2381. }
  2382. }
  2383. }), new Ext.form.TextField({
  2384. fieldLabel: '表达式',
  2385. name: 'field2',
  2386. disabled:true,
  2387. listeners: {
  2388. 'blur': function(field) {
  2389. var para = model.dom.getElementByTagName('parameters');
  2390. var newValue = field.getValue();
  2391. var el = para.getElementByTagName('object');
  2392. if(!el){
  2393. var obj = new Gef.model.Dom('object');
  2394. obj.setAttribute('expr',newValue);
  2395. para.addElement(obj);
  2396. }else{
  2397. el.setAttribute('expr',newValue);
  2398. }
  2399. },
  2400. 'beforerender':function(field){
  2401. var para = model.dom.getElementByTagName('parameters');
  2402. if(para){
  2403. var el = para.getElementByTagName('object');
  2404. if(el){
  2405. var v = para.getElementByTagName('object').getAttribute('expr');
  2406. field.setValue(v);
  2407. }
  2408. }else{
  2409. return;
  2410. }
  2411. }
  2412. }
  2413. })]
  2414. });
  2415. var stringFS = new Ext.form.FieldSet({
  2416. title: '字符串型参数设置',
  2417. collapsible: true,
  2418. id:'stringFS',
  2419. autoHeight : true,
  2420. checkboxToggle : true,
  2421. checkboxName :'',
  2422. defaults: {
  2423. anchor: '90%'
  2424. },
  2425. /*layout:'column',*/
  2426. /*defaultType: 'textfield',*/
  2427. items :[new Ext.form.TextField({
  2428. fieldLabel: '名称',
  2429. name: 'field3',
  2430. disabled:true,
  2431. /*value: 0, */ /*model.dom.getElementByTagName('reminder').getAttribute('duedate'),*/
  2432. listeners: {
  2433. 'blur': function(field) {
  2434. var para = model.dom.getElementByTagName('parameters');
  2435. var newValue = field.getValue();
  2436. console.log(model);
  2437. var el = para.getElementByTagName('string');
  2438. if(!el){
  2439. var str = new Gef.model.Dom('string');
  2440. str.setAttribute('name',newValue);
  2441. para.addElement(str);
  2442. }else{
  2443. el.setAttribute('name',newValue);
  2444. }
  2445. },
  2446. 'beforerender':function(field){
  2447. var para = model.dom.getElementByTagName('parameters');
  2448. if(para){
  2449. var el = para.getElementByTagName('string');
  2450. if(el){
  2451. var v = para.getElementByTagName('string').getAttribute('name');
  2452. field.setValue(v);
  2453. }
  2454. }else{
  2455. return;
  2456. }
  2457. }
  2458. }
  2459. }), new Ext.form.TextField({
  2460. fieldLabel: '值',
  2461. name: 'field4',
  2462. disabled:true,
  2463. listeners: {
  2464. 'blur': function(field) {
  2465. var para = model.dom.getElementByTagName('parameters');
  2466. var newValue = field.getValue();
  2467. console.log(model);
  2468. var el = para.getElementByTagName('string');
  2469. if(!el){
  2470. var str = new Gef.model.Dom('string');
  2471. str.setAttribute('value',newValue);
  2472. para.addElement(str);
  2473. }else{
  2474. el.setAttribute('value',newValue);
  2475. }
  2476. },
  2477. 'beforerender':function(field){
  2478. var para = model.dom.getElementByTagName('parameters');
  2479. if(para){
  2480. var el = para.getElementByTagName('string');
  2481. if(el){
  2482. var v = para.getElementByTagName('string').getAttribute('value');
  2483. field.setValue(v);
  2484. }
  2485. }else{
  2486. return;
  2487. }
  2488. }
  2489. }
  2490. })]
  2491. });
  2492. var p1 = new Ext.form.Checkbox({
  2493. id:'p1',
  2494. fieldLabel :'参数设置',
  2495. boxLabel:'对象型',
  2496. name:'parameter',
  2497. listeners: {
  2498. 'beforerender':function(){
  2499. },
  2500. 'check':function(p1,b){
  2501. if(b){
  2502. var para = model.dom.getElementByTagName('parameters');
  2503. if(!para){
  2504. para = new Gef.model.Dom('parameters');
  2505. model.dom.addElement(para);
  2506. var items= Ext.getCmp('objFS').items.items;
  2507. Ext.each(items,function(item){
  2508. if(item.disable){
  2509. item.enable();
  2510. }
  2511. });
  2512. }else{
  2513. var items = Ext.getCmp('objFS').items.items;
  2514. Ext.each(items,function(item){
  2515. /*item.enable();*/
  2516. if(item.disable){
  2517. item.enable();
  2518. }
  2519. });
  2520. }
  2521. }
  2522. }
  2523. }
  2524. });
  2525. var p2 = new Ext.form.Checkbox({
  2526. id:'p2',
  2527. fieldLabel :'',
  2528. boxLabel:'字符串型',
  2529. name:'parameter',
  2530. listeners: {
  2531. 'beforerender':function(){
  2532. },
  2533. 'check':function(p2,b){
  2534. if(b){
  2535. var para = model.dom.getElementByTagName('parameters');
  2536. if(!para){
  2537. para = new Gef.model.Dom('parameters');
  2538. model.dom.addElement(para);
  2539. var items = Ext.getCmp('stringFS').items.items;
  2540. Ext.each(items,function(item){
  2541. /*item.enable();*/
  2542. if(item.disable){
  2543. item.enable();
  2544. }
  2545. });
  2546. }else{
  2547. var items = Ext.getCmp('stringFS').items.items;
  2548. Ext.each(items,function(item){
  2549. /*item.enable();*/
  2550. if(item.disable){
  2551. item.enable();
  2552. }
  2553. });
  2554. }
  2555. }
  2556. }
  2557. }
  2558. });
  2559. var p = new Ext.form.FormPanel({
  2560. title: '基本配置',
  2561. labelWidth: 70,
  2562. labelAlign: 'right',
  2563. border: false,
  2564. defaultType: 'textfield',
  2565. defaults: {
  2566. anchor: '90%'
  2567. },
  2568. bodyStyle: {
  2569. padding: '6px 0 0'
  2570. },
  2571. items: [{
  2572. name: 'name',
  2573. fieldLabel: '名称',
  2574. value: model.text ? model.text : '',
  2575. listeners: {
  2576. 'blur': function(field) {
  2577. var newValue = field.getValue();
  2578. // FIXME: use command
  2579. model.text = newValue;
  2580. model.editPart.figure.updateAndShowText(newValue);
  2581. }
  2582. }
  2583. }, {
  2584. name: 'var',
  2585. fieldLabel: '变量',
  2586. value: model.dom.getAttribute('var'),
  2587. listeners: {
  2588. 'blur': function(field) {
  2589. var newValue = field.getValue();
  2590. model.dom.setAttribute('var', newValue);
  2591. }
  2592. }
  2593. }, {
  2594. name: 'unique',
  2595. fieldLabel: '是否唯一',
  2596. value: model.dom.getAttribute('unique'),
  2597. // hidden:true,
  2598. //hideLabel:true,
  2599. listeners: {
  2600. 'blur': function(field) {
  2601. var newValue = field.getValue();
  2602. model.dom.setAttribute('unique', newValue);
  2603. }
  2604. }
  2605. }, {
  2606. name: 'query',
  2607. fieldLabel: '查询语句',
  2608. xtype: 'textarea',
  2609. value: model.dom.getElementContent('query'),
  2610. listeners: {
  2611. 'blur': function(field) {
  2612. var newValue = field.getValue();
  2613. model.dom.setElementContent('query', newValue);
  2614. }
  2615. }
  2616. }/*, {
  2617. name:'parameters',
  2618. fieldLabel: '参数表达式',
  2619. value: model.dom.getElementContent('parameters'),
  2620. xtype: 'textarea',
  2621. validate:function(value){
  2622. if(value==null||value==''){
  2623. return true;
  2624. }else if(value.indexOf("<")==0&&value.lastIndexOf(">")==value.length-1){
  2625. return true;
  2626. }
  2627. return false;
  2628. }*/,p1,p2,objFS,stringFS,{
  2629. name:'parameters',
  2630. fieldLabel: '参数表达式',
  2631. value: model.dom.getElementContent('parameters'),
  2632. xtype: 'textarea',
  2633. validate:function(value){
  2634. if(value==null||value==''){
  2635. return true;
  2636. }else if(value.indexOf("<")==0&&value.lastIndexOf(">")==value.length-1){
  2637. return true;
  2638. }
  2639. return false;
  2640. },
  2641. listeners: {
  2642. 'blur': function(field) {
  2643. var newValue = field.getValue();
  2644. /*if(!this.validate(newValue)){
  2645. alert("请填写正确的参数表达式!");
  2646. field.focus();
  2647. return;
  2648. }*/
  2649. model.dom.setElementContent('parameters',newValue);
  2650. /* model.dom.setElementAttribute('object', 'expr', newValue);*/
  2651. /*model.dom.setElementAttribute('parameters', 'object', newValue);*/
  2652. /* console.log(model.dom);*/
  2653. /* var o = model.dom.getElementByTagName('object').getElementContent();
  2654. console.log(o);*/
  2655. /* var p = model.dom.getElementByTagName('parameters');
  2656. console.log(p);*/
  2657. /* var items =[];
  2658. items.push({
  2659. name: 'condition',
  2660. fieldLabel: '条件',
  2661. // <condition expr="#{ACCOUNT&gt;=10000}"/>
  2662. value: condition,
  2663. listeners: {
  2664. 'blur': function(field) {
  2665. var newValue = field.getValue();
  2666. if (newValue != '') {
  2667. model.dom.setElementAttribute('condition', 'expr', newValue);
  2668. } else if (model.dom.elements.length > 0) {
  2669. model.dom.removeElement(model.dom.elements[0]);
  2670. }
  2671. }
  2672. }
  2673. });*/
  2674. }
  2675. }
  2676. }/*,{
  2677. name:'parameters',
  2678. fieldLabel: '参数',
  2679. value: model.dom.getElementContent('parameters'),
  2680. listeners: {
  2681. 'blur': function(field) {
  2682. var newValue = field.getValue();
  2683. model.dom.setElementContent('parameters', newValue);
  2684. }
  2685. }
  2686. }*/,{
  2687. name: 'description',
  2688. fieldLabel: '备注',
  2689. xtype: 'textarea',
  2690. value: model.dom.getElementContent('description'),
  2691. listeners: {
  2692. 'blur': function(field) {
  2693. var newValue = field.getValue();
  2694. model.dom.setElementContent('description', newValue);
  2695. }
  2696. }
  2697. }]
  2698. });
  2699. tabPanel.add(p);
  2700. tabPanel.activate(p);
  2701. }
  2702. });
  2703. Ext.ns('App.form');
  2704. App.form.StartForm = Ext.extend(App.form.AbstractForm, {
  2705. decorate: function(tabPanel, model) {
  2706. this.clearItem(tabPanel);
  2707. this.resetBasic(tabPanel, model);
  2708. this.resetEvent(tabPanel, model);
  2709. },
  2710. resetBasic: function(tabPanel, model) {
  2711. var p = new Ext.form.FormPanel({
  2712. title: '基本配置',
  2713. labelWidth: 70,
  2714. labelAlign: 'right',
  2715. border: false,
  2716. defaultType: 'textfield',
  2717. defaults: {
  2718. anchor: '90%'
  2719. },
  2720. bodyStyle: {
  2721. padding: '6px 0 0'
  2722. },
  2723. items: [{
  2724. name: 'name',
  2725. fieldLabel: '名称',
  2726. value: model.text ? model.text : '',
  2727. listeners: {
  2728. 'blur': function(field) {
  2729. var newValue = field.getValue();
  2730. model.text = newValue;
  2731. }
  2732. }
  2733. }/*, {
  2734. name: 'form',
  2735. fieldLabel: '表单',
  2736. value: model.dom.getAttribute('form'),
  2737. listeners: {
  2738. 'blur': function(field) {
  2739. var newValue = field.getValue();
  2740. model.dom.setAttribute('form', newValue);
  2741. }
  2742. }
  2743. }*/, {
  2744. name: 'description',
  2745. fieldLabel: '备注',
  2746. xtype: 'textarea',
  2747. value: model.dom.getElementContent('description'),
  2748. listeners: {
  2749. 'blur': function(field) {
  2750. var newValue = field.getValue();
  2751. model.dom.setElementContent('description', newValue);
  2752. }
  2753. }
  2754. }]
  2755. });
  2756. tabPanel.add(p);
  2757. tabPanel.activate(p);
  2758. }
  2759. });
  2760. Ext.ns('App.form');
  2761. App.form.StateForm = Ext.extend(App.form.AbstractForm, {
  2762. decorate: function(tabPanel, model) {
  2763. this.clearItem(tabPanel);
  2764. this.resetBasic(tabPanel, model);
  2765. this.resetEvent(tabPanel, model);
  2766. },
  2767. resetBasic: function(tabPanel, model) {
  2768. var p = new Ext.form.FormPanel({
  2769. title: '基本配置',
  2770. labelWidth: 70,
  2771. labelAlign: 'right',
  2772. border: false,
  2773. defaultType: 'textfield',
  2774. defaults: {
  2775. anchor: '90%'
  2776. },
  2777. bodyStyle: {
  2778. padding: '6px 0 0'
  2779. },
  2780. items: [{
  2781. name: 'name',
  2782. fieldLabel: '名称',
  2783. value: model.text ? model.text : '',
  2784. listeners: {
  2785. 'blur': function(field) {
  2786. var newValue = field.getValue();
  2787. // FIXME: use command
  2788. model.text = newValue;
  2789. model.editPart.figure.updateAndShowText(newValue);
  2790. }
  2791. }
  2792. }, {
  2793. name: 'description',
  2794. fieldLabel: '备注',
  2795. xtype: 'textarea',
  2796. value: model.dom.getElementContent('description'),
  2797. listeners: {
  2798. 'blur': function(field) {
  2799. var newValue = field.getValue();
  2800. model.dom.setElementContent('description', newValue);
  2801. }
  2802. }
  2803. }]
  2804. });
  2805. tabPanel.add(p);
  2806. tabPanel.activate(p);
  2807. }
  2808. });
  2809. Ext.ns('App.form');
  2810. App.form.SubProcessForm = Ext.extend(App.form.AbstractForm, {
  2811. decorate: function(tabPanel, model) {
  2812. this.clearItem(tabPanel);
  2813. this.resetBasic(tabPanel, model);
  2814. this.resetAdvance(tabPanel, model);
  2815. this.resetEvent(tabPanel, model);
  2816. },
  2817. resetBasic: function(tabPanel, model) {
  2818. var p = new Ext.form.FormPanel({
  2819. title: '基本配置',
  2820. labelWidth: 70,
  2821. labelAlign: 'right',
  2822. border: false,
  2823. defaultType: 'textfield',
  2824. defaults: {
  2825. anchor: '90%'
  2826. },
  2827. bodyStyle: {
  2828. padding: '6px 0 0'
  2829. },
  2830. items: [{
  2831. name: 'name',
  2832. fieldLabel: '名称',
  2833. value: model.text ? model.text : '',
  2834. listeners: {
  2835. 'blur': function(field) {
  2836. var newValue = field.getValue();
  2837. // FIXME: use command
  2838. model.text = newValue;
  2839. model.editPart.figure.updateAndShowText(newValue);
  2840. }
  2841. }
  2842. }, {
  2843. name: 'subProcessId',
  2844. fieldLabel: '子流程ID',
  2845. value: model.dom.getAttribute('sub-process-id'),
  2846. listeners: {
  2847. 'blur': function(field) {
  2848. var newValue = field.getValue();
  2849. model.dom.setAttribute('sub-process-id', newValue);
  2850. }
  2851. }
  2852. }, {
  2853. name: 'subProcessKey',
  2854. fieldLabel: '子流程KEY',
  2855. value: model.dom.getAttribute('sub-process-key'),
  2856. listeners: {
  2857. 'blur': function(field) {
  2858. var newValue = field.getValue();
  2859. model.dom.setAttribute('sub-process-key', newValue);
  2860. }
  2861. }
  2862. }, {
  2863. name: 'outcome',
  2864. fieldLabel: '外出转移',
  2865. value: model.dom.getAttribute('outcome'),
  2866. listeners: {
  2867. 'blur': function(field) {
  2868. var newValue = field.getValue();
  2869. model.dom.setAttribute('outcome', newValue);
  2870. }
  2871. }
  2872. }, {
  2873. name: 'description',
  2874. fieldLabel: '备注',
  2875. xtype: 'textarea',
  2876. value: model.dom.getElementContent('description'),
  2877. listeners: {
  2878. 'blur': function(field) {
  2879. var newValue = field.getValue();
  2880. model.dom.setElementContent('description', newValue);
  2881. }
  2882. }
  2883. }]
  2884. });
  2885. tabPanel.add(p);
  2886. tabPanel.activate(p);
  2887. },
  2888. getParameterInData: function(model) {
  2889. var data = [];
  2890. var elements = model.dom.getElementsByTagName('parameter-in');
  2891. Gef.each(elements, function(item) {
  2892. data.push({
  2893. 'var': item.getAttribute('var'),
  2894. subvar: item.getAttribute('subvar')
  2895. });
  2896. });
  2897. return data;
  2898. },
  2899. getParameterOutData: function(model) {
  2900. var data = [];
  2901. var elements = model.dom.getElementsByTagName('parameter-out');
  2902. Gef.each(elements, function(item) {
  2903. data.push({
  2904. 'var': item.getAttribute('var'),
  2905. subvar: item.getAttribute('subvar')
  2906. });
  2907. });
  2908. return data;
  2909. },
  2910. resetAdvance: function(tabPanel, model) {
  2911. var Record = Ext.data.Record.create(['var', 'subvar']);
  2912. var inData = this.getParameterInData(model);
  2913. var inStore = new Ext.data.JsonStore({
  2914. fields: Record,
  2915. data: inData,
  2916. listeners: {
  2917. add: function(store, records, index) {
  2918. var record = records[0];
  2919. var onDom = new Gef.model.Dom('parameter-in');
  2920. onDom.setAttribute('var', record.get('var'));
  2921. onDom.setAttribute('subvar', record.get('subvar'));
  2922. model.dom.addElement(onDom);
  2923. },
  2924. remove: function(store, record, index) {
  2925. var elements = model.dom.getElementsByTagName('parameter-in');
  2926. var element = elements[index];
  2927. model.dom.elements.remove(element);
  2928. },
  2929. update: function(store, record, operation) {
  2930. var index = store.indexOf(record);
  2931. var elements = model.dom.getElementsByTagName('parameter-in');
  2932. var element = elements[index];
  2933. element.setAttribute('var', record.get('var'));
  2934. element.setAttribute('subvar', record.get('subvar'));
  2935. this.commitChanges();
  2936. }
  2937. }
  2938. });
  2939. var gridIn = new Ext.grid.EditorGridPanel({
  2940. title: '输入变量',
  2941. store: inStore,
  2942. viewConfig: {
  2943. forceFit: true
  2944. },
  2945. columns: [{
  2946. header: '变量名',
  2947. dataIndex: 'var',
  2948. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  2949. }, {
  2950. header: '子流程变量',
  2951. dataIndex: 'subvar',
  2952. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  2953. }],
  2954. tbar: [{
  2955. text: '添加',
  2956. iconCls: 'tb-add',
  2957. handler: function() {
  2958. var p = new Record({
  2959. 'var': '',
  2960. subvar: ''
  2961. });
  2962. gridIn.stopEditing();
  2963. var index = gridIn.getStore().getCount();
  2964. gridIn.getStore().insert(index, p);
  2965. gridIn.startEditing(index, 0);
  2966. }
  2967. }, {
  2968. text: '删除',
  2969. iconCls: 'tb-delete',
  2970. handler: function() {
  2971. Ext.Msg.confirm('信息', '确定删除?', function(btn){
  2972. if (btn == 'yes') {
  2973. var sm = gridIn.getSelectionModel();
  2974. var cell = sm.getSelectedCell();
  2975. var record = gridIn.getStore().getAt(cell[0]);
  2976. gridIn.getStore().remove(record);
  2977. }
  2978. });
  2979. }
  2980. }]
  2981. });
  2982. var outData = this.getParameterOutData(model);
  2983. var outStore = new Ext.data.JsonStore({
  2984. fields: Record,
  2985. data: outData,
  2986. listeners: {
  2987. add: function(store, records, index) {
  2988. var record = records[0];
  2989. var onDom = new Gef.model.Dom('parameter-out');
  2990. onDom.setAttribute('var', record.get('var'));
  2991. onDom.setAttribute('subvar', record.get('subvar'));
  2992. model.dom.addElement(onDom);
  2993. },
  2994. remove: function(store, record, index) {
  2995. var elements = model.dom.getElementsByTagName('parameter-out');
  2996. var element = elements[index];
  2997. model.dom.elements.remove(element);
  2998. },
  2999. update: function(store, record, operation) {
  3000. var index = store.indexOf(record);
  3001. var elements = model.dom.getElementsByTagName('parameter-out');
  3002. var element = elements[index];
  3003. element.setAttribute('var', record.get('var'));
  3004. element.setAttribute('subvar', record.get('subvar'));
  3005. this.commitChanges();
  3006. }
  3007. }
  3008. });
  3009. var gridOut = new Ext.grid.EditorGridPanel({
  3010. title: '输出变量',
  3011. store: outStore,
  3012. viewConfig: {
  3013. forceFit: true
  3014. },
  3015. columns: [{
  3016. header: '子流程变量',
  3017. dataIndex: 'subvar',
  3018. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  3019. }, {
  3020. header: '变量名',
  3021. dataIndex: 'var',
  3022. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  3023. }],
  3024. tbar: [{
  3025. text: '添加',
  3026. iconCls: 'tb-add',
  3027. handler: function() {
  3028. var p = new Record({
  3029. 'var': '',
  3030. subvar: ''
  3031. });
  3032. gridOut.stopEditing();
  3033. var index = gridOut.getStore().getCount();
  3034. gridOut.getStore().insert(index, p);
  3035. gridOut.startEditing(index, 0);
  3036. }
  3037. }, {
  3038. text: '删除',
  3039. iconCls: 'tb-delete',
  3040. handler: function() {
  3041. Ext.Msg.confirm('信息', '确定删除?', function(btn){
  3042. if (btn == 'yes') {
  3043. var sm = gridOut.getSelectionModel();
  3044. var cell = sm.getSelectedCell();
  3045. var record = gridOut.getStore().getAt(cell[0]);
  3046. gridOut.getStore().remove(record);
  3047. }
  3048. });
  3049. }
  3050. }]
  3051. });
  3052. var p = new Ext.TabPanel({
  3053. title: ' 变量映射',
  3054. activeItem: 0,
  3055. items: [gridIn, gridOut]
  3056. });
  3057. tabPanel.add(p);
  3058. this.gridIn = gridIn;
  3059. this.gridOut = gridOut;
  3060. }
  3061. });
  3062. Ext.ns('App.form');
  3063. App.form.TaskForm = Ext.extend(App.form.AbstractForm, {
  3064. assigneeXtype: 'orgfield',
  3065. assigneeXtype2: 'orgTrigger',
  3066. eventNames: [
  3067. ['start', '开始'],
  3068. ['end', '结束']
  3069. /*['assign', '任务分配']*/ // 查找一下 看有没有这个事件,有的话最好。
  3070. ],
  3071. classNames:[['com.uas.erp.service.scm.impl.ScmBeforeEventListener','SCM-Before'],
  3072. ['com.uas.erp.service.scm.impl.ScmAfterEventListener','SCM-After'],
  3073. ['com.uas.erp.service.pm.impl.PmBeforeEventListener','PM-Before'],
  3074. ['com.uas.erp.service.pm.impl.PmAfterEventListener','PM-After'],
  3075. ['com.uas.erp.service.pm.impl.HrBeforeEventListener','HR-Before'],
  3076. ['com.uas.erp.service.pm.impl.HrAfterEventListener','HR-After'],
  3077. ['com.uas.erp.service.pm.impl.OaBeforeEventListener','OA-Before'],
  3078. ['com.uas.erp.service.pm.impl.OaAfterEventListener','OA-After'],
  3079. ['com.uas.erp.service.pm.impl.CrmBeforeEventListener','CRM-Before'],
  3080. ['com.uas.erp.service.pm.impl.CrmAfterEventListener','CRM-After'],
  3081. ['com.uas.erp.service.pm.impl.FaBeforeEventListener','FA-Before'],
  3082. ['com.uas.erp.service.pm.impl.FaAfterEventListener','FA-After'],
  3083. ['com.uas.erp.service.pm.impl.DrpBeforeEventListener','DRP-Before'],
  3084. ['com.uas.erp.service.pm.impl.DrpAfterEventListener','DRP-After'],
  3085. ],
  3086. decorate: function(tabPanel, model) {
  3087. this.clearItem(tabPanel);
  3088. this.resetBasic(tabPanel, model);
  3089. this.resetAdvance(tabPanel, model);
  3090. this.resetEvent(tabPanel, model);
  3091. },
  3092. resetBasic: function(tabPanel, model) {
  3093. var r1 = new Ext.form.Radio({
  3094. xtype:'radio',
  3095. id:'r1',
  3096. fieldLabel :'接收人',
  3097. boxLabel:'人员',
  3098. id:"r1",
  3099. name : "receiver",
  3100. listeners: {
  3101. 'beforerender':function(){
  3102. this.checked = true;
  3103. }
  3104. }
  3105. });
  3106. var r2 = new Ext.form.Radio({
  3107. xtype:'radio',
  3108. id:'r2',
  3109. boxLabel:'组织->岗位',
  3110. name : "receiver",
  3111. listeners: {
  3112. 'beforerender':function(){
  3113. if(model.dom.getAttribute('candidate-groups')){
  3114. this.checked = true;
  3115. }
  3116. }
  3117. }
  3118. });
  3119. var r3 = new Ext.form.Radio({
  3120. xtype:'radio',
  3121. id:'r3',
  3122. boxLabel:'角色',
  3123. name : "receiver",
  3124. listeners: {
  3125. 'beforerender':function(){
  3126. if(model.dom.getAttribute('rolAssignee')){
  3127. this.checked = true;
  3128. }
  3129. }
  3130. }
  3131. });
  3132. var r4 = new Ext.form.Radio({
  3133. xtype:'radio',
  3134. id:'r4',
  3135. fieldLabel :'',
  3136. boxLabel:'SQL选人设置',
  3137. name : "receiver",
  3138. listeners: {
  3139. 'beforerender':function(){
  3140. if(model.dom.getAttribute('sqlAssignee')){
  3141. this.checked = true;
  3142. }
  3143. }
  3144. }
  3145. });
  3146. var assignee = new Gef.org.OrgField ({
  3147. name: 'assignee',
  3148. fieldLabel: '分配人',
  3149. xtype: this.assigneeXtype,
  3150. id:'assignee',
  3151. /* hidden:'true',*/
  3152. value: model.dom.getAttribute('assignee'),
  3153. listeners: {
  3154. 'select': function(field) {
  3155. var newValue = field.getValue();
  3156. if(typeof (newValue) == 'string'){
  3157. if(newValue.search(/,/)!=-1){
  3158. var arr2 = [];
  3159. var arr = newValue.split(",");
  3160. var l = arr.length;
  3161. for(var i=0;i<l;i++){
  3162. var start = arr[i].indexOf("(");
  3163. var end= arr[i].indexOf(")");
  3164. fixedValue = arr[i].substring(start+1,end);
  3165. arr2.push(fixedValue);
  3166. }
  3167. model.dom.setAttribute('assignee', arr2.join(","));
  3168. }else{
  3169. var start = newValue.indexOf("(");
  3170. var end= newValue.indexOf(")");
  3171. fixedValue = newValue.substring(start+1,end);
  3172. model.dom.setAttribute('assignee',fixedValue);
  3173. }
  3174. }
  3175. },
  3176. 'change':function(field){
  3177. var newvalue=field.getValue();
  3178. model.dom.setAttribute('assignee',newvalue);
  3179. },
  3180. 'beforerender':function(){
  3181. if(!model.dom.getAttribute('assignee')){
  3182. //Ext.getCmp("assignee").setVisible(false);
  3183. }
  3184. }
  3185. }
  3186. });
  3187. var candidateGroups = new Gef.org.OrgField({
  3188. name: 'candidateGroups',
  3189. fieldLabel: '组织->岗位',
  3190. xtype: this.assigneeXtype,
  3191. id:'candidate',
  3192. /* xtype: 'orgTrigger',*/
  3193. value: model.dom.getAttribute('candidate-groups'),
  3194. listeners: {
  3195. 'select': function(field) {
  3196. var newValue = field.getValue();
  3197. if(typeof (newValue) == 'string'){
  3198. if(newValue.search(/,/)!=-1){
  3199. var arr2 = [];
  3200. var arr = newValue.split(",");
  3201. var l = arr.length;
  3202. for(var i=0;i<l;i++){
  3203. console.log(arr[i]);
  3204. var start = arr[i].indexOf("(");
  3205. var end= arr[i].indexOf(")");
  3206. fixedValue = arr[i].substring(start+1,end);
  3207. arr2.push(fixedValue);
  3208. }
  3209. model.dom.setAttribute('candidate-groups', arr2.join(","));
  3210. }else{
  3211. var start = newValue.indexOf("(");
  3212. var end= newValue.indexOf(")");
  3213. fixedValue = newValue.substring(start+1,end);
  3214. model.dom.setAttribute('candidate-groups',fixedValue);
  3215. }
  3216. }
  3217. },
  3218. 'beforerender':function(){
  3219. if(!model.dom.getAttribute('candidate-groups')){
  3220. this.setVisible(false);
  3221. }else{
  3222. /*r2.fireEvent('check',r2,true);*/
  3223. }
  3224. },
  3225. 'change':function(field){
  3226. var newvalue=field.getValue();
  3227. model.dom.setAttribute('candidate-groups',newvalue);
  3228. },
  3229. }
  3230. });
  3231. //角色人员选择
  3232. var candidateUsers = new Ext.form.ComboBox({
  3233. name: 'rolAssignee',
  3234. fieldLabel: '角色',
  3235. id:'rolAssignee',
  3236. editable:false,
  3237. value: model.dom.getAttribute('rolAssignee'),
  3238. displayField: 'display',
  3239. valueField: 'value',
  3240. editable:false,
  3241. mode : "local",
  3242. triggerAction : "all",
  3243. readOnly:true,
  3244. store: new Ext.data.SimpleStore({
  3245. fields : ["display", "value"],
  3246. data :[['组织负责领导','组织负责领导'],
  3247. ['上一步父组织负责领导','上一步父组织负责领导'],
  3248. ['岗位直属领导','岗位直属领导'],
  3249. ['上一步岗位直属领导','上一步岗位直属领导']
  3250. ]
  3251. }),
  3252. listeners: {
  3253. 'blur': function(field) {
  3254. var newValue = field.getValue();
  3255. model.dom.setAttribute('rolAssignee', newValue);
  3256. },
  3257. 'beforerender':function(){
  3258. if(!model.dom.getAttribute('rolAssignee')){
  3259. this.setVisible(false);
  3260. };
  3261. },
  3262. 'select': function(field) {
  3263. var newValue = field.getValue();
  3264. model.dom.setAttribute('rolAssignee',newValue);
  3265. }
  3266. }
  3267. });
  3268. var sqlAssignee = new Ext.form.TextField({
  3269. fieldLabel: 'SQL取人设置',
  3270. name: 'field4',
  3271. id:'sqlAssignee',
  3272. value:model.dom.getAttribute('sqlAssignee'),
  3273. listeners: {
  3274. 'blur': function(field) {
  3275. var newValue = field.getValue();
  3276. model.dom.setAttribute('sqlAssignee', newValue);
  3277. },
  3278. 'beforerender':function(field){
  3279. if(!model.dom.getAttribute('sqlAssignee')){
  3280. this.setVisible(false);
  3281. };
  3282. }
  3283. }
  3284. });
  3285. var fieldSet = new Ext.form.FieldSet({
  3286. title: '特殊设置',
  3287. collapsible: true,
  3288. autoHeight : true,
  3289. checkboxToggle : true,
  3290. checkboxName :'',
  3291. defaults: {
  3292. anchor: '90%'
  3293. },
  3294. /*layout:'column',*/
  3295. /*defaultType: 'textfield',*/
  3296. items :[/*new Ext.form.NumberField({
  3297. fieldLabel: '限办时间(小时)',
  3298. name: 'field1',
  3299. value:1,
  3300. value: 0, model.dom.getElementByTagName('reminder').getAttribute('duedate'),
  3301. listeners: {
  3302. 'blur': function(field) {
  3303. var newValue = field.getValue();
  3304. console.log(model);
  3305. var el = model.dom.getElementByTagName('reminder');
  3306. if(!el){
  3307. var reminder = new Gef.model.Dom('reminder');
  3308. reminder.setAttribute('duedate',newValue);
  3309. model.dom.addElement(reminder);
  3310. var v = model.dom.getElementByTagName('reminder').getAttribute('duedate');
  3311. console.log(typeof(v));
  3312. }else{
  3313. el.setAttribute('duedate',newValue);
  3314. }
  3315. },
  3316. 'beforerender':function(field){
  3317. var el = model.dom.getElementByTagName('reminder');
  3318. if(el){
  3319. var v = model.dom.getElementByTagName('reminder').getAttribute('duedate');
  3320. field.setValue(v);
  3321. }
  3322. }
  3323. }
  3324. }), new Ext.form.NumberField({
  3325. fieldLabel: '提醒间隔(小时)',
  3326. name: 'field2',
  3327. value:1,
  3328. listeners: {
  3329. 'blur': function(field) {
  3330. var newValue = field.getValue();
  3331. var el = model.dom.getElementByTagName('reminder');
  3332. if(!el){
  3333. var reminder = new Gef.model.Dom('reminder');
  3334. reminder.setAttribute('repeat',newValue);
  3335. model.dom.addElement(reminder);
  3336. var v = model.dom.getElementByTagName('reminder').getAttribute('repeat');
  3337. }else{
  3338. el.setAttribute('repeat',newValue);
  3339. }
  3340. },
  3341. 'beforerender':function(field){
  3342. var el = model.dom.getElementByTagName('reminder');
  3343. if(el){
  3344. var v = model.dom.getElementByTagName('reminder').getAttribute('repeat');
  3345. console.log(v);
  3346. field.setValue(v);
  3347. }
  3348. }
  3349. }
  3350. }),*/{
  3351. xtype:'combo',
  3352. id:'sendmsg',
  3353. name:'sendmsg',
  3354. fieldLabel:'短信提醒',
  3355. store: new Ext.data.SimpleStore({
  3356. fields : ["display", "value"],
  3357. data :[['是',1],['否',0]]
  3358. }),
  3359. value: model.dom.getAttribute('sendmsg'),
  3360. displayField: 'display',
  3361. valueField: 'value',
  3362. editable:false,
  3363. /* width:100,*/
  3364. mode : "local",
  3365. triggerAction : "all",
  3366. readOnly:true,
  3367. listeners:{
  3368. 'afterrender':function(field){
  3369. var newValue = field.getValue();
  3370. var el = model.dom.getElementByTagName('sendmsg');
  3371. if(!el){
  3372. var button = new Gef.model.Dom('sendmsg');
  3373. button.setAttribute('sendmsg',button);
  3374. model.dom.addElement(button);
  3375. }else{
  3376. el.setAttribute('sendmsg',newValue);
  3377. }
  3378. },
  3379. 'select': function(field) {
  3380. var newValue = field.getValue();
  3381. model.dom.setAttribute('sendmsg',newValue);
  3382. }
  3383. }
  3384. },{
  3385. xtype:'combo',
  3386. id:'extra',
  3387. name:'extra',
  3388. fieldLabel:'额外指定',
  3389. store: new Ext.data.SimpleStore({
  3390. fields : ["display", "value"],
  3391. data :[['是',1],['否',0]]
  3392. }),
  3393. value: model.dom.getAttribute('extra'),
  3394. displayField: 'display',
  3395. valueField: 'value',
  3396. editable:false,
  3397. mode : "local",
  3398. triggerAction : "all",
  3399. readOnly:true,
  3400. listeners:{
  3401. 'afterrender':function(field){
  3402. var newValue = field.getValue();
  3403. var el = model.dom.getElementByTagName('extra');
  3404. if(!el){
  3405. var button = new Gef.model.Dom('smsalert');
  3406. button.setAttribute('extra',button);
  3407. model.dom.addElement(button);
  3408. }else{
  3409. el.setAttribute('extra',newValue);
  3410. }
  3411. },
  3412. 'select': function(field) {
  3413. var newValue = field.getValue();
  3414. model.dom.setAttribute('extra',newValue);
  3415. }
  3416. }
  3417. },{
  3418. xtype:'combo',
  3419. id:'smsalert',
  3420. name:'smsalert',
  3421. fieldLabel:'逻辑判定',
  3422. store: new Ext.data.SimpleStore({
  3423. fields : ["display", "value"],
  3424. data :[['是',1],['否',0]]
  3425. }),
  3426. value: model.dom.getAttribute('smsalert'),
  3427. displayField: 'display',
  3428. valueField: 'value',
  3429. editable:false,
  3430. /* width:100,*/
  3431. mode : "local",
  3432. triggerAction : "all",
  3433. readOnly:true,
  3434. listeners:{
  3435. 'afterrender':function(field){
  3436. var newValue = field.getValue();
  3437. var el = model.dom.getElementByTagName('smsalert');
  3438. if(!el){
  3439. var button = new Gef.model.Dom('smsalert');
  3440. button.setAttribute('smsalert',button);
  3441. model.dom.addElement(button);
  3442. }else{
  3443. el.setAttribute('smsalert',newValue);
  3444. }
  3445. },
  3446. 'select': function(field) {
  3447. var newValue = field.getValue();
  3448. model.dom.setAttribute('smsalert',newValue);
  3449. }
  3450. }
  3451. },{
  3452. xtype:'textarea',
  3453. fieldLabel:'开始',
  3454. id:'exebefore',
  3455. name:'exebefore',
  3456. value: model.dom.getAttribute('exebefore'),
  3457. listeners: {
  3458. 'afterrender':function(field){
  3459. var newValue = field.getValue();
  3460. var el = model.dom.getElementByTagName('exebefore');
  3461. if(!el){
  3462. var neccessaryField = new Gef.model.Dom('exebefore');
  3463. neccessaryField.setAttribute('exebefore',button);
  3464. model.dom.addElement(exeafter);
  3465. }else{
  3466. el.setAttribute('exebefore',newValue);
  3467. }
  3468. },
  3469. 'blur': function(field) {
  3470. var newValue = field.getValue();
  3471. model.dom.setAttribute('exebefore', newValue);
  3472. }
  3473. }
  3474. },{
  3475. xtype:'textarea',
  3476. fieldLabel:'结束',
  3477. id:'exeafter',
  3478. name:'exeafter',
  3479. value: model.dom.getAttribute('exeafter'),
  3480. listeners: {
  3481. 'afterrender':function(field){
  3482. var newValue = field.getValue();
  3483. var el = model.dom.getElementByTagName('exeafter');
  3484. if(!el){
  3485. var neccessaryField = new Gef.model.Dom('exeafter');
  3486. alert(button);
  3487. neccessaryField.setAttribute('exeafter',button);
  3488. model.dom.addElement(exeafter);
  3489. }else{
  3490. el.setAttribute('exeafter',newValue);
  3491. }
  3492. },
  3493. 'blur': function(field) {
  3494. var newValue = field.getValue();
  3495. model.dom.setAttribute('exeafter', newValue);
  3496. }
  3497. }
  3498. }]
  3499. });
  3500. var notifySet = new Ext.form.FieldSet({
  3501. title: '知会设置',
  3502. collapsible: true,
  3503. autoHeight : true,
  3504. checkboxToggle : true,
  3505. checkboxName :'',
  3506. defaults: {
  3507. anchor: '90%'
  3508. },
  3509. /*layout:'column',*/
  3510. /*defaultType: 'textfield',*/
  3511. items :[new Gef.org.OrgField({
  3512. name: 'notifyGroups',
  3513. fieldLabel: '组织->岗位',
  3514. xtype: this.assigneeXtype,
  3515. id:'notifyGroups',
  3516. /* xtype: 'orgTrigger',*/
  3517. value: model.dom.getAttribute('notifyGroups'),
  3518. listeners: {
  3519. 'select': function(field) {
  3520. var newValue = field.getValue();
  3521. if(typeof (newValue) == 'string'){
  3522. if(newValue.search(/,/)!=-1){
  3523. var arr2 = [];
  3524. var arr = newValue.split(",");
  3525. var l = arr.length;
  3526. for(var i=0;i<l;i++){
  3527. console.log(arr[i]);
  3528. var start = arr[i].indexOf("(");
  3529. var end= arr[i].indexOf(")");
  3530. fixedValue = arr[i].substring(start+1,end);
  3531. arr2.push(fixedValue);
  3532. }
  3533. model.dom.setAttribute('notifyGroups', arr2.join(","));
  3534. }else{
  3535. var start = newValue.indexOf("(");
  3536. var end= newValue.indexOf(")");
  3537. fixedValue = newValue.substring(start+1,end);
  3538. model.dom.setAttribute('notifyGroups',fixedValue);
  3539. }
  3540. }
  3541. },
  3542. 'afterrender':function(field){
  3543. var newValue = field.getValue();
  3544. var el = model.dom.getElementByTagName('notifyGroups');
  3545. if(!el){
  3546. var notifyGroups = new Gef.model.Dom('notifyGroups');
  3547. notifyGroups.setAttribute('notifyGroups',notifyGroups);
  3548. model.dom.addElement(notifyGroups);
  3549. /* var v = model.dom.getElementByTagName('reminder').getAttribute('duedate');
  3550. console.log(typeof(v));*/
  3551. }else{
  3552. el.setAttribute('notifyGroups',newValue);
  3553. }
  3554. },
  3555. 'blur': function(field) {
  3556. var newValue = field.getValue();
  3557. model.dom.setAttribute('notifyGroups', newValue);
  3558. }
  3559. }
  3560. }),new Gef.org.OrgField({
  3561. name: 'notifyPeople',
  3562. fieldLabel: '知会人员',
  3563. xtype: this.assigneeXtype,
  3564. id:'notifyPeople',
  3565. /* xtype: 'orgTrigger',*/
  3566. value: model.dom.getAttribute('notifyPeople'),
  3567. listeners: {
  3568. 'select': function(field) {
  3569. var newValue = field.getValue();
  3570. if(typeof (newValue) == 'string'){
  3571. if(newValue.search(/,/)!=-1){
  3572. var arr2 = [];
  3573. var arr = newValue.split(",");
  3574. var l = arr.length;
  3575. for(var i=0;i<l;i++){
  3576. console.log(arr[i]);
  3577. var start = arr[i].indexOf("(");
  3578. var end= arr[i].indexOf(")");
  3579. fixedValue = arr[i].substring(start+1,end);
  3580. arr2.push(fixedValue);
  3581. }
  3582. model.dom.setAttribute('notifyPeople', arr2.join(","));
  3583. }else{
  3584. var start = newValue.indexOf("(");
  3585. var end= newValue.indexOf(")");
  3586. fixedValue = newValue.substring(start+1,end);
  3587. model.dom.setAttribute('notifyPeople',fixedValue);
  3588. }
  3589. }
  3590. },
  3591. 'afterrender':function(field){
  3592. var newValue = field.getValue();
  3593. var el = model.dom.getElementByTagName('notifyPeople');
  3594. if(!el){
  3595. var notifyPeople = new Gef.model.Dom('notifyPeople');
  3596. notifyPeople.setAttribute('notifyPeople',notifyPeople);
  3597. model.dom.addElement(notifyPeople);
  3598. /* var v = model.dom.getElementByTagName('reminder').getAttribute('duedate');
  3599. console.log(typeof(v));*/
  3600. }else{
  3601. el.setAttribute('notifyPeople',newValue);
  3602. }
  3603. },
  3604. 'blur': function(field) {
  3605. var newValue = field.getValue();
  3606. model.dom.setAttribute('notifyPeople', newValue);
  3607. }
  3608. }
  3609. })]
  3610. });
  3611. var buttonSet = new Ext.form.FieldSet({
  3612. title: '按钮设置',
  3613. collapsible: true,
  3614. autoHeight : true,
  3615. checkboxToggle : true,
  3616. checkboxName :'',
  3617. defaults: {
  3618. anchor: '90%'
  3619. },
  3620. /*layout:'column',*/
  3621. /*defaultType: 'textfield',*/
  3622. items :[{
  3623. xtype:'combo',
  3624. id:'specialbutton',
  3625. name:'specialbutton',
  3626. fieldLabel:'选择按钮',
  3627. store: new Ext.data.SimpleStore({
  3628. fields : ["display", "value"],
  3629. data :comboxdata
  3630. }),
  3631. value: model.dom.getAttribute('specialbutton'),
  3632. displayField: 'display',
  3633. valueField: 'value',
  3634. editable:true,
  3635. /* width:100,*/
  3636. mode : "local",
  3637. triggerAction : "all",
  3638. readOnly:true,
  3639. listeners:{
  3640. 'afterrender':function(field){
  3641. var newValue = field.getValue();
  3642. var el = model.dom.getElementByTagName('specialbutton');
  3643. if(!el){
  3644. var button = new Gef.model.Dom('specialbutton');
  3645. button.setAttribute('specialbutton',button);
  3646. model.dom.addElement(button);
  3647. }else{
  3648. el.setAttribute('specialbutton',newValue);
  3649. }
  3650. },
  3651. 'select': function(field) {
  3652. var newValue = field.getValue();
  3653. model.dom.setAttribute('specialbutton',newValue);
  3654. }
  3655. }
  3656. },{
  3657. xtype:'textarea',
  3658. fieldLabel:'必填字段',
  3659. id:'necessaryField',
  3660. name:'neccessaryField',
  3661. value: model.dom.getAttribute('neccessaryField'),
  3662. listeners: {
  3663. 'afterrender':function(field){
  3664. var newValue = field.getValue();
  3665. var el = model.dom.getElementByTagName('neccessaryField');
  3666. if(!el){
  3667. var neccessaryField = new Gef.model.Dom('neccessaryField');
  3668. neccessaryField.setAttribute('neccessaryField',button);
  3669. model.dom.addElement(neccessaryField);
  3670. }else{
  3671. el.setAttribute('neccessaryField',newValue);
  3672. }
  3673. },
  3674. 'blur': function(field) {
  3675. var newValue = field.getValue();
  3676. model.dom.setAttribute('neccessaryField', newValue);
  3677. }
  3678. }
  3679. }]
  3680. });
  3681. //----------------------------------------------- 以下 w2 之前的组件 都是 w2 item 中的东西……
  3682. var simpleStore = new Ext.data.SimpleStore({
  3683. fields : ["text", "value"],
  3684. data : [["办理人决定", "1"], ["单人办理", "2"],["顺序办理","3"],["并行办理","4"]]
  3685. });
  3686. var combox2 = new Ext.form.ComboBox({
  3687. fieldLabel :"是否消息通知",
  3688. id:"isMsgAdviceCombo",
  3689. editable:false,
  3690. /* width:100,*/
  3691. mode : "local",
  3692. triggerAction : "all",
  3693. store : simpleStore,
  3694. value:"1",
  3695. valueField : "value",
  3696. displayField : "text",
  3697. readOnly:true
  3698. });
  3699. var fs = new Ext.form.FieldSet({
  3700. title: '催办设置',
  3701. collapsible: true,
  3702. autoHeight : true,
  3703. checkboxToggle : true,
  3704. checkboxName :'',
  3705. /*layout:'column',*/
  3706. layout:'table',
  3707. defaults: {
  3708. // applied to each contained panel
  3709. bodyStyle:'padding:20px'
  3710. },
  3711. layoutConfig: {
  3712. // The total column count must be specified here
  3713. columns: 3
  3714. },
  3715. items :[new Ext.form.Checkbox({fieldLabel:'多人接收', rowspan: 1}),
  3716. combox2,
  3717. new Ext.form.TextField({emptyText:'办理完成'}),
  3718. new Ext.form.Checkbox({boxLabel :'和组织关联'}),
  3719. new Ext.form.Checkbox({boxLabel :'必须经过这一步'}),
  3720. new Ext.form.Checkbox({boxLabel :'决定性的这一步'}),
  3721. new Ext.form.Checkbox({boxLabel :'部门所有成员'}),
  3722. new Ext.form.Checkbox({boxLabel :'是否发寻呼'}),
  3723. new Ext.form.Checkbox({boxLabel :'发短信通知'}),
  3724. new Ext.form.Checkbox({boxLabel :'部门解析到人'})
  3725. ]
  3726. });
  3727. var w2 = new Ext.Window({
  3728. /* contentEl:"win",*/
  3729. closeAction:'hide',
  3730. width:500,
  3731. height:500,
  3732. modal:false,
  3733. items:[new Ext.Toolbar({ items:[new Ext.form.Radio({
  3734. boxLabel : '条件接收人',
  3735. xtype:'radio',
  3736. /*checked:true,*/
  3737. name :'2'
  3738. }),
  3739. {text: '设置'}]
  3740. }),fs],
  3741. plain:true,
  3742. title:"标题"
  3743. });
  3744. var button = new Ext.Button({ //此 button 暂时无用!
  3745. text:'更多设置>>',
  3746. height:40,
  3747. handler:function(){
  3748. w2.show();
  3749. }
  3750. });
  3751. var windowWidth = 550;
  3752. var ms1 = new Ext.form.TextField({fieldLabel:'要点1',width:windowWidth*0.65,id:'ms1',emptyText: '自定义要点1', columnWidth: .45});
  3753. var ms2 = new Ext.form.TextField({fieldLabel:'要点2',width:windowWidth*0.65,id:'ms2',emptyText: '自定义要点2'});
  3754. var ms3 = new Ext.form.TextField({fieldLabel:'要点3',width:windowWidth*0.65,id:'ms3',emptyText: '自定义要点3'});
  3755. var ms4 = new Ext.form.TextField({fieldLabel:'要点4',width:windowWidth*0.65,id:'ms4',emptyText: '自定义要点4'});
  3756. var ms5 = new Ext.form.TextField({fieldLabel:'要点5',width:windowWidth*0.65,id:'ms5',emptyText: '自定义要点5'});
  3757. var ms6 = new Ext.form.TextField({fieldLabel:'要点6',width:windowWidth*0.65,id:'ms6',emptyText: '自定义要点6'});
  3758. var ms7 = new Ext.form.TextField({fieldLabel:'要点7',width:windowWidth*0.65,id:'ms7',emptyText: '自定义要点7'});
  3759. var ms8 = new Ext.form.TextField({fieldLabel:'要点8',width:windowWidth*0.65,id:'ms8',emptyText: '自定义要点8'});
  3760. var ms9 = new Ext.form.TextField({fieldLabel:'要点9',width:windowWidth*0.65,id:'ms9',emptyText: '自定义要点9'});
  3761. var ms10 = new Ext.form.TextField({fieldLabel:'要点10',width:windowWidth*0.65,id:'ms10',emptyText: '自定义要点10'});
  3762. var des1 = new Ext.form.TextField({width:windowWidth*0.15,id:'des1',emptyText: '决策字段',columnWidth: .15});
  3763. var des2 = new Ext.form.TextField({width:windowWidth*0.15,id:'des2',emptyText: '决策字段'});
  3764. var des3 = new Ext.form.TextField({width:windowWidth*0.15,id:'des3',emptyText: '决策字段'});
  3765. var des4 = new Ext.form.TextField({width:windowWidth*0.15,id:'des4',emptyText: '决策字段'});
  3766. var des5 = new Ext.form.TextField({width:windowWidth*0.15,id:'des5',emptyText: '决策字段'});
  3767. var des6 = new Ext.form.TextField({width:windowWidth*0.15,id:'des6',emptyText: '决策字段'});
  3768. var des7 = new Ext.form.TextField({width:windowWidth*0.15,id:'des7',emptyText: '决策字段'});
  3769. var des8 = new Ext.form.TextField({width:windowWidth*0.15,id:'des8',emptyText: '决策字段'});
  3770. var des9 = new Ext.form.TextField({width:windowWidth*0.15,id:'des9',emptyText: '决策字段'});
  3771. var des10 = new Ext.form.TextField({width:windowWidth*0.15,id:'des10',emptyText: '决策字段'});
  3772. var op1 = new Ext.form.TextField({width:windowWidth*0.35,id:'op1',emptyText: '可选项',columnWidth: .35});
  3773. var op2 = new Ext.form.TextField({width:windowWidth*0.35,id:'op2',emptyText: '可选项'});
  3774. var op3 = new Ext.form.TextField({width:windowWidth*0.35,id:'op3',emptyText: '可选项'});
  3775. var op4 = new Ext.form.TextField({width:windowWidth*0.35,id:'op4',emptyText: '可选项'});
  3776. var op5 = new Ext.form.TextField({width:windowWidth*0.35,id:'op5',emptyText: '可选项'});
  3777. var op6 = new Ext.form.TextField({width:windowWidth*0.35,id:'op6',emptyText: '可选项'});
  3778. var op7 = new Ext.form.TextField({width:windowWidth*0.35,id:'op7',emptyText: '可选项'});
  3779. var op8 = new Ext.form.TextField({width:windowWidth*0.35,id:'op8',emptyText: '可选项'});
  3780. var op9 = new Ext.form.TextField({width:windowWidth*0.35,id:'op9',emptyText: '可选项'});
  3781. var op10 = new Ext.form.TextField({width:windowWidth*0.35,id:'op10',emptyText: '可选项'});
  3782. var n1= new Ext.form.Checkbox ({boxLabel :'必填',id:'n1',rowspan: 1 ,columnWidth: .25/*,width:75*/});
  3783. var n2= new Ext.form.Checkbox ({boxLabel :'必填',id:'n2',rowspan: 1});
  3784. var n3= new Ext.form.Checkbox ({boxLabel :'必填',id:'n3'/*,width:75*/});
  3785. var n4= new Ext.form.Checkbox ({boxLabel :'必填',id:'n4'});
  3786. var n5= new Ext.form.Checkbox ({boxLabel :'必填',id:'n5'});
  3787. var n6= new Ext.form.Checkbox ({boxLabel :'必填',id:'n6'});
  3788. var n7= new Ext.form.Checkbox ({boxLabel :'必填',id:'n7'});
  3789. var n8= new Ext.form.Checkbox ({boxLabel :'必填',id:'n8'});
  3790. var n9= new Ext.form.Checkbox ({boxLabel :'必填',id:'n9'});
  3791. var n10= new Ext.form.Checkbox ({boxLabel :'必填',id:'n10'});
  3792. var simpleStore = new Ext.data.SimpleStore({
  3793. fields : ["text", "value"],
  3794. data : [["布尔型", "B"], ["字符串型", "S"],["日期型","D"],["数字型","N"],["下拉框","C"]]
  3795. });
  3796. var combox1 = new Ext.form.ComboBox({
  3797. fieldLabel :"是否消息通知",id:"combox1",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3798. store : simpleStore,valueField : "value",displayField : "text",readOnly:true,width:75 });
  3799. var combox2 = new Ext.form.ComboBox({
  3800. fieldLabel :"是否消息通知",id:"combox2",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3801. store : simpleStore,valueField : "value",displayField : "text",readOnly:true,width:75 });
  3802. var combox3 = new Ext.form.ComboBox({
  3803. fieldLabel :"是否消息通知",id:"combox3",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3804. store : simpleStore,valueField : "value",displayField : "text",readOnly:true,width: 75 });
  3805. var combox4 = new Ext.form.ComboBox({
  3806. fieldLabel :"是否消息通知",id:"combox4",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3807. store : simpleStore,valueField : "value",displayField : "text",readOnly:true,width:75 });
  3808. var combox5 = new Ext.form.ComboBox({
  3809. fieldLabel :"是否消息通知",id:"combox5",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3810. store : simpleStore,valueField : "value",displayField : "text",readOnly:true ,width:75});
  3811. var combox6 = new Ext.form.ComboBox({
  3812. fieldLabel :"是否消息通知",id:"combox6",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3813. store : simpleStore,valueField : "value",displayField : "text",readOnly:true,width:75 });
  3814. var combox7 = new Ext.form.ComboBox({
  3815. fieldLabel :"是否消息通知",id:"combox7",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3816. store : simpleStore,valueField : "value",displayField : "text",readOnly:true,width:75 });
  3817. var combox8 = new Ext.form.ComboBox({
  3818. fieldLabel :"是否消息通知",id:"combox8",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3819. store : simpleStore,valueField : "value",displayField : "text",readOnly:true,width:75 });
  3820. var combox9 = new Ext.form.ComboBox({
  3821. fieldLabel :"是否消息通知",id:"combox9",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3822. store : simpleStore,valueField : "value",displayField : "text",readOnly:true,width:75});
  3823. var combox10 = new Ext.form.ComboBox({
  3824. fieldLabel :"是否消息通知",id:"combox10",editable:false,mode : "local",triggerAction : "all",emptyText:'类型',
  3825. store : simpleStore,valueField : "value",displayField : "text",readOnly:true ,width:75 });
  3826. var fst = new Ext.form.FieldSet({
  3827. collapsible: true,
  3828. autoHeight : true,
  3829. checkboxToggle : true,
  3830. checkboxName :'ssss',
  3831. labelWidth :45,
  3832. autoWidth :true,
  3833. shadow : true,
  3834. layout:'table',
  3835. layoutConfig: {
  3836. columns: 5
  3837. },
  3838. defaults: {
  3839. bodyStyle:'padding:3333px',
  3840. },
  3841. items:[n1,ms1,combox1,op1,des1,n2,ms2,combox2,op2,des2,n3,ms3,combox3,op3,des3,n4,ms4,combox4,op4,des4,n5,ms5,combox5,op5,des5,n6,ms6,combox6,
  3842. op6,des6,n7,ms7,combox7,op7,des7,n8,ms8,combox8,op8,des8,n9,ms9,combox9,op9,des9,n10,ms10,combox10,op10,des10,],
  3843. listeners:{
  3844. 'render':function(){
  3845. var cu = model.dom.getAttribute('customSetup');
  3846. if(cu){
  3847. var vs = [];
  3848. vs = cu.split("#");
  3849. for(var i=0;i<vs.length;i++){
  3850. var ii = vs[i].indexOf("-");
  3851. var i2 = vs[i].indexOf("^");
  3852. var i3 = vs[i].indexOf("$");
  3853. var i4 = vs[i].indexOf('@');
  3854. var i5 = vs[i].indexOf('[');
  3855. var index = vs[i].substring(0,ii);
  3856. var value = vs[i].substring(ii+1,i2);
  3857. Ext.getCmp('ms'+index.toString()).value = value;
  3858. var type = vs[i].substring(i2+1,i3);
  3859. Ext.getCmp('combox'+index.toString()).value = type;
  3860. var neccessary = vs[i].substring(i3+1,i3+2);
  3861. if(neccessary=='Y'){
  3862. Ext.getCmp('n'+index.toString()).checked = true;
  3863. }else{
  3864. Ext.getCmp('n'+index.toString()).checked = false;
  3865. }
  3866. if(i5>0)
  3867. Ext.getCmp('op'+index.toString()).value = vs[i].substring(i5+1,vs[i].indexOf(']'));
  3868. if(i4>0) Ext.getCmp('des'+index.toString()).value = vs[i].substring(vs[i].indexOf("@")+1);
  3869. }
  3870. }
  3871. }
  3872. }
  3873. });
  3874. var btn = new Ext.Button({text:'确定',handler:function(){
  3875. var desValues = [];
  3876. for(var i=1;i<11;i++){
  3877. var v = Ext.getCmp('ms'+i.toString()).getValue();
  3878. var cus='';
  3879. if(v){
  3880. var type = Ext.getCmp('combox'+i.toString()).getValue();
  3881. var necessary = Ext.getCmp('n'+i.toString()).getValue();
  3882. var des=Ext.getCmp('des'+i.toString()).getValue();
  3883. var ops=Ext.getCmp('op'+i.toString()).getValue();
  3884. if(!type){
  3885. Ext.Msg.alert("提示","尚未选择"+"自定义描述".fontcolor("Red").fontsize(16)+i.toString().fontsize(16).fontcolor("Red")+"的类型");
  3886. return ;
  3887. }
  3888. if(type=='C' && !ops){
  3889. Ext.Msg.alert("提示","第"+i+"行 设置为下拉框 需设置完整的可选项!");
  3890. return;
  3891. }
  3892. if(necessary){
  3893. cus=i.toString()+"-"+v+"^"+type+"$Y";
  3894. }else{
  3895. cus=i.toString()+"-"+v+"^"+type+"$N";
  3896. }
  3897. if(ops) cus+='['+ops+']';
  3898. if(des) cus+='@'+des;
  3899. desValues.push(cus);
  3900. }
  3901. if(desValues.length>0){
  3902. model.dom.setAttribute("customSetup",desValues.join("#"));
  3903. }else{
  3904. if(model.dom.getAttribute("customSetup")){
  3905. model.dom.removeAttribute("customSetup");
  3906. }
  3907. }
  3908. }
  3909. w3.close();
  3910. }});
  3911. var w3=new Ext.Window({
  3912. closeAction:'close',
  3913. autoWidth :true,
  3914. autoHeight : true,
  3915. modal:false,
  3916. buttons:[btn],
  3917. items:[fst],
  3918. plain:true,
  3919. title:"设置"
  3920. });
  3921. var set = new Ext.form.Checkbox({
  3922. boxLabel:'设置',
  3923. id:'set',
  3924. clearCls :"x-form-clear-left",
  3925. fieldLabel :'审批要点',
  3926. listeners:{
  3927. 'check':function(c,checked){
  3928. if(checked){
  3929. w3.show();
  3930. }else{
  3931. w3.close();
  3932. }
  3933. }
  3934. },
  3935. });
  3936. /**任务基本配置 --------*/
  3937. var p = new Ext.form.FormPanel({
  3938. title: '基本配置',
  3939. labelWidth: 70,
  3940. labelAlign: 'right',
  3941. border: false,
  3942. defaultType: 'textfield',
  3943. defaults: {
  3944. anchor: '90%'
  3945. },
  3946. bodyStyle: {
  3947. padding: '1px 0 0'
  3948. },
  3949. buttonAlign :'left',
  3950. collapsible :true,
  3951. buttons :[],
  3952. /* listeners:{
  3953. 'beforerender':function(){
  3954. console.log("浏览器类型 " +window.Ext.isIE());
  3955. }
  3956. },*/
  3957. items: [{
  3958. name: 'name',
  3959. fieldLabel: '名称',
  3960. value: model.text ? model.text : '',
  3961. listeners: {
  3962. 'blur': function(field) {
  3963. var newValue = field.getValue();
  3964. // FIXME: use command
  3965. model.text = newValue;
  3966. model.editPart.figure.updateAndShowText(newValue);
  3967. }
  3968. }
  3969. },r1,r2,r3,r4,assignee, candidateGroups,candidateUsers,sqlAssignee,fieldSet,notifySet,buttonSet,set,{
  3970. name: 'description',
  3971. fieldLabel: '备注',
  3972. xtype: 'textarea',
  3973. value: model.dom.getElementContent('description'),
  3974. listeners: {
  3975. 'blur': function(field) {
  3976. var newValue = field.getValue();
  3977. model.dom.setElementContent('description', newValue);
  3978. }
  3979. }
  3980. }]
  3981. });
  3982. function radioHandler(radio,boolean){
  3983. if(boolean){
  3984. switch(radio.getId()){
  3985. case "r1" :{
  3986. if(Ext.getCmp('candidate').isVisible()||Ext.getCmp('rolAssignee').isVisible()){
  3987. Ext.getCmp('candidate').setVisible(false);
  3988. Ext.getCmp('rolAssignee').setVisible(false);
  3989. Ext.getCmp('sqlAssignee').setVisible(false);
  3990. }
  3991. Ext.getCmp('assignee').setVisible(true);
  3992. p.ownerCt.setWidth(p.ownerCt.getInnerWidth()+1);
  3993. };break;
  3994. case "r2" :{
  3995. if(!Ext.getCmp('candidate').isVisible()){
  3996. Ext.getCmp('candidate').setVisible(true);
  3997. }
  3998. if(Ext.getCmp('assignee').isVisible()||Ext.getCmp('rolAssignee').isVisible()){
  3999. Ext.getCmp('assignee').setVisible(false);
  4000. Ext.getCmp('rolAssignee').setVisible(false);
  4001. Ext.getCmp('sqlAssignee').setVisible(false);
  4002. Ext.getCmp('candidate').setVisible(true);
  4003. p.ownerCt.setWidth(p.ownerCt.getInnerWidth()-1);
  4004. }
  4005. } break;
  4006. case "r3" :{
  4007. if(Ext.getCmp('assignee').isVisible()||Ext.getCmp('rolAssignee').isVisible()){
  4008. Ext.getCmp('assignee').setVisible(false);
  4009. Ext.getCmp('candidate').setVisible(false);
  4010. Ext.getCmp('sqlAssignee').setVisible(false);
  4011. Ext.getCmp('rolAssignee').setVisible(true);
  4012. p.ownerCt.setWidth(p.ownerCt.getInnerWidth()+1);
  4013. }
  4014. } break;
  4015. case "r4" :{
  4016. Ext.getCmp('assignee').setVisible(false);
  4017. Ext.getCmp('candidate').setVisible(false);
  4018. Ext.getCmp('rolAssignee').setVisible(false);
  4019. Ext.getCmp('sqlAssignee').setVisible(true);
  4020. p.ownerCt.setWidth(p.ownerCt.getInnerWidth()+1);
  4021. } break;
  4022. }
  4023. }
  4024. };
  4025. r1.on('check',function(r,b){
  4026. radioHandler(r,b);
  4027. });
  4028. r2.on('check',function(r,b){
  4029. radioHandler(r,b);
  4030. });
  4031. r3.on('check',function(r,b){
  4032. radioHandler(r,b);
  4033. });
  4034. r4.on('check',function(r,b){
  4035. radioHandler(r,b);
  4036. });
  4037. /* panel.hide();*/
  4038. /* assignee.setVisible(false);
  4039. candidate.setVisible(false);
  4040. candidateGroups.setVisible(false);*/
  4041. tabPanel.add(p);
  4042. tabPanel.activate(p);
  4043. },
  4044. resetAdvance: function(tabPanel, model) {
  4045. // 以下内容 为 task的 属性 panel的 高级配置选项……
  4046. /* var p = new Ext.form.FormPanel({
  4047. title: '高级配置',
  4048. labelWidth: 70,
  4049. labelAlign: 'right',
  4050. border: false,
  4051. defaultType: 'textfield',
  4052. defaults: {
  4053. anchor: '90%'
  4054. },
  4055. bodyStyle: {
  4056. padding: '6px 0 0'
  4057. },
  4058. items: [{
  4059. name: 'swimlane',
  4060. fieldLabel: '泳道',
  4061. value: model.dom.getAttribute('swimlane'),
  4062. listeners: {
  4063. 'blur': function(field) {
  4064. var newValue = field.getValue();
  4065. model.dom.setAttribute('swimlane', newValue);
  4066. }
  4067. }
  4068. }, {
  4069. name: 'form',
  4070. fieldLabel: '表单',
  4071. value: model.dom.getAttribute('form'),
  4072. listeners: {
  4073. 'blur': function(field) {
  4074. var newValue = field.getValue();
  4075. model.dom.setAttribute('form', newValue);
  4076. }
  4077. }
  4078. }, {
  4079. name: 'duedate',
  4080. fieldLabel: '持续时间',
  4081. value: model.duedate ? model.duedate : ''
  4082. }, {
  4083. name: 'onTransition',
  4084. fieldLabel: '转移',
  4085. value: model.onTransition ? model.onTransition : ''
  4086. }, {
  4087. name: 'completion',
  4088. fieldLabel: '完成',
  4089. value: model.completion ? model.completion : ''
  4090. }, {
  4091. name: 'notification',
  4092. fieldLabel: '邮件提示',
  4093. value: model.dom.getElementAttribute('notification', 'template'),
  4094. listeners: {
  4095. 'blur': function(field) {
  4096. var newValue = field.getValue();
  4097. model.dom.setElementAttribute('notification', 'template', newValue);
  4098. }
  4099. }
  4100. }, {
  4101. name: 'reminder',
  4102. fieldLabel: '邮件提醒',
  4103. value: model.dom.getElementAttribute('reminder', 'template'),
  4104. listeners: {
  4105. 'blur': function(field) {
  4106. var newValue = field.getValue();
  4107. model.dom.setElementAttribute('reminder', 'template', newValue);
  4108. }
  4109. }
  4110. }]
  4111. });
  4112. tabPanel.add(p);*/
  4113. }
  4114. });
  4115. Ext.ns('App.form');
  4116. App.form.TransitionForm = Ext.extend(App.form.AbstractForm, {
  4117. id:'transitionform',
  4118. eventNames: [
  4119. ['take', '进入']
  4120. ],
  4121. decorate: function(tabPanel, model) {
  4122. this.clearItem(tabPanel);
  4123. this.resetBasic(tabPanel, model);
  4124. this.resetEvent(tabPanel, model);
  4125. this.resetTimer(tabPanel, model);
  4126. },
  4127. resetBasic: function(tabPanel, model) {
  4128. var condition = model.dom.getElementAttribute('condition', 'expr');
  4129. if (condition != '') {
  4130. condition = condition.replace(/&lt;/g, '<')
  4131. .replace(/&amp;/g, '&');
  4132. }
  4133. var items = [];
  4134. items.push({
  4135. name: 'name',
  4136. fieldLabel: '名称',
  4137. value: model.text ? model.text : '',
  4138. listeners: {
  4139. 'blur': function(field) {
  4140. var newValue = field.getValue();
  4141. // FIXME: use command
  4142. if(model.getSource().type == 'task'){
  4143. if(newValue!="同意"&&newValue!="不同意"){
  4144. alert("任务节点的流出连线名称必须为“同意”或“不同意!”");
  4145. field.focus();
  4146. }
  4147. }
  4148. model.text = newValue;
  4149. model.editPart.figure.updateAndShowText(newValue);
  4150. }
  4151. }
  4152. });
  4153. if (model.getSource().type == 'decision') {
  4154. items.push({
  4155. name: 'condition',
  4156. fieldLabel: '条件',
  4157. // <condition expr="#{ACCOUNT&gt;=10000}"/>
  4158. value: condition,
  4159. listeners: {
  4160. 'blur': function(field) {
  4161. var newValue = field.getValue();
  4162. if (newValue != '') {
  4163. model.dom.setElementAttribute('condition', 'expr', newValue);
  4164. } else if (model.dom.elements.length > 0) {
  4165. model.dom.removeElement(model.dom.elements[0]);
  4166. }
  4167. }
  4168. }
  4169. });
  4170. }
  4171. /* items.push({
  4172. name: 'description',
  4173. fieldLabel: '备注',
  4174. xtype: 'textarea',
  4175. value: model.dom.getElementContent('description'),
  4176. listeners: {
  4177. 'blur': function(field) {
  4178. var newValue = field.getValue();
  4179. model.dom.setElementContent('description', newValue);
  4180. }
  4181. }
  4182. });*/ /*transition 的备注域注释掉 */
  4183. var p = new Ext.form.FormPanel({
  4184. title: '基本配置',
  4185. labelWidth: 70,
  4186. labelAlign: 'right',
  4187. border: false,
  4188. defaultType: 'textfield',
  4189. defaults: {
  4190. anchor: '90%'
  4191. },
  4192. bodyStyle: {
  4193. padding: '6px 0 0'
  4194. },
  4195. items: items
  4196. });
  4197. tabPanel.add(p);
  4198. tabPanel.activate(p);
  4199. },
  4200. getTimerData: function(model) {
  4201. var data = [];
  4202. var elements = model.dom.getElementsByTagName('timer');
  4203. Gef.each(elements, function(elem) {
  4204. data.push({
  4205. duedate: timerElem.getAttribute('duedate')
  4206. });
  4207. });
  4208. return data;
  4209. },
  4210. resetTimer: function(tabPanel, model) {
  4211. var data = this.getTimerData(model);
  4212. var Record = Ext.data.Record.create([
  4213. 'duedate'
  4214. ]);
  4215. var store = new Ext.data.JsonStore({
  4216. fields: Record,
  4217. data: data,
  4218. listeners: {
  4219. add: function(store, records, index) {
  4220. var record = records[0];
  4221. var timerDom = new Gef.model.Dom('timer');
  4222. timerDom.setAttribute('duedate', record.get('duedate'));
  4223. model.dom.addElement(timerDom);
  4224. },
  4225. remove: function(store, record, index) {
  4226. var element = model.dom.getElementByTagName('timer');
  4227. model.dom.elements.remove(element);
  4228. },
  4229. update: function(store, record, operation) {
  4230. var index = store.indexOf(record);
  4231. var element = model.dom.getElementByTagName('timer');
  4232. element.setAttribute('duedate', record.get('duedate'));
  4233. this.commitChanges();
  4234. }
  4235. }
  4236. });
  4237. var grid = new Ext.grid.EditorGridPanel({
  4238. title: '定时器配置',
  4239. xtype: 'editorgrid',
  4240. store: store,
  4241. viewConfig: {
  4242. forceFit: true
  4243. },
  4244. columns: [{
  4245. header: '持续日期',
  4246. dataIndex: 'duedate',
  4247. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  4248. }/*, {
  4249. header: '持续时间',
  4250. dataIndex: 'duedatetime',
  4251. editor: new Ext.grid.GridEditor(new Ext.form.TextField())
  4252. }*/],
  4253. tbar: [{
  4254. text: '添加',
  4255. iconCls: 'tb-add',
  4256. handler: function() {
  4257. var count = grid.getStore().getCount();
  4258. if (count > 0) {
  4259. Ext.Msg.alert('info', '连线上只能设置一个定时器');
  4260. return;
  4261. }
  4262. var p = new Record({
  4263. name: '',
  4264. duedate: '',
  4265. repeat: '',
  4266. //duedatetime: '',
  4267. classname: ''
  4268. });
  4269. grid.stopEditing();
  4270. var index = grid.getStore().getCount();
  4271. grid.getStore().insert(index, p);
  4272. grid.startEditing(index, 0);
  4273. }
  4274. }, {
  4275. text: '删除',
  4276. iconCls: 'tb-delete',
  4277. handler: function() {
  4278. Ext.Msg.confirm('信息', '确定删除?', function(btn){
  4279. if (btn == 'yes') {
  4280. var sm = grid.getSelectionModel();
  4281. var cell = sm.getSelectedCell();
  4282. var record = grid.getStore().getAt(cell[0]);
  4283. grid.getStore().remove(record);
  4284. }
  4285. });
  4286. }
  4287. }]
  4288. });
  4289. tabPanel.add(grid);
  4290. }
  4291. });