Skip to content

Commit 85e3fc2

Browse files
committed
feat: enable mfsu
1 parent c985338 commit 85e3fc2

File tree

14 files changed

+75
-167
lines changed

14 files changed

+75
-167
lines changed

docs/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ features:
1717
details: 便捷的动态主题切换功能,让你的应用从此绚丽多彩
1818
- title: 打包
1919
details: 内置 `.zip`、`docker` 镜像两种打包风格,让你的业务推动更顺滑
20+
- title: mfsu 开启
21+
details: 默认开启 `mfsu` ,编译速度飙升,耗时仅为不开启时的 1/20 ~ 1/5。
2022
footer: MIT Licensed | Copyright © 2020-present Howard.Zuo
2123
---
2224

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { defineConfig } from 'umi'
22

33
export default defineConfig({
4-
dynamicImport: {},
54
forkTSChecker: {}
5+
mfsu: false
66
})

generators/app/templates/config/config.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,7 @@ export default defineConfig({
1010
antd: true,
1111
title: true
1212
},
13-
webpack5: {}
13+
webpack5: {},
14+
dynamicImport: {},
15+
mfsu: {}
1416
})

generators/app/templates/mock/_utils/LdapService.ts

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Request } from 'umi'
2-
import faker from 'faker'
32
import ResponseError from './ResponseError'
43

54
export const FAKE_ADMIN_TOKEN = 'oijhdvkdsiiopwejr3209jds'
@@ -40,27 +39,6 @@ interface ILdapUser {
4039
}
4140

4241
class LdapService {
43-
searchUsersByName(name: string): Promise<ILdapUser[]> {
44-
return new Promise(resolve => {
45-
setTimeout(() => {
46-
resolve(
47-
[faker.random.number(), faker.random.number(), faker.random.number()].map(n => {
48-
const card = faker.helpers.contextualCard()
49-
return {
50-
id: n,
51-
name: card.name,
52-
email: card.email,
53-
team: faker.commerce.department(),
54-
phone: card.phone,
55-
avatar: card.avatar,
56-
permissions: []
57-
} as ILdapUser
58-
})
59-
)
60-
}, 500)
61-
})
62-
}
63-
6442
async getCurrentUser(req: Request): Promise<ILdapUser> {
6543
const token = req.get('Authorization')
6644
if (FAKE_ADMIN_TOKEN === token) {

generators/app/templates/mock/users.ts

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import { Request, Response } from 'umi'
22
import { success, failure, SHOW_TYPE } from './_utils/helper'
33
import ResponseError from './_utils/ResponseError'
44
import UserStore, { UserStatus, IRawUser } from './_utils/UserStore'
5-
import LdapService from './_utils/LdapService'
65

76
export default {
87
'get /apis/users': async function(req: Request, res: Response) {
@@ -24,23 +23,6 @@ export default {
2423
return res.json(success(users))
2524
},
2625

27-
'get /apis/ldapusers': async function(req: Request, res: Response) {
28-
const { name } = req.query
29-
30-
const ldapUsers = await LdapService.searchUsersByName(name as string)
31-
32-
return res.json(
33-
success(
34-
ldapUsers.map(l => ({
35-
name: l.name,
36-
email: l.email,
37-
team: l.team,
38-
status: UserStatus.INITIAL
39-
}))
40-
)
41-
)
42-
},
43-
4426
'post /apis/users': async function(req: Request, res: Response) {
4527
const { name, team, status, email } = req.body
4628

generators/app/templates/package.json.vm

Lines changed: 17 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,27 @@
1717
"*.{j,t}s?(x)": "eslint --max-warnings=0 --ignore-pattern=public/**/*"
1818
},
1919
"devDependencies": {
20-
"@commitlint/cli": "^12.0.1",
21-
"@commitlint/config-conventional": "^12.0.1",
22-
"@types/classnames": "^2.2.11",
23-
"@types/faker": "^5.1.7",
24-
"@types/jest": "^26.0.20",
25-
"@types/js-cookie": "^2.2.6",
26-
"@umijs/plugin-access": "^2.3.3",
27-
"@umijs/plugin-antd": "^0.9.1",
28-
"@umijs/plugin-initial-state": "^2.3.0",
29-
"@umijs/plugin-locale": "^0.10.9",
30-
"@umijs/plugin-model": "^2.5.6",
31-
"@umijs/plugin-request": "^2.5.2",
32-
"@umijs/test": "^3.4.0",
33-
"faker": "^5.4.0",
34-
"husky": "^5.1.3",
35-
"lint-staged": "^10.5.4",
20+
"@commitlint/cli": "^12.1.4",
21+
"@commitlint/config-conventional": "^12.1.4",
22+
"@types/classnames": "^2.3.1",
23+
"@types/jest": "^26.0.24",
24+
"@types/js-cookie": "^2.2.7",
25+
"@umijs/plugin-access": "^2.4.2",
26+
"@umijs/plugin-antd": "^0.10.0",
27+
"@umijs/plugin-initial-state": "^2.3.1",
28+
"@umijs/plugin-locale": "^0.13.0",
29+
"@umijs/plugin-model": "^2.6.1",
30+
"@umijs/plugin-request": "^2.6.0",
31+
"@umijs/test": "^3.5.7",
32+
"husky": "^7.0.1",
33+
"lint-staged": "^11.0.0",
3634
"react-coding-style": "^1.3.1",
37-
"umi": "^3.4.0",
35+
"umi": "^3.5.7",
3836
"umi-plugin-dynamic-antd-theme": "^3.1.0"
3937
},
4038
"dependencies": {
41-
"ahooks": "^2.9.6",
42-
"classnames": "^2.2.6",
39+
"ahooks": "^2.10.7",
40+
"classnames": "^2.3.1",
4341
"js-cookie": "^2.2.1"
4442
}
4543
}

generators/app/templates/src/components/index.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,3 @@ export { default as MenuFoldButton } from './buttons/MenuFoldButton'
44
export { default as Exception403 } from './exception/403'
55
export { default as Exception404 } from './exception/404'
66
export { default as Exception500 } from './exception/500'
7-
export { default as LdapUserSelect } from './selector/LdapUserSelect'

generators/app/templates/src/components/selector/LdapUserSelect.tsx

Lines changed: 0 additions & 67 deletions
This file was deleted.

generators/app/templates/src/layouts/options/ProLayout/Navbar/navbar.less

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
}
1717

1818
.navigationBar {
19-
background-color: #fff;
19+
background-color: #fff !important;
2020
padding: 0 24px;
2121

2222
h1 {

generators/app/templates/src/locales/en-US.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,19 @@ export default {
3333

3434
// profile
3535
PROFILE_TITLE: 'User Profile',
36-
ADD_USER_BTN: 'Import User',
37-
ADD_USER: 'Import User',
36+
ADD_USER_BTN: 'New User',
37+
ADD_USER: 'New User',
3838
MODIFY_USER: 'Modify User',
3939
SEARCH_USER: 'Search for user',
4040
CONFIRM_BTN: 'Confirm',
4141
CANCEL_BTN: 'Cancel',
42-
SELECT_USER_WARNING: 'Please choose a user to import',
42+
USER_NAME_REQUIRED: 'Please enter the user name',
43+
TEAM_REQUIRED: 'Please enter the team',
44+
EMAIL_REQUIRED: 'Please enter the email',
45+
STATUS_REQUIRED: 'Please select a status',
46+
NAME_MAX_LEN: 'The name cannot exceed 20 characters',
47+
TEAM_MAX_LEN: 'The team cannot exceed 10 characters',
48+
EMAIL_MAX_LEN: 'The email cannot exceed 30 characters',
4349
NAME: 'Name',
4450
TEAM: 'Team',
4551
EMAIL: 'Email',

generators/app/templates/src/locales/zh-CN.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,19 @@ export default {
3333

3434
// profile
3535
PROFILE_TITLE: '个人信息',
36-
ADD_USER_BTN: '导入用户',
37-
ADD_USER: '导入用户',
36+
ADD_USER_BTN: '新增用户',
37+
ADD_USER: '新增用户',
3838
MODIFY_USER: '修改用户',
3939
SEARCH_USER: '搜索用户',
4040
CONFIRM_BTN: '确认',
4141
CANCEL_BTN: '取消',
42-
SELECT_USER_WARNING: '请选择一个要导入的用户',
42+
USER_NAME_REQUIRED: '请输入用户名',
43+
TEAM_REQUIRED: '请输入团队',
44+
EMAIL_REQUIRED: '请输入邮件',
45+
STATUS_REQUIRED: '请选择状态',
46+
NAME_MAX_LEN: '用户名长度不能超过20个字符',
47+
TEAM_MAX_LEN: '团队长度不能超过10个字符',
48+
EMAIL_MAX_LEN: '邮箱长度不能超过30个字符',
4349
NAME: '用户名',
4450
TEAM: '团队',
4551
EMAIL: '邮箱',

generators/app/templates/src/models/useUserManagementModel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export default function useUserManagementModel() {
5151
}, query)
5252
}
5353

54-
if (isNotEmpty<IAntdTableSorter>(sorter)) {
54+
if (isNotEmpty<IAntdTableSorter>(sorter) && isNotEmpty<string>(sorter.field) && isNotEmpty<string>(sorter.order)) {
5555
query = `${query}&sortField=${sorter.field}&sortOrder=${sorter.order}`
5656
}
5757

generators/app/templates/src/pages/admin/users/components/UserManagePanel.tsx

Lines changed: 27 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import React, { useState, useCallback, useEffect } from 'react'
22
import { FormattedMessage, useModel, useIntl } from 'umi'
33
import { Popover, Form, Input, Button, Radio } from 'antd'
44
import { UserOutlined, TeamOutlined, MailOutlined } from '@ant-design/icons'
5-
import { LdapUserSelect } from '@/components'
65
import { isEmpty, pick } from '@/helpers'
76
import { IUser } from '@/types'
87

@@ -14,7 +13,6 @@ interface IUserManagePanelProps {
1413

1514
export default function UserManagePanel({ children, onFinished, value }: IUserManagePanelProps) {
1615
const [visible, setVisible] = useState(false)
17-
const [formFilled, setFormFilled] = useState(false)
1816
const { formatMessage } = useIntl()
1917
const [form] = Form.useForm()
2018
const { addUser, addUserRunning, updateUser, updateUserRunning } = useModel('useUserManagementModel', m =>
@@ -33,9 +31,8 @@ export default function UserManagePanel({ children, onFinished, value }: IUserMa
3331
team: undefined,
3432
status: undefined
3533
})
36-
setFormFilled(false)
3734
setVisible(false)
38-
}, [form, setVisible, setFormFilled])
35+
}, [form, setVisible])
3936

4037
useEffect(() => {
4138
if (!isEmpty(value) && visible) {
@@ -57,33 +54,38 @@ export default function UserManagePanel({ children, onFinished, value }: IUserMa
5754
.then(onFinished)
5855
}}
5956
>
60-
<LdapUserSelect
61-
style={{ width: '100%', marginBottom: 25 }}
62-
disabled={!isImportPanel}
63-
onChange={u => {
64-
form.setFieldsValue({
65-
name: u.name,
66-
email: u.email,
67-
team: u.team,
68-
status: u.status
69-
})
70-
setFormFilled(true)
71-
}}
72-
/>
7357
<Form.Item name="id" hidden>
7458
<Input type="text" />
7559
</Form.Item>
76-
<Form.Item name="name" rules={[{ required: true, message: formatMessage({ id: 'SELECT_USER_WARNING' }) }]}>
77-
<Input disabled prefix={<UserOutlined />} placeholder={formatMessage({ id: 'NAME' })} />
60+
<Form.Item
61+
name="name"
62+
rules={[
63+
{ required: true, message: formatMessage({ id: 'USER_NAME_REQUIRED' }) },
64+
{ max: 20, message: formatMessage({ id: 'NAME_MAX_LEN' }) }
65+
]}
66+
>
67+
<Input prefix={<UserOutlined />} placeholder={formatMessage({ id: 'NAME' })} />
7868
</Form.Item>
79-
<Form.Item name="team">
80-
<Input disabled prefix={<TeamOutlined />} placeholder={formatMessage({ id: 'TEAM' })} />
69+
<Form.Item
70+
name="team"
71+
rules={[
72+
{ required: true, message: formatMessage({ id: 'TEAM_REQUIRED' }) },
73+
{ max: 10, message: formatMessage({ id: 'TEAM_MAX_LEN' }) }
74+
]}
75+
>
76+
<Input prefix={<TeamOutlined />} placeholder={formatMessage({ id: 'TEAM' })} />
8177
</Form.Item>
82-
<Form.Item name="email">
83-
<Input disabled prefix={<MailOutlined />} placeholder={formatMessage({ id: 'EMAIL' })} />
78+
<Form.Item
79+
name="email"
80+
rules={[
81+
{ required: true, message: formatMessage({ id: 'EMAIL_REQUIRED' }) },
82+
{ max: 30, message: formatMessage({ id: 'EMAIL_MAX_LEN' }) }
83+
]}
84+
>
85+
<Input prefix={<MailOutlined />} placeholder={formatMessage({ id: 'EMAIL' })} />
8486
</Form.Item>
85-
<Form.Item name="status">
86-
<Radio.Group disabled={isImportPanel ? !formFilled : false}>
87+
<Form.Item name="status" rules={[{ required: true, message: formatMessage({ id: 'STATUS_REQUIRED' }) }]}>
88+
<Radio.Group>
8789
<Radio value="INITIAL">
8890
<FormattedMessage id="INITIAL" />
8991
</Radio>

package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "generator-umi",
3-
"version": "4.6.1",
3+
"version": "4.7.0",
44
"description": "umi project generator",
55
"scripts": {
66
"docs:dev": "vuepress dev docs",
@@ -26,9 +26,9 @@
2626
},
2727
"homepage": "https://github.com/DFocusGroup/generator-umi#readme",
2828
"devDependencies": {
29-
"@vuepress/plugin-medium-zoom": "^1.6.0",
30-
"@vuepress/plugin-pwa": "^1.5.4",
31-
"gh-pages": "^3.1.0",
32-
"vuepress": "^1.5.4"
29+
"@vuepress/plugin-medium-zoom": "^1.8.2",
30+
"@vuepress/plugin-pwa": "^1.8.2",
31+
"gh-pages": "^3.2.3",
32+
"vuepress": "^1.8.2"
3333
}
3434
}

0 commit comments

Comments
 (0)