Pārlūkot izejas kodu

Table: fix header-align bug

kingwl 8 gadi atpakaļ
vecāks
revīzija
3e3001a8dc
2 mainītis faili ar 23 papildinājumiem un 10 dzēšanām
  1. 5 1
      packages/table/src/table-column.js
  2. 18 9
      test/unit/specs/table.spec.js

+ 5 - 1
packages/table/src/table-column.js

@@ -335,12 +335,16 @@ export default {
     align(newVal) {
       if (this.columnConfig) {
         this.columnConfig.align = newVal ? 'is-' + newVal : null;
+
+        if (!this.headerAlign) {
+          this.columnConfig.headerAlign = newVal ? 'is-' + newVal : null;
+        }
       }
     },
 
     headerAlign(newVal) {
       if (this.columnConfig) {
-        this.columnConfig.headerAlign = newVal ? 'is-' + newVal : this.align;
+        this.columnConfig.headerAlign = 'is-' + (newVal ? newVal : this.align);
       }
     },
 

+ 18 - 9
test/unit/specs/table.spec.js

@@ -1359,21 +1359,30 @@ describe('Table', () => {
         }
       }, true);
 
-      setTimeout(() => {
-        expect(vm.$el.querySelectorAll('.el-table__header th.is-left').length > 0).to.be.true;
-        expect(vm.$el.querySelectorAll('.el-table__header td.is-center').length === 0).to.be.true;
+      vm.$nextTick(() => {
+        expect(vm.$el.querySelectorAll('.el-table__header th.is-left').length).to.above(0);
+        expect(vm.$el.querySelectorAll('.el-table__header th.is-center').length).to.equal(0);
+        expect(vm.$el.querySelectorAll('.el-table__header th.is-right').length).to.equal(0);
         vm.align = 'right';
         vm.$nextTick(() => {
-          expect(vm.$el.querySelectorAll('.el-table__header th.is-right').length > 0).to.be.true;
-          expect(vm.$el.querySelectorAll('.el-table__header td.is-center').length === 0).to.be.true;
+          expect(vm.$el.querySelectorAll('.el-table__header th.is-left').length).to.equal(0);
+          expect(vm.$el.querySelectorAll('.el-table__header th.is-center').length).to.equal(0);
+          expect(vm.$el.querySelectorAll('.el-table__header th.is-right').length).to.above(0);
           vm.headerAlign = 'center';
           vm.$nextTick(() => {
-            expect(vm.$el.querySelectorAll('.el-table__header th.is-right').length === 0).to.be.true;
-            expect(vm.$el.querySelectorAll('.el-table__header td.is-center').length > 0).to.be.true;
+            expect(vm.$el.querySelectorAll('.el-table__header th.is-left').length).to.equal(0);
+            expect(vm.$el.querySelectorAll('.el-table__header th.is-center').length).to.above(0);
+            expect(vm.$el.querySelectorAll('.el-table__header th.is-right').length).to.equal(0);
+            vm.headerAlign = null;
+            vm.$nextTick(() => {
+              expect(vm.$el.querySelectorAll('.el-table__header th.is-left').length).to.equal(0);
+              expect(vm.$el.querySelectorAll('.el-table__header th.is-center').length).to.equal(0);
+              expect(vm.$el.querySelectorAll('.el-table__header th.is-right').length).to.above(0);
+              done();
+            });
           });
         });
-        done();
-      }, DELAY);
+      });
     });
 
     it('width', (done) => {