member.vue 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <template>
  2. <div class="courseModel" style="margin-top: 12px;">
  3. <template>
  4. <div class="yunTrain">
  5. <img :src="trainBg" />
  6. <div class="toolText">
  7. <p class="toolTitle">
  8. 团练宝
  9. <span @click="videoStatus = true"
  10. >查看视频<i class="icon_video"></i
  11. ></span>
  12. </p>
  13. <p class="toolDate">
  14. 购买后由机构根据教学情况,激活使用详细问题请咨询机构老师
  15. </p>
  16. </div>
  17. </div>
  18. </template>
  19. <div class="section">
  20. <el-row class="title-row">
  21. <el-col :span="12">练习系统</el-col>
  22. <el-col :span="5" :offset="1" style="text-align: right;">时长</el-col>
  23. <el-col :span="6" style="text-align: right;">价格</el-col>
  24. </el-row>
  25. <div v-for="(item, index) in toolsPackage" :key="index">
  26. <el-row class="option-row" @click.native="onTrainChange(item)">
  27. <el-col :span="12">
  28. <i
  29. class="check_default"
  30. :class="[
  31. item.isStatus ? 'check_active' : '',
  32. item.optionalFlag ? 'disabled' : ''
  33. ]"
  34. ></i>
  35. <span style="display: flex; align-items: center;">
  36. <template>{{ item.name }}</template>
  37. </span>
  38. </el-col>
  39. <el-col :span="6">
  40. <span style="color: #AAA; font-size: 12px;"
  41. >{{ item.num }}{{ item.period | unitFormat }}</span
  42. >
  43. </el-col>
  44. <el-col :span="6">
  45. <span style="color: #1A1A1A"
  46. >¥{{ item.actualAmount | moneyFormat }}</span
  47. >
  48. </el-col>
  49. </el-row>
  50. <el-row style="padding-left: 24px;" v-if="item.childGoodsList">
  51. <el-col
  52. v-for="(child, index) in item.childGoodsList"
  53. :key="child.name"
  54. >
  55. <span style="font-size: 12px; color: #808080;"
  56. >{{ child.name }}
  57. {{ item.childGoodsList.length - 1 == index ? "" : "、" }}</span
  58. >
  59. </el-col>
  60. </el-row>
  61. </div>
  62. </div>
  63. <el-dialog
  64. title="视频"
  65. :visible.sync="videoStatus"
  66. :modal-append-to-body="false"
  67. :append-to-body="true"
  68. class="videoDialog"
  69. width="30%"
  70. >
  71. <video
  72. style="width: 100%"
  73. v-if="videoStatus"
  74. controls="controls"
  75. class="ql-video"
  76. :src="'https://daya.ks3-cn-beijing.ksyun.com/202105/SWmqmvW.mp4'"
  77. :poster="require('../../../assets/images/musicGroup/video_bg.png')"
  78. />
  79. </el-dialog>
  80. </div>
  81. </template>
  82. <script>
  83. export default {
  84. name: "courseModel",
  85. props: {
  86. courseViewType: [Number, String],
  87. toolsPackage: Array,
  88. trainSmallBg: String
  89. },
  90. data() {
  91. return {
  92. trainBg: require("../../../assets/images/musicGroup/yunTrain_bg.png"),
  93. videoStatus: false
  94. };
  95. },
  96. methods: {
  97. onTrainChange(item) {
  98. // 乐器练习云教练点击时
  99. this.$emit("onCheckItem", item);
  100. },
  101. onQuestions(item) {
  102. this.$emit("onQuestions", item);
  103. }
  104. },
  105. filters: {
  106. unitFormat(val) {
  107. let template = {
  108. YEAR: "年",
  109. MONTH: "个月",
  110. QUARTERLY: "个季度",
  111. YEAR_HALF: "半年"
  112. };
  113. return template[val];
  114. }
  115. }
  116. };
  117. </script>
  118. <style lang="less" scoped>
  119. .giveTitle {
  120. margin-top: 16px;
  121. padding-top: 8px;
  122. color: #1a1a1a;
  123. font-size: 14;
  124. padding-left: 24;
  125. }
  126. .small_point {
  127. position: absolute;
  128. left: 8px;
  129. top: 7px;
  130. width: 6px;
  131. height: 6px;
  132. background: #01c1b5;
  133. border-radius: 50%;
  134. }
  135. @import url("./signUpPayment.less");
  136. </style>