123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- import {
- getAuthorityMsg,
- getMessageRecord,
- msgTopping
- } from '~/api/message'
- import {
- getMyInfo,
- } from '~/api/user'
- import {
- createStoreBindings
- } from 'mobx-miniprogram-bindings'
- import {
- store
- } from '~/store/index'
- import event from '~/mixins/event'
- import reachBottom from '~/mixins/reachBottom'
- const app = getApp()
- Page({
- behaviors: [reachBottom,event],
- data: {
- targetId: "",
- menu: {
- show: false,
- top: 0,
- left: 0
- },
- menuH: 0,
- authorityMsg: {},
- uid: '',
- userInfo: {},
- isTop: false
- },
- onLoad(options) {
- this.setData({
- uid: wx.getStorageSync('uid')
- })
- this.storeBindings = createStoreBindings(this, {
- store,
- actions: {
- setUser: 'setUser'
- }
- })
- },
- async onShow() {
- if (typeof this.getTabBar === 'function') {
- this.getTabBar().setData({
- selected: 3
- })
- }
- this.getAuthorityMsg()
- this.resetData()
- let userInfo = await getMyInfo()
- this.setData({
- userInfo
- })
- this.setUser(userInfo.user)
- wx.createSelectorQuery().select('.menu').boundingClientRect((rect) => {
- this.setData({
- menuH: rect.height
- })
- }).exec()
- },
- async getAuthorityMsg() {
- let authorityMsg = await getAuthorityMsg()
- this.setData({
- authorityMsg
- })
- },
- loadMore() {
- this.getData(getMessageRecord, {
- pageSize: 20
- })
- },
- setSearch({
- detail
- }) {
- wx.navigateTo({
- url: '/pages/searchFriend/index',
- })
- },
- onLongPress(e) {
- let {
- currentTarget,
- detail,
- touches,
- target
- } = e
- let remainingW = app.globalData.windowWidth - touches[0].clientX
- let remainingH = app.globalData.windowHeight - touches[0].clientY
- let menuH = this.data.menuH
- let wFlag = remainingW - 145 > 0
- let hFlag = remainingH - menuH + 10 > 0
- let {
- receiverUid,
- senderUid
- } = currentTarget.dataset.item
- this.setData({
- targetId: receiverUid != this.data.uid ? receiverUid : senderUid,
- isTop: currentTarget.dataset.top,
- menu: {
- show: true,
- top: hFlag ? touches[0].clientY : touches[0].clientY - menuH,
- left: wFlag ? touches[0].clientX : touches[0].clientX - 135,
- }
- })
- },
- cancelMenu() {
- this.setData({
- 'menu.show': false
- })
- },
- async msgTopping() {
- await msgTopping({
- topUid: this.data.targetId
- })
- this.cancelMenu()
- this.getAuthorityMsg()
- this.resetData()
- },
- delMessage() {
- this.setData({
- 'menu.show': false
- })
- },
- jump({
- currentTarget
- }) {
- wx.navigateTo({
- url: `/pages/${currentTarget.dataset.url}/index`,
- })
- },
- jumpChat({
- currentTarget
- }) {
- let {
- nickName,
- eid,
- uid
- } = currentTarget.dataset.item.user
- wx.navigateTo({
- url: `/pages/chat/index?title=${nickName||eid}&uid=${uid}`,
- })
- },
- onReachBottom() {
- this.loadMore()
- }
- })
|