Skip to content

Latest commit

 

History

History
68 lines (62 loc) · 2.05 KB

2.自定义组件.md

File metadata and controls

68 lines (62 loc) · 2.05 KB

自定义组件

  1. 可以参考

    • com.xiaomi.thain.component.std.MailComponent
    • com.xiaomi.thain.component.std.HttpComponent
  2. 使用注解: com.xiaomi.thain.component.annotation.ThainComponent

    • group: 组件所属的组,如:std, xdata等,用于区分组件
    • name: 组件名称, 如:http
    • defineJson
      • 组件定义的json
      • 这个json用来字段校验,前端组件展示等
  3. 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;
              }>;
            };
      }>;
  4. java Class 设计

    • 把json中的property 定义在java class 中, 运行时会根据用户填写的信息自动注入
    • 可以定义一个 com.xiaomi.thain.component.tools.ComponentTools 类型的属性
      • ComponentTools 这个接口中有很多的功能
  5. ComponentTools 接口

    • com.xiaomi.thain.component.tools.ComponentTools 见注释