You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

171 lines
5.4 KiB

  1. (function() {
  2. var page = {
  3. isScroll: true,
  4. init: function($page, param) {
  5. console.log(param)
  6. var path = config.webapi;
  7. learun.layer.loading(true,"加载数据中...");
  8. learun.httpget(path + "/learun/ask/paper", {
  9. VID: param.VID
  10. }, (res) => {
  11. learun.layer.loading(false);
  12. $page.find('.inSecTitle').html(res.VTitle).end().find('.inSecTime').html(res.VStartTime + ' - ' + res.VStopTime)
  13. var dataList = res.Ask_Questions;
  14. console.log(dataList)
  15. var otherHtml = '<div class="shenInput shenInput3">'+
  16. '<span>其他</span>'+
  17. '<div class="shenInputBox shenInputBox1">'+
  18. '<input data-rule="required;" type="text" name="fieldOther" class="inputTxt" placeholder="请填写备注" />'+
  19. '</div>'+
  20. '</div>';
  21. var html = '';
  22. $.each(dataList, function(i, n){
  23. html += '<div class="signSec2Box" qid="'+ n.QID+'" iid="" qmust="'+ n.QMust +'" qmin="'+ n.QMin +'" qmax="'+ n.QMax+'">';
  24. var flag = false;
  25. if(n.QType == 1){
  26. html += '<div class="shenInput">'+
  27. '<div class="shenInputBox">'+
  28. '<div class="signTxt">'+ n.QTitle +'</div>'+
  29. '<div class="inputRadioRow">';
  30. $.each(n.Ask_QuestionItems, function(j, m){
  31. m.QShowText ? flag = true : '';
  32. html += '<div class="inputRadioCol4">'+
  33. '<i class="inputRadio checkBoxs" flag="'+ flag +'" iid="'+ m.IID +'"></i>'+
  34. '<span>'+ m.ITitle +'</span>'+
  35. '</div>';
  36. })
  37. }else if(n.QType == 2){
  38. html += '<div class="signTextarea">'+
  39. '<div class="signTextareaBox">'+
  40. '<div class="signTxt">'+ n.QTitle +'</div>'+
  41. '<div class="inputRadioRow">';
  42. $.each(n.Ask_QuestionItems, function(j, m){
  43. if(m.QShowText){
  44. flag = true;
  45. }
  46. html += '<div class="inputRadioCol2">'+
  47. '<i class="inputCheck checkBoxs" flag="'+ flag +'" iid="'+ m.IID +'"></i>'+
  48. '<span>'+ m.ITitle +'</span>'+
  49. '</div>';
  50. })
  51. }
  52. html += '</div></div></div>';
  53. html += flag? otherHtml + '</div>' : '</div>';
  54. })
  55. $('.index_box').html(html)
  56. });
  57. $page.find('.shenBtn').on('tap', function() {
  58. var jsonArr= [];
  59. var qmustFlag = false;
  60. var flag = false;
  61. $('.signTxt').removeClass('redEva');
  62. $('.signSec2Box').each(function(i, n){
  63. var _this = $(n);
  64. var qmust = _this.attr('qmust');
  65. var qmin = _this.attr('qmin') == 'null'? 0 : _this.attr('qmin');
  66. var qmax = _this.attr('qmax') == 'null'? 0 : _this.attr('qmax');
  67. var checkBoxs = _this.find('.checkBoxs.active');
  68. var ind = checkBoxs.length;
  69. if(qmust == 'true' && ind == 0){
  70. qmustFlag = true;
  71. _this.find('.signTxt').addClass('redEva');
  72. }
  73. if((qmin && ind < qmin) || (qmax && ind > qmax)){
  74. flag = true;
  75. _this.find('.signTxt').addClass('redEva');
  76. }
  77. var UText = _this.find('.shenInput3 .inputTxt').val();
  78. var qid = $(this).attr("qid");
  79. checkBoxs.each(function(j, m){
  80. var txt = $(m).attr('flag') == 'true'? UText : '';
  81. jsonArr.push({QID: qid, IID: $(m).attr("iid"), UText: txt})
  82. })
  83. })
  84. // console.log(jsonArr)
  85. if(qmustFlag){
  86. learun.layer.toast('有必选项未选择');
  87. return
  88. }
  89. if(flag){
  90. learun.layer.toast('有选择项少选或多选');
  91. return
  92. }
  93. // return
  94. learun.httppost(path + "/learun/ask/savepaper",
  95. {
  96. VID: param.VID,
  97. LessonNo: param.LessonNo,
  98. EmpNo: param.EmpNo,
  99. postarray: jsonArr
  100. }, (res) => {
  101. learun.layer.toast('操作成功');
  102. learun.nav.closeCurrent();
  103. var prepage = learun.nav.getpage('Ask');
  104. prepage.grid.reload();
  105. });
  106. })
  107. //单选框
  108. $page.on('tap', '.shenInputBox .inputRadio', function() {
  109. if (!$(this).hasClass('active')) {
  110. // var iid = $(this).attr('iid');
  111. $(this).addClass('active').parents('.shenInputBox').find('.inputRadio').not($(this)).removeClass('active');
  112. judgeRideo($(this))
  113. }
  114. })
  115. //多选框
  116. $page.on('tap', '.inputCheck', function() {
  117. var parents = $(this).parents('.signSec2Box');
  118. var qmin = parents.attr('qmin') == 'null'? 0 : parents.attr('qmin');
  119. var qmax = parents.attr('qmax') == 'null'? 0 : parents.attr('qmax');
  120. var ind = parents.find('.inputCheck.active').length;
  121. if ($(this).hasClass('active')) {
  122. if(qmin && ind <= qmin){
  123. learun.layer.toast('该选项最少选择'+ qmin + '项');
  124. return
  125. }
  126. $(this).removeClass('active')
  127. } else {
  128. if(qmax && ind >= qmax){
  129. learun.layer.toast('该选项最多选择'+ qmax + '项');
  130. return
  131. }
  132. $(this).addClass('active');
  133. }
  134. // var iids = '';
  135. // parents.find('.inputCheck.active').each(function(i, n){
  136. // var iid = $(n).attr('iid');
  137. // iids += i== 0? iid : ',' + iid;
  138. // })
  139. // parents.attr('iid', iids)
  140. judgeRideo($(this))
  141. })
  142. //是否为其他选项判断
  143. function judgeRideo(obj) {
  144. var parents = obj.parents('.signSec2Box');
  145. var inputs = parents.find('.shenInput3');
  146. if (parents.find("i[flag='true']").hasClass('active')) {
  147. inputs.css({
  148. display: 'block'
  149. });
  150. } else {
  151. inputs.css({
  152. display: 'none'
  153. }).find('input').val('');
  154. }
  155. }
  156. },
  157. destroy: function(pageinfo) {
  158. }
  159. };
  160. return page;
  161. })();