|
@@ -1773,9 +1773,10 @@ describe('Table', () => {
|
|
|
<el-table-column prop="runtime" label="时长(分)" />
|
|
|
</el-table>
|
|
|
`,
|
|
|
-
|
|
|
- created() {
|
|
|
- this.testData = getTestData();
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ testData: getTestData()
|
|
|
+ };
|
|
|
}
|
|
|
}, true);
|
|
|
setTimeout(_ => {
|
|
@@ -1835,4 +1836,80 @@ describe('Table', () => {
|
|
|
}, DELAY);
|
|
|
}, DELAY);
|
|
|
});
|
|
|
+
|
|
|
+ it('keep highlight row when data change', done => {
|
|
|
+ const vm = createVue({
|
|
|
+ template: `
|
|
|
+ <el-table :data="testData" highlight-current-row row-key="release">
|
|
|
+ <el-table-column prop="name" label="片名" />
|
|
|
+ <el-table-column prop="release" label="发行日期" />
|
|
|
+ <el-table-column prop="director" label="导演" />
|
|
|
+ <el-table-column prop="runtime" label="时长(分)" sortable />
|
|
|
+ </el-table>
|
|
|
+ `,
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ testData: getTestData()
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }, true);
|
|
|
+ setTimeout(() => {
|
|
|
+ let rows = vm.$el.querySelectorAll('.el-table__body-wrapper tbody tr');
|
|
|
+ triggerEvent(rows[2], 'click', true, false);
|
|
|
+ setTimeout(() => {
|
|
|
+ expect(rows[2].classList.contains('current-row')).to.be.true;
|
|
|
+ const data = getTestData();
|
|
|
+ data.splice(0, 0, {
|
|
|
+ id: 8,
|
|
|
+ name: 'Monsters, Inc.',
|
|
|
+ release: '2018-02-01',
|
|
|
+ director: 'Peter Docter',
|
|
|
+ runtime: 92
|
|
|
+ });
|
|
|
+ data[2].name = 'Modified Name';
|
|
|
+ vm.testData = data;
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ rows = vm.$el.querySelectorAll('.el-table__body-wrapper tbody tr');
|
|
|
+ expect(rows[3].classList.contains('current-row')).to.be.true;
|
|
|
+ destroyVM(vm);
|
|
|
+ done();
|
|
|
+ }, DELAY);
|
|
|
+ }, DELAY);
|
|
|
+ }, DELAY);
|
|
|
+ });
|
|
|
+
|
|
|
+ it('keep highlight row after sort', done => {
|
|
|
+ const vm = createVue({
|
|
|
+ template: `
|
|
|
+ <el-table :data="testData" highlight-current-row row-key="release">
|
|
|
+ <el-table-column prop="name" label="片名" />
|
|
|
+ <el-table-column prop="release" label="发行日期" />
|
|
|
+ <el-table-column prop="director" label="导演" />
|
|
|
+ <el-table-column prop="runtime" label="时长(分)" sortable />
|
|
|
+ </el-table>
|
|
|
+ `,
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ testData: getTestData()
|
|
|
+ };
|
|
|
+ }
|
|
|
+ }, true);
|
|
|
+ setTimeout(() => {
|
|
|
+ let rows = vm.$el.querySelectorAll('.el-table__body-wrapper tbody tr');
|
|
|
+ triggerEvent(rows[1], 'click', true, false);
|
|
|
+ setTimeout(() => {
|
|
|
+ expect(rows[1].classList.contains('current-row')).to.be.true;
|
|
|
+ const cells = vm.$el.querySelectorAll('.el-table__header-wrapper thead th > .cell');
|
|
|
+ triggerEvent(cells[3], 'click', true, false);
|
|
|
+
|
|
|
+ setTimeout(() => {
|
|
|
+ rows = vm.$el.querySelectorAll('.el-table__body-wrapper tbody tr');
|
|
|
+ expect(rows[3].classList.contains('current-row')).to.be.true;
|
|
|
+ destroyVM(vm);
|
|
|
+ done();
|
|
|
+ }, DELAY);
|
|
|
+ }, DELAY);
|
|
|
+ }, DELAY);
|
|
|
+ });
|
|
|
});
|