最近$set疯狂用, 记录一下
评论页面的每条留言的状态 和留言下每条留言的状态 强制刷新
数据的格式是

[ {demo1  content:'',  id:1,  replyList:[{   replyContent:'',   replyId:0   },{  replyContent:'',   replyId:1}]  },demo2  content:'',  id:1,  replyList:[{   replyContent:'',   replyId:0   },{  replyContent:'',   replyId:1}]  },...]

针对一级回复和二级回复的回复状态点击时每次只能显示一个回复框的封装

async closeDialog () {      let self = this      self.componentData.list.forEach((value, key) => {        let obj = { ...value }        obj.commentVisiable = false        if ('commentReplyList' in obj) {          obj.commentReplyList = obj.commentReplyList.map((item) => {            let newList = { ...item }            newList.replyVisiable = false            return newList          })        }        self.$set(self.componentData.list, key, obj)      })    },

一级

forAnswer (item, index) {      let newVal = Object.assign(item)      newVal.commentVisiable = !newVal.commentVisiable      if ('commentReplyList' in newVal) {        newVal.commentReplyList = newVal.commentReplyList.map((item) => {          let newList = { ...item }          newList.replyVisiable = false          return newList        })      }      this.$set(this.componentData.list, index, newVal)    },    // 一级回复    async answerAction (item, index, type) {      let self = this      if (type === 1) {        await self.closeDialog()      }      this.forAnswer(item, index)    },

二级回复

// 二级回复    forReply (reply, indexa, indexb) {      let newVal = Object.assign(reply)      newVal.replyVisiable = !newVal.replyVisiable      let secondList = [...this.componentData.list[indexa].commentReplyList]      secondList[indexb] = newVal      let newComponentOjb = Object.assign(this.componentData.list[indexa])      newComponentOjb.commentReplyList = secondList      this.$set(this.componentData.list, indexa, newComponentOjb)    },    // 二级回复    async replyAction (reply, indexa, indexb, type) {      let self = this      if (type === 1) {        await self.closeDialog()      }      this.forReply(reply, indexa, indexb)    },

提交回复

//一级// 提交回复    answerSubmit (item, index) {      this.forAnswer(item, index)      var self = this      let userCode = this.componentData.list[index].userCode      // let commentId = this.componentData.list[index].commentId      this.axios        .post(self.publicPath + '/comment/addCommentReply', {          commentId: item.id,          replyUserCode: userCode,          replyContent: item.replyContent        })        .then(res => {          if (res.data.code == 1) {            self.$message.success('发布成功')            self.commentContent = ''            self.$emit('childFn', item.commentTargetId)          } else {            self.$message.error('发布失败')          }        })    },