From 45d77e5e5549360be96c91b2916a9b68caf4d738 Mon Sep 17 00:00:00 2001 From: lokyoung Date: Wed, 18 Apr 2018 22:02:43 +0800 Subject: [PATCH 1/6] feat: use vue install to setup the library --- components/index.js | 206 ++++++++++++++++++++++++++++++++------------ 1 file changed, 152 insertions(+), 54 deletions(-) diff --git a/components/index.js b/components/index.js index 58b8573d4..efc0dd1b3 100644 --- a/components/index.js +++ b/components/index.js @@ -12,110 +12,208 @@ if (ENV !== 'production' && } /* @remove-on-es-build-end */ -export { default as Affix } from './affix' +import { default as Affix } from './affix'; -// export { default as Anchor } from './anchor' +// import { default as Anchor } from './anchor' -export { default as AutoComplete } from './auto-complete' +import { default as AutoComplete } from './auto-complete'; -export { default as Alert } from './alert' +import { default as Alert } from './alert'; -export { default as Avatar } from './avatar' +import { default as Avatar } from './avatar'; -export { default as BackTop } from './back-top' +import { default as BackTop } from './back-top'; -export { default as Badge } from './badge' +import { default as Badge } from './badge'; -export { default as Breadcrumb } from './breadcrumb' +import { default as Breadcrumb } from './breadcrumb'; -export { default as Button } from './button' +import { default as Button } from './button'; -export { default as Calendar } from './calendar' +import { default as Calendar } from './calendar'; -export { default as Card } from './card' +import { default as Card } from './card'; -export { default as Collapse } from './collapse' +import { default as Collapse } from './collapse'; -// export { default as Carousel } from './carousel' +// import { default as Carousel } from './carousel' -export { default as Cascader } from './cascader' +import { default as Cascader } from './cascader'; -export { default as Checkbox } from './checkbox' +import { default as Checkbox } from './checkbox'; -export { default as Col } from './col' +import { default as Col } from './col'; -export { default as DatePicker } from './date-picker' +import { default as DatePicker } from './date-picker'; -export { default as Divider } from './divider' +import { default as Divider } from './divider'; -export { default as Dropdown } from './dropdown' +import { default as Dropdown } from './dropdown'; -// export { default as Form } from './form' +// import { default as Form } from './form' -export { default as Icon } from './icon' +import { default as Icon } from './icon'; -export { default as Input } from './input' +import { default as Input } from './input'; -export { default as InputNumber } from './input-number' +import { default as InputNumber } from './input-number'; -// export { default as Layout } from './layout' +// import { default as Layout } from './layout' -// export { default as List } from './list' +// import { default as List } from './list' -export { default as LocaleProvider } from './locale-provider' +import { default as LocaleProvider } from './locale-provider'; -export { default as message } from './message' +import { default as message } from './message'; -export { default as Menu } from './menu' +import { default as Menu } from './menu'; -export { default as Modal } from './modal' +import { default as Modal } from './modal'; -export { default as notification } from './notification' +import { default as notification } from './notification'; -export { default as Pagination } from './pagination' +import { default as Pagination } from './pagination'; -export { default as Popconfirm } from './popconfirm' +import { default as Popconfirm } from './popconfirm'; -export { default as Popover } from './popover' +import { default as Popover } from './popover'; -export { default as Progress } from './progress' +import { default as Progress } from './progress'; -export { default as Radio } from './radio' +import { default as Radio } from './radio'; -export { default as Rate } from './rate' +import { default as Rate } from './rate'; -export { default as Row } from './row' +import { default as Row } from './row'; -export { default as Select } from './select' +import { default as Select } from './select'; -export { default as Slider } from './slider' +import { default as Slider } from './slider'; -export { default as Spin } from './spin' +import { default as Spin } from './spin'; -export { default as Steps } from './steps' +import { default as Steps } from './steps'; -export { default as Switch } from './switch' +import { default as Switch } from './switch'; -export { default as Table } from './table' +import { default as Table } from './table'; -export { default as Transfer } from './transfer' +import { default as Transfer } from './transfer'; -export { default as Tree } from './tree' +import { default as Tree } from './tree'; -// export { default as TreeSelect } from './tree-select' +// import { default as TreeSelect } from './tree-select' -export { default as Tabs } from './tabs' +import tabs, { default as Tabs } from './tabs'; -export { default as Tag } from './tag' +import { default as Tag } from './tag'; -export { default as TimePicker } from './time-picker' +import { default as TimePicker } from './time-picker'; -export { default as Timeline } from './timeline' +import { default as Timeline } from './timeline'; -export { default as Tooltip } from './tooltip' +import { default as Tooltip } from './tooltip'; -// export { default as Mention } from './mention' +// import { default as Mention } from './mention' -export { default as Upload } from './upload' +import { default as Upload } from './upload'; -export { default as version } from './version' +import { default as version } from './version'; + +const components = [ + Affix, + AutoComplete, + Alert, + Avatar, + BackTop, + Badge, + Breadcrumb, + Breadcrumb.Item, + Button, + Button.Group, + Calendar, + Card, + Card.Meta, + Card.Grid, + Collapse, + Collapse.Panel, + Cascader, + Checkbox, + Checkbox.Group, + Col, + DatePicker, + DatePicker.MonthPicker, + DatePicker.RangePicker, + DatePicker.WeekPicker, + Divider, + Dropdown, + Dropdown.Button, + Icon, + Input, + Input.Group, + Input.Search, + Input.TextArea, + InputNumber, + LocaleProvider, + Menu, + Menu.Item, + Menu.SubMenu, + Menu.Divider, + Menu.ItemGroup, + Modal, + Pagination, + Popconfirm, + Popover, + Progress, + Radio, + Radio.Group, + Radio.Button, + Rate, + Row, + Select, + Select.Option, + Select.OptGroup, + Slider, + Spin, + Steps, + Steps.Step, + Switch, + Table, + Table.Column, + Table.ColumnGroup, + Transfer, + Tree, + Tree.TreeNode, + Tabs, + Tabs.TabPane, + Tag, + Tag.CheckableTag, + TimePicker, + Timeline, + Timeline.Item, + Tooltip, + Upload, + Upload.Dragger, +]; + +const install = function(Vue) { + components.map(component => { + Vue.component(component.name, component); + }); + + Vue.prototype.$message = message; + Vue.prototype.$notification = notification; + Vue.prototype.$info = Modal.info; + Vue.prototype.$success = Modal.success; + Vue.prototype.$error = Modal.error; + Vue.prototype.$warning = Modal.warning; + Vue.prototype.$confirm = Modal.confirm; +} + +const antd = { + version, + install, + ...components +} + +module.exports.default = module.exports = antd; \ No newline at end of file From d618d0b6834f1f64d77312748a27d03dc7f39b30 Mon Sep 17 00:00:00 2001 From: lokyoung Date: Thu, 19 Apr 2018 10:31:12 +0800 Subject: [PATCH 2/6] style: fix style according to eslint --- components/index.js | 266 ++++++++++++++++++++++---------------------- 1 file changed, 133 insertions(+), 133 deletions(-) diff --git a/components/index.js b/components/index.js index efc0dd1b3..706250215 100644 --- a/components/index.js +++ b/components/index.js @@ -12,208 +12,208 @@ if (ENV !== 'production' && } /* @remove-on-es-build-end */ -import { default as Affix } from './affix'; +import { default as Affix } from './affix' // import { default as Anchor } from './anchor' -import { default as AutoComplete } from './auto-complete'; +import { default as AutoComplete } from './auto-complete' -import { default as Alert } from './alert'; +import { default as Alert } from './alert' -import { default as Avatar } from './avatar'; +import { default as Avatar } from './avatar' -import { default as BackTop } from './back-top'; +import { default as BackTop } from './back-top' -import { default as Badge } from './badge'; +import { default as Badge } from './badge' -import { default as Breadcrumb } from './breadcrumb'; +import { default as Breadcrumb } from './breadcrumb' -import { default as Button } from './button'; +import { default as Button } from './button' -import { default as Calendar } from './calendar'; +import { default as Calendar } from './calendar' -import { default as Card } from './card'; +import { default as Card } from './card' -import { default as Collapse } from './collapse'; +import { default as Collapse } from './collapse' // import { default as Carousel } from './carousel' -import { default as Cascader } from './cascader'; +import { default as Cascader } from './cascader' -import { default as Checkbox } from './checkbox'; +import { default as Checkbox } from './checkbox' -import { default as Col } from './col'; +import { default as Col } from './col' -import { default as DatePicker } from './date-picker'; +import { default as DatePicker } from './date-picker' -import { default as Divider } from './divider'; +import { default as Divider } from './divider' -import { default as Dropdown } from './dropdown'; +import { default as Dropdown } from './dropdown' // import { default as Form } from './form' -import { default as Icon } from './icon'; +import { default as Icon } from './icon' -import { default as Input } from './input'; +import { default as Input } from './input' -import { default as InputNumber } from './input-number'; +import { default as InputNumber } from './input-number' // import { default as Layout } from './layout' // import { default as List } from './list' -import { default as LocaleProvider } from './locale-provider'; +import { default as LocaleProvider } from './locale-provider' -import { default as message } from './message'; +import { default as message } from './message' -import { default as Menu } from './menu'; +import { default as Menu } from './menu' -import { default as Modal } from './modal'; +import { default as Modal } from './modal' -import { default as notification } from './notification'; +import { default as notification } from './notification' -import { default as Pagination } from './pagination'; +import { default as Pagination } from './pagination' -import { default as Popconfirm } from './popconfirm'; +import { default as Popconfirm } from './popconfirm' -import { default as Popover } from './popover'; +import { default as Popover } from './popover' -import { default as Progress } from './progress'; +import { default as Progress } from './progress' -import { default as Radio } from './radio'; +import { default as Radio } from './radio' -import { default as Rate } from './rate'; +import { default as Rate } from './rate' -import { default as Row } from './row'; +import { default as Row } from './row' -import { default as Select } from './select'; +import { default as Select } from './select' -import { default as Slider } from './slider'; +import { default as Slider } from './slider' -import { default as Spin } from './spin'; +import { default as Spin } from './spin' -import { default as Steps } from './steps'; +import { default as Steps } from './steps' -import { default as Switch } from './switch'; +import { default as Switch } from './switch' -import { default as Table } from './table'; +import { default as Table } from './table' -import { default as Transfer } from './transfer'; +import { default as Transfer } from './transfer' -import { default as Tree } from './tree'; +import { default as Tree } from './tree' // import { default as TreeSelect } from './tree-select' -import tabs, { default as Tabs } from './tabs'; +import tabs, { default as Tabs } from './tabs' -import { default as Tag } from './tag'; +import { default as Tag } from './tag' -import { default as TimePicker } from './time-picker'; +import { default as TimePicker } from './time-picker' -import { default as Timeline } from './timeline'; +import { default as Timeline } from './timeline' -import { default as Tooltip } from './tooltip'; +import { default as Tooltip } from './tooltip' // import { default as Mention } from './mention' -import { default as Upload } from './upload'; +import { default as Upload } from './upload' -import { default as version } from './version'; +import { default as version } from './version' const components = [ - Affix, - AutoComplete, - Alert, - Avatar, - BackTop, - Badge, - Breadcrumb, - Breadcrumb.Item, - Button, - Button.Group, - Calendar, - Card, - Card.Meta, - Card.Grid, - Collapse, - Collapse.Panel, - Cascader, - Checkbox, - Checkbox.Group, - Col, - DatePicker, - DatePicker.MonthPicker, - DatePicker.RangePicker, - DatePicker.WeekPicker, - Divider, - Dropdown, - Dropdown.Button, - Icon, - Input, - Input.Group, - Input.Search, - Input.TextArea, - InputNumber, - LocaleProvider, - Menu, - Menu.Item, - Menu.SubMenu, - Menu.Divider, - Menu.ItemGroup, - Modal, - Pagination, - Popconfirm, - Popover, - Progress, - Radio, - Radio.Group, - Radio.Button, - Rate, - Row, - Select, - Select.Option, - Select.OptGroup, - Slider, - Spin, - Steps, - Steps.Step, - Switch, - Table, - Table.Column, - Table.ColumnGroup, - Transfer, - Tree, - Tree.TreeNode, - Tabs, - Tabs.TabPane, - Tag, - Tag.CheckableTag, - TimePicker, - Timeline, - Timeline.Item, - Tooltip, - Upload, - Upload.Dragger, -]; + Affix, + AutoComplete, + Alert, + Avatar, + BackTop, + Badge, + Breadcrumb, + Breadcrumb.Item, + Button, + Button.Group, + Calendar, + Card, + Card.Meta, + Card.Grid, + Collapse, + Collapse.Panel, + Cascader, + Checkbox, + Checkbox.Group, + Col, + DatePicker, + DatePicker.MonthPicker, + DatePicker.RangePicker, + DatePicker.WeekPicker, + Divider, + Dropdown, + Dropdown.Button, + Icon, + Input, + Input.Group, + Input.Search, + Input.TextArea, + InputNumber, + LocaleProvider, + Menu, + Menu.Item, + Menu.SubMenu, + Menu.Divider, + Menu.ItemGroup, + Modal, + Pagination, + Popconfirm, + Popover, + Progress, + Radio, + Radio.Group, + Radio.Button, + Rate, + Row, + Select, + Select.Option, + Select.OptGroup, + Slider, + Spin, + Steps, + Steps.Step, + Switch, + Table, + Table.Column, + Table.ColumnGroup, + Transfer, + Tree, + Tree.TreeNode, + Tabs, + Tabs.TabPane, + Tag, + Tag.CheckableTag, + TimePicker, + Timeline, + Timeline.Item, + Tooltip, + Upload, + Upload.Dragger, +] -const install = function(Vue) { +const install = function (Vue) { components.map(component => { - Vue.component(component.name, component); - }); + Vue.component(component.name, component) + }) - Vue.prototype.$message = message; - Vue.prototype.$notification = notification; - Vue.prototype.$info = Modal.info; - Vue.prototype.$success = Modal.success; - Vue.prototype.$error = Modal.error; - Vue.prototype.$warning = Modal.warning; - Vue.prototype.$confirm = Modal.confirm; + Vue.prototype.$message = message + Vue.prototype.$notification = notification + Vue.prototype.$info = Modal.info + Vue.prototype.$success = Modal.success + Vue.prototype.$error = Modal.error + Vue.prototype.$warning = Modal.warning + Vue.prototype.$confirm = Modal.confirm } const antd = { version, install, - ...components + ...components, } -module.exports.default = module.exports = antd; \ No newline at end of file +module.exports.default = module.exports = antd From e450606de9c19bb700018b8ce9497de21d659d11 Mon Sep 17 00:00:00 2001 From: lokyoung Date: Thu, 19 Apr 2018 10:33:04 +0800 Subject: [PATCH 3/6] fix: remove unused variable --- components/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/index.js b/components/index.js index 706250215..bf6c42985 100644 --- a/components/index.js +++ b/components/index.js @@ -104,7 +104,7 @@ import { default as Tree } from './tree' // import { default as TreeSelect } from './tree-select' -import tabs, { default as Tabs } from './tabs' +import { default as Tabs } from './tabs' import { default as Tag } from './tag' From 671bb9e12295f714b74fdde38f44ea3a4e2b9d37 Mon Sep 17 00:00:00 2001 From: lokyoung Date: Thu, 19 Apr 2018 16:18:18 +0800 Subject: [PATCH 4/6] fix: fix export issue --- components/index.js | 117 ++++++++++++++++++++++++++++++-------------- 1 file changed, 80 insertions(+), 37 deletions(-) diff --git a/components/index.js b/components/index.js index bf6c42985..c67ff3ed0 100644 --- a/components/index.js +++ b/components/index.js @@ -120,7 +120,7 @@ import { default as Upload } from './upload' import { default as version } from './version' -const components = [ +const components = { Affix, AutoComplete, Alert, @@ -128,77 +128,77 @@ const components = [ BackTop, Badge, Breadcrumb, - Breadcrumb.Item, + BreadcrumbItem: Breadcrumb.Item, Button, - Button.Group, + ButtonGroup: Button.Group, Calendar, Card, - Card.Meta, - Card.Grid, + CardMeta: Card.Meta, + CardGrid: Card.Grid, Collapse, - Collapse.Panel, + CollapsePanel: Collapse.Panel, Cascader, Checkbox, - Checkbox.Group, + CheckboxGroup: Checkbox.Group, Col, DatePicker, - DatePicker.MonthPicker, - DatePicker.RangePicker, - DatePicker.WeekPicker, + MonthPicker: DatePicker.MonthPicker, + RangePicker: DatePicker.RangePicker, + WeekPicker: DatePicker.WeekPicker, Divider, Dropdown, - Dropdown.Button, + DropdownButton: Dropdown.Button, Icon, Input, - Input.Group, - Input.Search, - Input.TextArea, + InputGroup: Input.Group, + InputSearch: Input.Search, + InputTextArea: Input.TextArea, InputNumber, LocaleProvider, Menu, - Menu.Item, - Menu.SubMenu, - Menu.Divider, - Menu.ItemGroup, + MenuItem: Menu.Item, + SubMenu: Menu.SubMenu, + MenuDivider: Menu.Divider, + ItemGroup: Menu.ItemGroup, Modal, Pagination, Popconfirm, Popover, Progress, Radio, - Radio.Group, - Radio.Button, + RadioGroup: Radio.Group, + RadioButton: Radio.Button, Rate, Row, Select, - Select.Option, - Select.OptGroup, + SelectOption: Select.Option, + SelectOptGroup: Select.OptGroup, Slider, Spin, Steps, - Steps.Step, + Step: Steps.Step, Switch, Table, - Table.Column, - Table.ColumnGroup, + Column: Table.Column, + ColumnGroup: Table.ColumnGroup, Transfer, Tree, - Tree.TreeNode, + TreeNode: Tree.TreeNode, Tabs, - Tabs.TabPane, + TabPane: Tabs.TabPane, Tag, - Tag.CheckableTag, + CheckableTag: Tag.CheckableTag, TimePicker, Timeline, - Timeline.Item, + TimelineItem: Timeline.Item, Tooltip, Upload, - Upload.Dragger, -] + UploadDragger: Upload.Dragger, +} const install = function (Vue) { - components.map(component => { - Vue.component(component.name, component) + Object.keys(components).forEach(key => { + Vue.component(components[key].name, components[key]) }) Vue.prototype.$message = message @@ -210,10 +210,53 @@ const install = function (Vue) { Vue.prototype.$confirm = Modal.confirm } -const antd = { +export { version, install, - ...components, + message, + notification, + Affix, + AutoComplete, + Alert, + Avatar, + BackTop, + Badge, + Breadcrumb, + Button, + Calendar, + Card, + Collapse, + Cascader, + Checkbox, + Col, + DatePicker, + Divider, + Dropdown, + Icon, + Input, + InputNumber, + LocaleProvider, + Menu, + Modal, + Pagination, + Popconfirm, + Popover, + Progress, + Radio, + Rate, + Row, + Select, + Slider, + Spin, + Steps, + Switch, + Table, + Transfer, + Tree, + Tabs, + Tag, + TimePicker, + Timeline, + Tooltip, + Upload, } - -module.exports.default = module.exports = antd From 90814a25af25d3b55e36f64098f83b4e2f8db1f9 Mon Sep 17 00:00:00 2001 From: lokyoung Date: Thu, 19 Apr 2018 16:42:55 +0800 Subject: [PATCH 5/6] feat: export default for vue antd --- components/index.js | 71 ++++++++++++++++++++++++--------------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/components/index.js b/components/index.js index c67ff3ed0..a69da8c32 100644 --- a/components/index.js +++ b/components/index.js @@ -120,7 +120,7 @@ import { default as Upload } from './upload' import { default as version } from './version' -const components = { +const components = [ Affix, AutoComplete, Alert, @@ -128,77 +128,77 @@ const components = { BackTop, Badge, Breadcrumb, - BreadcrumbItem: Breadcrumb.Item, + Breadcrumb.Item, Button, - ButtonGroup: Button.Group, + Button.Group, Calendar, Card, - CardMeta: Card.Meta, - CardGrid: Card.Grid, + Card.Meta, + Card.Grid, Collapse, - CollapsePanel: Collapse.Panel, + Collapse.Panel, Cascader, Checkbox, - CheckboxGroup: Checkbox.Group, + Checkbox.Group, Col, DatePicker, - MonthPicker: DatePicker.MonthPicker, - RangePicker: DatePicker.RangePicker, - WeekPicker: DatePicker.WeekPicker, + DatePicker.MonthPicker, + DatePicker.RangePicker, + DatePicker.WeekPicker, Divider, Dropdown, - DropdownButton: Dropdown.Button, + Dropdown.Button, Icon, Input, - InputGroup: Input.Group, - InputSearch: Input.Search, - InputTextArea: Input.TextArea, + Input.Group, + Input.Search, + Input.TextArea, InputNumber, LocaleProvider, Menu, - MenuItem: Menu.Item, - SubMenu: Menu.SubMenu, - MenuDivider: Menu.Divider, - ItemGroup: Menu.ItemGroup, + Menu.Item, + Menu.SubMenu, + Menu.Divider, + Menu.ItemGroup, Modal, Pagination, Popconfirm, Popover, Progress, Radio, - RadioGroup: Radio.Group, - RadioButton: Radio.Button, + Radio.Group, + Radio.Button, Rate, Row, Select, - SelectOption: Select.Option, - SelectOptGroup: Select.OptGroup, + Select.Option, + Select.OptGroup, Slider, Spin, Steps, - Step: Steps.Step, + Steps.Step, Switch, Table, - Column: Table.Column, - ColumnGroup: Table.ColumnGroup, + Table.Column, + Table.ColumnGroup, Transfer, Tree, - TreeNode: Tree.TreeNode, + Tree.TreeNode, Tabs, - TabPane: Tabs.TabPane, + Tabs.TabPane, Tag, - CheckableTag: Tag.CheckableTag, + Tag.CheckableTag, TimePicker, Timeline, - TimelineItem: Timeline.Item, + Timeline.Item, Tooltip, Upload, - UploadDragger: Upload.Dragger, -} + Upload.Dragger, +] const install = function (Vue) { - Object.keys(components).forEach(key => { - Vue.component(components[key].name, components[key]) + components.map(component => { + Vue.component(component.name, component) }) Vue.prototype.$message = message @@ -260,3 +260,8 @@ export { Tooltip, Upload, } + +export default { + version, + install, +} From 3be4ed67aedaa165acb562f542aaa107eadf8e8e Mon Sep 17 00:00:00 2001 From: lokyoung Date: Thu, 19 Apr 2018 16:58:03 +0800 Subject: [PATCH 6/6] doc: update related doc --- docs/vue/getting-started.en-US.md | 16 ++++++++++++++++ docs/vue/getting-started.zh-CN.md | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/docs/vue/getting-started.en-US.md b/docs/vue/getting-started.en-US.md index 67ced444a..a9a435cdc 100644 --- a/docs/vue/getting-started.en-US.md +++ b/docs/vue/getting-started.en-US.md @@ -37,6 +37,22 @@ $ vue init webpack antd-demo $ npm i --save vue-antd-ui ``` +**Fully import** +```jsx +import Vue from 'vue' +import antd from 'vue-antd-ui' +import App from './App' +Vue.config.productionTip = false + +/* eslint-disable no-new */ +new Vue({ + el: '#app', + components: { App }, + template: '' +}) +``` + +**Only import the components you need** ```jsx import Vue from 'vue' import { Button, message } from 'vue-antd-ui' diff --git a/docs/vue/getting-started.zh-CN.md b/docs/vue/getting-started.zh-CN.md index 9463c9667..c5b3c15fa 100644 --- a/docs/vue/getting-started.zh-CN.md +++ b/docs/vue/getting-started.zh-CN.md @@ -38,6 +38,22 @@ $ vue init webpack antd-demo $ npm i --save vue-antd-ui ``` +**完整导入** +```jsx +import Vue from 'vue' +import antd from 'vue-antd-ui' +import App from './App' +Vue.config.productionTip = false + +/* eslint-disable no-new */ +new Vue({ + el: '#app', + components: { App }, + template: '' +}) +``` + +**局部导入组件** ```jsx import Vue from 'vue' import { Button, message } from 'vue-antd-ui'