解决视频下滑没数据的问题,以及修改供应接口

This commit is contained in:
jia 2023-09-04 19:29:36 +08:00
parent 96bfa9cb23
commit 9b2997b694
4 changed files with 128 additions and 131 deletions

View File

@ -30,13 +30,13 @@
<view class="line" :class="{'font-line':firstKey == item.key}"> <view class="line" :class="{'font-line':firstKey == item.key}">
</view> </view>
</view> </view>
<view class="item" @click="bindRight"> <!-- <view class="item" @click="bindRight">
<view>筛选 <view>筛选
<!-- <text class="iconfont icon-shaixuan"></text> -->
</view> </view>
<view class="line"> <view class="line">
</view> </view>
</view> </view> -->
</view> </view>
</view> </view>
<!-- 店铺 --> <!-- 店铺 -->

View File

@ -315,7 +315,7 @@
<mentioned ref="mentioned" @close="closePopup" :list="moreList" :uid="authorUid"></mentioned> <mentioned ref="mentioned" @close="closePopup" :list="moreList" :uid="authorUid"></mentioned>
</view> </view>
</uni-popup> </uni-popup>
<!--<authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> --> <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
<view class="fixed-head"> <view class="fixed-head">
<view class="sys-head" :style="{height:statusBarHeight}"></view> <view class="sys-head" :style="{height:statusBarHeight}"></view>
<view class="tool-bar" @click='goBack()'> <view class="tool-bar" @click='goBack()'>
@ -657,15 +657,15 @@
} }
}); });
}, },
// // 授权回调 // 授权回调
// onLoadFun() { onLoadFun() {
// this.isShowAuth = false this.isShowAuth = false
// this.getUserInfo() this.getUserInfo()
// }, },
// 授权关闭 //授权关闭
// authColse: function(e) { authColse: function(e) {
// this.isShowAuth = e this.isShowAuth = e
// }, },
moreTap(item) { moreTap(item) {
item.isMore = !item.isMore; item.isMore = !item.isMore;
}, },
@ -690,35 +690,26 @@
getData() { getData() {
// 这里就是数据加载完以后再向后端发送数据的地方, // 这里就是数据加载完以后再向后端发送数据的地方,
let that = this; let that = this;
if (!that.loadVideo) return // if (!that.loadVideo) return
that.loadVideo = true // that.loadVideo = true
// '
deoList(that.videoID).then(res => { // deoList(that.videoID).then(res => {
that.loadVideo = false
that.getVideoData([res.data]);
}).catch(err => {
return uni.showToast({
title: err,
icon: 'none',
duration: 2000
});
})
// that.isUser ?
// myVideoList(that.userUid, {
// page: that.page,
// limit: that.limit,
// is_star: that.isSatrt,
// community_id: that.videoID
// }).then(res => {
// that.loadVideo = false // that.loadVideo = false
// that.getVideoData(res.data.list); // that.getVideoData([res.data]);
// }).catch(err => { // }).catch(err => {
// return uni.showToast({ // return uni.showToast({
// title: err, // title: err,
// icon: 'none', // icon: 'none',
// duration: 2000 // duration: 2000
// }); // });
// }) : // })'
// that.isUser ?
videoList().then(res=>{
that.getVideoData(res.data.list);
})
//:
// graphicLstApi({ // graphicLstApi({
// page: that.page, // page: that.page,
// limit: that.limit, // limit: that.limit,
@ -750,19 +741,18 @@
}) })
}, },
getVideoData(list) { getVideoData(list) {
console.log(list,'111111')
if (list.length == 0) return if (list.length == 0) return
let that = this; let that = this;
that.loadVideo = list.length == that.limit that.loadVideo = list.length == that.limit
// that.page = that.page + 1; that.page = that.page + 1
that.page = 1
var msg = list var msg = list
for (let i = 0; i < msg.length; i++) { for (let i = 0; i < msg.length; i++) {
msg[i]['isMore'] = false msg[i]['isMore'] = false
msg[i]['community_id'] = msg[i]['community_id'].toString() msg[i]['community_id'] = msg[i]['community_id'].toString()
that.dataList.push(msg[i]) that.dataList.push(msg[i])
} }
console.log(that.dataList)
if (that.dataList.length !== 0) { if (that.dataList.length !== 0) {
that.dataList[that.k].state = 'play'; that.dataList[that.k].state = 'play';
setTimeout(function() { setTimeout(function() {
@ -888,9 +878,9 @@
// 这个方法主要就是用来第一次进入视频播放时用来处理 // 这个方法主要就是用来第一次进入视频播放时用来处理
deoList(this.videoID).then(async (res) => { deoList(this.videoID).then(async (res) => {
this.loadVideo = false this.loadVideo = false
this.page = 1; this.userUid=res.data.uid
this.page = this.page + 1;
var msg = [res.data]; var msg = [res.data];
console.log(res.data)
for (let i = 0; i < msg.length; i++) { for (let i = 0; i < msg.length; i++) {
msg[i]['isMore'] = false msg[i]['isMore'] = false
msg[i]['playIng'] = false msg[i]['playIng'] = false
@ -900,7 +890,7 @@
msg[i]['community_id'] = msg[i]['community_id'].toString() msg[i]['community_id'] = msg[i]['community_id'].toString()
} }
this.dataList = msg; this.dataList = msg;
console.log(this.dataList)
if (this.dataList.length !== 0) { if (this.dataList.length !== 0) {
this.dataList[this.k].state = 'play'; this.dataList[this.k].state = 'play';
uni.createVideoContext(this.dataList[this.k].community_id, this).play() uni.createVideoContext(this.dataList[this.k].community_id, this).play()

View File

@ -15,7 +15,7 @@
<!-- 头部导航 --> <!-- 头部导航 -->
<!-- <view v-if="!isUser" class="header" :style="{backgroundColor:currentNav==1?'':'#ffffff'}"> <!-- <view v-if="!isUser" class="header" :style="{backgroundColor:'#Fff'}">
<view class="tool-bar"> <view class="tool-bar">
<view class='iconfont icon-xiangzuo' @tap='goBack'></view> <view class='iconfont icon-xiangzuo' @tap='goBack'></view>
@ -27,10 +27,14 @@
<text class="tName" :class="currentNav==1?'on':''">推荐</text> <text class="tName" :class="currentNav==1?'on':''">推荐</text>
</view> </view>
<view class="items" @click.stop="navTap(3)"> <view class="items" @click.stop="navTap(3)">
<text class="tName" :class="currentNav==3?'on':''">列表</text> <text class="tName" :class="currentNav==3?'on':''">热点资讯</text>
</view> </view>
<view class="items" @click.stop="navTap(4)">
<text class="tName" :class="currentNav==4?'on':''">社区</text>
</view>
</view> --> </view> -->
<swiper v-show="currentNav !== 3" :style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'" <swiper v-show="currentNav !== 3&&currentNav != 4" :style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'"
:vertical="true" @animationfinish="animationfinish" @change="change" :current="k" :indicator-dots="false"> :vertical="true" @animationfinish="animationfinish" @change="change" :current="k" :indicator-dots="false">
<swiper-item v-for="(list,index) in dataList"> <swiper-item v-for="(list,index) in dataList">
<view v-if="max > index"> <view v-if="max > index">
@ -54,7 +58,6 @@
5.show-loading这里默认去掉播放转圈的标志 5.show-loading这里默认去掉播放转圈的标志
v-if="Math.abs(k-index)<=1" v-if="Math.abs(k-index)<=1"
--> -->
<video :id="list.community_id+''+index" :loop="true" :muted="list.isplay" <video :id="list.community_id+''+index" :loop="true" :muted="list.isplay"
:autoplay="index == k && isRoutine" :controls="false" :http-cache="true" :autoplay="index == k && isRoutine" :controls="false" :http-cache="true"
:page-gesture="false" :show-fullscreen-btn="false" :show-loading="false" :page-gesture="false" :show-fullscreen-btn="false" :show-loading="false"
@ -162,7 +165,7 @@
<navigator v-if="list.author && userInfo.uid != list.author.uid" hover-class="none" <navigator v-if="list.author && userInfo.uid != list.author.uid" hover-class="none"
:url="'/pages/plantGrass/plant_user/index?id='+list.uid" class="pictrue"> :url="'/pages/plantGrass/plant_user/index?id='+list.uid" class="pictrue">
<image class="userAvatar" <image class="userAvatar"
:src="list.author&&list.author.avatar || '/static/images/f.png'" mode="aspectFit"> :src="list.author&&list.author.avatar || '/static/images/f.png'" mode="aspectFill">
</image> </image>
<view v-if="!list.is_fans || !userInfo.uid" class="guanzhu" <view v-if="!list.is_fans || !userInfo.uid" class="guanzhu"
@click.stop="followAuthor(list)"><text @click.stop="followAuthor(list)"><text
@ -227,13 +230,13 @@
@scrolltolower="getGoods()"> @scrolltolower="getGoods()">
<block v-for="(item,index) in cateGoods" :key="index"> <block v-for="(item,index) in cateGoods" :key="index">
<view class="goods_item" @click="gogogo(item)"> <view class="goods_item" @click="gogogo(item)">
<image class="goods_img" :src="item.image[0]" mode="aspectFit"></image> <image class="goods_img" :src="item.image[0]" mode="aspectFill"></image>
<view class="botm"> <view class="botm">
<view class="title">{{item.title}}</view> <view class="title">{{item.title}}</view>
<view class="goods_info flex_a_c"> <view class="goods_info flex_a_c">
<view class="l_info flex_a_c"> <view class="l_info flex_a_c">
<image :src="(item.author && item.author.avatar) || '/static/images/f.png'" <image :src="(item.author && item.author.avatar) || '/static/images/f.png'"
mode="aspectFit" class="g_img"></image> mode="aspectFill" class="g_img"></image>
<view class="g_name">{{item.author && item.author.nickname}}</view> <view class="g_name">{{item.author && item.author.nickname}}</view>
</view> </view>
<view class="nice_box flex_a_c" @click.stop="giveStart(item)"> <view class="nice_box flex_a_c" @click.stop="giveStart(item)">
@ -246,6 +249,7 @@
</view> </view>
</block> </block>
</scroll-view> </scroll-view>
<!-- <view class="video-list" v-if="currentNav === 3" <!-- <view class="video-list" v-if="currentNav === 3"
:style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'"> :style="'width: '+ windowWidth +'px; height: '+ windowHeight +'px;'">
@ -294,7 +298,9 @@
<!-- #endif --> <!-- #endif -->
</view> </view>
<canvas class="canvas" canvas-id='myCanvas' v-if="canvasStatus"></canvas> <canvas class="canvas" canvas-id='myCanvas' v-if="canvasStatus"></canvas>
<!-- <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize> --> <authorize @onLoadFun="onLoadFun" :isAuto="isAuto" :isShowAuth="isShowAuth" @authColse="authColse"></authorize>
</view> </view>
</template> </template>
@ -311,6 +317,7 @@
} from '@/utils'; } from '@/utils';
import comment from '@/components/comment.vue'; import comment from '@/components/comment.vue';
import mentioned from '@/components/mentioned.vue'; import mentioned from '@/components/mentioned.vue';
import { import {
HTTP_REQUEST_URL HTTP_REQUEST_URL
} from '@/config/app'; } from '@/config/app';
@ -335,11 +342,13 @@
components: { components: {
comment, comment,
mentioned, mentioned,
authorize authorize,
}, },
computed: configMap({ computed: configMap({
community_reply_status: 0 community_reply_status: 0
}, mapGetters(['isLogin', 'uid'])), }, mapGetters(['isLogin', 'uid'])),
data() { data() {
return { return {
isTriggered: false, isTriggered: false,
@ -352,7 +361,7 @@
deleteHeight: 0, deleteHeight: 0,
dataList: [], dataList: [],
k: 0, k: 0,
max: 1, max: 2,
oldVideo: "", oldVideo: "",
voice: "", voice: "",
timeout: "", timeout: "",
@ -420,7 +429,6 @@
watch: { watch: {
k(new_k, old_k) { k(new_k, old_k) {
const max = new_k + 2; const max = new_k + 2;
if (this.max < max) { if (this.max < max) {
this.max = max; this.max = max;
} }
@ -428,7 +436,6 @@
this.oldCurrent = this.currentNav this.oldCurrent = this.currentNav
return false return false
} }
this.dataList[old_k].playIng = false //如果视频暂停,就加载封面 this.dataList[old_k].playIng = false //如果视频暂停,就加载封面
this.dataList[old_k].isplay = true this.dataList[old_k].isplay = true
this.dataList[old_k].state = 'pause' this.dataList[old_k].state = 'pause'
@ -451,7 +458,6 @@
} }
}, },
onLoad(options) { onLoad(options) {
console.log(options)
this.getOptions(options); this.getOptions(options);
this.videoID = options.id; this.videoID = options.id;
this.isUser = options.user == 1 ? true : false; this.isUser = options.user == 1 ? true : false;
@ -736,9 +742,9 @@
}, },
get() { get() {
let that = this let that = this
that.loadVideo = true // 1.这里引入后端请求数据
deoList(that.videoID).then(res => {
// console.log(res.data) deoList(this.videoID).then(res => {
that.videoData([res.data]) that.videoData([res.data])
if (res.data.list.length < that.limit) { if (res.data.list.length < that.limit) {
this.loadMore = false; this.loadMore = false;
@ -750,7 +756,7 @@
duration: 2000 duration: 2000
}); });
}) })
// that.isUser ?
// myVideoList(that.userUid, { // myVideoList(that.userUid, {
// page: that.page, // page: that.page,
// limit: that.limit, // limit: that.limit,
@ -767,8 +773,7 @@
// icon: 'none', // icon: 'none',
// duration: 2000 // duration: 2000
// }); // });
// }) // }) :
// :
// graphicLstApi({ // graphicLstApi({
// page: that.page, // page: that.page,
// limit: that.limit, // limit: that.limit,
@ -785,7 +790,7 @@
// duration: 2000 // duration: 2000
// }); // });
// }) // })
that.loadVideo = true
}, },
getFocusList() { getFocusList() {
let that = this; let that = this;
@ -821,21 +826,16 @@
msg[i]['isplay'] = true msg[i]['isplay'] = true
msg[i]['loading'] = false msg[i]['loading'] = false
that.dataList.push(msg[i]) that.dataList.push(msg[i])
{console.log(i,that.k)}
//#ifndef H5 //#ifndef H5
if (i == 0 && that.k == 0) { if (i == 0 && that.k == 0) {
this.dataList[0].isplay = false this.dataList[0].isplay = false
this.dataList[0].playIng = true this.dataList[0].playIng = true
this.dataList[0].state = 'play' this.dataList[0].state = 'play'
this.dataList[0].loading = false this.dataList[0].loading = false
console.log('32')
uni.createVideoContext(that.dataList[0].community_id + '' + 0, that).play() uni.createVideoContext(that.dataList[0].community_id + '' + 0, that).play()
} }
//#endif //#endif
} }
//#ifdef MP //#ifdef MP
if (this.k == 0) { if (this.k == 0) {
this.videoShare(this.dataList[0]); this.videoShare(this.dataList[0]);
@ -1282,8 +1282,6 @@
z-index: 9; z-index: 9;
width: 750rpx; width: 750rpx;
height: 120rpx; height: 120rpx;
flex-direction: row; flex-direction: row;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -1305,7 +1303,7 @@
margin-right: 40rpx; margin-right: 40rpx;
margin-left: 20rpx; margin-left: 20rpx;
font-size: 30rpx; font-size: 30rpx;
color: #000; color: #333;
margin-top: 60rpx; margin-top: 60rpx;
} }
} }
@ -1313,12 +1311,24 @@
.items { .items {
margin: 0 30rpx; margin: 0 30rpx;
image {
width: 58rpx;
height: 58rpx;
}
.tName { .tName {
color: #000; font-size: 33rpx;
font-size: 32rpx; font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #737373;
line-height: 50px;
&.on { &.on {
font-size: 38rpx; font-size: 33rpx;
font-family: PingFang SC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
} }
} }
@ -1395,7 +1405,7 @@
.userInfo { .userInfo {
position: absolute; position: absolute;
bottom: 120px; bottom: 60rpx;
right: 20rpx; right: 20rpx;
flex-direction: column; flex-direction: column;
text-align: center; text-align: center;

View File

@ -245,7 +245,7 @@ export default {
where1: { where1: {
page: 1, page: 1,
limit: 6 limit: 10
}, },
currentItemId: 69, // 0 || 69 currentItemId: 69, // 0 || 69
keyword: '', keyword: '',
@ -293,7 +293,6 @@ export default {
onReachBottom() { onReachBottom() {
if (this.status == 'nomore') return; if (this.status == 'nomore') return;
this.status = 'loading'; this.status = 'loading';
this.where.page = ++this.where.page; this.where.page = ++this.where.page;
this.list() this.list()
}, },
@ -349,13 +348,11 @@ export default {
list(id) { list(id) {
if (id) { if (id) {
spuInfo(id, this.where1).then(res => { spuInfo(id, this.where1).then(res => {
// console.log(res) this.cateGoods.push(...res.data.list)
this.cateGoods = res.data.list
}) })
} else { } else {
getProductHot(1, 10).then(res => { getProductHot(1, 10).then(res => {
// console.log(res) this.cateGoods.push(...res.data.list)
this.cateGoods = res.data.list
}) })
} }