dwsurvey-design.js 110 KB

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