Showing
1 changed file
with
135 additions
and
6 deletions
| 1 | <template> | 1 | <template> |
| 2 | - <div class="person-index-page"></div> | 2 | + <div class="person-index-page"> |
| 3 | + <div class="header-wrapper"> | ||
| 4 | + <div class="info"> | ||
| 5 | + <van-row> | ||
| 6 | + <van-col> | ||
| 7 | + <van-image round width="50" height="50" src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg" | ||
| 8 | + style="padding-right: 1rem;" /> | ||
| 9 | + </van-col> | ||
| 10 | + <van-col class="text-wrapper" span="18"> | ||
| 11 | + <div> | ||
| 12 | + <div class="username">瑟日古娜</div> | ||
| 13 | + <div class="toggle-user" @click="toggleUser"><van-icon name="plus" /> 关注</div> | ||
| 14 | + </div> | ||
| 15 | + <div class="address">呼和浩特市新城区蒙古族幼儿园</div> | ||
| 16 | + </van-col> | ||
| 17 | + </van-row> | ||
| 18 | + </div> | ||
| 19 | + | ||
| 20 | + <div class="sub-data"> | ||
| 21 | + <van-row> | ||
| 22 | + <van-col span="11" offset="1" class="un-tap-color"> | ||
| 23 | + <p>获赞</p> | ||
| 24 | + <p>25478</p> | ||
| 25 | + </van-col> | ||
| 26 | + <van-col span="1" class="divide">|</van-col> | ||
| 27 | + <van-col span="11" class="un-tap-color"> | ||
| 28 | + <p>粉丝</p> | ||
| 29 | + <p>45</p> | ||
| 30 | + </van-col> | ||
| 31 | + </van-row> | ||
| 32 | + </div> | ||
| 33 | + </div> | ||
| 34 | + <div style="padding: 0 1rem; background-color: #F7F7F7;"> | ||
| 35 | + <van-row> | ||
| 36 | + <van-col span="6"> | ||
| 37 | + <div style="color: #222222; font-size: 1.1rem; border-bottom: 2px solid #F9D95C; padding: 0.5rem; text-align: center;">发布作品</div> | ||
| 38 | + </van-col> | ||
| 39 | + <van-col span="12" offset="6" style="text-align: right; color: #626262;"> | ||
| 40 | + <div style="padding-top: 0.5rem;">6个作品</div> | ||
| 41 | + </van-col> | ||
| 42 | + </van-row> | ||
| 43 | + </div> | ||
| 44 | + <div> | ||
| 45 | + <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"> | ||
| 46 | + <template v-for="item in dataList" :key="item" style="height: 3rem;"> | ||
| 47 | + <video-card :item="item"></video-card> | ||
| 48 | + </template> | ||
| 49 | + </van-list> | ||
| 50 | + </div> | ||
| 51 | + </div> | ||
| 3 | </template> | 52 | </template> |
| 4 | 53 | ||
| 5 | <script setup> | 54 | <script setup> |
| 55 | +import dataList from '@/mock/video_list' | ||
| 56 | +import VideoCard from '@/components/VideoCard/index.vue' | ||
| 57 | + | ||
| 6 | import { ref, reactive, onMounted } from 'vue' | 58 | import { ref, reactive, onMounted } from 'vue' |
| 7 | import { useRoute, useRouter } from 'vue-router' | 59 | import { useRoute, useRouter } from 'vue-router' |
| 8 | import axios from '@/utils/axios'; | 60 | import axios from '@/utils/axios'; |
| ... | @@ -11,9 +63,32 @@ import { Toast } from 'vant'; | ... | @@ -11,9 +63,32 @@ import { Toast } from 'vant'; |
| 11 | const $route = useRoute(); | 63 | const $route = useRoute(); |
| 12 | const $router = useRouter(); | 64 | const $router = useRouter(); |
| 13 | 65 | ||
| 14 | - onMounted(() => { | 66 | +// 处理书籍下作品列表 |
| 67 | +const list = ref([]); | ||
| 68 | +const loading = ref(false); | ||
| 69 | +const finished = ref(false); | ||
| 70 | + | ||
| 71 | +const onLoad = () => { | ||
| 72 | + // 异步更新数据 | ||
| 73 | + // setTimeout 仅做示例,真实场景中一般为 ajax 请求 | ||
| 74 | + setTimeout(() => { | ||
| 75 | + for (let i = 0; i < 20; i++) { | ||
| 76 | + list.value.push(list.value.length + 1); | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + // 加载状态结束 | ||
| 80 | + loading.value = false; | ||
| 81 | + | ||
| 82 | + // 数据全部加载完成 | ||
| 83 | + if (list.value.length >= 100) { | ||
| 84 | + finished.value = true; | ||
| 85 | + } | ||
| 86 | + }, 1000); | ||
| 87 | +}; | ||
| 88 | + | ||
| 89 | +onMounted(() => { | ||
| 15 | 90 | ||
| 16 | - }) | 91 | +}) |
| 17 | </script> | 92 | </script> |
| 18 | 93 | ||
| 19 | <script> | 94 | <script> |
| ... | @@ -21,12 +96,12 @@ import mixin from 'common/mixin'; | ... | @@ -21,12 +96,12 @@ import mixin from 'common/mixin'; |
| 21 | 96 | ||
| 22 | export default { | 97 | export default { |
| 23 | mixins: [mixin.init], | 98 | mixins: [mixin.init], |
| 24 | - data () { | 99 | + data() { |
| 25 | return { | 100 | return { |
| 26 | 101 | ||
| 27 | } | 102 | } |
| 28 | }, | 103 | }, |
| 29 | - mounted () { | 104 | + mounted() { |
| 30 | 105 | ||
| 31 | }, | 106 | }, |
| 32 | methods: { | 107 | methods: { |
| ... | @@ -36,5 +111,59 @@ export default { | ... | @@ -36,5 +111,59 @@ export default { |
| 36 | </script> | 111 | </script> |
| 37 | 112 | ||
| 38 | <style lang="less" scoped> | 113 | <style lang="less" scoped> |
| 39 | -.person-index-page {} | 114 | +.person-index-page { |
| 115 | + .header-wrapper { | ||
| 116 | + background: linear-gradient(310deg, #FDD347 0%, #FFED6D 100%); | ||
| 117 | + | ||
| 118 | + .info { | ||
| 119 | + padding: 2rem; | ||
| 120 | + padding-right: 0; | ||
| 121 | + | ||
| 122 | + .text-wrapper { | ||
| 123 | + line-height: 1.5; | ||
| 124 | + | ||
| 125 | + .username { | ||
| 126 | + display: inline-block; | ||
| 127 | + overflow: auto; | ||
| 128 | + font-size: 1.15rem; | ||
| 129 | + color: #222222; | ||
| 130 | + } | ||
| 131 | + | ||
| 132 | + .toggle-user { | ||
| 133 | + float: right; | ||
| 134 | + font-size: 0.8rem; | ||
| 135 | + background-color: white; | ||
| 136 | + border-radius: 15px; | ||
| 137 | + padding: 5px 10px; | ||
| 138 | + color: #713610; | ||
| 139 | + } | ||
| 140 | + } | ||
| 141 | + | ||
| 142 | + .address { | ||
| 143 | + font-size: 0.85rem; | ||
| 144 | + color: #999999; | ||
| 145 | + } | ||
| 146 | + } | ||
| 147 | + | ||
| 148 | + .sub-data { | ||
| 149 | + text-align: center; | ||
| 150 | + overflow: auto; | ||
| 151 | + padding-bottom: 1rem; | ||
| 152 | + | ||
| 153 | + .un-tap-color { | ||
| 154 | + color: #666666; | ||
| 155 | + } | ||
| 156 | + | ||
| 157 | + .tap-color { | ||
| 158 | + color: #713610; | ||
| 159 | + } | ||
| 160 | + | ||
| 161 | + .divide { | ||
| 162 | + line-height: 2.5; | ||
| 163 | + color: #999999; | ||
| 164 | + font-size: 1rem; | ||
| 165 | + } | ||
| 166 | + } | ||
| 167 | + } | ||
| 168 | +} | ||
| 40 | </style> | 169 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment