张涛 1年前
父节点
当前提交
fefc7ce3d6
共有 54 个文件被更改,包括 1159 次插入1862 次删除
  1. 1
    1
      index.html
  2. 1
    1
      public/config.js
  3. 二进制
      public/mandatoryleave.xlsx
  4. 二进制
      public/rotation.xlsx
  5. 5
    1
      src/layouts/AuthLayout/style.less
  6. 99
    0
      src/pages/dictionary/line/components/Form.jsx
  7. 162
    0
      src/pages/dictionary/line/index.jsx
  8. 23
    0
      src/pages/dictionary/line/styles.module.less
  9. 101
    0
      src/pages/dictionary/scene/components/Form.jsx
  10. 162
    0
      src/pages/dictionary/scene/index.jsx
  11. 23
    0
      src/pages/dictionary/scene/styles.module.less
  12. 0
    119
      src/pages/home/Detail.jsx
  13. 0
    34
      src/pages/home/History.jsx
  14. 0
    144
      src/pages/home/index.jsx
  15. 0
    11
      src/pages/home/style.less
  16. 0
    143
      src/pages/mandatoryleave/Edit.jsx
  17. 0
    222
      src/pages/mandatoryleave/index.jsx
  18. 6
    0
      src/pages/process/approval/index.jsx
  19. 6
    0
      src/pages/process/list/index.jsx
  20. 6
    0
      src/pages/process/look/index.jsx
  21. 6
    0
      src/pages/process/notice/index.jsx
  22. 6
    0
      src/pages/project/archive/index.jsx
  23. 6
    0
      src/pages/project/list/edit.jsx
  24. 60
    0
      src/pages/project/list/index.jsx
  25. 6
    0
      src/pages/project/measurement/index.jsx
  26. 6
    0
      src/pages/project/process/index.jsx
  27. 0
    58
      src/pages/rotationManage/compatibilityQuery/components/SearchResult.jsx
  28. 0
    144
      src/pages/rotationManage/compatibilityQuery/index.jsx
  29. 0
    227
      src/pages/rotationManage/rotationList/Edit.jsx
  30. 0
    261
      src/pages/rotationManage/rotationList/index.jsx
  31. 0
    79
      src/pages/system/Incompatible/Edit.jsx
  32. 0
    80
      src/pages/system/Incompatible/index.jsx
  33. 1
    1
      src/pages/system/org/index.jsx
  34. 6
    6
      src/pages/system/position/index.jsx
  35. 4
    4
      src/pages/system/user/Edit.jsx
  36. 34
    0
      src/routes/model/dictionary.jsx
  37. 58
    0
      src/routes/model/process.jsx
  38. 64
    0
      src/routes/model/project.jsx
  39. 83
    0
      src/routes/model/system.jsx
  40. 13
    214
      src/routes/routes.jsx
  41. 26
    0
      src/service/taAttach.js
  42. 0
    31
      src/service/taIncompatible.js
  43. 0
    26
      src/service/taMandatoryLeave.js
  44. 0
    26
      src/service/taMessage.js
  45. 26
    0
      src/service/taNode.js
  46. 26
    0
      src/service/taProject.js
  47. 26
    0
      src/service/taProjectReport.js
  48. 0
    26
      src/service/taRotation.js
  49. 26
    0
      src/service/taSourceAttach.js
  50. 26
    0
      src/service/tdLine.js
  51. 26
    0
      src/service/tdSceneMgt.js
  52. 26
    0
      src/service/tdTemplate.js
  53. 2
    2
      src/store/system.js
  54. 1
    1
      vite.config.js

+ 1
- 1
index.html 查看文件

@@ -6,7 +6,7 @@
6 6
   <link rel="icon" type="image/svg+xml" href="https://yz-crm.oss-cn-nanjing.aliyuncs.com/images/favicon.ico" />
7 7
   <meta name="viewport" content="width=device-width, initial-scale=1.0" />
8 8
   <script src="./config.js"></script>
9
-  <title>法规部不相容岗位系统</title>
9
+  <title>个金项目管理</title>
10 10
 </head>
11 11
 
12 12
 <body>

+ 1
- 1
public/config.js 查看文件

@@ -4,7 +4,7 @@ var AUTH_RUL = "http://192.168.89.13:3000";
4 4
 
5 5
 // var AUTH_LOGIN_PAGE = `${AUTH_RUL}/#/login`;
6 6
 
7
-var APPID = "sms_platform";
7
+var APPID = "project";
8 8
 
9 9
 var SERVER_BASE = "/api";
10 10
 

二进制
public/mandatoryleave.xlsx 查看文件


二进制
public/rotation.xlsx 查看文件


+ 5
- 1
src/layouts/AuthLayout/style.less 查看文件

@@ -80,7 +80,11 @@
80 80
   scrollbar-width: none;
81 81
   -ms-overflow-style: none;
82 82
 
83
-  &::--webkit-scrollbar {
83
+  // &::--webkit-scrollbar {
84
+  //   display: none;
85
+  // }
86
+
87
+  &::webkit-scrollbar{
84 88
     display: none;
85 89
   }
86 90
 

+ 99
- 0
src/pages/dictionary/line/components/Form.jsx 查看文件

@@ -0,0 +1,99 @@
1
+import React from "react";
2
+import { Button, Form, Input, Select } from "antd";
3
+import useBool from "@/utils/hooks/useBool";
4
+import { postTdLine, putTdLine } from "@/service/tdLine";
5
+import { formItemLayout, tailFormItemLayout } from "@/utils/form";
6
+
7
+export default (props) => {
8
+  const { row, list, parentId, onChange } = props;
9
+
10
+  const [submiting, startSubmit, cancelSubmit] = useBool();
11
+  const [form] = Form.useForm();
12
+
13
+  const onFinish = (values) => {
14
+    startSubmit();
15
+
16
+    if (row?.lineId) {
17
+      // 修改
18
+      putTdLine(row?.lineId, values)
19
+        .then((res) => {
20
+          cancelSubmit();
21
+          onChange(res);
22
+        })
23
+        .catch(() => {
24
+          cancelSubmit();
25
+        });
26
+    } else {
27
+      // 新增
28
+      postTdLine(values)
29
+        .then((res) => {
30
+          cancelSubmit();
31
+          onChange(res);
32
+        })
33
+        .catch(() => {
34
+          cancelSubmit();
35
+        });
36
+    }
37
+  };
38
+
39
+  React.useEffect(() => {
40
+    form.resetFields();
41
+    if (row) {
42
+      form.setFieldsValue(row);
43
+    }
44
+    form.setFieldValue("parentId", parentId);
45
+  }, [row, parentId]);
46
+
47
+  return (
48
+    <Form
49
+      form={form}
50
+      {...formItemLayout}
51
+      style={{ maxWidth: "800px" }}
52
+      onFinish={onFinish}
53
+    >
54
+      <Form.Item
55
+        name="lineName"
56
+        label="条线名称"
57
+        rules={[{ required: true, message: "请填写条线名称" }]}
58
+        getValueFromEvent={(e) => e.target.value.replace(/(^\s*)|(\s*$)/g, "")}
59
+      >
60
+        <Input />
61
+      </Form.Item>
62
+      {/* <Form.Item
63
+        name="orgCode"
64
+        label="机构号"
65
+        rules={[{ required: true, message: "请填写机构号" }]}
66
+        getValueFromEvent={(e) => e.target.value.replace(/(^\s*)|(\s*$)/g, "")}
67
+      >
68
+        <Input />
69
+      </Form.Item> */}
70
+      <Form.Item name="parentId" label="上级单位">
71
+        <Select disabled={true}>
72
+          {(list || []).map((x) => (
73
+            <Select.Option key={x.lineId}>{x.lineName}</Select.Option>
74
+          ))}
75
+        </Select>
76
+      </Form.Item>
77
+
78
+      <Form.Item name="status" label="状态">
79
+        <Select style={{ width: "100%" }} placeholder="请选择状态">
80
+          <Select.Option value={0}>不正常</Select.Option>
81
+          <Select.Option value={1}>正常</Select.Option>
82
+        </Select>
83
+      </Form.Item>
84
+
85
+      {/* <Form.Item name="isSeven" label="7天全班">
86
+        <Select style={{ width: "100%" }} placeholder="请选择">
87
+          <Select.Option value={0}>否</Select.Option>
88
+          <Select.Option value={1}>是</Select.Option>
89
+        </Select>
90
+      </Form.Item> */}
91
+
92
+      <Form.Item {...tailFormItemLayout}>
93
+        <Button loading={submiting} type="primary" htmlType="submit">
94
+          保存
95
+        </Button>
96
+      </Form.Item>
97
+    </Form>
98
+  );
99
+};

+ 162
- 0
src/pages/dictionary/line/index.jsx 查看文件

@@ -0,0 +1,162 @@
1
+import React from "react";
2
+import { PlusOutlined, DeleteOutlined } from "@ant-design/icons";
3
+import { Button, Card, Row, Col, Tree, Tooltip, Popconfirm, Spin } from "antd";
4
+import Page from "@/components/Page";
5
+import { getTdLineList, deleteTdLine } from "@/service/tdLine";
6
+import { arr2Tree } from "@/utils/array";
7
+import useBool from "@/utils/hooks/useBool";
8
+import Form from "./components/Form";
9
+
10
+import styles from "./styles.module.less";
11
+
12
+export default (props) => {
13
+  const [loading, startLoading, stopLoading] = useBool();
14
+  const [list, setList] = React.useState([]);
15
+  const [current, setCurrernt] = React.useState({});
16
+  const [parentId, setParentId] = React.useState();
17
+
18
+  const [parentList, treeData] = React.useMemo(() => {
19
+    const plist = [{ lineId: "-1", lineName: "根节点" }].concat(list);
20
+    const [tree] = arr2Tree(
21
+      (list || []).map((x) => ({
22
+        title: x.lineName,
23
+        key: x.lineId,
24
+        parentId: x.parentId,
25
+        raw: x,
26
+      }))
27
+    );
28
+    return [plist, tree];
29
+  }, [list]);
30
+
31
+  const changeCurrent = (row) => {
32
+    setCurrernt(row);
33
+    setParentId(row?.parentId || "-1");
34
+  };
35
+
36
+  const onSelect = (selectedKeys, e) => {
37
+    changeCurrent(e.node.raw);
38
+  };
39
+
40
+  const onClick = (row) => {
41
+    changeCurrent(row);
42
+  };
43
+
44
+  const onAdd = (parent = "-1") => {
45
+    console.log(111)
46
+    const a={}
47
+    setParentId(parent);
48
+    setCurrernt(a);
49
+  };
50
+
51
+  const onDelete = (row) => {
52
+    deleteTdLine(row.lineId).then(() => {
53
+      queryList();
54
+    });
55
+  };
56
+
57
+  const queryList = React.useCallback(() => {
58
+    startLoading();
59
+    getTdLineList({ pageSize: 500 }).then((res) => {
60
+      setList(res.records || []);
61
+      stopLoading();
62
+      // changeCurrent();
63
+      // const list = [];
64
+    });
65
+  }, []);
66
+
67
+  const onFormChange = () => {
68
+    // 重新查一次数据
69
+    queryList();
70
+  };
71
+
72
+  React.useEffect(() => {
73
+    queryList();
74
+  }, []);
75
+
76
+  return (
77
+    <Page>
78
+      <Row gutter={24}    className={styles.treeRow}>
79
+        <Col span={8} style={{ overflow: "hidden" }}>
80
+          <Card
81
+         
82
+            title="条线"
83
+            onSelect={onSelect}
84
+            extra={
85
+              <Button type="link" onClick={() => onAdd()}>
86
+                新增
87
+              </Button>
88
+            }
89
+          >
90
+            <Spin spinning={loading}>
91
+              <Tree
92
+                height="100%"
93
+                blockNode
94
+                defaultExpandParent={true}
95
+                treeData={treeData}
96
+                // onSelect={onSelect}
97
+                titleRender={(node) => (
98
+                  <div
99
+                    style={{ display: "flex" }}
100
+                    onClick={(e) => e.stopPropagation()}
101
+                  >
102
+                    <div
103
+                      style={{
104
+                        lineHeight: "32px",
105
+                        flex: 1,
106
+                        width: 0,
107
+                      }}
108
+                      onClick={() => onClick(node.raw)}
109
+                    >
110
+                      <div
111
+                        style={{
112
+                          overflow: "hidden",
113
+                          whiteSpace: "nowrap",
114
+                          textOverflow: "ellipsis",
115
+                        }}
116
+                      >
117
+                        {node.title}
118
+                      </div>
119
+                    </div>
120
+                    <div style={{ width: "80px", flex: "none" }}>
121
+                      <Tooltip title="新增子节点">
122
+                        <Button
123
+                          type="link"
124
+                          icon={<PlusOutlined />}
125
+                          onClick={() => onAdd(node.raw.lineId)}
126
+                        ></Button>
127
+                      </Tooltip>
128
+                      <Tooltip title="删除节点">
129
+                        <Popconfirm
130
+                          title="确认进行删除操作?"
131
+                          onConfirm={() => onDelete(node.raw)}
132
+                        >
133
+                          <Button
134
+                            type="link"
135
+                            danger
136
+                            icon={<DeleteOutlined />}
137
+                          ></Button>
138
+                        </Popconfirm>
139
+                      </Tooltip>
140
+                    </div>
141
+                  </div>
142
+                )}
143
+              />
144
+            </Spin>
145
+          </Card>
146
+        </Col>
147
+        <Col span={16}>
148
+          {parentId && (
149
+            <Card>
150
+              <Form
151
+                row={current}
152
+                parentId={parentId}
153
+                list={parentList}
154
+                onChange={onFormChange}
155
+              />
156
+            </Card>
157
+          )}
158
+        </Col>
159
+      </Row>
160
+    </Page>
161
+  );
162
+};

+ 23
- 0
src/pages/dictionary/line/styles.module.less 查看文件

@@ -0,0 +1,23 @@
1
+.treeRow {
2
+    overflow: hidden;
3
+    max-height: 100%;
4
+    // min-height: 0%;
5
+    min-height: -webkit-fill-available;
6
+    min-height: -moz-available; /* Firefox */
7
+    :global(.ant-col-8) {
8
+        // height: 100%;
9
+        // overflow: hidden;
10
+
11
+        :global(.ant-card) {
12
+            height: 70% !important;
13
+            overflow: hidden;
14
+
15
+            :global(.ant-card-body) {
16
+                height: 90% !important;
17
+                overflow-y: auto;
18
+            }
19
+        }
20
+    }
21
+
22
+
23
+}

+ 101
- 0
src/pages/dictionary/scene/components/Form.jsx 查看文件

@@ -0,0 +1,101 @@
1
+import React from "react";
2
+import { Button, Form, Input, Select } from "antd";
3
+import useBool from "@/utils/hooks/useBool";
4
+import { postTdSceneMgt, putTdSceneMgt } from "@/service/tdSceneMgt";
5
+import { formItemLayout, tailFormItemLayout } from "@/utils/form";
6
+
7
+export default (props) => {
8
+  const { row, list, parentId, onChange } = props;
9
+
10
+  const [submiting, startSubmit, cancelSubmit] = useBool();
11
+  const [form] = Form.useForm();
12
+
13
+  const onFinish = (values) => {
14
+    startSubmit();
15
+
16
+    if (row?.sceneId) {
17
+      // 修改
18
+      putTdSceneMgt(row?.sceneId, values)
19
+        .then((res) => {
20
+          cancelSubmit();
21
+          onChange(res);
22
+        })
23
+        .catch(() => {
24
+          cancelSubmit();
25
+        });
26
+    } else {
27
+      // 新增
28
+      postTdSceneMgt(values)
29
+        .then((res) => {
30
+          cancelSubmit();
31
+          onChange(res);
32
+        })
33
+        .catch(() => {
34
+          cancelSubmit();
35
+        });
36
+    }
37
+  };
38
+
39
+  React.useEffect(() => {
40
+    form.resetFields();
41
+    if (row) {
42
+      form.setFieldsValue(row);
43
+    }
44
+    form.setFieldValue("parentId", parentId);
45
+  }, [row, parentId]);
46
+  console.log(parentId);
47
+  console.log(list);
48
+  return (
49
+    <Form
50
+      form={form}
51
+      {...formItemLayout}
52
+      style={{ maxWidth: "800px" }}
53
+      onFinish={onFinish}
54
+    >
55
+      <Form.Item
56
+        name="sceneName"
57
+        label="场景名称"
58
+        rules={[{ required: true, message: "请填写机构名称" }]}
59
+        getValueFromEvent={(e) => e.target.value.replace(/(^\s*)|(\s*$)/g, "")}
60
+      >
61
+        <Input />
62
+      </Form.Item>
63
+      {/* <Form.Item
64
+        name="orgCode"
65
+        label="机构号"
66
+        rules={[{ required: true, message: "请填写机构号" }]}
67
+        getValueFromEvent={(e) => e.target.value.replace(/(^\s*)|(\s*$)/g, "")}
68
+      >
69
+        <Input />
70
+      </Form.Item> */}
71
+
72
+      <Form.Item name="parentId" label="上级单位">
73
+        <Select disabled={true}>
74
+          {(list || []).map((x) => (
75
+            <Select.Option key={x.sceneId}>{x.sceneName}</Select.Option>
76
+          ))}
77
+        </Select>
78
+      </Form.Item>
79
+
80
+      <Form.Item name="status" label="状态">
81
+        <Select style={{ width: "100%" }} placeholder="请选择状态">
82
+          <Select.Option value={0}>不正常</Select.Option>
83
+          <Select.Option value={1}>正常</Select.Option>
84
+        </Select>
85
+      </Form.Item>
86
+
87
+      {/* <Form.Item name="isSeven" label="7天全班">
88
+        <Select style={{ width: "100%" }} placeholder="请选择">
89
+          <Select.Option value={0}>否</Select.Option>
90
+          <Select.Option value={1}>是</Select.Option>
91
+        </Select>
92
+      </Form.Item> */}
93
+
94
+      <Form.Item {...tailFormItemLayout}>
95
+        <Button loading={submiting} type="primary" htmlType="submit">
96
+          保存
97
+        </Button>
98
+      </Form.Item>
99
+    </Form>
100
+  );
101
+};

+ 162
- 0
src/pages/dictionary/scene/index.jsx 查看文件

@@ -0,0 +1,162 @@
1
+import React from "react";
2
+import { PlusOutlined, DeleteOutlined } from "@ant-design/icons";
3
+import { Button, Card, Row, Col, Tree, Tooltip, Popconfirm, Spin } from "antd";
4
+import Page from "@/components/Page";
5
+import { getTdSceneMgtList, deleteTdSceneMgt } from "@/service/tdSceneMgt";
6
+import { arr2Tree } from "@/utils/array";
7
+import useBool from "@/utils/hooks/useBool";
8
+import Form from "./components/Form";
9
+
10
+import styles from "./styles.module.less";
11
+
12
+export default (props) => {
13
+  const [loading, startLoading, stopLoading] = useBool();
14
+  const [list, setList] = React.useState([]);
15
+  const [current, setCurrernt] = React.useState({});
16
+  const [parentId, setParentId] = React.useState();
17
+
18
+  const [parentList, treeData] = React.useMemo(() => {
19
+    const plist = [{ sceneId: "-1", sceneName: "根节点" }].concat(list);
20
+    const [tree] = arr2Tree(
21
+      (list || []).map((x) => ({
22
+        title: x.sceneName,
23
+        key: x.sceneId,
24
+        parentId: x.parentId,
25
+        raw: x,
26
+      }))
27
+    );
28
+    return [plist, tree];
29
+  }, [list]);
30
+
31
+  const changeCurrent = (row) => {
32
+    setCurrernt(row);
33
+    setParentId(row?.parentId || "-1");
34
+  };
35
+
36
+  const onSelect = (selectedKeys, e) => {
37
+    changeCurrent(e.node.raw);
38
+  };
39
+
40
+  const onClick = (row) => {
41
+    changeCurrent(row);
42
+  };
43
+  // console.log(current)
44
+  // console.log(parentList)
45
+
46
+  const onAdd = (parent = "-1") => {
47
+    console.log(111);
48
+    const a = {};
49
+    setParentId(parent);
50
+    setCurrernt(a);
51
+  };
52
+
53
+  const onDelete = (row) => {
54
+    deleteTdSceneMgt(row.sceneId).then(() => {
55
+      queryList();
56
+    });
57
+  };
58
+
59
+  const queryList = React.useCallback(() => {
60
+    startLoading();
61
+    getTdSceneMgtList({ pageSize: 500 }).then((res) => {
62
+      setList(res.records || []);
63
+      stopLoading();
64
+      // changeCurrent();
65
+      // const list = [];
66
+    });
67
+  }, []);
68
+
69
+  const onFormChange = () => {
70
+    // 重新查一次数据
71
+    queryList();
72
+  };
73
+
74
+  React.useEffect(() => {
75
+    queryList();
76
+  }, []);
77
+  return (
78
+    <Page>
79
+      <Row gutter={24} className={styles.treeRow}>
80
+        <Col span={8} style={{ overflow: "hidden" }}>
81
+          <Card
82
+            title="场景"
83
+            onSelect={onSelect}
84
+            extra={
85
+              <Button type="link" onClick={() => onAdd()}>
86
+                新增
87
+              </Button>
88
+            }
89
+          >
90
+            <Spin spinning={loading}>
91
+              <Tree
92
+                height="100%"
93
+                blockNode
94
+                defaultExpandParent={true}
95
+                treeData={treeData}
96
+                // onSelect={onSelect}
97
+                titleRender={(node) => (
98
+                  <div
99
+                    style={{ display: "flex" }}
100
+                    onClick={(e) => e.stopPropagation()}
101
+                  >
102
+                    <div
103
+                      style={{
104
+                        lineHeight: "32px",
105
+                        flex: 1,
106
+                        width: 0,
107
+                      }}
108
+                      onClick={() => onClick(node.raw)}
109
+                    >
110
+                      <div
111
+                        style={{
112
+                          overflow: "hidden",
113
+                          whiteSpace: "nowrap",
114
+                          textOverflow: "ellipsis",
115
+                        }}
116
+                      >
117
+                        {node.title}
118
+                      </div>
119
+                    </div>
120
+                    <div style={{ width: "80px", flex: "none" }}>
121
+                      <Tooltip title="新增子节点">
122
+                        <Button
123
+                          type="link"
124
+                          icon={<PlusOutlined />}
125
+                          onClick={() => onAdd(node.raw.sceneId)}
126
+                        ></Button>
127
+                      </Tooltip>
128
+                      <Tooltip title="删除节点">
129
+                        <Popconfirm
130
+                          title="确认进行删除操作?"
131
+                          onConfirm={() => onDelete(node.raw)}
132
+                        >
133
+                          <Button
134
+                            type="link"
135
+                            danger
136
+                            icon={<DeleteOutlined />}
137
+                          ></Button>
138
+                        </Popconfirm>
139
+                      </Tooltip>
140
+                    </div>
141
+                  </div>
142
+                )}
143
+              />
144
+            </Spin>
145
+          </Card>
146
+        </Col>
147
+        <Col span={16}>
148
+          {parentId && (
149
+            <Card>
150
+              <Form
151
+                row={current}
152
+                parentId={parentId}
153
+                list={parentList}
154
+                onChange={onFormChange}
155
+              />
156
+            </Card>
157
+          )}
158
+        </Col>
159
+      </Row>
160
+    </Page>
161
+  );
162
+};

+ 23
- 0
src/pages/dictionary/scene/styles.module.less 查看文件

@@ -0,0 +1,23 @@
1
+.treeRow {
2
+    overflow: hidden;
3
+    max-height: 100%;
4
+    // min-height: 0%;
5
+    min-height: -webkit-fill-available;
6
+    min-height: -moz-available; /* Firefox */
7
+    :global(.ant-col-8) {
8
+        // height: 100%;
9
+        // overflow: hidden;
10
+
11
+        :global(.ant-card) {
12
+            height: 70% !important;
13
+            overflow: hidden;
14
+
15
+            :global(.ant-card-body) {
16
+                height: 90% !important;
17
+                overflow-y: auto;
18
+            }
19
+        }
20
+    }
21
+
22
+
23
+}

+ 0
- 119
src/pages/home/Detail.jsx 查看文件

@@ -1,119 +0,0 @@
1
-import React, { useEffect, useRef, useState } from "react";
2
-import {
3
-  Button,
4
-  Select,
5
-  Row,
6
-  Col,
7
-  Form,
8
-  Descriptions,
9
-  Input,
10
-  Card,
11
-  Space,
12
-} from "antd";
13
-import {
14
-  ProForm,
15
-  ProFormText,
16
-  ProFormTextArea,
17
-} from "@ant-design/pro-components";
18
-import { useSearchParams } from "react-router-dom";
19
-import { useNavigate } from "react-router-dom";
20
-import { getTaMessageById, putTaMessage } from "@/service/taMessage";
21
-import { postTaRotation } from "@/service/taRotation";
22
-import Page from "@/components/Page";
23
-
24
-export default (props) => {
25
-  const [searchParams] = useSearchParams();
26
-  const id = searchParams.get("id");
27
-  const [form] = Form.useForm();
28
-  const navigate = useNavigate();
29
-
30
-  useEffect(() => {
31
-    form.resetFields();
32
-    getTaMessageById(id).then((res) => {
33
-      form.setFieldsValue(res);
34
-    });
35
-  }, []);
36
-
37
-  const onFinish = (values) => {
38
-    const sourceName = form.getFieldValue("sourceName");
39
-    const data = {
40
-      ...values,
41
-      sourceName: sourceName,
42
-    };
43
-    putTaMessage(id, data).then((res) => {
44
-      navigate(-1);
45
-    });
46
-  };
47
-
48
-  const onRatation = () => {
49
-    const sourceName = form.getFieldValue("sourceName");
50
-    const sourceId = form.getFieldValue("sourceId");
51
-    if (sourceName == "taRotation") {
52
-      navigate(
53
-        `/rotationMange/rotationList/edit?id=${sourceId}&disabled={true}`
54
-      );
55
-    } else {
56
-      navigate(
57
-        `/mandatoryLeaveMange/mandatoryleave/edit?id=${sourceId}&disabled={true}`
58
-      );
59
-    }
60
-  };
61
-
62
-  return (
63
-    <Page>
64
-      <Card>
65
-        <ProForm
66
-          style={{ marginTop: "24px" }}
67
-          form={form}
68
-          onFinish={onFinish}
69
-          layout="horizontal"
70
-          labelCol={{ span: 2 }}
71
-          wrapperCol={{ span: 8 }}
72
-          submitter={false}
73
-        >
74
-          <ProFormTextArea label="消息内容" name="contentSent" readonly />
75
-
76
-          <ProForm.Item noStyle shouldUpdate>
77
-            {({ getFieldValue }) => {
78
-              const waringType = getFieldValue("waringType");
79
-              const sourceName = getFieldValue("sourceName");
80
-              return (
81
-                <>
82
-                  <Form.Item label="查看按钮">
83
-                    <Button type="link" onClick={onRatation}>
84
-                      {sourceName == "taRotation"
85
-                        ? "点击查看轮岗详情"
86
-                        : "点击查看强制休假详情"}
87
-                    </Button>
88
-                  </Form.Item>
89
-                  {sourceName && sourceName == "taMandatoryLeave" ? null : (
90
-                    <>
91
-                      <ProFormTextArea
92
-                        label="核查反馈"
93
-                        name="remark"
94
-                        disabled={waringType == "prompt"}
95
-                      />
96
-                      <Form.Item>
97
-                        <Row>
98
-                          <Col offset={15}>
99
-                            <Button
100
-                              type="primary"
101
-                              htmlType="submit"
102
-                              disabled={waringType == "prompt"}
103
-                            >
104
-                              提交
105
-                            </Button>
106
-                          </Col>
107
-                        </Row>
108
-                      </Form.Item>
109
-                    </>
110
-                  )}
111
-                </>
112
-              );
113
-            }}
114
-          </ProForm.Item>
115
-        </ProForm>
116
-      </Card>
117
-    </Page>
118
-  );
119
-};

+ 0
- 34
src/pages/home/History.jsx 查看文件

@@ -1,34 +0,0 @@
1
-import React, { useEffect, useRef, useState } from "react";
2
-import { Button, Divider, Upload, Row, Col, Form, Input } from "antd";
3
-import { useNavigate } from "react-router-dom";
4
-import { getTaMessage } from "@/service/taMessage";
5
-import List from "@/components/Page/List";
6
-
7
-export default (props) => {
8
-  const ref = useRef();
9
-  const navigate = useNavigate();
10
-
11
-  const onDetail = (it) => {
12
-    navigate(`/home/detail?id=${it.messageId}`);
13
-  }
14
-
15
-  const columns = [
16
-    {
17
-      title: "内容",
18
-      dataIndex: "contentSent"
19
-    }
20
-  ]
21
-
22
-  return (
23
-    <List
24
-      ref={ref}
25
-      rowKey="rotationId"
26
-      columns={columns}
27
-      pagination={{ pageSize: 20 }}
28
-      request={getTaMessage}
29
-      columnOptionRender={(_, it) => [
30
-        <Button style={{ paddingLeft: 0 }} type="link" onClick={() => onDetail(it)}>查看详情</Button>
31
-      ]}
32
-    />
33
-  )
34
-}

+ 0
- 144
src/pages/home/index.jsx 查看文件

@@ -1,144 +0,0 @@
1
-import React, { useEffect, useRef, useState } from "react";
2
-import { ProTable } from "@ant-design/pro-components";
3
-import { Button, Select, Row, Col, Form, Input, Card } from "antd";
4
-import { useNavigate } from "react-router-dom";
5
-import { getTaMessage } from "@/service/taMessage";
6
-import Massage from "@/components/Massage";
7
-import ModalForms from "@/components/Upload/ModalForms";
8
-import { uploadFile } from "@/components/Upload/request";
9
-import { queryTable } from "@/utils/request";
10
-import "./style.less";
11
-
12
-export default (props) => {
13
-  const actionRef = useRef();
14
-  const actionRef2 = useRef();
15
-  const [open, setOpen] = useState(false);
16
-  const [visible, setVisible] = useState(false);
17
-  const [errList, setErrList] = useState([]);
18
-
19
-  const navigate = useNavigate();
20
-  const queryMessage = queryTable(getTaMessage);
21
-  const onHistory = () => {
22
-    navigate(`/home/history`);
23
-  };
24
-
25
-  const onSuccess = (x) => {
26
-    if (x) {
27
-      const res = x.split("读取文件失败:");
28
-      if ((res[0] = "读取文件失败")) {
29
-        setOpen(true);
30
-        const errlist = res[1].split("\n").filter((x) => x);
31
-        setErrList(errlist);
32
-      }
33
-    }
34
-  };
35
-
36
-  const onDetail = (it) => {
37
-    navigate(`/home/detail?id=${it.messageId}`);
38
-  };
39
-  const onFinish = () => { };
40
-  const columns = [
41
-    {
42
-      title: "内容",
43
-      dataIndex: "contentSent",
44
-    },
45
-    {
46
-      title: "操作",
47
-      key: "option",
48
-      render: (_, record) => [
49
-        <Button
50
-          key="1"
51
-          style={{ paddingLeft: 0 }}
52
-          type="link"
53
-          onClick={() => onDetail(record)}
54
-        >
55
-          查看详情
56
-        </Button>,
57
-      ],
58
-    },
59
-  ];
60
-  return (
61
-    <div className="grid-container">
62
-      <div className="left-side">
63
-        <Card
64
-          size="small"
65
-          bordered={false}
66
-          style={{ height: "48%", marginBottom: "24px" }}
67
-        >
68
-          <ProTable
69
-            rowKey="messageId"
70
-            params={{ sourceName: "taRotation" }}
71
-            request={queryMessage}
72
-            columns={columns}
73
-            headerTitle="轮岗信息"
74
-            options={false}
75
-            search={false}
76
-            actionRef={actionRef}
77
-            scroll={{
78
-              y: 190,
79
-            }}
80
-            toolBarRender={() => [
81
-              <Button key="1" type="link" onClick={onHistory}>
82
-                查看历史
83
-              </Button>,
84
-            ]}
85
-          />
86
-        </Card>
87
-        <Card size="small" bordered={false} style={{ height: "48%" }}>
88
-          <ProTable
89
-            rowKey="messageId"
90
-            request={queryMessage}
91
-            columns={columns}
92
-            params={{ sourceName: "taMandatoryLeave" }}
93
-            headerTitle="强制休假信息"
94
-            options={false}
95
-            scroll={{
96
-              y: 190,
97
-            }}
98
-            search={false}
99
-            actionRef={actionRef2}
100
-            toolBarRender={() => [
101
-              <Button key="1" type="link" onClick={onHistory}>
102
-                查看历史
103
-              </Button>,
104
-            ]}
105
-          />
106
-        </Card>
107
-      </div>
108
-      <div className="right-side">
109
-        <Card title={<div style={{ fontWeight: 400, padding: "20px 0 0 12px" }}>快捷入口</div>} style={{ height: "99%" }}>
110
-          <Card.Grid style={{ width: "50%", color: '#1677ff', cursor: 'pointer', textAlign: 'center' }} onClick={() => setVisible(true)}>轮岗导入</Card.Grid>
111
-          <Card.Grid style={{ width: "50%", color: '#1677ff', cursor: 'pointer', textAlign: 'center' }} onClick={() => setVisible(true)}>强制休假导入</Card.Grid>
112
-          <Card.Grid style={{ width: "50%", textAlign: 'center', cursor: 'pointer' }}>
113
-            <Button href={rotation} type="link" style={{ padding: 0 }}>下载轮岗模板</Button>
114
-          </Card.Grid>
115
-          <Card.Grid style={{ width: "50%", textAlign: 'center', cursor: 'pointer' }}>
116
-            <Button href={mandatoryleave} type="link" style={{ padding: 0 }}>下载强制休假模板</Button>
117
-          </Card.Grid>
118
-          <div style={{ width: "100%" }}>
119
-            <img
120
-              style={{ margin: "30% auto", display: "block" }}
121
-              src="/src/assets/chinaBank.png"
122
-              height="50%"
123
-              width="50%"
124
-              alt=""
125
-            />
126
-          </div>
127
-        </Card>
128
-        <ModalForms
129
-          visible={visible}
130
-          setVisible={setVisible}
131
-          onFinish={onFinish}
132
-          onSuccess={onSuccess}
133
-          uploadFile={uploadFile}
134
-        />
135
-        <Massage
136
-          title="读取错误提示"
137
-          open={open}
138
-          setOpen={setOpen}
139
-          errList={errList}
140
-        />
141
-      </div>
142
-    </div>
143
-  );
144
-};

+ 0
- 11
src/pages/home/style.less 查看文件

@@ -1,11 +0,0 @@
1
-.grid-container {
2
-  margin-top: 24px;
3
-  display: grid;
4
-  height: 100%;
5
-  grid-template-columns: 70% 30%; /* 左边70%,右边30% */
6
-  grid-gap: 24px; /* 可选,设置网格项之间的间隙 */
7
-  .left-side {
8
-  }
9
-  .right-side {
10
-  }
11
-}

+ 0
- 143
src/pages/mandatoryleave/Edit.jsx 查看文件

@@ -1,143 +0,0 @@
1
-import React, { useCallback, useEffect, useRef, useState } from "react";
2
-import Edit from "@/components/Page/Edit";
3
-import { Radio, Form } from "antd";
4
-import {
5
-  ProForm,
6
-  ProFormDatePicker,
7
-  ProFormText,
8
-  ProFormSelect,
9
-  ProFormTextArea,
10
-  ProFormDigit,
11
-  ProFormRadio,
12
-} from "@ant-design/pro-components/es";
13
-import {
14
-  postTaMandatoryLeave,
15
-  putTaMandatoryLeave,
16
-  getTaMandatoryLeaveById,
17
-} from "@/service/taMandatoryLeave";
18
-import { getSysPosition } from "@/service/sysposition";
19
-import { queryDict } from "@/utils/request";
20
-import { getSysOrg } from "@/service/sysorg";
21
-import { useSearchParams } from "react-router-dom";
22
-
23
-const queryPosition = queryDict(getSysPosition, {
24
-  labelKey: "name",
25
-  valueKey: "positionId",
26
-});
27
-const getOrgId = queryDict(getSysOrg, {
28
-  labelKey: "orgId",
29
-  valueKey: "orgId",
30
-});
31
-const getOrgName = queryDict(getSysOrg, {
32
-  labelKey: "name",
33
-  valueKey: "name",
34
-});
35
-const request = {
36
-  save: postTaMandatoryLeave,
37
-  update: putTaMandatoryLeave,
38
-  get: getTaMandatoryLeaveById,
39
-};
40
-
41
-export default (props) => {
42
-  const formRef = useRef();
43
-  const [params] = useSearchParams();
44
-  const disabled = params.get("disabled");
45
-  const selectChange = [
46
-    { label: "是", value: "是" },
47
-    { label: "否", value: "否" },
48
-  ];
49
-
50
-  const counterInstitutionsLevelOpt = [
51
-    { label: "1.总行部门、直属机构", value: "1.总行部门、直属机构" },
52
-    { label: "2.分行各级管理机构本部", value: "2.分行各级管理机构本部" },
53
-    { label: "3.基层营业网点(含营业部)", value: "3.基层营业网点(含营业部)" },
54
-  ];
55
-
56
-  const onChangeOrg = (value, e) => {
57
-    formRef.current.setFieldValue("orgNum", e.orgId);
58
-    formRef.current.setFieldValue("orgName", e.name);
59
-  };
60
-
61
-  return (
62
-    <Edit
63
-      formRef={formRef}
64
-      request={request}
65
-      disabled={disabled}
66
-      rowKey="leaveId"
67
-      labelCol={{ span: 6 }}
68
-      renderItems={() => (
69
-        <>
70
-          {/* <ProFormDigit name="sort" label=" 序 号 :" /> */}
71
-          <ProFormText name="headOfficeOrg" label="总 行 部 门" />
72
-          <ProFormText
73
-            name="employeeNum"
74
-            label="员 工 工 号"
75
-            rules={[{ required: true }]}
76
-          />
77
-          <ProFormText
78
-            name="employeeName"
79
-            label="员 工 姓 名"
80
-            rules={[{ required: true }]}
81
-          />
82
-          <ProFormSelect
83
-            onChange={onChangeOrg}
84
-            request={getOrgId}
85
-            name="orgNum"
86
-            label="原单位机构号"
87
-          />
88
-          <ProFormSelect
89
-            rules={[{ required: true }]}
90
-            onChange={onChangeOrg}
91
-            name="orgName"
92
-            label="原单位名称"
93
-            request={getOrgName}
94
-          />
95
-
96
-          <ProFormSelect
97
-            name="counterInstitutionsLevel"
98
-            label="对应机构层次"
99
-            options={counterInstitutionsLevelOpt}
100
-          />
101
-          <ProFormText name="currentPosition" label="当 前 职 位" />
102
-
103
-          <ProFormSelect
104
-            name="counterImpPost"
105
-            label="对应重要岗位"
106
-            request={queryPosition}
107
-          />
108
-          <ProFormText
109
-            name="counterHeadOfficeLine"
110
-            label="对应总行条线"
111
-            // options={[{ label: "个人数字金融部", value: "个人数字金融部" }]}
112
-          />
113
-          <ProFormDatePicker
114
-            name="startTimeVacation"
115
-            label="休假起始时间"
116
-            width="100%"
117
-          />
118
-          <ProFormDatePicker
119
-            name="vacationDeadline"
120
-            label="休假截止时间"
121
-            width="100%"
122
-          />
123
-          <ProFormDigit name="mandatoryVacationDay" label="已强制休假天数" />
124
-          <ProFormText
125
-            name="depSbtDepartureCheck"
126
-            label="开展离岗检查/代职检查情况"
127
-          />
128
-          <ProFormTextArea name="remark" label="备注填写" />
129
-          <ProFormRadio.Group
130
-            name="checkChange"
131
-            label="立 查 立 改:"
132
-            options={selectChange}
133
-          />
134
-          <ProFormRadio.Group
135
-            name="checkCorrect"
136
-            label="自 查 自 纠:"
137
-            options={selectChange}
138
-          />
139
-        </>
140
-      )}
141
-    />
142
-  );
143
-};

+ 0
- 222
src/pages/mandatoryleave/index.jsx 查看文件

@@ -1,222 +0,0 @@
1
-import React, { useEffect, useRef, useState } from "react";
2
-import { Button, Divider, Upload, Row, Col, Form, Input } from "antd";
3
-import List from "@/components/Page/List";
4
-import { useNavigate } from "react-router-dom";
5
-import {
6
-  deleteTaMandatoryLeave,
7
-  getTaMandatoryLeave,
8
-} from "@/service/taMandatoryLeave";
9
-import ModalForms from "@/components/Upload/ModalForms";
10
-import Massage from "@/components/Massage";
11
-import { DownloadOutlined } from "@ant-design/icons";
12
-import { uploadFileTaMandatoryLeave } from "@/components/Upload/request";
13
-import { getSysPosition } from "@/service/sysposition";
14
-import { queryDict } from "@/utils/request";
15
-import { getSysOrg } from "@/service/sysorg";
16
-const getPosition = queryDict(getSysPosition, {
17
-  labelKey: "name",
18
-  valueKey: "positionId",
19
-});
20
-const getOrg = queryDict(getSysOrg, {
21
-  labelKey: "name",
22
-  valueKey: "name",
23
-});
24
-
25
-export default (props) => {
26
-  const columns = [
27
-    {
28
-      title: "序号",
29
-      dataIndex: "sort",
30
-      search: false,
31
-    },
32
-    {
33
-      title: "总行部门",
34
-      dataIndex: "headOfficeOrg",
35
-    },
36
-    {
37
-      title: "员工工号",
38
-      dataIndex: "employeeNum",
39
-    },
40
-    {
41
-      title: "员工姓名",
42
-      dataIndex: "employeeName",
43
-    },
44
-    {
45
-      title: "原单位机构号",
46
-      dataIndex: "orgNum",
47
-      search: false,
48
-    },
49
-    {
50
-      title: "原单位名称",
51
-      dataIndex: "orgName",
52
-      request: getOrg,
53
-      fieldProps: {
54
-        showSearch: true,
55
-        filterOption: (x, opt) => opt.label?.includes(x),
56
-      },
57
-    },
58
-    {
59
-      title: "对应机构层次",
60
-      dataIndex: "counterInstitutionsLevel",
61
-      search: false,
62
-    },
63
-    {
64
-      title: "当前职位",
65
-      dataIndex: "currentPosition",
66
-      search: false,
67
-    },
68
-    {
69
-      title: "对应重要岗位",
70
-      dataIndex: "counterImpPost",
71
-      valueType: "select",
72
-      request: getPosition,
73
-      fieldProps: {
74
-        showSearch: true,
75
-        filterOption: (x, opt) => opt.label?.includes(x),
76
-      },
77
-    },
78
-    {
79
-      title: "对应总行条线",
80
-      dataIndex: "counterHeadOfficeLine",
81
-      search: false,
82
-    },
83
-    {
84
-      title: "休假起始时间",
85
-      dataIndex: "startTimeVacation",
86
-      valueType: "date",
87
-      search: false,
88
-    },
89
-    {
90
-      title: "休假起始时间",
91
-      dataIndex: "startTimeVacation",
92
-      valueType: "dateRange",
93
-      hideInTable: true,
94
-      search: {
95
-        transform: (val) => {
96
-          return {
97
-            startVacation: val[0],
98
-            endVacation: val[1],
99
-          };
100
-        },
101
-      },
102
-    },
103
-    {
104
-      title: "休假截止时间",
105
-      dataIndex: "vacationDeadline",
106
-      valueType: "date",
107
-      search: false,
108
-    },
109
-    {
110
-      title: "休假截止时间",
111
-      dataIndex: "vacationDeadline",
112
-      valueType: "dateRange",
113
-      hideInTable: true,
114
-      search: {
115
-        transform: (val) => {
116
-          return {
117
-            startVacation: val[0],
118
-            endVacation: val[1],
119
-          };
120
-        },
121
-      },
122
-    },
123
-    {
124
-      title: "已强制休假天数(工作日)",
125
-      dataIndex: "mandatoryVacationDay",
126
-      search: false,
127
-      width: 200,
128
-    },
129
-    {
130
-      title: "开展离岗检查/代职检查情况",
131
-      dataIndex: "depSbtDepartureCheck",
132
-      search: false,
133
-      width: 200,
134
-    },
135
-    {
136
-      title: "备注",
137
-      dataIndex: "remark",
138
-      search: false,
139
-    },
140
-    {
141
-      title: "立查立改(是/否)",
142
-      dataIndex: "checkChange",
143
-      search: false,
144
-    },
145
-    {
146
-      title: "自查自纠 (是/否)",
147
-      dataIndex: "checkCorrect",
148
-      search: false,
149
-    },
150
-  ];
151
-  const navigate = useNavigate();
152
-  const [visible, setVisible] = useState(false);
153
-  const ref = useRef();
154
-  const [open, setOpen] = useState(false);
155
-  const [errList, setErrList] = useState([]);
156
-
157
-  const onEdit = (it) => {
158
-    navigate(`/mandatoryLeaveMange/mandatoryleave/edit?id=${it.leaveId}`);
159
-  };
160
-  const onAdd = () => {
161
-    navigate("/mandatoryLeaveMange/mandatoryleave/edit");
162
-  };
163
-  const onFinish = () => {
164
-    ref.current?.reload();
165
-  };
166
-  const onSuccess = (x) => {
167
-    if (x) {
168
-      const res = x.split("读取文件失败:");
169
-      if ((res[0] = "读取文件失败")) {
170
-        setOpen(true);
171
-        const errlist = res[1].split("\n").filter((x) => x);
172
-        setErrList(errlist);
173
-      }
174
-    }
175
-  };
176
-
177
-  const onDelete = (it) => {
178
-    deleteTaMandatoryLeave(it.leaveId).then(() => {
179
-      ref.current?.reload();
180
-    });
181
-  };
182
-  return (
183
-    <>
184
-      <List
185
-        ref={ref}
186
-        rowKey="leaveId"
187
-        search={{ labelWidth: 130 }}
188
-        scroll={{ x: 2600 }}
189
-        columns={columns}
190
-        // pagination={{
191
-        //   pageSize: 10,
192
-        // }}
193
-        onEdit={onEdit}
194
-        onAdd={onAdd}
195
-        onDelete={onDelete}
196
-        request={getTaMandatoryLeave}
197
-        toolBarRender={() => [
198
-          <Button key="2" href={mandatoryleave} icon={<DownloadOutlined />}>
199
-            下载模板
200
-          </Button>,
201
-          <Button type="primary" key="1" onClick={() => setVisible(true)}>
202
-            导入
203
-          </Button>,
204
-        ]}
205
-      />
206
-
207
-      <ModalForms
208
-        visible={visible}
209
-        setVisible={setVisible}
210
-        onFinish={onFinish}
211
-        onSuccess={onSuccess}
212
-        uploadFile={uploadFileTaMandatoryLeave}
213
-      />
214
-      <Massage
215
-        title="读取错误提示"
216
-        open={open}
217
-        setOpen={setOpen}
218
-        errList={errList}
219
-      />
220
-    </>
221
-  );
222
-};

+ 6
- 0
src/pages/process/approval/index.jsx 查看文件

@@ -0,0 +1,6 @@
1
+import React from 'react'
2
+export default (props) => {
3
+return (
4
+<div></div>
5
+)
6
+}

+ 6
- 0
src/pages/process/list/index.jsx 查看文件

@@ -0,0 +1,6 @@
1
+import React from 'react'
2
+export default (props) => {
3
+return (
4
+<div></div>
5
+)
6
+}

+ 6
- 0
src/pages/process/look/index.jsx 查看文件

@@ -0,0 +1,6 @@
1
+import React from 'react'
2
+export default (props) => {
3
+return (
4
+<div></div>
5
+)
6
+}

+ 6
- 0
src/pages/process/notice/index.jsx 查看文件

@@ -0,0 +1,6 @@
1
+import React from 'react'
2
+export default (props) => {
3
+return (
4
+<div></div>
5
+)
6
+}

+ 6
- 0
src/pages/project/archive/index.jsx 查看文件

@@ -0,0 +1,6 @@
1
+import React from 'react'
2
+export default (props) => {
3
+return (
4
+<div></div>
5
+)
6
+}

+ 6
- 0
src/pages/project/list/edit.jsx 查看文件

@@ -0,0 +1,6 @@
1
+import React from 'react'
2
+export default (props) => {
3
+return (
4
+<div></div>
5
+)
6
+}

+ 60
- 0
src/pages/project/list/index.jsx 查看文件

@@ -0,0 +1,60 @@
1
+import React from "react";
2
+import List from "@/components/Page/List";
3
+import { queryDict } from "@/utils/request";
4
+import { getTdLineList } from "@/service/tdLine";
5
+import { getTdSceneMgtList } from "@/service/tdSceneMgt";
6
+import { getTaProjectList } from "@/service/taProject";
7
+import { useNavigate } from "react-router-dom";
8
+const getLine = queryDict(getTdLineList, {
9
+  labelKey: "lineName",
10
+  valueKey: "lineId",
11
+});
12
+const getScene = queryDict(getTdSceneMgtList, {
13
+  labelKey: "sceneName",
14
+  valueKey: "sceneId",
15
+});
16
+
17
+export default (props) => {
18
+  const navigate = useNavigate();
19
+
20
+  const columns = [
21
+    { title: "项目编号", dataIndex: "projectCode", search: false },
22
+    { title: "项目名称", dataIndex: "projectName" },
23
+    { title: "项目类型", dataIndex: "typeCode" },
24
+    // { title: "类型名称", dataIndex: "typeName" },
25
+    { title: "发起人名称", dataIndex: "initiatorName" },
26
+    { title: "发起机构名称", dataIndex: "initiatorOrgName" },
27
+    { title: "申请说明", dataIndex: "applyRemark", search: false },
28
+    { title: "项目流程", dataIndex: "currentNode" },
29
+    { title: "归属条线名称", dataIndex: "lineName", request: getLine },
30
+    { title: "归属场景名称", dataIndex: "sceneName", request: getScene },
31
+    { title: "项目开始时间", dataIndex: "startDate", search: false },
32
+    { title: "项目结束时间", dataIndex: "endDate", search: false },
33
+    {
34
+      title: "项目时间",
35
+      dataIndex: "startDate",
36
+      valueType: "dateRange",
37
+      hideInTable: true,
38
+      search: {
39
+        transform: (val) => {
40
+          return {
41
+            startDate: val[0],
42
+            endDate: val[1],
43
+          };
44
+        },
45
+      },
46
+    },
47
+  ];
48
+
49
+  const onAdd = () => {
50
+    navigate("/projectList/edit");
51
+  };
52
+  return (
53
+    <List
54
+      search={{ labelWidth: 130 }}
55
+      request={getTaProjectList}
56
+      columns={columns}
57
+      onAdd={onAdd}
58
+    />
59
+  );
60
+};

+ 6
- 0
src/pages/project/measurement/index.jsx 查看文件

@@ -0,0 +1,6 @@
1
+import React from 'react'
2
+export default (props) => {
3
+return (
4
+<div></div>
5
+)
6
+}

+ 6
- 0
src/pages/project/process/index.jsx 查看文件

@@ -0,0 +1,6 @@
1
+import React from 'react'
2
+export default (props) => {
3
+return (
4
+<div></div>
5
+)
6
+}

+ 0
- 58
src/pages/rotationManage/compatibilityQuery/components/SearchResult.jsx 查看文件

@@ -1,58 +0,0 @@
1
-import React, { useEffect, useRef, useState } from "react";
2
-import { Button, Divider, Card } from "antd";
3
-
4
-export default (props) => {
5
-  const { repelmsg, postIdName } = props;
6
-  const [allRulesCompatible, setAllRulesCompatible] = useState(false);
7
-  useEffect(() => {
8
-    if (repelmsg) {
9
-      const allRulesCompatible = (repelmsg || [])?.every(
10
-        (x) => x.rules == "根据不相容设置这两个岗位是相容的"
11
-      );
12
-      setAllRulesCompatible(allRulesCompatible);
13
-    }
14
-  }, [repelmsg]);
15
-
16
-  console.log(allRulesCompatible);
17
-  return (
18
-    <Card style={{ height: "100%" }}>
19
-      {repelmsg &&
20
-        (allRulesCompatible ? (
21
-          <h3>根据不相容设置这两个岗位是相容的</h3>
22
-        ) : (
23
-          <h3>根据不相容设置这两个岗位是不相容的</h3>
24
-        ))}
25
-      {(repelmsg || []).map((x, index) => {
26
-        return (
27
-          <div key={index}>
28
-            {x.primaryPost && postIdName && (
29
-              <div>原岗位:{postIdName[x.primaryPost]}</div>
30
-            )}
31
-            {x.targetPost && postIdName && (
32
-              <div>目标岗位:{postIdName[x.targetPost]}</div>
33
-            )}
34
-
35
-            {/* <h3>{x.rules}</h3> */}
36
-            {x.employeeNum && <div>员工工号:{x.employeeNum}</div>}
37
-            {x.employeeName && <div>员工姓名:{x.employeeName}</div>}
38
-            {x.counterImpPositions && postIdName && (
39
-              <div>原岗位:{postIdName[x.counterImpPositions]}</div>
40
-            )}
41
-
42
-            {x.specificOrgNum && <div>原网点号:{x.specificOrgNum}</div>}
43
-            {x.specificOrgName && <div>原网点名称:{x.specificOrgName}</div>}
44
-            {x.counterImpPost && postIdName && (
45
-              <div>目标岗位:{postIdName[x.counterImpPost]}</div>
46
-            )}
47
-            {x.orgNumJobRotation && (
48
-              <div>目标网点号:{x.orgNumJobRotation}</div>
49
-            )}
50
-            {x.specificNameOrgRotation && (
51
-              <div>目标网点名称:{x.specificNameOrgRotation}</div>
52
-            )}
53
-          </div>
54
-        );
55
-      })}
56
-    </Card>
57
-  );
58
-};

+ 0
- 144
src/pages/rotationManage/compatibilityQuery/index.jsx 查看文件

@@ -1,144 +0,0 @@
1
-import React, { useEffect, useRef, useState } from "react";
2
-import { Button, Divider, Select, Row, Col, Form, Input, Card } from "antd";
3
-import {
4
-  ProForm,
5
-  ProFormSelect,
6
-  ProFormText,
7
-} from "@ant-design/pro-components";
8
-import Page from "@/components/Page";
9
-import { getTaIncompatibleRule } from "@/service/taIncompatible";
10
-import { getSysPosition } from "@/service/sysposition";
11
-import { queryDict } from "@/utils/request";
12
-import SearchResult from "./components/SearchResult";
13
-import dayjs from "dayjs";
14
-import { getSysOrg } from "@/service/sysorg";
15
-
16
-const queryPosition = queryDict(getSysPosition, {
17
-  labelKey: "name",
18
-  valueKey: "positionId",
19
-});
20
-const queryOrg = queryDict(getSysOrg, {
21
-  labelKey: "orgId",
22
-  valueKey: "orgId",
23
-  show: true,
24
-});
25
-
26
-export default (props) => {
27
-  const formRef = useRef();
28
-  const [repelmsg, setRepelmsg] = useState();
29
-  const [postIdName, setPostIdName] = useState();
30
-  const onFinish = (values) => {
31
-    let time = dayjs().format("YYYY-MM-DD");
32
-    const data = {
33
-      ...values,
34
-      passTime: time,
35
-    };
36
-
37
-    queryPosition().then((res) => {
38
-      const data = {};
39
-      (res || []).map((x) => {
40
-        data[x.positionId] = x.label;
41
-      });
42
-      setPostIdName(data);
43
-    });
44
-
45
-    getTaIncompatibleRule(data).then((res) => {
46
-      setRepelmsg(res);
47
-    });
48
-  };
49
-  return (
50
-    <Page>
51
-      <Row gutter={24}>
52
-        <Col span={12}>
53
-          <Card>
54
-            <ProForm
55
-              formRef={formRef}
56
-              layout="horizontal"
57
-              size="large"
58
-              onFinish={onFinish}
59
-              labelCol={{ span: 8 }}
60
-              wrapperCol={{ span: 12 }}
61
-              submitter={false}
62
-            >
63
-              <div style={{ paddingBottom: "24px" }}>
64
-                变更前:
65
-                <ProFormText
66
-                  name="oldOrgCode"
67
-                  label="当前归属机构号"
68
-                  request={queryOrg}
69
-                />
70
-                <ProFormSelect
71
-                  label="当前岗位名称"
72
-                  name="primaryPost"
73
-                  request={queryPosition}
74
-                />
75
-              </div>
76
-              <div>
77
-                变更后:
78
-                <ProFormText
79
-                  name="newOrgCode"
80
-                  label="拟建归属机构号"
81
-                  request={queryOrg}
82
-                />
83
-                <ProFormSelect
84
-                  name="targetPost"
85
-                  label="拟建岗位名称"
86
-                  request={queryPosition}
87
-                />
88
-              </div>
89
-              <Form.Item style={{ display: "flex", justifyContent: "center" }}>
90
-                <Button
91
-                  type="primary"
92
-                  htmlType="submit"
93
-                  style={{ width: "6vw" }}
94
-                >
95
-                  查询
96
-                </Button>
97
-              </Form.Item>
98
-            </ProForm>
99
-          </Card>
100
-        </Col>
101
-        <Col span={12}>
102
-          {/* <Card style={{ height: "100%" }}>
103
-            {(repelmsg || []).map((x, index) => {
104
-              return (
105
-                <div key={index}>
106
-                  <h3>{x.regularRules}</h3>
107
-                  {x.primaryPost && postIdName && (
108
-                    <div>原岗位:{postIdName[x.primaryPost]}</div>
109
-                  )}
110
-                  {x.targetPost && postIdName && (
111
-                    <div>目标岗位:{postIdName[x.targetPost]}</div>
112
-                  )}
113
-
114
-                  <h3>{x.monthRules}</h3>
115
-                  {x.monthRules && <div>{x.monthRules}</div>}
116
-                  {x.employeeNum && <div>员工工号:{x.employeeNum}</div>}
117
-                  {x.employeeName && <div>员工姓名:{x.employeeName}</div>}
118
-                  {x.counterImpPositions && postIdName && (
119
-                    <div>原岗位:{postIdName[x.counterImpPositions]}</div>
120
-                  )}
121
-
122
-                  {x.specificOrgNum && <div>原网点号:{x.specificOrgNum}</div>}
123
-                  {x.specificOrgName && (
124
-                    <div>原网点名称:{x.specificOrgName}</div>
125
-                  )}
126
-                  {x.counterImpPost && postIdName && (
127
-                    <div>目标岗位:{postIdName[x.counterImpPost]}</div>
128
-                  )}
129
-                  {x.orgNumJobRotation && (
130
-                    <div>目标网点号:{x.orgNumJobRotation}</div>
131
-                  )}
132
-                  {x.specificNameOrgRotation && (
133
-                    <div>目标网点名称:{x.specificNameOrgRotation}</div>
134
-                  )}
135
-                </div>
136
-              );
137
-            })}
138
-          </Card> */}
139
-          <SearchResult repelmsg={repelmsg} postIdName={postIdName} />
140
-        </Col>
141
-      </Row>
142
-    </Page>
143
-  );
144
-};

+ 0
- 227
src/pages/rotationManage/rotationList/Edit.jsx 查看文件

@@ -1,227 +0,0 @@
1
-import React, { useCallback, useEffect, useRef, useState } from "react";
2
-import Edit from "@/components/Page/Edit";
3
-import {
4
-  ProForm,
5
-  ProFormDatePicker,
6
-  ProFormDigit,
7
-  ProFormRadio,
8
-  ProFormRate,
9
-  ProFormSelect,
10
-  ProFormText,
11
-  ProFormTextArea,
12
-} from "@ant-design/pro-components/es";
13
-import {
14
-  getTaRotationById,
15
-  postTaRotation,
16
-  putTaRotation,
17
-} from "@/service/taRotation";
18
-import dayjs from "dayjs";
19
-import { queryDict } from "@/utils/request";
20
-import { getSysPosition } from "@/service/sysposition";
21
-import { getSysOrg } from "@/service/sysorg";
22
-import { useNavigate, useSearchParams } from "react-router-dom";
23
-import { message } from "antd";
24
-import Massage from "@/components/Massage";
25
-
26
-const request = {
27
-  get: getTaRotationById,
28
-  save: postTaRotation,
29
-  update: putTaRotation,
30
-};
31
-const getPosition = queryDict(getSysPosition, {
32
-  labelKey: "name",
33
-  valueKey: "positionId",
34
-});
35
-const getOrgId = queryDict(getSysOrg, {
36
-  labelKey: "orgId",
37
-  valueKey: "orgId",
38
-});
39
-const getOrgName = queryDict(getSysOrg, {
40
-  labelKey: "name",
41
-  valueKey: "name",
42
-});
43
-
44
-export default (props) => {
45
-  const [params] = useSearchParams();
46
-  const disabled = params.get("disabled");
47
-  const formRef = useRef();
48
-  const selectChange = [
49
-    { label: "是", value: "是" },
50
-    { label: "否", value: "否" },
51
-  ];
52
-  const rules = {
53
-    // headOfficeOrg: [{ required: true, message: "请输入总行部门" }],
54
-    employeeNum: [{ required: true, message: "请输入员工工号" }],
55
-    employeeName: [{ required: true, message: "请输入员工姓名" }],
56
-    // specificOrgNum: [{ required: true, message: "请输入具体单位机构号" }],
57
-    specificOrgName: [{ required: true, message: "请输入所在单位具体名称" }],
58
-    counterImpPositions: [{ required: true, message: "请输入对应重要岗位" }],
59
-    rotationCycle: [{ required: true, message: "请输入轮岗周期要求" }],
60
-    rotationDeadline: [{ required: true, message: "请输入轮岗截止时间" }],
61
-    counterRotationMethod: [{ required: true, message: "请输入轮岗方法" }],
62
-    orgNumJobRotation: [{ required: true, message: "请输入机构轮岗" }],
63
-    specificNameOrgRotation: [
64
-      { required: true, message: "请输入轮岗后单位具体名称" },
65
-    ],
66
-    rotationExeTime: [{ required: true, message: "请输入轮岗执行时间" }],
67
-  };
68
-  const onChangeOrg = (value, e) => {
69
-    formRef.current.setFieldValue("specificOrgNum", e.orgId);
70
-    formRef.current.setFieldValue("specificOrgName", e.name);
71
-  };
72
-
73
-  const onChangeOrgAfter = (value, e) => {
74
-    formRef.current.setFieldValue("orgNumJobRotation", e.orgId);
75
-    formRef.current.setFieldValue("specificNameOrgRotation", e.name);
76
-  };
77
-  const onChangeTime = (value, e) => {
78
-    const durationOfEmployment = formRef.current.getFieldValue(
79
-      "durationOfEmployment"
80
-    );
81
-    if (durationOfEmployment) {
82
-      const rotationDeadline = dayjs(durationOfEmployment).add(value, "year");
83
-      formRef.current.setFieldValue("rotationDeadline", rotationDeadline);
84
-    }
85
-  };
86
-
87
-  return (
88
-    <Edit
89
-      formRef={formRef}
90
-      request={request}
91
-      // initialValues={initialValues}
92
-      labelCol={{ span: 6 }}
93
-      disabled={disabled}
94
-      renderItems={() => (
95
-        <>
96
-          <ProFormText name="headOfficeOrg" label="总 行 部  门:" />
97
-          <ProFormText
98
-            name="employeeNum"
99
-            label="员 工 工 号:"
100
-            required
101
-            rules={rules.employeeNum}
102
-          />
103
-          <ProFormText
104
-            name="employeeName"
105
-            label="员 工 姓 名:"
106
-            required
107
-            rules={rules.employeeName}
108
-          />
109
-          <ProFormText
110
-            name="specificOrgNum"
111
-            label="原单位机构号:"
112
-            onChange={onChangeOrg}
113
-            request={getOrgId}
114
-
115
-            // required
116
-            // rules={rules.specificOrgNum}
117
-          />
118
-          <ProFormText
119
-            name="specificOrgName"
120
-            label="原单位具体名称:"
121
-            request={getOrgName}
122
-            onChange={onChangeOrg}
123
-            required
124
-            rules={rules.specificOrgName}
125
-          />
126
-          <ProFormText name="counterInstitutionsLevel" label="对应机构层次:" />
127
-          <ProFormText name="currentPosition" label="当 前 职 位:" />
128
-          <ProFormText
129
-            name="counterImpPositions"
130
-            label="对应重要岗位:"
131
-            request={getPosition}
132
-            required
133
-            rules={rules.counterImpPositions}
134
-          />
135
-          <ProFormText
136
-            name="counterHeadOfficeLine"
137
-            label="对应总行条线:"
138
-            // required
139
-            // rules={rules.counterImpPositions}
140
-          />
141
-          <ProFormDatePicker
142
-            name="durationOfEmployment"
143
-            label="从事岗位日期:"
144
-            width="100%"
145
-            // style={{ width: "800px" }}
146
-          />
147
-          <ProFormDigit
148
-            name="rotationCycle"
149
-            label="轮岗周期要求(年):"
150
-            onChange={onChangeTime}
151
-            min={1}
152
-            // required
153
-            // rules={rules.rotationCycle}
154
-          />
155
-          <ProFormDatePicker
156
-            name="rotationDeadline"
157
-            label="轮岗截止日期:"
158
-            width="100%"
159
-            required
160
-            rules={rules.rotationDeadline}
161
-          />
162
-
163
-          <ProFormText
164
-            name="counterRotationMethod"
165
-            label="对应轮岗方式:"
166
-            // required
167
-            // rules={rules.counterRotationMethod}
168
-          />
169
-          <ProFormText
170
-            name="orgNumJobRotation"
171
-            label="轮岗后单位机构号:"
172
-            request={getOrgId}
173
-            onChange={onChangeOrgAfter}
174
-            // required
175
-            // rules={rules.orgNumJobRotation}
176
-          />
177
-          <ProFormText
178
-            name="specificNameOrgRotation"
179
-            label="轮岗后单位具体名称:"
180
-            request={getOrgName}
181
-            onChange={onChangeOrgAfter}
182
-
183
-            // required
184
-            // rules={rules.specificNameOrgRotation}
185
-          />
186
-
187
-          <ProFormText name="jobRotationPost" label="轮 岗 后 职 位:" />
188
-          <ProFormText
189
-            name="counterImpPostRotation"
190
-            label="轮岗后对应重要岗位:"
191
-            request={getPosition}
192
-          />
193
-          <ProFormText
194
-            name="counterOfficeLineRotation"
195
-            label="轮岗后对应总行条线:"
196
-          />
197
-          <ProFormDatePicker
198
-            name="rotationExeTime"
199
-            label="轮岗执行时间:"
200
-            width="100%"
201
-            required
202
-            rules={rules.rotationExeTime}
203
-          />
204
-          <ProFormRadio.Group
205
-            name="checkChange"
206
-            label="立 查 立 改:"
207
-            options={selectChange}
208
-          />
209
-          <ProFormText name="accountability" label="是 否 问 责:" />
210
-          <ProFormText name="factConfirmationNum" label="事实确认书编号:" />
211
-          <ProFormRadio.Group
212
-            name="checkCorrect"
213
-            label="自 查 自 纠:"
214
-            options={selectChange}
215
-          />
216
-          <ProFormDatePicker
217
-            name="planRotationDate"
218
-            label="计划轮岗日期:"
219
-            width="100%"
220
-          />
221
-
222
-          <ProFormTextArea name="remark" label="备 注:" />
223
-        </>
224
-      )}
225
-    />
226
-  );
227
-};

+ 0
- 261
src/pages/rotationManage/rotationList/index.jsx 查看文件

@@ -1,261 +0,0 @@
1
-import React, { useEffect, useRef, useState } from "react";
2
-import { Button, Divider, Upload, Row, Col, Form, Input } from "antd";
3
-import List from "@/components/Page/List";
4
-import { deleteTaRotation, getTaRotation } from "@/service/taRotation";
5
-import { useNavigate } from "react-router-dom";
6
-import { DownloadOutlined } from "@ant-design/icons";
7
-import ModalForms from "@/components/Upload/ModalForms";
8
-import Massage from "@/components/Massage";
9
-import { uploadFile } from "@/components/Upload/request";
10
-import { queryDict, queryTable } from "@/utils/request";
11
-import { getSysPosition } from "@/service/sysposition";
12
-import { getSysOrg } from "@/service/sysorg";
13
-import dayjs from "dayjs";
14
-const getPosition = queryDict(getSysPosition, {
15
-  labelKey: "name",
16
-  valueKey: "positionId",
17
-});
18
-const getOrg = queryDict(getSysOrg, {
19
-  labelKey: "name",
20
-  valueKey: "name",
21
-});
22
-
23
-export default (props) => {
24
-  const columns = [
25
-    {
26
-      title: "序号",
27
-      dataIndex: "sort",
28
-      search: false,
29
-    },
30
-    {
31
-      title: "总行部门",
32
-      dataIndex: "headOfficeOrg",
33
-    },
34
-    {
35
-      title: "员工工号",
36
-      dataIndex: "employeeNum",
37
-    },
38
-    {
39
-      title: "员工姓名",
40
-      dataIndex: "employeeName",
41
-    },
42
-    {
43
-      title: "原单位机构号",
44
-      dataIndex: "specificOrgNum",
45
-      search: false,
46
-    },
47
-    {
48
-      title: "原单位具体名称",
49
-      dataIndex: "specificOrgName",
50
-      request: getOrg,
51
-      fieldProps: {
52
-        showSearch: true,
53
-        filterOption: (x, opt) => opt.label?.includes(x),
54
-      },
55
-    },
56
-    {
57
-      title: "对应机构层次",
58
-      dataIndex: "counterInstitutionsLevel",
59
-      search: false,
60
-    },
61
-    {
62
-      title: "当前职位",
63
-      dataIndex: "currentPosition",
64
-      search: false,
65
-    },
66
-
67
-    {
68
-      title: "对应重要岗位",
69
-      dataIndex: "counterImpPositions",
70
-      valueType: "select",
71
-      request: getPosition,
72
-      fieldProps: {
73
-        showSearch: true,
74
-        filterOption: (x, opt) => opt.label?.includes(x),
75
-      },
76
-    },
77
-    {
78
-      title: "对应总行条线",
79
-      dataIndex: "counterHeadOfficeLine",
80
-      search: false,
81
-    },
82
-    {
83
-      title: "从事岗位日期",
84
-      dataIndex: "durationOfEmployment",
85
-      valueType: "date",
86
-      search: false,
87
-    },
88
-    {
89
-      title: "轮岗周期要求(年)",
90
-      dataIndex: "rotationCycle",
91
-      search: false,
92
-    },
93
-    {
94
-      title: "轮岗截止日期",
95
-      dataIndex: "rotationDeadline",
96
-      valueType: "date",
97
-      search: false,
98
-    },
99
-    {
100
-      title: "轮岗截止日期",
101
-      dataIndex: "rotationDeadline",
102
-      valueType: "dateRange",
103
-      hideInTable:true,
104
-      search: {
105
-        transform: (val) => {
106
-          return {
107
-            startDeadline: val[0],
108
-            endDeadline: val[1],
109
-          };
110
-        },
111
-      },
112
-    },
113
-    {
114
-      title: "对应轮岗方式",
115
-      dataIndex: "counterRotationMethod",
116
-      search: false,
117
-    },
118
-    {
119
-      title: "轮岗后单位机构号",
120
-      dataIndex: "orgNumJobRotation",
121
-      search: false,
122
-    },
123
-    {
124
-      title: "轮岗后单位具体名称",
125
-      dataIndex: "specificNameOrgRotation",
126
-      search: false,
127
-    },
128
-    {
129
-      title: "轮岗后职位",
130
-      dataIndex: "jobRotationPost",
131
-      search: false,
132
-    },
133
-    {
134
-      title: "轮岗后对应重要岗位",
135
-      dataIndex: "counterImpPostRotation",
136
-      search: false,
137
-      valueType: "select",
138
-      request: getPosition,
139
-    },
140
-    {
141
-      title: "轮岗后对应总行条线",
142
-      dataIndex: "counterOfficeLineRotation",
143
-      search: false,
144
-    },
145
-    {
146
-      title: "轮岗执行时间",
147
-      dataIndex: "rotationExeTime",
148
-      valueType: "date",
149
-      search: false,
150
-    },
151
-    {
152
-      title: "轮岗执行时间",
153
-      dataIndex: "rotationExeTime",
154
-      valueType: "dateRange",
155
-      hideInTable:false,
156
-      search: {
157
-        transform: (val) => {
158
-          return {
159
-            startExeTime: val[0],
160
-            endExeTime: val[1],
161
-          };
162
-        },
163
-      },
164
-    },
165
-    {
166
-      title: "立查立改(是/否)",
167
-      dataIndex: "checkChange",
168
-      search: false,
169
-    },
170
-    {
171
-      title: "是否问责",
172
-      dataIndex: "accountability",
173
-      search: false,
174
-    },
175
-    {
176
-      title: "事实确认书编号",
177
-      dataIndex: "factConfirmationNum",
178
-      search: false,
179
-    },
180
-    {
181
-      title: "自查自纠(是/否)",
182
-      dataIndex: "checkCorrect",
183
-      search: false,
184
-    },
185
-    {
186
-      title: "计划轮岗日期",
187
-      dataIndex: "planRotationDate",
188
-      valueType: "date",
189
-      search: false,
190
-    },
191
-  ];
192
-  const [visible, setVisible] = useState(false);
193
-  const [open, setOpen] = useState(false);
194
-  const [errList, setErrList] = useState([]);
195
-  const ref = useRef();
196
-
197
-  const navigate = useNavigate();
198
-
199
-  const onEdit = (r) => {
200
-    navigate(`/rotationMange/rotationList/edit?id=${r.rotationId}`);
201
-  };
202
-  const onAdd = (r) => {
203
-    navigate("/rotationMange/rotationList/edit");
204
-  };
205
-
206
-  const onFinish = () => {
207
-    ref.current?.reload();
208
-  };
209
-
210
-  const onSuccess = (x) => {
211
-    if (x) {
212
-      const res = x.split("读取文件失败:");
213
-      if ((res[0] = "读取文件失败")) {
214
-        setOpen(true);
215
-        const errlist = res[1].split("\n").filter((x) => x);
216
-        setErrList(errlist);
217
-      }
218
-    }
219
-  };
220
-  const onDelete = (it) => {
221
-    deleteTaRotation(it.rotationId).then(() => {
222
-      ref.current?.reload();
223
-    });
224
-  };
225
-  return (
226
-    <>
227
-      <List
228
-        ref={ref}
229
-        rowKey="rotationId"
230
-        search={{ labelWidth: 130 }}
231
-        columns={columns}
232
-        request={getTaRotation}
233
-        onEdit={onEdit}
234
-        onAdd={onAdd}
235
-        onDelete={onDelete}
236
-        toolBarRender={() => [
237
-          <Button key="2" href={rotation} icon={<DownloadOutlined />}>
238
-            下载模板
239
-          </Button>,
240
-          <Button type="primary" key="1" onClick={() => setVisible(true)}>
241
-            导入
242
-          </Button>,
243
-        ]}
244
-      />
245
-      <ModalForms
246
-        visible={visible}
247
-        setVisible={setVisible}
248
-        onFinish={onFinish}
249
-        onSuccess={onSuccess}
250
-        uploadFile={uploadFile}
251
-      />
252
-
253
-      <Massage
254
-        title="读取错误提示"
255
-        open={open}
256
-        setOpen={setOpen}
257
-        errList={errList}
258
-      />
259
-    </>
260
-  );
261
-};

+ 0
- 79
src/pages/system/Incompatible/Edit.jsx 查看文件

@@ -1,79 +0,0 @@
1
-import React, { useCallback, useEffect, useRef } from "react";
2
-import Edit from "@/components/Page/Edit";
3
-import { Radio, Form } from 'antd';
4
-import {
5
-  ProForm,
6
-  ProFormDatePicker,
7
-  ProFormText,
8
-  ProFormSelect,
9
-  ProFormRadio
10
-} from "@ant-design/pro-components/es";
11
-import { postTaIncompatible, putTaIncompatible, getTaIncompatibleById } from "@/service/taIncompatible";
12
-import { getSysPosition } from "@/service/sysposition";
13
-import { queryDict } from "@/utils/request";
14
-
15
-const queryPosition = queryDict(getSysPosition, { labelKey: "name", valueKey: "positionId" });
16
-
17
-const request = {
18
-  save: postTaIncompatible,
19
-  update: putTaIncompatible,
20
-  get: getTaIncompatibleById
21
-};
22
-
23
-export default (props) => {
24
-  const formRef = useRef();
25
-
26
-  const initialValues = { status: 1 };
27
-
28
-  const statusOpt = [
29
-    { label: "正常", value: 1 },
30
-    { label: "不正常", value: 0 },
31
-  ];
32
-  const ruleOpt = [
33
-    { label: "普通规则", value: "regularRules" },
34
-    { label: "三个月规则", value: "monthRules" },
35
-  ]
36
-
37
-  return (
38
-    <Edit
39
-      formRef={formRef}
40
-      request={request}
41
-      initialValues={initialValues}
42
-      renderItems={() => (
43
-        <>
44
-          <ProFormSelect
45
-            labelCol={{ span: 6 }}
46
-            name="primaryPost"
47
-            label="原岗位"
48
-            request={queryPosition}
49
-          />
50
-          <ProFormSelect
51
-            labelCol={{ span: 6 }}
52
-            name="targetPost"
53
-            label="目标岗位"
54
-            request={queryPosition}
55
-          />
56
-          {/* <ProFormText labelCol={{ span: 6 }} name="rule" label="规则" /> */}
57
-          <ProFormRadio.Group
58
-            labelCol={{ span: 6 }}
59
-            name="rule"
60
-            label="规则"
61
-            options={ruleOpt}
62
-          />
63
-          <ProFormRadio.Group
64
-            labelCol={{ span: 6 }}
65
-            name="status"
66
-            label="状态"
67
-            options={statusOpt}
68
-          />
69
-          {/* <Form.Item labelCol={{ span: 6 }} label="状态" name="status">
70
-            <Radio.Group>
71
-              <Radio value={1}>正常</Radio>
72
-              <Radio value={0}>不正常</Radio>
73
-            </Radio.Group>
74
-          </Form.Item> */}
75
-        </>
76
-      )}
77
-    />
78
-  )
79
-}

+ 0
- 80
src/pages/system/Incompatible/index.jsx 查看文件

@@ -1,80 +0,0 @@
1
-import React from 'react'
2
-import { useNavigate } from "react-router-dom";
3
-import List from "@/components/Page/List";
4
-import { Button, message, Popconfirm } from "antd";
5
-import { getTaIncompatible, deleteTaIncompatible } from "@/service/taIncompatible";
6
-import { queryDict } from "@/utils/request";
7
-import { getSysPosition } from "@/service/sysposition";
8
-
9
-const queryPosition = queryDict(getSysPosition, { labelKey: "name", valueKey: "positionId" });
10
-
11
-export default (props) => {
12
-  const actionRef = React.useRef();
13
-  const navigate = useNavigate();
14
-
15
-  const columns = [
16
-    {
17
-      title: "原岗位",
18
-      dataIndex: "primaryPost",
19
-      valueType: "select",
20
-      request: queryPosition,
21
-      key: "primaryPost",
22
-    },
23
-    {
24
-      title: "目标岗位",
25
-      dataIndex: "targetPost",
26
-      valueType: "select",
27
-      request: queryPosition,
28
-      key: "targetPost",
29
-    },
30
-    {
31
-      title: "规则",
32
-      dataIndex: "rule",
33
-      key: "rule",
34
-      valueEnum: {
35
-        "regularRules": "普通规则",
36
-        "monthRules": "三个月规则",
37
-      },
38
-    },
39
-    {
40
-      title: "状态",
41
-      dataIndex: "status",
42
-      key: "status",
43
-      search: false,
44
-      valueEnum: {
45
-        1: {
46
-          text: "正常",
47
-          status: "Processing",
48
-        },
49
-        0: {
50
-          text: "禁用",
51
-          status: "Error",
52
-        },
53
-      },
54
-    }
55
-  ]
56
-
57
-  const onEdit = (it) => {
58
-    navigate(`/system/incompatible/edit?id=${it.incompatibleId}`);
59
-  };
60
-  const onAdd = () => {
61
-    navigate("/system/incompatible/edit");
62
-  };
63
-  const onDelete = (it) => {
64
-    deleteTaIncompatible(it.incompatibleId).then((res) => {
65
-      actionRef.current?.reload()
66
-    })
67
-  };
68
-
69
-  return (
70
-    <List
71
-      actionRef={actionRef}
72
-      rowKey="incompatibleId"
73
-      columns={columns}
74
-      onEdit={onEdit}
75
-      onAdd={onAdd}
76
-      onDelete={onDelete}
77
-      request={getTaIncompatible}
78
-    />
79
-  )
80
-}

+ 1
- 1
src/pages/system/org/index.jsx 查看文件

@@ -30,7 +30,7 @@ export default (props) => {
30 30
 
31 31
   const changeCurrent = (org) => {
32 32
     setCurrernt(org);
33
-    setParentId(org?.orgPId || "-1");
33
+    setParentId(org?.parentId || "-1");
34 34
   };
35 35
 
36 36
   const onSelect = (selectedKeys, e) => {

+ 6
- 6
src/pages/system/position/index.jsx 查看文件

@@ -27,12 +27,12 @@ export default (props) => {
27 27
       title: "岗位名称",
28 28
       dataIndex: "name",
29 29
     },
30
-    {
31
-      title: "所属机构",
32
-      dataIndex: "orgId",
33
-      valueType: "select",
34
-      request: queryOrg,
35
-    },
30
+    // {
31
+    //   title: "所属机构",
32
+    //   dataIndex: "orgId",
33
+    //   valueType: "select",
34
+    //   request: queryOrg,
35
+    // },
36 36
     {
37 37
       title: "状态",
38 38
       dataIndex: "status",

+ 4
- 4
src/pages/system/user/Edit.jsx 查看文件

@@ -42,10 +42,10 @@ export default (props) => {
42 42
     // 把时间去掉
43 43
     const rolesList = (values.rolesList || []).map((x) => ({
44 44
       ...x,
45
-      createDate: undefined,
46
-      updateDate: undefined,
47
-      createUser: undefined,
48
-      updateUser: undefined,
45
+      createdTime: undefined,
46
+      updatedTime: undefined,
47
+      createdBy: undefined,
48
+      updatedBy: undefined,
49 49
     }));
50 50
 
51 51
     postSysUser({

+ 34
- 0
src/routes/model/dictionary.jsx 查看文件

@@ -0,0 +1,34 @@
1
+import DictionaryScene from "@/pages/dictionary/scene/index";
2
+import DictionaryLine from "@/pages/dictionary/line/index";
3
+import { Outlet } from "react-router-dom";
4
+import { SettingOutlined } from "@ant-design/icons";
5
+
6
+
7
+const Dictionary = {
8
+  path: `dictionary`,
9
+  element: <Outlet />,
10
+  meta: {
11
+    title: "字典管理",
12
+    icon: <SettingOutlined />,
13
+    permission: "dictionary",
14
+  },
15
+  children: [
16
+    {
17
+      path: `scene`,
18
+      element: <DictionaryScene />,
19
+      meta: {
20
+        title: "场景管理",
21
+        permission: "dictionary.scene",
22
+      },
23
+    },
24
+    {
25
+      path: `line`,
26
+      element: <DictionaryLine />,
27
+      meta: {
28
+        title: "条线管理",
29
+        permission: "dictionary.line",
30
+      },
31
+    },
32
+  ],
33
+};
34
+export default Dictionary;

+ 58
- 0
src/routes/model/process.jsx 查看文件

@@ -0,0 +1,58 @@
1
+import ProcessList from "@/pages/process/list";
2
+import ProcessLook from "@/pages/process/look";
3
+import ProcessApproval from "@/pages/process/approval";
4
+import ProcessNotice from "@/pages/process/notice";
5
+import { Outlet } from "react-router-dom";
6
+import { BankOutlined, BranchesOutlined } from "@ant-design/icons";
7
+
8
+
9
+
10
+const Process = {
11
+  path: `process`,
12
+  element: <Outlet />,
13
+  meta: {
14
+    title: "流程管理",
15
+    icon: <BranchesOutlined />,
16
+    permission: "process",
17
+  },
18
+  children: [
19
+    {
20
+      path: `process/list`,
21
+      element: <ProcessList />,
22
+      meta: {
23
+        title: "流程列表",
24
+        icon: <BankOutlined />,
25
+        permission: "process.list",
26
+      },
27
+    },
28
+    {
29
+      path: `process/look`,
30
+      element: <ProcessLook />,
31
+      meta: {
32
+        title: "流程查看",
33
+        // hideInMenu: true,
34
+        permission: "process.look",
35
+      },
36
+    },
37
+    {
38
+      path: `process/approval`,
39
+      element: <ProcessApproval />,
40
+      meta: {
41
+        title: "流程审批",
42
+        // hideInMenu: true,
43
+        permission: "process.approval",
44
+      },
45
+    },
46
+    {
47
+      path: `process/notice`,
48
+      element: <ProcessNotice />,
49
+      meta: {
50
+        title: "审批通知",
51
+        // hideInMenu: true,
52
+        permission: "process.notice",
53
+      },
54
+    },
55
+  ],
56
+};
57
+
58
+export default Process;

+ 64
- 0
src/routes/model/project.jsx 查看文件

@@ -0,0 +1,64 @@
1
+import ProjectList from "@/pages/project/list";
2
+import ProjectListEdit from "@/pages/project/list/edit";
3
+import ProjectMeasurement from "@/pages/project/measurement";
4
+import ProjectProcess from "@/pages/project/process";
5
+import ProjectArchive from "@/pages/project/archive";
6
+import { Outlet } from "react-router-dom";
7
+import { SwapOutlined } from "@ant-design/icons";
8
+
9
+const Project = {
10
+  path: `project`,
11
+  element: <Outlet />,
12
+  meta: {
13
+    title: "项目管理",
14
+    icon: <SwapOutlined />,
15
+    permission: "project",
16
+  },
17
+  children: [
18
+    {
19
+      path: `list`,
20
+      element: <ProjectList />,
21
+      meta: {
22
+        title: "项目列表",
23
+        // icon: <BankOutlined />,
24
+        permission: "project.list",
25
+      },
26
+    },
27
+
28
+    {
29
+      path: `edit`,
30
+      element: <ProjectListEdit />,
31
+      meta: {
32
+        title: "项目维护",
33
+        hideInMenu: true,
34
+        permission: "project.edit",
35
+      },
36
+    },
37
+    {
38
+      path: `measurement`,
39
+      element: <ProjectMeasurement />,
40
+      meta: {
41
+        title: "项目测算模型",
42
+        permission: "project.measurement.model",
43
+      },
44
+    },
45
+    {
46
+      path: `process`,
47
+      element: <ProjectProcess />,
48
+      meta: {
49
+        title: "流程规则设置",
50
+        permission: "project.process.rule.setting",
51
+      },
52
+    },
53
+    {
54
+      path: `archive`,
55
+      element: <ProjectArchive />,
56
+      meta: {
57
+        title: "归档导出",
58
+        permission: "project.archive.export",
59
+      },
60
+    },
61
+  ],
62
+};
63
+
64
+export default Project;

+ 83
- 0
src/routes/model/system.jsx 查看文件

@@ -0,0 +1,83 @@
1
+import { Outlet } from "react-router-dom";
2
+import {
3
+  AuditOutlined,
4
+  BlockOutlined,
5
+  SettingOutlined,
6
+  TeamOutlined,
7
+  UserOutlined,
8
+} from "@ant-design/icons";
9
+
10
+import UserList from "@/pages/system/user/index";
11
+import UserEdit from "@/pages/system/user/Edit";
12
+import Role from "@/pages/system/role";
13
+import Org from "@/pages/system/org";
14
+import Position from "@/pages/system/position";
15
+import PositionEdit from "@/pages/system/position/edit/";
16
+
17
+const System = {
18
+  path: `system`,
19
+  element: <Outlet />,
20
+  meta: {
21
+    title: "系统管理",
22
+    icon: <SettingOutlined />,
23
+    menuType: "group",
24
+    permission: "system",
25
+  },
26
+  children: [
27
+    {
28
+      path: `org`,
29
+      element: <Org />,
30
+      meta: {
31
+        title: "机构管理",
32
+        permission: "org",
33
+        icon: <AuditOutlined />,
34
+      },
35
+    },
36
+    {
37
+      path: `user`,
38
+      element: <UserList />,
39
+      meta: {
40
+        title: "人员管理",
41
+        permission: "user",
42
+        icon: <UserOutlined />,
43
+      },
44
+    },
45
+    {
46
+      path: `user/edit`,
47
+      element: <UserEdit />,
48
+      meta: {
49
+        title: "人员维护",
50
+        permission: "user.edit",
51
+        hideInMenu: true,
52
+      },
53
+    },
54
+    {
55
+      path: `role`,
56
+      element: <Role />,
57
+      meta: {
58
+        title: "角色管理",
59
+        permission: "role",
60
+        icon: <TeamOutlined />,
61
+      },
62
+    },
63
+    {
64
+      path: `position`,
65
+      element: <Position />,
66
+      meta: {
67
+        title: "岗位管理",
68
+        permission: "position",
69
+        icon: <BlockOutlined />,
70
+      },
71
+    },
72
+    {
73
+      path: `position/edit`,
74
+      element: <PositionEdit />,
75
+      meta: {
76
+        title: "岗位维护",
77
+        permission: "position.edit",
78
+        hideInMenu: true,
79
+      },
80
+    },
81
+  ],
82
+};
83
+export default System;

+ 13
- 214
src/routes/routes.jsx 查看文件

@@ -1,36 +1,12 @@
1
-import { Navigate, Outlet } from "react-router-dom";
2
-import {
3
-  AuditOutlined,
4
-  CalendarOutlined,
5
-  BankOutlined,
6
-  UserOutlined,
7
-  BlockOutlined,
8
-  TeamOutlined,
9
-  SettingOutlined,
10
-  ScheduleOutlined,
11
-  SwapOutlined,
12
-  ApartmentOutlined,
13
-} from "@ant-design/icons";
1
+import { Navigate } from "react-router-dom";
2
+
14 3
 import AuthLayout from "@/layouts/AuthLayout";
15 4
 import Page404 from "@/pages/404";
16
-import Home from "@/pages/home";
17
-import History from "@/pages/home/History";
18
-import Detail from "@/pages/home/Detail";
19
-import UserList from "@/pages/system/user/index";
20
-import UserEdit from "@/pages/system/user/Edit";
21
-import Role from "@/pages/system/role";
22
-import Org from "@/pages/system/org";
23
-import Position from "@/pages/system/position";
24
-import PositionEdit from "@/pages/system/position/edit/";
25
-import Incompatible from "@/pages/system/Incompatible";
26
-import IncompatibleEdit from "@/pages/system/Incompatible/edit";
27 5
 
28
-import CompatibilityQuery from "@/pages/rotationManage/compatibilityQuery/index";
29
-import RotationList from "@/pages/rotationManage/rotationList/index";
30
-import RotationListEdit from "@/pages/rotationManage/rotationList/Edit";
31
-import MandatoryleaveList from "@/pages/mandatoryleave/index";
32
-import MandatoryleaveEdit from "@/pages/mandatoryleave/Edit";
33
-import Work from "@/pages/work";
6
+import System from "./model/system";
7
+import Project from "./model/project";
8
+import Process from "./model/process";
9
+import Dictionary from "./model/dictionary";
34 10
 
35 11
 import { flatten } from "./utils";
36 12
 
@@ -46,195 +22,18 @@ import { flatten } from "./utils";
46 22
  *    permission: 对应服务器端权限名称
47 23
  * }
48 24
  */
49
-
50 25
 export const routes = [
51 26
   {
52 27
     index: true,
53
-    element: <Navigate to="/home" replace={true} />,
54
-  },
55
-
56
-  {
57
-    path: `home`,
58
-    element: <Home />,
59
-    meta: {
60
-      title: "首页",
61
-      // permission: "org",
62
-      icon: <BankOutlined />,
63
-    },
64
-  },
65
-  {
66
-    path: `home/history`,
67
-    element: <History />,
68
-    meta: {
69
-      title: "历史列表",
70
-      hideInMenu: true,
71
-      // permission: "org"
72
-    },
73
-  },
74
-  {
75
-    path: `home/detail`,
76
-    element: <Detail />,
77
-    meta: {
78
-      title: "消息详情",
79
-      hideInMenu: true,
80
-      // permission: "org"
81
-    },
82
-  },
83
-  {
84
-    path: `rotationMange`,
85
-    element: <Outlet />,
86
-    meta: {
87
-      title: "轮岗管理",
88
-      icon: <SwapOutlined />,
89
-      permission: "rotation.mange",
90
-    },
91
-    children: [
92
-      {
93
-        path: `compatibilityQuery`,
94
-        element: <CompatibilityQuery />,
95
-        meta: {
96
-          title: "相容性查询",
97
-          // icon: <BankOutlined />,
98
-          permission: "compatibility",
99
-        },
100
-      },
101
-      {
102
-        path: `rotationList`,
103
-        element: <RotationList />,
104
-        meta: {
105
-          title: "轮岗列表",
106
-          // icon: <BankOutlined />,
107
-          permission: "rotation.list",
108
-        },
109
-      },
110
-      {
111
-        path: `rotationList/edit`,
112
-        element: <RotationListEdit />,
113
-        meta: {
114
-          title: "轮岗维护",
115
-          hideInMenu: true,
116
-          permission: "rotation.edit",
117
-        },
118
-      },
119
-    ],
120
-  },
121
-  {
122
-    path: `mandatoryLeaveMange`,
123
-    element: <Outlet />,
124
-    meta: {
125
-      title: "强制休假管理",
126
-      icon: <CalendarOutlined />,
127
-      permission: "mandatory.leave.mange",
128
-    },
129
-    children: [
130
-      {
131
-        path: `mandatoryLeaveList`,
132
-        element: <MandatoryleaveList />,
133
-        meta: {
134
-          title: "强制休假列表",
135
-          // icon: <BankOutlined />,
136
-          permission: "mandatory.leave.list",
137
-        },
138
-      },
139
-      {
140
-        path: `mandatoryleave/edit`,
141
-        element: <MandatoryleaveEdit />,
142
-        meta: {
143
-          title: "强制休假维护",
144
-          hideInMenu: true,
145
-          permission: "mandatory.leave.edit",
146
-        },
147
-      },
148
-    ],
149
-  },
150
-
151
-  {
152
-    path: `system`,
153
-    element: <Outlet />,
154
-    meta: {
155
-      title: "系统管理",
156
-      icon: <SettingOutlined />,
157
-      menuType: "group",
158
-      permission: "system",
159
-    },
160
-    children: [
161
-      {
162
-        path: `org`,
163
-        element: <Org />,
164
-        meta: {
165
-          title: "机构管理",
166
-          permission: "org",
167
-          icon: <AuditOutlined />,
168
-        },
169
-      },
170
-      {
171
-        path: `user`,
172
-        element: <UserList />,
173
-        meta: {
174
-          title: "人员管理",
175
-          permission: "user",
176
-          icon: <UserOutlined />,
177
-        },
178
-      },
179
-      {
180
-        path: `user/edit`,
181
-        element: <UserEdit />,
182
-        meta: {
183
-          title: "人员维护",
184
-          permission: "user.edit",
185
-          hideInMenu: true,
186
-        },
187
-      },
188
-      {
189
-        path: `role`,
190
-        element: <Role />,
191
-        meta: {
192
-          title: "角色管理",
193
-          permission: "role",
194
-          icon: <TeamOutlined />,
195
-        },
196
-      },
197
-      {
198
-        path: `position`,
199
-        element: <Position />,
200
-        meta: {
201
-          title: "岗位管理",
202
-          permission: "position",
203
-          icon: <BlockOutlined />,
204
-        },
205
-      },
206
-      {
207
-        path: `position/edit`,
208
-        element: <PositionEdit />,
209
-        meta: {
210
-          title: "岗位维护",
211
-          permission: "position.edit",
212
-          hideInMenu: true,
213
-        },
214
-      },
215
-      {
216
-        path: `incompatible`,
217
-        element: <Incompatible />,
218
-        meta: {
219
-          title: "不相容设置",
220
-          icon: <ApartmentOutlined />,
221
-          permission: "incompatible",
222
-        },
223
-      },
224
-      {
225
-        path: `incompatible/edit`,
226
-        element: <IncompatibleEdit />,
227
-        meta: {
228
-          title: "不相容维护",
229
-          // permission: "incompatible",
230
-          hideInMenu: true,
231
-        },
232
-      }
233
-    ],
28
+    element: <Navigate to="/project" replace={true} />,
234 29
   },
30
+  Project, //项目管理
31
+  Process, // 流程管理
32
+  Dictionary, //字典管理
33
+  System, //系统管理
235 34
 ];
236 35
 
237
-export function getAllRoutes (routes) {
36
+export function getAllRoutes(routes) {
238 37
   return [
239 38
     {
240 39
       path: "/",
@@ -255,4 +54,4 @@ export function getAllRoutes (routes) {
255 54
 }
256 55
 
257 56
 // 展平路由
258
-export const flattenRoutes = flatten(getAllRoutes(routes));
57
+export const flattenRoutes = flatten(getAllRoutes(routes));

+ 26
- 0
src/service/taAttach.js 查看文件

@@ -0,0 +1,26 @@
1
+import request from '@/utils/request';
2
+
3
+/*
4
+ * 分页查询
5
+ */
6
+export const getTaAttachList = (params) => request('/taAttach', { params });
7
+
8
+/*
9
+ * 依据ID查询
10
+ */
11
+export const getTaAttachById = (id) => request(`/taAttach/${id}`);
12
+
13
+/*
14
+ * 新增数据
15
+ */
16
+export const postTaAttach = (data) => request('/taAttach', { data, method: 'post' });
17
+
18
+/*
19
+ * 更新数据
20
+ */
21
+export const putTaAttach = (id, data) => request(`/taAttach/${id}`, { data, method: 'put' });
22
+
23
+/*
24
+ * 删除数据
25
+ */
26
+export const deleteTaAttach = (id) => request(`/taAttach/${id}`, { method: 'delete' });

+ 0
- 31
src/service/taIncompatible.js 查看文件

@@ -1,31 +0,0 @@
1
-import request from '@/utils/request';
2
-
3
-/*
4
- * 分页查询
5
- */
6
-export const getTaIncompatible = (params) => request('/taIncompatible', { params });
7
-
8
-/*
9
- * 相容性分页查询
10
- */
11
-export const getTaIncompatibleRule = (params) => request('/taIncompatible/rule', { params });
12
-
13
-/*
14
- * 新增数据
15
- */
16
-export const postTaIncompatible = (data) => request('/taIncompatible', { data, method: 'post' });
17
-
18
-/*
19
- * 通过ID查询单条数据
20
- */
21
-export const getTaIncompatibleById = (id) => request(`/taIncompatible/${id}`);
22
-
23
-/*
24
- * 更新数据
25
- */
26
-export const putTaIncompatible = (id, data) => request(`/taIncompatible/${id}`, { data, method: 'put' });
27
-
28
-/*
29
- * 通过主键删除数据
30
- */
31
-export const deleteTaIncompatible = (id) => request(`/taIncompatible/${id}`, { method: 'delete' });

+ 0
- 26
src/service/taMandatoryLeave.js 查看文件

@@ -1,26 +0,0 @@
1
-import request from '@/utils/request';
2
-
3
-/*
4
- * 分页查询
5
- */
6
-export const getTaMandatoryLeave = (params) => request('/taMandatoryLeave', { params });
7
-
8
-/*
9
- * 新增数据
10
- */
11
-export const postTaMandatoryLeave = (data) => request('/taMandatoryLeave', { data, method: 'post' });
12
-
13
-/*
14
- * 通过ID查询单条数据
15
- */
16
-export const getTaMandatoryLeaveById = (id) => request(`/taMandatoryLeave/${id}`);
17
-
18
-/*
19
- * 更新数据
20
- */
21
-export const putTaMandatoryLeave = (id, data) => request(`/taMandatoryLeave/${id}`, { data, method: 'put' });
22
-
23
-/*
24
- * 通过主键删除数据
25
- */
26
-export const deleteTaMandatoryLeave = (id) => request(`/taMandatoryLeave/${id}`, { method: 'delete' });

+ 0
- 26
src/service/taMessage.js 查看文件

@@ -1,26 +0,0 @@
1
-import request from '@/utils/request';
2
-
3
-/*
4
- * 分页查询
5
- */
6
-export const getTaMessage = (params) => request('/taMessage', { params });
7
-
8
-/*
9
- * 新增数据
10
- */
11
-export const postTaMessage = (data) => request('/taMessage', { data, method: 'post' });
12
-
13
-/*
14
- * 通过ID查询单条数据
15
- */
16
-export const getTaMessageById = (id) => request(`/taMessage/${id}`);
17
-
18
-/*
19
- * 更新数据
20
- */
21
-export const putTaMessage = (id, data) => request(`/taMessage/${id}`, { data, method: 'put' });
22
-
23
-/*
24
- * 通过主键删除数据
25
- */
26
-export const deleteTaMessage = (id) => request(`/taMessage/${id}`, { method: 'delete' });

+ 26
- 0
src/service/taNode.js 查看文件

@@ -0,0 +1,26 @@
1
+import request from '@/utils/request';
2
+
3
+/*
4
+ * 分页查询
5
+ */
6
+export const getTaNodeList = (params) => request('/taNode', { params });
7
+
8
+/*
9
+ * 依据ID查询
10
+ */
11
+export const getTaNodeById = (id) => request(`/taNode/${id}`);
12
+
13
+/*
14
+ * 新增数据
15
+ */
16
+export const postTaNode = (data) => request('/taNode', { data, method: 'post' });
17
+
18
+/*
19
+ * 更新数据
20
+ */
21
+export const putTaNode = (id, data) => request(`/taNode/${id}`, { data, method: 'put' });
22
+
23
+/*
24
+ * 删除数据
25
+ */
26
+export const deleteTaNode = (id) => request(`/taNode/${id}`, { method: 'delete' });

+ 26
- 0
src/service/taProject.js 查看文件

@@ -0,0 +1,26 @@
1
+import request from '@/utils/request';
2
+
3
+/*
4
+ * 分页查询
5
+ */
6
+export const getTaProjectList = (params) => request('/taProject', { params });
7
+
8
+/*
9
+ * 依据ID查询
10
+ */
11
+export const getTaProjectById = (id) => request(`/taProject/${id}`);
12
+
13
+/*
14
+ * 新增数据
15
+ */
16
+export const postTaProject = (data) => request('/taProject', { data, method: 'post' });
17
+
18
+/*
19
+ * 更新数据
20
+ */
21
+export const putTaProject = (id, data) => request(`/taProject/${id}`, { data, method: 'put' });
22
+
23
+/*
24
+ * 删除数据
25
+ */
26
+export const deleteTaProject = (id) => request(`/taProject/${id}`, { method: 'delete' });

+ 26
- 0
src/service/taProjectReport.js 查看文件

@@ -0,0 +1,26 @@
1
+import request from '@/utils/request';
2
+
3
+/*
4
+ * 分页查询
5
+ */
6
+export const getTaProjectReportList = (params) => request('/taProjectReport', { params });
7
+
8
+/*
9
+ * 依据ID查询
10
+ */
11
+export const getTaProjectReportById = (id) => request(`/taProjectReport/${id}`);
12
+
13
+/*
14
+ * 新增数据
15
+ */
16
+export const postTaProjectReport = (data) => request('/taProjectReport', { data, method: 'post' });
17
+
18
+/*
19
+ * 更新数据
20
+ */
21
+export const putTaProjectReport = (id, data) => request(`/taProjectReport/${id}`, { data, method: 'put' });
22
+
23
+/*
24
+ * 删除数据
25
+ */
26
+export const deleteTaProjectReport = (id) => request(`/taProjectReport/${id}`, { method: 'delete' });

+ 0
- 26
src/service/taRotation.js 查看文件

@@ -1,26 +0,0 @@
1
-import request from '@/utils/request';
2
-
3
-/*
4
- * 分页查询
5
- */
6
-export const getTaRotation = (params) => request('/taRotation', { params });
7
-
8
-/*
9
- * 新增数据
10
- */
11
-export const postTaRotation = (data) => request('/taRotation', { data, method: 'post' });
12
-
13
-/*
14
- * 通过ID查询单条数据
15
- */
16
-export const getTaRotationById = (id) => request(`/taRotation/${id}`);
17
-
18
-/*
19
- * 更新数据
20
- */
21
-export const putTaRotation = (id, data) => request(`/taRotation/${id}`, { data, method: 'put' });
22
-
23
-/*
24
- * 通过主键删除数据
25
- */
26
-export const deleteTaRotation = (id) => request(`/taRotation/${id}`, { method: 'delete' });

+ 26
- 0
src/service/taSourceAttach.js 查看文件

@@ -0,0 +1,26 @@
1
+import request from '@/utils/request';
2
+
3
+/*
4
+ * 分页查询
5
+ */
6
+export const getTaSourceAttachList = (params) => request('/taSourceAttach', { params });
7
+
8
+/*
9
+ * 依据ID查询
10
+ */
11
+export const getTaSourceAttachById = (id) => request(`/taSourceAttach/${id}`);
12
+
13
+/*
14
+ * 新增数据
15
+ */
16
+export const postTaSourceAttach = (data) => request('/taSourceAttach', { data, method: 'post' });
17
+
18
+/*
19
+ * 更新数据
20
+ */
21
+export const putTaSourceAttach = (id, data) => request(`/taSourceAttach/${id}`, { data, method: 'put' });
22
+
23
+/*
24
+ * 删除数据
25
+ */
26
+export const deleteTaSourceAttach = (id) => request(`/taSourceAttach/${id}`, { method: 'delete' });

+ 26
- 0
src/service/tdLine.js 查看文件

@@ -0,0 +1,26 @@
1
+import request from '@/utils/request';
2
+
3
+/*
4
+ * 分页查询
5
+ */
6
+export const getTdLineList = (params) => request('/tdLine', { params });
7
+
8
+/*
9
+ * 依据ID查询
10
+ */
11
+export const getTdLineById = (id) => request(`/tdLine/${id}`);
12
+
13
+/*
14
+ * 新增数据
15
+ */
16
+export const postTdLine = (data) => request('/tdLine', { data, method: 'post' });
17
+
18
+/*
19
+ * 更新数据
20
+ */
21
+export const putTdLine = (id, data) => request(`/tdLine/${id}`, { data, method: 'put' });
22
+
23
+/*
24
+ * 删除数据
25
+ */
26
+export const deleteTdLine = (id) => request(`/tdLine/${id}`, { method: 'delete' });

+ 26
- 0
src/service/tdSceneMgt.js 查看文件

@@ -0,0 +1,26 @@
1
+import request from '@/utils/request';
2
+
3
+/*
4
+ * 分页查询
5
+ */
6
+export const getTdSceneMgtList = (params) => request('/tdSceneMgt', { params });
7
+
8
+/*
9
+ * 依据ID查询
10
+ */
11
+export const getTdSceneMgtById = (id) => request(`/tdSceneMgt/${id}`);
12
+
13
+/*
14
+ * 新增数据
15
+ */
16
+export const postTdSceneMgt = (data) => request('/tdSceneMgt', { data, method: 'post' });
17
+
18
+/*
19
+ * 更新数据
20
+ */
21
+export const putTdSceneMgt = (id, data) => request(`/tdSceneMgt/${id}`, { data, method: 'put' });
22
+
23
+/*
24
+ * 删除数据
25
+ */
26
+export const deleteTdSceneMgt = (id) => request(`/tdSceneMgt/${id}`, { method: 'delete' });

+ 26
- 0
src/service/tdTemplate.js 查看文件

@@ -0,0 +1,26 @@
1
+import request from '@/utils/request';
2
+
3
+/*
4
+ * 分页查询
5
+ */
6
+export const getTdTemplateList = (params) => request('/tdTemplate', { params });
7
+
8
+/*
9
+ * 依据ID查询
10
+ */
11
+export const getTdTemplateById = (id) => request(`/tdTemplate/${id}`);
12
+
13
+/*
14
+ * 新增数据
15
+ */
16
+export const postTdTemplate = (data) => request('/tdTemplate', { data, method: 'post' });
17
+
18
+/*
19
+ * 更新数据
20
+ */
21
+export const putTdTemplate = (id, data) => request(`/tdTemplate/${id}`, { data, method: 'put' });
22
+
23
+/*
24
+ * 删除数据
25
+ */
26
+export const deleteTdTemplate = (id) => request(`/tdTemplate/${id}`, { method: 'delete' });

+ 2
- 2
src/store/system.js 查看文件

@@ -5,8 +5,8 @@ const useSystemModel = create(({ setState }) => {
5 5
     hashRoute: true,
6 6
     theme: 'light',
7 7
     app: {
8
-      fullName: '不相容岗位管理系统',
9
-      shorName: '不相容岗位管理',
8
+      fullName: '个金项目管理',
9
+      shorName: '个金项目管理',
10 10
       company: ''
11 11
     }
12 12
   }

+ 1
- 1
vite.config.js 查看文件

@@ -8,7 +8,7 @@ export default defineConfig({
8 8
   server: {
9 9
     host: "0.0.0.0",
10 10
     proxy: {
11
-      "/api": "http://192.168.89.13:8001",
11
+      "/api": "http://192.168.89.13:8002",
12 12
     },
13 13
     port: 3009,
14 14
   },