From a28a71e9b997b722eb06b69ca30a95cf1a6086a2 Mon Sep 17 00:00:00 2001 From: jim Date: Thu, 8 Mar 2018 10:28:22 +0800 Subject: [PATCH 01/18] standardized typescript d.ts file --- src/components/AvatarList/AvatarItem.d.ts | 10 +++++++ src/components/AvatarList/index.d.ts | 21 ++++---------- src/components/Charts/Bar/index.d.ts | 4 +-- src/components/Charts/ChartCard/index.d.ts | 4 +-- src/components/Charts/Field/index.d.ts | 4 +-- src/components/Charts/Gauge/index.d.ts | 4 +-- src/components/Charts/MiniArea/index.d.ts | 12 ++++---- src/components/Charts/MiniBar/index.d.ts | 4 +-- src/components/Charts/MiniProgress/index.d.ts | 4 +-- src/components/Charts/Pie/index.d.ts | 4 +-- src/components/Charts/Radar/index.d.ts | 4 +-- src/components/Charts/TagCloud/index.d.ts | 4 +-- .../Charts/TimelineChart/index.d.ts | 4 +-- src/components/Charts/WaterWave/index.d.ts | 4 +-- src/components/CountDown/index.d.ts | 4 +-- .../DescriptionList/Description.d.ts | 9 ++++++ src/components/DescriptionList/index.d.ts | 16 ++++------ src/components/Ellipsis/index.d.ts | 4 +-- src/components/Exception/index.d.ts | 4 +-- src/components/FooterToolbar/index.d.ts | 4 +-- src/components/GlobalFooter/index.d.ts | 4 +-- src/components/HeaderSearch/index.d.ts | 6 ++-- src/components/NoticeIcon/NoticeIconTab.d.ts | 22 ++++++++++++++ src/components/NoticeIcon/index.d.ts | 29 ++++--------------- src/components/NumberInfo/index.d.ts | 7 +++-- src/components/PageHeader/index.d.ts | 6 ++-- src/components/Result/index.d.ts | 4 +-- src/components/SiderMenu/index.less | 19 ++++++++---- src/components/TagSelect/TagSelectOption.d.ts | 11 +++++++ src/components/TagSelect/index.d.ts | 23 +++++---------- src/components/Trend/index.d.ts | 4 +-- 31 files changed, 144 insertions(+), 119 deletions(-) create mode 100644 src/components/AvatarList/AvatarItem.d.ts create mode 100644 src/components/DescriptionList/Description.d.ts create mode 100644 src/components/NoticeIcon/NoticeIconTab.d.ts create mode 100644 src/components/TagSelect/TagSelectOption.d.ts diff --git a/src/components/AvatarList/AvatarItem.d.ts b/src/components/AvatarList/AvatarItem.d.ts new file mode 100644 index 00000000..5681de77 --- /dev/null +++ b/src/components/AvatarList/AvatarItem.d.ts @@ -0,0 +1,10 @@ +import * as React from 'react'; +export interface IAvatarItemProps { + tips: React.ReactNode; + src: string; + style?: React.CSSProperties; +} + +export default class AvatarItem extends React.Component { + constructor(props: IAvatarItemProps); +} diff --git a/src/components/AvatarList/index.d.ts b/src/components/AvatarList/index.d.ts index 101a70d4..bc8ce19c 100644 --- a/src/components/AvatarList/index.d.ts +++ b/src/components/AvatarList/index.d.ts @@ -1,23 +1,14 @@ -import * as React from "react"; -export interface AvatarItemProps { - tips: React.ReactNode; - src: string; - style?: React.CSSProperties; -} +import * as React from 'react'; +import AvatarItem from './AvatarItem'; -export interface AvatarListProps { - size?: "large" | "small" | "mini" | "default"; +export interface IAvatarListProps { + size?: 'large' | 'small' | 'mini' | 'default'; style?: React.CSSProperties; children: | React.ReactElement | Array>; } -declare class AvatarItem extends React.Component { - constructor(props: AvatarItemProps); -} - -export default class AvatarList extends React.Component { - constructor(props: AvatarListProps); - static Item: typeof AvatarItem; +export default class AvatarList extends React.Component { + public static Item: typeof AvatarItem; } diff --git a/src/components/Charts/Bar/index.d.ts b/src/components/Charts/Bar/index.d.ts index 7be2a1a7..2813a272 100644 --- a/src/components/Charts/Bar/index.d.ts +++ b/src/components/Charts/Bar/index.d.ts @@ -1,5 +1,5 @@ import * as React from "react"; -export interface BarProps { +export interface IBarProps { title: React.ReactNode; color?: string; padding?: [number, number, number, number]; @@ -12,4 +12,4 @@ export interface BarProps { style?: React.CSSProperties; } -export default class Bar extends React.Component {} +export default class Bar extends React.Component {} diff --git a/src/components/Charts/ChartCard/index.d.ts b/src/components/Charts/ChartCard/index.d.ts index 35a5852e..76470460 100644 --- a/src/components/Charts/ChartCard/index.d.ts +++ b/src/components/Charts/ChartCard/index.d.ts @@ -1,5 +1,5 @@ import * as React from "react"; -export interface ChartCardProps { +export interface IChartCardProps { title: React.ReactNode; action?: React.ReactNode; total?: React.ReactNode | number; @@ -9,4 +9,4 @@ export interface ChartCardProps { style?: React.CSSProperties; } -export default class ChartCard extends React.Component {} +export default class ChartCard extends React.Component {} diff --git a/src/components/Charts/Field/index.d.ts b/src/components/Charts/Field/index.d.ts index b1f779cd..c89aaf96 100644 --- a/src/components/Charts/Field/index.d.ts +++ b/src/components/Charts/Field/index.d.ts @@ -1,8 +1,8 @@ import * as React from "react"; -export interface FieldProps { +export interface IFieldProps { label: React.ReactNode; value: React.ReactNode; style?: React.CSSProperties; } -export default class Field extends React.Component {} +export default class Field extends React.Component {} diff --git a/src/components/Charts/Gauge/index.d.ts b/src/components/Charts/Gauge/index.d.ts index 218fccf3..e91dd562 100644 --- a/src/components/Charts/Gauge/index.d.ts +++ b/src/components/Charts/Gauge/index.d.ts @@ -1,5 +1,5 @@ import * as React from "react"; -export interface GaugeProps { +export interface IGaugeProps { title: React.ReactNode; color?: string; height: number; @@ -8,4 +8,4 @@ export interface GaugeProps { style?: React.CSSProperties; } -export default class Gauge extends React.Component {} +export default class Gauge extends React.Component {} diff --git a/src/components/Charts/MiniArea/index.d.ts b/src/components/Charts/MiniArea/index.d.ts index d2f67e4a..2bcac70c 100644 --- a/src/components/Charts/MiniArea/index.d.ts +++ b/src/components/Charts/MiniArea/index.d.ts @@ -1,9 +1,9 @@ -import * as React from "react"; +import * as React from 'react'; // g2已经更新到3.0 // 不带的写了 -export interface Axis { +export interface IAxis { title: any; line: any; gridAlign: any; @@ -12,18 +12,18 @@ export interface Axis { grid: any; } -export interface MiniAreaProps { +export interface IMiniAreaProps { color?: string; height: number; borderColor?: string; line?: boolean; animate?: boolean; - xAxis?: Axis; - yAxis?: Axis; + xAxis?: IAxis; + yAxis?: IAxis; data: Array<{ x: number; y: number; }>; } -export default class MiniArea extends React.Component {} +export default class MiniArea extends React.Component {} diff --git a/src/components/Charts/MiniBar/index.d.ts b/src/components/Charts/MiniBar/index.d.ts index 3e2f1ec2..0c4bd6cc 100644 --- a/src/components/Charts/MiniBar/index.d.ts +++ b/src/components/Charts/MiniBar/index.d.ts @@ -1,5 +1,5 @@ import * as React from 'react'; -export interface MiniBarProps { +export interface IMiniBarProps { color?: string; height: number; data: Array<{ @@ -9,4 +9,4 @@ export interface MiniBarProps { style?: React.CSSProperties; } -export default class MiniBar extends React.Component {} +export default class MiniBar extends React.Component {} diff --git a/src/components/Charts/MiniProgress/index.d.ts b/src/components/Charts/MiniProgress/index.d.ts index 4dde6052..bbcc1d0b 100644 --- a/src/components/Charts/MiniProgress/index.d.ts +++ b/src/components/Charts/MiniProgress/index.d.ts @@ -1,5 +1,5 @@ import * as React from "react"; -export interface MiniProgressProps { +export interface IMiniProgressProps { target: number; color?: string; strokeWidth?: number; @@ -8,6 +8,6 @@ export interface MiniProgressProps { } export default class MiniProgress extends React.Component< - MiniProgressProps, + IMiniProgressProps, any > {} diff --git a/src/components/Charts/Pie/index.d.ts b/src/components/Charts/Pie/index.d.ts index fe2e2a8e..e9dcd1d4 100644 --- a/src/components/Charts/Pie/index.d.ts +++ b/src/components/Charts/Pie/index.d.ts @@ -1,5 +1,5 @@ import * as React from 'react'; -export interface PieProps { +export interface IPieProps { animate?: boolean; color?: string; height: number; @@ -17,4 +17,4 @@ export interface PieProps { subTitle?: React.ReactNode; } -export default class Pie extends React.Component {} +export default class Pie extends React.Component {} diff --git a/src/components/Charts/Radar/index.d.ts b/src/components/Charts/Radar/index.d.ts index 772cbf02..d0f0dcfd 100644 --- a/src/components/Charts/Radar/index.d.ts +++ b/src/components/Charts/Radar/index.d.ts @@ -1,5 +1,5 @@ import * as React from "react"; -export interface RadarProps { +export interface IRadarProps { title?: React.ReactNode; height: number; padding?: [number, number, number, number]; @@ -12,4 +12,4 @@ export interface RadarProps { style?: React.CSSProperties; } -export default class Radar extends React.Component {} +export default class Radar extends React.Component {} diff --git a/src/components/Charts/TagCloud/index.d.ts b/src/components/Charts/TagCloud/index.d.ts index e2dcc794..a85bac76 100644 --- a/src/components/Charts/TagCloud/index.d.ts +++ b/src/components/Charts/TagCloud/index.d.ts @@ -1,5 +1,5 @@ import * as React from "react"; -export interface TagCloudProps { +export interface ITagCloudProps { data: Array<{ name: string; value: number; @@ -8,4 +8,4 @@ export interface TagCloudProps { style?: React.CSSProperties; } -export default class TagCloud extends React.Component {} +export default class TagCloud extends React.Component {} diff --git a/src/components/Charts/TimelineChart/index.d.ts b/src/components/Charts/TimelineChart/index.d.ts index f9241fa2..5ab7a664 100644 --- a/src/components/Charts/TimelineChart/index.d.ts +++ b/src/components/Charts/TimelineChart/index.d.ts @@ -1,5 +1,5 @@ import * as React from "react"; -export interface TimelineChartProps { +export interface ITimelineChartProps { data: Array<{ x: string; y1: string; @@ -12,6 +12,6 @@ export interface TimelineChartProps { } export default class TimelineChart extends React.Component< - TimelineChartProps, + ITimelineChartProps, any > {} diff --git a/src/components/Charts/WaterWave/index.d.ts b/src/components/Charts/WaterWave/index.d.ts index 309db7b5..8f5588d2 100644 --- a/src/components/Charts/WaterWave/index.d.ts +++ b/src/components/Charts/WaterWave/index.d.ts @@ -1,5 +1,5 @@ import * as React from 'react'; -export interface WaterWaveProps { +export interface IWaterWaveProps { title: React.ReactNode; color?: string; height: number; @@ -7,4 +7,4 @@ export interface WaterWaveProps { style?: React.CSSProperties; } -export default class WaterWave extends React.Component {} +export default class WaterWave extends React.Component {} diff --git a/src/components/CountDown/index.d.ts b/src/components/CountDown/index.d.ts index 3c46ac79..c2d4bcf9 100644 --- a/src/components/CountDown/index.d.ts +++ b/src/components/CountDown/index.d.ts @@ -1,9 +1,9 @@ import * as React from "react"; -export interface CountDownProps { +export interface ICountDownProps { format?: (time: number) => void; target: Date | number; onEnd?: () => void; style?: React.CSSProperties; } -export default class CountDown extends React.Component {} +export default class CountDown extends React.Component {} diff --git a/src/components/DescriptionList/Description.d.ts b/src/components/DescriptionList/Description.d.ts new file mode 100644 index 00000000..2a17be37 --- /dev/null +++ b/src/components/DescriptionList/Description.d.ts @@ -0,0 +1,9 @@ +import * as React from 'react'; + +export default class Description extends React.Component< + { + term: React.ReactNode; + style?: React.CSSProperties; + }, + any +> {} diff --git a/src/components/DescriptionList/index.d.ts b/src/components/DescriptionList/index.d.ts index fe64433a..e7b2baf6 100644 --- a/src/components/DescriptionList/index.d.ts +++ b/src/components/DescriptionList/index.d.ts @@ -1,5 +1,7 @@ import * as React from 'react'; -export interface DescriptionListProps { +import Description from './Description'; + +export interface IDescriptionListProps { layout?: 'horizontal' | 'vertical'; col?: number; title: React.ReactNode; @@ -8,17 +10,9 @@ export interface DescriptionListProps { style?: React.CSSProperties; } -declare class Description extends React.Component< - { - term: React.ReactNode; - style?: React.CSSProperties; - }, - any -> {} - export default class DescriptionList extends React.Component< - DescriptionListProps, + IDescriptionListProps, any > { - static Description: typeof Description; + public static Description: typeof Description; } diff --git a/src/components/Ellipsis/index.d.ts b/src/components/Ellipsis/index.d.ts index 4f84c7ae..4643ee76 100644 --- a/src/components/Ellipsis/index.d.ts +++ b/src/components/Ellipsis/index.d.ts @@ -1,5 +1,5 @@ import * as React from 'react'; -export interface EllipsisProps { +export interface IEllipsisProps { tooltip?: boolean; length?: number; lines?: number; @@ -7,4 +7,4 @@ export interface EllipsisProps { className?: string; } -export default class Ellipsis extends React.Component {} +export default class Ellipsis extends React.Component {} diff --git a/src/components/Exception/index.d.ts b/src/components/Exception/index.d.ts index 037f866d..a0954377 100644 --- a/src/components/Exception/index.d.ts +++ b/src/components/Exception/index.d.ts @@ -1,5 +1,5 @@ import * as React from "react"; -export interface ExceptionProps { +export interface IExceptionProps { type?: "403" | "404" | "500"; title?: React.ReactNode; desc?: React.ReactNode; @@ -9,4 +9,4 @@ export interface ExceptionProps { style?: React.CSSProperties; } -export default class Exception extends React.Component {} +export default class Exception extends React.Component {} diff --git a/src/components/FooterToolbar/index.d.ts b/src/components/FooterToolbar/index.d.ts index 637bd4b8..130021d8 100644 --- a/src/components/FooterToolbar/index.d.ts +++ b/src/components/FooterToolbar/index.d.ts @@ -1,10 +1,10 @@ import * as React from 'react'; -export interface FooterToolbarProps { +export interface IFooterToolbarProps { extra: React.ReactNode; style?: React.CSSProperties; } export default class FooterToolbar extends React.Component< - FooterToolbarProps, + IFooterToolbarProps, any > {} diff --git a/src/components/GlobalFooter/index.d.ts b/src/components/GlobalFooter/index.d.ts index faf633b9..cc1224e3 100644 --- a/src/components/GlobalFooter/index.d.ts +++ b/src/components/GlobalFooter/index.d.ts @@ -1,5 +1,5 @@ import * as React from "react"; -export interface GlobalFooterProps { +export interface IGlobalFooterProps { links?: Array<{ title: React.ReactNode; href: string; @@ -10,6 +10,6 @@ export interface GlobalFooterProps { } export default class GlobalFooter extends React.Component< - GlobalFooterProps, + IGlobalFooterProps, any > {} diff --git a/src/components/HeaderSearch/index.d.ts b/src/components/HeaderSearch/index.d.ts index 58316dfc..a11d63a1 100644 --- a/src/components/HeaderSearch/index.d.ts +++ b/src/components/HeaderSearch/index.d.ts @@ -1,7 +1,7 @@ import * as React from 'react'; -export interface HeaderSearchProps { +export interface IHeaderSearchProps { placeholder?: string; - dataSource?: Array; + dataSource?: string[]; onSearch?: (value: string) => void; onChange?: (value: string) => void; onPressEnter?: (value: string) => void; @@ -9,6 +9,6 @@ export interface HeaderSearchProps { } export default class HeaderSearch extends React.Component< - HeaderSearchProps, + IHeaderSearchProps, any > {} diff --git a/src/components/NoticeIcon/NoticeIconTab.d.ts b/src/components/NoticeIcon/NoticeIconTab.d.ts new file mode 100644 index 00000000..0f58e817 --- /dev/null +++ b/src/components/NoticeIcon/NoticeIconTab.d.ts @@ -0,0 +1,22 @@ +import * as React from 'react'; +export interface INoticeIconData { + avatar?: string; + title?: React.ReactNode; + description?: React.ReactNode; + datetime?: React.ReactNode; + extra?: React.ReactNode; + style?: React.CSSProperties; +} + +export interface INoticeIconTabProps { + list?: INoticeIconData[]; + title?: string; + emptyText?: React.ReactNode; + emptyImage?: string; + style?: React.CSSProperties; +} + +export default class NoticeIconTab extends React.Component< + INoticeIconTabProps, + any +> {} diff --git a/src/components/NoticeIcon/index.d.ts b/src/components/NoticeIcon/index.d.ts index 76541cd6..52c4dea3 100644 --- a/src/components/NoticeIcon/index.d.ts +++ b/src/components/NoticeIcon/index.d.ts @@ -1,19 +1,12 @@ -import * as React from 'react'; -export interface NoticeIconData { - avatar?: string; - title?: React.ReactNode; - description?: React.ReactNode; - datetime?: React.ReactNode; - extra?: React.ReactNode; - style?: React.CSSProperties; -} +import React from 'react'; +import NoticeIconTab, { INoticeIconData } from './NoticeIconTab'; -export interface NoticeIconProps { +export interface INoticeIconProps { count?: number; className?: string; loading?: boolean; onClear?: (tableTile: string) => void; - onItemClick?: (item: NoticeIconData, tabProps: NoticeIconProps) => void; + onItemClick?: (item: INoticeIconData, tabProps: INoticeIconProps) => void; onTabChange?: (tableTile: string) => void; popupAlign?: { points?: [string, string]; @@ -30,16 +23,6 @@ export interface NoticeIconProps { locale?: { emptyText: string; clear: string }; } -export interface NoticeIconTabProps { - list?: Array; - title?: string; - emptyText?: React.ReactNode; - emptyImage?: string; - style?: React.CSSProperties; -} - -export class NoticeIconTab extends React.Component {} - -export default class NoticeIcon extends React.Component { - static Tab: typeof NoticeIconTab; +export default class NoticeIcon extends React.Component { + public static Tab: typeof NoticeIconTab; } diff --git a/src/components/NumberInfo/index.d.ts b/src/components/NumberInfo/index.d.ts index 2370ec6d..d9e5e7cf 100644 --- a/src/components/NumberInfo/index.d.ts +++ b/src/components/NumberInfo/index.d.ts @@ -1,5 +1,5 @@ import * as React from 'react'; -export interface NumberInfoProps { +export interface INumberInfoProps { title?: React.ReactNode | string; subTitle?: React.ReactNode | string; total?: React.ReactNode | string; @@ -10,4 +10,7 @@ export interface NumberInfoProps { style?: React.CSSProperties; } -export default class NumberInfo extends React.Component {} +export default class NumberInfo extends React.Component< + INumberInfoProps, + any +> {} diff --git a/src/components/PageHeader/index.d.ts b/src/components/PageHeader/index.d.ts index 518f2032..62d1f880 100644 --- a/src/components/PageHeader/index.d.ts +++ b/src/components/PageHeader/index.d.ts @@ -1,11 +1,11 @@ import * as React from 'react'; -export interface PageHeaderProps { +export interface IPageHeaderProps { title?: React.ReactNode | string; logo?: React.ReactNode | string; action?: React.ReactNode | string; content?: React.ReactNode; extraContent?: React.ReactNode; - routes?: Array; + routes?: any[]; params?: any; breadcrumbList?: Array<{ title: React.ReactNode; href?: string }>; tabList?: Array<{ key: string; tab: React.ReactNode }>; @@ -16,4 +16,4 @@ export interface PageHeaderProps { style?: React.CSSProperties; } -export default class PageHeader extends React.Component {} +export default class PageHeader extends React.Component {} diff --git a/src/components/Result/index.d.ts b/src/components/Result/index.d.ts index a316332e..0c34c254 100644 --- a/src/components/Result/index.d.ts +++ b/src/components/Result/index.d.ts @@ -1,5 +1,5 @@ import * as React from 'react'; -export interface ResultProps { +export interface IResultProps { type: 'success' | 'error'; title: React.ReactNode; description?: React.ReactNode; @@ -8,4 +8,4 @@ export interface ResultProps { style?: React.CSSProperties; } -export default class Result extends React.Component {} +export default class Result extends React.Component {} diff --git a/src/components/SiderMenu/index.less b/src/components/SiderMenu/index.less index ede5baf8..3e790670 100644 --- a/src/components/SiderMenu/index.less +++ b/src/components/SiderMenu/index.less @@ -1,11 +1,11 @@ -@import "~antd/lib/style/themes/default.less"; -@ease-in-out-circ: cubic-bezier(.78, .14, .15, .86); +@import '~antd/lib/style/themes/default.less'; +@ease-in-out-circ: cubic-bezier(0.78, 0.14, 0.15, 0.86); .logo { height: 64px; position: relative; line-height: 64px; padding-left: (@menu-collapsed-width - 32px) / 2; - transition: all .3s; + transition: all 0.3s; background: #002140; overflow: hidden; img { @@ -14,7 +14,7 @@ height: 32px; } h1 { - color: #fff; + color: white; display: inline-block; vertical-align: middle; font-size: 20px; @@ -26,9 +26,18 @@ .sider { min-height: 100vh; - box-shadow: 2px 0 6px rgba(0, 21, 41, .35); + box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35); position: relative; z-index: 10; + &.ligth { + background-color: white; + .logo { + background: white; + h1 { + color: #002140; + } + } + } } .icon { diff --git a/src/components/TagSelect/TagSelectOption.d.ts b/src/components/TagSelect/TagSelectOption.d.ts new file mode 100644 index 00000000..c69d421a --- /dev/null +++ b/src/components/TagSelect/TagSelectOption.d.ts @@ -0,0 +1,11 @@ +import * as React from 'react'; + +export interface ITagSelectOptionProps { + value: string | number; + style?: React.CSSProperties; +} + +export default class TagSelectOption extends React.Component< + ITagSelectOptionProps, + any +> {} diff --git a/src/components/TagSelect/index.d.ts b/src/components/TagSelect/index.d.ts index e9decee1..b17d34d8 100644 --- a/src/components/TagSelect/index.d.ts +++ b/src/components/TagSelect/index.d.ts @@ -1,23 +1,16 @@ import * as React from 'react'; -export interface TagSelectProps { - onChange?: (value: Array) => void; +import TagSelectOption from './TagSelectOption'; + +export interface ITagSelectProps { + onChange?: (value: string[]) => void; expandable?: boolean; - value?: Array| Array; - style?: React.CSSProperties; -} -export interface TagSelectOptionProps { - value: string| number; + value?: string[] | number[]; style?: React.CSSProperties; } -export class TagSelectOption extends React.Component< - TagSelectOptionProps, - any -> {} - -export default class TagSelect extends React.Component { - static Option: typeof TagSelectOption; - children: +export default class TagSelect extends React.Component { + public static Option: typeof TagSelectOption; + private children: | React.ReactElement | Array>; } diff --git a/src/components/Trend/index.d.ts b/src/components/Trend/index.d.ts index bb2b2a2b..fafcb05f 100644 --- a/src/components/Trend/index.d.ts +++ b/src/components/Trend/index.d.ts @@ -1,9 +1,9 @@ import * as React from 'react'; -export interface TrendProps { +export interface ITrendProps { colorful?: boolean; flag: 'up' | 'down'; style?: React.CSSProperties; } -export default class Trend extends React.Component {} +export default class Trend extends React.Component {} From 1a46c6e9aa0f341dd59809dec9daa1ae3c31ac34 Mon Sep 17 00:00:00 2001 From: hzq Date: Thu, 8 Mar 2018 10:34:47 +0800 Subject: [PATCH 02/18] Update SiderMenu.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 当权限子菜单无权限或不存在子菜单时不展示父菜单 --- src/components/SiderMenu/SiderMenu.js | 38 +++++++++++++++------------ 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/src/components/SiderMenu/SiderMenu.js b/src/components/SiderMenu/SiderMenu.js index 072f5cea..f9abebcd 100644 --- a/src/components/SiderMenu/SiderMenu.js +++ b/src/components/SiderMenu/SiderMenu.js @@ -113,23 +113,27 @@ export default class SiderMenu extends PureComponent { */ getSubMenuOrItem = (item) => { if (item.children && item.children.some(child => child.name)) { - return ( - - {getIcon(item.icon)} - {item.name} - - ) : ( - item.name - ) - } - key={item.path} - > - {this.getNavMenuItems(item.children)} - - ); + const childrenItems = this.getNavMenuItems(item.children); + // 当无子菜单时就不展示菜单 + if (childrenItems && childrenItems.length > 0) { + return ( + + {getIcon(item.icon)} + {item.name} + + ) : ( + item.name + ) + } + key={item.path} + > + {childrenItems} + + ) + } } else { return ( {this.getMenuItemPath(item)} From 9c49d4b809da9339d68ea77e33adc89295cbe374 Mon Sep 17 00:00:00 2001 From: hzq Date: Thu, 8 Mar 2018 10:54:47 +0800 Subject: [PATCH 03/18] Update SiderMenu.js --- src/components/SiderMenu/SiderMenu.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/SiderMenu/SiderMenu.js b/src/components/SiderMenu/SiderMenu.js index f9abebcd..088a3690 100644 --- a/src/components/SiderMenu/SiderMenu.js +++ b/src/components/SiderMenu/SiderMenu.js @@ -132,8 +132,9 @@ export default class SiderMenu extends PureComponent { > {childrenItems} - ) + ); } + return null; } else { return ( {this.getMenuItemPath(item)} From adca7f5c52696ca24525ad656f3c285c5a22224b Mon Sep 17 00:00:00 2001 From: niko <644506165@qq.com> Date: Thu, 8 Mar 2018 17:13:39 +0800 Subject: [PATCH 04/18] alias ant-design-pro (#1035) * alias ant-design-pro * fixed lint * change alias ant-design-pro/lib -> components * change alias ant-design-pro/lib -> components --- .webpackrc | 22 ---- .webpackrc.js | 25 ++++ src/routes/Dashboard/Analysis.js | 6 +- src/routes/Dashboard/Monitor.js | 48 ++++---- src/routes/Dashboard/Workplace.js | 4 +- src/routes/Exception/403.js | 2 +- src/routes/Exception/404.js | 2 +- src/routes/Exception/500.js | 2 +- src/routes/Forms/AdvancedForm.js | 2 +- src/routes/Forms/StepForm/Step3.js | 2 +- src/routes/List/Applications.js | 4 +- src/routes/List/Articles.js | 4 +- src/routes/List/CardList.js | 2 +- src/routes/List/Projects.js | 46 +++---- src/routes/List/TableList.js | 2 +- src/routes/Profile/AdvancedProfile.js | 2 +- src/routes/Profile/BasicProfile.js | 168 ++++++++++++++------------ src/routes/Result/Error.js | 2 +- src/routes/Result/Success.js | 2 +- src/routes/User/Login.js | 2 +- src/routes/User/RegisterResult.js | 2 +- 21 files changed, 177 insertions(+), 174 deletions(-) delete mode 100755 .webpackrc create mode 100755 .webpackrc.js diff --git a/.webpackrc b/.webpackrc deleted file mode 100755 index ab704dc9..00000000 --- a/.webpackrc +++ /dev/null @@ -1,22 +0,0 @@ -{ - "entry": "src/index.js", - "extraBabelPlugins": [ - "transform-decorators-legacy", - ["import", { "libraryName": "antd", "libraryDirectory": "es", "style": true }] - ], - "env": { - "development": { - "extraBabelPlugins": [ - "dva-hmr" - ] - } - }, - "ignoreMomentLocale": true, - "theme": "./src/theme.js", - "html": { - "template": "./src/index.ejs" - }, - "publicPath": "/", - "disableDynamicImport": true, - "hash": true -} diff --git a/.webpackrc.js b/.webpackrc.js new file mode 100755 index 00000000..74bc5f6d --- /dev/null +++ b/.webpackrc.js @@ -0,0 +1,25 @@ +const path = require('path'); + +export default { + entry: 'src/index.js', + extraBabelPlugins: [ + 'transform-decorators-legacy', + ['import', { libraryName: 'antd', libraryDirectory: 'es', style: true }], + ], + env: { + development: { + extraBabelPlugins: ['dva-hmr'], + }, + }, + alias: { + 'components': path.resolve(__dirname, 'src/components/'), + }, + ignoreMomentLocale: true, + theme: './src/theme.js', + html: { + template: './src/index.ejs', + }, + publicPath: '/', + disableDynamicImport: true, + hash: true, +}; diff --git a/src/routes/Dashboard/Analysis.js b/src/routes/Dashboard/Analysis.js index f6df4406..9cb55a9a 100644 --- a/src/routes/Dashboard/Analysis.js +++ b/src/routes/Dashboard/Analysis.js @@ -24,9 +24,9 @@ import { Bar, Pie, TimelineChart, -} from '../../components/Charts'; -import Trend from '../../components/Trend'; -import NumberInfo from '../../components/NumberInfo'; +} from 'components/Charts'; +import Trend from 'components/Trend'; +import NumberInfo from 'components/NumberInfo'; import { getTimeDistance } from '../../utils/utils'; import styles from './Analysis.less'; diff --git a/src/routes/Dashboard/Monitor.js b/src/routes/Dashboard/Monitor.js index 897dc9ce..07bbae85 100644 --- a/src/routes/Dashboard/Monitor.js +++ b/src/routes/Dashboard/Monitor.js @@ -2,11 +2,11 @@ import React, { PureComponent, Fragment } from 'react'; import { connect } from 'dva'; import { Row, Col, Card, Tooltip } from 'antd'; import numeral from 'numeral'; +import { Pie, WaterWave, Gauge, TagCloud } from 'components/Charts'; +import NumberInfo from 'components/NumberInfo'; +import CountDown from 'components/CountDown'; +import ActiveChart from 'components/ActiveChart'; import Authorized from '../../utils/Authorized'; -import { Pie, WaterWave, Gauge, TagCloud } from '../../components/Charts'; -import NumberInfo from '../../components/NumberInfo'; -import CountDown from '../../components/CountDown'; -import ActiveChart from '../../components/ActiveChart'; import styles from './Monitor.less'; const { Secured } = Authorized; @@ -48,10 +48,7 @@ export default class Monitor extends PureComponent { /> - + } /> @@ -66,7 +63,10 @@ export default class Monitor extends PureComponent {
- map + map
@@ -105,11 +105,7 @@ export default class Monitor extends PureComponent { - + - - + + - - + + diff --git a/src/routes/Dashboard/Workplace.js b/src/routes/Dashboard/Workplace.js index 9159cbf3..e596118a 100644 --- a/src/routes/Dashboard/Workplace.js +++ b/src/routes/Dashboard/Workplace.js @@ -4,9 +4,9 @@ import { connect } from 'dva'; import { Link } from 'dva/router'; import { Row, Col, Card, List, Avatar } from 'antd'; +import { Radar } from 'components/Charts'; +import EditableLinkGroup from 'components/EditableLinkGroup'; import PageHeaderLayout from '../../layouts/PageHeaderLayout'; -import EditableLinkGroup from '../../components/EditableLinkGroup'; -import { Radar } from '../../components/Charts'; import styles from './Workplace.less'; diff --git a/src/routes/Exception/403.js b/src/routes/Exception/403.js index 1e01b58a..c6d86fe0 100644 --- a/src/routes/Exception/403.js +++ b/src/routes/Exception/403.js @@ -1,6 +1,6 @@ import React from 'react'; import { Link } from 'dva/router'; -import Exception from '../../components/Exception'; +import Exception from 'components/Exception'; export default () => ( diff --git a/src/routes/Exception/404.js b/src/routes/Exception/404.js index 7d76d938..0a3d8766 100644 --- a/src/routes/Exception/404.js +++ b/src/routes/Exception/404.js @@ -1,6 +1,6 @@ import React from 'react'; import { Link } from 'dva/router'; -import Exception from '../../components/Exception'; +import Exception from 'components/Exception'; export default () => ( diff --git a/src/routes/Exception/500.js b/src/routes/Exception/500.js index fa84eee5..40f659cb 100644 --- a/src/routes/Exception/500.js +++ b/src/routes/Exception/500.js @@ -1,6 +1,6 @@ import React from 'react'; import { Link } from 'dva/router'; -import Exception from '../../components/Exception'; +import Exception from 'components/Exception'; export default () => ( diff --git a/src/routes/Forms/AdvancedForm.js b/src/routes/Forms/AdvancedForm.js index 1247e1d1..5b557646 100644 --- a/src/routes/Forms/AdvancedForm.js +++ b/src/routes/Forms/AdvancedForm.js @@ -1,8 +1,8 @@ import React, { PureComponent } from 'react'; import { Card, Button, Form, Icon, Col, Row, DatePicker, TimePicker, Input, Select, Popover } from 'antd'; import { connect } from 'dva'; +import FooterToolbar from 'components/FooterToolbar'; import PageHeaderLayout from '../../layouts/PageHeaderLayout'; -import FooterToolbar from '../../components/FooterToolbar'; import TableForm from './TableForm'; import styles from './style.less'; diff --git a/src/routes/Forms/StepForm/Step3.js b/src/routes/Forms/StepForm/Step3.js index 8df6388d..549878e8 100644 --- a/src/routes/Forms/StepForm/Step3.js +++ b/src/routes/Forms/StepForm/Step3.js @@ -2,7 +2,7 @@ import React, { Fragment } from 'react'; import { connect } from 'dva'; import { Button, Row, Col } from 'antd'; import { routerRedux } from 'dva/router'; -import Result from '../../../components/Result'; +import Result from 'components/Result'; import styles from './style.less'; class Step3 extends React.PureComponent { diff --git a/src/routes/List/Applications.js b/src/routes/List/Applications.js index 83d1369f..368a3e58 100644 --- a/src/routes/List/Applications.js +++ b/src/routes/List/Applications.js @@ -3,8 +3,8 @@ import numeral from 'numeral'; import { connect } from 'dva'; import { Row, Col, Form, Card, Select, Icon, Avatar, List, Tooltip, Dropdown, Menu } from 'antd'; -import StandardFormRow from '../../components/StandardFormRow'; -import TagSelect from '../../components/TagSelect'; +import TagSelect from 'components/TagSelect'; +import StandardFormRow from 'components/StandardFormRow'; import styles from './Applications.less'; diff --git a/src/routes/List/Articles.js b/src/routes/List/Articles.js index 436a7fa5..a095ef88 100644 --- a/src/routes/List/Articles.js +++ b/src/routes/List/Articles.js @@ -3,8 +3,8 @@ import moment from 'moment'; import { connect } from 'dva'; import { Form, Card, Select, List, Tag, Icon, Avatar, Row, Col, Button } from 'antd'; -import StandardFormRow from '../../components/StandardFormRow'; -import TagSelect from '../../components/TagSelect'; +import TagSelect from 'components/TagSelect'; +import StandardFormRow from 'components/StandardFormRow'; import styles from './Articles.less'; const { Option } = Select; diff --git a/src/routes/List/CardList.js b/src/routes/List/CardList.js index 9e3818ec..cd507865 100644 --- a/src/routes/List/CardList.js +++ b/src/routes/List/CardList.js @@ -2,8 +2,8 @@ import React, { PureComponent } from 'react'; import { connect } from 'dva'; import { Card, Button, Icon, List } from 'antd'; +import Ellipsis from 'components/Ellipsis'; import PageHeaderLayout from '../../layouts/PageHeaderLayout'; -import Ellipsis from '../../components/Ellipsis'; import styles from './CardList.less'; diff --git a/src/routes/List/Projects.js b/src/routes/List/Projects.js index 48e83c8f..d285dea3 100644 --- a/src/routes/List/Projects.js +++ b/src/routes/List/Projects.js @@ -3,10 +3,10 @@ import moment from 'moment'; import { connect } from 'dva'; import { Row, Col, Form, Card, Select, List } from 'antd'; -import StandardFormRow from '../../components/StandardFormRow'; -import TagSelect from '../../components/TagSelect'; -import AvatarList from '../../components/AvatarList'; -import Ellipsis from '../../components/Ellipsis'; +import TagSelect from 'components/TagSelect'; +import AvatarList from 'components/AvatarList'; +import Ellipsis from 'components/Ellipsis'; +import StandardFormRow from 'components/StandardFormRow'; import styles from './Projects.less'; @@ -45,7 +45,7 @@ export default class CoverCardList extends PureComponent { } }); }, 0); - } + }; render() { const { list: { list = [] }, loading, form } = this.props; @@ -72,15 +72,13 @@ export default class CoverCardList extends PureComponent { {moment(item.updatedAt).fromNow()}
- { - item.members.map((member, i) => ( - - )) - } + {item.members.map((member, i) => ( + + ))}
@@ -121,17 +119,10 @@ export default class CoverCardList extends PureComponent { )} - + - + {getFieldDecorator('author', {})(
-
- {cardList} -
+
{cardList}
); } diff --git a/src/routes/List/TableList.js b/src/routes/List/TableList.js index 776fde4a..24d20ea9 100644 --- a/src/routes/List/TableList.js +++ b/src/routes/List/TableList.js @@ -2,7 +2,7 @@ import React, { PureComponent, Fragment } from 'react'; import { connect } from 'dva'; import moment from 'moment'; import { Row, Col, Card, Form, Input, Select, Icon, Button, Dropdown, Menu, InputNumber, DatePicker, Modal, message, Badge, Divider } from 'antd'; -import StandardTable from '../../components/StandardTable'; +import StandardTable from 'components/StandardTable'; import PageHeaderLayout from '../../layouts/PageHeaderLayout'; import styles from './TableList.less'; diff --git a/src/routes/Profile/AdvancedProfile.js b/src/routes/Profile/AdvancedProfile.js index 3c0bb252..09065602 100644 --- a/src/routes/Profile/AdvancedProfile.js +++ b/src/routes/Profile/AdvancedProfile.js @@ -4,8 +4,8 @@ import Bind from 'lodash-decorators/bind'; import { connect } from 'dva'; import { Button, Menu, Dropdown, Icon, Row, Col, Steps, Card, Popover, Badge, Table, Tooltip, Divider } from 'antd'; import classNames from 'classnames'; +import DescriptionList from 'components/DescriptionList'; import PageHeaderLayout from '../../layouts/PageHeaderLayout'; -import DescriptionList from '../../components/DescriptionList'; import styles from './AdvancedProfile.less'; const { Step } = Steps; diff --git a/src/routes/Profile/BasicProfile.js b/src/routes/Profile/BasicProfile.js index ea006b01..ba585dc9 100644 --- a/src/routes/Profile/BasicProfile.js +++ b/src/routes/Profile/BasicProfile.js @@ -1,36 +1,45 @@ import React, { Component } from 'react'; import { connect } from 'dva'; import { Card, Badge, Table, Divider } from 'antd'; +import DescriptionList from 'components/DescriptionList'; import PageHeaderLayout from '../../layouts/PageHeaderLayout'; -import DescriptionList from '../../components/DescriptionList'; import styles from './BasicProfile.less'; const { Description } = DescriptionList; -const progressColumns = [{ - title: '时间', - dataIndex: 'time', - key: 'time', -}, { - title: '当前进度', - dataIndex: 'rate', - key: 'rate', -}, { - title: '状态', - dataIndex: 'status', - key: 'status', - render: text => ( - text === 'success' ? : - ), -}, { - title: '操作员ID', - dataIndex: 'operator', - key: 'operator', -}, { - title: '耗时', - dataIndex: 'cost', - key: 'cost', -}]; +const progressColumns = [ + { + title: '时间', + dataIndex: 'time', + key: 'time', + }, + { + title: '当前进度', + dataIndex: 'rate', + key: 'rate', + }, + { + title: '状态', + dataIndex: 'status', + key: 'status', + render: text => + (text === 'success' ? ( + + ) : ( + + )), + }, + { + title: '操作员ID', + dataIndex: 'operator', + key: 'operator', + }, + { + title: '耗时', + dataIndex: 'cost', + key: 'cost', + }, +]; @connect(({ profile, loading }) => ({ profile, @@ -71,60 +80,67 @@ export default class BasicProfile extends Component { } return obj; }; - const goodsColumns = [{ - title: '商品编号', - dataIndex: 'id', - key: 'id', - render: (text, row, index) => { - if (index < basicGoods.length) { - return {text}; - } - return { - children: 总计, - props: { - colSpan: 4, - }, - }; + const goodsColumns = [ + { + title: '商品编号', + dataIndex: 'id', + key: 'id', + render: (text, row, index) => { + if (index < basicGoods.length) { + return {text}; + } + return { + children: 总计, + props: { + colSpan: 4, + }, + }; + }, }, - }, { - title: '商品名称', - dataIndex: 'name', - key: 'name', - render: renderContent, - }, { - title: '商品条码', - dataIndex: 'barcode', - key: 'barcode', - render: renderContent, - }, { - title: '单价', - dataIndex: 'price', - key: 'price', - align: 'right', - render: renderContent, - }, { - title: '数量(件)', - dataIndex: 'num', - key: 'num', - align: 'right', - render: (text, row, index) => { - if (index < basicGoods.length) { - return text; - } - return {text}; + { + title: '商品名称', + dataIndex: 'name', + key: 'name', + render: renderContent, }, - }, { - title: '金额', - dataIndex: 'amount', - key: 'amount', - align: 'right', - render: (text, row, index) => { - if (index < basicGoods.length) { - return text; - } - return {text}; + { + title: '商品条码', + dataIndex: 'barcode', + key: 'barcode', + render: renderContent, }, - }]; + { + title: '单价', + dataIndex: 'price', + key: 'price', + align: 'right', + render: renderContent, + }, + { + title: '数量(件)', + dataIndex: 'num', + key: 'num', + align: 'right', + render: (text, row, index) => { + if (index < basicGoods.length) { + return text; + } + return {text}; + }, + }, + { + title: '金额', + dataIndex: 'amount', + key: 'amount', + align: 'right', + render: (text, row, index) => { + if (index < basicGoods.length) { + return text; + } + return {text}; + }, + }, + ]; return ( diff --git a/src/routes/Result/Error.js b/src/routes/Result/Error.js index 7ff64393..41f5d826 100644 --- a/src/routes/Result/Error.js +++ b/src/routes/Result/Error.js @@ -1,6 +1,6 @@ import React, { Fragment } from 'react'; import { Button, Icon, Card } from 'antd'; -import Result from '../../components/Result'; +import Result from 'components/Result'; import PageHeaderLayout from '../../layouts/PageHeaderLayout'; const extra = ( diff --git a/src/routes/Result/Success.js b/src/routes/Result/Success.js index f7aabd7f..76fde593 100644 --- a/src/routes/Result/Success.js +++ b/src/routes/Result/Success.js @@ -1,6 +1,6 @@ import React, { Fragment } from 'react'; import { Button, Row, Col, Icon, Steps, Card } from 'antd'; -import Result from '../../components/Result'; +import Result from 'components/Result'; import PageHeaderLayout from '../../layouts/PageHeaderLayout'; const { Step } = Steps; diff --git a/src/routes/User/Login.js b/src/routes/User/Login.js index 01a0f990..e45fc82b 100644 --- a/src/routes/User/Login.js +++ b/src/routes/User/Login.js @@ -2,7 +2,7 @@ import React, { Component } from 'react'; import { connect } from 'dva'; import { Link } from 'dva/router'; import { Checkbox, Alert, Icon } from 'antd'; -import Login from '../../components/Login'; +import Login from 'components/Login'; import styles from './Login.less'; const { Tab, UserName, Password, Mobile, Captcha, Submit } = Login; diff --git a/src/routes/User/RegisterResult.js b/src/routes/User/RegisterResult.js index ba635607..6dba5c1d 100644 --- a/src/routes/User/RegisterResult.js +++ b/src/routes/User/RegisterResult.js @@ -1,7 +1,7 @@ import React from 'react'; import { Button } from 'antd'; import { Link } from 'dva/router'; -import Result from '../../components/Result'; +import Result from 'components/Result'; import styles from './RegisterResult.less'; const actions = ( From d44f8af41d56d02f2bf4d1187eb11e15a8875941 Mon Sep 17 00:00:00 2001 From: Diro Guan Date: Fri, 9 Mar 2018 15:54:10 +0800 Subject: [PATCH 05/18] =?UTF-8?q?=E8=BF=99=E4=B8=80=E6=AD=A5=E5=BA=94?= =?UTF-8?q?=E8=AF=A5=E5=88=A4=E6=96=AD=E6=B2=A1=E6=8C=87=E5=AE=9A=E9=BB=98?= =?UTF-8?q?=E8=AE=A4tab=E6=97=B6=E5=80=99=EF=BC=8Ctab=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E4=B8=BAtablist=E7=AC=AC=E4=B8=80=E4=B8=AA.=20(#1040)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/PageHeader/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/PageHeader/index.js b/src/components/PageHeader/index.js index d85e7165..644b1e4f 100644 --- a/src/components/PageHeader/index.js +++ b/src/components/PageHeader/index.js @@ -171,7 +171,7 @@ export default class PageHeader extends PureComponent { const clsString = classNames(styles.pageHeader, className); let tabDefaultValue; - if (tabActiveKey !== undefined && tabList) { + if (tabActiveKey === undefined && tabList) { tabDefaultValue = tabList.filter(item => item.default)[0] || tabList[0]; } const breadcrumb = this.conversionBreadcrumbList(); From e618d4d16ddc9d876f6438c9b77cdebac1e4070b Mon Sep 17 00:00:00 2001 From: ddcat1115 Date: Fri, 9 Mar 2018 16:41:45 +0800 Subject: [PATCH 06/18] PageHeader support tabDefaultActiveKey --- src/components/PageHeader/index.d.ts | 1 + src/components/PageHeader/index.js | 13 +++++-------- src/components/PageHeader/index.md | 1 + 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/components/PageHeader/index.d.ts b/src/components/PageHeader/index.d.ts index 62d1f880..a1c356e7 100644 --- a/src/components/PageHeader/index.d.ts +++ b/src/components/PageHeader/index.d.ts @@ -10,6 +10,7 @@ export interface IPageHeaderProps { breadcrumbList?: Array<{ title: React.ReactNode; href?: string }>; tabList?: Array<{ key: string; tab: React.ReactNode }>; tabActiveKey?: string; + tabDefaultActiveKey?: string; onTabChange?: (key: string) => void; tabBarExtraContent?: React.ReactNode; linkElement?: React.ReactNode; diff --git a/src/components/PageHeader/index.js b/src/components/PageHeader/index.js index 644b1e4f..e185f6a7 100644 --- a/src/components/PageHeader/index.js +++ b/src/components/PageHeader/index.js @@ -166,18 +166,15 @@ export default class PageHeader extends PureComponent { tabList, className, tabActiveKey, + tabDefaultActiveKey, tabBarExtraContent, } = this.props; const clsString = classNames(styles.pageHeader, className); - - let tabDefaultValue; - if (tabActiveKey === undefined && tabList) { - tabDefaultValue = tabList.filter(item => item.default)[0] || tabList[0]; - } const breadcrumb = this.conversionBreadcrumbList(); - const activeKeyProps = { - defaultActiveKey: tabDefaultValue && tabDefaultValue.key, - }; + const activeKeyProps = {}; + if (tabDefaultActiveKey !== undefined) { + activeKeyProps.defaultActiveKey = tabDefaultActiveKey; + } if (tabActiveKey !== undefined) { activeKeyProps.activeKey = tabActiveKey; } diff --git a/src/components/PageHeader/index.md b/src/components/PageHeader/index.md index 334d354c..288f8b6c 100644 --- a/src/components/PageHeader/index.md +++ b/src/components/PageHeader/index.md @@ -25,6 +25,7 @@ order: 11 | breadcrumbNameMap | 面包屑相关属性,路由的地址-名称映射表 | object | - | | tabList | tab 标题列表 | array<{key: string, tab: ReactNode}> | - | | tabActiveKey | 当前高亮的 tab 项 | string | - | +| tabDefaultActiveKey | 默认高亮的 tab 项 | string | 第一项 | | onTabChange | 切换面板的回调 | (key) => void | - | | linkElement | 定义链接的元素,默认为 `a`,可传入 react-router 的 Link | string\|ReactElement | - | From 5519345ba830b6ae703fa2cb5db7df8c9f93d778 Mon Sep 17 00:00:00 2001 From: ddcat1115 Date: Wed, 14 Mar 2018 17:30:07 +0800 Subject: [PATCH 07/18] update mirror site --- README.md | 1 + README.zh-CN.md | 1 + 2 files changed, 2 insertions(+) diff --git a/README.md b/README.md index 5840e2ae..3e7faae6 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,7 @@ An out-of-box UI solution for enterprise applications as a React boilerplate. - Documentation: http://pro.ant.design/docs/getting-started - ChangeLog: http://pro.ant.design/docs/changelog - FAQ: http://pro.ant.design/docs/faq +- Mirror Site in China: http://ant-design-pro.gitee.io ## Translation Recruitment :loudspeaker: diff --git a/README.zh-CN.md b/README.zh-CN.md index d428f3e1..8f24c72b 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -13,6 +13,7 @@ - 使用文档:http://pro.ant.design/docs/getting-started-cn - 更新日志: http://pro.ant.design/docs/changelog-cn - 常见问题:http://pro.ant.design/docs/faq-cn +- 国内镜像:http://ant-design-pro.gitee.io ## 特性 From aa6758808281f749c8f16e6904a53d507fdcab35 Mon Sep 17 00:00:00 2001 From: ddcat1115 Date: Fri, 16 Mar 2018 10:07:47 +0800 Subject: [PATCH 08/18] fix redirect loop (#1103) * fix redirect loop #1098 * remove useless param --- src/layouts/BasicLayout.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/layouts/BasicLayout.js b/src/layouts/BasicLayout.js index e1534d05..60339b99 100644 --- a/src/layouts/BasicLayout.js +++ b/src/layouts/BasicLayout.js @@ -17,7 +17,7 @@ import { getMenuData } from '../common/menu'; import logo from '../assets/logo.svg'; const { Content, Header, Footer } = Layout; -const { AuthorizedRoute } = Authorized; +const { AuthorizedRoute, check } = Authorized; /** * 根据菜单取得重定向地址. @@ -109,7 +109,11 @@ class BasicLayout extends React.PureComponent { urlParams.searchParams.delete('redirect'); window.history.replaceState(null, 'redirect', urlParams.href); } else { - return '/dashboard/analysis'; + const { routerData } = this.props; + // get the first authorized route path in routerData + const authorizedPath = Object.keys(routerData).find(item => + check(routerData[item].authority, item) && item !== '/'); + return authorizedPath; } return redirect; } From bf833b03604e7db96e85cf007abfd18db569266e Mon Sep 17 00:00:00 2001 From: ddcat1115 Date: Fri, 16 Mar 2018 11:49:01 +0800 Subject: [PATCH 09/18] fix ChartCard total issue close #1110 --- src/components/Charts/ChartCard/index.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/components/Charts/ChartCard/index.js b/src/components/Charts/ChartCard/index.js index db2c4623..2fd10e6f 100644 --- a/src/components/Charts/ChartCard/index.js +++ b/src/components/Charts/ChartCard/index.js @@ -4,6 +4,21 @@ import classNames from 'classnames'; import styles from './index.less'; +const renderTotal = (total) => { + let totalDom; + switch (typeof total) { + case undefined: + totalDom = null; + break; + case 'string': + totalDom =
; + break; + default: + totalDom =
{total}
; + } + return totalDom; +}; + const ChartCard = ({ loading = false, contentHeight, title, avatar, action, total, footer, children, ...rest }) => { @@ -22,10 +37,7 @@ const ChartCard = ({ {title} {action}
- { - // eslint-disable-next-line - (total !== undefined) && (
) - } + {renderTotal(total)}
{ From bacc2031482e16d64243ef29aca181e6d3e2361e Mon Sep 17 00:00:00 2001 From: ddcat1115 Date: Fri, 16 Mar 2018 14:59:18 +0800 Subject: [PATCH 10/18] fix title can't be hidden in type icon when menu collapsed --- src/components/SiderMenu/SiderMenu.js | 2 +- src/components/SiderMenu/index.less | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/components/SiderMenu/SiderMenu.js b/src/components/SiderMenu/SiderMenu.js index 088a3690..9b7597e5 100644 --- a/src/components/SiderMenu/SiderMenu.js +++ b/src/components/SiderMenu/SiderMenu.js @@ -14,7 +14,7 @@ const { SubMenu } = Menu; // icon: , const getIcon = (icon) => { if (typeof icon === 'string' && icon.indexOf('http') === 0) { - return icon; + return icon; } if (typeof icon === 'string') { return ; diff --git a/src/components/SiderMenu/index.less b/src/components/SiderMenu/index.less index 3e790670..2f02116d 100644 --- a/src/components/SiderMenu/index.less +++ b/src/components/SiderMenu/index.less @@ -49,4 +49,18 @@ .drawer .drawer-content { background: #001529; } + .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-submenu > .ant-menu-submenu-title .sider-menu-item-img + span { + max-width: 0; + display: inline-block; + opacity: 0; + } + } + .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; + opacity: 1; + } } From 2009bf3b0725fcc71ea64f64041a94bf5b720537 Mon Sep 17 00:00:00 2001 From: jim Date: Fri, 16 Mar 2018 16:46:13 +0800 Subject: [PATCH 11/18] Upgrade version number --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 915d0e54..aba61f40 100755 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "dependencies": { "@antv/data-set": "^0.8.0", "@babel/polyfill": "^7.0.0-beta.36", - "antd": "^3.1.0", + "antd": "^3.3.0", "babel-runtime": "^6.9.2", "bizcharts": "^3.1.3-beta.1", "bizcharts-plugin-slider": "^2.0.1", @@ -70,7 +70,7 @@ "pro-download": "^1.0.1", "redbox-react": "^1.5.0", "regenerator-runtime": "^0.11.1", - "roadhog": "^2.1.0", + "roadhog": "^2.3.0", "roadhog-api-doc": "^0.3.4", "stylelint": "^8.4.0", "stylelint-config-standard": "^18.0.0" From 091adac0533bdfb495fe1bad097a43506e54da56 Mon Sep 17 00:00:00 2001 From: ddcat1115 Date: Sat, 17 Mar 2018 12:45:39 +0800 Subject: [PATCH 12/18] babel-plugin-import version #1121 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aba61f40..1618bfbf 100755 --- a/package.json +++ b/package.json @@ -50,7 +50,7 @@ "devDependencies": { "babel-eslint": "^8.1.2", "babel-plugin-dva-hmr": "^0.4.1", - "babel-plugin-import": "^1.6.3", + "babel-plugin-import": "^1.6.7", "babel-plugin-transform-decorators-legacy": "^1.3.4", "cross-env": "^5.1.1", "cross-port-killer": "^1.0.1", From cbc0ea75dca1a2fd42ac457c0fc330051b15b79b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=8F=E5=8F=B3?= Date: Sat, 17 Mar 2018 14:27:05 +0800 Subject: [PATCH 13/18] Use `ESLINT=none` #1121 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1618bfbf..0b2ef0d4 100755 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "precommit": "npm run lint-staged", "start": "cross-env DISABLE_ESLINT=true roadhog dev", "start:no-proxy": "cross-env NO_PROXY=true DISABLE_ESLINT=true roadhog dev", - "build": "cross-env DISABLE_ESLINT=true roadhog build", + "build": "cross-env ESLINT=none roadhog build", "site": "roadhog-api-doc static && gh-pages -d dist", "analyze": "cross-env ANALYZE=true roadhog build", "lint:style": "stylelint \"src/**/*.less\" --syntax less", From 9e44f5a7f03d9032391338b5c9df4eadc5c3f931 Mon Sep 17 00:00:00 2001 From: afc163 Date: Sat, 17 Mar 2018 18:47:02 +0800 Subject: [PATCH 14/18] Add engines in package.json --- package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/package.json b/package.json index 0b2ef0d4..63ed5574 100755 --- a/package.json +++ b/package.json @@ -82,6 +82,9 @@ "**/*.{js,jsx}": "lint-staged:js", "**/*.less": "stylelint --syntax less" }, + "engines": { + "node" : ">=8.0.0" + }, "browserslist": [ "> 1%", "last 2 versions", From 62c8eaf02f906d05e7f6d8634b3443e1b3faf51e Mon Sep 17 00:00:00 2001 From: jim Date: Sun, 18 Mar 2018 14:54:38 +0800 Subject: [PATCH 15/18] Enable code split defaultly close #1117 --- .webpackrc.js | 1 - 1 file changed, 1 deletion(-) diff --git a/.webpackrc.js b/.webpackrc.js index 74bc5f6d..0fcc8ace 100755 --- a/.webpackrc.js +++ b/.webpackrc.js @@ -20,6 +20,5 @@ export default { template: './src/index.ejs', }, publicPath: '/', - disableDynamicImport: true, hash: true, }; From b187ca59a10cb87728a6be77a808aa4153dac30e Mon Sep 17 00:00:00 2001 From: jim Date: Mon, 19 Mar 2018 01:32:04 +0800 Subject: [PATCH 16/18] default open split code --- .webpackrc.js | 1 + 1 file changed, 1 insertion(+) diff --git a/.webpackrc.js b/.webpackrc.js index 0fcc8ace..b562f775 100755 --- a/.webpackrc.js +++ b/.webpackrc.js @@ -19,6 +19,7 @@ export default { html: { template: './src/index.ejs', }, + disableDynamicImport: true, publicPath: '/', hash: true, }; From 603bcd7c95f8809b25bff90087cb9b40a8f925cb Mon Sep 17 00:00:00 2001 From: PKAQ Date: Mon, 19 Mar 2018 16:49:37 +0800 Subject: [PATCH 17/18] Use `ESLINT=none` (#1130) --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 63ed5574..44dec94f 100755 --- a/package.json +++ b/package.json @@ -5,8 +5,8 @@ "private": true, "scripts": { "precommit": "npm run lint-staged", - "start": "cross-env DISABLE_ESLINT=true roadhog dev", - "start:no-proxy": "cross-env NO_PROXY=true DISABLE_ESLINT=true roadhog dev", + "start": "cross-env ESLINT=none roadhog dev", + "start:no-proxy": "cross-env NO_PROXY=true ESLINT=none roadhog dev", "build": "cross-env ESLINT=none roadhog build", "site": "roadhog-api-doc static && gh-pages -d dist", "analyze": "cross-env ANALYZE=true roadhog build", From 303c5e43633f1a38337ea50839e02d534fcd9d8f Mon Sep 17 00:00:00 2001 From: niko <644506165@qq.com> Date: Mon, 19 Mar 2018 18:54:17 +0800 Subject: [PATCH 18/18] Remove Error Trigger dump code & support static env (#1128) * remove dump code * compatibility for static --- src/models/error.js | 32 ++++-------------- src/routes/Exception/triggerException.js | 41 ++++++------------------ src/services/error.js | 16 ++------- 3 files changed, 19 insertions(+), 70 deletions(-) diff --git a/src/models/error.js b/src/models/error.js index c2508f67..01431f4c 100644 --- a/src/models/error.js +++ b/src/models/error.js @@ -1,4 +1,5 @@ -import { query403, query401, query404, query500 } from '../services/error'; +import { routerRedux } from 'dva/router'; +import { query } from '../services/error'; export default { namespace: 'error', @@ -9,32 +10,13 @@ export default { }, effects: { - *query403(_, { call, put }) { - yield call(query403); + *query({ payload }, { call, put }) { + yield call(query, payload.code); + // redirect on client when network broken + yield put(routerRedux.push(`/exception/${payload.code}`)); yield put({ type: 'trigger', - payload: '403', - }); - }, - *query401(_, { call, put }) { - yield call(query401); - yield put({ - type: 'trigger', - payload: '401', - }); - }, - *query500(_, { call, put }) { - yield call(query500); - yield put({ - type: 'trigger', - payload: '500', - }); - }, - *query404(_, { call, put }) { - yield call(query404); - yield put({ - type: 'trigger', - payload: '404', + payload: payload.code, }); }, }, diff --git a/src/routes/Exception/triggerException.js b/src/routes/Exception/triggerException.js index e552d4db..0a2d489e 100644 --- a/src/routes/Exception/triggerException.js +++ b/src/routes/Exception/triggerException.js @@ -7,55 +7,34 @@ import styles from './style.less'; isloading: state.error.isloading, })) export default class TriggerException extends PureComponent { - state={ + state = { isloading: false, - } - trigger401 = () => { - this.setState({ - isloading: true, - }); - this.props.dispatch({ - type: 'error/query401', - }); - }; - trigger403 = () => { - this.setState({ - isloading: true, - }); - this.props.dispatch({ - type: 'error/query403', - }); - }; - trigger500 = () => { - this.setState({ - isloading: true, - }); - this.props.dispatch({ - type: 'error/query500', - }); }; - trigger404 = () => { + triggerError = (code) => { this.setState({ isloading: true, }); this.props.dispatch({ - type: 'error/query404', + type: 'error/query', + payload: { + code, + }, }); }; render() { return ( - - - - diff --git a/src/services/error.js b/src/services/error.js index 9697b7ee..7e1eeee1 100644 --- a/src/services/error.js +++ b/src/services/error.js @@ -1,17 +1,5 @@ import request from '../utils/request'; -export async function query404() { - return request('/api/404'); -} - -export async function query401() { - return request('/api/401'); -} - -export async function query403() { - return request('/api/403'); -} - -export async function query500() { - return request('/api/500'); +export async function query(code) { + return request(`/api/${code}`); }