Showing
1 changed file
with
69 additions
and
50 deletions
| ... | @@ -22,53 +22,56 @@ | ... | @@ -22,53 +22,56 @@ |
| 22 | </div> | 22 | </div> |
| 23 | </div> | 23 | </div> |
| 24 | 24 | ||
| 25 | - <div class="book-video-title"> | 25 | + <van-sticky> |
| 26 | - <van-row> | 26 | + <div class="book-video-title"> |
| 27 | - <van-col span="12"> | 27 | + <van-row> |
| 28 | - 作品演绎 | 28 | + <van-col span="12"> |
| 29 | - <div style="background-color: #F9D95C; width: 70px; height: 4px;"></div> | 29 | + 作品演绎 |
| 30 | - </van-col> | 30 | + <div style="background-color: #F9D95C; width: 70px; height: 4px;"></div> |
| 31 | - <van-col span="12"> | 31 | + </van-col> |
| 32 | - <div style="font-size: 1rem; color: #999999; text-align: right;"> | 32 | + <van-col span="12"> |
| 33 | - <van-icon :name="icon_video" /> | 33 | + <div style="font-size: 1rem; color: #999999; text-align: right;"> |
| 34 | - 54个作品 | 34 | + <van-icon :name="icon_video" /> |
| 35 | - </div> | 35 | + 54个作品 |
| 36 | - </van-col> | ||
| 37 | - </van-row> | ||
| 38 | - </div> | ||
| 39 | - | ||
| 40 | - <div class="book-video-language"> | ||
| 41 | - <van-row> | ||
| 42 | - <van-col span="6"> | ||
| 43 | - <div @click="toggleLanguage" :class="[check_mandarin ? 'checked' : 'uncheck']">普通话</div> | ||
| 44 | - </van-col> | ||
| 45 | - <van-col span="6"> | ||
| 46 | - <div @click="toggleLanguage" :class="[check_localism ? 'checked' : 'uncheck']">方言</div> | ||
| 47 | - </van-col> | ||
| 48 | - <van-col span="12" v-if="check_localism" @click="showPicker = true"> | ||
| 49 | - <div class="choose-wrapper"> | ||
| 50 | - <div class="text"> | ||
| 51 | - {{ chooseLanguage.text }} | ||
| 52 | </div> | 36 | </div> |
| 53 | - <div class="icon"> | 37 | + </van-col> |
| 54 | - <van-icon name="arrow-down" /> | 38 | + </van-row> |
| 39 | + </div> | ||
| 40 | + <div class="book-video-language"> | ||
| 41 | + <van-row> | ||
| 42 | + <van-col span="6"> | ||
| 43 | + <div @click="toggleLanguage" :class="[check_mandarin ? 'checked' : 'uncheck']">普通话</div> | ||
| 44 | + </van-col> | ||
| 45 | + <van-col span="6"> | ||
| 46 | + <div @click="toggleLanguage" :class="[check_localism ? 'checked' : 'uncheck']">方言</div> | ||
| 47 | + </van-col> | ||
| 48 | + <van-col span="12" v-if="check_localism" @click="showPicker = true"> | ||
| 49 | + <div class="choose-wrapper"> | ||
| 50 | + <div class="text"> | ||
| 51 | + {{ chooseLanguage.text }} | ||
| 52 | + </div> | ||
| 53 | + <div class="icon"> | ||
| 54 | + <van-icon name="arrow-down" /> | ||
| 55 | + </div> | ||
| 55 | </div> | 56 | </div> |
| 56 | - </div> | 57 | + </van-col> |
| 57 | - </van-col> | 58 | + </van-row> |
| 58 | - </van-row> | 59 | + <van-popup v-model:show="showPicker" round position="bottom"> |
| 59 | - <van-popup v-model:show="showPicker" round position="bottom"> | 60 | + <van-picker |
| 60 | - <van-picker | 61 | + :columns="columns" |
| 61 | - :columns="columns" | 62 | + :columns-field-names="{ text: 'text', value: 'val', children: 'children' }" |
| 62 | - :columns-field-names="{ text: 'text', value: 'val', children: 'children' }" | 63 | + @cancel="showPicker = false" |
| 63 | - @cancel="showPicker = false" | 64 | + @confirm="onConfirm" |
| 64 | - @confirm="onConfirm" | 65 | + /> |
| 65 | - /> | 66 | + </van-popup> |
| 66 | - </van-popup> | 67 | + </div> |
| 67 | - </div> | 68 | + </van-sticky> |
| 68 | 69 | ||
| 69 | <div class="book-video-list"> | 70 | <div class="book-video-list"> |
| 70 | <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"> | 71 | <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"> |
| 71 | - <div v-for="item in list" :key="item" style="height: 3rem;">{{ item }}</div> | 72 | + <template v-for="item in dataList" :key="item" style="height: 3rem;"> |
| 73 | + <video-card :item="item"></video-card> | ||
| 74 | + </template> | ||
| 72 | </van-list> | 75 | </van-list> |
| 73 | </div> | 76 | </div> |
| 74 | </div> | 77 | </div> |
| ... | @@ -91,7 +94,10 @@ | ... | @@ -91,7 +94,10 @@ |
| 91 | </template> | 94 | </template> |
| 92 | 95 | ||
| 93 | <script setup> | 96 | <script setup> |
| 97 | +import dataList from '@/mock/video_list' | ||
| 98 | + | ||
| 94 | import MyButton from '@/components/MyButton/index.vue' | 99 | import MyButton from '@/components/MyButton/index.vue' |
| 100 | +import VideoCard from '@/components/VideoCard/index.vue' | ||
| 95 | 101 | ||
| 96 | import icon_video from '@images/video.png' | 102 | import icon_video from '@images/video.png' |
| 97 | import icon_up from '@images/icon-guanbi@2x.png' | 103 | import icon_up from '@images/icon-guanbi@2x.png' |
| ... | @@ -105,6 +111,7 @@ import { ref, reactive, onMounted } from 'vue' | ... | @@ -105,6 +111,7 @@ import { ref, reactive, onMounted } from 'vue' |
| 105 | import { useRoute, useRouter } from 'vue-router' | 111 | import { useRoute, useRouter } from 'vue-router' |
| 106 | import axios from '@/utils/axios'; | 112 | import axios from '@/utils/axios'; |
| 107 | import $ from 'jquery' | 113 | import $ from 'jquery' |
| 114 | +import _ from 'lodash' | ||
| 108 | import { Toast } from 'vant'; | 115 | import { Toast } from 'vant'; |
| 109 | const $route = useRoute(); | 116 | const $route = useRoute(); |
| 110 | const $router = useRouter(); | 117 | const $router = useRouter(); |
| ... | @@ -220,6 +227,10 @@ const uploadVideo = () => { | ... | @@ -220,6 +227,10 @@ const uploadVideo = () => { |
| 220 | <script> | 227 | <script> |
| 221 | import mixin from 'common/mixin'; | 228 | import mixin from 'common/mixin'; |
| 222 | 229 | ||
| 230 | +function transCaseList (url, pic) { | ||
| 231 | + return { url, pic } | ||
| 232 | +} | ||
| 233 | + | ||
| 223 | export default { | 234 | export default { |
| 224 | mixins: [mixin.init], | 235 | mixins: [mixin.init], |
| 225 | data() { | 236 | data() { |
| ... | @@ -227,11 +238,17 @@ export default { | ... | @@ -227,11 +238,17 @@ export default { |
| 227 | 238 | ||
| 228 | } | 239 | } |
| 229 | }, | 240 | }, |
| 230 | - mounted() { | 241 | + created() { |
| 231 | - | 242 | + this.getList() |
| 232 | }, | 243 | }, |
| 233 | methods: { | 244 | methods: { |
| 234 | - | 245 | + getList () { |
| 246 | + _.each(this.dataList, item => { | ||
| 247 | + let video = item.video && item.video.url ? item.video.url : 'http://static.smartisanos.cn/common/video/t1-ui.mp4'; | ||
| 248 | + let cover = item.cover && item.cover.url ? item.cover.url : 'http://static.smartisanos.cn/pr/img/video/video_03_cc87ce5bdb.jpg'; | ||
| 249 | + item.options = { video: transCaseList(video, cover), autoplay: false, preload: 'none' } | ||
| 250 | + }) | ||
| 251 | + } | ||
| 235 | } | 252 | } |
| 236 | } | 253 | } |
| 237 | </script> | 254 | </script> |
| ... | @@ -240,11 +257,12 @@ export default { | ... | @@ -240,11 +257,12 @@ export default { |
| 240 | @import url('@css/content-bg.less'); | 257 | @import url('@css/content-bg.less'); |
| 241 | 258 | ||
| 242 | .book-detail-page { | 259 | .book-detail-page { |
| 243 | - overflow: auto; | 260 | + // overflow: auto; |
| 244 | 261 | ||
| 245 | .book-detail { | 262 | .book-detail { |
| 246 | margin: 1rem; | 263 | margin: 1rem; |
| 247 | - margin-top: 1.25rem; | 264 | + // margin-top: 1.25rem; |
| 265 | + margin-top: 0; | ||
| 248 | padding-top: 1rem; | 266 | padding-top: 1rem; |
| 249 | border-radius: 10px; | 267 | border-radius: 10px; |
| 250 | background-color: rgba(255, 255, 255, 1); | 268 | background-color: rgba(255, 255, 255, 1); |
| ... | @@ -278,7 +296,7 @@ export default { | ... | @@ -278,7 +296,7 @@ export default { |
| 278 | 296 | ||
| 279 | .book-video-language { | 297 | .book-video-language { |
| 280 | padding: 1rem; | 298 | padding: 1rem; |
| 281 | - | 299 | + background-color: white; |
| 282 | .uncheck { | 300 | .uncheck { |
| 283 | background: #F7F7F7; | 301 | background: #F7F7F7; |
| 284 | border-radius: 15px; | 302 | border-radius: 15px; |
| ... | @@ -320,12 +338,13 @@ export default { | ... | @@ -320,12 +338,13 @@ export default { |
| 320 | } | 338 | } |
| 321 | 339 | ||
| 322 | .book-video-list { | 340 | .book-video-list { |
| 323 | - height: 20rem; | 341 | + // height: 20rem; |
| 324 | - overflow: scroll; | 342 | + // overflow: scroll; |
| 325 | } | 343 | } |
| 326 | } | 344 | } |
| 327 | 345 | ||
| 328 | .book-bar { | 346 | .book-bar { |
| 347 | + z-index: 999; | ||
| 329 | position: fixed; | 348 | position: fixed; |
| 330 | right: 0; | 349 | right: 0; |
| 331 | bottom: 0; | 350 | bottom: 0; | ... | ... |
-
Please register or login to post a comment