diff --git a/.eslintrc b/.eslintrc
index db4c05c406fd70c3d688477390dc705a375470d1..c5dda4d706868f0c65f9fc7b5aa76f1acc18a9c3 100755
--- a/.eslintrc
+++ b/.eslintrc
@@ -1,7 +1,6 @@
{
"parser": "babel-eslint",
- "extends": "airbnb",
- "plugins": ["compat"],
+ "extends": ["airbnb", "prettier"],
"env": {
"browser": true,
"node": true,
@@ -20,15 +19,18 @@
"react/jsx-no-bind": [0],
"react/prop-types": [0],
"react/prefer-stateless-function": [0],
- "react/jsx-wrap-multilines": ["error", {
- "declaration": "parens-new-line",
- "assignment": "parens-new-line",
- "return": "parens-new-line",
- "arrow": "parens-new-line",
- "condition": "parens-new-line",
- "logical": "parens-new-line",
- "prop": "ignore"
- }],
+ "react/jsx-wrap-multilines": [
+ "error",
+ {
+ "declaration": "parens-new-line",
+ "assignment": "parens-new-line",
+ "return": "parens-new-line",
+ "arrow": "parens-new-line",
+ "condition": "parens-new-line",
+ "logical": "parens-new-line",
+ "prop": "ignore"
+ }
+ ],
"no-else-return": [0],
"no-restricted-syntax": [0],
"import/no-extraneous-dependencies": [0],
@@ -43,18 +45,20 @@
"no-bitwise": [0],
"no-cond-assign": [0],
"import/no-unresolved": [0],
- "comma-dangle": ["error", {
- "arrays": "always-multiline",
- "objects": "always-multiline",
- "imports": "always-multiline",
- "exports": "always-multiline",
- "functions": "ignore"
- }],
+ "comma-dangle": [
+ "error",
+ {
+ "arrays": "always-multiline",
+ "objects": "always-multiline",
+ "imports": "always-multiline",
+ "exports": "always-multiline",
+ "functions": "ignore"
+ }
+ ],
"object-curly-newline": [0],
"function-paren-newline": [0],
"no-restricted-globals": [0],
- "require-yield": [1],
- "compat/compat": "error"
+ "require-yield": [1]
},
"parserOptions": {
"ecmaFeatures": {
diff --git a/.gitignore b/.gitignore
index 409be881a2a8d9807d016c24dabadebda65395c1..aa3fce5825a412febff24ef3bf577105b08862ec 100755
--- a/.gitignore
+++ b/.gitignore
@@ -20,4 +20,3 @@ yarn.lock
package-lock.json
*bak
jsconfig.json
-.prettierrc
diff --git a/.prettierignore b/.prettierignore
new file mode 100644
index 0000000000000000000000000000000000000000..a28adee000e27af29301242eb0b0d5a9e55f3611
--- /dev/null
+++ b/.prettierignore
@@ -0,0 +1,2 @@
+**/*.md
+**/*.svg
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000000000000000000000000000000000000..0cc0de659627e921698ed83b20f086cd65c0efdc
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,11 @@
+{
+ "singleQuote": true,
+ "trailingComma": "es5",
+ "printWidth": 100,
+ "overrides": [
+ {
+ "files": ".prettierrc",
+ "options": { "parser": "json" }
+ }
+ ]
+}
diff --git a/.roadhogrc.mock.js b/.roadhogrc.mock.js
index 284f3161141f07a4dd26c74efd7305c753738529..af60fec12a079141debe9f931a61595656ffd762 100644
--- a/.roadhogrc.mock.js
+++ b/.roadhogrc.mock.js
@@ -14,7 +14,7 @@ const noProxy = process.env.NO_PROXY === 'true';
const proxy = {
// 支持值为 Object 和 Array
'GET /api/currentUser': {
- $desc: "获取当前用户接口",
+ $desc: '获取当前用户接口',
$params: {
pageSize: {
desc: '分页',
@@ -29,22 +29,26 @@ const proxy = {
},
},
// GET POST 可省略
- 'GET /api/users': [{
- key: '1',
- name: 'John Brown',
- age: 32,
- address: 'New York No. 1 Lake Park',
- }, {
- key: '2',
- name: 'Jim Green',
- age: 42,
- address: 'London No. 1 Lake Park',
- }, {
- key: '3',
- name: 'Joe Black',
- age: 32,
- address: 'Sidney No. 1 Lake Park',
- }],
+ 'GET /api/users': [
+ {
+ key: '1',
+ name: 'John Brown',
+ age: 32,
+ address: 'New York No. 1 Lake Park',
+ },
+ {
+ key: '2',
+ name: 'Jim Green',
+ age: 42,
+ address: 'London No. 1 Lake Park',
+ },
+ {
+ key: '3',
+ name: 'Joe Black',
+ age: 32,
+ address: 'Sidney No. 1 Lake Park',
+ },
+ ],
'GET /api/project/notice': getNotice,
'GET /api/activities': getActivities,
'GET /api/rule': getRule,
@@ -61,7 +65,7 @@ const proxy = {
res.send({ message: 'Ok' });
},
'GET /api/tags': mockjs.mock({
- 'list|100': [{ name: '@city', 'value|1-100': 150, 'type|0-2': 1 }]
+ 'list|100': [{ name: '@city', 'value|1-100': 150, 'type|0-2': 1 }],
}),
'GET /api/fake_list': getFakeList,
'GET /api/fake_chart_data': getFakeChartData,
@@ -69,26 +73,26 @@ const proxy = {
'GET /api/profile/advanced': getProfileAdvancedData,
'POST /api/login/account': (req, res) => {
const { password, userName, type } = req.body;
- if(password === '888888' && userName === 'admin'){
+ if (password === '888888' && userName === 'admin') {
res.send({
status: 'ok',
type,
- currentAuthority: 'admin'
+ currentAuthority: 'admin',
});
- return ;
+ return;
}
- if(password === '123456' && userName === 'user'){
+ if (password === '123456' && userName === 'user') {
res.send({
status: 'ok',
type,
- currentAuthority: 'user'
+ currentAuthority: 'user',
});
- return ;
+ return;
}
res.send({
status: 'error',
type,
- currentAuthority: 'guest'
+ currentAuthority: 'guest',
});
},
'POST /api/register': (req, res) => {
@@ -97,40 +101,40 @@ const proxy = {
'GET /api/notices': getNotices,
'GET /api/500': (req, res) => {
res.status(500).send({
- "timestamp": 1513932555104,
- "status": 500,
- "error": "error",
- "message": "error",
- "path": "/base/category/list"
+ timestamp: 1513932555104,
+ status: 500,
+ error: 'error',
+ message: 'error',
+ path: '/base/category/list',
});
},
'GET /api/404': (req, res) => {
res.status(404).send({
- "timestamp": 1513932643431,
- "status": 404,
- "error": "Not Found",
- "message": "No message available",
- "path": "/base/category/list/2121212"
+ timestamp: 1513932643431,
+ status: 404,
+ error: 'Not Found',
+ message: 'No message available',
+ path: '/base/category/list/2121212',
});
},
'GET /api/403': (req, res) => {
res.status(403).send({
- "timestamp": 1513932555104,
- "status": 403,
- "error": "Unauthorized",
- "message": "Unauthorized",
- "path": "/base/category/list"
+ timestamp: 1513932555104,
+ status: 403,
+ error: 'Unauthorized',
+ message: 'Unauthorized',
+ path: '/base/category/list',
});
},
'GET /api/401': (req, res) => {
res.status(401).send({
- "timestamp": 1513932555104,
- "status": 401,
- "error": "Unauthorized",
- "message": "Unauthorized",
- "path": "/base/category/list"
+ timestamp: 1513932555104,
+ status: 401,
+ error: 'Unauthorized',
+ message: 'Unauthorized',
+ path: '/base/category/list',
});
},
};
-export default noProxy ? {} : delay(proxy, 1000);
+export default (noProxy ? {} : delay(proxy, 1000));
diff --git a/.stylelintrc b/.stylelintrc
index 1027152936f6ccc55a27ab3e6c78a37d2c033af4..a883e81cc6e9e97afc7f95c4baa4c421a7018001 100644
--- a/.stylelintrc
+++ b/.stylelintrc
@@ -1,5 +1,5 @@
{
- "extends": "stylelint-config-standard",
+ "extends": ["stylelint-config-standard", "stylelint-config-prettier"],
"rules": {
"selector-pseudo-class-no-unknown": null,
"shorthand-property-no-redundant-values": null,
@@ -17,6 +17,7 @@
"number-no-trailing-zeros": null,
"rule-empty-line-before": null,
"selector-combinator-space-after": null,
+ "selector-descendant-combinator-no-non-space": null,
"selector-list-comma-newline-after": null,
"selector-pseudo-element-colon-notation": null,
"unit-no-unknown": null,
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000000000000000000000000000000000000..ad92582bd0913ca4c9a9a63eb44cdca5488bec09
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "editor.formatOnSave": true
+}
diff --git a/.webpackrc.js b/.webpackrc.js
index b562f77574e5b69727369e30c515a72c0dd8dae4..db3421fdb639facd98464d9cb2150b2e5ac72645 100755
--- a/.webpackrc.js
+++ b/.webpackrc.js
@@ -12,7 +12,7 @@ export default {
},
},
alias: {
- 'components': path.resolve(__dirname, 'src/components/'),
+ components: path.resolve(__dirname, 'src/components/'),
},
ignoreMomentLocale: true,
theme: './src/theme.js',
diff --git a/mock/api.js b/mock/api.js
index 969c15182cbfb7ddb2eae5e53f8917d3f119c23a..a274afb9bc24a1b20fa703cd45ba50a3532a5d85 100644
--- a/mock/api.js
+++ b/mock/api.js
@@ -69,21 +69,23 @@ export function fakeList(count) {
owner: user[i % 10],
title: titles[i % 8],
avatar: avatars[i % 8],
- cover: parseInt(i / 4, 10) % 2 === 0 ? covers[i % 4] : covers[3 - (i % 4)],
+ cover: parseInt(i / 4, 10) % 2 === 0 ? covers[i % 4] : covers[3 - i % 4],
status: ['active', 'exception', 'normal'][i % 3],
percent: Math.ceil(Math.random() * 50) + 50,
logo: avatars[i % 8],
href: 'https://ant.design',
- updatedAt: new Date(new Date().getTime() - (1000 * 60 * 60 * 2 * i)),
- createdAt: new Date(new Date().getTime() - (1000 * 60 * 60 * 2 * i)),
+ updatedAt: new Date(new Date().getTime() - 1000 * 60 * 60 * 2 * i),
+ createdAt: new Date(new Date().getTime() - 1000 * 60 * 60 * 2 * i),
subDescription: desc[i % 5],
- description: '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。',
+ description:
+ '在中台产品的研发过程中,会出现不同的设计规范和实现方式,但其中往往存在很多类似的页面和组件,这些类似的组件会被抽离成一套标准规范。',
activeUser: Math.ceil(Math.random() * 100000) + 100000,
newUser: Math.ceil(Math.random() * 1000) + 1000,
star: Math.ceil(Math.random() * 100) + 100,
like: Math.ceil(Math.random() * 100) + 100,
message: Math.ceil(Math.random() * 10) + 10,
- content: '段落示意:蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。',
+ content:
+ '段落示意:蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。蚂蚁金服设计平台 ant.design,用最小的工作量,无缝接入蚂蚁金服生态,提供跨越设计与开发的体验解决方案。',
members: [
{
avatar: 'https://gw.alipayobjects.com/zos/rmsportal/ZiESqWwCXBRQoaPONSJe.png',
@@ -112,7 +114,7 @@ export function getFakeList(req, res, u) {
const params = parse(url, true).query;
- const count = (params.count * 1) || 20;
+ const count = params.count * 1 || 20;
const result = fakeList(count);
@@ -287,7 +289,6 @@ export const getActivities = [
},
];
-
export default {
getNotice,
getActivities,
diff --git a/mock/chart.js b/mock/chart.js
index e1673347863595364d4924521dfeeda029f2fa15..55c8a412dbb080897ca50f8285307b48b18e70c7 100644
--- a/mock/chart.js
+++ b/mock/chart.js
@@ -7,7 +7,7 @@ const beginDay = new Date().getTime();
const fakeY = [7, 5, 4, 2, 4, 7, 5, 6, 5, 9, 6, 3, 1, 5, 3, 6, 5];
for (let i = 0; i < fakeY.length; i += 1) {
visitData.push({
- x: moment(new Date(beginDay + (1000 * 60 * 60 * 24 * i))).format('YYYY-MM-DD'),
+ x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format('YYYY-MM-DD'),
y: fakeY[i],
});
}
@@ -16,7 +16,7 @@ const visitData2 = [];
const fakeY2 = [1, 6, 4, 8, 3, 7, 2];
for (let i = 0; i < fakeY2.length; i += 1) {
visitData2.push({
- x: moment(new Date(beginDay + (1000 * 60 * 60 * 24 * i))).format('YYYY-MM-DD'),
+ x: moment(new Date(beginDay + 1000 * 60 * 60 * 24 * i)).format('YYYY-MM-DD'),
y: fakeY2[i],
});
}
@@ -125,7 +125,7 @@ for (let i = 0; i < 10; i += 1) {
const offlineChartData = [];
for (let i = 0; i < 20; i += 1) {
offlineChartData.push({
- x: (new Date().getTime()) + (1000 * 60 * 30 * i),
+ x: new Date().getTime() + 1000 * 60 * 30 * i,
y1: Math.floor(Math.random() * 100) + 10,
y2: Math.floor(Math.random() * 100) + 10,
});
@@ -167,8 +167,8 @@ const radarTitleMap = {
contribute: '贡献',
hot: '热度',
};
-radarOriginData.forEach((item) => {
- Object.keys(item).forEach((key) => {
+radarOriginData.forEach(item => {
+ Object.keys(item).forEach(key => {
if (key !== 'name') {
radarData.push({
name: item.name,
diff --git a/mock/rule.js b/mock/rule.js
index 78fb95d1531af6ba3fc046128957ee58e4089049..e89b9496fa7c976b0791371c7c591cbcd0fe1ff0 100644
--- a/mock/rule.js
+++ b/mock/rule.js
@@ -5,9 +5,12 @@ let tableListDataSource = [];
for (let i = 0; i < 46; i += 1) {
tableListDataSource.push({
key: i,
- disabled: ((i % 6) === 0),
+ disabled: i % 6 === 0,
href: 'https://ant.design',
- avatar: ['https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png', 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png'][i % 2],
+ avatar: [
+ 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
+ ][i % 2],
no: `TradeCode ${i}`,
title: `一个任务名称 ${i}`,
owner: '曲丽丽',
@@ -43,7 +46,7 @@ export function getRule(req, res, u) {
if (params.status) {
const status = params.status.split(',');
let filterDataSource = [];
- status.forEach((s) => {
+ status.forEach(s => {
filterDataSource = filterDataSource.concat(
[...dataSource].filter(data => parseInt(data.status, 10) === parseInt(s[0], 10))
);
@@ -95,7 +98,10 @@ export function postRule(req, res, u, b) {
tableListDataSource.unshift({
key: i,
href: 'https://ant.design',
- avatar: ['https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png', 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png'][i % 2],
+ avatar: [
+ 'https://gw.alipayobjects.com/zos/rmsportal/eeHMaZBwmTvLdIwMfBpg.png',
+ 'https://gw.alipayobjects.com/zos/rmsportal/udxAbMEhpwthVVcjLXik.png',
+ ][i % 2],
no: `TradeCode ${i}`,
title: `一个任务名称 ${i}`,
owner: '曲丽丽',
diff --git a/package.json b/package.json
index 572201ade3e5c34a3c10f9658bbb0a170a2fb848..94012aabe5ece49a474a3f3224139c5920257b73 100755
--- a/package.json
+++ b/package.json
@@ -17,7 +17,8 @@
"lint-staged:js": "eslint --ext .js",
"test": "roadhog test",
"test:component": "roadhog test ./src/components",
- "test:all": "node ./tests/run-tests.js"
+ "test:all": "node ./tests/run-tests.js",
+ "prettier": "prettier --write ./src/**/**/**/*"
},
"dependencies": {
"@antv/data-set": "^0.8.0",
@@ -64,31 +65,31 @@
"eslint-plugin-jsx-a11y": "^6.0.3",
"eslint-plugin-markdown": "^1.0.0-beta.6",
"eslint-plugin-react": "^7.0.1",
+ "eslint-config-prettier": "^2.9.0",
"gh-pages": "^1.0.0",
"husky": "^0.14.3",
"lint-staged": "^6.0.0",
"mockjs": "^1.0.1-beta3",
+ "prettier": "1.11.1",
"pro-download": "^1.0.1",
"redbox-react": "^1.5.0",
"regenerator-runtime": "^0.11.1",
"roadhog": "^2.3.0",
"roadhog-api-doc": "^0.3.4",
"stylelint": "^8.4.0",
+ "stylelint-config-prettier": "^3.0.4",
"stylelint-config-standard": "^18.0.0"
},
"optionalDependencies": {
"puppeteer": "^1.1.1"
},
"lint-staged": {
+ "**/*.{js,jsx,less}": ["prettier --wirter", "git add"],
"**/*.{js,jsx}": "lint-staged:js",
"**/*.less": "stylelint --syntax less"
},
"engines": {
"node": ">=8.0.0"
},
- "browserslist": [
- "> 1%",
- "last 2 versions",
- "not ie <= 10"
- ]
+ "browserslist": ["> 1%", "last 2 versions", "not ie <= 10"]
}
diff --git a/src/common/menu.js b/src/common/menu.js
index a5da89ada0de089cd237e11c8013f595291cb0ca..ee3875ecffee109305e26fc540d233489ce87978 100644
--- a/src/common/menu.js
+++ b/src/common/menu.js
@@ -1,123 +1,163 @@
import { isUrl } from '../utils/utils';
-const menuData = [{
- name: 'dashboard',
- icon: 'dashboard',
- path: 'dashboard',
- children: [{
- name: '分析页',
- path: 'analysis',
- }, {
- name: '监控页',
- path: 'monitor',
- }, {
- name: '工作台',
- path: 'workplace',
- // hideInBreadcrumb: true,
- // hideInMenu: true,
- }],
-}, {
- name: '表单页',
- icon: 'form',
- path: 'form',
- children: [{
- name: '基础表单',
- path: 'basic-form',
- }, {
- name: '分步表单',
- path: 'step-form',
- }, {
- name: '高级表单',
- authority: 'admin',
- path: 'advanced-form',
- }],
-}, {
- name: '列表页',
- icon: 'table',
- path: 'list',
- children: [{
- name: '查询表格',
- path: 'table-list',
- }, {
- name: '标准列表',
- path: 'basic-list',
- }, {
- name: '卡片列表',
- path: 'card-list',
- }, {
- name: '搜索列表',
- path: 'search',
- children: [{
- name: '搜索列表(文章)',
- path: 'articles',
- }, {
- name: '搜索列表(项目)',
- path: 'projects',
- }, {
- name: '搜索列表(应用)',
- path: 'applications',
- }],
- }],
-}, {
- name: '详情页',
- icon: 'profile',
- path: 'profile',
- children: [{
- name: '基础详情页',
- path: 'basic',
- }, {
- name: '高级详情页',
- path: 'advanced',
- authority: 'admin',
- }],
-}, {
- name: '结果页',
- icon: 'check-circle-o',
- path: 'result',
- children: [{
- name: '成功',
- path: 'success',
- }, {
- name: '失败',
- path: 'fail',
- }],
-}, {
- name: '异常页',
- icon: 'warning',
- path: 'exception',
- children: [{
- name: '403',
- path: '403',
- }, {
- name: '404',
- path: '404',
- }, {
- name: '500',
- path: '500',
- }, {
- name: '触发异常',
- path: 'trigger',
- hideInMenu: true,
- }],
-}, {
- name: '账户',
- icon: 'user',
- path: 'user',
- authority: 'guest',
- children: [{
- name: '登录',
- path: 'login',
- }, {
- name: '注册',
- path: 'register',
- }, {
- name: '注册结果',
- path: 'register-result',
- }],
-}];
+const menuData = [
+ {
+ name: 'dashboard',
+ icon: 'dashboard',
+ path: 'dashboard',
+ children: [
+ {
+ name: '分析页',
+ path: 'analysis',
+ },
+ {
+ name: '监控页',
+ path: 'monitor',
+ },
+ {
+ name: '工作台',
+ path: 'workplace',
+ // hideInBreadcrumb: true,
+ // hideInMenu: true,
+ },
+ ],
+ },
+ {
+ name: '表单页',
+ icon: 'form',
+ path: 'form',
+ children: [
+ {
+ name: '基础表单',
+ path: 'basic-form',
+ },
+ {
+ name: '分步表单',
+ path: 'step-form',
+ },
+ {
+ name: '高级表单',
+ authority: 'admin',
+ path: 'advanced-form',
+ },
+ ],
+ },
+ {
+ name: '列表页',
+ icon: 'table',
+ path: 'list',
+ children: [
+ {
+ name: '查询表格',
+ path: 'table-list',
+ },
+ {
+ name: '标准列表',
+ path: 'basic-list',
+ },
+ {
+ name: '卡片列表',
+ path: 'card-list',
+ },
+ {
+ name: '搜索列表',
+ path: 'search',
+ children: [
+ {
+ name: '搜索列表(文章)',
+ path: 'articles',
+ },
+ {
+ name: '搜索列表(项目)',
+ path: 'projects',
+ },
+ {
+ name: '搜索列表(应用)',
+ path: 'applications',
+ },
+ ],
+ },
+ ],
+ },
+ {
+ name: '详情页',
+ icon: 'profile',
+ path: 'profile',
+ children: [
+ {
+ name: '基础详情页',
+ path: 'basic',
+ },
+ {
+ name: '高级详情页',
+ path: 'advanced',
+ authority: 'admin',
+ },
+ ],
+ },
+ {
+ name: '结果页',
+ icon: 'check-circle-o',
+ path: 'result',
+ children: [
+ {
+ name: '成功',
+ path: 'success',
+ },
+ {
+ name: '失败',
+ path: 'fail',
+ },
+ ],
+ },
+ {
+ name: '异常页',
+ icon: 'warning',
+ path: 'exception',
+ children: [
+ {
+ name: '403',
+ path: '403',
+ },
+ {
+ name: '404',
+ path: '404',
+ },
+ {
+ name: '500',
+ path: '500',
+ },
+ {
+ name: '触发异常',
+ path: 'trigger',
+ hideInMenu: true,
+ },
+ ],
+ },
+ {
+ name: '账户',
+ icon: 'user',
+ path: 'user',
+ authority: 'guest',
+ children: [
+ {
+ name: '登录',
+ path: 'login',
+ },
+ {
+ name: '注册',
+ path: 'register',
+ },
+ {
+ name: '注册结果',
+ path: 'register-result',
+ },
+ ],
+ },
+];
function formatter(data, parentPath = '/', parentAuthority) {
- return data.map((item) => {
+ return data.map(item => {
let { path } = item;
if (!isUrl(path)) {
path = parentPath + item.path;
diff --git a/src/common/router.js b/src/common/router.js
index 60235976716546bada696a45fe7aed3b733292cd..e7312c4820316061b61cff77a020c932df43e66f 100644
--- a/src/common/router.js
+++ b/src/common/router.js
@@ -5,25 +5,24 @@ import { getMenuData } from './menu';
let routerDataCache;
-const modelNotExisted = (app, model) => (
+const modelNotExisted = (app, model) =>
// eslint-disable-next-line
!app._models.some(({ namespace }) => {
return namespace === model.substring(model.lastIndexOf('/') + 1);
- })
-);
+ });
// wrapper of dynamic
const dynamicWrapper = (app, models, component) => {
// () => require('module')
// transformed by babel-plugin-dynamic-import-node-sync
if (component.toString().indexOf('.then(') < 0) {
- models.forEach((model) => {
+ models.forEach(model => {
if (modelNotExisted(app, model)) {
// eslint-disable-next-line
app.model(require(`../models/${model}`).default);
}
});
- return (props) => {
+ return props => {
if (!routerDataCache) {
routerDataCache = getRouterData(app);
}
@@ -36,20 +35,20 @@ const dynamicWrapper = (app, models, component) => {
// () => import('module')
return dynamic({
app,
- models: () => models.filter(
- model => modelNotExisted(app, model)).map(m => import(`../models/${m}.js`)
- ),
+ models: () =>
+ models.filter(model => modelNotExisted(app, model)).map(m => import(`../models/${m}.js`)),
// add routerData prop
component: () => {
if (!routerDataCache) {
routerDataCache = getRouterData(app);
}
- return component().then((raw) => {
+ return component().then(raw => {
const Component = raw.default || raw;
- return props => createElement(Component, {
- ...props,
- routerData: routerDataCache,
- });
+ return props =>
+ createElement(Component, {
+ ...props,
+ routerData: routerDataCache,
+ });
});
},
});
@@ -57,7 +56,7 @@ const dynamicWrapper = (app, models, component) => {
function getFlatMenuData(menus) {
let keys = {};
- menus.forEach((item) => {
+ menus.forEach(item => {
if (item.children) {
keys[item.path] = { ...item };
keys = { ...keys, ...getFlatMenuData(item.children) };
@@ -68,7 +67,7 @@ function getFlatMenuData(menus) {
return keys;
}
-export const getRouterData = (app) => {
+export const getRouterData = app => {
const routerConfig = {
'/': {
component: dynamicWrapper(app, ['user', 'login'], () => import('../layouts/BasicLayout')),
@@ -80,7 +79,9 @@ export const getRouterData = (app) => {
component: dynamicWrapper(app, ['monitor'], () => import('../routes/Dashboard/Monitor')),
},
'/dashboard/workplace': {
- component: dynamicWrapper(app, ['project', 'activities', 'chart'], () => import('../routes/Dashboard/Workplace')),
+ component: dynamicWrapper(app, ['project', 'activities', 'chart'], () =>
+ import('../routes/Dashboard/Workplace')
+ ),
// hideInBreadcrumb: true,
// name: '工作台',
// authority: 'admin',
@@ -131,7 +132,9 @@ export const getRouterData = (app) => {
component: dynamicWrapper(app, ['profile'], () => import('../routes/Profile/BasicProfile')),
},
'/profile/advanced': {
- component: dynamicWrapper(app, ['profile'], () => import('../routes/Profile/AdvancedProfile')),
+ component: dynamicWrapper(app, ['profile'], () =>
+ import('../routes/Profile/AdvancedProfile')
+ ),
},
'/result/success': {
component: dynamicWrapper(app, [], () => import('../routes/Result/Success')),
@@ -149,7 +152,9 @@ export const getRouterData = (app) => {
component: dynamicWrapper(app, [], () => import('../routes/Exception/500')),
},
'/exception/trigger': {
- component: dynamicWrapper(app, ['error'], () => import('../routes/Exception/triggerException')),
+ component: dynamicWrapper(app, ['error'], () =>
+ import('../routes/Exception/triggerException')
+ ),
},
'/user': {
component: dynamicWrapper(app, [], () => import('../layouts/UserLayout')),
@@ -174,7 +179,7 @@ export const getRouterData = (app) => {
// eg. {name,authority ...routerConfig }
const routerData = {};
// The route matches the menu
- Object.keys(routerConfig).forEach((path) => {
+ Object.keys(routerConfig).forEach(path => {
// Regular match item name
// eg. router /user/:id === /user/chen
const pathRegexp = pathToRegexp(path);
diff --git a/src/components/ActiveChart/index.js b/src/components/ActiveChart/index.js
index d708641c4de356d9b5f934dec2cf29387497ce97..cd6119b9fa353538ed2116cb97af521dd0a25389 100644
--- a/src/components/ActiveChart/index.js
+++ b/src/components/ActiveChart/index.js
@@ -14,7 +14,7 @@ function getActiveData() {
for (let i = 0; i < 24; i += 1) {
activeData.push({
x: `${fixedZero(i)}:00`,
- y: Math.floor(Math.random() * 200) + (i * 50),
+ y: Math.floor(Math.random() * 200) + i * 50,
});
}
return activeData;
diff --git a/src/components/Authorized/AuthorizedRoute.js b/src/components/Authorized/AuthorizedRoute.js
index f7cd679d955e8ca532e680e001b01aa716bec775..60b45dc9717c54b09486c44f81777590d7ffe015 100644
--- a/src/components/Authorized/AuthorizedRoute.js
+++ b/src/components/Authorized/AuthorizedRoute.js
@@ -4,29 +4,13 @@ import Authorized from './Authorized';
class AuthorizedRoute extends React.Component {
render() {
- const {
- component: Component,
- render,
- authority,
- redirectPath,
- ...rest
- } = this.props;
+ const { component: Component, render, authority, redirectPath, ...rest } = this.props;
return (
}
- />
- }
+ noMatch={ } />}
>
-
- (Component ? : render(props))
- }
- />
+ (Component ? : render(props))} />
);
}
diff --git a/src/components/Authorized/CheckPermissions.test.js b/src/components/Authorized/CheckPermissions.test.js
index eda08a7fa5a0684f96159b959fae7a8ef4fd93c6..b4b5e2ce4abac1bd691c0a6da339b4fccceac447 100644
--- a/src/components/Authorized/CheckPermissions.test.js
+++ b/src/components/Authorized/CheckPermissions.test.js
@@ -20,24 +20,16 @@ describe('test CheckPermissions', () => {
expect(checkPermissions('admin', 'user', target, error)).toEqual('error');
});
it('Correct Array permission authentication', () => {
- expect(checkPermissions(['user', 'admin'], 'user', target, error)).toEqual(
- 'ok'
- );
+ expect(checkPermissions(['user', 'admin'], 'user', target, error)).toEqual('ok');
});
it('Wrong Array permission authentication,currentAuthority error', () => {
- expect(
- checkPermissions(['user', 'admin'], 'user,admin', target, error)
- ).toEqual('error');
+ expect(checkPermissions(['user', 'admin'], 'user,admin', target, error)).toEqual('error');
});
it('Wrong Array permission authentication', () => {
- expect(checkPermissions(['user', 'admin'], 'guest', target, error)).toEqual(
- 'error'
- );
+ expect(checkPermissions(['user', 'admin'], 'guest', target, error)).toEqual('error');
});
it('Wrong Function permission authentication', () => {
- expect(checkPermissions(() => false, 'guest', target, error)).toEqual(
- 'error'
- );
+ expect(checkPermissions(() => false, 'guest', target, error)).toEqual('error');
});
it('Correct Function permission authentication', () => {
expect(checkPermissions(() => true, 'guest', target, error)).toEqual('ok');
diff --git a/src/components/Authorized/PromiseRender.js b/src/components/Authorized/PromiseRender.js
index 43a4fa9ebda499a44ff20d6f05392ec3d49761fc..02518ad5d0f03b00fdb4cef68ff69e2296130df3 100644
--- a/src/components/Authorized/PromiseRender.js
+++ b/src/components/Authorized/PromiseRender.js
@@ -32,7 +32,7 @@ export default class PromiseRender extends React.PureComponent {
// AuthorizedRoute is already instantiated
// Authorized render is already instantiated, children is no instantiated
// Secured is not instantiated
- checkIsInstantiation = (target) => {
+ checkIsInstantiation = target => {
if (!React.isValidElement(target)) {
return target;
}
diff --git a/src/components/Authorized/Secured.js b/src/components/Authorized/Secured.js
index 4303883e09780ae07ece9a1c7016f4f4deecb106..1012da46c9e02c219e53b77b2cdfa9f624b502b0 100644
--- a/src/components/Authorized/Secured.js
+++ b/src/components/Authorized/Secured.js
@@ -5,15 +5,13 @@ import CheckPermissions from './CheckPermissions';
* 默认不能访问任何页面
* default is "NULL"
*/
-const Exception403 = () => (
-
-);
+const Exception403 = () => ;
// Determine whether the incoming component has been instantiated
// AuthorizedRoute is already instantiated
// Authorized render is already instantiated, children is no instantiated
// Secured is not instantiated
-const checkIsInstantiation = (target) => {
+const checkIsInstantiation = target => {
if (!React.isValidElement(target)) {
return target;
}
diff --git a/src/components/Authorized/index.d.ts b/src/components/Authorized/index.d.ts
index 4a68fa18138545b62d563c2d36f5126d490e375a..ba9bc5b28610458b309cf64571ab3631b1e6cf4d 100644
--- a/src/components/Authorized/index.d.ts
+++ b/src/components/Authorized/index.d.ts
@@ -11,24 +11,19 @@ export type IReactComponent
=
| React.ClassicComponentClass
;
interface Secured {
- (authority: authority, error?: React.ReactNode): (
- target: T,
- ) => T;
+ (authority: authority, error?: React.ReactNode): (target: T) => T;
}
export interface AuthorizedRouteProps extends RouteProps {
authority: authority;
}
-export class AuthorizedRoute extends React.Component<
- AuthorizedRouteProps,
- any
-> {}
+export class AuthorizedRoute extends React.Component {}
interface check {
(
authority: authority,
target: T,
- Exception: S,
+ Exception: S
): T | S;
}
diff --git a/src/components/Authorized/index.js b/src/components/Authorized/index.js
index c39de2911c7c70c3cbdad38a6ca332affabe027b..48d1b2b843d31b503b5fa8da8616ff5cdfaa9040 100644
--- a/src/components/Authorized/index.js
+++ b/src/components/Authorized/index.js
@@ -14,7 +14,7 @@ Authorized.check = check;
* use authority or getAuthority
* @param {string|()=>String} currentAuthority
*/
-const renderAuthorize = (currentAuthority) => {
+const renderAuthorize = currentAuthority => {
if (currentAuthority) {
if (currentAuthority.constructor.name === 'Function') {
CURRENT = currentAuthority();
diff --git a/src/components/AvatarList/index.d.ts b/src/components/AvatarList/index.d.ts
index bc8ce19cfc197169e414ae103255314ebe1ed8aa..5b9352ef58996f5c5bcfe8efd3c7cdd0877f7dc3 100644
--- a/src/components/AvatarList/index.d.ts
+++ b/src/components/AvatarList/index.d.ts
@@ -4,9 +4,7 @@ import AvatarItem from './AvatarItem';
export interface IAvatarListProps {
size?: 'large' | 'small' | 'mini' | 'default';
style?: React.CSSProperties;
- children:
- | React.ReactElement
- | Array>;
+ children: React.ReactElement | Array>;
}
export default class AvatarList extends React.Component {
diff --git a/src/components/AvatarList/index.js b/src/components/AvatarList/index.js
index 08c502f122568e88d76652d2db95a56bb4af05df..6fc59273c41db5cc279646c34b6da685f50ec48a 100644
--- a/src/components/AvatarList/index.js
+++ b/src/components/AvatarList/index.js
@@ -18,7 +18,7 @@ const AvatarList = ({ children, size, ...other }) => {
);
};
-const Item = ({ src, size, tips, onClick = (() => {}) }) => {
+const Item = ({ src, size, tips, onClick = () => {} }) => {
const cls = classNames(styles.avatarItem, {
[styles.avatarItemLarge]: size === 'large',
[styles.avatarItemSmall]: size === 'small',
@@ -26,14 +26,14 @@ const Item = ({ src, size, tips, onClick = (() => {}) }) => {
});
return (
-
- {
- tips ? (
-
-
-
- ) :
- }
+
+ {tips ? (
+
+
+
+ ) : (
+
+ )}
);
};
diff --git a/src/components/AvatarList/index.less b/src/components/AvatarList/index.less
index 601babd25665b5d8ac359b99070fc1af5a4c3ea7..8660ba4352eb91434fe68ddbbd356303cc2a170e 100644
--- a/src/components/AvatarList/index.less
+++ b/src/components/AvatarList/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.avatarList {
display: inline-block;
diff --git a/src/components/Charts/Bar/index.d.ts b/src/components/Charts/Bar/index.d.ts
index 2813a272c3b1b28d2494e46031f227ad514368a0..4899082509dacb84701bb2e02fbe69ba1d06e149 100644
--- a/src/components/Charts/Bar/index.d.ts
+++ b/src/components/Charts/Bar/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface IBarProps {
title: React.ReactNode;
color?: string;
diff --git a/src/components/Charts/Bar/index.js b/src/components/Charts/Bar/index.js
index 9eee7a07e57d576fdf42edec24b809d517de4e03..a3c3608433cffd5d88ea1ee1e6b1890bc46e6e7f 100644
--- a/src/components/Charts/Bar/index.js
+++ b/src/components/Charts/Bar/index.js
@@ -46,11 +46,11 @@ class Bar extends Component {
}
}
- handleRoot = (n) => {
+ handleRoot = n => {
this.root = n;
};
- handleRef = (n) => {
+ handleRef = n => {
this.node = n;
};
diff --git a/src/components/Charts/ChartCard/index.d.ts b/src/components/Charts/ChartCard/index.d.ts
index ad450dfa630fdf5f57b06afb05340799b882a0bf..80fd37623f7944f2de168f20efbb44eaf10a75b2 100644
--- a/src/components/Charts/ChartCard/index.d.ts
+++ b/src/components/Charts/ChartCard/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface IChartCardProps {
title: React.ReactNode;
action?: React.ReactNode;
diff --git a/src/components/Charts/ChartCard/index.js b/src/components/Charts/ChartCard/index.js
index 035b31315f2825bfa8b0c67c2d8db054a6a3c4c9..c7875b06e2788fcd385daff879b820fc560a6a5e 100644
--- a/src/components/Charts/ChartCard/index.js
+++ b/src/components/Charts/ChartCard/index.js
@@ -4,7 +4,7 @@ import classNames from 'classnames';
import styles from './index.less';
-const renderTotal = (total) => {
+const renderTotal = total => {
let totalDom;
switch (typeof total) {
case undefined:
@@ -33,7 +33,9 @@ const ChartCard = ({
const content = (
{avatar}
@@ -50,7 +52,11 @@ const ChartCard = ({
)}
{footer && (
-
+
{footer}
)}
diff --git a/src/components/Charts/ChartCard/index.less b/src/components/Charts/ChartCard/index.less
index 02a1d7ecb2593ba460f91b28347e16c60096a089..fa2eb16df200ce519b82dc355cfe6c2ee2b3a5d7 100644
--- a/src/components/Charts/ChartCard/index.less
+++ b/src/components/Charts/ChartCard/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.chartCard {
position: relative;
diff --git a/src/components/Charts/Field/index.d.ts b/src/components/Charts/Field/index.d.ts
index c89aaf969f13cabbfee0275bf08ce24245d8bfe9..975fb667d8db178c1154162f4803e20f1c72a8e4 100644
--- a/src/components/Charts/Field/index.d.ts
+++ b/src/components/Charts/Field/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface IFieldProps {
label: React.ReactNode;
value: React.ReactNode;
diff --git a/src/components/Charts/Field/index.less b/src/components/Charts/Field/index.less
index 2848f9db38c77772d203891d76109a93d470cb47..aeafbcb886afa0e1c1a7f5d81aba1ce5c065ffe4 100644
--- a/src/components/Charts/Field/index.less
+++ b/src/components/Charts/Field/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.field {
white-space: nowrap;
diff --git a/src/components/Charts/Gauge/index.d.ts b/src/components/Charts/Gauge/index.d.ts
index e91dd562e51fb96d39ed811c826a5e18088afa5b..66e3c003a957581d88a06e63b32a7a3e76c5cd3a 100644
--- a/src/components/Charts/Gauge/index.d.ts
+++ b/src/components/Charts/Gauge/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface IGaugeProps {
title: React.ReactNode;
color?: string;
diff --git a/src/components/Charts/Gauge/index.js b/src/components/Charts/Gauge/index.js
index 608b0f2e642348fb3013a21a0a02981b89f0523a..d9289eaa24bc9ae6b3f78c8a3cec438ec42cf6e2 100644
--- a/src/components/Charts/Gauge/index.js
+++ b/src/components/Charts/Gauge/index.js
@@ -4,7 +4,7 @@ import autoHeight from '../autoHeight';
const { Arc, Html, Line } = Guide;
-const defaultFormatter = (val) => {
+const defaultFormatter = val => {
switch (val) {
case '2':
return '差';
diff --git a/src/components/Charts/MiniProgress/index.d.ts b/src/components/Charts/MiniProgress/index.d.ts
index bbcc1d0b29bf1fe75501e6063806352a501bbea2..aaeb7261d7ea06dfad935faf7c00238035ea921d 100644
--- a/src/components/Charts/MiniProgress/index.d.ts
+++ b/src/components/Charts/MiniProgress/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface IMiniProgressProps {
target: number;
color?: string;
@@ -7,7 +7,4 @@ export interface IMiniProgressProps {
style?: React.CSSProperties;
}
-export default class MiniProgress extends React.Component<
- IMiniProgressProps,
- any
-> {}
+export default class MiniProgress extends React.Component
{}
diff --git a/src/components/Charts/MiniProgress/index.js b/src/components/Charts/MiniProgress/index.js
index 08fe9b536071e9b42183a221f3a102b6d1d797b9..795c79b15951e2bdde85c0a6fa1427ba46c8df1c 100644
--- a/src/components/Charts/MiniProgress/index.js
+++ b/src/components/Charts/MiniProgress/index.js
@@ -6,21 +6,18 @@ import styles from './index.less';
const MiniProgress = ({ target, color = 'rgb(19, 194, 194)', strokeWidth, percent }) => (
-
-
-
+
+
+
diff --git a/src/components/Charts/MiniProgress/index.less b/src/components/Charts/MiniProgress/index.less
index 06823be4a77eaef6781b33eb763789507ae1ab8f..e5f148cbf532e6a0715364009f5a2c2c085d1d43 100644
--- a/src/components/Charts/MiniProgress/index.less
+++ b/src/components/Charts/MiniProgress/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.miniProgress {
padding: 5px 0;
@@ -9,7 +9,7 @@
position: relative;
}
.progress {
- transition: all .4s cubic-bezier(.08, .82, .17, 1) 0s;
+ transition: all 0.4s cubic-bezier(0.08, 0.82, 0.17, 1) 0s;
border-radius: 1px 0 0 1px;
background-color: @primary-color;
width: 0;
diff --git a/src/components/Charts/Pie/index.js b/src/components/Charts/Pie/index.js
index 2784ad60c8979904880ea5b51c1551a2f04ee306..ac7248d75fd30a12b13a9c6fb12cb43fe72aaff7 100644
--- a/src/components/Charts/Pie/index.js
+++ b/src/components/Charts/Pie/index.js
@@ -44,7 +44,7 @@ export default class Pie extends Component {
this.resize.cancel();
}
- getG2Instance = (chart) => {
+ getG2Instance = chart => {
this.chart = chart;
};
@@ -54,7 +54,7 @@ export default class Pie extends Component {
const geom = this.chart.getAllGeoms()[0]; // 获取所有的图形
const items = geom.get('dataArray') || []; // 获取图形对应的
- const legendData = items.map((item) => {
+ const legendData = items.map(item => {
/* eslint no-underscore-dangle:0 */
const origin = item[0]._origin;
origin.color = item[0].color;
@@ -89,7 +89,7 @@ export default class Pie extends Component {
}
}
- handleRoot = (n) => {
+ handleRoot = n => {
this.root = n;
};
@@ -154,7 +154,7 @@ export default class Pie extends Component {
if (percent) {
selected = false;
tooltip = false;
- formatColor = (value) => {
+ formatColor = value => {
if (value === '占比') {
return color || 'rgba(24, 144, 255, 0.85)';
} else {
@@ -235,7 +235,9 @@ export default class Pie extends Component {
this.handleLegendClick(item, i)}>
{item.x}
diff --git a/src/components/Charts/Pie/index.less b/src/components/Charts/Pie/index.less
index 9478739835d09f54a3dadaa0715257c911c6aece..277274cdbcdf5a42849bc31cd9e5c1ca5c6f0b17 100644
--- a/src/components/Charts/Pie/index.less
+++ b/src/components/Charts/Pie/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.pie {
position: relative;
@@ -6,7 +6,7 @@
position: relative;
}
&.hasLegend .chart {
- width: ~"calc(100% - 240px)";
+ width: ~'calc(100% - 240px)';
}
.legend {
position: absolute;
diff --git a/src/components/Charts/Radar/index.d.ts b/src/components/Charts/Radar/index.d.ts
index d0f0dcfd7a380f285476b26cf057560ca34c55c5..963ac8c37c112c360cd399b039d790e53b83a2a3 100644
--- a/src/components/Charts/Radar/index.d.ts
+++ b/src/components/Charts/Radar/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface IRadarProps {
title?: React.ReactNode;
height: number;
diff --git a/src/components/Charts/Radar/index.js b/src/components/Charts/Radar/index.js
index b7f7caf30812a2a49ee4097af94e682153b95f81..fc3ab4447e97bece6456bddb9fbb3ff5f1089b5b 100644
--- a/src/components/Charts/Radar/index.js
+++ b/src/components/Charts/Radar/index.js
@@ -21,7 +21,7 @@ export default class Radar extends Component {
}
}
- getG2Instance = (chart) => {
+ getG2Instance = chart => {
this.chart = chart;
};
@@ -31,7 +31,7 @@ export default class Radar extends Component {
const geom = this.chart.getAllGeoms()[0]; // 获取所有的图形
const items = geom.get('dataArray') || []; // 获取图形对应的
- const legendData = items.map((item) => {
+ const legendData = items.map(item => {
// eslint-disable-next-line
const origins = item.map(t => t._origin);
const result = {
@@ -49,7 +49,7 @@ export default class Radar extends Component {
});
};
- handleRef = (n) => {
+ handleRef = n => {
this.node = n;
};
@@ -60,9 +60,7 @@ export default class Radar extends Component {
const { legendData } = this.state;
legendData[i] = newItem;
- const filteredLegendData = legendData
- .filter(l => l.checked)
- .map(l => l.name);
+ const filteredLegendData = legendData.filter(l => l.checked).map(l => l.name);
if (this.chart) {
this.chart.filter('name', val => filteredLegendData.indexOf(val) > -1);
@@ -143,12 +141,7 @@ export default class Radar extends Component {
},
}}
/>
-
+
{item.value}
- ))}
+ ))}
)}
diff --git a/src/components/Charts/Radar/index.less b/src/components/Charts/Radar/index.less
index 378db9c4f8fb0b20d10bbb4083048aedea2379c6..15b8725ca7f084bb7cd662fd3cd44138fe928d81 100644
--- a/src/components/Charts/Radar/index.less
+++ b/src/components/Charts/Radar/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.radar {
.legend {
diff --git a/src/components/Charts/TagCloud/index.d.ts b/src/components/Charts/TagCloud/index.d.ts
index a85bac76620f7d84ca401de9e76103d6a0df1fd8..462650c4dbb7532670d200141f7cbebc52525808 100644
--- a/src/components/Charts/TagCloud/index.d.ts
+++ b/src/components/Charts/TagCloud/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface ITagCloudProps {
data: Array<{
name: string;
diff --git a/src/components/Charts/TagCloud/index.js b/src/components/Charts/TagCloud/index.js
index 77e63fa70c1216f3eda83e389966831a9ac7b3a6..50b947d3e6d1afe7f1c874b00d585dbfd7e53ca9 100644
--- a/src/components/Charts/TagCloud/index.js
+++ b/src/components/Charts/TagCloud/index.js
@@ -39,7 +39,7 @@ class TagCloud extends Component {
this.renderChart();
};
- saveRootRef = (node) => {
+ saveRootRef = node => {
this.root = node;
};
@@ -77,7 +77,7 @@ class TagCloud extends Component {
@Bind()
@Debounce(500)
- renderChart = (nextProps) => {
+ renderChart = nextProps => {
// const colors = ['#1890FF', '#41D9C7', '#2FC25B', '#FACC14', '#9AE65C'];
const { data, height } = nextProps || this.props;
diff --git a/src/components/Charts/TimelineChart/index.d.ts b/src/components/Charts/TimelineChart/index.d.ts
index 5ab7a664a41d2bea8951cb8438e88aaa696e8c53..d9312fe6966dcbf72ab9a491001374c996930517 100644
--- a/src/components/Charts/TimelineChart/index.d.ts
+++ b/src/components/Charts/TimelineChart/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface ITimelineChartProps {
data: Array<{
x: string;
@@ -11,7 +11,4 @@ export interface ITimelineChartProps {
style?: React.CSSProperties;
}
-export default class TimelineChart extends React.Component<
- ITimelineChartProps,
- any
-> {}
+export default class TimelineChart extends React.Component {}
diff --git a/src/components/Charts/TimelineChart/index.js b/src/components/Charts/TimelineChart/index.js
index 3864983717d243ee3c408964665089ad04d51f08..f00c9bb69af17f677c5b35742ae3538a9b3b726a 100644
--- a/src/components/Charts/TimelineChart/index.js
+++ b/src/components/Charts/TimelineChart/index.js
@@ -48,7 +48,7 @@ export default class TimelineChart extends React.Component {
.source(data)
.transform({
type: 'filter',
- callback: (obj) => {
+ callback: obj => {
const date = obj.x;
return date <= ds.state.end && date >= ds.state.start;
},
diff --git a/src/components/Charts/WaterWave/index.less b/src/components/Charts/WaterWave/index.less
index d185ca3b3b27830d5223b2e438cc941f4f7c1e12..43ba05cabd9526fa5d795b8ef840dd8b58e70afc 100644
--- a/src/components/Charts/WaterWave/index.less
+++ b/src/components/Charts/WaterWave/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.waterWave {
display: inline-block;
@@ -22,7 +22,7 @@
}
}
.waterWaveCanvasWrapper {
- transform: scale(.5);
+ transform: scale(0.5);
transform-origin: 0 0;
}
}
diff --git a/src/components/Charts/autoHeight.js b/src/components/Charts/autoHeight.js
index d8582ffdcde744ae43bdd9ede0d362c44490953f..01ae92dcdba0f7ceb43aa3fabddf586d6c0a816a 100644
--- a/src/components/Charts/autoHeight.js
+++ b/src/components/Charts/autoHeight.js
@@ -30,7 +30,7 @@ function getAutoHeight(n) {
return height;
}
-const autoHeight = () => (WrappedComponent) => {
+const autoHeight = () => WrappedComponent => {
return class extends React.Component {
state = {
computedHeight: 0,
@@ -45,7 +45,7 @@ const autoHeight = () => (WrappedComponent) => {
}
}
- handleRoot = (node) => {
+ handleRoot = node => {
this.root = node;
};
diff --git a/src/components/CountDown/index.d.ts b/src/components/CountDown/index.d.ts
index c2d4bcf98484e79d63cfd1417f10f8b45faa65b3..d39a2e951830d5cddca08c8becbdb500847448b3 100644
--- a/src/components/CountDown/index.d.ts
+++ b/src/components/CountDown/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface ICountDownProps {
format?: (time: number) => void;
target: Date | number;
diff --git a/src/components/CountDown/index.js b/src/components/CountDown/index.js
index f7aa6e0822aab726fbb09b231be5e71ec7d15834..875fb1e2c588fb58ea0860a828fb5bc863ef143c 100644
--- a/src/components/CountDown/index.js
+++ b/src/components/CountDown/index.js
@@ -23,11 +23,14 @@ class CountDown extends Component {
if (this.props.target !== nextProps.target) {
clearTimeout(this.timer);
const { lastTime } = this.initTime(nextProps);
- this.setState({
- lastTime,
- }, () => {
- this.tick();
- });
+ this.setState(
+ {
+ lastTime,
+ },
+ () => {
+ this.tick();
+ }
+ );
}
}
@@ -37,7 +40,7 @@ class CountDown extends Component {
timer = 0;
interval = 1000;
- initTime = (props) => {
+ initTime = props => {
let lastTime = 0;
let targetTime = 0;
try {
@@ -54,21 +57,23 @@ class CountDown extends Component {
return {
lastTime: lastTime < 0 ? 0 : lastTime,
};
- }
+ };
// defaultFormat = time => (
// {moment(time).format('hh:mm:ss')}
// );
- defaultFormat = (time) => {
+ defaultFormat = time => {
const hours = 60 * 60 * 1000;
const minutes = 60 * 1000;
const h = Math.floor(time / hours);
- const m = Math.floor((time - (h * hours)) / minutes);
- const s = Math.floor((time - (h * hours) - (m * minutes)) / 1000);
+ const m = Math.floor((time - h * hours) / minutes);
+ const s = Math.floor((time - h * hours - m * minutes) / 1000);
return (
- {fixedZero(h)}:{fixedZero(m)}:{fixedZero(s)}
+
+ {fixedZero(h)}:{fixedZero(m)}:{fixedZero(s)}
+
);
- }
+ };
tick = () => {
const { onEnd } = this.props;
let { lastTime } = this.state;
@@ -76,30 +81,36 @@ class CountDown extends Component {
this.timer = setTimeout(() => {
if (lastTime < this.interval) {
clearTimeout(this.timer);
- this.setState({
- lastTime: 0,
- }, () => {
- if (onEnd) {
- onEnd();
+ this.setState(
+ {
+ lastTime: 0,
+ },
+ () => {
+ if (onEnd) {
+ onEnd();
+ }
}
- });
+ );
} else {
lastTime -= this.interval;
- this.setState({
- lastTime,
- }, () => {
- this.tick();
- });
+ this.setState(
+ {
+ lastTime,
+ },
+ () => {
+ this.tick();
+ }
+ );
}
}, this.interval);
- }
+ };
render() {
const { format = this.defaultFormat, onEnd, ...rest } = this.props;
const { lastTime } = this.state;
const result = format(lastTime);
- return ({result});
+ return {result};
}
}
diff --git a/src/components/DescriptionList/DescriptionList.js b/src/components/DescriptionList/DescriptionList.js
index bef2cec978f2b530fb3ee2ba9c9fdce8a055f29e..128b0d31b423be0d05b4303ab9b13d85957bbba2 100644
--- a/src/components/DescriptionList/DescriptionList.js
+++ b/src/components/DescriptionList/DescriptionList.js
@@ -3,8 +3,16 @@ import classNames from 'classnames';
import { Row } from 'antd';
import styles from './index.less';
-export default ({ className, title, col = 3, layout = 'horizontal', gutter = 32,
- children, size, ...restProps }) => {
+export default ({
+ className,
+ title,
+ col = 3,
+ layout = 'horizontal',
+ gutter = 32,
+ children,
+ size,
+ ...restProps
+}) => {
const clsString = classNames(styles.descriptionList, styles[layout], className, {
[styles.small]: size === 'small',
[styles.large]: size === 'large',
diff --git a/src/components/DescriptionList/index.d.ts b/src/components/DescriptionList/index.d.ts
index e7b2baf6050455a99915cc381aa2c26461d768a0..96ccfa7da3a21d790e3348a65603488303780669 100644
--- a/src/components/DescriptionList/index.d.ts
+++ b/src/components/DescriptionList/index.d.ts
@@ -10,9 +10,6 @@ export interface IDescriptionListProps {
style?: React.CSSProperties;
}
-export default class DescriptionList extends React.Component<
- IDescriptionListProps,
- any
-> {
+export default class DescriptionList extends React.Component {
public static Description: typeof Description;
}
diff --git a/src/components/DescriptionList/index.less b/src/components/DescriptionList/index.less
index e8d5280e5b30f0d8c49a23afbf581a2157cd1b00..ebffa55f3da0f353e3345370f0b91fb4ed168f71 100644
--- a/src/components/DescriptionList/index.less
+++ b/src/components/DescriptionList/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.descriptionList {
// offset the padding-bottom of last row
@@ -25,10 +25,10 @@
display: table-cell;
&:after {
- content: ":";
+ content: ':';
margin: 0 8px 0 2px;
position: relative;
- top: -.5px;
+ top: -0.5px;
}
}
@@ -51,7 +51,8 @@
margin-bottom: 12px;
color: @text-color;
}
- .term, .detail {
+ .term,
+ .detail {
padding-bottom: 8px;
}
}
diff --git a/src/components/EditableItem/index.js b/src/components/EditableItem/index.js
index b0563c178172a36d68f3779b79177e77f5c93edd..fcda844e3f5af30970b2b8b58b4e4d6a9dcfe8c7 100644
--- a/src/components/EditableItem/index.js
+++ b/src/components/EditableItem/index.js
@@ -7,48 +7,34 @@ export default class EditableItem extends PureComponent {
value: this.props.value,
editable: false,
};
- handleChange = (e) => {
+ handleChange = e => {
const { value } = e.target;
this.setState({ value });
- }
+ };
check = () => {
this.setState({ editable: false });
if (this.props.onChange) {
this.props.onChange(this.state.value);
}
- }
+ };
edit = () => {
this.setState({ editable: true });
- }
+ };
render() {
const { value, editable } = this.state;
return (
- {
- editable ? (
-
-
-
-
- ) : (
-
- {value || ' '}
-
-
- )
- }
+ {editable ? (
+
+
+
+
+ ) : (
+
+ {value || ' '}
+
+
+ )}
);
}
diff --git a/src/components/EditableItem/index.less b/src/components/EditableItem/index.less
index 8c068686b07ffafca347c3d0a6480628ca95e346..457a18bd4b9b4775a5eb5619c8f80f212d1467f7 100644
--- a/src/components/EditableItem/index.less
+++ b/src/components/EditableItem/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.editableItem {
line-height: @input-height-base;
diff --git a/src/components/EditableLinkGroup/index.js b/src/components/EditableLinkGroup/index.js
index 97d70fc1fee38aa71bd899b2581b6d7ec2f27c04..e230c3dd33e4deccf49a8c3aaa8f74ad9b095398 100644
--- a/src/components/EditableLinkGroup/index.js
+++ b/src/components/EditableLinkGroup/index.js
@@ -22,15 +22,17 @@ class EditableLinkGroup extends PureComponent {
const { links, linkElement, onAdd } = this.props;
return (
- {
- links.map(link => (
- createElement(linkElement, {
+ {links.map(link =>
+ createElement(
+ linkElement,
+ {
key: `linkGroup-item-${link.id || link.title}`,
to: link.href,
href: link.href,
- }, link.title)
- ))
- }
+ },
+ link.title
+ )
+ )}
{
diff --git a/src/components/Exception/index.less b/src/components/Exception/index.less
index 394af178fea778d6eb5222561b1109df37cd7898..5ef378be6390cfdc64150330eb6e826be7366633 100644
--- a/src/components/Exception/index.less
+++ b/src/components/Exception/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.exception {
display: flex;
@@ -12,7 +12,7 @@
zoom: 1;
&:before,
&:after {
- content: " ";
+ content: ' ';
display: table;
}
&:after {
diff --git a/src/components/FooterToolbar/index.d.ts b/src/components/FooterToolbar/index.d.ts
index 130021d8d7bf5ecdc957da3742c06354451bee93..9c6ac5b4cad95ade8f24a1b02e6de72f4770bfeb 100644
--- a/src/components/FooterToolbar/index.d.ts
+++ b/src/components/FooterToolbar/index.d.ts
@@ -4,7 +4,4 @@ export interface IFooterToolbarProps {
style?: React.CSSProperties;
}
-export default class FooterToolbar extends React.Component<
- IFooterToolbarProps,
- any
-> {}
+export default class FooterToolbar extends React.Component
{}
diff --git a/src/components/FooterToolbar/index.js b/src/components/FooterToolbar/index.js
index 62527e9eb1b8e51214c3c08c9820553f1e0a62cd..d5ce75b8dc642c9628cb94736ca8c549967c54cc 100644
--- a/src/components/FooterToolbar/index.js
+++ b/src/components/FooterToolbar/index.js
@@ -6,10 +6,7 @@ export default class FooterToolbar extends Component {
render() {
const { children, className, extra, ...restProps } = this.props;
return (
-
+
diff --git a/src/components/FooterToolbar/index.less b/src/components/FooterToolbar/index.less
index b6b6399e518ebf8459654d0c1bfd9be786280cb6..de6606bd43cc46ce191dada6117d13b37f32603a 100644
--- a/src/components/FooterToolbar/index.less
+++ b/src/components/FooterToolbar/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.toolbar {
position: fixed;
@@ -7,14 +7,14 @@
right: 0;
height: 56px;
line-height: 56px;
- box-shadow: 0 -1px 2px rgba(0, 0, 0, .03);
+ box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.03);
background: #fff;
border-top: 1px solid @border-color-split;
padding: 0 24px;
z-index: 9;
&:after {
- content: "";
+ content: '';
display: block;
clear: both;
}
diff --git a/src/components/GlobalFooter/index.d.ts b/src/components/GlobalFooter/index.d.ts
index cc1224e39315a2211c6fa792988720cff6f63d0b..85a9ca65495bff59c038c558a69b64afff3013f2 100644
--- a/src/components/GlobalFooter/index.d.ts
+++ b/src/components/GlobalFooter/index.d.ts
@@ -1,4 +1,4 @@
-import * as React from "react";
+import * as React from 'react';
export interface IGlobalFooterProps {
links?: Array<{
title: React.ReactNode;
@@ -9,7 +9,4 @@ export interface IGlobalFooterProps {
style?: React.CSSProperties;
}
-export default class GlobalFooter extends React.Component<
- IGlobalFooterProps,
- any
-> {}
+export default class GlobalFooter extends React.Component
{}
diff --git a/src/components/GlobalFooter/index.js b/src/components/GlobalFooter/index.js
index 36abafca5753c756d5b585075570842180bdc94e..837fe6f9179a7c89858f771e3f0b67bc5b417874 100644
--- a/src/components/GlobalFooter/index.js
+++ b/src/components/GlobalFooter/index.js
@@ -6,21 +6,15 @@ export default ({ className, links, copyright }) => {
const clsString = classNames(styles.globalFooter, className);
return (
- {
- links && (
-
- )
- }
+ {links && (
+
+ )}
{copyright &&
{copyright}
}
);
diff --git a/src/components/GlobalFooter/index.less b/src/components/GlobalFooter/index.less
index 7fce6004259392342e1aeef311cce6af02fa34a6..101dcf04511b3bc17ce1da72de1ec8ad52cd865f 100644
--- a/src/components/GlobalFooter/index.less
+++ b/src/components/GlobalFooter/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.globalFooter {
padding: 0 16px;
@@ -10,7 +10,7 @@
a {
color: @text-color-secondary;
- transition: all .3s;
+ transition: all 0.3s;
&:not(:last-child) {
margin-right: 40px;
diff --git a/src/components/GlobalHeader/index.js b/src/components/GlobalHeader/index.js
index 61871a7d4c3618fc2eb016eb0c39bfa0fed9422a..3e91ee21f0fbdfc6ec8bbeec0a5fbe6c2157781d 100644
--- a/src/components/GlobalHeader/index.js
+++ b/src/components/GlobalHeader/index.js
@@ -17,7 +17,7 @@ export default class GlobalHeader extends PureComponent {
if (notices.length === 0) {
return {};
}
- const newNotices = notices.map((notice) => {
+ const newNotices = notices.map(notice => {
const newNotice = { ...notice };
if (newNotice.datetime) {
newNotice.datetime = moment(notice.datetime).fromNow();
@@ -27,13 +27,17 @@ export default class GlobalHeader extends PureComponent {
newNotice.key = newNotice.id;
}
if (newNotice.extra && newNotice.status) {
- const color = ({
+ const color = {
todo: '',
processing: 'blue',
urgent: 'red',
doing: 'gold',
- })[newNotice.status];
- newNotice.extra = {newNotice.extra};
+ }[newNotice.status];
+ newNotice.extra = (
+
+ {newNotice.extra}
+
+ );
}
return newNotice;
});
@@ -43,40 +47,50 @@ export default class GlobalHeader extends PureComponent {
const { collapsed, onCollapse } = this.props;
onCollapse(!collapsed);
this.triggerResizeEvent();
- }
+ };
@Debounce(600)
- triggerResizeEvent() { // eslint-disable-line
+ triggerResizeEvent = () => {
const event = document.createEvent('HTMLEvents');
event.initEvent('resize', true, false);
window.dispatchEvent(event);
- }
+ };
render() {
const {
- currentUser, collapsed, fetchingNotices, isMobile, logo,
- onNoticeVisibleChange, onMenuClick, onNoticeClear,
+ currentUser,
+ collapsed,
+ fetchingNotices,
+ isMobile,
+ logo,
+ onNoticeVisibleChange,
+ onMenuClick,
+ onNoticeClear,
} = this.props;
const menu = (
);
const noticeData = this.getNoticeData();
return (
- {isMobile && (
- [
- (
-
-
-
- ),
-
,
- ]
- )}
+ {isMobile && [
+
+
+ ,
+
,
+ ]}
{
+ onSearch={value => {
console.log('input', value); // eslint-disable-line
}}
- onPressEnter={(value) => {
+ onPressEnter={value => {
console.log('enter', value); // eslint-disable-line
}}
/>
@@ -102,7 +116,7 @@ export default class GlobalHeader extends PureComponent {
className={styles.action}
>
-
+
{currentUser.name}
- ) : }
+ ) : (
+
+ )}
);
diff --git a/src/components/GlobalHeader/index.less b/src/components/GlobalHeader/index.less
index a9e9d92f74e3e08fe35b06bc821f0094298f86cf..8508930aee2476a5e7fbdda409d297ec16ba06f2 100644
--- a/src/components/GlobalHeader/index.less
+++ b/src/components/GlobalHeader/index.less
@@ -1,10 +1,10 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.header {
height: 64px;
padding: 0 12px 0 0;
background: #fff;
- box-shadow: 0 1px 4px rgba(0, 21, 41, .08);
+ box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
position: relative;
}
@@ -42,7 +42,7 @@ i.trigger {
font-size: 20px;
line-height: 64px;
cursor: pointer;
- transition: all .3s, padding 0s;
+ transition: all 0.3s, padding 0s;
padding: 0 24px;
&:hover {
background: @primary-1;
@@ -56,7 +56,7 @@ i.trigger {
cursor: pointer;
padding: 0 12px;
display: inline-block;
- transition: all .3s;
+ transition: all 0.3s;
height: 100%;
> i {
font-size: 16px;
@@ -79,7 +79,7 @@ i.trigger {
.avatar {
margin: 20px 8px 20px 0;
color: @primary-color;
- background: rgba(255, 255, 255, .85);
+ background: rgba(255, 255, 255, 0.85);
vertical-align: middle;
}
}
diff --git a/src/components/HeaderSearch/index.d.ts b/src/components/HeaderSearch/index.d.ts
index a11d63a156a4423ebc32efd721cf50cda5229dfa..3a06d758e8beb68c3ff68199418c37c588ca4826 100644
--- a/src/components/HeaderSearch/index.d.ts
+++ b/src/components/HeaderSearch/index.d.ts
@@ -8,7 +8,4 @@ export interface IHeaderSearchProps {
style?: React.CSSProperties;
}
-export default class HeaderSearch extends React.Component<
- IHeaderSearchProps,
- any
-> {}
+export default class HeaderSearch extends React.Component {}
diff --git a/src/components/HeaderSearch/index.js b/src/components/HeaderSearch/index.js
index 85c990efa382cb58abb9b92f5499574ac41eab1e..49b9072f836cdbc74b776e3c01585c7b6dc903e5 100644
--- a/src/components/HeaderSearch/index.js
+++ b/src/components/HeaderSearch/index.js
@@ -28,42 +28,39 @@ export default class HeaderSearch extends PureComponent {
componentWillUnmount() {
clearTimeout(this.timeout);
}
- onKeyDown = (e) => {
+ onKeyDown = e => {
if (e.key === 'Enter') {
this.timeout = setTimeout(() => {
this.props.onPressEnter(this.state.value); // Fix duplicate onPressEnter
}, 0);
}
- }
- onChange = (value) => {
+ };
+ onChange = value => {
this.setState({ value });
if (this.props.onChange) {
this.props.onChange();
}
- }
+ };
enterSearchMode = () => {
this.setState({ searchMode: true }, () => {
if (this.state.searchMode) {
this.input.focus();
}
});
- }
+ };
leaveSearchMode = () => {
this.setState({
searchMode: false,
value: '',
});
- }
+ };
render() {
const { className, placeholder, ...restProps } = this.props;
const inputClass = classNames(styles.input, {
[styles.show]: this.state.searchMode,
});
return (
-
+
{ this.input = node; }}
+ ref={node => {
+ this.input = node;
+ }}
onKeyDown={this.onKeyDown}
onBlur={this.leaveSearchMode}
/>
diff --git a/src/components/HeaderSearch/index.less b/src/components/HeaderSearch/index.less
index 374330880674016cb368505a970a1b5aac9f9852..e97386d82d6dc3fe3bfee8d30d0dd38b6174b984 100644
--- a/src/components/HeaderSearch/index.less
+++ b/src/components/HeaderSearch/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.headerSearch {
:global(.anticon-search) {
@@ -6,7 +6,7 @@
font-size: 16px;
}
.input {
- transition: width .3s, margin-left .3s;
+ transition: width 0.3s, margin-left 0.3s;
width: 0;
background: transparent;
border-radius: 0;
diff --git a/src/components/Login/LoginItem.js b/src/components/Login/LoginItem.js
index b7332b2e22e927c371d39edc4ed021e41010a4a1..98efb3337e49c204a747a84e1cdf09930104344a 100644
--- a/src/components/Login/LoginItem.js
+++ b/src/components/Login/LoginItem.js
@@ -8,7 +8,7 @@ import map from './map';
const FormItem = Form.Item;
function generator({ defaultProps, defaultRules, type }) {
- return (WrappedComponent) => {
+ return WrappedComponent => {
return class BasicComponent extends Component {
static contextTypes = {
form: PropTypes.object,
@@ -41,7 +41,7 @@ function generator({ defaultProps, defaultRules, type }) {
clearInterval(this.interval);
}
}, 1000);
- }
+ };
render() {
const { getFieldDecorator } = this.context.form;
const options = {};
@@ -93,7 +93,7 @@ function generator({ defaultProps, defaultRules, type }) {
}
const LoginItem = {};
-Object.keys(map).forEach((item) => {
+Object.keys(map).forEach(item => {
LoginItem[item] = generator({
defaultProps: map[item].props,
defaultRules: map[item].rules,
diff --git a/src/components/Login/index.d.ts b/src/components/Login/index.d.ts
index 798429220dba6aeb795ddc02899bfad6df5f1c1f..2c0fd01a4c31e2a08860353f2eac7cae5d8b3ae0 100644
--- a/src/components/Login/index.d.ts
+++ b/src/components/Login/index.d.ts
@@ -1,5 +1,5 @@
-import * as React from "react";
-import Button from "antd/lib/button";
+import * as React from 'react';
+import Button from 'antd/lib/button';
export interface LoginProps {
defaultActiveKey?: string;
onTabChange?: (key: string) => void;
diff --git a/src/components/Login/index.js b/src/components/Login/index.js
index 58ce02973908c3e8e7716458db9c7e4263636a0c..07016c3129dc81142c2ae5d28b4e4f2caaa35fc4 100644
--- a/src/components/Login/index.js
+++ b/src/components/Login/index.js
@@ -34,19 +34,19 @@ class Login extends Component {
getChildContext() {
return {
tabUtil: {
- addTab: (id) => {
+ addTab: id => {
this.setState({
tabs: [...this.state.tabs, id],
});
},
- removeTab: (id) => {
+ removeTab: id => {
this.setState({
tabs: this.state.tabs.filter(currentId => currentId !== id),
});
},
},
form: this.props.form,
- updateActive: (activeItem) => {
+ updateActive: activeItem => {
const { type, active } = this.state;
if (active[type]) {
active[type].push(activeItem);
@@ -59,28 +59,26 @@ class Login extends Component {
},
};
}
- onSwitch = (type) => {
+ onSwitch = type => {
this.setState({
type,
});
this.props.onTabChange(type);
- }
- handleSubmit = (e) => {
+ };
+ handleSubmit = e => {
e.preventDefault();
const { active, type } = this.state;
const activeFileds = active[type];
- this.props.form.validateFields(activeFileds, { force: true },
- (err, values) => {
- this.props.onSubmit(err, values);
- }
- );
- }
+ this.props.form.validateFields(activeFileds, { force: true }, (err, values) => {
+ this.props.onSubmit(err, values);
+ });
+ };
render() {
const { className, children } = this.props;
const { type, tabs } = this.state;
const TabChildren = [];
const otherChildren = [];
- React.Children.forEach(children, (item) => {
+ React.Children.forEach(children, item => {
if (!item) {
return;
}
@@ -94,21 +92,21 @@ class Login extends Component {
return (
);
@@ -117,7 +115,7 @@ class Login extends Component {
Login.Tab = LoginTab;
Login.Submit = LoginSubmit;
-Object.keys(LoginItem).forEach((item) => {
+Object.keys(LoginItem).forEach(item => {
Login[item] = LoginItem[item];
});
diff --git a/src/components/Login/index.less b/src/components/Login/index.less
index 331ed5a62e9d8752b0274559fd7bfa3d8b2a458a..e0a984cd2aa20043d5599f4a98ea65afd31905ab 100644
--- a/src/components/Login/index.less
+++ b/src/components/Login/index.less
@@ -1,7 +1,6 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.login {
-
.tabs {
padding: 0 2px;
margin: 0 -2px;
diff --git a/src/components/Login/map.js b/src/components/Login/map.js
index 4f596fff57d2bdee01758e9c01895eb358a4ab21..c278ee0824236c58d12c687cecf43bc6f4bb87cf 100644
--- a/src/components/Login/map.js
+++ b/src/components/Login/map.js
@@ -10,9 +10,12 @@ const map = {
prefix: ,
placeholder: 'admin',
},
- rules: [{
- required: true, message: 'Please enter username!',
- }],
+ rules: [
+ {
+ required: true,
+ message: 'Please enter username!',
+ },
+ ],
},
Password: {
component: Input,
@@ -22,9 +25,12 @@ const map = {
type: 'password',
placeholder: '888888',
},
- rules: [{
- required: true, message: 'Please enter password!',
- }],
+ rules: [
+ {
+ required: true,
+ message: 'Please enter password!',
+ },
+ ],
},
Mobile: {
component: Input,
@@ -33,11 +39,16 @@ const map = {
prefix: ,
placeholder: 'mobile number',
},
- rules: [{
- required: true, message: 'Please enter mobile number!',
- }, {
- pattern: /^1\d{10}$/, message: 'Wrong mobile number format!',
- }],
+ rules: [
+ {
+ required: true,
+ message: 'Please enter mobile number!',
+ },
+ {
+ pattern: /^1\d{10}$/,
+ message: 'Wrong mobile number format!',
+ },
+ ],
},
Captcha: {
component: Input,
@@ -46,9 +57,12 @@ const map = {
prefix: ,
placeholder: 'captcha',
},
- rules: [{
- required: true, message: 'Please enter Captcha!',
- }],
+ rules: [
+ {
+ required: true,
+ message: 'Please enter Captcha!',
+ },
+ ],
},
};
diff --git a/src/components/NoticeIcon/NoticeIconTab.d.ts b/src/components/NoticeIcon/NoticeIconTab.d.ts
index 0f58e8178f51f3cdafe227b2d6ec47fdc4d73790..5a577870e7b8cb3c83b96d3b3f79ab882cde2cfd 100644
--- a/src/components/NoticeIcon/NoticeIconTab.d.ts
+++ b/src/components/NoticeIcon/NoticeIconTab.d.ts
@@ -16,7 +16,4 @@ export interface INoticeIconTabProps {
style?: React.CSSProperties;
}
-export default class NoticeIconTab extends React.Component<
- INoticeIconTabProps,
- any
-> {}
+export default class NoticeIconTab extends React.Component {}
diff --git a/src/components/NoticeIcon/NoticeList.js b/src/components/NoticeIcon/NoticeList.js
index 2ffe72ad29a00b753c06e03f00b7700ff8d374b1..c107e2d99964f0d458d134fd3430ddedfd8589cd 100644
--- a/src/components/NoticeIcon/NoticeList.js
+++ b/src/components/NoticeIcon/NoticeList.js
@@ -4,14 +4,18 @@ import classNames from 'classnames';
import styles from './NoticeList.less';
export default function NoticeList({
- data = [], onClick, onClear, title, locale, emptyText, emptyImage,
+ data = [],
+ onClick,
+ onClear,
+ title,
+ locale,
+ emptyText,
+ emptyImage,
}) {
if (data.length === 0) {
return (
- {emptyImage ? (
-
- ) : null}
+ {emptyImage ?
: null}
{emptyText || locale.emptyText}
);
@@ -48,7 +52,8 @@ export default function NoticeList({
})}
- {locale.clear}{title}
+ {locale.clear}
+ {title}
);
diff --git a/src/components/NoticeIcon/NoticeList.less b/src/components/NoticeIcon/NoticeList.less
index db2bc6d10e90bb5753a5c3163b2f0fae4e4b8082..f99d59e8c8a4d8a7f69ef84ecc7ba41a698be9d0 100644
--- a/src/components/NoticeIcon/NoticeList.less
+++ b/src/components/NoticeIcon/NoticeList.less
@@ -1,10 +1,10 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.list {
max-height: 400px;
overflow: auto;
.item {
- transition: all .3s;
+ transition: all 0.3s;
overflow: hidden;
cursor: pointer;
padding-left: 24px;
@@ -20,7 +20,7 @@
}
&.read {
- opacity: .4;
+ opacity: 0.4;
}
&:last-child {
border-bottom: 0;
@@ -69,7 +69,7 @@
color: @text-color;
border-radius: 0 0 @border-radius-base @border-radius-base;
border-top: 1px solid @border-color-split;
- transition: all .3s;
+ transition: all 0.3s;
cursor: pointer;
&:hover {
diff --git a/src/components/NoticeIcon/index.js b/src/components/NoticeIcon/index.js
index 3134acedd3a242b59192c11d59dd78db34a7637b..be2f44f980200244babad403f4a758b13893e1b4 100644
--- a/src/components/NoticeIcon/index.js
+++ b/src/components/NoticeIcon/index.js
@@ -30,19 +30,21 @@ export default class NoticeIcon extends PureComponent {
onItemClick = (item, tabProps) => {
const { onItemClick } = this.props;
onItemClick(item, tabProps);
- }
- onTabChange = (tabType) => {
+ };
+ onTabChange = tabType => {
this.setState({ tabType });
this.props.onTabChange(tabType);
- }
+ };
getNotificationBox() {
const { children, loading, locale } = this.props;
if (!children) {
return null;
}
- const panes = React.Children.map(children, (child) => {
- const title = child.props.list && child.props.list.length > 0
- ? `${child.props.title} (${child.props.list.length})` : child.props.title;
+ const panes = React.Children.map(children, child => {
+ const title =
+ child.props.list && child.props.list.length > 0
+ ? `${child.props.title} (${child.props.list.length})`
+ : child.props.title;
return (
{}
+export default class NumberInfo extends React.Component {}
diff --git a/src/components/NumberInfo/index.js b/src/components/NumberInfo/index.js
index 0b90cbd969e65f66e180c9bbe070416a8e5d7f7c..afe914a1da783f887d26292df48ed793cd6883cc 100644
--- a/src/components/NumberInfo/index.js
+++ b/src/components/NumberInfo/index.js
@@ -3,15 +3,11 @@ import { Icon } from 'antd';
import classNames from 'classnames';
import styles from './index.less';
-export default ({
- theme, title, subTitle, total, subTotal, status, suffix, gap, ...rest
-}) => (
+export default ({ theme, title, subTitle, total, subTotal, status, suffix, gap, ...rest }) => (
{title &&
{title}
}
@@ -21,14 +17,12 @@ export default ({
{total}
{suffix &&
{suffix}}
- {
- (status || subTotal) && (
-
- {subTotal}
- {status && }
-
- )
- }
+ {(status || subTotal) && (
+
+ {subTotal}
+ {status && }
+
+ )}
);
diff --git a/src/components/NumberInfo/index.less b/src/components/NumberInfo/index.less
index 1854dd709ea161a04273f59d567a8afb22222278..c8fad650b3b6cdad9969d1a0604c505cae1f5a2e 100644
--- a/src/components/NumberInfo/index.less
+++ b/src/components/NumberInfo/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.numberInfo {
.suffix {
@@ -11,7 +11,7 @@
color: @text-color;
font-size: @font-size-lg;
margin-bottom: 16px;
- transition: all .3s;
+ transition: all 0.3s;
}
.numberInfoSubTitle {
color: @text-color-secondary;
diff --git a/src/components/PageHeader/index.js b/src/components/PageHeader/index.js
index 42713c4ef216871d7f59857e8a041cf3d893a322..a36fa7f15e5472bbf0fb3f611845008a8115ce26 100644
--- a/src/components/PageHeader/index.js
+++ b/src/components/PageHeader/index.js
@@ -10,7 +10,7 @@ const { TabPane } = Tabs;
export function getBreadcrumb(breadcrumbNameMap, url) {
let breadcrumb = breadcrumbNameMap[url];
if (!breadcrumb) {
- Object.keys(breadcrumbNameMap).forEach((item) => {
+ Object.keys(breadcrumbNameMap).forEach(item => {
if (pathToRegexp(item).test(url)) {
breadcrumb = breadcrumbNameMap[item];
}
@@ -26,7 +26,7 @@ export default class PageHeader extends PureComponent {
location: PropTypes.object,
breadcrumbNameMap: PropTypes.object,
};
- onChange = (key) => {
+ onChange = key => {
if (this.props.onTabChange) {
this.props.onTabChange(key);
}
@@ -36,17 +36,12 @@ export default class PageHeader extends PureComponent {
routes: this.props.routes || this.context.routes,
params: this.props.params || this.context.params,
routerLocation: this.props.location || this.context.location,
- breadcrumbNameMap:
- this.props.breadcrumbNameMap || this.context.breadcrumbNameMap,
+ breadcrumbNameMap: this.props.breadcrumbNameMap || this.context.breadcrumbNameMap,
};
};
// Generated according to props
conversionFromProps = () => {
- const {
- breadcrumbList,
- breadcrumbSeparator,
- linkElement = 'a',
- } = this.props;
+ const { breadcrumbList, breadcrumbSeparator, linkElement = 'a' } = this.props;
return (
{breadcrumbList.map(item => (
@@ -57,7 +52,7 @@ export default class PageHeader extends PureComponent {
{
[linkElement === 'a' ? 'href' : 'to']: item.href,
},
- item.title,
+ item.title
)
: item.title}
@@ -72,14 +67,13 @@ export default class PageHeader extends PureComponent {
// Loop data mosaic routing
const extraBreadcrumbItems = pathSnippets.map((url, index) => {
const currentBreadcrumb = getBreadcrumb(breadcrumbNameMap, url);
- const isLinkable =
- index !== pathSnippets.length - 1 && currentBreadcrumb.component;
+ const isLinkable = index !== pathSnippets.length - 1 && currentBreadcrumb.component;
return currentBreadcrumb.name && !currentBreadcrumb.hideInBreadcrumb ? (
{createElement(
isLinkable ? linkElement : 'span',
{ [linkElement === 'a' ? 'href' : 'to']: url },
- currentBreadcrumb.name,
+ currentBreadcrumb.name
)}
) : null;
@@ -92,9 +86,9 @@ export default class PageHeader extends PureComponent {
{
[linkElement === 'a' ? 'href' : 'to']: '/',
},
- '首页',
+ '首页'
)}
- ,
+
);
return (
@@ -108,12 +102,7 @@ export default class PageHeader extends PureComponent {
*/
conversionBreadcrumbList = () => {
const { breadcrumbList, breadcrumbSeparator } = this.props;
- const {
- routes,
- params,
- routerLocation,
- breadcrumbNameMap,
- } = this.getBreadcrumbProps();
+ const { routes, params, routerLocation, breadcrumbNameMap } = this.getBreadcrumbProps();
if (breadcrumbList && breadcrumbList.length) {
return this.conversionFromProps();
}
@@ -151,7 +140,7 @@ export default class PageHeader extends PureComponent {
href: paths.join('/') || '/',
to: paths.join('/') || '/',
},
- route.breadcrumbName,
+ route.breadcrumbName
)
);
};
@@ -191,9 +180,7 @@ export default class PageHeader extends PureComponent {
{content &&
{content}
}
- {extraContent && (
-
{extraContent}
- )}
+ {extraContent &&
{extraContent}
}
diff --git a/src/components/PageHeader/index.less b/src/components/PageHeader/index.less
index a1e3b2e91b27f16e74512bfd0144daf7476cd168..ae0fddc3828f86bcd61df56a743403946874b7bf 100644
--- a/src/components/PageHeader/index.less
+++ b/src/components/PageHeader/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.pageHeader {
background: @component-background;
@@ -61,19 +61,27 @@
}
}
- .title, .action, .content, .extraContent, .main {
+ .title,
+ .action,
+ .content,
+ .extraContent,
+ .main {
flex: auto;
}
- .title, .action {
+ .title,
+ .action {
margin-bottom: 16px;
}
- .logo, .content, .extraContent {
+ .logo,
+ .content,
+ .extraContent {
margin-bottom: 16px;
}
- .action, .extraContent {
+ .action,
+ .extraContent {
text-align: right;
}
@@ -105,7 +113,8 @@
display: block;
}
- .action, .extraContent {
+ .action,
+ .extraContent {
margin-left: 0;
text-align: left;
}
@@ -124,7 +133,8 @@
.pageHeader {
.action {
:global {
- .ant-btn-group, .ant-btn {
+ .ant-btn-group,
+ .ant-btn {
display: block;
margin-bottom: 8px;
}
diff --git a/src/components/PageHeader/index.test.js b/src/components/PageHeader/index.test.js
index e4c44f1857cc2d49b68df20f386dfebc8816e7ae..5238ac557b0d6ed327b7c7005cfaf20c1f3d70ef 100644
--- a/src/components/PageHeader/index.test.js
+++ b/src/components/PageHeader/index.test.js
@@ -17,35 +17,29 @@ const routerData = {
};
describe('test getBreadcrumb', () => {
it('Simple url', () => {
- expect(getBreadcrumb(routerData, '/dashboard/analysis').name).toEqual(
- '分析页',
- );
+ expect(getBreadcrumb(routerData, '/dashboard/analysis').name).toEqual('分析页');
});
it('Parameters url', () => {
- expect(getBreadcrumb(routerData, '/userinfo/2144').name).toEqual(
- '用户信息',
- );
+ expect(getBreadcrumb(routerData, '/userinfo/2144').name).toEqual('用户信息');
});
it('The middle parameter url', () => {
- expect(getBreadcrumb(routerData, '/userinfo/2144/addr').name).toEqual(
- '收货订单',
- );
+ expect(getBreadcrumb(routerData, '/userinfo/2144/addr').name).toEqual('收货订单');
});
it('Loop through the parameters', () => {
- const urlNameList = urlToList('/userinfo/2144/addr').map((url) => {
+ const urlNameList = urlToList('/userinfo/2144/addr').map(url => {
return getBreadcrumb(routerData, url).name;
});
expect(urlNameList).toEqual(['用户列表', '用户信息', '收货订单']);
});
it('a path', () => {
- const urlNameList = urlToList('/userinfo').map((url) => {
+ const urlNameList = urlToList('/userinfo').map(url => {
return getBreadcrumb(routerData, url).name;
});
expect(urlNameList).toEqual(['用户列表']);
});
it('Secondary path', () => {
- const urlNameList = urlToList('/userinfo/2144').map((url) => {
+ const urlNameList = urlToList('/userinfo/2144').map(url => {
return getBreadcrumb(routerData, url).name;
});
expect(urlNameList).toEqual(['用户列表', '用户信息']);
diff --git a/src/components/Result/index.js b/src/components/Result/index.js
index 389a4ef55cd4880a289a99b360d9d5f1273aec60..ada2f5f49f2d5a7f13dff4e09ffd0f86eabf5d4e 100644
--- a/src/components/Result/index.js
+++ b/src/components/Result/index.js
@@ -4,7 +4,13 @@ import { Icon } from 'antd';
import styles from './index.less';
export default function Result({
- className, type, title, description, extra, actions, ...restProps
+ className,
+ type,
+ title,
+ description,
+ extra,
+ actions,
+ ...restProps
}) {
const iconMap = {
error: ,
diff --git a/src/components/Result/index.less b/src/components/Result/index.less
index 9204f0f614e31fe280bed4ed35b7fe5da9f6d652..9953392c0166c0ac641215c27c9664c5fb44aa3d 100644
--- a/src/components/Result/index.less
+++ b/src/components/Result/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.result {
text-align: center;
diff --git a/src/components/SiderMenu/SiderMenu.js b/src/components/SiderMenu/SiderMenu.js
index e8e6d9e4f32dacce4a30899ad5bdbaed65555f12..639d4ad37f57129071f1a693bff7476928dcad8d 100644
--- a/src/components/SiderMenu/SiderMenu.js
+++ b/src/components/SiderMenu/SiderMenu.js
@@ -12,7 +12,7 @@ const { SubMenu } = Menu;
// icon: 'setting',
// icon: 'http://demo.com/icon.png',
// icon: ,
-const getIcon = (icon) => {
+const getIcon = icon => {
if (typeof icon === 'string' && icon.indexOf('http') === 0) {
return ;
}
@@ -23,7 +23,7 @@ const getIcon = (icon) => {
};
export const getMeunMatcheys = (flatMenuKeys, path) => {
- return flatMenuKeys.filter((item) => {
+ return flatMenuKeys.filter(item => {
return pathToRegexp(item).test(path);
});
};
@@ -52,7 +52,7 @@ export default class SiderMenu extends PureComponent {
getDefaultCollapsedSubMenus(props) {
const { location: { pathname } } = props || this.props;
return urlToList(pathname)
- .map((item) => {
+ .map(item => {
return getMeunMatcheys(this.flatMenuKeys, item)[0];
})
.filter(item => item);
@@ -64,7 +64,7 @@ export default class SiderMenu extends PureComponent {
*/
getFlatMenuKeys(menus) {
let keys = [];
- menus.forEach((item) => {
+ menus.forEach(item => {
if (item.children) {
keys = keys.concat(this.getFlatMenuKeys(item.children));
}
@@ -77,7 +77,7 @@ export default class SiderMenu extends PureComponent {
* Judge whether it is http link.return a or Link
* @memberof SiderMenu
*/
- getMenuItemPath = (item) => {
+ getMenuItemPath = item => {
const itemPath = this.conversionPath(item.path);
const icon = getIcon(item.icon);
const { target, name } = item;
@@ -111,7 +111,7 @@ export default class SiderMenu extends PureComponent {
/**
* get SubMenu or Item
*/
- getSubMenuOrItem = (item) => {
+ getSubMenuOrItem = item => {
if (item.children && item.children.some(child => child.name)) {
const childrenItems = this.getNavMenuItems(item.children);
// 当无子菜单时就不展示菜单
@@ -125,8 +125,8 @@ export default class SiderMenu extends PureComponent {
{item.name}
) : (
- item.name
- )
+ item.name
+ )
}
key={item.path}
>
@@ -136,22 +136,20 @@ export default class SiderMenu extends PureComponent {
}
return null;
} else {
- return (
- {this.getMenuItemPath(item)}
- );
+ return {this.getMenuItemPath(item)};
}
};
/**
* 获得菜单子节点
* @memberof SiderMenu
*/
- getNavMenuItems = (menusData) => {
+ getNavMenuItems = menusData => {
if (!menusData) {
return [];
}
return menusData
.filter(item => item.name && !item.hideInMenu)
- .map((item) => {
+ .map(item => {
// make dom
const ItemDom = this.getSubMenuOrItem(item);
return this.checkPermissionItem(item.authority, ItemDom);
@@ -161,13 +159,11 @@ export default class SiderMenu extends PureComponent {
// Get the currently selected menu
getSelectedMenuKeys = () => {
const { location: { pathname } } = this.props;
- return urlToList(pathname).map(itemPath =>
- getMeunMatcheys(this.flatMenuKeys, itemPath).pop(),
- );
+ return urlToList(pathname).map(itemPath => getMeunMatcheys(this.flatMenuKeys, itemPath).pop());
};
// conversion Path
// 转化路径
- conversionPath = (path) => {
+ conversionPath = path => {
if (path && path.indexOf('http') === 0) {
return path;
} else {
@@ -182,13 +178,10 @@ export default class SiderMenu extends PureComponent {
}
return ItemDom;
};
- isMainMenu = (key) => {
- return this.menus.some(
- item =>
- key && (item.key === key || item.path === key),
- );
- }
- handleOpenChange = (openKeys) => {
+ isMainMenu = key => {
+ return this.menus.some(item => key && (item.key === key || item.path === key));
+ };
+ handleOpenChange = openKeys => {
const lastOpenKey = openKeys[openKeys.length - 1];
const moreThanOne = openKeys.filter(openKey => this.isMainMenu(openKey)).length > 1;
this.setState({
@@ -202,8 +195,8 @@ export default class SiderMenu extends PureComponent {
const menuProps = collapsed
? {}
: {
- openKeys,
- };
+ openKeys,
+ };
// if pathname can't match, use the nearest parent's key
let selectedKeys = this.getSelectedMenuKeys();
if (!selectedKeys.length) {
diff --git a/src/components/SiderMenu/SilderMenu.test.js b/src/components/SiderMenu/SilderMenu.test.js
index e6f1f55a8dc578a8ad156171e6b4be423b730abd..d74a5f5ddc33f72e8aa625553562e57a9e2574fa 100644
--- a/src/components/SiderMenu/SilderMenu.test.js
+++ b/src/components/SiderMenu/SilderMenu.test.js
@@ -1,12 +1,6 @@
import { getMeunMatcheys } from './SiderMenu';
-const meun = [
- '/dashboard',
- '/userinfo',
- '/dashboard/name',
- '/userinfo/:id',
- '/userinfo/:id/info',
-];
+const meun = ['/dashboard', '/userinfo', '/dashboard/name', '/userinfo/:id', '/userinfo/:id/info'];
describe('test meun match', () => {
it('simple path', () => {
@@ -17,20 +11,14 @@ describe('test meun match', () => {
});
it('Secondary path', () => {
- expect(getMeunMatcheys(meun, '/dashboard/name')).toEqual([
- '/dashboard/name',
- ]);
+ expect(getMeunMatcheys(meun, '/dashboard/name')).toEqual(['/dashboard/name']);
});
it('Parameter path', () => {
- expect(getMeunMatcheys(meun, '/userinfo/2144')).toEqual([
- '/userinfo/:id',
- ]);
+ expect(getMeunMatcheys(meun, '/userinfo/2144')).toEqual(['/userinfo/:id']);
});
it('three parameter path', () => {
- expect(getMeunMatcheys(meun, '/userinfo/2144/info')).toEqual([
- '/userinfo/:id/info',
- ]);
+ expect(getMeunMatcheys(meun, '/userinfo/2144/info')).toEqual(['/userinfo/:id/info']);
});
});
diff --git a/src/components/SiderMenu/index.js b/src/components/SiderMenu/index.js
index 70b3e474b1d73b308e714817ceb210ac84ca9d79..640d6ba5cedbe84ab422fc462a3fc7247e304ff0 100644
--- a/src/components/SiderMenu/index.js
+++ b/src/components/SiderMenu/index.js
@@ -3,17 +3,20 @@ import React from 'react';
import DrawerMenu from 'rc-drawer-menu';
import SiderMenu from './SiderMenu';
-export default props => (
+export default props =>
props.isMobile ? (
{ props.onCollapse(true); }}
+ onMaskClick={() => {
+ props.onCollapse(true);
+ }}
width="256px"
>
- ) :
-);
+ ) : (
+
+ );
diff --git a/src/components/SiderMenu/index.less b/src/components/SiderMenu/index.less
index 2f02116d3018d60964b29094771edc00f5b12db0..9fa1a91a0fedaf2f8adb20965f7b51b08565b2b8 100644
--- a/src/components/SiderMenu/index.less
+++ b/src/components/SiderMenu/index.less
@@ -51,7 +51,12 @@
}
.ant-menu-inline-collapsed {
& > .ant-menu-item .sider-menu-item-img + span,
- & > .ant-menu-item-group > .ant-menu-item-group-list > .ant-menu-item .sider-menu-item-img + span,
+ &
+ > .ant-menu-item-group
+ > .ant-menu-item-group-list
+ > .ant-menu-item
+ .sider-menu-item-img
+ + span,
& > .ant-menu-submenu > .ant-menu-submenu-title .sider-menu-item-img + span {
max-width: 0;
display: inline-block;
@@ -60,7 +65,7 @@
}
.ant-menu-item .sider-menu-item-img + span,
.ant-menu-submenu-title .sider-menu-item-img + span {
- transition: opacity .3s @ease-in-out, width .3s @ease-in-out;
+ transition: opacity 0.3s @ease-in-out, width 0.3s @ease-in-out;
opacity: 1;
}
}
diff --git a/src/components/StandardFormRow/index.js b/src/components/StandardFormRow/index.js
index 4ed6d9d9b9679352ab6daf7af48e5cbb49015bd4..ec8ae1dce994db20d0c8733fbfae6d5074cd98af 100644
--- a/src/components/StandardFormRow/index.js
+++ b/src/components/StandardFormRow/index.js
@@ -11,16 +11,12 @@ export default ({ title, children, last, block, grid, ...rest }) => {
return (
- {
- title && (
-
- {title}
-
- )
- }
-
- {children}
-
+ {title && (
+
+ {title}
+
+ )}
+
{children}
);
};
diff --git a/src/components/StandardFormRow/index.less b/src/components/StandardFormRow/index.less
index d36ac596ac4f747d696f85869fd837ab0e7806c4..83ab019f43217c2ee53d037b24a327e92c4a00c2 100644
--- a/src/components/StandardFormRow/index.less
+++ b/src/components/StandardFormRow/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.standardFormRow {
border-bottom: 1px dashed @border-color-split;
diff --git a/src/components/StandardTable/index.js b/src/components/StandardTable/index.js
index a2c35eaf84aba9e3ff00c3cc85f17880effff7f0..95198e4c915f7452ee3aa04efcefa67e14322ca9 100644
--- a/src/components/StandardTable/index.js
+++ b/src/components/StandardTable/index.js
@@ -4,7 +4,7 @@ import styles from './index.less';
function initTotalList(columns) {
const totalList = [];
- columns.forEach((column) => {
+ columns.forEach(column => {
if (column.needTotal) {
totalList.push({ ...column, total: 0 });
}
@@ -37,7 +37,7 @@ class StandardTable extends PureComponent {
handleRowSelectChange = (selectedRowKeys, selectedRows) => {
let needTotalList = [...this.state.needTotalList];
- needTotalList = needTotalList.map((item) => {
+ needTotalList = needTotalList.map(item => {
return {
...item,
total: selectedRows.reduce((sum, val) => {
@@ -51,15 +51,15 @@ class StandardTable extends PureComponent {
}
this.setState({ selectedRowKeys, needTotalList });
- }
+ };
handleTableChange = (pagination, filters, sorter) => {
this.props.onChange(pagination, filters, sorter);
- }
+ };
cleanSelectedKeys = () => {
this.handleRowSelectChange([], []);
- }
+ };
render() {
const { selectedRowKeys, needTotalList } = this.state;
@@ -83,22 +83,22 @@ class StandardTable extends PureComponent {
已选择 {selectedRowKeys.length} 项
- {
- needTotalList.map(item => (
- {item.title}总计
-
- {item.render ? item.render(item.total) : item.total}
-
+ {needTotalList.map(item => (
+
+ {item.title}总计
+
+ {item.render ? item.render(item.total) : item.total}
- )
- )
- }
- 清空
+
+ ))}
+
+ 清空
+
- )}
+ }
type="info"
showIcon
/>
diff --git a/src/components/StandardTable/index.less b/src/components/StandardTable/index.less
index 4ced9e78814b02d62fa252610cc13f8294f9c1ef..817be991fecf735770e93f7846d22edf39f869ba 100644
--- a/src/components/StandardTable/index.less
+++ b/src/components/StandardTable/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.standardTable {
:global {
diff --git a/src/components/TagSelect/TagSelectOption.d.ts b/src/components/TagSelect/TagSelectOption.d.ts
index c69d421afab310662e9387f9cf6dd2e30e74fff6..366b297a7d3ff01c2a07a5c219b1b04558b8f8ab 100644
--- a/src/components/TagSelect/TagSelectOption.d.ts
+++ b/src/components/TagSelect/TagSelectOption.d.ts
@@ -5,7 +5,4 @@ export interface ITagSelectOptionProps {
style?: React.CSSProperties;
}
-export default class TagSelectOption extends React.Component<
- ITagSelectOptionProps,
- any
-> {}
+export default class TagSelectOption extends React.Component {}
diff --git a/src/components/TagSelect/index.js b/src/components/TagSelect/index.js
index e0159aa7d03fa92f61d8c73c99577e23f938b19b..773b9c841a13fc1d9d8b098ef9ffd1ec66d5277b 100644
--- a/src/components/TagSelect/index.js
+++ b/src/components/TagSelect/index.js
@@ -7,11 +7,7 @@ import styles from './index.less';
const { CheckableTag } = Tag;
const TagSelectOption = ({ children, checked, onChange, value }) => (
- onChange(value, state)}
- >
+ onChange(value, state)}>
{children}
);
@@ -29,7 +25,7 @@ class TagSelect extends Component {
}
}
- onChange = (value) => {
+ onChange = value => {
const { onChange } = this.props;
if (!('value' in this.props)) {
this.setState({ value });
@@ -37,15 +33,15 @@ class TagSelect extends Component {
if (onChange) {
onChange(value);
}
- }
+ };
- onSelectAll = (checked) => {
+ onSelectAll = checked => {
let checkedTags = [];
if (checked) {
checkedTags = this.getAllTags();
}
this.onChange(checkedTags);
- }
+ };
getAllTags() {
let { children } = this.props;
@@ -66,19 +62,21 @@ class TagSelect extends Component {
checkedTags.splice(index, 1);
}
this.onChange(checkedTags);
- }
+ };
handleExpand = () => {
this.setState({
expand: !this.state.expand,
});
- }
+ };
- isTagSelectOption = (node) => {
- return node && node.type && (
- node.type.isTagSelectOption || node.type.displayName === 'TagSelectOption'
+ isTagSelectOption = node => {
+ return (
+ node &&
+ node.type &&
+ (node.type.isTagSelectOption || node.type.displayName === 'TagSelectOption')
);
- }
+ };
render() {
const { value, expand } = this.state;
@@ -92,15 +90,11 @@ class TagSelect extends Component {
});
return (
-
+
全部
- {
- value && React.Children.map(children, (child) => {
+ {value &&
+ React.Children.map(children, child => {
if (this.isTagSelectOption(child)) {
return React.cloneElement(child, {
key: `tag-select-${child.props.value}`,
@@ -110,15 +104,12 @@ class TagSelect extends Component {
});
}
return child;
- })
- }
- {
- expandable && (
-
- {expand ? '收起' : '展开'}
-
- )
- }
+ })}
+ {expandable && (
+
+ {expand ? '收起' : '展开'}
+
+ )}
);
}
diff --git a/src/components/TagSelect/index.less b/src/components/TagSelect/index.less
index df2669c48af830fe28e345f0353e027fe81379a8..834b39a6dba63919c8444e713548740b8b23d943 100644
--- a/src/components/TagSelect/index.less
+++ b/src/components/TagSelect/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.tagSelect {
user-select: none;
@@ -7,7 +7,7 @@
overflow: hidden;
max-height: 32px;
line-height: 32px;
- transition: all .3s;
+ transition: all 0.3s;
:global {
.ant-tag {
padding: 0 8px;
@@ -16,7 +16,7 @@
}
}
&.expanded {
- transition: all .3s;
+ transition: all 0.3s;
max-height: 200px;
}
.trigger {
diff --git a/src/components/Trend/index.js b/src/components/Trend/index.js
index 2cbaad4e237a74dc98c51a3a9880afeb798216f3..cde4ef607f9acf6b3c49d1eee59f77f1683339d8 100644
--- a/src/components/Trend/index.js
+++ b/src/components/Trend/index.js
@@ -4,17 +4,21 @@ import classNames from 'classnames';
import styles from './index.less';
const Trend = ({ colorful = true, flag, children, className, ...rest }) => {
- const classString = classNames(styles.trendItem, {
- [styles.trendItemGrey]: !colorful,
- }, className);
+ const classString = classNames(
+ styles.trendItem,
+ {
+ [styles.trendItemGrey]: !colorful,
+ },
+ className
+ );
return (
-
+
{children}
- {flag && }
+ {flag && (
+
+
+
+ )}
);
};
diff --git a/src/components/Trend/index.less b/src/components/Trend/index.less
index 48695c967f4b143e500d032d4d58da2abf754002..ea66fcf7ba7f5ca004e255a39daae02dfa725bd6 100644
--- a/src/components/Trend/index.less
+++ b/src/components/Trend/index.less
@@ -1,4 +1,4 @@
-@import "~antd/lib/style/themes/default.less";
+@import '~antd/lib/style/themes/default.less';
.trendItem {
display: inline-block;
diff --git a/src/components/_utils/pathTools.test.js b/src/components/_utils/pathTools.test.js
index 4daf28b4b8438d7d03b671ca542858c025bb95bf..a9b93155176fb9cd8a7eaf088e6ba50c9103e512 100644
--- a/src/components/_utils/pathTools.test.js
+++ b/src/components/_utils/pathTools.test.js
@@ -5,10 +5,7 @@ describe('test urlToList', () => {
expect(urlToList('/userinfo')).toEqual(['/userinfo']);
});
it('Secondary path', () => {
- expect(urlToList('/userinfo/2144')).toEqual([
- '/userinfo',
- '/userinfo/2144',
- ]);
+ expect(urlToList('/userinfo/2144')).toEqual(['/userinfo', '/userinfo/2144']);
});
it('Three paths', () => {
expect(urlToList('/userinfo/2144/addr')).toEqual([
diff --git a/src/index.ejs b/src/index.ejs
index fc8bf98ddb1fef9d3aa2bba9c43dd3b3ab641e6d..586f62e88da0971078be870f355d44910e064dc0 100644
--- a/src/index.ejs
+++ b/src/index.ejs
@@ -13,4 +13,4 @@