import React from 'react';
import XForm from "../editor/XForm";
import XBaseObject, { XBaseObjectProps } from "./XBaseObject";
import XBaseApp from './XBaseApp';
/**
* 页面组件属性
*/
export interface XBasePageProps extends XBaseObjectProps {
children?: React.ReactNode;
/**
* 是否验证用户是否登录
*/
validateUser?: boolean;
/**
* 登录用户对当前菜单的权限信息
*/
operations?: any;
/**
* 显示默认视图
*/
view?: string;
/**
* 页面右上角视图列表
*/
views?: string[];
/**
* 是否显示多视图
*/
showFilterView?: boolean;
/**
* 是否仪表盘嵌入
*/
isDashboard?: boolean;
settingQueryUrl?: string;
settingSaveUrl?: string;
}
/**
* 基础页面组件
* 基础页面组件是业务系统中所有页面的基类,直接继承于基础组件,拥有与服务端交互的能力,包含了整个系统的目录结构,当前页面对应的数据权限和操作权限。还提供了各种常用的表格和表单操作,方便业务系统的实现。
* @name 基础页面组件
* @groupName 应用
*/
export default class XBasePage
extends XBaseObject {
static GetApp: () => XBaseApp<{}, {}>;
static SetApp: (_app: XBaseApp) => void;
static defaultProps: {
operations: any;
validateUser: any;
showFilterView: boolean;
isDashboard: boolean;
views: string[];
view: string;
settingQueryUrl: string;
settingSaveUrl: string;
parent: string;
pureRender: boolean;
dataSourceUrl: string;
filterData: {};
mustHasFilter: boolean;
};
static propTypes: {};
menu: any;
operations: any;
state: any;
constructor(props: any);
componentDidMount(): void;
configForm: XForm;
/**
* 渲染页面配置
*/
renderPageConfig(): React.JSX.Element;
/**
* 获取当前url hash
*/
GetCurrentMenuKey(): string;
/**
* 获取菜单组件
* @param path 菜单path
*/
GetMenuComponent(path: string): any;
/**
* 获取菜单
* @param path hash值
* @menus 菜单列表
*/
GetCurrentMenuItem(path?: string, menus?: any): any;
/**
* 获取所有菜单
* @param menus
*/
GetAllMenuData(): any[];
/**
* 重新加载用户菜单
*/
ReloadCurrentUserMenus(): any;
/**
* 获取当前用户菜单
*/
GetCurrentUserMenus(): any;
/**
* 验证hash是否有权限
* @param path
*/
CheckPath(path: any): boolean;
/**
* 验证操作权限
* @param name 操作名称
*/
CheckOperation(name: any): any;
Resize(): void;
/**
* 获取当前是否为iframe
*/
IsIframe(): boolean;
/**
* 保存单一字段的值
* @param url 请求地址
* @param id id
* @param filed 字段
* @param value 值
* @param params 其他参数
* @constructor
*/
SaveFiledValue(url: string, id: string, filed: string, value: string, params?: any): Promise;
/**
* 删除选中的数据
* @param url 请求URL
* @param table 表格对象
* @param selectType 删除类型
* @param callbackFuc 删除回调
* @constructor
*/
DeleteTableSelect(url: string, table: any, selectType?: string | boolean, callbackFuc?: any, extraData?: any): void;
/**
* 删除数据
* @param url 请求url
* @param data 参数
* @param table 刷新表格
*/
DeleteTableData(url: string, data: any, table: any): Promise;
/**
* 保存数据
* @param url 请求url
* @param data 参数
* @param tableOrFunc 表格对象或回调
*/
SaveData(url: any, data: any, tableOrFunc?: any): Promise;
/**
* 保存form表单
* @param form xfrom对象
* @param url 请求url
* @param tableOrFunc 表格对象或回调
* @param data 参数
*/
SaveFormData(form: any, url: any, tableOrFunc?: any, data?: any): Promise;
/**
* POST请求服务器
* @param url 请求地址
* @param params 参数
* @param isShowError 是否显示错误
*/
RequestServer(url: any, params: any, isShowError?: boolean): Promise;
/**
* 保存数据
* @param url 请求url
* @param param 参数
* @param table 表格对象
* @constructor
*/
SaveNew(url: any, param: any, table?: any): Promise;
/**
* 刷新数据权限
* @param dataRightFilter 新参数
* @param oldDataRightFilter 旧参数
* @constructor
*/
onDataRightChangeEvent(dataRightFilter: any, oldDataRightFilter: any): void;
/**
* 自定义权限视图
*/
renderDataRightForm(): React.JSX.Element;
userDataFilter: any;
dataRightFilter: any;
dataRightFilterForm: any;
render(): React.JSX.Element;
renderView(view: any): React.JSX.Element;
}