2025-08-05 13:50:21 +08:00

1432 lines
50 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
const common_vendor = require("../../common/vendor.js");
const common_assets = require("../../common/assets.js");
const api_api = require("../../api/api.js");
const utils_throttle = require("../../utils/throttle.js");
if (!Array) {
const _easycom_up__image2 = common_vendor.resolveComponent("up--image");
const _easycom_up_input2 = common_vendor.resolveComponent("up-input");
const _easycom_up_icon2 = common_vendor.resolveComponent("up-icon");
const _component_polyv_player = common_vendor.resolveComponent("polyv-player");
const _easycom_up_parse2 = common_vendor.resolveComponent("up-parse");
const _easycom_up_radio2 = common_vendor.resolveComponent("up-radio");
const _easycom_up_radio_group2 = common_vendor.resolveComponent("up-radio-group");
const _easycom_up_image2 = common_vendor.resolveComponent("up-image");
const _easycom_z_paging2 = common_vendor.resolveComponent("z-paging");
const _easycom_up__textarea2 = common_vendor.resolveComponent("up--textarea");
const _easycom_up_upload2 = common_vendor.resolveComponent("up-upload");
const _easycom_up_popup2 = common_vendor.resolveComponent("up-popup");
const _easycom_up_overlay2 = common_vendor.resolveComponent("up-overlay");
(_easycom_up__image2 + _easycom_up_input2 + _easycom_up_icon2 + _component_polyv_player + _easycom_up_parse2 + _easycom_up_radio2 + _easycom_up_radio_group2 + _easycom_up_image2 + _easycom_z_paging2 + _easycom_up__textarea2 + _easycom_up_upload2 + _easycom_up_popup2 + _easycom_up_overlay2)();
}
const _easycom_up__image = () => "../../node-modules/uview-plus/components/u--image/u--image.js";
const _easycom_up_input = () => "../../node-modules/uview-plus/components/u-input/u-input.js";
const _easycom_up_icon = () => "../../node-modules/uview-plus/components/u-icon/u-icon.js";
const _easycom_up_parse = () => "../../node-modules/uview-plus/components/u-parse/u-parse.js";
const _easycom_up_radio = () => "../../node-modules/uview-plus/components/u-radio/u-radio.js";
const _easycom_up_radio_group = () => "../../node-modules/uview-plus/components/u-radio-group/u-radio-group.js";
const _easycom_up_image = () => "../../node-modules/uview-plus/components/u-image/u-image.js";
const _easycom_z_paging = () => "../../uni_modules/z-paging/components/z-paging/z-paging.js";
const _easycom_up__textarea = () => "../../node-modules/uview-plus/components/u--textarea/u--textarea.js";
const _easycom_up_upload = () => "../../node-modules/uview-plus/components/u-upload/u-upload.js";
const _easycom_up_popup = () => "../../node-modules/uview-plus/components/u-popup/u-popup.js";
const _easycom_up_overlay = () => "../../node-modules/uview-plus/components/u-overlay/u-overlay.js";
if (!Math) {
(backDetailNav + _easycom_up__image + _easycom_up_input + _easycom_up_icon + _easycom_up_parse + _easycom_up_radio + _easycom_up_radio_group + _easycom_up_image + _easycom_z_paging + _easycom_up__textarea + _easycom_up_upload + _easycom_up_popup + _easycom_up_overlay)();
}
const backDetailNav = () => "../../components/backDetailNav/backDetailNav.js";
const _sfc_main = {
__name: "detail",
setup(__props) {
const value = common_vendor.ref("");
const isArticleAuthor = common_vendor.ref(false);
const isH5 = common_vendor.ref(false);
const doctor_id = common_vendor.ref("");
const paging = common_vendor.ref(null);
const dataList = common_vendor.ref([]);
const total = common_vendor.ref(0);
const imgList = common_vendor.ref([]);
const showCanvas = common_vendor.ref(true);
const showCommentDialog = common_vendor.ref(false);
const givePointValue = common_vendor.ref(5);
common_vendor.ref(0);
common_vendor.ref(0);
const showModal = common_vendor.ref(false);
const content = common_vendor.ref("");
const type = common_vendor.ref("");
const info = common_vendor.reactive({});
const showDeal = common_vendor.ref(false);
const showMore = common_vendor.ref(false);
const showGive = common_vendor.ref(false);
const id = common_vendor.ref("");
const parent_id = common_vendor.ref(null);
const root_id = common_vendor.ref(null);
const is_author = common_vendor.ref(false);
const reply_name = common_vendor.ref("");
const level = common_vendor.ref(1);
const placeholder = common_vendor.ref("请输入评论内容");
const mainCommentObj = common_vendor.reactive({});
const childList = common_vendor.ref([]);
const clickIndex = common_vendor.ref(0);
const is_top = common_vendor.ref(false);
const option_id = common_vendor.ref("");
const point = common_vendor.ref(0);
const comment_doctorId = common_vendor.ref("");
const commentTextarea = common_vendor.ref(null);
const isLock = common_vendor.ref(false);
const confirmGive = () => {
givePoint();
};
const oldScrollTop = common_vendor.ref(0);
const scrollTop = common_vendor.ref(0);
const scroll = (e) => {
oldScrollTop.value = e.detail.scrollTop;
};
const toTop = () => {
scrollTop.value = oldScrollTop.value;
common_vendor.nextTick$1(() => {
scrollTop.value = 0;
});
};
const openGivePop = () => {
showGive.value = true;
getUserPoint();
};
const formatDay = (date) => {
return common_vendor.dayjs(date).format("YYYY-MM-DD");
};
const formatDate = (date) => {
return common_vendor.dayjs(date).format("YYYY-MM-DD HH:mm");
};
const scrolltolower = (rootId) => {
common_vendor.index.__f__("log", "at pages/detail/detail.vue:693", isLock.value);
if (!isLock.value) {
let page = mainCommentObj.sub_page + 1;
mainCommentObj.sub_page = page;
let params = {
page,
page_size: 5
};
if (type.value == "article") {
getArticleComment(params, rootId);
} else if (type.value == "video") {
getVideoComment(params, rootId);
} else {
getExchangeComment(params, rootId);
}
}
};
const changePoint = (type2) => {
if (type2 == "minus") {
if (givePointValue.value > 5) {
givePointValue.value = givePointValue.value - 5;
} else {
common_vendor.index.showToast({
icon: "none",
title: "每次打赏积分必须大于0"
});
givePointValue.value = 1;
}
} else {
givePointValue.value = givePointValue.value + 5;
}
};
const openMorePop = (obj, list2, index) => {
showMore.value = true;
childList.value = list2;
isLock.value = false;
Object.assign(mainCommentObj, obj);
clickIndex.value = index;
mainCommentObj.sub_page = 1;
};
const getArticleDetail = (id2) => {
api_api.api.getArticleDetail(id2).then((res) => {
let result = res.data.data;
Object.assign(info, result);
for (let i = 0; i < info.author.length; i++) {
if (info.author[i].doctor_id == doctor_id.value) {
isArticleAuthor.value = true;
}
}
});
};
const getVideoDetail = (id2) => {
api_api.api.getVideoDetail(id2).then((res) => {
let result = res.data.data;
Object.assign(info, result);
for (let i = 0; i < info.author.length; i++) {
if (info.author[i].doctor_id == doctor_id.value) {
isArticleAuthor.value = true;
}
}
});
};
const getExchangeDetail = (id2) => {
api_api.api.getExchangeDetail(id2).then((res) => {
let result = res.data.data;
Object.assign(info, result);
if (info.doctor_id == doctor_id.value) {
isArticleAuthor.value = true;
}
});
};
const getUserPoint = () => {
api_api.api.getUserPoint().then((res) => {
point.value = res.data.data;
});
};
const givePoint = () => {
if (givePointValue.value == null) {
common_vendor.index.showToast({
icon: "none",
title: "每次打赏积分必须大于0"
});
return false;
}
if (givePointValue.value <= 1) {
givePointValue.value = 1;
common_vendor.index.showToast({
icon: "none",
title: "每次打赏积分必须大于0"
});
return false;
}
if (!/^[1-9]\d*$/.test(givePointValue.value)) {
common_vendor.index.showToast({
icon: "none",
title: "每次打赏积分必须是大于0的整数"
});
givePointValue.value = null;
return false;
}
if (point.value < givePointValue.value) {
common_vendor.index.showToast({
icon: "none",
title: "积分不足!"
});
return false;
}
let giveType = 1;
if (type.value == "article") {
giveType = 1;
} else if (type.value == "video") {
giveType = 2;
} else {
giveType = 3;
}
api_api.api.givePoint({
id: id.value,
type: giveType,
point: givePointValue.value
}).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "打赏成功!"
});
givePointValue.value = 5;
showGive.value = false;
});
};
const getQueryParam = (param, link) => {
const url = link;
const regex = new RegExp("[?&]" + param + "=([^&#]*)", "i");
const result = regex.exec(url);
return result ? decodeURIComponent(result[1]) : null;
};
common_vendor.onLoad((options) => {
if (options.scene) {
var decodedURL = decodeURIComponent(options.scene);
let idStr = getQueryParam("id", decodedURL);
let typeStr = getQueryParam("type", decodedURL);
if (idStr) {
id.value = idStr;
}
if (typeStr) {
if (typeStr == 1) {
type.value = "article";
} else if (typeStr == 2) {
type.value = "video";
}
}
} else {
id.value = options.id;
type.value = options.type;
}
readRecord();
let userInfo = common_vendor.index.getStorageSync("userInfo");
if (userInfo.doctor_id) {
doctor_id.value = userInfo.doctor_id;
}
});
const clearComment = () => {
parent_id.value = null;
imgList.value = [];
content.value = "";
root_id.value = null;
placeholder.value = "请输入评论内容";
reply_name.value = "";
level.value = 1;
};
const closeDealPop = () => {
showDeal.value = false;
clearComment();
};
const showReplyPop = () => {
parent_id.value = mainCommentObj.comment_id;
root_id.value = mainCommentObj.comment_id;
is_author.value = mainCommentObj.is_author == 1 ? true : false;
reply_name.value = mainCommentObj.user_name;
level.value = 2;
if (level.value == 2 || level.value == 3) {
placeholder.value = "回复" + reply_name.value + "";
}
showCommentDialog.value = true;
};
const alertDeal = (parentId, rootId, name, top, commentLevel, userId) => {
parent_id.value = parentId;
comment_doctorId.value = userId;
root_id.value = rootId;
reply_name.value = name;
level.value = commentLevel;
is_top.value = top == 1 ? true : false;
if (level.value == 2 || level.value == 3) {
placeholder.value = "回复" + name + "";
}
showDeal.value = true;
};
const openCommentDialog = () => {
showCommentDialog.value = true;
showDeal.value = false;
};
const queryList = (pageNo, pageSize) => {
const params = {
page: pageNo,
page_size: pageSize
};
if (type.value == "article") {
getArticleComment(params);
} else if (type.value == "video") {
getVideoComment(params);
} else {
getExchangeComment(params);
}
};
const getArticleComment = (params, rootId = "") => {
const form = {
article_id: id.value,
root_id: rootId,
is_have_sub_comment: 1
};
api_api.api.getArticleComment({
...form,
...params
}).then((res) => {
if (!rootId) {
paging.value.complete(res.data.data.data);
total.value = res.data.data.total;
is_author.value = res.data.data.is_author == 1 ? true : false;
setTimeout(() => {
if (showMore.value) {
childList.value = [];
openMorePop(
dataList.value[clickIndex.value],
dataList.value[clickIndex.value].sub_comment,
clickIndex.value
);
toTop();
}
}, 1500);
} else {
if (res.data.data.data.length > 0) {
mainCommentObj.sub_comment;
mainCommentObj.sub_comment = mainCommentObj.sub_comment.concat(res.data.data.data);
childList.value = mainCommentObj.sub_comment;
if (res.data.data.data.length < 5) {
isLock.value = true;
}
}
}
}).catch((res) => {
paging.value.complete(false);
});
};
common_vendor.ref([]);
const getVideoComment = (params, rootId = "") => {
const form = {
video_id: id.value,
root_id: rootId,
is_have_sub_comment: 1
};
api_api.api.getVideoComment({
...form,
...params
}).then((res) => {
if (!rootId) {
paging.value.complete(res.data.data.data);
total.value = res.data.data.total;
is_author.value = res.data.data.is_author == 1 ? true : false;
setTimeout(() => {
if (showMore.value) {
childList.value = [];
openMorePop(
dataList.value[clickIndex.value],
dataList.value[clickIndex.value].sub_comment,
clickIndex.value
);
toTop();
}
}, 1500);
} else {
if (res.data.data.data.length > 0) {
mainCommentObj.sub_comment;
mainCommentObj.sub_comment = mainCommentObj.sub_comment.concat(res.data.data.data);
childList.value = mainCommentObj.sub_comment;
if (res.data.data.data.length < 5) {
isLock.value = true;
}
}
}
}).catch((res) => {
paging.value.complete(false);
});
};
const getExchangeComment = (params, rootId = "") => {
const form = {
exchange_id: id.value,
root_id: rootId,
is_have_sub_comment: 1
};
api_api.api.getExchangeComment({
...form,
...params
}).then((res) => {
if (!rootId) {
paging.value.complete(res.data.data.data);
total.value = res.data.data.total;
is_author.value = res.data.data.is_author == 1 ? true : false;
setTimeout(() => {
if (showMore.value) {
childList.value = [];
openMorePop(
dataList.value[clickIndex.value],
dataList.value[clickIndex.value].sub_comment,
clickIndex.value
);
toTop();
}
}, 1500);
} else {
if (res.data.data.data.length > 0) {
mainCommentObj.sub_comment;
mainCommentObj.sub_comment = mainCommentObj.sub_comment.concat(res.data.data.data);
childList.value = mainCommentObj.sub_comment;
if (res.data.data.data.length < 5) {
isLock.value = true;
}
}
}
}).catch((res) => {
paging.value.complete(false);
});
};
const open = () => {
showCommentDialog.value = true;
};
const close = () => {
showCommentDialog.value = false;
clearComment();
};
const openDeal = () => {
showDeal.value = true;
};
const closeDeal = () => {
showDeal.value = false;
};
const openMore = () => {
showMore.value = true;
};
const closeMore = () => {
showMore.value = false;
paging.value.refresh();
};
const previewImg = (url) => {
common_vendor.index.previewImage({
current: url,
urls: [url]
});
};
const fillTextToImgWx = (base64) => {
let maskText = "@肝胆相照临床病例库";
return new Promise((resolve, reject) => {
common_vendor.wx$1.createSelectorQuery().select("#watermarkCanvas").fields({
node: true,
size: true
}).exec((res) => {
const canvas = res[0].node;
const ctx = canvas.getContext("2d");
let textMetrics = ctx.measureText(maskText);
let {
width: textWidth,
actualBoundingBoxAscent,
actualBoundingBoxDescent
} = textMetrics;
let textHeight = actualBoundingBoxAscent ? actualBoundingBoxAscent + actualBoundingBoxDescent : textMetrics.fontBoundingBoxAscent + textMetrics.fontBoundingBoxDescent;
let imgHeight, imgWidth;
let font = "";
let fontColor = "#fff";
let strokeWidth = 10;
common_vendor.index.getImageInfo({
src: base64,
success: (imageRes) => {
let scale = imageRes.width / 800 * 30 > 12 ? imageRes.width / 800 * 30 : 12;
font = scale + "px Arial";
canvas.width = imageRes.width;
canvas.height = imageRes.height;
imgHeight = imageRes.height;
imgWidth = imageRes.width;
const image = canvas.createImage();
image.src = "";
image.src = base64;
image.onload = () => {
ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
let posXmargin = 20;
let posYmargin = 20;
let randomNumber = 3;
switch (randomNumber) {
case 0:
let lt_x = posXmargin;
let lt_y = posYmargin + textHeight;
ctx.font = font;
ctx.storkStyle = "#000";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
ctx.fillText(maskText, lt_x, lt_y);
break;
case 1:
let lb_x = posXmargin;
let lb_y = imgHeight - posYmargin;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.strokeStyle = "black";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
ctx.fillText(maskText, lb_x, lb_y);
break;
case 2:
let rt_x = imgWidth - textWidth * 2.9 - posXmargin <= 0 ? 10 : imgWidth - textWidth * 2.9 - posXmargin;
let rt_y = posYmargin + textHeight * 2;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.strokeStyle = "#000";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
ctx.fillText(maskText, rt_x, rt_y);
ctx.restore();
ctx.save();
break;
case 3:
let rb_x = imgWidth - scale * 10 - posXmargin <= 0 ? 10 : imgWidth - scale * 10 - posXmargin;
let rb_y = imgHeight - posYmargin;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.strokeStyle = "#000";
ctx.fillStyle = "#fff";
ctx.strokeText(maskText, rb_x, rb_y);
ctx.fillText(maskText, rb_x, rb_y);
break;
}
common_vendor.wx$1.canvasToTempFilePath({
canvas,
success: function(res2) {
resolve(res2.tempFilePath);
},
fail: function(res2) {
common_vendor.index.__f__("error", "at pages/detail/detail.vue:1230", res2);
}
});
};
}
});
});
});
};
const readImages = async (localIds) => {
let promiseFun = [];
for (var i = 0; i < localIds.length; i++) {
let img = null;
img = await fillTextToImgWx(localIds[i].url);
promiseFun.push(getOss(img));
}
Promise.all(promiseFun).then((res) => {
common_vendor.index.showToast({
title: "上传成功",
icon: "none"
});
});
};
const getOss = (temurl) => {
api_api.api.getOss({
scene: 1
}).then((rep) => {
let result = rep.data;
if (result.code == 200) {
let { access_id, dir, policy, signature, host } = result.data;
let time = common_vendor.dayjs().format("YYYYMMDDHHmmss");
let random = generateRandomNumber();
let filename = time + random;
let imgType = "." + getImageFormat(temurl);
return new Promise((resolve, reject) => {
common_vendor.index.uploadFile({
url: host,
// 仅为示例,非真实的接口地址
filePath: temurl,
name: "file",
formData: {
OSSAccessKeyId: access_id,
policy,
key: dir + time + random + imgType,
signature
},
success(res) {
if (res.statusCode === 204) {
let url = host + "/" + dir + filename + imgType;
imgList.value = [url];
}
},
fail: (err) => {
}
});
});
}
});
};
const handleUpload = (file) => {
let File2 = file.file;
readImages(File2);
};
const generateRandomNumber = () => {
let randomNumber = Math.floor(1e3 + Math.random() * 9e3);
return randomNumber;
};
const getImageFormat = (imageUrl) => {
const lastDotIndex = imageUrl.lastIndexOf(".");
if (lastDotIndex !== -1) {
return imageUrl.substring(lastDotIndex + 1);
}
return "unknown";
};
const afterRead = (file, lists, name) => {
handleUpload(file);
};
const delImg = (index) => {
imgList.value = [];
};
const collectArticle = (id2) => {
api_api.api.collectArticle(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "收藏成功"
});
getArticleDetail(id2);
});
};
const collectVideo = (id2) => {
api_api.api.collectVideo(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "收藏成功"
});
getVideoDetail(id2);
});
};
const collectExchange = (id2) => {
api_api.api.exchangeCollect(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "收藏成功"
});
getExchangeDetail(id2);
});
};
const cancelCollectArticle = (id2) => {
api_api.api.cancelCollectArticle(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "已取消收藏"
});
getArticleDetail(id2);
});
};
const cancelCollectVideo = (id2) => {
api_api.api.cancelCollectVideo(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "已取消收藏"
});
getVideoDetail(id2);
});
};
const cancelCollectExchange = (id2) => {
api_api.api.cancelCollectExchange(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "已取消收藏"
});
getExchangeDetail(id2);
});
};
const toggleCollect = utils_throttle.throttle(() => {
if (type.value == "video") {
info.is_collect ? cancelCollectVideo(id.value) : collectVideo(id.value);
} else if (type.value == "article") {
info.is_collect ? cancelCollectArticle(id.value) : collectArticle(id.value);
} else {
info.is_collect ? cancelCollectExchange(id.value) : collectExchange(id.value);
}
});
const addArticleComment = (id2, data) => {
api_api.api.addArticleComment(id2, data).then((res) => {
if (res.data.data.status == 1) {
common_vendor.index.showToast({
icon: "none",
title: "评论成功"
});
clearComment();
showCommentDialog.value = false;
paging.value.refresh();
} else if (res.data.data.status == 2) {
common_vendor.index.showToast({
icon: "none",
title: "评论成功,积分+5"
});
clearComment();
showCommentDialog.value = false;
paging.value.refresh();
} else if (res.data.data.status == 0) {
common_vendor.index.showToast({
icon: "none",
title: "评论失败"
});
}
});
};
const addVideoComment = (id2, data) => {
api_api.api.addVideoComment(id2, data).then((res) => {
if (res.data.data.status == 1) {
common_vendor.index.showToast({
icon: "none",
title: "评论成功"
});
clearComment();
showCommentDialog.value = false;
paging.value.refresh();
} else if (res.data.data.status == 2) {
common_vendor.index.showToast({
icon: "none",
title: "评论成功,积分+5"
});
clearComment();
showCommentDialog.value = false;
paging.value.refresh();
} else if (res.data.data.status == 0) {
common_vendor.index.showToast({
icon: "none",
title: "评论失败"
});
}
});
};
const addExchangeComment = (id2, data) => {
api_api.api.addExchangeComment(id2, data).then((res) => {
if (res.data.data.status == 1) {
common_vendor.index.showToast({
icon: "none",
title: "评论成功"
});
clearComment();
showCommentDialog.value = false;
paging.value.refresh();
} else if (res.data.data.status == 2) {
common_vendor.index.showToast({
icon: "none",
title: "评论成功,积分+5"
});
clearComment();
showCommentDialog.value = false;
paging.value.refresh();
} else if (res.data.data.status == 0) {
common_vendor.index.showToast({
icon: "none",
title: "评论失败"
});
}
});
};
const delArticleComment = (id2) => {
api_api.api.delArticleComment(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "删除成功"
});
paging.value.refresh();
});
};
const delVideoComment = (id2) => {
api_api.api.delVideoComment(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "删除成功"
});
paging.value.refresh();
});
};
const fromatImg = (val) => {
if (val) {
return val.replace(/\<img|\<\s+img/gi, '<img class="imgstyle"');
} else {
return "";
}
};
const delExchangeComment = (id2) => {
api_api.api.delExchangeComment(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "删除成功"
});
paging.value.refresh();
});
};
const topArticleComment = (id2) => {
api_api.api.topArticleComment(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "置顶成功"
});
showDeal.value = false;
paging.value.refresh();
});
};
const topVideoComment = (id2) => {
api_api.api.topVideoComment(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "置顶成功"
});
showDeal.value = false;
paging.value.refresh();
});
};
const topExchangeComment = (id2) => {
api_api.api.topExchangeComment(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "置顶成功"
});
showDeal.value = false;
paging.value.refresh();
});
};
const cancelTopArticleComment = (id2) => {
api_api.api.cancelTopArticleComment(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "取消置顶成功"
});
showDeal.value = false;
paging.value.refresh();
});
};
const cancelTopVideoComment = (id2) => {
api_api.api.cancelTopArticleComment(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "取消置顶成功"
});
showDeal.value = false;
paging.value.refresh();
});
};
const cancelTopExchangeComment = (id2) => {
api_api.api.cancelTopExchangeComment(id2).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "取消置顶成功"
});
showDeal.value = false;
paging.value.refresh();
});
};
const delComment = () => {
showModal.value = true;
showDeal.value = false;
};
const confirmDel = () => {
if (type.value == "article") {
delArticleComment(parent_id.value);
} else if (type.value == "video") {
delVideoComment(parent_id.value);
} else {
delExchangeComment(parent_id.value);
}
showModal.value = false;
};
const toggleTop = () => {
if (type.value == "article") {
is_top.value ? cancelTopArticleComment(parent_id.value) : topArticleComment(parent_id.value);
} else if (type.value == "video") {
is_top.value ? cancelTopVideoComment(parent_id.value) : topVideoComment(parent_id.value);
} else {
is_top.value ? cancelTopExchangeComment(parent_id.value) : topExchangeComment(parent_id.value);
}
};
const sendComment = utils_throttle.throttle(() => {
if (!content.value) {
common_vendor.index.showToast({
icon: "none",
title: "请输入评论内容"
});
return false;
}
const postData = {
content: level.value == 3 ? "回复" + reply_name.value + "" + content.value : content.value
};
if (imgList.value.length > 0) {
postData.comment_image = imgList.value[0];
}
if (parent_id.value !== null) {
postData.parent_id = parent_id.value;
}
if (root_id.value !== null) {
postData.root_id = root_id.value;
}
if (type.value == "article") {
addArticleComment(id.value, postData);
} else if (type.value == "video") {
addVideoComment(id.value, postData);
} else {
addExchangeComment(id.value, postData);
}
});
const formatHtml = (val) => {
if (/^回复.+/.test(val)) {
return val.replace(
/[^回复]([^]+)/,
`<font style="color:#3CC7C0">$&</font>`
);
}
return val;
};
const addVote = () => {
if (!option_id.value) {
common_vendor.index.showToast({
icon: "none",
title: "请选择投票选项!"
});
return false;
}
api_api.api.addVote(id.value, {
option_id: option_id.value
}).then((res) => {
common_vendor.index.showToast({
icon: "none",
title: "投票成功!"
});
getExchangeDetail(id.value);
});
};
const readRecord = async () => {
let flag = 1;
if (type.value == "article") {
flag = 1;
} else if (type.value == "video") {
flag = 2;
} else {
flag = 3;
}
const res = api_api.api.readRecord({
type: flag,
id: id.value
});
if (res) {
if (type.value == "article") {
getArticleDetail(id.value);
} else if (type.value == "video") {
getVideoDetail(id.value);
} else {
getExchangeDetail(id.value);
}
}
};
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.p({
navName: type.value == "exchange" ? "肝胆相照病例交流园地" : "肝胆相照临床病例库"
}),
b: common_vendor.p({
src: common_vendor.unref(common_assets.chatImg),
width: "46rpx",
height: "46rpx",
radius: "50%"
}),
c: common_vendor.o(open),
d: common_vendor.o(open),
e: common_vendor.p({
disabled: true,
focus: false,
type: "text",
placeholderClass: "placeholderClass",
placeholder: "对病例发表您的看法"
}),
f: common_vendor.o(open),
g: common_vendor.o(open),
h: common_vendor.o(common_vendor.unref(toggleCollect)),
i: common_vendor.p({
src: info.is_collect ? common_vendor.unref(common_assets.collectonImg) : common_vendor.unref(common_assets.collectImg),
width: "70rpx",
height: "70rpx"
}),
j: common_vendor.p({
src: common_vendor.unref(common_assets.shangImg),
mode: "widthFix",
width: "169rpx",
height: "77rpx"
}),
k: common_vendor.o(openGivePop),
l: type.value == "video"
}, type.value == "video" ? {
m: common_vendor.t(info.video_title)
} : type.value == "article" ? {
o: common_vendor.t(info.article_title)
} : {
p: common_vendor.t(info.exchange_title)
}, {
n: type.value == "article",
q: type.value == "video" || type.value == "article"
}, type.value == "video" || type.value == "article" ? {
r: common_vendor.f(info.author, (item, k0, i0) => {
return {
a: "eca06f3c-6-" + i0 + ",eca06f3c-0",
b: common_vendor.p({
src: item.avatar ? item.avatar : common_vendor.unref(common_assets.headImg),
width: "46rpx",
height: "46rpx",
radius: "50%"
}),
c: common_vendor.t(item.doctor_name),
d: common_vendor.t(item.hospital_name),
e: item
};
})
} : {
s: common_vendor.p({
src: info.avatar ? info.avatar : common_vendor.unref(common_assets.headImg),
width: "46rpx",
height: "46rpx",
radius: "50%"
}),
t: common_vendor.t(info.user_name),
v: common_vendor.t(info.hospital_name)
}, {
w: common_vendor.p({
name: "eye",
color: "#6B7280",
size: "28rpx"
}),
x: common_vendor.t(info.read_num),
y: common_vendor.p({
name: info.is_collect ? "heart-fill" : "heart",
color: info.is_collect ? "red" : "#6B7280",
size: "28rpx"
}),
z: common_vendor.t(info.collect_num),
A: common_vendor.p({
name: "clock",
color: "#6B7280",
size: "28rpx"
}),
B: common_vendor.t(formatDay(info.push_date)),
C: showCanvas.value
}, showCanvas.value ? {} : {}, {
D: type.value == "video" && !isH5.value
}, type.value == "video" && !isH5.value ? common_vendor.e({
E: info.video_no
}, info.video_no ? {
F: "playerContext" + info.video_no,
G: "playerId" + info.video_no,
H: info.video_no
} : {}) : {}, {
I: type.value == "video" && isH5.value
}, type.value == "video" && isH5.value ? {} : type.value == "article" ? {
K: common_vendor.p({
content: fromatImg(info.article_content)
})
} : common_vendor.e({
L: info.exchange_content
}, info.exchange_content ? {
M: common_vendor.p({
content: fromatImg(info.exchange_content)
})
} : {}, {
N: info.exchange_summary
}, info.exchange_summary ? {
O: common_vendor.p({
content: fromatImg(info.exchange_summary)
})
} : {}, {
P: info.exchange_vote && info.exchange_vote.vote_title
}, info.exchange_vote && info.exchange_vote.vote_title ? common_vendor.e({
Q: info.exchange_vote.is_have_voted == 0
}, info.exchange_vote.is_have_voted == 0 ? {
R: common_vendor.t(info.exchange_vote.vote_title),
S: common_vendor.f(info.exchange_vote.case_exchange_vote_option, (item, k0, i0) => {
return {
a: "eca06f3c-16-" + i0 + ",eca06f3c-15",
b: common_vendor.p({
activeColor: "#3CC7C0",
label: item.option_value,
name: item.option_id
}),
c: item.option_id
};
}),
T: common_vendor.o(($event) => option_id.value = $event),
U: common_vendor.p({
placement: "column",
modelValue: option_id.value
}),
V: common_vendor.o(($event) => addVote())
} : {}, {
W: info.exchange_vote.is_enabled == 0 || info.exchange_vote.is_have_voted == 1
}, info.exchange_vote.is_enabled == 0 || info.exchange_vote.is_have_voted == 1 ? {
X: common_vendor.t(info.exchange_vote.vote_title),
Y: common_vendor.f(info.exchange_vote.case_exchange_vote_option, (item, k0, i0) => {
return {
a: common_vendor.t(item.option_value),
b: common_vendor.t(item.proportion),
c: item.option_id
};
}),
Z: _ctx.proportion / 100
} : {}) : {}), {
J: type.value == "article",
aa: common_vendor.p({
src: common_vendor.unref(common_assets.commentImg),
mode: "widthFix",
width: "50rpx",
height: "50rpx"
}),
ab: common_vendor.t(total.value),
ac: common_vendor.f(dataList.value, (item, index, i0) => {
return common_vendor.e({
a: "eca06f3c-18-" + i0 + ",eca06f3c-0",
b: common_vendor.p({
src: item.avatar ? item.avatar : common_vendor.unref(common_assets.headImg),
width: "86rpx",
height: "86rpx",
radius: "50%"
}),
c: common_vendor.t(item.user_name),
d: doctor_id.value == item.doctor_id
}, doctor_id.value == item.doctor_id ? {
e: "eca06f3c-19-" + i0 + ",eca06f3c-0",
f: common_vendor.p({
src: common_vendor.unref(common_assets.selfImg),
width: "69rpx",
height: "31rpx"
})
} : {}, {
g: common_vendor.o(($event) => alertDeal(item.comment_id, item.comment_id, item.user_name, item.is_top, 2, item.doctor_id), item.comment_id),
h: common_vendor.t(item.content),
i: item.comment_image
}, item.comment_image ? {
j: common_vendor.o(($event) => previewImg(item.comment_image), item.comment_id),
k: "eca06f3c-20-" + i0 + ",eca06f3c-0",
l: common_vendor.p({
src: item.comment_image,
radius: "16rpx",
width: "150rpx",
height: "150rpx"
})
} : {}, {
m: common_vendor.t(formatDate(item.created_at)),
n: item.sub_comment && item.sub_comment.length > 0
}, item.sub_comment && item.sub_comment.length > 0 ? {
o: common_vendor.f(item.sub_comment.slice(0, 3), (cell, index2, i1) => {
return common_vendor.e({
a: "eca06f3c-21-" + i0 + "-" + i1 + ",eca06f3c-0",
b: common_vendor.p({
src: cell.avatar ? cell.avatar : common_vendor.unref(common_assets.headImg),
width: "86rpx",
height: "86rpx",
radius: "50%"
}),
c: common_vendor.t(cell.user_name),
d: doctor_id.value == cell.doctor_id
}, doctor_id.value == cell.doctor_id ? {
e: "eca06f3c-22-" + i0 + "-" + i1 + ",eca06f3c-0",
f: common_vendor.p({
src: common_vendor.unref(common_assets.selfImg),
width: "69rpx",
height: "31rpx"
})
} : {}, {
g: common_vendor.o(($event) => alertDeal(cell.comment_id, cell.root_id, cell.user_name, cell.is_top, 3, cell.doctor_id), cell.comment_id),
h: formatHtml(cell.content),
i: cell.comment_image
}, cell.comment_image ? {
j: common_vendor.o(($event) => previewImg(cell.comment_image), cell.comment_id),
k: "eca06f3c-23-" + i0 + "-" + i1 + ",eca06f3c-0",
l: common_vendor.p({
src: cell.comment_image,
radius: "16rpx",
width: "150rpx",
height: "150rpx"
})
} : {}, {
m: common_vendor.t(formatDate(cell.created_at)),
n: cell.comment_id
});
})
} : {}, {
p: item.sub_comment.length > 3
}, item.sub_comment.length > 3 ? {
q: "eca06f3c-24-" + i0 + ",eca06f3c-0",
r: common_vendor.p({
name: "arrow-down",
color: "#3cc7c0",
size: "38rpx"
}),
s: common_vendor.o(($event) => openMorePop(item, item.sub_comment, index), item.comment_id)
} : {}, {
t: item.comment_id
});
}),
ad: common_vendor.sr(paging, "eca06f3c-0", {
"k": "paging"
}),
ae: common_vendor.o(queryList),
af: common_vendor.o(($event) => dataList.value = $event),
ag: common_vendor.p({
["inside-more"]: true,
["loading-more-no-more-text"]: "咱也是有底线的!",
["auto-show-back-to-top"]: false,
["refresher-out-rate"]: 0.8,
["empty-view-super-style"]: {
"paddingBottom": "140rpx"
},
["refresher-title-style"]: {
"paddingBottom": "60rpx",
"paddingTop": "10rpx"
},
["refresher-img-style"]: {
"paddingBottom": "60rpx",
"paddingTop": "10rpx"
},
modelValue: dataList.value
}),
ah: common_vendor.sr(commentTextarea, "eca06f3c-26,eca06f3c-25", {
"k": "commentTextarea"
}),
ai: common_vendor.o(($event) => content.value = $event),
aj: common_vendor.p({
focus: false,
height: "200",
cursorSpacing: 240,
adjustPosition: true,
["adjust-keyboard-to"]: "bottom",
placeholder: placeholder.value,
modelValue: content.value
}),
ak: imgList.value.length > 0
}, imgList.value.length > 0 ? {
al: common_vendor.o(($event) => previewImg(imgList.value[0])),
am: common_vendor.p({
src: imgList.value[0],
radius: "6",
width: "150rpx",
height: "150rpx"
}),
an: common_vendor.p({
name: "close-circle",
color: "#666",
size: "16"
}),
ao: common_vendor.o(delImg)
} : {}, {
ap: common_vendor.p({
src: common_vendor.unref(common_assets.uploadImg),
mode: "widthFix",
width: "40rpx",
height: "77rpx"
}),
aq: common_vendor.o(afterRead),
ar: common_vendor.p({
disabled: imgList.value.length >= 1,
["show-upload-list"]: false,
name: "imgupload",
multiple: true,
maxCount: 1,
width: "40rpx",
height: "77rpx"
}),
as: imgList.value.length >= 1 ? 1 : "",
at: common_vendor.o((...args) => common_vendor.unref(sendComment) && common_vendor.unref(sendComment)(...args)),
av: common_vendor.o(close),
aw: common_vendor.o(open),
ax: common_vendor.p({
zIndex: 99,
overlayStyle: {
zIndex: 98
},
closeOnClickOverlay: false,
show: showCommentDialog.value,
round: 10,
closeable: true,
mode: "bottom"
}),
ay: level.value == 2 && isArticleAuthor.value
}, level.value == 2 && isArticleAuthor.value ? {
az: common_vendor.t(is_top.value ? "取消置顶" : "置顶"),
aA: common_vendor.o(toggleTop)
} : {}, {
aB: common_vendor.o(openCommentDialog),
aC: isArticleAuthor.value || doctor_id.value == comment_doctorId.value
}, isArticleAuthor.value || doctor_id.value == comment_doctorId.value ? {
aD: common_vendor.o(delComment)
} : {}, {
aE: common_vendor.o(closeDealPop),
aF: common_vendor.o(closeDeal),
aG: common_vendor.o(openDeal),
aH: common_vendor.p({
zIndex: 60,
overlayStyle: {
zIndex: 59
},
closeOnClickOverlay: false,
show: showDeal.value,
round: 10,
mode: "bottom"
}),
aI: common_vendor.p({
name: "close",
color: "#666",
size: "20"
}),
aJ: common_vendor.o(closeMore),
aK: common_vendor.p({
src: mainCommentObj.avatar ? mainCommentObj.avatar : common_vendor.unref(common_assets.headImg),
width: "86rpx",
height: "86rpx",
radius: "50%"
}),
aL: common_vendor.t(mainCommentObj.user_name),
aM: doctor_id.value == mainCommentObj.doctor_id
}, doctor_id.value == mainCommentObj.doctor_id ? {
aN: common_vendor.p({
src: common_vendor.unref(common_assets.selfImg),
width: "69rpx",
height: "31rpx"
})
} : {}, {
aO: common_vendor.o(($event) => alertDeal(mainCommentObj.comment_id, mainCommentObj.comment_id, mainCommentObj.user_name, mainCommentObj.is_top, 2, mainCommentObj.doctor_id)),
aP: common_vendor.t(mainCommentObj.content),
aQ: mainCommentObj.comment_image
}, mainCommentObj.comment_image ? {
aR: common_vendor.o(($event) => previewImg(mainCommentObj.comment_image)),
aS: common_vendor.p({
src: mainCommentObj.comment_image,
radius: "16rpx",
width: "150rpx",
height: "150rpx"
})
} : {}, {
aT: common_vendor.t(formatDate(mainCommentObj.created_at)),
aU: common_vendor.f(childList.value, (cell, index, i0) => {
return common_vendor.e({
a: "eca06f3c-37-" + i0 + ",eca06f3c-32",
b: common_vendor.p({
src: cell.avatar ? cell.avatar : common_vendor.unref(common_assets.headImg),
width: "86rpx",
height: "86rpx",
radius: "50%"
}),
c: common_vendor.t(cell.user_name),
d: doctor_id.value == cell.doctor_id
}, doctor_id.value == cell.doctor_id ? {
e: "eca06f3c-38-" + i0 + ",eca06f3c-32",
f: common_vendor.p({
src: common_vendor.unref(common_assets.selfImg),
width: "69rpx",
height: "31rpx"
})
} : {}, {
g: common_vendor.o(($event) => alertDeal(cell.comment_id, cell.root_id, cell.user_name, cell.is_top, 3, cell.doctor_id), cell.comment_id),
h: formatHtml(cell.content),
i: cell.comment_image
}, cell.comment_image ? {
j: common_vendor.o(($event) => previewImg(cell.comment_image), cell.comment_id),
k: "eca06f3c-39-" + i0 + ",eca06f3c-32",
l: common_vendor.p({
src: cell.comment_image,
radius: "16rpx",
width: "150rpx",
height: "150rpx"
})
} : {}, {
m: common_vendor.t(formatDate(cell.created_at)),
n: cell.comment_id
});
}),
aV: scrollTop.value,
aW: common_vendor.o(scroll),
aX: common_vendor.o(($event) => scrolltolower(mainCommentObj.comment_id)),
aY: common_vendor.o(($event) => value.value = $event),
aZ: common_vendor.p({
readonly: true,
placeholder: "@" + mainCommentObj.user_name + "",
border: "surround",
modelValue: value.value
}),
ba: common_vendor.o(showReplyPop),
bb: common_vendor.o(closeMore),
bc: common_vendor.o(openMore),
bd: common_vendor.p({
zIndex: 10,
overlayStyle: {
zIndex: 9
},
closeOnClickOverlay: false,
show: showMore.value,
round: 10,
mode: "bottom"
}),
be: common_vendor.t(point.value),
bf: common_vendor.o(($event) => changePoint("minus")),
bg: common_vendor.o(($event) => givePointValue.value = $event),
bh: common_vendor.p({
placeholder: "请输入打赏积分",
type: "number",
border: "surround",
modelValue: givePointValue.value
}),
bi: common_vendor.o(($event) => changePoint("add")),
bj: common_vendor.o(($event) => showGive.value = false),
bk: common_vendor.o(confirmGive),
bl: common_vendor.p({
show: showGive.value,
["mask-click-able"]: true
}),
bm: common_vendor.o(($event) => showModal.value = false),
bn: common_vendor.o(confirmDel),
bo: common_vendor.p({
show: showModal.value,
["mask-click-able"]: true
})
});
};
}
};
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["__scopeId", "data-v-eca06f3c"]]);
wx.createPage(MiniProgramPage);
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/detail/detail.js.map