collect.vue 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. <template>
  2. <view style="padding: 30rpx;" >
  3. <view style="padding: 0 50rpx;">
  4. <uni-segmented-control :current="current" :values="items" @clickItem="onClickItem" styleType="button" activeColor="#2F4379"></uni-segmented-control>
  5. </view>
  6. <view >
  7. <view v-show="current === 0">
  8. <view class="content" v-for="(item,index) in list1" :key="index" @click="jumpDetail(item)">
  9. <view class="c_t1">
  10. {{$method.timestampToTime(item.createTime)}}
  11. </view>
  12. <view>
  13. <u-row >
  14. <u-col span="5" >
  15. <view style="padding: 5rpx;">
  16. <image :src="$method.splitImgHost(item.coverUrl)" class="c_img"></image>
  17. </view>
  18. </u-col>
  19. <u-col span="7" >
  20. <view style="position: relative;height: 134rpx;padding-left: 10rpx;">
  21. <view class="c_title">
  22. {{item.courseName}}
  23. </view>
  24. </view>
  25. </u-col>
  26. </u-row>
  27. </view>
  28. </view>
  29. </view>
  30. <view v-show="current === 1">
  31. <view class="content" v-for="(item,index) in list2" :key="index" @click="jumpDetail(item)">
  32. <view class="c_t1">
  33. {{$method.timestampToTime(item.createTime)}}
  34. </view>
  35. <view>
  36. <u-row >
  37. <u-col span="5" >
  38. <view style="padding: 5rpx;">
  39. <image :src="$method.splitImgHost(item.coverUrl)" class="c_img"></image>
  40. </view>
  41. </u-col>
  42. <u-col span="7" >
  43. <view style="position: relative;height: 134rpx;padding-left: 10rpx;">
  44. <view class="c_title">
  45. {{item.bankName}}
  46. </view>
  47. </view>
  48. </u-col>
  49. </u-row>
  50. </view>
  51. </view>
  52. </view>
  53. <view v-show="current === 2">
  54. <view class="content" v-for="(item,index) in list3" :key="index" @click="jumpDetail(item)">
  55. <view class="c_t1">
  56. {{$method.timestampToTime(item.createTime)}}
  57. </view>
  58. <view>
  59. <u-row >
  60. <u-col span="5" >
  61. <view style="padding: 5rpx;">
  62. <image :src="$method.splitImgHost(item.coverUrl)" class="c_img"></image>
  63. </view>
  64. </u-col>
  65. <u-col span="7" >
  66. <view style="position: relative;height: 134rpx;padding-left: 10rpx;">
  67. <view class="c_title">
  68. {{item.name}}
  69. </view>
  70. </view>
  71. </u-col>
  72. </u-row>
  73. </view>
  74. </view>
  75. </view>
  76. <view v-if="paramList[current].showStatus" style="text-align: center;margin-top: 24rpx;">到底啦~</view>
  77. </view>
  78. </view>
  79. </template>
  80. <script>
  81. export default {
  82. data() {
  83. return {
  84. current:0,
  85. items: [
  86. '课程',
  87. '刷题',
  88. '重点考点'
  89. ],
  90. list1: [],
  91. list2: [],
  92. list3: [],
  93. paramList: [
  94. {
  95. pageNum: 1,
  96. pageSize: 10,
  97. total: 0,
  98. showStatus: 0
  99. },
  100. {
  101. pageNum: 1,
  102. pageSize: 10,
  103. total: 0,
  104. showStatus: 0
  105. },
  106. {
  107. pageNum: 1,
  108. pageSize: 10,
  109. total: 0,
  110. showStatus: 0
  111. }
  112. ],
  113. }
  114. },
  115. onLoad(option) {
  116. this.initList()
  117. },
  118. onShow(){
  119. },
  120. methods: {
  121. jumpDetail(item) {
  122. if (this.current == 0) {
  123. this.$navTo.togo('/pages2/course/detail', {
  124. id: item.courseId
  125. });
  126. return;
  127. }
  128. if (this.current == 1) {
  129. this.$navTo.togo('/pages2/bank/detail', {
  130. id: item.bankId
  131. });
  132. return;
  133. }
  134. if (this.current == 2) {
  135. this.$navTo.togo('/pages2/course/keynote', {
  136. id: item.fileId
  137. });
  138. return;
  139. }
  140. },
  141. initList() {
  142. this.courseList();
  143. this.bankList();
  144. this.noteList();
  145. },
  146. onClickItem(e){
  147. this.current = e.currentIndex
  148. },
  149. //课程
  150. courseList() {
  151. var self = this;
  152. var param = this.paramList[0];
  153. this.$api.courseCollectList(param).then(res => {
  154. self.paramList[0].total = res.data.total;
  155. self.list1.push.apply(self.list1, res.data.rows);
  156. if (self.list1.length === res.data.total) {
  157. self.paramList[0].showStatus = true;
  158. }
  159. });
  160. },
  161. //题库
  162. bankList() {
  163. var self = this;
  164. var param = this.paramList[1];
  165. this.$api.bankCollectList(param).then(res => {
  166. self.paramList[1].total = res.data.total;
  167. self.list2.push.apply(self.list2, res.data.rows);
  168. if (self.list2.length === res.data.total) {
  169. self.paramList[1].showStatus = true;
  170. }
  171. });
  172. },
  173. //考试重点
  174. noteList() {
  175. var self = this;
  176. var param = this.paramList[2];
  177. this.$api.courseNoteList(param).then(res => {
  178. self.paramList[2].total = res.data.total;
  179. self.list3.push.apply(self.list3, res.data.rows);
  180. if (self.list3.length === res.data.total) {
  181. self.paramList[2].showStatus = true;
  182. }
  183. });
  184. },
  185. },
  186. }
  187. </script>
  188. <style scope>
  189. .c_log{
  190. font-size: 20rpx;
  191. font-family: PingFang SC;
  192. font-weight: 400;
  193. color: #2F4379;
  194. position: absolute;
  195. bottom: 10rpx;
  196. }
  197. .c_title{
  198. font-size: 30rpx;
  199. font-family: PingFang SC;
  200. font-weight: bold;
  201. color: #2F4379;
  202. padding-top: 10rpx;
  203. }
  204. .c_img{
  205. width: 278rpx;
  206. height: 134rpx;
  207. }
  208. .c_t1{
  209. font-size: 20rpx;
  210. color: #2F4379;
  211. padding: 15rpx;
  212. }
  213. .content{
  214. margin-top: 20rpx;
  215. width: 100%;
  216. height: 225rpx;
  217. background: #FFFFFF;
  218. box-shadow: 0rpx 0rpx 16rpx 4rpx rgba(145, 156, 178, 0.1);
  219. border-radius: 32rpx;
  220. }
  221. .segmented-control__text{
  222. font-size: 24rpx !important;
  223. }
  224. .segmented-control{
  225. height: 56rpx !important;
  226. background-color: #F8F9FF;
  227. }
  228. page {
  229. background: #FFFFFF;
  230. }
  231. </style>