鸿宇研学生前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
1.9 KiB

  1. <template>
  2. <view class="page__view">
  3. <navbar title="切换档案" leftClick @leftClick="$utils.navigateBack" color="#191919" bgColor="#FFFFFF" />
  4. <view class="list">
  5. <uv-radio-group
  6. v-model="selectedId"
  7. placement="column"
  8. shape="circle"
  9. size="36rpx"
  10. iconSize="36rpx"
  11. activeColor="#00A9FF"
  12. >
  13. <view class="list-item" v-for="item in list" :key="item.id">
  14. <memberCard
  15. :data="item"
  16. :showRadio="true"
  17. ></memberCard>
  18. </view>
  19. </uv-radio-group>
  20. </view>
  21. </view>
  22. </template>
  23. <script>
  24. import { mapState } from 'vuex'
  25. import mixinsList from '@/mixins/list.js'
  26. import memberCard from './memberCard.vue'
  27. export default {
  28. mixins: [mixinsList],
  29. components: {
  30. memberCard,
  31. },
  32. data() {
  33. return {
  34. queryParams: {
  35. pageNo: 1,
  36. pageSize: 10,
  37. status: 1, // 绑定状态(status):0-确认中 1-已绑定 2-已拒绝
  38. },
  39. mixinsListApi: 'queryBindList',
  40. selectedId: null,
  41. }
  42. },
  43. computed: {
  44. ...mapState(['memberInfo']),
  45. },
  46. onLoad(arg) {
  47. if (this.memberInfo?.id) {
  48. this.selectedId = this.memberInfo.id
  49. }
  50. this.getData()
  51. },
  52. onUnload() {
  53. if (!this.selectedId) {
  54. this.$store.commit('setMemberInfo', null)
  55. return
  56. }
  57. const target = this.list.find(item => item.id === this.selectedId)
  58. this.$store.commit('setMemberInfo', target)
  59. },
  60. methods: {
  61. onSelect(id) {
  62. console.log('onSelect', id)
  63. this.selectedId = id
  64. },
  65. },
  66. }
  67. </script>
  68. <style scoped lang="scss">
  69. .page__view {
  70. width: 100vw;
  71. min-height: 100vh;
  72. background: $uni-bg-color;
  73. position: relative;
  74. }
  75. .list {
  76. padding: 32rpx 40rpx;
  77. &-item {
  78. & + & {
  79. margin-top: 24rpx;
  80. }
  81. }
  82. }
  83. </style>