/**************************************************** * Audit Information Platform Component * 包含树的参照项目组件 * 2020-08 * Sunny ****************************************************/ /// import 'ref-tree/lib/index.css'; import RefItem, { RefItemProp } from './RefItem'; import { ReferenceItem, StringStringMap } from '../types'; import '../style/TreeRef.css'; /** * 树参照组件属性 */ export interface TreeRefProp extends RefItemProp, ReferenceItem { cascadeChecked?: boolean; matchData?: any[]; modalWidth?: number; modalHeight?: number; } /** * 树组件传入数据的结构 */ export interface TreeItem { refname?: string; refpk?: string; name?: string; children?: TreeItem[]; [key: string]: any; } /** * 树形组件返回的数据类型 */ export interface TreeData { children?: TreeData[]; [key: string]: any; } /** * 树形组件 * * 弹出表格组件 * */ declare class TreeRef extends RefItem { /** * value: '{"refname":"用友集团","refpk":"001"}', * matchData: [{ name: '用友集团', refname: '用友集团', code: '001' }], * */ state: { value: string; treeData: never[]; matchData: any[]; oldData: never[]; defaultExpandedKeys: never[]; }; /** * 当点击文本框右侧弹出按钮时是否打开modal适用于级联情况下当选择不全时的处理 * @function */ private canClickGoOn; /** * 将列表数据转换为树结构数据 * @function * * @param {TreeItem[]} orgs * @returns {TreeData[]} */ private processOrgs; /** * 将树对象(包含子节点)列表转为一维列表 * @function * * @param {TreeData[]} treeData * @returns {TreeItem[]} */ private _treeDataToFlat; /** * 获取数据 * * @function * * value: '{"refname":"xx集团;yy集团","refpk":"001;002"}', * matchData: [{ name: 'xx集团', refname: 'xx集团', code: '001' }, { name: 'yy集团', refname: 'yy集团', code: '002' }], * * treeData: * { * name: 'xxx', * refname: 'xxx', * code: '001', * refpk: '001', * childrens: [ * { * name, refname, code, refpkm * }, * {}, ... * ] * } * * @param {StringStringMap} params * @param {string} defaultValue */ loadData: (params: StringStringMap, defaultValue?: string) => void; /** * 点击树组件的"确定"按钮触发时间 * @function * * @param {any[]} results */ private onSave; /** * 将请求数据转为组件所需数据格式 * @function * * @param {any[]} items */ private buildValue; /** * 数据选择发生变化触发例程 * @function * * @param {any[]} results */ private valueChange; /** * 获取值,按需 ***override*** * @function * * @returns {string} */ getValue: () => string; /** * 重置值 **override** * * @function */ clear: () => void; /** * 检索树 * @function * * @param {string} value */ private onSearch; /** * 匹配给定值的树节点数据 * @function * * @param {string} value * @param {boolean} flag 可选参数 */ private getRefTreeData; private getExtExpandKey; /** * 树数据过滤例程 * @function * * @param {string} value * @param {any[]} data * @param {any[]} originData * @param {number} level */ private filterTree; private handlerShow; private handleTreeSelect; private handleExpand; render(): JSX.Element; } export default TreeRef;