vr-shopxo-uniapp/pages/plugins/live/pull/pull.nvue

64 lines
2.5 KiB
Plaintext
Raw Normal View History

2025-11-26 08:51:13 +00:00
<template>
2025-11-28 10:19:51 +00:00
<view :class="theme_view + ' flex-row pr'" :style="'width:' + windowWidth + 'px;height:' + windowHeight + 'px;'">
2025-12-01 10:25:01 +00:00
<view class="flex-1 pr" @dblclick="handleDoubleClick" @touchend="handleTouchEnd">
<live-video ref="live-video" :src="live_config.pull_flv_url || 'http://live-pull-all.shopxo.vip/68f764013572f9240ca7ce6c/shopxo122.m3u8'" @ended="ended"></live-video>
<!-- 简化版点赞效果组件 -->
<like-effect ref="likeEffect" :custom-images="like_show_imgs"></like-effect>
2025-11-26 08:51:13 +00:00
</view>
<view v-if="!is_loading" class="live-content" :style="'width:' + windowWidth + 'px;height:' + windowHeight + 'px;'">
2025-11-28 10:19:51 +00:00
<template v-if="!is_live_ended">
2025-12-01 01:48:34 +00:00
<live-content :live-config="live_config" @live-back="live_back"></live-content>
2025-11-28 10:19:51 +00:00
</template>
<template v-else>
<view class="live-ended flex-row align-c jc-c" :style="'width:' + windowWidth + 'px;height:' + windowHeight + 'px;'">
<view class="flex-col align-c">
<text style="color:#fff;font-size:16px;">直播已结束</text>
<button plain size="mini" class="mt-10 live-ended-button" @click="back"><text class="cr-f pa-5" @tap="live_back">退出直播间</text></button>
</view>
</view>
</template>
2025-11-26 08:51:13 +00:00
</view>
</view>
</template>
<script>
2025-11-27 09:28:29 +00:00
import liveVideo from './components/video/video.vue';
import liveContent from './components/live-content/live-content.vue';
2025-12-01 10:25:01 +00:00
// 引入点赞效果组件
import LikeEffect from './components/like-effect/like-effect.vue';
2025-11-27 10:11:14 +00:00
// 引入混入公共逻辑避免nvue和vue使用同一套逻辑出现问题
import mixins from './mixins/mixins.js';
2025-11-26 08:51:13 +00:00
const app = getApp();
export default {
components: {
liveVideo,
2025-12-01 10:25:01 +00:00
liveContent,
LikeEffect
2025-11-26 08:51:13 +00:00
},
2025-11-27 10:11:14 +00:00
mixins: [mixins],
2025-11-26 08:51:13 +00:00
data() {
return {
2025-11-27 10:11:14 +00:00
theme_view: app.globalData.get_theme_value_view(),
2025-11-26 08:51:13 +00:00
}
}
}
</script>
2025-11-28 09:20:46 +00:00
<style lang="scss" scoped>
2025-11-26 08:51:13 +00:00
.live-content {
position: absolute;
top: 0;
left: 0;
z-index: 9;
width: 100%;
height: 100%;
2025-11-28 10:19:51 +00:00
background: transparent;
2025-12-01 10:25:01 +00:00
pointer-events: none;
2025-11-26 08:51:13 +00:00
}
2025-11-28 09:20:46 +00:00
.live-ended {
// 添加渐变背景色
background-image: linear-gradient(to bottom,#AD18F9,#05DFC7);
2025-11-28 09:20:46 +00:00
}
2025-11-28 10:19:51 +00:00
.live-ended-button {
border-radius: 6px;
border-color: #fff;
}
2025-11-26 08:51:13 +00:00
</style>