Skip to content

Commit 7287e12

Browse files
sendyatangjinzhou
authored andcommitted
fix: column[align] should not override custom cell style #973 (#983)
1 parent 2ba8c2b commit 7287e12

File tree

3 files changed

+102
-16
lines changed

3 files changed

+102
-16
lines changed

components/table/__tests__/Table.test.js

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@ import Vue from 'vue';
55
const { Column, ColumnGroup } = Table;
66

77
describe('Table', () => {
8-
it('renders JSX correctly', done => {
9-
const data = [
10-
{
11-
key: '1',
12-
firstName: 'John',
13-
lastName: 'Brown',
14-
age: 32,
15-
},
16-
{
17-
key: '2',
18-
firstName: 'Jim',
19-
lastName: 'Green',
20-
age: 42,
21-
},
22-
];
8+
const data = [
9+
{
10+
key: '1',
11+
firstName: 'John',
12+
lastName: 'Brown',
13+
age: 32,
14+
},
15+
{
16+
key: '2',
17+
firstName: 'Jim',
18+
lastName: 'Green',
19+
age: 42,
20+
},
21+
];
2322

23+
it('renders JSX correctly', done => {
2424
const wrapper = mount(
2525
{
2626
render() {
@@ -96,4 +96,34 @@ describe('Table', () => {
9696
done();
9797
});
9898
});
99+
100+
it('align column should not override cell style', () => {
101+
const columns = [
102+
{ title: 'Name', dataIndex: 'name', key: 'name' },
103+
{
104+
title: 'Age',
105+
dataIndex: 'age',
106+
key: 'age',
107+
align: 'center',
108+
customCell: (record, rowIndex) => {
109+
return {
110+
style: {
111+
color: 'red',
112+
},
113+
};
114+
},
115+
},
116+
];
117+
const wrapper = mount(Table, {
118+
propsData: {
119+
columns,
120+
dataSource: data,
121+
},
122+
sync: false,
123+
});
124+
Vue.nextTick(() => {
125+
expect(wrapper.html()).toMatchSnapshot();
126+
done();
127+
});
128+
});
99129
});

components/table/__tests__/__snapshots__/Table.test.js.snap

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,61 @@
11
// Jest Snapshot v1, https://goo.gl/fbAQLP
22

3+
exports[`Table align column should not override cell style 1`] = `
4+
<div class="ant-table-wrapper">
5+
<div class="ant-spin-nested-loading">
6+
<div class="ant-spin-container">
7+
<div class="ant-table ant-table-scroll-position-left ant-table-default">
8+
<div class="ant-table-content">
9+
<!---->
10+
<div class="ant-table-body">
11+
<table class="">
12+
<colgroup>
13+
<col>
14+
<col>
15+
</colgroup>
16+
<thead class="ant-table-thead">
17+
<tr>
18+
<th key="name" class="">
19+
<div>Name</div>
20+
</th>
21+
<th key="age" class="ant-table-align-center" style="text-align: center;">
22+
<div>Age</div>
23+
</th>
24+
</tr>
25+
</thead>
26+
<tbody class="ant-table-tbody">
27+
<tr class="ant-table-row ant-table-row-level-0" data-row-key="1">
28+
<td><span class="ant-table-row-indent indent-level-0" style="padding-left: 0px;"></span>
29+
<!---->
30+
</td>
31+
<td style="color: red; text-align: center;">32</td>
32+
</tr>
33+
<tr class="ant-table-row ant-table-row-level-0" data-row-key="2">
34+
<td><span class="ant-table-row-indent indent-level-0" style="padding-left: 0px;"></span>
35+
<!---->
36+
</td>
37+
<td style="color: red; text-align: center;">42</td>
38+
</tr>
39+
</tbody>
40+
</table>
41+
</div>
42+
</div>
43+
</div>
44+
<ul unselectable="unselectable" class="ant-pagination ant-table-pagination">
45+
<li title="Previous Page" aria-disabled="true" class="ant-pagination-disabled ant-pagination-prev"><a class="ant-pagination-item-link"><i class="anticon anticon-left"><svg viewBox="64 64 896 896" data-icon="left" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class="">
46+
<path d="M724 218.3V141c0-6.7-7.7-10.4-12.9-6.3L260.3 486.8a31.86 31.86 0 0 0 0 50.3l450.8 352.1c5.3 4.1 12.9.4 12.9-6.3v-77.3c0-4.9-2.3-9.6-6.1-12.6l-360-281 360-281.1c3.8-3 6.1-7.7 6.1-12.6z"></path>
47+
</svg></i></a></li>
48+
<li title="1" tabindex="0" class="ant-pagination-item ant-pagination-item-1 ant-pagination-item-active"><a>1</a></li>
49+
<li title="Next Page" aria-disabled="true" class="ant-pagination-disabled ant-pagination-next"><a class="ant-pagination-item-link"><i class="anticon anticon-right"><svg viewBox="64 64 896 896" data-icon="right" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false" class="">
50+
<path d="M765.7 486.8L314.9 134.7A7.97 7.97 0 0 0 302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 0 0 0-50.4z"></path>
51+
</svg></i></a></li>
52+
<!---->
53+
</ul>
54+
</div>
55+
</div>
56+
</div>
57+
`;
58+
359
exports[`Table renders JSX correctly 1`] = `
460
<div class="ant-table-wrapper">
561
<div class="ant-spin-nested-loading">

components/vc-table/src/TableCell.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ export default {
9797
return null;
9898
}
9999
if (column.align) {
100-
tdProps.style = { textAlign: column.align };
100+
tdProps.style = { ...tdProps.style, textAlign: column.align };
101101
}
102102

103103
return (

0 commit comments

Comments
 (0)