@flatbiz/antd 4.2.36 → 4.2.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/button-operate/index.js +1 -1
- package/esm/button-operate-6add2cbf.js +3 -0
- package/esm/button-operate-6add2cbf.js.map +1 -0
- package/esm/{cell-render-8d9d3ee9.js → cell-render-03055c65.js} +2 -2
- package/esm/{cell-render-8d9d3ee9.js.map → cell-render-03055c65.js.map} +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/editable-table/index.js +5 -2
- package/esm/editable-table-2aa53f04.js +3 -0
- package/esm/{editable-table-6bd8df15.js.map → editable-table-2aa53f04.js.map} +1 -1
- package/esm/index.js +1 -1
- package/esm/simple-layout/index.css +1 -1
- package/esm/simple-layout/index.js +1 -1
- package/esm/simple-layout-08f90dab.js +3 -0
- package/esm/simple-layout-08f90dab.js.map +1 -0
- package/esm/table-cell-render/index.js +1 -1
- package/esm/tabs-wrapper/index.css +1 -1
- package/esm/tabs-wrapper/index.js +1 -1
- package/esm/{tabs-wrapper-e26ba7fb.js → tabs-wrapper-0a2da713.js} +2 -2
- package/esm/{tabs-wrapper-e26ba7fb.js.map → tabs-wrapper-0a2da713.js.map} +1 -1
- package/esm/tree-wrapper/index.js +3 -3
- package/esm/tree-wrapper/index.js.map +1 -1
- package/esm/upload-wrapper/index.js +1 -1
- package/esm/upload-wrapper-df8a2277.js +3 -0
- package/esm/upload-wrapper-df8a2277.js.map +1 -0
- package/index.d.ts +96 -82
- package/index.js +1 -1
- package/package.json +8 -8
- package/esm/button-operate-04d9185b.js +0 -3
- package/esm/button-operate-04d9185b.js.map +0 -1
- package/esm/editable-table-6bd8df15.js +0 -3
- package/esm/simple-layout-1676e586.js +0 -3
- package/esm/simple-layout-1676e586.js.map +0 -1
- package/esm/tree-wrapper-ea6a5bdd.js +0 -3
- package/esm/tree-wrapper-ea6a5bdd.js.map +0 -1
- package/esm/upload-wrapper-f20208d6.js +0 -3
- package/esm/upload-wrapper-f20208d6.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-layout-08f90dab.js","sources":["@flatbiz/antd/src/simple-layout/simple-layout.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport { Space } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, ReactNode } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type SimpleLayoutProps = {\n className?: string;\n style?: CSSProperties;\n title?: string | ReactElement;\n desc?: string | ReactElement | string[] | ReactElement[];\n formLabelAlign?: 'left' | 'right';\n layoutType?: 'layer' | 'tight';\n titleLeftLine?: boolean;\n contentStyle?: CSSProperties;\n /** 优先级大于 style padding */\n padding?: CSSProperties['padding'];\n /** 优先级大于 style width */\n width?: CSSProperties['width'];\n children?: ReactNode | ReactNode[];\n titleExtra?: string | ReactElement;\n hidden?: boolean;\n titleFixed?: boolean;\n};\n\n/**\n * 简单布局\n * @param props\n * @returns\n * ```\n * 1. layoutType 布局类型\n * layer:分层布局\n * tight:紧凑布局\n * ```\n */\nexport const SimpleLayout = (props: SimpleLayoutProps) => {\n const labelAlign = props.formLabelAlign || 'right';\n const className = classNames(\n 'simple-layout',\n {\n 'simple-layout-tight': props.layoutType === 'tight',\n 'simple-layout-formlabel-left': labelAlign === 'left',\n 'simple-layout-title-fixed': props.titleFixed,\n },\n props.className,\n );\n\n const theme = fbaHooks.useThemeToken();\n const style = extend({ '--simple-layout-colorPrimary': theme.colorPrimary }, props.style, {\n padding: props.padding,\n width: props.width,\n });\n\n if (props.hidden) return <Fragment />;\n\n return (\n <div className={className} style={style}>\n {props.title && props.titleExtra ? (\n <div className={classNames({ 'simple-layout-title-sign': props.titleLeftLine })}>\n <Space className=\"simple-layout-title-extra-space\">\n <div className=\"simple-layout-title\">{props.title}</div>\n <div className=\"simple-layout-title-extra\">{props.titleExtra}</div>\n </Space>\n </div>\n ) : null}\n {props.title && !props.titleExtra ? (\n <div\n className={classNames('simple-layout-title', {\n 'simple-layout-title-sign': props.titleLeftLine,\n })}\n >\n {props.title}\n </div>\n ) : null}\n {props.desc && !isArray(props.desc) ? <div className=\"simple-layout-desc\">{props.desc}</div> : null}\n {props.desc && isArray(props.desc) ? (\n <div className=\"simple-layout-desc\">\n <Space direction=\"vertical\" size={5}>\n {(props.desc as string[]).map((item) => {\n return item;\n })}\n </Space>\n </div>\n ) : null}\n {props.children ? (\n <div className=\"simple-layout-content\" style={props.contentStyle}>\n {props.children}\n </div>\n ) : null}\n </div>\n );\n};\n\nSimpleLayout.defaultProps = {\n titleLeftLine: true,\n layoutType: 'layer',\n};\n"],"names":["SimpleLayout","props","labelAlign","formLabelAlign","className","_classNames","layoutType","titleFixed","theme","fbaHooks","useThemeToken","style","_extend","colorPrimary","padding","width","hidden","_jsx","Fragment","_jsxs","children","title","titleExtra","titleLeftLine","Space","desc","_isArray","direction","size","map","item","contentStyle","defaultProps"],"mappings":";kUAoCaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAMC,EAAaD,EAAME,gBAAkB,QAC3C,IAAMC,EAAYC,EAChB,gBACA,CACE,sBAAuBJ,EAAMK,aAAe,QAC5C,+BAAgCJ,IAAe,OAC/C,4BAA6BD,EAAMM,YAErCN,EAAMG,WAGR,IAAMI,EAAQC,EAASC,gBACvB,IAAMC,EAAQC,EAAO,CAAE,+BAAgCJ,EAAMK,cAAgBZ,EAAMU,MAAO,CACxFG,QAASb,EAAMa,QACfC,MAAOd,EAAMc,QAGf,GAAId,EAAMe,OAAQ,OAAOC,EAACC,EAAW,CAAA,GAErC,OACEC,EAAA,MAAA,CAAKf,UAAWA,EAAWO,MAAOA,EAAMS,SAAA,CACrCnB,EAAMoB,OAASpB,EAAMqB,WACpBL,EAAA,MAAA,CAAKb,UAAWC,EAAW,CAAE,2BAA4BJ,EAAMsB,gBAAiBH,SAC9ED,EAACK,EAAK,CAACpB,UAAU,kCAAiCgB,UAChDH,EAAA,MAAA,CAAKb,UAAU,sBAAqBgB,SAAEnB,EAAMoB,QAC5CJ,EAAA,MAAA,CAAKb,UAAU,4BAA2BgB,SAAEnB,EAAMqB,kBAGpD,KACHrB,EAAMoB,QAAUpB,EAAMqB,WACrBL,EAAA,MAAA,CACEb,UAAWC,EAAW,sBAAuB,CAC3C,2BAA4BJ,EAAMsB,gBACjCH,SAEFnB,EAAMoB,QAEP,KACHpB,EAAMwB,OAASC,EAAQzB,EAAMwB,MAAQR,EAAA,MAAA,CAAKb,UAAU,qBAAoBgB,SAAEnB,EAAMwB,OAAc,KAC9FxB,EAAMwB,MAAQC,EAAQzB,EAAMwB,MAC3BR,EAAA,MAAA,CAAKb,UAAU,qBAAoBgB,SACjCH,EAACO,EAAK,CAACG,UAAU,WAAWC,KAAM,EAAER,SAChCnB,EAAMwB,KAAkBI,KAAI,SAACC,GAC7B,OAAOA,SAIX,KACH7B,EAAMmB,SACLH,EAAA,MAAA,CAAKb,UAAU,wBAAwBO,MAAOV,EAAM8B,aAAaX,SAC9DnB,EAAMmB,WAEP,OAGV,EAEApB,EAAagC,aAAe,CAC1BT,cAAe,KACfjB,WAAY"}
|
|
@@ -8,5 +8,5 @@ import './../dropdown-menu-wrapper/index.css';
|
|
|
8
8
|
import './../tag-list-select/index.css';
|
|
9
9
|
import './index.css';
|
|
10
10
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
11
|
-
export{t as tableCellRender}from"../cell-render-
|
|
11
|
+
export{t as tableCellRender}from"../cell-render-03055c65.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-number";import"@dimjs/lang/cjs/is-empty";import"@flatbiz/utils";import"antd";import"react";import"../button-operate-6add2cbf.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../button-wrapper-c63ea6fc.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-1e895394.js";import"../dropdown-menu-wrapper-2c4b6cad.js";import"../tag-list-select-066f682f.js";
|
|
12
12
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.fba-tabs-wrapper-fixed{height:100%;overflow:hidden}.fba-tabs-wrapper-fixed>.ant-tabs-content-holder{flex:1;overflow-y:auto}.fba-tabs-wrapper-fixed>.ant-tabs-content-holder>.ant-tabs-content,.fba-tabs-wrapper-fixed>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{height:100%}.fba-tabs-wrapper-hidden-header .ant-tabs-nav{display:none}
|
|
1
|
+
.fba-tabs-wrapper .ant-tabs-nav{margin:0}.fba-tabs-wrapper-fixed{height:100%;overflow:hidden}.fba-tabs-wrapper-fixed>.ant-tabs-content-holder{flex:1;overflow-y:auto}.fba-tabs-wrapper-fixed>.ant-tabs-content-holder>.ant-tabs-content,.fba-tabs-wrapper-fixed>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{height:100%}.fba-tabs-wrapper-hidden-header .ant-tabs-nav{display:none}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
export{T as TabsWrapper}from"../tabs-wrapper-
|
|
4
|
+
export{T as TabsWrapper}from"../tabs-wrapper-0a2da713.js";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/utils/cjs/class-names";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-undefined";import"@flatbiz/utils";import"antd";import"react";import"react/jsx-runtime";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
-
import{_ as e,a}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as t}from"@wove/react/cjs/hooks";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{sessionStorageCache as c}from"@flatbiz/utils";import{Tabs as o}from"antd";import{useMemo as s}from"react";import{jsx as n}from"react/jsx-runtime";var v=["isSticky","isFixed","activeCacheKey","cancelActiveCache","hiddenTabHeader"];var l=function l(d){var f=d.isSticky,u=f===void 0?true:f,m=d.isFixed,p=m===void 0?true:m,y=d.activeCacheKey,
|
|
3
|
-
//# sourceMappingURL=tabs-wrapper-
|
|
2
|
+
import{_ as e,a}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as r}from"@dimjs/utils/cjs/class-names";import{hooks as t}from"@wove/react/cjs/hooks";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{sessionStorageCache as c}from"@flatbiz/utils";import{Tabs as o}from"antd";import{useMemo as s}from"react";import{jsx as n}from"react/jsx-runtime";var v=["isSticky","isFixed","activeCacheKey","cancelActiveCache","hiddenTabHeader"];var l=function l(d){var f=d.isSticky,u=f===void 0?true:f,m=d.isFixed,p=m===void 0?true:m,y=d.activeCacheKey,b=d.cancelActiveCache,h=d.hiddenTabHeader,K=e(d,v);var j=Object.prototype.hasOwnProperty.call(d,"activeKey");var C=y||"tabs-wrapper-activeKey";var A=i(p)?u:p;var g=t.useCallbackRef((function(e){if(b!==true&&!j){c.set(C,{activeKey:e})}K.onChange==null?void 0:K.onChange(e)}));var w=s((function(){var e;if(b===true||j){return d.defaultActiveKey}var a=(e=c.get(C))==null?void 0:e.activeKey;return a||K.defaultActiveKey}),[C,b,j,K.defaultActiveKey,d.defaultActiveKey]);var x=r("fba-tabs-wrapper",{"fba-tabs-wrapper-fixed":A,"fba-tabs-wrapper-hidden-header":h},K.className);return n(o,a({},K,{className:x,defaultActiveKey:w,onChange:g}))};export{l as T};
|
|
3
|
+
//# sourceMappingURL=tabs-wrapper-0a2da713.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs-wrapper-
|
|
1
|
+
{"version":3,"file":"tabs-wrapper-0a2da713.js","sources":["@flatbiz/antd/src/tabs-wrapper/tabs-wrapper.tsx"],"sourcesContent":["import { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { sessionStorageCache } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Tabs, TabsProps } from 'antd';\nimport { useMemo } from 'react';\nimport './style.less';\n\nexport type TabsWrapperProps = TabsProps & {\n /**\n * Tabs Header 提供 Sticky 效果,默认值:true\n * @deprecated 已废弃,请使用 isFixed 属性\n */\n isSticky?: boolean;\n /**\n * Tabs Header 提供 Fixed 效果,默认值:true\n */\n isFixed?: boolean;\n /** 是否取消 active 缓存 */\n cancelActiveCache?: boolean;\n activeCacheKey?: string;\n /** 隐藏头部 */\n hiddenTabHeader?: boolean;\n};\n\n/**\n * Tabs 包装组件\n * ```\n * 1. Tabs Header 提供 Sticky 效果,默认值:true\n * 2. 使用时,父级必须要有高度,可置于Flex布局中\n * 3. 默认缓存激活的tab item(activeKey受控操作下缓存无效)\n * 当未设置activeKey,非受控操作时,组件内部会会话缓存activeKey,在刷新时,会显示上次的激活的tab item\n * 缓存Key:如果未设置 activeCacheKey,则使用默认的 cache key(tabs-wrapper-activeKey)\n * 缓存模式:会话缓存,在浏览器关闭后,会清除\n * ```\n */\nexport const TabsWrapper = (props: TabsWrapperProps) => {\n const {\n isSticky = true,\n isFixed = true,\n activeCacheKey,\n cancelActiveCache,\n hiddenTabHeader,\n ...otherProps\n } = props;\n // 是否受控操作\n const isControl = Object.prototype.hasOwnProperty.call(props, 'activeKey');\n const cacheKey = activeCacheKey || 'tabs-wrapper-activeKey';\n const isFixedNew = isUndefined(isFixed) ? isSticky : isFixed;\n\n const onChange = hooks.useCallbackRef((activeKey: string) => {\n if (cancelActiveCache !== true && !isControl) {\n sessionStorageCache.set(cacheKey, { activeKey });\n }\n otherProps.onChange?.(activeKey);\n });\n\n const defaultActiveKey = useMemo(() => {\n if (cancelActiveCache === true || isControl) {\n return props.defaultActiveKey;\n }\n const chcheActiveKey = sessionStorageCache.get(cacheKey)?.activeKey as string | undefined;\n return chcheActiveKey || otherProps.defaultActiveKey;\n }, [cacheKey, cancelActiveCache, isControl, otherProps.defaultActiveKey, props.defaultActiveKey]);\n\n const className = classNames(\n 'fba-tabs-wrapper',\n { 'fba-tabs-wrapper-fixed': isFixedNew, 'fba-tabs-wrapper-hidden-header': hiddenTabHeader },\n otherProps.className,\n );\n\n return (\n <Tabs {...otherProps} className={className} defaultActiveKey={defaultActiveKey} onChange={onChange} />\n );\n};\n"],"names":["TabsWrapper","props","_props$isSticky","isSticky","_props$isFixed","isFixed","activeCacheKey","cancelActiveCache","hiddenTabHeader","otherProps","_objectWithoutPropertiesLoose","_excluded","isControl","Object","prototype","hasOwnProperty","call","cacheKey","isFixedNew","_isUndefined","onChange","_hooks","useCallbackRef","activeKey","sessionStorageCache","set","defaultActiveKey","useMemo","_sessionStorageCache$","chcheActiveKey","get","className","_classNames","_jsx","Tabs","_extends"],"mappings":";kdAoCaA,EAAc,SAAdA,EAAeC,GAC1B,IAAAC,EAOID,EANFE,SAAAA,EAAQD,SAAG,EAAA,KAAIA,EAAAE,EAMbH,EALFI,QAAAA,EAAOD,SAAG,EAAA,KAAIA,EACdE,EAIEL,EAJFK,eACAC,EAGEN,EAHFM,kBACAC,EAEEP,EAFFO,gBACGC,EAAUC,EACXT,EAAKU,GAET,IAAMC,EAAYC,OAAOC,UAAUC,eAAeC,KAAKf,EAAO,aAC9D,IAAMgB,EAAWX,GAAkB,yBACnC,IAAMY,EAAaC,EAAYd,GAAWF,EAAWE,EAErD,IAAMe,EAAWC,EAAMC,gBAAe,SAACC,GACrC,GAAIhB,IAAsB,OAASK,EAAW,CAC5CY,EAAoBC,IAAIR,EAAU,CAAEM,UAAAA,GACtC,CACAd,EAAWW,UAAXX,UAAAA,EAAAA,EAAWW,SAAWG,EACxB,IAEA,IAAMG,EAAmBC,GAAQ,WAAM,IAAAC,EACrC,GAAIrB,IAAsB,MAAQK,EAAW,CAC3C,OAAOX,EAAMyB,gBACf,CACA,IAAMG,GAAcD,EAAGJ,EAAoBM,IAAIb,KAAxBW,UAAAA,EAAAA,EAAmCL,UAC1D,OAAOM,GAAkBpB,EAAWiB,gBACtC,GAAG,CAACT,EAAUV,EAAmBK,EAAWH,EAAWiB,iBAAkBzB,EAAMyB,mBAE/E,IAAMK,EAAYC,EAChB,mBACA,CAAE,yBAA0Bd,EAAY,iCAAkCV,GAC1EC,EAAWsB,WAGb,OACEE,EAACC,EAAIC,KAAK1B,EAAU,CAAEsB,UAAWA,EAAWL,iBAAkBA,EAAkBN,SAAUA,IAE9F"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
+
import './../fba-utils/index.css';
|
|
3
|
+
import './../request-status/index.css';
|
|
2
4
|
import './../button-operate/index.css';
|
|
3
5
|
import './../button-wrapper/index.css';
|
|
4
6
|
import './../config-provider-wrapper/index.css';
|
|
5
7
|
import './../fba-hooks/index.css';
|
|
6
|
-
import './../fba-utils/index.css';
|
|
7
8
|
import './../dropdown-menu-wrapper/index.css';
|
|
8
9
|
import './../input-search-wrapper/index.css';
|
|
9
|
-
import './../request-status/index.css';
|
|
10
10
|
import './index.css';
|
|
11
11
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
12
|
-
export{T as TreeWrapper}from"../tree-wrapper-ea6a5bdd.js";import"@ant-design/icons/es/icons/CaretDownFilled";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-array";import"@dimjs/utils/cjs/extend";import"@wove/react/cjs/hooks";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/model";import"@flatbiz/utils";import"antd";import"react";import"../button-operate-04d9185b.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper-c63ea6fc.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";import"../fba-utils-1e895394.js";import"../dropdown-menu-wrapper-2c4b6cad.js";import"../input-search-wrapper-10d4a9b9.js";import"../request-status-03fc60e2.js";import"@dimjs/model-react";import"@dimjs/lang/cjs/is-object";import"dequal";
|
|
12
|
+
import{f as e}from"../fba-utils-1e895394.js";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{Model as t}from"@dimjs/model-react";import{treeToArray as n,treeToTiledArray as a,treeLeafParentsArray as i,isUndefinedOrNull as l,toArray as u,treeFilter as s}from"@flatbiz/utils";import o from"@ant-design/icons/es/icons/CaretDownFilled";import c from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as d}from"@dimjs/utils/cjs/class-names";import{extend as v}from"@dimjs/utils/cjs/extend";import{hooks as f}from"@wove/react/cjs/hooks";import{_ as p,a as m}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as h}from"@dimjs/model";import{Spin as g,Tree as b,Button as y,message as L}from"antd";import{forwardRef as C,useState as w,useMemo as j,useRef as R,useImperativeHandle as q,Fragment as N,isValidElement as k}from"react";import{a as S}from"../button-operate-6add2cbf.js";import{D as T}from"../dropdown-menu-wrapper-2c4b6cad.js";import{fbaHooks as D}from"../fba-hooks/index.js";import{I as P}from"../input-search-wrapper-10d4a9b9.js";import{R as E}from"../request-status-03fc60e2.js";import{tree as x}from"@dimjs/utils/cjs/tree";import{isObject as A}from"@dimjs/lang/cjs/is-object";import{dequal as I}from"dequal";import{jsxs as _,jsx as O}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper-c63ea6fc.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../use-responsive-point-21b8c601.js";var V={treeList:[],treeTiledArray:[],queryIsEmpty:false};var K={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=n(e.treeList,r.childrenName);e.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function e(t){return function(e){var a=n(e.treeList,t.childrenName);var i=a.find((function(e){return e[t.valueName]===t.value}));if(i){if(r(t.appendList)&&t.appendList.length>0){i[t.childrenName]=t.appendList}else{i.isLeaf=true}}e.treeTiledArray=n(e.treeList,t.childrenName)}}},state:V};var F={};var M=function e(r){if(!F[r]){F[r]=t(K)}return F[r]};var U=function e(r){var t=M(r).getState();return t.treeList};var z=function e(r,t,n){var l=a(t,n);return i(r,l,true,{value:"value",parentValue:"parentValue"})};var B=function e(t,n){var a=l(t)?[]:t;a=r(a)?a:[a];a=a.map((function(e){if(A(e))return e[n.value];return e}));return a};var H=function e(r,t){var n=B(r,t);var a={};n.forEach((function(e){a[e]=true}));return a};var W=function e(r,t,n){if(l(r)&&l(t))return true;var a=H(r,n);var i=H(t,n);var u=I(a,i);return u};var Y=function e(r,t,n){var a=n.node.key;var i=n.dragNode.key;var l=n.node.pos.split("-");var u=n.dropPosition-Number(l[l.length-1]);var s=t.value;var o=t.children;var c=function e(r,t,n){for(var a=0;a<r.length;a++){if(r[a][s]===t){return n(r[a],a,r)}if(r[a][o]){e(r[a][o],t,n)}}};var d=h(r);var v;c(d,i,(function(e,r,t){t.splice(r,1);v=e}));if(!n.dropToGap){c(d,a,(function(e){e[o]=e[o]||[];e[o].unshift(v)}))}else if((n.node.props.children||[]).length>0&&n.node.props.expanded&&u===1){c(d,a,(function(e){e[o]=e[o]||[];e[o].unshift(v)}))}else{var f=[];var p;c(d,a,(function(e,r,t){f=t;p=r}));if(u===-1){f.splice(p,0,v)}else{f.splice(p+1,0,v)}}return{dataList:d,dragNodeData:G(i,d,t)}};var G=function e(r,t,a){var i;var l=a.value;var u=a.children;x.walkThroughTree((i={},i[l]=undefined,i[u]=t,i),(function(e,r,t){e["__index"]=r;e["__parentId"]=t==null?void 0:t[l]}),u);var s=n(t,u);var o=s.find((function(e){return e[l]===r}));return{parentId:o==null?void 0:o["__parentId"],id:o==null?void 0:o[l],index:o==null?void 0:o["__index"]}};var J=["style","serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender"];var Q=C((function(e,t){var n=e.style,i=e.serviceConfig,C=e.effectDependencyList,x=e.selectorTreeList,A=e.value,I=e.onChange,V=e.modelKey,K=e.checkableResponseParentNode,F=K===void 0?true:K,U=e.checkable,H=e.onSelectorTreeListChange,G=e.onRequestResponseChange,Q=e.treeItemDataAdapter,X=e.searchValue,Z=e.showSearch,$=e.searchPlaceholder,ee=e.requestMessageConfig,re=e.labelInValueFieldNames,te=e.labelInValue,ne=e.disabledCanUse,ae=e.menuLayoutType,ie=e.menuTriggerType,le=e.initRootExpand,ue=e.searchResultType,se=e.onDropNodeHandle,oe=e.onDropPrev,ce=e.labelRender,de=p(e,J);var ve=e.hasOwnProperty("selectorTreeList");var fe=i||{};var pe=C||[];var me=w(),he=me[0],ge=me[1];var be=M(V).useStore(),ye=be[0],Le=be[1];var Ce=D.useSafeState(false),we=Ce[0],je=Ce[1];var Re="request-progress-"+e.modelKey;var qe=j((function(){return m({label:"label",value:"value",children:"children"},e.fieldNames)}),[e.fieldNames]);var Ne=R();var ke=ae===undefined?"fold":ae;var Se=ie===undefined?"click":ie;var Te=U===true;var De=j((function(){return m({label:"label",value:"value"},re)}),[re]);var Pe=w(),Ee=Pe[0],xe=Pe[1];var Ae=R(true);var Ie=w(0),_e=Ie[0],Oe=Ie[1];var Ve=R();var Ke=j((function(){var e=B(A,De);return e}),[De,A]);D.useEffectCustom((function(){if(l(A)&&Ae.current||ye.treeList.length==0)return;Ae.current=false;if(!W(A,Ve.current,De)){console.log("modelKey:"+V+" TreeWrapper key refresh",A,Ve.current);Ve.current=Te?Ke:Ke[0];var e=Be(Ke,true);ge(Array.from(new Set(e)));Ne.current=Ke;Oe(Date.now())}}),[A,ye.treeList]);var Fe=function e(r){return r===""||l(r)};var Me=function e(r){var t=fe.onRequestResultAdapter?fe.onRequestResultAdapter(r):r;return t};D.useEffectCustom((function(){xe(X)}),[X]);var Ue=f.useCallbackRef((function(){return new Promise((function(e,r){var t,n,a,i,l;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{je(false);void L.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!fe.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=fe.requiredParamsKeys;n=v({},fe.params);if(t){a=t.find((function(e){return Fe(n[e])}));if(a){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return s()}catch(e){return o(e)}};var d=function(e){try{window[Re]=false;je(false);void Le.changeRequestStatus("request-error");return c()}catch(e){return o(e)}};try{je(true);return Promise.resolve(Le.changeRequestStatus("request-progress")).then((function(e){try{window[Re]=true;return Promise.resolve(fe.onRequest==null?void 0:fe.onRequest(n)).then((function(e){try{i=e;G==null?void 0:G(i);l=Me(i);ze(l||[]);je(false);if(le&&u(l).length){ge([l==null?void 0:l[0][qe.value]])}window[Re]=false;return c()}catch(e){return d(e)}}),d)}catch(e){return d(e)}}),d)}catch(e){d(e)}}catch(e){o(e)}}))}));D.useEffectCustom((function(){if(ve)return;if(Boolean(pe.length)){void Ue();return}var e=M(V).getState();if(e.requestStatus==="request-success"){H==null?void 0:H(e.treeList);return}if(!window[Re]){void Ue()}else{H==null?void 0:H(e.treeList)}}),pe);D.useEffectCustom((function(){if(ve){ze(x||[])}}),[x]);var ze=f.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&ye.treeList.length===0){void Le.changeRequestStatus("request-success");return}void Le.setTreeList({treeList:e||[],childrenName:qe.children});H==null?void 0:H(e)}));var Be=f.useCallbackRef((function(e,r){var t=[];e.forEach((function(e){if(!r&&he!=null&&he.includes(e))return;var n=z(e,ye.treeList,qe);t=t.concat(n.map((function(e){return e.value})))}));return t}));f.useUpdateEffect((function(){if(Ee){var e=a(ye.treeList||[],qe);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Ee||"")}));ge((function(e){var t=Be(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{ge([])}}),[Ee]);q(t,(function(){return{onClearSelectorList:function e(){void Le.resetTreeList()},getTreeDataList:function e(){return ye.treeList}}}));var He=f.useCallbackRef((function(e){ge(e)}));var We=f.useCallbackRef((function(e,t,n){Ve.current=e;var a=l(t)?[]:r(t)?t:[t];if(l(e)){I==null?void 0:I(e,t,n);return}if(te){var i=De.label;var u=De.value;var s=a.map((function(e){var r;return r={},r[i]=e[qe.label],r[u]=e[qe.value],r}));if(r(e)){I==null?void 0:I(s,a,n)}else{I==null?void 0:I(s[0],a[0],n)}}else{if(r(e)){I==null?void 0:I(e,a,n)}else{I==null?void 0:I(e,a[0],n)}}}));var Ye=f.useCallbackRef((function(t,n){var a=e.checkStrictly?t.checked:t;a=l(t)?[]:t;a=r(a)?a:[a];var i=[];var u=[];var s=[];var o=[];a.forEach((function(e){var t=ye.treeTiledArray.find((function(r){return r[qe.value]===e}));if(!t)return;var n=t==null?void 0:t[qe.children];if(!r(n)||n.length===0){i.push(t);u.push(t[qe.value])}s.push(t);o.push(t[qe.value])}));if(U){ge((function(e){var r=Be(u).concat(e||[]);return Array.from(new Set(r))}));if(!F&&!e.checkStrictly){We(u,i,s)}else{We(o,s,s)}}else{if(a[0]){var c=s.find((function(e){return e[qe.value]===a[0]}));We(a[0],c,[c])}else{var d=n.node[qe.value];var v=ye.treeTiledArray.find((function(e){return e[qe.value]===d}));We(undefined,v,[v])}}}));var Ge=f.useCallbackRef((function(e){return Q==null?void 0:Q(e)}));var Je=j((function(){var e=h(ye.treeList||[]);if(Ee&&ue!=="highlight"){return s(h(ye.treeList||[]),(function(e){var r;var t=(r=e[qe.label])==null?void 0:r.toLowerCase();return t.indexOf(Ee.toLowerCase())>=0}))}return e}),[qe.label,ue,ye.treeList,Ee]);var Qe=j((function(){var e=function e(t){return t==null?void 0:t.map((function(t){var n;var a=(Ge==null?void 0:Ge(t))||t;var i=ne?undefined:a.disabled;var l=a[qe.label];var u;if(Ee){var s=l.indexOf(Ee);var o=l.substring(0,s);var c=l.slice(s+Ee.length);u=s>-1?_("span",{className:d({"v-tree-item-disabled":a.disabled}),children:[o,O("span",{className:"site-tree-search-value",children:Ee}),c]}):null}if(!u){u=O("span",{className:d({"v-tree-item-disabled":a.disabled}),children:l})}var v=a[qe.children];return m({},a,(n={disabled:i},n[qe.label]=u,n._treeItemName=l,n._disabled=a.disabled,n[qe.children]=r(v)&&v.length>0?e(v):undefined,n))}))};return e(Je)}),[Je,Ge,ne,qe.label,qe.children,Ee]);var Xe=f.useCallbackRef((function(r){return new Promise((function(t,n){return new Promise((function(a,i){var l,u,s,o;if(r[qe.children]){t();return a()}var c=function(){try{return a()}catch(e){return i(e)}};var d=function(e){try{void L.error(e.message||"数据加载异常...");n();return c()}catch(e){return i(e)}};try{return Promise.resolve((l=e.loadDataServiceConfig)==null?void 0:l.onRequest==null?void 0:l.onRequest((u=e.loadDataServiceConfig)==null?void 0:u.getParams==null?void 0:u.getParams(r))).then((function(e){try{s=e;o=fe.onRequestResultAdapter?fe.onRequestResultAdapter(s):s;void Le.treeListAppendChildren({value:r[qe.value],appendList:o,childrenName:qe.children,valueName:qe.value}).then((function(e){ze(e.treeList);t()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Ze=f.useCallbackRef((function(r){var t=r==null?void 0:r[qe.children];var n=e.loadDataFlag;var a=n?!r.isLeaf:false;var i=t&&t.length>0||a;return!i}));var $e=f.useCallbackRef((function(r){var t,n;var a=r._treeItemName||r[qe.label];if(ke==="fold"){var i;var l=[];if((i=e.menuOptions)!=null&&i.fold){var u,s,o;l=((u=e.menuOptions)==null?void 0:(s=u[ke])==null?void 0:s.call(u,m({},r,(o={},o[qe.label]=a,o))))||[]}else{var v;l=(e.getMenuOptions==null?void 0:e.getMenuOptions(m({},r,(v={},v[qe.label]=a,v))))||[]}return _(N,{children:[O("span",{className:"tree-item-title",children:(ce==null?void 0:ce(r))||(r==null?void 0:r[qe.label])}),l.length>0&&O(T,{menuList:l,children:O(c,{})})]})}var f=(t=e.menuOptions)==null?void 0:t.tile==null?void 0:t.tile(m({},r,(n={},n[qe.label]=a,n)));return _(N,{children:[O("span",{className:"tree-item-title",children:(ce==null?void 0:ce(r))||(r==null?void 0:r[qe.label])}),f?O(S,m({},f,{gap:5,className:d("tree-item-title-operate",f.className)})):null]})}));var er=f.useDebounceCallback((function(r){xe(r);e.onSearchValueChange==null?void 0:e.onSearchValueChange(r)}),300);var rr=f.useCallbackRef((function(e){er(e.target.value)}));var tr=f.useCallbackRef((function(r){if(!e.icon)return null;if(k(e.icon))return e.icon;var t=Ze(r.data);return e.icon(m({},r,{isParent:!t,isLeaf:t}))}));var nr=j((function(){return{title:qe.label,key:qe.value,children:qe.children}}),[qe]);var ar=Qe.length>0&&ye.requestStatus!=="request-error";var ir=m({showLine:{showLeafIcon:false},titleRender:$e,blockNode:true,switcherIcon:O(o,{}),onDrop:function e(r){var t=oe==null?void 0:oe(r);if(!t)return;var n=Y(Je,qe,r),a=n.dataList,i=n.dragNodeData;se==null?void 0:se(i);ze(a)}},de,{fieldNames:nr,expandedKeys:he,treeData:Qe,onExpand:He,loadData:e.loadDataFlag?Xe:undefined,style:{width:"100%"},icon:tr});var lr={onCheck:Ye,checkable:U,defaultCheckedKeys:Ne.current};var ur={onSelect:Ye,multiple:false,defaultSelectedKeys:Ne.current};var sr=U?lr:ur;var or=d("v-tree-wrapper","v-tree-wrapper-menu-"+Se);var cr=ye.treeList.length>0&&!ar&&Ee;return _("div",{className:or,style:n,children:[!!Z&&_("div",{className:"v-tree-wrapper-search-area",children:[O(P,{className:"v-tree-wrapper-search",placeholder:$,onChange:rr,value:X,allowClear:true}),!!e.searchExtraElement&&O("span",{className:"v-tree-wrapper-search-extra",children:e.searchExtraElement})]}),ar?_("div",{className:"v-tree-wrapper-tree-wrapper",children:[O(g,{spinning:ye.requestStatus==="request-progress"}),O(b,m({},sr,ir,{className:"v-tree-wrapper-tree"}),_e)]}):O(E,{status:ye.requestStatus,loading:we,messageConfig:m({"request-success":cr?"搜索结果为空":"暂无数据"},ee),errorButton:O(y,{type:"primary",onClick:Ue,children:"重新获取数据"})})]})}));Q.defaultProps={disabledCanUse:true};var X=e.attachPropertiesToComponent(Q,{getTreeDataList:U});export{X as TreeWrapper};
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/hooks.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx","@flatbiz/antd/src/tree-wrapper/index.ts"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { TPlainObject } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model';\n\nexport const getTreeDataList = (modelKey: string) => {\n const state = treeWrapperModel(modelKey).getState();\n return state.treeList as TPlainObject[];\n};\n","import { TAny, TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { tree } from '@dimjs/utils';\nimport { isUndefinedOrNull, LabelValueItem, treeToArray } from '@flatbiz/utils';\nimport { DataNode } from 'antd/es/tree';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: TAny,\n value2: TAny,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n\ntype OnTreeDropMethod = (\n dataList: TPlainObject[],\n fieldNames: { value: string; children: string },\n info: TAny,\n) => {\n dataList: TPlainObject[];\n dragNodeData: {\n parentId?: string | number;\n id: string | number;\n index: number;\n };\n};\n\nexport const onTreeDrop: OnTreeDropMethod = (dataList, fieldNames, info) => {\n const dropKey = info.node.key;\n const dragKey = info.dragNode.key;\n const dropPos = info.node.pos.split('-');\n const dropPosition = info.dropPosition - Number(dropPos[dropPos.length - 1]);\n const treeKeyName = fieldNames.value;\n const treeChildrenName = fieldNames.children;\n\n const loop = (\n data: DataNode[],\n key: React.Key,\n callback: (node: DataNode, i: number, data: DataNode[]) => void,\n ) => {\n for (let i = 0; i < data.length; i++) {\n if (data[i][treeKeyName] === key) {\n return callback(data[i], i, data);\n }\n if (data[i][treeChildrenName]) {\n loop(data[i][treeChildrenName]!, key, callback);\n }\n }\n };\n const data = cloneState(dataList) as DataNode[];\n\n // Find dragObject\n let dragObj: DataNode;\n loop(data, dragKey, (item, index, arr) => {\n arr.splice(index, 1);\n dragObj = item;\n });\n\n if (!info.dropToGap) {\n // Drop on the content\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n });\n } else if (\n (info.node.props.children || []).length > 0 && // Has children\n info.node.props.expanded && // Is expanded\n dropPosition === 1 // On the bottom gap\n ) {\n loop(data, dropKey, (item) => {\n item[treeChildrenName] = item[treeChildrenName] || [];\n // where to insert 示例添加到头部,可以是随意位置\n item[treeChildrenName].unshift(dragObj);\n // in previous version, we use item.children.push(dragObj) to insert the\n // item to the tail of the children\n });\n } else {\n let ar: DataNode[] = [];\n let i: number;\n loop(data, dropKey, (_item, index, arr) => {\n ar = arr;\n i = index;\n });\n if (dropPosition === -1) {\n ar.splice(i!, 0, dragObj!);\n } else {\n ar.splice(i! + 1, 0, dragObj!);\n }\n }\n return {\n dataList: data,\n dragNodeData: dragNodeData(dragKey, data, fieldNames),\n };\n};\n\nexport const dragNodeData = (\n dorpNodeId: TAny,\n dataList: TAny[],\n fieldNames: { value: string; children: string },\n) => {\n const id = fieldNames.value;\n const children = fieldNames.children;\n tree.walkThroughTree<TPlainObject, TAny>(\n { [id]: undefined, [children]: dataList } as TAny,\n (node, index, _parent) => {\n node['__index'] = index;\n node['__parentId'] = _parent?.[id];\n },\n children,\n );\n const tileList = treeToArray(dataList, children);\n const target = tileList.find((item) => item[id] === dorpNodeId);\n return {\n parentId: target?.['__parentId'],\n id: target?.[id],\n index: target?.['__index'],\n };\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { hooks } from '@wove/react';\nimport { Button, message, Spin, Tree, TreeProps } from 'antd';\nimport {\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { isUndefinedOrNull, TAny, toArray, TPlainObject, treeFilter, treeToTiledArray } from '@flatbiz/utils';\n\nimport { ButtonOperate, ButtonOperateItem, ButtonOperateProps } from '../button-operate';\nimport { DropdownMenuItem, DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\nimport { treeWrapperModel } from './model';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, onTreeDrop, treeWrapperValueDeepEqual } from './utils';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\ntype TreeLoadDataServiceConfig = {\n getParams: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'expandedKeys'\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'defaultCheckedKeys'\n | 'defaultSelectedKeys'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n> & {\n modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n * ```\n * 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调\n * ```\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onRequestResponseChange?: (data: TAny) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /**\n * 菜单结构类型 tile/平铺 fold/折叠;默认:fold\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuLayoutType?: 'tile' | 'fold';\n /**\n * 菜单触发类型,默认:click\n * ```\n * 自定义设置 titleRender 后失效\n * ```\n */\n menuTriggerType?: 'click' | 'hover';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期,请使用 menuOptions\n * @returns\n * ```\n * 1. menuLayoutType = tile 无效\n * 2. 自定义设置 titleRender 后失效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n\n /**\n * 根据 menuLayoutType 类型赋值\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n icon?: (data: { isParent: boolean; isLeaf: boolean }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n /** 搜素过滤方式,高亮 | 过滤;默认:filter */\n searchResultType?: 'highlight' | 'filter';\n /**\n * 拖拽节点处理,自定义onDrop事件后,失效\n * ```\n * 参数\n * 1. parentId 当前拖拽节点的父节点ID\n * 2. id 当前拖拽节点ID\n * 3. index 当前拖拽节点所在数组下标\n * ```\n */\n onDropNodeHandle?: (result: { parentId?: string | number; id: string | number; index: number }) => void;\n /**\n * 拖拽排序前判断,如果返回 true,可排序,其他不可排序\n * ```\n * 可用于需要权限控制判断\n * ```\n */\n onDropPrev?: (info) => boolean;\n /**\n * 标签渲染\n * ```\n * 1. 自定义设置 titleRender 后失效\n * 2. 与titleRender的区别\n * a. 设置 labelRender 后,menuLayout有效\n * b. 设置 titleRender 后,menuLayout失效\n * ```\n */\n labelRender?: (nodeData: TPlainObject) => ReactElement;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n style,\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n onRequestResponseChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n initRootExpand,\n searchResultType,\n onDropNodeHandle,\n onDropPrev,\n labelRender,\n ...otherProps\n } = props;\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n // 必须是数组格式\n const defaultValueRef = useRef<Array<string | number>>();\n const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n\n const isMultiple = checkable === true;\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<string>();\n\n const isFirstUseValueRef = useRef(true);\n const [refreshKey, setRefreshKey] = useState(0);\n const innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if ((isUndefinedOrNull(value) && isFirstUseValueRef.current) || state.treeList.length == 0) return;\n isFirstUseValueRef.current = false;\n if (!treeWrapperValueDeepEqual(value, innerOperateValueRef.current, labelInValueFieldNamesMerge)) {\n console.log(`modelKey:${modelKey} TreeWrapper key refresh`, value, innerOperateValueRef.current);\n innerOperateValueRef.current = isMultiple ? valueList : valueList[0];\n // 重新计算 expandedKeys\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(expandedKeys)));\n defaultValueRef.current = valueList;\n setRefreshKey(Date.now());\n }\n }, [value, state.treeList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n onRequestResponseChange?.(_respData);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n onChangeSelectorList(respData || []);\n setLoading(false);\n if (initRootExpand && toArray(respData).length) {\n setTreeExpandedKeys([respData?.[0][fieldNames.value]]);\n }\n window[requestPreKey] = false;\n } catch (error) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus('request-error');\n }\n } catch (error) {\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n onSelectorTreeListChange?.(allState.treeList);\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n } else {\n onSelectorTreeListChange?.(allState.treeList);\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus('request-success');\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = hooks.useCallbackRef((valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n });\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onRespChange = hooks.useCallbackRef((selectedKey, selectInfo?, selectAllList?) => {\n innerOperateValueRef.current = selectedKey;\n const selectList = isUndefinedOrNull(selectInfo) ? [] : isArray(selectInfo) ? selectInfo : [selectInfo];\n if (isUndefinedOrNull(selectedKey)) {\n onChange?.(selectedKey, selectInfo, selectAllList);\n return;\n }\n if (labelInValue) {\n const lvLabel = labelInValueFieldNamesMerge.label;\n const lvValue = labelInValueFieldNamesMerge.value;\n const labelInValueList = selectList.map((item) => {\n return {\n [lvLabel]: item[fieldNames.label],\n [lvValue]: item[fieldNames.value],\n };\n });\n if (isArray(selectedKey)) {\n onChange?.(labelInValueList, selectList, selectAllList);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode]);\n } else {\n const nodeValue = operateInfo.node[fieldNames.value];\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === nodeValue);\n onRespChange(undefined, target, [target]);\n }\n }\n });\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const originalDataList = useMemo(() => {\n const list = cloneState(state.treeList || []);\n if (treeSearchValue && searchResultType !== 'highlight') {\n return treeFilter(cloneState(state.treeList || []), (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n });\n }\n return list;\n }, [fieldNames.label, searchResultType, state.treeList, treeSearchValue]);\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = adapterItem[fieldNames.label] as string;\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom) {\n titleDom = (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>{strTitle}</span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]: isArray(children) && children.length > 0 ? loop(children) : undefined,\n };\n });\n return loop(originalDataList);\n }, [\n originalDataList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions}>\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n return (\n <Fragment>\n <span className=\"tree-item-title\">{labelRender?.(nodeData) || nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n {...menuOptions}\n gap={5}\n className={classNames('tree-item-title-operate', menuOptions.className)}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef((e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n });\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return { title: fieldNames.label, key: fieldNames.value, children: fieldNames.children };\n }, [fieldNames]);\n const showTree = treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n\n onDrop: (info) => {\n const boo = onDropPrev?.(info);\n if (!boo) return;\n const { dataList, dragNodeData } = onTreeDrop(originalDataList as TPlainObject[], fieldNames, info);\n onDropNodeHandle?.(dragNodeData);\n onChangeSelectorList(dataList);\n },\n ...otherProps,\n fieldNames: treeFieldNames,\n expandedKeys: treeExpandedKeys,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%' },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n // 必须是数组格式\n defaultCheckedKeys: defaultValueRef.current,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n // 必须是数组格式\n defaultSelectedKeys: defaultValueRef.current,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`);\n const isSearchEmpty = state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName} style={style}>\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\">\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">{props.searchExtraElement}</span>\n )}\n </div>\n )}\n\n {showTree ? (\n <div className=\"v-tree-wrapper-tree-wrapper\">\n <Spin spinning={state.requestStatus === 'request-progress'} />\n <Tree key={refreshKey} {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n </div>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\n};\n","import { fbaUtils } from '../fba-utils';\nimport { getTreeDataList } from './hooks';\nimport { TreeWrapper as TreeWrapperInner } from './tree-wrapper';\n\nexport type * from './tree-wrapper';\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效\n * ```\n */\nexport const TreeWrapper = fbaUtils.attachPropertiesToComponent(TreeWrapperInner, {\n /**\n * 获取树形原数据\n * ```\n * 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据\n * ```\n */\n getTreeDataList: getTreeDataList,\n});\n"],"names":["defaultState","treeList","treeTiledArray","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","requestStatus","resetTreeList","changeRequestStatus","treeListAppendChildren","array","target","find","item","valueName","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getTreeDataList","modelKey","getState","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","array2map","list","forEach","treeWrapperValueDeepEqual","value1","value2","object1","object2","diff","dequal","onTreeDrop","dataList","info","dropKey","node","dragKey","dragNode","dropPos","pos","split","dropPosition","Number","treeKeyName","treeChildrenName","children","loop","callback","i","cloneState","dragObj","index","arr","splice","dropToGap","unshift","props","expanded","ar","_item","dragNodeData","dorpNodeId","_tree$walkThroughTree","id","_tree","walkThroughTree","undefined","_parent","tileList","parentId","TreeWrapper","forwardRef","ref","style","serviceConfig","effectDependencyList","selectorTreeList","onChange","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","onRequestResponseChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","initRootExpand","searchResultType","onDropNodeHandle","onDropPrev","labelRender","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","defaultValueRef","useRef","menuLayoutTypeNew","menuTriggerTypeNew","isMultiple","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","isFirstUseValueRef","_useState3","refreshKey","setRefreshKey","innerOperateValueRef","valueList","useEffectCustom","current","console","log","expandedKeys","getTreeExpandedKeys","Array","from","Set","Date","now","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","toArray","Boolean","allState","refresh","newTreeExpandedKeys","includes","targetList","concat","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","operateInfo","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","treeItemDataAdapterHandle","dataItem","originalDataList","treeFilter","_node$fieldNames$labe","toLowerCase","indexOf","treeData","_extends2","adapterItem","disabled","strTitle","titleDom","beforeStr","substring","afterStr","slice","_jsxs","className","_classNames","_jsx","_treeItemName","_disabled","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_props$menuOptions3","_extends5","stringLabel","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends3","call","_extends4","getMenuOptions","Fragment","DropdownMenuWrapper","menuList","_MoreOutlined","tile","ButtonOperate","gap","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","onDrop","boo","_onTreeDrop","width","checkedProps","onCheck","defaultCheckedKeys","selectedProps","onSelect","multiple","defaultSelectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Spin","spinning","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps","fbaUtils","attachPropertiesToComponent","TreeWrapperInner"],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
import './../fba-hooks/index.css';
|
|
3
3
|
import './index.css';
|
|
4
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
5
|
-
export{U as UploadWrapper}from"../upload-wrapper-
|
|
5
|
+
export{U as UploadWrapper}from"../upload-wrapper-df8a2277.js";import"@ant-design/icons/es/icons/PlusOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-empty";import"@wove/react/cjs/hooks";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/utils/cjs/extend";import"@flatbiz/utils";import"antd";import"react";import"react-dom";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"react/jsx-runtime";
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
2
|
+
import r from"@ant-design/icons/es/icons/PlusOutlined";import{_ as e,a as i}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{isEmpty as t}from"@dimjs/lang/cjs/is-empty";import{hooks as a}from"@wove/react/cjs/hooks";import{isPlainObject as o}from"@dimjs/lang/cjs/is-plain-object";import{extend as s}from"@dimjs/utils/cjs/extend";import{toArray as u}from"@flatbiz/utils";import{message as l,Upload as d,Button as f}from"antd";import{useState as m,Fragment as c}from"react";import{flushSync as p}from"react-dom";import{fbaHooks as v}from"./fba-hooks/index.js";import{jsx as g,jsxs as h}from"react/jsx-runtime";var j=["onChange","onUploadError","value","triggerText"];var x=function r(f){var c=f.onChange,h=f.onUploadError,x=f.value,y=f.triggerText,C=e(f,j);var b=m(),O=b[0],R=b[1];var U=s({uid:"uid",name:"name",url:"url"},f.fieldNames);v.useEffectCustom((function(){var r=(O==null?void 0:O.filter((function(r){return r["status"]==="error"})))||[];var e=(x==null?void 0:x.map((function(r){return{uid:r[U.uid],name:r[U.name],url:r[U.url],status:"done",isOriginal:true}})))||[];if(r.length>0){var i=r.map((function(r){return{uid:r.uid,name:r.name,status:"error",isOriginal:true,response:r["response"]}}));e=e.concat(i)}R(e)}),[U.name,U.uid,U.url,x]);var E=function r(e){var i=[];var n=false;e.forEach((function(r){if(r["isOriginal"]){if(r["status"]!=="error"){var e;i.push((e={},e[U.uid]=r.uid,e[U.name]=r.name,e[U.url]=r.url,e))}}else if(o(r.response)){if(r.response.code==="0000"){var t;var a=r.response.data;var s=(f.onRequestResultAdapter==null?void 0:f.onRequestResultAdapter(a))||a;i.push((t={},t[U.uid]=s[U.uid]||r.uid,t[U.name]=s[U.name]||r.name,t[U.url]=s[U.url],t))}else{n=true;r.status="error";r.response=r.response.message||"上传失败"}}}));if(n){R([].concat(e))}c==null?void 0:c(i)};var k=a.useCallbackRef((function(r){var e=r.fileList;if(r.file.status==="done"){var i=[].concat(r.fileList);var n=i.filter((function(r){return r.status==="done"||r["isOriginal"]}));var t=n.length===i.length;if(t){E(i)}p((function(){return R(i)}));return}else if(r.file.status==="removed"){var a=r.file.uid;var o=x!==undefined?[].concat(x):[];var s=o.findIndex((function(r){var e=r[U.uid];return e===a}));if(s>=0){o.splice(s,1)}c==null?void 0:c(o)}else if(r.file.status==="error"){if(h){h()}else{void l.error("上传操作失败...")}}R([].concat(e));f.onUploadChange==null?void 0:f.onUploadChange(r)}));var L=t(C.maxCount)?undefined:C.maxCount;return g(d,i({},C,{onChange:k,fileList:O,className:n("v-upload-wrapper",C.className),children:C.disabled||L===0||L&&u(O).length>=L?null:g(T,{triggerText:y,listType:C.listType,children:f.children})}))};var T=function e(i){if(i.children)return g(c,{children:i.children});if(i.listType==="picture-card"){return h("div",{children:[g(r,{}),g("div",{style:{marginTop:8},children:i.triggerText||"上传图片"})]})}if(i.listType==="picture"){return g(f,{type:"primary",ghost:true,children:i.triggerText||"选择图片上传"})}return g(f,{type:"primary",ghost:true,children:i.triggerText||"选择文件上传"})};export{x as U};
|
|
3
|
+
//# sourceMappingURL=upload-wrapper-df8a2277.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"upload-wrapper-df8a2277.js","sources":["@flatbiz/antd/src/upload-wrapper/upload-wrapper.tsx"],"sourcesContent":["import { PlusOutlined } from '@ant-design/icons';\nimport { isEmpty, isPlainObject } from '@dimjs/lang';\nimport { classNames, extend } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Upload, UploadProps } from 'antd';\nimport { UploadChangeParam } from 'antd/lib/upload';\nimport { UploadFile, UploadListType } from 'antd/lib/upload/interface';\nimport { Fragment, ReactNode, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type UploadWrapperFileItem = {\n uid: string;\n name: string;\n url?: string;\n};\n\nexport type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {\n value?: T[];\n onChange?: (value?: T[]) => void;\n onUploadError?: (message?: string) => void;\n onUploadChange?: (info: UploadChangeParam<UploadFile>) => void;\n /**\n * 属性映射\n */\n fieldNames?: {\n uid: string;\n name?: string;\n url?: string;\n };\n /**\n * 接口响应数据适配器,如果配置了fieldNames,适配器返回值会再进过fieldNames转换\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject;\n /** 操作触发显示文本 */\n triggerText?: string;\n} & Omit<UploadProps, 'onChange' | 'fileList'>;\n\n/**\n * 文件上传\n * ```\n * 1. 可通过配置children替换默认上传触发布局\n * 2. 接口返回结构:\n * formData上传接口返回值\n * {\n * code: '0000',\n * data: {\n * uid: '唯一值,可使用fileKey值'\n * name: '文件名称'\n * url: '预览地址'\n * }\n * }\n * 3. 如果接口返回的不是上面的字段名称,可通过fieldNames配置接口返回字段名称映射\n *\n * 4. 最佳使用方式,与Form结合使用\n * <Form.Item name=\"attachmentList\" label=\"附件\">\n * <UploadWrapper action={uploadUrl} />\n * </Form.Item>\n * ```\n *\n */\nexport const UploadWrapper = (props: UploadWrapperProps) => {\n const { onChange, onUploadError, value, triggerText, ...otherProps } = props;\n const [uploadList, setUploadList] = useState<UploadWrapperFileItem[]>();\n const fieldNames = extend(\n {\n uid: 'uid',\n name: 'name',\n url: 'url',\n },\n props.fieldNames,\n ) as Required<UploadWrapperFileItem>;\n\n fbaHooks.useEffectCustom(() => {\n const errorList = uploadList?.filter((item) => item['status'] === 'error') || [];\n let newList =\n value?.map((item) => {\n return {\n uid: item[fieldNames.uid],\n name: item[fieldNames.name],\n url: item[fieldNames.url],\n status: 'done',\n isOriginal: true,\n };\n }) || [];\n if (errorList.length > 0) {\n const newErrorList = errorList.map((item) => {\n return {\n uid: item.uid,\n name: item.name,\n status: 'error',\n isOriginal: true,\n response: item['response'],\n };\n }) as TAny[];\n newList = newList.concat(newErrorList);\n }\n setUploadList(newList);\n }, [fieldNames.name, fieldNames.uid, fieldNames.url, value]);\n\n const handleResponse = (fileList: UploadFile<TAny>[]) => {\n const newFileList: TAny[] = [];\n let hasError = false;\n fileList.forEach((item) => {\n if (item['isOriginal']) {\n if (item['status'] !== 'error') {\n newFileList.push({\n [fieldNames.uid]: item.uid,\n [fieldNames.name]: item.name,\n [fieldNames.url]: item.url,\n });\n }\n } else if (isPlainObject(item.response)) {\n if (item.response.code === '0000') {\n const respData = item.response.data;\n const result = (props.onRequestResultAdapter?.(respData) || respData) as TPlainObject;\n newFileList.push({\n [fieldNames.uid]: result[fieldNames.uid] || item.uid,\n [fieldNames.name]: result[fieldNames.name] || item.name,\n [fieldNames.url]: result[fieldNames.url],\n });\n } else {\n hasError = true;\n item.status = 'error';\n item.response = item.response.message || '上传失败';\n }\n }\n });\n if (hasError) {\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n }\n onChange?.(newFileList);\n };\n\n const onUploadChange = hooks.useCallbackRef((info) => {\n const fileList = info.fileList as TPlainObject[];\n if (info.file.status === 'done') {\n const newFileList = [...info.fileList];\n const donwList = newFileList.filter((item) => item.status === 'done' || item['isOriginal']);\n\n const allDone = donwList.length === newFileList.length;\n if (allDone) {\n handleResponse(newFileList);\n }\n flushSync(() => setUploadList(newFileList));\n return;\n } else if (info.file.status === 'removed') {\n const uid = info.file.uid;\n const targetList = value !== undefined ? [...value] : [];\n const targetIndex = targetList.findIndex((item) => {\n const tempUid = item[fieldNames.uid];\n return tempUid === uid;\n });\n if (targetIndex >= 0) {\n targetList.splice(targetIndex, 1);\n }\n onChange?.(targetList);\n } else if (info.file.status === 'error') {\n if (onUploadError) {\n onUploadError();\n } else {\n void message.error('上传操作失败...');\n }\n }\n // https://github.com/ant-design/ant-design/issues/2423\n setUploadList([...fileList] as UploadWrapperFileItem[]);\n props.onUploadChange?.(info);\n });\n\n const maxCount = isEmpty(otherProps.maxCount) ? undefined : otherProps.maxCount;\n\n return (\n <Upload\n {...otherProps}\n onChange={onUploadChange}\n fileList={uploadList}\n className={classNames('v-upload-wrapper', otherProps.className)}\n >\n {otherProps.disabled ||\n maxCount === 0 ||\n (maxCount && toArray(uploadList).length >= maxCount) ? null : (\n <UploadTrigger triggerText={triggerText} listType={otherProps.listType}>\n {props.children}\n </UploadTrigger>\n )}\n </Upload>\n );\n};\n\nconst UploadTrigger = (props: {\n listType?: UploadListType;\n children?: ReactNode | ReactNode[];\n triggerText?: string;\n}) => {\n if (props.children) return <Fragment>{props.children}</Fragment>;\n if (props.listType === 'picture-card') {\n return (\n <div>\n <PlusOutlined />\n <div style={{ marginTop: 8 }}>{props.triggerText || '上传图片'}</div>\n </div>\n );\n }\n if (props.listType === 'picture') {\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择图片上传'}\n </Button>\n );\n }\n return (\n <Button type=\"primary\" ghost>\n {props.triggerText || '选择文件上传'}\n </Button>\n );\n};\n"],"names":["UploadWrapper","props","onChange","onUploadError","value","triggerText","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","uploadList","setUploadList","fieldNames","_extend","uid","name","url","fbaHooks","useEffectCustom","errorList","filter","item","newList","map","status","isOriginal","length","newErrorList","response","concat","handleResponse","fileList","newFileList","hasError","forEach","_newFileList$push","push","_isPlainObject","code","_newFileList$push2","respData","data","result","onRequestResultAdapter","message","onUploadChange","_hooks","useCallbackRef","info","file","donwList","allDone","flushSync","targetList","undefined","targetIndex","findIndex","tempUid","splice","error","maxCount","_isEmpty","_jsx","Upload","_extends","className","_classNames","children","disabled","toArray","UploadTrigger","listType","Fragment","_jsxs","_PlusOutlined","style","marginTop","Button","type","ghost"],"mappings":";0tBA+DaA,EAAgB,SAAhBA,EAAiBC,GAC5B,IAAQC,EAA+DD,EAA/DC,SAAUC,EAAqDF,EAArDE,cAAeC,EAAsCH,EAAtCG,MAAOC,EAA+BJ,EAA/BI,YAAgBC,EAAUC,EAAKN,EAAKO,GAC5E,IAAAC,EAAoCC,IAA7BC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChC,IAAMI,EAAaC,EACjB,CACEC,IAAK,MACLC,KAAM,OACNC,IAAK,OAEPhB,EAAMY,YAGRK,EAASC,iBAAgB,WACvB,IAAMC,GAAYT,GAAU,UAAA,EAAVA,EAAYU,QAAO,SAACC,GAAI,OAAKA,EAAK,YAAc,OAAO,MAAK,GAC9E,IAAIC,GACFnB,GAAK,UAAA,EAALA,EAAOoB,KAAI,SAACF,GACV,MAAO,CACLP,IAAKO,EAAKT,EAAWE,KACrBC,KAAMM,EAAKT,EAAWG,MACtBC,IAAKK,EAAKT,EAAWI,KACrBQ,OAAQ,OACRC,WAAY,KAEf,MAAK,GACR,GAAIN,EAAUO,OAAS,EAAG,CACxB,IAAMC,EAAeR,EAAUI,KAAI,SAACF,GAClC,MAAO,CACLP,IAAKO,EAAKP,IACVC,KAAMM,EAAKN,KACXS,OAAQ,QACRC,WAAY,KACZG,SAAUP,EAAK,YAEnB,IACAC,EAAUA,EAAQO,OAAOF,EAC3B,CACAhB,EAAcW,EAChB,GAAG,CAACV,EAAWG,KAAMH,EAAWE,IAAKF,EAAWI,IAAKb,IAErD,IAAM2B,EAAiB,SAAjBA,EAAkBC,GACtB,IAAMC,EAAsB,GAC5B,IAAIC,EAAW,MACfF,EAASG,SAAQ,SAACb,GAChB,GAAIA,EAAK,cAAe,CACtB,GAAIA,EAAK,YAAc,QAAS,CAAA,IAAAc,EAC9BH,EAAYI,MAAID,EAAA,GAAAA,EACbvB,EAAWE,KAAMO,EAAKP,IAAGqB,EACzBvB,EAAWG,MAAOM,EAAKN,KAAIoB,EAC3BvB,EAAWI,KAAMK,EAAKL,IAAGmB,GAE9B,CACD,MAAM,GAAIE,EAAchB,EAAKO,UAAW,CACvC,GAAIP,EAAKO,SAASU,OAAS,OAAQ,CAAA,IAAAC,EACjC,IAAMC,EAAWnB,EAAKO,SAASa,KAC/B,IAAMC,GAAU1C,EAAM2C,wBAAsB,UAAA,EAA5B3C,EAAM2C,uBAAyBH,KAAaA,EAC5DR,EAAYI,MAAIG,EAAA,CAAA,EAAAA,EACb3B,EAAWE,KAAM4B,EAAO9B,EAAWE,MAAQO,EAAKP,IAAGyB,EACnD3B,EAAWG,MAAO2B,EAAO9B,EAAWG,OAASM,EAAKN,KAAIwB,EACtD3B,EAAWI,KAAM0B,EAAO9B,EAAWI,KAAIuB,GAE5C,KAAO,CACLN,EAAW,KACXZ,EAAKG,OAAS,QACdH,EAAKO,SAAWP,EAAKO,SAASgB,SAAW,MAC3C,CACF,CACF,IACA,GAAIX,EAAU,CACZtB,EAAakB,GAAAA,OAAKE,GACpB,CACA9B,GAAAA,UAAAA,EAAAA,EAAW+B,IAGb,IAAMa,EAAiBC,EAAMC,gBAAe,SAACC,GAC3C,IAAMjB,EAAWiB,EAAKjB,SACtB,GAAIiB,EAAKC,KAAKzB,SAAW,OAAQ,CAC/B,IAAMQ,EAAWH,GAAAA,OAAOmB,EAAKjB,UAC7B,IAAMmB,EAAWlB,EAAYZ,QAAO,SAACC,GAAI,OAAKA,EAAKG,SAAW,QAAUH,EAAK,iBAE7E,IAAM8B,EAAUD,EAASxB,SAAWM,EAAYN,OAChD,GAAIyB,EAAS,CACXrB,EAAeE,EACjB,CACAoB,GAAU,WAAA,OAAMzC,EAAcqB,MAC9B,MACD,MAAM,GAAIgB,EAAKC,KAAKzB,SAAW,UAAW,CACzC,IAAMV,EAAMkC,EAAKC,KAAKnC,IACtB,IAAMuC,EAAalD,IAAUmD,aAASzB,OAAO1B,GAAS,GACtD,IAAMoD,EAAcF,EAAWG,WAAU,SAACnC,GACxC,IAAMoC,EAAUpC,EAAKT,EAAWE,KAChC,OAAO2C,IAAY3C,CACrB,IACA,GAAIyC,GAAe,EAAG,CACpBF,EAAWK,OAAOH,EAAa,EACjC,CACAtD,GAAAA,UAAAA,EAAAA,EAAWoD,EACZ,MAAM,GAAIL,EAAKC,KAAKzB,SAAW,QAAS,CACvC,GAAItB,EAAe,CACjBA,GACF,KAAO,MACA0C,EAAQe,MAAM,YACrB,CACF,CAEAhD,EAAakB,GAAAA,OAAKE,IAClB/B,EAAM6C,gBAAN7C,UAAAA,EAAAA,EAAM6C,eAAiBG,EACzB,IAEA,IAAMY,EAAWC,EAAQxD,EAAWuD,UAAYN,UAAYjD,EAAWuD,SAEvE,OACEE,EAACC,EAAMC,KACD3D,EAAU,CACdJ,SAAU4C,EACVd,SAAUrB,EACVuD,UAAWC,EAAW,mBAAoB7D,EAAW4D,WAAWE,SAE/D9D,EAAW+D,UACZR,IAAa,GACZA,GAAYS,EAAQ3D,GAAYgB,QAAUkC,EAAY,KACrDE,EAACQ,EAAa,CAAClE,YAAaA,EAAamE,SAAUlE,EAAWkE,SAASJ,SACpEnE,EAAMmE,aAKjB,EAEA,IAAMG,EAAgB,SAAhBA,EAAiBtE,GAKrB,GAAIA,EAAMmE,SAAU,OAAOL,EAACU,EAAQ,CAAAL,SAAEnE,EAAMmE,WAC5C,GAAInE,EAAMuE,WAAa,eAAgB,CACrC,OACEE,EAAA,MAAA,CAAAN,UACEL,EAAAY,EAAA,CAAA,GACAZ,EAAA,MAAA,CAAKa,MAAO,CAAEC,UAAW,GAAIT,SAAEnE,EAAMI,aAAe,WAG1D,CACA,GAAIJ,EAAMuE,WAAa,UAAW,CAChC,OACET,EAACe,EAAM,CAACC,KAAK,UAAUC,MAAK,KAAAZ,SACzBnE,EAAMI,aAAe,UAG5B,CACA,OACE0D,EAACe,EAAM,CAACC,KAAK,UAAUC,MAAK,KAAAZ,SACzBnE,EAAMI,aAAe,UAG5B"}
|
package/index.d.ts
CHANGED
|
@@ -929,6 +929,8 @@ export type UploadWrapperProps<T extends TPlainObject = TPlainObject> = {
|
|
|
929
929
|
* 接口响应数据适配器,如果配置了fieldNames,适配器返回值会再进过fieldNames转换
|
|
930
930
|
*/
|
|
931
931
|
onRequestResultAdapter?: (respData: TAny) => TPlainObject;
|
|
932
|
+
/** 操作触发显示文本 */
|
|
933
|
+
triggerText?: string;
|
|
932
934
|
} & Omit<UploadProps, "onChange" | "fileList">;
|
|
933
935
|
/**
|
|
934
936
|
* 文件上传
|
|
@@ -1112,6 +1114,8 @@ export type EditableTableProps = {
|
|
|
1112
1114
|
*/
|
|
1113
1115
|
onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;
|
|
1114
1116
|
rules?: FormListProps["rules"];
|
|
1117
|
+
/** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */
|
|
1118
|
+
hiddenFooterBtn?: boolean;
|
|
1115
1119
|
};
|
|
1116
1120
|
export declare const EditableTable: (props: EditableTableProps) => JSX.Element;
|
|
1117
1121
|
export type EditorWrapperProps = {
|
|
@@ -1857,6 +1861,7 @@ export type SimpleLayoutProps = {
|
|
|
1857
1861
|
children?: ReactNode | ReactNode[];
|
|
1858
1862
|
titleExtra?: string | ReactElement;
|
|
1859
1863
|
hidden?: boolean;
|
|
1864
|
+
titleFixed?: boolean;
|
|
1860
1865
|
};
|
|
1861
1866
|
/**
|
|
1862
1867
|
* 简单布局
|
|
@@ -2372,6 +2377,9 @@ export type TreeWrapperProps = Omit<TreeProps, "expandedKeys" | "treeData" | "on
|
|
|
2372
2377
|
selectorTreeList?: TPlainObject[];
|
|
2373
2378
|
/**
|
|
2374
2379
|
* 通过服务获取数据后回调,当设置`selectorList`后无效果
|
|
2380
|
+
* ```
|
|
2381
|
+
* 相同modelKey,同时发起多个渲染时,只有第一个会执行 onSelectorTreeListChange 回调
|
|
2382
|
+
* ```
|
|
2375
2383
|
*/
|
|
2376
2384
|
onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;
|
|
2377
2385
|
onRequestResponseChange?: (data: TAny) => void;
|
|
@@ -2391,9 +2399,19 @@ export type TreeWrapperProps = Omit<TreeProps, "expandedKeys" | "treeData" | "on
|
|
|
2391
2399
|
*/
|
|
2392
2400
|
checkableResponseParentNode?: boolean;
|
|
2393
2401
|
loadDataFlag?: boolean;
|
|
2394
|
-
/**
|
|
2402
|
+
/**
|
|
2403
|
+
* 菜单结构类型 tile/平铺 fold/折叠;默认:fold
|
|
2404
|
+
* ```
|
|
2405
|
+
* 自定义设置 titleRender 后失效
|
|
2406
|
+
* ```
|
|
2407
|
+
*/
|
|
2395
2408
|
menuLayoutType?: "tile" | "fold";
|
|
2396
|
-
/**
|
|
2409
|
+
/**
|
|
2410
|
+
* 菜单触发类型,默认:click
|
|
2411
|
+
* ```
|
|
2412
|
+
* 自定义设置 titleRender 后失效
|
|
2413
|
+
* ```
|
|
2414
|
+
*/
|
|
2397
2415
|
menuTriggerType?: "click" | "hover";
|
|
2398
2416
|
/**
|
|
2399
2417
|
* 获取菜单类别
|
|
@@ -2401,7 +2419,8 @@ export type TreeWrapperProps = Omit<TreeProps, "expandedKeys" | "treeData" | "on
|
|
|
2401
2419
|
* @deprecated 已过期,请使用 menuOptions
|
|
2402
2420
|
* @returns
|
|
2403
2421
|
* ```
|
|
2404
|
-
*
|
|
2422
|
+
* 1. menuLayoutType = tile 无效
|
|
2423
|
+
* 2. 自定义设置 titleRender 后失效
|
|
2405
2424
|
* ```
|
|
2406
2425
|
*/
|
|
2407
2426
|
getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];
|
|
@@ -2456,6 +2475,37 @@ export type TreeWrapperProps = Omit<TreeProps, "expandedKeys" | "treeData" | "on
|
|
|
2456
2475
|
initRootExpand?: boolean;
|
|
2457
2476
|
/** 搜素过滤方式,高亮 | 过滤;默认:filter */
|
|
2458
2477
|
searchResultType?: "highlight" | "filter";
|
|
2478
|
+
/**
|
|
2479
|
+
* 拖拽节点处理,自定义onDrop事件后,失效
|
|
2480
|
+
* ```
|
|
2481
|
+
* 参数
|
|
2482
|
+
* 1. parentId 当前拖拽节点的父节点ID
|
|
2483
|
+
* 2. id 当前拖拽节点ID
|
|
2484
|
+
* 3. index 当前拖拽节点所在数组下标
|
|
2485
|
+
* ```
|
|
2486
|
+
*/
|
|
2487
|
+
onDropNodeHandle?: (result: {
|
|
2488
|
+
parentId?: string | number;
|
|
2489
|
+
id: string | number;
|
|
2490
|
+
index: number;
|
|
2491
|
+
}) => void;
|
|
2492
|
+
/**
|
|
2493
|
+
* 拖拽排序前判断,如果返回 true,可排序,其他不可排序
|
|
2494
|
+
* ```
|
|
2495
|
+
* 可用于需要权限控制判断
|
|
2496
|
+
* ```
|
|
2497
|
+
*/
|
|
2498
|
+
onDropPrev?: (info: any) => boolean;
|
|
2499
|
+
/**
|
|
2500
|
+
* 标签渲染
|
|
2501
|
+
* ```
|
|
2502
|
+
* 1. 自定义设置 titleRender 后失效
|
|
2503
|
+
* 2. 与titleRender的区别
|
|
2504
|
+
* a. 设置 labelRender 后,menuLayout有效
|
|
2505
|
+
* b. 设置 titleRender 后,menuLayout失效
|
|
2506
|
+
* ```
|
|
2507
|
+
*/
|
|
2508
|
+
labelRender?: (nodeData: TPlainObject) => ReactElement;
|
|
2459
2509
|
};
|
|
2460
2510
|
export type TreeWrapperRefApi = {
|
|
2461
2511
|
onClearSelectorList: () => void;
|
|
@@ -2474,112 +2524,76 @@ export type TreeWrapperRefApi = {
|
|
|
2474
2524
|
* 3. checkable=true,为多选模式
|
|
2475
2525
|
* 4. 设置value后,组件显示受控
|
|
2476
2526
|
* 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了
|
|
2527
|
+
* 6. 内置 onDrop 事件已处理数组排序,通过 onDropNodeHandle 事件可获取操作节点排序数据;自定义onDrop后,内置onDrop失效
|
|
2477
2528
|
* ```
|
|
2478
2529
|
*/
|
|
2479
|
-
export declare const TreeWrapper: import("react").ForwardRefExoticComponent<Omit<TreeProps<import("antd").TreeDataNode>, "multiple" | "icon" | "onSelect" | "onExpand" | "checkedKeys" | "fieldNames" | "defaultSelectedKeys" | "selectedKeys" | "loadData" | "expandedKeys" | "treeData" | "defaultCheckedKeys" | "onCheck"> & {
|
|
2530
|
+
export declare const TreeWrapper: import("react").ForwardRefExoticComponent<Omit<import("antd").TreeProps<import("antd").TreeDataNode>, "multiple" | "icon" | "onSelect" | "onExpand" | "checkedKeys" | "fieldNames" | "defaultSelectedKeys" | "selectedKeys" | "loadData" | "expandedKeys" | "treeData" | "defaultCheckedKeys" | "onCheck"> & {
|
|
2480
2531
|
modelKey: string;
|
|
2481
|
-
|
|
2482
|
-
|
|
2483
|
-
|
|
2484
|
-
|
|
2485
|
-
|
|
2486
|
-
|
|
2487
|
-
|
|
2488
|
-
|
|
2489
|
-
|
|
2490
|
-
|
|
2491
|
-
|
|
2492
|
-
|
|
2493
|
-
|
|
2494
|
-
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
/**
|
|
2498
|
-
* 通过服务获取数据后回调,当设置`selectorList`后无效果
|
|
2499
|
-
*/
|
|
2500
|
-
onSelectorTreeListChange?: ((dataList: TPlainObject[]) => void) | undefined;
|
|
2501
|
-
onRequestResponseChange?: ((data: TAny) => void) | undefined;
|
|
2502
|
-
onChange?: ((selectedKey?: TreeWrapperValue, operateNodeData?: TPlainObject[] | TPlainObject, operateAllNodeDataList?: TPlainObject[]) => void) | undefined;
|
|
2532
|
+
effectDependencyList?: import("react").DependencyList | undefined;
|
|
2533
|
+
serviceConfig?: {
|
|
2534
|
+
params?: import("@flatbiz/utils").TPlainObject | undefined;
|
|
2535
|
+
requiredParamsKeys?: string[] | undefined;
|
|
2536
|
+
onRequest?: ((params?: any) => any) | undefined;
|
|
2537
|
+
onRequestResultAdapter?: ((respData: any) => import("@flatbiz/utils").TPlainObject[]) | undefined;
|
|
2538
|
+
} | undefined;
|
|
2539
|
+
loadDataServiceConfig?: {
|
|
2540
|
+
getParams: (dataItem: import("@flatbiz/utils").TPlainObject) => import("@flatbiz/utils").TPlainObject;
|
|
2541
|
+
onRequest: (params: import("@flatbiz/utils").TPlainObject) => any;
|
|
2542
|
+
onRequestResultAdapter?: ((respData: any) => import("@flatbiz/utils").TPlainObject[]) | undefined;
|
|
2543
|
+
} | undefined;
|
|
2544
|
+
selectorTreeList?: import("@flatbiz/utils").TPlainObject[] | undefined;
|
|
2545
|
+
onSelectorTreeListChange?: ((dataList: import("@flatbiz/utils").TPlainObject[]) => void) | undefined;
|
|
2546
|
+
onRequestResponseChange?: ((data: any) => void) | undefined;
|
|
2547
|
+
onChange?: ((selectedKey?: (string | number | (string | number)[] | import("@flatbiz/utils").TPlainObject<string | number> | import("@flatbiz/utils").TPlainObject<string | number>[]) | undefined, operateNodeData?: import("@flatbiz/utils").TPlainObject | import("@flatbiz/utils").TPlainObject[] | undefined, operateAllNodeDataList?: import("@flatbiz/utils").TPlainObject[] | undefined) => void) | undefined;
|
|
2503
2548
|
fieldNames?: {
|
|
2504
2549
|
label?: string | undefined;
|
|
2505
2550
|
value?: string | undefined;
|
|
2506
2551
|
children?: string | undefined;
|
|
2507
2552
|
} | undefined;
|
|
2508
|
-
/**
|
|
2509
|
-
* 搜索关键字,打开tree折叠过滤关键字
|
|
2510
|
-
*/
|
|
2511
2553
|
searchValue?: string | undefined;
|
|
2512
|
-
/**
|
|
2513
|
-
* checkable模式下,onChange是否返回父节点,默认值true
|
|
2514
|
-
* 1. checkStrictly = true,模式下失效
|
|
2515
|
-
*/
|
|
2516
2554
|
checkableResponseParentNode?: boolean | undefined;
|
|
2517
2555
|
loadDataFlag?: boolean | undefined;
|
|
2518
|
-
/** 菜单结构类型 tile/平铺 fold/折叠;默认:fold */
|
|
2519
2556
|
menuLayoutType?: "tile" | "fold" | undefined;
|
|
2520
|
-
/** 菜单触发类型,默认:click */
|
|
2521
2557
|
menuTriggerType?: "click" | "hover" | undefined;
|
|
2522
|
-
|
|
2523
|
-
* 获取菜单类别
|
|
2524
|
-
* @param dataItem
|
|
2525
|
-
* @deprecated 已过期,请使用 menuOptions
|
|
2526
|
-
* @returns
|
|
2527
|
-
* ```
|
|
2528
|
-
* menuLayoutType = tile 无效
|
|
2529
|
-
* ```
|
|
2530
|
-
*/
|
|
2531
|
-
getMenuOptions?: ((dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[]) | undefined;
|
|
2532
|
-
/**
|
|
2533
|
-
* 根据 menuLayoutType 类型赋值
|
|
2534
|
-
*/
|
|
2558
|
+
getMenuOptions?: ((dataItem: import("@flatbiz/utils").TPlainObject) => ButtonOperateItem[] | DropdownMenuItem[]) | undefined;
|
|
2535
2559
|
menuOptions?: {
|
|
2536
|
-
tile?: ((dataItem: TPlainObject) => ButtonOperateProps) | undefined;
|
|
2537
|
-
fold?: ((dataItem: TPlainObject) => DropdownMenuItem[]) | undefined;
|
|
2560
|
+
tile?: ((dataItem: import("@flatbiz/utils").TPlainObject) => ButtonOperateProps) | undefined;
|
|
2561
|
+
fold?: ((dataItem: import("@flatbiz/utils").TPlainObject) => DropdownMenuItem[]) | undefined;
|
|
2538
2562
|
} | undefined;
|
|
2539
2563
|
showSearch?: boolean | undefined;
|
|
2540
|
-
onSearchValueChange?: ((searchValue?: string) => void) | undefined;
|
|
2564
|
+
onSearchValueChange?: ((searchValue?: string | undefined) => void) | undefined;
|
|
2541
2565
|
searchPlaceholder?: string | undefined;
|
|
2542
2566
|
icon?: ((data: {
|
|
2543
2567
|
isParent: boolean;
|
|
2544
2568
|
isLeaf: boolean;
|
|
2545
|
-
}) => ReactElement) | undefined;
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
*/
|
|
2549
|
-
requestMessageConfig?: TRequestStatusProps["messageConfig"];
|
|
2550
|
-
/**
|
|
2551
|
-
* value格式
|
|
2552
|
-
*```
|
|
2553
|
-
* 1. string 、number
|
|
2554
|
-
* 2. Array<string | number>
|
|
2555
|
-
* 3. lableInValue = true,根据labelInValueFieldNames配置格式
|
|
2556
|
-
* 4. lableInValue = true,Array<labelInValueFieldNames配置>
|
|
2557
|
-
* ```
|
|
2558
|
-
*/
|
|
2559
|
-
value?: TreeWrapperValue | undefined;
|
|
2569
|
+
}) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>) | undefined;
|
|
2570
|
+
requestMessageConfig?: Partial<Record<TRequestStatus, string>> | undefined;
|
|
2571
|
+
value?: (string | number | (string | number)[] | import("@flatbiz/utils").TPlainObject<string | number> | import("@flatbiz/utils").TPlainObject<string | number>[]) | undefined;
|
|
2560
2572
|
labelInValue?: boolean | undefined;
|
|
2561
|
-
/**
|
|
2562
|
-
* ```
|
|
2563
|
-
* lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }
|
|
2564
|
-
* ```
|
|
2565
|
-
*/
|
|
2566
2573
|
labelInValueFieldNames?: {
|
|
2567
2574
|
label: string;
|
|
2568
2575
|
value: string;
|
|
2569
2576
|
} | undefined;
|
|
2570
|
-
/**
|
|
2571
|
-
* 禁用状态是否可选,默认值true
|
|
2572
|
-
* 当dateItem中包含 disabled 则数据为禁用状态
|
|
2573
|
-
*/
|
|
2574
2577
|
disabledCanUse?: boolean | undefined;
|
|
2575
|
-
|
|
2576
|
-
|
|
2577
|
-
/** 搜索位置额外元素 */
|
|
2578
|
-
searchExtraElement?: ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
2579
|
-
/** 有唯一跟节点时,初始化是否展开,默认值:false */
|
|
2578
|
+
treeItemDataAdapter?: ((dataItem: import("@flatbiz/utils").TPlainObject) => import("@flatbiz/utils").TPlainObject) | undefined;
|
|
2579
|
+
searchExtraElement?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
2580
2580
|
initRootExpand?: boolean | undefined;
|
|
2581
|
-
/** 搜素过滤方式,高亮 | 过滤;默认:filter */
|
|
2582
2581
|
searchResultType?: "filter" | "highlight" | undefined;
|
|
2583
|
-
|
|
2582
|
+
onDropNodeHandle?: ((result: {
|
|
2583
|
+
parentId?: string | number | undefined;
|
|
2584
|
+
id: string | number;
|
|
2585
|
+
index: number;
|
|
2586
|
+
}) => void) | undefined;
|
|
2587
|
+
onDropPrev?: ((info: any) => boolean) | undefined;
|
|
2588
|
+
labelRender?: ((nodeData: import("@flatbiz/utils").TPlainObject) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>) | undefined;
|
|
2589
|
+
} & import("react").RefAttributes<TreeWrapperRefApi>> & {
|
|
2590
|
+
/**
|
|
2591
|
+
* 获取树形原数据
|
|
2592
|
+
* ```
|
|
2593
|
+
* 参数 modelKey 与 TreeWrapper属性 modelKey相同,才能获取数据
|
|
2594
|
+
* ```
|
|
2595
|
+
*/
|
|
2596
|
+
getTreeDataList: (modelKey: string) => import("@flatbiz/utils").TPlainObject[];
|
|
2597
|
+
};
|
|
2584
2598
|
|
|
2585
2599
|
export {};
|
package/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export * from './esm/index';
|
|
1
|
+
export * from './esm/index';
|