skillsTraining.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <!-- 我的技能培训 -->
  2. <template>
  3. <view class="training">
  4. <u-navbar back-text="" title="" back-icon-color="#FFFFFF" :background="{ background: '#3D5D4C' }" :border-bottom="false"></u-navbar>
  5. <z-paging
  6. ref="paging"
  7. v-model="trainingList"
  8. @query="queryList"
  9. >
  10. <!-- 选项卡 -->
  11. <view class="training-tab" slot="top">
  12. <u-tabs :list="tabList" :is-scroll="true" :current="current" @change="tabChange" bg-color="#f2f2f2" inactive-color="#000000" active-color="#709078" :bold="false" bar-width="40" bar-height="6" :active-item-style="{color: '#000000'}"></u-tabs>
  13. </view>
  14. <!-- 列表 -->
  15. <view class="training-list">
  16. <view class="training-list-item" v-for="(item, index) in trainingList" :key="index" @click="jumpPage('/pages/mine/skillsTraining/skillsTrainingDetails/skillsTrainingDetails', { id: item.id })">
  17. <view class="left">
  18. <u-image :src="item.img" mode="aspectFill" width="204" height="220" border-radius="10"></u-image>
  19. </view>
  20. <view class="right">
  21. <view class="name">{{ item.name }}</view>
  22. <view class="school">培训学校:{{ item.schoolName }}</view>
  23. <view class="flex">
  24. <view class="rate">
  25. 难度<u-rate :count="5" v-model="item.difficult" inactive-color="#EF651F" active-color="#EF651F" disabled size="30" gutter="6"></u-rate>
  26. </view>
  27. <!-- <view>报名人数:{{ item.people }}</view> -->
  28. </view>
  29. <view>开始时间:{{ item.applyTime }}</view>
  30. <view>培训周期:{{ item.cycle }}个月</view>
  31. </view>
  32. </view>
  33. </view>
  34. </z-paging>
  35. </view>
  36. </template>
  37. <script>
  38. export default {
  39. data() {
  40. return {
  41. current: 0,
  42. tabList: [
  43. { value: 1, name: '培训中' },
  44. { value: 0, name: '已报名' }
  45. ],
  46. trainingList: []
  47. }
  48. },
  49. methods: {
  50. /**
  51. * tab切换
  52. * @param { Number } cur
  53. */
  54. tabChange(cur) {
  55. this.current = cur
  56. this.getList(1, 10, this.tabList[cur].value);
  57. },
  58. /**
  59. * 下拉分页组件触发
  60. * @param {Number} pageNum
  61. * @param {Number} pageSize
  62. */
  63. queryList(pageNum, pageSize) {
  64. this.getList(pageNum, pageSize, this.tabList[this.current].value);
  65. },
  66. /**
  67. * 获取列表
  68. * @param {Object} pageNum
  69. * @param {Object} pageSize
  70. */
  71. getList(pageNum, pageSize, type) {
  72. this.$u.api.skillTraining.getMyTrainingListApi({ pageNum, pageSize, type }).then(res => {
  73. if (res.code === 200) {
  74. this.$refs.paging.complete(res.rows);
  75. } else {
  76. this.$refs.paging.complete([]);
  77. this.$refs.uToast.show({
  78. title: res.msg,
  79. type: 'error'
  80. })
  81. }
  82. })
  83. },
  84. /**
  85. * @param {Object} url
  86. * @param {Object} params
  87. */
  88. jumpPage(url, params) {
  89. this.$u.route({ url, params })
  90. }
  91. }
  92. }
  93. </script>
  94. <style lang="scss" scoped>
  95. @import './skillsTraining.scss';
  96. </style>