dwsurvey-design.js 110 KB

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