doum
10 小时以前 a997c45ed4675d2eb045090fddb933235f4279cd
mini-program/pages/article-details/article-details.vue
@@ -7,11 +7,11 @@
      </view>
      <view class="xian"></view>
      <view class="pl">
         <view class="pl-title">评论 {{info.commentCount || 0}}</view>
         <view class="pl-title">评论 {{total}}</view>
         <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>
@@ -28,9 +28,9 @@
                  <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)">
                     <view class="pl-item-info-data-list-item"   @click="openTwo(item.id, item)">
                        <image src="/static/icon/ic_reply2@2x.png" mode="widthFix"></image>
                     </view>
                     <view class="pl-item-info-data-list-item" @click.stop="dianzanpl(item)">
@@ -40,7 +40,7 @@
                     </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>
@@ -59,7 +59,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 +71,7 @@
                     </view>
                  </view>
               </view>
               <view class="pl-more" v-if="item.childern.length > 0" @click.stop="more(item)">展开{{item.replyCount - 1}}条回复</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>
@@ -142,6 +142,7 @@
            info: null,
            content: '',
            commentList: [],
            total: 0,
            page: 1,
            next: true,
            value: '',
@@ -249,19 +250,34 @@
            this.show1 = false
         },
         // 展开评论
         more(item) {
         moreReply(index) {
            this.$u.api.findActivityReplyCommentDTOPage({
               capacity: 10,
               page: 1,
               page: this.commentList[index].page,
               model: {
                  type: 1,
                  commentId: item.id
                  commentId: this.commentList[index].id
               }
            }).then(res => {
               if (res.code === 200) {
                  console.log(res)
                  this.commentList[index].page++
                  this.commentList[index].childern = this.uniqueById([
                     ...this.commentList[index].childern,
                     ...res.data.records
                  ])
               }
            })
         },
         // 数组去重
         uniqueById(arr) {
            const map = new Map();
            return arr.filter(item => {
               if (!map.has(item.id)) {
                  map.set(item.id, true);
                  return true;
               }
               return false;
            });
         },
         // 评论
         sendComment() {
@@ -283,15 +299,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()
               }
            })
         },
@@ -309,8 +327,10 @@
               }
            }).then(res => {
               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) {
                        item.activityReplyCommentDTO.createDate = dateConversion(item.activityReplyCommentDTO.createDate)
@@ -606,6 +626,7 @@
                  font-weight: 400;
                  font-size: 28rpx;
                  color: #333333;
                  word-break: break-word;
                  margin-top: 16rpx;
               }
               .pl-item-info-list {