jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
136 lines (135 loc) • 3.06 kB
TypeScript
import type { SchemaBoolean, SchemaClassName } from 'jamis-core';
import type { CSSProperties } from 'react';
import type { ButtonSchema, FormBaseControl, FormControlProps, SchemaApi, TableSchema } from '../types';
export interface InputTableControlSchema extends FormBaseControl, Omit<TableSchema, 'type' | 'slots'> {
type: 'input-table';
/**
* 可新增
*/
addable?: boolean;
addableOn?: SchemaBoolean;
/**
* 新增 API
*/
addApi?: SchemaApi;
/**
* 新增按钮文字
*/
addBtnLabel?: string;
/**
* 新增按钮图标
*/
addBtnIcon?: string | false;
/**
* 显示新增按钮
*/
showAddBtn?: boolean;
/**
* 可复制新增, 支持直接配置复制按钮的操作
*/
copyable?: boolean | Partial<ButtonSchema>;
copyableOn?: SchemaBoolean;
/**
* 显示复制按钮, 默认是 true
* @deprecated 请使用`slots.InputTable-copyBtn`来定制
*/
showCopyBtn?: boolean;
/**
* 复制按钮文字
*/
copyBtnLabel?: string;
/**
* 复制按钮图标
*/
copyBtnIcon?: string | false;
/**
* 是否显示复制按钮
*/
copyAddBtn?: boolean;
/**
* 可否删除
*/
removable?: boolean;
removableOn?: SchemaBoolean;
/**
* 删除的 API
*/
deleteApi?: SchemaApi;
/**
* 可否编辑
*/
editable?: boolean;
editableOn?: SchemaBoolean;
/**
* 更新按钮名称
*/
editBtnLabel?: string;
/**
* 更新按钮图标
*/
editBtnIcon?: string;
/**
* 确认按钮文字
*/
confirmBtnLabel?: string;
/**
* 确认按钮图标
*/
confirmBtnIcon?: string;
/**
* 取消按钮文字
*/
cancelBtnLabel?: string;
/**
* 取消按钮图标
*/
cancelBtnIcon?: string;
/**
* 删除按钮文字
*/
deleteBtnLabel?: string;
/**
* 删除按钮图标
*/
deleteBtnIcon?: string | false;
/**
* 更新 API
*/
updateApi?: SchemaApi;
/**
* 初始值,新增的时候
*/
scaffold?: Record<string, any>;
/**
* 删除确认文字
*/
deleteConfirmText?: string;
/**
* 值字段
*/
valueField?: string;
/**
* 是否为确认的编辑模式。
*/
needConfirm?: boolean;
/**
* 是否可以访问父级数据,正常 combo 已经关联到数组成员,是不能访问父级数据的。
*/
canAccessSuperData?: boolean;
/**
* 是否显示序号
*/
showIndex?: boolean;
/**
* 分页个数,默认不分页
*/
perPage?: number;
operationStyle?: CSSProperties;
operationClassName?: SchemaClassName;
/**
* 懒加载的行数, 默认是100
*/
lazyRenderAfter?: number;
}
export interface InputTableProps extends FormControlProps, Omit<InputTableControlSchema, 'type' | 'className' | 'descriptionClassName' | 'inputClassName' | 'data'> {
}