From a70254344ec5c6498421a41bb900bf329e5ec378 Mon Sep 17 00:00:00 2001 From: Ken Berkeley Date: Wed, 13 Sep 2017 15:52:56 +0800 Subject: [PATCH] Release v2.0.0 --- .npmignore | 3 +- README.md | 6 +- doc/README.md | 4 + doc/_coverpage.md | 6 + doc/_images/structure.png | Bin 0 -> 95542 bytes doc/_sidebar.md | 3 + {docs => doc}/en/DIY.md | 0 doc/en/README.md | 20 + doc/en/_sidebar.md | 15 + doc/en/details/README.md | 32 + doc/en/details/datatable-props.md | 33 + .../en/details}/dynamic-comps.md | 41 +- doc/en/details/props-columns.md | 22 + doc/en/details/props-data.md | 91 +++ doc/en/details/props-query.md | 90 +++ doc/en/details/props-selection.md | 30 + doc/en/details/props-xprops.md | 79 ++ {docs => doc}/en/getting-started.md | 8 +- doc/en/i18n.md | 74 ++ docs/en/tricks.md => doc/en/preparation.md | 21 +- doc/index.html | 26 + {docs => doc}/zh-cn/DIY.md | 0 docs/zh-cn/Preface.md => doc/zh-cn/README.md | 4 +- doc/zh-cn/_sidebar.md | 15 + doc/zh-cn/details/README.md | 32 + .../zh-cn/details}/datatable-props.md | 10 +- .../zh-cn/details}/dynamic-comps.md | 41 +- doc/zh-cn/details/props-columns.md | 22 + doc/zh-cn/details/props-data.md | 89 +++ .../zh-cn/details}/props-query.md | 12 +- .../zh-cn/details}/props-selection.md | 4 +- .../zh-cn/details}/props-xprops.md | 18 +- {docs => doc}/zh-cn/getting-started.md | 6 +- {docs => doc}/zh-cn/i18n.md | 37 +- .../Tricks.md => doc/zh-cn/preparation.md | 16 +- docs/LANGS.md | 4 - docs/_book/en/DIY.html | 437 ----------- docs/_book/en/detailed/README.md | 23 - docs/_book/en/detailed/datatable-props.html | 566 --------------- docs/_book/en/detailed/datatable-props.md | 31 - docs/_book/en/detailed/dynamic-comps.html | 564 -------------- docs/_book/en/detailed/images/structure.png | Bin 103883 -> 0 bytes docs/_book/en/detailed/index.html | 450 ------------ docs/_book/en/detailed/props-columns.html | 611 ---------------- docs/_book/en/detailed/props-columns.md | 64 -- docs/_book/en/detailed/props-data.html | 537 -------------- docs/_book/en/detailed/props-data.md | 85 --- docs/_book/en/detailed/props-query.html | 512 ------------- docs/_book/en/detailed/props-query.md | 89 --- docs/_book/en/detailed/props-selection.html | 454 ------------ docs/_book/en/detailed/props-selection.md | 31 - docs/_book/en/detailed/props-xprops.html | 500 ------------- docs/_book/en/detailed/props-xprops.md | 79 -- docs/_book/en/getting-started.html | 478 ------------ docs/_book/en/i18n.html | 490 ------------- docs/_book/en/index.html | 449 ------------ docs/_book/en/preface.html | 447 ------------ docs/_book/en/search_index.json | 1 - docs/_book/en/tricks.html | 496 ------------- .../gitbook/fonts/fontawesome/FontAwesome.otf | Bin 124988 -> 0 bytes .../fonts/fontawesome/fontawesome-webfont.eot | Bin 76518 -> 0 bytes .../fonts/fontawesome/fontawesome-webfont.svg | 685 ------------------ .../fonts/fontawesome/fontawesome-webfont.ttf | Bin 152796 -> 0 bytes .../fontawesome/fontawesome-webfont.woff | Bin 90412 -> 0 bytes .../fontawesome/fontawesome-webfont.woff2 | Bin 71896 -> 0 bytes .../gitbook-plugin-edit-link/plugin.js | 30 - .../fontsettings.js | 240 ------ .../gitbook-plugin-fontsettings/website.css | 291 -------- .../gitbook/gitbook-plugin-github/plugin.js | 14 - .../gitbook-plugin-highlight/ebook.css | 135 ---- .../gitbook-plugin-highlight/website.css | 434 ----------- .../gitbook/gitbook-plugin-lunr/lunr.min.js | 7 - .../gitbook-plugin-lunr/search-lunr.js | 59 -- .../gitbook/gitbook-plugin-search/lunr.min.js | 7 - .../gitbook-plugin-search/search-engine.js | 50 -- .../gitbook/gitbook-plugin-search/search.css | 35 - .../gitbook/gitbook-plugin-search/search.js | 213 ------ docs/_book/gitbook/gitbook.js | 4 - .../apple-touch-icon-precomposed-152.png | Bin 4817 -> 0 bytes docs/_book/gitbook/images/favicon.ico | Bin 4286 -> 0 bytes docs/_book/gitbook/style.css | 9 - docs/_book/gitbook/theme.js | 4 - docs/_book/index.html | 70 -- docs/_book/search_index.json | 1 - docs/_book/zh-cn/DIY.html | 437 ----------- docs/_book/zh-cn/Preface.md | 16 - docs/_book/zh-cn/detailed/README.md | 23 - .../_book/zh-cn/detailed/datatable-props.html | 566 --------------- docs/_book/zh-cn/detailed/dynamic-comps.html | 564 -------------- .../_book/zh-cn/detailed/images/structure.png | Bin 103883 -> 0 bytes docs/_book/zh-cn/detailed/index.html | 450 ------------ docs/_book/zh-cn/detailed/props-columns.html | 611 ---------------- docs/_book/zh-cn/detailed/props-columns.md | 64 -- docs/_book/zh-cn/detailed/props-data.html | 536 -------------- docs/_book/zh-cn/detailed/props-data.md | 83 --- docs/_book/zh-cn/detailed/props-query.html | 508 ------------- docs/_book/zh-cn/detailed/props-query.md | 81 --- .../_book/zh-cn/detailed/props-selection.html | 454 ------------ docs/_book/zh-cn/detailed/props-selection.md | 30 - docs/_book/zh-cn/detailed/props-xprops.html | 498 ------------- docs/_book/zh-cn/detailed/props-xprops.md | 75 -- docs/_book/zh-cn/getting-started.html | 478 ------------ docs/_book/zh-cn/i18n.html | 491 ------------- docs/_book/zh-cn/index.html | 449 ------------ docs/_book/zh-cn/preface.html | 446 ------------ docs/_book/zh-cn/search_index.json | 1 - docs/_book/zh-cn/tricks.html | 496 ------------- docs/book.json | 16 - docs/en/README.md | 1 - docs/en/SUMMARY.md | 18 - docs/en/detailed/README.md | 23 - docs/en/detailed/datatable-props.md | 31 - docs/en/detailed/dynamic-comps.md | 65 -- docs/en/detailed/images/structure.png | Bin 103883 -> 0 bytes docs/en/detailed/props-columns.md | 64 -- docs/en/detailed/props-data.md | 85 --- docs/en/detailed/props-query.md | 89 --- docs/en/detailed/props-selection.md | 31 - docs/en/detailed/props-xprops.md | 79 -- docs/en/i18n.md | 73 -- docs/en/preface.md | 19 - docs/zh-cn/README.md | 1 - docs/zh-cn/SUMMARY.md | 18 - docs/zh-cn/detailed/README.md | 23 - docs/zh-cn/detailed/datatable-props.md | 30 - docs/zh-cn/detailed/dynamic-comps.md | 65 -- docs/zh-cn/detailed/images/structure.png | Bin 103883 -> 0 bytes docs/zh-cn/detailed/props-columns.md | 64 -- docs/zh-cn/detailed/props-data.md | 83 --- examples/dist/client.04139e5e.css | 1 - examples/dist/client.1c2f3b75.js | 1 + examples/dist/client.4934818d.css | 1 + examples/dist/client.afcc5589.js | 1 - examples/dist/index.html | 14 +- examples/src/Advanced/comps/index.js | 1 + .../src/Advanced/comps/nested-DisplayRow.vue | 2 - examples/src/Advanced/comps/th-Filter.vue | 4 +- examples/src/Advanced/index.vue | 62 +- examples/src/App.vue | 17 +- examples/src/Basic/index.vue | 4 +- examples/src/Fixed/index.vue | 40 + examples/src/_mockData/dataSource.js | 2 +- examples/src/_mockData/index.js | 8 +- examples/src/app.js | 2 + examples/src/index.html | 10 +- lib/HeaderSettings/ColumnGroup.vue | 60 +- lib/HeaderSettings/index.vue | 61 +- lib/LimitSelect.vue | 2 +- lib/{ => MainTable}/HeadSort.vue | 14 +- lib/{ => MainTable}/MultiSelect.vue | 4 +- lib/MainTable/TableBody.vue | 60 ++ lib/MainTable/TableFooter.vue | 38 + lib/MainTable/TableFrame.vue | 15 + lib/MainTable/TableHeader.vue | 38 + lib/MainTable/_SCROLLBAR_WIDTH.js | 16 + lib/MainTable/_syncScroll.js | 46 ++ lib/MainTable/index.vue | 150 ++++ lib/Pagination.vue | 6 +- lib/index.vue | 261 ++----- lib/props.mixin.js | 29 + locales/zh-cn.js | 9 +- package.json | 8 +- 162 files changed, 1445 insertions(+), 18373 deletions(-) create mode 100644 doc/README.md create mode 100644 doc/_coverpage.md create mode 100644 doc/_images/structure.png create mode 100644 doc/_sidebar.md rename {docs => doc}/en/DIY.md (100%) create mode 100644 doc/en/README.md create mode 100644 doc/en/_sidebar.md create mode 100644 doc/en/details/README.md create mode 100644 doc/en/details/datatable-props.md rename {docs/_book/en/detailed => doc/en/details}/dynamic-comps.md (62%) create mode 100644 doc/en/details/props-columns.md create mode 100644 doc/en/details/props-data.md create mode 100644 doc/en/details/props-query.md create mode 100644 doc/en/details/props-selection.md create mode 100644 doc/en/details/props-xprops.md rename {docs => doc}/en/getting-started.md (66%) create mode 100644 doc/en/i18n.md rename docs/en/tricks.md => doc/en/preparation.md (53%) create mode 100644 doc/index.html rename {docs => doc}/zh-cn/DIY.md (100%) rename docs/zh-cn/Preface.md => doc/zh-cn/README.md (90%) create mode 100644 doc/zh-cn/_sidebar.md create mode 100644 doc/zh-cn/details/README.md rename {docs/_book/zh-cn/detailed => doc/zh-cn/details}/datatable-props.md (77%) rename {docs/_book/zh-cn/detailed => doc/zh-cn/details}/dynamic-comps.md (59%) create mode 100644 doc/zh-cn/details/props-columns.md create mode 100644 doc/zh-cn/details/props-data.md rename {docs/zh-cn/detailed => doc/zh-cn/details}/props-query.md (87%) rename {docs/zh-cn/detailed => doc/zh-cn/details}/props-selection.md (82%) rename {docs/zh-cn/detailed => doc/zh-cn/details}/props-xprops.md (76%) rename {docs => doc}/zh-cn/getting-started.md (87%) rename {docs => doc}/zh-cn/i18n.md (72%) rename docs/zh-cn/Tricks.md => doc/zh-cn/preparation.md (68%) delete mode 100644 docs/LANGS.md delete mode 100644 docs/_book/en/DIY.html delete mode 100644 docs/_book/en/detailed/README.md delete mode 100644 docs/_book/en/detailed/datatable-props.html delete mode 100644 docs/_book/en/detailed/datatable-props.md delete mode 100644 docs/_book/en/detailed/dynamic-comps.html delete mode 100644 docs/_book/en/detailed/images/structure.png delete mode 100644 docs/_book/en/detailed/index.html delete mode 100644 docs/_book/en/detailed/props-columns.html delete mode 100644 docs/_book/en/detailed/props-columns.md delete mode 100644 docs/_book/en/detailed/props-data.html delete mode 100644 docs/_book/en/detailed/props-data.md delete mode 100644 docs/_book/en/detailed/props-query.html delete mode 100644 docs/_book/en/detailed/props-query.md delete mode 100644 docs/_book/en/detailed/props-selection.html delete mode 100644 docs/_book/en/detailed/props-selection.md delete mode 100644 docs/_book/en/detailed/props-xprops.html delete mode 100644 docs/_book/en/detailed/props-xprops.md delete mode 100644 docs/_book/en/getting-started.html delete mode 100644 docs/_book/en/i18n.html delete mode 100644 docs/_book/en/index.html delete mode 100644 docs/_book/en/preface.html delete mode 100644 docs/_book/en/search_index.json delete mode 100644 docs/_book/en/tricks.html delete mode 100644 docs/_book/gitbook/fonts/fontawesome/FontAwesome.otf delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.svg delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff delete mode 100644 docs/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 delete mode 100644 docs/_book/gitbook/gitbook-plugin-edit-link/plugin.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-fontsettings/fontsettings.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-fontsettings/website.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-github/plugin.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-highlight/ebook.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-highlight/website.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-lunr/lunr.min.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-lunr/search-lunr.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-search/lunr.min.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-search/search-engine.js delete mode 100644 docs/_book/gitbook/gitbook-plugin-search/search.css delete mode 100644 docs/_book/gitbook/gitbook-plugin-search/search.js delete mode 100644 docs/_book/gitbook/gitbook.js delete mode 100644 docs/_book/gitbook/images/apple-touch-icon-precomposed-152.png delete mode 100644 docs/_book/gitbook/images/favicon.ico delete mode 100644 docs/_book/gitbook/style.css delete mode 100644 docs/_book/gitbook/theme.js delete mode 100644 docs/_book/index.html delete mode 100644 docs/_book/search_index.json delete mode 100644 docs/_book/zh-cn/DIY.html delete mode 100644 docs/_book/zh-cn/Preface.md delete mode 100644 docs/_book/zh-cn/detailed/README.md delete mode 100644 docs/_book/zh-cn/detailed/datatable-props.html delete mode 100644 docs/_book/zh-cn/detailed/dynamic-comps.html delete mode 100644 docs/_book/zh-cn/detailed/images/structure.png delete mode 100644 docs/_book/zh-cn/detailed/index.html delete mode 100644 docs/_book/zh-cn/detailed/props-columns.html delete mode 100644 docs/_book/zh-cn/detailed/props-columns.md delete mode 100644 docs/_book/zh-cn/detailed/props-data.html delete mode 100644 docs/_book/zh-cn/detailed/props-data.md delete mode 100644 docs/_book/zh-cn/detailed/props-query.html delete mode 100644 docs/_book/zh-cn/detailed/props-query.md delete mode 100644 docs/_book/zh-cn/detailed/props-selection.html delete mode 100644 docs/_book/zh-cn/detailed/props-selection.md delete mode 100644 docs/_book/zh-cn/detailed/props-xprops.html delete mode 100644 docs/_book/zh-cn/detailed/props-xprops.md delete mode 100644 docs/_book/zh-cn/getting-started.html delete mode 100644 docs/_book/zh-cn/i18n.html delete mode 100644 docs/_book/zh-cn/index.html delete mode 100644 docs/_book/zh-cn/preface.html delete mode 100644 docs/_book/zh-cn/search_index.json delete mode 100644 docs/_book/zh-cn/tricks.html delete mode 100644 docs/book.json delete mode 100644 docs/en/README.md delete mode 100644 docs/en/SUMMARY.md delete mode 100644 docs/en/detailed/README.md delete mode 100644 docs/en/detailed/datatable-props.md delete mode 100644 docs/en/detailed/dynamic-comps.md delete mode 100644 docs/en/detailed/images/structure.png delete mode 100644 docs/en/detailed/props-columns.md delete mode 100644 docs/en/detailed/props-data.md delete mode 100644 docs/en/detailed/props-query.md delete mode 100644 docs/en/detailed/props-selection.md delete mode 100644 docs/en/detailed/props-xprops.md delete mode 100644 docs/en/i18n.md delete mode 100644 docs/en/preface.md delete mode 100644 docs/zh-cn/README.md delete mode 100644 docs/zh-cn/SUMMARY.md delete mode 100644 docs/zh-cn/detailed/README.md delete mode 100644 docs/zh-cn/detailed/datatable-props.md delete mode 100644 docs/zh-cn/detailed/dynamic-comps.md delete mode 100644 docs/zh-cn/detailed/images/structure.png delete mode 100644 docs/zh-cn/detailed/props-columns.md delete mode 100644 docs/zh-cn/detailed/props-data.md delete mode 100644 examples/dist/client.04139e5e.css create mode 100644 examples/dist/client.1c2f3b75.js create mode 100644 examples/dist/client.4934818d.css delete mode 100644 examples/dist/client.afcc5589.js create mode 100644 examples/src/Fixed/index.vue rename lib/{ => MainTable}/HeadSort.vue (67%) rename lib/{ => MainTable}/MultiSelect.vue (87%) create mode 100644 lib/MainTable/TableBody.vue create mode 100644 lib/MainTable/TableFooter.vue create mode 100644 lib/MainTable/TableFrame.vue create mode 100644 lib/MainTable/TableHeader.vue create mode 100644 lib/MainTable/_SCROLLBAR_WIDTH.js create mode 100644 lib/MainTable/_syncScroll.js create mode 100644 lib/MainTable/index.vue create mode 100644 lib/props.mixin.js diff --git a/.npmignore b/.npmignore index 07db409..a76ea5c 100644 --- a/.npmignore +++ b/.npmignore @@ -1,5 +1,6 @@ +.DS_Store *.log .git node_modules -docs +doc examples diff --git a/README.md b/README.md index e01c616..a32ba0a 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ -# Vue2 Datatable +# vue2-datatable-component [![npm version][npm-v-img]][npm-url] [![npm download][npm-dl-img]][npm-url] -> The Best Datatable for Vue.js 2.x which never sucks +> The best Datatable for Vue.js 2.x which never sucks > `npm i -S vue2-datatable-component` -[Documentation](https://OneWayTech.github.io/vue2-datatable/docs/_book) | +[Documentation](https://OneWayTech.github.io/vue2-datatable/doc) | [Online examples](https://OneWayTech.github.io/vue2-datatable/examples/dist) [npm-url]: https://www.npmjs.com/package/vue2-datatable-component diff --git a/doc/README.md b/doc/README.md new file mode 100644 index 0000000..999eeee --- /dev/null +++ b/doc/README.md @@ -0,0 +1,4 @@ +> Choose a language · 请选择语言 + + - [English](en/) + - [中文](zh-cn/) diff --git a/doc/_coverpage.md b/doc/_coverpage.md new file mode 100644 index 0000000..480df65 --- /dev/null +++ b/doc/_coverpage.md @@ -0,0 +1,6 @@ +# vue2-datatable-component + +> The best Datatable for Vue.js 2.x which never sucks + +[GitHub](https://github.com/OneWayTech/vue2-datatable) +[Online examples](https://onewaytech.github.io/vue2-datatable/examples/dist) diff --git a/doc/_images/structure.png b/doc/_images/structure.png new file mode 100644 index 0000000000000000000000000000000000000000..a574218a3f5c56c7c370738d5ed5f9920f5f63d5 GIT binary patch literal 95542 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 YH($~lR&I~N-+|3dZr{LOzyI<-0B8tjmjD0& literal 0 HcmV?d00001 diff --git a/doc/_sidebar.md b/doc/_sidebar.md new file mode 100644 index 0000000..83dad6e --- /dev/null +++ b/doc/_sidebar.md @@ -0,0 +1,3 @@ +- Languages · 语言 + - [English](en/) + - [中文](zh-cn/) diff --git a/docs/en/DIY.md b/doc/en/DIY.md similarity index 100% rename from docs/en/DIY.md rename to doc/en/DIY.md diff --git a/doc/en/README.md b/doc/en/README.md new file mode 100644 index 0000000..d9fdc13 --- /dev/null +++ b/doc/en/README.md @@ -0,0 +1,20 @@ +# § Summary + +> This Datatable is only for Vue 2.x. +> But you can downgrade it according to [Migration from Vue 1.x](https://vuejs.org/v2/guide/migration.html). +> (In most of the time, you just have to replace `ref / key / `) + +There are plenty of open-source Datatables, but none of them could meet all the scenarios. +(if there is, this project has no meanings at all) + +This documentation is dedicated to letting you comprehend the design and the source code. +Under this premise, you could build the most suitable Datatable for your own scenario. + +The dependencies of this project are shown as below: + +* BootStrap 3.x + Font Awesome 4.x(must available globally) +* [lodash.orderBy](https://lodash.com/docs/4.17.4#orderBy) +* [replace-with](https://github.com/kenberkeley/replace-with) + +P.S. *BootStrap* and *Font Awesome* can be replaced with other popular libraries. +(It seems to me that you just have to replace some classes / styles) diff --git a/doc/en/_sidebar.md b/doc/en/_sidebar.md new file mode 100644 index 0000000..772601e --- /dev/null +++ b/doc/en/_sidebar.md @@ -0,0 +1,15 @@ +- [Summary](en/README) +- [Preparation](en/preparation) +- [Getting started](en/getting-started) +- [Details (click me)](en/details/README) + - [`props` of Datatable](en/details/datatable-props) + - [`:columns`](en/details/props-columns) + - [`:data`](en/details/props-data) + - [`:query`](en/details/props-query) + - [`:selection`](en/details/props-selection) + - [`:xprops`](en/details/props-xprops) + - [Dynamic Components](en/details/dynamic-comps) +- [I18N](en/i18n) +- [DIY](en/DIY) +- [Q & A (issues)](https://github.com/OneWayTech/vue2-datatable/issues) +- [Changelog (releases)](https://github.com/OneWayTech/vue2-datatable/releases) diff --git a/doc/en/details/README.md b/doc/en/details/README.md new file mode 100644 index 0000000..de3eaa4 --- /dev/null +++ b/doc/en/details/README.md @@ -0,0 +1,32 @@ +# § Details + +It would be better for you to understand the structure of this Datatable before the details. + +The source tree [`lib/`](https://github.com/OneWayTech/vue2-datatable/tree/master/lib) is shown as below: + +``` +lib/ + ├─ HeaderSettings/ + │   ├─ ColumnGroup.vue + │   └─ index.vue + ├── MainTable + │   ├─ _SCROLLBAR_WIDTH.js + │   ├─ _syncScroll.js + │   ├─ HeadSort.vue + │   ├─ index.vue + │   ├─ MultiSelect.vue + │   ├─ TableBody.vue + │   ├─ TableFooter.vue + │   ├─ TableFrame.vue + │   └─ TableHeader.vue + ├─ index.vue + ├─ LimitSelect.vue + ├─ Pagination.vue + └─ props.mixin.js +``` + +Here is the illustration for the tree above, which is captured from the advanced example (source: [`examples/src/Advanced/index.vue`](https://github.com/OneWayTech/vue2-datatable/blob/master/examples/src/Advanced/index.vue), demo: [examples#advanced](https://OneWayTech.github.io/vue2-datatable/examples/dist#advanced)): + + + Structure + diff --git a/doc/en/details/datatable-props.md b/doc/en/details/datatable-props.md new file mode 100644 index 0000000..fe67fcb --- /dev/null +++ b/doc/en/details/datatable-props.md @@ -0,0 +1,33 @@ +# § `props` of Datatable + +> Source: [`lib/props.mixin.js`](https://github.com/OneWayTech/vue2-datatable/blob/master/lib/props.mixin.js) + +| prop | Desc | Type | Optional values | Default value | Required | +|---|---|---|---|---|---| +| columns | Defination of columns | Array | - | - | Y | +| data | Data of the current page (rows) | Array | - | - | Y | +| total | Total number of the records | Number | - | - | Y | +| query | Query object | Object | - | - | Y | +| selection | Container for multi-select | Array | - | - | N | +| summary | Summary row | Object | - | - | N | +| xprops | Carrier for extra props passed to dynamic components | Object | - | - | N | +| HeaderSettings | Whether to render `HeaderSettings` | Boolean | true / false | true | N | +| Pagination | Whether to render pagination relevant | Boolean | true / false | true | N | +| tbl-class | Classes for `` | String / Object / Array | - | - | N | +| tbl-style | Inline styles for `
` | String / Object / Array | - | - | N | +| fixHeaderAndSetBodyHeight | (Just as its name implies) | Number | - | - | N | +| support-backup | Whether to enable backup of `HeaderSettings` | Boolean | true / false | false | N | +| support-nested | Whether to enable `nested components` feature (`accordion` mode is available) | Boolean / String | true / false / 'accordion' | false | N | + +> The advanced example (source: [`examples/src/Advanced/index.vue`](https://github.com/OneWayTech/vue2-datatable/blob/master/examples/src/Advanced/index.vue), demo: [examples#advanced](https://OneWayTech.github.io/vue2-datatable/examples/dist#advanced)) +> almost covers all the usages, which is highly recommended to study and imitate. + +In the following sections, these props would be elaborated: + +* `columns` +* `data` +* `query` +* `selection` +* `summary` +* `xprops` +* Dynamic components(`thComp / tdComp / nested component`) diff --git a/docs/_book/en/detailed/dynamic-comps.md b/doc/en/details/dynamic-comps.md similarity index 62% rename from docs/_book/en/detailed/dynamic-comps.md rename to doc/en/details/dynamic-comps.md index 64e7bb4..90d3807 100644 --- a/docs/_book/en/detailed/dynamic-comps.md +++ b/doc/en/details/dynamic-comps.md @@ -1,22 +1,23 @@ # § Dynamic Components(`thComp / tdComp / nested component`) -> The following code is excerpted from the source [`lib/index.vue`](https://github.com/OneWayTech/vue2-datatable/blob/master/lib/index.vue) - ## ⊙ `thComp` +> Source: [`lib/MainTable/TableHeader.vue`](https://github.com/OneWayTech/vue2-datatable/blob/master/lib/MainTable/TableHeader.vue) + ```html - - component (thComp) --> + ``` | prop | Desc | Type | -|-----------|------------------------|--------------------| +|---|---|---| | column | Defination of column | Object | | field | Field name | String / undefined | | title | Displayed title | String / undefined | @@ -24,20 +25,22 @@ ## ⊙ `tdComp` +> Source: [`lib/MainTable/TableBody.vue`](https://github.com/OneWayTech/vue2-datatable/blob/master/lib/MainTable/TableBody.vue) + ```html - - component (tdComp) --> + ``` | prop | Desc | Type | -|-----------|------------------------|--------------------| +|---|---|---| | row | Current row | Object | | field | Field name | String / undefined | | value | Value | Any | @@ -46,6 +49,8 @@ ## ⊙ `nested component` +> Source: [`lib/MainTable/TableBody.vue`](https://github.com/OneWayTech/vue2-datatable/blob/master/lib/MainTable/TableBody.vue) + ```html ` | String | - | - | N | +| thStyle | Inline styles for `
` | Object | - | - | N | +| thComp | Name of dynamic component for `` | String | - | - | N | +| tdClass | Classes for `` | String | - | - | N | +| tdStyle | Inline styles for `` | Object | - | - | N | +| tdComp | Name of dynamic component for `` | String | - | - | N | diff --git a/doc/en/details/props-data.md b/doc/en/details/props-data.md new file mode 100644 index 0000000..6fd9def --- /dev/null +++ b/doc/en/details/props-data.md @@ -0,0 +1,91 @@ +# `:data` + +> In a more semantic way, it should be named `rows`. +> However, most of the popular Datatables prefer `data`, which should be complied with. + +Normally, it's not necessary to talk about this prop (it's too simple). +But this Datatable supports `nested components` feature by performing magic on it. + +It would be more direct to excerpt `watch:data` from the source code ([`lib/index.vue`](https://github.com/OneWayTech/vue2-datatable/blob/master/lib/index.vue)) to see how it works: + +```js +watch: { + data: { + handler (data) { + const { supportNested } = this + // support nested components feature with extra magic + if (supportNested) { + data.forEach(item => { + if (!item.__nested__) { + this.$set(item, '__nested__', { + comp: '', // name of the current nested component + visible: false, + $toggle (comp, visible) { + switch (arguments.length) { + case 0: + this.visible = !this.visible + break + case 1: + switch (typeof comp) { + case 'boolean': + this.visible = comp + break + case 'string': + this.comp = comp + this.visible = !this.visible + break + } + break + case 2: + this.comp = comp + this.visible = visible + break + } + } + }) + // omit the implementation of accordion... + Object.defineProperty(item, '__nested__', { enumerable: false }) + } + }) + } + }, + immediate: true + } +} +``` + +According to the above, an **unenumerable** property `__nested__` is `$set` in every item (row) of data (rows), which includes three properties: + +| Attr | Desc | Type | Optional values / usages | Default value | +|---|---|---|---|---| +| comp | Name of the current nested component | String | - | '' | +| visible | Is the nested component visible | Boolean | true / false | false | +| $toggle | A convenient API to control `comp` and `visible` | Function | `$toggle(comp)` / `$toggle(visible)` / `$toggle(comp, visible)` | - | + +In the source template, `__nested__` would be passed to the related `tdComp` and `nested components`: + +```html + + + + + + + +``` + +By doing all these, we can control the `nested component` by `props.nested.$toggle` within the corresponding dynamic components. +(Of cource, you can manipulate `props.row.__nested__` directly, which is the same thing but more verbose) + +> In the advanced example, component [`Opt`](https://github.com/OneWayTech/vue2-datatable/blob/master/examples/src/Advanced/comps/td-Opt.vue) makes a full use of `props.nested`, which is highly recommended to study and imitate. diff --git a/doc/en/details/props-query.md b/doc/en/details/props-query.md new file mode 100644 index 0000000..c4caa09 --- /dev/null +++ b/doc/en/details/props-query.md @@ -0,0 +1,90 @@ +# `:query` + +Let's see how this Datatable initializes `query` (source: `created` hook in [`lib/index.vue`](https://github.com/OneWayTech/vue2-datatable/blob/master/lib/index.vue)): + +```js +created () { + // init query (make all the properties observable by using `$set`) + const q = { limit: 10, offset: 0, sort: '', order: '', ...this.query } + Object.keys(q).forEach(key => { this.$set(this.query, key, q[key]) }) +} +``` + +> According to the above, `query` will change immediately. +> That's why `immediate: true` is not added in `watch:query` (but `deep: true` is required). + +Normally, you just have to pass an empty object `{}`. +If there are any other query conditions (such as `keyword`), you should: + 1. **Either:** initially passing `{ keyword: '' }` (recommended) + 2. **Or:** manually `this.$set(this.query, 'keyword', '')` with [`Vue.set / $vm.$set`](https://vuejs.org/v2/api/#Vue-set) + +> Both of the methods above are used in the advanced example. +> They both have the same purpose: make the extra query conditions [reactive](https://vuejs.org/v2/guide/reactivity.html)! +> (Method 2 can refer to `methods.search` in [`examples/src/Advanced/comps/th-Filter.vue`](https://github.com/OneWayTech/vue2-datatable/blob/master/examples/src/Advanced/comps/th-Filter.vue)) +> +> Tips: If you are using `Ajax - GET`, don't forget to use [`encodeURIComponent`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent) to escape some special values (such as URLs, etc) + +*** + +#### ⊙ Extention + +Now we have a very common scenario: remain the query conditions after the full page reload. +The most common solution is **synchronizing `query` with the URL query**. + +Here is an example: + +```html + + +``` + +> Q: when does `watch` need `deep: true`? +> A: generally speaking, only two cases included: +> +> 1. an object which is no a computed property +> 2. a nested array which you want to `watch` deeply +> (e.g. `[{ id: 1, name: 'Ken' }, { id: 2, name: 'Berkeley' }]`) +> +> For example, `$route.query` is an object, but it's also a computed property, so `deep: true` is unnecessary diff --git a/doc/en/details/props-selection.md b/doc/en/details/props-selection.md new file mode 100644 index 0000000..b1e264a --- /dev/null +++ b/doc/en/details/props-selection.md @@ -0,0 +1,30 @@ +# `:selection` + +Normally, you just have to pass an empty array `[]`. + +Select the first row in programmatic way: + +```js +this.selection = [ this.data[0] ] +``` + +If you want all the rows selected by default, no problem: + +```js +methods: { + handleQueryChange () { + mockData(this.query).then(({ rows, total, summary }) => { + this.data = rows + this.total = total + this.summary = summary + + this.$nextTick(() => { + this.selection = [...this.data] // that's it! + }) + }) + } +} +``` + +!> Attention: **DO NOT USE `this.selection = this.data`** for selecting all. +Since they share the same reference, any deselection would clear the whole `data`. diff --git a/doc/en/details/props-xprops.md b/doc/en/details/props-xprops.md new file mode 100644 index 0000000..7982604 --- /dev/null +++ b/doc/en/details/props-xprops.md @@ -0,0 +1,79 @@ +# `:xprops` + +`xprops`, means e**x**tra props. + +This Datatable implements `thComp / tdComp / nested component` features with [dynamic components](https://vuejs.org/v2/guide/components.html#Dynamic-Components). +However, various scenarios would be accompanied with various extra props. +As a result, the source template of our Datatable may evolve into: + +```html + + +``` + +For the sake of keeping the source template clean, `xprops` is introduced as the carrier. + +*** + +#### ⊙ Extention + +The most practical usage for `xprops` is carrying an exclusive [eventbus](https://vuejs.org/v2/guide/components.html#Non-Parent-Child-Communication) which only for the current Datatable instance. +Henceforth, no more namespace problems. + +Try with the basic example: + +```html +