张涛 2 years ago
parent
commit
105a8d589f

+ 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"',

+ 63
- 42
src/components/PowerList/index.jsx View File

1
-import React from 'react';
2
-import Taro from '@tarojs/taro';
3
-import { View } from '@tarojs/components';
4
-import { PowerScrollView } from '@antmjs/vantui';
5
-import useShow from '@/layouts/hooks/useShow';
1
+import React, { useEffect } from "react";
2
+import Taro from "@tarojs/taro";
3
+import { View } from "@tarojs/components";
4
+import { PowerScrollView } from "@antmjs/vantui";
5
+import useShow from "@/layouts/hooks/useShow";
6
 
6
 
7
 export default React.forwardRef((props, ref) => {
7
 export default React.forwardRef((props, ref) => {
8
   const { request, params, renderItem, onLoadingChange, onDataChange } = props;
8
   const { request, params, renderItem, onLoadingChange, onDataChange } = props;
9
 
9
 
10
-  const pageSize = 20;
10
+  const pageSize = 5;
11
   const pageNumRef = React.useRef(1);
11
   const pageNumRef = React.useRef(1);
12
   const listRef = React.useRef([]);
12
   const listRef = React.useRef([]);
13
   const [loading, setLoading] = React.useState(false);
13
   const [loading, setLoading] = React.useState(false);
20
     if (onLoadingChange) {
20
     if (onLoadingChange) {
21
       onLoadingChange(val);
21
       onLoadingChange(val);
22
     }
22
     }
23
-  }
23
+  };
24
 
24
 
25
-  const queryData = React.useCallback((options = {}) => {
26
-    return new Promise((resolve, reject) => {
27
-      changeLoading(true);
28
-      request({
29
-        pageSize,
30
-        ...(params || {}),
31
-        ...options
32
-      }).then((res) => {
33
-        const { records, current, pages } = res;
25
+  const queryData = React.useCallback(
26
+    (options = {}) => {
27
+      return new Promise((resolve, reject) => {
28
+        changeLoading(true);
29
+        request({
30
+          pageSize,
31
+          ...(params || {}),
32
+          ...options,
33
+        })
34
+          .then((res) => {
35
+            const { records, current, pages } = res;
34
 
36
 
35
-        let dataset = current == 1 ? records || [] : listRef.current.concat(records || [])
36
-        if (onDataChange) {
37
-          dataset = onDataChange(dataset)
38
-        }
39
-        setList(dataset);
37
+            let dataset =
38
+              current == 1
39
+                ? records || []
40
+                : listRef.current.concat(records || []);
41
+            if (onDataChange) {
42
+              dataset = onDataChange(dataset);
43
+            }
44
+            setList(dataset);
40
 
45
 
41
-        setFinished(current >= pages);
42
-        changeLoading(false);
43
-        resolve();
44
-      }).catch((err) => {
45
-        changeLoading(false);
46
-        reject(err);
46
+            setFinished(current >= pages);
47
+            console.log("onScrollToLower\n   " + current >= pages);
48
+
49
+            changeLoading(false);
50
+            resolve();
51
+          })
52
+          .catch((err) => {
53
+            changeLoading(false);
54
+            reject(err);
55
+          });
47
       });
56
       });
48
-    });
49
-  }, [request, params]);
57
+    },
58
+    [request, params]
59
+  );
50
 
60
 
51
   const refresh = React.useCallback(() => {
61
   const refresh = React.useCallback(() => {
52
     pageNumRef.current = 1;
62
     pageNumRef.current = 1;
53
-    queryData({pageNum : pageNumRef.current});
63
+    // setFinished(true)
64
+    queryData({ pageNum: pageNumRef.current });
65
+    console.log("refresh" + pageNumRef.current);
66
+    console.log("refresh\n  " + finished);
54
   }, [queryData]);
67
   }, [queryData]);
55
 
68
 
56
-  const onScrollToLower = React.useCallback((event = 0, isRefresh = false) => {
57
-    pageNumRef.current += 1;
58
-    return queryData({pageNum : pageNumRef.current});
59
-  }, [queryData]);
69
+  const onScrollToLower = React.useCallback(
70
+    (event = 0, isRefresh = false) => {
71
+      console.log("onScrollToLower" + pageNumRef.current);
72
+      console.log("onScrollToLower\n   " + finished);
73
+      pageNumRef.current += 1;
74
+      queryData({ pageNum: pageNumRef.current });
75
+      // setFinished(isRefresh)
76
+    },
77
+    [queryData]
78
+  );
60
 
79
 
61
   useShow(() => {
80
   useShow(() => {
62
     refresh();
81
     refresh();
63
-  })
82
+  });
83
+  // 后加的
84
+  React.useEffect(() => {
85
+    onScrollToLower();
86
+  }, [onScrollToLower]);
64
 
87
 
65
   React.useEffect(() => {
88
   React.useEffect(() => {
66
     refresh();
89
     refresh();
70
     refresh,
93
     refresh,
71
     updateData: (dt) => setList(dt),
94
     updateData: (dt) => setList(dt),
72
   }));
95
   }));
73
-  
96
+
74
   return (
97
   return (
75
     <PowerScrollView
98
     <PowerScrollView
76
       scrollY
99
       scrollY
80
       pageSize={pageSize}
103
       pageSize={pageSize}
81
       finished={finished}
104
       finished={finished}
82
       onScrollToLower={onScrollToLower}
105
       onScrollToLower={onScrollToLower}
83
-      style={{ height: '100%', overflowY: 'auto' }}
106
+      style={{ height: "100%", overflowY: "auto" }}
84
     >
107
     >
85
-      {
86
-        list.map(renderItem)
87
-      }
108
+      {list.map(renderItem)}
88
     </PowerScrollView>
109
     </PowerScrollView>
89
-  )
90
-})
110
+  );
111
+});

+ 52
- 33
src/pages/apply/list/index.jsx View File

1
-import React from 'react';
2
-import Taro from '@tarojs/taro';
3
-import { View } from '@tarojs/components';
4
-import { Tab, Tabs } from '@antmjs/vantui';
5
-import Page from '@/layouts/index';
6
-import PowerList from '@/components/PowerList';
7
-import Card from '@/components/IssueCard';
8
-import { getTaIssueApply } from '@/services/taissueapply';
9
-import { ROLE_MANAGER, ROLE_ORG_MANAGER } from '@/utils/user';
10
-import { useModel } from '@/store';
1
+import React, { useState } from "react";
2
+import Taro from "@tarojs/taro";
3
+import { Tab, Tabs, Search } from "@antmjs/vantui";
4
+import Page from "@/layouts/index";
5
+import PowerList from "@/components/PowerList";
6
+import Card from "@/components/IssueCard";
7
+import { getTaIssueApply } from "@/services/taissueapply";
8
+import { ROLE_MANAGER, ROLE_ORG_MANAGER } from "@/utils/user";
9
+import { useModel } from "@/store";
11
 
10
 
12
 const tabStyle = {
11
 const tabStyle = {
13
-  overflow: 'hidden',
14
-  height: 'calc(100vh - 45px)',
15
-  overflow: 'hidden',
16
-}
12
+  overflow: "hidden",
13
+  height: "calc(100vh - 45px)",
14
+  overflow: "hidden",
15
+};
17
 
16
 
18
 export default (props) => {
17
 export default (props) => {
19
-
20
   const router = Taro.useRouter();
18
   const router = Taro.useRouter();
21
-  const { title, applyType = '' } = router.params;
19
+  const { title, applyType = "" } = router.params;
20
+  const [issueId, setIssueId] = useState("");
22
 
21
 
23
-  const { duty } = useModel('user');
22
+  const { duty } = useModel("user");
24
 
23
 
25
   React.useMemo(() => {
24
   React.useMemo(() => {
26
     if (title) {
25
     if (title) {
27
       Taro.setNavigationBarTitle({ title });
26
       Taro.setNavigationBarTitle({ title });
28
     } else {
27
     } else {
29
-      Taro.setNavigationBarTitle({ title: '申请列表' });
28
+      Taro.setNavigationBarTitle({ title: "申请列表" });
30
     }
29
     }
31
   }, [title]);
30
   }, [title]);
32
 
31
 
33
-  const { user } = useModel('user');
32
+  const { user } = useModel("user");
34
 
33
 
35
   const onClick = (item) => {
34
   const onClick = (item) => {
36
     if (!user) return;
35
     if (!user) return;
38
     if (!item.verifyDate) {
37
     if (!item.verifyDate) {
39
       if (duty != ROLE_MANAGER && duty != ROLE_ORG_MANAGER) {
38
       if (duty != ROLE_MANAGER && duty != ROLE_ORG_MANAGER) {
40
         Taro.navigateTo({
39
         Taro.navigateTo({
41
-          url: `/pages/apply/detail/index?id=${item.applyId}&issueId=${item.issueId}&applyType=${item.applyType}`
42
-        })
40
+          url: `/pages/apply/detail/index?id=${item.applyId}&issueId=${item.issueId}&applyType=${item.applyType}`,
41
+        });
43
       } else {
42
       } else {
44
         Taro.navigateTo({
43
         Taro.navigateTo({
45
-          url: `/pages/apply/verify/index?id=${item.applyId}&issueId=${item.issueId}&applyType=${item.applyType}`
46
-        })
44
+          url: `/pages/apply/verify/index?id=${item.applyId}&issueId=${item.issueId}&applyType=${item.applyType}`,
45
+        });
47
       }
46
       }
48
     } else {
47
     } else {
49
       Taro.navigateTo({
48
       Taro.navigateTo({
50
-        url: `/pages/apply/detail/index?id=${item.applyId}&issueId=${item.issueId}&applyType=${item.applyType}`
51
-      })
49
+        url: `/pages/apply/detail/index?id=${item.applyId}&issueId=${item.issueId}&applyType=${item.applyType}`,
50
+      });
52
     }
51
     }
53
-  }
54
-
52
+  };
53
+  const onSearch = (e) => {
54
+    const { value } = e.target;
55
+    console.log(value);
56
+    setIssueId(value);
57
+  };
55
   return (
58
   return (
56
     <Page>
59
     <Page>
60
+      <Search
61
+        // onChange={(e) => setIssueId(e.detail)}
62
+        placeholder="请输入问题单号"
63
+        onSearch={onSearch}
64
+        clearable
65
+      />
57
       <Tabs sticky>
66
       <Tabs sticky>
58
         <Tab title="督查员" style={tabStyle}>
67
         <Tab title="督查员" style={tabStyle}>
59
           <PowerList
68
           <PowerList
60
             request={getTaIssueApply}
69
             request={getTaIssueApply}
61
-            params={{ applyType, sourceType: 'inspector', duty }}
70
+            params={{ applyType, sourceType: "inspector", duty, issueId }}
62
             renderItem={(item) => (
71
             renderItem={(item) => (
63
-              <Card key={item.applyId} applyInfo={item} stText={title} onClick={() => onClick(item)} />
72
+              <Card
73
+                key={item.applyId}
74
+                applyInfo={item}
75
+                stText={title}
76
+                onClick={() => onClick(item)}
77
+              />
64
             )}
78
             )}
65
           />
79
           />
66
         </Tab>
80
         </Tab>
67
         <Tab title="市民" style={tabStyle}>
81
         <Tab title="市民" style={tabStyle}>
68
           <PowerList
82
           <PowerList
69
             request={getTaIssueApply}
83
             request={getTaIssueApply}
70
-            params={{ applyType, sourceType: 'feedback', duty }}
84
+            params={{ applyType, sourceType: "feedback", duty }}
71
             renderItem={(item) => (
85
             renderItem={(item) => (
72
-              <Card key={item.applyId} applyInfo={item} stText={title} onClick={() => onClick(item)} />
86
+              <Card
87
+                key={item.applyId}
88
+                applyInfo={item}
89
+                stText={title}
90
+                onClick={() => onClick(item)}
91
+              />
73
             )}
92
             )}
74
           />
93
           />
75
         </Tab>
94
         </Tab>
76
       </Tabs>
95
       </Tabs>
77
     </Page>
96
     </Page>
78
-  )
79
-}
97
+  );
98
+};

+ 47
- 29
src/pages/issue/list2/index.jsx View File

1
-import React from 'react';
2
-import Taro from '@tarojs/taro';
3
-import { View } from '@tarojs/components';
4
-import { Tab, Tabs } from '@antmjs/vantui';
5
-import Page from '@/layouts/index';
6
-import PowerList from '@/components/PowerList';
7
-import Card from '@/components/IssueCard';
8
-import { getTaIssue } from '@/services/taissue';
9
-import { ROLE_MANAGER } from '@/utils/user';
10
-import { useModel } from '@/store';
11
-import { getIssueStatus } from '@/utils/biz';
1
+import React, { useState } from "react";
2
+import Taro from "@tarojs/taro";
3
+import { View } from "@tarojs/components";
4
+import { Tab, Tabs, Search } from "@antmjs/vantui";
5
+import Page from "@/layouts/index";
6
+import PowerList from "@/components/PowerList";
7
+import Card from "@/components/IssueCard";
8
+import { getTaIssue } from "@/services/taissue";
9
+import { ROLE_MANAGER } from "@/utils/user";
10
+import { useModel } from "@/store";
11
+import { getIssueStatus } from "@/utils/biz";
12
 
12
 
13
 const tabStyle = {
13
 const tabStyle = {
14
-  overflow: 'hidden',
15
-  height: 'calc(100vh - 45px)',
16
-  overflow: 'hidden',
17
-}
14
+  overflow: "hidden",
15
+  height: "calc(100vh - 45px)",
16
+  overflow: "hidden",
17
+};
18
 
18
 
19
 export default (props) => {
19
 export default (props) => {
20
   const router = Taro.useRouter();
20
   const router = Taro.useRouter();
21
-  const { title, bizStatus = '', mine = '' } = router.params;
22
-
21
+  const { title, bizStatus = "", mine = "" } = router.params;
22
+  const [issueId, setIssueId] = useState("");
23
   React.useMemo(() => {
23
   React.useMemo(() => {
24
     if (title) {
24
     if (title) {
25
       Taro.setNavigationBarTitle({ title });
25
       Taro.setNavigationBarTitle({ title });
26
     } else {
26
     } else {
27
-      Taro.setNavigationBarTitle({ title: '问题列表' });
27
+      Taro.setNavigationBarTitle({ title: "问题列表" });
28
     }
28
     }
29
   }, [title]);
29
   }, [title]);
30
 
30
 
31
-  const { user } = useModel('user');
31
+  const { user } = useModel("user");
32
 
32
 
33
   const onClick = (item) => {
33
   const onClick = (item) => {
34
     Taro.navigateTo({
34
     Taro.navigateTo({
35
-      url: `/pages/issue/edit/index?id=${item.issueId}`
36
-    })
37
-  }
38
-
35
+      url: `/pages/issue/edit/index?id=${item.issueId}`,
36
+    });
37
+  };
38
+  const onSearch = (e) => {
39
+    const { value } = e.target;
40
+    console.log(value);
41
+    setIssueId(value);
42
+  };
39
   return (
43
   return (
40
     <Page>
44
     <Page>
45
+      <Search
46
+        // onChange={(e) => setIssueId(e.detail)}
47
+        placeholder="请输入问题单号"
48
+        onSearch={onSearch}
49
+        clearable
50
+      />
41
       <Tabs sticky>
51
       <Tabs sticky>
42
         <Tab title="督查员" style={tabStyle}>
52
         <Tab title="督查员" style={tabStyle}>
43
           <PowerList
53
           <PowerList
44
             request={getTaIssue}
54
             request={getTaIssue}
45
-            params={{ bizStatus, mine, sourceType: 'inspector' }}
55
+            params={{ bizStatus, mine, sourceType: "inspector", issueId }}
46
             renderItem={(item) => (
56
             renderItem={(item) => (
47
-              <Card key={item.issueId} issue={item} onClick={() => onClick(item)} />
57
+              <Card
58
+                key={item.issueId}
59
+                issue={item}
60
+                onClick={() => onClick(item)}
61
+              />
48
             )}
62
             )}
49
           />
63
           />
50
         </Tab>
64
         </Tab>
51
         <Tab title="市民" style={tabStyle}>
65
         <Tab title="市民" style={tabStyle}>
52
           <PowerList
66
           <PowerList
53
             request={getTaIssue}
67
             request={getTaIssue}
54
-            params={{ bizStatus, mine, sourceType: 'feedback' }}
68
+            params={{ bizStatus, mine, sourceType: "feedback" }}
55
             renderItem={(item) => (
69
             renderItem={(item) => (
56
-              <Card key={item.issueId} issue={item} onClick={() => onClick(item)} />
70
+              <Card
71
+                key={item.issueId}
72
+                issue={item}
73
+                onClick={() => onClick(item)}
74
+              />
57
             )}
75
             )}
58
           />
76
           />
59
         </Tab>
77
         </Tab>
60
       </Tabs>
78
       </Tabs>
61
     </Page>
79
     </Page>
62
-  )
63
-}
80
+  );
81
+};

+ 53
- 28
src/pages/org/issue/list/index.jsx View File

1
-import React from 'react';
2
-import Taro from '@tarojs/taro';
3
-import { View } from '@tarojs/components';
4
-import { Tab, Tabs } from '@antmjs/vantui';
5
-import Page from '@/layouts/index';
6
-import PowerList from '@/components/PowerList';
7
-import Card from '@/components/IssueCard';
8
-import { getTaOrgIssue } from '@/services/taorgissue';
9
-import { ROLE_MANAGER } from '@/utils/user';
10
-import { useModel } from '@/store';
11
-import { getIssueStatus } from '@/utils/biz';
1
+import React, { useState } from "react";
2
+import Taro from "@tarojs/taro";
3
+import { Tab, Tabs, Search } from "@antmjs/vantui";
4
+import Page from "@/layouts/index";
5
+import PowerList from "@/components/PowerList";
6
+import Card from "@/components/IssueCard";
7
+import { getTaOrgIssue } from "@/services/taorgissue";
8
+import { ROLE_MANAGER } from "@/utils/user";
9
+import { useModel } from "@/store";
10
+import { getIssueStatus } from "@/utils/biz";
12
 
11
 
13
 const tabStyle = {
12
 const tabStyle = {
14
-  overflow: 'hidden',
15
-  height: 'calc(100vh - 45px)',
16
-  overflow: 'hidden',
17
-}
13
+  overflow: "hidden",
14
+  height: "calc(100vh - 45px)",
15
+  overflow: "hidden",
16
+};
18
 
17
 
19
 export default (props) => {
18
 export default (props) => {
20
-
21
   const router = Taro.useRouter();
19
   const router = Taro.useRouter();
22
   const { title, bizStatus, color } = router.params;
20
   const { title, bizStatus, color } = router.params;
23
-
21
+  const [issueId, setIssueId] = useState("");
24
   React.useMemo(() => {
22
   React.useMemo(() => {
25
     if (title) {
23
     if (title) {
26
       Taro.setNavigationBarTitle({ title });
24
       Taro.setNavigationBarTitle({ title });
27
     } else {
25
     } else {
28
-      Taro.setNavigationBarTitle({ title: '问题列表' });
26
+      Taro.setNavigationBarTitle({ title: "问题列表" });
29
     }
27
     }
30
   }, [title]);
28
   }, [title]);
31
 
29
 
33
 
31
 
34
   const onClick = (item) => {
32
   const onClick = (item) => {
35
     Taro.navigateTo({
33
     Taro.navigateTo({
36
-      url: `/pages/org/issue/detail/index?id=${item.issueId}`
37
-    })
38
-  }
39
-
34
+      url: `/pages/org/issue/detail/index?id=${item.issueId}`,
35
+    });
36
+  };
37
+  const onSearch = (e) => {
38
+    const {value}=e.target
39
+    console.log(value)
40
+    setIssueId(value)
41
+  };
42
+  // const searchAction = (e) => {
43
+  //   console.log("搜索");
44
+  //   console.log(e)
45
+  //   // setIssueId(e.target.value)
46
+  // };
40
   return (
47
   return (
41
     <Page>
48
     <Page>
49
+      <Search
50
+        // onChange={(e) => setIssueId(e.detail)}
51
+        placeholder="请输入问题单号"
52
+        onSearch={onSearch}
53
+        clearable
54
+      />
42
       <Tabs sticky>
55
       <Tabs sticky>
43
         <Tab title="督查员" style={tabStyle}>
56
         <Tab title="督查员" style={tabStyle}>
44
           <PowerList
57
           <PowerList
45
             request={getTaOrgIssue}
58
             request={getTaOrgIssue}
46
-            params={{ bizStatus, sourceType: 'inspector' }}
59
+            params={{ bizStatus, sourceType: "inspector" ,issueId}}
47
             renderItem={(item) => (
60
             renderItem={(item) => (
48
-              <Card key={item.issueId} issue={item} stText={title} color={color} onClick={() => onClick(item)} />
61
+              <Card
62
+                key={item.issueId}
63
+                issue={item}
64
+                stText={title}
65
+                color={color}
66
+                onClick={() => onClick(item)}
67
+              />
49
             )}
68
             )}
50
           />
69
           />
51
         </Tab>
70
         </Tab>
52
         <Tab title="市民" style={tabStyle}>
71
         <Tab title="市民" style={tabStyle}>
53
           <PowerList
72
           <PowerList
54
             request={getTaOrgIssue}
73
             request={getTaOrgIssue}
55
-            params={{ bizStatus, sourceType: 'feedback' }}
74
+            params={{ bizStatus, sourceType: "feedback" }}
56
             renderItem={(item) => (
75
             renderItem={(item) => (
57
-              <Card key={item.issueId} issue={item} stText={title} color={color} onClick={() => onClick(item)} />
76
+              <Card
77
+                key={item.issueId}
78
+                issue={item}
79
+                stText={title}
80
+                color={color}
81
+                onClick={() => onClick(item)}
82
+              />
58
             )}
83
             )}
59
           />
84
           />
60
         </Tab>
85
         </Tab>
61
       </Tabs>
86
       </Tabs>
62
     </Page>
87
     </Page>
63
-  )
64
-}
88
+  );
89
+};