dwsurvey-design.js 104 KB

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