card.vue 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <template>
  2. <view class="card flex" @tap="goDetail(item)">
  3. <view class=card-left>
  4. <img mode="aspectFill" :src="item.image" alt="">
  5. </view>
  6. <view class="card-right flex-sub">
  7. <view class="card-title">{{item.attend_name}}</view>
  8. <view class="text-gray text-sm flex justify-between"><text>{{item.day}}</text><text class="text-student">¥{{item.money}}</text></view>
  9. <view class="text-gray text-sm">{{item.grade_desc}}</view>
  10. <view class="margin-top-sm">
  11. <button class="cu-btn round bg-student text-white button-hover" v-if="item.enable">报课</button>
  12. <button class="cu-btn round bg-grey button-hover text-white disabled" v-else>停止</button>
  13. </view>
  14. </view>
  15. </view>
  16. </template>
  17. <script>
  18. export default {
  19. props: {
  20. item: {
  21. type: Object,
  22. default() {
  23. return {}
  24. }
  25. }
  26. },
  27. data() {
  28. return {
  29. key: 1212
  30. }
  31. },
  32. methods: {
  33. goDetail(item) {
  34. if (!item.enable) {
  35. uni.showToast({ title: '课程已停止!', icon: 'none' })
  36. return false
  37. }
  38. this.globalNavigateTo('classDetail', { attend_id: this.item.class_attend_id })
  39. }
  40. }
  41. }
  42. </script>
  43. <style lang="scss" scoped>
  44. @import '~@/common/css/mixin.scss';
  45. .card{
  46. padding:30rpx;
  47. width:100%;
  48. &-title{
  49. @include title(10px,14px);
  50. }
  51. &-left{
  52. margin-right:20rpx;
  53. width:240rpx;
  54. image{
  55. height:96px;
  56. }
  57. }
  58. &-right{
  59. }
  60. }
  61. </style>