@flatbiz/antd 4.2.3 → 4.2.5

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.
@@ -6,5 +6,5 @@ import './../fba-hooks/index.css';
6
6
  import './../dropdown-menu-wrapper/index.css';
7
7
  import './index.css';
8
8
  /*! @flatjs/forge MIT @flatbiz/antd */
9
- export{a as ButtonOperate,B as ButtonOperateItemContent}from"../button-operate-4f17036d.js";import"@ant-design/icons/es/icons/MoreOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-9bef2281.js";import"@flatbiz/utils";import"../fba-utils-a4c7d94d.js";import"@dimjs/lang/cjs/is-array";import"react/jsx-runtime";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"../dropdown-menu-wrapper-40f6a65b.js";
9
+ export{a as ButtonOperate,B as ButtonOperateItemContent}from"../button-operate-35b64aae.js";import"@ant-design/icons/es/icons/MoreOutlined";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/utils/cjs/class-names";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"antd";import"react";import"../button-wrapper-9bef2281.js";import"@flatbiz/utils";import"../fba-utils-a4c7d94d.js";import"@dimjs/lang/cjs/is-array";import"react/jsx-runtime";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"../dropdown-menu-wrapper-40f6a65b.js";
10
10
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,3 @@
1
+ /*! @flatjs/forge MIT @flatbiz/antd */
2
+ import r from"@ant-design/icons/es/icons/MoreOutlined";import{a as o,_ as e}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{isString as l}from"@dimjs/lang/cjs/is-string";import{isPromise as s}from"@dimjs/lang/cjs/is-promise";import{hooks as c}from"@wove/react/cjs/hooks";import{Popover as a,Tooltip as p,Space as f,Divider as u,Popconfirm as d,Button as m}from"antd";import{Fragment as v,useState as h,isValidElement as y,useMemo as k,createElement as g}from"react";import{B as T}from"./button-wrapper-9bef2281.js";import{C}from"./config-provider-wrapper-dfe8f592.js";import{D as j}from"./dropdown-menu-wrapper-40f6a65b.js";import{f as P}from"./fba-utils-a4c7d94d.js";import{jsx as b,jsxs as w}from"react/jsx-runtime";var x=["text","color","onClick","needConfirm","confirmMessage","style","popconfirmProps"];var B=function r(o){if(o.hoverTips){if(o.tipsType==="popover"){return b(a,{content:o.hoverTips,zIndex:1e3,children:b(v,{children:o.children})})}return b(p,{title:o.hoverTips,zIndex:1e3,children:b(v,{children:o.children})})}return b(v,{children:o.children})};var H=function a(p){var v=h(false),T=v[0],C=v[1];var H=c.useCallbackRef((function(r,o){var e=r.onClick==null?void 0:r.onClick(o);if(e&&s(e)){C(true);return e.finally((function(){C(false)}))}return}));var I=p.operateList.filter((function(r){if(!r)return false;if(y(r)){var o,e;if(((o=r.props)==null?void 0:o["hidden"])===true)return false;var i=(e=r.props)==null?void 0:e["v-permission"];if(l(i)){return P.hasPermission(i)}return true}if(t(r)){if(!P.hasPermission(r.permission)){return false}return!r.hidden}return false}));var z=k((function(){return I.filter((function(r){if(y(r)){return true}return!r.isFold}))}),[I]);var A=k((function(){var r=I.filter((function(r){if(y(r)){return false}return r.isFold}));var e=[];r.forEach((function(r){var i=o({},r);delete i.isFold;e.push(i)}));return e}),[I]);var F=p.gap===undefined?10:p.gap;var M=!p.split?F:0;return b("div",{className:n("table-operate",p.className),children:w(f,o({split:p.split?b(u,{type:"vertical"}):null,size:M,wrap:i(p.wrap)?true:p.wrap},p.spaceProps,{children:[z.map((function(r,i){if(r&&y(r))return b(B,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:r});var n=r.text,t=r.color,l=r.onClick,s=r.needConfirm,c=r.confirmMessage,a=r.style,p=r.popconfirmProps,f=e(r,x);var u=r.type||"link";if(s&&!f.disabled){return b(B,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:g(d,o({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrow:true,destroyTooltipOnHide:true},p,{title:c,onConfirm:H.bind(null,r),key:i,okButtonProps:{loading:T},onOpenChange:function r(o){if(!o){C(false)}}}),b(L,o({danger:true},f,{onClick:undefined,type:u,style:a,color:t,children:y(n)?b("span",{children:n}):n})))},i)}return b(B,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:b(L,o({},f,{type:u,style:a,onClick:l,color:t,children:y(n)?b("span",{children:n}):n}))},i)})),A.length>0?b(j,{menuList:A,children:b(m,{type:"link",className:"fold-more-button",onClick:function r(o){o.stopPropagation()},children:p.foldIcon?p.foldIcon:b(r,{})})}):null]}))})};var L=function r(e){if(e.color&&!e.disabled){var i={};if(e.type==="link"){i={colorLink:e.color,colorLinkActive:e.color,colorLinkHover:e.color}}else if(e.type==="primary"){i={colorPrimary:e.color,colorPrimaryHover:e.color,colorPrimaryActive:e.color}}else{i={colorPrimaryHover:e.color,colorPrimaryActive:e.color,colorText:e.color,colorBorder:e.color}}return b(C,{theme:{components:{Button:i}},children:b(T,o({},e,{onClick:function r(o){o.stopPropagation();return e.onClick==null?void 0:e.onClick(o)},children:e.children}))})}return b(T,o({},e,{onClick:function r(o){o.stopPropagation();return e.onClick==null?void 0:e.onClick(o)},children:e.children}))};H.defaultProps={split:true};export{B,H as a};
3
+ //# sourceMappingURL=button-operate-35b64aae.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-operate-35b64aae.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport {\n Button,\n ButtonProps,\n Divider,\n Popconfirm,\n PopconfirmProps,\n Popover,\n Space,\n SpaceProps,\n Tooltip,\n} from 'antd';\nimport { OverrideToken } from 'antd/es/theme/interface';\nimport { FC, Fragment, isValidElement, ReactElement, ReactNode, useMemo, useState } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { ConfigProviderWrapper } from '../config-provider-wrapper';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonProps {\n /** hover 提示文字 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n // 是否折叠合拢\n isFold?: boolean;\n}\n\nexport interface ButtonOperateProps {\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n wrap?: boolean;\n foldIcon?: ReactElement;\n className?: string;\n split?: boolean;\n spaceProps?: SpaceProps;\n /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */\n gap?: number;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { children?: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Tooltip>\n );\n }\n return <Fragment>{props.children}</Fragment>;\n};\n\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item.permission)) {\n return false;\n }\n return !item.hidden;\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item.isFold;\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item.isFold;\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const gap = props.gap === undefined ? 10 : props.gap;\n const size = !props.split ? gap : 0;\n\n return (\n <div className={classNames('table-operate', props.className)}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item))\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType}>\n {item}\n </ButtonOperateItemContent>\n );\n const { text, color, onClick, needConfirm, confirmMessage, style, popconfirmProps, ...otherProps } =\n item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrow={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n >\n <DefaultButton\n danger\n {...otherProps}\n onClick={undefined}\n type={type}\n style={style}\n color={color}\n >\n {isValidElement(text) ? <span>{text}</span> : text}\n </DefaultButton>\n </Popconfirm>\n </ButtonOperateItemContent>\n );\n }\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n <DefaultButton {...otherProps} type={type} style={style} onClick={onClick} color={color}>\n {isValidElement(text) ? <span>{text}</span> : text}\n </DefaultButton>\n </ButtonOperateItemContent>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nconst DefaultButton = (props) => {\n if (props.color && !props.disabled) {\n let buttonTheme: OverrideToken['Button'] = {};\n if (props.type === 'link') {\n buttonTheme = {\n colorLink: props.color,\n colorLinkActive: props.color,\n colorLinkHover: props.color,\n };\n } else if (props.type === 'primary') {\n buttonTheme = {\n colorPrimary: props.color,\n colorPrimaryHover: props.color,\n colorPrimaryActive: props.color,\n };\n } else {\n buttonTheme = {\n colorPrimaryHover: props.color,\n colorPrimaryActive: props.color,\n colorText: props.color,\n colorBorder: props.color,\n };\n }\n\n return (\n <ConfigProviderWrapper\n theme={{\n components: {\n Button: buttonTheme,\n },\n }}\n >\n <ButtonWrapper\n {...props}\n onClick={(event) => {\n event.stopPropagation();\n return props.onClick?.(event);\n }}\n >\n {props.children}\n </ButtonWrapper>\n </ConfigProviderWrapper>\n );\n }\n return (\n <ButtonWrapper\n {...props}\n onClick={(event) => {\n event.stopPropagation();\n return props.onClick?.(event);\n }}\n >\n {props.children}\n </ButtonWrapper>\n );\n};\n\nButtonOperate.defaultProps = {\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Fragment","Tooltip","title","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","isValidElement","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","hidden","viewList","useMemo","isFold","foldList","filterList","forEach","target","_extends","push","gap","undefined","size","split","className","_classNames","_jsxs","Space","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","color","needConfirm","confirmMessage","style","popconfirmProps","otherProps","_objectWithoutPropertiesLoose","_excluded","disabled","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrow","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","DefaultButton","danger","length","DropdownMenuWrapper","menuList","Button","stopPropagation","foldIcon","_MoreOutlined","buttonTheme","colorLink","colorLinkActive","colorLinkHover","colorPrimary","colorPrimaryHover","colorPrimaryActive","colorText","colorBorder","ConfigProviderWrapper","theme","components","ButtonWrapper","defaultProps"],"mappings":"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"}
@@ -6,5 +6,5 @@ import './../simple-layout/index.css';
6
6
  import './../fba-hooks/index.css';
7
7
  import './index.css';
8
8
  /*! @flatjs/forge MIT @flatbiz/antd */
9
- import{a as e}from"../attach-properties-to-component-9d9644cf.js";import{isArray as t}from"@dimjs/lang/cjs/is-array";import{hooks as r}from"@wove/react/cjs/hooks";import{a as i,_ as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as o}from"@dimjs/model";import{Form as a,message as u,Table as s}from"antd";import{forwardRef as l,useState as c,useImperativeHandle as f,Children as d,useMemo as m,useRef as p}from"react";import{createCtx as v}from"@wove/react/cjs/create-ctx";import{Model as g}from"@dimjs/model-react";import{jsx as h,jsxs as y}from"react/jsx-runtime";import{B as C}from"../button-wrapper-9bef2281.js";import{FormGrid as S}from"../form-grid/index.js";import{S as q}from"../simple-layout-1676e586.js";import{isUndefinedOrNull as F,getUuid as R}from"@flatbiz/utils";import{fbaHooks as j}from"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-promise";import"../fba-utils-a4c7d94d.js";import"@dimjs/utils/cjs/class-names";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var P=v(),b=P[0],z=P[1];var w={queryCondition:{},isInit:true};var N={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=i({},e.queryCondition,t)}},resetFilterCondition:function e(){return function(e){e.queryCondition=w.queryCondition}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:w};var x={};var V=function e(t){if(!x[t]){x[t]=g(N)}return x[t]};var T=l((function(e,n){var s;var l=c([]),d=l[0],m=l[1];var p=c(0),v=p[0],g=p[1];var y=c(false),C=y[0],S=y[1];var q=V(e.modelKey).useStore(),F=q[0],R=q[1];var j=e.pageSize||((s=e.initialPaginationParams)==null?void 0:s.pageSize)||10;var P=e.initRequest===undefined?true:e.initRequest;var b=c(false),w=b[0],N=b[1];var x=i({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var T=a.useForm(),K=T[0];var k=r.useCallbackRef((function(r){return new Promise((function(i,n){var a,s,l,c,f,d,p,v,h,y;var C=function(){try{return i()}catch(e){return n(e)}};var q=function(e){try{S(false);void u.error(e.message);return C()}catch(e){return n(e)}};try{S(true);return Promise.resolve(R.updateFilterCondition(r)).then((function(r){try{a=r;s=o(a.queryCondition||{});l=e.serviceConfig,c=l.requestParamsAdapter,f=l.onRequest,d=l.requestResultAdapter;p=c?c(s):s;return Promise.resolve(f(p)).then((function(r){try{v=r||{};e.onDataSourceChange==null?void 0:e.onDataSourceChange(v);h=d?d(v):v;y=h[x.list];m(t(y)?y:[]);g(h[x.total]);S(false);return C()}catch(e){return q(e)}}),q)}catch(e){return q(e)}}),q)}catch(e){q(e)}}))}));var I=r.useCallbackRef((function(e){return new Promise((function(t,r){return Promise.resolve(R.resetFilterCondition()).then((function(i){try{K.resetFields();if(e){void R.updateFilterCondition(e);K.setFieldsValue(e)}return t()}catch(e){return r(e)}}),r)}))}));var A=r.useCallbackRef((function(t){return new Promise((function(r,n){var o;return Promise.resolve(R.resetFilterCondition()).then((function(a){try{K.resetFields();if(w){void k(i((o={},o[x.pageNo]=1,o[x.pageSize]=j,o),e.initialValues,t))}else{void k(i({},e.initialValues,t))}return r()}catch(e){return n(e)}}),n)}))}));var B=function e(){return i({},F.queryCondition,K.getFieldsValue())};f(n,(function(){return{onRequest:k,clearQueryCondition:I,getRequestParams:B,onResetRequest:A,form:K}}));var E=function e(){return{onRequest:k,clearQueryCondition:I,getRequestParams:B,onResetRequest:A,form:K}};var L=function e(t){N(t)};var D=function t(){var r=K.getFieldsValue();if(e.onFormFinish){e.onFormFinish(r)}else{if(w){var n;void k(i({},r,(n={},n[x.pageNo]=1,n[x.pageSize]=F.queryCondition.pageSize,n)))}else{void k(r)}}};return h(z,{value:{getEasyTableRef:E,modelKey:e.modelKey,onRequest:k,tableList:d,tableTotal:v,loading:C,fieldNames:x,pageSize:j,initRequest:P,initialValues:e.initialValues||{},onSetPaginationStatus:L,paginationStatus:w,onFormFinish:D,form:K},children:e.children})}));var K=function e(t){var n=t.queryButtonProps,o=t.resetButtonProps,u=t.filterOperate;var s=b(),l=s.modelKey,c=s.fieldNames,f=s.onRequest,m=s.pageSize,p=s.paginationStatus,v=s.initialValues,g=s.form,y=s.onFormFinish;var F=typeof t.children==="function"?t.children(g):t.children;var R=d.toArray(F);var j=V(l).useStore(),P=j[0],z=j[1];var w=r.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(z.resetFilterCondition()).then((function(n){try{g.resetFields();if(p){f(i((r={},r[c.pageNo]=1,r[c.pageSiz]=m,r),v))}else{f(v)}return e()}catch(e){return t(e)}}),t)}))}));var N=i({rightList:[!(n!=null&&n.hidden)?h(C,i({type:"primary",htmlType:"submit"},n,{children:(n==null?void 0:n.text)||"查询"}),"1"):null,!(o!=null&&o.hidden)?h(C,i({onClick:w},o,{children:(o==null?void 0:o.text)||"重置"}),"2"):null]},u==null?void 0:u(g));var x=R.map((function(e,t){if(e.type["domTypeName"]==="FormCol"){return e}return h(S.Col,{children:e},t)})).concat(h(S.OperateCol,i({},N),99));return h(q,{children:h(a,{form:g,onFinish:y,initialValues:i({},v,P.queryCondition),children:t.isPure?F:h(S.Row,{gutter:[15,0],children:x})})})};var k=["children","rowKey","pagination"];var I=function e(t){var r=t.children,o=t.rowKey,a=t.pagination,u=n(t,k);var l=b(),c=l.modelKey,f=l.fieldNames,d=l.onRequest,p=l.tableList,v=l.initRequest,g=l.pageSize,C=l.tableTotal,S=l.loading,P=l.initialValues,z=l.onSetPaginationStatus;var w=V(c).useStore(),N=w[0],x=w[1];var T=a==false?false:i({showSizeChanger:true,current:N.queryCondition[f.pageNo],pageSize:N.queryCondition[f.pageSize],total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},t.pagination);var K=function e(r){if(T){var i;d((i={},i[f.pageSize]=r.pageSize,i[f.pageNo]=r.current,i))}for(var n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++){o[a-1]=arguments[a]}t.onChange==null?void 0:t.onChange.apply(t,[r].concat(o))};var I=m((function(){if(p.length===0){return[]}if(F(p[0][o])){return p.map((function(e){e[o]=R();return e}))}return p}),[p,o]);j.useEffectCustom((function(){z(T!==false);if(v!==false||!N.isInit){if(T){var e;void d(i((e={},e[f.pageNo]=1,e[f.pageSize]=g,e),P))}else{void d(P)}}else{void x.updateFilterCondition(P)}void x.updateInitStatus()}),[]);return y(q,{children:[r,h(s,i({size:"small",scroll:{x:"max-content"},bordered:true},u,{pagination:T,rowKey:o,onChange:K,loading:S,dataSource:I}))]})};var A=function e(){var t=b(),r=t.getEasyTableRef;var i=p(r());return i};var B=e(T,{Filter:K,Table:I,useEasyTablRef:A});export{B as EasyTable};
9
+ import{a as e}from"../attach-properties-to-component-9d9644cf.js";import{isArray as t}from"@dimjs/lang/cjs/is-array";import{hooks as r}from"@wove/react/cjs/hooks";import{a as i,_ as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as o}from"@dimjs/model";import{Form as a,message as u,Table as s}from"antd";import{forwardRef as l,useState as c,useImperativeHandle as f,Children as d,useMemo as m,useRef as p}from"react";import{createCtx as v}from"@wove/react/cjs/create-ctx";import{Model as g}from"@dimjs/model-react";import{jsx as h,jsxs as y}from"react/jsx-runtime";import{B as C}from"../button-wrapper-9bef2281.js";import{FormGrid as S}from"../form-grid/index.js";import{S as q}from"../simple-layout-1676e586.js";import{isUndefinedOrNull as F,getUuid as R}from"@flatbiz/utils";import{fbaHooks as j}from"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-promise";import"../fba-utils-a4c7d94d.js";import"@dimjs/utils/cjs/class-names";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var P=v(),b=P[0],z=P[1];var w={queryCondition:{},isInit:true};var N={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=i({},e.queryCondition,t)}},resetFilterCondition:function e(){return function(e){e.queryCondition=w.queryCondition}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:w};var x={};var V=function e(t){if(!x[t]){x[t]=g(N)}return x[t]};var T=l((function(e,n){var s;var l=c([]),d=l[0],m=l[1];var p=c(0),v=p[0],g=p[1];var y=c(false),C=y[0],S=y[1];var q=V(e.modelKey).useStore(),F=q[0],R=q[1];var j=e.pageSize||((s=e.initialPaginationParams)==null?void 0:s.pageSize)||10;var P=e.initRequest===undefined?true:e.initRequest;var b=c(false),w=b[0],N=b[1];var x=i({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var T=a.useForm(),K=T[0];var k=r.useCallbackRef((function(r){return new Promise((function(i,n){var a,s,l,c,f,d,p,v,h,y;var C=function(){try{return i()}catch(e){return n(e)}};var q=function(e){try{S(false);void u.error(e.message);return C()}catch(e){return n(e)}};try{S(true);return Promise.resolve(R.updateFilterCondition(r)).then((function(r){try{a=r;s=o(a.queryCondition||{});l=e.serviceConfig,c=l.requestParamsAdapter,f=l.onRequest,d=l.requestResultAdapter;p=c?c(s):s;return Promise.resolve(f(p)).then((function(r){try{v=r||{};e.onDataSourceChange==null?void 0:e.onDataSourceChange(v);h=d?d(v):v;y=h[x.list];m(t(y)?y:[]);g(h[x.total]);S(false);return C()}catch(e){return q(e)}}),q)}catch(e){return q(e)}}),q)}catch(e){q(e)}}))}));var I=r.useCallbackRef((function(e){return new Promise((function(t,r){return Promise.resolve(R.resetFilterCondition()).then((function(i){try{K.resetFields();if(e){void R.updateFilterCondition(e);K.setFieldsValue(e)}return t()}catch(e){return r(e)}}),r)}))}));var A=r.useCallbackRef((function(t){return new Promise((function(r,n){var o;return Promise.resolve(R.resetFilterCondition()).then((function(a){try{K.resetFields();if(w){void k(i((o={},o[x.pageNo]=1,o[x.pageSize]=j,o),e.initialValues,t))}else{void k(i({},e.initialValues,t))}return r()}catch(e){return n(e)}}),n)}))}));var B=function e(){return i({},F.queryCondition,K.getFieldsValue())};f(n,(function(){return{onRequest:k,clearQueryCondition:I,getRequestParams:B,onResetRequest:A,form:K}}));var E=function e(){return{onRequest:k,clearQueryCondition:I,getRequestParams:B,onResetRequest:A,form:K}};var L=function e(t){N(t)};var D=function t(){var r=K.getFieldsValue();if(e.onFormFinish){e.onFormFinish(r)}else{if(w){var n;void k(i({},r,(n={},n[x.pageNo]=1,n[x.pageSize]=F.queryCondition.pageSize,n)))}else{void k(r)}}};return h(z,{value:{getEasyTableRef:E,modelKey:e.modelKey,onRequest:k,tableList:d,tableTotal:v,loading:C,fieldNames:x,pageSize:j,initRequest:P,initialValues:e.initialValues||{},onSetPaginationStatus:L,paginationStatus:w,onFormFinish:D,form:K},children:e.children})}));var K=function e(t){var n=t.queryButtonProps,o=t.resetButtonProps,u=t.filterOperate;var s=b(),l=s.modelKey,c=s.fieldNames,f=s.onRequest,m=s.pageSize,p=s.paginationStatus,v=s.initialValues,g=s.form,y=s.onFormFinish;var F=typeof t.children==="function"?t.children(g):t.children;var R=d.toArray(F);var j=V(l).useStore(),P=j[0],z=j[1];var w=r.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(z.resetFilterCondition()).then((function(n){try{g.resetFields();if(p){f(i((r={},r[c.pageNo]=1,r[c.pageSize]=m,r),v))}else{f(v)}return e()}catch(e){return t(e)}}),t)}))}));var N=i({rightList:[!(n!=null&&n.hidden)?h(C,i({type:"primary",htmlType:"submit"},n,{children:(n==null?void 0:n.text)||"查询"}),"1"):null,!(o!=null&&o.hidden)?h(C,i({onClick:w},o,{children:(o==null?void 0:o.text)||"重置"}),"2"):null]},u==null?void 0:u(g));var x=R.map((function(e,t){if(e.type["domTypeName"]==="FormCol"){return e}return h(S.Col,{children:e},t)})).concat(h(S.OperateCol,i({},N),99));return h(q,{children:h(a,{form:g,onFinish:y,initialValues:i({},v,P.queryCondition),children:t.isPure?F:h(S.Row,{gutter:[15,0],children:x})})})};var k=["children","rowKey","pagination"];var I=function e(t){var r=t.children,o=t.rowKey,a=t.pagination,u=n(t,k);var l=b(),c=l.modelKey,f=l.fieldNames,d=l.onRequest,p=l.tableList,v=l.initRequest,g=l.pageSize,C=l.tableTotal,S=l.loading,P=l.initialValues,z=l.onSetPaginationStatus;var w=V(c).useStore(),N=w[0],x=w[1];var T=a==false?false:i({showSizeChanger:true,current:N.queryCondition[f.pageNo],pageSize:N.queryCondition[f.pageSize],total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},t.pagination);var K=function e(r){if(T){var i;d((i={},i[f.pageSize]=r.pageSize,i[f.pageNo]=r.current,i))}for(var n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++){o[a-1]=arguments[a]}t.onChange==null?void 0:t.onChange.apply(t,[r].concat(o))};var I=m((function(){if(p.length===0){return[]}if(F(p[0][o])){return p.map((function(e){e[o]=R();return e}))}return p}),[p,o]);j.useEffectCustom((function(){z(T!==false);if(v!==false||!N.isInit){if(T){var e;void d(i((e={},e[f.pageNo]=1,e[f.pageSize]=g,e),P))}else{void d(P)}}else{void x.updateFilterCondition(P)}void x.updateInitStatus()}),[]);return y(q,{children:[r,h(s,i({size:"small",scroll:{x:"max-content"},bordered:true},u,{pagination:T,rowKey:o,onChange:K,loading:S,dataSource:I}))]})};var A=function e(){var t=b(),r=t.getEasyTableRef;var i=p(r());return i};var B=e(T,{Filter:K,Table:I,useEasyTablRef:A});export{B as EasyTable};
10
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/use-easy-table-ref.ts","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition: void;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: () => {\n return (state) => {\n state.queryCondition = defaultState.queryCondition;\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useState } from 'react';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n children: ReactElement | ReactElement[];\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSiz = 10\n * @deprecated 使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n};\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const onRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n void message.error(error.message);\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...values,\n });\n } else {\n void onRequest({\n ...props.initialValues,\n ...values,\n });\n }\n });\n\n const getRequestParams = () => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n };\n\n useImperativeHandle(ref, () => {\n return {\n onRequest: onRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n };\n };\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish(values);\n } else {\n if (paginationStatus) {\n void onRequest({\n ...values,\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: state.queryCondition.pageSize,\n });\n } else {\n void onRequest(values);\n }\n }\n };\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.modelKey,\n onRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n }}\n >\n {props.children}\n </EasyTableCtxProvider>\n );\n});\n","import { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n // 查询按钮配置\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n // 重置按钮配置\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate } = props;\n const { modelKey, fieldNames, onRequest, pageSize, paginationStatus, initialValues, form, onFormFinish } =\n useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = Children.toArray(children);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n // const onQuery = hooks.useCallbackRef(() => {\n // if (paginationStatus) {\n // onRequest({\n // ...form.getFieldsValue(),\n // [fieldNames.pageNo]: 1,\n // [fieldNames.pageSiz]: state.queryCondition.pageSize,\n // });\n // } else {\n // onRequest(form.getFieldsValue());\n // }\n // });\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSiz]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n ...filterOperate?.(form),\n };\n\n const formRowChildren = childrens\n .map((item, index) => {\n if ((item as ReactElement).type['domTypeName'] === 'FormCol') {\n return item;\n }\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .concat(<FormGrid.OperateCol key={99} {...formOperateColProps} />);\n\n return (\n <SimpleLayout>\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n >\n {props.isPure ? children : <FormGrid.Row gutter={[15, 0]}>{formRowChildren}</FormGrid.Row>}\n </Form>\n </SimpleLayout>\n );\n};\n","import { getUuid, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement;\n /** 表格行 key 的取值 */\n rowKey: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const paginationData =\n pagination == false\n ? false\n : {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo],\n pageSize: state.queryCondition[fieldNames.pageSize],\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n\n const onChangePage: TableProps<TAny>['onChange'] = (data, ...otherProps) => {\n if (paginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(paginationData !== false);\n if (initRequest !== false || !state.isInit) {\n if (paginationData) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n return (\n <SimpleLayout>\n {children}\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n pagination={paginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { attachPropertiesToComponent } from '../_utils/attach-properties-to-component';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { EasyTableTable } from './table';\nimport { useEasyTablRef } from './use-easy-table-ref';\n\nexport const EasyTable = attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n\n useEasyTablRef: useEasyTablRef,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","_onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","onResetRequest","_extends2","$await_5","initialValues","getRequestParams","getFieldsValue","useImperativeHandle","getEasyTableRef","onSetPaginationStatus","status","onFormFinish","_extends3","_jsx","value","tableList","tableTotal","children","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","_useEasyTableCtx","childrens","Children","toArray","onReset","$await_1","pageSiz","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","formRowChildren","map","item","index","FormGrid","Col","concat","OperateCol","SimpleLayout","onFinish","isPure","Row","gutter","EasyTableTable","rowKey","pagination","otherProps","_objectWithoutPropertiesLoose","_excluded","paginationData","showSizeChanger","current","showTotal","onChangePage","data","_len","arguments","length","Array","_key","onChange","apply","useMemo","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","_jsxs","Table","size","scroll","x","bordered","useEasyTablRef","useRef","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/use-easy-table-ref.ts","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition: void;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: () => {\n return (state) => {\n state.queryCondition = defaultState.queryCondition;\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useState } from 'react';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n children: ReactElement | ReactElement[];\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSiz = 10\n * @deprecated 使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n};\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const onRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n void message.error(error.message);\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...values,\n });\n } else {\n void onRequest({\n ...props.initialValues,\n ...values,\n });\n }\n });\n\n const getRequestParams = () => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n };\n\n useImperativeHandle(ref, () => {\n return {\n onRequest: onRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n };\n };\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish(values);\n } else {\n if (paginationStatus) {\n void onRequest({\n ...values,\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: state.queryCondition.pageSize,\n });\n } else {\n void onRequest(values);\n }\n }\n };\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.modelKey,\n onRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n }}\n >\n {props.children}\n </EasyTableCtxProvider>\n );\n});\n","import { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n // 查询按钮配置\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n // 重置按钮配置\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate } = props;\n const { modelKey, fieldNames, onRequest, pageSize, paginationStatus, initialValues, form, onFormFinish } =\n useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = Children.toArray(children);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n // const onQuery = hooks.useCallbackRef(() => {\n // if (paginationStatus) {\n // onRequest({\n // ...form.getFieldsValue(),\n // [fieldNames.pageNo]: 1,\n // [fieldNames.pageSize]: state.queryCondition.pageSize,\n // });\n // } else {\n // onRequest(form.getFieldsValue());\n // }\n // });\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n ...filterOperate?.(form),\n };\n\n const formRowChildren = childrens\n .map((item, index) => {\n if ((item as ReactElement).type['domTypeName'] === 'FormCol') {\n return item;\n }\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .concat(<FormGrid.OperateCol key={99} {...formOperateColProps} />);\n\n return (\n <SimpleLayout>\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n >\n {props.isPure ? children : <FormGrid.Row gutter={[15, 0]}>{formRowChildren}</FormGrid.Row>}\n </Form>\n </SimpleLayout>\n );\n};\n","import { getUuid, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement;\n /** 表格行 key 的取值 */\n rowKey: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const paginationData =\n pagination == false\n ? false\n : {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo],\n pageSize: state.queryCondition[fieldNames.pageSize],\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n\n const onChangePage: TableProps<TAny>['onChange'] = (data, ...otherProps) => {\n if (paginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(paginationData !== false);\n if (initRequest !== false || !state.isInit) {\n if (paginationData) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n return (\n <SimpleLayout>\n {children}\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n pagination={paginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { attachPropertiesToComponent } from '../_utils/attach-properties-to-component';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { EasyTableTable } from './table';\nimport { useEasyTablRef } from './use-easy-table-ref';\n\nexport const EasyTable = attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n\n useEasyTablRef: useEasyTablRef,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","_onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","onResetRequest","_extends2","$await_5","initialValues","getRequestParams","getFieldsValue","useImperativeHandle","getEasyTableRef","onSetPaginationStatus","status","onFormFinish","_extends3","_jsx","value","tableList","tableTotal","children","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","_useEasyTableCtx","childrens","Children","toArray","onReset","$await_1","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","formRowChildren","map","item","index","FormGrid","Col","concat","OperateCol","SimpleLayout","onFinish","isPure","Row","gutter","EasyTableTable","rowKey","pagination","otherProps","_objectWithoutPropertiesLoose","_excluded","paginationData","showSizeChanger","current","showTotal","onChangePage","data","_len","arguments","length","Array","_key","onChange","apply","useMemo","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","_jsxs","Table","size","scroll","x","bordered","useEasyTablRef","useRef","attachPropertiesToComponent","EasyTableInner","Filter"],"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
- import{Result as r,Button as t,Spin as e}from"antd";import{useState as n,Fragment as s}from"react";import{fbaHooks as i}from"../fba-hooks/index.js";import{jsx as a,jsxs as o}from"react/jsx-runtime";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var u=function u(c){var l=c.serviceConfig,p=c.isAsync,f=c.children,m=c.errorRender;var d=n({status:"loading"}),h=d[0],v=d[1];var y=function r(){return new Promise((function(r,t){var e;var n=function(){try{return r()}catch(r){return t(r)}};var s=function(r){try{v({status:"error",respData:r});return n()}catch(r){return t(r)}};try{if(h.status!=="loading"){v({status:"loading"})}return Promise.resolve(l.onRequest(l.params)).then((function(r){try{e=r;v({status:"success",respData:e});return n()}catch(r){return s(r)}}),s)}catch(r){s(r)}}))};i.useEffectCustomAsync(y,[]);var g=200;if(h.status==="error"){var j;if(m){return m(h.respData)}return a(r,{status:"error",className:"local-loading-error",title:"数据获取异常",subTitle:((j=h.respData)==null?void 0:j.message)||"数据处理异常",style:{minHeight:g},extra:[a(t,{type:"primary",onClick:y,children:"重新获取"},"console")]})}var x=h.status==="loading";if(x&&!p){return a("div",{style:{height:g,display:"flex",justifyContent:"center"},children:a(e,{spinning:true,children:a(s,{})})})}return o(s,{children:[a("div",{style:{display:x?"flex":"none",justifyContent:"center",height:g},children:a(e,{spinning:x})}),f(h.respData)]})};export{u as LocalLoading};
5
+ import{Result as r,Button as n,Spin as t}from"antd";import{forwardRef as e,useState as i,useImperativeHandle as o,Fragment as a}from"react";import{fbaHooks as c}from"../fba-hooks/index.js";import{jsx as u}from"react/jsx-runtime";import"../_rollupPluginBabelHelpers-1f4d8910.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var s=e((function(e,s){var l=e.serviceConfig,f=e.isAsync,h=e.children,m=e.errorRender;var d=i("loading"),v=d[0],p=d[1];var y=i(),g=y[0],j=y[1];var b=i(false),x=b[0],P=b[1];var C=function r(){return new Promise((function(r,n){var t;var e=function(){try{return r()}catch(r){return n(r)}};var i=function(r){try{p("error");return e()}catch(r){return n(r)}};try{p("loading");return Promise.resolve(l.onRequest(l.params)).then((function(r){try{t=r;p("success");j(t);return e()}catch(r){return i(r)}}),i)}catch(r){i()}}))};c.useEffectCustomAsync(C,[]);var H=e.loadingHeight===undefined?100:e.loadingHeight;o(s,(function(){return{onRefresh:function r(){return new Promise((function(r,n){var t=function(r){return function(t){try{P(false);return r&&r.call(this,t)}catch(r){return n(r)}}.bind(this)}.bind(this);var e;var i=function(){try{return r()}catch(r){return n(r)}};var o=function(r){try{p("error");return t(i)()}catch(r){return t(n)(r)}};try{P(true);return Promise.resolve(l.onRequest(l.params)).then((function(r){try{e=r;j(e);return t(i)()}catch(r){return o(r)}}),o)}catch(r){o()}}))}}}));if(v==="error"){if(m){return m(g)}return u(r,{status:"error",className:"local-loading-error",subTitle:(g==null?void 0:g.message)||"数据处理异常",style:{minHeight:H},extra:[u(n,{type:"primary",onClick:C,children:"重新获取"},"console")]})}var R=v==="loading";if(R&&!f){return u("div",{style:{height:H,display:"flex",justifyContent:"center"},children:u(t,{spinning:true,children:u(a,{})})})}return u(t,{spinning:x||R,children:h(g)})}));export{s as LocalLoading};
6
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/local-loading.tsx"],"sourcesContent":["import { TAny, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport { Fragment, ReactElement, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TPlainObject>;\n params?: TPlainObject;\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n}\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 正常接口数据渲染\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoading = (props: LocalLoadingProps) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [result, setResult] = useState<{ status: 'success' | 'error' | 'loading'; respData?: TAny }>({\n status: 'loading',\n });\n\n const onRequest = async () => {\n try {\n if (result.status !== 'loading') {\n setResult({ status: 'loading' });\n }\n const respData = await serviceConfig.onRequest(serviceConfig.params);\n setResult({\n status: 'success',\n respData,\n });\n } catch (error) {\n setResult({\n status: 'error',\n respData: error,\n });\n }\n };\n\n fbaHooks.useEffectCustomAsync(onRequest, []);\n\n const loadingHeight = 200;\n\n if (result.status === 'error') {\n if (errorRender) {\n return errorRender(result.respData);\n }\n return (\n <Result\n status=\"error\"\n className=\"local-loading-error\"\n title={'数据获取异常'}\n subTitle={(result.respData?.message as string) || '数据处理异常'}\n style={{ minHeight: loadingHeight }}\n extra={[\n <Button type=\"primary\" key=\"console\" onClick={onRequest}>\n 重新获取\n </Button>,\n ]}\n />\n );\n }\n const isLoading = result.status === 'loading';\n\n if (isLoading && !isAsync) {\n return (\n <div style={{ height: loadingHeight, display: 'flex', justifyContent: 'center' }}>\n <Spin spinning={true}>\n <Fragment />\n </Spin>\n </div>\n );\n }\n\n return (\n <Fragment>\n <div style={{ display: isLoading ? 'flex' : 'none', justifyContent: 'center', height: loadingHeight }}>\n <Spin spinning={isLoading} />\n </div>\n {children(result.respData)}\n </Fragment>\n );\n};\n"],"names":["LocalLoading","props","serviceConfig","isAsync","children","errorRender","_useState","useState","status","result","setResult","onRequest","Promise","$return","$error","_respData","$Try_1_Post","$boundEx","$Try_1_Catch","error","respData","resolve","params","then","$await_2","fbaHooks","useEffectCustomAsync","loadingHeight","_result$respData","_jsx","Result","className","title","subTitle","message","style","minHeight","extra","Button","type","onClick","isLoading","height","display","justifyContent","Spin","spinning","Fragment","_jsxs"],"mappings":";sWAuCaA,EAAe,SAAfA,EAAgBC,GAC3B,IAAQC,EAAkDD,EAAlDC,cAAeC,EAAmCF,EAAnCE,QAASC,EAA0BH,EAA1BG,SAAUC,EAAgBJ,EAAhBI,YAC1C,IAAAC,EAA4BC,EAAuE,CACjGC,OAAQ,YADHC,EAAMH,EAAA,GAAEI,EAASJ,EAAA,GAIxB,IAAMK,EAAY,SAAZA,IAAY,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAKRC,EAlDZ,IAAIC,aAAJ,IAAI,OAAAH,GAAK,CAAC,MAAAI,GAAW,OAAOH,EAAAG,EAAM,GAAlC,IAAIC,EAAA,SAuDSC,GAvDb,IAwDMT,EAAU,CACRF,OAAQ,QACRY,SAAUD,IA1DlB,OAAOH,GAAE,CAAC,MAAAC,GAAW,OAAOH,EAAAG,EAAM,GA8C9B,IACE,GAAIR,EAAOD,SAAW,UAAW,CAC/BE,EAAU,CAAEF,OAAQ,WACtB,CACiB,OAAAI,QAAAS,QAAMnB,EAAcS,UAAUT,EAAcoB,SAA5CC,eAAmDC,GAlD1E,IAkDYJ,EAAWI,EACjBd,EAAU,CACRF,OAAQ,UACRY,SAAAA,IArDR,OAAOJ,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAuD9B,CAAC,MAAOC,GAAOD,EAAPC,EAKT,CAAC,GACF,EAEDM,EAASC,qBAAqBf,EAAW,IAEzC,IAAMgB,EAAgB,IAEtB,GAAIlB,EAAOD,SAAW,QAAS,CAAA,IAAAoB,EAC7B,GAAIvB,EAAa,CACf,OAAOA,EAAYI,EAAOW,SAC5B,CACA,OACES,EAACC,EAAM,CACLtB,OAAO,QACPuB,UAAU,sBACVC,MAAO,SACPC,WAAUL,EAACnB,EAAOW,WAAQ,UAAA,EAAfQ,EAAiBM,UAAsB,SAClDC,MAAO,CAAEC,UAAWT,GACpBU,MAAO,CACLR,EAACS,EAAM,CAACC,KAAK,UAAwBC,QAAS7B,EAAUP,SAAC,QAA9B,aAMnC,CACA,IAAMqC,EAAYhC,EAAOD,SAAW,UAEpC,GAAIiC,IAActC,EAAS,CACzB,OACE0B,EAAA,MAAA,CAAKM,MAAO,CAAEO,OAAQf,EAAegB,QAAS,OAAQC,eAAgB,UAAWxC,SAC/EyB,EAACgB,EAAI,CAACC,SAAU,KAAK1C,SACnByB,EAACkB,EAAQ,OAIjB,CAEA,OACEC,EAACD,EAAQ,CAAA3C,UACPyB,EAAA,MAAA,CAAKM,MAAO,CAAEQ,QAASF,EAAY,OAAS,OAAQG,eAAgB,SAAUF,OAAQf,GAAgBvB,SACpGyB,EAACgB,EAAI,CAACC,SAAUL,MAEjBrC,EAASK,EAAOW,YAGvB"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/local-loading.tsx"],"sourcesContent":["import { TAny, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport { forwardRef, Fragment, ReactElement, useImperativeHandle, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TPlainObject>;\n params?: TPlainObject;\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: () => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 正常接口数据渲染\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoading = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'loading'>('loading');\n const [respData, setRespData] = useState<any>();\n const [refreshLoading, setRefreshLoading] = useState(false);\n\n const onRequest = async () => {\n try {\n setStatus('loading');\n const respData = await serviceConfig.onRequest(serviceConfig.params);\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n setStatus('error');\n }\n };\n\n fbaHooks.useEffectCustomAsync(onRequest, []);\n\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n\n useImperativeHandle(ref, () => {\n return {\n onRefresh: async () => {\n try {\n setRefreshLoading(true);\n const respData = await serviceConfig.onRequest(serviceConfig.params);\n setRespData(respData);\n } catch (error) {\n setStatus('error');\n } finally {\n setRefreshLoading(false);\n }\n },\n };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <Result\n status=\"error\"\n className=\"local-loading-error\"\n subTitle={(respData?.message as string) || '数据处理异常'}\n style={{ minHeight: loadingHeight }}\n extra={[\n <Button type=\"primary\" key=\"console\" onClick={onRequest}>\n 重新获取\n </Button>,\n ]}\n />\n );\n }\n const isLoading = status === 'loading';\n\n if (isLoading && !isAsync) {\n return (\n <div style={{ height: loadingHeight, display: 'flex', justifyContent: 'center' }}>\n <Spin spinning={true}>\n <Fragment />\n </Spin>\n </div>\n );\n }\n\n return <Spin spinning={refreshLoading || isLoading}>{children(respData)}</Spin>;\n});\n"],"names":["LocalLoading","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","_useState3","refreshLoading","setRefreshLoading","onRequest","Promise","$return","$error","_respData","$Try_1_Post","$boundEx","$Try_1_Catch","error","resolve","params","then","$await_3","fbaHooks","useEffectCustomAsync","loadingHeight","undefined","useImperativeHandle","onRefresh","$Try_2_Finally","$Try_2_Exit","$Try_2_Value","call","this","bind","_respData2","$Try_2_Post","$Try_2_Catch","$await_4","_jsx","Result","className","subTitle","message","style","minHeight","extra","Button","type","onClick","isLoading","height","display","justifyContent","Spin","spinning","Fragment"],"mappings":"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"}
@@ -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
- import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as t}from"@dimjs/lang/cjs/is-object";import{get as e}from"@dimjs/utils/cjs/get";import{isPlainObject as i}from"@dimjs/lang/cjs/is-plain-object";import{a as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{isNumber as o}from"@dimjs/lang/cjs/is-number";import{isEmpty as a}from"@dimjs/lang/cjs/is-empty";import{isUndefinedOrNull as s,getStrByteLen as l,cutString as u,flatbizDate as m}from"@flatbiz/utils";import{Tooltip as p,Space as c}from"antd";import{Fragment as f}from"react";import{a as d}from"../button-operate-4f17036d.js";import{T as j}from"../tag-list-select-066f682f.js";import{jsx as v}from"react/jsx-runtime";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-9bef2281.js";import"../fba-utils-a4c7d94d.js";import"@dimjs/lang/cjs/is-array";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"../dropdown-menu-wrapper-40f6a65b.js";var g=function r(t,e){return function(r){if(a(r)||r==="")return e;if(o(r))return r;var i=r.toString();var n=s(t)?10:t;var m=l(i);if(m<=n*2){return i}return v(p,{placement:"topLeft",title:i,children:u(i,n*2)})}};var h=function r(t){return function(r,e,i){var o=t(e,i);return v(d,n({},o))}};var w=function r(t,e){return function(r){if(a(r)||r==="")return e;try{return m.format(new Date(r),t)}catch(t){return r||e}}};var y=function r(t,e){return function(r,i,n){if(e&&t){return(t-1)*e+n+1}return n+1}};var b=function r(t){return function(r,e,i){var n=(t==null?void 0:t())||{},o=n.pageNo,a=n.pageSize;if(a&&o){return(o-1)*a+i+1}return i+1}};var x=function r(t,e){return function(r){return v(j,{dataList:t,colorMap:e,value:r,forceMatch:false})}};var C=function r(n,o){return function(r){if(i(r)){var a=e(r,n,o);if(!a)return"";if(t(a))return JSON.stringify(a);return a}return r||o}};var k=function t(e){return function(t,i){var n=e==null?void 0:e(i);if(!n)return v(f,{children:t});var o=s(n.showData)?true:n.showData;var a=s(n.notOverflowShowExtra)?true:n.notOverflowShowExtra;var l=s(n.showMaxNumber)?10:n.showMaxNumber;var m=n.extraPosition?n.extraPosition:"after";var p=r(t)?u(t,l*2):t;if(n.extra&&o){if(p===t&&!a){return t}var d=[v("span",{children:p},"1"),v(f,{children:n.extra},"2")];var j=m==="before"?d.reverse():d;return v(c,{onClick:n.onClick,style:{cursor:n.onClick?"pointer":undefined},size:5,children:j.map((function(r,t){return v(f,{children:r},t)}))})}return v("span",{onClick:n.onClick,children:n.extra})}};var N={extraContentRender:k,indexCell:y,serialNumberCell:b,dateCell:w,operateCell:h,tooltipCell:g,selectorCell:x,objectCell:C};export{N as tableCellRender};
11
+ import{isString as r}from"@dimjs/lang/cjs/is-string";import{isObject as t}from"@dimjs/lang/cjs/is-object";import{get as e}from"@dimjs/utils/cjs/get";import{isPlainObject as i}from"@dimjs/lang/cjs/is-plain-object";import{a as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{isNumber as o}from"@dimjs/lang/cjs/is-number";import{isEmpty as a}from"@dimjs/lang/cjs/is-empty";import{isUndefinedOrNull as s,getStrByteLen as l,cutString as u,flatbizDate as m}from"@flatbiz/utils";import{Tooltip as p,Space as c}from"antd";import{Fragment as f}from"react";import{a as d}from"../button-operate-35b64aae.js";import{T as j}from"../tag-list-select-066f682f.js";import{jsx as v}from"react/jsx-runtime";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-9bef2281.js";import"../fba-utils-a4c7d94d.js";import"@dimjs/lang/cjs/is-array";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"../dropdown-menu-wrapper-40f6a65b.js";var g=function r(t,e){return function(r){if(a(r)||r==="")return e;if(o(r))return r;var i=r.toString();var n=s(t)?10:t;var m=l(i);if(m<=n*2){return i}return v(p,{placement:"topLeft",title:i,children:u(i,n*2)})}};var h=function r(t){return function(r,e,i){var o=t(e,i);return v(d,n({},o))}};var w=function r(t,e){return function(r){if(a(r)||r==="")return e;try{return m.format(new Date(r),t)}catch(t){return r||e}}};var y=function r(t,e){return function(r,i,n){if(e&&t){return(t-1)*e+n+1}return n+1}};var b=function r(t){return function(r,e,i){var n=(t==null?void 0:t())||{},o=n.pageNo,a=n.pageSize;if(a&&o){return(o-1)*a+i+1}return i+1}};var x=function r(t,e){return function(r){return v(j,{dataList:t,colorMap:e,value:r,forceMatch:false})}};var C=function r(n,o){return function(r){if(i(r)){var a=e(r,n,o);if(!a)return"";if(t(a))return JSON.stringify(a);return a}return r||o}};var k=function t(e){return function(t,i){var n=e==null?void 0:e(i);if(!n)return v(f,{children:t});var o=s(n.showData)?true:n.showData;var a=s(n.notOverflowShowExtra)?true:n.notOverflowShowExtra;var l=s(n.showMaxNumber)?10:n.showMaxNumber;var m=n.extraPosition?n.extraPosition:"after";var p=r(t)?u(t,l*2):t;if(n.extra&&o){if(p===t&&!a){return t}var d=[v("span",{children:p},"1"),v(f,{children:n.extra},"2")];var j=m==="before"?d.reverse():d;return v(c,{onClick:n.onClick,style:{cursor:n.onClick?"pointer":undefined},size:5,children:j.map((function(r,t){return v(f,{children:r},t)}))})}return v("span",{onClick:n.onClick,children:n.extra})}};var N={extraContentRender:k,indexCell:y,serialNumberCell:b,dateCell:w,operateCell:h,tooltipCell:g,selectorCell:x,objectCell:C};export{N as tableCellRender};
12
12
  //# sourceMappingURL=index.js.map
@@ -9,5 +9,5 @@ import './../input-search-wrapper/index.css';
9
9
  import './../request-status/index.css';
10
10
  import './index.css';
11
11
  /*! @flatjs/forge MIT @flatbiz/antd */
12
- import e from"@ant-design/icons/es/icons/CaretDownFilled";import r from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{extend as a}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{_ as l,a as u}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as s}from"@dimjs/model";import{treeToArray as o,treeToTiledArray as c,treeLeafParentsArray as d,isUndefinedOrNull as f}from"@flatbiz/utils";import{Spin as v,Tree as m,Button as p,message as h}from"antd";import{forwardRef as g,useState as b,useMemo as y,useRef as L,useImperativeHandle as j,Fragment as C,isValidElement as w}from"react";import{a as k}from"../button-operate-4f17036d.js";import{D as R}from"../dropdown-menu-wrapper-40f6a65b.js";import{fbaHooks as q}from"../fba-hooks/index.js";import{I as N}from"../input-search-wrapper-10d4a9b9.js";import{R as S}from"../request-status-03fc60e2.js";import{Model as T}from"@dimjs/model-react";import{isObject as P}from"@dimjs/lang/cjs/is-object";import{dequal as A}from"dequal";import{jsxs as D,jsx as I}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-9bef2281.js";import"../fba-utils-a4c7d94d.js";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 E={treeList:[],treeTiledArray:[],queryIsEmpty:false};var V={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=o(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(r){return function(e){var t=o(e.treeList,r.childrenName);var a=t.find((function(e){return e[r.valueName]===r.value}));if(a){if(n(r.appendList)&&r.appendList.length>0){a[r.childrenName]=r.appendList}else{a.isLeaf=true}}e.treeTiledArray=o(e.treeList,r.childrenName)}}},state:E};var O={};var K=function e(r){if(!O[r]){O[r]=T(V)}return O[r]};var x=function e(r,t,n){var a=c(t,n);return d(r,a,true,{value:"value",parentValue:"parentValue"})};var F=function e(r,t){var a=f(r)?[]:r;a=n(a)?a:[a];a=a.map((function(e){if(P(e))return e[t.value];return e}));return a};var _=function e(r,t){var n=F(r,t);var a={};n.forEach((function(e){a[e]=true}));return a};var M=function e(r,t,n){if(f(r)&&f(t))return true;var a=_(r,n);var i=_(t,n);var l=A(a,i);return l};var U=["serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType"];var z=g((function(o,d){var g=o.serviceConfig,T=o.effectDependencyList,P=o.selectorTreeList,A=o.value,E=o.onChange,V=o.modelKey,O=o.checkableResponseParentNode,_=O===void 0?true:O,z=o.checkable,B=o.onSelectorTreeListChange,W=o.treeItemDataAdapter,Y=o.searchValue,H=o.showSearch,G=o.searchPlaceholder,J=o.requestMessageConfig,Q=o.labelInValueFieldNames,X=o.labelInValue,Z=o.disabledCanUse,$=o.menuLayoutType,ee=o.menuTriggerType,re=l(o,U);var te=o.hasOwnProperty("selectorTreeList");var ne=g||{};var ae=T||[];var ie=b(),le=ie[0],ue=ie[1];var se=K(V).useStore(),oe=se[0],ce=se[1];var de=q.useSafeState(false),fe=de[0],ve=de[1];var me="request-progress-"+o.modelKey;var pe=y((function(){return u({label:"label",value:"value",children:"children"},o.fieldNames)}),[o.fieldNames]);var he=L();var ge=$===undefined?"fold":$;var be=ee===undefined?"click":ee;var ye=z===true;var Le=y((function(){return u({label:"label",value:"value"},Q)}),[Q]);var je=b(),Ce=je[0],we=je[1];var ke=L(true);var Re=b(0),qe=Re[0],Ne=Re[1];var Se=L();var Te=y((function(){var e=F(A,Le);return e}),[Le,A]);q.useEffectCustom((function(){if(f(A)&&ke.current||oe.treeList.length==0)return;ke.current=false;if(!M(A,Se.current,Le)){console.log("modelKey:"+V+" TreeWrapper key refresh",A,Se.current);Se.current=ye?Te:Te[0];var e=Ee(Te,true);ue(Array.from(new Set(e)));he.current=Te;Ne(Date.now())}}),[A,oe.treeList]);var Pe=function e(r){return r===""||f(r)};var Ae=function e(r){var t=ne.onRequestResultAdapter?ne.onRequestResultAdapter(r):r;return t};q.useEffectCustom((function(){we(Y)}),[Y]);var De=i.useCallbackRef((function(){return new Promise((function(e,r){var t,n,i,l,u;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{ve(false);void h.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!ne.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=ne.requiredParamsKeys;n=a({},ne.params);if(t){i=t.find((function(e){return Pe(n[e])}));if(i){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return s()}catch(e){return o(e)}};var d=function(e){try{window[me]=false;ve(false);void ce.changeRequestStatus("request-error");return c()}catch(e){return o(e)}};try{ve(true);void ce.changeRequestStatus("request-progress");window[me]=true;return Promise.resolve(ne.onRequest==null?void 0:ne.onRequest(n)).then((function(e){try{l=e;u=Ae(l);Ie(u||[]);ve(false);window[me]=false;return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}catch(e){o(e)}}))}));q.useEffectCustom((function(){if(te)return;if(Boolean(ae.length)){void De();return}var e=K(V).getState();if(e.requestStatus==="request-success"){return}if(!window[me]){void De();return}}),ae);q.useEffectCustom((function(){if(te){Ie(P||[])}}),[P]);var Ie=i.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&oe.treeList.length===0){return}void ce.setTreeList({treeList:e||[],childrenName:pe.children});B==null?void 0:B(e)}));var Ee=i.useCallbackRef((function(e,r){var t=[];e.forEach((function(e){if(!r&&le!=null&&le.includes(e))return;var n=x(e,oe.treeList,pe);t=t.concat(n.map((function(e){return e.value})))}));return t}));i.useUpdateEffect((function(){if(Ce){var e=c(oe.treeList||[],pe);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Ce||"")}));ue((function(e){var t=Ee(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{ue([])}}),[Ce]);j(d,(function(){return{onClearSelectorList:function e(){void ce.resetTreeList()},getTreeDataList:function e(){return oe.treeList}}}));var Ve=i.useCallbackRef((function(e){ue(e)}));var Oe=i.useCallbackRef((function(e,r,t){Se.current=e;var a=f(r)?[]:n(r)?r:[r];if(f(e)){E==null?void 0:E(e,r,t);return}if(X){var i=Le.label;var l=Le.value;var u=a.map((function(e){var r;return r={},r[i]=e[pe.label],r[l]=e[pe.value],r}));if(n(e)){E==null?void 0:E(u,a,t)}else{E==null?void 0:E(u[0],a[0],t)}}else{if(n(e)){E==null?void 0:E(e,a,t)}else{E==null?void 0:E(e,a[0],t)}}}));var Ke=i.useCallbackRef((function(e,r){var t=o.checkStrictly?e.checked:e;t=f(e)?[]:e;t=n(t)?t:[t];var a=[];var i=[];var l=[];var u=[];t.forEach((function(e){var r=oe.treeTiledArray.find((function(r){return r[pe.value]===e}));if(!r)return;var t=r==null?void 0:r[pe.children];if(!n(t)||t.length===0){a.push(r);i.push(r[pe.value])}l.push(r);u.push(r[pe.value])}));if(z){ue((function(e){var r=Ee(i).concat(e||[]);return Array.from(new Set(r))}));if(!_&&!o.checkStrictly){Oe(i,a,l)}else{Oe(u,l,l)}}else{if(t[0]){var s=l.find((function(e){return e[pe.value]===t[0]}));Oe(t[0],s,[s])}else{var c=r.node[pe.value];var d=oe.treeTiledArray.find((function(e){return e[pe.value]===c}));Oe(undefined,d,[d])}}}));var xe=i.useCallbackRef((function(e){return W==null?void 0:W(e)}));var Fe=y((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var a;var i=(xe==null?void 0:xe(r))||r;var l=Z?undefined:i.disabled;var s=i[pe.label];var o;if(Ce){var c=s.indexOf(Ce);var d=s.substring(0,c);var f=s.slice(c+Ce.length);o=c>-1?D("span",{className:t({"v-tree-item-disabled":i.disabled}),children:[d,I("span",{className:"site-tree-search-value",children:Ce}),f]}):null}if(!o){o=I("span",{className:t({"v-tree-item-disabled":i.disabled}),children:s})}var v=i[pe.children];return u({},i,(a={disabled:l},a[pe.label]=o,a._treeItemName=s,a._disabled=i.disabled,a[pe.children]=n(v)&&v.length>0?e(v):undefined,a))}))};var r=s(oe.treeList||[]);return e(r)}),[oe.treeList,xe,Z,pe.label,pe.children,Ce]);var _e=i.useCallbackRef((function(e){return new Promise((function(r,t){return new Promise((function(n,a){var i,l,u,s;if(e[pe.children]){r();return n()}var c=function(){try{return n()}catch(e){return a(e)}};var d=function(e){try{void h.error(e.message||"数据加载异常...");t();return c()}catch(e){return a(e)}};try{return Promise.resolve((i=o.loadDataServiceConfig)==null?void 0:i.onRequest==null?void 0:i.onRequest((l=o.loadDataServiceConfig)==null?void 0:l.getParams==null?void 0:l.getParams(e))).then((function(t){try{u=t;s=ne.onRequestResultAdapter?ne.onRequestResultAdapter(u):u;void ce.treeListAppendChildren({value:e[pe.value],appendList:s,childrenName:pe.children,valueName:pe.value}).then((function(e){Ie(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Me=i.useCallbackRef((function(e){var r=e==null?void 0:e[pe.children];var t=o.loadDataFlag;var n=t?!e.isLeaf:false;var a=r&&r.length>0||n;return!a}));var Ue=i.useCallbackRef((function(e){var n,a;var i=e._treeItemName||e[pe.label];if(ge==="fold"){var l;var s=[];if((l=o.menuOptions)!=null&&l.fold){var c,d,f;s=((c=o.menuOptions)==null?void 0:(d=c[ge])==null?void 0:d.call(c,u({},e,(f={},f[pe.label]=i,f))))||[]}else{var v;s=(o.getMenuOptions==null?void 0:o.getMenuOptions(u({},e,(v={},v[pe.label]=i,v))))||[]}return D(C,{children:[I("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),s.length>0&&I(R,{menuList:s,children:I(r,{})})]})}var m=(n=o.menuOptions)==null?void 0:n.tile==null?void 0:n.tile(u({},e,(a={},a[pe.label]=i,a)));return D(C,{children:[I("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),m?I(k,u({},m,{size:5,className:t("tree-item-title-operate",m.className)})):null]})}));var ze=i.useDebounceCallback((function(e){we(e);o.onSearchValueChange==null?void 0:o.onSearchValueChange(e)}),300);var Be=i.useCallbackRef((function(e){ze(e.target.value)}));var We=i.useCallbackRef((function(e){if(!o.icon)return null;if(w(o.icon))return o.icon;var r=Me(e.data);return o.icon(u({},e,{isParent:!r,isLeaf:r}))}));var Ye=y((function(){return{title:pe.label,key:pe.value,children:pe.children}}),[pe]);if(oe.treeList.length>0&&oe.requestStatus!=="request-error"){var He=u({showLine:{showLeafIcon:false},titleRender:Ue,blockNode:true,switcherIcon:I(e,{})},re,{fieldNames:Ye,expandedKeys:le,treeData:Fe,onExpand:Ve,loadData:o.loadDataFlag?_e:undefined,style:u({width:"100%"},re.style),icon:We});var Ge={onCheck:Ke,checkable:z,defaultCheckedKeys:he.current};var Je={onSelect:Ke,multiple:false,defaultSelectedKeys:he.current};var Qe=z?Ge:Je;var Xe=t("v-tree-wrapper","v-tree-wrapper-menu-"+be);return D("div",{className:Xe,children:[I(v,{spinning:fe,className:"v-tree-wrapper-loading"}),H?I(N,{className:"v-tree-wrapper-search",style:{marginBottom:12},placeholder:G,onChange:Be,value:Y,allowClear:true}):null,I(m,u({},Qe,He,{className:"v-tree-wrapper-tree"}),qe)]})}return I(S,{status:oe.requestStatus,loading:fe,messageConfig:J,errorButton:I(p,{type:"primary",onClick:De,children:"重新获取数据"})})}));z.defaultProps={disabledCanUse:true};export{z as TreeWrapper};
12
+ import e from"@ant-design/icons/es/icons/CaretDownFilled";import r from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{extend as n}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{_ as l,a as u}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as s}from"@dimjs/model";import{treeToArray as o,treeToTiledArray as c,treeLeafParentsArray as d,isUndefinedOrNull as f}from"@flatbiz/utils";import{Spin as v,Tree as m,Button as p,message as h}from"antd";import{forwardRef as g,useState as b,useMemo as y,useRef as L,useImperativeHandle as j,Fragment as C,isValidElement as w}from"react";import{a as k}from"../button-operate-35b64aae.js";import{D as R}from"../dropdown-menu-wrapper-40f6a65b.js";import{fbaHooks as q}from"../fba-hooks/index.js";import{I as N}from"../input-search-wrapper-10d4a9b9.js";import{R as S}from"../request-status-03fc60e2.js";import{Model as T}from"@dimjs/model-react";import{isObject as P}from"@dimjs/lang/cjs/is-object";import{dequal as A}from"dequal";import{jsxs as D,jsx as I}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-9bef2281.js";import"../fba-utils-a4c7d94d.js";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 E={treeList:[],treeTiledArray:[],queryIsEmpty:false};var V={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=o(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(r){return function(e){var t=o(e.treeList,r.childrenName);var n=t.find((function(e){return e[r.valueName]===r.value}));if(n){if(a(r.appendList)&&r.appendList.length>0){n[r.childrenName]=r.appendList}else{n.isLeaf=true}}e.treeTiledArray=o(e.treeList,r.childrenName)}}},state:E};var O={};var K=function e(r){if(!O[r]){O[r]=T(V)}return O[r]};var x=function e(r,t,a){var n=c(t,a);return d(r,n,true,{value:"value",parentValue:"parentValue"})};var F=function e(r,t){var n=f(r)?[]:r;n=a(n)?n:[n];n=n.map((function(e){if(P(e))return e[t.value];return e}));return n};var _=function e(r,t){var a=F(r,t);var n={};a.forEach((function(e){n[e]=true}));return n};var M=function e(r,t,a){if(f(r)&&f(t))return true;var n=_(r,a);var i=_(t,a);var l=A(n,i);return l};var U=["serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType"];var B=g((function(o,d){var g=o.serviceConfig,T=o.effectDependencyList,P=o.selectorTreeList,A=o.value,E=o.onChange,V=o.modelKey,O=o.checkableResponseParentNode,_=O===void 0?true:O,B=o.checkable,z=o.onSelectorTreeListChange,W=o.treeItemDataAdapter,Y=o.searchValue,H=o.showSearch,G=o.searchPlaceholder,J=o.requestMessageConfig,Q=o.labelInValueFieldNames,X=o.labelInValue,Z=o.disabledCanUse,$=o.menuLayoutType,ee=o.menuTriggerType,re=l(o,U);var te=o.hasOwnProperty("selectorTreeList");var ae=g||{};var ne=T||[];var ie=b(),le=ie[0],ue=ie[1];var se=K(V).useStore(),oe=se[0],ce=se[1];var de=q.useSafeState(false),fe=de[0],ve=de[1];var me="request-progress-"+o.modelKey;var pe=y((function(){return u({label:"label",value:"value",children:"children"},o.fieldNames)}),[o.fieldNames]);var he=L();var ge=$===undefined?"fold":$;var be=ee===undefined?"click":ee;var ye=B===true;var Le=y((function(){return u({label:"label",value:"value"},Q)}),[Q]);var je=b(),Ce=je[0],we=je[1];var ke=L(true);var Re=b(0),qe=Re[0],Ne=Re[1];var Se=L();var Te=y((function(){var e=F(A,Le);return e}),[Le,A]);q.useEffectCustom((function(){if(f(A)&&ke.current||oe.treeList.length==0)return;ke.current=false;if(!M(A,Se.current,Le)){console.log("modelKey:"+V+" TreeWrapper key refresh",A,Se.current);Se.current=ye?Te:Te[0];var e=Ee(Te,true);ue(Array.from(new Set(e)));he.current=Te;Ne(Date.now())}}),[A,oe.treeList]);var Pe=function e(r){return r===""||f(r)};var Ae=function e(r){var t=ae.onRequestResultAdapter?ae.onRequestResultAdapter(r):r;return t};q.useEffectCustom((function(){we(Y)}),[Y]);var De=i.useCallbackRef((function(){return new Promise((function(e,r){var t,a,i,l,u;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{ve(false);void h.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!ae.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=ae.requiredParamsKeys;a=n({},ae.params);if(t){i=t.find((function(e){return Pe(a[e])}));if(i){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return s()}catch(e){return o(e)}};var d=function(e){try{window[me]=false;ve(false);void ce.changeRequestStatus("request-error");return c()}catch(e){return o(e)}};try{ve(true);void ce.changeRequestStatus("request-progress");window[me]=true;return Promise.resolve(ae.onRequest==null?void 0:ae.onRequest(a)).then((function(e){try{l=e;u=Ae(l);Ie(u||[]);ve(false);window[me]=false;return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}catch(e){o(e)}}))}));q.useEffectCustom((function(){if(te)return;if(Boolean(ne.length)){void De();return}var e=K(V).getState();if(e.requestStatus==="request-success"){return}if(!window[me]){void De();return}}),ne);q.useEffectCustom((function(){if(te){Ie(P||[])}}),[P]);var Ie=i.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&oe.treeList.length===0){return}void ce.setTreeList({treeList:e||[],childrenName:pe.children});z==null?void 0:z(e)}));var Ee=i.useCallbackRef((function(e,r){var t=[];e.forEach((function(e){if(!r&&le!=null&&le.includes(e))return;var a=x(e,oe.treeList,pe);t=t.concat(a.map((function(e){return e.value})))}));return t}));i.useUpdateEffect((function(){if(Ce){var e=c(oe.treeList||[],pe);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(Ce||"")}));ue((function(e){var t=Ee(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{ue([])}}),[Ce]);j(d,(function(){return{onClearSelectorList:function e(){void ce.resetTreeList()},getTreeDataList:function e(){return oe.treeList}}}));var Ve=i.useCallbackRef((function(e){ue(e)}));var Oe=i.useCallbackRef((function(e,r,t){Se.current=e;var n=f(r)?[]:a(r)?r:[r];if(f(e)){E==null?void 0:E(e,r,t);return}if(X){var i=Le.label;var l=Le.value;var u=n.map((function(e){var r;return r={},r[i]=e[pe.label],r[l]=e[pe.value],r}));if(a(e)){E==null?void 0:E(u,n,t)}else{E==null?void 0:E(u[0],n[0],t)}}else{if(a(e)){E==null?void 0:E(e,n,t)}else{E==null?void 0:E(e,n[0],t)}}}));var Ke=i.useCallbackRef((function(e,r){var t=o.checkStrictly?e.checked:e;t=f(e)?[]:e;t=a(t)?t:[t];var n=[];var i=[];var l=[];var u=[];t.forEach((function(e){var r=oe.treeTiledArray.find((function(r){return r[pe.value]===e}));if(!r)return;var t=r==null?void 0:r[pe.children];if(!a(t)||t.length===0){n.push(r);i.push(r[pe.value])}l.push(r);u.push(r[pe.value])}));if(B){ue((function(e){var r=Ee(i).concat(e||[]);return Array.from(new Set(r))}));if(!_&&!o.checkStrictly){Oe(i,n,l)}else{Oe(u,l,l)}}else{if(t[0]){var s=l.find((function(e){return e[pe.value]===t[0]}));Oe(t[0],s,[s])}else{var c=r.node[pe.value];var d=oe.treeTiledArray.find((function(e){return e[pe.value]===c}));Oe(undefined,d,[d])}}}));var xe=i.useCallbackRef((function(e){return W==null?void 0:W(e)}));var Fe=y((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var n;var i=(xe==null?void 0:xe(r))||r;var l=Z?undefined:i.disabled;var s=i[pe.label];var o;if(Ce){var c=s.indexOf(Ce);var d=s.substring(0,c);var f=s.slice(c+Ce.length);o=c>-1?D("span",{className:t({"v-tree-item-disabled":i.disabled}),children:[d,I("span",{className:"site-tree-search-value",children:Ce}),f]}):null}if(!o){o=I("span",{className:t({"v-tree-item-disabled":i.disabled}),children:s})}var v=i[pe.children];return u({},i,(n={disabled:l},n[pe.label]=o,n._treeItemName=s,n._disabled=i.disabled,n[pe.children]=a(v)&&v.length>0?e(v):undefined,n))}))};var r=s(oe.treeList||[]);return e(r)}),[oe.treeList,xe,Z,pe.label,pe.children,Ce]);var _e=i.useCallbackRef((function(e){return new Promise((function(r,t){return new Promise((function(a,n){var i,l,u,s;if(e[pe.children]){r();return a()}var c=function(){try{return a()}catch(e){return n(e)}};var d=function(e){try{void h.error(e.message||"数据加载异常...");t();return c()}catch(e){return n(e)}};try{return Promise.resolve((i=o.loadDataServiceConfig)==null?void 0:i.onRequest==null?void 0:i.onRequest((l=o.loadDataServiceConfig)==null?void 0:l.getParams==null?void 0:l.getParams(e))).then((function(t){try{u=t;s=ae.onRequestResultAdapter?ae.onRequestResultAdapter(u):u;void ce.treeListAppendChildren({value:e[pe.value],appendList:s,childrenName:pe.children,valueName:pe.value}).then((function(e){Ie(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Me=i.useCallbackRef((function(e){var r=e==null?void 0:e[pe.children];var t=o.loadDataFlag;var a=t?!e.isLeaf:false;var n=r&&r.length>0||a;return!n}));var Ue=i.useCallbackRef((function(e){var a,n;var i=e._treeItemName||e[pe.label];if(ge==="fold"){var l;var s=[];if((l=o.menuOptions)!=null&&l.fold){var c,d,f;s=((c=o.menuOptions)==null?void 0:(d=c[ge])==null?void 0:d.call(c,u({},e,(f={},f[pe.label]=i,f))))||[]}else{var v;s=(o.getMenuOptions==null?void 0:o.getMenuOptions(u({},e,(v={},v[pe.label]=i,v))))||[]}return D(C,{children:[I("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),s.length>0&&I(R,{menuList:s,children:I(r,{})})]})}var m=(a=o.menuOptions)==null?void 0:a.tile==null?void 0:a.tile(u({},e,(n={},n[pe.label]=i,n)));return D(C,{children:[I("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),m?I(k,u({},m,{gap:5,className:t("tree-item-title-operate",m.className)})):null]})}));var Be=i.useDebounceCallback((function(e){we(e);o.onSearchValueChange==null?void 0:o.onSearchValueChange(e)}),300);var ze=i.useCallbackRef((function(e){Be(e.target.value)}));var We=i.useCallbackRef((function(e){if(!o.icon)return null;if(w(o.icon))return o.icon;var r=Me(e.data);return o.icon(u({},e,{isParent:!r,isLeaf:r}))}));var Ye=y((function(){return{title:pe.label,key:pe.value,children:pe.children}}),[pe]);if(oe.treeList.length>0&&oe.requestStatus!=="request-error"){var He=u({showLine:{showLeafIcon:false},titleRender:Ue,blockNode:true,switcherIcon:I(e,{})},re,{fieldNames:Ye,expandedKeys:le,treeData:Fe,onExpand:Ve,loadData:o.loadDataFlag?_e:undefined,style:u({width:"100%"},re.style),icon:We});var Ge={onCheck:Ke,checkable:B,defaultCheckedKeys:he.current};var Je={onSelect:Ke,multiple:false,defaultSelectedKeys:he.current};var Qe=B?Ge:Je;var Xe=t("v-tree-wrapper","v-tree-wrapper-menu-"+be);return D("div",{className:Xe,children:[I(v,{spinning:fe,className:"v-tree-wrapper-loading"}),H?I(N,{className:"v-tree-wrapper-search",style:{marginBottom:12},placeholder:G,onChange:ze,value:Y,allowClear:true}):null,I(m,u({},Qe,He,{className:"v-tree-wrapper-tree"}),qe)]})}return I(S,{status:oe.requestStatus,loading:fe,messageConfig:J,errorButton:I(p,{type:"primary",onClick:De,children:"重新获取数据"})})}));B.defaultProps={disabledCanUse:true};export{B as TreeWrapper};
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx"],"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, 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 { isUndefinedOrNull, LabelValueItem } from '@flatbiz/utils';\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: any,\n value2: any,\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","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 { isUndefinedOrNull, TAny, TPlainObject, treeToTiledArray } from '@flatbiz/utils';\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';\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';\n\nimport { treeWrapperModel } from './model';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, 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 onSelectorTreeListChange?: (dataList: TPlainObject[]) => 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 /** 菜单结构类型 tile/平铺 fold/折叠;默认:fold */\n menuLayoutType?: 'tile' | 'fold';\n /** 菜单触发类型,默认:click */\n menuTriggerType?: 'click' | 'hover';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期,请使用 menuOptions\n * @returns\n * ```\n * menuLayoutType = tile 无效\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\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 * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\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 void actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n onChangeSelectorList(respData || []);\n setLoading(false);\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 return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\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 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 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 const list = cloneState(state.treeList || []);\n return loop(list);\n }, [\n state.treeList,\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\">{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\">{nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n {...menuOptions}\n size={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\n if (state.treeList.length > 0 && state.requestStatus !== 'request-error') {\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n ...otherProps,\n fieldNames: treeFieldNames,\n expandedKeys: treeExpandedKeys,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%', ...otherProps.style },\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 return (\n <div className={cName}>\n <Spin spinning={loading} className=\"v-tree-wrapper-loading\"></Spin>\n {showSearch ? (\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n style={{ marginBottom: 12 }}\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n ) : null}\n <Tree key={refreshKey} {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n </div>\n );\n }\n\n return (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={requestMessageConfig}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\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","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","array2map","list","forEach","treeWrapperValueDeepEqual","value1","value2","object1","object2","diff","dequal","TreeWrapper","forwardRef","props","ref","serviceConfig","effectDependencyList","selectorTreeList","onChange","modelKey","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","children","defaultValueRef","useRef","menuLayoutTypeNew","undefined","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","onChangeSelectorList","Boolean","allState","getState","dataList","refresh","newTreeExpandedKeys","includes","targetList","concat","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","getTreeDataList","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","operateInfo","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","node","treeItemDataAdapterHandle","dataItem","treeData","loop","_extends2","adapterItem","disabled","strTitle","titleDom","index","indexOf","beforeStr","substring","afterStr","slice","_jsxs","className","_classNames","_jsx","_treeItemName","_disabled","cloneState","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_5","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","size","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","style","width","checkedProps","onCheck","defaultCheckedKeys","selectedProps","onSelect","multiple","defaultSelectedKeys","sceneProps","cName","Spin","spinning","InputSearchWrapper","marginBottom","placeholder","allowClear","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx"],"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, 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 { isUndefinedOrNull, LabelValueItem } from '@flatbiz/utils';\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: any,\n value2: any,\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","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 { isUndefinedOrNull, TAny, TPlainObject, treeToTiledArray } from '@flatbiz/utils';\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';\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';\n\nimport { treeWrapperModel } from './model';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, 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 onSelectorTreeListChange?: (dataList: TPlainObject[]) => 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 /** 菜单结构类型 tile/平铺 fold/折叠;默认:fold */\n menuLayoutType?: 'tile' | 'fold';\n /** 菜单触发类型,默认:click */\n menuTriggerType?: 'click' | 'hover';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期,请使用 menuOptions\n * @returns\n * ```\n * menuLayoutType = tile 无效\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\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 * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\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 void actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n onChangeSelectorList(respData || []);\n setLoading(false);\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 return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\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 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 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 const list = cloneState(state.treeList || []);\n return loop(list);\n }, [\n state.treeList,\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\">{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\">{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\n if (state.treeList.length > 0 && state.requestStatus !== 'request-error') {\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n ...otherProps,\n fieldNames: treeFieldNames,\n expandedKeys: treeExpandedKeys,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%', ...otherProps.style },\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 return (\n <div className={cName}>\n <Spin spinning={loading} className=\"v-tree-wrapper-loading\"></Spin>\n {showSearch ? (\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n style={{ marginBottom: 12 }}\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n ) : null}\n <Tree key={refreshKey} {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n </div>\n );\n }\n\n return (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={requestMessageConfig}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\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","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","array2map","list","forEach","treeWrapperValueDeepEqual","value1","value2","object1","object2","diff","dequal","TreeWrapper","forwardRef","props","ref","serviceConfig","effectDependencyList","selectorTreeList","onChange","modelKey","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","children","defaultValueRef","useRef","menuLayoutTypeNew","undefined","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","onChangeSelectorList","Boolean","allState","getState","dataList","refresh","newTreeExpandedKeys","includes","targetList","concat","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","getTreeDataList","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","operateInfo","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","node","treeItemDataAdapterHandle","dataItem","treeData","loop","_extends2","adapterItem","disabled","strTitle","titleDom","index","indexOf","beforeStr","substring","afterStr","slice","_jsxs","className","_classNames","_jsx","_treeItemName","_disabled","cloneState","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_5","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","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","style","width","checkedProps","onCheck","defaultCheckedKeys","selectedProps","onSelect","multiple","defaultSelectedKeys","sceneProps","cName","Spin","spinning","InputSearchWrapper","marginBottom","placeholder","allowClear","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -41,11 +41,12 @@ export interface ButtonOperateProps {
41
41
  */
42
42
  operateList: Array<ButtonOperateItem | null | ReactElement>;
43
43
  wrap?: boolean;
44
- size?: number;
45
44
  foldIcon?: ReactElement;
46
45
  className?: string;
47
46
  split?: boolean;
48
47
  spaceProps?: SpaceProps;
48
+ /** 间距,默认:10;split=true配置下无效(可通过spaceProps设置间距) */
49
+ gap?: number;
49
50
  }
50
51
  export declare const ButtonOperateItemContent: (props: Pick<ButtonOperateItem, "hoverTips" | "tipsType"> & {
51
52
  children?: ReactNode;
@@ -1318,7 +1319,12 @@ export interface LocalLoadingProps {
1318
1319
  isAsync?: boolean;
1319
1320
  /** 自定义异常渲染处理 */
1320
1321
  errorRender?: (error?: TAny) => ReactElement;
1322
+ /** loading高度,默认值:100;isAsync = true 无效 */
1323
+ loadingHeight?: number;
1321
1324
  }
1325
+ export type LocalLoadingRefApi = {
1326
+ onRefresh: () => void;
1327
+ };
1322
1328
  /**
1323
1329
  * 局部加载,包含接口数据处理逻辑
1324
1330
  * ```
@@ -1330,7 +1336,7 @@ export interface LocalLoadingProps {
1330
1336
  * @param props
1331
1337
  * @returns
1332
1338
  */
1333
- export declare const LocalLoading: (props: LocalLoadingProps) => JSX.Element;
1339
+ export declare const LocalLoading: import("react").ForwardRefExoticComponent<LocalLoadingProps & import("react").RefAttributes<LocalLoadingRefApi>>;
1334
1340
  export type onClick = (e?: React.MouseEvent<HTMLElement>) => void;
1335
1341
  export interface ModalActionProps {
1336
1342
  children: ReactElement | ((data: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.2.3",
3
+ "version": "4.2.5",
4
4
  "description": "flat-biz oss ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",
@@ -1,3 +0,0 @@
1
- /*! @flatjs/forge MIT @flatbiz/antd */
2
- import r from"@ant-design/icons/es/icons/MoreOutlined";import{a as e,_ as o}from"./_rollupPluginBabelHelpers-1f4d8910.js";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{isPlainObject as t}from"@dimjs/lang/cjs/is-plain-object";import{isString as l}from"@dimjs/lang/cjs/is-string";import{isPromise as s}from"@dimjs/lang/cjs/is-promise";import{hooks as c}from"@wove/react/cjs/hooks";import{Popover as a,Tooltip as p,Space as f,Divider as u,Popconfirm as d,Button as m}from"antd";import{Fragment as v,useState as h,isValidElement as y,useMemo as k,createElement as g}from"react";import{B as C}from"./button-wrapper-9bef2281.js";import{C as T}from"./config-provider-wrapper-dfe8f592.js";import{D as j}from"./dropdown-menu-wrapper-40f6a65b.js";import{f as P}from"./fba-utils-a4c7d94d.js";import{jsx as b,jsxs as w}from"react/jsx-runtime";var x=["text","color","onClick","needConfirm","confirmMessage","style","popconfirmProps"];var z=function r(e){if(e.hoverTips){if(e.tipsType==="popover"){return b(a,{content:e.hoverTips,zIndex:1e3,children:b(v,{children:e.children})})}return b(p,{title:e.hoverTips,zIndex:1e3,children:b(v,{children:e.children})})}return b(v,{children:e.children})};var B=function a(p){var v=h(false),C=v[0],T=v[1];var B=c.useCallbackRef((function(r,e){var o=r.onClick==null?void 0:r.onClick(e);if(o&&s(o)){T(true);return o.finally((function(){T(false)}))}return}));var L=p.operateList.filter((function(r){if(!r)return false;if(y(r)){var e,o;if(((e=r.props)==null?void 0:e["hidden"])===true)return false;var i=(o=r.props)==null?void 0:o["v-permission"];if(l(i)){return P.hasPermission(i)}return true}if(t(r)){if(!P.hasPermission(r.permission)){return false}return!r.hidden}return false}));var A=k((function(){return L.filter((function(r){if(y(r)){return true}return!r.isFold}))}),[L]);var I=k((function(){var r=L.filter((function(r){if(y(r)){return false}return r.isFold}));var o=[];r.forEach((function(r){var i=e({},r);delete i.isFold;o.push(i)}));return o}),[L]);var F=p.size===undefined?10:p.size;return b("div",{className:n("table-operate",p.className),children:w(f,e({split:p.split?b(u,{type:"vertical"}):null,size:F,wrap:i(p.wrap)?true:p.wrap},p.spaceProps,{children:[A.map((function(r,i){if(r&&y(r))return b(z,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:r});var n=r.text,t=r.color,l=r.onClick,s=r.needConfirm,c=r.confirmMessage,a=r.style,p=r.popconfirmProps,f=o(r,x);var u=r.type||"link";if(s&&!f.disabled){return b(z,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:g(d,e({okText:"确定",cancelText:"取消",trigger:["click"],placement:"topRight",arrowPointAtCenter:true,destroyTooltipOnHide:true},p,{title:c,onConfirm:B.bind(null,r),key:i,okButtonProps:{loading:C},onOpenChange:function r(e){if(!e){T(false)}}}),b(H,e({},f,{onClick:undefined,type:u,danger:true,style:a,color:t,children:y(n)?b("span",{children:n}):n})))},i)}return b(z,{hoverTips:r.hoverTips,tipsType:r.tipsType,children:b(H,e({},f,{type:u,style:a,onClick:l,color:t,children:y(n)?b("span",{children:n}):n}))},i)})),I.length>0?b(j,{menuList:I,children:b(m,{type:"link",className:"fold-more-button",onClick:function r(e){e.stopPropagation()},children:p.foldIcon?p.foldIcon:b(r,{})})}):null]}))})};var H=function r(o){if(o.color&&!o.disabled){var i={};if(o.type==="link"){i={colorLink:o.color,colorLinkActive:o.color,colorLinkHover:o.color}}else if(o.type==="primary"){i={colorPrimary:o.color,colorPrimaryHover:o.color,colorPrimaryActive:o.color}}else{i={colorPrimaryHover:o.color,colorPrimaryActive:o.color,colorText:o.color,colorBorder:o.color}}return b(T,{theme:{components:{Button:i}},children:b(C,e({},o,{onClick:function r(e){e.stopPropagation();return o.onClick==null?void 0:o.onClick(e)},children:o.children}))})}return b(C,e({},o,{onClick:function r(e){e.stopPropagation();return o.onClick==null?void 0:o.onClick(e)},children:o.children}))};B.defaultProps={size:0,split:true};export{z as B,B as a};
3
- //# sourceMappingURL=button-operate-4f17036d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"button-operate-4f17036d.js","sources":["@flatbiz/antd/src/button-operate/button-operate.tsx"],"sourcesContent":["import { MoreOutlined } from '@ant-design/icons';\nimport { isPlainObject, isPromise, isString, isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport {\n Button,\n ButtonProps,\n Divider,\n Popconfirm,\n PopconfirmProps,\n Popover,\n Space,\n SpaceProps,\n Tooltip,\n} from 'antd';\nimport { OverrideToken } from 'antd/es/theme/interface';\nimport { FC, Fragment, isValidElement, ReactElement, ReactNode, useMemo, useState } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { ConfigProviderWrapper } from '../config-provider-wrapper';\nimport { DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaUtils } from '../fba-utils';\n\nimport './style.less';\n\nexport interface ButtonOperateItem extends ButtonProps {\n /** hover 提示文字 */\n hoverTips?: string | React.ReactElement;\n /** hover 提示类型 默认:'tooltip' */\n tipsType?: 'popover' | 'tooltip';\n text?: string | ReactElement;\n color?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void | Promise<void>;\n permission?: string;\n needConfirm?: boolean;\n confirmMessage?: string;\n hidden?: boolean;\n popconfirmProps?: Pick<PopconfirmProps, 'placement' | 'okText' | 'cancelText' | 'trigger'>;\n // 是否折叠合拢\n isFold?: boolean;\n}\n\nexport interface ButtonOperateProps {\n /**\n * 如果数组中元素为ReactElement类型\n * 1. 一般为antd Button组件,如果组件存在属性hidden=true,则会隐藏\n * 2. 可配置 v-permission 权限值,例如 v-permission=\"add\"\n * 3. 任何confirm、disabled等状态在外部控制\n * 3. 不支持fold效果\n */\n operateList: Array<ButtonOperateItem | null | ReactElement>;\n wrap?: boolean;\n size?: number;\n foldIcon?: ReactElement;\n className?: string;\n split?: boolean;\n spaceProps?: SpaceProps;\n}\n\nexport const ButtonOperateItemContent = (\n props: Pick<ButtonOperateItem, 'hoverTips' | 'tipsType'> & { children?: ReactNode },\n) => {\n if (props.hoverTips) {\n if (props.tipsType === 'popover') {\n return (\n <Popover content={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Popover>\n );\n }\n return (\n <Tooltip title={props.hoverTips} zIndex={1000}>\n <Fragment>{props.children}</Fragment>\n </Tooltip>\n );\n }\n return <Fragment>{props.children}</Fragment>;\n};\n\nexport const ButtonOperate: FC<ButtonOperateProps> = (props) => {\n const [loading, setLoading] = useState(false);\n\n const onConfirm = hooks.useCallbackRef((item: ButtonOperateItem, event) => {\n const result = item.onClick?.(event);\n if (result && isPromise(result)) {\n setLoading(true);\n return result.finally(() => {\n setLoading(false);\n });\n }\n return;\n });\n\n const operateList = props.operateList.filter((item) => {\n if (!item) return false;\n if (isValidElement(item)) {\n if (item.props?.['hidden'] === true) return false;\n const permission = item.props?.['v-permission'];\n if (isString(permission)) {\n return fbaUtils.hasPermission(permission);\n }\n return true;\n }\n if (isPlainObject(item)) {\n if (!fbaUtils.hasPermission(item.permission)) {\n return false;\n }\n return !item.hidden;\n }\n return false;\n }) as Array<ButtonOperateItem | ReactElement>;\n\n const viewList = useMemo(() => {\n return operateList.filter((item) => {\n if (isValidElement(item)) {\n return true;\n }\n return !item.isFold;\n }) as ButtonOperateItem[];\n }, [operateList]);\n\n const foldList = useMemo(() => {\n const filterList = operateList.filter((item) => {\n if (isValidElement(item)) {\n return false;\n }\n return item.isFold;\n }) as ButtonOperateItem[];\n const result = [] as ButtonOperateItem[];\n filterList.forEach((item) => {\n const target = { ...item };\n // 多余字段渲染到react dom上,出现警告\n delete target.isFold;\n result.push(target);\n });\n return result;\n }, [operateList]);\n\n const size = props.size === undefined ? 10 : props.size;\n\n return (\n <div className={classNames('table-operate', props.className)}>\n <Space\n split={props.split ? <Divider type=\"vertical\" /> : null}\n size={size}\n wrap={isUndefined(props.wrap) ? true : props.wrap}\n {...props.spaceProps}\n >\n {viewList.map((item, index) => {\n if (item && isValidElement(item))\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType}>\n {item}\n </ButtonOperateItemContent>\n );\n const { text, color, onClick, needConfirm, confirmMessage, style, popconfirmProps, ...otherProps } =\n item;\n const type = item.type || 'link';\n if (needConfirm && !otherProps.disabled) {\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n <Popconfirm\n okText=\"确定\"\n cancelText=\"取消\"\n trigger={['click']}\n placement=\"topRight\"\n arrowPointAtCenter={true}\n destroyTooltipOnHide={true}\n {...popconfirmProps}\n title={confirmMessage}\n onConfirm={onConfirm.bind(null, item)}\n key={index}\n okButtonProps={{\n loading,\n }}\n onOpenChange={(_open) => {\n if (!_open) {\n setLoading(false);\n }\n }}\n >\n <DefaultButton\n {...otherProps}\n onClick={undefined}\n type={type}\n danger\n style={style}\n color={color}\n >\n {isValidElement(text) ? <span>{text}</span> : text}\n </DefaultButton>\n </Popconfirm>\n </ButtonOperateItemContent>\n );\n }\n return (\n <ButtonOperateItemContent hoverTips={item.hoverTips} tipsType={item.tipsType} key={index}>\n <DefaultButton {...otherProps} type={type} style={style} onClick={onClick} color={color}>\n {isValidElement(text) ? <span>{text}</span> : text}\n </DefaultButton>\n </ButtonOperateItemContent>\n );\n })}\n {foldList.length > 0 ? (\n <DropdownMenuWrapper menuList={foldList}>\n <Button\n type=\"link\"\n className=\"fold-more-button\"\n onClick={(event) => {\n event.stopPropagation();\n }}\n >\n {props.foldIcon ? props.foldIcon : <MoreOutlined />}\n </Button>\n </DropdownMenuWrapper>\n ) : null}\n </Space>\n </div>\n );\n};\n\nconst DefaultButton = (props) => {\n if (props.color && !props.disabled) {\n let buttonTheme: OverrideToken['Button'] = {};\n if (props.type === 'link') {\n buttonTheme = {\n colorLink: props.color,\n colorLinkActive: props.color,\n colorLinkHover: props.color,\n };\n } else if (props.type === 'primary') {\n buttonTheme = {\n colorPrimary: props.color,\n colorPrimaryHover: props.color,\n colorPrimaryActive: props.color,\n };\n } else {\n buttonTheme = {\n colorPrimaryHover: props.color,\n colorPrimaryActive: props.color,\n colorText: props.color,\n colorBorder: props.color,\n };\n }\n\n return (\n <ConfigProviderWrapper\n theme={{\n components: {\n Button: buttonTheme,\n },\n }}\n >\n <ButtonWrapper\n {...props}\n onClick={(event) => {\n event.stopPropagation();\n return props.onClick?.(event);\n }}\n >\n {props.children}\n </ButtonWrapper>\n </ConfigProviderWrapper>\n );\n }\n return (\n <ButtonWrapper\n {...props}\n onClick={(event) => {\n event.stopPropagation();\n return props.onClick?.(event);\n }}\n >\n {props.children}\n </ButtonWrapper>\n );\n};\n\nButtonOperate.defaultProps = {\n size: 0,\n split: true,\n};\n"],"names":["ButtonOperateItemContent","props","hoverTips","tipsType","_jsx","Popover","content","zIndex","children","Fragment","Tooltip","title","ButtonOperate","_useState","useState","loading","setLoading","onConfirm","_hooks","useCallbackRef","item","event","result","onClick","_isPromise","finally","operateList","filter","isValidElement","_item$props","_item$props2","permission","_isString","fbaUtils","hasPermission","_isPlainObject","hidden","viewList","useMemo","isFold","foldList","filterList","forEach","target","_extends","push","size","undefined","className","_classNames","_jsxs","Space","split","Divider","type","wrap","_isUndefined","spaceProps","map","index","text","color","needConfirm","confirmMessage","style","popconfirmProps","otherProps","_objectWithoutPropertiesLoose","_excluded","disabled","_createElement","Popconfirm","okText","cancelText","trigger","placement","arrowPointAtCenter","destroyTooltipOnHide","bind","key","okButtonProps","onOpenChange","_open","DefaultButton","danger","length","DropdownMenuWrapper","menuList","Button","stopPropagation","foldIcon","_MoreOutlined","buttonTheme","colorLink","colorLinkActive","colorLinkHover","colorPrimary","colorPrimaryHover","colorPrimaryActive","colorText","colorBorder","ConfigProviderWrapper","theme","components","ButtonWrapper","defaultProps"],"mappings":"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"}