dwsurvey-design.js 110 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308
  1. /**
  2. *
  3. * DWSurvey 3.0 中关于问卷设计Javascript
  4. *
  5. * @desc: design survey
  6. * @author: keyuan(@keyuan, keyuan258@gmail.com)
  7. * @github: https://github.com/wkeyuan/DWSurvey
  8. *
  9. * Copyright 2012, 2017 调问问卷(DWSurvey,http://dwsurvey.net)
  10. *
  11. */
  12. var browseWidth=$(window).width();
  13. var browseHeight=$(window).height();
  14. var ctx="";
  15. var questionBelongId="";
  16. var svTag=2;
  17. var quCBNum=0;//比较值1
  18. var quCBNum2=0;//比较值2
  19. var curEditObj=null;
  20. var curEditObjOldHtml="";
  21. var dwDialogObj=null;
  22. var ueEditObj=null;//UE编辑器
  23. var isDrag=false;
  24. var appQuObj=null;
  25. var myeditor=null;
  26. var ueDialog=null;
  27. var isSaveProgress=false;
  28. $(document).ready(function(){
  29. ctx=$("#ctx").val();
  30. var surveyId = $.getUrlParam("surveyId");
  31. $("#id").val(surveyId);
  32. questionBelongId=$("#id").val();
  33. browseWidth=$(window).width();
  34. resizeWrapSize();
  35. $(window).resize(function(){
  36. browseWidth=$(window).width();
  37. resizeWrapSize();
  38. if(curEditObj!=null){
  39. var editOffset=$(curEditObj).offset();
  40. $("#dwCommonEditRoot").show();
  41. $("#dwCommonEditRoot").offset({top:editOffset.top,left:editOffset.left});
  42. }
  43. if(dwDialogObj!=null){
  44. setShowDialogOffset(dwDialogObj);
  45. }
  46. });
  47. ueDialog=$( "#dialog" ).dialog({
  48. width:680,
  49. /*height:450,*/
  50. autoOpen: false,
  51. modal:true,
  52. position:["center","top"],
  53. title:"高级编辑器",
  54. show: {effect:"blind",direction:"up",duration: 500},
  55. hide: {effect:"blind",direction:"left",duration: 200,
  56. open:function(event,ui){
  57. }
  58. }
  59. });
  60. myeditor = UE.getEditor("dialogUeditor",{
  61. //toolbars:[[]],
  62. initialContent: "",//初始化内容
  63. elementPathEnabled:false,
  64. wordCount:false,
  65. autosave:false,
  66. initialFrameWidth : 680,
  67. initialFrameHeight : 300
  68. });
  69. $(window).scroll( function() {
  70. var scrollTop=$(window).scrollTop();
  71. var quDesignDialog=$("#tools_wrap");
  72. var headerHeight=0;
  73. var quDesignHeight=125;
  74. if(scrollTop>=headerHeight){
  75. quDesignDialog.css({ top: "0px"});
  76. }else{
  77. quDesignDialog.css({ top: (headerHeight-scrollTop)+"px"});
  78. }
  79. var dwBodyLeft=$("#dw_body_left");
  80. var dwBodyRight=$("#dw_body_right");
  81. if(scrollTop>=headerHeight){
  82. dwBodyLeft.css({top:"136px"});
  83. dwBodyRight.css({top:"136px"});
  84. }else{
  85. dwBodyLeft.css({ top: (headerHeight+quDesignHeight+10-scrollTop)+"px"});
  86. dwBodyRight.css({ top: (headerHeight+quDesignHeight+10-scrollTop)+"px"});
  87. }
  88. // if(scrollTop>=headerHeight && scrollTop<=100){
  89. // $("#dw_body").css({"margin-top":(135+((100-headerHeight)-(100-scrollTop)))+"px"});
  90. // }else{
  91. // $("#dw_body").css({"margin-top":"100px"});
  92. // }
  93. if(curEditObj!=null){
  94. var editOffset=$(curEditObj).offset();
  95. $("#dwCommonEditRoot").show();
  96. $("#dwCommonEditRoot").offset({top:editOffset.top,left:editOffset.left});
  97. }
  98. if(dwDialogObj!=null){
  99. setShowDialogOffset(dwDialogObj);
  100. }
  101. } );
  102. //定时保存逻辑
  103. function intervalSaveSurvey(){
  104. var saveTag=$("#dwSurveyQuContentAppUl input[name='saveTag'][value='0']");
  105. var nmSaveTag=$("#dw_body_content input[name='svyNmSaveTag'][value='0']");
  106. var noteSaveTag=$("#dw_body_content input[name='svyNoteSaveTag'][value='0']");
  107. if(!isSaveProgress && ( saveTag[0] || nmSaveTag[0] || noteSaveTag[0]) && !isDrag && curEditObj==null && dwDialogObj==null){
  108. notify("自动保存中...",5000);
  109. saveSurvey(function(){
  110. isSaveProgress=false;
  111. notify("自动保存成功",1000);
  112. });
  113. }
  114. }
  115. var intervalSave=setInterval(intervalSaveSurvey, 5000);
  116. var isSort=false;
  117. //拖入题目到问卷中
  118. $( ".dragQuUl li" ).draggable({
  119. connectToSortable: "#dwSurveyQuContentAppUl",
  120. zIndex:27000,
  121. cursor: "move",cursorAt:{left: 40, top: 25},
  122. scroll: true ,
  123. scrollSensitivity: 30,
  124. scrollSpeed: 30,
  125. appendTo: "#dw_body_content",
  126. helper: function(event){
  127. return $(this).find(".dwQuTypeModel").html();
  128. },
  129. start: function(event, ui) {
  130. isDrag=true;
  131. $("#tools_wrap").css({"zIndex":30});
  132. /*
  133. var scrollTop=$(window).scrollTop();
  134. if(scrollTop>=70){
  135. $("#tools_wrap").hide("slide",{direction:"up"},300,function(){
  136. $("#tools_wrap").css({"zIndex":30});
  137. }).show("slide",{direction:"up"},500);
  138. }else{
  139. $("#tools_wrap").css({"zIndex":30});
  140. }
  141. */
  142. resetQuItemHover(null);
  143. //$("#tools_wrap").hide();
  144. //console.debug($(this).attr("class")+":"+$(this).css("zIndex"));
  145. dwCommonDialogHide();
  146. curEditCallback();
  147. },
  148. drag: function(event, ui) {
  149. //console.debug( $( "#designQutypes li" ).draggable('option', 'zIndex'));
  150. //console.debug($(ui.helper).css("zIndex")+$(ui.helper).css("position"));
  151. isDrag=true;
  152. },
  153. stop: function(event, ui) {
  154. //$("#tools_wrap").fadeTo("slow", 0.6).fadeTo("slow", 1);
  155. //$("#tools_wrap").css({"zIndex":200});
  156. if(!isSort){
  157. $("#tools_wrap").animate({zIndex: 200}, 200 ,function(){
  158. //$("#tools_wrap").css({"zIndex":200});
  159. resetQuItem();
  160. bindQuHoverItem();
  161. });
  162. }
  163. /*var scrollTop=$(window).scrollTop();
  164. if(scrollTop>=70){
  165. $("#tools_wrap").hide("slide",{direction:"up"},100,function(){
  166. $("#tools_wrap").css({"zIndex":200});
  167. }).show("slide",{direction:"up"},800);
  168. }else{
  169. $("#tools_wrap").css({"zIndex":200});
  170. }*/
  171. if(false){
  172. isDrag=false;
  173. if(appQuObj!=null){
  174. //$("#defaultAppQuObj").before($(this).find(".quTypeModel").html());
  175. $(appQuObj).before($(this).find(".dwQuTypeModel").html());
  176. $(appQuObj).prev().hide();
  177. $(appQuObj).prev().removeClass("quDragBody");
  178. $(appQuObj).prev().show("slow");
  179. resetQuItem();
  180. bindQuHoverItem();
  181. }
  182. }
  183. }
  184. });
  185. $( "#dwSurveyQuContentAppUl" ).sortable({
  186. revert: true,
  187. delay:800,
  188. placeholder:"showLine",
  189. tolerance:"pointer",
  190. opacity :0.7,
  191. //helper : "clone",
  192. handle : ".dwQuMove",
  193. scrollSensitivity: 30,
  194. scrollSpeed: 30,
  195. start: function(event,ui){
  196. $("#tools_wrap").css({"zIndex":30});
  197. $(".showLine").height(ui.item.height());
  198. dwCommonDialogHide();
  199. curEditCallback();
  200. isSort=true;
  201. },
  202. sort: function(event,ui){
  203. isSort=true;
  204. $(".ui-sortable-placeholder").css({"background":"red"});
  205. },
  206. receive:function(event,ui){},
  207. out:function(event,ui){isSort=false;},
  208. update: function( event, ui ) {
  209. if(!isDrag){$("#dwSurveyQuContentAppUl input[name='saveTag']").val(0);}
  210. },
  211. stop: function(event,ui){
  212. if(isDrag){
  213. isDrag=false;
  214. isSort=false;
  215. ui.item.html(ui.item.find(".dwQuTypeModel").html());
  216. ui.item.removeClass("ui-draggable");
  217. ui.item.find(".quDragBody").removeClass("quDragBody");
  218. //新加入题-选定题目标题
  219. ui.item.find(".surveyQuItemBody").addClass("hover");
  220. ui.item.addClass("li_surveyQuItemBody");
  221. var quType=ui.item.find(".surveyQuItemBody input[name='quType']").val();
  222. if(quType!="PAGETAG"){
  223. editAble(ui.item.find(".surveyQuItemBody .quCoTitleEdit"));
  224. }
  225. //var curItemBodyOffset=ui.item.offset();
  226. //alert(curItemBodyOffset.top);
  227. //$(document).scrollTop(curItemBodyOffset.top-370);
  228. //$(document).animate({scrollTop:curItemBodyOffset.top-370}, 800);
  229. //$("body").animate({scrollTop:curItemBodyOffset.top-370}, 800);
  230. }
  231. var curItemBodyOffset=ui.item.offset();
  232. $("html,body").animate({scrollTop:curItemBodyOffset.top-370}, 500,function(){
  233. $("#tools_wrap").css({"zIndex":200});
  234. resetQuItem();
  235. bindQuHoverItem();
  236. });
  237. }
  238. });
  239. /* $("#dwSurveyTitle").keydown(function(event){
  240. if(event.keyCode==13){
  241. return false;
  242. }
  243. }); */
  244. /*$(".tools_tabs_left ul li").hover(function(){
  245. var curId=$(this).attr("id");
  246. var tabId=curId.replace("_li","");
  247. $(".tools_tab_div").hide();
  248. $("#"+tabId).show();
  249. $(".tools_tabs_left ul li").removeClass("current");
  250. $(this).addClass("current");
  251. },function(){});*/
  252. var isDialogClick=false;
  253. $(document).click(function(){
  254. curEditCallback();
  255. if(!isDialogClick){
  256. dwCommonDialogHide();
  257. resetQuItemHover(null);
  258. }
  259. isDialogClick=false;
  260. });
  261. $("#dwCommonEditRoot").unbind();
  262. $("#dwCommonEditRoot").click(function(){
  263. return false;
  264. });
  265. $("#dwCommonDialog").click(function(){
  266. isDialogClick=true;
  267. });
  268. $( "#modelUIDialog" ).click(function(){
  269. isDialogClick=true;
  270. });
  271. $( "#modelUIDialog" ).dialog({
  272. title: "选项设置",
  273. height: 260,
  274. width: 550,
  275. modal: true,
  276. autoOpen: false
  277. });
  278. $(".tools_tabs_left ul li").click(function(){
  279. var curId=$(this).attr("id");
  280. var tabId=curId.replace("_li","");
  281. $(".tools_tab_div").hide();
  282. $("#"+tabId).show();
  283. $(".tools_tabs_left ul li").removeClass("current");
  284. $(this).addClass("current");
  285. });
  286. bindQuHoverItem();
  287. $("#surveyAttrSetToolbar").click(function(){
  288. showUIDialog($(this));
  289. /*$(".tabbarDialog").offset({top:$(this).offset().top+60});
  290. $(".tabbarDialog").show();
  291. $(this).addClass("hover");*/
  292. return false;
  293. });
  294. $("#logicToolbar").click(function(){
  295. showUIDialog($(this));
  296. return false;
  297. });
  298. $("input[name='setAutoContacts']").change(function(){
  299. var check=$(this).prop("checked");
  300. if(check){
  301. $(".contactsFieldLi").show();
  302. }else{
  303. $(".contactsFieldLi").hide();
  304. }
  305. });
  306. $(".option_range").change(function(){
  307. var selVal=$(this).val();
  308. $(this).next().hide();
  309. if(selVal==3){
  310. $(this).next().show();
  311. validateGen();
  312. }else if(selVal=="DATE"){
  313. $(this).parents("ul").find(".option_range_date_li").show();
  314. }else{
  315. $(this).parents("ul").find(".option_range_date_li").hide();
  316. }
  317. });
  318. $(".dwQuDialogAddLogic").click(function(){
  319. addQuDialogLogicTr(true,function(){},function(){alert("此题已经设置了任意选项!");});
  320. return false;
  321. });
  322. $("#dwDialogSaveLogic").click(function(){
  323. var quItemBody=$(dwDialogObj).parents(".surveyQuItemBody");
  324. var quLogicInputCase=quItemBody.find(".quLogicInputCase");
  325. var quType=quItemBody.find("input[name='quType']").val();
  326. var dwQuLogicTrs=$("#dwQuLogicTable tr");
  327. var quLogicItemHtml=$("#quLogicItemModel").html();
  328. $.each(dwQuLogicTrs,function(){
  329. var cgQuItemId=$(this).find(".logicQuOptionSel").val();
  330. var skQuId=$(this).find(".logicQuSel").val();
  331. var logicType=$(this).find(".logicType").val();
  332. var quLogicItemClass=$(this).attr("class");
  333. if(skQuId!="" && cgQuItemId!=""){
  334. var quLogicItem=quLogicInputCase.find("."+quLogicItemClass);
  335. if(quLogicItem[0]){
  336. var oldSkQuId=quLogicItem.find("input[name='skQuId']").val();
  337. var oldCgQuItemId=quLogicItem.find("input[name='cgQuItemId']").val();
  338. var oldLogicType=quLogicItem.find("input[name='logicType']").val();
  339. if(oldSkQuId!=skQuId || cgQuItemId!=oldCgQuItemId || oldLogicType!=logicType){
  340. quLogicItem.find("input[name='logicSaveTag']").val("0");
  341. quItemBody.find("input[name='saveTag']").val("0");
  342. quLogicItem.find("input[name='skQuId']").val(skQuId);
  343. quLogicItem.find("input[name='cgQuItemId']").val(cgQuItemId);
  344. quLogicItem.find("input[name='logicType']").val(logicType);
  345. }
  346. }else{
  347. quLogicInputCase.append(quLogicItemHtml);
  348. quLogicItem=quLogicInputCase.find(".quLogicItem").last();
  349. quLogicItem.addClass(quLogicItemClass);
  350. quLogicItem.find("input[name='quLogicId']").val("");
  351. quLogicItem.find("input[name='skQuId']").val(skQuId);
  352. quLogicItem.find("input[name='cgQuItemId']").val(cgQuItemId);
  353. quLogicItem.find("input[name='visibility']").val("1");
  354. quLogicItem.find("input[name='logicType']").val(logicType);
  355. quItemBody.find("input[name='saveTag']").val("0");
  356. }
  357. }
  358. });
  359. refreshQuLogicInfo(quItemBody);
  360. dwCommonDialogHide();
  361. return false;
  362. });
  363. $("#dwDialogSaveMoreItem").click(function(){
  364. var quItemBody=$(dwDialogObj).parents(".surveyQuItemBody");
  365. var quType=quItemBody.find("input[name='quType']").val();
  366. var areaVal=$("#dwQuMoreTextarea").val();
  367. var areaValSplits=areaVal.split("\n");
  368. $.each(areaValSplits,function(i,item){
  369. item=$.trim(item);
  370. if(item!=""){
  371. if(quType=="RADIO"){
  372. addRadioItem(quItemBody,item);
  373. }else if(quType=="CHECKBOX"){
  374. addCheckboxItem(quItemBody,item);
  375. }else if(quType=="ORDERQU"){
  376. addOrderquItem(quItemBody, item);
  377. }else if(quType=="MULTIFILLBLANK"){
  378. addMultiFillblankItem(quItemBody, item);
  379. }else if(quType=="SCORE"){
  380. addScoreItem(quItemBody,item);
  381. }
  382. }
  383. });
  384. $("#dwQuMoreTextarea").val("");
  385. bindQuHoverItem();
  386. dwCommonDialogHide();
  387. });
  388. $("#dwDialogUeOk").click(function(){
  389. var myeditorContent=myeditor.getContent();
  390. curEditObj=ueEditObj;
  391. setCurEditContent(myeditorContent);
  392. curEditCallback();
  393. ueDialog.dialog("close");
  394. ueEditObj=null;
  395. curEditObj=null;
  396. return false;
  397. });
  398. $("#dwDialogQuSetSave").click(function(){
  399. if(dwDialogObj!=null){
  400. var quItemBody=$(dwDialogObj).parents(".surveyQuItemBody");
  401. //var quType=quItemBody.find("input[name='quType']").val();
  402. var setIsRequired=$("#dwCommonDialog input[name='setIsRequired']:checked");
  403. var setRandOrder=$("#dwCommonDialog input[name='setRandOrder']:checked");
  404. var setHv=$("#dwCommonDialog select[name='setHv']").val();
  405. var setCellCount=$("#dwCommonDialog input[name='setCellCount']").val();
  406. var setAutoContacts=$("#dwCommonDialog input[name='setAutoContacts']:checked");
  407. var setContactsField=$("#dwCommonDialog select[name='setContactsField']").val();
  408. var oldHv=quItemBody.find("input[name='hv']").val();
  409. var oldCellCount=quItemBody.find("input[name='cellCount']").val();
  410. //alert(set_isRequired+":"+set_randOrder+":"+set_hv);
  411. quItemBody.find("input[name='isRequired']").val(setIsRequired[0]?1:0);
  412. quItemBody.find("input[name='hv']").val(setHv);
  413. quItemBody.find("input[name='randOrder']").val(setRandOrder[0]?1:0);
  414. quItemBody.find("input[name='cellCount']").val(setCellCount);
  415. quItemBody.find("input[name='saveTag']").val(0);
  416. var quType=quItemBody.find("input[name='quType']").val();
  417. if(quType=="RADIO" || quType=="CHECKBOX" || quType=="FILLBLANK"){
  418. quItemBody.find("input[name='contactsAttr']").val(setAutoContacts[0]?1:0);
  419. quItemBody.find("input[name='contactsField']").val(setContactsField);
  420. if(quType=="CHECKBOX"){
  421. var minNum = $("#dwCommonDialog .minNumLi input[name='minNum']").val();
  422. var maxNum = $("#dwCommonDialog .maxNumLi input[name='maxNum']").val();
  423. quItemBody.find("input[name='paramInt01']").val(minNum);
  424. quItemBody.find("input[name='paramInt02']").val(maxNum);
  425. }
  426. }else if(quType==="MULTIFILLBLANK"){
  427. var paramInt01=$("#dwCommonDialog .minMaxLi .minNum");
  428. if(paramInt01[0]){
  429. quItemBody.find("input[name='paramInt01']").val(paramInt01.val());
  430. }
  431. quItemBody.find("input[name='paramInt02']").val(10);
  432. }else if(quType=="SCORE"){
  433. quItemBody.find("input[name='paramInt01']").val(1);
  434. var paramInt02=$("#dwCommonDialog .scoreMinMax .maxScore");
  435. if(paramInt02[0]){
  436. quItemBody.find("input[name='paramInt02']").val(paramInt02.val());
  437. }
  438. //根据分数设置评分选项
  439. var paramInt01Val=1;
  440. var paramInt02Val=paramInt02.val();
  441. var scoreNumTableTr=quItemBody.find(".scoreNumTable tr");
  442. $.each(scoreNumTableTr,function(){
  443. $(this).empty();
  444. for(var i=paramInt01Val;i<=paramInt02Val;i++){
  445. $(this).append("<td>"+i+"</td>");
  446. }
  447. });
  448. }else if(quType==="UPLOADFILE"){
  449. var fileTypeExtsField=$("#dwCommonDialog .fileTypeExts");
  450. var maxSizeField=$("#dwCommonDialog .maxSize");
  451. var uploadNumField=$("#dwCommonDialog .uploadNum");
  452. quItemBody.find("input[name='paramInt01']").val(fileTypeExtsField.val());
  453. quItemBody.find("input[name='paramInt02']").val(maxSizeField.val());
  454. quItemBody.find("input[name='randOrder']").val(uploadNumField.val());
  455. }
  456. var selVal=$(".option_range").val();
  457. if(selVal==1){
  458. //横排 transverse
  459. if(oldHv==3){
  460. quTableOptoin2Li(quItemBody);
  461. }
  462. quItemBody.find(".quCoItem ul").addClass("transverse");
  463. }else if(selVal==2){
  464. if(oldHv==3){
  465. quTableOptoin2Li(quItemBody);
  466. }else{
  467. //竖排
  468. quItemBody.find(".quCoItem ul").removeClass("transverse");
  469. quItemBody.find(".quCoItem ul li").width("");
  470. }
  471. }else if(selVal==3){
  472. if(!$("#dwCommonDialogForm").valid()){
  473. notify("参数不对,请检查!",800);
  474. return false;
  475. }
  476. if(oldHv==3){
  477. if(oldCellCount!=setCellCount){
  478. quTableOption2Table(quItemBody);
  479. }
  480. }else{
  481. quLiOption2Table(quItemBody);
  482. }
  483. }
  484. }
  485. dwCommonDialogHide();
  486. return false;
  487. });
  488. $("#dwDialogSurveyAttrSave").click(function(){
  489. $("input[name='svyAttrSaveTag']").val(0);
  490. notify("保存中...",5000);
  491. saveSurvey(function(){
  492. isSaveProgress=false;
  493. notify("保存成功",1000);
  494. });
  495. //关闭窗口
  496. $("#modelUIDialog").dialog("close");
  497. dwCommonDialogHide();
  498. /*var url="";
  499. var data="";
  500. $.ajax({
  501. url:url,
  502. data:data,
  503. type:"post",
  504. success:function(msg){
  505. alert(msg);
  506. }
  507. });*/
  508. return false;
  509. });
  510. $("#dwDialogQuOptionSetSave").click(function(){
  511. var quItemBody=$(dwDialogObj).parents(".surveyQuItemBody");
  512. var quOptionParent=$(dwDialogObj).parent();
  513. var quOption_isNote=$("#modelUIDialog input[name='quOption_isNote']");
  514. var isNote=quOptionParent.find("input[name='isNote']");
  515. var checkType=quOptionParent.find("input[name='checkType']");
  516. var isRequiredFill=quOptionParent.find("input[name='isRequiredFill']");
  517. if(quOption_isNote.prop("checked")&&(isNote.val()=="0" || isNote.val()=="")){
  518. quItemBody.find("input[name='saveTag']").val(0);
  519. quOptionParent.find("input[name='quItemSaveTag']").val(0);
  520. }
  521. if(quOption_isNote.prop("checked")){
  522. isNote.val(1);
  523. if(!quOptionParent.find(".optionInpText")[0]){
  524. $(dwDialogObj).after("<input type='text' class='optionInpText' />");
  525. }
  526. quOptionParent.find(".optionInpText").show();
  527. }else{
  528. isNote.val(0);
  529. quOptionParent.find(".optionInpText").hide();
  530. }
  531. checkType.val("NO");
  532. isRequiredFill.val(0);
  533. //显示填空框
  534. // $(dwDialogObj).after("<input type='text' class='optionInpText' />");
  535. // quOptionParent.find(".optionInpText").show();
  536. $("#modelUIDialog").dialog("close");
  537. //resetQuItemHover(null);
  538. dwCommonDialogHide();
  539. return false;
  540. });
  541. $("#dwDialogQuFillOptionSave").click(function(){
  542. var quItemBody=$(dwDialogObj).parents(".surveyQuItemBody");
  543. var quFill_checkType=$("#modelUIDialog select[name='quFill_checkType']");
  544. var qu_inputWidth=$("#modelUIDialog input[name='qu_inputWidth']");
  545. var qu_inputRow=$("#modelUIDialog input[name='qu_inputRow']");
  546. var option_range_date=$("#modelUIDialog select.option_range_date");
  547. var checkType=quItemBody.find("input[name='checkType']");
  548. var answerInputWidth=quItemBody.find("input[name='answerInputWidth']");
  549. var answerInputRow=quItemBody.find("input[name='answerInputRow']");
  550. var paramInt01=quItemBody.find("input[name='paramInt01']");
  551. if(answerInputWidth.val()!=qu_inputWidth.val() || answerInputRow.val()!=qu_inputRow.val() || (checkType[0] && checkType.val()!=quFill_checkType.val())){
  552. quItemBody.find("input[name='saveTag']").val(0);
  553. }
  554. var checkTypeVal = quFill_checkType.val();
  555. if(checkTypeVal == ""){
  556. checkTypeVal="NO";
  557. }
  558. if(checkType[0]){
  559. checkType.val(checkTypeVal);
  560. if(checkTypeVal=="DATE"){
  561. if(paramInt01[0]){
  562. paramInt01.val(option_range_date.val());
  563. }else{
  564. quItemBody.find(".quInputCase").append("<input type=\"hidden\" name=\"paramInt01\" value=\""+option_range_date.val()+"\">");
  565. }
  566. quItemBody.find("input[name='saveTag']").val(0);
  567. }
  568. }
  569. answerInputWidth.val(qu_inputWidth.val());
  570. answerInputRow.val(qu_inputRow.val());
  571. if(qu_inputRow.val()>1){
  572. quItemBody.find(".quFillblankAnswerTextarea").show();
  573. quItemBody.find(".quFillblankAnswerInput").hide();
  574. quItemBody.find(".quFillblankAnswerTextarea").attr("rows",qu_inputRow.val());
  575. quItemBody.find(".quFillblankAnswerTextarea").width(qu_inputWidth.val());
  576. }else{
  577. quItemBody.find(".quFillblankAnswerTextarea").hide();
  578. quItemBody.find(".quFillblankAnswerInput").show();
  579. quItemBody.find(".quFillblankAnswerInput").width(qu_inputWidth.val());
  580. }
  581. quItemBody.find(".quCoItemUlLi").removeClass("hover");
  582. $("#modelUIDialog").dialog("close");
  583. resetQuItemHover(null);
  584. dwCommonDialogHide();
  585. return false;
  586. });
  587. function quTableOptoin2Li(quItemBody){
  588. var quCoItemTds=quItemBody.find(".quCoItem .tableQuColItem tr td");
  589. var ulLiHtml="<ul>";
  590. $.each(quCoItemTds,function(){
  591. var tdHtml=$(this).html();
  592. if(tdHtml!=""){
  593. ulLiHtml+="<li class='quCoItemUlLi'>"+tdHtml+"</li>";
  594. }
  595. });
  596. ulLiHtml+="<ul>";
  597. quItemBody.find(".quCoItem table.tableQuColItem").remove();
  598. quItemBody.find(".quCoItem").append(ulLiHtml);
  599. quItemBody.find(".quCoItem ul li").width("");
  600. quItemBody.find(".quCoItem ul li label").width("");
  601. bindQuHoverItem();
  602. }
  603. function quLiOption2Table(quItemBody){
  604. var quCoItemlis=quItemBody.find(".quCoItem ul li");
  605. var quCoItemLiSize=quCoItemlis.size();
  606. var cellCount=$("#dwCommonDialog input[name='setCellCount']").val();
  607. var rowCount=parseInt(quCoItemLiSize/cellCount);
  608. var remainder=quCoItemLiSize%cellCount;
  609. var tdWidth=parseInt(600/cellCount);
  610. var tdLabelWidth=tdWidth-10;
  611. if(remainder>0){
  612. rowCount=rowCount+1;
  613. }
  614. var tableHtmlBuild="<table class='tableQuColItem'>";
  615. for(var i=0;i<rowCount;i++){
  616. tableHtmlBuild+="<tr>";
  617. //0*2+(1)=1 0*2+(2)=2 1*2+(1)=3 1*2+(2)=4 2*2+1=5 2*2+2=6
  618. for(var j=0;j<cellCount;j++){
  619. var liIndex=(i*cellCount)+j;
  620. if(liIndex<quCoItemLiSize){
  621. var liObj=$(quCoItemlis).get(liIndex);
  622. tableHtmlBuild+="<td>"+$(liObj).html()+"</td>";
  623. }else{
  624. tableHtmlBuild+="<td><div class='emptyTd'></div></td>";
  625. }
  626. }
  627. tableHtmlBuild+="</tr>";
  628. }
  629. tableHtmlBuild+="</table>";
  630. quItemBody.find(".quCoItem ul").remove();
  631. quItemBody.find(".quCoItem").append(tableHtmlBuild);
  632. //设置亮度
  633. quItemBody.find(".quCoItem .tableQuColItem tr td").width(tdWidth);
  634. quItemBody.find(".quCoItem .tableQuColItem tr td label").width(tdLabelWidth);
  635. bindQuHoverItem();
  636. }
  637. //表格变换了行数之后
  638. function quTableOption2Table(quItemBody){
  639. var quCoItemTds=quItemBody.find(".quCoItem .tableQuColItem tr td");
  640. var quCoItemTdSize=quCoItemTds.size();
  641. var cellCount=$("#dwCommonDialog input[name='setCellCount']").val();
  642. var rowCount=parseInt(quCoItemTdSize/cellCount);
  643. var remainder=quCoItemTdSize%cellCount;
  644. var tdWidth=parseInt(600/cellCount);
  645. var tdLabelWidth=tdWidth-10;
  646. if(remainder>0){
  647. rowCount=rowCount+1;
  648. }
  649. var tableHtmlBuild="<table class='tableQuColItem'>";
  650. for(var i=0;i<rowCount;i++){
  651. tableHtmlBuild+="<tr>";
  652. //0*2+(1)=1 0*2+(2)=2 1*2+(1)=3 1*2+(2)=4 2*2+1=5 2*2+2=6
  653. for(var j=0;j<cellCount;j++){
  654. var tdIndex=(i*cellCount)+j;
  655. if(tdIndex<quCoItemTdSize){
  656. var tdObj=$(quCoItemTds).get(tdIndex);
  657. tableHtmlBuild+="<td>"+$(tdObj).html()+"</td>";
  658. }else{
  659. tableHtmlBuild+="<td><div class='emptyTd'></div></td>";
  660. }
  661. }
  662. tableHtmlBuild+="</tr>";
  663. }
  664. tableHtmlBuild+="</table>";
  665. quItemBody.find(".quCoItem table.tableQuColItem").remove();
  666. quItemBody.find(".quCoItem").append(tableHtmlBuild);
  667. //设置亮度
  668. quItemBody.find(".quCoItem .tableQuColItem tr td").width(tdWidth);
  669. quItemBody.find(".quCoItem .tableQuColItem tr td label").width(tdLabelWidth);
  670. bindQuHoverItem();
  671. }
  672. $("#dwSurveyName").click(function(){
  673. editAble($(this));
  674. return false;
  675. });
  676. $("#dwSurveyNoteEdit").click(function(){
  677. editAble($(this));
  678. return false;
  679. });
  680. $(".dwComEditMenuBtn").click(function(){
  681. //dwComEditMenuBtn
  682. var dwMenuUl=$(".dwComEditMenuUl:visible");
  683. //根据当前编辑的对象
  684. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  685. var quType=quItemBody.find("input[name='quType']").val();
  686. var curEditClass=$(curEditObj).attr("class");
  687. if(quType=="RADIO" || quType=="CHECKBOX"){
  688. if(curEditClass.indexOf("quCoTitleEdit")<0){
  689. $(".dwComEditMenuUl .option_Set_Li").show();
  690. }else{
  691. $(".dwComEditMenuUl .option_Set_Li").hide();
  692. }
  693. }else{
  694. $(".dwComEditMenuUl .option_Set_Li").hide();
  695. }
  696. if(dwMenuUl[0]){
  697. $(".dwComEditMenuUl").hide();
  698. }else{
  699. $(".dwComEditMenuUl").show();
  700. }
  701. return false;
  702. });
  703. $("#dwCommonDialogClose").click(function(){
  704. dwCommonDialogHide();
  705. resetQuItemHover(null);
  706. });
  707. $("#dwComEditContent").keyup(function(){
  708. $(curEditObj).html($("#dwComEditContent").html());
  709. $(curEditObj).css("display","inline-block");
  710. var dwEditWidth=$(curEditObj).width();
  711. //var dwEditWidth=$("#dwComEditContent").width();
  712. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  713. var thClass=curEditObj.attr("class");
  714. if(thClass.indexOf("dwSvyNoteEdit")<0 && thClass.indexOf("dwSvyName")<0){
  715. var hv=quItemBody.find("input[name='hv']").val();
  716. if(hv==3){
  717. dwEditWidth>600?dwEditWidth=600:dwEditWidth;
  718. }else{
  719. dwEditWidth<200?dwEditWidth=200:dwEditWidth>600?dwEditWidth=600:dwEditWidth;
  720. }
  721. }else{
  722. dwEditWidth=680;
  723. }
  724. $("#dwCommonEditRoot .dwCommonEdit").css("width",dwEditWidth);
  725. if(curEditObj!=null){
  726. var editOffset=$(curEditObj).offset();
  727. $("#dwCommonEditRoot").show();
  728. $("#dwCommonEditRoot").offset({top:editOffset.top,left:editOffset.left});
  729. }
  730. });
  731. $("#previewBtn").click(function(){
  732. curEditCallback();
  733. dwCommonDialogHide();
  734. resetQuItemHover(null);
  735. saveSurvey(function(){
  736. isSaveProgress=false;
  737. window.location.href="/dw/static/diaowen/preview.html?surveyId="+questionBelongId;
  738. });
  739. return false;
  740. });
  741. $("#saveBtn").click(function(){
  742. curEditCallback();
  743. dwCommonDialogHide();
  744. resetQuItemHover(null);
  745. notify("保存中...",5000);
  746. saveSurvey(function(){
  747. isSaveProgress=false;
  748. notify("保存成功",1000);
  749. });
  750. });
  751. $("#publishBtn").click(function(){
  752. curEditCallback();
  753. dwCommonDialogHide();
  754. resetQuItemHover(null);
  755. saveSurvey(function(){
  756. isSaveProgress=false;
  757. window.location.href="/dw/static/diaowen/preview.html?surveyId="+questionBelongId;
  758. });
  759. });
  760. $("#signOut").click(function(){
  761. window.location.href="/dw/#/dw/survey/";
  762. });
  763. function saveSurvey(callback){
  764. isSaveProgress=true;
  765. var svyNmSaveTag=$("input[name='svyNmSaveTag']").val();
  766. var svyNoteSaveTag=$("input[name='svyNoteSaveTag']").val();
  767. var svyAttrSaveTag=$("input[name='svyAttrSaveTag']").val();
  768. if( svyNmSaveTag==="0" || svyNoteSaveTag==="0" || svyAttrSaveTag==="0" ){
  769. var url=ctx+"/design/survey-design/ajaxSave.do";
  770. var data="surveyId="+questionBelongId;
  771. if(svyNmSaveTag==="0"){
  772. var dwSurveyName=$("#dwSurveyName").html();
  773. dwSurveyName=escape(encodeURIComponent(dwSurveyName));
  774. data+="&svyName="+dwSurveyName;
  775. var dwSurveyNameText=$("#dwSurveyName").text();
  776. dwSurveyNameText=escape(encodeURIComponent(dwSurveyNameText));
  777. data+="&svyNameText="+dwSurveyNameText;
  778. }
  779. if(svyNoteSaveTag==="0"){
  780. var dwSurveyNoteEdit=$("#dwSurveyNoteEdit").html();
  781. dwSurveyNoteEdit=escape(encodeURIComponent(dwSurveyNoteEdit));
  782. data+="&svyNote="+dwSurveyNoteEdit;
  783. }
  784. var effective=$("input[name='effective']:checked")[0]?"4":"0";
  785. var effectiveIp=$("input[name='effectiveIp']:checked")[0]?"1":"0";
  786. var rule=$("input[name='rule']:checked")[0]?"3":"0";
  787. var ruleCode=$("input[name='ruleCode']").val();
  788. var refresh=$("input[name='refresh']:checked")[0]?"1":"0";
  789. var mailOnly=$("input[name='mailOnly']:checked")[0]?"1":"0";
  790. var ynEndNum=$("input[name='ynEndNum']:checked")[0]?"1":"0";
  791. var ynEndTime=$("input[name='ynEndTime']:checked")[0]?"1":"0";
  792. var endTime=$("input[name='endTime']").val();
  793. var endNum=$("input[name='endNum']").val();
  794. var showShareSurvey=$("input[name='showShareSurvey']:checked")[0]?"1":"0";
  795. var showAnswerDa=$("input[name='showAnswerDa']:checked")[0]?"1":"0";
  796. data+="&effective="+effective+"&effectiveIp="+effectiveIp+"&rule="+rule+"&refresh="+refresh+"&ruleCode="+ruleCode+"&mailOnly="+mailOnly;
  797. data+="&ynEndNum="+ynEndNum+"&ynEndTime="+ynEndTime+"&endTime="+endTime+"&endNum="+endNum;
  798. data+="&showShareSurvey="+showShareSurvey+"&showAnswerDa="+showAnswerDa;
  799. $.ajax({
  800. url:url,
  801. data:data,
  802. type:"post",
  803. success:function(msg){
  804. $("input[name='svyNmSaveTag']").val(1);
  805. $("input[name='svyNoteSaveTag']").val(1);
  806. $("input[name='svyAttrSaveTag']").val(1);
  807. var fristQuItemBody=$("#dwSurveyQuContent .li_surveyQuItemBody").first();
  808. saveQus(fristQuItemBody,callback);
  809. }
  810. });
  811. }else{
  812. var fristQuItemBody=$("#dwSurveyQuContent .li_surveyQuItemBody").first();
  813. saveQus(fristQuItemBody,callback);
  814. }
  815. }
  816. querySurveyAll();
  817. resetQuItem();
  818. });
  819. function resetQuItem(){
  820. if(isDrag){
  821. isDrag=false;
  822. }
  823. var surveyQuItems=$("#dwSurveyQuContent .surveyQuItemBody");
  824. var indexNum=1;
  825. $.each(surveyQuItems,function(i){
  826. $(this).find(".quInputCase input[name='orderById']").val(i+1);
  827. var quType=$(this).find("input[name='quType']").val();
  828. if(quType!="PAGETAG" && quType!="PARAGRAPH"){
  829. $(this).find(".quCoTitle .quCoNum").text((indexNum++)+"、");
  830. }
  831. });
  832. var pageTags=$("#dwSurveyQuContent .surveyQuItemBody input[name='quType'][value='PAGETAG']");
  833. var pageTagSize=pageTags.size()+1;
  834. $.each(pageTags,function(i){
  835. var quItemBody=$(this).parents(".surveyQuItemBody");
  836. var pageQuContent=quItemBody.find(".pageQuContent");
  837. pageQuContent.text("下一页("+(i+1)+"/"+pageTagSize+")");
  838. });
  839. }
  840. function bindQuHoverItem(){
  841. $(".SeniorEdit").unbind();
  842. $(".SeniorEdit").click(function(){
  843. ueDialog.dialog( "open" );
  844. ueEditObj=curEditObj;
  845. myeditor.destroy();
  846. myeditor = null;
  847. myeditor = UE.getEditor("dialogUeditor",{
  848. //toolbars:[[]],
  849. initialContent: "",//初始化编辑器的内容
  850. elementPathEnabled:false,
  851. wordCount:false,
  852. autosave:false,
  853. //下面注释参数不要随便调,在滚动时效果更好
  854. //enableAutoSave:false,
  855. //autoHeightEnabled:false,
  856. //topOffset:60,
  857. //imagePopup:true,
  858. initialFrameWidth : 678,
  859. initialFrameHeight : 300
  860. });
  861. myeditor.ready(function(){
  862. setTimeout(function(){
  863. if(curEditObj!=null){
  864. myeditor.setContent($(curEditObj).html());
  865. myeditor.focus(true);
  866. }
  867. },800);
  868. });
  869. return false;
  870. });
  871. $(".option_Set").unbind();
  872. $(".option_Set").click(function(){
  873. /*var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  874. quItemBody.addClass("hover");*/
  875. //showDialog($(curEditObj));
  876. showUIDialog($(curEditObj));
  877. /*resetQuItemHover(quItemBody);
  878. $(this).parents(".quCoItemUlLi").addClass("menuBtnClick");*/
  879. return false;
  880. });
  881. $("#dwSurveyQuContent .surveyQuItemBody").unbind();
  882. $("#dwSurveyQuContent .surveyQuItemBody").hover(function(){
  883. if(isDrag){
  884. appQuObj=$(this);
  885. }else{
  886. $(this).addClass("hover");
  887. $(".pageBorderTop").removeClass("nohover");
  888. appQuObj=$(this);
  889. }
  890. },function(){
  891. $(".pageBorderTop").addClass("nohover");
  892. $(this).removeClass("showLine");
  893. var hoverTag=$(this).find("input[name='hoverTag']").val();
  894. if(hoverTag!="hover"){
  895. $(this).removeClass("hover");
  896. }
  897. appQuObj=null;
  898. });
  899. $("#dwSurveyQuContent .surveyQuItemBody").click(function(){
  900. curEditCallback();
  901. dwCommonDialogHide();
  902. $(".surveyQuItemBody").removeClass("hover");
  903. $(".surveyQuItemBody").find("input[name='hoverTag']").val("0");
  904. $(this).addClass("hover");
  905. return false;
  906. });
  907. $(".quCoItemUlLi").unbind();
  908. $(".quCoItemUlLi").hover(function(){
  909. if(!isDrag){
  910. $(this).addClass("hover");
  911. }
  912. },function(){
  913. var thClass=$(this).attr("class");
  914. if(thClass.indexOf("menuBtnClick")<=0){
  915. $(this).removeClass("hover");
  916. }
  917. });
  918. $("#dwSurveyQuContent .editAble").unbind();
  919. $("#dwSurveyQuContent .editAble").click(function(){
  920. editAble($(this));
  921. return false;
  922. });
  923. $(".dwQuDelete").unbind();
  924. $(".dwQuDelete").click(function(){
  925. var quBody=$(this).parents(".surveyQuItemBody");
  926. if(confirm("确认要删除此题吗?")){
  927. var quId=quBody.find("input[name='quId']").val();
  928. if(quId!=""){
  929. var url=ctx+"/design/question/ajaxDelete.do";
  930. var data="quId="+quId;
  931. $.ajax({
  932. url:url,
  933. data:data,
  934. type:"post",
  935. success:function(msg){
  936. if(msg=="true"){
  937. quBody.hide("slow",function(){$(this).parent().remove();resetQuItem();});
  938. }else{
  939. alert("删除失败,请重试!");
  940. }
  941. }
  942. });
  943. }else{
  944. quBody.hide("slow",function(){$(this).parent().remove();resetQuItem();});
  945. }
  946. }
  947. return false;
  948. });
  949. $(".questionUp").unbind();
  950. $(".questionUp").click(function(){
  951. var nextQuBody=$(this).parents(".li_surveyQuItemBody");
  952. var prevQuBody=$(nextQuBody).prev();
  953. if(prevQuBody[0]){
  954. var prevQuBodyHtml=prevQuBody.html();
  955. $(nextQuBody).after("<li class='li_surveyQuItemBody'>"+prevQuBodyHtml+"</li>");
  956. var newNextObj=$(nextQuBody).next();
  957. newNextObj.hide();
  958. newNextObj.slideDown("slow");
  959. prevQuBody.slideUp("slow",function(){prevQuBody.remove();resetQuItem();bindQuHoverItem();});
  960. nextQuBody.find("input[name='saveTag']").val(0);
  961. newNextObj.find("input[name='saveTag']").val(0);
  962. }else{
  963. notify("已经是第一个了!",1000);
  964. //alert("已经是第一个了!");
  965. }
  966. });
  967. $(".questionDown").unbind();
  968. $(".questionDown").click(function(){
  969. var prevQuBody=$(this).parents(".li_surveyQuItemBody");
  970. var nextQuBody=$(prevQuBody).next();
  971. if(nextQuBody[0]){
  972. var nextQuBodyHtml=nextQuBody.html();
  973. $(prevQuBody).before("<li class='li_surveyQuItemBody' >"+nextQuBodyHtml+"</li>");
  974. var newPrevObj=$(prevQuBody).prev();
  975. newPrevObj.hide();
  976. newPrevObj.slideDown("slow");
  977. nextQuBody.slideUp("slow",function(){nextQuBody.remove();resetQuItem();bindQuHoverItem();});
  978. prevQuBody.find("input[name='saveTag']").val(0);
  979. newPrevObj.find("input[name='saveTag']").val(0);
  980. }else{
  981. alert("已经是最后一个了!");
  982. }
  983. });
  984. $(".dwQuSet").unbind();
  985. $(".dwQuSet").click(function(){
  986. showDialog($(this));
  987. var quItemBody=$(this).parents(".surveyQuItemBody");
  988. resetQuItemHover(quItemBody);
  989. validateGen();
  990. return false;
  991. });
  992. $(".dwQuLogic").unbind();
  993. $(".dwQuLogic").click(function(){
  994. showDialog($(this));
  995. var quItemBody=$(this).parents(".surveyQuItemBody");
  996. var quType=quItemBody.find("input[name='quType']").val();
  997. var fristQuItemBody=$("#dwSurveyQuContent .li_surveyQuItemBody").first();
  998. saveQus(fristQuItemBody,function(){
  999. $(".dwQuDialogCon").hide();
  1000. $("#dwCommonDialog .dwQuDialogLogic").show();
  1001. resetQuItemHover(quItemBody);
  1002. bindDialogRemoveLogic();
  1003. $("#dwQuLogicTable").empty();
  1004. //逻辑数据回显示
  1005. var quLogicItems=quItemBody.find(".quLogicItem");
  1006. if(quLogicItems[0]){
  1007. $.each(quLogicItems,function(){
  1008. var skQuId=$(this).find("input[name='skQuId']").val();
  1009. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  1010. var logicType=$(this).find("input[name='logicType']").val();
  1011. // 设置分数 geLe scoreNum
  1012. var geLe="";
  1013. var scoreNum="";
  1014. var thClass=$(this).attr("class");
  1015. thClass=thClass.replace("quLogicItem", "");
  1016. thClass=thClass.replace(" ", "");
  1017. addQuDialogLogicTr(false,function(){
  1018. var lastTr=$("#dwQuLogicTable").find("tr").last();
  1019. lastTr.attr("class",thClass);
  1020. lastTr.find(".logicQuOptionSel").val(cgQuItemId);
  1021. lastTr.find(".logicQuSel").val(skQuId);
  1022. lastTr.find(".logicType").val(logicType);
  1023. lastTr.find(".logicQuOptionSel").change();
  1024. lastTr.find(".logicQuSel").change();
  1025. },function(){});
  1026. });
  1027. }else{
  1028. $(".dwQuDialogAddLogic").click();
  1029. }
  1030. });
  1031. return false;
  1032. });
  1033. $(".addOption,.addColumnOption,.addRowOption").unbind();
  1034. $(".addOption,.addColumnOption,.addRowOption").click(function(){
  1035. var quItemBody=$(this).parents(".surveyQuItemBody");
  1036. var quType=quItemBody.find("input[name='quType']").val();
  1037. if(quType=="RADIO"){
  1038. editAble(addRadioItem(quItemBody,""));
  1039. }else if(quType=="CHECKBOX"){
  1040. editAble(addCheckboxItem(quItemBody, ""));
  1041. }else if(quType=="ORDERQU"){
  1042. editAble(addOrderquItem(quItemBody, "新选项"));
  1043. }else if(quType=="MULTIFILLBLANK"){
  1044. editAble(addMultiFillblankItem(quItemBody, "新选项"));
  1045. }else if(quType=="SCORE"){
  1046. editAble(addScoreItem(quItemBody, "新选项"));
  1047. }
  1048. bindQuHoverItem();
  1049. return false;
  1050. });
  1051. $(".addMoreOption,.addMoreRowOption,.addMoreColumnOption").unbind();
  1052. $(".addMoreOption,.addMoreRowOption,.addMoreColumnOption").click(function(){
  1053. showDialog($(this));
  1054. var quItemBody=$(this).parents(".surveyQuItemBody");
  1055. resetQuItemHover(quItemBody);
  1056. return false;
  1057. });
  1058. $(".quFillblankItem .dwFbMenuBtn").unbind();
  1059. $(".quFillblankItem .dwFbMenuBtn").click(function(){
  1060. showUIDialog($(this));
  1061. return false;
  1062. });
  1063. $(".dwOptionUp").unbind();
  1064. $(".dwOptionUp").click(function(){
  1065. //curEditObj
  1066. //判断类型区别table跟ul中的排序
  1067. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1068. var quType=quItemBody.find("input[name='quType']").val();
  1069. var hv=quItemBody.find("input[name='hv']").val();
  1070. if(hv==3){
  1071. var nextTd=$(curEditObj).parents("td");
  1072. var prevTd=nextTd.prev();
  1073. if(prevTd[0]){
  1074. dwOptionUp(prevTd, nextTd);
  1075. }else{
  1076. var nextTr=$(curEditObj).parents("tr");
  1077. var prevTr=nextTr.prev();
  1078. if(prevTr[0]){
  1079. prevTd=prevTr.find("td").last();
  1080. dwOptionUp_1(prevTr, nextTr);
  1081. }else{
  1082. alert("已经是第一个了!");
  1083. }
  1084. }
  1085. }else{
  1086. var nextLi=null;
  1087. var prevLi=null;
  1088. var nextLiAfterHtml="";
  1089. if(quType==="RADIO" || quType==="CHECKBOX" || quType==="ORDERQU"){
  1090. nextLi=$(curEditObj).parents("li.quCoItemUlLi");
  1091. prevLi=nextLi.prev();
  1092. var prevLiHtml=prevLi.html();
  1093. nextLiAfterHtml="<li class='quCoItemUlLi'>"+prevLiHtml+"</li>";
  1094. }else if(quType==="MULTIFILLBLANK"){
  1095. nextLi=$(curEditObj).parents("tr.mFillblankTableTr");
  1096. prevLi=nextLi.prev();
  1097. var prevLiHtml=prevLi.html();
  1098. nextLiAfterHtml="<tr class='mFillblankTableTr'>"+prevLiHtml+"</tr>";
  1099. }else if(quType==="SCORE"){
  1100. nextLi=$(curEditObj).parents("tr.quScoreOptionTr");
  1101. prevLi=nextLi.prev();
  1102. var prevLiHtml=prevLi.html();
  1103. nextLiAfterHtml="<tr class='quScoreOptionTr'>"+prevLiHtml+"</tr>";
  1104. }
  1105. if(nextLi!=null){
  1106. if(prevLi[0]){
  1107. $(nextLi).after(nextLiAfterHtml);
  1108. prevLi.hide();
  1109. prevLi.remove();
  1110. var editOffset=nextLi.find("label.editAble").offset();
  1111. $("#dwCommonEditRoot").show();
  1112. $("#dwCommonEditRoot").offset({top:editOffset.top,left:editOffset.left});
  1113. bindQuHoverItem();
  1114. $(curEditObj).click();
  1115. $(nextLi).find("input[name='quItemSaveTag']").val(0);
  1116. $(nextLi).next().find("input[name='quItemSaveTag']").val(0);
  1117. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1118. quItemBody.find("input[name='saveTag']").val(0);
  1119. }else{
  1120. alert("已经是第一个了!");
  1121. }
  1122. }
  1123. }
  1124. return false;
  1125. });
  1126. function dwOptionUp(prevTd,nextTd){
  1127. var prevTdHtml=prevTd.html();
  1128. $(nextTd).after("<td>"+prevTdHtml+"</td>");
  1129. prevTd.hide();
  1130. prevTd.remove();
  1131. var editOffset=nextTd.find("label.editAble").offset();
  1132. $("#dwCommonEditRoot").show();
  1133. $("#dwCommonEditRoot").offset({top:editOffset.top,left:editOffset.left});
  1134. bindQuHoverItem();
  1135. $(curEditObj).click();
  1136. $(nextTd).find("input[name='quItemSaveTag']").val(0);
  1137. $(nextTd).next().find("input[name='quItemSaveTag']").val(0);
  1138. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1139. quItemBody.find("input[name='saveTag']").val(0);
  1140. }
  1141. function dwOptionUp_1(prevTr,nextTr){
  1142. var prevTd=prevTr.find("td").last();
  1143. var nextTd=nextTr.find("td").first();
  1144. var prevTdHtml=prevTd.html();
  1145. var nextTdHtml=nextTd.html();
  1146. prevTd.before("<td>"+nextTdHtml+"</td>");
  1147. $(nextTd).after("<td>"+prevTdHtml+"</td>");
  1148. prevTd.hide();
  1149. prevTd.remove();
  1150. nextTd.hide();
  1151. nextTd.remove();
  1152. prevTd=prevTr.find("td").last();
  1153. nextTd=nextTr.find("td").first();
  1154. curEditObj=prevTd.find("label.editAble");
  1155. var editOffset=prevTd.find("label.editAble").offset();
  1156. $("#dwCommonEditRoot").show();
  1157. $("#dwCommonEditRoot").offset({top:editOffset.top,left:editOffset.left});
  1158. bindQuHoverItem();
  1159. $(curEditObj).click();
  1160. $(prevTd).find("input[name='quItemSaveTag']").val(0);
  1161. $(nextTd).find("input[name='quItemSaveTag']").val(0);
  1162. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1163. quItemBody.find("input[name='saveTag']").val(0);
  1164. }
  1165. $(".dwOptionDown").unbind();
  1166. $(".dwOptionDown").click(function(){
  1167. //判断类型区别table跟ul中的排序
  1168. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1169. var quType=quItemBody.find("input[name='quType']").val();
  1170. var hv=quItemBody.find("input[name='hv']").val();
  1171. if(hv==3){
  1172. var prevTd=$(curEditObj).parents("td");
  1173. var nextTd=prevTd.next();
  1174. if(nextTd[0]){
  1175. dwOptionDown(prevTd, nextTd);
  1176. }else{
  1177. var nextTr=$(curEditObj).parents("tr");
  1178. var prevTr=nextTr.prev();
  1179. if(prevTr[0]){
  1180. prevTd=prevTr.find("td").last();
  1181. dwOptionUp_1(prevTr, nextTr);
  1182. }else{
  1183. alert("已经是第一个了!");
  1184. }
  1185. }
  1186. }else{
  1187. var prevLi=null;
  1188. var nextLi=null;
  1189. var prevLiBeforeHtml="";
  1190. if(quType==="RADIO" || quType==="CHECKBOX" || quType==="ORDERQU"){
  1191. prevLi=$(curEditObj).parents("li.quCoItemUlLi");
  1192. nextLi=prevLi.next();
  1193. var nextLiHtml=nextLi.html();
  1194. prevLiBeforeHtml="<li class='quCoItemUlLi'>"+nextLiHtml+"</li>";
  1195. }else if(quType==="MULTIFILLBLANK"){
  1196. prevLi=$(curEditObj).parents("tr.mFillblankTableTr");
  1197. nextLi=prevLi.next();
  1198. var nextLiHtml=nextLi.html();
  1199. prevLiBeforeHtml="<tr class='mFillblankTableTr'>"+nextLiHtml+"</tr>";
  1200. }else if(quType==="SCORE"){
  1201. prevLi=$(curEditObj).parents("tr.quScoreOptionTr");
  1202. nextLi=prevLi.next();
  1203. var nextLiHtml=nextLi.html();
  1204. prevLiBeforeHtml="<tr class='quScoreOptionTr'>"+nextLiHtml+"</tr>";
  1205. }
  1206. if(nextLi[0]){
  1207. $(prevLi).before(prevLiBeforeHtml);
  1208. nextLi.hide();
  1209. nextLi.remove();
  1210. var editOffset=prevLi.find("label.editAble").offset();
  1211. $("#dwCommonEditRoot").show();
  1212. $("#dwCommonEditRoot").offset({top:editOffset.top,left:editOffset.left});
  1213. bindQuHoverItem();
  1214. $(curEditObj).click();
  1215. $(prevLi).find("input[name='quItemSaveTag']").val(0);
  1216. $(prevLi).prev().find("input[name='quItemSaveTag']").val(0);
  1217. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1218. quItemBody.find("input[name='saveTag']").val(0);
  1219. }else{
  1220. alert("已经是最后一个了!");
  1221. }
  1222. }
  1223. return false;
  1224. });
  1225. function dwOptionDown(prevTd,nextTd){
  1226. var nextTdHtml=nextTd.html();
  1227. $(prevTd).before("<td>"+nextTdHtml+"</td>");
  1228. nextTd.hide();
  1229. nextTd.remove();
  1230. var editOffset=prevTd.find("label.editAble").offset();
  1231. $("#dwCommonEditRoot").show();
  1232. $("#dwCommonEditRoot").offset({top:editOffset.top,left:editOffset.left});
  1233. bindQuHoverItem();
  1234. $(curEditObj).click();
  1235. $(prevTd).find("input[name='quItemSaveTag']").val(0);
  1236. $(prevTd).next().find("input[name='quItemSaveTag']").val(0);
  1237. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1238. quItemBody.find("input[name='saveTag']").val(0);
  1239. }
  1240. $(".dwOptionDel").unbind();
  1241. $(".dwOptionDel").click(function(){
  1242. deleteDwOption();
  1243. return false;
  1244. });
  1245. //引用自address.js
  1246. bindAddrChange();
  1247. }
  1248. function deleteDwOption(){
  1249. if(curEditObj!=null){
  1250. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1251. var quType=quItemBody.find("input[name='quType']").val();
  1252. if(quType=="RADIO"){
  1253. //添加单选选项
  1254. deleteRadioOption();
  1255. }else if(quType=="CHECKBOX"){
  1256. deleteCheckboxOption();
  1257. }else if(quType=="ORDERQU"){
  1258. deleteOrderquOption();
  1259. }else if(quType=="MULTIFILLBLANK"){
  1260. deleteMultiFillblankOption();
  1261. }else if(quType=="SCORE"){
  1262. deleteScoreOption();
  1263. }
  1264. }
  1265. }
  1266. function curEditCallback(){
  1267. if(curEditObj!=null){
  1268. var dwEditHtml=$("#dwComEditContent").html();
  1269. //var curEditObjHtml=$(curEditObj).html();
  1270. setCurEditContent(dwEditHtml);
  1271. }
  1272. $("#dwSurveyNote").removeClass("click");
  1273. }
  1274. function setCurEditContent(dwEditHtml){
  1275. var thClass=$(curEditObj).attr("class");
  1276. if(dwEditHtml=="" && thClass.indexOf("dwSvyNoteEdit")<0){
  1277. deleteDwOption();
  1278. }else if(dwEditHtml!=curEditObjOldHtml){
  1279. //更新值
  1280. $(curEditObj).html(dwEditHtml);
  1281. //修改保存状态
  1282. setSaveTag0();
  1283. }
  1284. dwCommonEditHide();
  1285. }
  1286. function dwCommonEditHide(){
  1287. $("#dwCommonEditRoot").hide();
  1288. $(".dwComEditMenuUl").hide();
  1289. curEditObj=null;
  1290. }
  1291. function setShowDialogOffset(thDialogObj){
  1292. var thObjClass=thDialogObj.attr("class");
  1293. if(thObjClass.indexOf("dwFbMenuBtn")<0 && thObjClass.indexOf("quCoOptionEdit")<0){
  1294. var thOffset=thDialogObj.offset();
  1295. $("#dwCommonDialog").show(0,function(){
  1296. var thOffsetTop=thOffset.top;
  1297. var thOffsetLeft=thOffset.left+40;
  1298. var dwCommonRefIcon=$("#dwCommonDialog").find(".dwCommonRefIcon");
  1299. dwCommonRefIcon.removeClass("right");
  1300. dwCommonRefIcon.removeClass("left");
  1301. browseWidth=$(window).width();
  1302. browseHeight=$(window).height();
  1303. if((thOffsetLeft-100)>browseWidth/2){
  1304. thOffsetLeft=thOffsetLeft-$("#dwCommonDialog").width()-50;
  1305. dwCommonRefIcon.addClass("right");
  1306. }else{
  1307. dwCommonRefIcon.addClass("left");
  1308. }
  1309. $("#dwCommonDialog").offset({ top: thOffsetTop, left: thOffsetLeft });
  1310. });
  1311. }
  1312. }
  1313. //显示模式窗口
  1314. function showUIDialog(thDialogObj,dwSurveyDialogClass){
  1315. $("#modelUIDialog").dialog("open");
  1316. $(".dwQuDialogCon").hide();
  1317. if(dwSurveyDialogClass!=null){
  1318. $("#modelUIDialog ."+dwSurveyDialogClass).show();
  1319. $("#modelUIDialog").dialog("option","title","数据加载中");
  1320. }else{
  1321. var thObjClass=thDialogObj.attr("class");
  1322. if(thObjClass.indexOf("dwFbMenuBtn")>=0){
  1323. $("#modelUIDialog .dwQuFillDataTypeOption").show();
  1324. $("#modelUIDialog").dialog("open");
  1325. var quItemBody=$(thDialogObj).parents(".surveyQuItemBody");
  1326. var checkType_val=quItemBody.find("input[name='checkType']").val();
  1327. var answerInputWidth_val=quItemBody.find("input[name='answerInputWidth']").val();
  1328. var answerInputRow_val=quItemBody.find("input[name='answerInputRow']").val();
  1329. var paramInt01=quItemBody.find("input[name='paramInt01']");
  1330. if(checkType_val==""){
  1331. checkType_val="NO";
  1332. }
  1333. var qu_inputWidth=$("#modelUIDialog input[name='qu_inputWidth']");
  1334. var qu_inputRow=$("#modelUIDialog input[name='qu_inputRow']");
  1335. var quFill_checkType=$("#modelUIDialog select[name='quFill_checkType']");
  1336. if(answerInputWidth_val==""){
  1337. answerInputWidth_val="300";
  1338. }
  1339. if(answerInputRow_val==""){
  1340. answerInputRow_val="1";
  1341. }
  1342. qu_inputWidth.val(answerInputWidth_val);
  1343. qu_inputRow.val(answerInputRow_val);
  1344. quFill_checkType.val(checkType_val);
  1345. $("#modelUIDialog .dwQuFillDataTypeOption .option_range_date_li").hide();
  1346. if(checkType_val==="DATE"){
  1347. $("#modelUIDialog .dwQuFillDataTypeOption .option_range_date_li").show();
  1348. if(paramInt01[0]){
  1349. $("#modelUIDialog .dwQuFillDataTypeOption .option_range_date_li .option_range_date").val(paramInt01.val());
  1350. }
  1351. }
  1352. resetQuItemHover(quItemBody);
  1353. $(thDialogObj).parents(".quCoItemUlLi").addClass("menuBtnClick");
  1354. $("#modelUIDialog").dialog("option","height",260);
  1355. }else if(thObjClass.indexOf("quCoOptionEdit")>=0) {
  1356. $("#modelUIDialog .dwQuRadioCheckboxOption").show();
  1357. //设置回显值 isNote checkType
  1358. var quOption_isNote=$("#modelUIDialog input[name='quOption_isNote']");
  1359. var quOption_checkType=$("#modelUIDialog select[name='quOption_checkType']");
  1360. var quOption_isRequiredFill=$("#modelUIDialog input[name='quOption_isRequiredFill']");
  1361. var quOptionParent=$(thDialogObj).parent();
  1362. var isNote_val=quOptionParent.find("input[name='isNote']").val();
  1363. var checkType_val=quOptionParent.find("input[name='checkType']").val();
  1364. var isRequiredFill_val=quOptionParent.find("input[name='isRequiredFill']").val();
  1365. if(isNote_val=="1"){
  1366. quOption_isNote.prop("checked",true);
  1367. $(".quOptionFillContentLi,.quOptionFillRequiredLi").show();
  1368. $("#modelUIDialog").dialog("option","height",250);
  1369. }else{
  1370. quOption_isNote.prop("checked",false);
  1371. $(".quOptionFillContentLi,.quOptionFillRequiredLi").hide();
  1372. $("#modelUIDialog").dialog("option","height",180);
  1373. }
  1374. if(checkType_val==""){
  1375. checkType_val="NO";
  1376. }
  1377. quOption_checkType.val(checkType_val);
  1378. if(isRequiredFill_val=="1"){
  1379. quOption_isRequiredFill.prop("checked",true);
  1380. }else{
  1381. quOption_isRequiredFill.prop("checked",false);
  1382. }
  1383. }else if(thObjClass.indexOf("surveyAttrSetToolbar_li")>=0){
  1384. $("#modelUIDialog .dwSurveyAttrSetDialog").show();
  1385. $("#modelUIDialog").dialog("option","height",390);
  1386. }
  1387. }
  1388. dwDialogObj=thDialogObj;
  1389. }
  1390. //显示弹出层
  1391. function showDialog(thDialogObj){
  1392. var thObjClass=thDialogObj.attr("class");
  1393. curEditCallback();
  1394. setShowDialogOffset(thDialogObj);
  1395. var quItemBody=$(thDialogObj).parents(".surveyQuItemBody");
  1396. $("#dwCommonDialog .dwQuDialogCon").hide();
  1397. if(thObjClass.indexOf("addMoreOption")>=0){
  1398. $("#dwCommonDialog .dwQuAddMore").show();
  1399. }else if(thObjClass.indexOf("dwQuSet")>=0){
  1400. $("#dwCommonDialog .dwQuSetCon").show();
  1401. var quType=quItemBody.find("input[name='quType']").val();
  1402. var isRequired=quItemBody.find("input[name='isRequired']").val();
  1403. var hv=quItemBody.find("input[name='hv']").val();
  1404. var randOrder=quItemBody.find("input[name='randOrder']").val();
  1405. var cellCount=quItemBody.find("input[name='cellCount']").val();
  1406. var paramInt01=quItemBody.find("input[name='paramInt01']");
  1407. var paramInt02=quItemBody.find("input[name='paramInt02']");
  1408. var contactsAttr=quItemBody.find("input[name='contactsAttr']").val();
  1409. var contactsField=quItemBody.find("input[name='contactsField']").val();
  1410. $("#dwCommonDialog input[name='setIsRequired']").prop("checked",false);
  1411. $("#dwCommonDialog input[name='setRandOrder']").prop("checked",false);
  1412. $("#dwCommonDialog select[name='setHv']").val(2);
  1413. $("#dwCommonDialog input[name='setAutoContacts']").prop("checked",false);
  1414. $("#dwCommonDialog .contactsFieldLi").hide();
  1415. $("#dwCommonDialog .contactsAttrLi").hide();
  1416. $("#dwCommonDialog .optionAutoOrder").hide();
  1417. $("#dwCommonDialog .optionRangeHv").hide();
  1418. $("#dwCommonDialog .scoreMinMax").hide();
  1419. $("#dwCommonDialog .minMaxLi").hide();
  1420. $("#dwCommonDialog .minNumLi").hide();
  1421. $("#dwCommonDialog .maxNumLi").hide();
  1422. if(isRequired==1){
  1423. $("#dwCommonDialog input[name='setIsRequired']").prop("checked",true);
  1424. }
  1425. if(randOrder==1){
  1426. $("#dwCommonDialog input[name='setRandOrder']").prop("checked",true);
  1427. }
  1428. if(hv==3){
  1429. $("#dwCommonDialog .option_range_3").show();
  1430. }else{
  1431. $("#dwCommonDialog .option_range_3").hide();
  1432. }
  1433. $("#dwCommonDialog select[name='setHv']").val(hv);
  1434. $("#dwCommonDialog input[name='setCellCount']").val(cellCount);
  1435. //单选,多选 才启用选项随机排列
  1436. if(quType==="RADIO" || quType==="CHECKBOX"){
  1437. $("#dwCommonDialog .optionRangeHv").show();
  1438. }else if(quType==="ORDERQU"){
  1439. }else if(quType==="SCORE"){
  1440. $("#dwCommonDialog .scoreMinMax").show();
  1441. if(paramInt02[0]){
  1442. $("#dwCommonDialog .scoreMinMax .maxScore").val(paramInt02.val());
  1443. }
  1444. }else if(quType==="MULTIFILLBLANK"){
  1445. $("#dwCommonDialog .minMaxLi").show();
  1446. $("#dwCommonDialog .minMaxLi .minSpan .lgleftLabel").text("最少回答");
  1447. $("#dwCommonDialog .minMaxLi .maxSpan").hide();
  1448. $("#dwCommonDialog .minMaxLi .lgRightLabel").text("项");
  1449. if(paramInt01[0]){
  1450. $("#dwCommonDialog .minMaxLi .minNum").val(paramInt01.val());
  1451. }
  1452. }
  1453. $("#dwCommonDialog .fileTypeExtsLi").hide();
  1454. //单选,多选,填空题情况下才启用关联到联系设置项
  1455. if((quType=="RADIO" || quType=="CHECKBOX" || quType=="FILLBLANK")){
  1456. if( contactsAttr==1){
  1457. $("#dwCommonDialog input[name='setAutoContacts']").prop("checked",true);
  1458. $("#dwCommonDialog .contactsFieldLi").show();
  1459. $("#dwCommonDialog select[name='setContactsField']").val(contactsField);
  1460. }
  1461. if(quType == "CHECKBOX"){
  1462. $("#dwCommonDialog .minNumLi").show();
  1463. $("#dwCommonDialog .maxNumLi").show();
  1464. $("#dwCommonDialog .minNumLi input[name='minNum']").val(paramInt01.val());
  1465. $("#dwCommonDialog .maxNumLi input[name='maxNum']").val(paramInt02.val());
  1466. }
  1467. } else if(quType==="UPLOADFILE"){
  1468. // fileTypeExtsLi
  1469. if(paramInt01[0]){
  1470. $("#dwCommonDialog .fileTypeExts").val(paramInt01.val());
  1471. $("#dwCommonDialog .maxSize").val(paramInt02.val());
  1472. $("#dwCommonDialog .uploadNum").val(randOrder);
  1473. }
  1474. $("#dwCommonDialog .fileTypeExtsLi").show();
  1475. $("#dwCommonDialog .minMaxNumLi").hide();
  1476. }
  1477. }else if(thObjClass.indexOf("dwQuLogic")>=0){
  1478. $("#dwCommonDialog .dwQuDialogLoad").show();
  1479. }else if(thObjClass.indexOf("dwFbMenuBtn")>=0){
  1480. $("#dwCommonDialog .dwQuFillDataTypeOption").show();
  1481. var checkType_val=quItemBody.find("input[name='checkType']").val();
  1482. if(checkType_val==""){
  1483. checkType_val="NO";
  1484. }
  1485. var checkType=$("#dwCommonDialog select[name='quFill_checkType']");
  1486. checkType.val(checkType_val);
  1487. }else if(thObjClass.indexOf("quCoOptionEdit")>=0){
  1488. $("#dwCommonDialog .dwQuRadioCheckboxOption").show();
  1489. var quOption_isNote=$("#dwCommonDialog input[name='quOption_isNote']");
  1490. var quOption_checkType=$("#dwCommonDialog select[name='quOption_checkType']");
  1491. var quOption_isRequiredFill=$("#dwCommonDialog input[name='quOption_isRequiredFill']");
  1492. var quOptionParent=$(thDialogObj).parent();
  1493. var isNote_val=quOptionParent.find("input[name='isNote']").val();
  1494. var checkType_val=quOptionParent.find("input[name='checkType']").val();
  1495. var isRequiredFill_val=quOptionParent.find("input[name='isRequiredFill']").val();
  1496. if(isNote_val=="1"){
  1497. quOption_isNote.prop("checked",true);
  1498. $(".quOptionFillContentLi,.quOptionFillRequiredLi").show();
  1499. }else{
  1500. quOption_isNote.prop("checked",false);
  1501. $(".quOptionFillContentLi,.quOptionFillRequiredLi").hide();
  1502. }
  1503. if(checkType_val==""){
  1504. checkType_val="NO";
  1505. }
  1506. quOption_checkType.val(checkType_val);
  1507. if(isRequiredFill_val=="1"){
  1508. quOption_isRequiredFill.prop("checked",true);
  1509. }else{
  1510. quOption_isRequiredFill.prop("checked",false);
  1511. }
  1512. }else{
  1513. //暂时加的
  1514. $("#dwCommonDialog .dwQuAddMore").show();
  1515. }
  1516. dwDialogObj=thDialogObj;
  1517. }
  1518. function dwCommonDialogHide(){
  1519. $("#dwCommonDialog").hide();
  1520. $(".menuBtnClick").removeClass("menuBtnClick");
  1521. dwDialogObj=null;
  1522. }
  1523. function resetQuItemHover(quItemBody){
  1524. $(".surveyQuItemBody").removeClass("hover");
  1525. $(".surveyQuItemBody").find("input[name='hoverTag']").val("0");
  1526. if(quItemBody!=null){
  1527. quItemBody.addClass("hover");
  1528. quItemBody.find("input[name='hoverTag']").val("hover");
  1529. }
  1530. }
  1531. function setSaveTag0(){
  1532. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1533. quItemBody.find("input[name='saveTag']").val(0);
  1534. var thClass=$(curEditObj).attr("class");
  1535. if(thClass.indexOf("quCoTitleEdit")>0){
  1536. //题目标题
  1537. $(curEditObj).parent().find("input[name='quTitleSaveTag']").val(0);
  1538. }else if(thClass.indexOf("quCoOptionEdit")>0){
  1539. //题目选项
  1540. $(curEditObj).parent().find("input[name='quItemSaveTag']").val(0);
  1541. }else if(thClass.indexOf("dwSvyNoteEdit")>=0){
  1542. //问卷欢迎语
  1543. $("input[name='svyNoteSaveTag']").val(0);
  1544. }else if(thClass.indexOf("dwSvyName")>=0){
  1545. $("input[name='svyNmSaveTag']").val(0);
  1546. }
  1547. }
  1548. //触发显示编辑框
  1549. function editAble(editAbleObj){
  1550. dwCommonDialogHide();
  1551. curEditCallback();
  1552. var quItemBody=$(editAbleObj).parents(".surveyQuItemBody");
  1553. resetQuItemHover(quItemBody);
  1554. var thClass=$(editAbleObj).attr("class");
  1555. var editOffset=$(editAbleObj).offset();
  1556. $("#dwCommonEditRoot").removeClass();
  1557. if(thClass.indexOf("quCoTitleEdit")>0){
  1558. //题目标题
  1559. $("#dwCommonEditRoot").addClass("quEdit");
  1560. }else if(thClass.indexOf("quCoOptionEdit")>0){
  1561. //题目选项
  1562. $("#dwCommonEditRoot").addClass("quOptionEdit");
  1563. }else if(thClass.indexOf("dwSvyNoteEdit")>=0){
  1564. //问卷欢迎语
  1565. $("#dwCommonEditRoot").addClass("svyNoteEdit");
  1566. }else if(thClass.indexOf("dwSvyName")>=0){
  1567. $("#dwCommonEditRoot").addClass("svyName");
  1568. }
  1569. $("#dwCommonEditRoot").show();
  1570. $("#dwCommonEditRoot").offset({top:editOffset.top,left:editOffset.left});
  1571. $("#dwComEditContent").focus();
  1572. $("#dwComEditContent").html($(editAbleObj).html());
  1573. var dwEditWidth=$(editAbleObj).width();
  1574. //dwEditWidth<200?dwEditWidth=200:dwEditWidth;
  1575. if(thClass.indexOf("dwSvyNoteEdit")<0 && thClass.indexOf("dwSvyName")<0){
  1576. var hv=quItemBody.find("input[name='hv']").val();
  1577. if(hv==3){
  1578. var dwEditText=$(editAbleObj).text();
  1579. if(dwEditText==""){
  1580. dwEditWidth=$(editAbleObj).parents("td").width()-52;
  1581. }
  1582. dwEditWidth>600?dwEditWidth=600:dwEditWidth;
  1583. }else{
  1584. dwEditWidth<200?dwEditWidth=200:dwEditWidth>600?dwEditWidth=600:dwEditWidth;
  1585. }
  1586. }else{
  1587. dwEditWidth=680;
  1588. }
  1589. $("#dwCommonEditRoot .dwCommonEdit").css("width",dwEditWidth);
  1590. setSelectText($("#dwComEditContent"));
  1591. curEditObj=$(editAbleObj);
  1592. curEditObjOldHtml=$(editAbleObj).html();
  1593. }
  1594. function resizeWrapSize(){
  1595. if(browseWidth<950){
  1596. $("#wrap").width(950);
  1597. $("#tools_wrap").width(950);
  1598. }else{
  1599. $("#wrap").width("100%");
  1600. $("#tools_wrap").width("100%");
  1601. }
  1602. if(browseWidth<780){
  1603. $("#dw_body_content").offset({left:0});
  1604. }else{
  1605. var leftOffset=(browseWidth-780)/2;
  1606. $("#dw_body_content").offset({left:leftOffset});
  1607. }
  1608. }
  1609. function saveQus(quItemBody,callback){
  1610. if(quItemBody[0]){
  1611. var quTypeObj = quItemBody.find("input[name='quType']");
  1612. if(quTypeObj[0]){
  1613. var quType=quTypeObj.val();
  1614. if(quType=="RADIO"){
  1615. saveRadio(quItemBody,callback);
  1616. }else if(quType=="CHECKBOX"){
  1617. saveCheckbox(quItemBody, callback);
  1618. }else if(quType=="FILLBLANK"){
  1619. saveFillblank(quItemBody, callback);
  1620. }else if(quType=="ORDERQU"){
  1621. saveOrderqu(quItemBody, callback);
  1622. }else if(quType=="PAGETAG"){
  1623. savePagetag(quItemBody, callback);
  1624. }else if(quType=="PARAGRAPH"){
  1625. saveParagraph(quItemBody, callback);
  1626. }else if(quType=="MULTIFILLBLANK"){
  1627. saveMultiFillblank(quItemBody, callback);
  1628. }else if(quType=="SCORE"){
  1629. saveScore(quItemBody, callback);
  1630. }else if(quType == "UPLOADFILE"){
  1631. saveUploadFile(quItemBody, callback);
  1632. }else{
  1633. callback();
  1634. }
  1635. }else{
  1636. callback();
  1637. }
  1638. }else{
  1639. callback();
  1640. }
  1641. }
  1642. //*****单选题****//
  1643. /**
  1644. ** 新保存单选题
  1645. **/
  1646. function saveRadio(quItemBody,callback){
  1647. var saveTag=quItemBody.find("input[name='saveTag']").val();
  1648. if(saveTag==0){
  1649. var url=ctx+"/design/qu-radio/ajaxSave.do";
  1650. var quType=quItemBody.find("input[name='quType']").val();
  1651. var quId=quItemBody.find("input[name='quId']").val();
  1652. var orderById=quItemBody.find("input[name='orderById']").val();
  1653. var isRequired=quItemBody.find("input[name='isRequired']").val();
  1654. var hv=quItemBody.find("input[name='hv']").val();
  1655. var randOrder=quItemBody.find("input[name='randOrder']").val();
  1656. var cellCount=quItemBody.find("input[name='cellCount']").val();
  1657. var contactsAttr=quItemBody.find("input[name='contactsAttr']").val();
  1658. var contactsField=quItemBody.find("input[name='contactsField']").val();
  1659. var data="belongId="+questionBelongId+"&orderById="+orderById+"&tag="+svTag+"&quType="+quType+"&quId="+quId;
  1660. data+="&isRequired="+isRequired+"&hv="+hv+"&randOrder="+randOrder+"&cellCount="+cellCount;
  1661. data+="&contactsAttr="+contactsAttr+"&contactsField="+contactsField;
  1662. var quTitleSaveTag=quItemBody.find("input[name='quTitleSaveTag']").val();
  1663. if(quTitleSaveTag==0){
  1664. var quTitle=quItemBody.find(".quCoTitleEdit").html();
  1665. quTitle=escape(encodeURIComponent(quTitle));
  1666. data+="&quTitle="+quTitle;
  1667. }
  1668. var quItemOptions=null;
  1669. if(hv==3){
  1670. //还有是table的情况需要处理
  1671. quItemOptions=quItemBody.find(".quCoItem table.tableQuColItem tr td");
  1672. }else{
  1673. quItemOptions=quItemBody.find(".quCoItem li.quCoItemUlLi");
  1674. }
  1675. $.each(quItemOptions,function(i){
  1676. var optionValue=$(this).find("label.quCoOptionEdit").html();
  1677. var optionId=$(this).find(".quItemInputCase input[name='quItemId']").val();
  1678. var quItemSaveTag=$(this).find(".quItemInputCase input[name='quItemSaveTag']").val();
  1679. var isNote=$(this).find(".quItemInputCase input[name='isNote']").val();
  1680. var checkType=$(this).find(".quItemInputCase input[name='checkType']").val();
  1681. var isRequiredFill=$(this).find(".quItemInputCase input[name='isRequiredFill']").val();
  1682. if(quItemSaveTag==0){
  1683. optionValue=escape(encodeURIComponent(optionValue));
  1684. data+="&optionValue_"+i+"="+optionValue;
  1685. data+="&optionId_"+i+"="+optionId;
  1686. data+="&isNote_"+i+"="+isNote;
  1687. data+="&checkType_"+i+"="+checkType;
  1688. data+="&isRequiredFill_"+i+"="+isRequiredFill;
  1689. }
  1690. //更新 字母 title标记到选项上.
  1691. $(this).addClass("quOption_"+i);
  1692. });
  1693. //逻辑选项
  1694. var quLogicItems=quItemBody.find(".quLogicItem");
  1695. $.each(quLogicItems,function(i){
  1696. var thClass=$(this).attr("class");
  1697. thClass=thClass.replace("quLogicItem quLogicItem_","");
  1698. var quLogicId=$(this).find("input[name='quLogicId']").val();
  1699. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  1700. var skQuId=$(this).find("input[name='skQuId']").val();
  1701. var logicSaveTag=$(this).find("input[name='logicSaveTag']").val();
  1702. var visibility=$(this).find("input[name='visibility']").val();
  1703. var logicType=$(this).find("input[name='logicType']").val();
  1704. var itemIndex=thClass;
  1705. if(logicSaveTag==0){
  1706. data+="&quLogicId_"+itemIndex+"="+quLogicId;
  1707. data+="&cgQuItemId_"+itemIndex+"="+cgQuItemId;
  1708. data+="&skQuId_"+itemIndex+"="+skQuId;
  1709. data+="&visibility_"+itemIndex+"="+visibility;
  1710. data+="&logicType_"+itemIndex+"="+logicType;
  1711. }
  1712. });
  1713. $.ajax({
  1714. url:url,
  1715. data:data,
  1716. type:'post',
  1717. success:function(msg){
  1718. //alert(msg);// resultJson quItemId
  1719. if(msg!="error"){
  1720. var jsons=eval("("+msg+")");
  1721. //alert(jsons);
  1722. var quId=jsons.id;
  1723. quItemBody.find("input[name='quId']").val(quId);
  1724. var quItems=jsons.quItems;
  1725. $.each(quItems,function(i,item){
  1726. var quItemOption=quItemBody.find(".quOption_"+item.title);
  1727. quItemOption.find("input[name='quItemId']").val(item.id);
  1728. quItemOption.find(".quItemInputCase input[name='quItemSaveTag']").val(1);
  1729. });
  1730. //同步logic Id信息
  1731. var quLogics=jsons.quLogics;
  1732. $.each(quLogics,function(i,item){
  1733. var logicItem=quItemBody.find(".quLogicItem_"+item.title);
  1734. logicItem.find("input[name='quLogicId']").val(item.id);
  1735. logicItem.find("input[name='logicSaveTag']").val(1);
  1736. });
  1737. quItemBody.find("input[name='saveTag']").val(1);
  1738. quItemBody.find(".quCoTitle input[name='quTitleSaveTag']").val(1);
  1739. //执行保存下一题
  1740. saveQus(quItemBody.next(),callback);
  1741. //同步-更新题目排序号
  1742. quCBNum2++;
  1743. exeQuCBNum();
  1744. }
  1745. }
  1746. });
  1747. }else{
  1748. saveQus(quItemBody.next(),callback);
  1749. }
  1750. }
  1751. /** 添加选项 **/
  1752. /** 添加单选选项 **/
  1753. function addRadioItem(quItemBody,itemText){
  1754. //得判断是否是table类型
  1755. var hv=quItemBody.find("input[name='hv']").val();
  1756. var cellCount=quItemBody.find("input[name='cellCount']").val();
  1757. var newEditObj=null;
  1758. if(hv==3){
  1759. //表格处理
  1760. var quRadioItemHtml=$("#quRadioItem").html();
  1761. //var quCoItemUl=quItemBody.find(".quCoItem table");
  1762. var quTableObj=quItemBody.find(".quCoItem table.tableQuColItem");
  1763. var emptyTdDiv=quTableObj.find("div.emptyTd");
  1764. if(emptyTdDiv[0]){
  1765. //表示有空位
  1766. var emptyTd=emptyTdDiv.first().parents("td");
  1767. emptyTd.empty();
  1768. emptyTd.append(quRadioItemHtml);
  1769. }else{
  1770. //木有空位,根据cellCount生成新的tr,td
  1771. var appendTr="<tr>";
  1772. for(var i=0;i<cellCount;i++){
  1773. appendTr+="<td>";
  1774. if(i==0){
  1775. appendTr+=quRadioItemHtml;
  1776. }else{
  1777. appendTr+="<div class='emptyTd'></div>";
  1778. }
  1779. appendTr+="</td>";
  1780. }
  1781. appendTr+="</tr>";
  1782. quTableObj.append(appendTr);
  1783. }
  1784. var tdWidth=parseInt(600/cellCount);
  1785. var tdLabelWidth=tdWidth-10;
  1786. quItemBody.find(".quCoItem .tableQuColItem tr td").width(tdWidth);
  1787. quItemBody.find(".quCoItem .tableQuColItem tr td label").width(tdLabelWidth);
  1788. newEditObj=quItemBody.find(".quCoItem table").find(".editAble").last();
  1789. }else{
  1790. //ul li处理
  1791. var quRadioItemHtml=$("#quRadioItem").html();
  1792. var quCoItemUl=quItemBody.find(".quCoItem ul");
  1793. quCoItemUl.append("<li class='quCoItemUlLi'>"+quRadioItemHtml+"</li>");
  1794. quItemBody.find("input[name='saveTag']").val(0);
  1795. newEditObj=quCoItemUl.find("li:last .editAble");
  1796. }
  1797. newEditObj.text(itemText);
  1798. if(itemText==""){
  1799. newEditObj.css("display","inline");
  1800. }
  1801. return newEditObj;
  1802. }
  1803. /** 删除单选题选项 **/
  1804. function deleteRadioOption(){
  1805. //判断是否是table类型
  1806. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  1807. var hv=quItemBody.find("input[name='hv']").val();
  1808. var optionParent=null;
  1809. if(hv==3){
  1810. optionParent=$(curEditObj).parents("td");
  1811. }else{
  1812. optionParent=$(curEditObj).parents("li.quCoItemUlLi");
  1813. }
  1814. var quOptionId=$(optionParent).find("input[name='quItemId']").val();
  1815. if(quOptionId!="" && quOptionId!="0" ){
  1816. var url=ctx+"/design/qu-radio/ajaxDelete.do";
  1817. var data="quItemId="+quOptionId;
  1818. $.ajax({
  1819. url:url,
  1820. data:data,
  1821. type:"post",
  1822. success:function(msg){
  1823. if(msg=="true"){
  1824. delQuOptionCallBack(optionParent);
  1825. }
  1826. }
  1827. });
  1828. }else{
  1829. delQuOptionCallBack(optionParent);
  1830. }
  1831. }
  1832. //*******多选题*******//
  1833. /**
  1834. ** 新保存多选题
  1835. **/
  1836. function saveCheckbox(quItemBody,callback){
  1837. var saveTag=quItemBody.find("input[name='saveTag']").val();
  1838. if(saveTag==0){
  1839. var url=ctx+"/design/qu-checkbox/ajaxSave.do";
  1840. var quType=quItemBody.find("input[name='quType']").val();
  1841. var quId=quItemBody.find("input[name='quId']").val();
  1842. var orderById=quItemBody.find("input[name='orderById']").val();;
  1843. var isRequired=quItemBody.find("input[name='isRequired']").val();
  1844. var hv=quItemBody.find("input[name='hv']").val();
  1845. var randOrder=quItemBody.find("input[name='randOrder']").val();
  1846. var cellCount=quItemBody.find("input[name='cellCount']").val();
  1847. var contactsAttr=quItemBody.find("input[name='contactsAttr']").val();
  1848. var contactsField=quItemBody.find("input[name='contactsField']").val();
  1849. var paramInt01=quItemBody.find("input[name='paramInt01']").val();
  1850. var paramInt02=quItemBody.find("input[name='paramInt02']").val();
  1851. var data="belongId="+questionBelongId+"&orderById="+orderById+"&tag="+svTag+"&quType="+quType+"&quId="+quId;
  1852. data+="&isRequired="+isRequired+"&hv="+hv+"&randOrder="+randOrder+"&cellCount="+cellCount;
  1853. data+="&contactsAttr="+contactsAttr+"&contactsField="+contactsField;
  1854. data+="&paramInt01="+paramInt01+"&paramInt02="+paramInt02;
  1855. var quTitleSaveTag=quItemBody.find("input[name='quTitleSaveTag']").val();
  1856. if(quTitleSaveTag==0){
  1857. var quTitle=quItemBody.find(".quCoTitleEdit").html();
  1858. quTitle=escape(encodeURIComponent(quTitle));
  1859. data+="&quTitle="+quTitle;
  1860. }
  1861. var quItemOptions=null;
  1862. if(hv==3){
  1863. //还有是table的情况需要处理
  1864. quItemOptions=quItemBody.find(".quCoItem table.tableQuColItem tr td");
  1865. }else{
  1866. quItemOptions=quItemBody.find(".quCoItem li.quCoItemUlLi");
  1867. }
  1868. $.each(quItemOptions,function(i){
  1869. var optionValue=$(this).find("label.quCoOptionEdit").html();
  1870. var optionId=$(this).find(".quItemInputCase input[name='quItemId']").val();
  1871. var quItemSaveTag=$(this).find(".quItemInputCase input[name='quItemSaveTag']").val();
  1872. var isNote=$(this).find(".quItemInputCase input[name='isNote']").val();
  1873. var checkType=$(this).find(".quItemInputCase input[name='checkType']").val();
  1874. var isRequiredFill=$(this).find(".quItemInputCase input[name='isRequiredFill']").val();
  1875. if(quItemSaveTag==0){
  1876. optionValue=escape(encodeURIComponent(optionValue));
  1877. data+="&optionValue_"+i+"="+optionValue;
  1878. data+="&optionId_"+i+"="+optionId;
  1879. data+="&isNote_"+i+"="+isNote;
  1880. data+="&checkType_"+i+"="+checkType;
  1881. data+="&isRequiredFill_"+i+"="+isRequiredFill;
  1882. }
  1883. //更新 字母 title标记到选项上.
  1884. $(this).addClass("quOption_"+i);
  1885. });
  1886. //逻辑选项
  1887. var quLogicItems=quItemBody.find(".quLogicItem");
  1888. $.each(quLogicItems,function(i){
  1889. var thClass=$(this).attr("class");
  1890. thClass=thClass.replace("quLogicItem quLogicItem_","");
  1891. var quLogicId=$(this).find("input[name='quLogicId']").val();
  1892. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  1893. var skQuId=$(this).find("input[name='skQuId']").val();
  1894. var logicSaveTag=$(this).find("input[name='logicSaveTag']").val();
  1895. var visibility=$(this).find("input[name='visibility']").val();
  1896. var logicType=$(this).find("input[name='logicType']").val();
  1897. var itemIndex=thClass;
  1898. if(logicSaveTag==0){
  1899. data+="&quLogicId_"+itemIndex+"="+quLogicId;
  1900. data+="&cgQuItemId_"+itemIndex+"="+cgQuItemId;
  1901. data+="&skQuId_"+itemIndex+"="+skQuId;
  1902. data+="&visibility_"+itemIndex+"="+visibility;
  1903. data+="&logicType_"+itemIndex+"="+logicType;
  1904. }
  1905. });
  1906. $.ajax({
  1907. url:url,
  1908. data:data,
  1909. type:'post',
  1910. success:function(msg){
  1911. //alert(msg);// resultJson quItemId
  1912. if(msg!="error"){
  1913. var jsons=eval("("+msg+")");
  1914. //alert(jsons);
  1915. var quId=jsons.id;
  1916. quItemBody.find("input[name='quId']").val(quId);
  1917. var quItems=jsons.quItems;
  1918. $.each(quItems,function(i,item){
  1919. var quItemOption=quItemBody.find(".quOption_"+item.title);
  1920. quItemOption.find("input[name='quItemId']").val(item.id);
  1921. quItemOption.find(".quItemInputCase input[name='quItemSaveTag']").val(1);
  1922. });
  1923. //同步logic Id信息
  1924. var quLogics=jsons.quLogics;
  1925. $.each(quLogics,function(i,item){
  1926. var logicItem=quItemBody.find(".quLogicItem_"+item.title);
  1927. logicItem.find("input[name='quLogicId']").val(item.id);
  1928. logicItem.find("input[name='logicSaveTag']").val(1);
  1929. });
  1930. quItemBody.find("input[name='saveTag']").val(1);
  1931. quItemBody.find(".quCoTitle input[name='quTitleSaveTag']").val(1);
  1932. //执行保存下一题
  1933. saveQus(quItemBody.next(),callback);
  1934. //同步-更新题目排序号
  1935. quCBNum2++;
  1936. exeQuCBNum();
  1937. }
  1938. }
  1939. });
  1940. }else{
  1941. saveQus(quItemBody.next(),callback);
  1942. }
  1943. }
  1944. /** 添加选项 **/
  1945. /** 添加多选选项 **/
  1946. function addCheckboxItem(quItemBody,itemText){
  1947. //得判断是否是table类型
  1948. var hv=quItemBody.find("input[name='hv']").val();
  1949. var cellCount=quItemBody.find("input[name='cellCount']").val();
  1950. var newEditObj=null;
  1951. if(hv==3){
  1952. //表格处理
  1953. var quRadioItemHtml=$("#quCheckboxItem").html();
  1954. //var quCoItemUl=quItemBody.find(".quCoItem table");
  1955. var quTableObj=quItemBody.find(".quCoItem table.tableQuColItem");
  1956. var emptyTdDiv=quTableObj.find("div.emptyTd");
  1957. if(emptyTdDiv[0]){
  1958. //表示有空位
  1959. var emptyTd=emptyTdDiv.first().parents("td");
  1960. emptyTd.empty();
  1961. emptyTd.append(quRadioItemHtml);
  1962. }else{
  1963. //木有空位,根据cellCount生成新的tr,td
  1964. var appendTr="<tr>";
  1965. for(var i=0;i<cellCount;i++){
  1966. appendTr+="<td>";
  1967. if(i==0){
  1968. appendTr+=quRadioItemHtml;
  1969. }else{
  1970. appendTr+="<div class='emptyTd'></div>";
  1971. }
  1972. appendTr+="</td>";
  1973. }
  1974. appendTr+="</tr>";
  1975. quTableObj.append(appendTr);
  1976. }
  1977. var tdWidth=parseInt(600/cellCount);
  1978. var tdLabelWidth=tdWidth-10;
  1979. quItemBody.find(".quCoItem .tableQuColItem tr td").width(tdWidth);
  1980. quItemBody.find(".quCoItem .tableQuColItem tr td label").width(tdLabelWidth);
  1981. newEditObj=quItemBody.find(".quCoItem table").find(".editAble").last();
  1982. //itemText="fsdfsdf";
  1983. }else{
  1984. //ul li处理
  1985. var quRadioItemHtml=$("#quCheckboxItem").html();
  1986. var quCoItemUl=quItemBody.find(".quCoItem ul");
  1987. quCoItemUl.append("<li class='quCoItemUlLi'>"+quRadioItemHtml+"</li>");
  1988. quItemBody.find("input[name='saveTag']").val(0);
  1989. newEditObj=quCoItemUl.find("li:last .editAble");
  1990. }
  1991. newEditObj.text(itemText);
  1992. if(itemText==""){
  1993. newEditObj.css("display","inline");
  1994. }
  1995. return newEditObj;
  1996. }
  1997. /** 删除多选题选项 **/
  1998. function deleteCheckboxOption(){
  1999. //判断是否是table类型
  2000. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  2001. var hv=quItemBody.find("input[name='hv']").val();
  2002. var optionParent=null;
  2003. if(hv==3){
  2004. optionParent=$(curEditObj).parents("td");
  2005. }else{
  2006. optionParent=$(curEditObj).parents("li.quCoItemUlLi");
  2007. }
  2008. var quOptionId=$(optionParent).find("input[name='quItemId']").val();
  2009. if(quOptionId!="" && quOptionId!="0" ){
  2010. var url=ctx+"/design/qu-checkbox/ajaxDelete.do";
  2011. var data="quItemId="+quOptionId;
  2012. $.ajax({
  2013. url:url,
  2014. data:data,
  2015. type:"post",
  2016. success:function(msg){
  2017. if(msg=="true"){
  2018. delQuOptionCallBack(optionParent);
  2019. }
  2020. }
  2021. });
  2022. }else{
  2023. delQuOptionCallBack(optionParent);
  2024. }
  2025. }
  2026. function delQuOptionCallBack(optionParent){
  2027. var quItemBody=$(optionParent).parents(".surveyQuItemBody");
  2028. var quType=quItemBody.find("input[name='quType']").val();
  2029. if(quType=="CHECKBOX" || quType=="RADIO"){
  2030. var hv=quItemBody.find("input[name='hv']").val();
  2031. if(hv==3){
  2032. //emptyTd
  2033. var optionTr=$(optionParent).parents("tr");
  2034. var optionNextTr=optionTr.next();
  2035. if(optionNextTr[0]){
  2036. //则后面还有是中间选项,则删除,再依次后面的td往前移动
  2037. $(optionParent).remove();
  2038. moveTabelTd(optionNextTr);
  2039. }else{
  2040. //非中间选项,删除-再添加一个空td
  2041. $(optionParent).remove();
  2042. movePareseLastTr(optionTr);
  2043. }
  2044. }else{
  2045. optionParent.remove();
  2046. }
  2047. }else if(quType=="CHENRADIO" || quType=="CHENCHECKBOX" || quType=="CHENFBK" || quType=="CHENSCORE"){
  2048. //$(curEditObj).parents("td.quChenColumnTd");
  2049. var quCoChenTable=optionParent.parents("table.quCoChenTable");
  2050. var optionParentClass=optionParent.attr("class");
  2051. if(optionParentClass.indexOf("Column")>=0){
  2052. var removeTrs=quCoChenTable.find("tr:gt(0)");
  2053. $.each(removeTrs,function(){
  2054. $(this).find("td:last").remove();
  2055. });
  2056. optionParent.remove();
  2057. }else{
  2058. optionParent.parent().remove();
  2059. }
  2060. }else{
  2061. optionParent.remove();
  2062. }
  2063. dwCommonEditHide();
  2064. bindQuHoverItem();
  2065. }
  2066. function moveTabelTd(nextTr){
  2067. if(nextTr[0]){
  2068. var prevTr=nextTr.prev();
  2069. var nextTds=nextTr.find("td");
  2070. $(nextTds.get(0)).appendTo(prevTr);
  2071. //判断当前next是否是最后一个,是则:判断如果没有选项,则删除tr,如果有选项,则填一个空td
  2072. var nextNextTr=nextTr.next();
  2073. if(!nextNextTr[0]){
  2074. movePareseLastTr(nextTr);
  2075. }
  2076. moveTabelTd($(nextTr).next());
  2077. }
  2078. }
  2079. function movePareseLastTr(nextTr){
  2080. var editAbles=nextTr.find(".editAble");
  2081. if(editAbles[0]){
  2082. //有选项,则补充一个空td
  2083. var editAbleTd=editAbles.parents("td");
  2084. editAbleTd.clone().prependTo(nextTr);
  2085. nextTr.find("td").last().html("<div class='emptyTd'></div>");
  2086. }else{
  2087. nextTr.remove();
  2088. }
  2089. }
  2090. //*******填空题*******//
  2091. /**
  2092. ** 新保存填空题
  2093. **/
  2094. function saveFillblank(quItemBody,callback){
  2095. var saveTag=quItemBody.find("input[name='saveTag']").val();
  2096. if(saveTag==0){
  2097. var url=ctx+"/design/qu-fillblank/ajaxSave.do";
  2098. var quType=quItemBody.find("input[name='quType']").val();
  2099. var quId=quItemBody.find("input[name='quId']").val();
  2100. var orderById=quItemBody.find("input[name='orderById']").val();;
  2101. var isRequired=quItemBody.find("input[name='isRequired']").val();
  2102. var hv=quItemBody.find("input[name='hv']").val();
  2103. var randOrder=quItemBody.find("input[name='randOrder']").val();
  2104. var cellCount=quItemBody.find("input[name='cellCount']").val();
  2105. var answerInputWidth=quItemBody.find("input[name='answerInputWidth']").val();
  2106. var answerInputRow=quItemBody.find("input[name='answerInputRow']").val();
  2107. var contactsAttr=quItemBody.find("input[name='contactsAttr']").val();
  2108. var contactsField=quItemBody.find("input[name='contactsField']").val();
  2109. var checkType=quItemBody.find("input[name='checkType']").val();
  2110. var paramInt01=quItemBody.find("input[name='paramInt01']");
  2111. var data="belongId="+questionBelongId+"&orderById="+orderById+"&tag="+svTag+"&quType="+quType+"&quId="+quId;
  2112. data+="&isRequired="+isRequired+"&hv="+hv+"&randOrder="+randOrder+"&cellCount="+cellCount;
  2113. data+="&answerInputWidth="+answerInputWidth+"&answerInputRow="+answerInputRow;
  2114. data+="&contactsAttr="+contactsAttr+"&contactsField="+contactsField+"&checkType="+checkType;
  2115. if(paramInt01[0]){
  2116. data+="&paramInt01="+paramInt01.val();
  2117. }
  2118. var quTitleSaveTag=quItemBody.find("input[name='quTitleSaveTag']").val();
  2119. if(quTitleSaveTag==0){
  2120. var quTitle=quItemBody.find(".quCoTitleEdit").html();
  2121. quTitle=escape(encodeURIComponent(quTitle));
  2122. data+="&quTitle="+quTitle;
  2123. }
  2124. //逻辑选项
  2125. var quLogicItems=quItemBody.find(".quLogicItem");
  2126. $.each(quLogicItems,function(i){
  2127. var thClass=$(this).attr("class");
  2128. thClass=thClass.replace("quLogicItem quLogicItem_","");
  2129. var quLogicId=$(this).find("input[name='quLogicId']").val();
  2130. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  2131. var skQuId=$(this).find("input[name='skQuId']").val();
  2132. var logicSaveTag=$(this).find("input[name='logicSaveTag']").val();
  2133. var visibility=$(this).find("input[name='visibility']").val();
  2134. var logicType=$(this).find("input[name='logicType']").val();
  2135. var itemIndex=thClass;
  2136. if(logicSaveTag==0){
  2137. data+="&quLogicId_"+itemIndex+"="+quLogicId;
  2138. data+="&cgQuItemId_"+itemIndex+"="+cgQuItemId;
  2139. data+="&skQuId_"+itemIndex+"="+skQuId;
  2140. data+="&visibility_"+itemIndex+"="+visibility;
  2141. data+="&logicType_"+itemIndex+"="+logicType;
  2142. }
  2143. });
  2144. $.ajax({
  2145. url:url,
  2146. data:data,
  2147. type:'post',
  2148. success:function(msg){
  2149. //alert(msg);// resultJson quItemId
  2150. if(msg!="error"){
  2151. var jsons=eval("("+msg+")");
  2152. //alert(jsons);
  2153. var quId=jsons.id;
  2154. quItemBody.find("input[name='quId']").val(quId);
  2155. //同步logic Id信息
  2156. var quLogics=jsons.quLogics;
  2157. $.each(quLogics,function(i,item){
  2158. var logicItem=quItemBody.find(".quLogicItem_"+item.title);
  2159. logicItem.find("input[name='quLogicId']").val(item.id);
  2160. logicItem.find("input[name='logicSaveTag']").val(1);
  2161. });
  2162. quItemBody.find("input[name='saveTag']").val(1);
  2163. quItemBody.find(".quCoTitle input[name='quTitleSaveTag']").val(1);
  2164. //执行保存下一题
  2165. saveQus(quItemBody.next(),callback);
  2166. //同步-更新题目排序号
  2167. quCBNum2++;
  2168. exeQuCBNum();
  2169. }
  2170. }
  2171. });
  2172. }else{
  2173. saveQus(quItemBody.next(),callback);
  2174. }
  2175. }
  2176. //*****评分题****//
  2177. /**
  2178. ** 新保存评分题
  2179. **/
  2180. function saveScore(quItemBody,callback){
  2181. var saveTag=quItemBody.find("input[name='saveTag']").val();
  2182. if(saveTag==0){
  2183. var url=ctx+"/design/qu-score/ajaxSave.do";
  2184. var quType=quItemBody.find("input[name='quType']").val();
  2185. var quId=quItemBody.find("input[name='quId']").val();
  2186. var orderById=quItemBody.find("input[name='orderById']").val();
  2187. var isRequired=quItemBody.find("input[name='isRequired']").val();
  2188. var hv=quItemBody.find("input[name='hv']").val();
  2189. var randOrder=quItemBody.find("input[name='randOrder']").val();
  2190. var cellCount=quItemBody.find("input[name='cellCount']").val();
  2191. var paramInt01=quItemBody.find("input[name='paramInt01']").val();
  2192. var paramInt02=quItemBody.find("input[name='paramInt02']").val();
  2193. var data="belongId="+questionBelongId+"&orderById="+orderById+"&tag="+svTag+"&quType="+quType+"&quId="+quId;
  2194. data+="&isRequired="+isRequired+"&hv="+hv+"&randOrder="+randOrder+"&cellCount="+cellCount;
  2195. data+="&paramInt01="+paramInt01+"&paramInt02="+paramInt02;
  2196. var quTitleSaveTag=quItemBody.find("input[name='quTitleSaveTag']").val();
  2197. if(quTitleSaveTag==0){
  2198. var quTitle=quItemBody.find(".quCoTitleEdit").html();
  2199. quTitle=escape(encodeURIComponent(quTitle));
  2200. data+="&quTitle="+quTitle;
  2201. }
  2202. //评分题选项td
  2203. var quItemOptions=quItemBody.find(".quCoItem table.quCoItemTable tr td.quOptionEditTd");
  2204. $.each(quItemOptions,function(i){
  2205. var optionValue=$(this).find("label.quCoOptionEdit").html();
  2206. var optionId=$(this).find(".quItemInputCase input[name='quItemId']").val();
  2207. var quItemSaveTag=$(this).find(".quItemInputCase input[name='quItemSaveTag']").val();
  2208. if(quItemSaveTag==0){
  2209. optionValue=escape(encodeURIComponent(optionValue));
  2210. data+="&optionValue_"+i+"="+optionValue;
  2211. data+="&optionId_"+i+"="+optionId;
  2212. }
  2213. //更新 字母 title标记到选项上.
  2214. $(this).addClass("quOption_"+i);
  2215. });
  2216. //逻辑选项
  2217. var quLogicItems=quItemBody.find(".quLogicItem");
  2218. $.each(quLogicItems,function(i){
  2219. var thClass=$(this).attr("class");
  2220. thClass=thClass.replace("quLogicItem quLogicItem_","");
  2221. var quLogicId=$(this).find("input[name='quLogicId']").val();
  2222. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  2223. var skQuId=$(this).find("input[name='skQuId']").val();
  2224. var logicSaveTag=$(this).find("input[name='logicSaveTag']").val();
  2225. var visibility=$(this).find("input[name='visibility']").val();
  2226. var geLe=$(this).find("input[name='geLe']").val();
  2227. var scoreNum=$(this).find("input[name='scoreNum']").val();
  2228. var logicType=$(this).find("input[name='logicType']").val();
  2229. var itemIndex=thClass;
  2230. if(logicSaveTag==0){
  2231. data+="&quLogicId_"+itemIndex+"="+quLogicId;
  2232. data+="&cgQuItemId_"+itemIndex+"="+cgQuItemId;
  2233. data+="&skQuId_"+itemIndex+"="+skQuId;
  2234. data+="&visibility_"+itemIndex+"="+visibility;
  2235. data+="&geLe_"+itemIndex+"="+geLe;
  2236. data+="&scoreNum_"+itemIndex+"="+scoreNum;
  2237. data+="&logicType_"+itemIndex+"="+logicType;
  2238. }
  2239. });
  2240. $.ajax({
  2241. url:url,
  2242. data:data,
  2243. type:'post',
  2244. success:function(msg){
  2245. //alert(msg);// resultJson quItemId
  2246. if(msg!="error"){
  2247. var jsons=eval("("+msg+")");
  2248. //alert(jsons);
  2249. var quId=jsons.id;
  2250. quItemBody.find("input[name='quId']").val(quId);
  2251. var quItems=jsons.quItems;
  2252. $.each(quItems,function(i,item){
  2253. var quItemOption=quItemBody.find(".quOption_"+item.title);
  2254. quItemOption.find("input[name='quItemId']").val(item.id);
  2255. quItemOption.find(".quItemInputCase input[name='quItemSaveTag']").val(1);
  2256. });
  2257. //同步logic Id信息
  2258. var quLogics=jsons.quLogics;
  2259. $.each(quLogics,function(i,item){
  2260. var logicItem=quItemBody.find(".quLogicItem_"+item.title);
  2261. logicItem.find("input[name='quLogicId']").val(item.id);
  2262. logicItem.find("input[name='logicSaveTag']").val(1);
  2263. });
  2264. quItemBody.find("input[name='saveTag']").val(1);
  2265. quItemBody.find(".quCoTitle input[name='quTitleSaveTag']").val(1);
  2266. //执行保存下一题
  2267. saveQus(quItemBody.next(),callback);
  2268. //同步-更新题目排序号
  2269. quCBNum2++;
  2270. exeQuCBNum();
  2271. }
  2272. }
  2273. });
  2274. }else{
  2275. saveQus(quItemBody.next(),callback);
  2276. }
  2277. }
  2278. /** 添加选项 **/
  2279. /** 添加评分项 **/
  2280. function addScoreItem(quItemBody,itemText){
  2281. //得判断是否是table类型
  2282. var newEditObj=null;
  2283. //ul li处理
  2284. var quScoreItemHtml=$("#quScoreItemModel").html();
  2285. var quCoItemTable=quItemBody.find("table.quCoItemTable");
  2286. quCoItemTable.append("<tr class='quScoreOptionTr'>"+quScoreItemHtml+"</tr>");
  2287. quItemBody.find("input[name='saveTag']").val(0);
  2288. var scoreNumTableTr=quCoItemTable.find("tr.quScoreOptionTr:last .scoreNumTable tr");
  2289. var paramInt02=quItemBody.find("input[name='paramInt02']").val();
  2290. scoreNumTableTr.empty();
  2291. for(var i=1;i<=paramInt02;i++){
  2292. scoreNumTableTr.append("<td>"+i+"</td>");
  2293. }
  2294. quCoItemTable.find("tr.quScoreOptionTr:last input[name='quItemSaveTag']").val(0);
  2295. newEditObj=quCoItemTable.find("tr.quScoreOptionTr:last .editAble");
  2296. newEditObj.text(itemText);
  2297. if(itemText==""){
  2298. newEditObj.css("display","inline");
  2299. }
  2300. return newEditObj;
  2301. }
  2302. /** 删除评分Score选项 **/
  2303. function deleteScoreOption(){
  2304. var optionParent=null;
  2305. optionParent=$(curEditObj).parents("tr.quScoreOptionTr");
  2306. var quOptionId=$(optionParent).find("input[name='quItemId']").val();
  2307. if(quOptionId!="" && quOptionId!="0" ){
  2308. var url=ctx+"/design/qu-score/ajaxDelete.do";
  2309. var data="quItemId="+quOptionId;
  2310. $.ajax({
  2311. url:url,
  2312. data:data,
  2313. type:"post",
  2314. success:function(msg){
  2315. if(msg=="true"){
  2316. delQuOptionCallBack(optionParent);
  2317. }
  2318. }
  2319. });
  2320. }else{
  2321. delQuOptionCallBack(optionParent);
  2322. }
  2323. }
  2324. //*****排序题****//
  2325. /**
  2326. ** 新保存排序题
  2327. **/
  2328. function saveOrderqu(quItemBody,callback){
  2329. var saveTag=quItemBody.find("input[name='saveTag']").val();
  2330. if(saveTag==0){
  2331. var url=ctx+"/design/qu-orderqu/ajaxSave.do";
  2332. var quType=quItemBody.find("input[name='quType']").val();
  2333. var quId=quItemBody.find("input[name='quId']").val();
  2334. var orderById=quItemBody.find("input[name='orderById']").val();
  2335. var isRequired=quItemBody.find("input[name='isRequired']").val();
  2336. var hv=quItemBody.find("input[name='hv']").val();
  2337. var randOrder=quItemBody.find("input[name='randOrder']").val();
  2338. var cellCount=quItemBody.find("input[name='cellCount']").val();
  2339. var data="belongId="+questionBelongId+"&orderById="+orderById+"&tag="+svTag+"&quType="+quType+"&quId="+quId;
  2340. data+="&isRequired="+isRequired+"&hv="+hv+"&randOrder="+randOrder+"&cellCount="+cellCount;
  2341. var quTitleSaveTag=quItemBody.find("input[name='quTitleSaveTag']").val();
  2342. if(quTitleSaveTag==0){
  2343. var quTitle=quItemBody.find(".quCoTitleEdit").html();
  2344. quTitle=escape(encodeURIComponent(quTitle));
  2345. data+="&quTitle="+quTitle;
  2346. }
  2347. //评分题选项td
  2348. var quItemOptions=quItemBody.find(".quCoItem .quOrderByLeft li.quCoItemUlLi");
  2349. $.each(quItemOptions,function(i){
  2350. var optionValue=$(this).find("label.quCoOptionEdit").html();
  2351. var optionId=$(this).find(".quItemInputCase input[name='quItemId']").val();
  2352. var quItemSaveTag=$(this).find(".quItemInputCase input[name='quItemSaveTag']").val();
  2353. if(quItemSaveTag==0){
  2354. optionValue=escape(encodeURIComponent(optionValue));
  2355. data+="&optionValue_"+i+"="+optionValue;
  2356. data+="&optionId_"+i+"="+optionId;
  2357. }
  2358. //更新 字母 title标记到选项上.
  2359. $(this).addClass("quOption_"+i);
  2360. });
  2361. //逻辑选项
  2362. var quLogicItems=quItemBody.find(".quLogicItem");
  2363. $.each(quLogicItems,function(i){
  2364. var thClass=$(this).attr("class");
  2365. thClass=thClass.replace("quLogicItem quLogicItem_","");
  2366. var quLogicId=$(this).find("input[name='quLogicId']").val();
  2367. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  2368. var skQuId=$(this).find("input[name='skQuId']").val();
  2369. var logicSaveTag=$(this).find("input[name='logicSaveTag']").val();
  2370. var visibility=$(this).find("input[name='visibility']").val();
  2371. var logicType=$(this).find("input[name='logicType']").val();
  2372. var itemIndex=thClass;
  2373. if(logicSaveTag==0){
  2374. data+="&quLogicId_"+itemIndex+"="+quLogicId;
  2375. data+="&cgQuItemId_"+itemIndex+"="+cgQuItemId;
  2376. data+="&skQuId_"+itemIndex+"="+skQuId;
  2377. data+="&visibility_"+itemIndex+"="+visibility;
  2378. data+="&logicType_"+itemIndex+"="+logicType;
  2379. }
  2380. });
  2381. $.ajax({
  2382. url:url,
  2383. data:data,
  2384. type:'post',
  2385. success:function(msg){
  2386. //alert(msg);// resultJson quItemId
  2387. if(msg!="error"){
  2388. var jsons=eval("("+msg+")");
  2389. //alert(jsons);
  2390. var quId=jsons.id;
  2391. quItemBody.find("input[name='quId']").val(quId);
  2392. var quItems=jsons.quItems;
  2393. $.each(quItems,function(i,item){
  2394. var quItemOption=quItemBody.find(".quOption_"+item.title);
  2395. quItemOption.find("input[name='quItemId']").val(item.id);
  2396. quItemOption.find(".quItemInputCase input[name='quItemSaveTag']").val(1);
  2397. });
  2398. //同步logic Id信息
  2399. var quLogics=jsons.quLogics;
  2400. $.each(quLogics,function(i,item){
  2401. var logicItem=quItemBody.find(".quLogicItem_"+item.title);
  2402. logicItem.find("input[name='quLogicId']").val(item.id);
  2403. logicItem.find("input[name='logicSaveTag']").val(1);
  2404. });
  2405. quItemBody.find("input[name='saveTag']").val(1);
  2406. quItemBody.find(".quCoTitle input[name='quTitleSaveTag']").val(1);
  2407. //执行保存下一题
  2408. saveQus(quItemBody.next(),callback);
  2409. //同步-更新题目排序号
  2410. quCBNum2++;
  2411. exeQuCBNum();
  2412. }
  2413. }
  2414. });
  2415. }else{
  2416. saveQus(quItemBody.next(),callback);
  2417. }
  2418. }
  2419. /** 添加选项 **/
  2420. /** 添加排序项 **/
  2421. function addOrderquItem(quItemBody,itemText){
  2422. //得判断是否是table类型
  2423. var newEditObj=null;
  2424. //ul li处理 <li class="quCoItemUlLi">
  2425. var quOrderItemLeftHtml=$("#quOrderItemLeftModel").html();
  2426. var quOrderItemRightHtml=$("#quOrderItemRightModel").html();
  2427. var quOrderItemLeftUl=quItemBody.find(".quOrderByLeft ul");
  2428. var quOrderByRightTable=quItemBody.find(".quOrderByRight table.quOrderByTable");
  2429. quOrderItemLeftUl.append("<li class='quCoItemUlLi'>"+quOrderItemLeftHtml+"</li>");
  2430. quOrderByRightTable.append("<tr>"+quOrderItemRightHtml+"</tr>");
  2431. quItemBody.find("input[name='saveTag']").val(0);
  2432. newEditObj=quOrderItemLeftUl.find("li:last .editAble");
  2433. newEditObj.text(itemText);
  2434. if(itemText==""){
  2435. newEditObj.css("display","inline");
  2436. }
  2437. //quOrderyTableTd
  2438. refquOrderTableTdNum(quOrderByRightTable);
  2439. return newEditObj;
  2440. }
  2441. function refquOrderTableTdNum(quOrderByRightTable){
  2442. var quOrderyTableTds=quOrderByRightTable.find(".quOrderyTableTd");
  2443. $.each(quOrderyTableTds,function(i){
  2444. $(this).text(i+1);
  2445. });
  2446. }
  2447. /** 删除排序选项 **/
  2448. function deleteOrderquOption(){
  2449. var optionParent=null;
  2450. optionParent=$(curEditObj).parents("li.quCoItemUlLi");
  2451. var quItemBody=$(curEditObj).parents(".surveyQuItemBody");
  2452. var rmQuOrderTableTr=quItemBody.find(".quOrderByRight table.quOrderByTable tr:last");
  2453. var quOptionId=$(optionParent).find("input[name='quItemId']").val();
  2454. if(quOptionId!="" && quOptionId!="0" ){
  2455. var url=ctx+"/design/qu-orderqu/ajaxDelete.do";
  2456. var data="quItemId="+quOptionId;
  2457. $.ajax({
  2458. url:url,
  2459. data:data,
  2460. type:"post",
  2461. success:function(msg){
  2462. if(msg=="true"){
  2463. delQuOptionCallBack(optionParent);
  2464. rmQuOrderTableTr.remove();
  2465. }
  2466. }
  2467. });
  2468. }else{
  2469. delQuOptionCallBack(optionParent);
  2470. rmQuOrderTableTr.remove();
  2471. }
  2472. }
  2473. //*******分页标记*******//
  2474. /**
  2475. ** 新保存分页标记
  2476. **/
  2477. function savePagetag(quItemBody,callback){
  2478. var saveTag=quItemBody.find("input[name='saveTag']").val();
  2479. if(saveTag==0){
  2480. var url=ctx+"/design/qu-pagetag/ajaxSave.do";
  2481. var quType=quItemBody.find("input[name='quType']").val();
  2482. var quId=quItemBody.find("input[name='quId']").val();
  2483. var orderById=quItemBody.find("input[name='orderById']").val();;
  2484. var isRequired=quItemBody.find("input[name='isRequired']").val();
  2485. var hv=quItemBody.find("input[name='hv']").val();
  2486. var randOrder=quItemBody.find("input[name='randOrder']").val();
  2487. var cellCount=quItemBody.find("input[name='cellCount']").val();
  2488. var data="belongId="+questionBelongId+"&orderById="+orderById+"&tag="+svTag+"&quType="+quType+"&quId="+quId;
  2489. data+="&isRequired="+isRequired+"&hv="+hv+"&randOrder="+randOrder+"&cellCount="+cellCount;
  2490. var quTitleSaveTag=quItemBody.find("input[name='quTitleSaveTag']").val();
  2491. if(quTitleSaveTag==0){
  2492. var quTitle=quItemBody.find(".quCoTitleEdit").html();
  2493. quTitle=escape(encodeURIComponent(quTitle));
  2494. data+="&quTitle="+quTitle;
  2495. }
  2496. //逻辑选项
  2497. var quLogicItems=quItemBody.find(".quLogicItem");
  2498. $.each(quLogicItems,function(i){
  2499. var thClass=$(this).attr("class");
  2500. thClass=thClass.replace("quLogicItem quLogicItem_","");
  2501. var quLogicId=$(this).find("input[name='quLogicId']").val();
  2502. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  2503. var skQuId=$(this).find("input[name='skQuId']").val();
  2504. var logicSaveTag=$(this).find("input[name='logicSaveTag']").val();
  2505. var visibility=$(this).find("input[name='visibility']").val();
  2506. var logicType=$(this).find("input[name='logicType']").val();
  2507. var itemIndex=thClass;
  2508. if(logicSaveTag==0){
  2509. data+="&quLogicId_"+itemIndex+"="+quLogicId;
  2510. data+="&cgQuItemId_"+itemIndex+"="+cgQuItemId;
  2511. data+="&skQuId_"+itemIndex+"="+skQuId;
  2512. data+="&visibility_"+itemIndex+"="+visibility;
  2513. data+="&logicType_"+itemIndex+"="+logicType;
  2514. }
  2515. });
  2516. $.ajax({
  2517. url:url,
  2518. data:data,
  2519. type:'post',
  2520. success:function(msg){
  2521. //alert(msg);// resultJson quItemId
  2522. if(msg!="error"){
  2523. var jsons=eval("("+msg+")");
  2524. //alert(jsons);
  2525. var quId=jsons.id;
  2526. quItemBody.find("input[name='quId']").val(quId);
  2527. //同步logic Id信息
  2528. var quLogics=jsons.quLogics;
  2529. $.each(quLogics,function(i,item){
  2530. var logicItem=quItemBody.find(".quLogicItem_"+item.title);
  2531. logicItem.find("input[name='quLogicId']").val(item.id);
  2532. logicItem.find("input[name='logicSaveTag']").val(1);
  2533. });
  2534. quItemBody.find("input[name='saveTag']").val(1);
  2535. quItemBody.find(".quCoTitle input[name='quTitleSaveTag']").val(1);
  2536. //执行保存下一题
  2537. saveQus(quItemBody.next(),callback);
  2538. //同步-更新题目排序号
  2539. quCBNum2++;
  2540. exeQuCBNum();
  2541. }
  2542. }
  2543. });
  2544. }else{
  2545. saveQus(quItemBody.next(),callback);
  2546. }
  2547. }
  2548. //*******段落说明题*******//
  2549. /**
  2550. ** 新保存段落题
  2551. **/
  2552. function saveParagraph(quItemBody,callback){
  2553. var saveTag=quItemBody.find("input[name='saveTag']").val();
  2554. if(saveTag==0){
  2555. var url=ctx+"/design/qu-paragraph/ajaxSave.do";
  2556. var quType=quItemBody.find("input[name='quType']").val();
  2557. var quId=quItemBody.find("input[name='quId']").val();
  2558. var orderById=quItemBody.find("input[name='orderById']").val();;
  2559. var isRequired=quItemBody.find("input[name='isRequired']").val();
  2560. var hv=quItemBody.find("input[name='hv']").val();
  2561. var randOrder=quItemBody.find("input[name='randOrder']").val();
  2562. var cellCount=quItemBody.find("input[name='cellCount']").val();
  2563. var data="belongId="+questionBelongId+"&orderById="+orderById+"&tag="+svTag+"&quType="+quType+"&quId="+quId;
  2564. data+="&isRequired="+isRequired+"&hv="+hv+"&randOrder="+randOrder+"&cellCount="+cellCount;
  2565. var quTitleSaveTag=quItemBody.find("input[name='quTitleSaveTag']").val();
  2566. if(quTitleSaveTag==0){
  2567. var quTitle=quItemBody.find(".quCoTitleEdit").html();
  2568. quTitle=escape(encodeURIComponent(quTitle));
  2569. data+="&quTitle="+quTitle;
  2570. }
  2571. //逻辑选项
  2572. var quLogicItems=quItemBody.find(".quLogicItem");
  2573. $.each(quLogicItems,function(i){
  2574. var thClass=$(this).attr("class");
  2575. thClass=thClass.replace("quLogicItem quLogicItem_","");
  2576. var quLogicId=$(this).find("input[name='quLogicId']").val();
  2577. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  2578. var skQuId=$(this).find("input[name='skQuId']").val();
  2579. var logicSaveTag=$(this).find("input[name='logicSaveTag']").val();
  2580. var visibility=$(this).find("input[name='visibility']").val();
  2581. var logicType=$(this).find("input[name='logicType']").val();
  2582. var itemIndex=thClass;
  2583. if(logicSaveTag==0){
  2584. data+="&quLogicId_"+itemIndex+"="+quLogicId;
  2585. data+="&cgQuItemId_"+itemIndex+"="+cgQuItemId;
  2586. data+="&skQuId_"+itemIndex+"="+skQuId;
  2587. data+="&visibility_"+itemIndex+"="+visibility;
  2588. data+="&logicType_"+itemIndex+"="+logicType;
  2589. }
  2590. });
  2591. $.ajax({
  2592. url:url,
  2593. data:data,
  2594. type:'post',
  2595. success:function(msg){
  2596. //alert(msg);// resultJson quItemId
  2597. if(msg!="error"){
  2598. var jsons=eval("("+msg+")");
  2599. //alert(jsons);
  2600. var quId=jsons.id;
  2601. quItemBody.find("input[name='quId']").val(quId);
  2602. //同步logic Id信息
  2603. var quLogics=jsons.quLogics;
  2604. $.each(quLogics,function(i,item){
  2605. var logicItem=quItemBody.find(".quLogicItem_"+item.title);
  2606. logicItem.find("input[name='quLogicId']").val(item.id);
  2607. logicItem.find("input[name='logicSaveTag']").val(1);
  2608. });
  2609. quItemBody.find("input[name='saveTag']").val(1);
  2610. quItemBody.find(".quCoTitle input[name='quTitleSaveTag']").val(1);
  2611. //执行保存下一题
  2612. saveQus(quItemBody.next(),callback);
  2613. //同步-更新题目排序号
  2614. quCBNum2++;
  2615. exeQuCBNum();
  2616. }
  2617. }
  2618. });
  2619. }else{
  2620. saveQus(quItemBody.next(),callback);
  2621. }
  2622. }
  2623. /** 多项填空题 **/
  2624. /**
  2625. ** 新保存多项填空题
  2626. **/
  2627. function saveMultiFillblank(quItemBody,callback){
  2628. var saveTag=quItemBody.find("input[name='saveTag']").val();
  2629. if(saveTag==0){
  2630. var url=ctx+"/design/qu-multi-fillblank/ajaxSave.do";
  2631. var quType=quItemBody.find("input[name='quType']").val();
  2632. var quId=quItemBody.find("input[name='quId']").val();
  2633. var orderById=quItemBody.find("input[name='orderById']").val();
  2634. var isRequired=quItemBody.find("input[name='isRequired']").val();
  2635. var hv=quItemBody.find("input[name='hv']").val();
  2636. var randOrder=quItemBody.find("input[name='randOrder']").val();
  2637. var cellCount=quItemBody.find("input[name='cellCount']").val();
  2638. var paramInt01=quItemBody.find("input[name='paramInt01']").val();
  2639. var paramInt02=quItemBody.find("input[name='paramInt02']").val();
  2640. var data="belongId="+questionBelongId+"&orderById="+orderById+"&tag="+svTag+"&quType="+quType+"&quId="+quId;
  2641. data+="&isRequired="+isRequired+"&hv="+hv+"&randOrder="+randOrder+"&cellCount="+cellCount;
  2642. data+="&paramInt01="+paramInt01+"&paramInt02="+paramInt02;
  2643. var quTitleSaveTag=quItemBody.find("input[name='quTitleSaveTag']").val();
  2644. if(quTitleSaveTag==0){
  2645. var quTitle=quItemBody.find(".quCoTitleEdit").html();
  2646. quTitle=escape(encodeURIComponent(quTitle));
  2647. data+="&quTitle="+quTitle;
  2648. }
  2649. //评分题选项td
  2650. var quItemOptions=quItemBody.find(".quCoItem table.mFillblankTable tr td.mFillblankTableEditTd");
  2651. $.each(quItemOptions,function(i){
  2652. var optionValue=$(this).find("label.quCoOptionEdit").html();
  2653. var optionId=$(this).find(".quItemInputCase input[name='quItemId']").val();
  2654. var quItemSaveTag=$(this).find(".quItemInputCase input[name='quItemSaveTag']").val();
  2655. if(quItemSaveTag==0){
  2656. optionValue=escape(encodeURIComponent(optionValue));
  2657. data+="&optionValue_"+i+"="+optionValue;
  2658. data+="&optionId_"+i+"="+optionId;
  2659. }
  2660. //更新 字母 title标记到选项上.
  2661. $(this).addClass("quOption_"+i);
  2662. });
  2663. //逻辑选项
  2664. var quLogicItems=quItemBody.find(".quLogicItem");
  2665. $.each(quLogicItems,function(i){
  2666. var thClass=$(this).attr("class");
  2667. thClass=thClass.replace("quLogicItem quLogicItem_","");
  2668. var quLogicId=$(this).find("input[name='quLogicId']").val();
  2669. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  2670. var skQuId=$(this).find("input[name='skQuId']").val();
  2671. var logicSaveTag=$(this).find("input[name='logicSaveTag']").val();
  2672. var visibility=$(this).find("input[name='visibility']").val();
  2673. var logicType=$(this).find("input[name='logicType']").val();
  2674. var itemIndex=thClass;
  2675. if(logicSaveTag==0){
  2676. data+="&quLogicId_"+itemIndex+"="+quLogicId;
  2677. data+="&cgQuItemId_"+itemIndex+"="+cgQuItemId;
  2678. data+="&skQuId_"+itemIndex+"="+skQuId;
  2679. data+="&visibility_"+itemIndex+"="+visibility;
  2680. data+="&logicType_"+itemIndex+"="+logicType;
  2681. }
  2682. });
  2683. $.ajax({
  2684. url:url,
  2685. data:data,
  2686. type:'post',
  2687. success:function(msg){
  2688. //alert(msg);// resultJson quItemId
  2689. if(msg!="error"){
  2690. var jsons=eval("("+msg+")");
  2691. //alert(jsons);
  2692. var quId=jsons.id;
  2693. quItemBody.find("input[name='quId']").val(quId);
  2694. var quItems=jsons.quItems;
  2695. $.each(quItems,function(i,item){
  2696. var quItemOption=quItemBody.find(".quOption_"+item.title);
  2697. quItemOption.find("input[name='quItemId']").val(item.id);
  2698. quItemOption.find(".quItemInputCase input[name='quItemSaveTag']").val(1);
  2699. });
  2700. //同步logic Id信息
  2701. var quLogics=jsons.quLogics;
  2702. $.each(quLogics,function(i,item){
  2703. var logicItem=quItemBody.find(".quLogicItem_"+item.title);
  2704. logicItem.find("input[name='quLogicId']").val(item.id);
  2705. logicItem.find("input[name='logicSaveTag']").val(1);
  2706. });
  2707. quItemBody.find("input[name='saveTag']").val(1);
  2708. quItemBody.find(".quCoTitle input[name='quTitleSaveTag']").val(1);
  2709. //执行保存下一题
  2710. saveQus(quItemBody.next(),callback);
  2711. //同步-更新题目排序号
  2712. quCBNum2++;
  2713. exeQuCBNum();
  2714. }
  2715. }
  2716. });
  2717. }else{
  2718. saveQus(quItemBody.next(),callback);
  2719. }
  2720. }
  2721. /** 添加选项 **/
  2722. /** 添加多项填空题项 **/
  2723. function addMultiFillblankItem(quItemBody,itemText){
  2724. //得判断是否是table类型
  2725. var newEditObj=null;
  2726. //ul li处理
  2727. var quScoreItemHtml=$("#mFillblankTableModel").html();
  2728. var quCoItemTable=quItemBody.find("table.mFillblankTable");
  2729. quCoItemTable.append("<tr class='mFillblankTableTr'>"+quScoreItemHtml+"</tr>");
  2730. quItemBody.find("input[name='saveTag']").val(0);
  2731. newEditObj=quCoItemTable.find("tr.mFillblankTableTr:last .editAble");
  2732. newEditObj.text(itemText);
  2733. if(itemText==""){
  2734. newEditObj.css("display","inline");
  2735. }
  2736. return newEditObj;
  2737. }
  2738. /** 删除多项填空题选项 **/
  2739. function deleteMultiFillblankOption(){
  2740. var optionParent=null;
  2741. optionParent=$(curEditObj).parents("tr.mFillblankTableTr");
  2742. var quOptionId=$(optionParent).find("input[name='quItemId']").val();
  2743. if(quOptionId!="" && quOptionId!="0" ){
  2744. var url=ctx+"/design/qu-multi-fillblank/ajaxDelete.do";
  2745. var data="quItemId="+quOptionId;
  2746. $.ajax({
  2747. url:url,
  2748. data:data,
  2749. type:"post",
  2750. success:function(msg){
  2751. if(msg=="true"){
  2752. delQuOptionCallBack(optionParent);
  2753. }
  2754. }
  2755. });
  2756. }else{
  2757. delQuOptionCallBack(optionParent);
  2758. }
  2759. }
  2760. /**
  2761. * 文件上传题
  2762. * @param quItemBody
  2763. * @param callback
  2764. */
  2765. function saveUploadFile(quItemBody,callback){
  2766. var saveTag=quItemBody.find("input[name='saveTag']").val();
  2767. if(saveTag==0){
  2768. var url=ctx+"/design/qu-upload-file/ajaxSave.do";
  2769. var quType=quItemBody.find("input[name='quType']").val();
  2770. var quId=quItemBody.find("input[name='quId']").val();
  2771. var orderById=quItemBody.find("input[name='orderById']").val();;
  2772. var isRequired=quItemBody.find("input[name='isRequired']").val();
  2773. var hv=quItemBody.find("input[name='hv']").val();
  2774. var randOrder=quItemBody.find("input[name='randOrder']").val();
  2775. var cellCount=quItemBody.find("input[name='cellCount']").val();
  2776. var answerInputWidth=quItemBody.find("input[name='answerInputWidth']").val();
  2777. var answerInputRow=quItemBody.find("input[name='answerInputRow']").val();
  2778. var contactsAttr=quItemBody.find("input[name='contactsAttr']").val();
  2779. var contactsField=quItemBody.find("input[name='contactsField']").val();
  2780. var checkType=quItemBody.find("input[name='checkType']").val();
  2781. var paramInt01=quItemBody.find("input[name='paramInt01']").val();
  2782. var paramInt02=quItemBody.find("input[name='paramInt02']").val();
  2783. var data="belongId="+questionBelongId+"&orderById="+orderById+"&tag="+svTag+"&quType="+quType+"&quId="+quId;
  2784. data+="&isRequired="+isRequired+"&hv="+hv+"&randOrder="+randOrder+"&cellCount="+cellCount;
  2785. data+="&answerInputWidth="+answerInputWidth+"&answerInputRow="+answerInputRow;
  2786. data+="&contactsAttr="+contactsAttr+"&contactsField="+contactsField+"&checkType="+checkType;
  2787. data+="&paramInt01="+paramInt01;
  2788. data+="&paramInt02="+paramInt02;
  2789. var quTitleSaveTag=quItemBody.find("input[name='quTitleSaveTag']").val();
  2790. if(quTitleSaveTag==0){
  2791. var quTitle=quItemBody.find(".quCoTitleEdit").html();
  2792. quTitle=escape(encodeURIComponent(quTitle));
  2793. data+="&quTitle="+quTitle;
  2794. }
  2795. //逻辑选项
  2796. var quLogicItems=quItemBody.find(".quLogicItem");
  2797. $.each(quLogicItems,function(i){
  2798. var thClass=$(this).attr("class");
  2799. thClass=thClass.replace("quLogicItem quLogicItem_","");
  2800. var quLogicId=$(this).find("input[name='quLogicId']").val();
  2801. var cgQuItemId=$(this).find("input[name='cgQuItemId']").val();
  2802. var skQuId=$(this).find("input[name='skQuId']").val();
  2803. var logicSaveTag=$(this).find("input[name='logicSaveTag']").val();
  2804. var visibility=$(this).find("input[name='visibility']").val();
  2805. var logicType=$(this).find("input[name='logicType']").val();
  2806. var itemIndex=thClass;
  2807. if(logicSaveTag==0){
  2808. data+="&quLogicId_"+itemIndex+"="+quLogicId;
  2809. data+="&cgQuItemId_"+itemIndex+"="+cgQuItemId;
  2810. data+="&skQuId_"+itemIndex+"="+skQuId;
  2811. data+="&visibility_"+itemIndex+"="+visibility;
  2812. data+="&logicType_"+itemIndex+"="+logicType;
  2813. }
  2814. });
  2815. // alert(data);
  2816. $.ajax({
  2817. url:url,
  2818. data:data,
  2819. type:'post',
  2820. success:function(msg){
  2821. //alert(msg);// resultJson quItemId
  2822. if(msg!="error"){
  2823. var jsons=eval("("+msg+")");
  2824. //alert(jsons);
  2825. var quId=jsons.id;
  2826. quItemBody.find("input[name='quId']").val(quId);
  2827. //同步logic Id信息
  2828. var quLogics=jsons.quLogics;
  2829. $.each(quLogics,function(i,item){
  2830. var logicItem=quItemBody.find(".quLogicItem_"+item.title);
  2831. logicItem.find("input[name='quLogicId']").val(item.id);
  2832. logicItem.find("input[name='logicSaveTag']").val(1);
  2833. });
  2834. quItemBody.find("input[name='saveTag']").val(1);
  2835. quItemBody.find(".quCoTitle input[name='quTitleSaveTag']").val(1);
  2836. quItemBody.removeClass("saveError");
  2837. }else{
  2838. quItemBody.addClass("saveError");
  2839. }
  2840. //执行保存下一题
  2841. saveQus(quItemBody.next(),callback);
  2842. //同步-更新题目排序号
  2843. quCBNum2++;
  2844. exeQuCBNum();
  2845. }
  2846. });
  2847. }else{
  2848. saveQus(quItemBody.next(),callback);
  2849. }
  2850. }
  2851. /**逻辑设置**/
  2852. //添加逻辑选项
  2853. function addQuDialogLogicTr(autoClass,trueCallback,falseCallback){
  2854. //当前题的选项
  2855. var quItemBody=$(dwDialogObj).parents(".surveyQuItemBody");
  2856. var quItemInputCases=quItemBody.find(".quItemInputCase");
  2857. var quLogicInputCase=quItemBody.find(".quLogicInputCase");
  2858. var curQuId=quItemBody.find("input[name='quId']").val();
  2859. var quType=quItemBody.find("input[name='quType']").val();
  2860. var logicQuOptionSels=$("#dwQuLogicTable").find(".logicQuOptionSel");
  2861. var dwLogicQuSels=$("#dwQuLogicTable").find(".logicQuSel");
  2862. //判断有无选项任意选项
  2863. var executeTag=true;
  2864. $.each(logicQuOptionSels,function(){
  2865. var selOptionVal=$(this).val();
  2866. if(selOptionVal=="0"){
  2867. executeTag=false;
  2868. return false;
  2869. }
  2870. });
  2871. if(executeTag){
  2872. var appendTrHtml=$("#setQuLogicItemTrModel").html();
  2873. $("#dwQuLogicTable").append("<tr>"+appendTrHtml+"</tr>");
  2874. var lastTr=$("#dwQuLogicTable").find("tr").last();
  2875. if(quType==="FILLBLANK"){
  2876. lastTr.find(".ifSpanText1").text("如果回答");
  2877. }
  2878. if(autoClass){
  2879. var quLogicItemNum=quLogicInputCase.find("input[name='quLogicItemNum']");
  2880. var newQuLogicItemNum=(parseInt(quLogicItemNum.val())+1);
  2881. quLogicItemNum.val(newQuLogicItemNum);
  2882. var newQuLogicItemClass="quLogicItem_"+newQuLogicItemNum;
  2883. lastTr.attr("class",newQuLogicItemClass);
  2884. }
  2885. var dwQuOptionSel=lastTr.find(".logicQuOptionSel");
  2886. var eachTag=true;
  2887. $.each(quItemInputCases,function(){
  2888. // var optionText=$(this).prev().text();
  2889. var optionText=$(this).parent().find("label.quCoOptionEdit").text();
  2890. var optionId=$(this).find("input[name='quItemId']").val();
  2891. eachTag=true;
  2892. $.each(logicQuOptionSels,function(){
  2893. var selOptionVal=$(this).val();
  2894. if(selOptionVal==optionId){
  2895. eachTag=false;
  2896. return false;
  2897. }
  2898. });
  2899. eachTag = true;
  2900. if(eachTag){
  2901. dwQuOptionSel.append("<option value='"+optionId+"'>"+optionText+"</option>");
  2902. }
  2903. });
  2904. if(logicQuOptionSels.size()==0){
  2905. // dwQuOptionSel.append("<option value='0'>任意选项</option>");
  2906. }else{
  2907. $("#dwQuLogicTable").find(".logicQuOptionSel option[value='0']").remove();
  2908. }
  2909. if(quType==="FILLBLANK"){
  2910. dwQuOptionSel.val("0");
  2911. }
  2912. var logicQuSel=lastTr.find(".logicQuSel");
  2913. var quItemBodys=$("#dwSurveyQuContent .surveyQuItemBody");
  2914. $.each(quItemBodys,function(){
  2915. //logicQuSels
  2916. if($(this).find(".quCoTitleEdit")[0]){
  2917. var quCoNumText=$(this).find(".quCoNum").text();
  2918. var quTitleText=$(this).find(".quCoTitleEdit").text();
  2919. var quId=$(this).find("input[name='quId']").val();
  2920. eachTag=true;
  2921. if(curQuId==quId){
  2922. eachTag=false;
  2923. }
  2924. if(eachTag){
  2925. $.each(dwLogicQuSels,function(){
  2926. var dwLogicQuSelVal=$(this).val();
  2927. if(dwLogicQuSelVal==quId){
  2928. eachTag=false;
  2929. return false;
  2930. }
  2931. });
  2932. }
  2933. eachTag = true;
  2934. if(eachTag){
  2935. logicQuSel.append("<option value='"+quId+"'>"+quCoNumText+quTitleText+"</option>");
  2936. }
  2937. }
  2938. });
  2939. if(quType==="ORDERQU"){
  2940. dwQuOptionSel.empty();
  2941. dwQuOptionSel.append("<option value='0'>回答完成</option>");
  2942. lastTr.find(".ifSpanText1").text("如果本题");
  2943. }
  2944. logicQuSel.append("<option value='1'>正常结束(计入结果)</option>");
  2945. if(autoClass){
  2946. logicQuSel.prepend("<option value=''>-请选择题目-</option>");
  2947. dwQuOptionSel.prepend("<option value=''>-请选择选项-</option>");
  2948. }
  2949. bindDialogRemoveLogic();
  2950. trueCallback();
  2951. }else{
  2952. falseCallback();
  2953. }
  2954. }
  2955. //绑定逻辑设置中选项删除事件
  2956. function bindDialogRemoveLogic(){
  2957. $(".dialogRemoveLogic").unbind();
  2958. $(".dialogRemoveLogic").click(function(){
  2959. var logicItemTr=$(this).parents("tr");
  2960. var logicItemTrClass=logicItemTr.attr("class");
  2961. //同时移除页面只保存的信息--注意如果已经保存到库中,修改
  2962. var quItemBody=$(dwDialogObj).parents(".surveyQuItemBody");
  2963. var quLogicItem=quItemBody.find("."+logicItemTrClass);
  2964. if(quLogicItem[0]){
  2965. //有则判断,是否已经加入到数据库
  2966. var quLogicIdVal=quLogicItem.find("input[name='quLogicId']").val();
  2967. if(quLogicIdVal!=""){
  2968. quLogicItem.find("input[name='visibility']").val(0);
  2969. quLogicItem.find("input[name='logicSaveTag']").val(0);
  2970. quItemBody.find("input[name='saveTag']").val(0);
  2971. }else{
  2972. quLogicItem.remove();
  2973. }
  2974. //更新select option信息
  2975. var logicQuOptionSel=logicItemTr.find(".logicQuOptionSel option:selected");
  2976. var logicQuSel=logicItemTr.find(".logicQuSel option:selected");
  2977. if(logicQuOptionSel.val()!=""){
  2978. $("#dwQuLogicTable").find(".logicQuOptionSel").append("<option value='"+logicQuOptionSel.val()+"'>"+logicQuOptionSel.text()+"</option>");
  2979. }
  2980. if(logicQuSel.val()!=""){
  2981. $("#dwQuLogicTable").find(".logicQuSel").append("<option value='"+logicQuSel.val()+"'>"+logicQuSel.text()+"</option>");
  2982. }
  2983. }
  2984. logicItemTr.remove();
  2985. refreshQuLogicInfo(quItemBody);
  2986. return false;
  2987. });
  2988. /*设置逻辑时,选中某个选项时的操作
  2989. $(".logicQuOptionSel").unbind();
  2990. $(".logicQuOptionSel").change(function(){
  2991. var thVal=$(this).val();
  2992. //刷新
  2993. $("#dwQuLogicTable").find(".logicQuOptionSel").not(this).find("option[value='"+thVal+"']").remove();
  2994. });*/
  2995. $(".logicQuSel").unbind();
  2996. $(".logicQuSel").change(function(){
  2997. var thVal=$(this).val();
  2998. //当题目选项中选项 提前结束,或正常结束,则不作处理
  2999. if(thVal!=="1" && thVal!=="2"){
  3000. //移除前面选项中存在的当前被选择的选项
  3001. $("#dwQuLogicTable").find(".logicQuSel").not(this).find("option[value='"+thVal+"']").remove();
  3002. }
  3003. });
  3004. }
  3005. //刷新每题的逻辑显示数目
  3006. function refreshQuLogicInfo(quItemBody){
  3007. var quLogicItems=quItemBody.find(".quLogicItem input[name='visibility'][value='1']");
  3008. var quLogicItemSize=quLogicItems.size();
  3009. if(quLogicItemSize>0){
  3010. quItemBody.find(".quLogicInfo").text(quLogicItemSize);
  3011. }
  3012. }
  3013. function exeQuCBNum(){
  3014. if(quCBNum==quCBNum2){
  3015. quCBNum=0;
  3016. quCBNum2=0;
  3017. //全部题排序号同步一次
  3018. //对如新增插入题-需要同步调整其它题的排序
  3019. //对如删除题-需要同步调整其它题的排序
  3020. }
  3021. }
  3022. function setSelectText(el) {
  3023. try {
  3024. window.getSelection().selectAllChildren(el[0]); //全选
  3025. window.getSelection().collapseToEnd(el[0]); //光标置后
  3026. /*var Check = check_title_select(el.text());
  3027. window.getSelection().selectAllChildren(el[0]); //全选
  3028. if (!Check) {
  3029. window.getSelection().collapseToEnd(el[0]); //光标置后
  3030. }*/
  3031. } catch (err) {
  3032. //在此处理错误
  3033. }
  3034. // if(document.selection){
  3035. //
  3036. // }else{
  3037. // var Check = check_title_select(el.text());
  3038. //
  3039. // window.getSelection().selectAllChildren(el[0]);//全选
  3040. // if(!Check){
  3041. // window.getSelection().collapseToEnd(el[0]);//光标置后
  3042. // }
  3043. // }
  3044. }
  3045. function validateGen(){
  3046. $("#dwCommonDialogForm").validate({
  3047. rules:{
  3048. setCellCount:{
  3049. required:true,
  3050. digits:true,
  3051. min:1
  3052. }
  3053. },
  3054. errorPlacement: function(error, element) {
  3055. //error.appendTo(element.parent().parent());
  3056. element.parent().append(error);
  3057. // $(element).css("borderColor","#C40000");
  3058. }
  3059. });
  3060. $("input[name='setCellCount']").unbind();
  3061. $("input[name='setCellCount']").blur(function(){
  3062. $("#dwCommonDialogForm").validate();
  3063. });
  3064. $("input[name='setCellCount']").blur();
  3065. }
  3066. function loadReset(){
  3067. var surveyQuItems=$("#dwSurveyQuContent .surveyQuItemBody");
  3068. $.each(surveyQuItems,function(i){
  3069. refreshQuLogicInfo($(this));
  3070. });
  3071. }
  3072. function notify(msg,delayHid) {
  3073. $(".notification").remove();
  3074. if(delayHid==null){
  3075. delayHid=5000;
  3076. }
  3077. $( "<div>" )
  3078. .appendTo( document.body )
  3079. .text( msg )
  3080. .addClass( "notification ui-state-default ui-corner-bottom" )
  3081. .position({
  3082. my: "center top",
  3083. at: "center top",
  3084. of: window
  3085. })
  3086. .show({
  3087. effect: "blind"
  3088. })
  3089. .delay( delayHid )
  3090. .hide({
  3091. effect: "blind",
  3092. duration: "slow"
  3093. }, function() {
  3094. $( this ).remove();
  3095. });
  3096. }