张延森 3 gadus atpakaļ
vecāks
revīzija
79768848e6

+ 3
- 5
src/hotel/pages/landlord/landlord.jsx Parādīt failu

@@ -9,7 +9,7 @@ import withLayout from '@/layouts'
9 9
 import { getHotelManage,  getNowHotelManage } from '@/services/landlord'
10 10
 import NoData from '@/components/NoData'
11 11
 import CustomNav from '@/components/CustomNav'
12
-import useSubscribeMessage from '@/utils/hooks/useSubscribeMessage'
12
+import { withSubscribeMessage } from '@/utils/subscribeMessage'
13 13
 import HouseManage from '../../components/HouseManage/houseManage'
14 14
 import Income from '../../components/Income/income'
15 15
 import './landlord.less'
@@ -25,10 +25,6 @@ export default withLayout((props) => {
25 25
 
26 26
   const houseRef = useRef()
27 27
 
28
-  // 订阅消息
29
-  useSubscribeMessage('hotel_check_in', true)
30
-
31
-
32 28
   useEffect(() => {
33 29
     getHotelManage().then((res) => {
34 30
       const { hotelList: list, account: acc, hotel: current } = res
@@ -51,6 +47,8 @@ export default withLayout((props) => {
51 47
   const handleTabChange = (e) => {
52 48
     const { index } = e.detail
53 49
     setCurrentTab(index)
50
+
51
+    withSubscribeMessage('hotel_check_in')
54 52
   }
55 53
 
56 54
   useEffect(() => {

+ 19
- 20
src/pages/RoomOrder/index.jsx Parādīt failu

@@ -3,7 +3,7 @@ import { useEffect, useState } from "react"
3 3
 import CustomNav from '@/components/CustomNav'
4 4
 import withLayout from '@/layouts'
5 5
 import { getTaRoom, goToRoomForm, personSubmit } from '@/services/taRoom​'
6
-import useSubscribeMessage from "@/utils/hooks/useSubscribeMessage"
6
+import { withSubscribeMessage } from "@/utils/subscribeMessage"
7 7
 import RoomForm from './components/RoomForm'
8 8
 import './style.less'
9 9
 
@@ -23,30 +23,29 @@ export default withLayout((props) => {
23 23
   }
24 24
 
25 25
   const handleSubmit = (e) => {
26
-    for (let i = 0, len = formData.length; i < len; i++) {
27
-
28
-      const item = formData[i];
29
-
30
-      if (!item.customerName || !item.customerPhone) {
31
-        Taro.showToast({
32
-          title: '手机号或姓名不能为空',
33
-          icon: 'none',
34
-        })
35
-        return;
26
+    
27
+    // 订阅消息
28
+    withSubscribeMessage('hotel_check_out', () => {
29
+      for (let i = 0, len = formData.length; i < len; i++) {
30
+        const item = formData[i];
31
+        if (!item.customerName || !item.customerPhone) {
32
+          Taro.showToast({
33
+            title: '手机号或姓名不能为空',
34
+            icon: 'none',
35
+          })
36
+          return;
37
+        }
36 38
       }
37
-    }
38
-    personSubmit(roomOrderId, formData).then(a => {
39
-      Taro.navigateBack({
40
-        delta: 1
41
-      })
39
+  
40
+      personSubmit(roomOrderId, formData).then(a => {
41
+        Taro.navigateBack({
42
+          delta: 1
43
+        })
44
+      })      
42 45
     })
43 46
 
44 47
   }
45 48
 
46
-  // 订阅消息
47
-  useSubscribeMessage('hotel_check_out', true)
48
-
49
-
50 49
   useEffect(() => {
51 50
     getTaRoom(roomId).then((res) => {
52 51
       setTaRoomContent(res)

+ 8
- 5
src/pages/index/index.jsx Parādīt failu

@@ -1,19 +1,18 @@
1 1
 
2 2
 
3 3
 import React, { useState, useEffect } from 'react'
4
+import { useDidShow } from '@tarojs/taro'
4 5
 import CustomNav from '@/components/CustomNav'
5 6
 import logo from '@/assets/icons/comm/logo_small.png'
6
-import { getNowHotelManage, getHotelDetail } from '@/services/landlord'
7
-import { getTaRoom, goToRoomForm, getWorkerDetail } from '@/services/taRoom​'
8
-
7
+import { getHotelDetail } from '@/services/landlord'
8
+import { getTaRoom } from '@/services/taRoom​'
9 9
 import withLayout from '@/layouts'
10 10
 import tabList from './tabbar'
11 11
 import Guide from './tabs/Guide'
12 12
 import Mine from './tabs/Mine'
13 13
 import Recommend from './tabs/Recommend'
14
-
14
+import { withSubscribeMessage } from '@/utils/subscribeMessage'
15 15
 import './index.less'
16
-import { useDidShow } from '@tarojs/taro'
17 16
 
18 17
 
19 18
 
@@ -39,6 +38,10 @@ export default withLayout((props) => {
39 38
   const handleTabChange = (e) => {
40 39
     const { index } = e.detail
41 40
     setCurrentTab(index)
41
+
42
+    if (index === 1) {
43
+      withSubscribeMessage('hotel_check_out')
44
+    }
42 45
   }
43 46
   useEffect(() => {
44 47
     if (tab) {

+ 0
- 4
src/pages/index/tabs/Guide.jsx Parādīt failu

@@ -12,7 +12,6 @@ import sleep from '@/assets/icons/GuideCheck/sleep_logo.png'
12 12
 import { getTaRoom, goToRoomForm } from '@/services/taRoom​'
13 13
 import useTrackClick from '@/utils/hooks/useTrackClick'
14 14
 import showMore from '@/assets/icons/housemantj/查看更多.png'
15
-import useSubscribeMessage from "@/utils/hooks/useSubscribeMessage";
16 15
 import './GuideCss/style.less'
17 16
 
18 17
 
@@ -53,9 +52,6 @@ export default (props) => {
53 52
     })
54 53
   }
55 54
 
56
-  // 订阅消息
57
-  useSubscribeMessage('hotel_check_out', !roomOrderId)
58
-
59 55
   useEffect(() => {
60 56
     if (roomOrderId) {
61 57
       goToRoomForm(roomOrderId).then((res) => {

+ 0
- 21
src/utils/hooks/useSubscribeMessage.js Parādīt failu

@@ -1,21 +0,0 @@
1
-import { useEffect } from "react";
2
-import Taro from '@tarojs/taro';
3
-import { useModel } from "@/store";
4
-
5
-export default function(messageType, dep) {
6
-  const { messageTpls } = useModel('system')
7
-
8
-  useEffect(() => {
9
-    if (!messageTpls || !messageTpls.length) return;
10
-
11
-    if (dep && messageType) {
12
-      const tpl = messageTpls.filter(x => x.messageType === messageType)[0] || {}
13
-
14
-      if (tpl.templateId) {
15
-        Taro.requestSubscribeMessage({
16
-          tmplIds: [tpl.templateId]
17
-        })
18
-      }
19
-    }
20
-  }, [messageTpls, messageType, dep])
21
-}

+ 30
- 0
src/utils/subscribeMessage.js Parādīt failu

@@ -0,0 +1,30 @@
1
+import Taro from "@tarojs/taro";
2
+import store from "@/store"
3
+
4
+export function subscribeMessage(messageType) {
5
+  if (!messageType) return Promise.resolve();
6
+  
7
+  const { messageTpls } = store.getModel('system').getState()
8
+  if (!messageTpls || !messageTpls.length) return Promise.resolve();
9
+
10
+  return new Promise((resolve, reject) => {
11
+    const tpl = messageTpls.filter(x => x.messageType === messageType)[0] || {}
12
+
13
+    if (tpl.templateId) {
14
+      Taro.requestSubscribeMessage({
15
+        tmplIds: [tpl.templateId],
16
+        complete: () => resolve(),
17
+      })
18
+    } else {
19
+      resolve()
20
+    }
21
+  })
22
+}
23
+
24
+export function withSubscribeMessage(type, callback) {
25
+  subscribeMessage(type).then(() => {
26
+    if (callback) {
27
+      callback()
28
+    }
29
+  })
30
+}