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.

EvaluationTeahcers.js 5.6 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  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. learun.layer.loading(true, "数据提交中...");
  57. var jsonArr= [];
  58. var qmustFlag = false;
  59. var flag = false;
  60. $('.signTxt').removeClass('redEva');
  61. $('.signSec2Box').each(function(i, n){
  62. var _this = $(n);
  63. var qmust = _this.attr('qmust');
  64. var qmin = _this.attr('qmin') == 'null'? 0 : _this.attr('qmin');
  65. var qmax = _this.attr('qmax') == 'null'? 0 : _this.attr('qmax');
  66. var checkBoxs = _this.find('.checkBoxs.active');
  67. var ind = checkBoxs.length;
  68. if(qmust == 'true' && ind == 0){
  69. qmustFlag = true;
  70. _this.find('.signTxt').addClass('redEva');
  71. }
  72. if((qmin && ind < qmin) || (qmax && ind > qmax)){
  73. flag = true;
  74. _this.find('.signTxt').addClass('redEva');
  75. }
  76. var UText = _this.find('.shenInput3 .inputTxt').val();
  77. var qid = $(this).attr("qid");
  78. checkBoxs.each(function(j, m){
  79. var txt = $(m).attr('flag') == 'true'? UText : '';
  80. jsonArr.push({QID: qid, IID: $(m).attr("iid"), UText: txt})
  81. })
  82. })
  83. // console.log(jsonArr)
  84. if(qmustFlag){
  85. learun.layer.loading(false);
  86. learun.layer.toast('有必选项未选择');
  87. return
  88. }
  89. if(flag){
  90. learun.layer.loading(false);
  91. learun.layer.toast('有选择项少选或多选');
  92. return
  93. }
  94. // return
  95. learun.httppost(path + "/learun/adms/eval/savepaper",
  96. {
  97. VID: param.VID,
  98. LessonNo: param.LessonNo,
  99. EmpNo: param.EmpNo,
  100. postarray: jsonArr
  101. }, (res) => {
  102. learun.layer.loading(false);
  103. if(res)
  104. {
  105. learun.layer.toast('操作成功');
  106. learun.nav.closeCurrent();
  107. var prepage = learun.nav.getpage('EvaluationTeach');
  108. prepage.grid.reload();
  109. }
  110. else
  111. {
  112. learun.nav.closeCurrent();
  113. var prepage = learun.nav.getpage('EvaluationTeach');
  114. prepage.grid.reload();
  115. }
  116. });
  117. })
  118. //单选框
  119. $page.on('tap', '.shenInputBox .inputRadio', function() {
  120. if (!$(this).hasClass('active')) {
  121. // var iid = $(this).attr('iid');
  122. $(this).addClass('active').parents('.shenInputBox').find('.inputRadio').not($(this)).removeClass('active');
  123. judgeRideo($(this))
  124. }
  125. })
  126. //多选框
  127. $page.on('tap', '.inputCheck', function() {
  128. var parents = $(this).parents('.signSec2Box');
  129. var qmin = parents.attr('qmin') == 'null'? 0 : parents.attr('qmin');
  130. var qmax = parents.attr('qmax') == 'null'? 0 : parents.attr('qmax');
  131. var ind = parents.find('.inputCheck.active').length;
  132. if ($(this).hasClass('active')) {
  133. if(qmin && ind <= qmin){
  134. learun.layer.toast('该选项最少选择'+ qmin + '项');
  135. return
  136. }
  137. $(this).removeClass('active')
  138. } else {
  139. if(qmax && ind >= qmax){
  140. learun.layer.toast('该选项最多选择'+ qmax + '项');
  141. return
  142. }
  143. $(this).addClass('active');
  144. }
  145. // var iids = '';
  146. // parents.find('.inputCheck.active').each(function(i, n){
  147. // var iid = $(n).attr('iid');
  148. // iids += i== 0? iid : ',' + iid;
  149. // })
  150. // parents.attr('iid', iids)
  151. judgeRideo($(this))
  152. })
  153. //是否为其他选项判断
  154. function judgeRideo(obj) {
  155. var parents = obj.parents('.signSec2Box');
  156. var inputs = parents.find('.shenInput3');
  157. if (parents.find("i[flag='true']").hasClass('active')) {
  158. inputs.css({
  159. display: 'block'
  160. });
  161. } else {
  162. inputs.css({
  163. display: 'none'
  164. }).find('input').val('');
  165. }
  166. }
  167. },
  168. destroy: function(pageinfo) {
  169. }
  170. };
  171. return page;
  172. })();