228 lines
5.3 KiB
JavaScript
228 lines
5.3 KiB
JavaScript
import { fetchComments } from '../../../services/comments/fetchComments';
|
|
import { fetchCommentsCount } from '../../../services/comments/fetchCommentsCount';
|
|
import dayjs from 'dayjs';
|
|
const layoutMap = {
|
|
0: 'vertical',
|
|
};
|
|
Page({
|
|
data: {
|
|
pageLoading: false,
|
|
commentList: [],
|
|
pageNum: 1,
|
|
myPageNum: 1,
|
|
pageSize: 10,
|
|
total: 0,
|
|
myTotal: 0,
|
|
hasLoaded: false,
|
|
layoutText: layoutMap[0],
|
|
loadMoreStatus: 0,
|
|
myLoadStatus: 0,
|
|
spuId: '1060004',
|
|
commentLevel: '',
|
|
hasImage: '',
|
|
commentType: '',
|
|
totalCount: 0,
|
|
countObj: {
|
|
badCount: '0',
|
|
commentCount: '0',
|
|
goodCount: '0',
|
|
middleCount: '0',
|
|
hasImageCount: '0',
|
|
uidCount: '0',
|
|
},
|
|
},
|
|
onLoad(options) {
|
|
this.getCount(options);
|
|
this.getComments(options);
|
|
},
|
|
async getCount(options) {
|
|
try {
|
|
const result = await fetchCommentsCount(
|
|
{
|
|
spuId: options.spuId,
|
|
},
|
|
{
|
|
method: 'POST',
|
|
},
|
|
);
|
|
this.setData({
|
|
countObj: result,
|
|
});
|
|
// const { data, code = '' } = result;
|
|
// if (code.toUpperCase() === 'SUCCESS') {
|
|
// wx.setNavigationBarTitle({
|
|
// title: `全部评价(${data.commentCount})`,
|
|
// });
|
|
// this.setData({
|
|
// countObj: data,
|
|
// });
|
|
// } else {
|
|
// wx.showToast({
|
|
// title: '查询失败,请稍候重试',
|
|
// });
|
|
// }
|
|
} catch (error) {}
|
|
},
|
|
generalQueryData(reset) {
|
|
const { hasImage, pageNum, pageSize, spuId, commentLevel } = this.data;
|
|
const params = {
|
|
pageNum: 1,
|
|
pageSize: 30,
|
|
queryParameter: {
|
|
spuId,
|
|
},
|
|
};
|
|
if (
|
|
Number(commentLevel) === 3 ||
|
|
Number(commentLevel) === 2 ||
|
|
Number(commentLevel) === 1
|
|
) {
|
|
params.queryParameter.commentLevel = Number(commentLevel);
|
|
}
|
|
if (hasImage && hasImage === '1') {
|
|
params.queryParameter.hasImage = true;
|
|
} else {
|
|
delete params.queryParameter.hasImage;
|
|
}
|
|
// 重置请求
|
|
if (reset) return params;
|
|
|
|
return {
|
|
...params,
|
|
pageNum: pageNum + 1,
|
|
pageSize,
|
|
};
|
|
},
|
|
async init(reset = true) {
|
|
const { loadMoreStatus, commentList = [] } = this.data;
|
|
const params = this.generalQueryData(reset);
|
|
|
|
// 在加载中或者无更多数据,直接返回
|
|
if (loadMoreStatus !== 0) return;
|
|
|
|
this.setData({
|
|
loadMoreStatus: 1,
|
|
});
|
|
|
|
try {
|
|
const data = await fetchComments(params, {
|
|
method: 'POST',
|
|
});
|
|
const code = 'SUCCESS';
|
|
if (code.toUpperCase() === 'SUCCESS') {
|
|
const { pageList, totalCount = 0 } = data;
|
|
pageList.forEach((item) => {
|
|
// eslint-disable-next-line no-param-reassign
|
|
item.commentTime = dayjs(Number(item.commentTime)).format(
|
|
'YYYY/MM/DD HH:mm',
|
|
);
|
|
});
|
|
|
|
if (Number(totalCount) === 0 && reset) {
|
|
this.setData({
|
|
commentList: [],
|
|
hasLoaded: true,
|
|
total: totalCount,
|
|
loadMoreStatus: 2,
|
|
});
|
|
return;
|
|
}
|
|
const _commentList = reset ? pageList : commentList.concat(pageList);
|
|
const _loadMoreStatus =
|
|
_commentList.length === Number(totalCount) ? 2 : 0;
|
|
this.setData({
|
|
commentList: _commentList,
|
|
pageNum: params.pageNum || 1,
|
|
totalCount: Number(totalCount),
|
|
loadMoreStatus: _loadMoreStatus,
|
|
});
|
|
} else {
|
|
wx.showToast({
|
|
title: '查询失败,请稍候重试',
|
|
});
|
|
}
|
|
} catch (error) {}
|
|
this.setData({
|
|
hasLoaded: true,
|
|
});
|
|
},
|
|
getScoreArray(score) {
|
|
var array = [];
|
|
for (let i = 0; i < 5; i++) {
|
|
if (i < score) {
|
|
array.push(2);
|
|
} else {
|
|
array.push(0);
|
|
}
|
|
}
|
|
return array;
|
|
},
|
|
getComments(options) {
|
|
const { commentLevel = -1, spuId, hasImage = '' } = options;
|
|
if (commentLevel !== -1) {
|
|
this.setData({
|
|
commentLevel: commentLevel,
|
|
});
|
|
}
|
|
this.setData({
|
|
hasImage: hasImage,
|
|
commentType: hasImage ? '4' : '',
|
|
spuId: spuId,
|
|
});
|
|
this.init(true);
|
|
},
|
|
changeTag(e) {
|
|
var { commenttype } = e.currentTarget.dataset;
|
|
var { commentType } = this.data;
|
|
if (commentType === commenttype) return;
|
|
this.setData({
|
|
loadMoreStatus: 0,
|
|
commentList: [],
|
|
total: 0,
|
|
myTotal: 0,
|
|
myPageNum: 1,
|
|
pageNum: 1,
|
|
});
|
|
if (commenttype === '' || commenttype === '5') {
|
|
this.setData({
|
|
hasImage: '',
|
|
commentLevel: '',
|
|
});
|
|
} else if (commenttype === '4') {
|
|
this.setData({
|
|
hasImage: '1',
|
|
commentLevel: '',
|
|
});
|
|
} else {
|
|
this.setData({
|
|
hasImage: '',
|
|
commentLevel: commenttype,
|
|
});
|
|
}
|
|
if (commenttype === '5') {
|
|
this.setData({
|
|
myLoadStatus: 1,
|
|
commentType: commenttype,
|
|
});
|
|
this.getMyCommentsList();
|
|
} else {
|
|
this.setData({
|
|
myLoadStatus: 0,
|
|
commentType: commenttype,
|
|
});
|
|
this.init(true);
|
|
}
|
|
},
|
|
onReachBottom() {
|
|
const { total = 0, commentList } = this.data;
|
|
if (commentList.length === total) {
|
|
this.setData({
|
|
loadMoreStatus: 2,
|
|
});
|
|
return;
|
|
}
|
|
|
|
this.init(false);
|
|
},
|
|
});
|