This commit is contained in:
2025-08-14 16:49:58 +08:00
parent b2009403d8
commit 26c1ac5ced
15 changed files with 1144 additions and 351 deletions

View File

@@ -2,44 +2,81 @@
<view
class="content"
:class="`${options.type == 'detail' ? 'content_detail' : ''}`"
:style="options.statusId == 0 ? 'background-color: #f0f0f026;' : ''"
>
<u-loading-page
:loading="submitLoading"
style="
width: 100vw;
height: 100vh;
z-index: 9999;
top: 0;
background-color: #00000080;
"
loading-text="文章正在发布中请稍后..."
color="#fff"
></u-loading-page>
<z-nav-bar
:title="options.navTitle"
:bgColor="options.type == 'detail' ? '#d8e6ff73' : '#5188e5'"
:fontColor="options.type == 'detail' ? '#5188e5' : '#fff'"
:bgColor="
options.type == 'detail'
? options.statusId == 0
? '#f7f7f7'
: '#d8e6ff73'
: '#5188e5'
"
:fontColor="
options.type == 'detail'
? options.statusId == 0
? '#333'
: '#333'
: '#fff'
"
>
<template v-slot:right>
<view
class="top_right"
style="
background-color: #fff;
margin-right: 10rpx;
border-radius: 4rpx;
"
@tap="handleOpenShowSubmit"
v-if="options.type == 'add'"
>
<text
style="
padding: 4rpx 10rpx;
margin-right: 10rpx;
padding: 2rpx 20rpx;
border-radius: 20rpx;
line-height: 40rpx;
color: #fff;
line-height: 50rpx;
color: #215fc7;
"
>提交</text
>
</view>
<view
v-if="options.type == 'detail'"
v-if="options.type == 'detail' && options.statusId == 1"
class="top_right"
@tap="showDel = true"
style="display: flex; align-items: center"
>
<uni-icons
type="trash-filled"
size="22"
style="color: #aa3629; margin-left: 40rpx"
type="redo-filled"
size="28"
@tap="newOnShare()"
style="color: #66bc54"
></uni-icons>
<text
style="letter-spacing: 4rpx; color: #aa3629; margin-right: 20rpx"
>删除</text
style="
letter-spacing: 2rpx;
color: #66bc54;
margin-right: 20rpx;
margin-left: 10rpx;
font-weight: 600;
"
>分享</text
>
</view>
</template>
@@ -123,15 +160,17 @@
</view>
</scroll-view>
</view>
<view
class="home_wrap home_wrap_analysis"
<scroll-view
:scroll-into-view="targetId"
scroll-y
class="home_wrap home_wrap_analysis home"
ref="homeContainer"
v-if="options.type == 'detail'"
:style="`height: calc(100% - ${
48 + statusBarHeight + 60
}px);padding:40rpx 20rpx;text-align: justify;`"
48 + statusBarHeight + (options.statusId == 0 ? 10 : 60)
}px);padding:0 20rpx;text-align: justify;`"
>
<view class="analysis_box" style="height: auto">
<view class="analysis_box" style="height: auto; padding-top: 40rpx">
<view class="analysis_img_box">
<view class="analysis_img">
<image
@@ -172,7 +211,11 @@
</view>
<view
class="analysis_title analysis_title_detail"
style="color: #302f35; font-size: 32rpx"
style="
color: #302f35;
font-size: 40rpx !important;
line-height: 50rpx;
"
>
{{ articleInfo.title }}
</view>
@@ -210,9 +253,23 @@
</view>
</view>
<view
style="letter-spacing: 1rpx; color: #aaacab; margin-top: 20rpx"
style="
letter-spacing: 1rpx;
color: #aaacab;
margin-top: 20rpx;
margin-bottom: 20rpx;
display: flex;
align-items: center;
"
v-if="articleInfo.createTime"
>{{ articleInfo.createTime }}
<uni-icons
v-if="articleInfo.come == 0"
type="trash-filled"
size="24"
@tap="showDel = true"
style="color: #aa3629; margin-left: 20rpx; margin-right: 20rpx"
></uni-icons>
</view>
<view class="likeList" v-if="likeList.length > 0" style="color: #5188e5">
<uni-icons
@@ -228,6 +285,22 @@
.join(" , ")
}}</view>
</view>
<view v-if="commentData" id="commentData">
<hb-comment
:isDisable="options.statusId == 0 ? true : false"
:isShowList="true"
:articleUserId="articleInfo.userId"
style=""
:user="currentUser"
ref="hbComment"
@add="sendComment"
@del="del"
@focusOn="focusOn"
:deleteTip="'确认删除?'"
:cmData="commentData"
v-if="commentData"
></hb-comment>
</view>
<!-- 显示聊天记录 -->
<!-- <articleDetail
:loading="loading"
@@ -242,7 +315,7 @@
ref="commonMedicalDetail"
></articleDetail> -->
<view class="footer_box">
<!-- <view class="footer_box" v-if="options.statusId != 0">
<template>
<view
class="footer_item"
@@ -280,6 +353,7 @@
<text style="letter-spacing: 4rpx">评论</text>
</view>
<view
v-if="articleInfo.showFlag != 0"
class="footer_item"
style="color: #9a9a9a"
@click.stop="newOnShare"
@@ -294,8 +368,8 @@
<text style="letter-spacing: 4rpx">分享</text>
</view>
</template>
</view>
</view>
</view> -->
</scroll-view>
<view style="padding-bottom: 20px">
<uni-popup ref="share" type="share" safeArea backgroundColor="#fff">
<uni-popup-share :bottom="500" @select="haveSelected"></uni-popup-share>
@@ -368,6 +442,7 @@
>
<view class="slot-content"> 是否立即发布文章? </view>
</u-modal>
</view>
</template>
@@ -387,6 +462,9 @@ export default {
},
data() {
return {
targetId: null,
submitLoading: false,
currentUser: {},
likeList: [],
@@ -495,7 +573,9 @@ export default {
}
},
async onShow() {},
async onShow() {
this.submitLoading = false;
},
async onPullDownRefresh() {
this.isRefreshing = true;
console.log("下拉刷新");
@@ -518,6 +598,14 @@ export default {
}, 800);
},
methods: {
scrollToView(id) {
// commentData
this.targetId = id; // 设置目标元素 id
setTimeout(() => {
this.targetId = null;
}, 1000);
},
confirmDel: throttle(function () {
this.delArticle();
}, 2000),
@@ -534,10 +622,13 @@ export default {
this.$commonJS.showToast("请至少上传一张图片");
return;
}
this.showSubmit = true;
// this.showSubmit = true;
this.confirmSubmit();
},
confirmSubmit: throttle(function () {
this.submitLoading = true;
this.showSubmit = false;
this.handleSubmit("submit");
}, 2000),
@@ -626,9 +717,31 @@ export default {
},
// 自适应判断
judgeImg() {
if (this.fileList1.length == 1) {
this.imgWidth = ((this.windowWidth - 10) * 2) / 3;
this.imgHeight = (this.windowHeight * 3) / 5;
if (this.fileList1.length === 1) {
const firstImg = this.fileList1[0];
// 获取图片的宽高信息
uni.getImageInfo({
src: firstImg, // 获取图片路径
success: (res) => {
const imgWidth = res.width;
const imgHeight = res.height;
// 如果是横向图片(宽大于高)
if (imgWidth > imgHeight) {
// 横向图片尺寸设置
this.imgWidth = ((this.windowWidth - 40) * 2) / 2;
this.imgHeight = (this.windowHeight * 3) / 5;
} else {
// 纵向图片尺寸设置
this.imgWidth = ((this.windowWidth - 40) * 2) / 3;
this.imgHeight = (this.windowHeight * 3) / 5;
}
},
fail: (err) => {
console.error("图片加载失败", err);
},
});
} else if (this.fileList1.length == 4) {
this.imgWidth = (this.windowWidth - 10) / 3.3;
this.imgHeight = this.imgWidth;
@@ -637,6 +750,7 @@ export default {
this.imgHeight = this.imgWidth;
}
},
previewImg(index) {
uni.previewImage({
urls: this.fileList1,
@@ -705,12 +819,18 @@ export default {
})
.then((res) => {
if (res.code == 0) {
this.$commonJS.refreshPrevPageData(1);
setTimeout(() => {
this.$commonJS.refreshPrevPageData(1);
this.submitLoading = false;
}, 2000);
} else {
this.submitLoading = false;
this.$commonJS.showToast(res.msg);
}
})
.catch((err) => {});
.catch((err) => {
this.submitLoading = false;
});
}, 3000),
async addPic(e) {
@@ -955,8 +1075,35 @@ export default {
}
});
},
scrollToComment() {
// 获取容器
const container = this.$refs.homeWrap;
// 先获取目标元素的位置
const query = uni.createSelectorQuery().in(this);
query
.select("#commentData")
.boundingClientRect((rect) => {
if (rect) {
// 获取容器的位置
query
.select("#home_wrap")
.boundingClientRect((containerRect) => {
if (containerRect) {
console.log("containerRect at line 1068:", containerRect);
// 计算相对位置并设置 scrollTop
const scrollTop =
container.scrollTop + (rect.top - containerRect.top);
container.scrollTop = scrollTop; // 滚动容器到目标位置
}
})
.exec(); // 执行容器位置查询
}
})
.exec(); // 执行目标元素位置查询
},
//创建新对话
sendComment(comment, pid) {
sendComment: throttle(function (comment, pid) {
this.$http
.request({
url: "common/taihuTalentArticle/addArticleComment",
@@ -974,11 +1121,19 @@ export default {
console.log("res at line 713:", res);
if (res.code == 0) {
this.getMedicalDetail();
if(pid==0){
setTimeout(() => {
this.scrollToView("commentData");
}, 500);
}
// this.scrollToComment();
} else {
this.$commonJS.showToast("评论失败");
}
});
},
}),
//交谈请求,获取回答
getTree(data) {
@@ -1017,6 +1172,7 @@ export default {
this.loading = false;
this.articleInfo = res.article;
this.options.statusId = res.article.showFlag;
this.medicalForm = { ...this.articleInfo };
console.log("this.medicalForm at line 193:", this.articleInfo);
if (this.articleInfo.img) {
@@ -1550,9 +1706,9 @@ h3 {
}
.analysis_title_detail {
margin-top: 10rpx;
margin-bottom: 10rpx;
margin-bottom: 40rpx;
// color: #1781ff;
font-size: 42rpx;
font-size: 38rpx !important;
font-weight: 700;
}
}
@@ -1642,6 +1798,7 @@ h3 {
}
.allImage {
margin-top: 40rpx;
display: flex;
flex-wrap: wrap;
@@ -1672,4 +1829,26 @@ h3 {
display: flex;
align-items: center;
}
::v-deep rich-text {
text-align: justify;
white-space: pre-wrap;
word-wrap: break-word;
}
::v-deep rich-text p,
h1,
h2 {
text-indent: 0 !important;
}
/deep/ rich-text br {
height: 0 !important;
display: none;
}
::v-deep rich-text h1 {
font-size: 36rpx;
line-height: 40rpx;
}
::v-deep rich-text h2 {
font-size: 32rpx;
line-height: 30rpx;
}
</style>

View File

@@ -1,5 +1,6 @@
<template>
<view class="content" style="background-color: #d8e6ff57">
<z-nav-bar title="我的文章" bgColor="#5188e5" fontColor="#fff">
<template v-slot:right>
<view class="top_right" @tap="createFolder">
@@ -94,7 +95,8 @@
>评论</view
></view
>
<view
<view v-if="item.showFlag != 0"
class="operate"
@click.stop="handleMore(item)"
style="
@@ -104,12 +106,27 @@
"
>
...
<!-- <button class="like" @click.stop="handleLike">
</button>
<button class="comment" @click.stop="handleComment">
评论
</button> -->
</view>
<view v-else
class="operate"
@click.stop="selectArticleId = item.id;showDel=true"
style="
line-height: 10rpx;
font-size: 38rpx;
/* margin-top: -20rpx; */
"
>
<uni-icons
type="trash-filled"
size="22"
color="#aa3629"
></uni-icons
>
</view>
<!-- <view style="color: #5188e5"
><uni-icons
@@ -153,37 +170,34 @@
cancelText="取消"
round="8"
></u-action-sheet>
<u-modal
:show="showDel"
@confirm="confirmDel"
@cancel="showDel = false"
ref="uModalDel"
:asyncClose="true"
:showCancelButton="true"
confirmText="删除"
confirmColor="#aa3629"
title="提示"
>
<view class="slot-content"> 您确定要删除该文章吗 </view>
</u-modal>
</view>
</template>
<script>
import $http from "@/config/requestConfig.js";
import PrecisionImageGrid from "./PrecisionImageGrid.vue";
import { debounce, throttle } from "@/common/debounce.js";
export default {
components: { PrecisionImageGrid },
data() {
return {
selectArticleId: null,
showDel: false, // 控制弹窗显示隐藏
showOperate: false, // 控制弹窗显示隐藏
operateList: [
{
name: "查看评论",
fontSize: "16",
},
{
name: "分享文章",
fontSize: "16",
},
{
name: "删除",
color: "#aa3629",
fontSize: "16",
},
],
operateList: [],
tabsList: [],
currentCateIndex: 0,
@@ -223,46 +237,44 @@ export default {
},
onLoad() {
uni.hideTabBar();
this.getTabData()
this.getTabData();
},
onShow() {
// this.getListData(this.taihumedId);
},
methods: {
confirmDel: throttle(function () {
this.delArticle();
}, 2000),
refreshData(reset) {
this.current = 1;
this.list = [];
this.noMore = false;
if(reset){
if (reset) {
this.currentCateIndex = 0;
this.courseName = "";
this.taihumedId = this.tabsList[this.currentCateIndex].id;
this.statusTitle = this.tabsList[this.currentCateIndex].statusTitle;
this.statusColor = this.tabsList[this.currentCateIndex].color;
//重置
this.list = [];
this.noMore = false;
this.show = false;
this.count = 0;
this.current = 1;
this.getListData(this.taihumedId);
}else{
this.getListData(this.taihumedId);
this.courseName = "";
this.taihumedId = this.tabsList[this.currentCateIndex].id;
this.statusTitle = this.tabsList[this.currentCateIndex].statusTitle;
this.statusColor = this.tabsList[this.currentCateIndex].color;
//重置
this.list = [];
this.noMore = false;
this.show = false;
this.count = 0;
this.current = 1;
this.getListData(this.taihumedId);
} else {
this.getListData(this.taihumedId);
}
},
selectClick(e) {
console.log(e.name);
if (e.name == "删除") {
this.delArticle();
this.showDel=true;
} else {
uni.navigateTo({
url: `/pages/articleList/article?navTitle=文章详情&title=文章详情&id=${this.selectArticleId}&type=detail&statusId=1&open=${e.name}`,
@@ -279,6 +291,37 @@ export default {
// console.log('调用失败', err);
// }
// })
var list = [];
if (item.showFlag != 0) {
list = [
// {
// name: "查看评论",
// fontSize: "16",
// },
{
name: "分享文章",
fontSize: "16",
}
];
}
if (item.come == 1) {
this.operateList = list;
} else {
this.operateList = [
...list,
{
name: "删除文章",
color: "#aa3629",
fontSize: "16",
},
];
}
this.selectArticleId = item.id;
this.showOperate = true;
// this.$refs.commentLikePopup.showCommentPopup();
@@ -365,23 +408,17 @@ export default {
icon: "success",
duration: 2000,
});
}
this.$nextTick(()=>{
this.list=this.list.filter((e)=>{
return e.id!=this.selectArticleId
})
this.count=this.list.length
})
this.$nextTick(() => {
this.list = this.list.filter((e) => {
return e.id != this.selectArticleId;
});
this.count = this.list.length;
});
});
},
getListData(taihumedId, type) {
console.log('taihumedId at line 344:', taihumedId)
console.log("taihumedId at line 344:", taihumedId);
if (type) {
this.current = 1;
this.list = [];
@@ -390,6 +427,9 @@ this.count=this.list.length
if (this.noMore) {
return false;
}
if (this.current == 1) {
this.list = [];
}
uni.showLoading({
title: "加载中",
});
@@ -421,15 +461,28 @@ this.count=this.list.length
) {
this.noMore = true;
}
this.list = [
...this.list,
...res.page.records.map((e) => {
return {
...e,
fileList1: e.img ? e.img.split(",") : [],
};
}),
];
if (this.current == 1) {
this.list = [
...res.page.records.map((e) => {
return {
...e,
fileList1: e.img ? e.img.split(",") : [],
};
}),
];
} else {
this.list = [
...this.list,
...res.page.records.map((e) => {
return {
...e,
fileList1: e.img ? e.img.split(",") : [],
};
}),
];
}
this.current += 1; //更新页码
//显示提示语
this.showText = true;
@@ -473,21 +526,13 @@ this.count=this.list.length
switch (this.taihumedId) {
case 0:
navTitle = "编辑文章";
type = "edit";
navTitle = "文章详情";
type = "detail";
break;
case 1:
navTitle = "文章详情";
type = "detail";
break;
case 3:
navTitle = "文章详情";
type = "detail";
break;
case 2:
navTitle = "文章详情";
type = "detail";
break;
}
uni.navigateTo({
url: `/pages/articleList/article?navTitle=${navTitle}&title=${navTitle}&id=${item.id}&type=${type}&statusId=${this.taihumedId}`,

View File

@@ -5,6 +5,8 @@
mode="bottom"
:round="8"
:background="'#fff'"
@close="closeOrderModalShow"
style="background: #fff" backgroundColor="#fff"
>
<view class="orderModalShow popup_box">
@@ -29,7 +31,7 @@
<view class="hb-comment" style="height: 80vh">
<view class="hb-comment" style="max-height: 70vh">
<view class="comment-list" v-if="likeList.length != 0">
<view class="comment-box" v-for="(item, index) in likeList">
<view class="comment-box-item">
@@ -109,6 +111,18 @@ export default {
async onLoad(options) {
},
watch: {
orderModalShow: {
handler(newVal, oldVal) {
this.$emit("show",this.orderModalShow);
},
immediate: true,
},
},
onShow() {
@@ -128,13 +142,16 @@ export default {
this.articleInfo.taihuTalent
);
await this.getMedicalDetail(()=>{
this.orderModalShow = true;
});
},
closeOrderModalShow() {
this.orderModalShow = false;
this.$emit("close",this.articleId);
},
@@ -351,7 +368,7 @@ export default {
}
.comment-main-top {
width: 600rpx;
width: 100%;
padding-top: 12rpx;
display: flex;
justify-content: space-between;

View File

@@ -4,8 +4,10 @@
:show="orderModalShow"
mode="bottom"
:round="8"
@close="closeOrderModalShow"
:background="'#fff'"
style="background: #fff" backgroundColor="#fff"
style="background: #fff"
backgroundColor="#fff"
>
<view class="orderModalShow popup_box">
<view style="text-align: center"
@@ -24,17 +26,21 @@
top: 20rpx;
"
></u-icon>
<hb-comment
style="padding-top: 40rpx; overflow: auto; padding-bottom: 100rpx"
:user="currentUser"
ref="hbComment"
@add="sendComment"
@del="del"
@focusOn="focusOn"
:deleteTip="'确认删除?'"
:cmData="commentData"
v-if="commentData"
></hb-comment>
<scroll-view :scroll-into-view="targetId" scroll-y style="height: 70vh;padding-top: 40rpx; padding-bottom: 100rpx">
<hb-comment
style=""
:user="currentUser"
:isPopup="true"
:articleUserId="articleInfo.userId"
ref="hbComment"
@add="sendComment"
@del="del"
@focusOn="focusOn"
:deleteTip="'确认删除?'"
:cmData="commentData"
v-if="commentData"
></hb-comment
></scroll-view>
</view>
</u-popup>
</view>
@@ -43,58 +49,59 @@
<script>
import $http from "@/config/requestConfig.js";
import { mapState, mapMutations } from "vuex";
import { debounce, throttle } from "@/common/debounce.js";
export default {
components: {
},
props:[],
components: {},
props: [],
data() {
return {
targetId: null,
articleId: null,
currentUser: {},
orderModalShow: false,
commentData: [],
articleInfo: {},
};
},
computed: {
...mapState(["userInfo"]),
},
async onLoad(options) {
},
onShow() {
async onLoad(options) {},
onShow() {},
watch: {
orderModalShow: {
handler(newVal, oldVal) {
this.$emit("show", this.orderModalShow);
},
immediate: true,
},
},
methods: {
// 自适应判断
scrollToView(id) {
// commentData
this.targetId = id; // 设置目标元素 id
setTimeout(() => {
this.targetId = null;
}, 1000);
},
async onHandleClickOpenComment(id) {
this.articleId=id;
async onHandleClickOpenComment(id) {
this.articleId = id;
console.log("111 at line 384:", 111);
console.log(
"this.currentUser at line 365:",
this.articleInfo.taihuTalent
);
await this.getMedicalDetail(()=>{
await this.getMedicalDetail(() => {
this.orderModalShow = true;
});
},
closeOrderModalShow() {
this.orderModalShow = false;
this.$emit("close",this.articleId);
this.$emit("close", this.articleId);
},
saveContens(content) {
console.log("content at line 322:", content);
@@ -148,14 +155,10 @@ export default {
.catch((err) => {});
},
//点击每个记录
//创建新对话
sendComment(comment, pid) {
sendComment: throttle(function (comment, pid) {
this.$http
.request({
url: "common/taihuTalentArticle/addArticleComment",
@@ -174,11 +177,16 @@ export default {
console.log("res at line 713:", res);
if (res.code == 0) {
this.getMedicalDetail();
if (pid == 0) {
setTimeout(() => {
this.scrollToView("commentData");
}, 500);
}
} else {
this.$commonJS.showToast("评论失败");
}
});
},
}),
//交谈请求,获取回答
getTree(data) {
@@ -205,7 +213,7 @@ export default {
url: "common/taihuTalentArticle/getArticleLikeAndComment",
method: "POST",
data: {
articleId: this.articleId,
articleId: this.articleId,
},
header: {
"Content-Type": "application/json",
@@ -219,14 +227,17 @@ export default {
this.articleInfo = res.article;
this.medicalForm = { ...this.articleInfo };
console.log("this.medicalForm at line 193:", this.articleInfo);
this.$nextTick(() => {
// if (this.userInfo.id == this.articleInfo.userId) {
// this.currentUser = this.articleInfo.taihuTalent;
// } else {
this.currentUser = {...this.userInfo,icon:this.userInfo.avatar};
this.currentUser = {
...this.userInfo,
icon: this.userInfo.avatar,
};
console.log('this.currentUser at line 823:', this.currentUser)
console.log("this.currentUser at line 823:", this.currentUser);
// }
});
this.commentData = res.comments;
@@ -234,8 +245,8 @@ export default {
commentSize: res.commentCount,
comment: this.getTree(this.commentData),
};
if(fn){
if (fn) {
fn();
}

View File

@@ -6,13 +6,13 @@
fontColor="#fff"
:backState="2000"
>
<template v-slot:right v-if="activeTab === 1">
<view class="top_right" @tap="createFolder" style="margin-right: 20rpx;">
<template v-slot:right v-if="activeTab === 1">
<view class="top_right" @tap="createFolder" style="margin-right: 20rpx">
<uni-icons type="folder-add" size="17" color="#fff"></uni-icons>
<text>发布文章</text>
</view>
</template>
</z-nav-bar>
</z-nav-bar>
<view
class="doctors_module"
:style="`top: ${42 + statusBarHeight}px;`"
@@ -198,8 +198,8 @@
v-for="(item, index) in list"
:key="item.id"
:imgList="item.fileList1"
:avatar="item.taihuTalent.icon"
:name="item.taihuTalent.name"
:avatar="item.taihuTalent&&item.taihuTalent.icon?item.taihuTalent.icon:''"
:name="item.taihuTalent&&item.taihuTalent.name?item.taihuTalent.name:''"
:createTime="item.createTime"
:title="item.title"
:content="item.content"
@@ -211,7 +211,7 @@
:giveRewardNumber="item.giveRewardNumber"
:commentCount="item.commentCount"
@clickDynamic="clickDynamic(index)"
@clickUser="clickUser(item.id)"
@clickUser="clickUser(item)"
@clickFocus="clickFocus(index)"
@clickThumbsup="(type) => clickThumbsup(item.id, type)"
@clickGiveReward="clickGiveReward(item.id)"
@@ -227,8 +227,8 @@
<text class="null_text" v-else>{{ null_text }}</text>
<z-navigation></z-navigation>
<common-pinglun ref="pinglun" @close="close"></common-pinglun>
<common-likeList ref="commonLikeList" @close="close"></common-likeList>
<common-pinglun ref="pinglun" @close="close" @show="(e)=>pinglunShow=e"></common-pinglun>
<common-likeList ref="commonLikeList" @close="close" @show="(e)=>likeShow=e"></common-likeList>
<uni-popup ref="share" type="share" safeArea backgroundColor="#fff">
<uni-popup-share @select="haveSelected"></uni-popup-share>
</uni-popup>
@@ -252,7 +252,8 @@ export default {
list: [],
null_text: "",
pinglunShow:false,
likeShow:false,
current: 1,
limit: 10,
courseName: "",
@@ -275,6 +276,14 @@ export default {
},
onPullDownRefresh() {
if(this.pinglunShow){
uni.stopPullDownRefresh();
return false
}
if(this.likeShow){
uni.stopPullDownRefresh();
return false
}
this.isRefreshing = true;
console.log("下拉刷新");
@@ -288,7 +297,6 @@ export default {
this.getArticleListData();
}
uni.stopPullDownRefresh();
this.isRefreshing = false;
console.log("下拉刷新已停止");
@@ -300,6 +308,19 @@ export default {
},
onShow() {},
methods: {
refreshData(reset) {
if (reset) {
this.currentCateIndex = 0;
//重置
this.list = [];
this.noMore = false;
this.show = false;
this.count = 0;
this.current = 1;
this.getArticleListData();
}
},
createFolder() {
uni.navigateTo({
url: `/pages/articleList/article?navTitle=文章&title=文章&type=add`,
@@ -359,6 +380,9 @@ export default {
clickUser(e) {
console.log(e);
console.log("childUser");
uni.navigateTo({
url: "/pages/talents/detail?id=" + e.taihuTalent.id,
});
},
// 点击关注
clickFocus(e) {

View File

@@ -69,7 +69,7 @@
class="card_label"
v-if="statusTitle"
:style="`background-color:${statusColor} ;`"
>{{item.state==4?'质检未通过': statusTitle }}</text
>{{ item.state == 4 ? "质检未通过" : statusTitle }}</text
>
<image
v-if="currentCateIndex == 3 && item.state == 6"
@@ -168,22 +168,50 @@
"
>
<view
@click.stop="changeShowFlag(item)"
v-if="taihumedId == 4"
:style="`color: ${
item.showFlag == 1 ? '#5188e5' : '#5e6d82'
};display: flex;align-items: center;`"
>
<text style="margin-right: 10rpx"
>是否在我的医案中展示</text
>
<uni-icons
:color="item.showFlag == 1 ? '#5188e5' : '#5e6d82'"
:type="
item.showFlag == 0 ? 'eye-slash-filled' : 'eye-filled'
<template @click.stop="changeShowFlag(item)">
<text style="margin-right: 10rpx"
>是否在我的医案中展示</text
>
<uni-icons
:color="item.showFlag == 1 ? '#5188e5' : '#5e6d82'"
:type="
item.showFlag == 0 ? 'eye-slash-filled' : 'eye-filled'
"
size="24"
></uni-icons>
</template>
<view @click.stop="changeShowArticleFlag(item)"
v-if="item.articleFlag == 0"
style="
position: absolute;
right: 20rpx;
top: 0;
background-color: #0552c5;
padding: 2rpx 20rpx;
border-radius: 8rpx;
color: #fff;
"
size="24"
></uni-icons>
>发布医案文章</view
>
<view
v-else
style="
position: absolute;
right: 20rpx;
top: 0;
background-color: #fff;
padding: 2rpx 20rpx;
border-radius: 8rpx;
color: #0552c5;
"
>已发布</view
>
</view>
<!-- <view @click.stop="changeShowFlag(item)" v-if="taihumedId == 4" :style="`color: ${item.article_flag==1?'#5188e5':'#5e6d82'};display: flex;align-items: center;`">
<text style="margin-right: 10rpx;">是否在我的文章中展示</text>
@@ -401,6 +429,24 @@ export default {
this.getListData(this.taihumedId);
});
},
changeShowArticleFlag(data) {
this.$http
.request({
url: "common/medicalRecords/addTaihuTalentArticle",
method: "POST",
data: {
...data,
showArticleFlag: 1,
},
header: {
"Content-Type": "application/json",
},
})
.then((res) => {
this.getListData(this.taihumedId);
});
},
//加载更多
loadMore() {
this.getListData(this.taihumedId);

View File

@@ -382,6 +382,10 @@ export default {
this.$commonJS.showToast("请输入 " + titleHtml);
return false;
}
if (this.fileList1.length == 0) {
this.$commonJS.showToast("请至少上传一张图片");
return;
}
}
if (
["妇科", "儿科"].includes(this.medicalForm.labelTitle) &&

View File

@@ -270,11 +270,7 @@ export default {
url: "/pages/curriculum/index/index",
type: "pageJump",
},
{
name: "我的文章",
url: "/pages/articleList/index",
type: "pageJump",
},
{
name: "个人资料",
url: "/pages/my/persData",
@@ -295,9 +291,10 @@ export default {
if (this.userInfo.id != undefined) {
try {
// 同时发送两个请求,使用 Promise.all 确保并行处理
const [res1, res2] = await Promise.all([
const [res1, res2,res3] = await Promise.all([
this.$http.post("common/medicalRecords/getMedicalRecordsRoleByUser"),
this.$http.post("common/medicalRecords/canCheck")
this.$http.post("common/medicalRecords/canCheck"),
this.$http.post("common/taihuTalentArticle/getArticleRoleByUser")
]);
console.log("res1 at line 237:", res1);
@@ -313,13 +310,24 @@ export default {
type: "pageJump",
contentType: "shengpi",
});
} if (res1.code == 0 && res1.roleFlag == 1) {
}
if (res1.code == 0 && res1.roleFlag == 1) {
this.pageList.splice(2, 0, {
name: "我的医案",
url: "/pages/medicalRecords/index",
type: "pageJump",
});
}
if (res3.code == 0 && res3.roleFlag == 1) {
this.pageList.splice(2, 0, {
name: "我的文章",
url: "/pages/articleList/index",
type: "pageJump",
});
}
// 在两个请求都成功后更新 pageList