neo-cmp-cli 1.12.7 → 1.12.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/template/antd-custom-cmp-template/package.json +1 -1
- package/template/develop//345/261/236/346/200/247/351/205/215/347/275/256/351/241/271/347/261/273/345/236/213/346/261/207/346/200/273.md +558 -0
- package/template/echarts-custom-cmp-template/package.json +1 -1
- package/template/empty-custom-cmp-template/package.json +1 -1
- package/template/neo-bi-cmps/package.json +1 -1
- package/template/neo-bi-cmps/src/components/targetNumber__c/model.ts +3 -3
- package/template/neo-custom-cmp-template/package.json +1 -1
- package/template/neo-h5-cmps/neo.config.js +34 -76
- package/template/neo-h5-cmps/package.json +7 -3
- package/template/neo-h5-cmps/src/components/entityList__c/index.tsx +0 -4
- package/template/neo-h5-cmps/src/components/entityList__c/model.ts +10 -5
- package/template/neo-h5-cmps/src/components/entityTabs__c/index.tsx +29 -17
- package/template/neo-h5-cmps/src/components/entityTabs__c/model.ts +25 -5
- package/template/neo-h5-cmps/src/components/entityTabs__c/style.scss +11 -22
- package/template/neo-h5-cmps/src/components/openChatPageBtn__c/index.tsx +3 -1
- package/template/neo-h5-cmps/src/utils/xobjects.ts +8 -3
- package/template/neo-h5-cmps/tsconfig.json +1 -1
- package/template/neo-order-cmps/package.json +1 -1
- package/template/react-custom-cmp-template/package.json +1 -1
- package/template/react-ts-custom-cmp-template/package.json +1 -1
- package/template/vue2-custom-cmp-template/package.json +1 -1
- package/template/neo-h5-cmps/src/components/simpleTable__c/README.md +0 -90
- package/template/neo-h5-cmps/src/components/simpleTable__c/index.tsx +0 -277
- package/template/neo-h5-cmps/src/components/simpleTable__c/model.ts +0 -91
- package/template/neo-h5-cmps/src/components/simpleTable__c/style.scss +0 -116
|
@@ -1,277 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file XObject 数据表格组件(简化版)
|
|
3
|
-
* @description 基于 Neo 平台的 XObject 实体对象数据表格组件,仅支持数据展示
|
|
4
|
-
*/
|
|
5
|
-
import * as React from 'react';
|
|
6
|
-
import { Table, Spin, Empty } from 'antd';
|
|
7
|
-
// @ts-ignore
|
|
8
|
-
import { xObject } from 'neo-open-api'; // Neo Open API
|
|
9
|
-
// @ts-ignore
|
|
10
|
-
import isEqual from 'lodash/isEqual';
|
|
11
|
-
|
|
12
|
-
// Neo Open API// 引入 neo-ui-common / BaseCmp
|
|
13
|
-
// @ts-ignore
|
|
14
|
-
import { BaseCmp } from 'neo-ui-common';
|
|
15
|
-
|
|
16
|
-
// 引入 neo-ui-common / NeoEvent
|
|
17
|
-
// @ts-ignore
|
|
18
|
-
import { NeoEvent } from 'neo-ui-common';
|
|
19
|
-
|
|
20
|
-
import './style.scss';
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* 组件属性接口
|
|
24
|
-
*/
|
|
25
|
-
interface SimpleTableProps {
|
|
26
|
-
/** XObject 实体对象的 API Key,用于标识要操作的数据对象 */
|
|
27
|
-
xObjectDataApi: {
|
|
28
|
-
xObjectApiKey: string;
|
|
29
|
-
fields: string[];
|
|
30
|
-
fieldDescList?: any[];
|
|
31
|
-
autoFetchData?: boolean;
|
|
32
|
-
};
|
|
33
|
-
/** Neo 平台传递的数据,包含系统信息等 */
|
|
34
|
-
data?: any;
|
|
35
|
-
entityData?: any; // Neo 平台自动获取的实体数据
|
|
36
|
-
/** 是否为自定义实体对象 */
|
|
37
|
-
custom?: boolean;
|
|
38
|
-
/** 组件类名 */
|
|
39
|
-
className?: string;
|
|
40
|
-
/** 表格标题,优先使用此配置 */
|
|
41
|
-
title?: string;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* 字段信息接口
|
|
46
|
-
*/
|
|
47
|
-
interface FieldInfo {
|
|
48
|
-
/** 字段名称 */
|
|
49
|
-
name: string;
|
|
50
|
-
/** 字段显示标签 */
|
|
51
|
-
label: string;
|
|
52
|
-
/** 字段 API Key */
|
|
53
|
-
apiKey: string;
|
|
54
|
-
/** 字段类型 */
|
|
55
|
-
type: string;
|
|
56
|
-
/** 字段项类型 */
|
|
57
|
-
itemType: string;
|
|
58
|
-
/** 复选框选项列表 */
|
|
59
|
-
checkitem: any[];
|
|
60
|
-
/** 下拉选择选项列表 */
|
|
61
|
-
selectitem?: any[];
|
|
62
|
-
/** 是否必填 */
|
|
63
|
-
required: boolean;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* 组件状态接口
|
|
68
|
-
*/
|
|
69
|
-
interface SimpleTableState {
|
|
70
|
-
/** 表格标题 */
|
|
71
|
-
title?: string;
|
|
72
|
-
fieldList: FieldInfo[];
|
|
73
|
-
/** 表格数据源 */
|
|
74
|
-
dataSource: any[];
|
|
75
|
-
/** 加载状态 */
|
|
76
|
-
loading: boolean;
|
|
77
|
-
/** 错误信息 */
|
|
78
|
-
error: string | null;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* XObject 数据表格组件(简化版)
|
|
83
|
-
* 仅支持数据展示,不支持增删改查操作
|
|
84
|
-
*/
|
|
85
|
-
export default class SimpleTable extends BaseCmp<
|
|
86
|
-
SimpleTableProps,
|
|
87
|
-
SimpleTableState
|
|
88
|
-
> {
|
|
89
|
-
constructor(props: SimpleTableProps) {
|
|
90
|
-
super(props);
|
|
91
|
-
|
|
92
|
-
// 初始化组件状态
|
|
93
|
-
this.state = {
|
|
94
|
-
fieldList: [],
|
|
95
|
-
dataSource: [],
|
|
96
|
-
loading: false,
|
|
97
|
-
error: null,
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
// 绑定方法上下文
|
|
101
|
-
this.loadData = this.loadData.bind(this);
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
componentDidMount() {
|
|
105
|
-
const { xObjectDataApi } = this.props;
|
|
106
|
-
const { xObjectApiKey } = xObjectDataApi || {};
|
|
107
|
-
|
|
108
|
-
if (xObjectApiKey) {
|
|
109
|
-
// 初始化字段列表、加载数据
|
|
110
|
-
this.loadFieldList();
|
|
111
|
-
this.loadData();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* 组件更新后执行
|
|
117
|
-
* 当 xObjectApiKey 发生变化时重新加载数据
|
|
118
|
-
*/
|
|
119
|
-
async componentDidUpdate(prevProps: SimpleTableProps) {
|
|
120
|
-
const { xObjectApiKey, fields } = this.props.xObjectDataApi || {};
|
|
121
|
-
const { xObjectApiKey: prevXObjectApiKey, fields: prevFields } =
|
|
122
|
-
prevProps.xObjectDataApi || {};
|
|
123
|
-
if (xObjectApiKey !== prevXObjectApiKey || !isEqual(fields, prevFields)) {
|
|
124
|
-
if (xObjectApiKey) {
|
|
125
|
-
// 先加载字段列表,等待完成后再加载数据,确保字段信息已更新
|
|
126
|
-
await this.loadFieldList();
|
|
127
|
-
this.loadData();
|
|
128
|
-
} else {
|
|
129
|
-
this.setState({
|
|
130
|
-
dataSource: [],
|
|
131
|
-
fieldList: [],
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* 加载字段列表
|
|
139
|
-
* 从 Neo 平台获取 XObject 的字段描述信息
|
|
140
|
-
*/
|
|
141
|
-
async loadFieldList() {
|
|
142
|
-
const { xObjectDataApi } = this.props || {};
|
|
143
|
-
|
|
144
|
-
// 方式一:直接从 props.xObjectDetailApi 中获取字段描述
|
|
145
|
-
if (xObjectDataApi && xObjectDataApi.fieldDescList) {
|
|
146
|
-
this.setState({ fieldList: xObjectDataApi.fieldDescList });
|
|
147
|
-
} else {
|
|
148
|
-
// 方式二:自行通过 OpenAPI SDK 获取字段描述
|
|
149
|
-
if (!xObjectDataApi.xObjectApiKey) return;
|
|
150
|
-
try {
|
|
151
|
-
const resultData = await xObject.getDesc(xObjectDataApi.xObjectApiKey);
|
|
152
|
-
if (resultData && resultData.status) {
|
|
153
|
-
const result = resultData.data || {};
|
|
154
|
-
const fieldList = result.fields || [];
|
|
155
|
-
this.setState({ fieldList, title: result.label });
|
|
156
|
-
}
|
|
157
|
-
} catch (error) {
|
|
158
|
-
console.error('获取字段列表失败:', error);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* 生成表格列配置
|
|
165
|
-
* @returns 表格列配置数组
|
|
166
|
-
*/
|
|
167
|
-
generateColumns() {
|
|
168
|
-
const { xObjectDataApi } = this.props;
|
|
169
|
-
const { fieldList } = this.state;
|
|
170
|
-
const { fields, fieldDescList } = xObjectDataApi || {};
|
|
171
|
-
let curFieldList =
|
|
172
|
-
fieldDescList && fieldDescList.length > 0 ? fieldDescList : fieldList;
|
|
173
|
-
|
|
174
|
-
if (fields && fields.length > 0) {
|
|
175
|
-
// 如果 fields 存在,则过滤掉 fieldList 中不存在的字段
|
|
176
|
-
curFieldList = curFieldList.filter((field) =>
|
|
177
|
-
fields.includes(field.apiKey),
|
|
178
|
-
);
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
// 根据字段列表生成基础列配置
|
|
182
|
-
const columns: any[] = curFieldList.map((field) => ({
|
|
183
|
-
title: field.label,
|
|
184
|
-
dataIndex: field.apiKey,
|
|
185
|
-
key: field.apiKey,
|
|
186
|
-
ellipsis: true,
|
|
187
|
-
}));
|
|
188
|
-
|
|
189
|
-
return columns;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
/**
|
|
193
|
-
* 加载表格数据
|
|
194
|
-
*/
|
|
195
|
-
@NeoEvent.function
|
|
196
|
-
async loadData() {
|
|
197
|
-
const { xObjectApiKey } = this.props.xObjectDataApi || {};
|
|
198
|
-
if (!xObjectApiKey) return;
|
|
199
|
-
|
|
200
|
-
this.setState({ loading: true, error: null });
|
|
201
|
-
|
|
202
|
-
try {
|
|
203
|
-
// 获取所有字段的 API Key
|
|
204
|
-
const result = await xObject.query(this.props.xObjectDataApi);
|
|
205
|
-
|
|
206
|
-
if (result && result.status) {
|
|
207
|
-
const records = result.data || [];
|
|
208
|
-
|
|
209
|
-
this.setState({
|
|
210
|
-
dataSource: records,
|
|
211
|
-
loading: false,
|
|
212
|
-
});
|
|
213
|
-
} else {
|
|
214
|
-
this.setState({
|
|
215
|
-
error: result?.msg || '获取数据失败',
|
|
216
|
-
loading: false,
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
} catch (error: any) {
|
|
220
|
-
this.setState({
|
|
221
|
-
error: error.message || '获取数据失败',
|
|
222
|
-
loading: false,
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
/**
|
|
228
|
-
* 渲染组件
|
|
229
|
-
* @returns 组件 JSX 元素
|
|
230
|
-
*/
|
|
231
|
-
render() {
|
|
232
|
-
const { title: stateTitle, dataSource, loading, error } = this.state;
|
|
233
|
-
const { className, title: propsTitle } = this.props;
|
|
234
|
-
const { xObjectApiKey } = this.props.xObjectDataApi || {};
|
|
235
|
-
const columns = this.generateColumns();
|
|
236
|
-
|
|
237
|
-
// 优先使用 props.title,其次使用 state.title,最后使用默认值
|
|
238
|
-
const displayTitle = propsTitle || stateTitle || '数据表格';
|
|
239
|
-
|
|
240
|
-
console.log('this.props:', this.props);
|
|
241
|
-
|
|
242
|
-
return (
|
|
243
|
-
<div className={`simpleTable__c ${className}`}>
|
|
244
|
-
<div className="table-wrapper">
|
|
245
|
-
<div className="panel-header">
|
|
246
|
-
<h3>{displayTitle}</h3>
|
|
247
|
-
</div>
|
|
248
|
-
<div className="table-container">
|
|
249
|
-
<Spin spinning={loading} tip="加载数据中...">
|
|
250
|
-
{error ? (
|
|
251
|
-
<Empty
|
|
252
|
-
image={Empty.PRESENTED_IMAGE_SIMPLE}
|
|
253
|
-
description={
|
|
254
|
-
<div>
|
|
255
|
-
<div style={{ color: '#ff4d4f', marginBottom: 8 }}>
|
|
256
|
-
{error}
|
|
257
|
-
</div>
|
|
258
|
-
</div>
|
|
259
|
-
}
|
|
260
|
-
/>
|
|
261
|
-
) : (
|
|
262
|
-
<Table
|
|
263
|
-
key={`${xObjectApiKey}-${columns.length}`}
|
|
264
|
-
columns={columns}
|
|
265
|
-
dataSource={dataSource}
|
|
266
|
-
rowKey="id"
|
|
267
|
-
pagination={false}
|
|
268
|
-
scroll={{ x: 'max-content' }}
|
|
269
|
-
/>
|
|
270
|
-
)}
|
|
271
|
-
</Spin>
|
|
272
|
-
</div>
|
|
273
|
-
</div>
|
|
274
|
-
</div>
|
|
275
|
-
);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @file XObject 表格组件对接编辑器的描述文件(简化版)
|
|
3
|
-
* @description 定义组件在 Neo 平台编辑器中的配置信息
|
|
4
|
-
* @author Neo Custom Widget CLI
|
|
5
|
-
* @version 1.0.0
|
|
6
|
-
*/
|
|
7
|
-
export class SimpleTableModel {
|
|
8
|
-
/**
|
|
9
|
-
* 组件类型标识
|
|
10
|
-
* 用于标识组件的唯一性,在构建时根据当前组件目录名称自动生成
|
|
11
|
-
* 注意:此字段在构建时会被自动替换,不需要手动设置
|
|
12
|
-
*/
|
|
13
|
-
// cmpType: string = 'simpleTable';
|
|
14
|
-
|
|
15
|
-
/** 组件名称,用于设置在编辑器左侧组件面板中展示的名称 */
|
|
16
|
-
label: string = '实体数据表格(简化版)';
|
|
17
|
-
|
|
18
|
-
/** 组件描述,用于设置在编辑器左侧组件面板中展示的描述 */
|
|
19
|
-
description: string =
|
|
20
|
-
'基于 XObject 的数据表格组件,仅支持数据展示,不支持增删改查操作';
|
|
21
|
-
|
|
22
|
-
/** 分类标签,用于设置在编辑器左侧组件面板哪个分类中展示 */
|
|
23
|
-
// tags: string[] = ['自定义组件'];
|
|
24
|
-
|
|
25
|
-
/** 组件图标,用于设置在编辑器左侧组件面板中展示的图标 */
|
|
26
|
-
iconUrl: string = 'https://custom-widgets.bj.bcebos.com/table.svg';
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* 用于设置组件支持的页面类型
|
|
30
|
-
*
|
|
31
|
-
* 当前 NeoCRM 平台存在的页面类型:
|
|
32
|
-
* all: 1 全页面
|
|
33
|
-
* entityFormPage: 4 实体表单页
|
|
34
|
-
* customPage: 6 自定义页面
|
|
35
|
-
*/
|
|
36
|
-
targetPage: string[] = ['all'];
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* 用于设置组件支持的终端类型
|
|
40
|
-
*
|
|
41
|
-
* 当前 NeoCRM 平台存在的终端类型:
|
|
42
|
-
* web: 网页端
|
|
43
|
-
* mobile: 移动端
|
|
44
|
-
*/
|
|
45
|
-
targetDevice: string = 'web';
|
|
46
|
-
|
|
47
|
-
/** 初次插入页面的默认属性数据 */
|
|
48
|
-
defaultComProps = {
|
|
49
|
-
title: '合同数据',
|
|
50
|
-
xObjectDataApi: {
|
|
51
|
-
xObjectApiKey: 'customContact__c',
|
|
52
|
-
fields: ['name', 'phone__c'],
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
// 当前组件支持的函数列表(其他组件可触发当前组件的函数)
|
|
57
|
-
functions = [
|
|
58
|
-
{
|
|
59
|
-
apiKey: 'loadData',
|
|
60
|
-
label: '刷新表格',
|
|
61
|
-
helpTextKey: '刷新当前表格数据',
|
|
62
|
-
},
|
|
63
|
-
];
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* 组件属性配置模式
|
|
67
|
-
* 支持静态配置:propsSchema,优先级比 propsSchemaCreator 低
|
|
68
|
-
* 定义组件在编辑器中可配置的属性
|
|
69
|
-
*/
|
|
70
|
-
propsSchema = [
|
|
71
|
-
{
|
|
72
|
-
type: 'panelInput',
|
|
73
|
-
name: 'title',
|
|
74
|
-
label: '表格标题',
|
|
75
|
-
placeholder: '请输入表格标题',
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
type: 'xObjectDataApi', // 用于获取实体业务数据列表的配置项
|
|
79
|
-
name: 'xObjectDataApi',
|
|
80
|
-
label: '实体数据源',
|
|
81
|
-
value: {
|
|
82
|
-
xObjectApiKey: 'customContact__c',
|
|
83
|
-
fields: ['name', 'phone__c'],
|
|
84
|
-
},
|
|
85
|
-
placeholder: '请选择实体数据源',
|
|
86
|
-
custom: true,
|
|
87
|
-
},
|
|
88
|
-
];
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export default SimpleTableModel;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
.simpleTable__c {
|
|
2
|
-
.table-wrapper {
|
|
3
|
-
border: 1px solid #ddd;
|
|
4
|
-
border-radius: 4px;
|
|
5
|
-
display: flex;
|
|
6
|
-
flex-direction: column;
|
|
7
|
-
overflow: hidden;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.panel-header {
|
|
11
|
-
padding: 15px;
|
|
12
|
-
background: #f5f5f5;
|
|
13
|
-
border-bottom: 1px solid #ddd;
|
|
14
|
-
display: flex;
|
|
15
|
-
justify-content: space-between;
|
|
16
|
-
align-items: center;
|
|
17
|
-
|
|
18
|
-
h3 {
|
|
19
|
-
margin: 0;
|
|
20
|
-
font-size: 16px;
|
|
21
|
-
font-weight: 600;
|
|
22
|
-
color: #262626;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.table-container {
|
|
27
|
-
flex: 1;
|
|
28
|
-
overflow-y: auto;
|
|
29
|
-
|
|
30
|
-
.ant-table {
|
|
31
|
-
.ant-table-thead > tr > th {
|
|
32
|
-
background-color: #f9f9f9;
|
|
33
|
-
font-weight: 600;
|
|
34
|
-
color: #262626;
|
|
35
|
-
border-bottom: 1px solid #eee;
|
|
36
|
-
padding: 10px;
|
|
37
|
-
text-align: left;
|
|
38
|
-
font-size: 13px;
|
|
39
|
-
position: sticky;
|
|
40
|
-
top: 0;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
.ant-table-tbody > tr > td {
|
|
44
|
-
border-bottom: 1px solid #eee;
|
|
45
|
-
padding: 10px;
|
|
46
|
-
text-align: left;
|
|
47
|
-
font-size: 13px;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
.ant-table-tbody > tr:hover > td {
|
|
51
|
-
background-color: #f5f5f5;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.ant-empty {
|
|
56
|
-
padding: 40px 0;
|
|
57
|
-
|
|
58
|
-
.ant-empty-description {
|
|
59
|
-
color: #8c8c8c;
|
|
60
|
-
font-size: 14px;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.ant-spin {
|
|
66
|
-
.ant-spin-dot {
|
|
67
|
-
font-size: 20px;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.ant-spin-text {
|
|
71
|
-
color: #8c8c8c;
|
|
72
|
-
font-size: 14px;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// 响应式设计
|
|
77
|
-
@media (max-width: 768px) {
|
|
78
|
-
.panel-header {
|
|
79
|
-
padding: 12px;
|
|
80
|
-
|
|
81
|
-
h3 {
|
|
82
|
-
font-size: 14px;
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
.table-container {
|
|
87
|
-
.ant-table {
|
|
88
|
-
.ant-table-thead > tr > th,
|
|
89
|
-
.ant-table-tbody > tr > td {
|
|
90
|
-
padding: 8px 12px;
|
|
91
|
-
font-size: 12px;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
@media (max-width: 576px) {
|
|
98
|
-
.panel-header {
|
|
99
|
-
padding: 10px;
|
|
100
|
-
|
|
101
|
-
h3 {
|
|
102
|
-
font-size: 13px;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.table-container {
|
|
107
|
-
.ant-table {
|
|
108
|
-
.ant-table-thead > tr > th,
|
|
109
|
-
.ant-table-tbody > tr > td {
|
|
110
|
-
padding: 6px 8px;
|
|
111
|
-
font-size: 12px;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
}
|