vipBaseInfo.vue 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  1. <template>
  2. <div class='vip-base'>
  3. <div class="left">
  4. <el-form label-position='right'
  5. label-width="120px"
  6. :model="topForm">
  7. <el-form-item label="指导老师">
  8. <el-input v-model="topForm.teacherCount"
  9. disabled></el-input>
  10. </el-form-item>
  11. <el-form-item label="科目名称">
  12. <el-input v-model="topForm.subject"
  13. disabled></el-input>
  14. </el-form-item>
  15. <el-form-item label="活动方案">
  16. <el-input v-model="topForm.active"
  17. disabled></el-input>
  18. </el-form-item>
  19. <el-form-item label="课程形式">
  20. <el-input v-model="topForm.status"
  21. disabled></el-input>
  22. </el-form-item>
  23. <el-form-item label="每班人数">
  24. <el-input v-model="topForm.classNum"
  25. disabled></el-input>
  26. </el-form-item>
  27. <el-form-item label="每课时长">
  28. <el-input v-model="topForm.classTime"
  29. disabled></el-input>
  30. </el-form-item>
  31. <el-form-item label="教学点名称">
  32. <el-input v-model="topForm.address"
  33. disabled></el-input>
  34. </el-form-item>
  35. <el-form-item label="线上课数">
  36. <el-input v-model="topForm.onlineClass"
  37. disabled></el-input>
  38. </el-form-item>
  39. <el-form-item label="线下课数">
  40. <el-input v-model="topForm.offlineClass"
  41. disabled></el-input>
  42. </el-form-item>
  43. <el-form-item label="报名开始时间">
  44. <el-input v-model="topForm.startTime"
  45. disabled></el-input>
  46. </el-form-item>
  47. <el-form-item label="报名结束时间">
  48. <el-input v-model="topForm.endTime"
  49. disabled></el-input>
  50. </el-form-item>
  51. </el-form>
  52. </div>
  53. <div class="right">
  54. <el-form label-position='right'
  55. label-width="120px"
  56. :model="rightForm">
  57. <el-form-item label="总课时数">
  58. <el-input v-model="rightForm.allClass"
  59. disabled></el-input>
  60. </el-form-item>
  61. <el-form-item label="课程单价(线上)">
  62. <el-input v-model="rightForm.onlineClass"
  63. disabled></el-input>
  64. </el-form-item>
  65. <el-form-item label="课程单价(线下)">
  66. <el-input v-model="rightForm.offlineClass"
  67. disabled></el-input>
  68. </el-form-item>
  69. <el-form-item label="课程总价">
  70. <el-input v-model="rightForm.allPrice"
  71. disabled></el-input>
  72. </el-form-item>
  73. <el-form-item label="当前课程进度">
  74. <el-input v-model="rightForm.progress"
  75. disabled></el-input>
  76. </el-form-item>
  77. </el-form>
  78. </div>
  79. </div>
  80. </template>
  81. <script>
  82. import { getVipGroupDetail, findVipGroupStudents, leaveSchool } from '@/api/vipSeting'
  83. export default {
  84. data () {
  85. return {
  86. topForm: {
  87. teacherCount: '',
  88. subject: '', // 科目名称
  89. active: '', // 活动名称
  90. status: '', //课程形式
  91. classNum: "", // 每班人数
  92. classTime: '', // 每课时长
  93. address: '', // 教学点名称
  94. onlineClass: '', //线上课数
  95. offlineClass: '', //线下课数
  96. startTime: '', // 报名开始时间
  97. endTime: ''
  98. },
  99. rightForm: {
  100. allClass: '',
  101. onlineClass: '',
  102. offlineClass: '',
  103. allPrice: '',
  104. progress: ''
  105. },
  106. tableList: []
  107. }
  108. }, mounted () {
  109. let id = this.$route.query.id;
  110. this.id = id;
  111. // 根据id 获取vip详情
  112. getVipGroupDetail({ vipGroupId: id }).then(res => {
  113. if (res.code == 200) {
  114. /**
  115. * teacherCount: '',
  116. subject: '', // 科目名称
  117. active: '', // 活动名称
  118. status: '', //课程形式
  119. classNum: "", // 每班人数
  120. classTime: '', // 每课时长
  121. address: '', // 教学点名称
  122. onlineClass: '', //线上课数
  123. offlineClass: '', //线下课数
  124. startTime: '', // 报名开始时间
  125. *
  126. */
  127. this.topForm.teacherCount = res.data.userName;
  128. this.topForm.subject = res.data.subjectName //科目名称
  129. this.topForm.active = res.data.vipGroupActivityName;
  130. this.topForm.status = res.data.categoryName
  131. this.topForm.classNum = res.data.studentNum;
  132. // totalClassTimes; 总课时数
  133. this.topForm.classTime = res.data.singleClassMinutes;
  134. // 教学点
  135. this.topForm.address = res.data.teacherSchoolName
  136. this.topForm.onlineClass = res.data.onlineClassesNum;
  137. this.topForm.offlineClass = res.data.offlineClassesNum;
  138. // endTime
  139. this.topForm.startTime = res.data.registrationStartTime;
  140. this.topForm.endTime = res.data.paymentExpireDate;
  141. this.rightForm.allClass = res.data.totalClassTimes;
  142. this.rightForm.onlineClass = res.data.onlineClassesUnitPrice;
  143. this.rightForm.offlineClass = res.data.offlineClassesUnitPrice;
  144. this.rightForm.allPrice = res.data.totalPrice;
  145. this.rightForm.progress = res.data.currentClassTimes + '/' + res.data.totalClassTimes;
  146. this.$emit('getName', res.data.name);
  147. /**
  148. * allClass: '',
  149. onlineClass: '',
  150. offlineClass: '',
  151. allPrice: '',
  152. progress: ''
  153. */
  154. }
  155. });
  156. // 根据id 获取vip学员
  157. this.getStudents();
  158. // console.log(this.$route)
  159. },
  160. methods: {
  161. getStudents () {
  162. findVipGroupStudents({ vipGroupId: this.id }).then(res => {
  163. if (res.code == 200) {
  164. this.tableList = res.data.rows;
  165. }
  166. })
  167. },
  168. leaveSchool (scope) {
  169. let studentId = scope.row.id;
  170. let vipGroupId = this.id;
  171. leaveSchool({ studentId, vipGroupId }).then(res => {
  172. if (res.code == 200) {
  173. this.$message.success('退学成功')
  174. scope._self.$refs[scope.$index].doClose();
  175. this.getStudents();
  176. }
  177. })
  178. }
  179. },
  180. }
  181. </script>
  182. <style lang="scss" scoped>
  183. .vip-base {
  184. /deep/.el-select {
  185. width: 180px !important;
  186. }
  187. /deep/.el-date-editor.el-input,
  188. /deep/.el-date-editor.el-input__inner {
  189. width: 180px !important;
  190. }
  191. /deep/.el-input {
  192. width: 180px !important;
  193. }
  194. display: flex;
  195. flex-direction: row;
  196. justify-content: flex-start;
  197. .left {
  198. width: 400px;
  199. }
  200. .tableWrap {
  201. margin-top: 40px;
  202. h4 {
  203. font-size: 16px;
  204. font-weight: normal;
  205. margin-bottom: 20px;
  206. }
  207. }
  208. }
  209. </style>