bayi пре 2 година
родитељ
комит
6c7c1cc2ed

+ 8 - 0
api/message.js

@@ -7,8 +7,16 @@ module.exports = {
   getAuthorityMsg: data => request('/v3/message', 'get', data),
   // 获取消息通知列表 
   getMessageList: (data, method = 'get') => request('/message', method, data),
+  // 获取消息记录
+  getMessageRecord: data => request('/v3/messageRecord', 'get', data),
   // 获取点赞列表
   getBeLikeList: data => request('/v3/message/likeInfo', 'get', data),
   // 获取最新评论列表
   getNewComment: data => request('/v3/message/postsInfo', 'get', data),
+  // 消息置顶
+  msgTopping: data => request('/v3/messageRecord/top', 'post', data),
+  // 获取消息详情
+  getMsgDet: data => request('/v3/messageRecord/single', 'get', data),
+  // 发送消息
+  sendMsg: data => request('/v3/messageRecord', 'post', data),
 }

+ 20 - 2
pages/chat/index.js

@@ -1,16 +1,34 @@
+import {
+  getMsgDet,
+  sendMsg
+} from "~/api/message"
 const app = getApp()
 Page({
   data: {
+    targetUid: '',
     value: '',
     isIos: app.globalData.isIOS
   },
   onLoad(options) {
-
+    console.log(options);
+    wx.setNavigationBarTitle({
+      title: options.title,
+    })
+    this.setData({
+      targetUid: options.uid
+    })
   },
-  sendReply() {
+  async getMsgDet() {
+    await getMsgDet()
+  },
+  async sendReply() {
     if (!this.data.value) {
       return
     }
+    await sendMsg({
+      content: "1",
+      receiverUid: ""
+    })
   },
   bindKeyInput(e) {
     this.setData({

+ 14 - 0
pages/friend/index.js

@@ -100,6 +100,20 @@ Page({
       }
     })
   },
+  sendMsg({
+    currentTarget
+  }) {
+    let user = currentTarget.dataset.user
+    console.log(user);
+    let {
+      nickName,
+      eid,
+      uid
+    } = user
+    wx.navigateTo({
+      url: `/pages/chat/index?title=${nickName||eid}&uid=${uid}`,
+    })
+  },
   onReachBottom() {
     this.loadMore()
   },

+ 1 - 0
pages/friend/index.less

@@ -49,6 +49,7 @@
     margin-top: 88rpx;
 
     .userBox {
+      margin-bottom: 28rpx;
       display: flex;
       align-items: flex-start;
       justify-content: space-between;

+ 2 - 2
pages/friend/index.wxml

@@ -10,7 +10,7 @@
     </view>
   </view>
   <view class="box">
-    <view class="userBox" wx:for="{{list}}" wx:key="index" bindtap="jumpitem" data-uid='{{item.user.uid}}'>
+    <view class="userBox" wx:for="{{list}}" wx:key="index" bindtap="jumpUserInfo" data-uid='{{item.user.uid}}'>
       <view class="identity">
         <image class='avatar' src='{{ item.user.avatar}}'></image>
         <view class="identityText">{{item.user.profession}}</view>
@@ -46,7 +46,7 @@
               {{item.isEachOther?'互相关注':'回关'}}
             </view>
           </view>
-          <view class="follow isFans" bindtap="setFans">
+          <view class="follow isFans" data-user="{{item.user}}" catchtap="sendMsg">
             <image src="/static/sx.png" class="character" />
             <text>发私信</text>
           </view>

+ 1 - 0
pages/friend/index.wxss

@@ -136,6 +136,7 @@
     } */
 }
 .followBox .box .userBox {
+  margin-bottom: 28rpx;
   display: flex;
   align-items: flex-start;
   justify-content: space-between;

+ 54 - 6
pages/message/index.js

@@ -1,19 +1,27 @@
 import {
-  getAuthorityMsg
+  getAuthorityMsg,
+  getMessageRecord,
+  msgTopping
 } from '~/api/message'
+import reachBottom from '~/mixins/reachBottom'
 const app = getApp()
 Page({
+  behaviors: [reachBottom],
   data: {
-    messageId: '',
+    targetId: "",
     menu: {
       show: false,
       top: 0,
       left: 0
     },
-    authorityMsg: {}
+    authorityMsg: {},
+
+    uid: ''
   },
   onLoad(options) {
-
+    this.setData({
+      uid: wx.getStorageSync('uid')
+    })
   },
   onShow() {
     if (typeof this.getTabBar === 'function') {
@@ -22,6 +30,7 @@ Page({
       })
     }
     this.getAuthorityMsg()
+    this.resetData()
   },
   async getAuthorityMsg() {
     let authorityMsg = await getAuthorityMsg()
@@ -30,6 +39,35 @@ Page({
       authorityMsg
     })
   },
+  loadMore() {
+    this.getData(getMessageRecord)
+    console.log(this.list);
+  },
+  setSearch({
+    detail
+  }) {
+    /*   console.log(detail)
+      if (!detail.value) {
+        this.setData({
+          nullList: false,
+          list: []
+        });
+      }
+      this.setData({
+        text: detail.value
+      }); */
+  },
+  async search() {
+    if (!this.data.text) {
+      this.setData({
+        list: []
+      });
+      return;
+    }
+    this.setData({
+      list,
+    });
+  },
   onLongPress(e) {
     console.log(e);
     let {
@@ -42,8 +80,12 @@ Page({
     let remainingH = app.globalData.windowHeight - touches[0].clientY
     let wFlag = remainingW - 145 > 0
     let hFlag = remainingH - 200 > 0
+    let {
+      receiverUid,
+      senderUid
+    } = currentTarget.dataset.item
     this.setData({
-      messageId: currentTarget.dataset.id,
+      targetId: receiverUid != this.data.uid ? receiverUid : senderUid,
       menu: {
         show: true,
         top: hFlag ? touches[0].clientY : touches[0].clientY - 100,
@@ -56,7 +98,13 @@ Page({
       'menu.show': false
     })
   },
-  setIsTop() {},
+  async msgTopping() {
+    await msgTopping({
+      topUid: this.data.targetId
+    })
+    this.cancelMenu()
+    this.getAuthorityMsg()
+  },
   delMessage() {
     this.setData({
       'menu.show': false

+ 7 - 3
pages/message/index.less

@@ -1,3 +1,7 @@
+page {
+  background-color: white;
+}
+
 .messagePage {
   overflow: hidden;
   border-top-left-radius: 24rpx;
@@ -48,16 +52,17 @@
 
       .body {
         flex: 1;
-        padding: 0rpx 30rpx 0rpx 20rpx;
+        padding: 0rpx 20rpx;
 
         .name {
-          max-width: 320rpx;
+          max-width: 330rpx;
           font-size: 30rpx;
           font-weight: bolder;
         }
       }
 
       .right {
+        min-width: 140rpx;
         display: flex;
         flex-direction: column;
         align-items: flex-end;
@@ -86,7 +91,6 @@
         justify-content: space-between;
         padding-right: 50rpx;
 
-
         .avatars {
           display: flex;
 

+ 22 - 8
pages/message/index.wxml

@@ -3,8 +3,8 @@
 <navigationBar></navigationBar>
 <view class="messagePage">
   <view class="searchBox">
-    <input class="input" maxlength="20" placeholder="查找昵称/学号/手机号" />
-    <image src="/static/search-2.png" class="magnifier" />
+    <input class="input" maxlength="20" placeholder="查找昵称/学号/手机号" confirm-type='send' bindinput="setSearch" />
+    <image src="/static/search-2.png" class="magnifier" catchtap="search" />
   </view>
   <view class="messageList">
     <view class="base authority" bindtap="jump" data-url='comment'>
@@ -43,24 +43,38 @@
         <view class="unread" wx:if="{{authorityMsg.messageCount>0}}">{{authorityMsg.messageCount}}</view>
       </view>
     </view>
-    <view class="base user" wx:for="{{16}}" wx:key="index" data-id='10' bind:longpress="onLongPress"
+    <view class="base user" wx:for="{{authorityMsg.topList}}" wx:key="index" data-id='{{item.id}}'
+      bind:longpress="onLongPress" hover-class='pressHover' bindtap="jump" data-url='chat'>
+      <image src="/static/message3.png" class="avatar" />
+      <view class="body">
+        <view class="name textOver">{{item.content}}</view>
+        <view class="info textOver">
+          {{item.content}}
+        </view>
+      </view>
+      <view class="right">
+        <view class="date">{{filters.formatDate(item.gmtModified,5)}}</view>
+        <view class="unread">{{item.unReadCount}}</view>
+      </view>
+    </view>
+    <view class="base user" wx:for="{{list}}" wx:key="id" data-item='{{item}}' bind:longpress="onLongPress"
       hover-class='pressHover' bindtap="jump" data-url='chat'>
       <image src="/static/message3.png" class="avatar" />
       <view class="body">
-        <view class="name textOver">帅气小男孩</view>
+        <view class="name textOver">{{item.content}}</view>
         <view class="info textOver">
-          朗读的太棒了!向你学习向你学习俄文企鹅企鹅企鹅企鹅
+          {{item.content}}
         </view>
       </view>
       <view class="right">
-        <view class="date">2023-3-14</view>
-        <view class="unread">10</view>
+        <view class="date">{{filters.formatDate(item.gmtModified,5)}}</view>
+        <view class="unread">{{item.unReadCount}}</view>
       </view>
     </view>
   </view>
   <view class="menuBg" bind:touchstart="cancelMenu" wx:if="{{menu.show}}"></view>
   <view class="menu" wx:if="{{menu.show}}" style="top:{{menu.top}}px;left:{{menu.left}}px">
-    <view class="menu-one" bindtap="setIsTop">
+    <view class="menu-one" bindtap="msgTopping">
       <image src="/static/istop.png" class="icon" /> 置顶该聊天
     </view>
     <view bindtap="delMessage">

+ 6 - 2
pages/message/index.wxss

@@ -1,3 +1,6 @@
+page {
+  background-color: white;
+}
 .messagePage {
   overflow: hidden;
   border-top-left-radius: 24rpx;
@@ -44,14 +47,15 @@
 }
 .messagePage .messageList .base .body {
   flex: 1;
-  padding: 0rpx 30rpx 0rpx 20rpx;
+  padding: 0rpx 20rpx;
 }
 .messagePage .messageList .base .body .name {
-  max-width: 320rpx;
+  max-width: 330rpx;
   font-size: 30rpx;
   font-weight: bolder;
 }
 .messagePage .messageList .base .right {
+  min-width: 140rpx;
   display: flex;
   flex-direction: column;
   align-items: flex-end;

+ 14 - 0
pages/personal/index.js

@@ -94,4 +94,18 @@ Page({
       })
     }
   },
+  sendMsg({
+    currentTarget
+  }) {
+    let user = this.data.userInfo.user
+    console.log(user);
+    let {
+      nickName,
+      eid,
+      uid
+    } = user
+    wx.navigateTo({
+      url: `/pages/chat/index?title=${nickName||eid}&uid=${uid}`,
+    })
+  },
 })

+ 1 - 1
pages/personal/index.wxml

@@ -44,7 +44,7 @@
           <image src="/static/follow_2.png" wx:if="{{userInfo.like}}" class="character" />
           <text>{{userInfo.like?'已关注':'关注'}}</text>
         </view>
-        <view class="follow isFans" bindtap="setFans">
+        <view class="follow isFans" catchtap="sendMsg">
           <image src="/static/sx.png" class="character" />
           <text>发私信</text>
         </view>

+ 0 - 1
utils/filter.wxs

@@ -7,7 +7,6 @@ var formatNumber = function (n) {
  */
 //时间戳转时间
 function formatDate(time, flag) {
-  console.log(time, flag);
   if (!time) {
     return
   }