dwsurvey-design.js 109 KB

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