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.
 
 
 
 
 
 

169 lines
5.3 KiB

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