Skip to content

getTemplateFormFields

获取模板表单中的所有字段

TIP

用于解析获取 模板表单接口 返回的 templateContent 字段, 支持传入选项获取模板的字段

  • 默认分组内字段 / 其他分组内字段 / 子表单内字段
  • 分组本身 / 子表单本身

示例


基础用法

ts
import { getTemplateForm } from '@smartos-lib/apis';
import { getTemplateFormFields } from '@smartos-lib/utils';

const templateForm = getTemplateForm('1711651576144896000');

templateForm.execute().then(() => {
  const fields = getTemplateFormFields(templateForm.data!.data.templateContent);

  console.log(fields); // [{ prop: 'a123', ... }, ...]
});

配置项

ts
import { getTemplateForm } from '@smartos-lib/apis';
import { getTemplateFormFields } from '@smartos-lib/utils';

const templateForm = getTemplateForm('1711651576144896000');

templateForm.execute().then(() => {
  // 默认配置项, 配置项细节见下方 "类型"
  const fields = getTemplateFormFields(templateForm.data!.data.templateContent, {
    defaultGroupFields: true,
    groupFields: true,
    subformFields: false,
    groupSelf: false,
    subformSelf: true,
  });

  console.log(fields); // [{ prop: 'a123', ... }, ...]
});

类型

ts
/**
 * 获取模板表单中的所有字段的选项
 */
interface GetTemplateFormFieldsOptions {
  /**
   * 包含默认分组内字段 ( 不包括子表单 )
   * @default true
   */
  defaultGroupFields?: boolean;
  /**
   * 包含其他分组内字段
   * @default true
   */
  groupFields?: boolean;
  /**
   * 包含子表单内字段
   * @default false
   */
  subformFields?: boolean;
  /**
   * 包含分组本身
   * @default false
   */
  groupSelf?: boolean;
  /**
   * 包含子表单本身
   * @default true
   */
  subformSelf?: boolean;
}

/**
 * @param templateContentStr 表单内容配置, 支持传入原字符串或 `JSON.parse` 后的对象
 * @param options 配置项
 */
function getTemplateFormFields(
  templateContentStr: string | TemplateForm,
  options?: GetTemplateFormFieldsOptions
): TemplateFormField[];