This commit is contained in:
zoujiandong 2025-08-03 16:29:54 +08:00
parent 43abd1f3d6
commit 6e320c3944
74 changed files with 1954 additions and 974 deletions

10
App.vue
View File

@ -34,8 +34,8 @@
overflow: hidden;
}
.back{
margin-top: -8rpx;
padding:0 15rpx 15rpx 15rpx;
/* margin-top: -8rpx; */
padding:0 20rpx 0rpx 20rpx;
}
.ellipsis-one-lines {
overflow: hidden;
@ -59,4 +59,10 @@
.u-dropdown__menu__item__arrow--rotate .uicon-arrow-down{
color: #3cc7c0 !important;
}
.tagbox{
flex-wrap: wrap;
}
.tagbox .tag{
margin:5rpx 0 ;
}
</style>

View File

@ -44,7 +44,7 @@ const api = {
return request('/exchange/collect/'+id,{}, 'delete',false);
},
addVideoComment(id,data){
return request('/clinical/video/comment/'+id,data, 'post',false,'application/json');
return request('/clinical/video/comment/'+id,data, 'post',true,'application/json');
},
delVideoComment(id){
return request('/clinical/video/comment/'+id, {}, 'delete',false);
@ -57,7 +57,7 @@ const api = {
return request('/clinical/video/comment/top/'+id, {}, 'delete',false);
},
addArticleComment(id,data){
return request('/clinical/article/comment/'+id, data, 'post',false,'application/json');
return request('/clinical/article/comment/'+id, data, 'post',true,'application/json');
},
delArticleComment(id){
return request('/clinical/article/comment/'+id, {}, 'delete',false);

View File

@ -89,7 +89,13 @@ onMounted(()=>{
padding-bottom: 20rpx;
background-color: #f9fafb;
position: relative;
height:200rpx;
/* #ifdef H5 */
height:120rpx;
/* #endif */
/* #ifdef MP-WEIXIN */
height:200rpx;
/* #endif */
background: radial-gradient(
60% 90% at 4% 2%,
#43c9c3 0%,
@ -109,7 +115,13 @@ onMounted(()=>{
);
}
.namebox {
/* #ifdef H5 */
padding-top: 51rpx;
/* #endif */
/* #ifdef MP-WEIXIN */
padding-top: 102rpx;
/* #endif */
margin: 0rpx 30rpx 0rpx;
display: flex;
align-items: center;

View File

@ -53,7 +53,13 @@ const goBack = () => {
);
}
.namebox {
padding-top: 102rpx;
/* #ifdef H5 */
padding-top: 51rpx;
/* #endif */
/* #ifdef MP-WEIXIN */
padding-top: 102rpx;
/* #endif */
justify-content: center;
margin: 0rpx 30rpx 0rpx;
position: relative;

View File

@ -49,7 +49,13 @@
);
}
.namebox {
padding-top: 102rpx;
/* #ifdef H5 */
padding-top: 51rpx;
/* #endif */
/* #ifdef MP-WEIXIN */
padding-top: 102rpx;
/* #endif */
margin: 0rpx 30rpx 0rpx;
display: flex;
align-items: center;

View File

@ -30,7 +30,7 @@
<up--image
:src="userHeadImg"
@click="goMy"
mode="widthFix"
width="62rpx"
height="62rpx"
radius="50%"
@ -114,6 +114,7 @@ onLoad(()=>{
<style lang="scss" scoped>
.navbox {
padding-bottom: 20rpx;
background-color: #f9fafb;
position: relative;
@ -137,7 +138,13 @@ onLoad(()=>{
);
}
.namebox {
padding-top: 102rpx;
/* #ifdef H5 */
padding-top: 51rpx;
/* #endif */
/* #ifdef MP_WEIXIN */
padding-top: 102rpx;
/* #endif */
margin: 0rpx 30rpx 0rpx;
display: flex;
align-items: center;

View File

@ -33,7 +33,7 @@
<up--image
:src="userHeadImg"
@click="goMy"
mode="widthFix"
width="62rpx"
height="62rpx"
radius="50%"
@ -74,7 +74,7 @@ watch(()=>props.type,(newVal)=>{
}else if(newVal==='hospital'){
placeholder.value='输入医院名称'
}else if(newVal==='video'){
placeholder.value='疾病名称、标题、作者搜索'
placeholder.value='输入疾病名称、标题、作者搜索'
}else if(newVal==='article' ){
placeholder.value='搜索疾病、症状、医院'
}else if(newVal==='case'){
@ -82,7 +82,7 @@ watch(()=>props.type,(newVal)=>{
}else if(newVal==='myCase'){
placeholder.value='输入疾病名称、标题搜索'
}else if(newVal==='cert'){
placeholder.value='疾病名称、标题搜索'
placeholder.value='输入疾病名称、标题搜索'
}
},{immediate: true })
@ -153,7 +153,13 @@ const search=()=>{
background: none!important;
}
.namebox {
padding-top: 102rpx;
/* #ifdef H5 */
padding-top: 51rpx;
/* #endif */
/* #ifdef MP-WEIXIN */
padding-top: 102rpx;
/* #endif */
margin: 0rpx 30rpx 0rpx;
display: flex;
align-items: center;

View File

@ -1,5 +1,6 @@
<template>
<view class="page">
<view class="navbox">
<view class="bg"></view>
<view class="namebox">
@ -85,6 +86,12 @@
</view>
<view class="btn" @click="confirm">确定</view>
</view>
<canvas
v-if="showCanvas"
type="2d"
id="pwatermarkCanvas"
style="width: 200px; height: 200px; position: fixed; top: -9999px"
/>
</view>
<up-popup
:round="10"
@ -137,9 +144,12 @@
import throttle from "@/utils/throttle"
import addImg from "@/static/add.png";
import videoImg from "@/static/videoicon.png";
import { nextTick, reactive, ref,watch } from "vue";
import { initCustomFormatter, nextTick, reactive, ref,watch } from "vue";
import { onLoad } from "@dcloudio/uni-app";
import videoface from "@/static/videoface.jpg";
import { getCurrentInstance } from 'vue'
const instace = getCurrentInstance();
import api from "@/api/api";
import dayjs from "dayjs";
import {
@ -148,8 +158,10 @@
addText,
} from "@/uni_modules/sv-editor/components/common/utils.js";
import svEditor from "@/uni_modules/sv-editor/components/sv-editor/sv-editor.vue";
const editorCtx=ref(null);
const PeditorCtx=ref(null);
const htmlContent=ref('');
const keyboardHeight=ref(0);
const videoface=ref('https://caseplatform.oss-cn-beijing.aliyuncs.com/prod/static/shipinfengmian.jpg')
const editorHeight=ref(300);
const navName=ref('病例信息');
const placeholder=ref('患者基本情况,检查结果,诊疗图片或视频');
@ -164,6 +176,7 @@
default:''
}
})
const showCanvas=ref(false);
watch(()=>props.editorType,(newVal)=>{
console.log(11111111)
console.log(newVal)
@ -195,48 +208,56 @@
};
const ready = (e) => {
console.log(e);
editorCtx.value = e;
PeditorCtx.value = e;
if(props.editorType=="info"){
if(props.editorCotent){
editorCtx.value.initHtml(props.editorCotent,async (videoUrl) => {
console.log('peditor')
console.log(props.editorCotent)
PeditorCtx.value.initHtml(props.editorCotent,async (videoUrl) => {
let res='';
// #ifdef APP || H5
// res = await this.editorCtx.createVideoThumbnail(videoUrl)
// res = await this.PeditorCtx.createVideoThumbnail(videoUrl)
// #endif
const fox = videoface
res = await editorCtx.value.createCoverThumbnail(fox)
showEditor.value=false;
res = await PeditorCtx.value.createCoverThumbnail(videoface.value)
return res
})
setTimeout(async()=>{
console.log('qaz')
let res=await PeditorCtx.value.getLastContent();
console.log(res);
},6000)
}else{
let html =
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/><br/>";
editorCtx.value.initHtml(html);
PeditorCtx.value.initHtml(html);
}
}else{
if(props.editorCotent){
editorCtx.value.initHtml(props.editorCotent,async (videoUrl) => {
PeditorCtx.value.initHtml(props.editorCotent,async (videoUrl) => {
let res='';
// #ifdef APP || H5
// res = await this.editorCtx.createVideoThumbnail(videoUrl)
// res = await this.PeditorCtx.createVideoThumbnail(videoUrl)
// #endif
const fox = videoface
res = await editorCtx.value.createCoverThumbnail(fox)
showEditor.value=false;
res = await PeditorCtx.value.createCoverThumbnail(videoface.value)
return res
})
}else{
let html =
"";
editorCtx.value.initHtml(html);
PeditorCtx.value.initHtml(html);
}
}
@ -249,11 +270,13 @@
emits('closeEditor')
})
const confirm=async ()=>{
console.log('qqq')
const res = await editorCtx.value.getLastContent();
const res = await PeditorCtx.value.getLastContent();
let html = PeditorCtx.value.exportHtml(res.html.replace('undefined',''));
emits('changeEditor',{
type:props.editorType,
content:res.html
content:html
})
}
const foucus=()=>{
@ -263,7 +286,7 @@
}
const clearMuBan=()=>{
editorCtx.value.initHtml("");
PeditorCtx.value.initHtml("");
}
const updatePosition=(c_keyboardHeight)=>{
const toolbarHeight = 50
@ -288,17 +311,235 @@
scrollTop: 0,
success() {
updatePosition(keyboardHeight)
editorCtx.value.scrollView()
PeditorCtx.value.scrollView()
}
})
}, duration)
})
});
const fillTextToImgWx = (base64) => {
let maskText = "@肝胆相照临床病例库";
return new Promise((resolve, reject) => {
wx.createSelectorQuery().in(instace.proxy)
.select("#pwatermarkCanvas")
.fields({
node: true,
size: true,
})
.exec((res) => {
const canvas = res[0].node;
const ctx = canvas.getContext("2d");
let textMetrics = ctx.measureText(maskText);
console.log(textMetrics);
//
let {
width: textWidth,
actualBoundingBoxAscent,
actualBoundingBoxDescent,
} = textMetrics;
//
let textHeight = actualBoundingBoxAscent
? actualBoundingBoxAscent + actualBoundingBoxDescent
: textMetrics.fontBoundingBoxAscent +
textMetrics.fontBoundingBoxDescent;
let imgHeight, imgWidth;
let font = ""; //fontsize"px Arial";
let fontColor = "#fff";
let strokeWidth = 3;
uni.getImageInfo({
src: base64,
success: (imageRes) => {
// canvas
let scale =28;
// (imageRes.width / 800) * 30 > 12
// ? (imageRes.width / 800) * 30
// : 12;
font = scale + "px Arial";
console.log(imageRes);
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.clearRect(0, 0, canvas.width, canvas.height);
// canvas
ctx.drawImage(image, 0, 0, canvas.width, canvas.height);
let posXmargin = 10; //this.data.posXmargin // /
let posYmargin = 10; // this.data.posYmargin // /
let randomNumber = 3; //Math.floor(Math.random() * (3 + 1));
console.log("randomNumber:" + randomNumber);
switch (randomNumber) {
case 0: //
let lt_x = posXmargin;
let lt_y = posYmargin + textHeight;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.storkStyle = "black";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
ctx.fillText(maskText, lt_x, lt_y);
//ctx.restore()
//ctx.save()
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);
//ctx.restore()
//ctx.save()
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 = "black";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
ctx.fillText(maskText, rt_x, rt_y);
ctx.restore();
ctx.save();
break;
case 3: //
let rb_x =
imgWidth - textWidth * 6 - posXmargin <= 0
? 10
: imgWidth - 276- posXmargin;
console.log(rb_x)
let rb_y = imgHeight - posYmargin;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.strokeStyle = "black";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
ctx.fillText(maskText, rb_x, rb_y);
//ctx.restore()
//ctx.save()
break;
}
//ctx.restore()
// canvas
//setTimeout(() => {
wx.canvasToTempFilePath({
canvas: canvas,
success: function (res) {
//
resolve(res.tempFilePath);
//wx.previewImage({ urls: [res.tempFilePath] });
},
fail: function (res) {
// reject(res)
console.error(res);
},
});
//})
};
},
});
});
});
};
const fillTextToImg = (base64) => {
const img = new Image();
img.src = base64;
img.setAttribute("crossOrigin", "Anonymous");
return new Promise((resolve, reject) => {
img.onload = () => {
const canvas = document.createElement("canvas");
const ctx = canvas.getContext("2d");
canvas.width = img.width;
canvas.height = img.height;
ctx.fillRect(0, 0, canvas.width, canvas.height);
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
const remFontSize = 30; //canvas.width / 35;
ctx.font = remFontSize + "px '微软雅黑'";
ctx.textAlign = "right";
ctx.strokeStyle = "#000";
ctx.fillStyle = "#fff";
const uploadTime = new Date();
const name = "@肝胆相照临床病例库";
const spaceH = remFontSize * 0.1;
let randomNumber = 3//Math.floor(Math.random() * (3 + 1));
let position = [
{
top: remFontSize,
left: name.length * 30 || 30,
},
{
top: remFontSize,
left: canvas.width - remFontSize * 0.1 - spaceH,
},
{
top: canvas.height - remFontSize * 0.5 - spaceH,
left: name.length * 30 || 30,
},
{
top: canvas.height - remFontSize * 0.5 - spaceH,
left: canvas.width - remFontSize * 0.1 - spaceH,
},
];
ctx.strokeText(
name,
position[randomNumber].left,
position[randomNumber].top
);
ctx.fillText(
name,
position[randomNumber].left,
position[randomNumber].top
);
resolve(canvas.toDataURL("image/jpeg"));
};
});
};
const generateRandomNumber = () => {
let randomNumber = Math.floor(1000 + Math.random() * 9000);
return randomNumber;
};
// 64
const getImageBase64 = (url) => {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.responseType = "blob";
xhr.onload = function () {
if (this.status == 200) {
const fileReader = new FileReader();
fileReader.onloadend = function () {
resolve(fileReader.result); // Base64
};
fileReader.readAsDataURL(xhr.response); // blobbase64
} else {
reject("Could not fetch the file.");
}
};
xhr.onerror = function () {
reject("XHR error");
};
xhr.send();
});
};
const getImageFormat = (imageUrl) => {
console.log(imageUrl);
const lastDotIndex = imageUrl.lastIndexOf(".");
@ -307,66 +548,76 @@
}
return "unknown";
};
const handleUpload = (file) => {
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 = dayjs().format("YYYYMMDDHHmmss");
let random = generateRandomNumber();
let filename = time + random;
let imgType = "." + getImageFormat(file);
return new Promise((resolve, reject) => {
uni.uploadFile({
url: host, //
filePath: file,
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.push(url);
addImage([url]);
}
},
fail: (err) => {
console.log(err);
},
});
});
}
});
};
const pFun = (files) => {
uni.showLoading({
title: "正在上传图片...",
mask: true,
});
const getOss=(temurl)=>{
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 = dayjs().format("YYYYMMDDHHmmss");
let random = generateRandomNumber();
let filename = time + random;
let imgType = "." + getImageFormat(temurl);
return new Promise((resolve, reject) => {
uni.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.push(url);
addImage([url]);
}
},
fail: (err) => {
console.log(err);
},
});
});
}
});
}
const readImages = async (localIds) => {
uni.showLoading({
title: "正在上传图片...",
mask: true,
});
console.log(localIds);
let promiseFun = [];
for (let i = 0; i < files.length; i++) {
promiseFun.push(handleUpload(files[i]));
}
Promise.all(promiseFun).then((res) => {
uni.hideLoading();
// setTimeout(()=>{
// console.log(imgList.value.length)
// addImage(imgList.value)
// })
});
};
for (var i = 0; i < localIds.length; i++) {
let img = null;
// #ifdef H5
let imgBase64 = await getImageBase64(localIds[i]);
img = await fillTextToImg(imgBase64);
// #endif
// #ifdef MP-WEIXIN
img = await fillTextToImgWx(localIds[i]);
// #endif
promiseFun.push(getOss(img))
};
Promise.all(promiseFun).then((res) => {
uni.showToast({
duration: 1000,
message: "上传成功",
icon:"none"
});
});
}
const insertImage = (file) => {
showCanvas.value=true;
//if (!(!isFocusInfo.value && !isFocusResult.value)) {
uni.chooseImage({
count: 9, //9
@ -374,7 +625,8 @@
sourceType: ["album"], //
extension: [".jpg", ".png", ".jpeg"],
success: function (res) {
pFun(res.tempFilePaths);
readImages(res.tempFilePaths);
},
});
//}
@ -384,7 +636,7 @@
title: "正在上传视频...",
mask: true,
});
const videos = await addVideo(async (editorCtx) => {
const videos = await addVideo(async (PeditorCtx) => {
return new Promise((resolve) => {
api
.getOss({
@ -413,11 +665,7 @@
async success(res) {
if (res.statusCode === 204) {
let url = host + "/" + dir + filename + imgType;
let imgUrl =videoface;
const fileThumbnail = await editorCtx.createCoverThumbnail(
imgUrl
);
const fileThumbnail = await PeditorCtx.createCoverThumbnail(videoface.value);
resolve([
{
videoUrl: url,
@ -466,9 +714,16 @@
console.log('qqqqqq')
showTitle.value = true;
};
const initData=(data)=>{
console.log('init');
console.log(data)
htmlContent.value=data;
}
defineExpose({initData})
</script>
<style lang='scss'scoped>
<style lang='scss' scoped>
.row{
padding: 30rpx 30rpx 0;
display: flex;

View File

@ -26,7 +26,7 @@
</view>
</view>
<view class="list">
<view class="cell" v-for="item in most_read_articles.slice(0,3)" :key="item.exchange_id" @click="goDetail(item.exchange_id)">
<view class="cell" v-for="item in most_read_articles" :key="item.exchange_id" @click="goDetail(item.exchange_id)">
<view class="circle"></view>
<view class="title ellipsis-one-lines">{{ item.exchange_title }}</view>
</view>
@ -73,7 +73,7 @@
>
<view
class="imgcell"
v-for="unit in item.exchange_content_image"
v-for="unit in item.exchange_content_image.splice(0,3)"
:key="unit"
>
<up--image
@ -97,7 +97,7 @@
>
<video
:key="index"
v-for="(videoCell, index) in item.exchange_content_video"
v-for="(videoCell, index) in item.exchange_content_video.slice(0,1)"
class="myVideo"
:src="videoCell"
@ -106,10 +106,11 @@
></video>
</view>
</view>
<view class="tagbox" @click="goDetail(item.exchange_id)" v-if="item.label && item.label.length > 0">
<view class="tagbox" @click="goDetail(item.exchange_id)" v-if="item.exchange_label">
<view
class="tag"
v-for="cell in item.label"
v-for="cell in item.exchange_label"
:key="cell.exchange_label_id"
>{{ cell.label_name }}</view
>
@ -204,7 +205,10 @@ const goDetail = (id) => {
const searchList = async () => {
let searchForm = {
page: 1,
page_size: 10
page_size: 10,
order:{
push_date:'desc'
}
};
api.searchExchage({
@ -227,7 +231,10 @@ const htmlToText=(html)=>{
const goodList=()=>{
api.searchExchageGood({
is_selected:1,
limit:5
order:{
push_date:'desc'
},
limit:3
}).then(res=>{
most_read_articles.value=res.data.data
})
@ -237,6 +244,7 @@ const hotList=()=>{
is_selected:0,
limit:5,
page:1,
page_size:5
}).then(res=>{
})

View File

@ -27,6 +27,7 @@ onLoad((options) => {
<style lang='scss' scoped>
.imgbox{
margin-top: -30rpx;
margin: -30rpx 30rpx 0;
overflow-y: scroll;
}
</style>

View File

@ -5,6 +5,7 @@
loading-more-no-more-text="咱也是有底线的!"
:auto-show-back-to-top="false"
v-model="dataList"
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'}"
@ -24,15 +25,19 @@
radius="50%"
></up--image>
<view class="iptcon" @click="open">
<up-input
@click="open"
disabled
:focus="false"
type="text"
placeholderClass="placeholderClass"
placeholder="对病例发表您的看法"
class="ipt"
/>
<view class="maskipt" @click="open"></view>
<up-input
@click="open"
disabled
:focus="false"
type="text"
placeholderClass="placeholderClass"
placeholder="对病例发表您的看法"
class="ipt"
/>
</view>
</view>
<view class="right">
@ -60,10 +65,10 @@
}}</view>
<view class="title" v-else>{{ info.exchange_title }}</view>
<view class="content" >
<view class="info" v-for="item in info.author" v-if="type == 'video' || type == 'article'">
<view class="info" v-for="item in info.author" :key ="item" v-if="type == 'video' || type == 'article'">
<up--image
:src="headImg"
mode="widthFix"
:src="item.avatar?item.avatar:headImg"
class="headImg"
width="46rpx"
height="46rpx"
@ -75,8 +80,8 @@
</view>
<view class="info" v-else>
<up--image
:src="headImg"
mode="widthFix"
:src="info.avatar?info.avatar:headImg"
class="headImg"
width="46rpx"
height="46rpx"
@ -145,7 +150,7 @@
<view class="videobox" v-else>
<view class="cloumn" v-if="info.exchange_content">
<view class="stitle">病例信息</view>
<up-parse :content="fromatImg(info.exchange_content)"></up-parse>
<up-parse :content="fromatImg(info.exchange_content)" style="overflow-y: hidden;"></up-parse>
<!-- <view class="con" v-html="fromatImg(info.exchange_content)"></view> -->
</view>
<view class="cloumn" v-if="info.exchange_summary">
@ -154,17 +159,17 @@
<!-- <view class="con" v-html="fromatImg(info.exchange_summary)"></view> -->
</view>
<view class="bar"></view>
<view class="detail" v-if="info.case_exchange_vote && info.case_exchange_vote.vote_title">
<view class="votebox" v-if="info.case_exchange_vote.is_have_voted!=1">
<view class="detail" v-if="info.exchange_vote && info.exchange_vote.vote_title">
<view class="votebox" v-if="info.exchange_vote.is_have_voted!=1">
<view class="name">在线投票</view>
<view class="title" >{{ info.case_exchange_vote.vote_title }}</view>
<view class="title" >{{ info.exchange_vote.vote_title }}</view>
<view class="group">
<up-radio-group
v-model="option_id"
placement="column"
>
<view class="row" v-for="item in info.case_exchange_vote.case_exchange_vote_option" :key="item.option_id">
<view class="row" v-for="item in info.exchange_vote.case_exchange_vote_option" :key="item.option_id">
<up-radio
activeColor="#3CC7C0"
:label="item.option_value"
@ -178,9 +183,9 @@
</view>
<view class="votebox" v-else>
<view class="name">在线投票</view>
<view class="title">{{ info.case_exchange_vote.vote_title }}</view>
<view class="title">{{ info.exchange_vote.vote_title }}</view>
<view class="options">
<view class="option" v-for="item in info.case_exchange_vote.case_exchange_vote_option" :key="item.option_id">
<view class="option" v-for="item in info.exchange_vote.case_exchange_vote_option" :key="item.option_id">
<view class="row">
<view class="left">{{item.option_value }}</view>
<view class="num">{{item.proportion}}%</view>
@ -218,7 +223,7 @@
:key="item.comment_id"
>
<up--image
:src="headImg"
:src="item.avatar?item.avatar:headImg"
class="headImg"
width="86rpx"
height="86rpx"
@ -230,7 +235,7 @@
<view class="namebox">
<view class="name"> {{ item.user_name }}</view>
<up--image
v-if="user_id==item.user_id"
v-if="doctor_id==item.doctor_id"
:src="selfImg"
class="selfImg"
width="69rpx"
@ -247,7 +252,7 @@
item.user_name,
item.is_top,
2,
item.user_id
item.doctor_id
)
"
>...</view
@ -275,7 +280,7 @@
style="padding-left: 0;padding-right:0"
>
<up--image
:src="headImg"
:src="cell.avatar?cell.avatar:headImg"
class="headImg"
width="86rpx"
height="86rpx"
@ -286,7 +291,7 @@
<view class="namebox">
<view class="name"> {{ cell.user_name }}</view>
<up--image
v-if="user_id==cell.user_id"
v-if="doctor_id==cell.doctor_id"
:src="selfImg"
class="selfImg"
width="69rpx"
@ -303,7 +308,7 @@
cell.user_name,
cell.is_top,
3,
cell.user_id
cell.doctor_id
)
"
>...</view
@ -330,7 +335,7 @@
class="expand"
@click="openMorePop(item, item.sub_comment, index)"
v-if="item.sub_comment.length > 3"
>展开更多回复</view
>展开更多回复<view class="iconbox"><up-icon name="arrow-down" color="#3cc7c0" size="38rpx"></up-icon></view></view
>
</view>
</view>
@ -412,11 +417,11 @@
@open="openDeal"
>
<view class="dealbox">
<view class="dealcell" @click="toggleTop" v-if="level == 2 && is_author">{{
<view class="dealcell" @click="toggleTop" v-if="level == 2 && isArticleAuthor">{{
is_top ? "取消置顶" : "置顶"
}}</view>
<view class="dealcell" @click="openCommentDialog">回复</view>
<view class="dealcell" v-if="is_author || user_id==comment_userId" @click="delComment">删除</view>
<view class="dealcell" v-if="isArticleAuthor || doctor_id==comment_doctorId" @click="delComment">删除</view>
<view class="bar"></view>
<view class="dealcell" @click="closeDealPop">取消</view>
</view>
@ -443,7 +448,7 @@
<view class="unit commentcon">
<view class="item">
<up--image
:src="headImg"
:src="mainCommentObj.avatar?mainCommentObj.avatar:headImg"
class="headImg"
width="86rpx"
height="86rpx"
@ -455,7 +460,7 @@
<view class="namebox">
<view class="name"> {{ mainCommentObj.user_name}}</view>
<up--image
v-if="user_id==mainCommentObj.user_id"
v-if="doctor_id==mainCommentObj.doctor_id"
:src="selfImg"
class="selfImg"
width="69rpx"
@ -472,7 +477,7 @@
mainCommentObj.user_name,
mainCommentObj.is_top,
2,
mainCommentObj.user_id
mainCommentObj.doctor_id
)
"
>...</view
@ -501,7 +506,7 @@
:key="cell.comment_id"
>
<up--image
:src="headImg"
:src="cell.avatar?cell.avatar:headImg"
class="headImg"
width="86rpx"
height="86rpx"
@ -512,7 +517,7 @@
<view class="namebox">
<view class="name">{{ cell.user_name}}</view>
<up--image
v-if="user_id==cell.user_id"
v-if="doctor_id==cell.doctor_id"
:src="selfImg"
class="selfImg"
width="69rpx"
@ -529,7 +534,7 @@
cell.user_name,
cell.is_top,
3,
cell.user_id
cell.doctor_id
)
"
>...</view
@ -616,18 +621,21 @@ import commentImg from "@/static/comment_icon.png";
import selfImg from "@/static/benren.png";
import list from "@/uni_modules/z-paging/components/z-paging/z-paging";
import api from "@/api/api";
import throttle from "@/utils/throttle"
import { onLoad } from "@dcloudio/uni-app";
import dayjs from "dayjs";
// #ifdef H5
import baoliVideo from "@/components/baoliVideo/baoliVideo.vue";
import { linkFlag } from "../../uni_modules/sv-editor/components/common/utils";
// #endif
const isArticleAuthor=ref(false)
const isH5=ref(process.env.UNI_PLATFORM =="h5");
const user_id=ref('');
const doctor_id=ref('');
const paging = ref(null);
const dataList = ref([]);
const total = ref(0);
const imgList = ref([]);
const showCanvas = ref(false);
const showCanvas = ref(true);
const showCommentDialog = ref(false);
const givePointValue = ref(5);
const canvasWidth = ref(0);
@ -652,7 +660,7 @@ const clickIndex = ref(0);
const is_top = ref(false);
const option_id = ref("");
const point=ref(0)
const comment_userId=ref('');
const comment_doctorId=ref('');
const commentTextarea=ref(null)
const confirmGive = () => {
@ -718,18 +726,33 @@ const getArticleDetail = (id) => {
api.getArticleDetail(id).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 = (id) => {
api.getVideoDetail(id).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 = (id) => {
api.getExchangeDetail(id).then((res) => {
let result = res.data.data;
Object.assign(info, result);
if(info.doctor_id==doctor_id.value){
isArticleAuthor.value=true;
}
});
};
const getUserPoint=()=>{
@ -769,14 +792,47 @@ const givePoint=()=>{
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;
};
onLoad((options) => {
id.value = options.id;
type.value = options.type;
readRecord()
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;
}
console.log('id:'+id.value)
console.log('type:'+type.value)
readRecord()
let userInfo=uni.getStorageSync('userInfo');
if(userInfo.user_id){
user_id.value=userInfo.user_id;
if(userInfo.doctor_id){
doctor_id.value=userInfo.doctor_id;
}
});
@ -785,6 +841,7 @@ const clearComment = () => {
imgList.value = [];
content.value = "";
root_id.value = null;
placeholder.value="请输入评论内容"
//is_author.value = false;
reply_name.value = "";
level.value = 1;
@ -806,7 +863,7 @@ const showReplyPop = () => {
};
const alertDeal = (parentId, rootId, name, top, commentLevel,userId) => {
parent_id.value = parentId;
comment_userId.value=userId;
comment_doctorId.value=userId;
root_id.value = rootId;
//is_author.value = isAuthor == 1 ? true : false;
reply_name.value = name;
@ -927,7 +984,7 @@ const open = () => {
};
const close = () => {
showCommentDialog.value = false;
console.log("close");
clearComment();
};
const openDeal = () => {
@ -953,8 +1010,7 @@ const previewImg = (url) => {
};
const fillTextToImgWx = (base64) => {
let maskText = "@zjd嗯嗯嗯嗯嗯嗯3评论暂时真实的334";
let maskText = "@肝胆相照临床病例库";
return new Promise((resolve, reject) => {
wx.createSelectorQuery()
.select("#watermarkCanvas")
@ -982,15 +1038,15 @@ const fillTextToImgWx = (base64) => {
let font = ""; //fontsize"px Arial";
let fontColor = "#fff";
let strokeWidth = 3;
let strokeWidth =5;
uni.getImageInfo({
src: base64,
success: (imageRes) => {
// canvas
let scale =
(imageRes.width / 800) * 30 > 12
? (imageRes.width / 800) * 30
: 12;
let scale =28;
// (imageRes.width / 800) * 30 > 12
// ? (imageRes.width / 800) * 30
// : 12;
font = scale + "px Arial";
console.log(imageRes);
canvas.width = imageRes.width;
@ -1046,7 +1102,7 @@ const fillTextToImgWx = (base64) => {
let rt_y = posYmargin + textHeight * 2;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.strokeStyle = "black";
ctx.strokeStyle = "#000";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
ctx.fillText(maskText, rt_x, rt_y);
@ -1055,15 +1111,18 @@ const fillTextToImgWx = (base64) => {
break;
case 3: //
let rb_x =
imgWidth - textWidth * 2.9 - posXmargin <= 0
imgWidth - 276 - posXmargin <= 0
? 10
: imgWidth - textWidth * 2.9 - posXmargin;
: imgWidth - 276- posXmargin;
console.log(rb_x)
let rb_y = imgHeight - posYmargin;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.strokeStyle = "black";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
console.log('rb_x')
console.log(rb_x)
ctx.fillText(maskText, rb_x, rb_y);
//ctx.restore()
//ctx.save()
@ -1078,8 +1137,8 @@ const fillTextToImgWx = (base64) => {
success: function (res) {
//
resolve(res.tempFilePath);
wx.previewImage({ urls: [res.tempFilePath] });
showCanvas.value = false;
//wx.previewImage({ urls: [res.tempFilePath] });
},
fail: function (res) {
// reject(res)
@ -1112,9 +1171,9 @@ const fillTextToImg = (base64) => {
ctx.strokeStyle = "#000";
ctx.fillStyle = "#fff";
const uploadTime = new Date();
const name = "@zjd";
const name = "@肝胆相照临床病例库";
const spaceH = remFontSize * 0.1;
let randomNumber = Math.floor(Math.random() * (3 + 1));
let randomNumber = 3//Math.floor(Math.random() * (3 + 1));
let position = [
{
top: remFontSize,
@ -1187,28 +1246,24 @@ const readImages = async (localIds) => {
//let localData = await doreadImage(localIds[i]);
let img = null;
/* #ifdef H5 */
let imgBase64 = await getImageBase64(localIds[i]);
// #ifdef H5
let imgBase64 = await getImageBase64(localIds[i].url);
img = await fillTextToImg(imgBase64);
console.log(img);
uni.previewImage({ urls: [img] });
/* #endif */
/* #ifdef MP-WEIXIN */
let imgpromise = await fillTextToImgWx(localIds[i]);
console.log(22222);
//console.log(imgBase64);
/* #endif */
// #endif
// #ifdef MP-WEIXIN
img = await fillTextToImgWx(localIds[i].url);
// #endif
promiseFun.push(getOss(img))
//let imgFile = base64ToFile(img, new Date().getTime() + ".jpg");
// console.log(imgFile)
//promiseFun.push(uploadImg(imgFile));
}
Promise.all(promiseFun).then((res) => {
uni.showToast({
duration: 1000,
message: "上传成功",
title: "上传成功",
icon:"none"
});
});
};
@ -1259,49 +1314,52 @@ const chooseImg = () => {
},
});
};
const getOss=(temurl)=>{
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 = dayjs().format("YYYYMMDDHHmmss");
let random = generateRandomNumber();
let filename = time + random;
let imgType = "." + getImageFormat(temurl);
return new Promise((resolve, reject) => {
uni.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;
console.log(url);
imgList.value = [url];
}
},
fail: (err) => {
console.log(err);
},
});
});
}
});
}
const handleUpload = (file) => {
let File = file.file;
console.log(111);
console.log(File);
readImages(File)
//
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 = dayjs().format("YYYYMMDDHHmmss");
let random = generateRandomNumber();
let filename = time + random;
let imgType = "." + getImageFormat(File[0].url);
return new Promise((resolve, reject) => {
uni.uploadFile({
url: host, //
filePath: File[0].url,
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;
console.log(url);
imgList.value = [url];
}
},
fail: (err) => {
console.log(err);
},
});
});
}
});
};
const generateRandomNumber = () => {
let randomNumber = Math.floor(1000 + Math.random() * 9000);
@ -1315,8 +1373,8 @@ const getImageFormat = (imageUrl) => {
return "unknown";
};
const afterRead = (file, lists, name) => {
console.log(lists);
console.log(name);
// console.log(lists);
// console.log(name);
handleUpload(file);
};
const delImg = (index) => {
@ -1557,7 +1615,7 @@ const toggleTop = () => {
: topExchangeComment(parent_id.value);
}
};
const sendComment = () => {
const sendComment = throttle(() => {
if (!content.value) {
uni.showToast({
icon: "none",
@ -1587,7 +1645,7 @@ const sendComment = () => {
} else {
addExchangeComment(id.value, postData);
}
};
});
const formatHtml = (val) => {
if (/^回复.+/.test(val)) {
return val.replace(
@ -2097,7 +2155,15 @@ const readRecord= async()=>{
display: flex;
overflow: hidden;
align-items: center;
.iptcon{
position: relative;
.maskipt{
position: absolute;
width:100%;
height:100%;
z-index:1
}
}
.ipt {
margin-left: 15rpx;
}
@ -2180,5 +2246,10 @@ const readRecord= async()=>{
margin-left: 8rpx;
}
}
.iconbox{
margin-top: 5rpx;
}
:deep(._root){
overflow-x: hidden!important;
}
</style>

View File

@ -109,7 +109,7 @@
</view>
</view>
<view class="list">
<view class="cell" v-for="item in recommend_hospital" :key="item.hospital_id" @click="goListBy(item.hospital_id,item.hospital_name ,'hospital')">{{ item.hospital_name }}</view>
<view class="cell ellipsis-one-lines" v-for="item in recommend_hospital" :key="item.hospital_id" @click="goListBy(item.hospital_id,item.hospital_name ,'hospital')">{{ item.hospital_name }}</view>
</view>
</view>
<view class="recbox">
@ -121,7 +121,7 @@
</view>
</view>
<view class="list">
<view class="cell" v-for="item in recommend_doctor" :key="item.doctor_id" @click="goListBy(item.doctor_id,item.doctor_name ,'doctor')">{{ item.doctor_name }}</view>
<view class="cell ellipsis-one-lines" v-for="item in recommend_doctor" :key="item.doctor_id" @click="goListBy(item.doctor_id,item.doctor_name ,'doctor')">{{ item.doctor_name }}({{item.hospital_name}})</view>
</view>
</view>
</view>

View File

@ -1,6 +1,6 @@
<template>
<view class="logincontent">
<view class="title">登录观看</view>
<view class="title">欢迎登录</view>
<up-form labelPosition="left" ref="form" labelWidth="115rpx">
<up-form-item
label="手机号"
@ -136,16 +136,16 @@
<view class="row">
<view class="tip">操作说明</view>
</view>
<view class="line">
<!-- <view class="line">
<view class="qq">1</view>
肝胆相照注册账号与微信绑定肝胆相照相关直播视频无忧随心看
</view>
<view class="line">
</view> -->
<!-- <view class="line">
<view class="qq">2</view>
仅需操作一次后续通过微信观看直播视频无需额外操作立即进入
</view>
</view> -->
<view class="line">
<view class="qq">3</view>
<!-- <view class="qq">3</view> -->
若您还未注册肝胆相照专家版App, 请直接点击注册进行注册操作
</view>
<view class="desc">
@ -410,7 +410,7 @@ const start = () => {
padding: 0 30rpx;
}
.row {
margin-top: 30rpx;
margin-top: 40rpx;
display: flex;
justify-content: space-between;
padding: 0 30rpx;

View File

@ -1,7 +1,10 @@
<template>
<up-toast ref="uToast"></up-toast>
<div class="upage">
<pEditor v-if="showEditor" :editorCotent="editorCotent" :editorType="editorType" @closeEditor="closeEditor" @changeEditor="changeEditor"></pEditor>
<pEditor ref="pEditorRef" v-if="showEditor" :editorCotent="editorType=='info'?form.exchange_content:form.exchange_summary" :editorType="editorType" @closeEditor="closeEditor" @changeEditor="changeEditor"></pEditor>
<view class="navbox">
<view class="bg"></view>
<view class="namebox">
@ -9,11 +12,11 @@
<u-icon name="arrow-left" color="#000" size="24"></u-icon>
</view>
<!-- <view class="logo">logo</view> -->
<view class="name">发病例交流帖</view>
<view class="name">{{exchange_id?"编辑病例交流帖":"发病例交流帖"}}</view>
</view>
</view>
<!-- <backNav :navName="'发病例交流帖'"></backNav> -->
<scroll-view class="form" id="form" scroll-y="true" style="padding-bottom:150rpx">
<scroll-view class="form" :scroll-top="scrollTop" @scroll="scroll" ref="scrollView" id="form" scroll-y="true" style="padding-bottom:150rpx">
<view class="textbox">
<up--textarea
autoHeight
@ -57,7 +60,7 @@
@statuschange="statuschange"
></editor> -->
</view>
<view class="textcon" style="border: none">
<view class="textcon" style="border: none;position: relative;z-index:1;" >
<view class="row">
<view class="left">
总结与讨论 <text class="tip">(可不填)</text>
@ -148,7 +151,7 @@
</view> -->
<view class="bottombtn">
<view class="left">
<view class="draft" @click="openDraftList">草稿箱</view>
<view class="draft" @click="openDraftList" v-if="!exchange_id">草稿箱</view>
<view class="vote" :class="{active:form.case_exchange_vote.vote_title}" @click="alertVote">
投票
<up--image
@ -324,7 +327,7 @@
</view>
<view class="row" v-else-if="item.exchange_vote">
<view class="smalltitle">投票</view>
<view class="con ellipsis-two-lines">{{
<view class="con ellipsis-two-lines" v-if=" item.exchange_vote">{{
item.exchange_vote.vote_title
}}</view>
</view>
@ -393,7 +396,7 @@
<view class="zanwraper">
<view class="title">提示</view>
<view class="content" v-if="delType == 'delDraft'">
是否删除该草稿
草稿删除后无法回复确认删除该草稿
</view>
<view class="content" v-else-if="delType == 'saveDraft'">
是否保存该草稿
@ -405,16 +408,29 @@
</view>
</view>
</up-overlay>
<up-overlay :show="showQuit" mask-click-able zIndex="99">
<view class="zanboxpop">
<view class="zanwraper">
<view class="title">提示</view>
<view class="content">
是否取消编辑
</view>
<view class="btnbox">
<view class="cancle" @click="cancelQuit">取消</view>
<view class="ok" @click="confirmQuit">确定</view>
</view>
</view>
</view>
</up-overlay>
<up-overlay :show="isConfirmPublish" mask-click-able zIndex="99">
<view class="zanboxpop">
<view class="zanwraper">
<view class="title">提示</view>
<view class="content" v-if="exchange_id">
<view class="content" >
是否确认发布
</view>
<view class="content" v-else>
是否确认修改
</view>
<view class="btnbox">
<view class="cancle" @click="cancelConfirmPublish">取消</view>
<view class="ok" @click="confirmConfirmPublish">确定</view>
@ -478,6 +494,7 @@
class="column"
v-for="item in labelObj.list1"
:key="item.app_iden"
v-show="item.label_name!='热门话题'"
>
<up-radio
activeColor="#3CC7C0 "
@ -530,12 +547,13 @@
</up-radio-group>
</view>
</scroll-view>
</view>
</up-popup>
</template>
<script setup>
import { reactive, ref } from "vue";
import { nextTick, reactive, ref } from "vue";
import backNav from "@/components/backNav/backNav";
import photoImg from "@/static/photo.png";
import addImg from "@/static/add.png";
@ -550,7 +568,7 @@ import { onLoad,onReady } from "@dcloudio/uni-app";
import throttle from "@/utils/throttle"
import svEditor from "@/uni_modules/sv-editor/components/sv-editor/sv-editor.vue";
import pEditor from "@/components/pEditor/pEditor"
import videoface from "@/static/videoface.jpg";
const uToast=ref(null);
//import SvEditorToolbar from "@/uni_modules/sv-editor/components/sv-editor/sv-editor-toolbar.vue";
import {
@ -561,6 +579,7 @@ import {
const isLock = ref(false);
const isFlag = ref(false);
const delId = ref("");
const scrollView=ref(null)
const showModal = ref(false);
const delType = ref("delDraft"); //delDraft saveDraft
const isPublish = ref(false);
@ -573,7 +592,9 @@ const form = reactive({
exchange_title: "",
exchange_content: "",
exchange_summary: "",
case_exchange_vote: {},
case_exchange_vote: {
vote_title: ""
},
case_exchange_label: [],
});
const voteData = reactive({
@ -585,6 +606,8 @@ const voteData = reactive({
},
],
});
const videoface=ref('https://caseplatform.oss-cn-beijing.aliyuncs.com/prod/static/shipinfengmian.jpg')
const showQuit=ref(false)
const value = ref("");
const isConfirmPublish=ref(false)
const showVote = ref(false);
@ -598,13 +621,13 @@ const editorCtxResult = ref(null);
const isFocusInfo = ref(false);
const isFocusResult = ref(false);
const labelList = ref([]);
const infoHeight=ref(100);
const pEditorRef=ref(null);
const infoHeight=ref(300);
let inithtmlString =
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/><br/>";
const infoHtml=ref(inithtmlString);
const resultHtml=ref('');
const resultHeight=ref(100);
const resultHeight=ref(300);
const showInfoOpacity=ref(true)
const level = ref(1);
const freshKey=ref(0);
@ -627,6 +650,24 @@ const labelObj = reactive({
list2: [],
list3: []
});
const cancelQuit=()=>{
showQuit.value=false;
}
const confirmQuit=()=>{
showQuit.value=false;
goBack();
}
const oldScrollTop=ref(0)
const scrollTop=ref(0)
const scroll=(e)=>{
oldScrollTop.value=e.detail.scrollTop
}
const toTop=()=>{
scrollTop.value=oldScrollTop.value
nextTick(()=>{
scrollTop.value=0
})
}
const goBack = () => {
uni.navigateBack({
delta: 1,
@ -636,56 +677,70 @@ const editorCotent=ref('')
const closeEditor=()=>{
showEditor.value=false;
};
const changeEditor=(data)=>{
console.log('content');
console.log(data.content);
showEditor.value=false;
if(data.type=="info"){
infoHtml.value=data.content
form.exchange_content=data.content;
//infoHtml.value=data.content;
infoHeight.value=600;
editorCtx.value.initHtml(data.content,async (videoUrl) => {
let res='';
// #ifdef APP || H5
// res = await this.editorCtx.createVideoThumbnail(videoUrl)
// #endif
let res =""
console.log(videoface.value)
res = await editorCtx.value.createCoverThumbnail(videoface.value)
const fox = videoface
res = await editorCtx.value.createCoverThumbnail(fox)
showEditor.value=false;
return res
})
setTimeout(()=>{
const query = wx.createSelectorQuery();
query.select('#infoContent').boundingClientRect(function(rect){
console.log(rect.height);
infoHeight.value=rect.height+10
//
}).exec();
},0)
},async()=>{
})
setTimeout(async()=>{
let info_str=await editorCtx.value.getLastContent();
infoHtml.value=info_str.html;
// console.log("");
// console.log( editorCtx.value.exportHtml(info_str.html));
setTimeout(()=>{
const query = wx.createSelectorQuery();
query.select('#infoContent').boundingClientRect(function(rect){
console.log(rect.height);
infoHeight.value=rect.height+10;
//
}).exec();
},1000)
},1000)
}else{
resultHtml.value=data.content
form.exchange_summary=data.content;
//resultHtml.value=data.content;
editorCtxResult.value.initHtml(data.content,async (videoUrl) => {
let res='';
// #ifdef APP || H5
// res = await this.editorCtx.createVideoThumbnail(videoUrl)
// #endif
const fox = videoface
res = await editorCtx.value.createCoverThumbnail(fox)
showEditor.value=false;
res = await editorCtxResult.value.createCoverThumbnail(videoface.value)
return res
},async()=>{
})
setTimeout(()=>{
const query = wx.createSelectorQuery();
query.select('#resultContent').boundingClientRect(function(rect){
console.log(rect.height);
resultHeight.value=rect.height+10
//
}).exec();
},0)
setTimeout(async()=>{
let info_str=await editorCtxResult.value.getLastContent();
resultHtml.value=info_str.html;
setTimeout(()=>{
const query = wx.createSelectorQuery();
query.select('#resultContent').boundingClientRect(function(rect){
console.log(rect.height);
resultHeight.value=rect.height+10;
toTop()
//
}).exec();
},1000)
},1000)
}
// setTimeout(()=>{
// showEditor.value=false;
// },1000)
};
const openDraftList=()=>{
getDraftList();
@ -755,30 +810,31 @@ const saveVote = () => {
});
return false;
}
if (voteData.case_exchange_vote_option.length == 0) {
if(voteData.case_exchange_vote_option.length <2) {
uni.showToast({
title: "请添加投票选项",
title: "请至少设置2个选项",
icon: "none",
});
return false;
}
// for (let i = 0; i < voteData.case_exchange_vote_option.length; i++) {
// if (voteData.case_exchange_vote_option[i].option_value == "") {
// uni.showToast({
// title: "",
// icon: "none",
// });
// return false;
// }
// if (voteData.case_exchange_vote_option[i].option_value.length > 16) {
// uni.showToast({
// title: "" + (i + 1) + "16",
// icon: "none",
// });
// return false;
// }
// }
for (let i = 0; i < voteData.case_exchange_vote_option.length; i++) {
if (voteData.case_exchange_vote_option[i].option_value == "") {
uni.showToast({
title: "投票选项不能为空",
icon: "none",
});
return false;
}
if (voteData.case_exchange_vote_option[i].option_value.length > 16) {
uni.showToast({
title: "第" + (i + 1) + "个投票选项超过16个字符",
icon: "none",
});
return false;
}
}
// if (voteData.case_exchange_vote_option.length < 2) {
// uni.showToast({
// title: "",
@ -816,26 +872,24 @@ const ready = (e) => {
let html =
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/><br/>";
editorCtx.value.initHtml(html);
//editorCtx.value.initHtml(html);
// setTimeout(()=>{
uni.hideKeyboard();
uni.pageScrollTo({
scrollTop:0,
selector:"#form"
// })
})
toTop()
};
const readyResult = (e) => {
editorCtxResult.value = e;
setTimeout(()=>{
toTop()
setTimeout(()=>{
if(exchange_id.value){
getExchangeDetail(exchange_id.value);
}
uni.hideLoading();
//uni.hideLoading();
})
//editorCtxResult.value.initHtml("")
};
const clearMuBan = () => {
@ -847,10 +901,17 @@ const clearMuBan = () => {
const focusInfo = async() => {
isFocusInfo.value = true;
const res= await editorCtx.value.getLastContent();
editorCotent.value=res.html
editorCotent.value=editorCtx.value.exportHtml(res.html);
console.log("focus")
console.log('editorCotent.value')
console.log(editorCotent.value)
showEditor.value=true;
editorType.value="info"
// uni.onKeyboardHeightChange(res => {
// console.log(res.height);
// bottomHeight.value=res.height*2;
@ -873,7 +934,7 @@ const blurInfo = () => {
const focusResult = async() => {
isFocusResult.value = true;
const res= await editorCtxResult.value.getLastContent();
editorCotent.value=res.html
editorCotent.value=editorCtxResult.value.exportHtml(res.html)
editorType.value="result";
showEditor.value=true;
// uni.onKeyboardHeightChange(res => {
@ -933,7 +994,7 @@ const saveDraft = async () => {
if (isLock.value) return false;
isLock.value = true;
const res = await editorCtx.value.getLastContent();
form.exchange_content = res.html;
form.exchange_content = res.html;
const resResult = await editorCtxResult.value.getLastContent();
form.exchange_summary = resResult.html;
@ -942,10 +1003,12 @@ const saveDraft = async () => {
}
api.saveDraft(form).then((res) => {
isLock.value = false;
goBack()
uni.showToast({
title: "保存成功",
icon: "none",
});
getDraftList();
});
};
@ -959,37 +1022,26 @@ const getExchangeDetail = (id) => {
exchange_summary,
exchange_vote,
} = res.data.data;
editorCtx.value.initHtml(exchange_content,async (videoUrl) => {
let res
// #ifdef APP || H5
// res = await this.editorCtx.createVideoThumbnail(videoUrl)
// #endif
const fox = videoface
res = await editorCtx.value.createCoverThumbnail(fox)
return res
});
form.exchange_content = exchange_content;
//form.exchange_content = exchange_content;
changeEditor({
type:"info",
content:exchange_content
})
//infoHtml.value=exchange_content;
form.exchange_title = exchange_title;
form.case_exchange_label = exchange_label? exchange_label:[];
labelList.value = exchange_label?exchange_label:[];
form.exchange_summary = exchange_summary;
form.case_exchange_vote = exchange_vote;
editorCtxResult.value.initHtml(exchange_summary,async (videoUrl) => {
let res
// #ifdef APP || H5
// res = await this.editorCtx.createVideoThumbnail(videoUrl)
// #endif
const fox = videoface
res = await editorCtxResult.value.createCoverThumbnail(fox)
return res
});
Object.assign(voteData, exchange_vote);
//form.exchange_summary = exchange_summary;
//resultHtml.value=exchange_summary;
form.case_exchange_vote = exchange_vote?exchange_vote:{};
changeEditor({
type:"result",
content:exchange_summary
})
Object.assign(voteData, exchange_vote);
});
};
const editDraft = (index) => {
@ -1001,16 +1053,32 @@ const editDraft = (index) => {
exchange_summary,
exchange_vote,
} = draft;
editorCtx.value.initHtml(exchange_content);
form.exchange_content = exchange_content;
if(exchange_content){
let html= editorCtx.value.exportHtml(exchange_content.replace('undefined',''));
//form.exchange_content=html;
changeEditor({
type:"info",
content: html
})
}
if(exchange_content){
let html= editorCtxResult.value.exportHtml(exchange_summary.replace('undefined',''));
changeEditor({
type:"result",
content:html
})
}
form.exchange_title = exchange_title;
form.case_exchange_label = exchange_label;
labelList.value = exchange_label;
form.case_exchange_label = exchange_label? exchange_label:[];
labelList.value = exchange_label?exchange_label:[];
form.exchange_summary = exchange_summary;
form.case_exchange_vote = exchange_vote;
editorCtxResult.value.initHtml(exchange_summary);
Object.assign(voteData, exchange_vote);
showDraft.value = false;
form.case_exchange_vote = exchange_vote?exchange_vote:{};
Object.assign(voteData, exchange_vote);
showDraft.value = false;
};
const willDelDraft = (id) => {
delId.value = id;
@ -1049,39 +1117,45 @@ const delDraft = (id) => {
};
const alertSave = async () => {
if(isPublish.value || exchange_id.value){
goBack()
}else{
const res = await editorCtx.value.getLastContent();
const initInfo =
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p>";
//let html = editorCtx.value.exportHtml(res.html);
//const initInfo= "<p></p><br/><p></p><br/><p></p><br/><p></p><br/><p></p><br/><p></p><br/><br/>";
const resContent = await editorCtxResult.value.getLastContent();
//let reshtml = editorCtxResult.value.exportHtml(resContent.html);
if (
form.exchange_title ||
res.html!=initInfo ||
resContent.text ||
(form.case_exchange_vote &&
form.case_exchange_vote.vote_title &&
form.case_exchange_label &&
form.case_exchange_label.length > 0)
) {
delType.value = "saveDraft";
showModal.value = true;
} else {
goBack();
}
}
if(exchange_id.value){
showQuit.value=true;
}else{
if(isPublish.value){
goBack()
}else{
const res = await editorCtx.value.getLastContent();
const initInfo =
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p>";
//let html = editorCtx.value.exportHtml(res.html);
//const initInfo= "<p></p><br/><p></p><br/><p></p><br/><p></p><br/><p></p><br/><p></p><br/><br/>";
const resContent = await editorCtxResult.value.getLastContent();
//let reshtml = editorCtxResult.value.exportHtml(resContent.html);
if (
form.exchange_title ||
res.html!=initInfo ||
resContent.text ||
(form.case_exchange_vote &&
form.case_exchange_vote.vote_title &&
form.case_exchange_label &&
form.case_exchange_label.length > 0)
) {
delType.value = "saveDraft";
showModal.value = true;
} else {
goBack();
}
}
}
};
const cconfirmConfirmPublish=()=>{
confirmConfirmPublish.value=false;
const confirmConfirmPublish=()=>{
isConfirmPublish.value=false;
publish();
}
const publish =throttle(async () => {
console.log(3333);
const initInfo =
"<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p>";
if (form.exchange_title == "") {
@ -1098,9 +1172,19 @@ const publish =throttle(async () => {
});
return false;
}
const res = await editorCtx.value.getLastContent();
let html = editorCtx.value.exportHtml(res.html);
if (html == initInfo) {
if(form.exchange_content==""){
uni.showToast({
title: "请编辑病例信息",
icon: "none",
});
return false;
}
// const res = await editorCtx.value.getLastContent();
// let html = editorCtx.value.exportHtml(res.html);
// console.log('htmlinfo')
// console.log(html)
if (form.exchange_content == initInfo) {
uni.showToast({
title: "请编辑病例信息",
icon: "none",
@ -1119,10 +1203,15 @@ const publish =throttle(async () => {
form.case_exchange_label = labelList.value;
if(isLock.value) return false;
isFlag.value = true;
form.exchange_content = html;
const resContent = await editorCtxResult.value.getLastContent();
let reshtml = editorCtxResult.value.exportHtml(resContent.html);
form.exchange_summary = reshtml=="<p><br></p>"?'':reshtml;
//form.exchange_content = html;
// const resContent = await editorCtxResult.value.getLastContent();
// let reshtml = editorCtxResult.value.exportHtml(resContent.html);
// console.log('reshtml')
// console.log(reshtml)
if(form.exchange_summary=="<p><br></p>"){
form.exchange_summary==''
}
//form.exchange_summary = reshtml=="<p><br></p>"?'':reshtml;
if(exchange_id.value){
api.updateExchange(exchange_id.value,form).then((res) => {
uni.showToast({
@ -1281,10 +1370,7 @@ const HandleAddVideo = async (file) => {
if (res.statusCode === 204) {
let url = host + "/" + dir + filename + imgType;
console.log(editorCtx);
let imgUrl =videoface;
const fileThumbnail = await editorCtx.createCoverThumbnail(
imgUrl
);
const fileThumbnail = await editorCtx.createCoverThumbnail(videoface.value);
resolve([
{
videoUrl: url,
@ -1303,7 +1389,7 @@ const HandleAddVideo = async (file) => {
});
});
if (videos) {
uni.hideLoading();
//uni.hideLoading();
uni.showToast({ title: "添加视频成功", icon: "success" });
} else {
uni.showToast({ title: "添加视频失败", icon: "error" });
@ -1501,27 +1587,16 @@ onReady(()=>{
type: "loading",
title: "正在加载",
message: "正在加载",
duration:1000
duration:1500
})
})
onLoad((optoions) => {
onLoad((options) => {
if(optoions.exchange_id){
exchange_id.value=optoions.exchange_id;
console.log(1111)
console.log(exchange_id.value)
if(options.exchange_id){
exchange_id.value=options.exchange_id;
}
//getDraftList();
});
// const previewImg = () => {
// uni.previewImage({
// current: "https://example.com/image1.jpg",
// urls: ["https://example.com/image1.jpg", "https://example.com/image2.jpg"],
// });
// };
</script>
<style lang='scss' scoped>
@ -1785,9 +1860,10 @@ onLoad((optoions) => {
}
}
#editor {
position:relative;
position:relative;
z-index:2;
padding: 0 10rpx;
min-height:600rpx;
min-height:600rpx;
.editorcon{
position: absolute;
top:0;
@ -1797,12 +1873,17 @@ position:relative;
opacity:1
}
.editorcon.active{
opacity:0
opacity:0;
}
.infoContent{
position: relative;
z-index:2;
background: #fff;
margin:0 32rpx;
word-break: break-all;
word-wrap: break-word;
word-break: break-all;
/* position: relative;
z-index:2; */
}
@ -1824,7 +1905,7 @@ min-height: 600rpx;
top:0;
width:100%;
bottom:0;
z-index:1;
z-index:-1;
opacity:1
}
.editorcon.active{
@ -1832,7 +1913,8 @@ min-height: 600rpx;
}
.resultContent{
margin:0 32rpx;
word-break: break-all;
word-wrap: break-word;
word-break: break-all;
}
.mask{
opacity: 0;
@ -2159,9 +2241,9 @@ min-height: 600rpx;
display: flex;
align-items: center;
justify-content: center;
margin-right: 25rpx;
}
.vote {
margin-left: 25rpx;
width: 162rpx;
height: 86rpx;
background: rgba(0, 0, 0, 0);

View File

@ -63,7 +63,7 @@
<script setup>
import { ref, reactive } from "vue";
import { onLoad } from "@dcloudio/uni-app";
const src = ref("https://wx.igandan.com/hcp/toRegister?fromType=wx");
const src = ref("https://dev-wx.igandan.com/hcp/toRegister?fromType=wx");
const model = reactive({
name: "",
});
@ -141,7 +141,7 @@ onLoad(() => {
const { envVersion } = uni.getAccountInfoSync().miniProgram;
console.log(envVersion)
if (envVersion == "release") {
src.value = "https://wx.igandan.com/hcp/toRegister";
src.value = "https://wx.igandan.com/hcp/toRegister?fromType=weChat";
} else {
src.value = "https://dev-wx.igandan.com/hcp/toRegister?fromType=weChat";
}

View File

@ -152,6 +152,7 @@
class="column"
v-for="item in labelObj.list1"
:key="item.app_iden"
v-show="item.label_name!='热门话题'"
>
<up-radio
activeColor="#3CC7C0 "

View File

@ -11,7 +11,7 @@
<template #top>
<navBarSearch
:searchWord="keyWord"
:navName="'肝胆相照病例交流园地'"
:navName="navName"
@changeWord="changeWord"
></navBarSearch>
<!-- <view class="bar"></view> -->
@ -95,8 +95,9 @@
>
<view
:key="unit"
class="imgcell"
v-for="unit in item.exchange_content_image"
v-for="unit in item.exchange_content_image.splice(0,3)"
>
<up--image
:src="unit"
@ -119,7 +120,7 @@
>
<video
:key="index"
v-for="(videoCell, index) in item.exchange_content_video"
v-for="(videoCell, index) in item.exchange_content_video.slice(0,1)"
class="myVideo"
:src="videoCell"
@error="videoErrorCallback"
@ -127,10 +128,10 @@
></video>
</view>
</view>
<view class="tagbox" @click="goDetail(item.exchange_id)" v-if="item.label && item.label.length > 0">
<view class="tagbox" @click="goDetail(item.exchange_id)" v-if="item.exchange_label">
<view
class="tag"
v-for="cell in item.label"
v-for="cell in item.exchange_label"
:key="cell.exchange_label_id"
>{{ cell.label_name }}</view
>
@ -223,6 +224,7 @@
class="column"
v-for="item in labelObj.list1"
:key="item.app_iden"
v-show="item.label_name!='热门话题'"
>
<up-radio
activeColor="#3CC7C0 "
@ -325,6 +327,7 @@ const user_id = ref("");
const showModal=ref(false);
const showDeal=ref(false);
const is_selected = ref(0);
const navName=ref('肝胆相照病例交流园地')
const isMine=ref(false)
const paging = ref(null);
const dataList = ref([]);
@ -561,6 +564,7 @@ onLoad((options) => {
}
if(options.is_selected){
is_selected.value = options.is_selected;
navName.value="肝胆相照精选病例交流"
}
if(options.type=="mine"){
isMine.value=true;
@ -568,6 +572,7 @@ onLoad((options) => {
if(options.from=="talkHome"){
showNum.value=true;
}
// if(options)
getCaseLabel(1,0)
});
onShow(()=>{

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 174 KiB

File diff suppressed because one or more lines are too long

View File

@ -49,20 +49,22 @@ export function parseHtmlWithVideo(richText) {
* @returns {Promise} 转换后的富文本 注意异步处理
*/
export async function replaceVideoWithImageRender(richText, customCallback) {
console.log(1);
// 正则表达式用于匹配 <video> 标签以及其内部的 <source> 标签
const videoRegex = /<video\s+([^>]+)>(.*?)<\/video>/gi;
console.log(2);
// 找到所有的 <video> 标签
const matches = [];
let match;
while ((match = videoRegex.exec(richText)) !== null) {
matches.push(match);
}
console.log(3);
// 并行处理每个 <video> 标签,生成对应的缩略图
const replacements = await Promise.all(
matches.map(async (match) => {
console.log(5);
const [fullMatch, attributes, content] = match;
// 匹配 <source> 标签中的 src 属性
@ -75,28 +77,34 @@ export async function replaceVideoWithImageRender(richText, customCallback) {
}
// 生成视频封面图
console.log('5-1')
let thumbnailRes
if (customCallback) thumbnailRes = await customCallback(videoUrl) // 自定义封面处理
if (!thumbnailRes) thumbnailRes = config.video_thumbnail // 无效值则默认封面处理
//if (customCallback) thumbnailRes = await customCallback(videoUrl)
console.log('5-2')
// 自定义封面处理
//if (!thumbnailRes) thumbnailRes = config.video_thumbnail // 无效值则默认封面处理
console.log('5-3')
thumbnailRes="https://caseplatform.oss-cn-beijing.aliyuncs.com/prod/static/shipinfengmian.jpg"
// 过滤掉不需要的属性,例如 controls
const filteredAttributes = attributes
.split(/\s+/)
.filter(attr => !attr.startsWith('controls'))
.join(' ');
.join(' ').replace('src=','').replace("").replaceAll('width="100%"','').replaceAll('"','').replace(/\s+/g, "");;
console.log('5-4')
// 构建新的 img 标签,继承 video 的属性(除了 controls并添加 data-custom 属性
const imgTag = `<img ${filteredAttributes} src="${thumbnailRes}" data-custom="url=${videoUrl}" />`;
const imgTag = `<img src="${thumbnailRes}" data-custom="url=${filteredAttributes}">`;
console.log(6);
return { fullMatch, imgTag };
}));
console.log(7);
// 使用 replacements 替换原始的 <video> 标签
let result = richText;
for (const { fullMatch, imgTag } of replacements) {
console.log(8);
result = result.replace(fullMatch, imgTag);
}
console.log("打印结果2")
console.log(result)
return result;
}

View File

@ -307,21 +307,35 @@ export default {
* @returns {void}
*/
this.editorCtx.initHtml = async (html, customCallback) => {
console.log('打印html');
console.log(html);
let transHtml = await replaceVideoWithImageRender(html, customCallback)
console.log('transHtml')
console.log(transHtml);
// #ifdef APP || H5
this.editorCtx.changePasteMode('text') // text
// #endif
setTimeout(() => {
this.editorCtx.setContents({
html: transHtml,
success: () => {
console.log('成功了')
// input
this.editorCtx.changeInput()
// #ifdef APP || H5
if (this.pasteMode == 'origin') this.editorCtx.changePasteMode('origin')
// #endif
this.editorCtx.blur();
}
},
fail:(err)=>{
console.log('失败了')
uni.showToast({
title:err,
icon:'none'
})
}
})
})
}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script setup>\r\n\timport { onLaunch,onShow,onHide } from '@dcloudio/uni-app'\r\n\tonLaunch(()=>{\r\n\t\tconsole.log('App Launch')\r\n\t});\r\n\tonShow(()=>{\r\n\t\tconsole.log('App Show')\r\n\t\t\r\n\t});\r\n\tonHide(()=>{\r\n\t\tconsole.log('App Hide')\r\n\t});\r\n</script>\r\n\r\n<style>\r\n\t\r\n\t/*每个页面公共css */\r\n\t/* #ifdef H5 */\r\n\t*{\r\n\t\tmargin: 0;\r\n\t\tpadding: 0;\r\n\t}\r\n\tuni-page-head {\r\n\t\tdisplay: none;\r\n\t}\r\n\t/* #endif */\r\n\twx-button:after{\r\n\t\tborder: none;\r\n\t}\r\n.ellipsis-two-lines {\r\n display: -webkit-box;\r\n -webkit-box-orient: vertical;\r\n -webkit-line-clamp: 2;\r\n overflow: hidden;\r\n}\r\n.back{\r\n\tmargin-top: -8rpx;\r\n\tpadding:0 15rpx 15rpx 15rpx;\r\n}\r\n.ellipsis-one-lines {\r\n\toverflow: hidden;\r\n\twhite-space: nowrap;\r\n\ttext-overflow: ellipsis;\r\n}\r\n/* #ifdef H5 */\r\n.zp-container{\r\n\tz-index: 0!important;\r\n}\r\n/* #endif */\r\n.u-image{\r\n\tbackground: none!important;\r\n}\r\n.u-steps-item__line{\r\n\theight:36px!important;\r\n}\r\n.casesdown.active{\r\n\tcolor:#3CC7C0!important;\r\n}\r\n.u-dropdown__menu__item__arrow--rotate .uicon-arrow-down{\r\n\tcolor: #3cc7c0 !important;\r\n}\r\n</style>","import App from './App'\nimport uviewPlus, { setConfig } from 'uview-plus'\r\n// #ifdef H5\r\nimport VConsole from 'vconsole';\nconst vConsole = new VConsole();\r\n// #endif\n// #ifndef VUE3\nimport Vue from 'vue'\nimport './uni.promisify.adaptor'\nVue.config.productionTip = false\nApp.mpType = 'app'\nconst app = new Vue({\n ...App\n})\napp.$mount()\n// #endif\n// #ifdef VUE3\nimport { createSSRApp } from 'vue'\nexport function createApp() {\n const app = createSSRApp(App)\n \n app.use(uviewPlus, async() => {\t \n \t\treturn {\n \t\t\toptions: {\n \t\t\t\t// 修改$u.config对象的属性\n \t\t\t\tconfig: {\n \t\t\t\t\t// 修改默认单位为rpx相当于执行 uni.$u.config.unit = 'rpx'\n \t\t\t\t\tunit: 'rpx'\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t})\n\t\n return {\n app\n }\n}\n// #endif\n"],"names":["onLaunch","uni","onShow","onHide","createSSRApp","App","uviewPlus"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAECA,kBAAAA,SAAS,MAAI;AACZC,oBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,IAC1B,CAAE;AACDC,kBAAAA,OAAO,MAAI;AACVD,oBAAAA,MAAA,MAAA,OAAA,gBAAY,UAAU;AAAA,IAExB,CAAE;AACDE,kBAAAA,OAAO,MAAI;AACVF,oBAAAA,MAAA,MAAA,OAAA,iBAAY,UAAU;AAAA,IACxB,CAAE;;;;;ACOK,SAAS,YAAY;AAC1B,QAAM,MAAMG,cAAY,aAACC,SAAG;AAE5B,MAAI,IAAIC,cAAAA,WAAW,YAAW;AAC5B,WAAO;AAAA,MACN,SAAS;AAAA;AAAA,QAER,QAAQ;AAAA;AAAA,UAEP,MAAM;AAAA,QACN;AAAA,MACD;AAAA,IACD;AAAA,EACL,CAAI;AAEF,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"}
{"version":3,"file":"app.js","sources":["App.vue","main.js"],"sourcesContent":["<script setup>\r\n\timport { onLaunch,onShow,onHide } from '@dcloudio/uni-app'\r\n\tonLaunch(()=>{\r\n\t\tconsole.log('App Launch')\r\n\t});\r\n\tonShow(()=>{\r\n\t\tconsole.log('App Show')\r\n\t\t\r\n\t});\r\n\tonHide(()=>{\r\n\t\tconsole.log('App Hide')\r\n\t});\r\n</script>\r\n\r\n<style>\r\n\t\r\n\t/*每个页面公共css */\r\n\t/* #ifdef H5 */\r\n\t*{\r\n\t\tmargin: 0;\r\n\t\tpadding: 0;\r\n\t}\r\n\tuni-page-head {\r\n\t\tdisplay: none;\r\n\t}\r\n\t/* #endif */\r\n\twx-button:after{\r\n\t\tborder: none;\r\n\t}\r\n.ellipsis-two-lines {\r\n display: -webkit-box;\r\n -webkit-box-orient: vertical;\r\n -webkit-line-clamp: 2;\r\n overflow: hidden;\r\n}\r\n.back{\r\n\t/* margin-top: -8rpx; */\r\n\tpadding:0 20rpx 0rpx 20rpx;\r\n}\r\n.ellipsis-one-lines {\r\n\toverflow: hidden;\r\n\twhite-space: nowrap;\r\n\ttext-overflow: ellipsis;\r\n}\r\n/* #ifdef H5 */\r\n.zp-container{\r\n\tz-index: 0!important;\r\n}\r\n/* #endif */\r\n.u-image{\r\n\tbackground: none!important;\r\n}\r\n.u-steps-item__line{\r\n\theight:36px!important;\r\n}\r\n.casesdown.active{\r\n\tcolor:#3CC7C0!important;\r\n}\r\n.u-dropdown__menu__item__arrow--rotate .uicon-arrow-down{\r\n\tcolor: #3cc7c0 !important;\r\n}\r\n.tagbox{\r\n\tflex-wrap: wrap;\r\n}\r\n.tagbox .tag{\r\n\tmargin:5rpx 0 ;\r\n}\r\n</style>","import App from './App'\nimport uviewPlus, { setConfig } from 'uview-plus'\r\n// #ifdef H5\r\nimport VConsole from 'vconsole';\nconst vConsole = new VConsole();\r\n// #endif\n// #ifndef VUE3\nimport Vue from 'vue'\nimport './uni.promisify.adaptor'\nVue.config.productionTip = false\nApp.mpType = 'app'\nconst app = new Vue({\n ...App\n})\napp.$mount()\n// #endif\n// #ifdef VUE3\nimport { createSSRApp } from 'vue'\nexport function createApp() {\n const app = createSSRApp(App)\n \n app.use(uviewPlus, async() => {\t \n \t\treturn {\n \t\t\toptions: {\n \t\t\t\t// 修改$u.config对象的属性\n \t\t\t\tconfig: {\n \t\t\t\t\t// 修改默认单位为rpx相当于执行 uni.$u.config.unit = 'rpx'\n \t\t\t\t\tunit: 'rpx'\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t})\n\t\n return {\n app\n }\n}\n// #endif\n"],"names":["onLaunch","uni","onShow","onHide","createSSRApp","App","uviewPlus"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAECA,kBAAAA,SAAS,MAAI;AACZC,oBAAAA,MAAA,MAAA,OAAA,gBAAY,YAAY;AAAA,IAC1B,CAAE;AACDC,kBAAAA,OAAO,MAAI;AACVD,oBAAAA,MAAA,MAAA,OAAA,gBAAY,UAAU;AAAA,IAExB,CAAE;AACDE,kBAAAA,OAAO,MAAI;AACVF,oBAAAA,MAAA,MAAA,OAAA,iBAAY,UAAU;AAAA,IACxB,CAAE;;;;;ACOK,SAAS,YAAY;AAC1B,QAAM,MAAMG,cAAY,aAACC,SAAG;AAE5B,MAAI,IAAIC,cAAAA,WAAW,YAAW;AAC5B,WAAO;AAAA,MACN,SAAS;AAAA;AAAA,QAER,QAAQ;AAAA;AAAA,UAEP,MAAM;AAAA,QACN;AAAA,MACD;AAAA,IACD;AAAA,EACL,CAAI;AAEF,SAAO;AAAA,IACL;AAAA,EACD;AACH;;;"}

View File

@ -1 +1 @@
{"version":3,"file":"assets.js","sources":["static/video.png","static/sick.png","static/hospital.png","static/doctor.png","static/photo.png","static/add.png","static/videoicon.png","static/vote.png","static/voteon.png","static/draft.png","static/videoface.jpg","static/switch.png","static/arrowright.png","static/caseIcon.png","static/headImg.png","static/cert.png","static/myFile.png","static/myDownload.png","static/myCollect.png","static/myHospital.png","static/myJoin.png","static/myTalk.png","static/collectOn.png","static/collect.png","static/shang.png","static/chat.png","static/uploadImg.png","static/comment_icon.png","static/benren.png","static/default.png","static/group.png","static/ku.png","static/ku_on.png","static/group_on.png","static/talk.png","static/talk_on.png","static/logo.png","static/navbg.png"],"sourcesContent":["export default \"__VITE_ASSET__e338fa6d__\"","export default \"__VITE_ASSET__33a3f11a__\"","export default \"__VITE_ASSET__99f8d6c7__\"","export default \"__VITE_ASSET__051e2535__\"","export default \"__VITE_ASSET__fd0b1873__\"","export default \"__VITE_ASSET__7afdfa25__\"","export default \"__VITE_ASSET__f335dad1__\"","export default \"__VITE_ASSET__bc53d6e9__\"","export default \"__VITE_ASSET__00e08abe__\"","export default \"__VITE_ASSET__8a9f1cf1__\"","export default \"__VITE_ASSET__f0d1582c__\"","export default \"__VITE_ASSET__34b6a406__\"","export default \"__VITE_ASSET__04d264d8__\"","export default \"__VITE_ASSET__3981e088__\"","export default \"__VITE_ASSET__2dc1225f__\"","export default \"__VITE_ASSET__968fe4e2__\"","export default \"__VITE_ASSET__2a791e4d__\"","export default \"__VITE_ASSET__02d8e89c__\"","export default \"__VITE_ASSET__018fc400__\"","export default \"__VITE_ASSET__f708625e__\"","export default \"__VITE_ASSET__219bc93e__\"","export default \"__VITE_ASSET__07ef65cb__\"","export default \"__VITE_ASSET__60605a3f__\"","export default \"__VITE_ASSET__1b1db7a1__\"","export default \"__VITE_ASSET__0d05d4c1__\"","export default \"__VITE_ASSET__b055dcc3__\"","export default \"__VITE_ASSET__66769c53__\"","export default \"__VITE_ASSET__27070269__\"","export default \"__VITE_ASSET__beb38987__\"","export default \"__VITE_ASSET__f5b8f828__\"","export default \"__VITE_ASSET__df35ad17__\"","export default \"__VITE_ASSET__c0792a8a__\"","export default \"__VITE_ASSET__514334a4__\"","export default \"__VITE_ASSET__40793151__\"","export default \"__VITE_ASSET__977b04a2__\"","export default \"__VITE_ASSET__e6204d41__\"","export default \"__VITE_ASSET__8ef1dcc4__\"","export default \"__VITE_ASSET__e0ede23c__\""],"names":[],"mappings":";AAAA,MAAe,aAAA;ACAf,MAAe,UAAA;ACAf,MAAe,cAAA;ACAf,MAAe,YAAA;ACAf,MAAe,WAAA;ACAf,MAAe,SAAA;ACAf,MAAe,WAAA;ACAf,MAAe,UAAA;ACAf,MAAe,YAAA;ACAf,MAAe,WAAA;ACAf,MAAe,YAAA;ACAf,MAAe,YAAA;ACAf,MAAe,gBAAA;ACAf,MAAe,UAAA;ACAf,MAAe,UAAA;ACAf,MAAe,UAAA;ACAf,MAAe,SAAA;ACAf,MAAe,aAAA;ACAf,MAAe,YAAA;ACAf,MAAe,aAAA;ACAf,MAAe,SAAA;ACAf,MAAe,SAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,WAAA;ACAf,MAAe,UAAA;ACAf,MAAe,YAAA;ACAf,MAAe,aAAA;ACAf,MAAe,UAAA;ACAf,MAAe,MAAA;ACAf,MAAe,QAAA;ACAf,MAAe,KAAA;ACAf,MAAe,QAAA;ACAf,MAAe,WAAA;ACAf,MAAe,OAAA;ACAf,MAAe,UAAA;ACAf,MAAe,UAAA;ACAf,MAAe,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
{"version":3,"file":"assets.js","sources":["static/video.png","static/sick.png","static/hospital.png","static/doctor.png","static/photo.png","static/add.png","static/videoicon.png","static/vote.png","static/voteon.png","static/draft.png","static/switch.png","static/arrowright.png","static/caseIcon.png","static/headImg.png","static/cert.png","static/myFile.png","static/myDownload.png","static/myCollect.png","static/myHospital.png","static/myJoin.png","static/myTalk.png","static/collectOn.png","static/collect.png","static/shang.png","static/chat.png","static/uploadImg.png","static/comment_icon.png","static/benren.png","static/default.png","static/group.png","static/ku.png","static/ku_on.png","static/group_on.png","static/talk.png","static/talk_on.png","static/logo.png","static/navbg.png"],"sourcesContent":["export default \"__VITE_ASSET__e338fa6d__\"","export default \"__VITE_ASSET__33a3f11a__\"","export default \"__VITE_ASSET__99f8d6c7__\"","export default \"__VITE_ASSET__051e2535__\"","export default \"__VITE_ASSET__fd0b1873__\"","export default \"__VITE_ASSET__7afdfa25__\"","export default \"__VITE_ASSET__f335dad1__\"","export default \"__VITE_ASSET__bc53d6e9__\"","export default \"__VITE_ASSET__00e08abe__\"","export default \"__VITE_ASSET__8a9f1cf1__\"","export default \"__VITE_ASSET__34b6a406__\"","export default \"__VITE_ASSET__04d264d8__\"","export default \"__VITE_ASSET__3981e088__\"","export default \"__VITE_ASSET__2dc1225f__\"","export default \"__VITE_ASSET__968fe4e2__\"","export default \"__VITE_ASSET__2a791e4d__\"","export default \"__VITE_ASSET__02d8e89c__\"","export default \"__VITE_ASSET__018fc400__\"","export default \"__VITE_ASSET__f708625e__\"","export default \"__VITE_ASSET__219bc93e__\"","export default \"__VITE_ASSET__07ef65cb__\"","export default \"__VITE_ASSET__60605a3f__\"","export default \"__VITE_ASSET__1b1db7a1__\"","export default \"__VITE_ASSET__0d05d4c1__\"","export default \"__VITE_ASSET__b055dcc3__\"","export default \"__VITE_ASSET__66769c53__\"","export default \"__VITE_ASSET__27070269__\"","export default \"__VITE_ASSET__beb38987__\"","export default \"__VITE_ASSET__f5b8f828__\"","export default \"__VITE_ASSET__df35ad17__\"","export default \"__VITE_ASSET__c0792a8a__\"","export default \"__VITE_ASSET__514334a4__\"","export default \"__VITE_ASSET__40793151__\"","export default \"__VITE_ASSET__977b04a2__\"","export default \"__VITE_ASSET__e6204d41__\"","export default \"__VITE_ASSET__8ef1dcc4__\"","export default \"__VITE_ASSET__e0ede23c__\""],"names":[],"mappings":";AAAA,MAAe,aAAA;ACAf,MAAe,UAAA;ACAf,MAAe,cAAA;ACAf,MAAe,YAAA;ACAf,MAAe,WAAA;ACAf,MAAe,SAAA;ACAf,MAAe,WAAA;ACAf,MAAe,UAAA;ACAf,MAAe,YAAA;ACAf,MAAe,WAAA;ACAf,MAAe,YAAA;ACAf,MAAe,gBAAA;ACAf,MAAe,UAAA;ACAf,MAAe,UAAA;ACAf,MAAe,UAAA;ACAf,MAAe,SAAA;ACAf,MAAe,aAAA;ACAf,MAAe,YAAA;ACAf,MAAe,aAAA;ACAf,MAAe,SAAA;ACAf,MAAe,SAAA;ACAf,MAAe,eAAA;ACAf,MAAe,aAAA;ACAf,MAAe,WAAA;ACAf,MAAe,UAAA;ACAf,MAAe,YAAA;ACAf,MAAe,aAAA;ACAf,MAAe,UAAA;ACAf,MAAe,MAAA;ACAf,MAAe,QAAA;ACAf,MAAe,KAAA;ACAf,MAAe,QAAA;ACAf,MAAe,WAAA;ACAf,MAAe,OAAA;ACAf,MAAe,UAAA;ACAf,MAAe,UAAA;ACAf,MAAe,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"version":3,"file":"backNav.js","sources":["components/backNav/backNav.vue","../../software/HBuilderX.4.23.2024070804/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovR2l0V29ya1BsYWNlL2Nhc2VEYXRhQmFzZS9jb21wb25lbnRzL2JhY2tOYXYvYmFja05hdi52dWU"],"sourcesContent":["<template>\r\n <view class=\"navbox\">\r\n <view class=\"bg\"></view>\r\n <view class=\"namebox\">\r\n <view class=\"back\" @click=\"goBack\">\r\n <u-icon name=\"arrow-left\" color=\"#000\" size=\"24\"></u-icon>\r\n </view>\r\n <!-- <view class=\"logo\">logo</view> -->\r\n <view class=\"name\">\r\n\t {{ navName }}\r\n\t\t</view>\r\n </view>\r\n \r\n </view>\r\n</template>\r\n\r\n<script setup>\r\nconst props = defineProps({\r\n navName: {\r\n type: String,\r\n default: \"我的\",\r\n }\r\n\r\n});\r\nconst goBack = () => {\r\n uni.navigateBack({\r\n delta: 1,\r\n });\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.navbox {\r\n padding-bottom: 20rpx;\r\n background-color: #f9fafb;\r\n position: relative;\r\n height:200rpx;\r\n background: radial-gradient(\r\n 60% 90% at 4% 2%,\r\n #43c9c3 0%,\r\n rgba(255, 255, 255, 0) 100%\r\n );\r\n .bg {\r\n z-index: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: 100%;\r\n position: absolute;\r\n background: radial-gradient(\r\n 43% 90% at 84% 6%,\r\n #ffd6c9 0%,\r\n rgba(255, 255, 255, 0) 100%\r\n );\r\n}\r\n.namebox {\r\n padding-top: 102rpx;\r\n justify-content: center;\r\n margin: 0rpx 30rpx 0rpx;\r\n position: relative;\r\n display: flex;\r\n .back{\r\n position: absolute;\r\n left: 0;\r\n }\r\n .name {\r\n margin-left: 16rpx;\r\n font-size: 30rpx;\r\n color: #111827;\r\n }\r\n}\r\n.search {\r\n margin: 40rpx 30rpx 0rpx;\r\n display: flex;\r\n\r\n align-items: center;\r\n justify-content: space-between;\r\n .searchwrap {\r\n display: flex;\r\n align-items: center;\r\n flex: 1;\r\n padding-left: 28rpx;\r\n margin-right: 23rpx;\r\n height: 80rpx;\r\n background: #fbfbfb;\r\n box-shadow: 0px 4rpx 10rpx 0px rgba(153, 153, 153, 0.5);\r\n border-radius: 40rpx;\r\n\r\n .ipt {\r\n margin-left: 15rpx;\r\n font-size: 28rpx;\r\n }\r\n }\r\n}\r\n}\r\n\r\n</style>","import Component from 'D:/GitWorkPlace/caseDataBase/components/backNav/backNav.vue'\nwx.createComponent(Component)"],"names":["uni"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,UAAM,SAAS,MAAM;AACnBA,oBAAAA,MAAI,aAAa;AAAA,QACf,OAAO;AAAA,MACX,CAAG;AAAA,IACH;;;;;;;;;;;;;;;AC3BA,GAAG,gBAAgB,SAAS;"}
{"version":3,"file":"backNav.js","sources":["components/backNav/backNav.vue","../../software/HBuilderX.4.23.2024070804/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovR2l0V29ya1BsYWNlL2Nhc2VEYXRhQmFzZS9jb21wb25lbnRzL2JhY2tOYXYvYmFja05hdi52dWU"],"sourcesContent":["<template>\r\n <view class=\"navbox\">\r\n <view class=\"bg\"></view>\r\n <view class=\"namebox\">\r\n <view class=\"back\" @click=\"goBack\">\r\n <u-icon name=\"arrow-left\" color=\"#000\" size=\"24\"></u-icon>\r\n </view>\r\n <!-- <view class=\"logo\">logo</view> -->\r\n <view class=\"name\">\r\n\t {{ navName }}\r\n\t\t</view>\r\n </view>\r\n \r\n </view>\r\n</template>\r\n\r\n<script setup>\r\nconst props = defineProps({\r\n navName: {\r\n type: String,\r\n default: \"我的\",\r\n }\r\n\r\n});\r\nconst goBack = () => {\r\n uni.navigateBack({\r\n delta: 1,\r\n });\r\n};\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.navbox {\r\n padding-bottom: 20rpx;\r\n background-color: #f9fafb;\r\n position: relative;\r\n height:200rpx;\r\n background: radial-gradient(\r\n 60% 90% at 4% 2%,\r\n #43c9c3 0%,\r\n rgba(255, 255, 255, 0) 100%\r\n );\r\n .bg {\r\n z-index: 0;\r\n top: 0;\r\n bottom: 0;\r\n width: 100%;\r\n position: absolute;\r\n background: radial-gradient(\r\n 43% 90% at 84% 6%,\r\n #ffd6c9 0%,\r\n rgba(255, 255, 255, 0) 100%\r\n );\r\n}\r\n.namebox {\r\n /* #ifdef H5 */\r\n padding-top: 51rpx;\r\n /* #endif */\r\n /* #ifdef MP-WEIXIN */\r\n padding-top: 102rpx;\r\n /* #endif */\r\n \r\n justify-content: center;\r\n margin: 0rpx 30rpx 0rpx;\r\n position: relative;\r\n display: flex;\r\n .back{\r\n position: absolute;\r\n left: 0;\r\n }\r\n .name {\r\n margin-left: 16rpx;\r\n font-size: 30rpx;\r\n color: #111827;\r\n }\r\n}\r\n.search {\r\n margin: 40rpx 30rpx 0rpx;\r\n display: flex;\r\n\r\n align-items: center;\r\n justify-content: space-between;\r\n .searchwrap {\r\n display: flex;\r\n align-items: center;\r\n flex: 1;\r\n padding-left: 28rpx;\r\n margin-right: 23rpx;\r\n height: 80rpx;\r\n background: #fbfbfb;\r\n box-shadow: 0px 4rpx 10rpx 0px rgba(153, 153, 153, 0.5);\r\n border-radius: 40rpx;\r\n\r\n .ipt {\r\n margin-left: 15rpx;\r\n font-size: 28rpx;\r\n }\r\n }\r\n}\r\n}\r\n\r\n</style>","import Component from 'D:/GitWorkPlace/caseDataBase/components/backNav/backNav.vue'\nwx.createComponent(Component)"],"names":["uni"],"mappings":";;;;;;;;;;;;;;;;;;;AAwBA,UAAM,SAAS,MAAM;AACnBA,oBAAAA,MAAI,aAAa;AAAA,QACf,OAAO;AAAA,MACX,CAAG;AAAA,IACH;;;;;;;;;;;;;;;AC3BA,GAAG,gBAAgB,SAAS;"}

View File

@ -0,0 +1 @@
{"version":3,"file":"baoliVideo.js","sources":["components/baoliVideo/baoliVideo.vue","../../software/HBuilderX.4.23.2024070804/HBuilderX/plugins/uniapp-cli-vite/uniComponent:/RDovR2l0V29ya1BsYWNlL2Nhc2VEYXRhQmFzZS9jb21wb25lbnRzL2Jhb2xpVmlkZW8vYmFvbGlWaWRlby52dWU"],"sourcesContent":["<template>\r\n <div id=\"player\"></div>\r\n</template>\r\n\r\n<script setup>\nimport { onMounted, onUnmounted, ref,watch} from 'vue';\r\nconst playJs=ref(\"//player.polyv.net/script/player.js\");\r\nconst player=ref(null);\r\nconst props=defineProps({\r\n vid:{\r\n type: String,\r\n default:''\r\n }\r\n})\r\nconst user_id=ref('');\r\n\t watch(()=>props.vid,()=>{\r\n\t\t loadPlayerScript(loadPlayer);\r\n\t })\r\n const loadPlayerScript=(callback)=> {\r\n if (!window.polyvLivePlayer) {\r\n const myScript = document.createElement('script');\r\n myScript.setAttribute('src', playJs.value);\r\n myScript.onload = callback;\r\n document.body.appendChild(myScript);\r\n } else {\r\n callback();\r\n }\r\n };\r\n const loadPlayer=()=> {\r\n\t\t let userInfo=uni.getStorageSync('userInfo');\r\n\t\t if(userInfo.user_id){\r\n\t\t \t user_id.value=userInfo.user_id;\r\n\t\t }\r\n\t\t\r\n const polyvLivePlayer = window.polyvLivePlayer;\r\n player.value = polyvPlayer({\r\n wrap: '#player',\r\n width: '100%',\r\n height: 250,\r\n\t\tforceH5:true,\r\n\t\tdf:3,\r\n\t\t uid:user_id.vlaue,\r\n vid: props.vid,\r\n });\r\n }\r\n onUnmounted(()=>{\r\n player.value.destroy();\r\n })\r\n</script>\r\n\r\n<style>\r\n\r\n</style>","import Component from 'D:/GitWorkPlace/caseDataBase/components/baoliVideo/baoliVideo.vue'\nwx.createComponent(Component)"],"names":["ref","watch","uni","onUnmounted","Component"],"mappings":";;;;;;;;;;;AAMA,UAAM,SAAOA,cAAAA,IAAI,qCAAqC;AACtD,UAAM,SAAOA,cAAAA,IAAI,IAAI;AACrB,UAAM,QAAM;AAMZ,UAAM,UAAQA,cAAAA,IAAI,EAAE;AACjBC,wBAAM,MAAI,MAAM,KAAI,MAAI;AACtB,uBAAiB,UAAU;AAAA,IAChC,CAAI;AACD,UAAM,mBAAiB,CAAC,aAAY;AACjC,UAAI,CAAC,OAAO,iBAAiB;AAC3B,cAAM,WAAW,SAAS,cAAc,QAAQ;AAChD,iBAAS,aAAa,OAAO,OAAO,KAAK;AACzC,iBAAS,SAAS;AAClB,iBAAS,KAAK,YAAY,QAAQ;AAAA,MAC1C,OAAa;AACL;MACD;AAAA,IACP;AACK,UAAM,aAAW,MAAK;AACxB,UAAI,WAASC,cAAAA,MAAI,eAAe,UAAU;AAC1C,UAAG,SAAS,SAAQ;AACjB,gBAAQ,QAAM,SAAS;AAAA,MACzB;AAGI,aAAO,QAAQ,YAAY;AAAA,QAC3B,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACd,SAAQ;AAAA,QACR,IAAG;AAAA,QACF,KAAI,QAAQ;AAAA,QACP,KAAK,MAAM;AAAA,MACnB,CAAO;AAAA,IACF;AACFC,kBAAAA,YAAY,MAAI;AACb,aAAO,MAAM;IACnB,CAAI;;;;;;AC9CJ,GAAG,gBAAgBC,SAAS;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"version":3,"file":"certImg.js","sources":["pages/certImg/certImg.vue","../../software/HBuilderX.4.23.2024070804/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvY2VydEltZy9jZXJ0SW1nLnZ1ZQ"],"sourcesContent":["<template>\r\n <backNav :navName=\"'病例收录证书'\"></backNav>\r\n <view class=\"imgbox\">\r\n <u--image\r\n :showLoading=\"true\"\r\n :src=\"src\"\r\n width=\"100%\"\r\n mode=\"widthFix\"\r\n ></u--image>\r\n </view>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref } from 'vue';\r\nimport { onLoad } from \"@dcloudio/uni-app\";\r\nimport backNav from \"@/components/backNav/backNav.vue\";\r\nconst src = ref('')\r\nonLoad((options) => {\r\n if(options.src){\r\n src.value = options.src;\r\n }else{\r\n src.value= 'https://cn.bing.com//th?id=OHR.SanMiguelAzores_ZH-CN2511982585_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp';\r\n }\r\n \r\n});\r\n</script>\r\n\r\n<style lang='scss' scoped>\r\n.imgbox{\r\n margin-top: -30rpx;\r\n}\r\n</style>\r\n","import MiniProgramPage from 'D:/GitWorkPlace/caseDataBase/pages/certImg/certImg.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","onLoad"],"mappings":";;;;;;;;;;AAeA,MAAM,UAAU,MAAW;;;;AAC3B,UAAM,MAAMA,cAAG,IAAC,EAAE;AAClBC,kBAAM,OAAC,CAAC,YAAY;AAChB,UAAG,QAAQ,KAAI;AACX,YAAI,QAAQ,QAAQ;AAAA,MAC5B,OAAS;AACF,YAAI,QAAO;AAAA,MACb;AAAA,IAEL,CAAC;;;;;;;;;;;;;;;;;ACvBD,GAAG,WAAW,eAAe;"}
{"version":3,"file":"certImg.js","sources":["pages/certImg/certImg.vue","../../software/HBuilderX.4.23.2024070804/HBuilderX/plugins/uniapp-cli-vite/uniPage:/cGFnZXMvY2VydEltZy9jZXJ0SW1nLnZ1ZQ"],"sourcesContent":["<template>\r\n <backNav :navName=\"'病例收录证书'\"></backNav>\r\n <view class=\"imgbox\">\r\n <u--image\r\n :showLoading=\"true\"\r\n :src=\"src\"\r\n width=\"100%\"\r\n mode=\"widthFix\"\r\n ></u--image>\r\n </view>\r\n</template>\r\n\r\n<script setup>\r\nimport { ref } from 'vue';\r\nimport { onLoad } from \"@dcloudio/uni-app\";\r\nimport backNav from \"@/components/backNav/backNav.vue\";\r\nconst src = ref('')\r\nonLoad((options) => {\r\n if(options.src){\r\n src.value = options.src;\r\n }else{\r\n src.value= 'https://cn.bing.com//th?id=OHR.SanMiguelAzores_ZH-CN2511982585_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp';\r\n }\r\n \r\n});\r\n</script>\r\n\r\n<style lang='scss' scoped>\r\n.imgbox{\r\n margin: -30rpx 30rpx 0;\r\n\toverflow-y: scroll;\r\n}\r\n</style>\r\n","import MiniProgramPage from 'D:/GitWorkPlace/caseDataBase/pages/certImg/certImg.vue'\nwx.createPage(MiniProgramPage)"],"names":["ref","onLoad"],"mappings":";;;;;;;;;;AAeA,MAAM,UAAU,MAAW;;;;AAC3B,UAAM,MAAMA,cAAG,IAAC,EAAE;AAClBC,kBAAM,OAAC,CAAC,YAAY;AAChB,UAAG,QAAQ,KAAI;AACX,YAAI,QAAQ,QAAQ;AAAA,MAC5B,OAAS;AACF,YAAI,QAAO;AAAA,MACb;AAAA,IAEL,CAAC;;;;;;;;;;;;;;;;;ACvBD,GAAG,WAAW,eAAe;"}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -41,7 +41,7 @@ const api = {
return utils_request.request("/exchange/collect/" + id, {}, "delete", false);
},
addVideoComment(id, data) {
return utils_request.request("/clinical/video/comment/" + id, data, "post", false, "application/json");
return utils_request.request("/clinical/video/comment/" + id, data, "post", true, "application/json");
},
delVideoComment(id) {
return utils_request.request("/clinical/video/comment/" + id, {}, "delete", false);
@ -53,7 +53,7 @@ const api = {
return utils_request.request("/clinical/video/comment/top/" + id, {}, "delete", false);
},
addArticleComment(id, data) {
return utils_request.request("/clinical/article/comment/" + id, data, "post", false, "application/json");
return utils_request.request("/clinical/article/comment/" + id, data, "post", true, "application/json");
},
delArticleComment(id) {
return utils_request.request("/clinical/article/comment/" + id, {}, "delete", false);

View File

@ -11,8 +11,8 @@ wx-button:after{
overflow: hidden;
}
.back{
margin-top: -8rpx;
padding:0 15rpx 15rpx 15rpx;
/* margin-top: -8rpx; */
padding:0 20rpx 0rpx 20rpx;
}
.ellipsis-one-lines {
overflow: hidden;
@ -31,4 +31,10 @@ wx-button:after{
.u-dropdown__menu__item__arrow--rotate .uicon-arrow-down{
color: #3cc7c0 !important;
}
.tagbox{
flex-wrap: wrap;
}
.tagbox .tag{
margin:5rpx 0 ;
}
page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}[data-c-h="true"]{display: none !important;}

View File

@ -9,7 +9,6 @@ const videoImg = "/static/videoicon.png";
const voteImg = "/static/vote.png";
const voteOnImg = "/static/voteon.png";
const draftImg = "/static/draft.png";
const videoface = "/static/videoface.jpg";
const switchImg = "/static/switch.png";
const arrowrightImg = "/static/arrowright.png";
const caseImg = "/static/caseIcon.png";
@ -72,7 +71,6 @@ exports.talk_on = talk_on;
exports.uploadImg = uploadImg;
exports.videoImg = videoImg$1;
exports.videoImg$1 = videoImg;
exports.videoface = videoface;
exports.voteImg = voteImg;
exports.voteOnImg = voteOnImg;
//# sourceMappingURL=../../.sourcemap/mp-weixin/common/assets.js.map

View File

@ -7319,7 +7319,7 @@ function isConsoleWritable() {
function initRuntimeSocketService() {
const hosts = "192.168.100.165,127.0.0.1";
const port = "8090";
const id = "mp-weixin_PmN5zi";
const id = "mp-weixin_pETpDa";
const lazy = typeof swan !== "undefined";
let restoreError = lazy ? () => {
} : initOnError();
@ -16768,6 +16768,7 @@ exports.e = e;
exports.error = error;
exports.f = f;
exports.formValidate = formValidate;
exports.getCurrentInstance = getCurrentInstance;
exports.getProperty = getProperty;
exports.getPx = getPx;
exports.getWindowInfo = getWindowInfo;
@ -16779,6 +16780,7 @@ exports.mixin = mixin;
exports.mixinUpload = mixinUpload;
exports.mpMixin = mpMixin;
exports.n = n;
exports.nextTick$1 = nextTick$1;
exports.o = o;
exports.onHide = onHide;
exports.onLaunch = onLaunch;

View File

@ -89,7 +89,6 @@ const _sfc_main = {
i: common_vendor.o(goMy),
j: common_vendor.p({
src: userHeadImg.value,
mode: "widthFix",
width: "62rpx",
height: "62rpx",
radius: "50%"

View File

@ -42,7 +42,7 @@ const _sfc_main = {
} else if (newVal === "hospital") {
placeholder.value = "输入医院名称";
} else if (newVal === "video") {
placeholder.value = "疾病名称、标题、作者搜索";
placeholder.value = "输入疾病名称、标题、作者搜索";
} else if (newVal === "article") {
placeholder.value = "搜索疾病、症状、医院";
} else if (newVal === "case") {
@ -50,7 +50,7 @@ const _sfc_main = {
} else if (newVal === "myCase") {
placeholder.value = "输入疾病名称、标题搜索";
} else if (newVal === "cert") {
placeholder.value = "疾病名称、标题搜索";
placeholder.value = "输入疾病名称、标题搜索";
}
}, { immediate: true });
common_vendor.watch(() => props.searchWord, (newVal) => {
@ -110,7 +110,6 @@ const _sfc_main = {
k: common_vendor.o(goMy),
l: common_vendor.p({
src: userHeadImg.value,
mode: "widthFix",
width: "62rpx",
height: "62rpx",
radius: "50%"

View File

@ -32,17 +32,21 @@ const _sfc_main = {
}
},
emits: ["closeEditor", "changeEditor"],
setup(__props, { emit: __emit }) {
const editorCtx = common_vendor.ref(null);
setup(__props, { expose: __expose, emit: __emit }) {
const instace = common_vendor.getCurrentInstance();
const PeditorCtx = common_vendor.ref(null);
const htmlContent = common_vendor.ref("");
const keyboardHeight = common_vendor.ref(0);
const videoface = common_vendor.ref("https://caseplatform.oss-cn-beijing.aliyuncs.com/prod/static/shipinfengmian.jpg");
const editorHeight = common_vendor.ref(300);
common_vendor.ref("病例信息");
const placeholder = common_vendor.ref("患者基本情况,检查结果,诊疗图片或视频");
const showTitle = common_vendor.ref(false);
const props = __props;
const showCanvas = common_vendor.ref(false);
common_vendor.watch(() => props.editorType, (newVal) => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:168", 11111111);
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:169", newVal);
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:181", 11111111);
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:182", newVal);
if (newVal == "info") {
placeholder.value = "患者基本情况,检查结果,诊疗图片或视频";
} else {
@ -70,33 +74,36 @@ const _sfc_main = {
showTitle.value = false;
};
const ready = (e) => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:197", e);
editorCtx.value = e;
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:210", e);
PeditorCtx.value = e;
if (props.editorType == "info") {
if (props.editorCotent) {
editorCtx.value.initHtml(props.editorCotent, async (videoUrl) => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:216", "peditor");
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:217", props.editorCotent);
PeditorCtx.value.initHtml(props.editorCotent, async (videoUrl) => {
let res = "";
const fox = common_assets.videoface;
res = await editorCtx.value.createCoverThumbnail(fox);
showEditor.value = false;
res = await PeditorCtx.value.createCoverThumbnail(videoface.value);
return res;
});
setTimeout(async () => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:231", "qaz");
let res = await PeditorCtx.value.getLastContent();
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:233", res);
}, 6e3);
} else {
let html = "<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/><br/>";
editorCtx.value.initHtml(html);
PeditorCtx.value.initHtml(html);
}
} else {
if (props.editorCotent) {
editorCtx.value.initHtml(props.editorCotent, async (videoUrl) => {
PeditorCtx.value.initHtml(props.editorCotent, async (videoUrl) => {
let res = "";
const fox = common_assets.videoface;
res = await editorCtx.value.createCoverThumbnail(fox);
showEditor.value = false;
res = await PeditorCtx.value.createCoverThumbnail(videoface.value);
return res;
});
} else {
let html = "";
editorCtx.value.initHtml(html);
PeditorCtx.value.initHtml(html);
}
}
common_vendor.index.hideLoading();
@ -105,17 +112,17 @@ const _sfc_main = {
emits("closeEditor");
});
const confirm = async () => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:252", "qqq");
const res = await editorCtx.value.getLastContent();
const res = await PeditorCtx.value.getLastContent();
let html = PeditorCtx.value.exportHtml(res.html.replace("undefined", ""));
emits("changeEditor", {
type: props.editorType,
content: res.html
content: html
});
};
const blur = () => {
};
const clearMuBan = () => {
editorCtx.value.initHtml("");
PeditorCtx.value.initHtml("");
};
const updatePosition = (c_keyboardHeight) => {
const toolbarHeight = 50;
@ -139,25 +146,125 @@ const _sfc_main = {
scrollTop: 0,
success() {
updatePosition(keyboardHeight2);
editorCtx.value.scrollView();
PeditorCtx.value.scrollView();
}
});
}, duration);
});
});
const fillTextToImgWx = (base64) => {
let maskText = "@肝胆相照临床病例库";
return new Promise((resolve, reject) => {
common_vendor.wx$1.createSelectorQuery().in(instace.proxy).select("#pwatermarkCanvas").fields({
node: true,
size: true
}).exec((res) => {
const canvas = res[0].node;
const ctx = canvas.getContext("2d");
let textMetrics = ctx.measureText(maskText);
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:334", textMetrics);
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 = 3;
common_vendor.index.getImageInfo({
src: base64,
success: (imageRes) => {
let scale = 28;
font = scale + "px Arial";
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:360", imageRes);
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 = 10;
let posYmargin = 10;
let randomNumber = 3;
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:378", "randomNumber:" + randomNumber);
switch (randomNumber) {
case 0:
let lt_x = posXmargin;
let lt_y = posYmargin + textHeight;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.storkStyle = "black";
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 = "black";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
ctx.fillText(maskText, rt_x, rt_y);
ctx.restore();
ctx.save();
break;
case 3:
let rb_x = imgWidth - textWidth * 6 - posXmargin <= 0 ? 10 : imgWidth - 276 - posXmargin;
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:426", rb_x);
let rb_y = imgHeight - posYmargin;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.strokeStyle = "black";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
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 components/pEditor/pEditor.vue:452", res2);
}
});
};
}
});
});
});
};
const generateRandomNumber = () => {
let randomNumber = Math.floor(1e3 + Math.random() * 9e3);
return randomNumber;
};
const getImageFormat = (imageUrl) => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:303", imageUrl);
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:544", imageUrl);
const lastDotIndex = imageUrl.lastIndexOf(".");
if (lastDotIndex !== -1) {
return imageUrl.substring(lastDotIndex + 1);
}
return "unknown";
};
const handleUpload = (file) => {
const getOss = (temurl) => {
api_api.api.getOss({
scene: 1
}).then((rep) => {
@ -167,12 +274,12 @@ const _sfc_main = {
let time = common_vendor.dayjs().format("YYYYMMDDHHmmss");
let random = generateRandomNumber();
let filename = time + random;
let imgType = "." + getImageFormat(file);
let imgType = "." + getImageFormat(temurl);
return new Promise((resolve, reject) => {
common_vendor.index.uploadFile({
url: host,
// 仅为示例,非真实的接口地址
filePath: file,
filePath: temurl,
name: "file",
formData: {
OSSAccessKeyId: access_id,
@ -187,27 +294,35 @@ const _sfc_main = {
}
},
fail: (err) => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:343", err);
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:584", err);
}
});
});
}
});
};
const pFun = (files) => {
const readImages = async (localIds) => {
common_vendor.index.showLoading({
title: "正在上传图片...",
mask: true
});
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:597", localIds);
let promiseFun = [];
for (let i = 0; i < files.length; i++) {
promiseFun.push(handleUpload(files[i]));
for (var i = 0; i < localIds.length; i++) {
let img = null;
img = await fillTextToImgWx(localIds[i]);
promiseFun.push(getOss(img));
}
Promise.all(promiseFun).then((res) => {
common_vendor.index.hideLoading();
common_vendor.index.showToast({
duration: 1e3,
message: "上传成功",
icon: "none"
});
});
};
const insertImage = (file) => {
showCanvas.value = true;
common_vendor.index.chooseImage({
count: 9,
//默认9
@ -217,7 +332,7 @@ const _sfc_main = {
//从相册选择
extension: [".jpg", ".png", ".jpeg"],
success: function(res) {
pFun(res.tempFilePaths);
readImages(res.tempFilePaths);
}
});
};
@ -226,7 +341,7 @@ const _sfc_main = {
title: "正在上传视频...",
mask: true
});
const videos = await uni_modules_svEditor_components_common_utils.addVideo(async (editorCtx2) => {
const videos = await uni_modules_svEditor_components_common_utils.addVideo(async (PeditorCtx2) => {
return new Promise((resolve) => {
api_api.api.getOss({
scene: 2
@ -253,10 +368,7 @@ const _sfc_main = {
async success(res2) {
if (res2.statusCode === 204) {
let url = host + "/" + dir + filename + imgType;
let imgUrl = common_assets.videoface;
const fileThumbnail = await editorCtx2.createCoverThumbnail(
imgUrl
);
const fileThumbnail = await PeditorCtx2.createCoverThumbnail(videoface.value);
resolve([
{
videoUrl: url,
@ -266,7 +378,7 @@ const _sfc_main = {
}
},
fail: (err) => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:430", err);
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:678", err);
}
});
});
@ -289,7 +401,7 @@ const _sfc_main = {
//从相册选择
extension: [".mp4", ".webm", ".ogg"],
success: function(res) {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:452", res.tempFilePath);
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:700", res.tempFilePath);
HandleAddVideo(res.tempFilePath);
}
});
@ -301,9 +413,15 @@ const _sfc_main = {
showTitle.value = true;
};
const alertTitle = () => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:466", "qqqqqq");
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:714", "qqqqqq");
showTitle.value = true;
};
const initData = (data) => {
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:718", "init");
common_vendor.index.__f__("log", "at components/pEditor/pEditor.vue:719", data);
htmlContent.value = data;
};
__expose({ initData });
return (_ctx, _cache) => {
return common_vendor.e({
a: common_vendor.p({
@ -358,28 +476,30 @@ const _sfc_main = {
w: common_vendor.o(alertTitle)
} : {}, {
x: common_vendor.o(confirm),
y: common_vendor.p({
y: showCanvas.value
}, showCanvas.value ? {} : {}, {
z: common_vendor.p({
name: "close",
color: "#4B5563",
size: "20"
}),
z: common_vendor.o(closeTitle),
A: common_vendor.o(insertAllWord),
B: common_vendor.p({
A: common_vendor.o(closeTitle),
B: common_vendor.o(insertAllWord),
C: common_vendor.p({
name: "plus-circle",
color: "#3CC7C0",
size: "20"
}),
C: common_vendor.o(insertAllWord),
D: common_vendor.o(($event) => insertWord("患者信息")),
E: common_vendor.o(($event) => insertWord("主诉")),
F: common_vendor.o(($event) => insertWord("现病史及既往史")),
G: common_vendor.o(($event) => insertWord("检查")),
H: common_vendor.o(($event) => insertWord("临床诊断")),
I: common_vendor.o(($event) => insertWord("治疗经过及结果")),
J: common_vendor.o(closeTitle),
K: common_vendor.o(openTitle),
L: common_vendor.p({
D: common_vendor.o(insertAllWord),
E: common_vendor.o(($event) => insertWord("患者信息")),
F: common_vendor.o(($event) => insertWord("主诉")),
G: common_vendor.o(($event) => insertWord("现病史及既往史")),
H: common_vendor.o(($event) => insertWord("检查")),
I: common_vendor.o(($event) => insertWord("临床诊断")),
J: common_vendor.o(($event) => insertWord("治疗经过及结果")),
K: common_vendor.o(closeTitle),
L: common_vendor.o(openTitle),
M: common_vendor.p({
round: 10,
zIndex: "999999",
show: showTitle.value,

View File

@ -1 +1 @@
<view class="page data-v-a6a7913a"><view class="navbox data-v-a6a7913a"><view class="bg data-v-a6a7913a"></view><view class="namebox data-v-a6a7913a"><view class="back data-v-a6a7913a" bindtap="{{b}}"><u-icon wx:if="{{a}}" class="data-v-a6a7913a" u-i="a6a7913a-0" bind:__l="__l" u-p="{{a}}"></u-icon></view><view class="name data-v-a6a7913a">{{c}}</view></view></view><view class="container data-v-a6a7913a"><view class="row data-v-a6a7913a"><view class="left data-v-a6a7913a">{{d}}<text wx:if="{{e}}" class="tip data-v-a6a7913a">(可不填)</text></view><view wx:if="{{f}}" class="right data-v-a6a7913a" bindtap="{{h}}"><u-icon wx:if="{{g}}" class="data-v-a6a7913a" u-i="a6a7913a-1" bind:__l="__l" u-p="{{g}}"></u-icon> 清除模板 </view></view><view class="editorbox data-v-a6a7913a"><sv-editor wx:if="{{l}}" class="data-v-a6a7913a" bindready="{{i}}" bindfocus="{{j}}" bindblur="{{k}}" u-i="a6a7913a-2" bind:__l="__l" u-p="{{l}}"></sv-editor></view></view><view class="toolbar data-v-a6a7913a"><view class="toolbox data-v-a6a7913a"><view class="cellbox data-v-a6a7913a"><view class="cell data-v-a6a7913a" bindtap="{{o}}"><view class="{{['imgbox', 'data-v-a6a7913a', n && 'active']}}"><up--image wx:if="{{m}}" class="headImg data-v-a6a7913a" u-i="a6a7913a-3" bind:__l="__l" u-p="{{m}}"></up--image></view><view class="name data-v-a6a7913a">添加图片</view></view><view class="cell data-v-a6a7913a" bindtap="{{r}}"><view class="{{['imgbox', 'data-v-a6a7913a', q && 'active']}}"><up--image wx:if="{{p}}" class="headImg data-v-a6a7913a" u-i="a6a7913a-4" bind:__l="__l" u-p="{{p}}"></up--image></view><view class="name data-v-a6a7913a">添加视频</view></view><view wx:if="{{s}}" class="cell data-v-a6a7913a" bindtap="{{w}}"><view class="{{['imgbox', 'data-v-a6a7913a', v && 'active']}}"><up--image wx:if="{{t}}" class="headImg data-v-a6a7913a" u-i="a6a7913a-5" bind:__l="__l" u-p="{{t}}"></up--image></view><view class="name data-v-a6a7913a">添加小标题</view></view></view><view class="btn data-v-a6a7913a" bindtap="{{x}}">确定</view></view></view><up-popup wx:if="{{L}}" class="data-v-a6a7913a" u-s="{{['d']}}" bindclose="{{J}}" bindopen="{{K}}" u-i="a6a7913a-6" bind:__l="__l" u-p="{{L}}"><view class="draftpop titlepop data-v-a6a7913a"><view class="titlebox data-v-a6a7913a">添加小标题 <view class="close data-v-a6a7913a" bindtap="{{z}}"><up-icon wx:if="{{y}}" class="data-v-a6a7913a" u-i="a6a7913a-7,a6a7913a-6" bind:__l="__l" u-p="{{y}}"></up-icon></view></view><view class="con data-v-a6a7913a"><view class="top data-v-a6a7913a"><up-icon wx:if="{{B}}" class="data-v-a6a7913a" bindclick="{{A}}" u-i="a6a7913a-8,a6a7913a-6" bind:__l="__l" u-p="{{B}}"></up-icon><view class="desc data-v-a6a7913a" bindtap="{{C}}">一键添加全部</view></view><view class="cellbox data-v-a6a7913a"><view class="cell data-v-a6a7913a" bindtap="{{D}}">患者信息</view><view class="cell data-v-a6a7913a" bindtap="{{E}}">主诉</view><view class="cell data-v-a6a7913a" bindtap="{{F}}">现病史及既往史</view></view><view class="cellbox data-v-a6a7913a"><view class="cell data-v-a6a7913a" bindtap="{{G}}">检查</view><view class="cell data-v-a6a7913a" bindtap="{{H}}">临床诊断</view><view class="cell data-v-a6a7913a" bindtap="{{I}}">治疗经过及结果</view></view></view></view></up-popup></view>
<view class="page data-v-a6a7913a"><view class="navbox data-v-a6a7913a"><view class="bg data-v-a6a7913a"></view><view class="namebox data-v-a6a7913a"><view class="back data-v-a6a7913a" bindtap="{{b}}"><u-icon wx:if="{{a}}" class="data-v-a6a7913a" u-i="a6a7913a-0" bind:__l="__l" u-p="{{a}}"></u-icon></view><view class="name data-v-a6a7913a">{{c}}</view></view></view><view class="container data-v-a6a7913a"><view class="row data-v-a6a7913a"><view class="left data-v-a6a7913a">{{d}}<text wx:if="{{e}}" class="tip data-v-a6a7913a">(可不填)</text></view><view wx:if="{{f}}" class="right data-v-a6a7913a" bindtap="{{h}}"><u-icon wx:if="{{g}}" class="data-v-a6a7913a" u-i="a6a7913a-1" bind:__l="__l" u-p="{{g}}"></u-icon> 清除模板 </view></view><view class="editorbox data-v-a6a7913a"><sv-editor wx:if="{{l}}" class="data-v-a6a7913a" bindready="{{i}}" bindfocus="{{j}}" bindblur="{{k}}" u-i="a6a7913a-2" bind:__l="__l" u-p="{{l}}"></sv-editor></view></view><view class="toolbar data-v-a6a7913a"><view class="toolbox data-v-a6a7913a"><view class="cellbox data-v-a6a7913a"><view class="cell data-v-a6a7913a" bindtap="{{o}}"><view class="{{['imgbox', 'data-v-a6a7913a', n && 'active']}}"><up--image wx:if="{{m}}" class="headImg data-v-a6a7913a" u-i="a6a7913a-3" bind:__l="__l" u-p="{{m}}"></up--image></view><view class="name data-v-a6a7913a">添加图片</view></view><view class="cell data-v-a6a7913a" bindtap="{{r}}"><view class="{{['imgbox', 'data-v-a6a7913a', q && 'active']}}"><up--image wx:if="{{p}}" class="headImg data-v-a6a7913a" u-i="a6a7913a-4" bind:__l="__l" u-p="{{p}}"></up--image></view><view class="name data-v-a6a7913a">添加视频</view></view><view wx:if="{{s}}" class="cell data-v-a6a7913a" bindtap="{{w}}"><view class="{{['imgbox', 'data-v-a6a7913a', v && 'active']}}"><up--image wx:if="{{t}}" class="headImg data-v-a6a7913a" u-i="a6a7913a-5" bind:__l="__l" u-p="{{t}}"></up--image></view><view class="name data-v-a6a7913a">添加小标题</view></view></view><view class="btn data-v-a6a7913a" bindtap="{{x}}">确定</view></view><canvas wx:if="{{y}}" class="data-v-a6a7913a" type="2d" id="pwatermarkCanvas" style="width:200px;height:200px;position:fixed;top:-9999px"/></view><up-popup wx:if="{{M}}" class="data-v-a6a7913a" u-s="{{['d']}}" bindclose="{{K}}" bindopen="{{L}}" u-i="a6a7913a-6" bind:__l="__l" u-p="{{M}}"><view class="draftpop titlepop data-v-a6a7913a"><view class="titlebox data-v-a6a7913a">添加小标题 <view class="close data-v-a6a7913a" bindtap="{{A}}"><up-icon wx:if="{{z}}" class="data-v-a6a7913a" u-i="a6a7913a-7,a6a7913a-6" bind:__l="__l" u-p="{{z}}"></up-icon></view></view><view class="con data-v-a6a7913a"><view class="top data-v-a6a7913a"><up-icon wx:if="{{C}}" class="data-v-a6a7913a" bindclick="{{B}}" u-i="a6a7913a-8,a6a7913a-6" bind:__l="__l" u-p="{{C}}"></up-icon><view class="desc data-v-a6a7913a" bindtap="{{D}}">一键添加全部</view></view><view class="cellbox data-v-a6a7913a"><view class="cell data-v-a6a7913a" bindtap="{{E}}">患者信息</view><view class="cell data-v-a6a7913a" bindtap="{{F}}">主诉</view><view class="cell data-v-a6a7913a" bindtap="{{G}}">现病史及既往史</view></view><view class="cellbox data-v-a6a7913a"><view class="cell data-v-a6a7913a" bindtap="{{H}}">检查</view><view class="cell data-v-a6a7913a" bindtap="{{I}}">临床诊断</view><view class="cell data-v-a6a7913a" bindtap="{{J}}">治疗经过及结果</view></view></view></view></up-popup></view>

View File

@ -57,7 +57,10 @@ const _sfc_main = {
const searchList = async () => {
let searchForm = {
page: 1,
page_size: 10
page_size: 10,
order: {
push_date: "desc"
}
};
api_api.api.searchExchage({
...searchForm
@ -72,7 +75,10 @@ const _sfc_main = {
const goodList = () => {
api_api.api.searchExchageGood({
is_selected: 1,
limit: 5
order: {
push_date: "desc"
},
limit: 3
}).then((res) => {
most_read_articles.value = res.data.data;
});
@ -104,7 +110,7 @@ const _sfc_main = {
color: "#3CC7C0"
}),
g: common_vendor.o(($event) => goList("read")),
h: common_vendor.f(most_read_articles.value.slice(0, 3), (item, k0, i0) => {
h: common_vendor.f(most_read_articles.value, (item, k0, i0) => {
return {
a: common_vendor.t(item.exchange_title),
b: item.exchange_id,
@ -136,7 +142,7 @@ const _sfc_main = {
i: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id),
j: item.exchange_content_image && item.exchange_content_image.length > 0
}, item.exchange_content_image && item.exchange_content_image.length > 0 ? {
k: common_vendor.f(item.exchange_content_image, (unit, k1, i1) => {
k: common_vendor.f(item.exchange_content_image.splice(0, 3), (unit, k1, i1) => {
return {
a: "4b2e7592-4-" + i0 + "-" + i1,
b: common_vendor.p({
@ -152,7 +158,7 @@ const _sfc_main = {
} : {}, {
m: item.exchange_content_video && item.exchange_content_video.length > 0
}, item.exchange_content_video && item.exchange_content_video.length > 0 ? {
n: common_vendor.f(item.exchange_content_video, (videoCell, index, i1) => {
n: common_vendor.f(item.exchange_content_video.slice(0, 1), (videoCell, index, i1) => {
return {
a: index,
b: videoCell,
@ -162,9 +168,9 @@ const _sfc_main = {
o: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id)
} : {}, {
p: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id),
q: item.label && item.label.length > 0
}, item.label && item.label.length > 0 ? {
r: common_vendor.f(item.label, (cell, k1, i1) => {
q: item.exchange_label
}, item.exchange_label ? {
r: common_vendor.f(item.exchange_label, (cell, k1, i1) => {
return {
a: common_vendor.t(cell.label_name),
b: cell.exchange_label_id

View File

@ -24,5 +24,6 @@
/* 透明度 */
/* 文章场景相关 */
.imgbox.data-v-f07c1461 {
margin-top: -30rpx;
margin: -30rpx 30rpx 0;
overflow-y: scroll;
}

View File

@ -2,6 +2,7 @@
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");
@ -37,13 +38,14 @@ const backDetailNav = () => "../../components/backDetailNav/backDetailNav.js";
const _sfc_main = {
__name: "detail",
setup(__props) {
const isArticleAuthor = common_vendor.ref(false);
const isH5 = common_vendor.ref(false);
const user_id = common_vendor.ref("");
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(false);
const showCanvas = common_vendor.ref(true);
const showCommentDialog = common_vendor.ref(false);
const givePointValue = common_vendor.ref(5);
common_vendor.ref(0);
@ -68,7 +70,7 @@ const _sfc_main = {
const is_top = common_vendor.ref(false);
const option_id = common_vendor.ref("");
const point = common_vendor.ref(0);
const comment_userId = common_vendor.ref("");
const comment_doctorId = common_vendor.ref("");
const commentTextarea = common_vendor.ref(null);
const confirmGive = () => {
showGive.value = false;
@ -131,23 +133,36 @@ const _sfc_main = {
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) => {
common_vendor.index.__f__("log", "at pages/detail/detail.vue:737", res.data.data);
common_vendor.index.__f__("log", "at pages/detail/detail.vue:760", res.data.data);
point.value = res.data.data;
});
};
@ -179,13 +194,37 @@ const _sfc_main = {
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) => {
id.value = options.id;
type.value = options.type;
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;
}
common_vendor.index.__f__("log", "at pages/detail/detail.vue:829", "id:" + id.value);
common_vendor.index.__f__("log", "at pages/detail/detail.vue:830", "type:" + type.value);
readRecord();
let userInfo = common_vendor.index.getStorageSync("userInfo");
if (userInfo.user_id) {
user_id.value = userInfo.user_id;
if (userInfo.doctor_id) {
doctor_id.value = userInfo.doctor_id;
}
});
const clearComment = () => {
@ -193,6 +232,7 @@ const _sfc_main = {
imgList.value = [];
content.value = "";
root_id.value = null;
placeholder.value = "请输入评论内容";
reply_name.value = "";
level.value = 1;
};
@ -213,7 +253,7 @@ const _sfc_main = {
};
const alertDeal = (parentId, rootId, name, top, commentLevel, userId) => {
parent_id.value = parentId;
comment_userId.value = userId;
comment_doctorId.value = userId;
root_id.value = rootId;
reply_name.value = name;
level.value = commentLevel;
@ -320,18 +360,18 @@ const _sfc_main = {
};
const close = () => {
showCommentDialog.value = false;
common_vendor.index.__f__("log", "at pages/detail/detail.vue:930", "close");
clearComment();
};
const openDeal = () => {
showDeal.value = true;
common_vendor.index.__f__("log", "at pages/detail/detail.vue:935", "open");
common_vendor.index.__f__("log", "at pages/detail/detail.vue:992", "open");
};
const closeDeal = () => {
showDeal.value = false;
};
const openMore = () => {
showMore.value = true;
common_vendor.index.__f__("log", "at pages/detail/detail.vue:943", "open");
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1000", "open");
};
const closeMore = () => {
showMore.value = false;
@ -342,8 +382,124 @@ const _sfc_main = {
urls: [url]
});
};
const handleUpload = (file) => {
let File2 = file.file;
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);
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1025", textMetrics);
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 = 5;
common_vendor.index.getImageInfo({
src: base64,
success: (imageRes) => {
let scale = 28;
font = scale + "px Arial";
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1051", imageRes);
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 = 10;
let posYmargin = 10;
let randomNumber = 3;
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1069", "randomNumber:" + randomNumber);
switch (randomNumber) {
case 0:
let lt_x = posXmargin;
let lt_y = posYmargin + textHeight;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.storkStyle = "black";
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 - 276 - posXmargin <= 0 ? 10 : imgWidth - 276 - posXmargin;
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1117", rb_x);
let rb_y = imgHeight - posYmargin;
ctx.font = font;
ctx.fillStyle = fontColor;
ctx.strokeStyle = "black";
ctx.strokeWidth = strokeWidth;
ctx.fillStyle = "#fff";
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1124", "rb_x");
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1125", rb_x);
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:1145", res2);
}
});
};
}
});
});
});
};
const readImages = async (localIds) => {
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1243", 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) => {
@ -353,12 +509,12 @@ const _sfc_main = {
let time = common_vendor.dayjs().format("YYYYMMDDHHmmss");
let random = generateRandomNumber();
let filename = time + random;
let imgType = "." + getImageFormat(File2[0].url);
let imgType = "." + getImageFormat(temurl);
return new Promise((resolve, reject) => {
common_vendor.index.uploadFile({
url: host,
// 仅为示例,非真实的接口地址
filePath: File2[0].url,
filePath: temurl,
name: "file",
formData: {
OSSAccessKeyId: access_id,
@ -369,18 +525,24 @@ const _sfc_main = {
success(res) {
if (res.statusCode === 204) {
let url = host + "/" + dir + filename + imgType;
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1294", url);
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1345", url);
imgList.value = [url];
}
},
fail: (err) => {
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1299", err);
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1350", err);
}
});
});
}
});
};
const handleUpload = (file) => {
let File2 = file.file;
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1359", 111);
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1360", File2);
readImages(File2);
};
const generateRandomNumber = () => {
let randomNumber = Math.floor(1e3 + Math.random() * 9e3);
return randomNumber;
@ -393,8 +555,6 @@ const _sfc_main = {
return "unknown";
};
const afterRead = (file, lists, name) => {
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1318", lists);
common_vendor.index.__f__("log", "at pages/detail/detail.vue:1319", name);
handleUpload(file);
};
const delImg = (index) => {
@ -613,7 +773,7 @@ const _sfc_main = {
is_top.value ? cancelTopExchangeComment(parent_id.value) : topExchangeComment(parent_id.value);
}
};
const sendComment = () => {
const sendComment = utils_throttle.throttle(() => {
if (!content.value) {
common_vendor.index.showToast({
icon: "none",
@ -640,7 +800,7 @@ const _sfc_main = {
} else {
addExchangeComment(id.value, postData);
}
};
});
const formatHtml = (val) => {
if (/^回复.+/.test(val)) {
return val.replace(
@ -703,57 +863,57 @@ const _sfc_main = {
radius: "50%"
}),
c: common_vendor.o(open),
d: common_vendor.p({
d: common_vendor.o(open),
e: common_vendor.p({
disabled: true,
focus: false,
type: "text",
placeholderClass: "placeholderClass",
placeholder: "对病例发表您的看法"
}),
e: common_vendor.o(open),
f: common_vendor.o(open),
g: common_vendor.o(toggleCollect),
h: common_vendor.p({
g: common_vendor.o(open),
h: common_vendor.o(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"
}),
i: common_vendor.p({
j: common_vendor.p({
src: common_vendor.unref(common_assets.shangImg),
mode: "widthFix",
width: "169rpx",
height: "77rpx"
}),
j: common_vendor.o(openGivePop),
k: type.value == "video"
k: common_vendor.o(openGivePop),
l: type.value == "video"
}, type.value == "video" ? {
l: common_vendor.t(info.video_title)
m: common_vendor.t(info.video_title)
} : type.value == "article" ? {
n: common_vendor.t(info.article_title)
o: common_vendor.t(info.article_title)
} : {
o: common_vendor.t(info.exchange_title)
p: common_vendor.t(info.exchange_title)
}, {
m: type.value == "article",
p: type.value == "video" || type.value == "article"
n: type.value == "article",
q: type.value == "video" || type.value == "article"
}, type.value == "video" || type.value == "article" ? {
q: common_vendor.f(info.author, (item, k0, i0) => {
r: common_vendor.f(info.author, (item, k0, i0) => {
return {
a: "eca06f3c-6-" + i0 + ",eca06f3c-0",
b: common_vendor.t(item.doctor_name),
c: common_vendor.t(item.hospital_name)
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
};
}),
r: common_vendor.p({
src: common_vendor.unref(common_assets.headImg),
mode: "widthFix",
width: "46rpx",
height: "46rpx",
radius: "50%"
})
} : {
s: common_vendor.p({
src: common_vendor.unref(common_assets.headImg),
mode: "widthFix",
src: info.avatar ? info.avatar : common_vendor.unref(common_assets.headImg),
width: "46rpx",
height: "46rpx",
radius: "50%"
@ -805,12 +965,12 @@ const _sfc_main = {
content: fromatImg(info.exchange_summary)
})
} : {}, {
O: info.case_exchange_vote && info.case_exchange_vote.vote_title
}, info.case_exchange_vote && info.case_exchange_vote.vote_title ? common_vendor.e({
P: info.case_exchange_vote.is_have_voted != 1
}, info.case_exchange_vote.is_have_voted != 1 ? {
Q: common_vendor.t(info.case_exchange_vote.vote_title),
R: common_vendor.f(info.case_exchange_vote.case_exchange_vote_option, (item, k0, i0) => {
O: info.exchange_vote && info.exchange_vote.vote_title
}, info.exchange_vote && info.exchange_vote.vote_title ? common_vendor.e({
P: info.exchange_vote.is_have_voted != 1
}, info.exchange_vote.is_have_voted != 1 ? {
Q: common_vendor.t(info.exchange_vote.vote_title),
R: common_vendor.f(info.exchange_vote.case_exchange_vote_option, (item, k0, i0) => {
return {
a: "eca06f3c-16-" + i0 + ",eca06f3c-15",
b: common_vendor.p({
@ -828,8 +988,8 @@ const _sfc_main = {
}),
U: common_vendor.o(addVote)
} : {
V: common_vendor.t(info.case_exchange_vote.vote_title),
W: common_vendor.f(info.case_exchange_vote.case_exchange_vote_option, (item, k0, i0) => {
V: common_vendor.t(info.exchange_vote.vote_title),
W: 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),
@ -849,91 +1009,98 @@ const _sfc_main = {
aa: common_vendor.f(dataList.value, (item, index, i0) => {
return common_vendor.e({
a: "eca06f3c-18-" + i0 + ",eca06f3c-0",
b: common_vendor.t(item.user_name),
c: user_id.value == item.user_id
}, user_id.value == item.user_id ? {
d: "eca06f3c-19-" + i0 + ",eca06f3c-0",
e: common_vendor.p({
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"
})
} : {}, {
f: common_vendor.o(($event) => alertDeal(item.comment_id, item.comment_id, item.user_name, item.is_top, 2, item.user_id), item.comment_id),
g: common_vendor.t(item.content),
h: item.comment_image
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 ? {
i: common_vendor.o(($event) => previewImg(item.comment_image), item.comment_id),
j: "eca06f3c-20-" + i0 + ",eca06f3c-0",
k: common_vendor.p({
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"
})
} : {}, {
l: common_vendor.t(formatDate(item.created_at)),
m: item.sub_comment && item.sub_comment.length > 0
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 ? {
n: common_vendor.f(item.sub_comment.slice(0, 3), (cell, index2, i1) => {
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.t(cell.user_name),
c: user_id.value == cell.user_id
}, user_id.value == cell.user_id ? {
d: "eca06f3c-22-" + i0 + "-" + i1 + ",eca06f3c-0",
e: common_vendor.p({
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"
})
} : {}, {
f: common_vendor.o(($event) => alertDeal(cell.comment_id, cell.root_id, cell.user_name, cell.is_top, 3, cell.user_id), cell.comment_id),
g: formatHtml(cell.content),
h: cell.comment_image
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 ? {
i: common_vendor.o(($event) => previewImg(cell.comment_image), cell.comment_id),
j: "eca06f3c-23-" + i0 + "-" + i1 + ",eca06f3c-0",
k: common_vendor.p({
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"
})
} : {}, {
l: common_vendor.t(formatDate(cell.created_at)),
m: cell.comment_id
m: common_vendor.t(formatDate(cell.created_at)),
n: cell.comment_id
});
}),
o: common_vendor.p({
src: common_vendor.unref(common_assets.headImg),
width: "86rpx",
height: "86rpx",
radius: "50%"
})
} : {}, {
p: item.sub_comment.length > 3
}, item.sub_comment.length > 3 ? {
q: common_vendor.o(($event) => openMorePop(item, item.sub_comment, index), item.comment_id)
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)
} : {}, {
r: item.comment_id
t: item.comment_id
});
}),
ab: common_vendor.p({
src: common_vendor.unref(common_assets.headImg),
width: "86rpx",
height: "86rpx",
radius: "50%"
}),
ac: common_vendor.sr(paging, "eca06f3c-0", {
ab: common_vendor.sr(paging, "eca06f3c-0", {
"k": "paging"
}),
ad: common_vendor.o(queryList),
ae: common_vendor.o(($event) => dataList.value = $event),
af: common_vendor.p({
ac: common_vendor.o(queryList),
ad: common_vendor.o(($event) => dataList.value = $event),
ae: 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"
},
@ -947,11 +1114,11 @@ const _sfc_main = {
},
modelValue: dataList.value
}),
ag: common_vendor.sr(commentTextarea, "eca06f3c-25,eca06f3c-24", {
af: common_vendor.sr(commentTextarea, "eca06f3c-26,eca06f3c-25", {
"k": "commentTextarea"
}),
ah: common_vendor.o(($event) => content.value = $event),
ai: common_vendor.p({
ag: common_vendor.o(($event) => content.value = $event),
ah: common_vendor.p({
focus: false,
height: "200",
cursorSpacing: "240",
@ -960,30 +1127,30 @@ const _sfc_main = {
placeholder: placeholder.value,
modelValue: content.value
}),
aj: imgList.value.length > 0
ai: imgList.value.length > 0
}, imgList.value.length > 0 ? {
ak: common_vendor.o(($event) => previewImg(imgList.value[0])),
al: common_vendor.p({
aj: common_vendor.o(($event) => previewImg(imgList.value[0])),
ak: common_vendor.p({
src: imgList.value[0],
radius: "6",
width: "150rpx",
height: "150rpx"
}),
am: common_vendor.p({
al: common_vendor.p({
name: "close-circle",
color: "#666",
size: "16"
}),
an: common_vendor.o(delImg)
am: common_vendor.o(delImg)
} : {}, {
ao: common_vendor.p({
an: common_vendor.p({
src: common_vendor.unref(common_assets.uploadImg),
mode: "widthFix",
width: "40rpx",
height: "77rpx"
}),
ap: common_vendor.o(afterRead),
aq: common_vendor.p({
ao: common_vendor.o(afterRead),
ap: common_vendor.p({
disabled: imgList.value.length >= 1,
["show-upload-list"]: false,
name: "imgupload",
@ -992,11 +1159,11 @@ const _sfc_main = {
width: "40rpx",
height: "77rpx"
}),
ar: imgList.value.length >= 1 ? 1 : "",
as: common_vendor.o(sendComment),
at: common_vendor.o(close),
av: common_vendor.o(open),
aw: common_vendor.p({
aq: imgList.value.length >= 1 ? 1 : "",
ar: common_vendor.o((...args) => common_vendor.unref(sendComment) && common_vendor.unref(sendComment)(...args)),
as: common_vendor.o(close),
at: common_vendor.o(open),
av: common_vendor.p({
zIndex: 99,
overlayStyle: {
zIndex: 98
@ -1007,20 +1174,20 @@ const _sfc_main = {
closeable: true,
mode: "bottom"
}),
ax: level.value == 2 && is_author.value
}, level.value == 2 && is_author.value ? {
ay: common_vendor.t(is_top.value ? "取消置顶" : "置顶"),
az: common_vendor.o(toggleTop)
aw: level.value == 2 && isArticleAuthor.value
}, level.value == 2 && isArticleAuthor.value ? {
ax: common_vendor.t(is_top.value ? "取消置顶" : "置顶"),
ay: common_vendor.o(toggleTop)
} : {}, {
aA: common_vendor.o(openCommentDialog),
aB: is_author.value || user_id.value == comment_userId.value
}, is_author.value || user_id.value == comment_userId.value ? {
aC: common_vendor.o(delComment)
az: common_vendor.o(openCommentDialog),
aA: isArticleAuthor.value || doctor_id.value == comment_doctorId.value
}, isArticleAuthor.value || doctor_id.value == comment_doctorId.value ? {
aB: common_vendor.o(delComment)
} : {}, {
aD: common_vendor.o(closeDealPop),
aE: common_vendor.o(closeDeal),
aF: common_vendor.o(openDeal),
aG: common_vendor.p({
aC: common_vendor.o(closeDealPop),
aD: common_vendor.o(closeDeal),
aE: common_vendor.o(openDeal),
aF: common_vendor.p({
zIndex: 60,
overlayStyle: {
zIndex: 59
@ -1030,87 +1197,87 @@ const _sfc_main = {
round: 10,
mode: "bottom"
}),
aH: common_vendor.p({
aG: common_vendor.p({
name: "close",
color: "#666",
size: "20"
}),
aI: common_vendor.o(closeMore),
aJ: common_vendor.p({
src: common_vendor.unref(common_assets.headImg),
aH: common_vendor.o(closeMore),
aI: common_vendor.p({
src: mainCommentObj.avatar ? mainCommentObj.avatar : common_vendor.unref(common_assets.headImg),
width: "86rpx",
height: "86rpx",
radius: "50%"
}),
aK: common_vendor.t(mainCommentObj.user_name),
aL: user_id.value == mainCommentObj.user_id
}, user_id.value == mainCommentObj.user_id ? {
aM: common_vendor.p({
aJ: common_vendor.t(mainCommentObj.user_name),
aK: doctor_id.value == mainCommentObj.doctor_id
}, doctor_id.value == mainCommentObj.doctor_id ? {
aL: common_vendor.p({
src: common_vendor.unref(common_assets.selfImg),
width: "69rpx",
height: "31rpx"
})
} : {}, {
aN: common_vendor.o(($event) => alertDeal(mainCommentObj.comment_id, mainCommentObj.comment_id, mainCommentObj.user_name, mainCommentObj.is_top, 2, mainCommentObj.user_id)),
aO: common_vendor.t(mainCommentObj.content),
aP: mainCommentObj.comment_image
aM: common_vendor.o(($event) => alertDeal(mainCommentObj.comment_id, mainCommentObj.comment_id, mainCommentObj.user_name, mainCommentObj.is_top, 2, mainCommentObj.doctor_id)),
aN: common_vendor.t(mainCommentObj.content),
aO: mainCommentObj.comment_image
}, mainCommentObj.comment_image ? {
aQ: common_vendor.o(($event) => previewImg(mainCommentObj.comment_image)),
aR: common_vendor.p({
aP: common_vendor.o(($event) => previewImg(mainCommentObj.comment_image)),
aQ: common_vendor.p({
src: mainCommentObj.comment_image,
radius: "16rpx",
width: "150rpx",
height: "150rpx"
})
} : {}, {
aS: common_vendor.t(formatDate(mainCommentObj.created_at)),
aT: common_vendor.f(childList.value, (cell, index, i0) => {
aR: common_vendor.t(formatDate(mainCommentObj.created_at)),
aS: common_vendor.f(childList.value, (cell, index, i0) => {
return common_vendor.e({
a: "eca06f3c-36-" + i0 + ",eca06f3c-31",
b: common_vendor.t(cell.user_name),
c: user_id.value == cell.user_id
}, user_id.value == cell.user_id ? {
d: "eca06f3c-37-" + i0 + ",eca06f3c-31",
e: common_vendor.p({
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"
})
} : {}, {
f: common_vendor.o(($event) => alertDeal(cell.comment_id, cell.root_id, cell.user_name, cell.is_top, 3, cell.user_id), cell.comment_id),
g: formatHtml(cell.content),
h: cell.comment_image
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 ? {
i: common_vendor.o(($event) => previewImg(cell.comment_image), cell.comment_id),
j: "eca06f3c-38-" + i0 + ",eca06f3c-31",
k: common_vendor.p({
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"
})
} : {}, {
l: common_vendor.t(formatDate(cell.created_at)),
m: cell.comment_id
m: common_vendor.t(formatDate(cell.created_at)),
n: cell.comment_id
});
}),
aT: common_vendor.o(($event) => _ctx.value = $event),
aU: common_vendor.p({
src: common_vendor.unref(common_assets.headImg),
width: "86rpx",
height: "86rpx",
radius: "50%"
}),
aV: common_vendor.o(($event) => _ctx.value = $event),
aW: common_vendor.p({
readonly: true,
placeholder: "@" + mainCommentObj.user_name + "",
border: "surround",
modelValue: _ctx.value
}),
aX: common_vendor.o(showReplyPop),
aY: common_vendor.o(closeMore),
aZ: common_vendor.o(openMore),
ba: common_vendor.p({
aV: common_vendor.o(showReplyPop),
aW: common_vendor.o(closeMore),
aX: common_vendor.o(openMore),
aY: common_vendor.p({
zIndex: 10,
overlayStyle: {
zIndex: 9
@ -1120,26 +1287,26 @@ const _sfc_main = {
round: 10,
mode: "bottom"
}),
bb: common_vendor.t(point.value),
bc: common_vendor.o(($event) => changePoint("minus")),
bd: common_vendor.o(inputPoint),
be: common_vendor.o(($event) => givePointValue.value = $event),
bf: common_vendor.p({
aZ: common_vendor.t(point.value),
ba: common_vendor.o(($event) => changePoint("minus")),
bb: common_vendor.o(inputPoint),
bc: common_vendor.o(($event) => givePointValue.value = $event),
bd: common_vendor.p({
placeholder: "请输入打赏积分",
type: "number",
border: "surround",
modelValue: givePointValue.value
}),
bg: common_vendor.o(($event) => changePoint("add")),
bh: common_vendor.o(($event) => showGive.value = false),
bi: common_vendor.o(confirmGive),
bj: common_vendor.p({
be: common_vendor.o(($event) => changePoint("add")),
bf: common_vendor.o(($event) => showGive.value = false),
bg: common_vendor.o(confirmGive),
bh: common_vendor.p({
show: showGive.value,
["mask-click-able"]: true
}),
bk: common_vendor.o(($event) => showModal.value = false),
bl: common_vendor.o(confirmDel),
bm: common_vendor.p({
bi: common_vendor.o(($event) => showModal.value = false),
bj: common_vendor.o(confirmDel),
bk: common_vendor.p({
show: showModal.value,
["mask-click-able"]: true
})

File diff suppressed because one or more lines are too long

View File

@ -456,6 +456,15 @@
overflow: hidden;
align-items: center;
}
.bottom .iptbox .iptcon.data-v-eca06f3c {
position: relative;
}
.bottom .iptbox .iptcon .maskipt.data-v-eca06f3c {
position: absolute;
width: 100%;
height: 100%;
z-index: 1;
}
.bottom .iptbox .ipt.data-v-eca06f3c {
margin-left: 15rpx;
}
@ -523,4 +532,10 @@
}
.deal .num.data-v-eca06f3c {
margin-left: 8rpx;
}
.iconbox.data-v-eca06f3c {
margin-top: 5rpx;
}
.data-v-eca06f3c ._root {
overflow-x: hidden !important;
}

View File

@ -192,8 +192,9 @@ const _sfc_main = {
y: common_vendor.f(recommend_doctor.value, (item, k0, i0) => {
return {
a: common_vendor.t(item.doctor_name),
b: item.doctor_id,
c: common_vendor.o(($event) => goListBy(item.doctor_id, item.doctor_name, "doctor"), item.doctor_id)
b: common_vendor.t(item.hospital_name),
c: item.doctor_id,
d: common_vendor.o(($event) => goListBy(item.doctor_id, item.doctor_name, "doctor"), item.doctor_id)
};
})
};

View File

@ -1 +1 @@
<nav-bar wx:if="{{a}}" class="data-v-1cf27b2a" u-i="1cf27b2a-0" bind:__l="__l" u-p="{{a}}"></nav-bar><view class="page data-v-1cf27b2a"><view class="databox data-v-1cf27b2a"><view class="cell data-v-1cf27b2a"><view class="num data-v-1cf27b2a">{{b}}</view><view class="name data-v-1cf27b2a">文章</view></view><view class="cell data-v-1cf27b2a"><view class="num data-v-1cf27b2a">{{c}}</view><view class="name data-v-1cf27b2a">视频</view></view><view class="cell data-v-1cf27b2a"><view class="num data-v-1cf27b2a">{{d}}</view><view class="name data-v-1cf27b2a">阅读量</view></view></view><view class="kubox data-v-1cf27b2a"><view class="row data-v-1cf27b2a"><up--image wx:if="{{f}}" class="data-v-1cf27b2a" bindclick="{{e}}" u-i="1cf27b2a-1" bind:__l="__l" u-p="{{f}}"></up--image><up--image wx:if="{{h}}" class="data-v-1cf27b2a" bindclick="{{g}}" u-i="1cf27b2a-2" bind:__l="__l" u-p="{{h}}"></up--image></view><view class="row data-v-1cf27b2a" style="margin-top:30rpx"><up--image wx:if="{{j}}" class="data-v-1cf27b2a" bindclick="{{i}}" u-i="1cf27b2a-3" bind:__l="__l" u-p="{{j}}"></up--image><up--image wx:if="{{l}}" class="data-v-1cf27b2a" bindclick="{{k}}" u-i="1cf27b2a-4" bind:__l="__l" u-p="{{l}}"></up--image></view></view><view class="newsbox data-v-1cf27b2a"><view class="titlebox data-v-1cf27b2a"><view class="title data-v-1cf27b2a">最新上线</view><view class="more data-v-1cf27b2a" bindtap="{{n}}"><view class="morename data-v-1cf27b2a">查看更多</view><u-icon wx:if="{{m}}" class="data-v-1cf27b2a" u-i="1cf27b2a-5" bind:__l="__l" u-p="{{m}}"></u-icon></view></view><view class="listbox data-v-1cf27b2a"><view wx:for="{{o}}" wx:for-item="item" wx:key="c" class="cell data-v-1cf27b2a" bindtap="{{item.d}}"><view class="circle data-v-1cf27b2a"></view><view class="info data-v-1cf27b2a"><view class="name ellipsis-two-lines data-v-1cf27b2a">{{item.a}}</view><view class="tagsbox data-v-1cf27b2a"><view wx:for="{{item.b}}" wx:for-item="tag" wx:key="b" class="tag data-v-1cf27b2a">{{tag.a}}</view></view></view></view></view></view><view class="newsbox data-v-1cf27b2a"><view class="titlebox data-v-1cf27b2a"><view class="title data-v-1cf27b2a">最多阅读</view><view class="more data-v-1cf27b2a" bindtap="{{q}}"><view class="morename data-v-1cf27b2a">查看更多</view><u-icon wx:if="{{p}}" class="data-v-1cf27b2a" u-i="1cf27b2a-6" bind:__l="__l" u-p="{{p}}"></u-icon></view></view><view class="listbox data-v-1cf27b2a"><view wx:for="{{r}}" wx:for-item="item" wx:key="c" class="cell data-v-1cf27b2a" bindtap="{{item.d}}"><view class="circle data-v-1cf27b2a"></view><view class="info data-v-1cf27b2a"><view class="name ellipsis-two-lines data-v-1cf27b2a">{{item.a}}</view><view class="tagsbox data-v-1cf27b2a"><view wx:for="{{item.b}}" wx:for-item="tag" wx:key="b" class="tag data-v-1cf27b2a">{{tag.a}}</view></view></view></view></view></view><view class="recbox data-v-1cf27b2a"><view class="titlebox data-v-1cf27b2a"><view class="title data-v-1cf27b2a">医院病例库推荐</view><view class="more data-v-1cf27b2a" bindtap="{{t}}"><view class="morename data-v-1cf27b2a">查看更多</view><u-icon wx:if="{{s}}" class="data-v-1cf27b2a" u-i="1cf27b2a-7" bind:__l="__l" u-p="{{s}}"></u-icon></view></view><view class="list data-v-1cf27b2a"><view wx:for="{{v}}" wx:for-item="item" wx:key="b" class="cell data-v-1cf27b2a" bindtap="{{item.c}}">{{item.a}}</view></view></view><view class="recbox data-v-1cf27b2a"><view class="titlebox data-v-1cf27b2a"><view class="title data-v-1cf27b2a">医生病例库推荐</view><view class="more data-v-1cf27b2a" bindtap="{{x}}"><view class="morename data-v-1cf27b2a">查看更多</view><u-icon wx:if="{{w}}" class="data-v-1cf27b2a" u-i="1cf27b2a-8" bind:__l="__l" u-p="{{w}}"></u-icon></view></view><view class="list data-v-1cf27b2a"><view wx:for="{{y}}" wx:for-item="item" wx:key="b" class="cell data-v-1cf27b2a" bindtap="{{item.c}}">{{item.a}}</view></view></view></view><tab-bar class="data-v-1cf27b2a" u-i="1cf27b2a-9" bind:__l="__l"></tab-bar>
<nav-bar wx:if="{{a}}" class="data-v-1cf27b2a" u-i="1cf27b2a-0" bind:__l="__l" u-p="{{a}}"></nav-bar><view class="page data-v-1cf27b2a"><view class="databox data-v-1cf27b2a"><view class="cell data-v-1cf27b2a"><view class="num data-v-1cf27b2a">{{b}}</view><view class="name data-v-1cf27b2a">文章</view></view><view class="cell data-v-1cf27b2a"><view class="num data-v-1cf27b2a">{{c}}</view><view class="name data-v-1cf27b2a">视频</view></view><view class="cell data-v-1cf27b2a"><view class="num data-v-1cf27b2a">{{d}}</view><view class="name data-v-1cf27b2a">阅读量</view></view></view><view class="kubox data-v-1cf27b2a"><view class="row data-v-1cf27b2a"><up--image wx:if="{{f}}" class="data-v-1cf27b2a" bindclick="{{e}}" u-i="1cf27b2a-1" bind:__l="__l" u-p="{{f}}"></up--image><up--image wx:if="{{h}}" class="data-v-1cf27b2a" bindclick="{{g}}" u-i="1cf27b2a-2" bind:__l="__l" u-p="{{h}}"></up--image></view><view class="row data-v-1cf27b2a" style="margin-top:30rpx"><up--image wx:if="{{j}}" class="data-v-1cf27b2a" bindclick="{{i}}" u-i="1cf27b2a-3" bind:__l="__l" u-p="{{j}}"></up--image><up--image wx:if="{{l}}" class="data-v-1cf27b2a" bindclick="{{k}}" u-i="1cf27b2a-4" bind:__l="__l" u-p="{{l}}"></up--image></view></view><view class="newsbox data-v-1cf27b2a"><view class="titlebox data-v-1cf27b2a"><view class="title data-v-1cf27b2a">最新上线</view><view class="more data-v-1cf27b2a" bindtap="{{n}}"><view class="morename data-v-1cf27b2a">查看更多</view><u-icon wx:if="{{m}}" class="data-v-1cf27b2a" u-i="1cf27b2a-5" bind:__l="__l" u-p="{{m}}"></u-icon></view></view><view class="listbox data-v-1cf27b2a"><view wx:for="{{o}}" wx:for-item="item" wx:key="c" class="cell data-v-1cf27b2a" bindtap="{{item.d}}"><view class="circle data-v-1cf27b2a"></view><view class="info data-v-1cf27b2a"><view class="name ellipsis-two-lines data-v-1cf27b2a">{{item.a}}</view><view class="tagsbox data-v-1cf27b2a"><view wx:for="{{item.b}}" wx:for-item="tag" wx:key="b" class="tag data-v-1cf27b2a">{{tag.a}}</view></view></view></view></view></view><view class="newsbox data-v-1cf27b2a"><view class="titlebox data-v-1cf27b2a"><view class="title data-v-1cf27b2a">最多阅读</view><view class="more data-v-1cf27b2a" bindtap="{{q}}"><view class="morename data-v-1cf27b2a">查看更多</view><u-icon wx:if="{{p}}" class="data-v-1cf27b2a" u-i="1cf27b2a-6" bind:__l="__l" u-p="{{p}}"></u-icon></view></view><view class="listbox data-v-1cf27b2a"><view wx:for="{{r}}" wx:for-item="item" wx:key="c" class="cell data-v-1cf27b2a" bindtap="{{item.d}}"><view class="circle data-v-1cf27b2a"></view><view class="info data-v-1cf27b2a"><view class="name ellipsis-two-lines data-v-1cf27b2a">{{item.a}}</view><view class="tagsbox data-v-1cf27b2a"><view wx:for="{{item.b}}" wx:for-item="tag" wx:key="b" class="tag data-v-1cf27b2a">{{tag.a}}</view></view></view></view></view></view><view class="recbox data-v-1cf27b2a"><view class="titlebox data-v-1cf27b2a"><view class="title data-v-1cf27b2a">医院病例库推荐</view><view class="more data-v-1cf27b2a" bindtap="{{t}}"><view class="morename data-v-1cf27b2a">查看更多</view><u-icon wx:if="{{s}}" class="data-v-1cf27b2a" u-i="1cf27b2a-7" bind:__l="__l" u-p="{{s}}"></u-icon></view></view><view class="list data-v-1cf27b2a"><view wx:for="{{v}}" wx:for-item="item" wx:key="b" class="cell ellipsis-one-lines data-v-1cf27b2a" bindtap="{{item.c}}">{{item.a}}</view></view></view><view class="recbox data-v-1cf27b2a"><view class="titlebox data-v-1cf27b2a"><view class="title data-v-1cf27b2a">医生病例库推荐</view><view class="more data-v-1cf27b2a" bindtap="{{x}}"><view class="morename data-v-1cf27b2a">查看更多</view><u-icon wx:if="{{w}}" class="data-v-1cf27b2a" u-i="1cf27b2a-8" bind:__l="__l" u-p="{{w}}"></u-icon></view></view><view class="list data-v-1cf27b2a"><view wx:for="{{y}}" wx:for-item="item" wx:key="c" class="cell ellipsis-one-lines data-v-1cf27b2a" bindtap="{{item.d}}">{{item.a}}({{item.b}})</view></view></view></view><tab-bar class="data-v-1cf27b2a" u-i="1cf27b2a-9" bind:__l="__l"></tab-bar>

View File

@ -1 +1 @@
<view class="logincontent data-v-e4e4508d"><view class="title data-v-e4e4508d">登录观看</view><up-form wx:if="{{s}}" class="r data-v-e4e4508d" u-s="{{['d']}}" u-r="form" u-i="e4e4508d-0" bind:__l="__l" u-p="{{s}}"><up-form-item wx:if="{{a}}" class="data-v-e4e4508d" u-s="{{['d']}}" u-i="e4e4508d-1,e4e4508d-0" bind:__l="__l" u-p="{{d}}"><up-input wx:if="{{c}}" class="data-v-e4e4508d" u-i="e4e4508d-2,e4e4508d-1" bind:__l="__l" bindupdateModelValue="{{b}}" u-p="{{c}}"></up-input></up-form-item><view wx:if="{{e}}" class="smsbox data-v-e4e4508d"><up-form-item wx:if="{{q}}" class="data-v-e4e4508d" u-s="{{['right','d']}}" u-i="e4e4508d-3,e4e4508d-0" bind:__l="__l" u-p="{{q}}"><up-input wx:if="{{g}}" class="data-v-e4e4508d" u-i="e4e4508d-4,e4e4508d-3" bind:__l="__l" bindupdateModelValue="{{f}}" u-p="{{g}}"></up-input><view class="wrap data-v-e4e4508d" slot="right"><up-toast class="r data-v-e4e4508d" u-r="uToastRef" u-i="e4e4508d-5,e4e4508d-3" bind:__l="__l"></up-toast><up-code wx:if="{{m}}" class="r data-v-e4e4508d" bindend="{{j}}" bindstart="{{k}}" u-r="uCodeRef" bindchange="{{l}}" u-i="e4e4508d-6,e4e4508d-3" bind:__l="__l" u-p="{{m}}"></up-code><up-button wx:if="{{p}}" u-s="{{['d']}}" bindtap="{{o}}" class="custom-code data-v-e4e4508d" u-i="e4e4508d-7,e4e4508d-3" bind:__l="__l" u-p="{{p}}"><text class="codetext data-v-e4e4508d">{{n}}</text></up-button></view></up-form-item></view></up-form><view wx:if="{{t}}" class="row data-v-e4e4508d"><up-button wx:if="{{w}}" bindclick="{{v}}" class="custom-style data-v-e4e4508d" u-i="e4e4508d-8" bind:__l="__l" u-p="{{w}}"></up-button></view><view wx:else class="row data-v-e4e4508d" style="margin-top:120rpx"><up-button wx:if="{{x}}" class="custom-style data-v-e4e4508d" bindgetphonenumber="{{y}}" u-i="e4e4508d-9" bind:__l="__l" u-p="{{z}}"></up-button><up-button wx:else class="custom-style data-v-e4e4508d" bindclick="{{A}}" u-i="e4e4508d-10" bind:__l="__l" u-p="{{B||''}}"></up-button></view><view class="row data-v-e4e4508d"><view class="left data-v-e4e4508d" bindtap="{{D}}">{{C}}</view><view class="right data-v-e4e4508d" bindtap="{{E}}"> 注册 </view></view><view class="row data-v-e4e4508d" style="margin-top:10rpx"><radio-group class="data-v-e4e4508d" bindtap="{{G}}" labelDisabled="{{true}}"><label class="radio data-v-e4e4508d"><radio class="data-v-e4e4508d" labelDisabled="{{true}}" value="1" checked="{{F}}" color="rgb(41, 121, 255)"/> 我已阅读并同意<navigator class="agree data-v-e4e4508d">《用户协议》</navigator></label></radio-group></view><view class="row data-v-e4e4508d"><view class="tip data-v-e4e4508d">操作说明</view></view><view class="line data-v-e4e4508d"><view class="qq data-v-e4e4508d">1、</view> 肝胆相照注册账号与微信绑定,肝胆相照相关直播、视频无忧随心看 </view><view class="line data-v-e4e4508d"><view class="qq data-v-e4e4508d">2、</view> 仅需操作一次,后续通过微信观看直播、视频无需额外操作,立即进入 </view><view class="line data-v-e4e4508d"><view class="qq data-v-e4e4508d">3、</view> 若您还未注册肝胆相照专家版App, 请直接点击“注册”进行注册操作 </view><view class="desc data-v-e4e4508d"> 若您有任何疑问或需要我们协助,请与您的小助手联系或直接微信联系<text class="red data-v-e4e4508d">igandan1000</text></view></view>
<view class="logincontent data-v-e4e4508d"><view class="title data-v-e4e4508d">欢迎登录</view><up-form wx:if="{{s}}" class="r data-v-e4e4508d" u-s="{{['d']}}" u-r="form" u-i="e4e4508d-0" bind:__l="__l" u-p="{{s}}"><up-form-item wx:if="{{a}}" class="data-v-e4e4508d" u-s="{{['d']}}" u-i="e4e4508d-1,e4e4508d-0" bind:__l="__l" u-p="{{d}}"><up-input wx:if="{{c}}" class="data-v-e4e4508d" u-i="e4e4508d-2,e4e4508d-1" bind:__l="__l" bindupdateModelValue="{{b}}" u-p="{{c}}"></up-input></up-form-item><view wx:if="{{e}}" class="smsbox data-v-e4e4508d"><up-form-item wx:if="{{q}}" class="data-v-e4e4508d" u-s="{{['right','d']}}" u-i="e4e4508d-3,e4e4508d-0" bind:__l="__l" u-p="{{q}}"><up-input wx:if="{{g}}" class="data-v-e4e4508d" u-i="e4e4508d-4,e4e4508d-3" bind:__l="__l" bindupdateModelValue="{{f}}" u-p="{{g}}"></up-input><view class="wrap data-v-e4e4508d" slot="right"><up-toast class="r data-v-e4e4508d" u-r="uToastRef" u-i="e4e4508d-5,e4e4508d-3" bind:__l="__l"></up-toast><up-code wx:if="{{m}}" class="r data-v-e4e4508d" bindend="{{j}}" bindstart="{{k}}" u-r="uCodeRef" bindchange="{{l}}" u-i="e4e4508d-6,e4e4508d-3" bind:__l="__l" u-p="{{m}}"></up-code><up-button wx:if="{{p}}" u-s="{{['d']}}" bindtap="{{o}}" class="custom-code data-v-e4e4508d" u-i="e4e4508d-7,e4e4508d-3" bind:__l="__l" u-p="{{p}}"><text class="codetext data-v-e4e4508d">{{n}}</text></up-button></view></up-form-item></view></up-form><view wx:if="{{t}}" class="row data-v-e4e4508d"><up-button wx:if="{{w}}" bindclick="{{v}}" class="custom-style data-v-e4e4508d" u-i="e4e4508d-8" bind:__l="__l" u-p="{{w}}"></up-button></view><view wx:else class="row data-v-e4e4508d" style="margin-top:120rpx"><up-button wx:if="{{x}}" class="custom-style data-v-e4e4508d" bindgetphonenumber="{{y}}" u-i="e4e4508d-9" bind:__l="__l" u-p="{{z}}"></up-button><up-button wx:else class="custom-style data-v-e4e4508d" bindclick="{{A}}" u-i="e4e4508d-10" bind:__l="__l" u-p="{{B||''}}"></up-button></view><view class="row data-v-e4e4508d"><view class="left data-v-e4e4508d" bindtap="{{D}}">{{C}}</view><view class="right data-v-e4e4508d" bindtap="{{E}}"> 注册 </view></view><view class="row data-v-e4e4508d" style="margin-top:10rpx"><radio-group class="data-v-e4e4508d" bindtap="{{G}}" labelDisabled="{{true}}"><label class="radio data-v-e4e4508d"><radio class="data-v-e4e4508d" labelDisabled="{{true}}" value="1" checked="{{F}}" color="rgb(41, 121, 255)"/> 我已阅读并同意<navigator class="agree data-v-e4e4508d">《用户协议》</navigator></label></radio-group></view><view class="row data-v-e4e4508d"><view class="tip data-v-e4e4508d">操作说明</view></view><view class="line data-v-e4e4508d"> 若您还未注册肝胆相照专家版App, 请直接点击“注册”进行注册操作 </view><view class="desc data-v-e4e4508d"> 若您有任何疑问或需要我们协助,请与您的小助手联系或直接微信联系<text class="red data-v-e4e4508d">igandan1000</text></view></view>

View File

@ -60,7 +60,7 @@
padding: 0 30rpx;
}
.logincontent .row.data-v-e4e4508d {
margin-top: 30rpx;
margin-top: 40rpx;
display: flex;
justify-content: space-between;
padding: 0 30rpx;

View File

@ -2,6 +2,7 @@
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");
const uni_modules_svEditor_components_common_utils = require("../../uni_modules/sv-editor/components/common/utils.js");
if (!Array) {
const _easycom_up_toast2 = common_vendor.resolveComponent("up-toast");
@ -42,8 +43,9 @@ const _sfc_main = {
setup(__props) {
const uToast = common_vendor.ref(null);
const isLock = common_vendor.ref(false);
common_vendor.ref(false);
const isFlag = common_vendor.ref(false);
const delId = common_vendor.ref("");
common_vendor.ref(null);
const showModal = common_vendor.ref(false);
const delType = common_vendor.ref("delDraft");
const isPublish = common_vendor.ref(false);
@ -56,7 +58,9 @@ const _sfc_main = {
exchange_title: "",
exchange_content: "",
exchange_summary: "",
case_exchange_vote: {},
case_exchange_vote: {
vote_title: ""
},
case_exchange_label: []
});
const voteData = common_vendor.reactive({
@ -68,6 +72,8 @@ const _sfc_main = {
}
]
});
const videoface = common_vendor.ref("https://caseplatform.oss-cn-beijing.aliyuncs.com/prod/static/shipinfengmian.jpg");
const showQuit = common_vendor.ref(false);
common_vendor.ref("");
const isConfirmPublish = common_vendor.ref(false);
const showVote = common_vendor.ref(false);
@ -81,11 +87,12 @@ const _sfc_main = {
const isFocusInfo = common_vendor.ref(false);
const isFocusResult = common_vendor.ref(false);
const labelList = common_vendor.ref([]);
const infoHeight = common_vendor.ref(100);
const pEditorRef = common_vendor.ref(null);
const infoHeight = common_vendor.ref(300);
let inithtmlString = "<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/><br/>";
const infoHtml = common_vendor.ref(inithtmlString);
const resultHtml = common_vendor.ref("");
const resultHeight = common_vendor.ref(100);
const resultHeight = common_vendor.ref(300);
const showInfoOpacity = common_vendor.ref(true);
const level = common_vendor.ref(1);
const freshKey = common_vendor.ref(0);
@ -108,6 +115,24 @@ const _sfc_main = {
list2: [],
list3: []
});
const cancelQuit = () => {
showQuit.value = false;
};
const confirmQuit = () => {
showQuit.value = false;
goBack();
};
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 goBack = () => {
common_vendor.index.navigateBack({
delta: 1
@ -118,39 +143,50 @@ const _sfc_main = {
showEditor.value = false;
};
const changeEditor = (data) => {
common_vendor.index.__f__("log", "at pages/publish/publish.vue:682", "content");
common_vendor.index.__f__("log", "at pages/publish/publish.vue:683", data.content);
showEditor.value = false;
if (data.type == "info") {
infoHtml.value = data.content;
form.exchange_content = data.content;
infoHeight.value = 600;
editorCtx.value.initHtml(data.content, async (videoUrl) => {
let res = "";
const fox = common_assets.videoface;
res = await editorCtx.value.createCoverThumbnail(fox);
showEditor.value = false;
common_vendor.index.__f__("log", "at pages/publish/publish.vue:692", videoface.value);
res = await editorCtx.value.createCoverThumbnail(videoface.value);
return res;
}, async () => {
});
setTimeout(() => {
const query = common_vendor.wx$1.createSelectorQuery();
query.select("#infoContent").boundingClientRect(function(rect) {
common_vendor.index.__f__("log", "at pages/publish/publish.vue:658", rect.height);
infoHeight.value = rect.height + 10;
}).exec();
}, 0);
setTimeout(async () => {
let info_str = await editorCtx.value.getLastContent();
infoHtml.value = info_str.html;
setTimeout(() => {
const query = common_vendor.wx$1.createSelectorQuery();
query.select("#infoContent").boundingClientRect(function(rect) {
common_vendor.index.__f__("log", "at pages/publish/publish.vue:708", rect.height);
infoHeight.value = rect.height + 10;
}).exec();
}, 1e3);
}, 1e3);
} else {
resultHtml.value = data.content;
form.exchange_summary = data.content;
editorCtxResult.value.initHtml(data.content, async (videoUrl) => {
let res = "";
const fox = common_assets.videoface;
res = await editorCtx.value.createCoverThumbnail(fox);
showEditor.value = false;
res = await editorCtxResult.value.createCoverThumbnail(videoface.value);
return res;
}, async () => {
});
setTimeout(() => {
const query = common_vendor.wx$1.createSelectorQuery();
query.select("#resultContent").boundingClientRect(function(rect) {
common_vendor.index.__f__("log", "at pages/publish/publish.vue:680", rect.height);
resultHeight.value = rect.height + 10;
}).exec();
}, 0);
setTimeout(async () => {
let info_str = await editorCtxResult.value.getLastContent();
resultHtml.value = info_str.html;
setTimeout(() => {
const query = common_vendor.wx$1.createSelectorQuery();
query.select("#resultContent").boundingClientRect(function(rect) {
common_vendor.index.__f__("log", "at pages/publish/publish.vue:734", rect.height);
resultHeight.value = rect.height + 10;
toTop();
}).exec();
}, 1e3);
}, 1e3);
}
};
const openDraftList = () => {
@ -158,7 +194,7 @@ const _sfc_main = {
showDraft.value = true;
};
const epaste = (e) => {
common_vendor.index.__f__("log", "at pages/publish/publish.vue:696", e);
common_vendor.index.__f__("log", "at pages/publish/publish.vue:751", e);
};
const alertVote = () => {
if (exchange_id.value) {
@ -219,13 +255,29 @@ const _sfc_main = {
});
return false;
}
if (voteData.case_exchange_vote_option.length == 0) {
if (voteData.case_exchange_vote_option.length < 2) {
common_vendor.index.showToast({
title: "请添加投票选项",
title: "请至少设置2个选项",
icon: "none"
});
return false;
}
for (let i = 0; i < voteData.case_exchange_vote_option.length; i++) {
if (voteData.case_exchange_vote_option[i].option_value == "") {
common_vendor.index.showToast({
title: "投票选项不能为空",
icon: "none"
});
return false;
}
if (voteData.case_exchange_vote_option[i].option_value.length > 16) {
common_vendor.index.showToast({
title: "第" + (i + 1) + "个投票选项超过16个字符",
icon: "none"
});
return false;
}
}
form.case_exchange_vote = voteData;
showVote.value = false;
};
@ -247,37 +299,34 @@ const _sfc_main = {
}
};
const ready = (e) => {
common_vendor.index.__f__("log", "at pages/publish/publish.vue:814", e);
common_vendor.index.__f__("log", "at pages/publish/publish.vue:870", e);
editorCtx.value = e;
let html = "<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p><br/><br/>";
editorCtx.value.initHtml(html);
common_vendor.index.hideKeyboard();
common_vendor.index.pageScrollTo({
scrollTop: 0,
selector: "#form"
// })
});
toTop();
};
const readyResult = (e) => {
editorCtxResult.value = e;
toTop();
setTimeout(() => {
if (exchange_id.value) {
getExchangeDetail(exchange_id.value);
}
common_vendor.index.hideLoading();
});
};
const focusInfo = async () => {
isFocusInfo.value = true;
const res = await editorCtx.value.getLastContent();
editorCotent.value = res.html;
editorCotent.value = editorCtx.value.exportHtml(res.html);
common_vendor.index.__f__("log", "at pages/publish/publish.vue:906", "focus");
common_vendor.index.__f__("log", "at pages/publish/publish.vue:907", "editorCotent.value");
common_vendor.index.__f__("log", "at pages/publish/publish.vue:908", editorCotent.value);
showEditor.value = true;
editorType.value = "info";
};
const focusResult = async () => {
isFocusResult.value = true;
const res = await editorCtxResult.value.getLastContent();
editorCotent.value = res.html;
editorCotent.value = editorCtxResult.value.exportHtml(res.html);
editorType.value = "result";
showEditor.value = true;
};
@ -312,6 +361,7 @@ const _sfc_main = {
}
api_api.api.saveDraft(form).then((res2) => {
isLock.value = false;
goBack();
common_vendor.index.showToast({
title: "保存成功",
icon: "none"
@ -321,7 +371,7 @@ const _sfc_main = {
};
const getExchangeDetail = (id) => {
api_api.api.getExchangeDetail(id).then((res) => {
common_vendor.index.__f__("log", "at pages/publish/publish.vue:954", res.data.data);
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1017", res.data.data);
let {
exchange_content,
exchange_title,
@ -329,23 +379,17 @@ const _sfc_main = {
exchange_summary,
exchange_vote
} = res.data.data;
editorCtx.value.initHtml(exchange_content, async (videoUrl) => {
let res2;
const fox = common_assets.videoface;
res2 = await editorCtx.value.createCoverThumbnail(fox);
return res2;
changeEditor({
type: "info",
content: exchange_content
});
form.exchange_content = exchange_content;
form.exchange_title = exchange_title;
form.case_exchange_label = exchange_label ? exchange_label : [];
labelList.value = exchange_label ? exchange_label : [];
form.exchange_summary = exchange_summary;
form.case_exchange_vote = exchange_vote;
editorCtxResult.value.initHtml(exchange_summary, async (videoUrl) => {
let res2;
const fox = common_assets.videoface;
res2 = await editorCtxResult.value.createCoverThumbnail(fox);
return res2;
form.case_exchange_vote = exchange_vote ? exchange_vote : {};
changeEditor({
type: "result",
content: exchange_summary
});
Object.assign(voteData, exchange_vote);
});
@ -359,14 +403,25 @@ const _sfc_main = {
exchange_summary,
exchange_vote
} = draft;
editorCtx.value.initHtml(exchange_content);
form.exchange_content = exchange_content;
if (exchange_content) {
let html = editorCtx.value.exportHtml(exchange_content.replace("undefined", ""));
changeEditor({
type: "info",
content: html
});
}
if (exchange_content) {
let html = editorCtxResult.value.exportHtml(exchange_summary.replace("undefined", ""));
changeEditor({
type: "result",
content: html
});
}
form.exchange_title = exchange_title;
form.case_exchange_label = exchange_label;
labelList.value = exchange_label;
form.case_exchange_label = exchange_label ? exchange_label : [];
labelList.value = exchange_label ? exchange_label : [];
form.exchange_summary = exchange_summary;
form.case_exchange_vote = exchange_vote;
editorCtxResult.value.initHtml(exchange_summary);
form.case_exchange_vote = exchange_vote ? exchange_vote : {};
Object.assign(voteData, exchange_vote);
showDraft.value = false;
};
@ -377,7 +432,7 @@ const _sfc_main = {
};
const confirmDel = () => {
showModal.value = false;
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1022", delType.value);
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1090", delType.value);
if (delType.value == "delDraft") {
delDraft(delId.value);
} else if (delType.value == "saveDraft") {
@ -388,7 +443,7 @@ const _sfc_main = {
showModal.value = false;
if (delType.value == "saveDraft") {
goBack();
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1034", "wee");
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1102", "wee");
}
};
const cancelConfirmPublish = () => {
@ -404,20 +459,95 @@ const _sfc_main = {
});
};
const alertSave = async () => {
if (isPublish.value || exchange_id.value) {
goBack();
if (exchange_id.value) {
showQuit.value = true;
} else {
const res = await editorCtx.value.getLastContent();
const initInfo = "<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p>";
const resContent = await editorCtxResult.value.getLastContent();
if (form.exchange_title || res.html != initInfo || resContent.text || form.case_exchange_vote && form.case_exchange_vote.vote_title && form.case_exchange_label && form.case_exchange_label.length > 0) {
delType.value = "saveDraft";
showModal.value = true;
} else {
if (isPublish.value) {
goBack();
} else {
const res = await editorCtx.value.getLastContent();
const initInfo = "<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p>";
const resContent = await editorCtxResult.value.getLastContent();
if (form.exchange_title || res.html != initInfo || resContent.text || form.case_exchange_vote && form.case_exchange_vote.vote_title && form.case_exchange_label && form.case_exchange_label.length > 0) {
delType.value = "saveDraft";
showModal.value = true;
} else {
goBack();
}
}
}
};
const confirmConfirmPublish = () => {
isConfirmPublish.value = false;
publish();
};
const publish = utils_throttle.throttle(async () => {
const initInfo = "<p>【患者信息】:</p><br/><p>【主诉】:</p><br/><p>【现病史及既往史】:</p><br/><p>【检查】:</p><br/><p>【临床诊断】:</p><br/><p>【治疗经过及结果】:</p>";
if (form.exchange_title == "") {
common_vendor.index.showToast({
title: "请输入标题",
icon: "none"
});
return false;
}
if (form.exchange_title.length > 40) {
common_vendor.index.showToast({
title: "标题不超过40个字",
icon: "none"
});
return false;
}
if (form.exchange_content == "") {
common_vendor.index.showToast({
title: "请编辑病例信息",
icon: "none"
});
return false;
}
if (form.exchange_content == initInfo) {
common_vendor.index.showToast({
title: "请编辑病例信息",
icon: "none"
});
return false;
}
if (!(form.case_exchange_vote && form.case_exchange_vote.vote_title)) {
delete form.case_exchange_vote;
}
if (!form.case_exchange_label || form.case_exchange_label && form.case_exchange_label.length == 0) {
delete form.case_exchange_label;
}
form.case_exchange_label = labelList.value;
if (isLock.value)
return false;
isFlag.value = true;
if (form.exchange_summary == "<p><br></p>") {
form.exchange_summary == "";
}
if (exchange_id.value) {
api_api.api.updateExchange(exchange_id.value, form).then((res) => {
common_vendor.index.showToast({
title: "修改成功",
icon: "none",
duration: 2e3
});
isFlag.value = false;
isPublish.value = true;
common_vendor.index.navigateBack();
});
} else {
api_api.api.addExchange(form).then((res) => {
common_vendor.index.showToast({
title: "发布成功",
icon: "none",
duration: 2e3
});
isFlag.value = false;
isPublish.value = true;
common_vendor.index.navigateBack();
});
}
});
const insertWord = (word) => {
uni_modules_svEditor_components_common_utils.addText(word);
showTitle.value = false;
@ -480,7 +610,7 @@ const _sfc_main = {
break;
}
}
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1360", caseValue1);
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1446", caseValue1);
getCaseLabel(2, e);
};
const groupChange2 = (e) => {
@ -579,7 +709,7 @@ const _sfc_main = {
}
}
labelList.value = labelList.value.filter((item, index) => labelList.value.findIndex((i) => i.app_iden === item.app_iden) === index);
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1478", labelList.value);
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1564", labelList.value);
showCase.value = false;
};
const closeCase = () => {
@ -602,14 +732,12 @@ const _sfc_main = {
type: "loading",
title: "正在加载",
message: "正在加载",
duration: 1e3
duration: 1500
});
});
common_vendor.onLoad((optoions) => {
if (optoions.exchange_id) {
exchange_id.value = optoions.exchange_id;
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1511", 1111);
common_vendor.index.__f__("log", "at pages/publish/publish.vue:1512", exchange_id.value);
common_vendor.onLoad((options) => {
if (options.exchange_id) {
exchange_id.value = options.exchange_id;
}
});
return (_ctx, _cache) => {
@ -619,50 +747,54 @@ const _sfc_main = {
}),
b: showEditor.value
}, showEditor.value ? {
c: common_vendor.o(closeEditor),
d: common_vendor.o(changeEditor),
e: common_vendor.p({
editorCotent: editorCotent.value,
c: common_vendor.sr(pEditorRef, "bfce3555-1", {
"k": "pEditorRef"
}),
d: common_vendor.o(closeEditor),
e: common_vendor.o(changeEditor),
f: common_vendor.p({
editorCotent: editorType.value == "info" ? form.exchange_content : form.exchange_summary,
editorType: editorType.value
})
} : {}, {
f: common_vendor.p({
g: common_vendor.p({
name: "arrow-left",
color: "#000",
size: "24"
}),
g: common_vendor.o(alertSave),
h: common_vendor.o(($event) => form.exchange_title = $event),
i: common_vendor.p({
h: common_vendor.o(alertSave),
i: common_vendor.t(exchange_id.value ? "编辑病例交流帖" : "发病例交流帖"),
j: common_vendor.o(($event) => form.exchange_title = $event),
k: common_vendor.p({
autoHeight: true,
placeholder: "输入标题,可包含患者信息、主诉",
modelValue: form.exchange_title
}),
j: common_vendor.o(focusInfo),
k: fromatImg(infoHtml.value),
l: common_vendor.o(ready),
m: common_vendor.o(changeInfoEditor),
n: common_vendor.o(epaste),
o: common_vendor.p({
l: common_vendor.o(focusInfo),
m: fromatImg(infoHtml.value),
n: common_vendor.o(ready),
o: common_vendor.o(changeInfoEditor),
p: common_vendor.o(epaste),
q: common_vendor.p({
placeholder: "患者基本情况,检查结果,诊疗图片或视频",
eid: "editor-id",
pasteMode: "origin",
readOnly: "true"
}),
p: showInfoOpacity.value ? 1 : "",
q: infoHeight.value + "px",
r: common_vendor.o(focusResult),
s: fromatImg(resultHtml.value),
t: common_vendor.o(readyResult),
v: common_vendor.o(changeResEditor),
w: common_vendor.p({
r: showInfoOpacity.value ? 1 : "",
s: infoHeight.value + "px",
t: common_vendor.o(focusResult),
v: fromatImg(resultHtml.value),
w: common_vendor.o(readyResult),
x: common_vendor.o(changeResEditor),
y: common_vendor.p({
placeholder: "分享经验和心得,如:诊断与鉴别诊断易错点,治疗过程难点,病例的相关知识总结及讨论等",
eid: "editorResult",
readOnly: true
}),
x: showOpacity.value ? 1 : "",
y: resultHeight.value + "px",
z: common_vendor.f(labelList.value, (item, index, i0) => {
z: showOpacity.value ? 1 : "",
A: resultHeight.value + "px",
B: common_vendor.f(labelList.value, (item, index, i0) => {
return {
a: common_vendor.t(item.label_name),
b: "bfce3555-6-" + i0,
@ -670,45 +802,50 @@ const _sfc_main = {
d: item.app_iden
};
}),
A: common_vendor.p({
C: common_vendor.p({
name: "close-circle",
color: "#3CC7C0",
size: "20"
}),
B: common_vendor.p({
D: common_vendor.p({
name: "plus",
color: "#3CC7C0",
size: "16"
}),
C: common_vendor.o(openLabelPop),
D: common_vendor.o(openDraftList),
E: form.case_exchange_vote.vote_title
E: common_vendor.o(openLabelPop),
F: scrollTop.value,
G: common_vendor.o(scroll),
H: !exchange_id.value
}, !exchange_id.value ? {
I: common_vendor.o(openDraftList)
} : {}, {
J: form.case_exchange_vote.vote_title
}, form.case_exchange_vote.vote_title ? {
F: common_vendor.p({
K: common_vendor.p({
src: common_vendor.unref(common_assets.voteOnImg),
width: "47rpx",
height: "47rpx"
})
} : {
G: common_vendor.p({
L: common_vendor.p({
src: common_vendor.unref(common_assets.voteImg),
width: "47rpx",
height: "47rpx"
})
}, {
H: form.case_exchange_vote.vote_title ? 1 : "",
I: common_vendor.o(alertVote),
J: common_vendor.o(($event) => isConfirmPublish.value = true),
K: common_vendor.o(closeVote),
L: common_vendor.o(saveVote),
M: common_vendor.o(($event) => voteData.vote_title = $event),
N: common_vendor.p({
M: form.case_exchange_vote.vote_title ? 1 : "",
N: common_vendor.o(alertVote),
O: common_vendor.o(($event) => isConfirmPublish.value = true),
P: common_vendor.o(closeVote),
Q: common_vendor.o(saveVote),
R: common_vendor.o(($event) => voteData.vote_title = $event),
S: common_vendor.p({
placeholder: "请输入投票标题",
border: "surround",
clearable: true,
modelValue: voteData.vote_title
}),
O: common_vendor.f(voteData.case_exchange_vote_option, (item, index, i0) => {
T: common_vendor.f(voteData.case_exchange_vote_option, (item, index, i0) => {
return {
a: "bfce3555-12-" + i0 + ",bfce3555-10",
b: common_vendor.o(($event) => item.option_value = $event, index),
@ -723,59 +860,59 @@ const _sfc_main = {
f: index
};
}),
P: common_vendor.p({
U: common_vendor.p({
name: "minus-circle",
color: "red",
size: "28"
}),
Q: common_vendor.p({
V: common_vendor.p({
name: "plus",
color: "#4B5563",
size: "18"
}),
R: common_vendor.o(addOption),
S: common_vendor.p({
W: common_vendor.o(addOption),
X: common_vendor.p({
name: "minus",
color: "#4B5563",
size: "30rpx",
bold: true
}),
T: common_vendor.o(($event) => changeDay("minus")),
U: common_vendor.t(voteData.valid_day),
V: common_vendor.p({
Y: common_vendor.o(($event) => changeDay("minus")),
Z: common_vendor.t(voteData.valid_day),
aa: common_vendor.p({
name: "plus",
color: "#4B5563",
size: "30rpx",
bold: true
}),
W: common_vendor.o(($event) => changeDay("plus")),
X: common_vendor.o(saveVote),
Y: common_vendor.o(clearVote),
Z: common_vendor.o(closeVote),
aa: common_vendor.o(openVote),
ab: common_vendor.p({
ab: common_vendor.o(($event) => changeDay("plus")),
ac: common_vendor.o(saveVote),
ad: common_vendor.o(clearVote),
ae: common_vendor.o(closeVote),
af: common_vendor.o(openVote),
ag: common_vendor.p({
round: 10,
show: showVote.value,
mode: "bottom"
}),
ac: common_vendor.p({
ah: common_vendor.p({
name: "close",
color: "#4B5563",
size: "20"
}),
ad: common_vendor.o(closeDraft),
ae: draftList.value.length == 0
ai: common_vendor.o(closeDraft),
aj: draftList.value.length == 0
}, draftList.value.length == 0 ? {
af: common_vendor.p({
ak: common_vendor.p({
marginTop: "120rpx",
text: "草稿箱为空",
mode: "list",
icon: common_vendor.unref(common_assets.draftImg)
})
} : {}, {
ag: draftList.value.length > 0
al: draftList.value.length > 0
}, draftList.value.length > 0 ? {
ah: common_vendor.f(draftList.value, (item, index, i0) => {
am: common_vendor.f(draftList.value, (item, index, i0) => {
return common_vendor.e({
a: common_vendor.t(item.exchange_title ? item.exchange_title : "无标题"),
b: item.exchange_content
@ -794,136 +931,144 @@ const _sfc_main = {
b: cell.label_name
};
})
}) : item.exchange_vote ? {
k: common_vendor.t(item.exchange_vote.vote_title)
} : {}, {
}) : item.exchange_vote ? common_vendor.e({
k: item.exchange_vote
}, item.exchange_vote ? {
l: common_vendor.t(item.exchange_vote.vote_title)
} : {}) : {}, {
d: item.exchange_summary,
g: item.exchange_label && item.exchange_label.length > 0,
j: item.exchange_vote,
l: common_vendor.t(fromatDay(item.updated_at)),
m: "bfce3555-20-" + i0 + ",bfce3555-17",
n: common_vendor.o(($event) => willDelDraft(item.draft_id), item.draft_id),
o: "bfce3555-21-" + i0 + ",bfce3555-17",
p: common_vendor.o(($event) => editDraft(index), item.draft_id),
q: item.draft_id
m: common_vendor.t(fromatDay(item.updated_at)),
n: "bfce3555-20-" + i0 + ",bfce3555-17",
o: common_vendor.o(($event) => willDelDraft(item.draft_id), item.draft_id),
p: "bfce3555-21-" + i0 + ",bfce3555-17",
q: common_vendor.o(($event) => editDraft(index), item.draft_id),
r: item.draft_id
});
}),
ai: common_vendor.p({
an: common_vendor.p({
name: "trash",
color: "#4B5563",
size: "16"
}),
aj: common_vendor.p({
ao: common_vendor.p({
name: "edit-pen",
color: "#fff",
size: "17"
})
} : {}, {
ak: common_vendor.o(closeDraft),
al: common_vendor.o(openDraft),
am: common_vendor.p({
ap: common_vendor.o(closeDraft),
aq: common_vendor.o(openDraft),
ar: common_vendor.p({
round: 10,
zIndex: "9",
show: showDraft.value,
mode: "bottom"
}),
an: common_vendor.p({
as: common_vendor.p({
name: "close",
color: "#4B5563",
size: "20"
}),
ao: common_vendor.o(closeTitle),
ap: common_vendor.o(insertAllWord),
aq: common_vendor.p({
at: common_vendor.o(closeTitle),
av: common_vendor.o(insertAllWord),
aw: common_vendor.p({
name: "plus-circle",
color: "#3CC7C0",
size: "20"
}),
ar: common_vendor.o(insertAllWord),
as: common_vendor.o(($event) => insertWord("患者信息")),
at: common_vendor.o(($event) => insertWord("主诉")),
av: common_vendor.o(($event) => insertWord("现病史及既往史")),
aw: common_vendor.o(($event) => insertWord("检查")),
ax: common_vendor.o(($event) => insertWord("临床诊断")),
ay: common_vendor.o(($event) => insertWord("治疗经过及结果")),
az: common_vendor.o(closeTitle),
aA: common_vendor.o(openTitle),
aB: common_vendor.p({
ax: common_vendor.o(insertAllWord),
ay: common_vendor.o(($event) => insertWord("患者信息")),
az: common_vendor.o(($event) => insertWord("主诉")),
aA: common_vendor.o(($event) => insertWord("现病史及既往史")),
aB: common_vendor.o(($event) => insertWord("检查")),
aC: common_vendor.o(($event) => insertWord("临床诊断")),
aD: common_vendor.o(($event) => insertWord("治疗经过及结果")),
aE: common_vendor.o(closeTitle),
aF: common_vendor.o(openTitle),
aG: common_vendor.p({
round: 10,
zIndex: "9",
show: showTitle.value,
mode: "bottom"
}),
aC: delType.value == "delDraft"
aH: delType.value == "delDraft"
}, delType.value == "delDraft" ? {} : delType.value == "saveDraft" ? {} : {}, {
aD: delType.value == "saveDraft",
aE: common_vendor.o(cancelDel),
aF: common_vendor.o(confirmDel),
aG: common_vendor.p({
aI: delType.value == "saveDraft",
aJ: common_vendor.o(cancelDel),
aK: common_vendor.o(confirmDel),
aL: common_vendor.p({
show: showModal.value,
["mask-click-able"]: true,
zIndex: "99"
}),
aH: exchange_id.value
}, exchange_id.value ? {} : {}, {
aI: common_vendor.o(cancelConfirmPublish),
aJ: common_vendor.o((...args) => _ctx.confirmConfirmPublish && _ctx.confirmConfirmPublish(...args)),
aK: common_vendor.p({
aM: common_vendor.o(cancelQuit),
aN: common_vendor.o(confirmQuit),
aO: common_vendor.p({
show: showQuit.value,
["mask-click-able"]: true,
zIndex: "99"
}),
aP: common_vendor.o(cancelConfirmPublish),
aQ: common_vendor.o(confirmConfirmPublish),
aR: common_vendor.p({
show: isConfirmPublish.value,
["mask-click-able"]: true,
zIndex: "99"
}),
aL: common_vendor.o(cancelCase),
aM: common_vendor.o(confirmCase),
aN: common_vendor.t(!caseValue1.label_name ? "请选择选项" : caseValue1.label_name),
aO: common_vendor.p({
aS: common_vendor.o(cancelCase),
aT: common_vendor.o(confirmCase),
aU: common_vendor.t(!caseValue1.label_name ? "请选择选项" : caseValue1.label_name),
aV: common_vendor.p({
name: "arrow-right"
}),
aP: common_vendor.o(($event) => openCaseLevel("1")),
aQ: caseValue1.label_name && labelObj.list2.length > 0
aW: common_vendor.o(($event) => openCaseLevel("1")),
aX: caseValue1.label_name && labelObj.list2.length > 0
}, caseValue1.label_name && labelObj.list2.length > 0 ? {
aR: common_vendor.t(!caseValue2.label_name ? "请选择选项" : caseValue2.label_name),
aS: common_vendor.p({
name: "arrow-right"
}),
aT: common_vendor.o(($event) => openCaseLevel("2"))
} : {}, {
aU: caseValue2.label_name && labelObj.list3.length > 0
}, caseValue2.label_name && labelObj.list3.length > 0 ? {
aV: common_vendor.t(!caseValue3.label_name ? "请选择选项" : caseValue3.label_name),
aW: common_vendor.p({
name: "arrow-right"
}),
aX: common_vendor.o(($event) => openCaseLevel("3"))
} : {}, {
aY: freshKey.value,
aY: common_vendor.t(!caseValue2.label_name ? "请选择选项" : caseValue2.label_name),
aZ: common_vendor.p({
name: "arrow-right"
}),
ba: common_vendor.o(($event) => openCaseLevel("2"))
} : {}, {
bb: caseValue2.label_name && labelObj.list3.length > 0
}, caseValue2.label_name && labelObj.list3.length > 0 ? {
bc: common_vendor.t(!caseValue3.label_name ? "请选择选项" : caseValue3.label_name),
bd: common_vendor.p({
name: "arrow-right"
}),
be: common_vendor.o(($event) => openCaseLevel("3"))
} : {}, {
bf: freshKey.value,
bg: common_vendor.p({
current: level.value - 1,
direction: "column"
}),
ba: common_vendor.f(labelObj.list1, (item, k0, i0) => {
bh: common_vendor.f(labelObj.list1, (item, k0, i0) => {
return {
a: "bfce3555-36-" + i0 + ",bfce3555-35",
a: "bfce3555-37-" + i0 + ",bfce3555-36",
b: common_vendor.p({
activeColor: "#3CC7C0 ",
label: item.label_name,
name: item.app_iden
}),
c: item.app_iden
c: item.app_iden,
d: item.label_name != "热门话题"
};
}),
bb: common_vendor.o(groupChange1),
bc: common_vendor.o(($event) => caseValue1.app_iden = $event),
bd: common_vendor.p({
bi: common_vendor.o(groupChange1),
bj: common_vendor.o(($event) => caseValue1.app_iden = $event),
bk: common_vendor.p({
name: "group1",
iconPlacement: "right",
placement: "column",
modelValue: caseValue1.app_iden
}),
be: level.value == 1,
bf: common_vendor.f(labelObj.list2, (item, k0, i0) => {
bl: level.value == 1,
bm: common_vendor.f(labelObj.list2, (item, k0, i0) => {
return {
a: "bfce3555-38-" + i0 + ",bfce3555-37",
a: "bfce3555-39-" + i0 + ",bfce3555-38",
b: common_vendor.p({
activeColor: "#3CC7C0 ",
label: item.label_name,
@ -932,18 +1077,18 @@ const _sfc_main = {
c: item.app_iden
};
}),
bg: common_vendor.o(groupChange2),
bh: common_vendor.o(($event) => caseValue2.app_iden = $event),
bi: common_vendor.p({
bn: common_vendor.o(groupChange2),
bo: common_vendor.o(($event) => caseValue2.app_iden = $event),
bp: common_vendor.p({
name: "group2",
iconPlacement: "right",
placement: "column",
modelValue: caseValue2.app_iden
}),
bj: level.value == 2,
bk: common_vendor.f(labelObj.list3, (item, k0, i0) => {
bq: level.value == 2,
br: common_vendor.f(labelObj.list3, (item, k0, i0) => {
return {
a: "bfce3555-40-" + i0 + ",bfce3555-39",
a: "bfce3555-41-" + i0 + ",bfce3555-40",
b: common_vendor.p({
activeColor: "#3CC7C0 ",
label: item.label_name,
@ -952,17 +1097,17 @@ const _sfc_main = {
c: item.app_iden
};
}),
bl: common_vendor.o(groupChange3),
bm: common_vendor.o(($event) => caseValue3.app_iden = $event),
bn: common_vendor.p({
bs: common_vendor.o(groupChange3),
bt: common_vendor.o(($event) => caseValue3.app_iden = $event),
bv: common_vendor.p({
name: "group3",
iconPlacement: "right",
placement: "column",
modelValue: caseValue3.app_iden
}),
bo: level.value == 3,
bp: common_vendor.o(closeCase),
bq: common_vendor.p({
bw: level.value == 3,
bx: common_vendor.o(closeCase),
by: common_vendor.p({
round: 10,
zIndex: "9",
closeOnClickOverlay: false,

File diff suppressed because one or more lines are too long

View File

@ -270,6 +270,7 @@
}
#editor.data-v-bfce3555 {
position: relative;
z-index: 2;
padding: 0 10rpx;
min-height: 600rpx;
}
@ -285,7 +286,11 @@
opacity: 0;
}
#editor .infoContent.data-v-bfce3555 {
position: relative;
z-index: 2;
background: #fff;
margin: 0 32rpx;
word-wrap: break-word;
word-break: break-all;
/* position: relative;
z-index:2; */
@ -307,7 +312,7 @@
top: 0;
width: 100%;
bottom: 0;
z-index: 1;
z-index: -1;
opacity: 1;
}
#editorRes .editorcon.active.data-v-bfce3555 {
@ -315,6 +320,7 @@
}
#editorRes .resultContent.data-v-bfce3555 {
margin: 0 32rpx;
word-wrap: break-word;
word-break: break-all;
}
#editorRes .mask.data-v-bfce3555 {
@ -636,9 +642,9 @@
display: flex;
align-items: center;
justify-content: center;
margin-right: 25rpx;
}
.bottom .left .vote.data-v-bfce3555 {
margin-left: 25rpx;
width: 162rpx;
height: 86rpx;
background: rgba(0, 0, 0, 0);

View File

@ -3,7 +3,7 @@ const common_vendor = require("../../common/vendor.js");
const _sfc_main = {
__name: "register",
setup(__props) {
const src = common_vendor.ref("https://wx.igandan.com/hcp/toRegister?fromType=wx");
const src = common_vendor.ref("https://dev-wx.igandan.com/hcp/toRegister?fromType=wx");
common_vendor.reactive({
name: ""
});
@ -27,7 +27,7 @@ const _sfc_main = {
const { envVersion } = common_vendor.index.getAccountInfoSync().miniProgram;
common_vendor.index.__f__("log", "at pages/register/register.vue:142", envVersion);
if (envVersion == "release") {
src.value = "https://wx.igandan.com/hcp/toRegister";
src.value = "https://wx.igandan.com/hcp/toRegister?fromType=weChat";
} else {
src.value = "https://dev-wx.igandan.com/hcp/toRegister?fromType=weChat";
}

View File

@ -254,7 +254,7 @@ const _sfc_main = {
return common_vendor.dayjs(date).format("YYYY-MM-DD");
};
const goDetail = (id, isLink, src) => {
common_vendor.index.__f__("log", "at pages/search/search.vue:475", isLink);
common_vendor.index.__f__("log", "at pages/search/search.vue:476", isLink);
if (isLink == 1) {
api_api.api.readRecord({
type: isArticle.value ? 1 : 2,
@ -395,7 +395,7 @@ const _sfc_main = {
});
};
const queryList = (pageNo, pageSize) => {
common_vendor.index.__f__("log", "at pages/search/search.vue:629", 666666);
common_vendor.index.__f__("log", "at pages/search/search.vue:630", 666666);
const params = {
page: pageNo,
page_size: pageSize
@ -559,7 +559,8 @@ const _sfc_main = {
label: item.label_name,
name: item.app_iden
}),
c: item.app_iden
c: item.app_iden,
d: item.label_name != "热门话题"
};
}),
ab: common_vendor.o(groupChange1),

File diff suppressed because one or more lines are too long

View File

@ -42,6 +42,7 @@ const _sfc_main = {
const showModal = common_vendor.ref(false);
const showDeal = common_vendor.ref(false);
const is_selected = common_vendor.ref(0);
const navName = common_vendor.ref("肝胆相照病例交流园地");
const isMine = common_vendor.ref(false);
const paging = common_vendor.ref(null);
const dataList = common_vendor.ref([]);
@ -192,7 +193,7 @@ const _sfc_main = {
showDeal.value = true;
dealId.value = id;
vote.value = voteObj;
common_vendor.index.__f__("log", "at pages/specialList/specialList.vue:504", id);
common_vendor.index.__f__("log", "at pages/specialList/specialList.vue:507", id);
};
const alertDel = () => {
showDeal.value = false;
@ -241,6 +242,7 @@ const _sfc_main = {
}
if (options2.is_selected) {
is_selected.value = options2.is_selected;
navName.value = "肝胆相照精选病例交流";
}
if (options2.type == "mine") {
isMine.value = true;
@ -294,7 +296,7 @@ const _sfc_main = {
});
};
const queryList = (pageNo, pageSize) => {
common_vendor.index.__f__("log", "at pages/specialList/specialList.vue:615", 666666);
common_vendor.index.__f__("log", "at pages/specialList/specialList.vue:620", 666666);
const params = {
page: pageNo,
page_size: pageSize
@ -343,7 +345,7 @@ const _sfc_main = {
a: common_vendor.o(changeWord),
b: common_vendor.p({
searchWord: keyWord.value,
navName: "肝胆相照病例交流园地"
navName: navName.value
}),
c: showNum.value
}, showNum.value ? common_vendor.e({
@ -405,7 +407,7 @@ const _sfc_main = {
j: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id),
k: item.exchange_content_image && item.exchange_content_image.length > 0
}, item.exchange_content_image && item.exchange_content_image.length > 0 ? {
l: common_vendor.f(item.exchange_content_image, (unit, k1, i1) => {
l: common_vendor.f(item.exchange_content_image.splice(0, 3), (unit, k1, i1) => {
return {
a: "b2cb78f4-8-" + i0 + "-" + i1 + ",b2cb78f4-0",
b: common_vendor.p({
@ -413,14 +415,15 @@ const _sfc_main = {
radius: "10",
width: "220rpx",
height: "220rpx"
})
}),
c: unit
};
}),
m: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id)
} : {}, {
n: item.exchange_content_video && item.exchange_content_video.length > 0
}, item.exchange_content_video && item.exchange_content_video.length > 0 ? {
o: common_vendor.f(item.exchange_content_video, (videoCell, index, i1) => {
o: common_vendor.f(item.exchange_content_video.slice(0, 1), (videoCell, index, i1) => {
return {
a: index,
b: videoCell,
@ -430,9 +433,9 @@ const _sfc_main = {
p: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id)
} : {}, {
q: common_vendor.o(($event) => goDetail(item.exchange_id), item.exchange_id),
r: item.label && item.label.length > 0
}, item.label && item.label.length > 0 ? {
s: common_vendor.f(item.label, (cell, k1, i1) => {
r: item.exchange_label
}, item.exchange_label ? {
s: common_vendor.f(item.exchange_label, (cell, k1, i1) => {
return {
a: common_vendor.t(cell.label_name),
b: cell.exchange_label_id
@ -526,7 +529,8 @@ const _sfc_main = {
label: item.label_name,
name: item.app_iden
}),
c: item.app_iden
c: item.app_iden,
d: item.label_name != "热门话题"
};
}),
O: common_vendor.o(groupChange1),

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 174 KiB

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,5 @@
"use strict";
const uni_modules_svEditor_components_common_config = require("./config.js");
const common_vendor = require("../../../../common/vendor.js");
function parseHtmlWithVideo(richText) {
const imgRegex = /<img\s+([^>]+)>/gi;
const customUrlRegex = /\bdata-custom="[^"]*url=([^&"]+)/i;
@ -15,35 +15,44 @@ function parseHtmlWithVideo(richText) {
});
}
async function replaceVideoWithImageRender(richText, customCallback) {
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:52", 1);
const videoRegex = /<video\s+([^>]+)>(.*?)<\/video>/gi;
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:55", 2);
const matches = [];
let match;
while ((match = videoRegex.exec(richText)) !== null) {
matches.push(match);
}
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:62", 3);
const replacements = await Promise.all(
matches.map(async (match2) => {
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:67", 5);
const [fullMatch, attributes, content] = match2;
const sourceRegex = /<source\s+[^>]*src="([^">]+)"/i;
const matchSource = content.match(sourceRegex);
let videoUrl = "";
if (matchSource && matchSource.length > 1) {
videoUrl = matchSource[1];
matchSource[1];
}
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:80", "5-1");
let thumbnailRes;
if (customCallback)
thumbnailRes = await customCallback(videoUrl);
if (!thumbnailRes)
thumbnailRes = uni_modules_svEditor_components_common_config.config.video_thumbnail;
const filteredAttributes = attributes.split(/\s+/).filter((attr) => !attr.startsWith("controls")).join(" ");
const imgTag = `<img ${filteredAttributes} src="${thumbnailRes}" data-custom="url=${videoUrl}" />`;
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:83", "5-2");
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:86", "5-3");
thumbnailRes = "https://caseplatform.oss-cn-beijing.aliyuncs.com/prod/static/shipinfengmian.jpg";
const filteredAttributes = attributes.split(/\s+/).filter((attr) => !attr.startsWith("controls")).join(" ").replace("src=", "").replace("").replaceAll('width="100%"', "").replaceAll('"', "").replace(/\s+/g, "");
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:93", "5-4");
const imgTag = `<img src="${thumbnailRes}" data-custom="url=${filteredAttributes}">`;
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:96", 6);
return { fullMatch, imgTag };
})
);
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:99", 7);
let result = richText;
for (const { fullMatch, imgTag } of replacements) {
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:103", 8);
result = result.replace(fullMatch, imgTag);
}
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:106", "打印结果2");
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/common/parse.js:107", result);
return result;
}
exports.parseHtmlWithVideo = parseHtmlWithVideo;

View File

@ -138,13 +138,25 @@ const _sfc_main = {
});
};
this.editorCtx.initHtml = async (html, customCallback) => {
let transHtml = await uni_modules_svEditor_components_common_parse.replaceVideoWithImageRender(html, customCallback);
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/sv-editor/sv-editor.vue:310", "打印html");
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/sv-editor/sv-editor.vue:311", html);
let transHtml = await uni_modules_svEditor_components_common_parse.replaceVideoWithImageRender(html);
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/sv-editor/sv-editor.vue:313", "transHtml");
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/sv-editor/sv-editor.vue:314", transHtml);
setTimeout(() => {
this.editorCtx.setContents({
html: transHtml,
success: () => {
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/sv-editor/sv-editor.vue:323", "成功了");
this.editorCtx.changeInput();
this.editorCtx.blur();
},
fail: (err) => {
common_vendor.index.__f__("log", "at uni_modules/sv-editor/components/sv-editor/sv-editor.vue:333", "失败了");
common_vendor.index.showToast({
title: err,
icon: "none"
});
}
});
});

View File

@ -131,7 +131,7 @@ export const request = (url, data = {}, method = 'post', loading = false, conten
if(window.location.href.indexOf('//dev-casedata.igandan.com') == -1) {
H5url = 'https://wx.igandan.com'
}
window.location.href = H5url + "/hcp/Signup2020online_tologin?back_url=" + encodeURIComponent(window.location.href);
//window.location.href = H5url + "/hcp/Signup2020online_tologin?back_url=" + encodeURIComponent(window.location.href);
}
}else{
let freeList = ['/login/wechat/mobile', '/code/phone', '/login/mobile_login', '/index', '/user/check'];