微信小程序宠物论坛4

微信小程序宠物论坛4微信小程序宠物论坛4帖子详情模块界面图JS部分//初始化数据化constdb=wx.cloud.database();constcont=db.collection(‘comment’);const_=db.commandPage({data:{value:”请输入评论…”,id:””,post:[],//帖子信息postid:””,//帖子IDtime:””,//时间content:”


Jetbrains全系列IDE稳定放心使用

微信小程序宠物论坛4

帖子详情模块

界面图
在这里插入图片描述
JS部分

// 初始化数据化
const db = wx.cloud.database();
const cont = db.collection('comment');
const _ = db.command
Page({
  data: {
    value:"请输入评论...",
    id:"",
    post:[],  //帖子信息
    postid: "" , //帖子ID
    time:"", //时间
    content:"",//内容
    userid:"",//发帖人的id
    heads:"",//头像
    nickname:"" ,//昵称
    collect:'', //收藏表返回
    collectid:'',//收藏表ID
  },

  // //下拉刷新加载数据
  // onPullDownRefresh: function () {
  //   wx.showNavigationBarLoading()
  //   wx.hideNavigationBarLoading();
  //   const _ = db.command
  //   const openid=this.data.openid
  //   const id=this.data.id
  //   // 查询收藏表
  //   db.collection('connection').where({
  //     _openid: openid,
  //     postid: id
  //   })
  //     .get({
  //       success: res => {
  //         console.log(res.data)
  //         this.setData({
  //           collect: res.data.length,
  //           collectid: res.data[0]._id
  //         })
  //         console.log(this.data.collect)
  //       },
  //       fail:res=>{
  //         console.log(res.data)
  //       }
  //     })
  //   setTimeout(function () {
  //     wx.hideNavigationBarLoading() //完成停止加载
  //     wx.stopPullDownRefresh() //停止下拉刷新
  //   }, 1500);
  // },
   
  handlecontentInput(e) {
    const value = e.detail.value
    this.data.content = value
  },

  onLoad: function (options) {
    // 获取用户openid
    wx.cloud.callFunction({
      name: "getopenid",
      success: res => {
         this.setData({
           openid: res.result.openid
         })
        console.log(res.result.openid)
      },
      fail(res) {
        console.log("获取openid失败")
      }
    })
    const openid = this.data.openid   //当前用户ID
    console.log(openid)

  // 获取评论用户的昵称和头像
    db.collection('user').where({
      _openid: openid
    })
      .get({
        success: res => {
          console.log(res.data)
          this.setData({
            nickname: res.data[0].nickname,
            heads: res.data[0].heads
          })
        }
      })

   
    this.setData({
      postid:options.id,
      id: options.id,
    }) 
  
   console.log(this.data.id)
   var id=this.data.id //当前帖子ID

    // 查询收藏表
    db.collection('connection').where({
      _openid: openid,
      postid:id
    })
      .get({
        success: res => {
          console.log(res.data)
          this.setData({
            collect:res.data.length,
            collectid:res.data[0]._id
          })
          console.log(this.data.collectid)
        }
      })

    // 查询当前帖子信息
    db.collection('post').where({
      _id: id
    })
    .get({
      success: res=>{
        console.log(res.data)
        this.setData({
          post: res.data,
          userid:res.data[0]._openid
        })
      }
    })

    //查询评论表
    wx.cloud.callFunction({
      name: 'getpost',
      data: {
        mark: 'getcomment',
        postid: this.data.postid
      }
    }).then(res => {
      console.log(res)
      this.setData({
        comment: res.result.data
      })
    }).catch(err => { })


  },
  //   db.collection('comment').where({
  //     postid: id
  //   })
  //     .get({
  //       success: res => {
  //         console.log(res.data)
  //         this.setData({
  //           comment: res.data,
  //         })
  //       }
  //     })
    
  //   this.setData({
  //     postid:id1
  //   })
  // },


  // 发表评论
  submit(e){
    const nickname=this.data.nickname
    const heads=this.data.heads
  
    var util = require('../../utils/util.js');
    const time = util.formatTime(new Date());
    this.setData({
      time: time
    });

    const content=this.data.content
    const postid = this.data.postid
    console.log(postid)
    const userid=this.data.userid
    
    if(content=='')
    {
      wx.showModal({
        title: '提示',
        content: '请先输入评论再发布',
        success(res) {
          if (res.confirm) {
            console.log('用户点击确定')
          } else if (res.cancel) {
            console.log('用户点击取消')
          }
        }
      })
    }
    else
    {
      // 将评论写入数据库
      db.collection('comment').add({
        data: {
          postid: postid,
          content: content,
          time: time,
          userid: userid,
          nickname: nickname,
          heads: heads,
          review:'0'
        },
        success: function (res) {
          wx.showToast({
            title: '发布成功,请等待审核',
            icon: 'success',
            mask: true,
            duration: 1000,
          })
        },
      })
 
      //查询评论表
      wx.cloud.callFunction({
        name: 'getpost',
        data: {
          mark: 'getcomment',
          postid: this.data.postid
        }
      }).then(res => {
        console.log(res)
        this.setData({
          comment: res.result.data
        })
      }).catch(err => { })

      // 将评论框中的信息置空
      this.setData({
        value:"请输入评论..."
      })

    }
  },

  // 收藏按钮
  collect(e){

    const postid=this.data.id
    console.log(postid)
    db.collection('connection').add({
      data: {
        postid:postid
      },
      success: function (res) {
        wx.showToast({
          title: '已收藏',
          icon: 'success',
          mask: true,
          duration: 1000,
        })
      }
    })


    // // 查询收藏表
    // const openid=this.data.openid
    // const id=this.data.id
    // db.collection('connection').where({
    //   _openid: openid,
    //   postid: id
    // })
    //   .get({
    //     success: res => {
    //       console.log(res.data)
    //       this.setData({
    //         collect: res.data.length,
    //         collectid: res.data[0]._id
    //       })
    //       console.log(this.data.collectid)
    //     }
    //   })
    this.setData({
      collect:1
    })
    

  },

  // 取消收藏按钮
  notcollect(e){
    const collectid = this.data.collectid //收藏表ID
    console.log(collectid)

    db.collection('connection').doc(collectid)
      .remove({
      success: function (res) {
        wx.showToast({
          title: '已取消收藏',
          icon: 'success',
          mask: true,
          duration: 1000,
        })
      }
    })
   this.setData({
     collect:0
   })
  }
})

WXML部分

<!-- 帖子显示 -->
<view class="post" wx:for="{
  
  {post}}" wx:key="post">

<!-- 标题 -->
<view class="title">
<text class="title">{
  
  {item.title}}</text>
</view>

<view wx:if="{
  
  {collect==0}}" >
<button class="collect" size="mini" bindtap="collect" plain='true'>收藏此贴</button>
</view>

<view wx:else>
<button class="notcollect" size="mini" bindtap="notcollect" plain='true'>已收藏</button>
</view>

<!-- 头像,昵称,时间 -->
<view class="userinfo" style="flex-direction:row;">
<image class="userinfo-avatar" src="{
  
  {item.heads}}" background-size="cover"></image>
<text decode="true" class="userinfo-nickname">&nbsp;&nbsp;{
  
  {item.nickname}}</text>
<text decode="true" class="userinfo-time">&nbsp;&nbsp;&nbsp;{
  
  {item.time}}</text>

</view>
<!-- 内容 -->
<view class="content">{
  
  {item.content}}</view>
<!-- 图片 -->
<view class="images" wx:for="{
  
  {item.images}}" wx:key="*this">
<image mode="heightFix" class="images-image" src="{
  
  {item}}"/>
</view>

</view>

<view class="hr"></view>



<!-- 显示评论 -->
<view class="showcomment" wx:for="{
  
  {comment}}" wx:key="comment" >
<image class="comment-avatar" src="{
  
  {item.heads}}" background-size="cover"></image>
<text class="comment-nickname" decode="true">&nbsp;&nbsp;&nbsp;{
  
  {item.nickname}}</text>
<text class="comment-time" decode="true">&nbsp;&nbsp;&nbsp;{
  
  {item.time}}</text>
<view class="comment-content">{
  
  {item.content}}</view>
<view class="line"></view>
</view>


<!-- 评论部分 --> 
<view class="comment">
<textarea class="textarea" value="{
  
  {value}}" placeholder-style="color:#b3b3b3;font-size:14px;" style="height: 12rem" maxlength="100" bindinput="handlecontentInput" bindblur="bindTextAreaBlur" auto-height />
<view class="line"></view>
<button class="besure" size="mini"  bindtap="submit" plain='true'>发布</button>
</view>

WXSS部分

.title{
  height: 100rpx
}
.title.title{
  text-align:center;
  font-size: 120%;
  font-weight:bold;
}

.userinfo{
  height:120rpx;
  padding-left:4.5%;
  padding-right:4.5%
}

.userinfo-avatar {
  width: 58rpx;
  height: 58rpx;
  border-radius: 50%;
}

.userinfo-nickname {
  font-weight:bold;
  font-size:75%;
  color: black;
  margin-bottom:30px;
}
.userinfo-time{
 font-size:65%;
 padding-bottom:40px
}

.content{
  padding-left:4.5%;
  padding-right:4.5%;
  height: 180rpx;
}
.images{                   
 justify-content: center; 
}
.line {
  border: 2px solid #ccc;
  opacity: 0.2;
}

.hr {
  width: 100%;
  height: 30px;
  background-color: #f4f5f6;
}

.showcomment{
  padding-left:4.5%;
  padding-right:4.5%;
}

.comment{
  padding-left:4.5%;
  padding-right:4.5%;
}
.besure{
  position:relative;
  left:550rpx;
}

.comment-avatar {
  width: 45rpx;
  height: 45rpx;
  border-radius: 50%;
}

.comment-nickname {
  font-weight:bold;
  font-size:75%;
  color: black;
}
.comment-time{
 font-size:65%;
}
.textarea{
margin-right: 200rpx;  
}

/* .collect{
  width: 42rpx;
  height: 42rpx;
  margin-top: 20rpx;
  background-color: white;
  color: #999999;
  border-radius: 0rpx;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-size: 30rpx;
}

.collect1 {
  width: 42rpx;
  height: 42rpx;
  position: relative;
  right:200rpx;
  top:20rpx
}

.collect::after {
  border: 0; 
} */

.collect{
  position: relative;
  left:60%;
  top:20%
}

.notcollect{
  position: relative;
  left:60%;
  top:20%
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/184952.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 用命令行进入目录_在命令行如何进入子目录

    用命令行进入目录_在命令行如何进入子目录CD命令是更改目录命令如果要进入D盘不用这个命令直接输入D:回车即可要是你非要使用CD命令那要加参数/D你图中输入的CD D:系统只是认为你想在系统中记忆一下D盘所以还是返回原先目录例:D盘下有一个目录叫AD下面还有一个目录叫AE 我想在你图中的位置直接进入AE目录命令如下CD/DD:\AD\AE一定要加参数(/D)如果不加参数只写CDD:\AD\AE系统还是…

    2022年10月15日
  • new和malloc的作用是一样的_商城面试题

    new和malloc的作用是一样的_商城面试题new和malloc的区别是C/C++一道经典的面试题,我也遇到过几次,回答的都不是很好,今天特意整理了一下。0.      属性new/delete是C++关键字,需要编译器支持。malloc/free是库函数,需要头文件支持。1.      参数使用new操作符申请内存分配时无须指定内存块的大小,编译器会根据类型信息自行计算。而malloc则需要显式地指出所需内存的尺寸。

    2022年4月20日
  • UE4 GamePlay架构学习篇[通俗易懂]

    UE4 GamePlay架构学习篇[通俗易懂]附带上激活成功教程版安装说明:1.安装jdk。百度搜索jdk,如果安装了则跳过。2.解压下载的.zip文件。双击打开。syntevo_keygen.jar文件。

    2022年10月4日
  • Document类型、HTMLDocument类型和document对象的区别[通俗易懂]

    Document类型、HTMLDocument类型和document对象的区别[通俗易懂]Dcoment表示文档,这里的文档可以是HTML文档,也可以是XML文档,换句话说Document类型能表示HTML和XML等文档; HTMLDocument对象继承自Document对象,专用于表示HTML文档; document对象是HTMLDocument对象的一个实例,表示整个HTML页面,又叫做页面的根节点;Document对象(根节点)的特征:<!DOCTYPEht…

    2022年7月19日
  • Python-matplotlib画图(莫烦笔记)

    https://www.zhihu.com/collection/260736383&lt;此处就不自己写了,看了遍,照着写了一边,作者写的不错。不过有些有些偷懒,我只做了常见的功能&gt;作者:触摸壹缕阳光链接:https://zhuanlan.zhihu.com/p/33270402来源:知乎著作权归作者所有,转载请联系作者获得授权。1.前言Matplotlib是一个python的2D绘图库…

    2022年4月4日
  • protel99SE – 多张原理图生成一张总网表的方法

    protel99SE – 多张原理图生成一张总网表的方法protel99SE-多张原理图生成一张总网表的方法1.新建一张原理图,点击”PlaceSheetSymbol”放置一个原理图符号,然后右击选其“proterties”,在filename    一栏输入你准备与之绑定的原理图文件名.确定ok.  依此类推…,直到把全部的原理图与每一个放置的原理图符号绑定完为止。最后保存。2.打开全部的原理图(否则导入PCB时不

    2022年5月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号