-
可以参考
- com.xiaomi.thain.component.std.MailComponent
- com.xiaomi.thain.component.std.HttpComponent
-
使用注解: com.xiaomi.thain.component.annotation.ThainComponent
- group: 组件所属的组,如:std, xdata等,用于区分组件
- name: 组件名称, 如:http
- defineJson
- 组件定义的json
- 这个json用来字段校验,前端组件展示等
-
json 定义
- 格式:
/** * https://app.quicktype.io/#l=schema 这个网站生成json * * 组件前端 schema * */ export type ComponentDefineJson = Array<{ /** * 传到后端的key */ property: string; /** * 是否必填,false 或不写 则为不是必填 */ required?: boolean; /** * 输入框前面的标识,不写默认用property */ label?: string; input: | { id: 'line' | 'textarea' | 'sql' | 'shell' | 'richText'; } | { id: 'select'; options: Array<{ /** * 属性的值 */ id: string; /** * 下拉框中的候选项,不写用id代替 */ name?: string; }>; }; }>;
- 格式:
-
java Class 设计
- 把json中的property 定义在java class 中, 运行时会根据用户填写的信息自动注入
- 可以定义一个 com.xiaomi.thain.component.tools.ComponentTools 类型的属性
- ComponentTools 这个接口中有很多的功能
-
ComponentTools 接口
- com.xiaomi.thain.component.tools.ComponentTools 见注释