Jelajahi Sumber

ADD

我的提问后端对接
mulioid 4 tahun lalu
induk
melakukan
a97cfcc97e

+ 25 - 0
cloudfunctions/listQuestions/index.js

@@ -25,6 +25,31 @@ exports.main = async (event, context) => {
       .limit(event.page_size)
       .end()
 
+    return {
+      list: questions.list,
+      next_page_token: event.page_token + questions.list.length,
+      status: 'OK'
+    }
+  } else {
+    const questions = await db.collection('question')
+      .aggregate()
+      .match({
+        user_id: OPENID
+      })
+      .sort({
+        question_time: -1
+      })
+      .skip(event.page_token)
+      .limit(event.page_size)
+      .lookup({
+        from: 'message',
+        localField: 'msg_id',
+        foreignField: '_id',
+        as: 'message'
+      })
+      .unwind('$message')
+      .end()
+
     return {
       list: questions.list,
       next_page_token: event.page_token + questions.list.length,

+ 1 - 0
miniprogram/pages/myFavor/myFavor.wxml

@@ -1,4 +1,5 @@
 <!-- 消息-我的消息组件,含component:itemmyNews;含data:newNewsData -->
+<view wx:if="{{!favorData.length}}" class="empty-text primary-text-color">这里空空如也</view>
 <view class="page">
   <view class="card" wx:for="{{favorData}}" wx:for-item="msg" wx:key="_id">
     <itemmyLikeMessage item="{{msg}}" />

+ 6 - 0
miniprogram/pages/myFavor/myFavor.wxss

@@ -1,3 +1,9 @@
+.empty-text {
+  margin: 20rpx 20rpx 10rpx 40rpx;
+  font-size: 35rpx;
+  text-align: center;
+}
+
 .page {
   display: flex;
   flex-direction: column;

+ 1 - 0
miniprogram/pages/myFollow/myFollow.wxml

@@ -1,4 +1,5 @@
 <!-- 我关注的发布者组件,含component:itemfollowNews; 含data:newMessageData.js-->
+<view wx:if="{{!followData.length}}" class="empty-text primary-text-color">这里空空如也</view>
 <view class="page">
   <view class="card" wx:for="{{followData}}" wx:for-item="pub" wx:key="_id">
     <itemmyLikePublisher item="{{pub}}" />

+ 6 - 0
miniprogram/pages/myFollow/myFollow.wxss

@@ -1,3 +1,9 @@
+.empty-text {
+  margin: 20rpx 20rpx 10rpx 40rpx;
+  font-size: 35rpx;
+  text-align: center;
+}
+
 .page {
   display: flex;
   flex-direction: column;

+ 28 - 7
miniprogram/pages/myQuestion/myQuestion.js

@@ -73,14 +73,35 @@ Page({
    * 生命周期函数--监听页面加载
    */
   onLoad: function (options) {
-    this.setData({
-      publisherId: options.id,
-      questions: [{
-        title: "我是标题",
-        question: "我是问题?",
-        answer: "我是回答"
-      }]
+    wx.showNavigationBarLoading()
+    wx.cloud.callFunction({
+      name: 'listQuestions',
+      data: {
+        page_token: 0,
+        page_size: 20
+      }
+    }).then(res => {
+      wx.hideNavigationBarLoading()
+      if (res.result.status !== 'OK') {
+        wx.showToast({
+          title: res.result.errMsg,
+          icon: 'none'
+        })
+        return
+      }
+      this.setData({
+        questions: res.result.list
+      })
     })
+
+    // this.setData({
+    //   publisherId: options.id,
+    //   questions: [{
+    //     title: "我是标题",
+    //     question: "我是问题?",
+    //     answer: "我是回答"
+    //   }]
+    // })
     // const db = wx.cloud.database()
     // db.collection("qaData").where({
     //   publisherId: this.data.publisherId,

+ 5 - 4
miniprogram/pages/myQuestion/myQuestion.wxml

@@ -1,10 +1,11 @@
 <!--为我的-我的提问页面-->
-<view wx:if="{{questions.length == 0}}" class="title primary-text-color" style="text-align: center;">这里空空如也</view>
+<view wx:if="{{!questions.length}}" class="empty-text primary-text-color">这里空空如也</view>
 <view wx:for="{{questions}}" wx:for-item="item" wx:for-index="index" wx:key="_id">
-  <view wx:if="{{notAnswered && item.answer == '' || answered && item.answer != ''}}" class="card">
-    <view class="title">{{item.title}}</view>
+  <view wx:if="{{notAnswered && item.answer === '' || answered && item.answer !== ''}}" class="card">
+    <view class="title">{{item.message.name}}</view>
     <view class="question">提出的问题:{{item.question}}</view>
-    <view class="answer primary-text-color">收到的回复:{{item.answer}}</view>
+    <view class="{{'answer ' + (item.answer ? 'primary' : 'secondary') + '-text-color'}}">{{item.answer ? '收到的回复:' +
+      item.answer : '暂未收到回复'}}</view>
     <icon style="position: absolute; top: 20rpx; right: 20rpx; " type="cancel" size="20" data-id="{{item._id}}"
       catchtap="removeQuestion"></icon>
   </view>

+ 6 - 0
miniprogram/pages/myQuestion/myQuestion.wxss

@@ -1,4 +1,10 @@
 /* miniprogram/pages/publisherQuestion/publisherQuestion.wxss */
+.empty-text {
+  margin: 20rpx 20rpx 10rpx 40rpx;
+  font-size: 35rpx;
+  text-align: center;
+}
+
 .checkbox {
   transform: scale(0.8);
   margin-left: 10rpx;