微信小程序宠物论坛4

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c++程序设计基础(第五版)(上) 习题与解答

    c++程序设计基础(第五版)(上) 习题与解答习题与解答C++程序设计基础(第5版)(上)习题与解答第1章练习题同步练习1.1一、选择题1.一个最简单的C++程序,可以只有一个()。(A)库函数 (B)自定义函数 (C)main函数 (D)空函数2.函数名是(),用于识别和调用函数。(A)关键字 (B)标识符 (C)常数 (D)语句3.用C++语言编写的源程序要成为目标程序必须要经过()…

    2022年4月28日
    97
  • 在linux中如何解压.tgz「建议收藏」

    在linux中如何解压.tgz「建议收藏」网上的方法,都不适合我这个粗人!总结一套本仙女的方法哈!比如仙女下载了一个.tgz文件到中然后首先:打开终端1,进入下载路径下,比如我的就是进入Downloads下。输入命令: cdDownloads2,解压到当前文件夹输入:tarzxvf 文件名.tgz-C./    比如我的是:tarzxvfsimple-examples.tgz-C./3,解压到指定文件夹下输入:tar …

    2022年4月20日
    69
  • Android项目实战_手机安全卫士splash界面

    Android项目实战_手机安全卫士splash界面

    2022年3月4日
    39
  • Eclipse使用之导入Maven项目详解[通俗易懂]

    Eclipse使用之导入Maven项目详解[通俗易懂]通俗的来说,Maven就是个类似于git的项目管理工具。而SpringMVC就是将M(Model)、V(View)、C(Controller)三者进行分离进行处理,更有利于开发的进行。下面我将介绍一个别人已经编译好的Maven项目扔给你应该怎样导入到集成开发环境中。开发环境:EclipseStep1:在Eclipse中,选择File->Import;接着如下图所示:点击Browse,选择

    2022年5月29日
    29
  • pycharm怎样恢复默认设置_说话的方式简单点

    pycharm怎样恢复默认设置_说话的方式简单点File-->ManageIDESettings-->RestoreDefaultSettings点击后,一直确定,之后会自动退出重新进去,就恢复出厂设置了。

    2022年8月25日
    6
  • CColor类封装[建议收藏]

    CColor类封装2.Color.cpp

    2021年12月18日
    51

发表回复

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

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