修改页面显示问题
parent
d81a6ff496
commit
3ff8c60f1e
|
|
@ -7,20 +7,20 @@
|
||||||
<view v-if="propCloseType == 'icon' && propCloseable" class="popup-close pa-14 box-border-box" :class="propCloseIconPos" :style="closeIconStyle" @tap="close">
|
<view v-if="propCloseType == 'icon' && propCloseable" class="popup-close pa-14 box-border-box" :class="propCloseIconPos" :style="closeIconStyle" @tap="close">
|
||||||
<u-icon :propName="propCloseIcon" :propType="propCloseIconType" :propSize="propCloseIconSize + 'rpx'"></u-icon>
|
<u-icon :propName="propCloseIcon" :propType="propCloseIconType" :propSize="propCloseIconSize + 'rpx'"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="propCloseType == 'text' && propCloseable" class="flex-row jc-sb align-c w abs top-0 pa-14 z-i">
|
<view v-if="propTitle != ''" class="pr">
|
||||||
|
<view class="popup-close pa-14 box-border-box" :class="propTitleBorder ? 'br-b-e' : ''">
|
||||||
|
<view v-if="propTitle != ''" class="title">
|
||||||
|
<text class="fw tc">{{ propTitle }}</text>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
</view>
|
||||||
|
<view v-if="propCloseType == 'text' && propCloseable" class="flex-row jc-sb align-c w pa top-0 pa-14 z-i box-border-box" :style="propWidth">
|
||||||
<text class="cr-info" @click="close">取消</text>
|
<text class="cr-info" @click="close">取消</text>
|
||||||
<view class="pr">
|
<view class="pr">
|
||||||
<text v-if="propIsCustomBtn" class="inline-block" :style="propCustomBtnStyle" @click="custom_change">{{ propCustomBtnText }}</text>
|
<text v-if="propIsCustomBtn" class="inline-block" :style="propCustomBtnStyle" @click="custom_change">{{ propCustomBtnText }}</text>
|
||||||
<text class="cr-primary" @click="comfirm">确定</text>
|
<text class="cr-primary" @click="comfirm">确定</text>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
<view v-if="propTitle != ''" class="pr">
|
|
||||||
<view class="popup-close pa-14 box-border-box" :class="propTitleBorder ? 'br-b-e' : ''">
|
|
||||||
<view v-if="propTitle != ''" class="title ">
|
|
||||||
<text class="fw tc">{{ propTitle }}</text>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
</view>
|
|
||||||
<view class="uni-popup__wrapper radius-lg" :style="{ backgroundColor: bg, maxHeight: propHeight }" :class="[popupstyle]" @click="clear">
|
<view class="uni-popup__wrapper radius-lg" :style="{ backgroundColor: bg, maxHeight: propHeight }" :class="[popupstyle]" @click="clear">
|
||||||
<slot />
|
<slot />
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -187,6 +187,10 @@
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: true,
|
default: true,
|
||||||
},
|
},
|
||||||
|
propWidth: {
|
||||||
|
type: String,
|
||||||
|
default: '',
|
||||||
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
watch: {
|
watch: {
|
||||||
|
|
@ -473,6 +477,7 @@
|
||||||
show: false,
|
show: false,
|
||||||
type: this.propType,
|
type: this.propType,
|
||||||
});
|
});
|
||||||
|
this.$emit('close')
|
||||||
clearTimeout(this.timer);
|
clearTimeout(this.timer);
|
||||||
// // 自定义关闭事件
|
// // 自定义关闭事件
|
||||||
// this.customOpen && this.customClose()
|
// this.customOpen && this.customClose()
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
<view v-if="drop_down_visible && dropdownOptions && Array.isArray(dropdownOptions)" class="dropdown-menu" :style="dropdownMenuStyle" @tap.stop>
|
<view v-if="drop_down_visible && dropdownOptions && Array.isArray(dropdownOptions)" class="dropdown-menu" :style="dropdownMenuStyle" @tap.stop>
|
||||||
<!-- #endif -->
|
<!-- #endif -->
|
||||||
<!-- #ifndef APP-NVUE -->
|
<!-- #ifndef APP-NVUE -->
|
||||||
<view v-if="drop_down_visible && dropdownOptions && Array.isArray(dropdownOptions)" class="dropdown-menu" @tap.stop></view>
|
<view v-if="drop_down_visible && dropdownOptions && Array.isArray(dropdownOptions)" class="dropdown-menu" @tap.stop>
|
||||||
<!-- #endif -->
|
<!-- #endif -->
|
||||||
<view v-for="(item, index) in dropdownOptions.filter(item => (propComment.is_can_delete == 1 && item.type == 'delete') || (propComment.is_can_report == 1 && item.type == 'report'))" :key="index" class="dropdown-item" :data-value="item" @tap.stop="handle_dropdown_item_click">
|
<view v-for="(item, index) in dropdownOptions.filter(item => (propComment.is_can_delete == 1 && item.type == 'delete') || (propComment.is_can_report == 1 && item.type == 'report'))" :key="index" class="dropdown-item" :data-value="item" @tap.stop="handle_dropdown_item_click">
|
||||||
<text style="font-size: 28rpx;color: #666;">{{ item.label }}</text>
|
<text style="font-size: 28rpx;color: #666;">{{ item.label }}</text>
|
||||||
|
|
@ -113,8 +113,8 @@
|
||||||
//#endif
|
//#endif
|
||||||
//#ifndef APP-NVUE
|
//#ifndef APP-NVUE
|
||||||
this.dropdownOptions = [
|
this.dropdownOptions = [
|
||||||
{ label: $t('common.delete'), type: 'delete' },
|
{ label: this.$t('common.del'), type: 'delete' },
|
||||||
{ label: $t('common.complaint'), type: 'report' }
|
{ label: this.$t('common.complaint'), type: 'report' }
|
||||||
]
|
]
|
||||||
//#endif
|
//#endif
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -7,13 +7,13 @@
|
||||||
<view class="video-container pr" @tap.stop="toggle_play_pause" :style="width_height_style">
|
<view class="video-container pr" @tap.stop="toggle_play_pause" :style="width_height_style">
|
||||||
<view class="video-bg" :style="(!isEmpty(video_item.cover) ? 'background-image: url(' + video_item.cover + ')' : '') + width_height_style"></view>
|
<view class="video-bg" :style="(!isEmpty(video_item.cover) ? 'background-image: url(' + video_item.cover + ')' : '') + width_height_style"></view>
|
||||||
|
|
||||||
<video class="video" :style="width_height_style" :src="video_item.video_url" :poster="video_item.cover" :id="`video_${index}`" :loop="true" :show-fullscreen-btn="false" :show-center-play-btn="false" :show-play-btn="false" :controls="false" :show-mute-btn="true" object-fit="contain" @timeupdate="handle_time_update" @play="handle_play"></video>
|
<video class="video" :style="width_height_style + swiperStyle" :src="video_item.video_url" :poster="video_item.cover" :id="`video_${index}`" :loop="true" :show-fullscreen-btn="false" :show-center-play-btn="false" :show-play-btn="false" :controls="false" :show-mute-btn="true" object-fit="contain" @timeupdate="handle_time_update" @play="handle_play" @tap.stop="toggle_play_pause"></video>
|
||||||
|
|
||||||
<view v-if="paused && current_index == index" class="play-icon" :style="width_height_style">
|
<view v-if="paused && current_index == index" class="play-icon" :style="width_height_style + swiperStyle">
|
||||||
<view class="flex-1 pr flex-row align-c jc-c">
|
<view class="flex-1 pr flex-row align-c jc-c">
|
||||||
<view class="play-icon-bg"></view>
|
<view class="play-icon-bg"></view>
|
||||||
<view class="pa z-i play-icon-iconfont">
|
<view class="pa z-i">
|
||||||
<u-icon propName="icon-bofang" propSize="120rpx" propColor="#4F3E35"></u-icon>
|
<u-icon propName="bofang" propSize="120rpx" propColor="#4F3E35"></u-icon>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
</view>
|
</view>
|
||||||
<view v-if="base_config_data && base_config_data.is_video_comments_show && base_config_data.is_video_comments_show == 1" class="action-item" :data-id="video_item.id" @tap.stop="handle_comment">
|
<view v-if="base_config_data && base_config_data.is_video_comments_show && base_config_data.is_video_comments_show == 1" class="action-item" :data-id="video_item.id" @tap.stop="handle_comment">
|
||||||
<u-icon propName="comment" propSize="60rpx" propColor="#fff"></u-icon>
|
<u-icon propName="comment" propSize="60rpx" propColor="#fff"></u-icon>
|
||||||
<text class="action-text">{{ video_item.comments_count }}</text>
|
<text class="action-text">{{ video_item.comments_count }}{{ paused }}{{ current_index == index }}</text>
|
||||||
</view>
|
</view>
|
||||||
<view class="action-item" @tap.stop="handle_share">
|
<view class="action-item" @tap.stop="handle_share">
|
||||||
<u-icon propName="share-solid" propSize="60rpx" propColor="#fff"></u-icon>
|
<u-icon propName="share-solid" propSize="60rpx" propColor="#fff"></u-icon>
|
||||||
|
|
@ -165,33 +165,37 @@
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 举报弹窗 -->
|
<!-- 举报弹窗 -->
|
||||||
<u-popup ref="popupReportRef" propMode="bottom" class="pointer-events-auto" :propTitle="$t('video-detail.video-detail.rfsdfg')" :propCloseable="true" @change="popup_report_close_event" @callBack="submit_report">
|
<u-popup ref="popupReportRef" propMode="bottom" propCloseType="text" :propWidth="'width:' + windowWidth + 'px;'" propTitleBorder class="pointer-events-auto" :propTitle="$t('video-detail.video-detail.rfsdfg')" :propCloseable="true" @close="popup_report_close_event" @callBack="submit_report">
|
||||||
<view class="report-content">
|
<view class="report-content">
|
||||||
<!-- 主要内容区域 -->
|
<!-- 主要内容区域 -->
|
||||||
<view class="report-body">
|
<view class="report-body">
|
||||||
<!-- 第一层:举报原因选择 -->
|
<!-- 第一层:举报原因选择 -->
|
||||||
<view v-if="report_type_list && report_type_list.length > 0" class="report-section">
|
<view v-if="report_type_list && report_type_list.length > 0" class="report-section">
|
||||||
<view class="report-label">{{$t('video-detail.video-detail.rfsdfg')}}<text class="ml-10">*</text></view>
|
<view class="report-label flex-row align-c">{{$t('video-detail.video-detail.rfsdfg')}}<text class="ml-10 report-required">*</text></view>
|
||||||
<view class="flex-row align-c gap-10 flex-wrap">
|
<view class="flex-row align-c flex-wrap">
|
||||||
<view v-for="(mainItem, main_index) in report_type_list" :key="main_index" class="flex-row align-c" :data-index="main_index" @tap="select_main_reason">
|
<radio-group class="flex-row align-c flex-wrap" :style="window_more_style">
|
||||||
<view class="flex-row align-c">
|
<view v-for="(mainItem, main_index) in report_type_list" :key="main_index" class="flex-row align-c" style="margin-right: 20rpx;" :data-index="main_index" @tap.stop="select_main_reason">
|
||||||
<radio :value="main_index.toString()" :checked="current_main_index === main_index" style="transform:scale(0.7)" />
|
<view class="flex-row align-c">
|
||||||
<view class="flex-row align-c">{{mainItem.name}}</view>
|
<radio :value="main_index.toString()" :checked="current_main_index === main_index" style="transform:scale(0.7)" />
|
||||||
|
<text class="flex-row align-c">{{mainItem.name}}</text>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</radio-group>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- 第二层:具体类型选择(当有主类别选中时显示) -->
|
<!-- 第二层:具体类型选择(当有主类别选中时显示) -->
|
||||||
<view class="report-section mt-20" v-if="current_main_index >= 0 && report_type_list[current_main_index] && report_type_list[current_main_index].data">
|
<view class="report-section mt-20" v-if="current_main_index >= 0 && report_type_list[current_main_index] && report_type_list[current_main_index].data">
|
||||||
<view class="report-label">{{$t('video-detail.video-detail.fsdf33')}}<text class="ml-10">*</text></view>
|
<view class="report-label flex-row align-c">{{$t('video-detail.video-detail.fsdf33')}}<text class="ml-10 report-required">*</text></view>
|
||||||
<view class="flex-row align-c gap-10 flex-wrap">
|
<view class="flex-row align-c flex-wrap">
|
||||||
<view v-for="(subItem, sub_index) in report_type_list[current_main_index].data" :key="sub_index" class="flex-row align-c" :data-index="sub_index" @tap="select_sub_reason">
|
<radio-group class="flex-row align-c flex-wrap" :style="window_more_style">
|
||||||
<view class="flex-row align-c">
|
<view v-for="(subItem, sub_index) in report_type_list[current_main_index].data" :key="sub_index" class="flex-row align-c" style="margin-right: 20rpx;" :data-index="sub_index" @tap.stop="select_sub_reason">
|
||||||
<radio :value="sub_index.toString()" :checked="current_sub_index === sub_index" style="transform:scale(0.7)" />
|
<view class="flex-row align-c">
|
||||||
<view class="flex-row align-c">{{subItem}}</view>
|
<radio :value="sub_index.toString()" :checked="current_sub_index === sub_index" style="transform:scale(0.7)" />
|
||||||
|
<view class="flex-row align-c">{{subItem}}</view>
|
||||||
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</radio-group>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
@ -824,13 +828,14 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
// 切换播放暂停
|
// 切换播放暂停
|
||||||
toggle_play_pause() {
|
toggle_play_pause(e) {
|
||||||
try {
|
try {
|
||||||
const currentIndex = this.current_index;
|
const currentIndex = this.current_index;
|
||||||
// 检查视频上下文是否存在
|
// 检查视频上下文是否存在
|
||||||
const videoContext = this.create_video_contexts[currentIndex] || this.video_contexts[currentIndex];
|
const videoContext = this.create_video_contexts[currentIndex] || this.video_contexts[currentIndex];
|
||||||
if (!videoContext) {
|
if (!videoContext) {
|
||||||
console.warn(`当前索引 ${currentIndex} 无可用视频上下文`);
|
console.warn(`当前索引 ${currentIndex} 无可用视频上下文`);
|
||||||
|
e.stopPropagation();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -841,13 +846,15 @@
|
||||||
// 暂停当前视频
|
// 暂停当前视频
|
||||||
try {
|
try {
|
||||||
videoContext.pause();
|
videoContext.pause();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
e.stopPropagation();
|
||||||
console.warn('暂停视频失败:', error);
|
console.warn('暂停视频失败:', error);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// 播放当前视频
|
// 播放当前视频
|
||||||
this.video_play_event(videoContext);
|
this.video_play_event(videoContext);
|
||||||
}
|
}
|
||||||
|
e.stopPropagation();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('toggle_play_pause error:', error);
|
console.error('toggle_play_pause error:', error);
|
||||||
}
|
}
|
||||||
|
|
@ -1102,7 +1109,6 @@
|
||||||
// 关闭评论区
|
// 关闭评论区
|
||||||
close_comment_modal(e) {
|
close_comment_modal(e) {
|
||||||
try {
|
try {
|
||||||
console.log('close_comment_modal', e.currentTarget.dataset.type);
|
|
||||||
this.active_dropdown_id = null;
|
this.active_dropdown_id = null;
|
||||||
this.show_comment_modal = false;
|
this.show_comment_modal = false;
|
||||||
this.comment_scroll_top = 0 + Math.random(); // 关闭评论时滚动到最顶部
|
this.comment_scroll_top = 0 + Math.random(); // 关闭评论时滚动到最顶部
|
||||||
|
|
@ -1631,8 +1637,8 @@
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// this.video_data_list = this.video_data_list;
|
// this.video_data_list = this.video_data_list;
|
||||||
this.$set(this, 'video_data_list', this.video_data_list);
|
this.$set(this, 'video_data_list', this.video_data_list);
|
||||||
console.log(this.video_data_list);
|
console.log(this.video_data_list);
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('product_close_event error:', error);
|
console.error('product_close_event error:', error);
|
||||||
|
|
@ -1837,7 +1843,7 @@
|
||||||
// 关闭举报弹窗
|
// 关闭举报弹窗
|
||||||
popup_report_close_event() {
|
popup_report_close_event() {
|
||||||
try {
|
try {
|
||||||
this.$refs.popupReportRef.close();
|
// this.$refs.popupReportRef.close();
|
||||||
this.current_main_index = 0;
|
this.current_main_index = 0;
|
||||||
this.current_sub_index = 0;
|
this.current_sub_index = 0;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
@ -1849,6 +1855,7 @@
|
||||||
select_main_reason(e) {
|
select_main_reason(e) {
|
||||||
try {
|
try {
|
||||||
const index = e?.currentTarget?.dataset?.index || 0;
|
const index = e?.currentTarget?.dataset?.index || 0;
|
||||||
|
console.log(index);
|
||||||
const main_index = parseInt(index);
|
const main_index = parseInt(index);
|
||||||
if (main_index !== this.current_main_index) {
|
if (main_index !== this.current_main_index) {
|
||||||
this.current_main_index = main_index;
|
this.current_main_index = main_index;
|
||||||
|
|
@ -1964,30 +1971,19 @@
|
||||||
|
|
||||||
.play-icon {
|
.play-icon {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 0;
|
||||||
left: 50%;
|
left: 0;
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
.play-icon .play-icon-bg {
|
.play-icon-bg {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
background: #fff;
|
background: #fff;
|
||||||
width: 60rpx;
|
width: 60rpx;
|
||||||
height: 60rpx;
|
height: 60rpx;
|
||||||
z-index: 0;
|
z-index: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.play-icon .play-icon-iconfont {
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-actions {
|
.right-actions {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 20rpx;
|
right: 20rpx;
|
||||||
|
|
@ -2269,7 +2265,7 @@
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
|
|
||||||
.report-label text {
|
.report-required {
|
||||||
color: #e74c3c;
|
color: #e74c3c;
|
||||||
font-size: 30rpx;
|
font-size: 30rpx;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue