MrShi
2 天以前 6577a7ad7f2044bcfe75601e0360e9172a7d2380
mini-program/pages/article-details/article-details.vue
@@ -7,7 +7,7 @@
      </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>
@@ -21,7 +21,7 @@
                  {{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>
@@ -50,7 +50,7 @@
                        {{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>
@@ -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.length < item.replyCount" @click.stop="more(index)">展开{{item.replyCount - item.childern.length}}条回复</view>
            </view>
         </view>
      </view>
@@ -124,13 +124,16 @@
            </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'])
      },
@@ -142,6 +145,7 @@
            info: null,
            content: '',
            commentList: [],
            total: 0,
            page: 1,
            next: true,
            value: '',
@@ -166,6 +170,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,
@@ -249,22 +257,41 @@
            this.show1 = false
         },
         // 展开评论
         more(item) {
         more(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() {
            if (!this.userInfo) {
               this.$refs.login.open()
               return;
            }
            if (!this.value && this.multifileList.length === 0) return uni.showToast({
               title: '评论内容不能为空',
               icon: 'none'
@@ -309,8 +336,10 @@
               }
            }).then(res => {
               if (res.code === 200) {
                  this.total = res.data.total
                  res.data.records.forEach(item => {
                     item.createDate = dateConversion(item.createDate)
                     item.page = 1
                     item.childern = []
                     if (item.activityReplyCommentDTO) {
                        item.activityReplyCommentDTO.createDate = dateConversion(item.activityReplyCommentDTO.createDate)
@@ -326,6 +355,10 @@
            })
         },
         shoucang(type) {
            if (!this.userInfo) {
               this.$refs.login.open()
               return;
            }
            if (type === 1) {
               this.$u.api.cancelbatch({
                  ids: this.info.id,
@@ -347,6 +380,10 @@
            }
         },
         dianzan(type) {
            if (!this.userInfo) {
               this.$refs.login.open()
               return;
            }
            if (type === 1) {
               this.$u.api.zanCancel({
                  objId: this.info.id,