|
@@ -5,7 +5,7 @@ import { ScrollView, Image, Button } from '@tarojs/components'
|
5
|
5
|
import ProjectListItem from '@/components/ProjectListItem/index'
|
6
|
6
|
import { useSelector } from 'react-redux'
|
7
|
7
|
import { fetch } from '@/utils/request'
|
8
|
|
-import { API_AGENT_CURRENT, API_ITEMS_DETAIL, API_CARDS_LIST } from '@/constants/api'
|
|
8
|
+import { API_CARDS_UV, API_ITEMS_DETAIL, API_CARDS_LIST } from '@/constants/api'
|
9
|
9
|
import { getImgURL } from '@/utils/image'
|
10
|
10
|
import useLike from "@/utils/hooks/useLike";
|
11
|
11
|
import '@/assets/css/iconfont.css'
|
|
@@ -21,14 +21,28 @@ export default withLayout((props) => {
|
21
|
21
|
const [PullTimer, setPullTimer] = useState(null)
|
22
|
22
|
const [UserInfo, setUserInfo] = useState({})
|
23
|
23
|
const [BuildingInfo, setBuildingInfo] = useState({})
|
|
24
|
+ const [LikeNum, setLikeNum] = useState(0)
|
24
|
25
|
|
25
|
26
|
const user = useSelector(state => state.user)
|
26
|
27
|
const [PersonId, setPersonId] = useState(null)
|
27
|
28
|
|
28
|
|
- const [isSave, handleFavor] = useLike(BuildingInfo?.isSave, {
|
29
|
|
- id,
|
|
29
|
+ const [isSave, handleFavor] = useLike(UserInfo?.liked, {
|
|
30
|
+ id: id || user.userInfo.person.personId,
|
30
|
31
|
...trackData,
|
31
|
|
- });
|
|
32
|
+ eventType: 'consultant'
|
|
33
|
+ }, () => {
|
|
34
|
+ if(!isSave) {
|
|
35
|
+ AddHotNum()
|
|
36
|
+ }
|
|
37
|
+ const likeNum = isSave ? UserInfo.likeNum - 1 : UserInfo.likeNum + 1
|
|
38
|
+ setLikeNum(likeNum)
|
|
39
|
+ })
|
|
40
|
+
|
|
41
|
+ useEffect(() => {
|
|
42
|
+ if(UserInfo.id) {
|
|
43
|
+ setLikeNum(UserInfo.likeNum)
|
|
44
|
+ }
|
|
45
|
+ }, [UserInfo])
|
32
|
46
|
|
33
|
47
|
useEffect(() => {
|
34
|
48
|
if (PersonId !== user.userInfo.person.personId) {
|
|
@@ -52,14 +66,14 @@ export default withLayout((props) => {
|
52
|
66
|
}, [PersonId])
|
53
|
67
|
|
54
|
68
|
useEffect(() => {
|
55
|
|
- if (UserInfo.buildingId) {
|
|
69
|
+ if (UserInfo.buildingId && !BuildingInfo.buildingId) {
|
56
|
70
|
GetBuildingInfo()
|
57
|
71
|
}
|
58
|
72
|
}, [UserInfo])
|
59
|
73
|
|
60
|
|
- const GetUserInfo = () => {
|
61
|
|
- fetch({ url: API_AGENT_CURRENT, method: 'get' }).then((res) => {
|
62
|
|
- setUserInfo(res)
|
|
74
|
+ const AddHotNum = () => {
|
|
75
|
+ fetch({ url: API_CARDS_UV + `/${id || PersonId}`, method: 'post' }).then(() => {
|
|
76
|
+ setUserInfo({...UserInfo, hotNum: (UserInfo.hotNum || 0) - 0 + 1})
|
63
|
77
|
})
|
64
|
78
|
}
|
65
|
79
|
|
|
@@ -99,7 +113,7 @@ export default withLayout((props) => {
|
99
|
113
|
<text>{UserInfo.name} {UserInfo.phone}</text>
|
100
|
114
|
</view>
|
101
|
115
|
<text onClick={handleFavor} className='iconfont icon-dianzan' style={isSave ? { color: 'red' } : undefined}></text>
|
102
|
|
- <text onClick={handleFavor}>{UserInfo.likeNum || 0}{isSave ? `已点赞` : '赞'}</text>
|
|
116
|
+ <text onClick={handleFavor}>{LikeNum}{isSave ? `已点赞` : '赞'}</text>
|
103
|
117
|
</view>
|
104
|
118
|
<view className='Tag'>
|
105
|
119
|
<view>
|
|
@@ -134,7 +148,7 @@ export default withLayout((props) => {
|
134
|
148
|
}
|
135
|
149
|
</view>
|
136
|
150
|
<text className='iconfont icon-renqi'></text>
|
137
|
|
- <text>人气值{UserInfo.hotNum || 999}</text>
|
|
151
|
+ <text>人气值{(UserInfo.hotNum || 0) + 999}</text>
|
138
|
152
|
</view>
|
139
|
153
|
</view>
|
140
|
154
|
|