2020-08-09 03:31:47 +00:00
|
|
|
|
<template>
|
|
|
|
|
<view>
|
2020-08-10 11:06:47 +00:00
|
|
|
|
<video id="videoId" :style="videoSize" :src="src" autoplay="true" :show-fullscreen-btn="false" @play="playing"
|
|
|
|
|
@timeupdate="timeupdate" :show-play-btn="false" controls="false" @click="stoping" :enable-progress-gesture="false"></video>
|
2020-08-09 03:31:47 +00:00
|
|
|
|
<cover-image class="close" @click="goBack" src="../../static/close.png">
|
|
|
|
|
</cover-image>
|
2020-08-09 11:08:12 +00:00
|
|
|
|
<cover-image class="pause" @click="stoping" src="../../static/videoPlay.png" v-if="!is_play">
|
|
|
|
|
</cover-image>
|
|
|
|
|
<!-- 用户操作 -->
|
|
|
|
|
<userinfo class="user-info" :list="list" :cart="cart_type" :comment="is_comment" :num="comment_num" @openCart="openPopup"></userinfo>
|
2020-08-09 03:31:47 +00:00
|
|
|
|
<cover-view class="info-box">
|
|
|
|
|
<view class="video-info-box">
|
2020-08-09 11:08:12 +00:00
|
|
|
|
<image class="image-play" src="../../static/videoIcon.png" mode=""></image>
|
2020-08-09 03:31:47 +00:00
|
|
|
|
<text class="video-slip">视频</text>
|
2020-08-09 11:08:12 +00:00
|
|
|
|
<text class="time">{{ time_count == 1 ? 0 : time_count }}s</text>
|
2020-08-09 03:31:47 +00:00
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="name">@{{ list.member_nickname }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="title">{{ list.article_title }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="centent">{{ list.article_content }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="label-box">
|
|
|
|
|
<block v-for="(item,index) in list.label" :key="index">
|
2020-08-09 11:08:12 +00:00
|
|
|
|
<text class="label" :style="{ width: labelLen[index] * 40 + 'rpx' }">{{ item.name }}</text>
|
2020-08-09 03:31:47 +00:00
|
|
|
|
</block>
|
|
|
|
|
</view>
|
|
|
|
|
</cover-view>
|
2020-08-10 11:06:47 +00:00
|
|
|
|
<cover-view class="content-box" v-if="is_comment">
|
|
|
|
|
<view class="content-title">
|
|
|
|
|
<text class="tips">评论</text>
|
|
|
|
|
<text class="close-down" @click="closeComment">×</text>
|
|
|
|
|
</view>
|
|
|
|
|
<scroller class="comment-list">
|
|
|
|
|
<view class="" v-for="(item,index) in commentList" :key="index">
|
|
|
|
|
<view class="comment-list-box">
|
|
|
|
|
<view class="comment-list-header">
|
|
|
|
|
<image class="avatar" :src="item.member_avatar" mode=""></image>
|
|
|
|
|
<view>
|
|
|
|
|
<text class="comment-title">{{ item.member_nickname }}</text>
|
|
|
|
|
<text class="comment-time">{{ item.create_time }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<text class="reply">回复</text>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="content-main">
|
|
|
|
|
<text class="content-style">{{ item.content }}</text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="send-box">
|
|
|
|
|
<input class="send-val" type="text" value="" />
|
|
|
|
|
<text class="btn-send">发送</text>
|
|
|
|
|
</view>
|
|
|
|
|
<loading class="loading" @loading="onloading" :display="loadinging ? 'show' : 'hide'">
|
|
|
|
|
<loading-indicator class="indicator"></loading-indicator>
|
|
|
|
|
<text class="indicator-text">努力加载中</text>
|
|
|
|
|
</loading>
|
|
|
|
|
</scroller>
|
|
|
|
|
</cover-view>
|
|
|
|
|
<list class="cart-box">
|
|
|
|
|
<cell></cell>
|
|
|
|
|
</list>
|
2020-08-09 03:31:47 +00:00
|
|
|
|
</view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2020-08-09 11:08:12 +00:00
|
|
|
|
import userinfo from "../components/userinfo/index" // 点赞组件
|
2020-08-09 03:31:47 +00:00
|
|
|
|
export default {
|
2020-08-10 11:06:47 +00:00
|
|
|
|
components: {
|
2020-08-09 11:08:12 +00:00
|
|
|
|
userinfo
|
|
|
|
|
},
|
2020-08-09 03:31:47 +00:00
|
|
|
|
data() {
|
|
|
|
|
return {
|
|
|
|
|
videoSize: {},
|
|
|
|
|
list: {},
|
2020-08-09 11:08:12 +00:00
|
|
|
|
labelLen: [],
|
|
|
|
|
cart_type: false, // 显示购物车
|
|
|
|
|
is_comment: false, // 显示评论
|
|
|
|
|
comment_num: 0, // 评论数
|
2020-08-10 11:06:47 +00:00
|
|
|
|
page: 0,
|
|
|
|
|
commentList: [], // 评论列表
|
2020-08-09 03:31:47 +00:00
|
|
|
|
src: "",
|
|
|
|
|
is_play: true,
|
2020-08-09 11:08:12 +00:00
|
|
|
|
time_count: 0,
|
|
|
|
|
linear: null,
|
2020-08-10 11:06:47 +00:00
|
|
|
|
loadinging: false,
|
2020-08-09 03:31:47 +00:00
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
onLoad(option) {
|
2020-08-10 11:06:47 +00:00
|
|
|
|
this.article_id = option.id;
|
2020-08-09 03:31:47 +00:00
|
|
|
|
this.getVideoInfo(option.id);
|
|
|
|
|
this.getInfo();
|
|
|
|
|
},
|
|
|
|
|
onReady() {
|
|
|
|
|
this.videoBox = uni.createVideoContext("videoId", this);
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
// 获取信息
|
|
|
|
|
getVideoInfo(article_id) {
|
|
|
|
|
uni.request({
|
|
|
|
|
url: "https://dmmall.sdbairui.com/api/article/articleInfo",
|
|
|
|
|
method: "POST",
|
|
|
|
|
data: {
|
|
|
|
|
article_id: article_id
|
|
|
|
|
},
|
2020-08-09 11:08:12 +00:00
|
|
|
|
header: {
|
2020-08-10 11:06:47 +00:00
|
|
|
|
Authorization: 'Bearer' + ' ' + uni.getStorageSync('token')
|
2020-08-09 11:08:12 +00:00
|
|
|
|
},
|
2020-08-09 03:31:47 +00:00
|
|
|
|
success: (res) => {
|
|
|
|
|
this.list = res.data.data.info;
|
|
|
|
|
this.src = res.data.data.info.video_path;
|
2020-08-09 11:08:12 +00:00
|
|
|
|
let item = res.data.data.info.label;
|
|
|
|
|
let arr = [];
|
|
|
|
|
item.forEach(data => {
|
|
|
|
|
let str = escape(data.name);
|
2020-08-10 11:06:47 +00:00
|
|
|
|
if (str.indexOf('%u')) {
|
2020-08-09 11:08:12 +00:00
|
|
|
|
// console.log(data.name);
|
|
|
|
|
arr.push(Math.floor(data.name.length / 2));
|
|
|
|
|
} else {
|
|
|
|
|
arr.push(data.name.length);
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
this.labelLen = arr;
|
2020-08-09 03:31:47 +00:00
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
2020-08-10 11:06:47 +00:00
|
|
|
|
// 获取评论
|
|
|
|
|
getComment() {
|
|
|
|
|
uni.request({
|
|
|
|
|
url: "https://dmmall.sdbairui.com/api/article/articleCommentList",
|
|
|
|
|
method: "POST",
|
|
|
|
|
data: {
|
|
|
|
|
article_id: this.article_id,
|
|
|
|
|
page: this.page,
|
|
|
|
|
},
|
|
|
|
|
success: (res) => {
|
|
|
|
|
if (res.data.errCode == 0) {
|
|
|
|
|
console.log(res.data);
|
|
|
|
|
this.commentList = res.data.data;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
2020-08-09 03:31:47 +00:00
|
|
|
|
// 获取手机信息
|
|
|
|
|
getInfo() {
|
|
|
|
|
uni.getSystemInfo({
|
|
|
|
|
success: (res) => {
|
|
|
|
|
this.videoSize = {
|
|
|
|
|
width: "750rpx",
|
|
|
|
|
height: res.screenHeight + "px"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
// 播放
|
|
|
|
|
playing(e) {
|
2020-08-09 11:08:12 +00:00
|
|
|
|
// console.log(e);
|
2020-08-10 11:06:47 +00:00
|
|
|
|
if (e.type == "play") {}
|
2020-08-09 03:31:47 +00:00
|
|
|
|
},
|
|
|
|
|
// 暂停
|
|
|
|
|
stoping() {
|
|
|
|
|
this.is_play = !this.is_play;
|
|
|
|
|
if (this.is_play) {
|
|
|
|
|
this.videoBox.play();
|
|
|
|
|
} else {
|
|
|
|
|
this.videoBox.pause();
|
|
|
|
|
}
|
|
|
|
|
},
|
2020-08-09 11:08:12 +00:00
|
|
|
|
// 监听视频
|
|
|
|
|
timeupdate(e) {
|
|
|
|
|
this.time_count = parseInt(e.detail.duration) - parseInt(e.detail.currentTime);
|
|
|
|
|
if (e.detail.duration == e.detail.currentTime) {
|
2020-08-10 11:06:47 +00:00
|
|
|
|
this.is_play = false;
|
2020-08-09 11:08:12 +00:00
|
|
|
|
}
|
|
|
|
|
// let num = parseInt((e.detail.currentTime/e.detail.duration)*100);
|
|
|
|
|
// this.linear = num + "%";
|
|
|
|
|
// console.log(this.time_count);
|
2020-08-09 03:31:47 +00:00
|
|
|
|
},
|
2020-08-10 11:06:47 +00:00
|
|
|
|
// 打开弹窗
|
|
|
|
|
openPopup(data) {
|
|
|
|
|
console.log(data);
|
|
|
|
|
this.cart_type = data.cart;
|
|
|
|
|
this.is_comment = data.comment;
|
|
|
|
|
if (this.is_comment) {
|
|
|
|
|
this.page = 0;
|
|
|
|
|
this.getComment();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 关闭评论
|
|
|
|
|
closeComment() {
|
|
|
|
|
this.is_comment = false;
|
|
|
|
|
},
|
|
|
|
|
// 下拉加载
|
|
|
|
|
onloading(e) {
|
|
|
|
|
console.log(e);
|
|
|
|
|
this.loadinging = true;
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
this.loadinging = false;
|
|
|
|
|
}, 2000)
|
|
|
|
|
},
|
2020-08-09 03:31:47 +00:00
|
|
|
|
goBack() {
|
|
|
|
|
uni.navigateBack({
|
|
|
|
|
delta: 1
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
/* 关闭 */
|
|
|
|
|
.close {
|
|
|
|
|
position: fixed;
|
|
|
|
|
top: 80rpx;
|
|
|
|
|
right: 60rpx;
|
|
|
|
|
width: 30rpx;
|
|
|
|
|
height: 30rpx;
|
|
|
|
|
}
|
2020-08-10 11:06:47 +00:00
|
|
|
|
|
2020-08-09 11:08:12 +00:00
|
|
|
|
/* 暂停 */
|
|
|
|
|
.pause {
|
|
|
|
|
position: fixed;
|
|
|
|
|
top: 600rpx;
|
|
|
|
|
left: 330rpx;
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
height: 100rpx;
|
|
|
|
|
}
|
2020-08-10 11:06:47 +00:00
|
|
|
|
|
2020-08-09 11:08:12 +00:00
|
|
|
|
/* 用户操作 */
|
|
|
|
|
.user-info {
|
|
|
|
|
position: fixed;
|
|
|
|
|
top: 360rpx;
|
|
|
|
|
right: 30rpx;
|
|
|
|
|
}
|
2020-08-10 11:06:47 +00:00
|
|
|
|
|
2020-08-09 03:31:47 +00:00
|
|
|
|
/* 底部信息 */
|
|
|
|
|
.info-box {
|
|
|
|
|
position: fixed;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
padding: 30rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.video-info-box {
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
align-items: center;
|
|
|
|
|
width: 160rpx;
|
|
|
|
|
height: 40rpx;
|
|
|
|
|
padding: 4rpx 10rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
color: #666666;
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
background-color: rgba(255, 255, 255, .6);
|
|
|
|
|
}
|
|
|
|
|
|
2020-08-10 11:06:47 +00:00
|
|
|
|
.content-box {
|
|
|
|
|
z-index: 99;
|
|
|
|
|
position: fixed;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
width: 750rpx;
|
|
|
|
|
height: 700rpx;
|
|
|
|
|
margin-bottom: 88rpx;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.content-title {
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
align-items: center;
|
|
|
|
|
height: 88rpx;
|
|
|
|
|
padding: 0 20rpx;
|
|
|
|
|
background-color: #ECECEC;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.comment-list {
|
|
|
|
|
margin-bottom: 50rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.comment-list-box {
|
|
|
|
|
padding: 30rpx;
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.content-main {
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
padding-left: 100rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.content-style {
|
|
|
|
|
width: 600rpx;
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
color: #333;
|
|
|
|
|
lines: 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.comment-list-header {
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.avatar {
|
|
|
|
|
width: 60rpx;
|
|
|
|
|
height: 60rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.comment-title {
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
color: #333;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.comment-time,
|
|
|
|
|
.reply {
|
|
|
|
|
font-size: 22rpx;
|
|
|
|
|
color: #999;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.tips {
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
font-weight: 500;
|
|
|
|
|
color: #333;
|
|
|
|
|
}
|
|
|
|
|
.send-box {
|
|
|
|
|
z-index: 10000;
|
|
|
|
|
position: fixed;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
width: 750rpx;
|
|
|
|
|
height: 88rpx;
|
|
|
|
|
padding: 10rpx 30rpx;
|
|
|
|
|
border-top-width: 1rpx;
|
|
|
|
|
border-color: #ececec;
|
|
|
|
|
background-color: #fff;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.send-val {
|
|
|
|
|
width: 600rpx;
|
|
|
|
|
height: 88rpx;
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.btn-send {
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
color: #303133;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.close-down {
|
|
|
|
|
font-size: 50rpx;
|
|
|
|
|
text-align: center;
|
|
|
|
|
color: #333;
|
|
|
|
|
}
|
|
|
|
|
|
2020-08-09 03:31:47 +00:00
|
|
|
|
.image-play {
|
|
|
|
|
width: 22rpx;
|
|
|
|
|
height: 20rpx;
|
|
|
|
|
margin-right: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.video-slip {
|
|
|
|
|
color: #666;
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
margin-right: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.time {
|
|
|
|
|
color: #666;
|
|
|
|
|
font-size: 24rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.name {
|
|
|
|
|
color: #fff;
|
|
|
|
|
font-size: 36rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.title {
|
|
|
|
|
color: #fff;
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.centent {
|
|
|
|
|
width: 500rpx;
|
|
|
|
|
color: #fff;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
margin-bottom: 20rpx;
|
|
|
|
|
lines: 2;
|
|
|
|
|
text-overflow: ellipsis;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.label-box {
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.label {
|
|
|
|
|
lines: 3;
|
|
|
|
|
width: 100rpx;
|
|
|
|
|
height: 40rpx;
|
|
|
|
|
padding: 4rpx 10rpx;
|
|
|
|
|
margin-right: 10rpx;
|
|
|
|
|
margin-bottom: 10rpx;
|
|
|
|
|
font-size: 26rpx;
|
|
|
|
|
text-align: center;
|
|
|
|
|
color: #666666;
|
|
|
|
|
border-radius: 10rpx;
|
|
|
|
|
background-color: rgba(255, 255, 255, .6);
|
|
|
|
|
}
|
2020-08-10 11:06:47 +00:00
|
|
|
|
|
|
|
|
|
.loading {
|
|
|
|
|
width: 750rpx;
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.indicator-text {
|
|
|
|
|
font-size: 20rpx;
|
|
|
|
|
text-align: center;
|
|
|
|
|
color: #999;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.indicator {
|
|
|
|
|
width: 30rpx;
|
|
|
|
|
height: 30rpx;
|
|
|
|
|
color: #999;
|
|
|
|
|
}
|
2020-08-09 03:31:47 +00:00
|
|
|
|
</style>
|