dwsurvey-design.js 104 KB

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