160 lines
5.6 KiB
JavaScript
160 lines
5.6 KiB
JavaScript
|
"use strict";
|
||
|
var common_vendor = require("../../common/vendor.js");
|
||
|
var api_index = require("../../api/index.js");
|
||
|
var config_index = require("../../config/index.js");
|
||
|
require("../../utils/request.js");
|
||
|
const _sfc_main = {
|
||
|
setup(__props) {
|
||
|
const userInfo = common_vendor.ref({});
|
||
|
const detail = common_vendor.reactive({
|
||
|
id: "",
|
||
|
userId: "",
|
||
|
images: [],
|
||
|
title: "",
|
||
|
text: "",
|
||
|
time: "",
|
||
|
isLike: false,
|
||
|
likeCount: void 0
|
||
|
});
|
||
|
const commentList = common_vendor.ref([]);
|
||
|
common_vendor.onLoad((e) => {
|
||
|
const { user_info } = common_vendor.index.getStorageSync("userData");
|
||
|
userInfo.value = user_info;
|
||
|
getCommunity(e.id);
|
||
|
getComment(e.id);
|
||
|
});
|
||
|
const getCommunity = (id) => {
|
||
|
api_index.getCommunityDetail(id).then(({ status, data }) => {
|
||
|
if (Number(status) === 200) {
|
||
|
const { post_id, user_id, title, is_like, like_count, content, created_at } = data.post_info;
|
||
|
const detailInfo = typeof content === "string" ? JSON.parse(content) : {};
|
||
|
detail.title = title || "";
|
||
|
detail.id = post_id;
|
||
|
detail.userId = user_id;
|
||
|
detail.images = detailInfo.images || [];
|
||
|
detail.text = detailInfo.text || "";
|
||
|
detail.time = created_at;
|
||
|
detail.isLike = is_like;
|
||
|
detail.likeCount = like_count;
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
const getComment = (id) => {
|
||
|
api_index.getCommentData(id).then(({ status, data }) => {
|
||
|
if (Number(status) === 200 && Array.isArray(data.comment_list)) {
|
||
|
commentList.value = data.comment_list;
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
const commentText = common_vendor.ref("");
|
||
|
const onSubmitComment = () => {
|
||
|
if (commentText.value) {
|
||
|
api_index.submitComment({
|
||
|
id: detail.id,
|
||
|
content: commentText.value
|
||
|
}).then(({ status }) => {
|
||
|
if (Number(status) === 200) {
|
||
|
commentText.value = "";
|
||
|
getComment(detail.id);
|
||
|
}
|
||
|
});
|
||
|
} else
|
||
|
[
|
||
|
common_vendor.index.showToast({
|
||
|
title: "\u8BF7\u8F93\u5165\u8BC4\u8BBA\u5185\u5BB9",
|
||
|
icon: "none"
|
||
|
})
|
||
|
];
|
||
|
};
|
||
|
const onDeleteComment = (item) => {
|
||
|
api_index.deleteComment({
|
||
|
id: detail.id,
|
||
|
commentId: item.comment_id
|
||
|
}).then(() => {
|
||
|
getComment(detail.id);
|
||
|
});
|
||
|
};
|
||
|
const onSubmitLike = async (type) => {
|
||
|
if (type === "like") {
|
||
|
api_index.submitLike(detail.id).then(({ status }) => {
|
||
|
if (Number(status) === 200) {
|
||
|
detail.isLike = true;
|
||
|
detail.likeCount += 1;
|
||
|
}
|
||
|
});
|
||
|
} else {
|
||
|
api_index.cancelLike(detail.id).then(({ status }) => {
|
||
|
if (Number(status) === 200) {
|
||
|
detail.isLike = false;
|
||
|
detail.likeCount -= 1;
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
const commentTxt = common_vendor.ref("");
|
||
|
const onInputBlur = () => {
|
||
|
if (commentTxt.value) {
|
||
|
api_index.submitComment({
|
||
|
id: detail.id,
|
||
|
content: commentTxt.value
|
||
|
}).then(({ status }) => {
|
||
|
if (Number(status) === 200) {
|
||
|
commentTxt.value = "";
|
||
|
getComment(detail.id);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
};
|
||
|
return (_ctx, _cache) => {
|
||
|
return common_vendor.e({
|
||
|
a: common_vendor.unref(detail).images.length > 0
|
||
|
}, common_vendor.unref(detail).images.length > 0 ? {
|
||
|
b: common_vendor.f(common_vendor.unref(detail).images, (img, k0, i0) => {
|
||
|
return {
|
||
|
a: `${common_vendor.unref(config_index.filePrefix)}${img}`,
|
||
|
b: img
|
||
|
};
|
||
|
})
|
||
|
} : {}, {
|
||
|
c: common_vendor.t(common_vendor.unref(detail).title),
|
||
|
d: common_vendor.t(common_vendor.unref(detail).text),
|
||
|
e: common_vendor.t(common_vendor.unref(detail).time),
|
||
|
f: common_vendor.t(commentList.value.length),
|
||
|
g: `${common_vendor.unref(config_index.filePrefix)}${userInfo.value.avatar_id}`,
|
||
|
h: common_vendor.o(onInputBlur),
|
||
|
i: commentTxt.value,
|
||
|
j: common_vendor.o(($event) => commentTxt.value = $event.detail.value),
|
||
|
k: common_vendor.f(commentList.value, (item, k0, i0) => {
|
||
|
return common_vendor.e({
|
||
|
a: `${common_vendor.unref(config_index.filePrefix)}${item.avatar_id}`,
|
||
|
b: common_vendor.t(item.username),
|
||
|
c: item.user_id === common_vendor.unref(detail).userId
|
||
|
}, item.user_id === common_vendor.unref(detail).userId ? {} : {}, {
|
||
|
d: item.user_id === userInfo.value.user_id
|
||
|
}, item.user_id === userInfo.value.user_id ? {
|
||
|
e: common_vendor.o(($event) => onDeleteComment(item))
|
||
|
} : {}, {
|
||
|
f: common_vendor.t(item.content),
|
||
|
g: common_vendor.t(item.time),
|
||
|
h: item.comment_id
|
||
|
});
|
||
|
}),
|
||
|
l: commentText.value,
|
||
|
m: common_vendor.o(($event) => commentText.value = $event.detail.value),
|
||
|
n: common_vendor.unref(detail).isLike
|
||
|
}, common_vendor.unref(detail).isLike ? {
|
||
|
o: common_vendor.o(($event) => onSubmitLike("cancel"))
|
||
|
} : {
|
||
|
p: common_vendor.o(($event) => onSubmitLike("like"))
|
||
|
}, {
|
||
|
q: common_vendor.t(common_vendor.unref(detail).likeCount),
|
||
|
r: commentText.value
|
||
|
}, commentText.value ? {
|
||
|
s: common_vendor.o(onSubmitComment)
|
||
|
} : {});
|
||
|
};
|
||
|
}
|
||
|
};
|
||
|
var MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-2f2e4a30"], ["__file", "C:/Users/bzm15/Desktop/ix/mini_web-develop/pages/community/detail.vue"]]);
|
||
|
wx.createPage(MiniProgramPage);
|