diff --git a/.eslintrc b/.eslintrc index 4113c2e..cee862f 100644 --- a/.eslintrc +++ b/.eslintrc @@ -14,6 +14,7 @@ "allowTernary": true }], "no-console": 0, + "no-script-url": 0, "no-extend-native": 0, "no-param-reassign": 0, "no-restricted-syntax": 0, @@ -23,7 +24,11 @@ "no-plusplus": 0, "no-unused-vars": [2, { "ignoreRestSiblings": true }], "no-underscore-dangle": 0, - "space-before-function-paren": [2, "always"], + "space-before-function-paren": ["error", { + "anonymous":"always", + "named":"never", + "asyncArrow":"always" + }], "import/no-extraneous-dependencies": 0, "import/prefer-default-export": 0, diff --git a/.umirc.js b/.umirc.js index 5e176d2..8a7fe0d 100644 --- a/.umirc.js +++ b/.umirc.js @@ -10,8 +10,7 @@ export default { /service\.(j|t)sx?$/, /models\//, /components\//, - /services\//, - /chart\/Container\.js$/, + /services\// ], }, ], diff --git a/package.json b/package.json index 42e1650..97779c7 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ ], "scripts": { "analyze": "cross-env ANALYZE=1 BABELRC=1 umi build", - "start": "cross-env BABELRC=1 COMPILE_ON_DEMAND=none BROWSER=none ESLINT=none HOST=0.0.0.0 umi dev", + "start": "cross-env BABELRC=1 COMPILE_ON_DEMAND=none BROWSER=none HOST=0.0.0.0 umi dev", "lint": "eslint --fix --ext .js src", "build": "cross-env BABELRC=1 umi build", "test": "umi test" diff --git a/src/components/Exception/index.js b/src/components/Exception/index.js index 27d0fcb..1e9dbde 100644 --- a/src/components/Exception/index.js +++ b/src/components/Exception/index.js @@ -23,7 +23,7 @@ export default ({ className, linkElement = 'a', type, title, desc, img, actions, actions || createElement(linkElement, { to: '/', - href: '/', + href: '/' }, ) } diff --git a/src/components/Exception/typeConfig.js b/src/components/Exception/typeConfig.js index b6e1ee5..1fe5195 100644 --- a/src/components/Exception/typeConfig.js +++ b/src/components/Exception/typeConfig.js @@ -2,18 +2,18 @@ const config = { 403: { img: 'https://gw.alipayobjects.com/zos/rmsportal/wZcnGqRDyhPOEYFcZDnb.svg', title: '403', - desc: '抱歉,你无权访问该页面', + desc: '抱歉,你无权访问该页面' }, 404: { img: 'https://gw.alipayobjects.com/zos/rmsportal/KpnpchXsobRgLElEozzI.svg', title: '404', - desc: '抱歉,你访问的页面不存在', + desc: '抱歉,你访问的页面不存在' }, 500: { img: 'https://gw.alipayobjects.com/zos/rmsportal/RVRUAYdCGeYNBWoKiIwB.svg', title: '500', - desc: '抱歉,服务器出错了', - }, + desc: '抱歉,服务器出错了' + } }; export default config; diff --git a/src/components/Form/AutoField.js b/src/components/Form/AutoField.js index ce1cb8f..6eec64a 100644 --- a/src/components/Form/AutoField.js +++ b/src/components/Form/AutoField.js @@ -83,7 +83,7 @@ class AutoField extends React.Component { initFileFields(field) { if (!field) return; - if (field.fieldType == 'img' || field.fieldType == 'imgs' || field.fieldType == 'file' || field.fieldType == 'files') { + if (field.fieldType === 'img' || field.fieldType === 'imgs' || field.fieldType === 'file' || field.fieldType === 'files') { let fieldValue = field.value || ''; let fileArr = []; if (fieldValue.length > 0) { @@ -109,7 +109,7 @@ class AutoField extends React.Component { this.initFileFields(field); } - componentWillReceiveProps(nextProps) { + UNSAFE_componentWillReceiveProps(nextProps) { let field = nextProps.fieldOption; if (!util.object.equal(nextProps.field, this.props.fieldOption)) { @@ -124,7 +124,7 @@ class AutoField extends React.Component { getValueTag(field) { let self = this; - if (typeof (field.value) == 'undefined' || field.value == 'null') { + if (typeof (field.value) === 'undefined' || field.value === 'null') { field.value = ''; } if (field.render && typeof (field.render) === 'function') return field.render(field.value); @@ -150,7 +150,7 @@ class AutoField extends React.Component { onChange={value => self.onChange(util.string.isEmpty(value) ? 0 : value)} />; case "switch": return } unCheckedChildren={} onChange={value => self.onChange(value ? "1" : "0")} />; @@ -209,7 +209,7 @@ class AutoField extends React.Component { let fieldOption = this.props.fieldOption; let formItemLayout = { labelCol: { span: this.props.labelColSpan }, - wrapperCol: { span: 20 - this.props.labelColSpan }, + wrapperCol: { span: 20 - this.props.labelColSpan } }; return { hash[item['value']] = item; - if (item.folder + '' == 'true') { + if (item.folder + '' === 'true') { folderNodes.push(item); } }); @@ -64,7 +64,7 @@ class BirdCascader extends React.Component { for (let i = 0, len = folderNodes.length; i < len; i++) { let curNode = folderNodes[i]; - while (curNode != null && typeof (curNode) != 'undefined') { + while (curNode !== null && typeof (curNode) !== 'undefined') { let value = curNode['value']; if (hash[value]['children'] && hash[value]['children'].length > 0) break; @@ -73,7 +73,7 @@ class BirdCascader extends React.Component { let pArr = pNode ? pNode['children'] : options; let index = pArr.findIndex(item => item['value'] === value); - if (index == -1) break; + if (index === -1) break; pArr.splice(index, 1) curNode = hash[pValue]; diff --git a/src/components/Form/BirdForm.js b/src/components/Form/BirdForm.js index cabc012..2451cc2 100644 --- a/src/components/Form/BirdForm.js +++ b/src/components/Form/BirdForm.js @@ -1,8 +1,8 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { request, deepClone,util } from 'utils'; +import { request, deepClone, util } from 'utils'; import AutoField from './AutoField'; -import {Form,message,Button,Tabs,Row,Col} from 'antd'; +import { Form, message, Button, Tabs, Row, Col } from 'antd'; const FormItem = Form.Item; const TabPane = Tabs.TabPane; @@ -29,8 +29,8 @@ class BirdForm extends React.Component { isValueChange: false } } - componentWillReceiveProps(nextProps) { - if (nextProps.value != this.props.value) { + UNSAFE_componentWillReceiveProps(nextProps) { + if (nextProps.value !== this.props.value) { let initValue = deepClone(nextProps.value) this.setState({ initValue: initValue @@ -43,13 +43,13 @@ class BirdForm extends React.Component { } initGroup() { - if (!this.props.withTab || this.props.fields.length == 0 || this.state.group.length > 0) return; + if (!this.props.withTab || this.props.fields.length === 0 || this.state.group.length > 0) return; let group = []; for (let field of this.props.fields) { let groupName = field.groupName || this.props.defaultGroupName; - let index = group.findIndex(g => g.groupName == groupName); + let index = group.findIndex(g => g.groupName === groupName); if (index < 0) { group.push({ groupName: groupName, @@ -103,20 +103,20 @@ class BirdForm extends React.Component { save() { let self = this; - if(!self.validate())return; + if (!self.validate()) return; let dto = self.getResult(); - self.setState({submitting: true}) + self.setState({ submitting: true }) request({ url: this.props.saveUrl, method: "post", data: dto }).then(function () { - self.setState({submitting: false}); + self.setState({ submitting: false }); message.success('保存成功'); }).catch(function () { - self.setState({submitting: false}); + self.setState({ submitting: false }); }); } @@ -145,17 +145,17 @@ class BirdForm extends React.Component { } let autoFields = rows.map((row, index) => { - return + return {row.map(field => { - let colSpan = field.colSpan||1; + let colSpan = field.colSpan || 1; if (colSpan > 4) { colSpan = 4; } let unit = 24 / self.props.lineCapacity; - return + return {field.fieldType !== 'empty' && - self.onFieldChange(key, value)}/>} + self.onFieldChange(key, value)} />} })} @@ -168,9 +168,9 @@ class BirdForm extends React.Component { const submitFormLayout = { wrapperCol: { - xs: {span: 24, offset: 0}, - sm: {span: 10, offset: 7}, - }, + xs: { span: 24, offset: 0 }, + sm: { span: 10, offset: 7 } + } }; const button =