v0.7.3
This commit is contained in:
Vendored
+115
@@ -0,0 +1,115 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
declare const _default: OperationAuth;
|
||||
|
||||
/** 按钮操作权限的单例;维护一份 uuid -> 是否有权限的映射,供 Button 组件的鉴权逻辑查询 */
|
||||
declare class OperationAuth {
|
||||
/** @type {OperationAuth} */
|
||||
static "__#private@#instance": OperationAuth;
|
||||
/** @returns {OperationAuth} 单例实例 */
|
||||
static getInstance: () => OperationAuth;
|
||||
/**
|
||||
* 用一批权限数据初始化/覆盖内部映射
|
||||
* @param {Iterable<[string, boolean]>} data uuid 到权限布尔值的键值对集合
|
||||
*/
|
||||
init: (data: Iterable<[string, boolean]>) => Map<string, boolean>;
|
||||
/**
|
||||
* 判断某个操作是否有权限;没有记录该 uuid 时默认视为有权限
|
||||
* @param {string} uuid 操作标识
|
||||
* @returns {boolean} 是否有权限
|
||||
*/
|
||||
check: (uuid: string) => boolean;
|
||||
#private;
|
||||
}
|
||||
|
||||
/**
|
||||
* Button 组件点击行为的核心 hook;按 widgetType 把点击行为分发到对应的处理器
|
||||
* (跳转/自定义函数/弹窗组件/表单弹窗/数据列表弹窗/删除请求等)
|
||||
* @param {Object} config
|
||||
* @param {*} config.widget 目标(组件/函数名/表达式/路由等,含义随 widgetType 而定)
|
||||
* @param {'redirect'|'func'|'component'|'fsdpf-component'|'grid-layout-form'|'data-list'|'destroy'} [config.widgetType] 行为类型
|
||||
* @param {*} [config.widgetData] 触发时附带的数据
|
||||
* @param {Object} [config.widgetProps] 触发前解析的 props 配置(经 getWidgetPropsData)
|
||||
* @param {Object} [config.widgetSetting] 传给目标(弹窗/表单/请求)的配置
|
||||
* @param {Object} [config.widgetContainerProps] 传给弹窗容器的 props
|
||||
* @param {Object} [handlers]
|
||||
* @param {(result: *) => void} [handlers.onAfterClick] 动作完成后的回调
|
||||
* @param {(data: *) => void} [handlers.onBeforeClick] 动作开始前的回调
|
||||
* @returns {[(data: *) => void, {loading?: boolean, disabled?: boolean}]} [点击处理函数(已做 300ms 防抖), 当前 loading/disabled 状态]
|
||||
*/
|
||||
declare function useButton({ widget, widgetType, widgetData, widgetProps, widgetSetting, widgetContainerProps, }: {
|
||||
widget: any;
|
||||
widgetType?: "redirect" | "func" | "component" | "fsdpf-component" | "grid-layout-form" | "data-list" | "destroy";
|
||||
widgetData?: any;
|
||||
widgetProps?: any;
|
||||
widgetSetting?: any;
|
||||
widgetContainerProps?: any;
|
||||
}, { onAfterClick, onBeforeClick }?: {
|
||||
onAfterClick?: (result: any) => void;
|
||||
onBeforeClick?: (data: any) => void;
|
||||
}): [(data: any) => void, {
|
||||
loading?: boolean;
|
||||
disabled?: boolean;
|
||||
}];
|
||||
|
||||
declare function Button({ className, variant, children, name, icon, type, iconPosition, noAuthType, onAfterClick, onBeforeClick, data, loading: customLoading, disabled: customDisabled, tooltip, confirm, widget, widgetType, widgetData, widgetProps, widgetSetting, widgetContainerProps, ...props }: {
|
||||
[x: string]: any;
|
||||
className: any;
|
||||
variant: any;
|
||||
children: any;
|
||||
name: any;
|
||||
icon: any;
|
||||
type?: string;
|
||||
iconPosition?: string;
|
||||
noAuthType: any;
|
||||
onAfterClick: any;
|
||||
onBeforeClick: any;
|
||||
data: any;
|
||||
loading: any;
|
||||
disabled: any;
|
||||
tooltip: any;
|
||||
confirm: any;
|
||||
widget?: () => void;
|
||||
widgetType: any;
|
||||
widgetData: any;
|
||||
widgetProps: any;
|
||||
widgetSetting: any;
|
||||
widgetContainerProps: any;
|
||||
}): React.JSX.Element;
|
||||
declare namespace Button {
|
||||
namespace propTypes {
|
||||
let type: PropTypes.Requireable<string>;
|
||||
let size: PropTypes.Requireable<string>;
|
||||
let name: PropTypes.Requireable<string>;
|
||||
let icon: PropTypes.Requireable<string>;
|
||||
let iconPosition: PropTypes.Requireable<string>;
|
||||
let data: PropTypes.Requireable<any>;
|
||||
let widget: PropTypes.Requireable<any>;
|
||||
let widgetType: PropTypes.Requireable<string>;
|
||||
let widgetData: PropTypes.Requireable<object>;
|
||||
let widgetProps: PropTypes.Requireable<object>;
|
||||
let widgetSetting: PropTypes.Requireable<object>;
|
||||
let widgetContainerProps: PropTypes.Requireable<object>;
|
||||
let tooltip: PropTypes.Requireable<Required<PropTypes.InferProps<{
|
||||
title: PropTypes.Validator<string>;
|
||||
placement: PropTypes.Requireable<string>;
|
||||
enabled: PropTypes.Requireable<NonNullable<number | boolean>>;
|
||||
getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
|
||||
}>>>;
|
||||
let confirm: PropTypes.Requireable<Required<PropTypes.InferProps<{
|
||||
title: PropTypes.Validator<string>;
|
||||
cancelText: PropTypes.Requireable<string>;
|
||||
okText: PropTypes.Requireable<string>;
|
||||
okType: PropTypes.Requireable<string>;
|
||||
placement: PropTypes.Requireable<string>;
|
||||
enabled: PropTypes.Requireable<NonNullable<number | boolean>>;
|
||||
getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
|
||||
arrow: PropTypes.Requireable<NonNullable<boolean | Required<PropTypes.InferProps<{
|
||||
pointAtCenter: PropTypes.Requireable<boolean>;
|
||||
}>>>>;
|
||||
}>>>;
|
||||
}
|
||||
}
|
||||
|
||||
export { _default as auth, Button as default, useButton };
|
||||
Reference in New Issue
Block a user