@flatbiz/antd 4.2.96 → 4.2.97
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm/easy-table/index.js
CHANGED
|
@@ -12,5 +12,5 @@ import './../table-title-tooltip/index.css';
|
|
|
12
12
|
import './../tips-wrapper/index.css';
|
|
13
13
|
import './index.css';
|
|
14
14
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
15
|
-
import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{_ as n,a}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as o}from"@wove/react/cjs/hooks";import{cloneState as l}from"@dimjs/model";import{Form as s,message as u,Table as c}from"antd";import{createContext as p,forwardRef as d,useState as f,useMemo as m,useRef as g,useImperativeHandle as v,useContext as y,Children as h}from"react";import{P as C,S}from"../index-6677fbfc.js";import{noop as b,isUndefinedOrNull as j,getUuid as F,isMacEnv as q}from"@flatbiz/utils";import{Model as z}from"@dimjs/model-react";import{jsx as R,jsxs as N}from"react/jsx-runtime";import x from"@ant-design/icons/es/icons/DownOutlined";import P from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as w}from"react-is";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{FormGrid as T}from"../form-grid/index.js";import{SimpleLayout as D}from"../simple-layout/index.js";import{fbaHooks as K}from"../fba-hooks/index.js";import{TableScrollbar as L}from"../table-scrollbar/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/index.js";import{TipsWrapper as E}from"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-34027e61.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"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/get";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var A=p({onRequest:b,tableList:[],getEasyTableRef:function e(){}});var O={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=n({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=n({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var B={};var W=function e(t){if(!B[t]){B[t]=z(I)}return B[t]};var _=d((function(e,a){var c;var p=f([]),d=p[0],y=p[1];var h=f(0),S=h[0],b=h[1];var j=f(false),F=j[0],q=j[1];var z=o.useId(undefined,"easy-table-key");var x=m((function(){return e.cacheSwitch?location.pathname:z}),[z,e.cacheSwitch]);var P=W(x).useStore(),w=P[0],k=P[1];var T=e.pageSize||((c=e.initialPaginationParams)==null?void 0:c.pageSize)||10;var D=e.initRequest===undefined?true:e.initRequest;var K=f(false),L=K[0],V=K[1];var E=g();var O=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var I=s.useForm(e.form),B=I[0];var _=o.useCallbackRef((function(t){return new Promise((function(i,n){var a,o,s,c,p,d,f,m,g,v;var h=function(){try{return i()}catch(e){return n(e)}};var C=function(t){try{q(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void u.error(t.message)}return h()}catch(e){return n(e)}};try{q(true);return Promise.resolve(k.updateFilterCondition(t)).then((function(t){try{a=t;o=l(a.queryCondition||{});s=e.serviceConfig,c=s.requestParamsAdapter,p=s.onRequest,d=s.requestResultAdapter;f=c?c(o):o;return Promise.resolve(p(f)).then((function(t){try{m=t||{};E.current=m;e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=d?d(m):m;v=g[O.list];y(r(v)?v:[]);b(g[O.total]);q(false);return h()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var H=o.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(k.resetFilterCondition()).then((function(r){try{B.resetFields();if(e){void k.updateFilterCondition(e);B.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var U=function e(t,i){if(L){var r;return r={},r[O.pageNo]=t,r[O.pageSize]=i||T,r}else{return{}}};var Q=o.useCallbackRef((function(t){return new Promise((function(i,r){var a;a=n({},U(1,w.queryCondition[O.pageSize]),e.initialValues,t);return Promise.resolve(k.resetFilterCondition(a)).then((function(e){try{B.resetFields();if(t){B.setFieldsValue(t)}void _(a);return i()}catch(e){return r(e)}}),r)}))}));var Y=o.useCallbackRef((function(){return n({},w.queryCondition,B.getFieldsValue())}));var G=function t(){return{onRequest:_,clearQueryCondition:H,getRequestParams:Y,onResetRequest:Q,form:B,getDataSource:function e(){return E.current},onFilterDataSource:function e(t){y(t)},onClearDataSource:function e(){b(0);y([])},onUpdateDataSource:function t(i){y(i);E.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)}}};v(a,(function(){return G()}));var $=function e(t){V(t)};var J=function t(){var i=B.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},i,U(1,w.queryCondition[O.pageSize])))}else{void _(n({},i,U(1,w.queryCondition[O.pageSize])))}};var M=i(e.isFull)?true:e.isFull;var X=t("fba-easy-table",{"fba-easy-table-full":M,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var Z=m((function(){return n({showSizeChanger:true,current:w.queryCondition[O.pageNo]||1,pageSize:w.queryCondition[O.pageSize]||T,total:S,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[O.pageNo,O.pageSize,T,e.pagination,w.queryCondition,S]);var ee=o.useCallbackRef((function(t,i){var r,n;void _((r={},r[O.pageSize]=i,r[O.pageNo]=t,r));(n=e.pagination)==null||n.onChange==null?void 0:n.onChange(t,i)}));var te=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var ie=typeof e.children==="function"?e.children(E.current):e.children;return R(A.Provider,{value:{getEasyTableRef:G,modelKey:x,onRequest:_,tableList:d,tableTotal:S,loading:F,fieldNames:O,pageSize:T,initRequest:D,initialValues:e.initialValues||{},onSetPaginationStatus:$,paginationStatus:L,onFormFinish:J,form:B,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?N("div",{className:te,style:e.style,children:[R("div",{className:X,children:ie}),S>0&&R("div",{className:"fba-easy-table-pagination",children:R(C,n({size:"small"},Z,{onChange:ee}))})]}):R("div",{className:X,style:e.style,children:ie})})}));var H=function e(r){var a=y(A);var l=r.queryButtonProps,u=r.resetButtonProps,c=r.filterOperate,p=r.formClassName,d=r.defaultResetButtonTriggerRequest,g=r.filterWrapperStyle,v=r.filterWrapperClassName,C=r.rightOperateAreaAppendType;var S=a.modelKey,b=a.foldKeys,j=a.fieldNames,F=a.onRequest,q=a.pageSize,z=a.paginationStatus,K=a.initialValues,L=a.form,V=a.onFormFinish;var E=typeof r.children==="function"?r.children(L):r.children;var O=C||"cover";var I=m((function(){if(w(E)){return h.toArray(E.props.children)}else{return h.toArray(E)}}),[E]);var B=f(false),_=B[0],H=B[1];var U=W(S).useStore(),Q=U[0],Y=U[1];var G=o.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(Y.resetFilterCondition()).then((function(a){try{L.resetFields();if(i(d)||d){if(z){F(n((r={},r[j.pageNo]=1,r[j.pageSize]=q,r),K))}else{F(K)}}return e()}catch(e){return t(e)}}),t)}))}));var $=m((function(){var e=[R(k,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"),R(k,n({onClick:G},u,{children:(u==null?void 0:u.text)||"重置"}),"2")].filter(Boolean);var t=c==null?void 0:c(L);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var a=e;if(i){if(O==="afterAppend"){a=[].concat(e,i)}else if(O==="beforeAppend"){a=[].concat(i,e)}else{a=i}}if(b.length>0){var o=R(k,{type:"link",style:{padding:"0"},onClick:function e(){H(!_)},children:_?N("span",{children:["收起",R(P,{style:{marginLeft:3,fontSize:12}})]}):N("span",{children:["展开",R(x,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return I.map((function(e,t){if(!_&&b.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return R(T.Col,{children:e},t)})).filter(Boolean).concat(R(T.OperateCol,n({},t,{leftList:r,rightList:a}),999))}),[I,c,b,L,G,_,l,u,O]);return R(D,{className:t("easy-table-filter",v),style:g,children:R(s,{form:L,autoComplete:"off",onFinish:V,initialValues:n({},K,Q.queryCondition),className:p,style:r.formStyle,children:r.isPure?E:R(T.Row,{gutter:[15,0],gridSize:r.formGridSize,children:$})})})};var U=function e(){var t=y(A);return t.getEasyTableRef()};var Q=function e(){var t=y(A);return{current:t.getEasyTableRef()}};var Y=["children","rowKey","pagination"],G=["tooltip","tipsWrapperProps","title"];var $=function e(i){var r=y(A);var o=i.children,l=i.rowKey,s=i.pagination,u=a(i,Y);var p=r.modelKey,d=r.fieldNames,f=r.onRequest,g=r.tableList,v=r.initRequest,h=r.pageSize,C=r.tableTotal,b=r.loading,z=r.initialValues,x=r.paginationFixed,P=r.onSetPaginationStatus;var w=W(p).useStore(),k=w[0],T=w[1];var O=m((function(){if(x||s===false)return false;return n({showSizeChanger:true,current:k.queryCondition[d.pageNo]||1,pageSize:k.queryCondition[d.pageSize]||h,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:S})}),[d.pageNo,d.pageSize,h,s,x,i.pagination,k.queryCondition,C]);var I=function e(t,r,n,a){if(a.action==="paginate"&&O){var o;f((o={},o[d.pageSize]=t.pageSize,o[d.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var B=m((function(){if(g.length===0){return[]}if(typeof l==="string"&&j(g[0][l])){return g.map((function(e){e[l]=F();return e}))}return g}),[g,l]);K.useEffectCustom((function(){var e=x||O!==false;P(e);if(v!==false||!k.isInit){if(e){var t;void f(n((t={},t[d.pageNo]=1,t[d.pageSize]=h,t),z,k.queryCondition))}else{void f(z)}}else{void T.updateFilterCondition(z)}void T.updateInitStatus()}),[]);var _=m((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.tipsWrapperProps,r=e.title,o=a(e,G);if(typeof r==="string"&&i){if(typeof i==="string"){return n({},o,{title:R(E,{tipType:"popover",popoverProps:{content:i},children:r})})}return n({},o,{title:R(E,n({},i,{children:r}))})}if(typeof r==="string"&&!!t){return n({},o,{title:R(V,{tooltip:t,title:r})})}return e}))}),[i.columns]);return N(D,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[o,q()?R(c,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B})):R(L,{children:R(c,n({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:_,pagination:O,rowKey:l,onChange:I,loading:b,dataSource:B}))})]})};var J=e.attachPropertiesToComponent(_,{Filter:H,Table:$,useEasyTablRef:Q,useEasyTable:U});export{J as EasyTable};
|
|
15
|
+
import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{get as n}from"@dimjs/utils/cjs/get";import{_ as a,a as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as l}from"@wove/react/cjs/hooks";import{cloneState as s}from"@dimjs/model";import{Form as u,message as c,Table as p}from"antd";import{createContext as f,forwardRef as d,useState as m,useMemo as g,useRef as v,useImperativeHandle as y,useContext as h,Children as C}from"react";import{P as S,S as b}from"../index-6677fbfc.js";import{noop as j,isUndefinedOrNull as F,getUuid as q,isMacEnv as z}from"@flatbiz/utils";import{Model as R}from"@dimjs/model-react";import{jsx as N,jsxs as x}from"react/jsx-runtime";import P from"@ant-design/icons/es/icons/DownOutlined";import w from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as k}from"react-is";import{ButtonWrapper as T}from"../button-wrapper/index.js";import{FormGrid as D}from"../form-grid/index.js";import{SimpleLayout as K}from"../simple-layout/index.js";import{fbaHooks as L}from"../fba-hooks/index.js";import{TableScrollbar as V}from"../table-scrollbar/index.js";import{TableTitleTooltip as E}from"../table-title-tooltip/index.js";import{TipsWrapper as A}from"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-34027e61.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"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";import"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var O=f({onRequest:j,tableList:[],getEasyTableRef:function e(){}});var I={queryCondition:{},isInit:true};var B={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=a({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=a({},I.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:I};var W={};var _=function e(t){if(!W[t]){W[t]=R(B)}return W[t]};var H=d((function(e,o){var p;var f=m([]),d=f[0],h=f[1];var C=m(0),b=C[0],j=C[1];var F=m(false),q=F[0],z=F[1];var R=l.useId(undefined,"easy-table-key");var P=g((function(){return e.cacheSwitch?location.pathname:R}),[R,e.cacheSwitch]);var w=_(P).useStore(),k=w[0],T=w[1];var D=e.pageSize||((p=e.initialPaginationParams)==null?void 0:p.pageSize)||10;var K=e.initRequest===undefined?true:e.initRequest;var L=m(false),V=L[0],E=L[1];var A=v();var I=a({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var B=u.useForm(e.form),W=B[0];var H=l.useCallbackRef((function(t){return new Promise((function(i,a){var o,l,u,p,f,d,m,g,v,y;var C=function(){try{return i()}catch(e){return a(e)}};var S=function(t){try{z(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void c.error(t.message)}return C()}catch(e){return a(e)}};try{z(true);return Promise.resolve(T.updateFilterCondition(t)).then((function(t){try{o=t;l=s(o.queryCondition||{});u=e.serviceConfig,p=u.requestParamsAdapter,f=u.onRequest,d=u.requestResultAdapter;m=p?p(l):l;return Promise.resolve(f(m)).then((function(t){try{g=t||{};A.current=g;e.onDataSourceChange==null?void 0:e.onDataSourceChange(g);v=g;if(d){v=d(g)}y=n(v,I.list);h(r(y)?y:[]);j(n(v,I.total));z(false);return C()}catch(e){return S(e)}}),S)}catch(e){return S(e)}}),S)}catch(e){S(e)}}))}));var U=l.useCallbackRef((function(e){return new Promise((function(t,i){return Promise.resolve(T.resetFilterCondition()).then((function(r){try{W.resetFields();if(e){void T.updateFilterCondition(e);W.setFieldsValue(e)}return t()}catch(e){return i(e)}}),i)}))}));var Q=function e(t,i){if(V){var r;return r={},r[I.pageNo]=t,r[I.pageSize]=i||D,r}else{return{}}};var Y=l.useCallbackRef((function(t){return new Promise((function(i,r){var n;n=a({},Q(1,k.queryCondition[I.pageSize]),e.initialValues,t);return Promise.resolve(T.resetFilterCondition(n)).then((function(e){try{W.resetFields();if(t){W.setFieldsValue(t)}void H(n);return i()}catch(e){return r(e)}}),r)}))}));var G=l.useCallbackRef((function(){return a({},k.queryCondition,W.getFieldsValue())}));var $=function t(){return{onRequest:H,clearQueryCondition:U,getRequestParams:G,onResetRequest:Y,form:W,getDataSource:function e(){return A.current},onFilterDataSource:function e(t){h(t)},onClearDataSource:function e(){j(0);h([])},onUpdateDataSource:function t(i){h(i);A.current=i;e.onDataSourceChange==null?void 0:e.onDataSourceChange(i)}}};y(o,(function(){return $()}));var J=function e(t){E(t)};var M=function t(){var i=W.getFieldsValue();if(e.onFormFinish){e.onFormFinish(a({},i,Q(1,k.queryCondition[I.pageSize])))}else{void H(a({},i,Q(1,k.queryCondition[I.pageSize])))}};var X=i(e.isFull)?true:e.isFull;var Z=t("fba-easy-table",{"fba-easy-table-full":X,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var ee=g((function(){return a({showSizeChanger:true,current:k.queryCondition[I.pageNo]||1,pageSize:k.queryCondition[I.pageSize]||D,total:b,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[I.pageNo,I.pageSize,D,e.pagination,k.queryCondition,b]);var te=l.useCallbackRef((function(t,i){var r,n;void H((r={},r[I.pageSize]=i,r[I.pageNo]=t,r));(n=e.pagination)==null||n.onChange==null?void 0:n.onChange(t,i)}));var ie=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var re=typeof e.children==="function"?e.children(A.current):e.children;return N(O.Provider,{value:{getEasyTableRef:$,modelKey:P,onRequest:H,tableList:d,tableTotal:b,loading:q,fieldNames:I,pageSize:D,initRequest:K,initialValues:e.initialValues||{},onSetPaginationStatus:J,paginationStatus:V,onFormFinish:M,form:W,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?x("div",{className:ie,style:e.style,children:[N("div",{className:Z,children:re}),b>0&&N("div",{className:"fba-easy-table-pagination",children:N(S,a({size:"small"},ee,{onChange:te}))})]}):N("div",{className:Z,style:e.style,children:re})})}));var U=function e(r){var n=h(O);var o=r.queryButtonProps,s=r.resetButtonProps,c=r.filterOperate,p=r.formClassName,f=r.defaultResetButtonTriggerRequest,d=r.filterWrapperStyle,v=r.filterWrapperClassName,y=r.rightOperateAreaAppendType;var S=n.modelKey,b=n.foldKeys,j=n.fieldNames,F=n.onRequest,q=n.pageSize,z=n.paginationStatus,R=n.initialValues,L=n.form,V=n.onFormFinish;var E=typeof r.children==="function"?r.children(L):r.children;var A=y||"cover";var I=g((function(){if(k(E)){return C.toArray(E.props.children)}else{return C.toArray(E)}}),[E]);var B=m(false),W=B[0],H=B[1];var U=_(S).useStore(),Q=U[0],Y=U[1];var G=l.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(Y.resetFilterCondition()).then((function(n){try{L.resetFields();if(i(f)||f){if(z){F(a((r={},r[j.pageNo]=1,r[j.pageSize]=q,r),R))}else{F(R)}}return e()}catch(e){return t(e)}}),t)}))}));var $=g((function(){var e=[N(T,a({type:"primary",htmlType:"submit"},o,{children:(o==null?void 0:o.text)||"查询"}),"1"),N(T,a({onClick:G},s,{children:(s==null?void 0:s.text)||"重置"}),"2")].filter(Boolean);var t=c==null?void 0:c(L);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var n=e;if(i){if(A==="afterAppend"){n=[].concat(e,i)}else if(A==="beforeAppend"){n=[].concat(i,e)}else{n=i}}if(b.length>0){var l=N(T,{type:"link",style:{padding:"0"},onClick:function e(){H(!W)},children:W?x("span",{children:["收起",N(w,{style:{marginLeft:3,fontSize:12}})]}):x("span",{children:["展开",N(P,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(n.length>0||r.length===0){n.push(l)}else if((r==null?void 0:r.length)>0){r.push(l)}}return I.map((function(e,t){if(!W&&b.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return N(D.Col,{children:e},t)})).filter(Boolean).concat(N(D.OperateCol,a({},t,{leftList:r,rightList:n}),999))}),[I,c,b,L,G,W,o,s,A]);return N(K,{className:t("easy-table-filter",v),style:d,children:N(u,{form:L,autoComplete:"off",onFinish:V,initialValues:a({},R,Q.queryCondition),className:p,style:r.formStyle,children:r.isPure?E:N(D.Row,{gutter:[15,0],gridSize:r.formGridSize,children:$})})})};var Q=function e(){var t=h(O);return t.getEasyTableRef()};var Y=function e(){var t=h(O);return{current:t.getEasyTableRef()}};var G=["children","rowKey","pagination"],$=["tooltip","tipsWrapperProps","title"];var J=function e(i){var r=h(O);var n=i.children,l=i.rowKey,s=i.pagination,u=o(i,G);var c=r.modelKey,f=r.fieldNames,d=r.onRequest,m=r.tableList,v=r.initRequest,y=r.pageSize,C=r.tableTotal,S=r.loading,j=r.initialValues,R=r.paginationFixed,P=r.onSetPaginationStatus;var w=_(c).useStore(),k=w[0],T=w[1];var D=g((function(){if(R||s===false)return false;return a({showSizeChanger:true,current:k.queryCondition[f.pageNo]||1,pageSize:k.queryCondition[f.pageSize]||y,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},i.pagination,{selectComponentClass:b})}),[f.pageNo,f.pageSize,y,s,R,i.pagination,k.queryCondition,C]);var I=function e(t,r,n,a){if(a.action==="paginate"&&D){var o;d((o={},o[f.pageSize]=t.pageSize,o[f.pageNo]=t.current,o))}else{i.onChange==null?void 0:i.onChange(t,r,n,a)}};var B=g((function(){if(m.length===0){return[]}if(typeof l==="string"&&F(m[0][l])){return m.map((function(e){e[l]=q();return e}))}return m}),[m,l]);L.useEffectCustom((function(){var e=R||D!==false;P(e);if(v!==false||!k.isInit){if(e){var t;void d(a((t={},t[f.pageNo]=1,t[f.pageSize]=y,t),j,k.queryCondition))}else{void d(j)}}else{void T.updateFilterCondition(j)}void T.updateInitStatus()}),[]);var W=g((function(){return i.columns.map((function(e){var t=e.tooltip,i=e.tipsWrapperProps,r=e.title,n=o(e,$);if(typeof r==="string"&&i){if(typeof i==="string"){return a({},n,{title:N(A,{tipType:"popover",popoverProps:{content:i},children:r})})}return a({},n,{title:N(A,a({},i,{children:r}))})}if(typeof r==="string"&&!!t){return a({},n,{title:N(E,{tooltip:t,title:r})})}return e}))}),[i.columns]);return x(K,{className:t("easy-table-table",i.tableWrapperClassName),style:i.tableWrapperStyle,children:[n,z()?N(p,a({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:W,pagination:D,rowKey:l,onChange:I,loading:S,dataSource:B})):N(V,{children:N(p,a({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:W,pagination:D,rowKey:l,onChange:I,loading:S,dataSource:B}))})]})};var M=e.attachPropertiesToComponent(H,{Filter:U,Table:J,useEasyTablRef:Y,useEasyTable:Q});export{M as EasyTable};
|
|
16
16
|
//# 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/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi } from './type';\n\n// export 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// paginationFixed: boolean;\n// foldKeys: string[];\n// }>();\n\nexport type EditableFieldContextContextApi = {\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 paginationFixed: boolean;\n foldKeys: string[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\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?: TPlainObject;\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: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\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, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\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 className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 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 /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * 2. 取消内边距\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(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 const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = 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 respOriginalDataRef.current = respData;\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 if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\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\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\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, ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\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 paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { EasyTableContext } 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<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n};\n\n/**\n * 过滤条件\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 *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\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\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useContext, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\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 paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && 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 const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.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 *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","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","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","Provider","value","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","OperateCol","SimpleLayout","autoComplete","onFinish","formStyle","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","tipsWrapperProps","title","_excluded2","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","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/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi } from './type';\n\n// export 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// paginationFixed: boolean;\n// foldKeys: string[];\n// }>();\n\nexport type EditableFieldContextContextApi = {\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 paginationFixed: boolean;\n foldKeys: string[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\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?: TPlainObject;\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: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\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, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\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 * fieldNames={{\n * list: 'aList',\n * total: 'aTotal',\n * }}\n * serviceConfig={{\n * url: '/v1/board/list',\n * requestResultAdapter: (respData) => {\n * return {\n * aList: respData.data.rows,\n * aTotal: respData.page.total,\n * };\n * },\n * }}\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /**\n * 字段映射,默认值:{ list:'list', total:'total', pageNo:'pageNo', pageSize:'pageSize' }\n * ```\n * 1. list、total用于解析接口响应数据,可以配置多级,例如:{ list: 'data.rows', total: 'page.total' }\n * 2. pageNo、pageSize用于接口分页入参Key定义,只能一级,例如:pageNo: 'page'\n * ```\n */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * 2. 取消内边距\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(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 const respOriginalDataRef = useRef<TAny>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = 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 respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n let respDataNew: TPlainObject = respData;\n if (requestResultAdapter) {\n respDataNew = requestResultAdapter(respData);\n }\n const respList = get(respDataNew, fieldNames.list);\n setDataSource(isArray(respList) ? respList : []);\n setTotal(get(respDataNew, fieldNames.total));\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\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\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\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, ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\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 paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { EasyTableContext } 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<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n};\n\n/**\n * 过滤条件\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 *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\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\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>,\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport { CSSProperties, ReactElement, useContext, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type TEasyTableTableColumn<T> = ColumnsType<T>[0] & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n dataIndex?: keyof T | (string & {});\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n};\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\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 paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && 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 const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n return props.columns.map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n });\n }, [props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.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 *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","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","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","current","onDataSourceChange","_get","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","Provider","value","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","OperateCol","SimpleLayout","autoComplete","onFinish","formStyle","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","columns","tooltip","tipsWrapperProps","title","_excluded2","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":";+8DA2CO,IAAMA,EAAmBC,EAA8C,CAC5EC,UAAWC,EACXC,UAAW,GACXC,gBAAiB,SAAAA,IACf,IChCJ,IAAMC,EAA2B,CAC/BC,eAAgB,CAAE,EAClBC,OAAQ,MAGV,IAAMC,EAA4D,CAChEC,QAAS,CACPC,sBAAuB,SAAAA,EAACC,GACtB,OAAO,SAACC,GACNA,EAAMN,eAAcO,EAAA,CAAA,EACfD,EAAMN,eACNK,GAGR,EACDG,qBAAsB,SAAAA,EAACH,GACrB,OAAO,SAACC,GACNA,EAAMN,eAAcO,EAAA,CAAA,EACfR,EAAaC,eACbK,GAGR,EACDI,iBAAkB,SAAAA,IAChB,OAAO,SAACH,GACNA,EAAML,OAAS,MAEnB,GAEFK,MAAOP,GAGT,IAAMW,EAAuF,CAAA,EAQtF,IAAMC,EAAiB,SAAjBA,EAAkBC,GAC7B,IAAKF,EAAgBE,GAAM,CACzBF,EAAgBE,GAAOC,EAAMX,EAC/B,CACA,OAAOQ,EAAgBE,EACzB,ECqEO,IAAME,EAAYC,GAA4C,SAACC,EAAOC,GAAQ,IAAAC,EACnF,IAAAC,EAAoCC,EAAyB,IAAtDC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAChC,IAAAI,EAA0BH,EAAiB,GAApCI,EAAKD,EAAA,GAAEE,EAAQF,EAAA,GACtB,IAAAG,EAA8BN,EAAkB,OAAzCO,EAAOD,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAMG,EAAcC,EAAMC,MAAMC,UAAW,kBAE3C,IAAMC,EAAWC,GAAQ,WACvB,OAAOlB,EAAMmB,YAAcC,SAASC,SAAWR,CAChD,GAAE,CAACA,EAAab,EAAMmB,cAEvB,IAAAG,EAAyB3B,EAAesB,GAAUM,WAA3CjC,EAAKgC,EAAA,GAAEnC,EAAOmC,EAAA,GACrB,IAAME,EAAWxB,EAAMwB,YAAQtB,EAAIF,EAAMyB,0BAANvB,UAAAA,EAAAA,EAA+BsB,WAAY,GAC9E,IAAME,EAAc1B,EAAM0B,cAAgBV,UAAY,KAAOhB,EAAM0B,YACnE,IAAAC,EAAgDvB,EAAS,OAAlDwB,EAAgBD,EAAA,GAAEE,EAAmBF,EAAA,GAC5C,IAAMG,EAAsBC,IAE5B,IAAMC,EAAUzC,EAAA,CACd0C,KAAM,OACNzB,MAAO,QACP0B,OAAQ,SACRV,SAAU,YACPxB,EAAMgC,YAGX,IAAAG,EAAeC,EAAKC,QAAQrC,EAAMsC,MAA3BA,EAAIH,EAAA,GAEX,IAAMI,EAAiBzB,EAAM0B,gBAAe,SAAOnD,GAAP,OAAA,IAAAoD,SAAA,SAAAC,EAAAC,GAAA,IAGlCC,EACA5D,EAA0D6D,EAAAC,EAAAnE,EAAAoE,EAE1DC,EACAC,EAGFC,EAIEC,EAzKZ,IAAIC,aAAJ,IAAI,OAAAV,GAAK,CAAC,MAAAW,GAAW,OAAOV,EAAAU,EAAM,GAAlC,IAAIC,EAAA,SA6KSC,GA7Kb,IA8KM3C,EAAW,OACX,GAAIZ,EAAMwD,qBAAsB,CAC9BxD,EAAMwD,qBAAqBD,EAC7B,KAAO,MACAE,EAAQF,MAAMA,EAAME,QAC3B,CAnLN,OAAOL,GAAE,CAAC,MAAAC,GAAW,OAAOV,EAAAU,EAAM,GA4J9B,IACEzC,EAAW,MACM,OAAA6B,QAAAiB,QAAMvE,EAAQC,sBAAsBC,IAApCsE,eAA2CC,GA9JlE,IA8JYhB,EAAWgB,EACX5E,EAAiB6E,EAAWjB,EAAS5D,gBAAkB,CAAE,GAC/D6D,EAAkE7C,EAAM8D,cAAhEhB,EAAoBD,EAApBC,qBAAsBnE,EAASkE,EAATlE,UAAWoE,EAAoBF,EAApBE,qBACnCC,EAAYF,EAAuBA,EAAqB9D,GAAkBA,EAC9D,OAAAyD,QAAAiB,QAAM/E,EAAUqE,IAAhBW,MAA0B,SAAAI,GAlKlD,IAkKYd,EAAYc,GAA+B,GACjDjC,EAAoBkC,QAAUf,EAC9BjD,EAAMiE,oBAANjE,UAAAA,EAAAA,EAAMiE,mBAAqBhB,GACvBC,EAA4BD,EAChC,GAAIF,EAAsB,CACxBG,EAAcH,EAAqBE,EACrC,CACME,EAAWe,EAAIhB,EAAalB,EAAWC,MAC7C3B,EAAc6D,EAAQhB,GAAYA,EAAW,IAC7C1C,EAASyD,EAAIhB,EAAalB,EAAWxB,QACrCI,EAAW,OA5KjB,OAAOwC,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAA1B,CAAC,MAAAD,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EA6K9B,CAAC,MAAOC,GAAOD,EAAPC,EAOT,CAAC,OAGH,IAAMa,EAAsBtD,EAAM0B,gBAAe,SAAO6B,GAAP,OAAA,IAAA5B,SAAA,SAAAC,EAAAC,GAC/C,OAAAF,QAAAiB,QAAMvE,EAAQK,wBAAdmE,MAAoC,SAAAW,GAxLxC,IAyLIhC,EAAKiC,cACL,GAAIF,EAAQ,MACLlF,EAAQC,sBAAsBiF,GACnC/B,EAAKkC,eAAeH,EACtB,CAAC,OAAA3B,GA7LI,CAAC,MAAAW,GAAW,OAAOV,EAAAU,EAAM,CAAC,GAAAV,EAwLK,OAQtC,IAAM8B,EAAoB,SAApBA,EAAqBvC,EAAgBwC,GACzC,GAAI9C,EAAkB,CAAA,IAAA+C,EACpB,OAAAA,KAAAA,EACG3C,EAAWE,QAASA,EAAMyC,EAC1B3C,EAAWR,UAAWkD,GAAalD,EAAQmD,CAEhD,KAAO,CACL,MAAO,EACT,GAGF,IAAMC,EAAiB9D,EAAM0B,gBAAe,SAAO6B,GAAP,OAAA,IAAA5B,SAAA,SAAAC,EAAAC,GAAA,IACpCtD,EAAAA,EAAME,EACPkF,CAAAA,EAAAA,EAAkB,EAAGnF,EAAMN,eAAegD,EAAWR,WACrDxB,EAAM6E,cACNR,GAEL,OAAA5B,QAAAiB,QAAMvE,EAAQK,qBAAqBH,IAAnCsE,eAA0CmB,GAjN9C,IAkNIxC,EAAKiC,cACL,GAAIF,EAAQ,CACV/B,EAAKkC,eAAeH,EACtB,MACK9B,EAAelD,GAAQ,OAAAqD,GAtNvB,CAAC,MAAAW,GAAW,OAAOV,EAAAU,EAAM,CAAC,GAAAV,EAiNW,OAQ5C,IAAMoC,EAAmBjE,EAAM0B,gBAAe,WAC5C,OAAAjD,EACKD,CAAAA,EAAAA,EAAMN,eACNsD,EAAK0C,iBAEZ,IAEA,IAAMlG,EAAkB,SAAlBA,IACJ,MAAO,CAMLH,UAAW4D,EACX6B,oBAAAA,EACAW,iBAAAA,EACAH,eAAAA,EACAtC,KAAAA,EACA2C,cAAe,SAAAA,IACb,OAAOnD,EAAoBkC,OAC5B,EACDkB,mBAAoB,SAAAA,EAACC,GACnB7E,EAAc6E,EACf,EACDC,kBAAmB,SAAAA,IACjB3E,EAAS,GACTH,EAAc,GACf,EACD+E,mBAAoB,SAAAA,EAACC,GACnBhF,EAAcgF,GACdxD,EAAoBkC,QAAUsB,EAC9BtF,EAAMiE,oBAANjE,UAAAA,EAAAA,EAAMiE,mBAAqBqB,EAC7B,IAIJC,EAAoBtF,GAAK,WACvB,OAAOnB,GACT,IAEA,IAAM0G,EAAwB,SAAxBA,EAAyBC,GAC7B5D,EAAoB4D,IAGtB,IAAMC,EAAe,SAAfA,IACJ,IAAMrB,EAAS/B,EAAK0C,iBACpB,GAAIhF,EAAM0F,aAAc,CACtB1F,EAAM0F,aAAYnG,KAAM8E,EAAWI,EAAkB,EAAGnF,EAAMN,eAAegD,EAAWR,YAC1F,KAAO,MACAe,EAAchD,EAAA,GACd8E,EACAI,EAAkB,EAAGnF,EAAMN,eAAegD,EAAWR,YAE5D,GAEF,IAAMmE,EAASC,EAAY5F,EAAM2F,QAAU,KAAO3F,EAAM2F,OACxD,IAAME,EAAYC,EAChB,iBACA,CACE,sBAAuBH,EACvB,8BAA+B3F,EAAM+F,YACrC,kCAAmC/F,EAAMgG,iBAE3ChG,EAAM6F,WAGR,IAAMI,GAAiB/E,GAAQ,WAC7B,OAAA3B,EAAA,CACE2G,gBAAiB,KACjBlC,QAAS1E,EAAMN,eAAegD,EAAWE,SAAW,EACpDV,SAAUlC,EAAMN,eAAegD,EAAWR,WAAaA,EACvDhB,MAAOA,EACP2F,UAAW,SAAAA,EAAC3F,GAAK,MAAA,KAAUA,EAAK,MAAA,GAC7BR,EAAMoG,WAEZ,GAAE,CAACpE,EAAWE,OAAQF,EAAWR,SAAUA,EAAUxB,EAAMoG,WAAY9G,EAAMN,eAAgBwB,IAE9F,IAAM6F,GAAWvF,EAAM0B,gBAAe,SAAC8D,EAAc9E,GAAqB,IAAA+E,EAAAC,OACnEjE,GAAcgE,EAAA,CAAA,EAAAA,EAAIvE,EAAWR,UAAWA,EAAQ+E,EAAGvE,EAAWE,QAASoE,EAAIC,KAChFC,EAAAxG,EAAMoG,mBAANI,EAAkBH,UAAQ,UAAA,EAA1BG,EAAkBH,SAAWC,EAAM9E,EACrC,IAEA,IAAMiF,GAAmBX,EACvB,yBACA,CACE,gCAAiC9F,EAAM0G,UAEzC1G,EAAM6F,WAGR,IAAMc,UACG3G,EAAM2G,WAAa,WAAa3G,EAAM2G,SAAS7E,EAAoBkC,SAAWhE,EAAM2G,SAE7F,OACEC,EAACnI,EAAiBoI,SAAQ,CACxBC,MAAO,CACLhI,gBAAAA,EACAmC,SAAAA,EACAtC,UAAW4D,EACX1D,UAAWwB,EACX0G,WAAYvG,EACZG,QAAAA,EACAqB,WAAAA,EACAR,SAAAA,EACAE,YAAAA,EACAmD,cAAe7E,EAAM6E,eAAiB,CAAE,EACxCW,sBAAAA,EACA5D,iBAAAA,EACA8D,aAAAA,EACApD,KAAAA,EACA0D,gBAAiBhG,EAAMgG,iBAAmB,MAC1CgB,SAAUhH,EAAMgH,UAAY,IAC5BL,SAED3G,EAAMgG,gBACLiB,EAAA,MAAA,CAAKpB,UAAWY,GAAkBS,MAAOlH,EAAMkH,MAAMP,UACnDC,EAAA,MAAA,CAAKf,UAAWA,EAAUc,SAAEA,KAC3BnG,EAAQ,GACPoG,EAAA,MAAA,CAAKf,UAAU,4BAA2Bc,SACxCC,EAACO,EAAiB5H,EAAA,CAAC6H,KAAK,SAAYnB,GAAc,CAAEI,SAAUA,WAKpEO,EAAA,MAAA,CAAKf,UAAWA,EAAWqB,MAAOlH,EAAMkH,MAAMP,SAC3CA,MAKX,IC1QO,IAAMU,EAAkB,SAAlBA,EAAmBrH,GAC9B,IAAMsH,EAAMC,EAAW9I,GACvB,IACE+I,EAQExH,EARFwH,iBACAC,EAOEzH,EAPFyH,iBACAC,EAME1H,EANF0H,cACAC,EAKE3H,EALF2H,cACAC,EAIE5H,EAJF4H,iCACAC,EAGE7H,EAHF6H,mBACAC,EAEE9H,EAFF8H,uBACAC,EACE/H,EADF+H,2BAEF,IACE9G,EASEqG,EATFrG,SACA+F,EAQEM,EARFN,SACAhF,EAOEsF,EAPFtF,WACArD,EAME2I,EANF3I,UACA6C,EAKE8F,EALF9F,SACAI,EAIE0F,EAJF1F,iBACAiD,EAGEyC,EAHFzC,cACAvC,EAEEgF,EAFFhF,KACAoD,EACE4B,EADF5B,aAEF,IAAMiB,SAAkB3G,EAAM2G,WAAa,WAAa3G,EAAM2G,SAASrE,GAAQtC,EAAM2G,SAErF,IAAMqB,EAA+BD,GAA8B,QACnE,IAAME,EAAY/G,GAAQ,WACxB,GAAIgH,EAAWvB,GAAW,CACxB,OAAOwB,EAASC,QAASzB,EAA0B3G,MAAM2G,SAC3D,KAAO,CACL,OAAOwB,EAASC,QAAQzB,EAC1B,CACF,GAAG,CAACA,IAEJ,IAAAxG,EAAgCC,EAAS,OAAlCiI,EAAQlI,EAAA,GAAEmI,EAAWnI,EAAA,GAE5B,IAAAmB,EAAyB3B,EAAesB,GAAUM,WAA3CjC,EAAKgC,EAAA,GAAEnC,EAAOmC,EAAA,GAErB,IAAMiH,EAAUzH,EAAM0B,gBAAe,WAAA,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAAA6F,EACnC,OAAA/F,QAAAiB,QAAMvE,EAAQK,wBAAdmE,MAAoC,SAAA8E,GAzHxC,IA0HInG,EAAKiC,cACL,GAAIqB,EAAYgC,IAAqCA,EAAkC,CACrF,GAAIhG,EAAkB,CACpBjD,EAASY,GAAAiJ,EAAA,CAAA,EAAAA,EACNxG,EAAWE,QAAS,EAACsG,EACrBxG,EAAWR,UAAWA,EAAQgH,GAC5B3D,GAEP,KAAO,CACLlG,EAAUkG,EACZ,CACF,CAAC,OAAAnC,GArII,CAAC,MAAAW,GAAW,OAAOV,EAAAU,EAAM,CAAC,GAAAV,EAyHK,OAetC,IAAM+F,EAAkBxH,GAAQ,WAC9B,IAAMyH,EAAmB,CACvB/B,EAACgC,EAAarJ,EAAA,CAASsJ,KAAK,UAAUC,SAAS,UAAatB,EAAgB,CAAAb,UACzEa,eAAAA,EAAkBuB,OAAQ,OADV,KAGnBnC,EAACgC,EAAarJ,EAAA,CAASyJ,QAAST,GAAad,EAAgB,CAAAd,UAC1Dc,eAAAA,EAAkBsB,OAAQ,OADV,MAGnBE,OAAOC,SACT,IAAMC,EAAuBzB,eAAAA,EAAgBpF,GAC7C,IAAM8G,EAAkBD,GAAAA,UAAAA,EAAAA,EAAsBE,UAC9C,IAAMC,GAAmBH,eAAAA,EAAsBG,WAAY,GAE3D,IAAID,EAAoBV,EACxB,GAAIS,EAAiB,CACnB,GAAIpB,IAAiC,cAAe,CAClDqB,KAASE,OAAOZ,EAAqBS,EACvC,MAAO,GAAIpB,IAAiC,eAAgB,CAC1DqB,KAASE,OAAOH,EAAoBT,EACtC,KAAO,CACLU,EAAYD,CACd,CACF,CAEA,GAAIpC,EAASwC,OAAS,EAAG,CACvB,IAAMC,EACJ7C,EAACgC,EAAa,CACZC,KAAK,OAEL3B,MAAO,CAAEwC,QAAS,KAClBV,QAAS,SAAAA,IACPV,GAAaD,EACb,EAAA1B,SAED0B,EACCpB,EAAA,OAAA,CAAAN,SAAM,CAAA,KAEJC,EAAA+C,EAAA,CAAYzC,MAAO,CAAE0C,WAAY,EAAGC,SAAU,SAGhD5C,EAAA,OAAA,CAAAN,SAAM,CAAA,KAEJC,EAAAkD,EAAA,CAAc5C,MAAO,CAAE0C,WAAY,EAAGC,SAAU,UAdhD,gBAoBR,GAAIR,EAAUG,OAAS,GAAKF,EAASE,SAAW,EAAG,CACjDH,EAAUU,KAAKN,QACV,IAAIH,GAAQ,UAAA,EAARA,EAAUE,QAAS,EAAG,CAC/BF,EAASS,KAAKN,EAChB,CACF,CAEA,OAAOxB,EACJ+B,KAAI,SAACC,EAAMC,GACV,IAAK7B,GAAYrB,EAASmD,MAAK,SAACC,GAAO,MAAK,KAAKA,IAAcH,EAAKrK,OAAM,OAAO,KACjF,GAAIqK,EAAKjK,MAAM,UAAW,OAAO,KACjC,GAAIiK,EAAKpB,KAAK,iBAAmB,UAAW,OAAOoB,EACnD,OAAOrD,EAACyD,EAASC,IAAG,CAAA3D,SAAcsD,GAARC,EAC3B,IACAjB,OAAOC,SACPK,OACC3C,EAACyD,EAASE,WAAUhL,KAAe4J,EAAoB,CAAEG,SAAUA,EAAUD,UAAWA,IAA9D,KAE/B,GAAE,CACDpB,EACAP,EACAV,EACA1E,EACAiG,EACAF,EACAb,EACAC,EACAO,IAGF,OACEpB,EAAC4D,EAAY,CACX3E,UAAWC,EAAW,oBAAqBgC,GAC3CZ,MAAOW,EAAmBlB,SAE1BC,EAACxE,EAAI,CACHE,KAAMA,EACNmI,aAAa,MACbC,SAAUhF,EACVb,cAAatF,EACRsF,CAAAA,EAAAA,EACAvF,EAAMN,gBAEX6G,UAAW8B,EACXT,MAAOlH,EAAM2K,UAAUhE,SAEtB3G,EAAM4K,OACLjE,EAEAC,EAACyD,EAASQ,IAAG,CAACC,OAAQ,CAAC,GAAI,GAAIC,SAAU/K,EAAMgL,aAAarE,SACzD+B,OAMb,ECzOO,IAAMuC,EAAe,SAAfA,IACX,IAAM3D,EAAMC,EAAW9I,GACvB,OAAO6I,EAAIxI,iBACb,EAOO,IAAMoM,EAAiB,SAAjBA,IACX,IAAM5D,EAAMC,EAAW9I,GACvB,MAAO,CACLuF,QAASsD,EAAIxI,kBAEjB,oFC6CO,IAAMqM,EAAiB,SAAjBA,EAA0CnL,GACrD,IAAMsH,EAAMC,EAAW9I,GACvB,IAAQkI,EAAgD3G,EAAhD2G,SAAUyE,EAAsCpL,EAAtCoL,OAAQhF,EAA8BpG,EAA9BoG,WAAeiF,EAAUC,EAAKtL,EAAKuL,GAE7D,IACEtK,EAWEqG,EAXFrG,SACAe,EAUEsF,EAVFtF,WACArD,EASE2I,EATF3I,UACAE,EAQEyI,EARFzI,UACA6C,EAOE4F,EAPF5F,YACAF,EAME8F,EANF9F,SACAuF,EAKEO,EALFP,WACApG,EAIE2G,EAJF3G,QACAkE,EAGEyC,EAHFzC,cACAmB,EAEEsB,EAFFtB,gBACAR,EACE8B,EADF9B,sBAEF,IAAAlE,EAAyB3B,EAAesB,GAAUM,WAA3CjC,EAAKgC,EAAA,GAAEnC,EAAOmC,EAAA,GAErB,IAAMkK,EAAsBtK,GAAQ,WAClC,GAAI8E,GAAmBI,IAAe,MAAO,OAAO,MACpD,OAAA7G,EAAA,CACE2G,gBAAiB,KACjBlC,QAAS1E,EAAMN,eAAegD,EAAWE,SAAW,EACpDV,SAAUlC,EAAMN,eAAegD,EAAWR,WAAaA,EACvDhB,MAAOuG,EACPZ,UAAW,SAAAA,EAAC3F,GAAK,MAAA,KAAUA,EAAK,MAAA,GAC7BR,EAAMoG,WAAU,CACnBqF,qBAAsBC,GAEzB,GAAE,CACD1J,EAAWE,OACXF,EAAWR,SACXA,EACA4E,EACAJ,EACAhG,EAAMoG,WACN9G,EAAMN,eACN+H,IAGF,IAAM4E,EAA6C,SAA7CA,EAA8CvF,EAAYwF,EAASC,EAAQC,GAC/E,GAAIA,EAAMC,SAAW,YAAcP,EAAqB,CAAA,IAAAQ,EACtDrN,GAASqN,EAAA,CAAA,EAAAA,EAAIhK,EAAWR,UAAW4E,EAAW5E,SAAQwK,EAAGhK,EAAWE,QAASkE,EAAWpC,QAAOgI,GACjG,KAAO,CACLhM,EAAMqG,UAANrG,UAAAA,EAAAA,EAAMqG,SAAWD,EAAYwF,EAASC,EAAQC,EAChD,GAGF,IAAMzL,EAAaa,GAAQ,WACzB,GAAIrC,EAAU2K,SAAW,EAAG,CAC1B,MAAO,EACT,CACA,UAAW4B,IAAW,UAAYa,EAAkBpN,EAAU,GAAGuM,IAAU,CACzE,OAAOvM,EAAUmL,KAAI,SAACC,GACpBA,EAAKmB,GAAUc,IACf,OAAOjC,CACT,GACF,CACA,OAAOpL,CACT,GAAG,CAACA,EAAWuM,IAEfe,EAASC,iBAAgB,WACvB,IAAMC,EAAgBrG,GAAmBwF,IAAwB,MACjEhG,EAAsB6G,GACtB,GAAI3K,IAAgB,QAAUpC,EAAML,OAAQ,CAC1C,GAAIoN,EAAe,CAAA,IAAA7D,OACZ7J,EAASY,GAAAiJ,EAAA,CAAA,EAAAA,EACXxG,EAAWE,QAAS,EAACsG,EACrBxG,EAAWR,UAAWA,EAAQgH,GAC5B3D,EACAvF,EAAMN,gBAEb,KAAO,MACAL,EAAUkG,EACjB,CACF,KAAO,MACA1F,EAAQC,sBAAsByF,EACrC,MACK1F,EAAQM,kBACd,GAAE,IAEH,IAAM6M,EAAUpL,GAAQ,WACtB,OAAOlB,EAAMsM,QAAQtC,KAAI,SAACC,GACxB,IAAQsC,EAAoDtC,EAApDsC,QAASC,EAA2CvC,EAA3CuC,iBAAkBC,EAAyBxC,EAAzBwC,MAAUpB,EAAUC,EAAKrB,EAAIyC,GAChE,UAAWD,IAAU,UAAYD,EAAkB,CACjD,UAAWA,IAAqB,SAAU,CACxC,OAAAjN,KACK8L,EAAU,CACboB,MACE7F,EAAC+F,EAAW,CAACC,QAAQ,UAAUC,aAAc,CAAEC,QAASN,GAAmB7F,SACxE8F,KAIT,CACA,OAAAlN,KACK8L,EAAU,CACboB,MAAO7F,EAAC+F,EAAWpN,KAAKiN,EAAgB,CAAA7F,SAAG8F,MAE/C,CACA,UAAWA,IAAU,YAAcF,EAAS,CAC1C,OAAAhN,KACK8L,EAAU,CACboB,MAAO7F,EAACmG,EAAiB,CAACR,QAASA,EAASE,MAAOA,KAEvD,CACA,OAAOxC,CACT,GACF,GAAG,CAACjK,EAAMsM,UAEV,OACErF,EAACuD,EAAY,CACX3E,UAAWC,EAAW,mBAAoB9F,EAAMgN,uBAChD9F,MAAOlH,EAAMiN,kBAAkBtG,SAAA,CAE9BA,EACAuG,IACCtG,EAACuG,EAAK5N,EAAA,CACJ6H,KAAK,QACLgG,OAAQ,CAAEC,EAAG,eACbC,SAAQ,MACJjC,EAAU,CACdiB,QAASA,EACTlG,WAAYoF,EACZJ,OAAQA,EACR/E,SAAUsF,EACVhL,QAASA,EACTN,WAAYA,KAGduG,EAAC2G,EAAc,CAAA5G,SACbC,EAACuG,EAAK5N,EAAA,CACJ6H,KAAK,QACLgG,OAAQ,CAAEC,EAAG,eACbC,SAAQ,MACJjC,EAAU,CACdiB,QAASA,EACTlG,WAAYoF,EACZJ,OAAQA,EACR/E,SAAUsF,EACVhL,QAASA,EACTN,WAAYA,SAMxB,EChMO,IAAMP,EAAY0N,EAASC,4BAA4BC,EAAgB,CAgC5EC,OAAQtG,EASR8F,MAAOhC,EAKPD,eAAgBA,EAGhBD,aAAcA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.v-search-menu-wrapper-list-view{list-style:none}.v-search-menu-wrapper-list-view-item{align-items:center;border-radius:4px;display:flex;font-size:var(--ant-font-size);margin:4px 0;min-height:
|
|
1
|
+
.v-search-menu-wrapper-list-view{list-style:none;margin:0;padding:0}.v-search-menu-wrapper-list-view-item{align-items:center;border-radius:4px;display:flex;font-size:var(--ant-font-size);margin:4px 0;min-height:35px;padding:0 8px;transition:all .3s ease}.v-search-menu-wrapper-list-view-item:hover{background-color:var(--v-search-menu-item-hover-bg);cursor:pointer}.v-search-menu-wrapper-list-view-item-active{color:var(--v-search-menu-active)}.v-search-menu-wrapper-list-view-item-active,.v-search-menu-wrapper-list-view-item-active:hover{background-color:var(--v-search-menu-active-bg)}.v-search-menu-wrapper{--v-search-menu-active:#1677ff;--v-search-menu-active-bg:#e6f4ff;--v-search-menu-item-hover-bg:rgba(0,0,0,.06);--ant-font-size:14px}.v-search-menu-wrapper-search-area{align-items:center;display:flex;margin-bottom:12px}.v-search-menu-wrapper-search-area .ant-input-search{flex:1}.v-search-menu-wrapper-search-extra{margin-left:12px}
|
package/esm/search-menu/index.js
CHANGED
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../input-search-wrapper/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{_ as a}from"../_rollupPluginBabelHelpers-a0769acd.js";import{valueIsEqual as n}from"@flatbiz/utils";import{useState as l,useMemo as t}from"react";import{fbaHooks as i}from"../fba-hooks/index.js";import{InputSearchWrapper as s}from"../input-search-wrapper/index.js";import{Empty as o}from"antd";import{jsx as u,Fragment as c,jsxs as m}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";var p=function r(a){var n=a.value,l=a.dataList,t=a.onChange,i=a.style,s=a.emptyView;if(!(l!=null&&l.length)){return s?u(c,{children:s}):u(o,{style:{marginTop:"40px"},description:"暂无数据"})}return u("ul",{className:"v-search-menu-wrapper-list-view",style:i,children:l.map((function(r){return u("li",{className:e("v-search-menu-wrapper-list-view-item",{"v-search-menu-wrapper-list-view-item-active":n==r.key}),onClick:t==null?void 0:t.bind(null,r.key,r),children:r.label},r.key)}))})};function v(o){var c=o.value,v=o.onChange,d=o.dataSource,f=o.searchKeyList,h=o.wrapStyle,y=o.style,w=o.placeholder,k=o.fieldNames,b=o.renderItem,g=o.lazySearch,j=o.className,x=o.searchStyle,C=o.emptyView;var
|
|
6
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{_ as a}from"../_rollupPluginBabelHelpers-a0769acd.js";import{valueIsEqual as n}from"@flatbiz/utils";import{useState as l,useMemo as t}from"react";import{fbaHooks as i}from"../fba-hooks/index.js";import{InputSearchWrapper as s}from"../input-search-wrapper/index.js";import{Empty as o}from"antd";import{jsx as u,Fragment as c,jsxs as m}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";var p=function r(a){var n=a.value,l=a.dataList,t=a.onChange,i=a.style,s=a.emptyView;if(!(l!=null&&l.length)){return s?u(c,{children:s}):u(o,{style:{marginTop:"40px"},description:"暂无数据"})}return u("ul",{className:"v-search-menu-wrapper-list-view",style:i,children:l.map((function(r){return u("li",{className:e("v-search-menu-wrapper-list-view-item",{"v-search-menu-wrapper-list-view-item-active":n==r.key}),onClick:t==null?void 0:t.bind(null,r.key,r),children:r.label},r.key)}))})};function v(o){var c=o.value,v=o.onChange,d=o.dataSource,f=o.searchKeyList,h=o.wrapStyle,y=o.style,w=o.placeholder,k=o.fieldNames,b=o.renderItem,g=o.lazySearch,j=o.className,x=o.searchStyle,C=o.emptyView,N=o.showSearch;var S=l([]),E=S[0],L=S[1];var V=t((function(){return a({label:"label",key:"key"},k)}),[k]);var z=f!=null&&f.length?f:[V.label];var _=t((function(){var e=V.label,r=V.key;return E==null?void 0:E.map((function(n){return a({},n,{label:b?b(n):n==null?void 0:n[e],key:n==null?void 0:n[r]})}))}),[E,V,b]);i.useEffectCustom((function(){B("")}),[d]);var B=function e(r){if(!r){L(d);return}var a=d.filter((function(e){return!!(z!=null&&z.find((function(a){var n;return(n=e[a])==null?void 0:n.includes(r)})))}));L(a)};var H=function e(r){B(r.target.value)};var I=r.useCallbackRef((function(e){var r=d.find((function(r){return n(e,r[V.key])}));v==null?void 0:v(e,r)}));return m("div",{style:h,className:e(j,"v-search-menu-wrapper"),children:[N!==false?m("div",{className:"v-search-menu-wrapper-search-area",style:x,children:[u(s,{onSearch:g?B:undefined,onChange:!g?H:undefined,placeholder:w||"请输入搜索关键词",allowClear:true}),!!o.searchExtraElement&&u("div",{className:"v-search-menu-wrapper-search-extra",children:o.searchExtraElement})]}):null,u(p,{style:y,value:c,dataList:_,onChange:I,emptyView:C})]})}export{v as SearchMenu};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-menu/list-view/index.tsx","@flatbiz/antd/src/search-menu/search-menu.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Empty } from 'antd';\nimport { CSSProperties, FC, ReactElement } from 'react';\nimport { IListViewItem } from '../type';\nimport './style.less';\n\nexport interface IListViewProps {\n dataList: IListViewItem[];\n value?: string;\n onChange?: (key: string, item: IListViewItem) => void;\n style?: CSSProperties;\n /** 自定义空数据提示 */\n emptyView?: ReactElement;\n}\n\n/**\n * 搜索列表\n * @param props\n * @returns search menu list view\n */\nexport const ListView: FC<IListViewProps> = (props) => {\n const { value, dataList, onChange, style, emptyView } = props;\n\n // 数据判空提示\n if (!dataList?.length) {\n return emptyView ? (\n <>{emptyView}</>\n ) : (\n <Empty\n style={{\n marginTop: '40px',\n }}\n description=\"暂无数据\"\n />\n );\n }\n\n return (\n <ul className=\"v-search-menu-wrapper-list-view\" style={style}>\n {dataList.map((item) => {\n return (\n <li\n className={classNames('v-search-menu-wrapper-list-view-item', {\n 'v-search-menu-wrapper-list-view-item-active': value == item.key,\n })}\n key={item.key}\n onClick={onChange?.bind(null, item.key, item)}\n >\n {item.label}\n </li>\n );\n })}\n </ul>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { IListViewProps, ListView } from './list-view';\nimport './style.less';\nimport { ISearchMenuProps } from './type';\n\n/**\n * 列表搜索\n * @param props\n * @returns\n */\nexport function SearchMenu(props: ISearchMenuProps & Pick<IListViewProps, 'emptyView'>) {\n const {\n value,\n onChange,\n dataSource,\n searchKeyList,\n wrapStyle,\n style,\n placeholder,\n fieldNames,\n renderItem,\n lazySearch,\n className,\n searchStyle,\n emptyView,\n } = props;\n const [listFilter, setListFilter] = useState<TPlainObject[]>([]);\n\n /** 格式化对象 */\n const mergeFormatOption = useMemo(() => {\n return {\n label: 'label',\n key: 'key',\n ...fieldNames,\n };\n }, [fieldNames]);\n\n /** 可搜索的字段值 */\n const targetSearchKeyList = searchKeyList?.length ? searchKeyList : [mergeFormatOption.label];\n\n /** 生成菜单列表 */\n const listViewData = useMemo(() => {\n const { label, key } = mergeFormatOption;\n return listFilter?.map((item) => {\n return {\n ...item,\n label: renderItem ? renderItem(item) : item?.[label],\n key: item?.[key],\n };\n });\n }, [listFilter, mergeFormatOption, renderItem]);\n\n /**\n * 数据格式化\n */\n fbaHooks.useEffectCustom(() => {\n handleSearch('');\n }, [dataSource]);\n\n /** 搜索 */\n const handleSearch = (searchWord: string) => {\n if (!searchWord) {\n // 还原列表\n setListFilter(dataSource);\n return;\n }\n // 根据搜索次过滤\n const resList = dataSource.filter((item) => {\n return !!targetSearchKeyList?.find((key) => {\n return item[key]?.includes(searchWord);\n });\n });\n setListFilter(resList);\n };\n\n /**\n * 搜索词变换\n * @param e\n */\n const handleWordChange = (e) => {\n handleSearch(e.target.value);\n };\n\n /**\n * 点击条目\n */\n const onClick = hooks.useCallbackRef((key) => {\n const targetItem = dataSource.find((item) => valueIsEqual(key, item[mergeFormatOption.key]));\n onChange?.(key, targetItem);\n });\n\n return (\n <div style={wrapStyle} className={classNames(className, 'v-search-menu-wrapper')}>\n <div className=\"v-search-menu-wrapper-search-area\" style={searchStyle}>\n
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/search-menu/list-view/index.tsx","@flatbiz/antd/src/search-menu/search-menu.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Empty } from 'antd';\nimport { CSSProperties, FC, ReactElement } from 'react';\nimport { IListViewItem } from '../type';\nimport './style.less';\n\nexport interface IListViewProps {\n dataList: IListViewItem[];\n value?: string;\n onChange?: (key: string, item: IListViewItem) => void;\n style?: CSSProperties;\n /** 自定义空数据提示 */\n emptyView?: ReactElement;\n}\n\n/**\n * 搜索列表\n * @param props\n * @returns search menu list view\n */\nexport const ListView: FC<IListViewProps> = (props) => {\n const { value, dataList, onChange, style, emptyView } = props;\n\n // 数据判空提示\n if (!dataList?.length) {\n return emptyView ? (\n <>{emptyView}</>\n ) : (\n <Empty\n style={{\n marginTop: '40px',\n }}\n description=\"暂无数据\"\n />\n );\n }\n\n return (\n <ul className=\"v-search-menu-wrapper-list-view\" style={style}>\n {dataList.map((item) => {\n return (\n <li\n className={classNames('v-search-menu-wrapper-list-view-item', {\n 'v-search-menu-wrapper-list-view-item-active': value == item.key,\n })}\n key={item.key}\n onClick={onChange?.bind(null, item.key, item)}\n >\n {item.label}\n </li>\n );\n })}\n </ul>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TPlainObject, valueIsEqual } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { IListViewProps, ListView } from './list-view';\nimport './style.less';\nimport { ISearchMenuProps } from './type';\n\n/**\n * 列表搜索\n * @param props\n * @returns\n */\nexport function SearchMenu(props: ISearchMenuProps & Pick<IListViewProps, 'emptyView'>) {\n const {\n value,\n onChange,\n dataSource,\n searchKeyList,\n wrapStyle,\n style,\n placeholder,\n fieldNames,\n renderItem,\n lazySearch,\n className,\n searchStyle,\n emptyView,\n showSearch,\n } = props;\n const [listFilter, setListFilter] = useState<TPlainObject[]>([]);\n\n /** 格式化对象 */\n const mergeFormatOption = useMemo(() => {\n return {\n label: 'label',\n key: 'key',\n ...fieldNames,\n };\n }, [fieldNames]);\n\n /** 可搜索的字段值 */\n const targetSearchKeyList = searchKeyList?.length ? searchKeyList : [mergeFormatOption.label];\n\n /** 生成菜单列表 */\n const listViewData = useMemo(() => {\n const { label, key } = mergeFormatOption;\n return listFilter?.map((item) => {\n return {\n ...item,\n label: renderItem ? renderItem(item) : item?.[label],\n key: item?.[key],\n };\n });\n }, [listFilter, mergeFormatOption, renderItem]);\n\n /**\n * 数据格式化\n */\n fbaHooks.useEffectCustom(() => {\n handleSearch('');\n }, [dataSource]);\n\n /** 搜索 */\n const handleSearch = (searchWord: string) => {\n if (!searchWord) {\n // 还原列表\n setListFilter(dataSource);\n return;\n }\n // 根据搜索次过滤\n const resList = dataSource.filter((item) => {\n return !!targetSearchKeyList?.find((key) => {\n return item[key]?.includes(searchWord);\n });\n });\n setListFilter(resList);\n };\n\n /**\n * 搜索词变换\n * @param e\n */\n const handleWordChange = (e) => {\n handleSearch(e.target.value);\n };\n\n /**\n * 点击条目\n */\n const onClick = hooks.useCallbackRef((key) => {\n const targetItem = dataSource.find((item) => valueIsEqual(key, item[mergeFormatOption.key]));\n onChange?.(key, targetItem);\n });\n\n return (\n <div style={wrapStyle} className={classNames(className, 'v-search-menu-wrapper')}>\n {showSearch !== false ? (\n <div className=\"v-search-menu-wrapper-search-area\" style={searchStyle}>\n <InputSearchWrapper\n onSearch={lazySearch ? handleSearch : undefined}\n onChange={!lazySearch ? handleWordChange : undefined}\n placeholder={placeholder || '请输入搜索关键词'}\n allowClear\n />\n {!!props.searchExtraElement && (\n <div className=\"v-search-menu-wrapper-search-extra\">{props.searchExtraElement}</div>\n )}\n </div>\n ) : null}\n <ListView\n style={style}\n value={value}\n dataList={listViewData}\n onChange={onClick}\n emptyView={emptyView}\n />\n </div>\n );\n}\n"],"names":["ListView","props","value","dataList","onChange","style","emptyView","length","_jsx","_Fragment","children","Empty","marginTop","description","className","map","item","_classNames","key","onClick","bind","label","SearchMenu","dataSource","searchKeyList","wrapStyle","placeholder","fieldNames","renderItem","lazySearch","searchStyle","showSearch","_useState","useState","listFilter","setListFilter","mergeFormatOption","useMemo","_extends","targetSearchKeyList","listViewData","fbaHooks","useEffectCustom","handleSearch","searchWord","resList","filter","find","_item$key","includes","handleWordChange","e","target","_hooks","useCallbackRef","targetItem","valueIsEqual","_jsxs","InputSearchWrapper","onSearch","undefined","allowClear","searchExtraElement"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1020,6 +1020,20 @@ export type EasyTableServiceConfig = {
|
|
|
1020
1020
|
* 1. 表格列表数据 - Array
|
|
1021
1021
|
* 2. 表格条数总数 - Number
|
|
1022
1022
|
* 其中 字段key 命名会通过 fieldNames 进行转义
|
|
1023
|
+
* 例如:
|
|
1024
|
+
* fieldNames={{
|
|
1025
|
+
* list: 'aList',
|
|
1026
|
+
* total: 'aTotal',
|
|
1027
|
+
* }}
|
|
1028
|
+
* serviceConfig={{
|
|
1029
|
+
* url: '/v1/board/list',
|
|
1030
|
+
* requestResultAdapter: (respData) => {
|
|
1031
|
+
* return {
|
|
1032
|
+
* aList: respData.data.rows,
|
|
1033
|
+
* aTotal: respData.page.total,
|
|
1034
|
+
* };
|
|
1035
|
+
* },
|
|
1036
|
+
* }}
|
|
1023
1037
|
* ```
|
|
1024
1038
|
*/
|
|
1025
1039
|
requestResultAdapter?: (params: TAny) => TPlainObject;
|
|
@@ -1056,13 +1070,18 @@ export type EasyTableProps = {
|
|
|
1056
1070
|
};
|
|
1057
1071
|
/** 分页单页条数,默认值:10 */
|
|
1058
1072
|
pageSize?: number;
|
|
1059
|
-
/**
|
|
1073
|
+
/**
|
|
1074
|
+
* 字段映射,默认值:{ list:'list', total:'total', pageNo:'pageNo', pageSize:'pageSize' }
|
|
1075
|
+
* ```
|
|
1076
|
+
* 1. list、total用于解析接口响应数据,可以配置多级,例如:{ list: 'data.rows', total: 'page.total' }
|
|
1077
|
+
* 2. pageNo、pageSize用于接口分页入参Key定义,只能一级,例如:pageNo: 'page'
|
|
1078
|
+
* ```
|
|
1079
|
+
*/
|
|
1060
1080
|
fieldNames?: {
|
|
1061
1081
|
list?: string;
|
|
1062
1082
|
total?: string;
|
|
1063
1083
|
pageNo?: string;
|
|
1064
1084
|
pageSize?: string;
|
|
1065
|
-
uid?: string;
|
|
1066
1085
|
};
|
|
1067
1086
|
/** 初始化是否请求,默认值:true */
|
|
1068
1087
|
initRequest?: boolean;
|
|
@@ -2710,7 +2729,6 @@ export interface ISearchMenuProps {
|
|
|
2710
2729
|
fieldNames?: {
|
|
2711
2730
|
label?: string;
|
|
2712
2731
|
key?: string;
|
|
2713
|
-
children?: string;
|
|
2714
2732
|
};
|
|
2715
2733
|
/** 自定义渲染条目 */
|
|
2716
2734
|
renderItem?: (nodeData: TPlainObject) => ReactElement;
|
|
@@ -2723,6 +2741,8 @@ export interface ISearchMenuProps {
|
|
|
2723
2741
|
wrapStyle?: CSSProperties;
|
|
2724
2742
|
style?: CSSProperties;
|
|
2725
2743
|
searchStyle?: CSSProperties;
|
|
2744
|
+
/** 是否显示搜索区域 */
|
|
2745
|
+
showSearch?: boolean;
|
|
2726
2746
|
}
|
|
2727
2747
|
export interface IListViewItem {
|
|
2728
2748
|
label: ReactNode;
|