myd-wjyl.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252
  1. var session = null;
  2. var SubjectId = 0;
  3. var QuestionOption = null;
  4. $(function(){
  5. SubjectId = QueryString('SubjectId');
  6. if(isEmpty(SubjectId)){
  7. ComWbj.artTips("提示","warning","未知问卷ID",2,null);
  8. // ComWbj.alertIconNo('提示:','未知问卷ID','warning');
  9. history.go(-1);
  10. }
  11. init();
  12. });
  13. function QueryString(val) {
  14. var uri = window.location.search;
  15. var re = new RegExp("" +val+ "\=([^\&\?]*)", "ig");
  16. return ((uri.match(re))?(uri.match(re)[0].substr(val.length+1)):null);
  17. }
  18. //初始化
  19. function init(){
  20. getWJData();
  21. }
  22. function initQuestionCount(d){
  23. QuestionOption = new Array();
  24. dataArr = d.Result;
  25. var _d = dataArr;
  26. var size = _d.length;
  27. if(size > 0){
  28. $('#areaDiv').css('height','auto');
  29. for(var i = 0; i < size; i++){
  30. var p = {};
  31. p.id = _d[i].QuestId;
  32. p.text = _d[i].Question;
  33. QuestionOption.push(p);
  34. }
  35. }
  36. }
  37. function backToEdit(){//返回问卷编辑
  38. window.location.href = 'myd-wjlb.html';
  39. // history.go(-1);
  40. }
  41. //获取问卷数据
  42. function getWJData(){
  43. var Api = 'survey.SurveyApiImpl.querySubjectById';
  44. var param = {};
  45. param.SubjectId = SubjectId;
  46. var _d = _ajax('../survey/wtbj_querySubjectById.action',param,false);
  47. var SubjectTitle = _d.SubjectTitle;
  48. var BeginIntro = _d.BeginIntro;
  49. var EndingIntro = _d.EndingIntro;
  50. $('#EndingIntro').text(EndingIntro);
  51. $('#BeginIntro').text(BeginIntro);
  52. $('#SubjectTitle').text(SubjectTitle);
  53. initQuestionCount(_d);
  54. initHtml(_d);
  55. }
  56. function initHtml(d){//初始化页面选题
  57. $('#areaDiv').empty();
  58. dataArr = d.Result;
  59. var _d = dataArr;
  60. var size = _d.length;
  61. if(size > 0){
  62. for(var i = 0; i < size; i++){
  63. if(_d[i].QuestType == 1)
  64. {
  65. $('#areaDiv').append(xzt(_d[i],i,1));
  66. }
  67. if(_d[i].QuestType == 2)
  68. {
  69. $('#areaDiv').append(xzt(_d[i],i,2));
  70. }
  71. if(_d[i].QuestType == 3)
  72. {
  73. $('#areaDiv').append(tkt(_d[i],i));
  74. }
  75. if(_d[i].QuestType == 4)
  76. {
  77. $('#areaDiv').append(jzdx(_d[i],i,4));
  78. }
  79. if(_d[i].QuestType == 5)
  80. {
  81. $('#areaDiv').append(jzdx(_d[i],i,5));
  82. }
  83. }
  84. }
  85. }
  86. function jzdx(d,index,type){//矩阵单选
  87. var html = '<div QuestId="'+d.QuestId+'" id="div'+d.QuestId+'" class="qa-item-wrap juzhen"><div class="q-tit">';
  88. html += '<span class="q-num">Q'+(index+1)+'</span>'
  89. html += '<div class="q-tit-txt" >'+d.Question;
  90. if(d.Mustquest == 1){
  91. html += '<span style="color:red">(选填)</span>';
  92. }
  93. html += '</div></div><div class="a-wrap" id="jzshow'+d.QuestId+'"><div class="mt15 mb25" style="margin-left:31px;">'
  94. html += jz_table(d,type);
  95. html += '</div></div>';
  96. return html ;
  97. }
  98. function jz_table(d,type){
  99. var table = '<table class="tb tb-border">';
  100. var _d = d.ChildrenMatrixQuestion;
  101. for(var i = 0 ;i<_d.length;i++){
  102. if(i == 0){
  103. table +='<tr><th width="125" ></th>';
  104. for(var j = 0 ;j<_d[i].MatrixQuestItems.length;j++){
  105. table +='<th width="220" name="th'+d.QuestId+'">'+_d[i].MatrixQuestItems[j].ItemCont+'</th>';
  106. }
  107. table +='</tr>';
  108. table +='<tr><th width="125">'+_d[i].Question+'</th>';
  109. for(var j = 0 ;j<_d[i].MatrixQuestItems.length;j++){
  110. if(type == 4){
  111. table +='<td><input type="radio" name="checkbox1" value="" /></td>';
  112. }else
  113. table +='<td><input type="checkbox" name="checkbox1" value="" /></td>';
  114. }
  115. table +='</tr>';
  116. }else{
  117. table +='<tr><th width="125">'+_d[i].Question+'</th>';
  118. for(var j = 0 ;j<_d[i].MatrixQuestItems.length;j++){
  119. if(type == 4){
  120. table +='<td><input type="radio" name="checkbox1" value="" /></td>';
  121. }else
  122. table +='<td><input type="checkbox" name="checkbox1" value="" /></td>';
  123. }
  124. table +='</tr>';
  125. }
  126. }
  127. return table+='</table>';
  128. }
  129. function tkt(d,index){//填空题
  130. var html = '<div QuestId="" class="qa-item-wrap"><div class="q-tit">';
  131. html += '<span class="q-num">Q'+(index+1)+'</span><div class="q-tit-txt" >'+d.Question;
  132. if(d.Mustquest == 1){
  133. html += '<span style="color:red">(选填)</span>';
  134. }
  135. html += '</div></div><div class="a-wrap"><div class="mt15" style="margin-left:31px;">';
  136. html += '<textarea name="" id="" class="textarea textarea-w600"></textarea>';
  137. html += '</div></div></div></div>';
  138. return html ;
  139. }
  140. //选择题
  141. function xzt(d,index,type){
  142. var _d = d.SvQuestionItems;
  143. var li = getDxtLis(_d,type);
  144. var ul = getDxtUL(d,index,li,type);
  145. return ul;
  146. }
  147. function getDxtUL(d,index,li,type){
  148. var dxt_ul = '<div class="qa-item-wrap"><div class="q-tit"><span class="q-num" id="queueno">Q'+(index+1)+'</span>';
  149. dxt_ul += '<div class="q-tit-txt" >'+d.Question+'';
  150. if(d.Mustquest == 1){
  151. dxt_ul += '<span style="color:red">(选填)</span>';
  152. }
  153. dxt_ul += '</div></div><div class="a-wrap"><ul class="radio-options" id="ul'+d.QuestId+'">'+li+'</ul>';
  154. dxt_ul += '</div></div>';
  155. return dxt_ul;
  156. }
  157. function getDxtLis(d,type){
  158. var size = d.length;
  159. var dxt_li = '';
  160. if(size > 0){
  161. for(var i = 0; i < size; i++){//d.IfAddblank IfAllowNull
  162. dxt_li += '<li id="'+d[i].ItemId+'"><div class="valign-m"><div class="valign-m-chk mr20">';
  163. if(type == 1){
  164. dxt_li += '<input type="radio" name="radio1" />';
  165. }else dxt_li += '<input type="checkbox" name="radio1" />';
  166. dxt_li += '<span class="radio-opt-txt" onblur="updateQuestionItemTile(this,'+d[i].ItemId+')" >'+d[i].ItemCont+'</span>'+getJumpQuest(d[i])+'';
  167. if(type == 1){
  168. if(d[i].IfAddblank == 1){
  169. dxt_li += '<input name="xztkk'+d[i].QuestId+'" />';
  170. }else dxt_li += '<input name="xztkk'+d[i].QuestId+'" style="display:none" />';
  171. }
  172. dxt_li += '</div><span name="span'+d[i].QuestId+'" style="display:none" class=""> <label class="valign-m-chk mr20">';
  173. if(d[i].IfAddblank == 1){
  174. dxt_li += '<input type="checkbox" checked=checked onclick="setItemBlankPanel(this,'+d[i].ItemId+')" />';
  175. }else dxt_li += '<input type="checkbox" onclick="setItemBlankPanel(this,'+d[i].ItemId+')" />';
  176. dxt_li += '<span>选项后增加填空框</span></label><label class="valign-m-chk mr20">';
  177. if(d[i].IfAllowNull == 1){
  178. dxt_li += '<input checked=checked type="checkbox" onclick="setItemBlank(this,'+d[i].ItemId+')" />';
  179. }else dxt_li += '<input type="checkbox" onclick="setItemBlank(this,'+d[i].ItemId+')" />';
  180. dxt_li += '<span>该空可不填</span></label><i class="icon icon-top mr15" onclick="setQuestionItemUp(this)"></i>';
  181. dxt_li += '<i class="icon icon-bottom mr15" onclick="setQuestionItemDown(this)"></i>';
  182. dxt_li += '<i class="icon icon-del mr15" onclick="delQuestionItem(this,'+d[i].ItemId+')"></i></span></div> </li>';
  183. }
  184. }
  185. return dxt_li;
  186. }
  187. function getJumpQuest(d){
  188. if(isEmpty(d.JumpQuest)){
  189. return '';
  190. }else{
  191. for(var i = 0;i<QuestionOption.length;i++){
  192. if(QuestionOption[i].id == d.JumpQuest){
  193. return "<span style='color:red'>(该题跳转至Q"+(i+1)+")</span>";
  194. }
  195. }
  196. }
  197. return '';
  198. }
  199. function _ajax(url,param,flag){
  200. var obj = null;
  201. try{
  202. $.ajax({
  203. type: 'POST',
  204. url: url,
  205. data: param,
  206. async: flag,
  207. timeout : 8000,
  208. dataType: 'json',
  209. success: function(data){
  210. obj = data;
  211. }
  212. });
  213. }catch(err){
  214. ComWbj.artTips("提示","error",err,2,null);
  215. // ComWbj.alertIconNo('提示:',err,'error');
  216. }
  217. if(!flag) return obj;
  218. }
  219. function isEmpty(s){
  220. if(s == undefined){
  221. return true;
  222. }else{
  223. if(s == null || s == '' ||
  224. s == 'null' || s.length < 1){
  225. return true;
  226. }
  227. }
  228. return false;
  229. }