[baozhangchao] 3 年之前
父節點
當前提交
8f0540c3b3

+ 13
- 0
babel.config.js 查看文件

@@ -6,6 +6,19 @@ module.exports = {
6 6
       framework: 'react',
7 7
       ts: false
8 8
     },
9
+
10
+    ]
11
+
12
+  ],
13
+  plugins: [
14
+    [
15
+      "import",
16
+      {
17
+        "libraryName": "@antmjs/vantui",
18
+        "libraryDirectory": "es",
19
+        "style": (name) => `${name}/style/less`,
20
+      },
21
+      "@antmjs/vantui"
9 22
     ]
10 23
   ]
11 24
 }

+ 1
- 0
config/dev.js 查看文件

@@ -3,6 +3,7 @@ module.exports = {
3 3
     NODE_ENV: '"development"'
4 4
   },
5 5
   defineConstants: {
6
+    HOST: '"http://192.168.89.147:9000"'
6 7
   },
7 8
   mini: {},
8 9
   h5: {}

+ 6
- 0
config/prod.js 查看文件

@@ -2,6 +2,12 @@ module.exports = {
2 2
   env: {
3 3
     NODE_ENV: '"production"'
4 4
   },
5
+  defineConstants: {
6
+    // HOST: '"https://machine.njyunzhi.com"',
7
+
8
+    OSS: '""',
9
+    // VERSION: '"2.0.33"',
10
+  },
5 11
   defineConstants: {
6 12
   },
7 13
   mini: {},

+ 18
- 2
package-lock.json 查看文件

@@ -3701,6 +3701,14 @@
3701 3701
       "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==",
3702 3702
       "dev": true
3703 3703
     },
3704
+    "@zjxpcyc/react-tiny-store": {
3705
+      "version": "1.0.0",
3706
+      "resolved": "https://registry.npmjs.org/@zjxpcyc/react-tiny-store/-/react-tiny-store-1.0.0.tgz",
3707
+      "integrity": "sha512-ykPq4Tlfv4dr8HHSsBHBzcms8R3dld80FaZruMwxhIUqTQ+ypIDvQYqpajnnvS9sOPDZNqWyd9+mRiyKcADf9g==",
3708
+      "requires": {
3709
+        "fast-deep-equal": "^3.1.3"
3710
+      }
3711
+    },
3704 3712
     "abab": {
3705 3713
       "version": "2.0.6",
3706 3714
       "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz",
@@ -4232,6 +4240,15 @@
4232 4240
       "integrity": "sha512-M8Sby4wRLuLr+9UB8V31knVRf/rl0xkk51A7um6hUCvVPyOvLtI0u0k1OPiMgE2d7CwmeSa33NzGpaALHPQCPg==",
4233 4241
       "dev": true
4234 4242
     },
4243
+    "babel-plugin-import": {
4244
+      "version": "1.13.5",
4245
+      "resolved": "https://registry.npmjs.org/babel-plugin-import/-/babel-plugin-import-1.13.5.tgz",
4246
+      "integrity": "sha512-IkqnoV+ov1hdJVofly9pXRJmeDm9EtROfrc5i6eII0Hix2xMs5FEm8FG3ExMvazbnZBbgHIt6qdO8And6lCloQ==",
4247
+      "dev": true,
4248
+      "requires": {
4249
+        "@babel/helper-module-imports": "^7.0.0"
4250
+      }
4251
+    },
4235 4252
     "babel-plugin-jsx-attributes-array-to-object": {
4236 4253
       "version": "0.3.0",
4237 4254
       "resolved": "https://registry.npmjs.org/babel-plugin-jsx-attributes-array-to-object/-/babel-plugin-jsx-attributes-array-to-object-0.3.0.tgz",
@@ -7195,8 +7212,7 @@
7195 7212
     "fast-deep-equal": {
7196 7213
       "version": "3.1.3",
7197 7214
       "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
7198
-      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
7199
-      "dev": true
7215
+      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
7200 7216
     },
7201 7217
     "fast-json-stable-stringify": {
7202 7218
       "version": "2.1.0",

+ 2
- 0
package.json 查看文件

@@ -41,6 +41,7 @@
41 41
     "@tarojs/react": "3.3.6",
42 42
     "@tarojs/runtime": "3.3.6",
43 43
     "@tarojs/taro": "3.3.6",
44
+    "@zjxpcyc/react-tiny-store": "^1.0.0",
44 45
     "dayjs": "^1.11.1",
45 46
     "react": "^17.0.0",
46 47
     "react-dom": "^17.0.0"
@@ -51,6 +52,7 @@
51 52
     "@tarojs/webpack-runner": "3.3.6",
52 53
     "@types/react": "^17.0.2",
53 54
     "@types/webpack-env": "^1.13.6",
55
+    "babel-plugin-import": "^1.13.5",
54 56
     "babel-preset-taro": "3.3.6",
55 57
     "eslint": "^6.8.0",
56 58
     "eslint-config-taro": "3.3.6",

+ 1
- 1
project.config.json 查看文件

@@ -2,7 +2,7 @@
2 2
   "miniprogramRoot": "./dist",
3 3
   "projectname": "hospitalGN",
4 4
   "description": "灌南县",
5
-  "appid": "wx06a7372d48d56843",
5
+  "appid": "wx835627a9b9b3932a",
6 6
   "setting": {
7 7
     "urlCheck": true,
8 8
     "es6": false,

+ 1
- 1
project.tt.json 查看文件

@@ -1,7 +1,7 @@
1 1
 {
2 2
   "miniprogramRoot": "./",
3 3
   "projectname": "hospitalGN",
4
-  "appid": "touristappid",
4
+  "appid": "wx835627a9b9b3932a",
5 5
   "setting": {
6 6
     "es6": false,
7 7
     "minified": false

+ 1
- 0
src/app.config.js 查看文件

@@ -2,6 +2,7 @@ export default {
2 2
   pages: [
3 3
     'pages/index/index',
4 4
     'pages/setUserInfo/index',
5
+    'pages/DepartmentSelection/index',
5 6
   ],
6 7
   window: {
7 8
     backgroundTextStyle: 'light',

+ 28
- 2
src/app.js 查看文件

@@ -1,7 +1,11 @@
1 1
 import { Component } from 'react'
2 2
 import { View } from '@tarojs/components';
3
+import Taro from '@tarojs/taro';
3 4
 import '@antmjs/vantui/lib/index.less';
4 5
 import './app.less'
6
+import { login } from './services/user';
7
+import store, { StoreRoot, useModel } from './store'
8
+
5 9
 
6 10
 class App extends Component {
7 11
 
@@ -12,12 +16,34 @@ class App extends Component {
12 16
   componentDidHide () { }
13 17
 
14 18
   componentDidCatchError () { }
19
+  onLaunch (options) {
20
+    const { logins, setUserLocation } = store.getModel('userData').getState()
21
+
22
+
23
+    // 登录获取人员信息
24
+
25
+
26
+    Taro.login({
27
+      success: (res) => {
28
+        const { code } = res;
29
+        logins({ code })
30
+
31
+
32
+      }
33
+    })
34
+  }
15 35
 
16 36
   // this.props.children 是将要会渲染的页面
37
+
17 38
   render () {
18
-    return <View className='index'>
39
+    return <StoreRoot>
19 40
       {this.props.children}
20
-    </View>
41
+    </StoreRoot>
42
+    // <View className='index'>
43
+    //   {this.props.children}
44
+    // </View>
45
+
46
+
21 47
 
22 48
   }
23 49
 }

+ 53
- 1
src/pages/DepartmentSelection/index.jsx 查看文件

@@ -2,6 +2,7 @@ import { View, Text } from "@tarojs/components"
2 2
 import { useEffect, useState } from "react"
3 3
 import Taro, { useDidShow } from "@tarojs/taro"
4 4
 import { TreeSelect } from "@antmjs/vantui";
5
+import { getDepartmenList } from "../../services/user";
5 6
 
6 7
 // import BottomMoadl from '@/components/BottomMoadl/index'
7 8
 
@@ -13,12 +14,63 @@ import { TreeSelect } from "@antmjs/vantui";
13 14
 import './style.less'
14 15
 
15 16
 export default (props) => {
17
+  useEffect(() => {
18
+    getDepartmenList().then((e) => {
19
+      console.log('科室选择', e);
20
+    })
21
+  }, [])
22
+
23
+  // {
24
+  //   text: number ¦ string
25
+  //   badge?: number ¦ string
26
+  //   dot?: boolean
27
+  //   disabled?: boolean
28
+  //   children?: {
29
+  //     text: number ¦ string
30
+  //     id: number ¦ string
31
+  //     disabled?: boolean
32
+  //   }[]
33
+  // }[]
34
+  const items = [
35
+    { text: '眼科医院', children: [{ text: '连云港市爱尔眼科' }, { text: '眼科一楼' }], },
36
+    {
37
+      text: '连云港开发区高中',
38
+      children:
39
+        [
40
+          { text: '开发区高一4班' },
41
+          { text: '开发区高一8班' },
42
+          { text: '开发区高一8班' },
43
+          { text: '开发区高二1班' },
44
+          { text: '开发区高二2班' },
45
+          { text: '开发区高二3班' },
46
+          { text: '开发区高二15班' },
47
+          { text: '开发区高三10班' },
48
+          { text: '开发区高三2班' },
49
+
50
+        ]
51
+    }
52
+  ]
53
+  const onClickNav = () => {
54
+    console.log('父级: detail.index || 0',);
55
+  }
56
+  const onClickItem = () => {
57
+    console.log('自己: detail.index || 0',);
58
+
59
+  }
60
+
61
+
16 62
 
17 63
 
18 64
 
19 65
   return (
20 66
     <View className='page-index'>
21
-
67
+      <TreeSelect
68
+        items={items}
69
+        mainActiveIndex={items.mainActiveIndex}
70
+        activeId={items.activeId}
71
+        onClickNav={onClickNav}
72
+        onClickItem={onClickItem}
73
+      />
22 74
 
23 75
     </View>
24 76
   )

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

@@ -1,7 +1,7 @@
1 1
 import { View, Text, Image } from '@tarojs/components'
2 2
 import { useEffect, useRef, useState } from 'react'
3 3
 import dayjs from 'dayjs'
4
-import { Icon } from "@antmjs/vantui";
4
+import { Button, Icon } from "@antmjs/vantui";
5 5
 import Taro from '@tarojs/taro';
6 6
 // import userBck from '../../assets/userBck.png'
7 7
 import barcodeimg from '../../assets/barcodeimg.png'

+ 93
- 8
src/pages/setUserInfo/index.jsx 查看文件

@@ -1,25 +1,110 @@
1
-import { View, Text } from "@tarojs/components"
2
-import { useEffect, useState } from "react"
1
+import { View, Text, Input } from "@tarojs/components"
2
+import { useEffect, useRef, useState } from "react"
3 3
 import Taro, { useDidShow } from "@tarojs/taro"
4
-import { Button } from "@antmjs/vantui"
4
+import { Button, Form, FormItem, Icon } from "@antmjs/vantui";
5 5
 
6
-// import BottomMoadl from '@/components/BottomMoadl/index'
7 6
 
7
+// import BottomMoadl from '@/components/BottomMoadl/index'
8
+import './style.less'
8 9
 
10
+export default (props) => {
9 11
 
12
+  const handleClick = (fieldValues) => {
10 13
 
14
+    console.info(fieldValues)
15
+  }
16
+  const goDepartmen = () => {
17
+    Taro.navigateTo({
18
+      url: '/pages/DepartmentSelection/index'
19
+    })
11 20
 
21
+  }
22
+  const getPhone = () => {
23
+    console.log('手机号',);
12 24
 
13
-import './style.less'
25
+  }
26
+  return (
27
+    <View className='page-index'>
28
+      <Form
29
+        initialValues={{
30
+          name: '我是初始值',
31
+          singleSelect: '1',
32
+          rate: 2,
33
+          slider: '50',
34
+        }}
35
+        // ref={(el) => (form = el)}
36
+        onFinish={(e) => handleClick(e)}
37
+      >
38
+        <FormItem
39
+          label='用户名'
40
+          name='userName'
41
+          required
14 42
 
15
-export default (props) => {
43
+          trigger='onInput'
44
+          validateTrigger='onBlur'
45
+          // taro的input的onInput事件返回对应表单的最终值为e.detail.value
46
+          valueFormat={(e) => e.detail.value}
47
+        >
48
+          <Input placeholder='请输入用户名' />
49
+        </FormItem>
50
+        <FormItem
51
+          label='手机号'
52
+          name='phone'
53
+          required
54
+          trigger='onInput'
55
+          validateTrigger='onBlur'
56
+          // taro的input的onInput事件返回对应表单的最终值为e.detail.value
57
+          valueFormat={(e) => e.detail.value}
58
+        >
59
+          <Input placeholder='请输入手机号' type='number' />
60
+          <Button
61
+            plain
62
+            hairline
63
+            size='small'
64
+            type='info'
65
+            onGetPhoneNumber={getPhone}
66
+          >
67
+            一键填写
68
+          </Button>
69
+        </FormItem>
16 70
 
71
+        <FormItem
72
+          label='身份证'
73
+          name='id'
74
+          required
17 75
 
76
+          trigger='onInput'
77
+          validateTrigger='onBlur'
78
+          // taro的input的onInput事件返回对应表单的最终值为e.detail.value
79
+          valueFormat={(e) => e.detail.value}
80
+        >
81
+          <Input placeholder='请输入身份证号' type='number' />
82
+        </FormItem>
18 83
 
19
-  return (
20
-    <View className='page-index'>
84
+        <FormItem
85
+          label='科室'
86
+          name='departmen'
87
+          required
21 88
 
89
+          trigger='onInput'
90
+          validateTrigger='onBlur'
91
+          // taro的input的onInput事件返回对应表单的最终值为e.detail.value
92
+          valueFormat={(e) => e.detail.value}
93
+        >
94
+          <Input placeholder='请选择科室' value='' disabled onClick={goDepartmen} />
95
+        </FormItem>
96
+        <View className='buttom-box'>
97
+          <Button
98
+            type='info'
99
+            size='normal'
100
+            formType='submit'
101
+            className='buttom-box-buttonSubmit'
102
+          >
103
+            提交
104
+          </Button>
105
+        </View>
22 106
 
107
+      </Form>
23 108
     </View>
24 109
   )
25 110
 }

+ 5
- 56
src/pages/setUserInfo/style.less 查看文件

@@ -1,59 +1,8 @@
1
-.orders-listBox-RihtboxBoxOrderViewText:before {
2
-  content: "";
3
-  display: block;
4
-  position: absolute;
1
+.buttom-box {
5 2
   width: 100%;
6
-  bottom: -10px;
7
-  left: 0;
8
-  border-bottom: 20px dotted rgb(255, 255, 255);
9
-}
10
-
11
-.orders-listBox-RihtboxBoxOrderViewText {
12
-  width: 85vw;
13
-  margin: 35px auto 44px auto;
14
-  padding: 62px 30px 93px 30px;
15
-  background: #ffffff;
16
-  box-shadow: 0px 4px 40px 0px rgba(0, 0, 0, 0.12);
17
-  border-radius: 40px 40px 0px 0px;
18
-  position: relative;
19
-
20
-  .View-LiftTextTop {
21
-    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
22
-    padding-bottom: 20px;
23
-    padding-top: 0;
24
-  }
25
-  View:nth-child(6) {
26
-    padding-bottom: 40px;
27
-
28
-    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
3
+  text-align: center;
4
+  margin: 5vh 0 0 0;
5
+  &-buttonSubmit {
6
+    width: 90%;
29 7
   }
30
-  > View {
31
-    padding: 15px 0;
32
-    font-size: 32px;
33
-    font-weight: bold;
34
-    color: #666666;
35
-    > Text {
36
-      color: #222222;
37
-    }
38
-
39
-    .feiyongStyle {
40
-      justify-content: space-between;
41
-      display: flex;
42
-      color: #222222;
43
-      &-charges {
44
-        background: linear-gradient(180deg, #fa7878 0%, #b61515 100%);
45
-        -webkit-background-clip: text;
46
-        -webkit-text-fill-color: transparent;
47
-      }
48
-      &-stateStyle {
49
-      }
50
-    }
51
-  }
52
-}
53
-
54
-.BottomtBut {
55
-  width: 99vw;
56
-  position: absolute;
57
-  bottom: 5vh;
58
-  display: flex;
59 8
 }

+ 19
- 0
src/services/user.js 查看文件

@@ -0,0 +1,19 @@
1
+
2
+import request from '../utils/request'
3
+// utils/request
4
+
5
+
6
+/**
7
+ * 登陆
8
+ * @param {*} data 
9
+ * @returns 
10
+ */
11
+export const login = (data) => request('/login', { data, method: 'POST' })
12
+
13
+/**
14
+ * 科室选择
15
+ * @param {*} data 
16
+ * @returns 
17
+ */
18
+export const getDepartmenList = (data) => request('/bds-org', { data, method: 'GET' })
19
+// /api/wx/{clientId}/bds-org

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

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

+ 43
- 0
src/store/userData.js 查看文件

@@ -0,0 +1,43 @@
1
+import { useState } from "react"
2
+
3
+import { login } from "../services/user"
4
+
5
+
6
+export default () => {
7
+  const [person, setPerson] = useState()
8
+  const [sessionKey, setSessionKey] = useState()
9
+  const [userPhoneInfo, setUserPhoneInfo] = useState()
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+  const logins = (params) => {
19
+    console.log('login');
20
+
21
+    login(params).then((res) => {
22
+      const { person: taPerson, sessionKey: skey } = res;
23
+      // taPerson.phone = null
24
+      setPerson(taPerson);
25
+      setSessionKey(skey);
26
+    })
27
+  }
28
+  console.log("🚀 来自store的打印 person数据", person)
29
+
30
+  return {
31
+    person,
32
+    sessionKey,
33
+
34
+    setPerson,
35
+    setSessionKey,
36
+
37
+    userPhoneInfo,
38
+    setUserPhoneInfo,
39
+
40
+
41
+    logins,
42
+  }
43
+}

+ 24
- 0
src/utils/codeSegment.js 查看文件

@@ -0,0 +1,24 @@
1
+
2
+
3
+/**
4
+ * object 转 queryStr
5
+ * @param {*} params 
6
+ * @returns 
7
+ */
8
+export function getQueryString (params) {
9
+  if (!params) return;
10
+
11
+  const keys = Object.keys(params)
12
+  const arr = keys.map((key) => {
13
+    const val = params[key]
14
+    if (val === null || val === undefined) return false;
15
+
16
+    return `${key}=${encodeURIComponent(val)}`
17
+  })
18
+
19
+  return arr.filter(Boolean).join('&')
20
+}
21
+
22
+
23
+
24
+

+ 69
- 0
src/utils/request.js 查看文件

@@ -0,0 +1,69 @@
1
+import Taro from '@tarojs/taro'
2
+import { getQueryString } from './codeSegment'
3
+
4
+let appid
5
+
6
+export default (url, options) => {
7
+  const { params, skipError, header, ...leftOptions } = options || {}
8
+  const queryStr = getQueryString(params)
9
+
10
+  if (!appid) {
11
+    const { miniProgram } = Taro.getAccountInfoSync()
12
+    appid = miniProgram.appId
13
+  }
14
+
15
+  const urlWithParams = queryStr ? `${url}?${queryStr}` : url;
16
+  const nwUrl = `${HOST}/api/wx/${appid}${urlWithParams}`
17
+
18
+  const authToken = Taro.getStorageSync('token')
19
+  const tokenHeader = authToken ? { Authorization: authToken } : {}
20
+  const nwHeader = {
21
+    ...(header || {}),
22
+    ...tokenHeader,
23
+  }
24
+
25
+  return new Promise((resolve, reject) => {
26
+    Taro.request({
27
+      ...leftOptions,
28
+      url: nwUrl,
29
+      header: nwHeader,
30
+      success: (res) => {
31
+        const { code, message, data, token } = res.data
32
+
33
+        if (token || data?.token) {
34
+          Taro.setStorage({ key: 'token', data: token || data?.token })
35
+        }
36
+
37
+        if (code === 1000) {
38
+          resolve(data)
39
+
40
+        } else {
41
+          if (!skipError) {
42
+            Taro.showToast({
43
+              title: message || '网络异常',
44
+              icon: 'none',
45
+            })
46
+          }
47
+          reject(message?.indexOf('java') > -1 ? '系统内部错误' : message)
48
+        }
49
+      },
50
+
51
+      fail: (err) => {
52
+        console.error(err)
53
+
54
+
55
+
56
+        const message = err.message || err.errMsg || err
57
+
58
+        if (!skipError) {
59
+          Taro.showToast({
60
+            title: message,
61
+            icon: 'none',
62
+          })
63
+        }
64
+
65
+        reject(message)
66
+      }
67
+    })
68
+  })
69
+}

+ 16
- 2
yarn.lock 查看文件

@@ -1955,6 +1955,13 @@
1955 1955
   resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
1956 1956
   integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
1957 1957
 
1958
+"@zjxpcyc/react-tiny-store@^1.0.0":
1959
+  version "1.0.0"
1960
+  resolved "https://registry.yarnpkg.com/@zjxpcyc/react-tiny-store/-/react-tiny-store-1.0.0.tgz#316a2a0336273c1c014bf2f55a513583770c7181"
1961
+  integrity sha512-ykPq4Tlfv4dr8HHSsBHBzcms8R3dld80FaZruMwxhIUqTQ+ypIDvQYqpajnnvS9sOPDZNqWyd9+mRiyKcADf9g==
1962
+  dependencies:
1963
+    fast-deep-equal "^3.1.3"
1964
+
1958 1965
 abab@^2.0.0:
1959 1966
   version "2.0.6"
1960 1967
   resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
@@ -2391,6 +2398,13 @@ babel-plugin-global-define@^1.0.3:
2391 2398
   resolved "https://registry.yarnpkg.com/babel-plugin-global-define/-/babel-plugin-global-define-1.0.3.tgz#262c528f0c26bf318f4ccc77cf21df43a0fa6308"
2392 2399
   integrity sha512-M8Sby4wRLuLr+9UB8V31knVRf/rl0xkk51A7um6hUCvVPyOvLtI0u0k1OPiMgE2d7CwmeSa33NzGpaALHPQCPg==
2393 2400
 
2401
+babel-plugin-import@^1.13.5:
2402
+  version "1.13.5"
2403
+  resolved "https://registry.yarnpkg.com/babel-plugin-import/-/babel-plugin-import-1.13.5.tgz#42eed1c5afd9a35ee1b1f8fe922b07c44077d753"
2404
+  integrity sha512-IkqnoV+ov1hdJVofly9pXRJmeDm9EtROfrc5i6eII0Hix2xMs5FEm8FG3ExMvazbnZBbgHIt6qdO8And6lCloQ==
2405
+  dependencies:
2406
+    "@babel/helper-module-imports" "^7.0.0"
2407
+
2394 2408
 babel-plugin-jsx-attributes-array-to-object@^0.3.0:
2395 2409
   version "0.3.0"
2396 2410
   resolved "https://registry.yarnpkg.com/babel-plugin-jsx-attributes-array-to-object/-/babel-plugin-jsx-attributes-array-to-object-0.3.0.tgz#ac7b551a2407750ac899460fe5e38b1dceaebed1"
@@ -3699,7 +3713,7 @@ data-urls@^1.1.0:
3699 3713
     whatwg-mimetype "^2.2.0"
3700 3714
     whatwg-url "^7.0.0"
3701 3715
 
3702
-dayjs@^1.10.6:
3716
+dayjs@^1.10.6, dayjs@^1.11.1:
3703 3717
   version "1.11.1"
3704 3718
   resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.1.tgz#90b33a3dda3417258d48ad2771b415def6545eb0"
3705 3719
   integrity sha512-ER7EjqVAMkRRsxNCC5YqJ9d9VQYuWdGt7aiH2qA5R5wt8ZmWaP2dLUSIK6y/kVzLMlmh1Tvu5xUf4M/wdGJ5KA==
@@ -4623,7 +4637,7 @@ extsprintf@^1.2.0:
4623 4637
   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07"
4624 4638
   integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
4625 4639
 
4626
-fast-deep-equal@^3.1.1:
4640
+fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
4627 4641
   version "3.1.3"
4628 4642
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
4629 4643
   integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==