Baozhangchao 3 年前
父节点
当前提交
cceffd91c6
共有 3 个文件被更改,包括 32 次插入23 次删除
  1. 2
    2
      config/dev.js
  2. 27
    20
      src/components/BuildingSelect/index.jsx
  3. 3
    1
      src/pages/mine/addCustomer/index.jsx

+ 2
- 2
config/dev.js 查看文件

4
   },
4
   },
5
   defineConstants: {
5
   defineConstants: {
6
     // HOST: '"https://xlk.njyz.tech"',
6
     // HOST: '"https://xlk.njyz.tech"',
7
-    // HOST: '"https://www.newhousehold.cn"',
8
-    HOST: '"http://192.168.89.147:8081"',
7
+    HOST: '"https://www.newhousehold.cn"',
8
+    // HOST: '"http://192.168.89.147:8081"',
9
 
9
 
10
     // WSS_HOST: '"wss://www.newhousehold.cn"',
10
     // WSS_HOST: '"wss://www.newhousehold.cn"',
11
     WSS_HOST: '"wss://xlk.njyz.tech"',
11
     WSS_HOST: '"wss://xlk.njyz.tech"',

+ 27
- 20
src/components/BuildingSelect/index.jsx 查看文件

1
 
1
 
2
 import Taro from '@tarojs/taro'
2
 import Taro from '@tarojs/taro'
3
-import { View, Button, RadioGroup, Label, Radio, ScrollView } from '@tarojs/components'
3
+import { View, Button, RadioGroup, Label, Radio } from '@tarojs/components'
4
 import { API_GET_AGENT_BUILDINGS, API_ITEMS_LIST } from '@/constants/api'
4
 import { API_GET_AGENT_BUILDINGS, API_ITEMS_LIST } from '@/constants/api'
5
 import { ROLE_CODE } from '@/constants/user'
5
 import { ROLE_CODE } from '@/constants/user'
6
 import { useSelector } from 'react-redux'
6
 import { useSelector } from 'react-redux'
7
 import { fetch } from '@/utils/request'
7
 import { fetch } from '@/utils/request'
8
 
8
 
9
-import { useState, useEffect, useRef } from 'react'
9
+import { useState, useEffect, useMemo } from 'react'
10
 import './style.css'
10
 import './style.css'
11
 
11
 
12
 const wrapAnimate = 'wrap wrapAnimate'
12
 const wrapAnimate = 'wrap wrapAnimate'
20
   const [dicts, setDicts] = useState([])
20
   const [dicts, setDicts] = useState([])
21
   const [visible, setVisible] = useState(false)
21
   const [visible, setVisible] = useState(false)
22
   const [loading, setLoading] = useState(false)
22
   const [loading, setLoading] = useState(false)
23
-  const [val, setVal] = useState({ buildingName: '意向楼盘' })
24
-  const [buildingTitle, setBuildingTitle] = useState({ buildingName: '意向楼盘' })
23
+  // const [val, setVal] = useState({ buildingName: '意向楼盘' })
24
+  // const [buildingTitle, setBuildingTitle] = useState({ buildingName: '意向楼盘' })
25
+  const [current, setCurrent] = useState({ buildingName: '意向楼盘' })
26
+
27
+  const buildingProp = useMemo(
28
+    () => (dicts || []).filter(x => x.buildingId === value)[0] || { buildingName: '请选择' },
29
+    [value, dicts]
30
+  )
25
 
31
 
26
   useEffect(() => {
32
   useEffect(() => {
27
-    if (dicts) {
28
-      const building = dicts.filter(x => x.buildingId === value)[0] || { buildingName: '请选择' }
29
-      setVal(building)
30
-    }
31
-  }, [value, dicts])
33
+    setCurrent(buildingProp)
34
+  }, [buildingProp])
32
 
35
 
33
   useEffect(() => {
36
   useEffect(() => {
34
     setLoading(true)
37
     setLoading(true)
50
     const buildingId = e.detail.value
53
     const buildingId = e.detail.value
51
     const building = dicts.filter(x => x.buildingId === buildingId)[0] || { buildingName: '意向楼盘' }
54
     const building = dicts.filter(x => x.buildingId === buildingId)[0] || { buildingName: '意向楼盘' }
52
 
55
 
53
-    setBuildingTitle(building)
54
-
56
+    // setBuildingTitle(building)
57
+    setCurrent(building)
55
   }
58
   }
56
   const handleSubmit = (e) => {
59
   const handleSubmit = (e) => {
57
     e.stopPropagation()
60
     e.stopPropagation()
58
     setVisible(false)
61
     setVisible(false)
59
-    setVal(buildingTitle)
60
 
62
 
61
-    onChange(val.buildingId, val)
63
+    onChange(current.buildingId, current)
64
+  }
65
+
66
+  const handleCancel = () => {
67
+    setVisible(false)
68
+    setCurrent(buildingProp)
62
   }
69
   }
63
 
70
 
64
   return (
71
   return (
66
       {
73
       {
67
         visible ? (
74
         visible ? (
68
           < >
75
           < >
69
-            <view onClick={() => setVisible(false)} className={wrapAnimate}></view>
76
+            <view onClick={handleCancel} className={wrapAnimate}></view>
70
             <view className={frameAnimate} catchMove>
77
             <view className={frameAnimate} catchMove>
71
               <view className='frame'>
78
               <view className='frame'>
72
                 {/* 标题  */}
79
                 {/* 标题  */}
73
                 <view className='title-wrapper'>
80
                 <view className='title-wrapper'>
74
-                  <view>{buildingTitle.buildingName}</view>
81
+                  <view>{current.buildingName}</view>
75
                 </view>
82
                 </view>
76
                 {/* 内容 */}
83
                 {/* 内容 */}
77
                 <view style='overflow-x: hidden;'>
84
                 <view style='overflow-x: hidden;'>
91
                                   <Label catchMove className='radio-list__label' for={`rdo-${i}`} key={i}>
98
                                   <Label catchMove className='radio-list__label' for={`rdo-${i}`} key={i}>
92
                                     <view className='radio-list__text'>{item.buildingName}</view>
99
                                     <view className='radio-list__text'>{item.buildingName}</view>
93
 
100
 
94
-                                    <Radio id={`rdo-${i}`} catchMove className='radio-list__radio' value={item.buildingId} checked={item.buildingId === val.buildingId}></Radio>
101
+                                    <Radio id={`rdo-${i}`} catchMove className='radio-list__radio' value={item.buildingId} checked={item.buildingId === current.buildingId}></Radio>
95
 
102
 
96
                                   </Label>
103
                                   </Label>
97
                                 )
104
                                 )
105
 
112
 
106
                   {/* <view className='bottom-text' onClick={handleTextNext}> */}
113
                   {/* <view className='bottom-text' onClick={handleTextNext}> */}
107
                   <view style={{ display: 'flex', margin: '2em auto' }}>
114
                   <view style={{ display: 'flex', margin: '2em auto' }}>
108
-                    <Button className='checkBtn' onClick={() => setVisible(false)}  >取消</Button>
109
-                    <Button className='okBtn' disabled={!buildingTitle.buildingId} onClick={handleSubmit}> 确定</Button>
115
+                    <Button className='checkBtn' onClick={handleCancel}  >取消</Button>
116
+                    <Button className='okBtn' disabled={!current.buildingId} onClick={handleSubmit}> 确定</Button>
110
                   </view>
117
                   </view>
111
                   {/* <view className='Btn'>
118
                   {/* <view className='Btn'>
112
-                    <Button onClick={() => setVisible(false)} >取消</Button>
119
+                    <Button onClick={handleCancel} >取消</Button>
113
                     <Button disabled={!val.buildingId} onClick={handleSubmit}>确定</Button>
120
                     <Button disabled={!val.buildingId} onClick={handleSubmit}>确定</Button>
114
                   </view> */}
121
                   </view> */}
115
                 </view>
122
                 </view>
117
             </view>
124
             </view>
118
           </>
125
           </>
119
         ) :
126
         ) :
120
-          <View onClick={() => setVisible(true)}>{val.buildingName}</View>
127
+          <View onClick={() => setVisible(true)}>{buildingProp.buildingName}</View>
121
       }
128
       }
122
     </view>
129
     </view>
123
 
130
 

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

118
   }
118
   }
119
 
119
 
120
   const handleBuildingSelect = (bid, building) => {
120
   const handleBuildingSelect = (bid, building) => {
121
+    console.log("🚀 ~ file: index.jsx ~ line 121 ~ handleBuildingSelect ~ building", building)
121
     setBuildingId(bid)
122
     setBuildingId(bid)
123
+    // setBuildingId(building.buildingId)
122
   }
124
   }
123
 
125
 
124
   return (
126
   return (
155
             <view className='flex-item'>
157
             <view className='flex-item'>
156
               {/* <BuildingPicker change={BuildingChange} value={buildingId} type={personType} /> */}
158
               {/* <BuildingPicker change={BuildingChange} value={buildingId} type={personType} /> */}
157
               {/* <View onClick={() => setShowFrame(true)} >{buildingName}</View> */}
159
               {/* <View onClick={() => setShowFrame(true)} >{buildingName}</View> */}
158
-              <BuildingSelect onChange={handleBuildingSelect} role={personType} />
160
+              <BuildingSelect value={buildingId} onChange={handleBuildingSelect} role={personType} />
159
             </view>
161
             </view>
160
           </view>
162
           </view>
161
 
163