更新论坛

master
13285100733@qq.com 2 years ago
parent 6cd9305a24
commit f4f71bcba8

@ -4,15 +4,14 @@
"pages/index/index",
"pages/submit/submit",
"pages/notify/notify",
"pages/answer/answer",
"pages/question/question"
"pages/searchShow/searchShow",
"pages/change/change",
"pages/answer/answer"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#0068C4",
"navigationBarTitleText": "知乎",
"navigationBarTitleText": "论坛",
"navigationBarTextStyle":"white",
"enablePullDownRefresh":true
},
@ -31,7 +30,9 @@
"text": "",
"iconPath": "images/ring.png",
"selectedIconPath": "images/ring_focus.png"
}]
}
]
},
"networkTimeout": {
"request": 10000,

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

@ -1,50 +1,145 @@
//answer.js
let dianzan=false
var app = getApp()
Page({
data: {
motto: '知乎--微信小程序版',
userInfo: {},
feed: [],
//修改
pinglun:[], //评论数组
content:'',
detail: '',
dianzanUrl: "../../images/heart2.png",
comment_num:0
},
//事件处理函数
toQuestion: function() {
wx.navigateTo({
url: '../question/question'
})
},
// toQuestion: function() {
// wx.navigateTo({
// url: '../question/question'
// })
// },
onLoad: function (options) {
var aid=options.aid
console.log(options);
console.log(options.aid);
console.log('onLoad')
var that = this
//调用应用实例的方法获取全局数据
/*app.getUserInfo(function(userInfo){
//更新数据
that.setData({
userInfo:userInfo
wx.setStorageSync('aid', aid)
//修改
wx.cloud.database().collection("tiezi")
.doc(aid)
.get()
.then(res => {
console.log("详情页成功", res);
//将收藏添加到数据库
//shoucang = res.data.shoucang
//dianzan = res.data.dianzan
//console.log(shoucang, dianzan);
//再次显示数据
this.setData({
detail: res.data,
pinglun:res.data.pinglun
})
})
})*/
wx.cloud.database().collection('tiezi')
.where({
_id:aid
})
.get({
success(res) {
console.log("请求成功", res)
that.setData({
feed:res.data
}),
console.log(res.data)
},
fail(res) {
console.log("请求失败", res)
}
.catch(err => {
console.log("详情页失败", err);
})
var getId = options.aid;
// 让接收到的id值传递到data:{}里面
this.setData({
currentId: getId
});
// 读取所有的文章列表点赞缓存状态
var cache = wx.getStorageSync('cache_key');
// 如果缓存状态存在
if (cache) {
// 拿到所有缓存状态中的1个
var currentCache = cache[getId];
// 把拿到的缓存状态中的1个赋值给data中的collection如果当前文章没有缓存状态currentCache 的值就是 false如果当前文章的缓存存在那么 currentCache 就是有值的,有值的说明 currentCache 的值是 true
this.setData({
collection: currentCache
})
} else {
// 如果所有的缓存状态都不存在 就让不存在的缓存存在
var cache = {};
// 既然所有的缓存都不存在,那么当前这个文章点赞的缓存也不存在,我们可以把当前这个文章点赞的缓存值设置为 false
cache[getId] = false;
// 把设置的当前文章点赞放在整体的缓存中
wx.setStorageSync('cache_key',cache);
}
},
// 点击图片的点赞事件 这里使用的是同步的方式
toCollect: function(options) {
let aid= wx.getStorageSync ("aid")
console.log(aid);
// 获取所有的缓存
var cache = wx.getStorageSync('cache_key');
// 获取当前文章是否被点赞的缓存
var currentCache = cache[this.data.currentId];
// 取反,点赞的变成未点赞 未点赞的变成点赞
currentCache = !currentCache;
// 更新cache中的对应的1个的缓存值使其等于当前取反的缓存值
cache[this.data.currentId] = currentCache;
// 重新设置缓存
wx.setStorageSync('cache_key',cache);
// 更新数据绑定,从而切换图片
this.setData({
// collection 默认的是 false
collection: currentCache
});
// 交互反馈
wx.showToast({
title: currentCache?'点赞':'取消',
icon: 'success',
duration: 2000
});
if(currentCache==true){
wx.cloud.database().collection("tiezi")
.doc(aid)
.update({
data: {
// 前面为数据库字段,后面为修改之后的值
good_num: wx.cloud.database().command.inc(1),
}
})
.then(res => {
console.log("添加评论成功", res);
return res
})
.catch(err => {
console.log("添加评论失败", err);
return err
})
}
else{
wx.cloud.database().collection("tiezi")
.doc(aid)
.update({
data: {
// 前面为数据库字段,后面为修改之后的值
good_num: wx.cloud.database().command.inc(-1),
}
})
.then(res => {
console.log("成功", res);
return res
})
.catch(err => {
console.log("失败", err);
return err
})
}
},
/*
onLoad: function (options) {
@ -52,5 +147,151 @@ Page({
tapName: function(event){
console.log(event)
},
//获取输入的值
getContent(event){
this.setData({
content:event.detail.value
})
},
//发表评论
fabiao(options){
let content=this.data.content
if(content.length<4){
wx.showLoading({
icon:"none",
title: '评论太短了',
})
return
}
let pinglunItem={}
pinglunItem.nickName=wx.getStorageSync ("nickName")
pinglunItem.avatarUrl=wx.getStorageSync ("avatarUrl")
pinglunItem.content=content
let pinglunArr=this.data.pinglun
pinglunArr.push(pinglunItem)
let l= pinglunArr.length
console.log("评论数",l)
console.log("添加后的评论数组",pinglunArr)
wx.showLoading({
title: '发表中',
})
wx.cloud.init({
env:"cloud1-8g5wmepxce8a3b8a",
})
let aid= wx.getStorageSync ("aid")
console.log(aid);
//异步操作
wx.cloud.database().collection("tiezi")
.doc(aid)
.update({
data: {
// 前面为数据库字段,后面为修改之后的值
pinglun: pinglunArr,
comment_num:pinglunArr.length
}
})
.then(res => {
console.log("添加评论成功", res);
return res
})
.catch(err => {
console.log("添加评论失败", err);
return err
})
let that = this;
wx.hideLoading({
success: (res) => {
that.setData({
pinglun:pinglunArr,
content:''
})
wx.showToast({
title: '发布成功',
})}})
},
//点赞切换
clickDianzan() {
this.setData({
dianzanUrl: dianzan ? "../../images/heart2.png" : "../../images/heart1.png"
})
dianzan = !dianzan
wx.setStorageSync ("dianzan",dianzan)
console.log("改变点赞状态", dianzan)
},
amend: function(e) {
let aid= wx.getStorageSync ("aid")
console.log(aid);
wx.showModal({
title: '编辑',
content: '确定要修改已发布的信息吗?',
success(res) {
if(res.confirm) {
wx.redirectTo({
url: '../change/change?aid='+aid,
})
console.log('用户点击了确定')
}else if(res.cancel) {
console.log('用户点击了取消')
}
}
})
},
delete(event){
let aid= wx.getStorageSync ("aid")
console.log(aid);
wx.cloud.database().collection('tiezi')
.doc(aid)
.remove()
.then(res => {
console.log(res);
}).catch(res => {
console.log(res);
})
wx.switchTab({
url: '../index/index'
})
},
delete_p: function(event) {
/*wx.navigateTo({
url: '../answer/answer'
})*/
let aid= wx.getStorageSync ("aid")
console.log(aid);
var aidc=event.currentTarget.dataset.aidc;
console.log(aidc)
//console.log("1")
wx.cloud.database().collection('tiezi')
.where({
'_id':aid,
'pinglun.content':aidc
})
.update({
data:{
pinglun:wx.cloud.database().command.pull({
content:aidc
}),
comment_num:wx.cloud.database().command.inc(-1)
}
})
.then(res => {
console.log(res);
console.log(res);
wx.showLoading({
title: '删除成功...',
})
wx.redirectTo({
url: '../answer/answer?aid='+aid,
})
wx.hideLoading()
}).catch(res => {
console.log(res);
})
}
})

@ -1,94 +1,93 @@
<!--answer.wxml-->
<block wx:for="{{feed}}" wx:key="index">
<!--<block wx:for="{{feed}}" wx:key="index">-->
<view class="mycontainer">
<view class="a" >
<view class="question" >
<text class="question-title">{{item.title}}</text>
<text class="question-title">{{detail.title}}</text>
</view>
<view class="answerer-wrp">
<view class="bg-half"></view>
<view class="answerer flex-wrp">
<view class="avatar flex-item">
<image src="{{item.feed_source_img}}"></image>
<image src="{{detail.feed_source_img}}"></image>
</view>
<view class="answerer-info flex-item">
<text class="answerer-name">{{item.feed_source_name}}</text>
<text class="answerer-des">快来关注我吧~</text>
<text class="answerer-name">{{detail.feed_source_name}}</text>
<text class="answerer-des">喜欢就点个赞吧~</text>
</view>
<!-- <view class="follow flex-item"> -->
<view class="follow flex-item">
<!-- 删除 -->
<image data-aid="{{detail._id}}" bindtap="delete" class="a3" src="/images/delete.png"></image>
<text>删除</text>
<!-- </view> -->
</view>
<view class="follow flex-item">
<!-- 修改 -->
<image data-aid="{{detail._id}}" bindtap="amend" class="image" src="/images/write.png"></image>
<text>编辑</text>
<!-- </view> -->
</view>
<view class="follow flex-item">
<text>十 关注</text>
<image wx:if="{{collection}}" src="../../images/heart1.png" bindtap="toCollect"></image>
<image wx:else src="../../images/heart2.png" bindtap="toCollect"></image>
<text>点赞</text>
<!-- </view> -->
</view>
</view>
</view>
<view class="answer-content">
<text class="desc">{{item.content}}</text>
<!--<text>难道不明白纸质书更贵啊!!!
<text class="desc" style="white-space:pre-wrap;">{{detail.content}}</text>
若觉得kindle更贵我觉得要么阅读量太少那确实没有买kindle的必要。要么买的都是盗版的纸质书我不清楚不加以评论。。。
另外用kindle看小说的怎么真心不懂了。题主不看小说么难道题主拿来看教科书还是技术文档还是题主觉得小说就是小时代内样的对小时代没偏见尊重多样性
而且纸质书搬起来真心困难啊!当初毕业带不回来,忍痛卖了不少好桑心!
<image webp wx:for="{{detail.url}}" mode='widthFix' src="{{item}}" ></image>
</view>
</view>
<!--</block>-->
碎片时间阅读总不能天天背着一本书吧,那么占地方。
看到描述最后一段,感觉有骗答案的嫌疑
</text>
<image src="../../images/1444983318907-_DSC1826.jpg"></image>
<text>
难道不明白纸质书更贵啊!!!
若觉得kindle更贵我觉得要么阅读量太少那确实没有买kindle的必要。要么买的都是盗版的纸质书我不清楚不加以评论。。。
<!-- 评论 -->
<block wx:for="{{pinglun}}" wx:key="index">
<view class="pinglunItem ">
<view>
<image class="a1" src="{{item.avatarUrl}} "></image>
</view>
<view >
<view class="desc" >{{item.nickName}}{{item.content}}</view>
</view>
<view>
<image data-aidc="{{item.content}}" bindtap="delete_p" class="a2" src="/images/delete.png"></image>
</view>
</view>
</block>
另外用kindle看小说的怎么真心不懂了。题主不看小说么难道题主拿来看教科书还是技术文档还是题主觉得小说就是小时代内样的对小时代没偏见尊重多样性
而且纸质书搬起来真心困难啊!当初毕业带不回来,忍痛卖了不少好桑心!
<view class="search flex-wrp">
<view class="search-left flex-item">
<input placeholder="请输入评论的内容" placeholder-class="search-placeholder" bindinput="getContent" value="{{content}}"/>
</view>
<view class="search-right flex-item" bindtap="fabiao">
<view class="desc">发表</view>
</view>
</view>
碎片时间阅读总不能天天背着一本书吧,那么占地方。
看到描述最后一段,感觉有骗答案的嫌疑
<view class="standView"></view>
</text>
<image src="../../images/1444983318907-_DSC1826.jpg"></image>-->
<image wx:for="{{item.url}}" src="{{item}}" ></image>
</view>
</view>
</block>
<!--
<view class="answer-footer flex-wrp">
<view class="good flex-item">
<view class="good-bad">
<image src="../../images/good-bad.png"></image>
</view>
<view class="good-num">2.1k</view>
</view>
<view class="operation-wrp flex-item">
<view class="operation flex-wrp flex-tab">
<view class="operation-btn flex-item">
<image src="../../images/flag.png"></image>
<text>没有帮助</text>
</view>
<view class="operation-btn flex-item">
<image src="../../images/heart2.png"></image>
<text>感谢</text>
</view>
<view class="operation-btn flex-item">
<image src="../../images/star2.png"></image>
<text>收藏</text>
</view>
<view class="operation-btn flex-item">
<image src="../../images/comment.png"></image>
<text>302</text>
</view>
</view>
</view>
</view>
</view>
-->

@ -1,4 +1,7 @@
/**answer.wxss**/
.mycontainer{
margin-bottom: 200rpx;
}
.a {
padding: 0;
@ -69,21 +72,47 @@
color: #808080;
line-height: 28rpx;
}
.answerer .follow{
flex: 2;
.answerer .follow image{
/* flex: 2;
padding: 15rpx 0;
font-size: 22rpx;
font-size: 22rpx; */
display: block;
margin: 0 auto;
width: 40rpx;
height: 40rpx;
}
.answerer .follow text{
display: inline-block;
/* display: inline-block;
padding: 15rpx 20rpx;
color: #40bcd0;
border: solid 2px #40bcd0;
border-radius: 6rpx;
border-radius: 6rpx; */
display: block;
font-size: 14rpx;
color: #bebebe;
}
.answerer .follow .a3{
/* flex: 2;
padding: 15rpx 0;
font-size: 22rpx; */
display: block;
margin: 0 auto;
width: 30rpx;
height: 35rpx;
margin-top: 9rpx;
}
.answer-content{
padding: 30rpx 40rpx;
background: #ffffff;
}
.answer-content text{
font-size: 32rpx;
@ -96,56 +125,176 @@
margin: 20rpx 0;
}
.answer-footer{
position: fixed;
bottom: 0;
height: 70rpx;
border-top: solid 1px #ebebeb;
background: #ffffff;
width: 670rpx;
padding: 20rpx 40rpx;
width: 750rpx;
height: 70rpx;
font-size: 28rpx;
box-shadow: 0 100px 7px #bebebe;
margin: 0 200rpx 0 0;
position: sticky ;
bottom: 0;
z-index: 9999;
}
.answer-footer{
position: fixed;
bottom: 0;
height: 70rpx;
border-top: solid 1px #ebebeb;
background: #ffffff;
width: 670rpx;
padding: 20rpx 40rpx;
}
.answer-footer .good{
flex: 1;
/*display: inline-block;*/
height: 40rpx;
border: solid 1px #d1d1d1;
border-radius: 3px;
padding: 10rpx 8rpx;
margin: 10rpx 0;
flex: 1;
/*display: inline-block;*/
height: 40rpx;
border: solid 1px #d1d1d1;
border-radius: 3px;
padding: 10rpx 8rpx;
margin: 10rpx 0;
}
.answer-footer .good .good-bad{
display: inline-block;
display: inline-block;
}
.answer-footer .good image{
display: inline-block;
width: 38rpx;
height: 38rpx;
vertical-align: middle;
display: inline-block;
width: 38rpx;
height: 38rpx;
vertical-align: middle;
}
.answer-footer .good .good-num{
display: inline-block;
padding: 10rpx 4rpx;
/*font-size: 24rpx;*/
display: inline-block;
padding: 10rpx 4rpx;
/*font-size: 24rpx;*/
}
.answer-footer .operation-wrp{
flex: 5;
flex: 5;
}
.answer-footer .operation{
justify-content: space-between;
padding: 0 0 0 60rpx;
justify-content: space-between;
padding: 0 0 0 60rpx;
}
.answer-footer .operation-btn{
flex: 1;
text-align: center;
flex: 1;
text-align: center;
}
.answer-footer .operation image{
display: block;
margin: 0 auto;
width: 50rpx;
height: 50rpx;
display: block;
margin: 0 auto;
width: 50rpx;
height: 50rpx;
}
.answer-footer .operation-btn text{
display: block;
font-size: 14rpx;
color: #bebebe;
display: block;
font-size: 14rpx;
color: #bebebe;
}
/* .tip{
position: relative;
width: 650rpx;
padding: 30rpx 50rpx 30rpx;
/*background: #298DE5;*/
/* color: rgb(0, 0, 0);
font-size: 38rpx;
line-height: 48rpx;
} */
.input{
display:block;
border:2px solid gainsboro;
margin-top: 60rpx;
margin-bottom: 60rpx;
}
.pinglunItem{
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
border-top: 2px solid gainsboro;
margin-left: 0rpx;
margin-top: 0rpx;
}
.pinglunItem .a1{
margin-left: 30rpx;
margin-right: 30rpx;
margin-top: 20rpx;
margin-bottom: 20rpx;
width: 60rpx;
height: 60rpx;
border-radius: 90rpx;
}
.pinglunItem .desc{
font-size: 30rpx;
height: 40rpx;
}
.pinglunItem .a2 {
margin-left: 100rpx;
margin-right: 30rpx;
margin-top: -20rpx;
width: 30rpx;
height: 35rpx;
position: absolute; /* 要约束所在位置的子元素的位置要设置成绝对 */
right: 0;
}
.search{
position: fixed;
bottom: 0;
width: 735rpx;
height: 65rpx;
padding: 12.5rpx 0 12.5rpx 15rpx;
background: #2A8CE5;
}
.search-left{
flex: 8;
background: #4EA3E7;
text-align: left;
}
.search-left input{
display: inline-block;
height: 65rpx;
font-size: 26rpx;
}
.search-placeholder{
color: #8CCEFD;
line-height: 20rpx;
}
.search .search-left image{
display: inline-block;
width: 35rpx;
height: 35rpx;
padding: 15rpx 15rpx 15rpx 20rpx;
}
.search .search-right{
flex: 1;
}
.search .search-right .desc{
font-size: 25rpx;
color: #ffffff;
margin:15rpx
}
/* 解决底部导航栏遮挡的占位view的样式 */
.standView{
width: 100%;
height: 100rpx; /* 自定义一下需要的高度 */
/* background-color: black; */
}

@ -0,0 +1,241 @@
// pages/change/change.js
var app = getApp()
Page({
data: {
feed: [],
change1: '',
change2: '',
tempFilePaths: [],
t:'',
c:'',
nowCount:0,//当前的图片上传个数
index:0,
url:[]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var that = this
var aid=options.aid
console.log(options);
console.log(options.aid);
wx.cloud.database().collection('tiezi')
.doc(aid)
.get({
success(res) {
console.log("请求成功", res.data)
console.log("请求成功", res.data.url.length)
// 将查询返回的结果赋值给本地数组
that.setData({
feed: res.data,
nowCount:res.data.url.length,
tempFilePaths: res.data.url,
url:res.data.url,
t:res.data.title,
c:res.data.content
})
},
fail(res) {
console.log("请求失败", res)
}
})
},
// 获取修改后的内容
change1: function(e) {
this.setData({
change1: e.detail.value
})
},
change: function(e) {
this.setData({
change2: e.detail.value
})
},
//图片的上传
chooseImage:function(e){
let that = this;
wx.chooseImage({
count: 3, // 默认最多3张图片可自行更改
sizeType: ['original', 'compressed'],// 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: res => {
wx.showToast({
title: '正在上传...',
icon: 'loading',
mask: true,
duration: 1000
})
// 返回选定照片的本地文件路径列表tempFilePath可以作为img标签的src属性显示图片
let tempFilePath = res.tempFilePaths;
console.log(tempFilePath);
let nowCount = that.data.nowCount;
let tempFilePaths = that.data.tempFilePaths;
if(that.data.nowCount + tempFilePath.length >=3){
let i = 0;
while(nowCount<3){//还可以继续上传图片
tempFilePaths.push(tempFilePath[i]);
i++;
nowCount++;
}
that.setData({
nowCount:3,
tempFilePaths:tempFilePaths
})
}else{
let i = 0;
while(i<tempFilePath.length){
tempFilePaths.push(tempFilePath[i]);
i++;
}
that.setData({
nowCount:that.data.nowCount + tempFilePath.length,
tempFilePaths:tempFilePaths
})
}
console.log(that.data.nowCount,that.data.tempFilePaths);
}
})
},
//长按删除图片
DeleteImg: function (e) {
let that = this;
let tempFilePaths = that.data.tempFilePaths;
let index = e.currentTarget.dataset.index;//获取当前长按图片下标
wx.showModal({
title: '提示',
content: '确定要删除此图片吗?',
success: function (res) {
if (res.confirm) {
//console.log('点击确定了');
let nowCount = that.data.nowCount;
that.setData({
nowCount:nowCount-1
})
tempFilePaths.splice(index, 1);
} else if (res.cancel) {
//console.log('点击取消了');
return false;
}
that.setData({
tempFilePaths:tempFilePaths
});
}
})
},
// 提交修改
sure: function(event) {
var that = this
let content1
let content
// if(this.data.change1==''){console.log("1")}
// if(this.data.change2==''){console.log("2")}
if(this.data.change1==''){
content1=this.data.t
}else{
content1=this.data.change1
}
if(this.data.change2==''){
content=this.data.c
}else{
content=this.data.change2
}
console.log(content1,"1",content,"1")
//图片修改
let i;
let count=0;
let url=this.data.url
let l=url.length
console.log(l)
if(that.data.nowCount==0){
wx.cloud.init({
env:"cloud1-8g5wmepxce8a3b8a",
})
let aid=wx.getStorageSync ("aid")
console.log(aid);
wx.cloud.database().collection('tiezi')
.doc(aid)
.update({
data:{
title:content1,
content: content,
}
}).then(res=>{
console.log(res);
wx.showLoading({
title: '修改成功...',
})
wx.redirectTo({
url: '../answer/answer?aid='+aid,
})
wx.hideLoading()
}).catch(res=>{
console.log(res);
})
}else{
//将所有的内容上传到云端去
for(i=l;i<that.data.nowCount;i++){
console.log(1);
let extName = that.data.tempFilePaths[i].split(".").pop();
let cloudPath = "love/" + new Date().getTime() + "." + extName;
wx.cloud.uploadFile({
cloudPath: cloudPath,
filePath: that.data.tempFilePaths[i], // 文件路径
success: res => {
count++;
url.push(res.fileID);
console.log('上传图片');
console.log(i,url);
if(count==that.data.nowCount){
console.log(url);
}
},fail:res=>{
console.log(res);
}
})
}
wx.cloud.init({
env:"cloud1-8g5wmepxce8a3b8a",
})
let aid=wx.getStorageSync ("aid")
console.log(aid);
wx.cloud.database().collection('tiezi')
.doc(aid)
.update({
data:{
title:content1,
content: content,
url:url
}
}).then(res=>{
console.log(res);
wx.showLoading({
title: '修改成功...',
})
wx.redirectTo({
url: '../answer/answer?aid='+aid,
})
wx.hideLoading()
}).catch(res=>{
console.log(res);
})
}
},
})

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

@ -0,0 +1,25 @@
<!--pages/change/change.wxml-->
<!-- 用户自行修改数据的页面 -->
<view class="wall-item">
<!-- 内容 -->
<textarea class="title" bindinput="change1"placeholder="{{change1}}" decode="{{true}}" value="{{feed.title}}" style="height: 25px;"></textarea>
<textarea bindinput="change" style="white-space:pre-wrap;" value="{{feed.content}}" placeholder="{{change}}" data-aid="{{feed._id}}" class="content"></textarea>
<!--帖子的图片-->
<view class="img_box">
<view class="imgs" wx:for="{{tempFilePaths}}" wx:key="index">
<image src='{{item}}' bindlongpress="DeleteImg" bindtap="listenerButtonPreviewImage" data-index="{{index}}" mode='widthFix' />
</view>
<view class="imgs" wx:if="{{feed.url.length<3}}">
<view class="images" bindtap="chooseImage">
<image src='../../images/upload.png' mode='widthFix' />
</view>
</view>
</view>
</view>
<!-- 确认修改 -->
<button class="publish" bindtap="sure">确认修改</button>

@ -0,0 +1,73 @@
/* pages/change/change.wxss */
.title{
font-size: 38rpx;
display: flex;
margin-top: 25rpx;
padding: 13px 0;
margin-bottom: 30rpx;
border-bottom: 1px solid #ccc;
}
.content{
margin-bottom: 30rpx;
border-bottom: 1px solid #ccc;
padding-right: 50rpx;
margin-top: 30rpx;
display: block;
width: 100%;
height: 550rpx !important;
box-sizing: border-box;
font-size: 32rpx;
color: #454545;
line-height: 44rpx;
/*word-break: break-all;*/
}
.picker{
display: flex;
padding: 13px 0;
margin-bottom: 35rpx;
border-bottom: 1px solid #ccc;
}
.img_box{
position:relative;
display: flex;
flex-wrap: wrap;
margin:0 auto;
}
.imgs{
width:33.33333333%;
display: flex;
justify-content: center;
margin-bottom:20rpx;
}
.imgs image{
width:90%;
max-height:212rpx;
border:1px solid rgba(214, 212, 212, 0.1);
/* box-shadow: 5rpx 5rpx 1rpx 3rpx #e2e0e0; */
}
.imgs .images{
position:relative;
}
.images button{
width:100%;
height:100%;
position:absolute;
top:0;
left:0;
}
.img_box .images{
width:90%;
height: 212rpx;
border:1px solid #E8E8E8;
border-radius:4rpx;
display: flex;
align-items: center;
justify-content: center;
}
.img_box .images>image{
width:60rpx;
height:60rpx;
}

@ -1,10 +1,12 @@
//index.js
let currentPage = 0 // 当前第几页,0代表第一页
let pageSize = 1
let pageSize = 6
var util = require('../../utils/util.js')
var app = getApp()
Page({
data: {
search:'',
re:[],
feed: [],
feed_length: 0,
loadMore: false, //"上拉加载"的变量默认false隐藏
@ -24,23 +26,27 @@ bindItemTap: function(event) {
})
},
bindQueTap: function() {//跳转que 可不用此函数
},
onLoad: function () {
console.log('onLoad')
this.clearCache();
let that = this
//调用应用实例的方法获取全局数据
this.getData();
this.refresh()
},
onShow: function (){
console.log('onshow')
this.upper()
},
upper: function () {
upper: function () {//下滑刷新
wx.showNavigationBarLoading()
this.refresh();
console.log("upper");
setTimeout(function(){wx.hideNavigationBarLoading();wx.stopPullDownRefresh();}, 2000);
setTimeout(function(){wx.hideNavigationBarLoading();wx.stopPullDownRefresh();}, 1000);
},
lower: function (e) {
lower: function (e) {//触底加载
wx.showNavigationBarLoading();
var that = this;
setTimeout(function(){wx.hideNavigationBarLoading();that.nextLoad();}, 1000);
@ -112,19 +118,22 @@ onLoad: function () {
})
},
refresh: function(){
wx.showToast({
title: '刷新中',
icon: 'loading',
duration: 3000
});
this.clearCache();
this.getData()
let that = this
if (!that.data.loadMore) {
that.setData({
loadMore: true, //加载中
loadAll: false //是否加载完所有数据
});}
},
//使用本地 fake 数据实现继续加载效果
nextLoad: function(){
console.log("上拉触底事件")
let that = this
if (!that.data.loadMore) {
that.setData({
@ -139,13 +148,6 @@ onLoad: function () {
}
},
// 清缓存
clearCache:function(){
currentPage = 0;//分页标识归零
this.setData({
feed: [] //列表数组清空
});
},
goto(){
wx.navigateTo({
@ -153,6 +155,97 @@ onLoad: function () {
})
},
// 清缓存
clearCache:function(){
currentPage = 0;//分页标识归零
this.setData({
feed: [] //文章列表数组清空
});
},
GetSearchInput: function(e) {
this.setData({
search: e.detail.value
})
},
ToSearch: function(e) {
//let search = e.detail.value;
var that = this;
if(this.data.search == '') {
wx.showToast({
title: '请输入',
icon: 'none'
})
return
}
wx.showLoading({
title: '搜索中',
})
const _ = wx.cloud.database().command
wx.cloud.database().collection('tiezi').where(_.or([
{
content: wx.cloud.database().RegExp({
regexp: this.data.search,
options: 'i',
}),
},
{
title: wx.cloud.database().RegExp({
regexp: this.data.search,
options: 'i',
}),
}
]))
// wx.cloud.database().collection('tiezi').where({
// content: wx.cloud.database().RegExp({
// regexp: this.data.search,
// options: 'i',
// }),
// })
.get()
.then(res => {
if (res.data.length != 0) {
this.setData({
re: res.data,
})
wx.setStorageSync('re', res.data)
let re= wx.getStorageSync('re')
console.log(re)
let that = this;
wx.hideLoading({
success: (res) => {
that.setData({
search: '',
})
}})
wx.navigateTo({
url: '../searchShow/searchShow?re='+JSON.stringify(re),//要跳转到的页面路径
})
} else {
wx.showToast({
title: '未找到',
icon: 'none'
})
}
console.log(res.data)
})
.catch(res => {
console.log("查询失败",res)
})
},
})

@ -2,13 +2,29 @@
<scroll-view scroll-y="true" class="container" bindscrolltoupper="upper" upper-threshold="10" lower-threshold="5" bindscrolltolower="lower" scroll-into-view="{{toView}}" scroll-top="{{scrollTop}}">
<view class="search flex-wrp">
<view class="search-left flex-item">
<image src="../../images/search.png"></image>
<input placeholder="搜索话题, 问题或人" placeholder-class="search-placeholder"/>
<input placeholder="点击右侧闪电发帖" placeholder-class="search-placeholder"/>
</view>
<view class="search-right flex-item" bindtap="goto">
<image src="../../images/lighting.png"></image>
</view>
</view>
<view class="sousuokuang">
<view class="sousuo">
<view class="shurukuang">
<input placeholder="搜索" value="{{inputValue}}" bindinput="GetSearchInput"></input>
</view>
<view class="sousuo_anniu" bindtap="ToSearch">
<text>搜索</text>
<icon type="search" size="20"></icon>
</view>
</view>
</view>
<block wx:for="{{feed}}" wx:for-index="idx" wx:for-item="item" data-idx="{{idx}}">
<view class="feed-item">
@ -22,10 +38,10 @@
<text>{{item.feed_source_name}}</text>
<!-- <open-data type="userNickName"></open-data>-->
</a>
<image class="item-more" mode="aspectFit" src="../../images/more.png"></image>
<image class="item-more" mode="aspectFit" bindtap="delete_p" data-aid="{{item._id}}" src="../../images/more.png"></image>
</view>
<view class="feed-content">
<view class="question" qid="{{question_id}}" bindtap="bindQueTap">
<view class="question" bindtap="bindItemTap" data-aid="{{item._id}}">
<a class="question-link">
<text>{{item.title}}</text>
</a>
@ -38,15 +54,18 @@
<view class="like dot">
<a>{{item.good_num}} 赞同 </a>
</view>
<view class="follow-it">
<text decode="{{true}}">&emsp;&emsp;</text>
</view>
<view class="comments dot">
<a>{{item.comment_num}} 评论 </a>
</view>
<view class="follow-it">
<a>关注问题</a>
</view>
</view>
</view>
</view>
</view>
</block>
<view class="loading" hidden="{{!loadMore}}">正在载入更多...</view>
<view class="loading" hidden="{{!loadAll}}">已加载全部</view>
</scroll-view>

@ -54,4 +54,56 @@
display:-webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
}
.loading {
font-size: 32rpx;
position: relative;
bottom: 5rpx;
padding: 10rpx;
text-align: center;
}
.sousuokuang {
width: 100%;
height: 100rpx;
display: flex;
flex-direction: column;
align-items: center;
background-color: white;
}
.sousuo {
width: 92%;
height: 100rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-items: center;
}
.shurukuang {
width: 80%;
height: 64rpx;
border-radius: 32rpx;
display: flex;
align-items: center;
justify-content: center;
background-color: #f6f6f6;
}
.shurukuang input {
width: 90%;
height: 100%;
font-size: 32rpx;
}
.sousuo_anniu {
width: 20%;
height: 64rpx;
display: flex;
align-items: center;
justify-content: center;
}
.sousuo_anniu text {
font-size: 30rpx;
}

@ -17,6 +17,7 @@ Page({
*/
},
login(){
let that = this;
console.log('点击事件执行了')
wx.getUserProfile({
desc: '必须授权才能使用',
@ -24,6 +25,7 @@ Page({
let user=res.userInfo
let avatarUrl=res.userInfo.avatarUrl
let nickName=res.userInfo.nickName
wx.setStorageSync('user', user)
wx.setStorageSync('avatarUrl', avatarUrl)
wx.setStorageSync('nickName', nickName)

@ -0,0 +1,33 @@
// pages/searchShow/searchShow.js
Page({
/**
* 组件的初始数据
*/
data: {
},
onLoad: function(options) {
console.log("1")
console.log(JSON.parse(options.re),"1")
let re = JSON.parse(options.re);
let that = this
that.setData({
re: re
})
console.log(re)
},
bindItemTap: function(event) {
/*wx.navigateTo({
url: '../answer/answer'
})*/
var aid=event.currentTarget.dataset.aid;
console.log(aid)
//console.log("1")
wx.navigateTo({
url: '../answer/answer?aid='+aid,//要跳转到的页面路径
})
}
})

@ -0,0 +1,4 @@
{
"component": true,
"usingComponents": {}
}

@ -0,0 +1,45 @@
<!--pages/searchShow/searchShow.wxml-->
<scroll-view scroll-y="true" class="container" bindscrolltoupper="upper" upper-threshold="10" lower-threshold="5" bindscrolltolower="lower" scroll-into-view="{{toView}}" scroll-top="{{scrollTop}}">
<!-- 搜索结果展示 -->
<block wx:for="{{re}}" wx:for-index="idx" wx:for-item="item" data-idx="{{idx}}">
<view class="feed-item">
<view class="feed-source">
<a class="">
<view class="avatar">
<image src="{{item.feed_source_img}}"></image>
<!--<open-data type="userAvatarUrl"></open-data>-->
</view>
<text>{{item.feed_source_name}}</text>
<!-- <open-data type="userNickName"></open-data>-->
</a>
<image class="item-more" mode="aspectFit" src="../../images/more.png"></image>
</view>
<view class="feed-content">
<view class="question" bindtap="bindItemTap" data-aid="{{item._id}}">
<a class="question-link">
<text>{{item.title}}</text>
</a>
</view>
<view class="answer-body">
<view >
<text class="answer-txt" bindtap="bindItemTap" data-aid="{{item._id}}">{{item.content}}</text>
</view>
<view class="answer-actions" bindtap="bindItemTap">
<view class="like dot">
<a>{{item.good_num}} 赞同 </a>
</view>
<view class="follow-it">
<text decode="{{true}}">&emsp;&emsp;</text>
</view>
<view class="comments dot">
<a>{{item.comment_num}} 评论 </a>
</view>
</view>
</view>
</view>
</view>
</block>
</scroll-view>

@ -0,0 +1,10 @@
.answer-txt{
width:700rpx;
height:49rpx;
font-size:25rpx;
overflow:hidden;
text-overflow: ellipsis;
display:-webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}

@ -16,7 +16,10 @@ Page({
index:0,
nickName:"",
avatarUrl:"",
feed:[]
feed:[],
pinglun:[],
comment_num:0,
good_num:0
},
bindPickerChange:function(e){
console.log(e)
@ -105,6 +108,7 @@ Page({
let count=0;
let that = this;
let url = [];
let pl=[];
console.log(e);
let title = e.detail.value.name;
let content = e.detail.value.content;
@ -180,7 +184,10 @@ Page({
url:url,
createTime: wx.cloud.database().serverDate(),
feed_source_img:b,
feed_source_name:a
feed_source_name:a,
pinglun:pl,
comment_num:0,
good_num:0
}
})
wx.hideLoading({
@ -201,6 +208,7 @@ Page({
//将所有的内容上传到云端去
for(i=0;i<that.data.nowCount;i++){
console.log(1);
let extName = that.data.tempFilePaths[i].split(".").pop();
let cloudPath = "love/" + new Date().getTime() + "." + extName;
wx.cloud.uploadFile({
@ -258,6 +266,7 @@ Page({
})*/
let a=wx.getStorageSync ("nickName")
let b=wx.getStorageSync ("avatarUrl")
let pl=[];
wx.cloud.database().collection('tiezi').add({
data: {
title:title,
@ -266,7 +275,10 @@ Page({
url:url,
createTime: wx.cloud.database().serverDate(),
feed_source_img:b,
feed_source_name:a
feed_source_name:a,
pinglun:pl,
comment_num:0,
good_num:0
}
})
wx.hideLoading({
@ -289,6 +301,10 @@ Page({
}
}
wx.switchTab({
url: '../index/index',
})
},

Loading…
Cancel
Save