|
2 | 2 |
|
3 | 3 | > vue2.0 DataTables, based on element-ui, el-table + el-pagination + custom filter and sort
|
4 | 4 |
|
| 5 | +<p align="center"><a href="" target="_blank"><img width="100"src="https://njleonzhang.github.io/vue-data-tables/_media/logo.png"></a></p> |
5 | 6 |
|
6 |
| - |
7 |
| - |
8 |
| -## Online demo |
9 |
| -* [Demo](https://njleonzhang.github.io/vue-data-tables/) |
10 |
| - |
11 |
| -* [Demo Code](https://github.com/njleonzhang/vue-data-tables/tree/master/example/docs) |
12 |
| - |
13 |
| - |
14 |
| -## Install ElementUI and vue-data-tables |
15 |
| -`npm install element-ui` |
16 |
| - |
17 |
| -`npm install vue-data-tables` |
18 |
| - |
19 |
| -## Usage |
20 |
| -1. import to your project as plugin. |
21 |
| - |
22 |
| - ```js |
23 |
| - import ElementUI from 'element-ui' |
24 |
| - import 'element-ui/lib/theme-default/index.css' |
25 |
| - import DataTables from 'vue-data-tables' |
26 |
| - |
27 |
| - Vue.use(ElementUI) |
28 |
| - Vue.use(DataTables) |
29 |
| - ``` |
30 |
| - |
31 |
| - If you don't want import the whole `element-ui`, you can just load corresponding components refer to `On demand` section of [element-ui doc](http://element.eleme.io/#/en-US/component/quickstart) |
32 |
| -
|
33 |
| - This lib depends on the following components: |
34 |
| - - el-table |
35 |
| - - el-table-column |
36 |
| - - el-row |
37 |
| - - el-col |
38 |
| - - el-input |
39 |
| - - el-button |
40 |
| - - el-pagination |
41 |
| - - el-checkbox |
42 |
| - - el-checkbox-group |
43 |
| -
|
44 |
| -
|
45 |
| -2. use in your project. |
46 |
| -
|
47 |
| - ```html |
48 |
| - <template> |
49 |
| - <data-tables |
50 |
| - :data='tableData', |
51 |
| - :tool-bar-def='toolBarDef', |
52 |
| - :row-action-def='rowActionsDef', |
53 |
| - @row-click='rowClick'> |
54 |
| - <el-table-column prop="flow_no" |
55 |
| - label="服务编号" |
56 |
| - sortable="custom"> |
57 |
| - </el-table-column> |
58 |
| - <el-table-column |
59 |
| - prop="flow_no" |
60 |
| - label="服务编号" |
61 |
| - sortable="custom"> |
62 |
| - </el-table-column> |
63 |
| - </data-tables> |
64 |
| - </template> |
65 |
| - ``` |
66 |
| -
|
67 |
| -## Attributes |
68 |
| -<table> |
69 |
| - <tr> |
70 |
| - <th>Property</th> |
71 |
| - <th>Layer1 sub proptery</th> |
72 |
| - <th>Layer2 sub proptery</th> |
73 |
| - <th>Desc</th> |
74 |
| - <th>Type</th> |
75 |
| - <th>Default values</th> |
76 |
| - </tr> |
77 |
| - <tr> |
78 |
| - <td>data</td> |
79 |
| - <td></td> |
80 |
| - <td></td> |
81 |
| - <td>The data array which will be render in the table.</td> |
82 |
| - <td>Array</td> |
83 |
| - <td>-</td> |
84 |
| - </tr> |
85 |
| - <tr> |
86 |
| - <td>tableProps</td> |
87 |
| - <td></td> |
88 |
| - <td></td> |
89 |
| - <td>An object to properties to el-table. refer to <a href="http://element.eleme.io/#/en-US/component/table#table-attributes">el-table proptery</a></td> |
90 |
| - <td>Object</td> |
91 |
| - <td>-</td> |
92 |
| - </tr> |
93 |
| - <tr> |
94 |
| - <td>col-not-row-click</td> |
95 |
| - <td></td> |
96 |
| - <td></td> |
97 |
| - <td>indicated column[s] which can not trigger row click</td> |
98 |
| - <td>String | Array</td> |
99 |
| - <td>the action column</td> |
100 |
| - </tr> |
101 |
| - <tr> |
102 |
| - <td>actions-def</td> |
103 |
| - <td></td> |
104 |
| - <td></td> |
105 |
| - <td>Define the actions, which belongs to table.</td> |
106 |
| - <td>Object</td> |
107 |
| - <td>-</td> |
108 |
| - </tr> |
109 |
| - <tr> |
110 |
| - <td rowspan="6"></td> |
111 |
| - <td>colProps</td> |
112 |
| - <td></td> |
113 |
| - <td>Actions bar, checkbox and searchbox are in a <b>el-row</b> as <b>el-col</b>s. |
114 |
| - An object to properties to el-col. refer to <a href="http://element.eleme.io/#/en-US/component/layout#col-attributes">el-col proptery</a> |
115 |
| - </td> |
116 |
| - <td>Object</td> |
117 |
| - <td>-</td> |
118 |
| - </tr> |
119 |
| - <tr> |
120 |
| - <td>def</td> |
121 |
| - <td></td> |
122 |
| - <td>Define the actions</td> |
123 |
| - <td>Array</td> |
124 |
| - <td>[]</td> |
125 |
| - </tr> |
126 |
| - <tr> |
127 |
| - <td rowspan="4"></td> |
128 |
| - <td>name</td> |
129 |
| - <td>the ation button label text</td> |
130 |
| - <td>String</td> |
131 |
| - <td>-</td> |
132 |
| - </tr> |
133 |
| - <tr> |
134 |
| - <td>icon</td> |
135 |
| - <td>icon of the button</td> |
136 |
| - <td>String</td> |
137 |
| - <td>-</td> |
138 |
| - </tr> |
139 |
| - <tr> |
140 |
| - <td>buttonProps</td> |
141 |
| - <td>An object to properties to el-button. refer to <a href="http://element.eleme.io/#/en-US/component/button#attributes">el-button proptery</a></td> |
142 |
| - <td>Object</td> |
143 |
| - <td>-</td> |
144 |
| - </tr> |
145 |
| - <tr> |
146 |
| - <td>handler</td> |
147 |
| - <td>handler of the click</td> |
148 |
| - <td>Function</td> |
149 |
| - <td>-</td> |
150 |
| - </tr> |
151 |
| - <tr> |
152 |
| - <td>checkbox-filter-def</td> |
153 |
| - <td></td> |
154 |
| - <td></td> |
155 |
| - <td>Define the checkbox filter</td> |
156 |
| - <td>Object</td> |
157 |
| - <td>-</td> |
158 |
| - </tr> |
159 |
| - <tr> |
160 |
| - <td rowspan="6"></td> |
161 |
| - <td>colProps</td> |
162 |
| - <td></td> |
163 |
| - <td>Actions bar, checkbox and searchbox are in a <b>el-row</b> as <b>el-col</b>s |
164 |
| - An object to properties to el-col. refer to <a href="http://element.eleme.io/#/en-US/component/layout#col-attributes">el-col proptery</a> |
165 |
| - </td> |
166 |
| - <td>Object</td> |
167 |
| - <td>-</td> |
168 |
| - </tr> |
169 |
| - <tr> |
170 |
| - <td>props</td> |
171 |
| - <td></td> |
172 |
| - <td>Indicate proptery[s] in the data which will be used to filter data by checkbox filter.</td> |
173 |
| - <td>String | Array</td> |
174 |
| - <td>[]</td> |
175 |
| - </tr> |
176 |
| - <tr> |
177 |
| - <td>filterFunction</td> |
178 |
| - <td></td> |
179 |
| - <td>customize filter function</td> |
180 |
| - <td>Function</td> |
181 |
| - <td>-</td> |
182 |
| - </tr> |
183 |
| - <tr> |
184 |
| - <td>def</td> |
185 |
| - <td></td> |
186 |
| - <td>grid offset of checkbox</td> |
187 |
| - <td>Array</td> |
188 |
| - <td>[]</td> |
189 |
| - </tr> |
190 |
| - <tr> |
191 |
| - <td rowspan="2"></td> |
192 |
| - <td>name</td> |
193 |
| - <td>the checkbox label text</td> |
194 |
| - <td>String</td> |
195 |
| - <td>-</td> |
196 |
| - </tr> |
197 |
| - <tr> |
198 |
| - <td>code</td> |
199 |
| - <td>the value of this checkbox stands for</td> |
200 |
| - <td>String</td> |
201 |
| - <td>-</td> |
202 |
| - </tr> |
203 |
| - <tr> |
204 |
| - <td>search-def</td> |
205 |
| - <td></td> |
206 |
| - <td></td> |
207 |
| - <td>Define the search box</td> |
208 |
| - <td>Object</td> |
209 |
| - <td>-</td> |
210 |
| - </tr> |
211 |
| - <tr> |
212 |
| - <td rowspan="5"></td> |
213 |
| - <td>show</td> |
214 |
| - <td></td> |
215 |
| - <td>show or hide search box</td> |
216 |
| - <td>Boolean</td> |
217 |
| - <td>true</td> |
218 |
| - </tr> |
219 |
| - <tr> |
220 |
| - <td>colProps</td> |
221 |
| - <td></td> |
222 |
| - <td>Actions bar, checkbox and searchbox are in a <b>el-row</b> as <b>el-col</b>s |
223 |
| - An object to properties to el-col. refer to <a href="http://element.eleme.io/#/en-US/component/layout#col-attributes">el-col proptery</a> |
224 |
| - </td> |
225 |
| - <td>Object</td> |
226 |
| - <td>-</td> |
227 |
| - </tr> |
228 |
| - <tr> |
229 |
| - <td>props</td> |
230 |
| - <td></td> |
231 |
| - <td>indicate proptery[s] in the data which will be used to filter data by search box.</td> |
232 |
| - <td>Array | String</td> |
233 |
| - <td>All</td> |
234 |
| - </tr> |
235 |
| - <tr> |
236 |
| - <td>filterFunction</td> |
237 |
| - <td></td> |
238 |
| - <td>customize filter function</td> |
239 |
| - <td>Function</td> |
240 |
| - <td>-</td> |
241 |
| - </tr> |
242 |
| - <tr> |
243 |
| - <td>inputProps</td> |
244 |
| - <td></td> |
245 |
| - <td>An object to properties to el-input. refer to <a href="http://element.eleme.io/#/en-US/component/input#input-attributes">el-input proptery</a></td> |
246 |
| - <td>Object</td> |
247 |
| - <td>-</td> |
248 |
| - </tr> |
249 |
| - <tr> |
250 |
| - <td rowspan="8">actionColDef</td> |
251 |
| - <td></td> |
252 |
| - <td></td> |
253 |
| - <td>Define action column</td> |
254 |
| - <td>Object</td> |
255 |
| - <td>-</td> |
256 |
| - </tr> |
257 |
| - <tr> |
258 |
| - <td>show</td> |
259 |
| - <td></td> |
260 |
| - <td>Determine wether show action column</td> |
261 |
| - <td>Boolean</td> |
262 |
| - <td>true</td> |
263 |
| - </tr> |
264 |
| - <tr> |
265 |
| - <td>tableColProps</td> |
266 |
| - <td></td> |
267 |
| - <td>An object to pass properties to el-table-column. refer to <a href="http://element.eleme.io/#/en-US/component/table#table-column-attributes">el-button proptery</a></td> |
268 |
| - <td>Object</td> |
269 |
| - <td>- </td> |
270 |
| - </tr> |
271 |
| - <tr> |
272 |
| - <td rowspan="5">def</td> |
273 |
| - <td></td> |
274 |
| - <td>Define the actions, which belongs to row</td> |
275 |
| - <td>Array</td> |
276 |
| - <td>[]</td> |
277 |
| - </tr> |
278 |
| - <tr> |
279 |
| - <td>name</td> |
280 |
| - <td>the row action button text</td> |
281 |
| - <td>String</td> |
282 |
| - <td>-</td> |
283 |
| - </tr> |
284 |
| - <tr> |
285 |
| - <td>type</td> |
286 |
| - <td>type of the button</td> |
287 |
| - <td>String</td> |
288 |
| - <td>text</td> |
289 |
| - </tr> |
290 |
| - <tr> |
291 |
| - <td>buttonProps</td> |
292 |
| - <td>An object to properties to el-button. refer to <a href="http://element.eleme.io/#/en-US/component/button#attributes">el-button proptery</a></td> |
293 |
| - <td>Object</td> |
294 |
| - <td>-</td> |
295 |
| - </tr> |
296 |
| - <tr> |
297 |
| - <td>handler</td> |
298 |
| - <td>handler of the click</td> |
299 |
| - <td>Function</td> |
300 |
| - <td>-</td> |
301 |
| - </tr> |
302 |
| - <tr> |
303 |
| - <td>pagination-def</td> |
304 |
| - <td></td> |
305 |
| - <td></td> |
306 |
| - <td> |
307 |
| - define pagination. |
308 |
| - refer to <a href="http://element.eleme.io/#/en-US/component/pagination#attributes">el-pagination proptery</a> |
309 |
| - </td> |
310 |
| - <td>Object</td> |
311 |
| - <td>-</td> |
312 |
| - </tr> |
313 |
| - <tr> |
314 |
| - <td rowspan="4"></td> |
315 |
| - <td>layout</td> |
316 |
| - <td></td> |
317 |
| - <td></td> |
318 |
| - <td>String</td> |
319 |
| - <td>[prev, pager, next, jumper, sizes, total]</td> |
320 |
| - </tr> |
321 |
| - <tr> |
322 |
| - <td>pageSize</td> |
323 |
| - <td></td> |
324 |
| - <td></td> |
325 |
| - <td>Number</td> |
326 |
| - <td>20</td> |
327 |
| - </tr> |
328 |
| - <tr> |
329 |
| - <td>pageSizes</td> |
330 |
| - <td></td> |
331 |
| - <td></td> |
332 |
| - <td>Array</td> |
333 |
| - <td>[20, 50, 100]</td> |
334 |
| - </tr> |
335 |
| - <tr> |
336 |
| - <td>currentPage</td> |
337 |
| - <td></td> |
338 |
| - <td></td> |
339 |
| - <td>Number</td> |
340 |
| - <td>1</td> |
341 |
| - </tr> |
342 |
| -</table> |
343 |
| -
|
344 |
| -For details, check the [Demo](https://njleonzhang.github.io/vue-data-tables/) and [Demo Code](https://github.com/njleonzhang/vue-data-tables/tree/master/example/docs). |
345 |
| -
|
346 |
| -## Event |
347 |
| -| Event | Desc | params | |
348 |
| -| ---- | ---- | ---- | |
349 |
| -| row-click | Emit when row is clicked | row, event, column | |
350 |
| -| selection-change | Emit when selection is changed | currentRow, oldCurrentRow | |
351 |
| -| select | Emit when row is selected | selection | |
352 |
| -| select-all | Emit when select-all is clicked | selection | |
353 |
| -| filtered-data | Emit when filter condition changes | filteredData | |
354 |
| -
|
355 |
| -For details, check the [Demo](https://njleonzhang.github.io/vue-data-tables/) and [Demo Code](https://github.com/njleonzhang/vue-data-tables/tree/master/example/docs). |
| 7 | +## Documentation |
| 8 | +https://njleonzhang.github.io/vue-data-tables |
356 | 9 |
|
357 | 10 | ## Dev
|
358 |
| -
|
359 | 11 | ``` bash
|
360 | 12 | # install dependencies
|
361 |
| -npm install |
| 13 | +``` |
| 14 | +yarn install |
| 15 | +``` |
362 | 16 |
|
363 | 17 | # serve test/play with hot reload at localhost:8080
|
| 18 | +``` |
364 | 19 | npm run play
|
365 |
| -
|
366 |
| -# serve docs with hot reload at localhost:8080 |
367 |
| -npm run dev |
368 | 20 | ```
|
0 commit comments