jamis
Version:
一种支持通过JSON配置方式生成页面的组件库
90 lines (89 loc) • 1.89 kB
TypeScript
import type { FormBaseControlSchema, FormControlProps } from '../types';
export type RatingPositionType = 'left' | 'right';
export interface RatingProps {
id?: string;
key?: string | number;
style?: React.CSSProperties;
count: number;
half: boolean;
char: string | React.ReactNode;
className?: string;
charClassName?: string;
textClassName?: string;
onChange?: (value: number) => void;
onHoverChange?: (value: number) => void;
value: number;
containerClass?: string;
readOnly: boolean;
disabled?: boolean;
allowClear?: boolean;
inactiveColor?: string;
colors?: string | {
[propName: string]: string;
};
texts?: {
[propName: string]: string;
};
textPosition?: RatingPositionType;
}
/**
* Rating
*
*/
export interface RatingControlSchema extends FormBaseControlSchema {
type: 'input-rating';
/**
* 分数
*/
count?: number;
/**
* 允许半颗星
*/
half?: boolean;
/**
* 是否允许再次点击后清除
*/
allowClear?: boolean;
/**
* 是否只读
*/
readonly?: boolean;
/**
* 星星被选中的颜色
*/
colors?: string | {
[propName: string]: string;
};
/**
* 未被选中的星星的颜色
*/
inactiveColor?: string;
/**
* 星星被选中时的提示文字
*/
texts?: {
[propName: string]: string;
};
/**
* 文字的位置
*/
textPosition?: RatingPositionType;
/**
* 自定义字符
*/
char?: string;
/**
* 自定义字符类名
*/
charClassName?: string;
/**
* 自定义文字类名
*/
textClassName?: string;
}
export interface InputRatingProps extends FormControlProps {
value: number;
count: number;
half: boolean;
readOnly: boolean;
}