chat.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. // pages/chat/chat.js
  2. const {getUserInfoList,getChattingRecord} = require('../../API/appraise')
  3. import messageMap from '../../utils/util'
  4. var socketMsgQueue = {
  5. from: wx.getStorageSync('uid'),
  6. to: '',
  7. msgType: 1,
  8. time: '',
  9. content: ''
  10. }
  11. var getUserInfoListOption = {
  12. data:{
  13. uid:[]
  14. }
  15. }
  16. var getChattingRecordOption = {
  17. uid:wx.getStorageSync('uid'),
  18. target:''
  19. }
  20. Page({
  21. /**
  22. * 页面的初始数据
  23. */
  24. data: {
  25. toUid:'',
  26. goodsId:'',
  27. goods: {
  28. pic:'',
  29. name:'',
  30. price:''
  31. },
  32. //登录用户的信息
  33. login: {
  34. id: wx.getStorageSync('uid')
  35. },
  36. chatList: [
  37. {
  38. from: '7385700531999608832',
  39. to: '7384540497554968576',
  40. nickname:'daisy',
  41. avatar: 'http://192.168.31.30:8084/pics/1698753512AiD8PaNrvqsDb1493fda534929a5b5d05f80a8cf3d16.jpg',
  42. message: '你好',
  43. type: 'text'
  44. },
  45. {
  46. to: '7385700531999608832',
  47. from: '7384540497554968576',
  48. nickname:'无情的敲代码机器人',
  49. avatar: 'http://192.168.31.30:8084/pics/1699175056BvtgC8vv8gSzd85dedb14362dc3a251c6c85705ec495.jpg',
  50. message: '你好',
  51. type: 'text'
  52. }
  53. ]
  54. },
  55. /**
  56. * 生命周期函数--监听页面加载
  57. */
  58. onLoad(options) {
  59. this.data.toUid = options.toUid;
  60. this.data.goodsId = options.goodsId;
  61. getChattingRecordOption.target = this.data.toUid;
  62. getChattingRecord(getChattingRecordOption).then((res)=>{
  63. console.log(res);
  64. const receiveMessage = res.data.data;
  65. }).catch((err)=>{
  66. console.log(err);
  67. })
  68. this.scrollToBottom();
  69. },
  70. /**
  71. * 生命周期函数--监听页面初次渲染完成
  72. */
  73. onReady() {
  74. getUserInfoListOption.data.uid = [wx.getStorageSync('uid'),this.data.toUid];
  75. getUserInfoList(getUserInfoListOption).then((res)=> {
  76. console.log(res);
  77. }).catch((err)=>{
  78. console.log(err);
  79. })
  80. },
  81. /**
  82. * 生命周期函数--监听页面显示
  83. */
  84. onShow() {
  85. },
  86. /**
  87. * 生命周期函数--监听页面隐藏
  88. */
  89. onHide() {
  90. },
  91. /**
  92. * 生命周期函数--监听页面卸载
  93. */
  94. onUnload() {
  95. },
  96. /**
  97. * 页面相关事件处理函数--监听用户下拉动作
  98. */
  99. onPullDownRefresh() {
  100. },
  101. /**
  102. * 页面上拉触底事件的处理函数
  103. */
  104. onReachBottom() {
  105. },
  106. /**
  107. * 用户点击右上角分享
  108. */
  109. onShareAppMessage() {
  110. },
  111. // 输入监听
  112. inputClick(e) {
  113. this.setData({
  114. content: e.detail.value
  115. })
  116. },
  117. // 发送监听
  118. sendClick() {
  119. var that = this;
  120. var list = this.data.chatList;
  121. // 获取当前时间
  122. var date = new Date();
  123. var month = date.getMonth() + 1;
  124. var day = date.getDate();
  125. var hour = date.getHours();
  126. var minu = date.getMinutes();
  127. var now1 = month < 10 ? '0' + month : month;
  128. var now2 = day < 10 ? '0' + day : day;
  129. // 组装数据
  130. var msg = {
  131. from: wx.getStorageSync('uid'),
  132. to: this.data.toUid,
  133. nickname: wx.getStorageSync('nickName'),
  134. avatar: wx.getStorageSync('avatarUrl'),
  135. message: this.data.content,
  136. type: 'text',
  137. date: now1 + '-' + now2 + ' ' + hour + ':' + minu
  138. }
  139. console.log(msg);
  140. this.setData({
  141. chatList: list.concat(msg)
  142. }, () => {
  143. that.scrollToBottom();
  144. that.setData({
  145. content: ''
  146. })
  147. })
  148. var socketMsg = socketMsgQueue;
  149. socketMsg.msgType = 1;
  150. socketMsg.content = this.data.content;
  151. socketMsg.to = this.data.toUid;
  152. console.log(this.data.toUid);
  153. var time = new Date().getTime();
  154. console.log(time);
  155. socketMsg.time = time;
  156. console.log(socketMsg);
  157. wx.sendSocketMessage({
  158. data: JSON.stringify(socketMsg),
  159. })
  160. },
  161. // 滑动到最底部
  162. scrollToBottom() {
  163. setTimeout(() => {
  164. wx.pageScrollTo({
  165. scrollTop: 200000,
  166. duration: 3
  167. });
  168. }, 600)
  169. },
  170. })