表配置规范
表配置路径
codegen/src/tables/{mod}/{mod}.ts
表配置结构详细文档和类型
codegen/src/config.ts
常用配置
opts.uniques: 唯一约束, 需要唯一性的字段组合, 否则无需配置
opts.defaultSort: 需要默认排序的字段, 否则无需配置, 不配置则默认创建时间降序 create_time descending
opts.cache: 是否缓存, 需要缓存时配置
opts.inlineForeignTabs: 内联关联表配置, 需要内联展示关联表时配置, 主表从表聚合关系使用
默认值(无需配置)
| 字段/类型 |
默认行为 |
lbl |
width/align/require/search 已有默认 |
*_id/*_ids |
foreignKey 自动推断 |
| 数字类型 |
align:right, width:100 |
| date/datetime |
width:160 |
| decimal |
width:100 |
| rem |
width:280 |
*_province_code |
自动识别省份 |
isFluentEditor |
noList 默认 true |
建表语句中的 COMMENT '状态,dictbiz:{mod}_{table}_{column}' |
,dictbiz: 表示业务字典,:后面的是业务字典编码,所以业务字典和系统字典都无需配置foreignKey |
需要配置的情况
外键数据量大
{
COLUMN_NAME: "usr_id",
foreignKey: {
selectType: "selectInput", // 弹框选择
},
search: true,
isSearchByLbl: true, // 按标签搜索
}
聚合关系
ec_order: {
opts: {
inlineForeignTabs: [{
mod: "ec",
table: "order_detail",
label: "订单明细",
column: "order_id",
}],
detailCustomDialogType: "medium", // 字段多时用
detailFormCols: 3, // 表单列数
}
}
自动编码字段
{
COLUMN_NAME: "code_seq",
onlyCodegenDeno: true,
},
{
COLUMN_NAME: "code",
align: "center",
search: false,
width: 100,
readonly: true,
readonlyPlaceholder: "(自动生成)",
autoCode: {
prefix: "JS",
seq: "code_seq",
seqPadStart0: 3,
},
searchByArray: true,
},
onlyCodegenDeno: 代表此字段不生成到前端, 只生成后端
autoCode: 自动编码配置
autoCode.prefix: 编码前缀
autoCode.seq: 关联的序列号字段
autoCode.seqPadStart0: 序列号左侧补0到多少位
rem: 备注, 默认已经是 align: "left"
decimal类型的字段: 默认已经是 width: 100, align: "right", require: true,
is_enabled: 默认已经是 isSwitch: true,
order_by: 无需配置, 默认值即可
审计字段
大部分表需要:
{ COLUMN_NAME: "create_usr_id" },
{ COLUMN_NAME: "create_time" },
{ COLUMN_NAME: "update_usr_id" },
{ COLUMN_NAME: "update_time" },
配置文件结构需换行
ec_order: {
opts: {
...
},
columns: [
{
COLUMN_NAME: "create_usr_id",
...
},
],
},
1---2name: table-config3description: 表字段配置规范。建表后配置 src/tables/{mod}/{mod}.ts 文件时使用4---5
6# 表配置规范
7
8## 表配置路径
9`codegen/src/tables/{mod}/{mod}.ts`
10
11## 表配置结构详细文档和类型
12`codegen/src/config.ts`
13
14## 常用配置
15- `opts.uniques`: 唯一约束, 需要唯一性的字段组合, 否则无需配置
16- `opts.defaultSort`: 需要默认排序的字段, 否则无需配置, 不配置则默认创建时间降序 `create_time` `descending`
17- `opts.cache`: 是否缓存, 需要缓存时配置
18- `opts.inlineForeignTabs`: 内联关联表配置, 需要内联展示关联表时配置, 主表从表聚合关系使用
19
20## 默认值(无需配置)
21
22| 字段/类型 | 默认行为 |
23|-----------|----------|
24| `lbl` | width/align/require/search 已有默认 |
25| `*_id`/`*_ids` | foreignKey 自动推断 |
26| 数字类型 | align:right, width:100 |
27| date/datetime | width:160 |
28| decimal | width:100 |
29| rem | width:280 |
30| `*_province_code` | 自动识别省份 |
31| `isFluentEditor` | noList 默认 true |
32| `建表语句中的 COMMENT '状态,dictbiz:{mod}_{table}_{column}' ` | `,dictbiz:` 表示业务字典,`:`后面的是业务字典编码,所以业务字典和系统字典都无需配置`foreignKey` |
33
34## 需要配置的情况
35
36### 外键数据量大
37
38```ts
39{
40 COLUMN_NAME: "usr_id",
41 foreignKey: {
42 selectType: "selectInput", // 弹框选择
43 },
44 search: true,
45 isSearchByLbl: true, // 按标签搜索
46}
47```
48
49### 聚合关系
50
51```ts
52ec_order: {
53 opts: {
54 inlineForeignTabs: [{
55 mod: "ec",
56 table: "order_detail",
57 label: "订单明细",
58 column: "order_id",
59 }],
60 detailCustomDialogType: "medium", // 字段多时用
61 detailFormCols: 3, // 表单列数
62 }
63}
64```
65
66## 自动编码字段
67
68```ts
69{
70 COLUMN_NAME: "code_seq",
71 onlyCodegenDeno: true,
72},
73{
74 COLUMN_NAME: "code",
75 align: "center",
76 search: false,
77 width: 100,
78 readonly: true,
79 readonlyPlaceholder: "(自动生成)",
80 autoCode: {
81 prefix: "JS",
82 seq: "code_seq",
83 seqPadStart0: 3,
84 },
85 searchByArray: true,
86},
87```
88- onlyCodegenDeno: 代表此字段不生成到前端, 只生成后端
89- autoCode: 自动编码配置
90- autoCode.prefix: 编码前缀
91- autoCode.seq: 关联的序列号字段
92- autoCode.seqPadStart0: 序列号左侧补0到多少位
93
94- rem: 备注, 默认已经是 align: "left"
95- decimal类型的字段: 默认已经是 width: 100, align: "right", require: true,
96- is_enabled: 默认已经是 isSwitch: true,
97- order_by: 无需配置, 默认值即可
98
99## 审计字段
100
101大部分表需要:
102```ts
103{ COLUMN_NAME: "create_usr_id" },
104{ COLUMN_NAME: "create_time" },
105{ COLUMN_NAME: "update_usr_id" },
106{ COLUMN_NAME: "update_time" },
107```
108
109## 配置文件结构需换行
110```ts
111ec_order: {
112 opts: {
113 ...
114 },
115 columns: [
116 {
117 COLUMN_NAME: "create_usr_id",
118 ...
119 },
120 ],
121},
122```