Showing
8 changed files
with
361 additions
and
9 deletions
src/components/BVideoCard/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="video-wrapper" style="position: relative;"> | ||
| 3 | + <div v-if="status === 'PROCESS'" class="status"> | ||
| 4 | + <van-image v-if="item.status === 'ENABLE'" round width="6rem" height="6rem" style="vertical-align: bottom;" | ||
| 5 | + :src="icon_enable" /> | ||
| 6 | + <van-image v-if="item.status === 'REFUSE'" round width="6rem" height="6rem" style="vertical-align: bottom;" | ||
| 7 | + :src="icon_refuse" /> | ||
| 8 | + <van-image v-if="item.status === 'APPLY'" round width="6rem" height="6rem" style="vertical-align: bottom;" | ||
| 9 | + :src="icon_apply" /> | ||
| 10 | + </div> | ||
| 11 | + <div class="video-div" :id="'mui-player-' + item.case_id"> | ||
| 12 | + </div> | ||
| 13 | + <div> | ||
| 14 | + <div class="video-bar"> | ||
| 15 | + <van-row align="center"> | ||
| 16 | + <van-col span="8"> | ||
| 17 | + <van-image round width="2rem" height="2rem" style="vertical-align: middle;" | ||
| 18 | + src="https://cdn.jsdelivr.net/npm/@vant/assets/cat.jpeg" /> | ||
| 19 | + <span style="font-size: 1.05rem; vertical-align: middle;">王忆慈</span> | ||
| 20 | + </van-col> | ||
| 21 | + <van-col span="16"> | ||
| 22 | + <div style="color: #999999; text-align: right;">杨浦民办科技幼稚园 | 藏语</div> | ||
| 23 | + </van-col> | ||
| 24 | + </van-row> | ||
| 25 | + </div> | ||
| 26 | + </div> | ||
| 27 | + <div v-if="status === 'PROCESS'" style="margin-top: 1rem;"> | ||
| 28 | + <div v-if="item.status === 'REFUSE'" style="padding: 0 1rem 1rem 1rem; font-size: 0.85rem;"> | ||
| 29 | + <p style="color: #999999; margin-bottom: 0.25rem;">老师留言:</p> | ||
| 30 | + <p>下次我们继续加油,争取有更好的表现哦~</p> | ||
| 31 | + </div> | ||
| 32 | + </div> | ||
| 33 | + <div class="book-intro"> | ||
| 34 | + <div id="book-intro" :class="{ 'van-multi-ellipsis--l3': isToggle }"> | ||
| 35 | + 从前有一只小兔子,总是想要离家出走。有一天他对妈妈说:“我要跑走啦!”“如果你跑走了我就去追你,因为你是我的小宝贝呀!”妈妈说。 | ||
| 36 | + 一场爱的捉迷藏就此展开了 | ||
| 37 | + </div> | ||
| 38 | + <div v-if="hasToggle"> | ||
| 39 | + <div v-if="isToggle" @click="onToggle(false)" class="book-toggle-icon">展开 | ||
| 40 | + <van-icon style="vertical-align: middle;" size="0.9rem" :name="icon_down" /> | ||
| 41 | + </div> | ||
| 42 | + <div v-else @click="onToggle(true)" class="book-toggle-icon">折叠 | ||
| 43 | + <van-icon style="vertical-align: middle;" size="0.9rem" :name="icon_up" /> | ||
| 44 | + </div> | ||
| 45 | + </div> | ||
| 46 | + </div> | ||
| 47 | + <div v-if="status === 'PENDING'" class="van-hairline--top" style="padding: 0 1rem;"> | ||
| 48 | + <van-row> | ||
| 49 | + <van-col offset="3" style="padding: 1rem;" @click="onRefuse()"> | ||
| 50 | + <div style="background: #B4B4B3; border-radius: 15px; color: #FFFFFF; padding: 0.25rem 0.8rem;"> | ||
| 51 | + <van-icon name="close" /> 不通过 | ||
| 52 | + </div> | ||
| 53 | + </van-col> | ||
| 54 | + <van-col style="padding: 1rem;" @click="onPass()"> | ||
| 55 | + <div style="background: #F9D95C; border-radius: 15px; color: #713610; padding: 0.25rem 1.5rem;"> | ||
| 56 | + <van-icon name="passed" /> 通过 | ||
| 57 | + </div> | ||
| 58 | + </van-col> | ||
| 59 | + </van-row> | ||
| 60 | + </div> | ||
| 61 | + </div> | ||
| 62 | + | ||
| 63 | + <van-overlay :show="showNotice" z-index="1000"> | ||
| 64 | + <div class="wrapper" @click.stop> | ||
| 65 | + <div class="block"> | ||
| 66 | + <div style="position: absolute; top: -2rem; right: 1rem; font-size: 1.5rem;"><van-icon name="close" color="#FFFFFF" @click="closeNotice" /></div> | ||
| 67 | + <div class="van-hairline--bottom" style="color: #222222; font-size: 1.25rem; font-weight: bold; text-align: center; padding-bottom: 1rem;">作品审核建议</div> | ||
| 68 | + <div> | ||
| 69 | + <van-field v-model="message" rows="2" autosize label="" type="textarea" maxlength="200" placeholder="请填写您对小朋友的温馨鼓励" show-word-limit /> | ||
| 70 | + </div> | ||
| 71 | + <div style="margin: 3rem 0;"> | ||
| 72 | + <my-button @on-click="onConfirm" type="primary">确定</my-button> | ||
| 73 | + </div> | ||
| 74 | + </div> | ||
| 75 | + </div> | ||
| 76 | + </van-overlay> | ||
| 77 | + | ||
| 78 | + <van-dialog v-model:show="show" title="温馨提示" show-cancel-button confirmButtonColor="#F9D95C" @confirm="onPassConfirm"> | ||
| 79 | + <div style="padding: 1rem; text-align: center;">是否确认审核通过该视频 ?</div> | ||
| 80 | + </van-dialog> | ||
| 81 | +</template> | ||
| 82 | + | ||
| 83 | +<script setup> | ||
| 84 | +import icon_up from '@images/icon-guanbi@2x.png' | ||
| 85 | +import icon_down from '@images/icon-zhankai@2x.png' | ||
| 86 | + | ||
| 87 | +import icon_refuse from '@images/icon-jujue@2x.png' | ||
| 88 | +import icon_apply from '@images/icon-shenhe@2x.png' | ||
| 89 | +import icon_enable from '@images/icon-tongguo@2x.png' | ||
| 90 | + | ||
| 91 | +import MyButton from '@/components/MyButton/index.vue' | ||
| 92 | +import { ref, reactive, onMounted, nextTick, watch, onUpdated } from 'vue' | ||
| 93 | +import 'mui-player/dist/mui-player.min.css' | ||
| 94 | +import MuiPlayer from 'mui-player' | ||
| 95 | +import _ from 'lodash'; | ||
| 96 | +import tools from '@/common/tool' | ||
| 97 | + | ||
| 98 | +import { useRoute, useRouter } from 'vue-router' | ||
| 99 | +const $route = useRoute(); | ||
| 100 | +const $router = useRouter(); | ||
| 101 | + | ||
| 102 | +// 判断是否显示简介的展开图标 | ||
| 103 | +const hasToggle = ref(false); // 判断是否有展开文字,默认没有 | ||
| 104 | +const isToggle = ref(true); // 判断展开状态,默认展开 | ||
| 105 | + | ||
| 106 | +const onToggle = (v) => { // 展开/折叠 | ||
| 107 | + isToggle.value = v | ||
| 108 | +} | ||
| 109 | + | ||
| 110 | +const showNotice = ref(false) | ||
| 111 | +const onConfirm = () => { | ||
| 112 | + showNotice.value = false; | ||
| 113 | +} | ||
| 114 | +const closeNotice = () => { | ||
| 115 | + showNotice.value = false; | ||
| 116 | +} | ||
| 117 | + | ||
| 118 | +const show = ref(false); | ||
| 119 | + | ||
| 120 | +const onRefuse = () => { | ||
| 121 | + showNotice.value = true; | ||
| 122 | +} | ||
| 123 | +const onPass = () => { | ||
| 124 | + show.value = true; | ||
| 125 | +} | ||
| 126 | +const onPassConfirm = () => { // 审核通过视频 | ||
| 127 | + console.warn('审核通过视频'); | ||
| 128 | +} | ||
| 129 | +const message = ref('') | ||
| 130 | + | ||
| 131 | +const props = defineProps({ | ||
| 132 | + item: Object, | ||
| 133 | + status: String | ||
| 134 | +}) | ||
| 135 | + | ||
| 136 | +onMounted(() => { | ||
| 137 | + // 判断是否显示简介的展开图标 | ||
| 138 | + nextTick(() => { | ||
| 139 | + hasToggle.value = tools.hasEllipsis('book-intro'); | ||
| 140 | + }) | ||
| 141 | +}) | ||
| 142 | + | ||
| 143 | +</script> | ||
| 144 | + | ||
| 145 | +<script> | ||
| 146 | +export default { | ||
| 147 | + // props: ['item', 'status'], | ||
| 148 | + data() { | ||
| 149 | + return { | ||
| 150 | + detail: {} | ||
| 151 | + } | ||
| 152 | + }, | ||
| 153 | + created() { | ||
| 154 | + }, | ||
| 155 | + mounted() { | ||
| 156 | + var mp = new MuiPlayer({ | ||
| 157 | + container: '#mui-player-' + this.item.case_id, | ||
| 158 | + title: this.item.title, | ||
| 159 | + src: this.item.video.url, | ||
| 160 | + poster: this.item.cover.url, | ||
| 161 | + autoFit: false, | ||
| 162 | + videoAttribute: [ // 声明启用同层播放, 不让会自动全屏播放 | ||
| 163 | + { attrKey: 'webkit-playsinline', attrValue: 'webkit-playsinline' }, | ||
| 164 | + { attrKey: 'playsinline', attrValue: 'playsinline' }, | ||
| 165 | + { attrKey: 'x5-video-player-type', attrValue: 'h5-page' }, | ||
| 166 | + ] | ||
| 167 | + }) | ||
| 168 | + this.detail = _.cloneDeep(this.item) | ||
| 169 | + }, | ||
| 170 | + methods: { | ||
| 171 | + setLike() { | ||
| 172 | + this.detail.liked = !this.detail.liked | ||
| 173 | + }, | ||
| 174 | + setComment() { | ||
| 175 | + console.warn('跳转详情页,移动到留言页'); | ||
| 176 | + console.warn(this.detail.case_id); | ||
| 177 | + } | ||
| 178 | + } | ||
| 179 | +} | ||
| 180 | +</script> | ||
| 181 | + | ||
| 182 | +<style lang="less" scoped> | ||
| 183 | +.video-wrapper { | ||
| 184 | + margin: 1rem; | ||
| 185 | + border-bottom-left-radius: 5px; | ||
| 186 | + border-bottom-right-radius: 5px; | ||
| 187 | + box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.13); | ||
| 188 | + | ||
| 189 | + .status { | ||
| 190 | + position: absolute; | ||
| 191 | + top: 0; | ||
| 192 | + right: 0; | ||
| 193 | + z-index: 999; | ||
| 194 | + } | ||
| 195 | + | ||
| 196 | + .video-div { | ||
| 197 | + border-top-left-radius: 5px; | ||
| 198 | + border-top-right-radius: 5px; | ||
| 199 | + } | ||
| 200 | + | ||
| 201 | + .video-bar { | ||
| 202 | + color: #713610; | ||
| 203 | + padding: 1rem; | ||
| 204 | + padding-bottom: 0.5rem; | ||
| 205 | + } | ||
| 206 | + | ||
| 207 | + .book-intro { | ||
| 208 | + padding: 1rem; | ||
| 209 | + padding-top: 0; | ||
| 210 | + | ||
| 211 | + .book-post { | ||
| 212 | + color: #222222; | ||
| 213 | + font-size: 1.25rem; | ||
| 214 | + font-weight: bold; | ||
| 215 | + } | ||
| 216 | + | ||
| 217 | + #book-intro { | ||
| 218 | + color: #333333; | ||
| 219 | + margin-top: 0.25rem; | ||
| 220 | + } | ||
| 221 | + | ||
| 222 | + .book-toggle-icon { | ||
| 223 | + text-align: right; | ||
| 224 | + color: #713610; | ||
| 225 | + font-size: 1rem; | ||
| 226 | + } | ||
| 227 | + } | ||
| 228 | +} | ||
| 229 | + | ||
| 230 | +.wrapper { | ||
| 231 | + display: flex; | ||
| 232 | + align-items: center; | ||
| 233 | + justify-content: center; | ||
| 234 | + height: 100%; | ||
| 235 | + width: auto; | ||
| 236 | + text-align: center; | ||
| 237 | +} | ||
| 238 | + | ||
| 239 | +.block { | ||
| 240 | + width: 80%; | ||
| 241 | + // height: 25rem; | ||
| 242 | + background-color: #fff; | ||
| 243 | + border-radius: 10px; | ||
| 244 | + padding: 1rem; | ||
| 245 | + position: relative; | ||
| 246 | + margin-top: 1rem; | ||
| 247 | + margin-bottom: 5rem; | ||
| 248 | +} | ||
| 249 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -12,7 +12,7 @@ | ... | @@ -12,7 +12,7 @@ |
| 12 | <div class="sub"> | 12 | <div class="sub"> |
| 13 | <van-icon :name="icon_video" /> <span>54个作品</span> | 13 | <van-icon :name="icon_video" /> <span>54个作品</span> |
| 14 | </div> | 14 | </div> |
| 15 | - <div v-if="type === 'B'" class="upload" @click="onUpload(item)"> 上传视频 </div> | 15 | + <div v-if="type === 'B'" class="upload" @click="onUpload(item)">上传视频</div> |
| 16 | </van-col> | 16 | </van-col> |
| 17 | </van-row> | 17 | </van-row> |
| 18 | </div> | 18 | </div> | ... | ... |
| 1 | import { createApp } from 'vue'; | 1 | import { createApp } from 'vue'; |
| 2 | -import { Button, Image as VanImage, Col, Row, Icon, Form, Field, CellGroup, ConfigProvider, Toast, Uploader, Empty, Tab, Tabs, Overlay, NumberKeyboard, Lazyload, List, PullRefresh, Popup, Picker, Sticky, Stepper, Tag, Swipe, SwipeItem } from 'vant'; | 2 | +import { Button, Image as VanImage, Col, Row, Icon, Form, Field, CellGroup, ConfigProvider, Toast, Uploader, Empty, Tab, Tabs, Overlay, NumberKeyboard, Lazyload, List, PullRefresh, Popup, Picker, Sticky, Stepper, Tag, Swipe, SwipeItem, Dialog } from 'vant'; |
| 3 | import router from './router'; | 3 | import router from './router'; |
| 4 | import App from './App.vue'; | 4 | import App from './App.vue'; |
| 5 | import axios from './utils/axios'; | 5 | import axios from './utils/axios'; |
| ... | @@ -35,6 +35,7 @@ app.use(Stepper); | ... | @@ -35,6 +35,7 @@ app.use(Stepper); |
| 35 | app.use(Tag); | 35 | app.use(Tag); |
| 36 | app.use(Swipe); | 36 | app.use(Swipe); |
| 37 | app.use(SwipeItem); | 37 | app.use(SwipeItem); |
| 38 | +app.use(Dialog); | ||
| 38 | 39 | ||
| 39 | app.use(ConfigProvider); | 40 | app.use(ConfigProvider); |
| 40 | 41 | ... | ... |
src/mock/video_list1.js
0 → 100644
This diff is collapsed. Click to expand it.
| ... | @@ -238,10 +238,10 @@ export default [{ | ... | @@ -238,10 +238,10 @@ export default [{ |
| 238 | children: [] | 238 | children: [] |
| 239 | }, { | 239 | }, { |
| 240 | path: '/business/myVideo', | 240 | path: '/business/myVideo', |
| 241 | - name: '视频审核', | 241 | + name: '我的视频', |
| 242 | component: () => import('./views/business/myVideo.vue'), | 242 | component: () => import('./views/business/myVideo.vue'), |
| 243 | meta: { | 243 | meta: { |
| 244 | - title: '视频审核' | 244 | + title: '我的视频' |
| 245 | }, | 245 | }, |
| 246 | children: [] | 246 | children: [] |
| 247 | }, { | 247 | }, { | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | - <div class=""></div> | 2 | + <div class=""> |
| 3 | + <van-tabs v-model:active="active" sticky @click-tab="onClickTab" color="#F9D95C" background="#F7F7F7" | ||
| 4 | + title-active-color="#222222" title-inactive-color="#777777"> | ||
| 5 | + <van-tab title="待审核" badge="24" :title-style="titleStyle"> | ||
| 6 | + <template v-if="!active"> | ||
| 7 | + <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"> | ||
| 8 | + <template v-for="item in dataList" :key="item" style="height: 3rem;"> | ||
| 9 | + <b-video-card :item="item" status="PENDING"></b-video-card> | ||
| 10 | + </template> | ||
| 11 | + </van-list> | ||
| 12 | + </template> | ||
| 13 | + </van-tab> | ||
| 14 | + <van-tab title="已审核" :title-style="titleStyle"> | ||
| 15 | + <template v-if="active"> | ||
| 16 | + <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"> | ||
| 17 | + <template v-for="item in dataList1" :key="item" style="height: 3rem;"> | ||
| 18 | + <b-video-card :item="item" status="PROCESS"></b-video-card> | ||
| 19 | + </template> | ||
| 20 | + </van-list> | ||
| 21 | + </template> | ||
| 22 | + </van-tab> | ||
| 23 | + </van-tabs> | ||
| 24 | + </div> | ||
| 3 | </template> | 25 | </template> |
| 4 | 26 | ||
| 5 | <script setup> | 27 | <script setup> |
| 28 | +import dataList from '@/mock/video_list' | ||
| 29 | +import dataList1 from '@/mock/video_list1' | ||
| 30 | +import BVideoCard from '@/components/BVideoCard/index.vue' | ||
| 31 | + | ||
| 6 | import { ref, reactive, onMounted } from 'vue' | 32 | import { ref, reactive, onMounted } from 'vue' |
| 7 | import { useRoute, useRouter } from 'vue-router' | 33 | import { useRoute, useRouter } from 'vue-router' |
| 8 | import axios from '@/utils/axios'; | 34 | import axios from '@/utils/axios'; |
| ... | @@ -11,6 +37,39 @@ import { Toast } from 'vant'; | ... | @@ -11,6 +37,39 @@ import { Toast } from 'vant'; |
| 11 | const $route = useRoute(); | 37 | const $route = useRoute(); |
| 12 | const $router = useRouter(); | 38 | const $router = useRouter(); |
| 13 | 39 | ||
| 40 | +const titleStyle = { | ||
| 41 | + fontSize: '1rem' | ||
| 42 | +} | ||
| 43 | + | ||
| 44 | +const active = ref(0) | ||
| 45 | +let tabStatus = ref('PENDING') | ||
| 46 | +const onClickTab = () => { | ||
| 47 | + console.warn(0); | ||
| 48 | +} | ||
| 49 | + | ||
| 50 | +// 处理书籍下作品列表 | ||
| 51 | +const list = ref([]); | ||
| 52 | +const loading = ref(false); | ||
| 53 | +const finished = ref(false); | ||
| 54 | + | ||
| 55 | +const onLoad = () => { | ||
| 56 | + // 异步更新数据 | ||
| 57 | + // setTimeout 仅做示例,真实场景中一般为 ajax 请求 | ||
| 58 | + setTimeout(() => { | ||
| 59 | + for (let i = 0; i < 20; i++) { | ||
| 60 | + list.value.push(list.value.length + 1); | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + // 加载状态结束 | ||
| 64 | + loading.value = false; | ||
| 65 | + | ||
| 66 | + // 数据全部加载完成 | ||
| 67 | + if (list.value.length >= 100) { | ||
| 68 | + finished.value = true; | ||
| 69 | + } | ||
| 70 | + }, 1000); | ||
| 71 | +}; | ||
| 72 | + | ||
| 14 | onMounted(() => { | 73 | onMounted(() => { |
| 15 | 74 | ||
| 16 | }) | 75 | }) |
| ... | @@ -36,5 +95,10 @@ export default { | ... | @@ -36,5 +95,10 @@ export default { |
| 36 | </script> | 95 | </script> |
| 37 | 96 | ||
| 38 | <style lang="less" scoped> | 97 | <style lang="less" scoped> |
| 39 | - | 98 | +:global(.van-badge--top-right) { |
| 99 | + right: -10px; | ||
| 100 | +} | ||
| 101 | +:global(.van-sticky--fixed) { | ||
| 102 | + z-index: 1000; | ||
| 103 | +} | ||
| 40 | </style> | 104 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | - <div class=""></div> | 2 | + <div class=""> |
| 3 | + <van-list v-model:loading="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"> | ||
| 4 | + <template v-for="item in dataList" :key="item" style="height: 3rem;"> | ||
| 5 | + <b-video-card :item="item"></b-video-card> | ||
| 6 | + </template> | ||
| 7 | + </van-list> | ||
| 8 | + </div> | ||
| 3 | </template> | 9 | </template> |
| 4 | 10 | ||
| 5 | <script setup> | 11 | <script setup> |
| 12 | +import dataList from '@/mock/video_list' | ||
| 13 | +import BVideoCard from '@/components/BVideoCard/index.vue' | ||
| 14 | + | ||
| 6 | import { ref, reactive, onMounted } from 'vue' | 15 | import { ref, reactive, onMounted } from 'vue' |
| 7 | import { useRoute, useRouter } from 'vue-router' | 16 | import { useRoute, useRouter } from 'vue-router' |
| 8 | import axios from '@/utils/axios'; | 17 | import axios from '@/utils/axios'; |
| ... | @@ -11,6 +20,29 @@ import { Toast } from 'vant'; | ... | @@ -11,6 +20,29 @@ import { Toast } from 'vant'; |
| 11 | const $route = useRoute(); | 20 | const $route = useRoute(); |
| 12 | const $router = useRouter(); | 21 | const $router = useRouter(); |
| 13 | 22 | ||
| 23 | +// 处理书籍下作品列表 | ||
| 24 | +const list = ref([]); | ||
| 25 | +const loading = ref(false); | ||
| 26 | +const finished = ref(false); | ||
| 27 | + | ||
| 28 | +const onLoad = () => { | ||
| 29 | + // 异步更新数据 | ||
| 30 | + // setTimeout 仅做示例,真实场景中一般为 ajax 请求 | ||
| 31 | + setTimeout(() => { | ||
| 32 | + for (let i = 0; i < 20; i++) { | ||
| 33 | + list.value.push(list.value.length + 1); | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + // 加载状态结束 | ||
| 37 | + loading.value = false; | ||
| 38 | + | ||
| 39 | + // 数据全部加载完成 | ||
| 40 | + if (list.value.length >= 100) { | ||
| 41 | + finished.value = true; | ||
| 42 | + } | ||
| 43 | + }, 1000); | ||
| 44 | +}; | ||
| 45 | + | ||
| 14 | onMounted(() => { | 46 | onMounted(() => { |
| 15 | 47 | ||
| 16 | }) | 48 | }) | ... | ... |
| ... | @@ -92,6 +92,7 @@ | ... | @@ -92,6 +92,7 @@ |
| 92 | <van-overlay :show="showNotice" z-index="1000"> | 92 | <van-overlay :show="showNotice" z-index="1000"> |
| 93 | <div class="wrapper" @click.stop> | 93 | <div class="wrapper" @click.stop> |
| 94 | <div class="block"> | 94 | <div class="block"> |
| 95 | + <div style="position: absolute; top: -2rem; right: 1rem; font-size: 1.5rem;"><van-icon name="close" color="#FFFFFF" @click="closeNotice" /></div> | ||
| 95 | <div> | 96 | <div> |
| 96 | <van-image width="100" height="100" :src="icon_notice" /> | 97 | <van-image width="100" height="100" :src="icon_notice" /> |
| 97 | <p style="margin: 1rem; font-size: 1.15rem; font-weight: bold; color: #222222;">温馨提示</p> | 98 | <p style="margin: 1rem; font-size: 1.15rem; font-weight: bold; color: #222222;">温馨提示</p> |
| ... | @@ -125,7 +126,7 @@ import icon_notice from '@images/que-tishi@2x.png' | ... | @@ -125,7 +126,7 @@ import icon_notice from '@images/que-tishi@2x.png' |
| 125 | 126 | ||
| 126 | import ShortcutFixed from '@/components/ShortcutFixed/index.vue' | 127 | import ShortcutFixed from '@/components/ShortcutFixed/index.vue' |
| 127 | import tools from '@/common/tool' | 128 | import tools from '@/common/tool' |
| 128 | -import { ref, reactive, onMounted } from 'vue' | 129 | +import { ref, reactive, onMounted, nextTick } from 'vue' |
| 129 | import { useRoute, useRouter } from 'vue-router' | 130 | import { useRoute, useRouter } from 'vue-router' |
| 130 | import axios from '@/utils/axios'; | 131 | import axios from '@/utils/axios'; |
| 131 | import $ from 'jquery' | 132 | import $ from 'jquery' |
| ... | @@ -181,7 +182,9 @@ const onConfirm = ({ selectedOptions }) => { | ... | @@ -181,7 +182,9 @@ const onConfirm = ({ selectedOptions }) => { |
| 181 | 182 | ||
| 182 | onMounted(() => { | 183 | onMounted(() => { |
| 183 | // 判断是否显示简介的展开图标 | 184 | // 判断是否显示简介的展开图标 |
| 184 | - hasToggle.value = tools.hasEllipsis('book-intro'); | 185 | + nextTick(() => { |
| 186 | + hasToggle.value = tools.hasEllipsis('book-intro'); | ||
| 187 | + }) | ||
| 185 | for (let index = 0; index < 20; index++) { | 188 | for (let index = 0; index < 20; index++) { |
| 186 | items.push({ | 189 | items.push({ |
| 187 | id: index, | 190 | id: index, |
| ... | @@ -402,5 +405,8 @@ export default { | ... | @@ -402,5 +405,8 @@ export default { |
| 402 | background-color: #fff; | 405 | background-color: #fff; |
| 403 | border-radius: 10px; | 406 | border-radius: 10px; |
| 404 | padding: 1rem; | 407 | padding: 1rem; |
| 408 | + position: relative; | ||
| 409 | + margin-top: 1rem; | ||
| 410 | + margin-bottom: 5rem; | ||
| 405 | } | 411 | } |
| 406 | </style> | 412 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
-
Please register or login to post a comment