adminScheduleManage.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. var colors = [
  2. '#FF6666',
  3. '#FFFF33',
  4. '#FF9933',
  5. '#66cccc',
  6. '#FFCCCC',
  7. '#3399FF',
  8. '#9966FF',
  9. ];
  10. function formatDate(date){
  11. var year = date.getFullYear();
  12. var month = date.getMonth()+1+'';
  13. var day = date.getDate()+'';
  14. month.length===1 && (month = '0'+month)
  15. day.length===1 && (day = '0'+day)
  16. return year+'-'+month+'-'+day;
  17. }
  18. function formatTime(date){
  19. return date.getHours()+":"+date.getMinutes();
  20. }
  21. $(document).ready(function() {
  22. var hallId,
  23. scheduleDate = formatDate(new Date());
  24. initSelectAndDate();
  25. function getSchedules() {
  26. var schedules = [];
  27. getRequest(
  28. '/schedule/search?hallId='+hallId+'&startDate='+scheduleDate.replace(/-/g,'/'),
  29. function (res) {
  30. schedules = res.content;
  31. renderScheduleTable(schedules);
  32. },
  33. function (error) {
  34. alert(JSON.stringify(error));
  35. }
  36. );
  37. }
  38. function renderScheduleTable(schedules){
  39. $('.schedule-date-container').empty();
  40. $(".schedule-time-line").siblings().remove();
  41. schedules.forEach(function (scheduleOfDate) {
  42. $('.schedule-date-container').append("<div class='schedule-date'>"+formatDate(new Date(scheduleOfDate.date))+"</div>");
  43. var scheduleDateDom = $(" <ul class='schedule-item-line'></ul>");
  44. $(".schedule-container").append(scheduleDateDom);
  45. scheduleOfDate.scheduleItemList.forEach(function (schedule,index) {
  46. var scheduleStyle = mapScheduleStyle(schedule);
  47. scheduleDateDom.append(
  48. "<li class='schedule-item' style='background:"+scheduleStyle.color+";top:"+scheduleStyle.top+";height:"+scheduleStyle.height+"'>"+
  49. "<span>"+schedule.movieName+"</span>"+
  50. "<span class='error-text'>¥"+schedule.fare+"</span>"+
  51. "<span>"+formatTime(new Date(schedule.startTime))+"-"+formatTime(new Date(schedule.endTime))+"</span>"+
  52. "</li>");
  53. })
  54. })
  55. }
  56. function mapScheduleStyle(schedule) {
  57. var start = new Date(schedule.startTime).getHours()+new Date(schedule.startTime).getMinutes()/60,
  58. end = new Date(schedule.endTime).getHours()+new Date(schedule.endTime).getMinutes()/60 ;
  59. return {
  60. color: colors[schedule.movieId%colors.length],
  61. top: 40*start+'px',
  62. height: 40*(end-start)+'px'
  63. }
  64. }
  65. function initSelectAndDate() {
  66. $('#schedule-date-input').val(scheduleDate);
  67. getCinemaHalls();
  68. getAllMovies();
  69. // 过滤条件变化后重新查询
  70. $('#hall-select').change (function () {
  71. hallId=$(this).children('option:selected').val();
  72. getSchedules();
  73. });
  74. $('#schedule-date-input').change(function () {
  75. scheduleDate = $('#schedule-date-input').val();
  76. getSchedules();
  77. });
  78. }
  79. function getCinemaHalls() {
  80. var halls = [];
  81. getRequest(
  82. '/hall/all',
  83. function (res) {
  84. halls = res.content;
  85. hallId = halls[0].id;
  86. halls.forEach(function (hall) {
  87. $('#hall-select').append("<option value="+ hall.id +">"+hall.name+"</option>");
  88. $('#schedule-hall-input').append("<option value="+ hall.id +">"+hall.name+"</option>");
  89. });
  90. getSchedules();
  91. },
  92. function (error) {
  93. alert(JSON.stringify(error));
  94. }
  95. );
  96. }
  97. function getAllMovies() {
  98. getRequest(
  99. '/movie/all',
  100. function (res) {
  101. var movieList = res.content;
  102. movieList.forEach(function (movie) {
  103. $('#schedule-movie-input').append("<option value="+ movie.id +">"+movie.name+"</option>");
  104. });
  105. },
  106. function (error) {
  107. alert(error);
  108. }
  109. );
  110. }
  111. $('#schedule-form-btn').click(function () {
  112. var form = {
  113. hallId: $("#schedule-hall-input").children('option:selected').val(),
  114. movieId : $("#schedule-movie-input").children('option:selected').val(),
  115. startTime: $("#schedule-start-date-input").val(),
  116. endTime: $("#schedule-end-date-input").val(),
  117. fare: $("#schedule-price-input").val()
  118. };
  119. //todo 需要做一下表单验证?
  120. postRequest(
  121. '/schedule/add',
  122. form,
  123. function (res) {
  124. getSchedules();
  125. $("#scheduleModal").modal('hide');
  126. },
  127. function (error) {
  128. alert(JSON.stringify(error));
  129. }
  130. );
  131. })
  132. });