From 743368e075a887c8fa4879ee039742b287b25d70 Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期六, 28 二月 2026 16:28:02 +0800
Subject: [PATCH] 合并

---
 mini-program/pages/article-details/article-details.vue |   63 ++++++++++++++++++++++---------
 1 files changed, 45 insertions(+), 18 deletions(-)

diff --git a/mini-program/pages/article-details/article-details.vue b/mini-program/pages/article-details/article-details.vue
index 58b608f..afccfd6 100644
--- a/mini-program/pages/article-details/article-details.vue
+++ b/mini-program/pages/article-details/article-details.vue
@@ -11,7 +11,7 @@
 			<view class="pl-wu" v-if="commentList.length === 0">
 				<image src="/static/images/default_nocomment@2x.png" mode="widthFix"></image>
 			</view>
-			<view class="pl-item" v-for="(item, index) in commentList" :key="item.id" v-else @click="openTwo(item.id, item)">
+			<view class="pl-item" v-for="(item, index) in commentList" :key="item.id" v-else>
 				<view class="pl-item-tx">
 					<image :src="item.memberImgUrl" mode="widthFix"></image>
 				</view>
@@ -21,36 +21,37 @@
 						{{item.content}}
 					</view>
 					<view class="pl-item-info-list" v-if="item.multifileList && item.multifileList.length > 0">
-						<view class="pl-item-info-list-image" v-for="(child, i) in item.multifileList" :key="i" @click="yulan(child.fileFullUrl, item.multifileList)">
+						<view class="pl-item-info-list-image" v-for="(child, i) in item.multifileList" :key="i" @click.stop="yulan(child.fileFullUrl, item.multifileList)">
 							<image :src="child.fileFullUrl" mode="widthFix"></image>
 						</view>
 						<view style="width: 132rpx; height: 0;"></view>
 						<view style="width: 132rpx; height: 0;"></view>
 					</view>
 					<view class="pl-item-info-data">
-						<view class="pl-item-info-data-time">{{$u.timeFormat(new Date(item.createDate).getTime())}}</view>
+						<view class="pl-item-info-data-time">{{item.createDate  }}</view>
 						<view class="pl-item-info-data-list">
-							<view class="pl-item-info-data-list-item" @click="sendChild(item.id, index)">
-								<image src="/static/icon/ic_reply2@2x.png" mode="widthFix"></image>
+							<view class="pl-item-info-data-list-item"  >
+								<image  src="/static/icon/ic_reply2@2x.png" mode="widthFix"  @click="openTwo(item.id, item)"></image>
 							</view>
-							<view class="pl-item-info-data-list-item" @click.stop="dianzanpl(item)">
-								<image src="/static/icon/dianzan.png" mode="widthFix" v-if="!item.zanStatus || item.zanStatus == 0"></image>
-								<image src="/static/icon/detail_ic_zan_sel@2x.png" mode="widthFix" v-else></image>
-								<text :style="{color: (!item.zanStatus || item.zanStatus == 0) ? '#AAAAAA' : '#004096'}">{{item.zanCount}}</text>
+							<view class="pl-item-info-data-list-item" >
+									<image src="/static/icon/dianzan.png" mode="widthFix" v-if="!item.zanStatus || item.zanStatus == 0"  @click.stop="dianzanpl(item)"></image>
+									<image src="/static/icon/detail_ic_zan_sel@2x.png" mode="widthFix" v-else  @click.stop="dianzanpl(item)"></image>
+									<text :style="{color: (!item.zanStatus || item.zanStatus == 0) ? '#AAAAAA' : '#004096'}"  @click.stop="dianzanpl(item)">{{item.zanCount}}</text>
 							</view>
 						</view>
 					</view>
-					<view class="pl-item" style="border: none;" v-for="(child, a) in item.childern" :key="child.id" @click="openTwo(item.id, child)">
+					<view class="pl-item" style="border: none;" v-for="(child, a) in item.childern" :key="child.id" >
 						<view class="pl-item-tx">
 							<image :src="child.memberImgUrl" mode="widthFix"></image>
 						</view>
 						<view class="pl-item-info">
 							<view class="pl-item-info-name">{{child.nikeName}}</view>
 							<view class="pl-item-info-content" v-if="child.content">
+								<text v-if="child.replyMemberNikeName"> 鍥炲<text  style="color: #AAAAAA;margin-left: 6rpx;margin-right: 6rpx;">{{child.replyMemberNikeName}}</text>: </text>
 								{{child.content}}
 							</view>
 							<view class="pl-item-info-list" v-if="child.multifileList && child.multifileList.length > 0">
-								<view class="pl-item-info-list-image" v-for="(child1, i) in child.multifileList" :key="i">
+								<view class="pl-item-info-list-image" v-for="(child1, i) in child.multifileList" :key="i" @click.stop="yulan(child1.fileFullUrl, child.multifileList)">
 									<image :src="child1.fileFullUrl" mode="widthFix"></image>
 								</view>
 								<view style="width: 132rpx; height: 0;"></view>
@@ -59,7 +60,7 @@
 							<view class="pl-item-info-data">
 								<view class="pl-item-info-data-time">{{child.createDate}}</view>
 								<view class="pl-item-info-data-list">
-									<view class="pl-item-info-data-list-item">
+									<view class="pl-item-info-data-list-item" @click="openTwo(item.id, child)">
 										<image src="/static/icon/ic_reply2@2x.png" mode="widthFix"></image>
 									</view>
 									<view class="pl-item-info-data-list-item" @click.stop="dianzanpl(child)">
@@ -71,7 +72,7 @@
 							</view>
 						</view>
 					</view>
-					<view class="pl-more" v-if="item.childern.length < item.replyCount" @click.stop="more(index)">灞曞紑{{item.replyCount - item.childern.length}}鏉″洖澶�</view>
+					<view class="pl-more" v-if="item.childern&&item.childern.length < item.replyCount" @click.stop="moreReply(index)">灞曞紑{{item.replyCount - item.childern.length}}鏉″洖澶�</view>
 				</view>
 			</view>
 		</view>
@@ -124,15 +125,18 @@
 				</view>
 			</view>
 		</u-popup>
+		<Login ref="login" />
 	</view>
 </template>
 
 <script>
 	import { mapState } from 'vuex'
 	import { dateConversion } from '@/utils/utils.js'
+	import Login from '@/components/login/login.vue'
 	export default {
+		components: { Login },
 		computed: {
-			...mapState(['userInfo', 'token'])
+			...mapState(['userInfo', 'token','recshopid','recuserid'])
 		},
 		data() {
 			return {
@@ -167,6 +171,10 @@
 		methods: {
 			// 鐐硅禐
 			dianzanpl(item) {
+				if (!this.userInfo) {
+					this.$refs.login.open()
+					return;
+				}
 				if (!item.zanStatus || item.zanStatus == 0) {
 					this.$u.api.zanCreate({
 						objId: item.id,
@@ -191,6 +199,10 @@
 			},
 			// 浜岀骇璇勮
 			openTwo(commentId, item) {
+				if (!this.userInfo) {
+					this.$refs.login.open()
+					return;
+				}
 				this.item = item
 				this.commentId = commentId
 				this.show1 = true
@@ -250,7 +262,7 @@
 				this.show1 = false
 			},
 			// 灞曞紑璇勮
-			more(index) {
+			moreReply(index) {
 				this.$u.api.findActivityReplyCommentDTOPage({
 					capacity: 10,
 					page: this.commentList[index].page,
@@ -281,6 +293,10 @@
 			},
 			// 璇勮
 			sendComment() {
+				if (!this.userInfo) {
+					this.$refs.login.open()
+					return;
+				}
 				if (!this.value && this.multifileList.length === 0) return uni.showToast({
 					title: '璇勮鍐呭涓嶈兘涓虹┖',
 					icon: 'none'
@@ -289,7 +305,7 @@
 					activityId: this.info.id,
 					content: this.value,
 					multifileList: this.multifileList,
-					// commentId: this.commentId,
+					commentId: this.commentId,
 					replyId: this.item ? this.item.id : null
 				}).then(res => {
 					if (res.code === 200) {
@@ -299,15 +315,17 @@
 						if (this.commentId) {
 							this.commentList.forEach(item => {
 								if (item.id === this.commentId) {
+									item.childern = item.childern||[]
 									item.childern.unshift(res.data)
 								}
 							})
 						} else {
+							this.commentList = this.commentList||[]
 							this.commentList.unshift(res.data)
 						}
 						this.multifileList = []
 						this.value = ''
-						this.show1 = false
+						this.closePush()
 					}
 				})
 			},
@@ -327,7 +345,7 @@
 					if (res.code === 200) {
 						this.total = res.data.total
 						res.data.records.forEach(item => {
-							item.createDate = dateConversion(item.createDate)
+							// item.createDate = dateConversion(item.createDate)
 							item.page = 1
 							item.childern = []
 							if (item.activityReplyCommentDTO) {
@@ -344,6 +362,10 @@
 				})
 			},
 			shoucang(type) {
+				if (!this.userInfo) {
+					this.$refs.login.open()
+					return;
+				}
 				if (type === 1) {
 					this.$u.api.cancelbatch({
 						ids: this.info.id,
@@ -365,6 +387,10 @@
 				}
 			},
 			dianzan(type) {
+				if (!this.userInfo) {
+					this.$refs.login.open()
+					return;
+				}
 				if (type === 1) {
 					this.$u.api.zanCancel({
 						objId: this.info.id,
@@ -624,6 +650,7 @@
 						font-weight: 400;
 						font-size: 28rpx;
 						color: #333333;
+						word-break: break-word;
 						margin-top: 16rpx;
 					}
 					.pl-item-info-list {

--
Gitblit v1.9.3