0.13.0 • Published 4 years ago

@g3-cscec/page-meta-engine v0.13.0

Weekly downloads
-
License
UNLICENSED
Repository
-
Last release
4 years ago

G3Parse

用例

/**
 * @param {string} uiMeta 页面描述文件
 * @param {object} customEvents 定义逻辑函数
 * @param {object} components 注入解析器的组件实例
 * */
   <div style={{ margin: '40px', width: '250px' }}>
      <G3Parser uiMeta={uiMeta} customEvents={uiEventObject} components={{ ...platformComponents }} />
    </div>

测试使用ui-meta

[
  // {
  //   name: `Select_${uuidShort()}`,
  //   type: 'Select',
  //   props: {
  //     name: 'componentType',
  //     label: '组件类型',
  //     value: 'Input',
  //     valueEnum: [
  //       {
  //         label: '文本输入框',
  //         value: 'Input'
  //       },
  //       {
  //         label: '数值输入框',
  //         value: 'Number'
  //       },
  //       {
  //         label: '多行文本输入框',
  //         value: 'Textarea'
  //       },
  //       {
  //         label: '单选 radio',
  //         value: 'Radio'
  //       },
  //       {
  //         label: '多选 checkbox',
  //         value: 'Checkbox'
  //       },
  //       {
  //         label: '下拉 checkbox',
  //         value: 'Select'
  //       }
  //     ]
  //   },
  //   events: {}
  // },
  {
    name: `Button_${uuidShort()}`,
    type: 'G3Button',
    props: {
      type: 'primary'
    },
    children: ['提交'],
    events: {
      onClick: 'formSave(Form_96adad4233)'
    }
  },
  {
    name: `Button_${uuidShort()}`,
    type: 'G3Button',
    props: {
      type: 'default'
    },
    children: ['重置'],
    events: {
      onClick: 'formReset(Form_96adad4233)'
    }
  },
  {
    name: 'Button_uAGTM2qvuk',
    type: 'G3Button',
    props: {
      type: 'primary'
    },
    children: ['动态设置值-lowcode测试'],
    events: {}
  },
  {
    name: 'Form_96adad4233',
    type: 'G3Form',
    props: {
      size: 'small',
      fieldList: [
        {
          id: uuidShort(), // 表单控件的唯一标识
          label: '组件类型', // 表单项中的「label」展示
          name: 'componentType-2', // 表单绑定的 dataKey
          fieldType: 'enum',
          settings: {
            options: [
              {
                label: '文本输入框',
                value: 'INPUT_WIDGET'
              },
              {
                label: '数值输入框',
                value: 'NUMBER_WIDGET'
              },
              {
                label: '多行文本输入框',
                value: 'TEXTEARA_WIDGET'
              },
              {
                label: '单选 radio',
                value: 'RADIO_'
              },
              {
                label: '多选 checkbox',
                value: 'CHECKBOX_'
              },
              {
                label: '下拉 checkbox',
                value: 'SELECT_'
              }
            ]
          },
          properties: {
            hidden: false,
            readonly: false,
            required: true
          }
        },
        {
          id: uuidShort(),
          label: '输入框1',
          name: 'testInput1-2',
          fieldType: 'text',
          settings: {
            multiline: false // 展示为单行文本
          }
        },
        {
          id: uuidShort(),
          label: '输入框2',
          name: 'isApprove-2',
          fieldType: 'enum',
          settings: {
            display: 'checkbox',
            options: [
              {
                label: '静态数据',
                value: 'pass'
              },
              {
                label: '动态下拉',
                value: 'refuse'
              },
              {
                label: '组件disabled',
                value: 'disabled'
              }
            ]
          }
        },
        {
          id: uuidShort(),
          label: '联动输入框',
          name: 'testInput2-2',
          fieldType: 'text',
          settings: {
            multiline: true // 展示为textarea
          },
          dependency: {
            hidden: '{{formData.isApprove === "pass"}}',
            disabled: '{{formData.isApprove === "disabled"}}'
          }
        },
        // {
        //   id: uuidShort(),
        //   label: '组合类型字段',
        //   name: 'dynamicDataSource-2',
        //   fieldType: 'compositeType',
        //   settings: {
        //     subFields: [
        //       {
        //         id: uuidShort(),
        //         type: 'text',
        //         name: 'sub-field-1-2',
        //         label: '子字段1'
        //       },
        //       {
        //         id: uuidShort(),
        //         type: 'text',
        //         name: 'sub-field-2-2',
        //         label: '子字段2'
        //       }
        //     ]
        //   }
        // },
        {
          id: uuidShort(),
          name: 'testInput8-2',
          label: '输入框2',
          fieldType: 'text'
        }
      ]
    },
    children: [
      // {
      //   name: `Select_${uuidShort()}`,
      //   type: 'Select',
      //   props: {
      //     name: 'componentType',
      //     label: '组件类型-form',
      //     value: 'Input',
      //     valueEnum: [
      //       {
      //         label: '文本输入框',
      //         value: 'Input'
      //       },
      //       {
      //         label: '数值输入框',
      //         value: 'Number'
      //       },
      //       {
      //         label: '多行文本输入框',
      //         value: 'Textarea'
      //       },
      //       {
      //         label: '单选 radio',
      //         value: 'Radio'
      //       },
      //       {
      //         label: '多选 checkbox',
      //         value: 'Checkbox'
      //       },
      //       {
      //         label: '下拉 checkbox',
      //         value: 'Select'
      //       }
      //     ]
      //   },
      //   events: {}
      // },
      // {
      //   name: 'Text_pVoHKRTOaA',
      //   type: 'Text',
      //   props: {
      //     name: 'testInput1',
      //     value: '123',
      //     label: '输入框1-form'
      //   }
      // },
      // {
      //   name: `Radio_${uuidShort()}`,
      //   type: 'Radio',
      //   props: {
      //     radioType: 'button',
      //     name: 'isApprove',
      //     value: 'pass',
      //     label: '数据源类型',
      //     valueEnum: [
      //       {
      //         label: '静态数据',
      //         value: 'pass'
      //       },
      //       {
      //         label: '动态下拉',
      //         value: 'refuse'
      //       },
      //       {
      //         label: '组件disabled',
      //         value: 'disabled'
      //       }
      //     ]
      //   }
      // },
      // {
      //   name: `Text_${uuidShort()}`,
      //   type: 'Text',
      //   props: {
      //     name: 'testInput2',
      //     value: '123',
      //     label: '联动输入框',
      //     hidden: false,
      //     dependency: {
      //       hidden: '{{formData.isApprove === "pass"}}',
      //       disabled: '{{formData.isApprove === "disabled"}}'
      //     }
      //   }
      // }
      // {
      //   name: `dynamicDataSource_${uuidShort()}`,
      //   type: 'Formlist',
      //   value: '',
      //   label: '组合类型字段',
      //   children: [
      //     {
      //       name: `sub-field-1_${uuidShort()}`,
      //       label: '子字段1',
      //       type: 'Text'
      //     },
      //     {
      //       name: `sub-field-2_${uuidShort()}`,
      //       label: '子字段2',
      //       type: 'Text'
      //     }
      //   ]
      // }
      // {
      //   name: 'Table_12222332',
      //   type: 'Table',
      //   props: {
      // actions:[]
      //     columns: []
      //   },
      //   event: {
      //   }
      // }
    ]
  },
  {
    name: 'Table_ttaabbllee',
    type: 'G3Table',
    props: {
      style: {
        width: 700,
        margin: 50
      },
      size: 'small',
      bordered: true,
      rowKey: 'key',
      columns: [
        {
          title: 'name',
          titleTip: '?',
          dataIndex: 'name',
          align: 'left', // 列对齐方式
          fixed: 'left', // 固定列
          required: true, // 必输项
          visible: true, // 是否显示
          editable: true
        },
        {
          title: 'age',
          dataIndex: 'age',
          align: 'center',
          headAlign: 'left',
          resizable: false,
          editable: true,
          enableTotal: true,
          fieldType: 'number'
        },
        {
          title: 'address',
          dataIndex: 'address',
          // rowBreak: true,
          enableTotal: true,
          editable: true
        },
        {
          title: 'address2',
          dataIndex: 'address2',
          editable: true
        },
        {
          title: 'address3',
          dataIndex: 'address3',
          editable: true
        },
        {
          title: 'address4',
          dataIndex: 'address4',
          editable: true
        },
        {
          title: 'address5',
          dataIndex: 'address5',
          editable: true
        },
        {
          title: 'address6',
          dataIndex: 'address6',
          editable: true
        },
        {
          title: 'operation',
          dataIndex: 'operation',
          fixed: 'right',
          titleTip: '111',
          width: 0,
          editable: false,
          render: () => '测试'
        }
      ],
      dataSource: [
        {
          key: '0',
          rowKey: '123',
          name: 'Edward King 0',
          age: 32,
          address: 'London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0',
          a: 1,
          b: 2,
          c: 3
        },
        {
          key: '1',
          name: 'Edward King 1',
          age: 32,
          address: 'London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        },
        {
          key: '2',
          name: 'Edward King 2',
          age: 32,
          address: 'London, Park Lane no. 0London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        },
        {
          key: '3',
          name: 'Edward King 3',
          age: 32,
          address: 'London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        },
        {
          key: '4',
          name: 'Edward King 4',
          age: 32,
          address: 'London, Park Lane no. 0London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        },
        {
          key: '5',
          name: 'Edward King 5',
          age: 32,
          address: 'London, Park Lane no. 0London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        },
        {
          key: '6',
          name: 'Edward King 6',
          age: 32,
          address: 'London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        },
        {
          key: '7',
          name: 'Edward King 7',
          age: 32,
          address: 'London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        },
        {
          key: '8',
          name: 'Edward King 8',
          age: 32,
          address: 'London, Park Lane no. 0London, Park Lane no. 0London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        },
        {
          key: '9',
          name: 'Edward King 9',
          age: 32,
          address: 'London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        },
        {
          key: '10',
          name: 'Edward King 10',
          age: 32,
          address: 'London, Park Lane no. 0',
          address2: 'London, Park Lane no. 0',
          address3: 'London, Park Lane no. 0',
          address4: 'London, Park Lane no. 0',
          address5: 'London, Park Lane no. 0',
          address6: 'London, Park Lane no. 0'
        }
      ],
      rowActions: [
        {
          text: '按钮1',
          disabled: `function(record){return record.key !== '0'}`,
          visible: `function(record){return record.key === '0'}`,
          onClick: `function(record){console.log(record)}`
        },
        {
          danger: true,
          text: '按钮2',
          disabled: `function(record){return record.key === '0'}`,
          visible: true,
          onClick: `function(record){console.log(record.key)}`
        },
        {
          danger: true,
          text: '按钮3',
          disabled: `function(record){return record.key === '0'}`,
          visible: true,
          onClick: `function(record){console.log(record.key)}`
        },
        {
          danger: true,
          text: '按钮4',
          disabled: `function(record){return record.key === '0'}`,
          visible: true,
          onClick: `function(record){console.log(record.key)}`
        },
        {
          danger: true,
          text: '按钮5',
          disabled: `function(record){return record.key === '0'}`,
          visible: true,
          onClick: `function(record){console.log(record.key)}`
        }
      ]
    }
  }
]
0.13.0

4 years ago

0.7.0

4 years ago

0.6.4

4 years ago

0.6.3

4 years ago

0.6.2

4 years ago

0.6.0

4 years ago

0.5.3

4 years ago

0.5.2

4 years ago

0.5.1

4 years ago

0.5.0

4 years ago

0.4.0

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago