Showing
1 changed file
with
18 additions
and
15 deletions
| 1 | <template> | 1 | <template> |
| 2 | <div class="video-wrapper"> | 2 | <div class="video-wrapper"> |
| 3 | - <div class="video-div" :id="'mui-player-' + item.id"></div> | 3 | + <div :id="'mui-player-' + item.id" class="video-div" /> |
| 4 | <div class="normal-module"> | 4 | <div class="normal-module"> |
| 5 | <div class="video-bar"> | 5 | <div class="video-bar"> |
| 6 | <van-row> | 6 | <van-row> |
| ... | @@ -25,11 +25,9 @@ | ... | @@ -25,11 +25,9 @@ |
| 25 | </van-col> | 25 | </van-col> |
| 26 | </van-row> | 26 | </van-row> |
| 27 | </div> | 27 | </div> |
| 28 | - <slot name="bookDetailSub"></slot> | 28 | + <slot name="bookDetailSub" /> |
| 29 | - </div> | ||
| 30 | - <div class="audit-module"> | ||
| 31 | - | ||
| 32 | </div> | 29 | </div> |
| 30 | + <div class="audit-module" /> | ||
| 33 | </div> | 31 | </div> |
| 34 | </template> | 32 | </template> |
| 35 | 33 | ||
| ... | @@ -38,22 +36,26 @@ | ... | @@ -38,22 +36,26 @@ |
| 38 | * 视频组件通用模块 | 36 | * 视频组件通用模块 |
| 39 | */ | 37 | */ |
| 40 | import { icon_dianzan1, icon_dianzan2, icon_liuyan, icon_avatar } from '@/utils/generateIcons.js' | 38 | import { icon_dianzan1, icon_dianzan2, icon_liuyan, icon_avatar } from '@/utils/generateIcons.js' |
| 41 | -import { ref, reactive, onMounted } from 'vue' | 39 | +import { ref, onMounted } from 'vue' |
| 42 | import { _, Toast } from '@/utils/generatePackage.js' | 40 | import { _, Toast } from '@/utils/generatePackage.js' |
| 43 | -import { useRoute, useRouter } from 'vue-router' | 41 | +import { useRouter } from 'vue-router' |
| 44 | import 'mui-player/dist/mui-player.min.css' | 42 | import 'mui-player/dist/mui-player.min.css' |
| 45 | import MuiPlayer from 'mui-player' | 43 | import MuiPlayer from 'mui-player' |
| 46 | import { prodActionAPI, prodInfoAPI } from '@/api/C/prod.js' | 44 | import { prodActionAPI, prodInfoAPI } from '@/api/C/prod.js' |
| 47 | 45 | ||
| 48 | -const $route = useRoute(); | ||
| 49 | const $router = useRouter(); | 46 | const $router = useRouter(); |
| 50 | - | ||
| 51 | const props = defineProps({ | 47 | const props = defineProps({ |
| 52 | - item: Object | 48 | + item: { |
| 49 | + type: Object, | ||
| 50 | + } | ||
| 53 | }) | 51 | }) |
| 54 | 52 | ||
| 55 | // 作品用户操作 | 53 | // 作品用户操作 |
| 56 | -async function handleAction(action_type, prod_id) { | 54 | +/** |
| 55 | + * 两个请求顺序执行,处理直接写在请求函数里面似乎有点问题,get请求数据似乎无法顺利渲染显示 | ||
| 56 | + */ | ||
| 57 | +// FIXME:防抖处理 | ||
| 58 | +const handleAction = _.debounce(async (action_type, prod_id) => { | ||
| 57 | const { msg } = await prodActionAPI({ action_type, prod_id }); | 59 | const { msg } = await prodActionAPI({ action_type, prod_id }); |
| 58 | if (msg === `${action_type}-add-OK`) { // 动作操作成功 | 60 | if (msg === `${action_type}-add-OK`) { // 动作操作成功 |
| 59 | if (action_type === 'favor') { | 61 | if (action_type === 'favor') { |
| ... | @@ -62,15 +64,16 @@ async function handleAction(action_type, prod_id) { | ... | @@ -62,15 +64,16 @@ async function handleAction(action_type, prod_id) { |
| 62 | if (action_type === 'like') { | 64 | if (action_type === 'like') { |
| 63 | Toast('点赞成功'); | 65 | Toast('点赞成功'); |
| 64 | } | 66 | } |
| 65 | - } else { // 取消操作 | 67 | + } else { // 取消操作,播放动作不提示 |
| 66 | if (action_type !== 'play') { | 68 | if (action_type !== 'play') { |
| 67 | Toast('取消成功'); | 69 | Toast('取消成功'); |
| 68 | } | 70 | } |
| 69 | } | 71 | } |
| 70 | getProductDetail(action_type, prod_id); // 更新信息 | 72 | getProductDetail(action_type, prod_id); // 更新信息 |
| 71 | -} | 73 | +}, 500, { leading: true, trailing: false }); |
| 74 | + | ||
| 72 | // 查询作品详情 | 75 | // 查询作品详情 |
| 73 | -async function getProductDetail(action_type, prod_id) { | 76 | +const getProductDetail = async (action_type, prod_id) => { |
| 74 | const { data } = await prodInfoAPI({ prod_id }); | 77 | const { data } = await prodInfoAPI({ prod_id }); |
| 75 | // 更新详情显示 | 78 | // 更新详情显示 |
| 76 | detail.value[`is_${action_type}`] = data[`is_${action_type}`]; | 79 | detail.value[`is_${action_type}`] = data[`is_${action_type}`]; |
| ... | @@ -95,7 +98,7 @@ onMounted(() => { | ... | @@ -95,7 +98,7 @@ onMounted(() => { |
| 95 | detail.value = _.cloneDeep(props.item); | 98 | detail.value = _.cloneDeep(props.item); |
| 96 | const video = mp.video(); | 99 | const video = mp.video(); |
| 97 | // 监听原生video事件 | 100 | // 监听原生video事件 |
| 98 | - video && video.addEventListener('play', function (event) { | 101 | + video && video.addEventListener('play', function () { |
| 99 | handleAction('play', props.item.id) | 102 | handleAction('play', props.item.id) |
| 100 | }); | 103 | }); |
| 101 | }); | 104 | }); | ... | ... |
-
Please register or login to post a comment