|
@@ -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
|
|