|
@@ -1,25 +1,28 @@
|
1
|
|
-import React, { useState, useEffect } from "react";
|
|
1
|
+import { useState, useEffect } from "react";
|
2
|
2
|
import Taro from "@tarojs/taro";
|
3
|
3
|
import withLayout from "@/layout";
|
4
|
|
-import "./index.scss";
|
5
|
|
-import { ScrollView, Image, RichText,WebView } from "@tarojs/components";
|
6
|
|
-import "@/assets/css/iconfont.css";
|
7
|
|
-import {
|
8
|
|
- addNewsUv,
|
9
|
|
- favorNews,
|
10
|
|
- // addNewsShareNum,
|
11
|
|
- queryNewsDetail,
|
12
|
|
- cancelFavorNews,
|
13
|
|
-} from "@/services/news";
|
|
4
|
+import { ScrollView, Image, RichText, WebView } from "@tarojs/components";
|
|
5
|
+import useFavor from "@/utils/hooks/useFavor";
|
|
6
|
+import { queryNewsDetail } from "@/services/news";
|
14
|
7
|
import { formatDate } from "@/utils/chatDate";
|
|
8
|
+import "@/assets/css/iconfont.css";
|
|
9
|
+import "./index.scss";
|
15
|
10
|
|
16
|
11
|
export default withLayout((props) => {
|
|
12
|
+ const { trackData } = props
|
17
|
13
|
const { id } = props.router.params;
|
18
|
14
|
|
19
|
15
|
const [data, setData] = useState(null);
|
20
|
16
|
const [IsPull, setPull] = useState(false);
|
21
|
17
|
const [PullTimer, setPullTimer] = useState(null);
|
22
|
18
|
|
|
19
|
+
|
|
20
|
+ const [isSave, handleFavor] = useFavor(data?.isSave, {
|
|
21
|
+ id,
|
|
22
|
+ buildingId: data?.buildingId,
|
|
23
|
+ ...trackData,
|
|
24
|
+ });
|
|
25
|
+
|
23
|
26
|
const PageRefresh = () => {
|
24
|
27
|
// 页面下拉刷新回调
|
25
|
28
|
setPull(true);
|
|
@@ -40,7 +43,7 @@ export default withLayout((props) => {
|
40
|
43
|
const getData = (params) => {
|
41
|
44
|
Taro.showLoading();
|
42
|
45
|
queryNewsDetail(params).then((res) => {
|
43
|
|
-
|
|
46
|
+
|
44
|
47
|
setData(res);
|
45
|
48
|
Taro.hideLoading();
|
46
|
49
|
});
|
|
@@ -53,51 +56,51 @@ export default withLayout((props) => {
|
53
|
56
|
}, [id]);
|
54
|
57
|
|
55
|
58
|
return (
|
56
|
|
- <view className="Page newsDetail flex-v">
|
57
|
|
- {data&& (data.newsDetailType === '0' ? <WebView src={data.newsDetail} /> :<>
|
58
|
|
- <view className="flex-item">
|
|
59
|
+ <view className='Page newsDetail flex-v'>
|
|
60
|
+ {data && (data.newsDetailType === '0' ? <WebView src={data.newsDetail} /> : <>
|
|
61
|
+ <view className='flex-item'>
|
59
|
62
|
<view>
|
60
|
63
|
<ScrollView
|
61
|
|
- scroll-y={true}
|
62
|
|
- refresher-enabled={true}
|
|
64
|
+ scroll-y
|
|
65
|
+ refresher-enabled
|
63
|
66
|
refresher-triggered={IsPull}
|
64
|
67
|
onrefresherrefresh={PageRefresh}
|
65
|
|
- refresher-background="#fff"
|
|
68
|
+ refresher-background='#fff'
|
66
|
69
|
>
|
67
|
|
- <view className="PageContent">
|
68
|
|
- <view className="Info">
|
|
70
|
+ <view className='PageContent'>
|
|
71
|
+ <view className='Info'>
|
69
|
72
|
<view>
|
70
|
|
- <text className="Title">{data.newsName}</text>
|
|
73
|
+ <text className='Title'>{data.newsName}</text>
|
71
|
74
|
<view>
|
72
|
75
|
<text>阅读:{data.pvNum || 0}</text>
|
73
|
76
|
<text>点赞{data.favorNum || 0}</text>
|
74
|
77
|
<text>收藏{data.saveNum || 0}</text>
|
75
|
78
|
</view>
|
76
|
|
- <text className="Time">
|
77
|
|
- {`时间:${formatDate(data.createDate, "yyyy-M-d")} `}
|
|
79
|
+ <text className='Time'>
|
|
80
|
+ {`时间:${formatDate(data.createDate, 'yyyy-M-d')} `}
|
78
|
81
|
</text>
|
79
|
|
- <text className="Share">分享好友</text>
|
|
82
|
+ <text className='Share'>分享好友</text>
|
80
|
83
|
</view>
|
81
|
84
|
</view>
|
82
|
85
|
|
83
|
|
- <view className="Content">
|
|
86
|
+ <view className='Content'>
|
84
|
87
|
<RichText nodes={data.newsDetail}></RichText>
|
85
|
88
|
</view>
|
86
|
89
|
</view>
|
87
|
90
|
</ScrollView>
|
88
|
91
|
</view>
|
89
|
92
|
</view>
|
90
|
|
- <view className="Bottom">
|
|
93
|
+ <view className='Bottom'>
|
91
|
94
|
<view>
|
92
|
95
|
<Image
|
93
|
|
- mode="heightFix"
|
94
|
|
- src={require("@/assets/buildingDetail-icon3.png")}
|
|
96
|
+ mode='heightFix'
|
|
97
|
+ src={require('@/assets/buildingDetail-icon3.png')}
|
95
|
98
|
></Image>
|
96
|
99
|
<text>生成海报</text>
|
97
|
100
|
</view>
|
98
|
101
|
<view>
|
99
|
|
- <text className="iconfont icon-shoucang"></text>
|
100
|
|
- <text>收藏</text>
|
|
102
|
+ <text className='iconfont icon-shoucang' style={isSave ? { color: 'red' } : undefined} onClick={handleFavor}></text>
|
|
103
|
+ <text onClick={handleFavor}>{isSave ? '已收藏' : '收藏'}</text>
|
101
|
104
|
</view>
|
102
|
105
|
</view>
|
103
|
106
|
</>)}
|