diff --git a/common/commonJS.js b/common/commonJS.js index 0d7b9682..87ed07bb 100644 --- a/common/commonJS.js +++ b/common/commonJS.js @@ -45,6 +45,8 @@ export default { } uni.navigateBack({ delta: 1 }); }, + + //复制内容 handleCopy(value, title) { uniCopy({ diff --git a/components/qizai-dynamic/Dynamic.vue b/components/qizai-dynamic/Dynamic.vue index 24b93370..0fc9f12a 100644 --- a/components/qizai-dynamic/Dynamic.vue +++ b/components/qizai-dynamic/Dynamic.vue @@ -25,7 +25,7 @@ @click.stop="clickUser()" >{{ name }} - {{ createTime @@ -56,7 +56,7 @@ height: auto; color: #4b4b4b; margin-bottom: 40rpx; - font-size: 28rpx; + font-size: 28rpx;text-indent: 0px !important; " /> @@ -263,9 +263,31 @@ export default { }, // 自适应判断 judgeImg() { - if (this.imgList.length == 1) { - this.imgWidth = ((this.windowWidth - 60) * 2) / 3; - this.imgHeight = (this.windowHeight * 3) / 5; + if (this.imgList.length === 1) { + const firstImg = this.imgList[0]; + + // 获取图片的宽高信息 + uni.getImageInfo({ + src: firstImg, // 获取图片路径 + success: (res) => { + const imgWidth = res.width; + const imgHeight = res.height; + + // 如果是横向图片(宽大于高) + if (imgWidth > imgHeight) { + // 横向图片尺寸设置 + this.imgWidth = ((this.windowWidth - 90) * 2) / 2; + this.imgHeight = (this.windowHeight * 3) / 5; + } else { + // 纵向图片尺寸设置 + this.imgWidth = (this.windowWidth - 80) * 0.7; // 纵向图片稍微缩小宽度 + this.imgHeight = (this.windowHeight * 3) / 5; + } + }, + fail: (err) => { + console.error("图片加载失败", err); + }, + }); } else if (this.imgList.length == 4) { this.imgWidth = (this.windowWidth - 60) / 3.3; this.imgHeight = this.imgWidth; @@ -461,7 +483,7 @@ export default { overflow: hidden; } .user__content-note { - margin-top: 3px; + margin-top: 2rpx; color: #aaacab; font-size: 26rpx; letter-spacing: 1rpx; @@ -485,23 +507,37 @@ export default { text-align: justify; color: #292929; font-weight: 600; - font-size: 32rpx; - margin-bottom: 10rpx; + font-size: 38rpx; + line-height: 42rpx; + margin-bottom: 20rpx; } .user__content-title { color: #5a6988; font-weight: 600; font-size: 30rpx; - line-height: 38rpx; + line-height: 34rpx; + // margin-top: 8rpx; } ::v-deep rich-text { text-align: justify; white-space: pre-wrap; word-wrap: break-word; } -::v-deep rich-text p { +::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: 34rpx; + line-height: 40rpx; +} +::v-deep rich-text h2 { + font-size: 30rpx; + line-height: 30rpx; +} .likeList { background: #f7f7f7; border-radius: 4rpx; @@ -513,8 +549,8 @@ export default { margin-top: 0; } .hidden2 { - line-height: 24px; - max-height: 120px; + line-height: 20px; + max-height: 100px; -webkit-line-clamp: 5; height: auto; } diff --git a/pages/articleList/article.vue b/pages/articleList/article.vue index 235543c1..49b7011a 100644 --- a/pages/articleList/article.vue +++ b/pages/articleList/article.vue @@ -2,44 +2,81 @@ + + @@ -123,15 +160,17 @@ - - - + {{ articleInfo.title }} @@ -210,9 +253,23 @@ {{ articleInfo.createTime }} + + + + - + + @@ -368,6 +442,7 @@ > 是否立即发布文章? + @@ -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; +} diff --git a/pages/articleList/index.vue b/pages/articleList/index.vue index 7b2e86f6..5a2fa314 100644 --- a/pages/articleList/index.vue +++ b/pages/articleList/index.vue @@ -1,5 +1,6 @@