评论后刷新视频数据

This commit is contained in:
abu 2025-05-04 03:37:34 +08:00
parent 6ad4f76fa1
commit af7f967d39
8 changed files with 245 additions and 59 deletions

View File

@ -63,8 +63,8 @@ export default {
this.checkArguments(); //
});
// init im
var ddd = TUIChatKit.init();
console.log('dasjdlasjdlajsldjaslkdjasljdklasdljasldadjaldjlkasdlkasjdalsdjl', ddd);
TUIChatKit.init();
console.log('IM初始化完成');
//
console.log('是否登录', storage.getHasLogin());
if (storage.getHasLogin()) {
@ -83,7 +83,6 @@ export default {
// #endif
},
methods: {
//
hanleTabCenter() {
//
uni.onTabBarMidButtonTap(() => {

View File

@ -402,6 +402,7 @@
<uni-popup-comments
:thisVlogerId="pinglunInfo.vlogerId"
:thisVlogId="pinglunInfo.vlogId"
:from="'guanzhu'"
></uni-popup-comments>
</uni-popup>
<!-- 分享 -->
@ -509,7 +510,8 @@ export default {
vlogId: '', // 视频id
url: '',
isPrivate: 0
}
},
channelComment: null
};
},
// components: {
@ -573,6 +575,16 @@ export default {
// },
created() {
this.channel = new BroadcastChannel('video-progress');
this.channelComment = new BroadcastChannel('comment-counts');
this.channelComment.onmessage = (event) => {
const { type, data } = event.data;
if (type == 'comment-counts') {
if (data.from == 'guanzhu') {
this.refreshVlogCounts();
this.freshCommentCounts();
}
}
};
this.platform = uni.getSystemInfoSync().platform;
var model = uni.getSystemInfoSync().model;
if (this.platform == 'ios' && (model !== 'iPhone6' || model !== 'iPhone6s' || model !== 'iPhone7' || model !== 'iPhone8')) {
@ -609,6 +621,25 @@ export default {
},
onReady() {},
methods: {
async refreshVlogCounts() {
// 查询当前点赞数,重新赋值给当前视频
var me = this;
var vlog = me.dataList[this.k];
var result = await vlogTotalLikedCounts(vlog.vlogId);
if (result.data.status == 200) {
var counts = result.data.data;
this.dataList[this.k].likeCounts = counts;
}
},
async freshCommentCounts() {
var me = this;
var vlog = me.dataList[this.k];
var result = await vlogComment(vlog.vlogId);
if (result.data.status == 200) {
var counts = result.data.data;
this.dataList[this.k].commentsCounts = counts;
}
},
// 关注博主
async followMe(vlogerId) {
var myUserInfo = storage.getVlogUserInfo();

View File

@ -402,6 +402,7 @@
<uni-popup-comments
:thisVlogerId="pinglunInfo.vlogerId"
:thisVlogId="pinglunInfo.vlogId"
:from="'local'"
></uni-popup-comments>
</uni-popup>
<!-- 分享 -->
@ -509,7 +510,8 @@ export default {
vlogId: '', // 视频id
url: '',
isPrivate: 0
}
},
channelComment: null
};
},
// components: {
@ -573,6 +575,16 @@ export default {
// },
created() {
this.channel = new BroadcastChannel('video-progress');
this.channelComment = new BroadcastChannel('comment-counts');
this.channelComment.onmessage = (event) => {
const { type, data } = event.data;
if (type == 'comment-counts') {
if (data.from == 'local') {
this.refreshVlogCounts();
this.freshCommentCounts();
}
}
};
this.platform = uni.getSystemInfoSync().platform;
var model = uni.getSystemInfoSync().model;
if (this.platform == 'ios' && (model !== 'iPhone6' || model !== 'iPhone6s' || model !== 'iPhone7' || model !== 'iPhone8')) {
@ -609,6 +621,25 @@ export default {
},
onReady() {},
methods: {
async refreshVlogCounts() {
// 查询当前点赞数,重新赋值给当前视频
var me = this;
var vlog = me.dataList[this.k];
var result = await vlogTotalLikedCounts(vlog.vlogId);
if (result.data.status == 200) {
var counts = result.data.data;
this.dataList[this.k].likeCounts = counts;
}
},
async freshCommentCounts() {
var me = this;
var vlog = me.dataList[this.k];
var result = await vlogComment(vlog.vlogId);
if (result.data.status == 200) {
var counts = result.data.data;
this.dataList[this.k].commentsCounts = counts;
}
},
// 关注博主
async followMe(vlogerId) {
var myUserInfo = storage.getVlogUserInfo();

View File

@ -395,6 +395,7 @@
<uni-popup-comments
:thisVlogerId="pinglunInfo.vlogerId"
:thisVlogId="pinglunInfo.vlogId"
:from="'tuijian'"
></uni-popup-comments>
</uni-popup>
<!-- 分享 -->
@ -494,7 +495,8 @@ export default {
player: '',
// 新增内容
page: 1,
channel: null,
channel: null, // 处理进度条
channelComment: null, // 处理评论数量显示
userId: '',
pinglunInfo: {
vlogerId: '', // 博主id
@ -565,6 +567,16 @@ export default {
// },
created() {
this.channel = new BroadcastChannel('video-progress');
this.channelComment = new BroadcastChannel('comment-counts');
this.channelComment.onmessage = (event) => {
const { type, data } = event.data;
if (type == 'comment-counts') {
if (data.from == 'tuijian') {
this.refreshVlogCounts();
this.freshCommentCounts();
}
}
};
this.platform = uni.getSystemInfoSync().platform;
var model = uni.getSystemInfoSync().model;
if (this.platform == 'ios' && (model !== 'iPhone6' || model !== 'iPhone6s' || model !== 'iPhone7' || model !== 'iPhone8')) {
@ -600,6 +612,25 @@ export default {
},
onReady() {},
methods: {
async refreshVlogCounts() {
// 查询当前点赞数,重新赋值给当前视频
var me = this;
var vlog = me.dataList[this.k];
var result = await vlogTotalLikedCounts(vlog.vlogId);
if (result.data.status == 200) {
var counts = result.data.data;
this.dataList[this.k].likeCounts = counts;
}
},
async freshCommentCounts() {
var me = this;
var vlog = me.dataList[this.k];
var result = await vlogComment(vlog.vlogId);
if (result.data.status == 200) {
var counts = result.data.data;
this.dataList[this.k].commentsCounts = counts;
}
},
// 关注博主
async followMe(vlogerId) {
var myUserInfo = storage.getVlogUserInfo();
@ -888,7 +919,7 @@ export default {
tozuozhe(userId) {
var myInfo = storage.getVlogUserInfo();
var myId = '';
if (myId != null) {
if (myInfo != null) {
myId = myInfo.id;
}
if (userId == myId) {

View File

@ -405,6 +405,7 @@
<uni-popup-comments
:thisVlogerId="pinglunInfo.vlogerId"
:thisVlogId="pinglunInfo.vlogId"
:from="'item'"
></uni-popup-comments>
</uni-popup>
<!-- 分享 -->
@ -512,7 +513,8 @@ export default {
url: '',
isPrivate: 0
},
vlogId: ''
vlogId: '',
channelComment: null
};
},
// components: {
@ -579,6 +581,16 @@ export default {
// this.channel = new BroadcastChannel('video-progress');
// },
created() {
this.channelComment = new BroadcastChannel('comment-counts');
this.channelComment.onmessage = (event) => {
const { type, data } = event.data;
if (type == 'comment-counts') {
if (data.from == 'item') {
this.refreshVlogCounts();
this.freshCommentCounts();
}
}
};
this.platform = uni.getSystemInfoSync().platform;
var model = uni.getSystemInfoSync().model;
if (this.platform == 'ios' && (model !== 'iPhone6' || model !== 'iPhone6s' || model !== 'iPhone7' || model !== 'iPhone8')) {
@ -614,6 +626,25 @@ export default {
},
onReady() {},
methods: {
async refreshVlogCounts() {
// 查询当前点赞数,重新赋值给当前视频
var me = this;
var vlog = me.dataList[this.k];
var result = await vlogTotalLikedCounts(vlog.vlogId);
if (result.data.status == 200) {
var counts = result.data.data;
this.dataList[this.k].likeCounts = counts;
}
},
async freshCommentCounts() {
var me = this;
var vlog = me.dataList[this.k];
var result = await vlogComment(vlog.vlogId);
if (result.data.status == 200) {
var counts = result.data.data;
this.dataList[this.k].commentsCounts = counts;
}
},
back() {
uni.navigateBack({
delta: 1

View File

@ -111,6 +111,7 @@
let animation = weex.requireModule('animation');
let dom = weex.requireModule('dom');
let system = uni.getSystemInfoSync();
console.log(system);
// 缓存每页最多
const MAX_CACHE_DATA = 100;
@ -180,8 +181,8 @@ export default {
};
},
created() {
// 处理进度条事件
this.channel = new BroadcastChannel('video-progress');
this.channel.onmessage = (event) => {
console.log(event);
const { type, data } = event.data;
@ -193,6 +194,7 @@ export default {
};
},
onReady() {
this.handleHuaWei();
this._lastTabIndex = 0;
this.swiperWidth = 0;
this.tabbarWidth = 0;
@ -268,6 +270,17 @@ export default {
// },
methods: {
handleHuaWei() {
// 处理华为机型问题
const deviceInfo = uni.getSystemInfoSync();
console.log(deviceInfo.brand);
if (deviceInfo.brand === 'HUAWEI') {
// 针对华为设备,修改 Tabbar 样式
uni.setTabBarStyle({
color: '#e8e8e8'
});
}
},
getLocation() {
uni.getLocation({
type: 'wg84',
@ -629,7 +642,8 @@ export default {
}
.uni-tab-item-title {
color: #999;
/* color: #999; */
color: #e8e8e8;
font-size: 30upx;
height: 80upx;
line-height: 80upx;

View File

@ -388,6 +388,10 @@ export default {
thisVlogId: {
type: String,
default: ''
},
from: {
type: String,
default: ''
}
},
data() {
@ -421,11 +425,20 @@ export default {
page: 0,
totalPage: 0,
commentCounts: 88,
commentList: []
commentList: [],
channelComment: null
};
},
onShow() {},
destroyed() {
console.log('评论组件销毁');
// BroadcastChannel
if (this.channelComment) {
this.channelComment.close();
}
},
created() {
console.log('评论组件创建');
var me = this;
var myUserInfo = storage.getVlogUserInfo();
var userId = '';
@ -436,7 +449,7 @@ export default {
this.isLogin = false;
}
me.loginUserId = userId;
this.channelComment = new BroadcastChannel('comment-counts');
this.freshCommentCounts();
this.doCommentPagingList(this.page + 1, true);
},
@ -548,6 +561,11 @@ export default {
var result = await vlogCommentDelete(vlogId, commentUserId, commentId);
if (result.data.status == 200) {
me.doCommentPagingList(1, true);
// -1
this.channelComment.postMessage({
type: 'comment-counts',
data: { handle: 'reduce', from: this.from }
});
} else {
uni.showToast({
title: result.data.msg,
@ -680,21 +698,21 @@ export default {
var result = await vlogCommentCreate(pendingCommentObject);
console.log(result);
if (result.data.status == 200) {
var newCommentObject = result.data.data;
newCommentObject.commentId = newCommentObject.id;
newCommentObject.commentUserNickname = myUserInfo.nickname;
newCommentObject.commentUserFace = myUserInfo.face;
newCommentObject.isLike = 0;
newCommentObject.vlogerId = userId;
newCommentObject.createTime = new Date().getTime();
// var newCommentObject = result.data.data;
// newCommentObject.commentId = newCommentObject.id;
// newCommentObject.commentUserNickname = myUserInfo.nickname;
// newCommentObject.commentUserFace = myUserInfo.face;
// newCommentObject.isLike = 0;
// newCommentObject.vlogerId = userId;
// // var timeStr = dateFormat('YYYY-MM-DD HH:mm:ss', new Date());
// // newCommentObject.createTime = timeStr;
me.doCommentPagingList(1, true);
// // /thisFatherCommentId0
// me.thisFatherCommentId = '0';
// /thisFatherCommentId0
me.thisFatherCommentId = '0';
// //
// me.commentList.unshift(newCommentObject);
//
me.commentList.unshift(newCommentObject);
//
me.currentComment = '';
//
@ -707,6 +725,11 @@ export default {
me.$nextTick(() => {
me.scrollTop = 0; //0
});
// +1
this.channelComment.postMessage({
type: 'comment-counts',
data: { handle: 'add', from: this.from }
});
} else {
uni.showToast({
title: result.data.msg,
@ -716,26 +739,14 @@ export default {
}
me.freshCommentCounts();
// uni.request({
// method: "POST",
// header: {
// headerUserId: userId,
// headerUserToken: app.getUserSessionToken()
// },
// url: serverUrl + "/comment/create",
// data: pendingCommentObject,
// success(result) {
// }
// });
me.doCommentPagingList(1, true);
},
// 1000100001.3k/6.8w
getGraceNumber(num) {
return graceNumber(num);
},
// /xx/...
getGraceDateBeforeNow(dateTimeStr) {
getGraceDateBeforeNow(dateTimeStr = '') {
// var date = dateFormat('YYYY-MM-DD HH:mm:ss', new Date(dateTimeStr));
return getDateBeforeNow(dateTimeStr);
},

View File

@ -121,33 +121,71 @@ const graceNumber = (number) => {
// 时间格式化时间为: 多少分钟前、多少天前
// time 2020-09-10 20:20:20
const getDateBeforeNow = (stringTime) => {
stringTime = new Date(stringTime.replace(/-/g, "/"));
let minute = 1000 * 60;
let hour = minute * 60;
let day = hour * 24;
let week = day * 7;
let month = day * 30;
let time1 = new Date().getTime(); //当前的时间戳
let time2 = Date.parse(new Date(stringTime)); //指定时间的时间戳
let time = time1 - time2;
const getDateBeforeNow = (stringTime = '') => {
const minute = 1000 * 60;
const hour = minute * 60;
const day = hour * 24;
const week = day * 7;
const month = day * 30;
// 获取当前时间戳
const currentTime = new Date().getTime();
// 如果没有传入时间参数,使用当前时间
const time = stringTime ? new Date(stringTime.replace(/-/g, "/")).getTime() : currentTime;
const difference = currentTime - time; // 计算时间差
let result = null;
if (time < 0) {
// 如果时间差小于0未来的时间返回原始时间
if (difference < 0) {
result = stringTime;
} else if (time / month >= 1) {
result = parseInt(time / month) + "月前";
} else if (time / week >= 1) {
result = parseInt(time / week) + "周前";
} else if (time / day >= 1) {
result = parseInt(time / day) + "天前";
} else if (time / hour >= 1) {
result = parseInt(time / hour) + "小时前";
} else if (time / minute >= 1) {
result = parseInt(time / minute) + "分钟前";
} else if (difference >= month) {
result = Math.floor(difference / month) + "月前";
} else if (difference >= week) {
result = Math.floor(difference / week) + "周前";
} else if (difference >= day) {
result = Math.floor(difference / day) + "天前";
} else if (difference >= hour) {
result = Math.floor(difference / hour) + "小时前";
} else if (difference >= minute) {
result = Math.floor(difference / minute) + "分钟前";
} else {
result = "刚刚";
}
return result;
// let minute = 1000 * 60;
// let hour = minute * 60;
// let day = hour * 24;
// let week = day * 7;
// let month = day * 30;
// let time1 = new Date().getTime(); //当前的时间戳
// if (stringTime == '') {
// stringTime = time1
// } else {
// stringTime = new Date(stringTime.replace(/-/g, "/"));
// }
// let time2 = Date.parse(new Date(stringTime)); //指定时间的时间戳
// let time = time1 - time2;
// let result = null;
// if (time < 0) {
// result = stringTime;
// } else if (time / month >= 1) {
// result = parseInt(time / month) + "月前";
// } else if (time / week >= 1) {
// result = parseInt(time / week) + "周前";
// } else if (time / day >= 1) {
// result = parseInt(time / day) + "天前";
// } else if (time / hour >= 1) {
// result = parseInt(time / hour) + "小时前";
// } else if (time / minute >= 1) {
// result = parseInt(time / minute) + "分钟前";
// } else {
// result = "刚刚";
// }
// return result;
}
// 判断是否为空
const isStrEmpty = (str) => {