张涛 2 년 전
부모
커밋
105a8d589f
5개의 변경된 파일217개의 추가작업 그리고 134개의 파일을 삭제
  1. 2
    2
      config/dev.js
  2. 63
    42
      src/components/PowerList/index.jsx
  3. 52
    33
      src/pages/apply/list/index.jsx
  4. 47
    29
      src/pages/issue/list2/index.jsx
  5. 53
    28
      src/pages/org/issue/list/index.jsx

+ 2
- 2
config/dev.js 파일 보기

@@ -3,8 +3,8 @@ module.exports = {
3 3
     NODE_ENV: '"development"',
4 4
   },
5 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 8
     AD_IMAGE: '"https://h5.njyunzhi.com/images/citizen_banner.png"',
9 9
     DEFAULT_POS: '"116.3476917447715,31.409912844296578"', // 霍山县人民政府 gcj02
10 10
     VERSION: '"1.1.13-20230325"',

+ 63
- 42
src/components/PowerList/index.jsx 파일 보기

@@ -1,13 +1,13 @@
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 7
 export default React.forwardRef((props, ref) => {
8 8
   const { request, params, renderItem, onLoadingChange, onDataChange } = props;
9 9
 
10
-  const pageSize = 20;
10
+  const pageSize = 5;
11 11
   const pageNumRef = React.useRef(1);
12 12
   const listRef = React.useRef([]);
13 13
   const [loading, setLoading] = React.useState(false);
@@ -20,47 +20,70 @@ export default React.forwardRef((props, ref) => {
20 20
     if (onLoadingChange) {
21 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 61
   const refresh = React.useCallback(() => {
52 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 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 80
   useShow(() => {
62 81
     refresh();
63
-  })
82
+  });
83
+  // 后加的
84
+  React.useEffect(() => {
85
+    onScrollToLower();
86
+  }, [onScrollToLower]);
64 87
 
65 88
   React.useEffect(() => {
66 89
     refresh();
@@ -70,7 +93,7 @@ export default React.forwardRef((props, ref) => {
70 93
     refresh,
71 94
     updateData: (dt) => setList(dt),
72 95
   }));
73
-  
96
+
74 97
   return (
75 98
     <PowerScrollView
76 99
       scrollY
@@ -80,11 +103,9 @@ export default React.forwardRef((props, ref) => {
80 103
       pageSize={pageSize}
81 104
       finished={finished}
82 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 109
     </PowerScrollView>
89
-  )
90
-})
110
+  );
111
+});

+ 52
- 33
src/pages/apply/list/index.jsx 파일 보기

@@ -1,36 +1,35 @@
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 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 17
 export default (props) => {
19
-
20 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 24
   React.useMemo(() => {
26 25
     if (title) {
27 26
       Taro.setNavigationBarTitle({ title });
28 27
     } else {
29
-      Taro.setNavigationBarTitle({ title: '申请列表' });
28
+      Taro.setNavigationBarTitle({ title: "申请列表" });
30 29
     }
31 30
   }, [title]);
32 31
 
33
-  const { user } = useModel('user');
32
+  const { user } = useModel("user");
34 33
 
35 34
   const onClick = (item) => {
36 35
     if (!user) return;
@@ -38,42 +37,62 @@ export default (props) => {
38 37
     if (!item.verifyDate) {
39 38
       if (duty != ROLE_MANAGER && duty != ROLE_ORG_MANAGER) {
40 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 42
       } else {
44 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 47
     } else {
49 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 58
   return (
56 59
     <Page>
60
+      <Search
61
+        // onChange={(e) => setIssueId(e.detail)}
62
+        placeholder="请输入问题单号"
63
+        onSearch={onSearch}
64
+        clearable
65
+      />
57 66
       <Tabs sticky>
58 67
         <Tab title="督查员" style={tabStyle}>
59 68
           <PowerList
60 69
             request={getTaIssueApply}
61
-            params={{ applyType, sourceType: 'inspector', duty }}
70
+            params={{ applyType, sourceType: "inspector", duty, issueId }}
62 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 80
         </Tab>
67 81
         <Tab title="市民" style={tabStyle}>
68 82
           <PowerList
69 83
             request={getTaIssueApply}
70
-            params={{ applyType, sourceType: 'feedback', duty }}
84
+            params={{ applyType, sourceType: "feedback", duty }}
71 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 94
         </Tab>
76 95
       </Tabs>
77 96
     </Page>
78
-  )
79
-}
97
+  );
98
+};

+ 47
- 29
src/pages/issue/list2/index.jsx 파일 보기

@@ -1,63 +1,81 @@
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 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 19
 export default (props) => {
20 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 23
   React.useMemo(() => {
24 24
     if (title) {
25 25
       Taro.setNavigationBarTitle({ title });
26 26
     } else {
27
-      Taro.setNavigationBarTitle({ title: '问题列表' });
27
+      Taro.setNavigationBarTitle({ title: "问题列表" });
28 28
     }
29 29
   }, [title]);
30 30
 
31
-  const { user } = useModel('user');
31
+  const { user } = useModel("user");
32 32
 
33 33
   const onClick = (item) => {
34 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 43
   return (
40 44
     <Page>
45
+      <Search
46
+        // onChange={(e) => setIssueId(e.detail)}
47
+        placeholder="请输入问题单号"
48
+        onSearch={onSearch}
49
+        clearable
50
+      />
41 51
       <Tabs sticky>
42 52
         <Tab title="督查员" style={tabStyle}>
43 53
           <PowerList
44 54
             request={getTaIssue}
45
-            params={{ bizStatus, mine, sourceType: 'inspector' }}
55
+            params={{ bizStatus, mine, sourceType: "inspector", issueId }}
46 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 64
         </Tab>
51 65
         <Tab title="市民" style={tabStyle}>
52 66
           <PowerList
53 67
             request={getTaIssue}
54
-            params={{ bizStatus, mine, sourceType: 'feedback' }}
68
+            params={{ bizStatus, mine, sourceType: "feedback" }}
55 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 77
         </Tab>
60 78
       </Tabs>
61 79
     </Page>
62
-  )
63
-}
80
+  );
81
+};

+ 53
- 28
src/pages/org/issue/list/index.jsx 파일 보기

@@ -1,31 +1,29 @@
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 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 18
 export default (props) => {
20
-
21 19
   const router = Taro.useRouter();
22 20
   const { title, bizStatus, color } = router.params;
23
-
21
+  const [issueId, setIssueId] = useState("");
24 22
   React.useMemo(() => {
25 23
     if (title) {
26 24
       Taro.setNavigationBarTitle({ title });
27 25
     } else {
28
-      Taro.setNavigationBarTitle({ title: '问题列表' });
26
+      Taro.setNavigationBarTitle({ title: "问题列表" });
29 27
     }
30 28
   }, [title]);
31 29
 
@@ -33,32 +31,59 @@ export default (props) => {
33 31
 
34 32
   const onClick = (item) => {
35 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 47
   return (
41 48
     <Page>
49
+      <Search
50
+        // onChange={(e) => setIssueId(e.detail)}
51
+        placeholder="请输入问题单号"
52
+        onSearch={onSearch}
53
+        clearable
54
+      />
42 55
       <Tabs sticky>
43 56
         <Tab title="督查员" style={tabStyle}>
44 57
           <PowerList
45 58
             request={getTaOrgIssue}
46
-            params={{ bizStatus, sourceType: 'inspector' }}
59
+            params={{ bizStatus, sourceType: "inspector" ,issueId}}
47 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 70
         </Tab>
52 71
         <Tab title="市民" style={tabStyle}>
53 72
           <PowerList
54 73
             request={getTaOrgIssue}
55
-            params={{ bizStatus, sourceType: 'feedback' }}
74
+            params={{ bizStatus, sourceType: "feedback" }}
56 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 85
         </Tab>
61 86
       </Tabs>
62 87
     </Page>
63
-  )
64
-}
88
+  );
89
+};