add.php 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302
  1. <?php use common\widgets\UeditorWidget; ?>
  2. <div class="page-title">
  3. <div class="title-env">
  4. <h1 class="title">新建培训班</h1>
  5. </div>
  6. <div class="breadcrumb-env">
  7. <ol class="breadcrumb bc-1">
  8. <li>
  9. <a href="/"><i class="fa-home"></i>Home</a>
  10. </li>
  11. <li>
  12. <a href="javascript:void(0)">花艺培训</a>
  13. </li>
  14. <li class="active">
  15. <strong>培训课程</strong>
  16. </li>
  17. </ol>
  18. </div>
  19. </div>
  20. <div class="row">
  21. <div class="col-sm-12">
  22. <div class="panel panel-default">
  23. <div class="panel-body">
  24. <form role="form" class="form-horizontal">
  25. <div class="form-group">
  26. <label class="col-sm-2 control-label">*班级名称:</label>
  27. <div class="col-sm-10">
  28. <input type="text" class="form-control" name="className" placeholder="">
  29. <p></p>
  30. </div>
  31. </div>
  32. <div class="form-group">
  33. <label class="col-sm-2 control-label" for="field-1">*课程概要:</label>
  34. <div class="col-sm-10">
  35. <textarea name="classSummary" class="form-control" placeholder=""></textarea>
  36. <p></p>
  37. </div>
  38. </div>
  39. <div class="form-group">
  40. <label class="col-sm-2 control-label" for="field-1">*课程简介:</label>
  41. <div class="col-sm-10">
  42. <textarea name="classIntro" class="form-control" placeholder=""></textarea>
  43. <p></p>
  44. </div>
  45. </div>
  46. <div class="form-group">
  47. <label class="col-sm-2 control-label">*学费:</label>
  48. <div class="col-sm-10">
  49. <input type="number" class="form-control" name="classTuition" placeholder="">
  50. <p></p>
  51. </div>
  52. </div>
  53. <div class="form-group">
  54. <label class="col-sm-2 control-label">*节课数:</label>
  55. <div class="col-sm-10">
  56. <input type="number" class="form-control" name="classLesson" placeholder="">
  57. <p></p>
  58. </div>
  59. </div>
  60. <div class="form-group-separator"></div>
  61. <div name="courseList">
  62. <div class="form-group" no="1">
  63. <label class="col-sm-2 control-label">*课程1:</label>
  64. <div class="col-sm-10">
  65. <input type="tel" class="form-control" name="courseName[]" placeholder="名称">
  66. <textarea name="courseIntro[]" class="form-control" placeholder="简介" style="margin-top:5px;"></textarea>
  67. <p></p>
  68. </div>
  69. </div>
  70. <div class="form-group" no="2">
  71. <label class="col-sm-2 control-label">*课程2:</label>
  72. <div class="col-sm-10">
  73. <input type="tel" class="form-control" name="courseName[]" placeholder="名称">
  74. <textarea name="courseIntro[]" class="form-control" placeholder="简介" style="margin-top:5px;"></textarea>
  75. <p></p>
  76. </div>
  77. </div>
  78. <div class="form-group" no="3">
  79. <label class="col-sm-2 control-label">*课程3:</label>
  80. <div class="col-sm-10">
  81. <input type="tel" class="form-control" name="courseName[]" placeholder="名称">
  82. <textarea name="courseIntro[]" class="form-control" placeholder="简介" style="margin-top:5px;"></textarea>
  83. <p></p>
  84. </div>
  85. </div>
  86. </div>
  87. <div style="padding-bottom:8px;font-size:13px;">
  88. <div class="form-group">
  89. <label class="col-sm-2 control-label"> </label>
  90. <div class="col-sm-10" name="addCourse" style="cursor:pointer;">
  91. <li class="fa-plus"></li> 增加课程
  92. </div>
  93. </div>
  94. </div>
  95. <div class="form-group" style="text-align:center;">
  96. <button type="button" onclick="addSubmit('click',this)" class="btn btn-info btn-single">确认</button>
  97. <button type="button" onclick="history.go(-1);" class="btn btn-info btn-single">返回</button>
  98. </div>
  99. </form>
  100. </div>
  101. </div>
  102. </div>
  103. </div>
  104. <!-- footer -->
  105. <?php
  106. use backend\widgets\FooterWidget;
  107. ?>
  108. <?= FooterWidget::widget()?>
  109. <!-- footer -->
  110. <script>
  111. //增加课程
  112. $("div[name=addCourse]").click(function(){
  113. var courseList = $("div[name=courseList]");
  114. var num = $("div[name=courseList] > div").length;
  115. num++;
  116. if(num > 30){
  117. xhPopMsg('最多只能添加30个课程',1300);
  118. return;
  119. }
  120. var courseHtml = '<div class="form-group" no="'+num+'">\
  121. <label class="col-sm-2 control-label">*课程'+num+':</label>\
  122. <div class="col-sm-10">\
  123. <input type="tel" class="form-control" name="courseName[]" placeholder="名称" style="width:85%;display:inline-block;"> <li onclick="delCourse(this,'+num+')" style="cursor:pointer;font-size:130%" class="fa-trash"></li>\
  124. <textarea name="courseIntro[]" class="form-control" placeholder="简介" style="margin-top:5px;"></textarea>\
  125. <p></p>\
  126. </div>\
  127. </div>';
  128. courseList.append(courseHtml);
  129. });
  130. //删除课程
  131. function delCourse()
  132. {
  133. var o = arguments[0];
  134. var no = arguments[1];
  135. var num = $("div[name=courseList] > div").length;
  136. if(no < num){
  137. xhPopMsg('请从最后面开始删除课程',1300);
  138. return;
  139. }
  140. $(o).parent().parent().remove();
  141. }
  142. //添加课程验证流程
  143. var className = $("input[name=className]");
  144. var classSummary = $("textarea[name=classSummary]");
  145. var classIntro = $("textarea[name=classIntro]");
  146. var classTuition = $("input[name=classTuition]");
  147. var classLesson = $("input[name=classLesson]");
  148. var needValidate = [className,classSummary,classIntro,classTuition,classLesson];
  149. //添加课程验证流程
  150. addSubmit();
  151. function addSubmit()
  152. {
  153. setStats(className, '请填写课程名称', function(val, mess){
  154. var info=[false, mess];
  155. if(val.length <= 0){
  156. info[1] = '请填写课程名称';
  157. }else if(getLength(val) >=0 && getLength(val) <=40){
  158. info[0] = true;
  159. info[1] = '填写正确';
  160. }else{
  161. info[0] = false;
  162. }
  163. return info;
  164. });
  165. setStats(classSummary, '请填写课程概要', function(val, mess){
  166. var info=[false, mess];
  167. if(val.length <= 0){
  168. info[1] = '请填写课程概要';
  169. }else if(getLength(val) >=0 && getLength(val) <=40){
  170. info[0] = true;
  171. info[1] = '填写正确';
  172. }else{
  173. info[0] = false;
  174. }
  175. return info;
  176. });
  177. setStats(classIntro, '请填写课程简介', function(val, mess){
  178. var info=[false, mess];
  179. if(val.length <= 0){
  180. info[1] = '请填写课程简介';
  181. }else if(getLength(val) >=0 && getLength(val) <=40){
  182. info[0] = true;
  183. info[1] = '填写正确';
  184. }else{
  185. info[0] = false;
  186. }
  187. return info;
  188. });
  189. setStats(classTuition, '请填写学费', function(val, mess){
  190. var info=[false, mess];
  191. if(val.length <= 0){
  192. info[1] = '请填写学费';
  193. }else if(getLength(val) >=0 && getLength(val) <=40){
  194. info[0] = true;
  195. info[1] = '填写正确';
  196. }else{
  197. info[0] = false;
  198. }
  199. return info;
  200. });
  201. setStats(classLesson, '请填写节课数', function(val, mess){
  202. var info=[false, mess];
  203. if(val.length <= 0){
  204. info[1] = '请填写节课数';
  205. }else if(getLength(val) >=0 && getLength(val) <=40){
  206. info[0] = true;
  207. info[1] = '填写正确';
  208. }else{
  209. info[0] = false;
  210. }
  211. return info;
  212. });
  213. if(arguments[0] == 'click'){//用户点击提交
  214. var submitButton = arguments[1];//获取提交按钮对象
  215. var submitButtonObj = $(submitButton);
  216. if(submitButtonObj.attr('submitStatus') == 'yes'){
  217. xhPopMsg('表单已经提交成功,不允许重复提交');
  218. return;
  219. }
  220. submitButtonObj.attr('submitStatus','yes');
  221. setTimeout(function(){
  222. submitButtonObj.attr('submitStatus','no');
  223. },3000);
  224. var verifyStatus = true;
  225. for(var m=0;m<needValidate.length;m++){
  226. var singleObj = needValidate[m];
  227. if(singleObj.attr('addStatus') == undefined){
  228. singleObj.blur();
  229. }
  230. if(singleObj.attr('addStatus') == 'no'){
  231. verifyStatus = false;
  232. continue;
  233. }
  234. }
  235. if(verifyStatus == false){
  236. return;
  237. }
  238. var courseString = '';
  239. $("div[name=courseList] > div").each(function(){
  240. var oneCourseName = $(this).find("input");
  241. var oneCourseIntro = $(this).find("textarea");
  242. var oneCourseNameVal = oneCourseName.val();
  243. var oneCourseIntroVal = oneCourseIntro.val();
  244. if(oneCourseNameVal.length <= 0){
  245. xhPopMsg('课程名不能留空哦~');
  246. verifyStatus = false;
  247. return false;
  248. }
  249. courseString += oneCourseNameVal+'|{-}|'+oneCourseIntroVal+'|{=}|'
  250. });
  251. if(verifyStatus == false){
  252. return;
  253. }
  254. var data = "&_csrf=<?= Yii::$app->request->csrfToken ?>&courseString="+courseString;
  255. data += "&className="+className.val()+"&classSummary="+classSummary.val()+"&classIntro="+classIntro.val()+"&classTuition="+classTuition.val()+"&classLesson="+classLesson.val();
  256. $.ajax({type:"POST",url:'/class/save-add',data:data,dataType:'json',async:false,success:function(data){
  257. if(data.code == 'A0001'){
  258. xhPopMsg(data.msg,1300);
  259. setTimeout(function(){
  260. window.location.href='/class/list';
  261. },1400);
  262. }
  263. }
  264. });
  265. }
  266. }
  267. function setStats(obj,mess,check)
  268. {
  269. obj.focus(function(){
  270. $(this).removeAttr('addStatus');
  271. $(this).siblings('p').removeClass('help-error-mention').html('');
  272. $(this).parent().parent().removeClass("has-success").removeClass('has-error');
  273. });
  274. obj.blur(function(){
  275. var objVal = obj.val();
  276. var info = check(objVal,mess);
  277. if(info[0]){
  278. $(this).attr('addStatus','yes');
  279. $(this).siblings('p').removeClass('help-error-mention').html('');
  280. $(this).parent().parent().addClass("has-success").removeClass("has-error");
  281. }else{
  282. $(this).attr('addStatus','no');
  283. $(this).siblings('p').addClass('help-error-mention').html(info[1]);
  284. $(this).parent().parent().addClass("has-error").removeClass("has-success");
  285. }
  286. });
  287. }
  288. </script>