Yansen пре 2 година
родитељ
комит
52e5f4449b

+ 1
- 1
public/config.js Прегледај датотеку

@@ -3,4 +3,4 @@
3 3
 DH_MONITOR = 'http://192.168.3.2';
4 4
 
5 5
 // 海康监控
6
-HK_MONITOR = 'http://192.168.3.2';
6
+HK_MONITOR = 'http://192.168.3.3';

BIN
src/assets/avatar.png Прегледај датотеку


+ 2
- 0
src/layouts/AuthLayout/components/Header/Exit.jsx Прегледај датотеку

@@ -3,6 +3,7 @@ import { useNavigate } from 'react-router-dom';
3 3
 import { LogoutOutlined } from '@ant-design/icons';
4 4
 import { Button, Modal } from 'antd';
5 5
 import { useModel } from '@/store';
6
+import { logout } from '@/services/user';
6 7
 
7 8
 const { confirm } = Modal;
8 9
 
@@ -15,6 +16,7 @@ export default (props) => {
15 16
     confirm({
16 17
       title: '确认退出系统?',
17 18
       onOk: () => {
19
+        logout();
18 20
         sessionStorage.removeItem('token');
19 21
         setUser();
20 22
         navigate('/login?back=true');

+ 1
- 3
src/layouts/AuthLayout/components/Header/SplitMenu.jsx Прегледај датотеку

@@ -13,12 +13,10 @@ export default (props) => {
13 13
     }
14 14
 
15 15
     return [homeIndex].concat(items);
16
-    return items;
17 16
   }, [items]);
17
+  
18 18
   const selectedKeys = React.useMemo(() => `/${location.pathname.split('/')[1]}`, [location.pathname]);
19 19
 
20
-  console.log(menus, items)
21
-
22 20
   return (
23 21
     <Menu className='split-menu' mode="horizontal" items={menus} selectedKeys={selectedKeys} />
24 22
   )

+ 16
- 6
src/layouts/AuthLayout/components/Header/User.jsx Прегледај датотеку

@@ -1,12 +1,17 @@
1 1
 import React, { useState, forwardRef, useRef, useImperativeHandle } from 'react';
2
-import { Avatar, Button, Dropdown, Menu, Form, Input, Modal } from 'antd';
3
-import { useModel } from '@/store'
2
+import { Avatar, Button, Dropdown, Menu, Form, Input, Modal, message } from 'antd';
3
+import avatarImg from '@/assets/avatar.png';
4
+import { changePassword } from '@/services/user'
5
+import md5 from 'md5';
4 6
 
5 7
 const ChangePassword = forwardRef((props, ref) => {
6 8
   const [visible, setVisible] = useState(false);
7 9
 
8 10
   const onFinish = (values) => {
9
-    console.log('Success:', values);
11
+    changePassword({
12
+      originPassword: md5(values.password),
13
+      newPassword: md5(values.newPassword)
14
+    }).then(() => setVisible(false));
10 15
   };
11 16
 
12 17
   useImperativeHandle(ref, () => {
@@ -16,7 +21,12 @@ const ChangePassword = forwardRef((props, ref) => {
16 21
   });
17 22
 
18 23
   return (
19
-    <Modal title="修改密码" visible={visible} onCancel={() => setVisible(false)}>
24
+    <Modal
25
+      title="修改密码"
26
+      visible={visible}
27
+      onCancel={() => setVisible(false)}
28
+      footer={null}
29
+    >
20 30
       <Form
21 31
         labelCol={{ span: 8 }}
22 32
         wrapperCol={{ span: 16 }}
@@ -66,7 +76,7 @@ export default (props) => {
66 76
   ];
67 77
 
68 78
   const passRef = useRef();
69
-  const { user = {} } = useModel('user');
79
+  const { user = {} } = props;
70 80
 
71 81
   const onClick = ({ key }) => {
72 82
     if (key === 'changePassword') {
@@ -79,7 +89,7 @@ export default (props) => {
79 89
   return (
80 90
     <Dropdown overlay={menu}>
81 91
       <div className="user-info">
82
-        <Avatar size={24} src="https://joeschmoe.io/api/v1/random" />
92
+        <Avatar size={24} src={avatarImg} style={{background: '#fff'}} />
83 93
         <span className='font'>{user.name}</span>
84 94
         <ChangePassword ref={passRef} />
85 95
       </div>

+ 2
- 2
src/layouts/AuthLayout/components/Header/index.jsx Прегледај датотеку

@@ -10,7 +10,7 @@ import SplitMenu from './SplitMenu';
10 10
 const { Header } = Layout;
11 11
 
12 12
 export default (props) => {
13
-  const { menus, theme, location } = props;
13
+  const { menus, theme, location, user } = props;
14 14
 
15 15
   const className = useMemo(() => classNames({
16 16
     'layout-header': true,
@@ -22,7 +22,7 @@ export default (props) => {
22 22
       <Logo />
23 23
       <SplitMenu items={menus} location={location} />
24 24
       <Space>
25
-        <User />
25
+        <User user={user} />
26 26
         <Exit />
27 27
       </Space>
28 28
     </Header>

+ 1
- 1
src/layouts/AuthLayout/index.jsx Прегледај датотеку

@@ -34,7 +34,7 @@ export default (props) => {
34 34
             ? <Outlet />
35 35
             : (
36 36
               <Layout style={{ height: '100vh' }}>
37
-                <Header theme={theme} menus={splitMenus} location={location} />
37
+                <Header user={user} theme={theme} menus={splitMenus} location={location} />
38 38
                 <Layout style={{ height: 'calc(100vh - var(--header-height))' }}>
39 39
                   { !noSiderBar && <SiderBar theme={theme} menus={siderMenus} location={location} /> }
40 40
                   <Container location={location} noFooter={noFooter} />

+ 12
- 1
src/pages/dish/edit/index.jsx Прегледај датотеку

@@ -1,6 +1,6 @@
1 1
 import { addDish, getDishById } from '@/services/dish';
2 2
 import { getStoreList } from '@/services/stock';
3
-import { PageContainer, ProForm, ProFormSelect, ProFormText, ProFormMoney } from '@ant-design/pro-components';
3
+import { PageContainer, ProForm, ProFormSelect, ProFormText, ProFormMoney, ProFormDigit } from '@ant-design/pro-components';
4 4
 import { useNavigate, useSearchParams } from 'react-router-dom';
5 5
 import { Card, Col, message, Row, Space } from 'antd';
6 6
 import { useEffect, useRef, useState } from 'react';
@@ -98,6 +98,17 @@ export default (props) => {
98 98
             width={460}
99 99
             options={foodDict}
100 100
           />
101
+          <ProFormDigit
102
+            label="元素"
103
+            name="calorie"
104
+            min={0}
105
+            width={460}
106
+            placeholder="卡路里"
107
+            fieldProps={{
108
+              addonAfter: '卡',
109
+              precision: '4'
110
+            }}
111
+          />
101 112
         </ProForm>
102 113
       </Card>
103 114
     </PageContainer>

+ 2
- 2
src/pages/guaranteeTask/Edit/BasicForm.jsx Прегледај датотеку

@@ -201,8 +201,8 @@ export default (props) => {
201 201
         <Col offset={6} span={12}>
202 202
           <Button type="primary" htmlType="submit" loading={loading}>提交</Button>
203 203
           <Button style={{ marginLeft: '48px' }} onClick={() => navigate(-1)}>返回</Button>
204
-          <Button style={{ marginLeft: '48px' }}>
205
-            <Link target="_blank" to={`/guaranteeTask/print?id=${id}`}>打印预览</Link>
204
+          <Button style={{ marginLeft: '48px' }} disabled={!id}>
205
+            <a target="_blank" href={`${window.location.pathname}#/task/guaranteeTask/print?id=${id}`}>打印预览</a>
206 206
           </Button>
207 207
         </Col>
208 208
       </Row>

+ 14
- 0
src/services/user.js Прегледај датотеку

@@ -16,6 +16,20 @@ import request, { restful } from '@/utils/request';
16 16
   * @returns
17 17
   */
18 18
   export const login = (data) => request('/login', { data, method: 'post' });
19
+  
20
+ /**
21
+  * 登出
22
+  * @param {*} 
23
+  * @returns
24
+  */
25
+  export const logout = () => request.post('/logout', { silent: true });
26
+  
27
+ /**
28
+  * 修改密码
29
+  * @param {*} 
30
+  * @returns
31
+  */
32
+  export const changePassword = (data) => request.put('/change-password', data, { successTip: '密码修改成功' });
19 33
 
20 34
 
21 35
   const [

+ 1
- 1
src/utils/request.js Прегледај датотеку

@@ -42,7 +42,7 @@ instance.interceptors.response.use(function (response) {
42 42
       sessionStorage.setItem('token', data.data.token);
43 43
     }
44 44
 
45
-    if (config.successTip) {
45
+    if (config.successTip && !config.silent) {
46 46
       message.success(typeof success === 'string' ? successTip : '操作成功');
47 47
     }
48 48