Skip to main content

组件上下文

画布上下文

画布上下文为组件提供页面级的上下文信息。

import { useContext } from 'react';
import { SDK, CanvasContextData } from '@qcloud-apaas/web-sdk';

export default () => {
  const ctx: CanvasContextData = useContext(SDK.CanvasContext);
}

画布上下文类型

type CanvasContextData = {
  /**
   * 画布尺寸
   */
  size: CanvasSize;
  /**
   * 画布模式,运行态、设计态
   */
  mode: CanvasMode;
  /**
   * 返回整个画布的上下文数据,仅运行态使用
   */
  getValues?: () => Record<string, any>;
  /**
   * 设置上下文数据,仅运行态使用
   * @param key 对象apiKey
   * @param value 数据
   */
  setValue?: (key: string, value: Record<string, any>) => void;
};

表单上下文

表单上下文为组件提供表单上下文信息。

import { useContext } from 'react';
import { SDK, DataFormContextData } from '@qcloud-apaas/web-sdk';

export default () => {
  const ctx: DataFormContextData = useContext(SDK.DataFormContext);
}

表单上下文类型

type DataFormContextData = {
  /**
   * 表单布局
   * 默认、固定、垂直、行内、行内垂直
   */
  layout?: 'default' | 'fixed' | 'vertical' | 'inline' | 'inline-vertical';
  /**
   * 表单控件展示模式
   * 1编辑、2只读、3文本、4继承
   */
  showMode: FormFieldShowModeType;
  /**
   * final-form 表单实例
   */
  form: FormApi;
  /**
   * 对react-final-form-hooks的useField方法的封装
   */
  useField: (fieldSource: { code: string; apiKey: string }, validators: Record<string, any>) => FieldRenderProps;
  /**
   * 表单是否提交中
   */
  submitting: boolean;
  /**
   * 表单是否未填写
   */
  pristine: boolean;
  /**
   * 表单组件类型,0 DataForm, 1 SearchForm
   */
  formComponentType: FormComponentType;
  /**
   * 获取组件最终展示模式,如果是继承返回表单的展示模式,否则返回组件自身的展示模式
   */
  getFinalShowMode: (componentShowMode: FormFieldShowModeType) => FormFieldShowModeType;
  /**
   * 获取用户对字段的访问权限,仅运行态使用
   */
  getFieldPermission: (fieldCode: string) => FormFieldPermission;
  /**
   * 返回整个表单数据,仅运行态使用
   */
  getValues: () => Record<string, any>;
  /**
   * 解析表达式,仅运行态使用
   */
  evaluateExpression: (exp: string) => Promise<{ type: EvaluateExpressionResultType; value: any }>;
  /**
   * 校验表单字段,仅运行态使用
   */
  validateField: (name: string, val: any, validators: Record<string, any>) => Promise<string>;
  /**
   * 提交表单方法,仅运行态使用
   */
  handleSubmit: () => void;
};

表格上下文

表格上下文为组件提供表格上下文信息。

import { useContext } from 'react';
import { SDK, DataGridContextData } from '@qcloud-apaas/web-sdk';

export default () => {
  const ctx: DataGridContextData = useContext(SDK.DataGridContext);
}

表格上下文类型

type DataGridContextData = {
  /**
   * 解析表达式,仅运行态使用
   */
  evaluateExpression: (
    exp: string,
    opt: { rowIndex: number },
  ) => Promise<{ type: EvaluateExpressionResultType; value: any }>;
};

列表记录上下文

列表记录上下文为组件提供列表记录上下文信息。

import { useContext } from 'react';
import { SDK, ListViewRecordContextData } from '@qcloud-apaas/web-sdk';

export default () => {
  const ctx: ListViewRecordContextData = useContext(SDK.ListViewRecordContext);
}

列表记录上下文类型

type ListViewRecordContextData = {
  /**
   * 解析表达式,仅运行态使用
   */
  evaluateExpression: (exp: string) => Promise<{ type: EvaluateExpressionResultType; value: any }>;
};