registrationNotice.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <!-- 报班通知 -->
  2. <template>
  3. <view class="registration">
  4. <z-paging
  5. ref="paging"
  6. v-model="noticeList"
  7. @query="queryList"
  8. >
  9. <view class="registration-list">
  10. <view class="registration-list-item" v-for="(item, index) in noticeList" :key="index">
  11. <view class="left">
  12. <u-image :src="item.img" mode="aspectFill" width="204" height="220" border-radius="10"/>
  13. </view>
  14. <view class="right">
  15. <view class="name">{{ item.name }}</view>
  16. <view class="school">{{ item.schoolName }}</view>
  17. <view class="content">{{ item.description }}</view>
  18. <view class="button" @click="signUp(item)">报名</view>
  19. </view>
  20. </view>
  21. </view>
  22. </z-paging>
  23. <u-toast ref="uToast" />
  24. </view>
  25. </template>
  26. <script>
  27. export default {
  28. data() {
  29. return {
  30. noticeList: []
  31. }
  32. },
  33. methods: {
  34. /**
  35. * 下拉分页组件触发
  36. * @param {Number} pageNum
  37. * @param {Number} pageSize
  38. */
  39. queryList(pageNum, pageSize) {
  40. this.getList(pageNum, pageSize)
  41. },
  42. /**
  43. * 获取列表
  44. * @param {Object} pageNum
  45. * @param {Object} pageSize
  46. */
  47. getList(pageNum, pageSize) {
  48. this.$u.api.skillTraining.getClassNoticeApi({ pageNum, pageSize }).then(res => {
  49. if (res.code === 200) {
  50. this.$refs.paging.complete(res.rows)
  51. } else {
  52. this.$refs.paging.complete([]);
  53. this.$refs.uToast.show({
  54. title: res.msg,
  55. type: 'error'
  56. })
  57. }
  58. })
  59. },
  60. /**
  61. * 报名
  62. * @param {Object} item
  63. */
  64. signUp(item) {
  65. this.$u.api.skillTraining.signUpClassApi({ packageId: item.id }).then(res => {
  66. if (res.code === 200) {
  67. this.jumpPage('/pages/skillsTraining/submitSuccess/submitSuccess');
  68. } else {
  69. this.$refs.uToast.show({
  70. title: res.msg,
  71. type: 'error'
  72. })
  73. }
  74. })
  75. }
  76. }
  77. }
  78. </script>
  79. <style lang="scss" scoped>
  80. @import './registrationNotice.scss';
  81. </style>