qingwei.li 8 лет назад
Родитель
Сommit
691a49fc17

+ 1 - 1
examples/docs/zh-cn/table.md

@@ -945,4 +945,4 @@
 | filters | 数据过滤的选项,数组格式,数组中的元素需要有 text 和 value 属性。 | Array[{ text, value }] | — | — |
 | filter-multiple | 数据过滤的选项是否多选 | Boolean | — | true |
 | filter-method | 数据过滤使用的方法,如果是多选的筛选项,对每一条数据会执行多次,任意一次返回 true 就会显示。 | Function(value, row) | — | — |
-| filteredValue | 选中的数据过滤项,如果需要自定义表头过滤的渲染方式,可能会需要此属性。 | Array | — | — |
+| filtered-value | 选中的数据过滤项,如果需要自定义表头过滤的渲染方式,可能会需要此属性。 | Array | — | — |

+ 0 - 9
packages/table/src/table-column.js

@@ -49,15 +49,6 @@ const forced = {
     },
     sortable: false
   }
-  // filter: {
-  //   headerTemplate: function(h) {
-  //     return '#';
-  //   },
-  //   template: function(h, { row, column }) {
-  //     return <el-tag type="primary" style="height: 16px; line-height: 16px; min-width: 40px; text-align: center">{ row[column.property] }</el-tag>;
-  //   },
-  //   resizable: false
-  // }
 };
 
 const getDefaultColumn = function(type, options) {

+ 1 - 1
test/unit/index.js

@@ -4,7 +4,7 @@ Function.prototype.bind = require('function-bind');
 require('packages/theme-default/src/index.css');
 
 // require all test files (files that ends with .spec.js)
-const testsContext = require.context('./specs', true, /\.spec$/);
+const testsContext = require.context('./specs', true, /table\.spec$/);
 testsContext.keys().forEach(testsContext);
 
 // require all src files except main.js for coverage.

+ 45 - 2
test/unit/specs/table.spec.js

@@ -420,7 +420,6 @@ describe('Table', () => {
       }, DELAY);
     });
 
-    // TODO
     it('resizable', done => {
       const vm = createTable(
         'resizable',
@@ -712,15 +711,59 @@ describe('Table', () => {
     });
 
     describe('sortable', () => {
-      const vm = createTable('', '', '', 'sortable');
 
       it('render', done => {
+        const vm = createTable('', '', '', 'sortable');
         setTimeout(_ => {
           expect(vm.$el.querySelectorAll('.caret-wrapper')).to.length(1);
           destroyVM(vm);
           done();
         }, DELAY);
       });
+
+      it('sortable method', done => {
+        const vm = createTable(
+          'sortable :sort-method="sortMethod"', '', '', '', {
+            methods: {
+              sortMethod(a, b) {
+                return a.runtime < b.runtime;
+              }
+            }
+          });
+
+        setTimeout(_ => {
+          const elm = vm.$el.querySelector('.caret-wrapper');
+
+          elm.click();
+          setTimeout(_ => {
+            const lastCells = vm.$el.querySelectorAll('.el-table__body-wrapper tbody tr td:last-child');
+            expect(toArray(lastCells).map(node => node.textContent)).to.eql(['100', '95', '92', '92', '80']);
+            destroyVM(vm);
+            done();
+          }, DELAY);
+        }, DELAY);
+      });
+
+      it('sort-change', done => {
+        let result;
+        const vm = createTable('sortable="custom"', '', '', '', {
+          methods: {
+            sortChange(...args) {
+              result = args;
+            }
+          }
+        }, '@sort-change="sortChange"');
+        setTimeout(_ => {
+          const elm = vm.$el.querySelector('.caret-wrapper');
+
+          elm.click();
+          setTimeout(_ => {
+            expect(result).to.exist;
+            destroyVM(vm);
+            done();
+          }, DELAY);
+        }, DELAY);
+      });
     });
 
     describe('click sortable column', () => {