张延森 3 年前
父节点
当前提交
d7667cd578

+ 6
- 2
src/hotel/pages/landlord/landlord.jsx 查看文件

@@ -1,7 +1,5 @@
1 1
 import React, { useState, useEffect, useRef } from 'react'
2 2
 import Taro,{ useRouter,useShareAppMessage } from '@tarojs/taro'
3
-import HouseManage from '../../components/HouseManage/houseManage'
4
-import Income from '../../components/Income/income'
5 3
 import TabBar from '@/components/CustTabBar'
6 4
 import incomeImg from '@/assets/icons/landlord/我的收入.png'
7 5
 import onincomeImg from '@/assets/icons/landlord/我的收入按下.png'
@@ -11,6 +9,9 @@ import withLayout from '@/layouts'
11 9
 import { getHotelManage,  getNowHotelManage } from '@/services/landlord'
12 10
 import NoData from '@/components/NoData'
13 11
 import CustomNav from '@/components/CustomNav'
12
+import useSubscribeMessage from '@/utils/hooks/useSubscribeMessage'
13
+import HouseManage from '../../components/HouseManage/houseManage'
14
+import Income from '../../components/Income/income'
14 15
 import './landlord.less'
15 16
 
16 17
 export default withLayout((props) => {
@@ -24,6 +25,9 @@ export default withLayout((props) => {
24 25
 
25 26
   const houseRef = useRef()
26 27
 
28
+  // 订阅消息
29
+  useSubscribeMessage('hotel_check_in', true)
30
+
27 31
 
28 32
   useEffect(() => {
29 33
     getHotelManage().then((res) => {

+ 3
- 3
src/pages/RoomOrder/index.jsx 查看文件

@@ -3,12 +3,11 @@ 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 7
 import RoomForm from './components/RoomForm'
7 8
 import './style.less'
8 9
 
9 10
 
10
-
11
-
12 11
 export default withLayout((props) => {
13 12
   const { router, person } = props
14 13
   const { roomId, roomOrderId, status } = router.params
@@ -44,7 +43,8 @@ export default withLayout((props) => {
44 43
 
45 44
   }
46 45
 
47
-
46
+  // 订阅消息
47
+  useSubscribeMessage('hotel_check_out', true)
48 48
 
49 49
 
50 50
   useEffect(() => {

+ 4
- 11
src/pages/index/tabs/Guide.jsx 查看文件

@@ -1,7 +1,5 @@
1 1
 import { useState, useEffect, useRef } from "react";
2 2
 import Taro from '@tarojs/taro'
3
-import CustomNav from '@/components/CustomNav'
4
-
5 3
 import MoreGuide from "@/components/MoreGuide";
6 4
 import BossCard from '@/components/BossCard'
7 5
 import Taxi from '@/assets/icons/GuideCheck/taxi.png'
@@ -13,14 +11,11 @@ import { getRecommendList, getExtendContent } from '@/services/home'
13 11
 import sleep from '@/assets/icons/GuideCheck/sleep_logo.png'
14 12
 import { getTaRoom, goToRoomForm } from '@/services/taRoom​'
15 13
 import useTrackClick from '@/utils/hooks/useTrackClick'
16
-import showMore from '../../../assets/icons/housemantj/查看更多.png'
14
+import showMore from '@/assets/icons/housemantj/查看更多.png'
15
+import useSubscribeMessage from "@/utils/hooks/useSubscribeMessage";
17 16
 import './GuideCss/style.less'
18 17
 
19 18
 
20
-
21
-
22
-
23
-
24 19
 export default (props) => {
25 20
   const { router, person, location, } = props
26 21
   const { roomId, roomOrderId } = router.params
@@ -58,10 +53,8 @@ export default (props) => {
58 53
     })
59 54
   }
60 55
 
61
-
62
-
63
-
64
-
56
+  // 订阅消息
57
+  useSubscribeMessage('hotel_check_out', !roomOrderId)
65 58
 
66 59
   useEffect(() => {
67 60
     if (roomOrderId) {

+ 2
- 0
src/store/index.js 查看文件

@@ -1,8 +1,10 @@
1 1
 import { createStore, createStoreRoot, createModelHook } from '@zjxpcyc/react-tiny-store'
2
+import system from './models/system'
2 3
 import person from './models/person'
3 4
 
4 5
 const store = createStore()
5 6
 const models = {
7
+  system,
6 8
   person,
7 9
 }
8 10
 

+ 10
- 0
src/store/models/system.js 查看文件

@@ -0,0 +1,10 @@
1
+import { useState } from "react";
2
+
3
+export default function useSystem() {
4
+  const [messageTpls, setMessageTpls] = useState([])
5
+
6
+  return {
7
+    messageTpls,
8
+    setMessageTpls,
9
+  }
10
+}

+ 21
- 0
src/utils/hooks/useSubscribeMessage.js 查看文件

@@ -0,0 +1,21 @@
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
+}

+ 23
- 9
src/utils/preFetchData.js 查看文件

@@ -1,19 +1,33 @@
1 1
 import Taro from '@tarojs/taro'
2
+import store from '@/store'
2 3
 
3 4
 export default () => {
4 5
 
5 6
   return new Promise((resolve, reject) => {
6
-    Taro.getLocation({
7
+    Taro.getBackgroundFetchData({
8
+      fetchType: 'pre',
7 9
       success(res) {
8
-        const location = `${res.longitude},${res.latitude}`
9
-        Taro.setStorageSync('location', location)
10
-        resolve({
11
-          location,
12
-        })
10
+        const { code, data } = JSON.parse(res.fetchedData) || {}
11
+        if (code === 1000) {
12
+          const { messageTpls } = data
13
+          const { setMessageTpls } = store.getModel('system').getState()
14
+          setMessageTpls(messageTpls)
15
+        }
13 16
       },
14
-      fail(err) {
15
-        console.error(err)
16
-        reject(err)
17
+      complete() {
18
+        Taro.getLocation({
19
+          success(res) {
20
+            const location = `${res.longitude},${res.latitude}`
21
+            Taro.setStorageSync('location', location)
22
+            resolve({
23
+              location,
24
+            })
25
+          },
26
+          fail(err) {
27
+            console.error(err)
28
+            reject(err)
29
+          }
30
+        })
17 31
       }
18 32
     })
19 33
   })