Browse Source

静态页面

1002884655 3 years ago
parent
commit
3c00f36e6c

+ 33
- 30
src/pages/index/newsDetail/index.jsx View File

1
-import React, { useState, useEffect } from "react";
1
+import { useState, useEffect } from "react";
2
 import Taro from "@tarojs/taro";
2
 import Taro from "@tarojs/taro";
3
 import withLayout from "@/layout";
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
 import { formatDate } from "@/utils/chatDate";
7
 import { formatDate } from "@/utils/chatDate";
8
+import "@/assets/css/iconfont.css";
9
+import "./index.scss";
15
 
10
 
16
 export default withLayout((props) => {
11
 export default withLayout((props) => {
12
+  const { trackData } = props
17
   const { id } = props.router.params;
13
   const { id } = props.router.params;
18
 
14
 
19
   const [data, setData] = useState(null);
15
   const [data, setData] = useState(null);
20
   const [IsPull, setPull] = useState(false);
16
   const [IsPull, setPull] = useState(false);
21
   const [PullTimer, setPullTimer] = useState(null);
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
   const PageRefresh = () => {
26
   const PageRefresh = () => {
24
     // 页面下拉刷新回调
27
     // 页面下拉刷新回调
25
     setPull(true);
28
     setPull(true);
40
   const getData = (params) => {
43
   const getData = (params) => {
41
     Taro.showLoading();
44
     Taro.showLoading();
42
     queryNewsDetail(params).then((res) => {
45
     queryNewsDetail(params).then((res) => {
43
-  
46
+
44
       setData(res);
47
       setData(res);
45
       Taro.hideLoading();
48
       Taro.hideLoading();
46
     });
49
     });
53
   }, [id]);
56
   }, [id]);
54
 
57
 
55
   return (
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
           <view>
62
           <view>
60
             <ScrollView
63
             <ScrollView
61
-              scroll-y={true}
62
-              refresher-enabled={true}
64
+              scroll-y
65
+              refresher-enabled
63
               refresher-triggered={IsPull}
66
               refresher-triggered={IsPull}
64
               onrefresherrefresh={PageRefresh}
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
                   <view>
72
                   <view>
70
-                    <text className="Title">{data.newsName}</text>
73
+                    <text className='Title'>{data.newsName}</text>
71
                     <view>
74
                     <view>
72
                       <text>阅读:{data.pvNum || 0}</text>
75
                       <text>阅读:{data.pvNum || 0}</text>
73
                       <text>点赞{data.favorNum || 0}</text>
76
                       <text>点赞{data.favorNum || 0}</text>
74
                       <text>收藏{data.saveNum || 0}</text>
77
                       <text>收藏{data.saveNum || 0}</text>
75
                     </view>
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
                     </text>
81
                     </text>
79
-                    <text className="Share">分享好友</text>
82
+                    <text className='Share'>分享好友</text>
80
                   </view>
83
                   </view>
81
                 </view>
84
                 </view>
82
 
85
 
83
-                <view className="Content">
86
+                <view className='Content'>
84
                   <RichText nodes={data.newsDetail}></RichText>
87
                   <RichText nodes={data.newsDetail}></RichText>
85
                 </view>
88
                 </view>
86
               </view>
89
               </view>
87
             </ScrollView>
90
             </ScrollView>
88
           </view>
91
           </view>
89
         </view>
92
         </view>
90
-        <view className="Bottom">
93
+        <view className='Bottom'>
91
           <view>
94
           <view>
92
             <Image
95
             <Image
93
-              mode="heightFix"
94
-              src={require("@/assets/buildingDetail-icon3.png")}
96
+              mode='heightFix'
97
+              src={require('@/assets/buildingDetail-icon3.png')}
95
             ></Image>
98
             ></Image>
96
             <text>生成海报</text>
99
             <text>生成海报</text>
97
           </view>
100
           </view>
98
           <view>
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
           </view>
104
           </view>
102
         </view>
105
         </view>
103
       </>)}
106
       </>)}

+ 1
- 1
src/pages/mine/components/MyCollectForActivity/index.jsx View File

63
           <view className='List'>
63
           <view className='List'>
64
             {
64
             {
65
               PageList.map((item, index) => (
65
               PageList.map((item, index) => (
66
-                <ActivityListItem Data={item} key={`ActivityListItem-${index}`}></ActivityListItem>
66
+                <ActivityListItem data={item} key={`ActivityListItem-${index}`}></ActivityListItem>
67
               ))
67
               ))
68
             }
68
             }
69
           </view>
69
           </view>

+ 2
- 2
src/pages/mine/components/MyCollectForBuilding/index.jsx View File

3
 import { useSelector } from 'react-redux'
3
 import { useSelector } from 'react-redux'
4
 import { fetch } from '@/utils/request'
4
 import { fetch } from '@/utils/request'
5
 import { API_ITEMS_LIST } from '@/constants/api'
5
 import { API_ITEMS_LIST } from '@/constants/api'
6
+import ProjectListItem from '@/components/ProjectListItem/index'
6
 import './index.scss'
7
 import './index.scss'
7
-import MyShareListItem from '../MyShareListItem/index'
8
 
8
 
9
 export default function MyCollectForBuilding () {
9
 export default function MyCollectForBuilding () {
10
   
10
   
63
           <view className='List'>
63
           <view className='List'>
64
             {
64
             {
65
               PageList.map((item, index) => (
65
               PageList.map((item, index) => (
66
-                <MyShareListItem Data={item} key={`MyShareListItem-${index}`}></MyShareListItem>
66
+                <ProjectListItem Data={item} key={`ProjectListItem-${index}`}></ProjectListItem>
67
               ))
67
               ))
68
             }
68
             }
69
           </view>
69
           </view>

+ 1
- 1
src/pages/mine/components/MyCollectForNews/index.jsx View File

63
           <view className='List'>
63
           <view className='List'>
64
             {
64
             {
65
               PageList.map((item, index) => (
65
               PageList.map((item, index) => (
66
-                <NewsListItem Data={item} key={`NewsListItem-${index}`}></NewsListItem>
66
+                <NewsListItem data={item} key={`NewsListItem-${index}`}></NewsListItem>
67
               ))
67
               ))
68
             }
68
             }
69
           </view>
69
           </view>