Your Name před 2 roky
rodič
revize
fbc24865eb

+ 4
- 3
src/pages/login/style.less Zobrazit soubor

@@ -22,8 +22,9 @@
22 22
   .login-card {
23 23
     width: 900px;
24 24
     height: 600px;
25
-    border-radius: 4px;
25
+    border-radius: 8px;
26 26
     overflow: hidden;
27
+    backdrop-filter: blur(6px);
27 28
     box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.2);
28 29
     
29 30
     display: grid;
@@ -31,10 +32,10 @@
31 32
   }
32 33
 
33 34
   .login-card-left {
34
-    background: rgba(255, 255, 255, 0.9);
35
+    background: rgba(255, 255, 255, 0.45);
35 36
   }
36 37
   .login-card-right {
37
-    background: #EFF6FA;
38
+    // background: #EFF6FA;
38 39
   }
39 40
 
40 41
   .login-form-box {

+ 18
- 34
src/pages/position/edit/index.jsx Zobrazit soubor

@@ -2,30 +2,9 @@ import React, { useRef, useEffect, useState } from 'react';
2 2
 import { Button, Card, Form, Input, Select } from 'antd';
3 3
 import useBool from '@/utils/hooks/useBool';
4 4
 import { getSysPosition, postSysPosition, putSysPosition, getSysPositionById } from "@/service/sysposition";
5
+import { getSysOrg } from '@/service/sysorg';
5 6
 import { useSearchParams, useNavigate } from 'react-router-dom';
6
-
7
-const formItemLayout = {
8
-  labelCol: {
9
-    xs: { span: 24 },
10
-    sm: { span: 8 },
11
-  },
12
-  wrapperCol: {
13
-    xs: { span: 24 },
14
-    sm: { span: 16 },
15
-  },
16
-};
17
-const tailFormItemLayout = {
18
-  wrapperCol: {
19
-    xs: {
20
-      span: 24,
21
-      offset: 0,
22
-    },
23
-    sm: {
24
-      span: 16,
25
-      offset: 8,
26
-    },
27
-  },
28
-};
7
+import { formItemLayout, tailFormItemLayout } from '@/utils/form';
29 8
 
30 9
 const { Option } = Select;
31 10
 export default (props) => {
@@ -37,7 +16,8 @@ export default (props) => {
37 16
   const actionRef = useRef();
38 17
   const [searchParams, setSearchParams] = useSearchParams();
39 18
   const id = searchParams.get("id");
40
-  const [sysPositionList, setSysPositionList] = useState([]);
19
+  const [positionList, setPositionList] = useState([]);
20
+  const [orgList, setOrgList] = useState([]);
41 21
 
42 22
   useEffect(() => {
43 23
     if (id) {
@@ -49,8 +29,10 @@ export default (props) => {
49 29
 
50 30
   useEffect(() => {
51 31
     getSysPosition({ pageSize: 999 }).then((res) => {
52
-      console.log('res', res.records);
53
-      setSysPositionList(res.records);
32
+      setPositionList(res.records || []);
33
+    })
34
+    getSysOrg({ pageSize: 999 }).then((res) => {
35
+      setOrgList(res.records || []);
54 36
     })
55 37
   }, [])
56 38
 
@@ -75,10 +57,6 @@ export default (props) => {
75 57
     }
76 58
   }
77 59
 
78
-
79
-  console.log('tiantian', sysPositionList);
80
-
81
-
82 60
   return (
83 61
     <Card loading={loading}>
84 62
       <Form onFinish={onFinish} form={form} {...formItemLayout} scrollToFirstError style={{ maxWidth: '1000px' }}>
@@ -92,16 +70,22 @@ export default (props) => {
92 70
           name="positionPId"
93 71
           label="上级岗位"
94 72
         >
95
-          <Input />
73
+          <Select allowClear>
74
+            {positionList.map((item) => (
75
+              <Option value={item.positionId} key={item.positionId}>
76
+                {item.name}
77
+              </Option>
78
+            ))}
79
+          </Select>
96 80
         </Form.Item>
97 81
         <Form.Item
98 82
           name="orgId"
99 83
           label="所属单位"
100 84
         >
101 85
           <Select allowClear>
102
-            {sysPositionList.map((item) => (
103
-              <Option value={item.positionId} key={item.positionId}>
104
-                {item.orgId}
86
+            {orgList.map((item) => (
87
+              <Option value={item.orgId} key={item.orgId}>
88
+                {item.name}
105 89
               </Option>
106 90
             ))}
107 91
           </Select>

+ 5
- 1
src/pages/position/list/index.jsx Zobrazit soubor

@@ -1,11 +1,13 @@
1 1
 import React from "react";
2 2
 import { useNavigate } from "react-router-dom";
3
-import { queryTable } from "@/utils/request";
3
+import { queryTable, queryDict } from "@/utils/request";
4 4
 import { ProTable } from "@ant-design/pro-components";
5 5
 import { Button, message, Popconfirm } from "antd";
6 6
 import { getSysPosition, deleteSysPosition } from "@/service/sysposition";
7
+import { getSysOrg } from "@/service/sysorg";
7 8
 
8 9
 const querySysPositionList = queryTable(getSysPosition);
10
+const queryOrg = queryDict(getSysOrg, {labelKey: 'name', valueKey: 'orgId'})
9 11
 
10 12
 export default (props) => {
11 13
   const actionRef = React.useRef();
@@ -39,6 +41,8 @@ export default (props) => {
39 41
     {
40 42
       title: "所属单位",
41 43
       dataIndex: "orgId",
44
+      valueType: 'select',
45
+      request: queryOrg,
42 46
     },
43 47
 
44 48
     {

+ 29
- 26
src/pages/user/Edit.jsx Zobrazit soubor

@@ -5,31 +5,11 @@ import { getSysRole } from '@/service/sysrole';
5 5
 import { postSysUser, getSysUserById } from '@/service/sysuser';
6 6
 import { useSearchParams, useNavigate } from 'react-router-dom';
7 7
 import Page from '@/components/Page';
8
+import {formItemLayout, tailFormItemLayout} from '@/utils/form';
9
+import { getSysOrg } from '@/service/sysorg';
10
+import { getSysPosition } from '@/service/sysposition';
8 11
 import Account from './Account';
9 12
 
10
-const formItemLayout = {
11
-  labelCol: {
12
-    xs: { span: 24 },
13
-    sm: { span: 8 },
14
-  },
15
-  wrapperCol: {
16
-    xs: { span: 24 },
17
-    sm: { span: 16 },
18
-  },
19
-};
20
-const tailFormItemLayout = {
21
-  wrapperCol: {
22
-    xs: {
23
-      span: 24,
24
-      offset: 0,
25
-    },
26
-    sm: {
27
-      span: 16,
28
-      offset: 8,
29
-    },
30
-  },
31
-};
32
-
33 13
 const { Option } = Select;
34 14
 
35 15
 export default (props) => {
@@ -37,6 +17,9 @@ export default (props) => {
37 17
   const [submiting, startSubmit, cancelSubmit] = useBool();
38 18
   const [open, setShow, setHidden] = useBool(false);
39 19
   const [roleList, setRoleList] = React.useState([]);
20
+  const [orgList, setOrgList] = React.useState([]);
21
+  const [org, setOrg] = React.useState();
22
+  const [posList, setPosList] = React.useState([]);
40 23
   const [searchParams] = useSearchParams();
41 24
   const [form] = Form.useForm();
42 25
   const [user, setUser] = React.useState();
@@ -61,13 +44,21 @@ export default (props) => {
61 44
   }
62 45
 
63 46
   React.useEffect(() => {
64
-    getSysRole({ pageSize: 500 }).then(res => setRoleList(res.records));
47
+    getSysRole({ pageSize: 500 }).then(res => setRoleList(res.records || []));
48
+    getSysOrg({ pageSize: 500 }).then(res => setOrgList(res.records || []));
65 49
   }, []);
50
+
51
+  React.useEffect(() => {
52
+    if (org) {
53
+      getSysPosition({orgId: org, pageSize: 500}).then(res => setPosList(res.records || []));
54
+    }
55
+  }, [org])
66 56
   
67 57
   React.useEffect(() => {
68 58
     if (id) {
69 59
       startLoading();
70 60
       getSysUserById(id).then(res => {
61
+        setOrg(res.orgId);
71 62
         setUser(res);
72 63
         form.setFieldsValue({
73 64
           ...res,
@@ -114,13 +105,25 @@ export default (props) => {
114 105
             name="orgId"
115 106
             label="单位"
116 107
           >
117
-            <Input />
108
+            <Select onChange={setOrg}>
109
+              {
110
+                orgList.map(x => (
111
+                  <Option key={x.orgId}>{x.name}</Option>
112
+                ))
113
+              }
114
+            </Select>
118 115
           </Form.Item>
119 116
           <Form.Item
120 117
             name="positionId"
121 118
             label="岗位"
122 119
           >
123
-            <Input />
120
+            <Select>
121
+              {
122
+                posList.map(x => (
123
+                  <Option key={x.positionId}>{x.name}</Option>
124
+                ))
125
+              }
126
+            </Select>
124 127
           </Form.Item>
125 128
           <Form.Item
126 129
             name="rolesList"

+ 9
- 1
src/pages/user/index.jsx Zobrazit soubor

@@ -1,12 +1,16 @@
1 1
 import React from "react";
2 2
 import { useNavigate } from "react-router-dom";
3
-import { queryTable } from "@/utils/request";
3
+import { queryTable, queryDict } from "@/utils/request";
4 4
 import { ProTable } from "@ant-design/pro-components";
5 5
 import Page from "@/components/Page";
6 6
 import { Button, message, Popconfirm } from "antd";
7 7
 import { getSysUser, updateUserStatus, deleteSysUser } from "@/service/sysuser";
8
+import { getSysOrg } from "@/service/sysorg";
9
+import { getSysPosition } from "@/service/sysposition";
8 10
 
9 11
 const queryUserList = queryTable(getSysUser);
12
+const queryOrg = queryDict(getSysOrg, {labelKey: 'name', valueKey: 'orgId'});
13
+const queryPosition = queryDict(getSysPosition, {labelKey: 'name', valueKey: 'positionId'})
10 14
 
11 15
 export default (props) => {
12 16
   const actionRef = React.useRef();
@@ -36,6 +40,8 @@ export default (props) => {
36 40
     {
37 41
       title: "单位",
38 42
       dataIndex: "orgId",
43
+      valueType: 'select',
44
+      request: queryOrg,
39 45
     },
40 46
     {
41 47
       title: "姓名",
@@ -48,6 +54,8 @@ export default (props) => {
48 54
     {
49 55
       title: "岗位",
50 56
       dataIndex: "positionId",
57
+      valueType: 'select',
58
+      request: queryPosition,
51 59
     },
52 60
     {
53 61
       title: "状态",

+ 2
- 4
src/utils/request.js Zobrazit soubor

@@ -19,8 +19,6 @@ instance.interceptors.request.use(function (config) {
19 19
     noTip = method.toLocaleLowerCase() === 'get' ? true : false;
20 20
   }
21 21
 
22
-  console.log('---------------')
23
-
24 22
   // 在发送请求之前做些什么
25 23
   return {
26 24
     ...config,
@@ -105,8 +103,8 @@ export function queryTable (apiRequest) {
105 103
   };
106 104
 }
107 105
 
108
-export function queryDict (apiRequest) {
109
-  return function (params, labelKey = 'name', valueKey = 'id') {
106
+export function queryDict (apiRequest, {labelKey = 'name', valueKey = 'id'}) {
107
+  return function (params) {
110 108
     const { current, pageSize, ...leftParams } = params || {};
111 109
     return apiRequest({
112 110
       pageSize: 9999,