diff --git a/package.json b/package.json index 9151625..019c849 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iview", - "version": "0.9.9-rc-4", + "version": "0.9.9-rc-5", "title": "iView", "description": "A high quality UI components Library with Vue.js", "homepage": "http://www.iviewui.com", @@ -19,7 +19,7 @@ "src" ], "scripts": { - "dev": "webpack-dev-server --content-base test/ --open --inline --hot --compress --history-api-fallback --port 8081 --config build/webpack.dev.config.js", + "dev": "webpack-dev-server --content-base test/ --open --inline --host 172.30.116.62 --hot --compress --history-api-fallback --port 8081 --config build/webpack.dev.config.js", "dist:style": "gulp --gulpfile build/build-style.js", "dist:dev": "webpack --config build/webpack.dist.dev.config.js", "dist:prod": "webpack --config build/webpack.dist.prod.config.js", diff --git a/src/components/table/table-head.vue b/src/components/table/table-head.vue index 9b60344..60039ee 100644 --- a/src/components/table/table-head.vue +++ b/src/components/table/table-head.vue @@ -36,10 +36,10 @@ <div slot="content" :class="[prefixCls + '-filter-list']" v-else> <ul :class="[prefixCls + '-filter-list-single']"> <li - :class="[prefixCls + '-filter-select-item', {[prefixCls + '-filter-select-item-selected']: !column._filterChecked.length}]" + :class="itemAllClasses(column)" @click="handleReset($index)">全部</li> <li - :class="[prefixCls + '-filter-select-item', {[prefixCls + '-filter-select-item-selected']: column._filterChecked[0] === item.value}]" + :class="itemClasses(column, item)" v-for="item in column.filters" @click="handleSelect(index, item.value)">{{ item.label }}</li> </ul> @@ -98,6 +98,22 @@ } ] }, + itemClasses (column, item) { + return [ + `${this.prefixCls}-filter-select-item`, + { + [`${this.prefixCls}-filter-select-item-selected`]: column._filterChecked[0] === item.value + } + ] + }, + itemAllClasses (column) { + return [ + `${this.prefixCls}-filter-select-item`, + { + [`${this.prefixCls}-filter-select-item-selected`]: !column._filterChecked.length + } + ] + }, renderHeader (column, $index) { if ('renderHeader' in this.columns[$index]) { return this.columns[$index].renderHeader(column, $index); diff --git a/src/components/table/table.vue b/src/components/table/table.vue index 480ee8a..f9db9a4 100644 --- a/src/components/table/table.vue +++ b/src/components/table/table.vue @@ -368,7 +368,11 @@ if (this.cloneColumns[index].sortMethod) { return this.cloneColumns[index].sortMethod(a, b); } else { - return type === 'asc' ? a[key] > b[key] : a[key] < b[key]; + if (type === 'asc') { + return a[key] > b[key] ? 1 : -1; + } else if (type === 'desc') { + return a[key] < b[key] ? 1 : -1; + } } }); return data; diff --git a/test/routers/table.vue b/test/routers/table.vue index 09355af..b35f023 100644 --- a/test/routers/table.vue +++ b/test/routers/table.vue @@ -1,65 +1,90 @@ <template> - <Card> - <i-table :content="self" border :columns="columns7" :data="data6"></i-table> - </Card> + <i-table border :columns="columns6" :data="data5"></i-table> </template> <script> export default { data () { return { - self: this, - columns7: [ + columns6: [ + { + title: '日期', + key: 'date' + }, { title: '姓名', - key: 'name', - render (row, column, index) { - return `<strong>${row.name}</strong>`; - } + key: 'name' }, { title: '年龄', - key: 'age' + key: 'age', + filters: [ + { + label: '大于25岁', + value: 1 + }, + { + label: '小于25岁', + value: 2 + } + ], + filterMultiple: false, + filterMethod (value, row) { + if (value === 1) { + return row.age > 25; + } else if (value === 2) { + return row.age < 25; + } + } }, { title: '地址', - key: 'address' - }, - { - title: '操作', - key: 'action', - render (row, column, index) { - return `<i-button type="primary" size="small" @click="show(${index})">查看</i-button> <i-button type="error" size="small" @click="remove(${index})">删除</i-button>`; + key: 'address', + filters: [ + { + label: '北京', + value: '北京' + }, + { + label: '上海', + value: '上海' + }, + { + label: '深圳', + value: '深圳' + } + ], + filterMethod (value, row) { + return row.address.indexOf(value) > -1; } } ], - data6: [ + data5: [ { name: '王小明', age: 18, - address: '北京市朝阳区芍药居' + address: '北京市朝阳区芍药居', + date: '2016-10-03' }, { name: '张小刚', age: 25, - address: '北京市海淀区西二旗' + address: '北京市海淀区西二旗', + date: '2016-10-01' }, { name: '李小红', age: 30, - address: '上海市浦东新区世纪大道' + address: '上海市浦东新区世纪大道', + date: '2016-10-02' }, { name: '周小伟', age: 26, - address: '深圳市南山区深南大道' + address: '深圳市南山区深南大道', + date: '2016-10-04' } ] } - }, - methods: { - remove (index) { - this.data6.splice(index, 1); - } } } </script> -- libgit2 0.21.4