Browse Source

Merge branch 'dev1.0' of http://git.ycjcjy.com/civilized_city/miniapp into dev1.0

Yansen 2 years ago
parent
commit
db599f15e4

+ 2
- 2
config/dev.js View File

3
     NODE_ENV: '"development"',
3
     NODE_ENV: '"development"',
4
   },
4
   },
5
   defineConstants: {
5
   defineConstants: {
6
-    // HOST: '"http://127.0.0.1:9087"',
7
-    HOST: '"http://192.168.89.147:9087"',
6
+    HOST: '"http://127.0.0.1:9087"',
7
+    // HOST: '"http://192.168.89.147:9087"',
8
     AD_IMAGE: '"https://h5.njyunzhi.com/images/citizen_banner.png"',
8
     AD_IMAGE: '"https://h5.njyunzhi.com/images/citizen_banner.png"',
9
     DEFAULT_POS: '"116.3476917447715,31.409912844296578"', // 霍山县人民政府 gcj02
9
     DEFAULT_POS: '"116.3476917447715,31.409912844296578"', // 霍山县人民政府 gcj02
10
     VERSION: '"1.1.13-20230325"',
10
     VERSION: '"1.1.13-20230325"',

+ 54
- 29
src/components/PowerList/index.jsx View File

3
 import { View } from "@tarojs/components";
3
 import { View } from "@tarojs/components";
4
 import { PowerScrollView } from "@antmjs/vantui";
4
 import { PowerScrollView } from "@antmjs/vantui";
5
 import useShow from "@/layouts/hooks/useShow";
5
 import useShow from "@/layouts/hooks/useShow";
6
+import useHide from "@/layouts/hooks/useHide";
7
+import { throttle } from "@/utils/tools";
6
 
8
 
7
 export default React.forwardRef((props, ref) => {
9
 export default React.forwardRef((props, ref) => {
8
-  const { request, params, renderItem, onLoadingChange, onDataChange } = props;
10
+  const { sid, request, params, renderItem, onLoadingChange, onDataChange } = props;
9
 
11
 
10
   const pageSize = 5;
12
   const pageSize = 5;
11
-  const pageNumRef = React.useRef(0);
13
+  const pageShowRef = React.useRef(false);
12
   const [loading, setLoading] = React.useState(false);
14
   const [loading, setLoading] = React.useState(false);
13
   const [list, setList] = React.useState([]);
15
   const [list, setList] = React.useState([]);
14
   const [finished, setFinished] = React.useState(true);
16
   const [finished, setFinished] = React.useState(true);
15
   const listRef = React.useRef([]);
17
   const listRef = React.useRef([]);
16
-  const paramsRef = React.useRef();
17
   listRef.current = list;
18
   listRef.current = list;
18
-  paramsRef.current = params || {};
19
 
19
 
20
   const changeLoading = (val) => {
20
   const changeLoading = (val) => {
21
     setLoading(val);
21
     setLoading(val);
24
     }
24
     }
25
   };
25
   };
26
 
26
 
27
-  const queryData = React.useCallback(
27
+  const queryData = React.useCallback(throttle(
28
     (options = {}) => {
28
     (options = {}) => {
29
       return new Promise((resolve, reject) => {
29
       return new Promise((resolve, reject) => {
30
         changeLoading(true);
30
         changeLoading(true);
31
-        request({
31
+
32
+        const queryParams = {
32
           pageSize,
33
           pageSize,
33
-          ...paramsRef.current,
34
           ...options,
34
           ...options,
35
-        })
35
+        }
36
+
37
+        request(queryParams)
36
           .then((res) => {
38
           .then((res) => {
37
-            const { records, current, pages } = res;
39
+            const { records, current, total } = res;
38
 
40
 
39
             let dataset =
41
             let dataset =
40
               current == 1
42
               current == 1
45
             }
47
             }
46
             setList(dataset);
48
             setList(dataset);
47
 
49
 
48
-            setFinished(current >= pages);
50
+            setFinished(dataset.length >= total);
49
             changeLoading(false);
51
             changeLoading(false);
50
             resolve();
52
             resolve();
53
+
54
+            // 写入缓存
55
+            Taro.setStorage({
56
+              key: `list-${sid}`,
57
+              data: JSON.stringify({
58
+                params: queryParams,
59
+              }),
60
+            })
61
+
51
           })
62
           })
52
           .catch((err) => {
63
           .catch((err) => {
53
             changeLoading(false);
64
             changeLoading(false);
54
             reject(err);
65
             reject(err);
55
           });
66
           });
56
       });
67
       });
57
-    },
68
+    }),
58
     []
69
     []
59
   );
70
   );
60
 
71
 
61
-  const refresh = React.useCallback(() => {
62
-    console.log(pageNumRef);
63
-    pageNumRef.current = 1;
64
-
65
-    queryData({ pageNum: pageNumRef.current });
66
-    console.log("refresh" + pageNumRef.current);
67
-  }, [queryData]);
72
+  const refresh = React.useCallback((options = {}) => {
73
+    queryData({ ...options, pageNum: 1 });
74
+  }, []);
68
 
75
 
69
   const onScrollToLower = React.useCallback(
76
   const onScrollToLower = React.useCallback(
70
-    (event = 0, isRefresh = false) => {
71
-      console.log("onScrollToLower" + pageNumRef.current);
72
-      pageNumRef.current += 1;
73
-      queryData({ pageNum: pageNumRef.current });
77
+    (page) => {
78
+      const currentPage = Math.ceil(page / pageSize);
79
+      queryData({ pageNum: currentPage + 1, ...(params || {}) });
74
     },
80
     },
75
-    []
81
+    [params]
76
   );
82
   );
77
 
83
 
78
   useShow(() => {
84
   useShow(() => {
79
-    refresh();
85
+    pageShowRef.current = true;
86
+
87
+    const paramStr = Taro.getStorageSync(`list-${sid}`);
88
+    const finalParams = paramStr ? JSON.parse(paramStr).params : { ...params || {} };
89
+
90
+    // 如果已经加载多页数据
91
+    // 那么需要重新加载
92
+    if (finalParams.pageNum && finalParams.pageNum > 1) {
93
+      finalParams.pageSize = finalParams.pageNum * finalParams.pageSize;
94
+      finalParams.pageNum = 1;
95
+    }
96
+
97
+    refresh(finalParams);
80
   });
98
   });
81
 
99
 
100
+  useHide(() => {
101
+    pageShowRef.current = false;
102
+    Taro.removeStorageSync(`list-${sid}`);
103
+  });
82
   
104
   
105
+  // 页面隐藏之后, 还会执行一次 useEffect
106
+  // 不知道是否是 Taro 的 bug
83
   React.useEffect(() => {
107
   React.useEffect(() => {
84
-    refresh();
85
-  }, [refresh, params]);
108
+    if (pageShowRef.current) {
109
+      refresh(params);
110
+    }
111
+  }, [params]);
86
 
112
 
87
   React.useImperativeHandle(ref, () => ({
113
   React.useImperativeHandle(ref, () => ({
88
-    refresh,
114
+    refresh: () => refresh(params),
89
     updateData: (dt) => setList(dt),
115
     updateData: (dt) => setList(dt),
90
-  }));
116
+  }), [params]);
91
  
117
  
92
-
93
   return (
118
   return (
94
     <PowerScrollView
119
     <PowerScrollView
95
       scrollY
120
       scrollY

+ 11
- 20
src/layouts/hooks/useHide.js View File

1
 import React from "react";
1
 import React from "react";
2
-import evtBus from '@/utils/event_bus';
2
+import Taro from '@tarojs/taro';
3
 
3
 
4
 /**
4
 /**
5
  * 页面显示, 隐藏 hook, 可以在 component 中使用
5
  * 页面显示, 隐藏 hook, 可以在 component 中使用
6
  */
6
  */
7
-export default (fn, deps) => {
7
+export default (fn) => {
8
   const fnRef = React.useRef();
8
   const fnRef = React.useRef();
9
   fnRef.current = fn;
9
   fnRef.current = fn;
10
 
10
 
11
-  const [evt, func] = React.useMemo(() => {
12
-    const evt1 = evtBus.current();
13
-    const func1 = () => fnRef.current();
11
+  const evt = React.useMemo(() => {
12
+    const _evt = Taro.getCurrentInstance().router.onHide;
13
+    Taro.eventCenter.on(_evt, fnRef.current);
14
 
14
 
15
-    evt1.addEventListener('hide', func1);
16
-    evt1.addEventListener('unload', func1);
17
-
18
-    return [
19
-      evt1,
20
-      func1,
21
-    ];
15
+    return _evt;
22
   }, []);
16
   }, []);
23
 
17
 
24
   React.useEffect(() => {
18
   React.useEffect(() => {
25
-    evt.addEventListener('hide', func);
26
-    evt.addEventListener('unload', func);
27
-
28
     return () => {
19
     return () => {
29
-      evt.removeEventListener('hide', func);
30
-      evt.removeEventListener('unload', func);
31
-    };
32
-    // eslint-disable-next-line react-hooks/exhaustive-deps
33
-  }, deps);
20
+      fnRef.current(); // 卸载的时候也执行一次
21
+      Taro.eventCenter.off(evt, fnRef.current);
22
+    }
23
+  }, []);
34
 }
24
 }
25
+

+ 9
- 17
src/layouts/hooks/useShow.js View File

1
 import React from "react";
1
 import React from "react";
2
-import evtBus from '@/utils/event_bus';
2
+import Taro from '@tarojs/taro';
3
 
3
 
4
 /**
4
 /**
5
  * 页面显示, 隐藏 hook, 可以在 component 中使用
5
  * 页面显示, 隐藏 hook, 可以在 component 中使用
6
  */
6
  */
7
-export default (fn, deps) => {
7
+export default (fn) => {
8
   const fnRef = React.useRef();
8
   const fnRef = React.useRef();
9
   fnRef.current = fn;
9
   fnRef.current = fn;
10
 
10
 
11
-  const [evt, func] = React.useMemo(() => {
12
-    const evt1 = evtBus.current();
13
-    const func1 = () => console.log('--show-->') || fnRef.current();
11
+  const evt = React.useMemo(() => {
12
+    const _evt = Taro.getCurrentInstance().router.onShow;
13
+    Taro.eventCenter.on(_evt, fnRef.current);
14
 
14
 
15
-    evt1.addEventListener('show', func1);
16
-
17
-    return [
18
-      evt1,
19
-      func1,
20
-    ];
15
+    return _evt;
21
   }, []);
16
   }, []);
22
 
17
 
23
   React.useEffect(() => {
18
   React.useEffect(() => {
24
-    evt.addEventListener('show', func);
25
-
26
     return () => {
19
     return () => {
27
-      evt.removeEventListener('show', func);
28
-    };
29
-    // eslint-disable-next-line react-hooks/exhaustive-deps
30
-  }, deps);
20
+      Taro.eventCenter.off(evt, fnRef.current);
21
+    }
22
+  }, []);
31
 }
23
 }

+ 0
- 25
src/layouts/index.jsx View File

5
 import { Loading, Notify, Dialog } from '@antmjs/vantui';
5
 import { Loading, Notify, Dialog } from '@antmjs/vantui';
6
 import NavLoading from '@/components/NavLoading';
6
 import NavLoading from '@/components/NavLoading';
7
 import Auth from '@/components/Auth';
7
 import Auth from '@/components/Auth';
8
-import evtBus from '@/utils/event_bus';
9
 import TabBar from './TabBar';
8
 import TabBar from './TabBar';
10
 import laySty from './layout.module.less';
9
 import laySty from './layout.module.less';
11
 
10
 
15
   const { person, user, duty } = useModel('user');
14
   const { person, user, duty } = useModel('user');
16
   const containerClass = `${laySty['page-conatiner']} ${tabBar ? laySty['with-tabbar'] : ''} ${className}`;
15
   const containerClass = `${laySty['page-conatiner']} ${tabBar ? laySty['with-tabbar'] : ''} ${className}`;
17
 
16
 
18
-  const evt = React.useMemo(() => {
19
-    return evtBus.current();
20
-  }, []);
21
-
22
   React.useEffect(() => {
17
   React.useEffect(() => {
23
     if (person && !user) {
18
     if (person && !user) {
24
       const currentPage = Taro.getCurrentPages().slice().pop();
19
       const currentPage = Taro.getCurrentPages().slice().pop();
36
     };
31
     };
37
   });
32
   });
38
 
33
 
39
-  Taro.useDidShow(() => {
40
-    // useDidShow 比 React Hook 要早
41
-    // 所以使用 nextTick
42
-    Taro.nextTick(() => {
43
-      evt.dispatchEvent('show');
44
-    });
45
-  });
46
-
47
-  Taro.useDidHide(() => {
48
-    Taro.nextTick(() => {
49
-      evt.dispatchEvent('hide');
50
-    });
51
-  })
52
-
53
-  Taro.useUnload(() => {
54
-    Taro.nextTick(() => {
55
-      evt.dispatchEvent('unload');
56
-    });
57
-  })
58
-
59
   return (
34
   return (
60
       <View className={laySty['page-wrapper']}>
35
       <View className={laySty['page-wrapper']}>
61
         <Notify id="vanNotify" />
36
         <Notify id="vanNotify" />

+ 5
- 0
src/pages/apply/list/index.jsx View File

14
   overflow: "hidden",
14
   overflow: "hidden",
15
 };
15
 };
16
 
16
 
17
+const sid1 = Math.random().toString(36).substring(2, 8);
18
+const sid2 = Math.random().toString(36).substring(2, 8);
19
+
17
 export default (props) => {
20
 export default (props) => {
18
   const router = Taro.useRouter();
21
   const router = Taro.useRouter();
19
   const { title, applyType = "" } = router.params;
22
   const { title, applyType = "" } = router.params;
66
       <Tabs sticky>
69
       <Tabs sticky>
67
         <Tab title="督查员" style={tabStyle}>
70
         <Tab title="督查员" style={tabStyle}>
68
           <PowerList
71
           <PowerList
72
+            sid={sid1}
69
             request={getTaIssueApply}
73
             request={getTaIssueApply}
70
             params={{ applyType, sourceType: "inspector", duty, issueId }}
74
             params={{ applyType, sourceType: "inspector", duty, issueId }}
71
             renderItem={(item) => (
75
             renderItem={(item) => (
80
         </Tab>
84
         </Tab>
81
         <Tab title="市民" style={tabStyle}>
85
         <Tab title="市民" style={tabStyle}>
82
           <PowerList
86
           <PowerList
87
+            sid={sid2}
83
             request={getTaIssueApply}
88
             request={getTaIssueApply}
84
             params={{ applyType, sourceType: "feedback", duty }}
89
             params={{ applyType, sourceType: "feedback", duty }}
85
             renderItem={(item) => (
90
             renderItem={(item) => (

+ 3
- 0
src/pages/check/list/index.jsx View File

9
 import Card from './components/Card';
9
 import Card from './components/Card';
10
 
10
 
11
 const queryParams = {isValid: true};
11
 const queryParams = {isValid: true};
12
+const sid1 = Math.random().toString(36).substring(2, 8);
13
+
12
 export default (props) => {
14
 export default (props) => {
13
 
15
 
14
   const onClick = (typ, item) => {
16
   const onClick = (typ, item) => {
26
   return (
28
   return (
27
     <Page roles={[ROLE_INSPECTOR]}>
29
     <Page roles={[ROLE_INSPECTOR]}>
28
       <PowerList
30
       <PowerList
31
+        sid={sid1}
29
         request={getTaCheck}
32
         request={getTaCheck}
30
         params={queryParams}
33
         params={queryParams}
31
         renderItem={item => (
34
         renderItem={item => (

+ 3
- 0
src/pages/check/loc/list/index.jsx View File

7
 import { getTaCheckItem } from '@/services/tacheckitem';
7
 import { getTaCheckItem } from '@/services/tacheckitem';
8
 import { ROLE_INSPECTOR } from '@/utils/user';
8
 import { ROLE_INSPECTOR } from '@/utils/user';
9
 
9
 
10
+const sid1 = Math.random().toString(36).substring(2, 8);
11
+
10
 export default (props) => {
12
 export default (props) => {
11
 
13
 
12
   const router = Taro.useRouter();
14
   const router = Taro.useRouter();
38
   return (
40
   return (
39
     <Page loading={loading} roles={[ROLE_INSPECTOR]}>
41
     <Page loading={loading} roles={[ROLE_INSPECTOR]}>
40
       <PowerList
42
       <PowerList
43
+        sid={sid1}
41
         request={getTaCheckItem}
44
         request={getTaCheckItem}
42
         params={params}
45
         params={params}
43
         renderItem={item => {
46
         renderItem={item => {

+ 3
- 0
src/pages/checkStand/list/index.jsx View File

7
 import { getTaCheckStand } from "@/services/tacheckstand";
7
 import { getTaCheckStand } from "@/services/tacheckstand";
8
 import { ROLE_INSPECTOR } from "@/utils/user";
8
 import { ROLE_INSPECTOR } from "@/utils/user";
9
 
9
 
10
+const sid1 = Math.random().toString(36).substring(2, 8);
11
+
10
 export default (props) => {
12
 export default (props) => {
11
   const router = Taro.useRouter();
13
   const router = Taro.useRouter();
12
   const { checkId } = router.params;
14
   const { checkId } = router.params;
40
   return (
42
   return (
41
     <Page tabBar="check" loading={loading}>
43
     <Page tabBar="check" loading={loading}>
42
       <PowerList
44
       <PowerList
45
+        sid={sid1}
43
         request={getTaCheckStand}
46
         request={getTaCheckStand}
44
         params={params}
47
         params={params}
45
         renderItem={(item) => {
48
         renderItem={(item) => {

+ 3
- 0
src/pages/feedback/issuelist/index.jsx View File

7
 import { getTaFeedback } from '@/services/tafeedback';
7
 import { getTaFeedback } from '@/services/tafeedback';
8
 import { getIssueStatus } from '@/utils/biz';
8
 import { getIssueStatus } from '@/utils/biz';
9
 
9
 
10
+const sid1 = Math.random().toString(36).substring(2, 8);
11
+
10
 export default (props) => {
12
 export default (props) => {
11
 
13
 
12
   const router = Taro.useRouter();
14
   const router = Taro.useRouter();
29
   return (
31
   return (
30
     <Page>
32
     <Page>
31
       <PowerList
33
       <PowerList
34
+        sid={sid1}
32
         request={getTaFeedback}
35
         request={getTaFeedback}
33
         params={{bizStatus, isMine: true}}
36
         params={{bizStatus, isMine: true}}
34
         renderItem={(item) => (
37
         renderItem={(item) => (

+ 5
- 3
src/pages/home/components/StatCard.jsx View File

9
   const { duty } = props;
9
   const { duty } = props;
10
 
10
 
11
   const [list, setList] = React.useState([]);
11
   const [list, setList] = React.useState([]);
12
+  const dutyRef = React.useRef();
13
+  dutyRef.current = duty;
12
 
14
 
13
   const classNames = React.useMemo(() => {
15
   const classNames = React.useMemo(() => {
14
     return [
16
     return [
32
   }), [duty]);
34
   }), [duty]);
33
 
35
 
34
   useShow(() => {
36
   useShow(() => {
35
-    if (duty) {
36
-      getIndexData(duty).then(setList);
37
+    if (dutyRef.current) {
38
+      getIndexData(dutyRef.current).then(setList);
37
     }
39
     }
38
-  }, [duty]);
40
+  });
39
 
41
 
40
   return (
42
   return (
41
     <View className={classNames}>
43
     <View className={classNames}>

+ 13
- 0
src/pages/issue/list/index.jsx View File

15
   overflow: 'hidden',
15
   overflow: 'hidden',
16
 }
16
 }
17
 
17
 
18
+const sid1 = Math.random().toString(36).substring(2, 8);
19
+const sid2 = Math.random().toString(36).substring(2, 8);
20
+const sid3 = Math.random().toString(36).substring(2, 8);
21
+const sid4 = Math.random().toString(36).substring(2, 8);
22
+const sid5 = Math.random().toString(36).substring(2, 8);
23
+const sid6 = Math.random().toString(36).substring(2, 8);
24
+
18
 // 只有督查员能看到当前页面
25
 // 只有督查员能看到当前页面
19
 export default (props) => {
26
 export default (props) => {
20
   // const { user } = useModel('user');
27
   // const { user } = useModel('user');
41
         <Tab title="全部" style={tabStyle}>
48
         <Tab title="全部" style={tabStyle}>
42
           {active == 0 && (
49
           {active == 0 && (
43
             <PowerList
50
             <PowerList
51
+              sid={sid1}
44
               request={getTaIssue}
52
               request={getTaIssue}
45
               params={{ mine }}
53
               params={{ mine }}
46
               renderItem={(item) => (
54
               renderItem={(item) => (
52
         <Tab title="未交办" style={tabStyle}>
60
         <Tab title="未交办" style={tabStyle}>
53
         {active == 1 && (
61
         {active == 1 && (
54
           <PowerList
62
           <PowerList
63
+            sid={sid2}
55
             request={getTaIssue}
64
             request={getTaIssue}
56
             params={{ mine, bizStatus: PROCESS_START }}
65
             params={{ mine, bizStatus: PROCESS_START }}
57
             renderItem={(item) => (
66
             renderItem={(item) => (
63
         <Tab title="已交办" style={tabStyle}>
72
         <Tab title="已交办" style={tabStyle}>
64
           {active == 2 && (
73
           {active == 2 && (
65
           <PowerList
74
           <PowerList
75
+            sid={sid3}
66
             request={getTaIssue}
76
             request={getTaIssue}
67
             params={{ mine, bizStatus: PROCESS_ASSIGNED }}
77
             params={{ mine, bizStatus: PROCESS_ASSIGNED }}
68
             renderItem={(item) => (
78
             renderItem={(item) => (
74
         <Tab title="已办结" style={tabStyle}>
84
         <Tab title="已办结" style={tabStyle}>
75
           {active == 3 && (
85
           {active == 3 && (
76
           <PowerList
86
           <PowerList
87
+            sid={sid4}
77
             request={getTaIssue}
88
             request={getTaIssue}
78
             params={{ mine, bizStatus: PROCESS_END }}
89
             params={{ mine, bizStatus: PROCESS_END }}
79
             renderItem={(item) => (
90
             renderItem={(item) => (
85
         <Tab title="已逾期" style={tabStyle}>
96
         <Tab title="已逾期" style={tabStyle}>
86
           {active == 4 && (
97
           {active == 4 && (
87
           <PowerList
98
           <PowerList
99
+            sid={sid5}
88
             request={getTaIssue}
100
             request={getTaIssue}
89
             params={{ mine, bizStatus: 'expired' }}
101
             params={{ mine, bizStatus: 'expired' }}
90
             renderItem={(item) => (
102
             renderItem={(item) => (
96
         <Tab title="已打回" style={tabStyle}>
108
         <Tab title="已打回" style={tabStyle}>
97
           {active == 5 && (
109
           {active == 5 && (
98
           <PowerList
110
           <PowerList
111
+            sid={sid6}
99
             request={getTaIssue}
112
             request={getTaIssue}
100
             params={{ mine, bizStatus: 'reject' }}
113
             params={{ mine, bizStatus: 'reject' }}
101
             renderItem={(item) => (
114
             renderItem={(item) => (

+ 5
- 0
src/pages/issue/list2/index.jsx View File

16
   overflow: "hidden",
16
   overflow: "hidden",
17
 };
17
 };
18
 
18
 
19
+const sid1 = Math.random().toString(36).substring(2, 8);
20
+const sid2 = Math.random().toString(36).substring(2, 8);
21
+
19
 export default (props) => {
22
 export default (props) => {
20
   const router = Taro.useRouter();
23
   const router = Taro.useRouter();
21
   const { title, bizStatus = "", mine = "" } = router.params;
24
   const { title, bizStatus = "", mine = "" } = router.params;
51
       <Tabs sticky>
54
       <Tabs sticky>
52
         <Tab title="督查员" style={tabStyle}>
55
         <Tab title="督查员" style={tabStyle}>
53
           <PowerList
56
           <PowerList
57
+            sid={sid1}
54
             request={getTaIssue}
58
             request={getTaIssue}
55
             params={{ bizStatus, mine, sourceType: "inspector", issueId }}
59
             params={{ bizStatus, mine, sourceType: "inspector", issueId }}
56
             renderItem={(item) => (
60
             renderItem={(item) => (
64
         </Tab>
68
         </Tab>
65
         <Tab title="市民" style={tabStyle}>
69
         <Tab title="市民" style={tabStyle}>
66
           <PowerList
70
           <PowerList
71
+            sid={sid2}
67
             request={getTaIssue}
72
             request={getTaIssue}
68
             params={{ bizStatus, mine, sourceType: "feedback" }}
73
             params={{ bizStatus, mine, sourceType: "feedback" }}
69
             renderItem={(item) => (
74
             renderItem={(item) => (

+ 4
- 0
src/pages/message/list/index.jsx View File

7
 import { useModel } from '@/store';
7
 import { useModel } from '@/store';
8
 import Card from './components/Card';
8
 import Card from './components/Card';
9
 
9
 
10
+const sid1 = Math.random().toString(36).substring(2, 8);
11
+// const sid2 = Math.random().toString(36).substring(2, 8);
12
+
10
 export default (props) => {
13
 export default (props) => {
11
   const { duty } = useModel('user');
14
   const { duty } = useModel('user');
12
   
15
   
13
   return (
16
   return (
14
     <Page>
17
     <Page>
15
       <PowerList
18
       <PowerList
19
+        sid={sid1}
16
         request={getTaMessage}
20
         request={getTaMessage}
17
         renderItem={(item) => (
21
         renderItem={(item) => (
18
           <Card key={item.msgId} item={item} duty={duty} />
22
           <Card key={item.msgId} item={item} duty={duty} />

+ 4
- 0
src/pages/notice/index.jsx View File

4
 import { getTaNotice } from '@/services/tanotice';
4
 import { getTaNotice } from '@/services/tanotice';
5
 import Card from './components/Card/index';
5
 import Card from './components/Card/index';
6
 
6
 
7
+const sid1 = Math.random().toString(36).substring(2, 8);
8
+// const sid2 = Math.random().toString(36).substring(2, 8);
9
+
7
 export default (props) => {
10
 export default (props) => {
8
 
11
 
9
   const [loading, setLoading] = React.useState(false);
12
   const [loading, setLoading] = React.useState(false);
11
   return (
14
   return (
12
     <Page tabBar="notice">
15
     <Page tabBar="notice">
13
       <PowerList
16
       <PowerList
17
+        sid={sid1}
14
         request={getTaNotice}
18
         request={getTaNotice}
15
         params={{status: 1}}
19
         params={{status: 1}}
16
         renderItem={(item) => (
20
         renderItem={(item) => (

+ 5
- 0
src/pages/org/issue/list/index.jsx View File

15
   overflow: "hidden",
15
   overflow: "hidden",
16
 };
16
 };
17
 
17
 
18
+const sid1 = Math.random().toString(36).substring(2, 8);
19
+const sid2 = Math.random().toString(36).substring(2, 8);
20
+
18
 export default (props) => {
21
 export default (props) => {
19
   const router = Taro.useRouter();
22
   const router = Taro.useRouter();
20
   const { title, bizStatus, color } = router.params;
23
   const { title, bizStatus, color } = router.params;
55
       <Tabs sticky>
58
       <Tabs sticky>
56
         <Tab title="督查员" style={tabStyle}>
59
         <Tab title="督查员" style={tabStyle}>
57
           <PowerList
60
           <PowerList
61
+            sid={sid1}
58
             request={getTaOrgIssue}
62
             request={getTaOrgIssue}
59
             params={{ bizStatus, sourceType: "inspector" ,issueId}}
63
             params={{ bizStatus, sourceType: "inspector" ,issueId}}
60
             renderItem={(item) => (
64
             renderItem={(item) => (
70
         </Tab>
74
         </Tab>
71
         <Tab title="市民" style={tabStyle}>
75
         <Tab title="市民" style={tabStyle}>
72
           <PowerList
76
           <PowerList
77
+            sid={sid2}
73
             request={getTaOrgIssue}
78
             request={getTaOrgIssue}
74
             params={{ bizStatus, sourceType: "feedback" }}
79
             params={{ bizStatus, sourceType: "feedback" }}
75
             renderItem={(item) => (
80
             renderItem={(item) => (

+ 4
- 0
src/pages/user/list/index.jsx View File

8
 import { getSysUser, deleteSysUser } from "@/services/sysuser";
8
 import { getSysUser, deleteSysUser } from "@/services/sysuser";
9
 import styles from "./index.module.less";
9
 import styles from "./index.module.less";
10
 
10
 
11
+const sid1 = Math.random().toString(36).substring(2, 8);
12
+// const sid2 = Math.random().toString(36).substring(2, 8);
13
+
11
 export default (props) => {
14
 export default (props) => {
12
   const [loading, setLoading] = React.useState(false);
15
   const [loading, setLoading] = React.useState(false);
13
   const listRef = React.useRef();
16
   const listRef = React.useRef();
52
       <view className={styles["user-warpper"]}>
55
       <view className={styles["user-warpper"]}>
53
         <view className={styles["user-warpper-list"]}>
56
         <view className={styles["user-warpper-list"]}>
54
           <PowerList
57
           <PowerList
58
+            sid={sid1}
55
             ref={listRef}
59
             ref={listRef}
56
             request={getSysUser}
60
             request={getSysUser}
57
             onLoadingChange={setLoading}
61
             onLoadingChange={setLoading}

+ 20
- 0
src/utils/tools.js View File

1
+
2
+// @fn 是对应请求数据
3
+// @ms 是用户多次触发事件的时间间隔 是一个毫秒数
4
+export function throttle(fn, ms = 800){
5
+  let flag = true;
6
+
7
+  return (...args) => {
8
+    console.log('-----flag----', flag);
9
+    if(!flag) return;
10
+
11
+    flag = false;
12
+    
13
+    const t = setTimeout(()=>{
14
+      clearTimeout(t);
15
+      flag = true
16
+    }, ms);
17
+
18
+    return fn(...args);
19
+  }
20
+}