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,8 +4,8 @@ module.exports = {
4 4
   },
5 5
   defineConstants: {
6 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 10
     // WSS_HOST: '"wss://www.newhousehold.cn"',
11 11
     WSS_HOST: '"wss://xlk.njyz.tech"',

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

@@ -1,12 +1,12 @@
1 1
 
2 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 4
 import { API_GET_AGENT_BUILDINGS, API_ITEMS_LIST } from '@/constants/api'
5 5
 import { ROLE_CODE } from '@/constants/user'
6 6
 import { useSelector } from 'react-redux'
7 7
 import { fetch } from '@/utils/request'
8 8
 
9
-import { useState, useEffect, useRef } from 'react'
9
+import { useState, useEffect, useMemo } from 'react'
10 10
 import './style.css'
11 11
 
12 12
 const wrapAnimate = 'wrap wrapAnimate'
@@ -20,15 +20,18 @@ export default (props) => {
20 20
   const [dicts, setDicts] = useState([])
21 21
   const [visible, setVisible] = useState(false)
22 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 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 36
   useEffect(() => {
34 37
     setLoading(true)
@@ -50,15 +53,19 @@ export default (props) => {
50 53
     const buildingId = e.detail.value
51 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 59
   const handleSubmit = (e) => {
57 60
     e.stopPropagation()
58 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 71
   return (
@@ -66,12 +73,12 @@ export default (props) => {
66 73
       {
67 74
         visible ? (
68 75
           < >
69
-            <view onClick={() => setVisible(false)} className={wrapAnimate}></view>
76
+            <view onClick={handleCancel} className={wrapAnimate}></view>
70 77
             <view className={frameAnimate} catchMove>
71 78
               <view className='frame'>
72 79
                 {/* 标题  */}
73 80
                 <view className='title-wrapper'>
74
-                  <view>{buildingTitle.buildingName}</view>
81
+                  <view>{current.buildingName}</view>
75 82
                 </view>
76 83
                 {/* 内容 */}
77 84
                 <view style='overflow-x: hidden;'>
@@ -91,7 +98,7 @@ export default (props) => {
91 98
                                   <Label catchMove className='radio-list__label' for={`rdo-${i}`} key={i}>
92 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 103
                                   </Label>
97 104
                                 )
@@ -105,11 +112,11 @@ export default (props) => {
105 112
 
106 113
                   {/* <view className='bottom-text' onClick={handleTextNext}> */}
107 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 117
                   </view>
111 118
                   {/* <view className='Btn'>
112
-                    <Button onClick={() => setVisible(false)} >取消</Button>
119
+                    <Button onClick={handleCancel} >取消</Button>
113 120
                     <Button disabled={!val.buildingId} onClick={handleSubmit}>确定</Button>
114 121
                   </view> */}
115 122
                 </view>
@@ -117,7 +124,7 @@ export default (props) => {
117 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 129
     </view>
123 130
 

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

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