李志伟 3 年之前
父節點
當前提交
c1a62f7aa8
共有 8 個檔案被更改,包括 91 行新增11 行删除
  1. 1
    0
      package.json
  2. 6
    8
      src/app.js
  3. 8
    1
      src/pages/login/index.jsx
  4. 16
    0
      src/services/login.js
  5. 18
    0
      src/store/index.js
  6. 24
    0
      src/store/models/person.js
  7. 10
    0
      src/store/models/phone.js
  8. 8
    2
      src/utils/request.js

+ 1
- 0
package.json 查看文件

@@ -41,6 +41,7 @@
41 41
     "@tarojs/react": "3.3.15",
42 42
     "@tarojs/runtime": "3.3.15",
43 43
     "@tarojs/taro": "3.3.15",
44
+    "@zjxpcyc/react-tiny-store": "^1.0.0",
44 45
     "react": "^17.0.0",
45 46
     "react-dom": "^17.0.0"
46 47
   },

+ 6
- 8
src/app.js 查看文件

@@ -1,8 +1,7 @@
1 1
 import { Component } from 'react'
2 2
 import Taro from '@tarojs/taro'
3 3
 // import preFetchData from '@/utils/preFetchData'
4
-// import store, { StoreRoot } from './store'
5
-import {signIn} from '@/services/login'
4
+import store, { StoreRoot } from './store'
6 5
 import './app.less'
7 6
 
8 7
 class App extends Component {
@@ -16,11 +15,12 @@ class App extends Component {
16 15
     console.group('APP Launch')
17 16
     console.debug(options)
18 17
     console.groupEnd()
19
-   
18
+
19
+    const { login } = store.getModel('person').getState()
20 20
       Taro.login({
21 21
         success: (res) => {
22 22
           const { code } = res;
23
-          signIn({ code })
23
+          login({ code })
24 24
         }
25 25
       })
26 26
 
@@ -49,11 +49,9 @@ class App extends Component {
49 49
   // this.props.children 是将要会渲染的页面
50 50
   render() {
51 51
     return (
52
-      // <StoreRoot>
53
-      <>
52
+      <StoreRoot>
54 53
         {this.props.children}
55
-        </>
56
-      // </StoreRoot>
54
+      </StoreRoot>
57 55
     )
58 56
   }
59 57
 }

+ 8
- 1
src/pages/login/index.jsx 查看文件

@@ -1,15 +1,21 @@
1 1
 import Taro from "@tarojs/taro"
2 2
 import { useState } from "react"
3
+import { useModel } from '@/store'
3 4
 import { View, Image, Input, Text, Checkbox, Label, Button } from "@tarojs/components"
4 5
 import CustomNav from "@/components/CustomNav"
5 6
 import MyButton from "@/components/MyButton"
7
+import {updatePhone, setQcode } from '@/services/login'
6 8
 import bgi from '@/assets/login/loginImg.png'
7 9
 import vCode from '@/assets/login/VerificationCode.png'
8 10
 import checkedImg from '@/assets/login/checkedImg.png'
9 11
 import unChecked from '@/assets/login/unChecked.png'
12
+
10 13
 import './style.less'
11 14
 
12 15
 export default (props) => {
16
+  const { person } = useModel('person')
17
+
18
+  console.log(person)
13 19
   const [agreement,setAgreement]=useState(false)
14 20
   const [phone,setPhone]=useState()
15 21
   const [qCode,setqCode]=useState()
@@ -22,7 +28,7 @@ export default (props) => {
22 28
   }
23 29
   const changeqCode=()=>{
24 30
     if (rulePhone(phone)) {
25
-      console.log(666)
31
+      setQcode({phone:phone})
26 32
 
27 33
       let time=10
28 34
       setDsb(true)
@@ -65,6 +71,7 @@ export default (props) => {
65 71
         })
66 72
         return false
67 73
       }
74
+      // 登录
68 75
       Taro.showToast({
69 76
         title: '登录成功',
70 77
         icon: 'none',

+ 16
- 0
src/services/login.js 查看文件

@@ -6,3 +6,19 @@ import request from '@/utils/request'
6 6
  * @returns 
7 7
  */
8 8
 export const signIn = (data) => request('/login', { data, method: 'post' })
9
+
10
+/**
11
+ * 发送验证码
12
+ * @param {*} data 
13
+ * @returns 
14
+ */
15
+ export const setQcode = (params) => request('/sms-captcha', { method: 'post', params })
16
+
17
+ /**
18
+ * 假登录就是修改手机号
19
+ * @param {*} 
20
+ * @returns 
21
+ */
22
+
23
+export const updatePhone = (id, data) => request(`/person/${id}/phone`, { method: 'put', data })
24
+

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

@@ -0,0 +1,18 @@
1
+import { createStore, createStoreRoot, createModelHook } from '@zjxpcyc/react-tiny-store'
2
+import phone from './models/phone'
3
+import person from './models/person'
4
+
5
+const store = createStore()
6
+const models = {
7
+  phone,
8
+  person
9
+}
10
+
11
+const useModel = createModelHook(store)
12
+const StoreRoot = createStoreRoot(store, models)
13
+
14
+export default store
15
+export {
16
+  useModel,
17
+  StoreRoot,
18
+}

+ 24
- 0
src/store/models/person.js 查看文件

@@ -0,0 +1,24 @@
1
+import { useState } from "react"
2
+import Taro, { stopDeviceMotionListening } from '@tarojs/taro'
3
+import { signIn } from '@/services/login'
4
+
5
+export default () => {
6
+  const [person, setPerson] = useState()
7
+  const [sessionKey, setSessionKey] = useState()
8
+
9
+  const login = (params) => {
10
+    signIn(params).then((res) => {
11
+      const { person: taPerson,  sessionKey: skey,  token } = res;
12
+      setPerson(taPerson);
13
+      setSessionKey(skey);
14
+      Taro.setStorage({ key: 'token', data: token })
15
+    })
16
+  }
17
+
18
+  return {
19
+    person,
20
+    sessionKey,
21
+    setPerson,
22
+    login,
23
+  }
24
+}

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

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

+ 8
- 2
src/utils/request.js 查看文件

@@ -19,7 +19,11 @@ export default (url, options) => {
19 19
   const nwUrl = `${HOST}/api/wx/${appid}${urlWithParams}`
20 20
 
21 21
   const authToken = Taro.getStorageSync('token')
22
-  const tokenHeader = authToken ? { 'X-Authorization-JWT': authToken } : {}
22
+
23
+  const tokenHeader = authToken
24
+  ? { Authorization: authToken }
25
+  : {};
26
+  
23 27
   const nwHeader = {
24 28
     ...(header || {}),
25 29
     ...tokenHeader,
@@ -83,7 +87,9 @@ export default (url, options) => {
83 87
 export function uploadFile(filePath) {
84 88
 
85 89
   const authToken = Taro.getStorageSync('token')
86
-  const tokenHeader = authToken ? { 'X-Authorization-JWT': authToken } : {}
90
+  const tokenHeader = authToken
91
+  ? { Authorization: authToken }
92
+  : {};
87 93
 
88 94
   return new Promise((resolve, reject) => {
89 95
     Taro.uploadFile({