From a0396eb13949446e3ee52dd390819ca3e0238346 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B8=85?= Date: Fri, 10 Aug 2018 09:36:03 +0800 Subject: [PATCH 01/21] update .gitignore --- .gitignore | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index e0a60f36..7f0586f4 100755 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,19 @@ yarn-error.log yarn.lock package-lock.json *bak +jsconfig.json +.vscode -# visual studio code -.history \ No newline at end of file +# visual studio code +.history +*.log + +functions/mock +.temp/** + +# umi +.umi +.umi-production + +# screenshot +screenshot \ No newline at end of file From cd19fe85d5ee62db5f09b38cfaf54fed14b4c510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B8=85?= Date: Fri, 10 Aug 2018 09:38:25 +0800 Subject: [PATCH 02/21] bump 1.4.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a3a222ed..df4fb686 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ant-design-pro", - "version": "1.4.1", + "version": "1.4.4", "description": "An out-of-box UI solution for enterprise applications", "private": true, "scripts": { From 419498bcc72d85748777b286314a9f33b487f360 Mon Sep 17 00:00:00 2001 From: Sean Bao Date: Tue, 7 Aug 2018 11:10:26 +0800 Subject: [PATCH 03/21] Add param to onChange event --- src/components/HeaderSearch/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/HeaderSearch/index.js b/src/components/HeaderSearch/index.js index 3f393642..95b631c3 100644 --- a/src/components/HeaderSearch/index.js +++ b/src/components/HeaderSearch/index.js @@ -45,7 +45,7 @@ export default class HeaderSearch extends PureComponent { this.setState({ value }); const { onChange } = this.props; if (onChange) { - onChange(); + onChange(value); } }; From 839cbb15bd57d6edd994847261128b8eef778145 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B8=85?= Date: Mon, 13 Aug 2018 10:13:52 +0800 Subject: [PATCH 04/21] add circleci label --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 08a4a950..d8f1a9b8 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,7 @@ [Русский](./README.ru-RU.md) | English | [简体中文](./README.zh-CN.md) # Ant Design Pro - -[![](https://img.shields.io/travis/ant-design/ant-design-pro/master.svg?style=flat-square)](https://travis-ci.org/ant-design/ant-design-pro) -[![Build status](https://ci.appveyor.com/api/projects/status/67fxu2by3ibvqtat/branch/master?svg=true)](https://ci.appveyor.com/project/afc163/ant-design-pro/branch/master) +[![CircleCI Status](https://circleci.com/gh/ant-design/ant-design-pro.svg?style=svg)](https://circleci.com/gh/ant-design/ant-design-pro/) [![Dependencies](https://img.shields.io/david/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro) [![DevDependencies](https://img.shields.io/david/dev/ant-design/ant-design-pro.svg)](https://david-dm.org/ant-design/ant-design-pro#info=devDependencies&view=list) [![Gitter](https://badges.gitter.im/ant-design/ant-design-pro.svg)](https://gitter.im/ant-design/ant-design-pro?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) From 3f0c6e4503884197d17ea4888de4271a3891f285 Mon Sep 17 00:00:00 2001 From: Li Haitao Date: Tue, 14 Aug 2018 09:03:39 +0800 Subject: [PATCH 05/21] Move "react-loadable" to dependencies "react-loadable" should not be DEV dependencies because it be used in "src/common/router.js" --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index df4fb686..be94cc6b 100755 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "react-document-title": "^2.0.3", "react-dom": "^16.4.1", "react-fittext": "^1.0.0", + "react-loadable": "^5.5.0", "rollbar": "^2.3.4", "setprototypeof": "^1.1.0", "url-polyfill": "^1.0.10" @@ -71,7 +72,6 @@ "mockjs": "^1.0.1-beta3", "prettier": "1.14.2", "pro-download": "^1.0.1", - "react-loadable": "^5.5.0", "redbox-react": "^1.5.0", "regenerator-runtime": "^0.12.0", "roadhog": "^2.4.2", From c9186043b1c336a2cf0f481136eefda7f7a38149 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=8F=E5=8F=B3?= Date: Sat, 18 Aug 2018 12:03:15 +0800 Subject: [PATCH 06/21] Make rollbar variable optional --- src/rollbar.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/rollbar.js b/src/rollbar.js index b62df996..8bf19d68 100644 --- a/src/rollbar.js +++ b/src/rollbar.js @@ -1,7 +1,6 @@ -import Rollbar from 'rollbar'; - // Track error by rollbar.com if (location.host === 'preview.pro.ant.design') { + const Rollbar = require('rollbar').default; Rollbar.init({ accessToken: '033ca6d7c0eb4cc1831cf470c2649971', captureUncaught: true, From b425de859f0cf0ad74c18ef7c6977f91a1d9590a Mon Sep 17 00:00:00 2001 From: KJlmfe Date: Sun, 29 Jul 2018 11:58:56 +0800 Subject: [PATCH 07/21] refactor: reduce code duplication of routerDataCache --- src/common/router.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/common/router.js b/src/common/router.js index 25379fb9..eeef241b 100644 --- a/src/common/router.js +++ b/src/common/router.js @@ -6,6 +6,13 @@ import { getMenuData } from './menu'; let routerDataCache; +const getRouterDataCache = app => { + if (!routerDataCache) { + routerDataCache = getRouterData(app); + } + return routerDataCache; +}; + const modelNotExisted = (app, model) => // eslint-disable-next-line !app._models.some(({ namespace }) => { @@ -26,27 +33,21 @@ const dynamicWrapper = (app, models, component) => { // transformed by babel-plugin-dynamic-import-node-sync if (component.toString().indexOf('.then(') < 0) { return props => { - if (!routerDataCache) { - routerDataCache = getRouterData(app); - } return createElement(component().default, { ...props, - routerData: routerDataCache, + routerData: getRouterDataCache(app), }); }; } // () => import('module') return Loadable({ loader: () => { - if (!routerDataCache) { - routerDataCache = getRouterData(app); - } return component().then(raw => { const Component = raw.default || raw; return props => createElement(Component, { ...props, - routerData: routerDataCache, + routerData: getRouterDataCache(app), }); }); }, From ca48ba14ed9aec521567035d5620264f9bb83596 Mon Sep 17 00:00:00 2001 From: rohrbachan <38455159+rohrbachan@users.noreply.github.com> Date: Fri, 17 Aug 2018 09:36:36 +0200 Subject: [PATCH 08/21] Add missing colors prop in Pie Chart index.d.ts the property colors?: string[] was missing in the typescript definitions --- src/components/Charts/Pie/index.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/Charts/Pie/index.d.ts b/src/components/Charts/Pie/index.d.ts index 46e4600d..66c93eeb 100644 --- a/src/components/Charts/Pie/index.d.ts +++ b/src/components/Charts/Pie/index.d.ts @@ -2,6 +2,7 @@ import * as React from 'react'; export interface IPieProps { animate?: boolean; color?: string; + colors?: string[]; height: number; hasLegend?: boolean; padding?: [number, number, number, number]; From 1f4b5bbf5d80e9b6986b545ea23162373a011bfe Mon Sep 17 00:00:00 2001 From: Amumu Date: Tue, 14 Aug 2018 16:29:55 +0800 Subject: [PATCH 09/21] Break the loop and avoid being overwritten MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 首次匹配终止循环,提高性能并避免被二次匹配覆盖 --- src/layouts/BasicLayout.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/layouts/BasicLayout.js b/src/layouts/BasicLayout.js index 4fcdac68..e1a3363f 100644 --- a/src/layouts/BasicLayout.js +++ b/src/layouts/BasicLayout.js @@ -134,10 +134,12 @@ export default class BasicLayout extends React.PureComponent { let title = 'Ant Design Pro'; let currRouterData = null; // match params path - Object.keys(routerData).forEach(key => { + Object.keys(routerData).some(key => { if (pathToRegexp(key).test(pathname)) { currRouterData = routerData[key]; + return true; } + return false; }); if (currRouterData && currRouterData.name) { title = `${currRouterData.name} - Ant Design Pro`; From a2d9a5780f486c96fe4f159461df1a1e6ddc8b0f Mon Sep 17 00:00:00 2001 From: yoyo837 Date: Tue, 14 Aug 2018 16:48:44 +0800 Subject: [PATCH 10/21] find --- src/layouts/BasicLayout.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/layouts/BasicLayout.js b/src/layouts/BasicLayout.js index e1a3363f..781d6dbd 100644 --- a/src/layouts/BasicLayout.js +++ b/src/layouts/BasicLayout.js @@ -132,15 +132,10 @@ export default class BasicLayout extends React.PureComponent { const { routerData, location } = this.props; const { pathname } = location; let title = 'Ant Design Pro'; - let currRouterData = null; // match params path - Object.keys(routerData).some(key => { - if (pathToRegexp(key).test(pathname)) { - currRouterData = routerData[key]; - return true; - } - return false; - }); + const currRouterData = (Object.entries(routerData).find(([key]) => + pathToRegexp(key).test(pathname) + ) || [])[1]; if (currRouterData && currRouterData.name) { title = `${currRouterData.name} - Ant Design Pro`; } From 8924573414202d0755d61dccc2711cdfefbbf6d4 Mon Sep 17 00:00:00 2001 From: yoyo837 Date: Tue, 14 Aug 2018 19:23:20 +0800 Subject: [PATCH 11/21] for in --- src/layouts/BasicLayout.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/layouts/BasicLayout.js b/src/layouts/BasicLayout.js index 781d6dbd..cfdfa277 100644 --- a/src/layouts/BasicLayout.js +++ b/src/layouts/BasicLayout.js @@ -132,10 +132,14 @@ export default class BasicLayout extends React.PureComponent { const { routerData, location } = this.props; const { pathname } = location; let title = 'Ant Design Pro'; + let currRouterData = null; // match params path - const currRouterData = (Object.entries(routerData).find(([key]) => - pathToRegexp(key).test(pathname) - ) || [])[1]; + for (key in Object.keys(routerData)) { + if (pathToRegexp(key).test(pathname)) { + currRouterData = routerData[key]; + break + } + } if (currRouterData && currRouterData.name) { title = `${currRouterData.name} - Ant Design Pro`; } From 212bc8893d5daeb54497a5a710c8fb8183ff4895 Mon Sep 17 00:00:00 2001 From: Amumu Date: Tue, 14 Aug 2018 18:08:53 +0800 Subject: [PATCH 12/21] =?UTF-8?q?menu=20key=E5=AF=B9switch=E7=9A=84?= =?UTF-8?q?=E5=AD=90=E9=A1=B5=E9=9D=A2=E6=B2=A1=E6=9C=89=E9=85=8D=E7=BD=AE?= =?UTF-8?q?menu=E6=97=B6=E5=8F=96=E7=88=B6=E8=8F=9C=E5=8D=95=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit menu key对switch的子页面没有配置menu时取父菜单配置 --- src/common/router.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/common/router.js b/src/common/router.js index eeef241b..98cc6d8b 100644 --- a/src/common/router.js +++ b/src/common/router.js @@ -70,6 +70,22 @@ function getFlatMenuData(menus) { return keys; } +function findMenuKey(menuData, path) { + const menuKey = Object.keys(menuData).find(key => pathToRegexp(path).test(key)); + if (menuKey == null) { + if (path === '/') { + return null; + } + const lastIdx = path.lastIndexOf('/'); + if (lastIdx < 0) { + return null; + } + // 如果没有,使用上一层的配置 + return findMenuKey(menuData, path.substr(0, lastIdx)); + } + return menuKey; +} + export const getRouterData = app => { const routerConfig = { '/': { @@ -185,8 +201,7 @@ export const getRouterData = app => { Object.keys(routerConfig).forEach(path => { // Regular match item name // eg. router /user/:id === /user/chen - const pathRegexp = pathToRegexp(path); - const menuKey = Object.keys(menuData).find(key => pathRegexp.test(`${key}`)); + const menuKey = findMenuKey(menuData, path); let menuItem = {}; // If menuKey is not empty if (menuKey) { From f9c3004c643eaf94549f1239dcbc104397cb1a21 Mon Sep 17 00:00:00 2001 From: yoyo837 Date: Tue, 14 Aug 2018 18:13:46 +0800 Subject: [PATCH 13/21] update --- src/common/router.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/common/router.js b/src/common/router.js index 98cc6d8b..df247acd 100644 --- a/src/common/router.js +++ b/src/common/router.js @@ -80,6 +80,9 @@ function findMenuKey(menuData, path) { if (lastIdx < 0) { return null; } + if (lastIdx === 0) { + return findMenuKey(menuData, '/'); + } // 如果没有,使用上一层的配置 return findMenuKey(menuData, path.substr(0, lastIdx)); } From 6cadeff1f9902fe7e8e3d1e7f6807cbc142cb6b6 Mon Sep 17 00:00:00 2001 From: afc163 Date: Sun, 19 Aug 2018 17:38:20 +0800 Subject: [PATCH 14/21] fxi key declaration --- src/layouts/BasicLayout.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/layouts/BasicLayout.js b/src/layouts/BasicLayout.js index cfdfa277..a0ca2286 100644 --- a/src/layouts/BasicLayout.js +++ b/src/layouts/BasicLayout.js @@ -134,10 +134,10 @@ export default class BasicLayout extends React.PureComponent { let title = 'Ant Design Pro'; let currRouterData = null; // match params path - for (key in Object.keys(routerData)) { + for (const key in Object.keys(routerData)) { if (pathToRegexp(key).test(pathname)) { currRouterData = routerData[key]; - break + break; } } if (currRouterData && currRouterData.name) { From a6aebc68f40635050c4b6a4a60d9d6413ba20cff Mon Sep 17 00:00:00 2001 From: Aliaksandr Date: Mon, 20 Aug 2018 10:45:56 +0300 Subject: [PATCH 15/21] Fix a typo --- README.ru-RU.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.ru-RU.md b/README.ru-RU.md index 6110c1ab..f04bac21 100644 --- a/README.ru-RU.md +++ b/README.ru-RU.md @@ -32,7 +32,7 @@ UI-решение "из коробки" для корпоративных при - :art: **Темизация**: Возможность изменения темы с помощью конфигурации - :globe_with_meridians: **Мультиязычность**: Встроенное i18n решение - :gear: **Лучшие практики**: Надежные процессы для хорошего кода -- :1234: **Разработка по шиблону**: Простое в использовании решение для разработки +- :1234: **Разработка по шаблону**: Простое в использовании решение для разработки - :white_check_mark: **UI тесты**: Разрабатывайте безопасно с юнит и e2e тестами ## Шаблоны From 3c2a056ef0dac06ce3b4389192691bb1f5c448e2 Mon Sep 17 00:00:00 2001 From: ohhoney1 <1269075501@qq.com> Date: Mon, 20 Aug 2018 17:20:31 +0800 Subject: [PATCH 16/21] fix bug: cannot set light theme correctly --- src/components/SiderMenu/SiderMenu.js | 12 ++++++++---- src/components/SiderMenu/index.less | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/components/SiderMenu/SiderMenu.js b/src/components/SiderMenu/SiderMenu.js index 8c2f77d1..7ef31536 100644 --- a/src/components/SiderMenu/SiderMenu.js +++ b/src/components/SiderMenu/SiderMenu.js @@ -2,6 +2,7 @@ import React, { PureComponent } from 'react'; import { Layout, Menu, Icon } from 'antd'; import pathToRegexp from 'path-to-regexp'; import { Link } from 'dva/router'; +import classNames from 'classnames'; import styles from './index.less'; import { urlToList } from '../_utils/pathTools'; @@ -75,8 +76,7 @@ export default class SiderMenu extends PureComponent { getDefaultCollapsedSubMenus(props) { const { location: { pathname }, - } = - props || this.props; + } = props || this.props; return getMenuMatchKeys(this.flatMenuKeys, urlToList(pathname)); } @@ -212,6 +212,10 @@ export default class SiderMenu extends PureComponent { render() { const { logo, menuData, collapsed, onCollapse } = this.props; const { openKeys } = this.state; + const theme = 'dark'; + const siderClass = classNames(styles.sider, { + [styles.light]: theme === 'light', + }); // Don't show popup menu when it is been collapsed const menuProps = collapsed ? {} @@ -231,7 +235,7 @@ export default class SiderMenu extends PureComponent { breakpoint="lg" onCollapse={onCollapse} width={256} - className={styles.sider} + className={siderClass} >
@@ -241,7 +245,7 @@ export default class SiderMenu extends PureComponent {
Date: Tue, 21 Aug 2018 12:24:06 +0800 Subject: [PATCH 17/21] fix for in loop. --- src/layouts/BasicLayout.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/layouts/BasicLayout.js b/src/layouts/BasicLayout.js index a0ca2286..fbb35bd9 100644 --- a/src/layouts/BasicLayout.js +++ b/src/layouts/BasicLayout.js @@ -134,7 +134,7 @@ export default class BasicLayout extends React.PureComponent { let title = 'Ant Design Pro'; let currRouterData = null; // match params path - for (const key in Object.keys(routerData)) { + for (const key in routerData) { if (pathToRegexp(key).test(pathname)) { currRouterData = routerData[key]; break; From 91e47a403eca120d935aa7f420eb092b31e51828 Mon Sep 17 00:00:00 2001 From: yoyo837 Date: Fri, 24 Aug 2018 18:40:07 +0800 Subject: [PATCH 18/21] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20#1995=20=E4=B8=AD=20?= =?UTF-8?q?=E4=B8=BA=E4=BA=86=E5=B0=B1=E8=BF=91=E6=98=BE=E7=A4=BAtitle?= =?UTF-8?q?=E8=80=8C=E5=AF=BC=E8=87=B4=E9=9D=A2=E5=8C=85=E5=B1=91=E5=9C=A8?= =?UTF-8?q?=E6=9C=AA=E9=85=8D=E7=BD=AE=E8=8F=9C=E5=8D=95=E7=9A=84=E5=AD=90?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=E6=97=B6=E9=87=8D=E5=A4=8D=E5=A4=9A=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/router.js | 7 ++++++- src/components/PageHeader/index.js | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/common/router.js b/src/common/router.js index df247acd..269ed7a7 100644 --- a/src/common/router.js +++ b/src/common/router.js @@ -204,7 +204,11 @@ export const getRouterData = app => { Object.keys(routerConfig).forEach(path => { // Regular match item name // eg. router /user/:id === /user/chen - const menuKey = findMenuKey(menuData, path); + let menuKey = Object.keys(menuData).find(key => pathToRegexp(path).test(`${key}`)); + const inherited = menuKey == null; + if (menuKey == null) { + menuKey = findMenuKey(menuData, path); + } let menuItem = {}; // If menuKey is not empty if (menuKey) { @@ -219,6 +223,7 @@ export const getRouterData = app => { name: router.name || menuItem.name, authority: router.authority || menuItem.authority, hideInBreadcrumb: router.hideInBreadcrumb || menuItem.hideInBreadcrumb, + inherited, }; routerData[path] = router; }); diff --git a/src/components/PageHeader/index.js b/src/components/PageHeader/index.js index 7a602da0..df63c8d3 100644 --- a/src/components/PageHeader/index.js +++ b/src/components/PageHeader/index.js @@ -101,6 +101,9 @@ export default class PageHeader extends PureComponent { // Loop data mosaic routing const extraBreadcrumbItems = pathSnippets.map((url, index) => { const currentBreadcrumb = getBreadcrumb(breadcrumbNameMap, url); + if (currentBreadcrumb.inherited) { + return null; + } const isLinkable = index !== pathSnippets.length - 1 && currentBreadcrumb.component; return currentBreadcrumb.name && !currentBreadcrumb.hideInBreadcrumb ? ( From df0274802090a8fa3f101f2a57b4b0b209a263a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=83=E7=A7=8B?= Date: Mon, 27 Aug 2018 09:10:54 +0800 Subject: [PATCH 19/21] remove unnecessary 'x' permission of some configuration files --- .editorconfig | 0 .eslintrc.js | 0 .gitignore | 0 .webpackrc.js | 0 package.json | 0 5 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 .editorconfig mode change 100755 => 100644 .eslintrc.js mode change 100755 => 100644 .gitignore mode change 100755 => 100644 .webpackrc.js mode change 100755 => 100644 package.json diff --git a/.editorconfig b/.editorconfig old mode 100755 new mode 100644 diff --git a/.eslintrc.js b/.eslintrc.js old mode 100755 new mode 100644 diff --git a/.gitignore b/.gitignore old mode 100755 new mode 100644 diff --git a/.webpackrc.js b/.webpackrc.js old mode 100755 new mode 100644 diff --git a/package.json b/package.json old mode 100755 new mode 100644 From b7e7983661eb5e53dc807452e9653e93e74276d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=B8=85?= Date: Thu, 30 Aug 2018 09:44:46 +0800 Subject: [PATCH 20/21] rm rollbar in externals --- .webpackrc.js | 1 - 1 file changed, 1 deletion(-) diff --git a/.webpackrc.js b/.webpackrc.js index cf91d6d6..17f26da9 100644 --- a/.webpackrc.js +++ b/.webpackrc.js @@ -10,7 +10,6 @@ export default { }, externals: { '@antv/data-set': 'DataSet', - rollbar: 'rollbar', }, alias: { components: path.resolve(__dirname, 'src/components/'), From 285f7a5f5bd44baec3f2e8dc11c9c3c58dfc4e90 Mon Sep 17 00:00:00 2001 From: WeiYang Qiu Date: Fri, 31 Aug 2018 16:09:09 +0800 Subject: [PATCH 21/21] Update TableForm.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Save, add or cancel operation, edit status is not updated. 解决保存、新增、取消操作,编辑状态不更新bug。 --- src/routes/Forms/TableForm.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/Forms/TableForm.js b/src/routes/Forms/TableForm.js index 4e5142cc..51929c34 100644 --- a/src/routes/Forms/TableForm.js +++ b/src/routes/Forms/TableForm.js @@ -102,10 +102,10 @@ export default class TableForm extends PureComponent { }); return; } - const { data } = this.state; - const { onChange } = this.props; delete target.isNew; this.toggleEditable(e, key); + const { data } = this.state; + const { onChange } = this.props; onChange(data); this.setState({ loading: false, @@ -121,9 +121,9 @@ export default class TableForm extends PureComponent { const target = this.getRowByKey(key, newData); if (this.cacheOriginData[key]) { Object.assign(target, this.cacheOriginData[key]); - target.editable = false; delete this.cacheOriginData[key]; } + target.editable = false; this.setState({ data: newData }); this.clickedCancel = false; }