@flatbiz/antd 4.2.95 → 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.
@@ -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":"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"}
@@ -1 +1 @@
1
- .form-item-text-content{color:rgba(0,0,0,.88);display:inline-flex;font-size:14px;padding:4px 11px;width:100%}.form-item-text{overflow:hidden}.form-item-text .ant-input{border:none}.fitc-loading .ant-spin-dot{margin-left:0!important}
1
+ .form-item-text-content{color:rgba(0,0,0,.88);display:inline-flex;font-size:14px;padding:4px 0;width:100%}.form-item-text{overflow:hidden}.fitc-loading .ant-spin-dot{margin-left:0!important}
@@ -5,5 +5,5 @@ import './../form-item-wrapper/index.css';
5
5
  import './../form-item-hidden/index.css';
6
6
  import './index.css';
7
7
  /*! @flatjs/forge MIT @flatbiz/antd */
8
- import{classNames as e}from"@dimjs/utils/cjs/class-names";import{_ as r,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useState as a,useMemo as i,Fragment as t}from"react";import{isUndefinedOrNull as l,toArray as o}from"@flatbiz/utils";import{Spin as s,Form as u,message as m}from"antd";import{TextCssEllipsis as d}from"../text-css-ellipsis/index.js";import{jsx as c,jsxs as f}from"react/jsx-runtime";import{FormItemWrapper as v}from"../form-item-wrapper/index.js";import{isDeepEqual as p}from"@dimjs/lang/cjs/is-deep-equal";import{fbaHooks as h}from"../fba-hooks/index.js";import{FormItemHidden as g}from"../form-item-hidden/index.js";import"ahooks";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var y=function e(r){var n=function(){if(l(r.value))return r.placeholderValue;return typeof r.value==="string"?r.value:JSON.stringify(r.value)}();var a=r.wrap?n:c(d,{text:n||""});if(r.loading){return c("span",{className:"form-item-text-content fitc-loading",style:r.style,children:c(s,{spinning:r.loading,size:"small",children:c("span",{style:{textIndent:"-9999px",display:"inline-block"},children:"Loading"})})})}return c("span",{className:"form-item-text-content",style:r.style,children:r.render?r.render(r.value):a})};var j=function e(n){var t=n.serviceConfig;var s=a(false),d=s[0],c=s[1];var f=a(),v=f[0],g=f[1];var y=h.usePrevious(t==null?void 0:t.params);var j=a("init"),x=j[0],w=j[1];var P=u.useFormInstance();var V=i((function(){var e;if(!(t!=null&&t.params)||o(t==null?void 0:t.invalidParamKey).length===0){return t==null?void 0:t.params}var n=r({},t==null?void 0:t.params);t==null||(e=t.invalidParamKey)==null?void 0:e.forEach((function(e){n[e]=undefined}));return n}),[t==null?void 0:t.invalidParamKey,t==null?void 0:t.params]);var N=function e(a){return new Promise((function(e,i){var o=function(e){return function(r){try{c(false);return e&&e.call(this,r)}catch(e){return i(e)}}.bind(this)}.bind(this);var s,u,f,v,p,h;if(!t)return e();u=r({},V,a);if(t!=null&&(s=t.requiredParamsKeys)!=null&&s.length){f=t==null?void 0:t.requiredParamsKeys.find((function(e){return l(u[e])}));if(f){console.warn("FormItemText组件:参数:"+(t==null?void 0:t.requiredParamsKeys.join("、"))+"不能为空");return e()}}var y=function(){try{return e()}catch(e){return i(e)}};var j=function(e){try{console.error(e);w("error");void m.error((e==null?void 0:e.message)||"接口调用异常");return o(y)()}catch(e){return o(i)(e)}};try{if(!d)c(true);return Promise.resolve(t.onRequest(u)).then((function(e){try{v=e;p=n.name?P.getFieldValue(n.name):undefined;h=t.onResponseAdapter?t.onResponseAdapter(v,p):v;g(h);w("success");return o(y)()}catch(e){return j(e)}}),j)}catch(e){j(e)}}))};h.useEffectCustomAsync(N,[]);h.useEffectCustom((function(){if(!t)return;if(y){if(!p(t.params,y)){void N()}}}),[y,t==null?void 0:t.params]);if(!t){return undefined}return{loading:d,status:x,viewValue:v}};var x=["wrap","render","placeholderValue"];var w=function a(i){var t=i.wrap,l=i.render,o=i.placeholderValue,s=n(i,x);var u=j({serviceConfig:i.serviceConfig,name:i.name});return c(v,r({},s,{name:undefined,className:e("form-item-text",i.className),children:c(y,{loading:u==null?void 0:u.loading,wrap:t,render:l,placeholderValue:o,value:u==null?void 0:u.viewValue})}))};var P=["wrap","render","placeholderValue"];var V=function a(i){var l=i.wrap,o=i.render,s=i.placeholderValue,u=n(i,P);if(i.serviceConfig){return f(t,{children:[c(g,{name:i.name}),c(w,r({},i))]})}return c(v,r({},u,{className:e("form-item-text",i.className),children:c(y,{wrap:l,render:o,placeholderValue:s})}))};export{V as FormItemText};
8
+ import{classNames as e}from"@dimjs/utils/cjs/class-names";import{_ as r,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useState as a,useMemo as i,Fragment as t}from"react";import{isUndefinedOrNull as l,toArray as o}from"@flatbiz/utils";import{Spin as s,Form as u,message as m}from"antd";import{TextCssEllipsis as d}from"../text-css-ellipsis/index.js";import{jsx as c,jsxs as f}from"react/jsx-runtime";import{FormItemWrapper as v}from"../form-item-wrapper/index.js";import{isDeepEqual as p}from"@dimjs/lang/cjs/is-deep-equal";import{fbaHooks as h}from"../fba-hooks/index.js";import{FormItemHidden as g}from"../form-item-hidden/index.js";import"ahooks";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var y=function e(r){var n=function(){if(l(r.value))return r.placeholderValue;return typeof r.value==="string"?r.value:JSON.stringify(r.value)}();var a=r.wrap?n:c(d,{text:n||""});if(r.loading){return c("span",{className:"form-item-text-content fitc-loading",style:r.style,children:c(s,{spinning:r.loading,size:"small",children:c("span",{style:{textIndent:"-9999px",display:"inline-block"},children:"Loading"})})})}return c("span",{className:"form-item-text-content",style:r.style,children:r.render?r.render(r.value):a})};var j=function e(n){var t=n.serviceConfig;var s=a(false),d=s[0],c=s[1];var f=a(),v=f[0],g=f[1];var y=h.usePrevious(t==null?void 0:t.params);var j=a("init"),x=j[0],w=j[1];var P=u.useFormInstance();var V=i((function(){var e;if(!(t!=null&&t.params)||o(t==null?void 0:t.invalidParamKey).length===0){return t==null?void 0:t.params}var n=r({},t==null?void 0:t.params);t==null||(e=t.invalidParamKey)==null?void 0:e.forEach((function(e){n[e]=undefined}));return n}),[t==null?void 0:t.invalidParamKey,t==null?void 0:t.params]);var C=function e(a){return new Promise((function(e,i){var o=function(e){return function(r){try{c(false);return e&&e.call(this,r)}catch(e){return i(e)}}.bind(this)}.bind(this);var s,u,f,v,p,h;if(!t)return e();u=r({},V,a);if(t!=null&&(s=t.requiredParamsKeys)!=null&&s.length){f=t==null?void 0:t.requiredParamsKeys.find((function(e){return l(u[e])}));if(f){console.warn("FormItemText组件:参数:"+(t==null?void 0:t.requiredParamsKeys.join("、"))+"不能为空");return e()}}var y=function(){try{return e()}catch(e){return i(e)}};var j=function(e){try{console.error(e);w("error");void m.error((e==null?void 0:e.message)||"接口调用异常");return o(y)()}catch(e){return o(i)(e)}};try{if(!d)c(true);return Promise.resolve(t.onRequest(u)).then((function(e){try{v=e;p=n.name?P.getFieldValue(n.name):undefined;h=t.onResponseAdapter?t.onResponseAdapter(v,p):v;g(h);w("success");return o(y)()}catch(e){return j(e)}}),j)}catch(e){j(e)}}))};h.useEffectCustomAsync(C,[]);h.useEffectCustom((function(){if(!t)return;if(y){if(!p(t.params,y)){void C()}}}),[y,t==null?void 0:t.params]);if(!t){return undefined}return{loading:d,status:x,viewValue:v}};var x=["wrap","render","placeholderValue","serviceConfig"];var w=function a(i){var t=i.wrap,l=i.render,o=i.placeholderValue,s=i.serviceConfig,u=n(i,x);var m=j({serviceConfig:s,name:i.name});return c(v,r({},u,{name:undefined,className:e("form-item-text",i.className),children:c(y,{loading:m==null?void 0:m.loading,wrap:t,render:l,placeholderValue:o,value:m==null?void 0:m.viewValue})}))};var P=["wrap","render","placeholderValue"];var V=function a(i){var l=i.wrap,o=i.render,s=i.placeholderValue,u=n(i,P);if(i.serviceConfig){return f(t,{children:[c(g,{name:i.name}),c(w,r({},i))]})}return c(v,r({},u,{className:e("form-item-text",i.className),children:c(y,{wrap:l,render:o,placeholderValue:s})}))};export{V as FormItemText};
9
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-text/content.tsx","@flatbiz/antd/src/form-item-text/use-request.tsx","@flatbiz/antd/src/form-item-text/request-text.tsx","@flatbiz/antd/src/form-item-text/form-item-text.tsx"],"sourcesContent":["import { isUndefinedOrNull } from '@flatbiz/utils';\nimport { Spin } from 'antd';\nimport { type CSSProperties } from 'react';\nimport { TextCssEllipsis } from '../text-css-ellipsis';\nimport { type FormItemTextProps } from './types';\n\nexport const FormItemTextContent = (\n props: Pick<FormItemTextProps, 'render' | 'wrap' | 'placeholderValue'> & {\n value?: string;\n style?: CSSProperties;\n loading?: boolean;\n },\n) => {\n const originalValue = (function () {\n if (isUndefinedOrNull(props.value)) return props.placeholderValue;\n return typeof props.value === 'string' ? props.value : JSON.stringify(props.value);\n })();\n const valueFt = props.wrap ? originalValue : <TextCssEllipsis text={originalValue || ''} />;\n if (props.loading) {\n return (\n <span className=\"form-item-text-content fitc-loading\" style={props.style}>\n <Spin spinning={props.loading} size=\"small\">\n <span style={{ textIndent: '-9999px', display: 'inline-block' }}>Loading</span>\n </Spin>\n </span>\n );\n }\n return (\n <span className=\"form-item-text-content\" style={props.style}>\n {props.render ? props.render(props.value) : valueFt}\n </span>\n );\n};\n","import { isDeepEqual } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form, message } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormItemWrapperProps } from '../form-item-wrapper';\nimport { type FormItemTextServiceConfig } from './types';\n\nexport const useRequestFormItemText = (props: {\n serviceConfig?: FormItemTextServiceConfig;\n name?: FormItemWrapperProps['name'];\n}) => {\n const serviceConfig = props.serviceConfig;\n const [loading, setLoading] = useState(false);\n const [respData, setRespData] = useState<TAny>();\n const prevParams = fbaHooks.usePrevious(serviceConfig?.params);\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const form = Form.useFormInstance();\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig?.params || toArray(serviceConfig?.invalidParamKey).length === 0) {\n return serviceConfig?.params;\n }\n const newParams = { ...serviceConfig?.params };\n serviceConfig?.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig?.invalidParamKey, serviceConfig?.params]);\n\n const onInnerRequest = async (params?: TPlainObject) => {\n if (!serviceConfig) return;\n const mergeProps = { ...serviceParams, ...params };\n if (serviceConfig?.requiredParamsKeys?.length) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(mergeProps[item]);\n });\n if (target) {\n console.warn(`FormItemText组件:参数:${serviceConfig?.requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n if (!loading) setLoading(true);\n const respData = await serviceConfig.onRequest(mergeProps);\n const value = props.name ? form.getFieldValue(props.name) : undefined;\n const respDataFt = serviceConfig.onResponseAdapter\n ? serviceConfig.onResponseAdapter(respData, value)\n : respData;\n setRespData(respDataFt);\n setStatus('success');\n } catch (error: TAny) {\n console.error(error);\n setStatus('error');\n void message.error(error?.message || '接口调用异常');\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInnerRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (!serviceConfig) return;\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInnerRequest();\n }\n }\n }, [prevParams, serviceConfig?.params]);\n\n if (!serviceConfig) {\n return undefined;\n }\n\n return { loading, status, viewValue: respData };\n};\n","import { classNames } from '@dimjs/utils';\n\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { FormItemTextContent } from './content';\nimport { type FormItemTextProps } from './types';\nimport { useRequestFormItemText } from './use-request';\n\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * @param props\n * @returns\n */\nexport const RequestText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, ...otherProps } = props;\n\n const requestResult = useRequestFormItemText({\n serviceConfig: props.serviceConfig,\n name: props.name,\n });\n\n return (\n <FormItemWrapper\n {...otherProps}\n name={undefined}\n className={classNames('form-item-text', props.className)}\n >\n <FormItemTextContent\n loading={requestResult?.loading}\n wrap={wrap}\n render={render}\n placeholderValue={placeholderValue}\n value={requestResult?.viewValue}\n />\n </FormItemWrapper>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Fragment } from 'react';\n\nimport { FormItemTextContent } from './content';\nimport { RequestText } from './request-text';\nimport { type FormItemTextProps } from './types';\n\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport './style.less';\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * ```\n * 可通过配置 serviceConfig 通过接口获取数据,一般用于 Select 数据显示\n *\n * 例如:\n * 1. 基本数据渲染\n * <FormItemText name=\"xxx\" label=\"xxx\" />\n * 2. 对象数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * render={(value) => {\n * const target = [].find(\n * (item) => item.value === value,\n * );\n * return target ? (\n * <Tag color={target['color']}>{target.label}</Tag>\n * ) : null;\n * }}\n * />\n * 3. 接口数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * serviceConfig={{\n * onRequest: () => {\n * return serviceHandle.request('/random/api9468', {}, 'post');\n * },\n * onResponseAdapter: (dataList: TPlainObject[], value) => {\n * return dataList?.find((item) => item.value === value);\n * },\n * }}\n * render={(dataItem) => {\n * return dataItem ? (\n * <Tag style={{ margin: 0 }} color={dataItem['color']}>\n * {dataItem.label}\n * </Tag>\n * ) : null;\n * }}\n * />\n * ```\n */\nexport const FormItemText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, ...otherProps } = props;\n\n if (props.serviceConfig) {\n return (\n <Fragment>\n <FormItemHidden name={props.name} />\n <RequestText {...props} />\n </Fragment>\n );\n }\n\n return (\n <FormItemWrapper {...otherProps} className={classNames('form-item-text', props.className)}>\n <FormItemTextContent wrap={wrap} render={render} placeholderValue={placeholderValue} />\n </FormItemWrapper>\n );\n};\n"],"names":["FormItemTextContent","props","originalValue","isUndefinedOrNull","value","placeholderValue","JSON","stringify","valueFt","wrap","_jsx","TextCssEllipsis","text","loading","className","style","children","Spin","spinning","size","textIndent","display","render","useRequestFormItemText","serviceConfig","_useState","useState","setLoading","_useState2","respData","setRespData","prevParams","fbaHooks","usePrevious","params","_useState3","status","setStatus","form","Form","useFormInstance","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","undefined","onInnerRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_serviceConfig$requir","mergeProps","target","_respData","respDataFt","requiredParamsKeys","find","item","console","warn","join","$Try_1_Post","$Try_1_Catch","error","message","resolve","onRequest","then","$await_2","name","getFieldValue","onResponseAdapter","useEffectCustomAsync","useEffectCustom","_isDeepEqual","viewValue","RequestText","otherProps","_objectWithoutPropertiesLoose","_excluded","requestResult","FormItemWrapper","_classNames","FormItemText","_jsxs","Fragment","FormItemHidden"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-text/content.tsx","@flatbiz/antd/src/form-item-text/use-request.tsx","@flatbiz/antd/src/form-item-text/request-text.tsx","@flatbiz/antd/src/form-item-text/form-item-text.tsx"],"sourcesContent":["import { isUndefinedOrNull } from '@flatbiz/utils';\nimport { Spin } from 'antd';\nimport { type CSSProperties } from 'react';\nimport { TextCssEllipsis } from '../text-css-ellipsis';\nimport { type FormItemTextProps } from './types';\n\nexport const FormItemTextContent = (\n props: Pick<FormItemTextProps, 'render' | 'wrap' | 'placeholderValue'> & {\n value?: string;\n style?: CSSProperties;\n loading?: boolean;\n },\n) => {\n const originalValue = (function () {\n if (isUndefinedOrNull(props.value)) return props.placeholderValue;\n return typeof props.value === 'string' ? props.value : JSON.stringify(props.value);\n })();\n const valueFt = props.wrap ? originalValue : <TextCssEllipsis text={originalValue || ''} />;\n if (props.loading) {\n return (\n <span className=\"form-item-text-content fitc-loading\" style={props.style}>\n <Spin spinning={props.loading} size=\"small\">\n <span style={{ textIndent: '-9999px', display: 'inline-block' }}>Loading</span>\n </Spin>\n </span>\n );\n }\n return (\n <span className=\"form-item-text-content\" style={props.style}>\n {props.render ? props.render(props.value) : valueFt}\n </span>\n );\n};\n","import { isDeepEqual } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form, message } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormItemWrapperProps } from '../form-item-wrapper';\nimport { type FormItemTextServiceConfig } from './types';\n\nexport const useRequestFormItemText = (props: {\n serviceConfig?: FormItemTextServiceConfig;\n name?: FormItemWrapperProps['name'];\n}) => {\n const serviceConfig = props.serviceConfig;\n const [loading, setLoading] = useState(false);\n const [respData, setRespData] = useState<TAny>();\n const prevParams = fbaHooks.usePrevious(serviceConfig?.params);\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const form = Form.useFormInstance();\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig?.params || toArray(serviceConfig?.invalidParamKey).length === 0) {\n return serviceConfig?.params;\n }\n const newParams = { ...serviceConfig?.params };\n serviceConfig?.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig?.invalidParamKey, serviceConfig?.params]);\n\n const onInnerRequest = async (params?: TPlainObject) => {\n if (!serviceConfig) return;\n const mergeProps = { ...serviceParams, ...params };\n if (serviceConfig?.requiredParamsKeys?.length) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(mergeProps[item]);\n });\n if (target) {\n console.warn(`FormItemText组件:参数:${serviceConfig?.requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n if (!loading) setLoading(true);\n const respData = await serviceConfig.onRequest(mergeProps);\n const value = props.name ? form.getFieldValue(props.name) : undefined;\n const respDataFt = serviceConfig.onResponseAdapter\n ? serviceConfig.onResponseAdapter(respData, value)\n : respData;\n setRespData(respDataFt);\n setStatus('success');\n } catch (error: TAny) {\n console.error(error);\n setStatus('error');\n void message.error(error?.message || '接口调用异常');\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInnerRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (!serviceConfig) return;\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInnerRequest();\n }\n }\n }, [prevParams, serviceConfig?.params]);\n\n if (!serviceConfig) {\n return undefined;\n }\n\n return { loading, status, viewValue: respData };\n};\n","import { classNames } from '@dimjs/utils';\n\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { FormItemTextContent } from './content';\nimport { type FormItemTextProps } from './types';\nimport { useRequestFormItemText } from './use-request';\n\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * @param props\n * @returns\n */\nexport const RequestText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, serviceConfig, ...otherProps } = props;\n\n const requestResult = useRequestFormItemText({\n serviceConfig,\n name: props.name,\n });\n\n return (\n <FormItemWrapper\n {...otherProps}\n name={undefined}\n className={classNames('form-item-text', props.className)}\n >\n <FormItemTextContent\n loading={requestResult?.loading}\n wrap={wrap}\n render={render}\n placeholderValue={placeholderValue}\n value={requestResult?.viewValue}\n />\n </FormItemWrapper>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Fragment } from 'react';\n\nimport { FormItemTextContent } from './content';\nimport { RequestText } from './request-text';\nimport { type FormItemTextProps } from './types';\n\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport './style.less';\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * ```\n * 可通过配置 serviceConfig 通过接口获取数据,一般用于 Select 数据显示\n *\n * 例如:\n * 1. 基本数据渲染\n * <FormItemText name=\"xxx\" label=\"xxx\" />\n * 2. 对象数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * render={(value) => {\n * const target = [].find(\n * (item) => item.value === value,\n * );\n * return target ? (\n * <Tag color={target['color']}>{target.label}</Tag>\n * ) : null;\n * }}\n * />\n * 3. 接口数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * serviceConfig={{\n * onRequest: () => {\n * return serviceHandle.request('/random/api9468', {}, 'post');\n * },\n * onResponseAdapter: (dataList: TPlainObject[], value) => {\n * return dataList?.find((item) => item.value === value);\n * },\n * }}\n * render={(dataItem) => {\n * return dataItem ? (\n * <Tag style={{ margin: 0 }} color={dataItem['color']}>\n * {dataItem.label}\n * </Tag>\n * ) : null;\n * }}\n * />\n * ```\n */\nexport const FormItemText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, ...otherProps } = props;\n\n if (props.serviceConfig) {\n return (\n <Fragment>\n <FormItemHidden name={props.name} />\n <RequestText {...props} />\n </Fragment>\n );\n }\n\n return (\n <FormItemWrapper {...otherProps} className={classNames('form-item-text', props.className)}>\n <FormItemTextContent wrap={wrap} render={render} placeholderValue={placeholderValue} />\n </FormItemWrapper>\n );\n};\n"],"names":["FormItemTextContent","props","originalValue","isUndefinedOrNull","value","placeholderValue","JSON","stringify","valueFt","wrap","_jsx","TextCssEllipsis","text","loading","className","style","children","Spin","spinning","size","textIndent","display","render","useRequestFormItemText","serviceConfig","_useState","useState","setLoading","_useState2","respData","setRespData","prevParams","fbaHooks","usePrevious","params","_useState3","status","setStatus","form","Form","useFormInstance","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","undefined","onInnerRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_serviceConfig$requir","mergeProps","target","_respData","respDataFt","requiredParamsKeys","find","item","console","warn","join","$Try_1_Post","$Try_1_Catch","error","message","resolve","onRequest","then","$await_2","name","getFieldValue","onResponseAdapter","useEffectCustomAsync","useEffectCustom","_isDeepEqual","viewValue","RequestText","otherProps","_objectWithoutPropertiesLoose","_excluded","requestResult","FormItemWrapper","_classNames","FormItemText","_jsxs","Fragment","FormItemHidden"],"mappings":"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"}
@@ -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:40px;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}
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}
@@ -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 N=l([]),E=N[0],S=N[1];var L=t((function(){return a({label:"label",key:"key"},k)}),[k]);var V=f!=null&&f.length?f:[L.label];var z=t((function(){var e=L.label,r=L.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,L,b]);i.useEffectCustom((function(){_("")}),[d]);var _=function e(r){if(!r){S(d);return}var a=d.filter((function(e){return!!(V!=null&&V.find((function(a){var n;return(n=e[a])==null?void 0:n.includes(r)})))}));S(a)};var B=function e(r){_(r.target.value)};var H=r.useCallbackRef((function(e){var r=d.find((function(r){return n(e,r[L.key])}));v==null?void 0:v(e,r)}));return m("div",{style:h,className:e(j,"v-search-menu-wrapper"),children:[m("div",{className:"v-search-menu-wrapper-search-area",style:x,children:[u(s,{onSearch:g?_:undefined,onChange:!g?B:undefined,placeholder:w||"请输入搜索关键词",allowClear:true}),!!o.searchExtraElement&&u("div",{className:"v-search-menu-wrapper-search-extra",children:o.searchExtraElement})]}),u(p,{style:y,value:c,dataList:z,onChange:H,emptyView:C})]})}export{v as SearchMenu};
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 <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 <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","_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":";kiBAoBO,IAAMA,EAA+B,SAA/BA,EAAgCC,GAC3C,IAAQC,EAAgDD,EAAhDC,MAAOC,EAAyCF,EAAzCE,SAAUC,EAA+BH,EAA/BG,SAAUC,EAAqBJ,EAArBI,MAAOC,EAAcL,EAAdK,UAG1C,KAAKH,GAAQ,MAARA,EAAUI,QAAQ,CACrB,OAAOD,EACLE,EAAAC,EAAA,CAAAC,SAAGJ,IAEHE,EAACG,EAAK,CACJN,MAAO,CACLO,UAAW,QAEbC,YAAY,QAGlB,CAEA,OACEL,EAAA,KAAA,CAAIM,UAAU,kCAAkCT,MAAOA,EAAMK,SAC1DP,EAASY,KAAI,SAACC,GACb,OACER,EAAA,KAAA,CACEM,UAAWG,EAAW,uCAAwC,CAC5D,8CAA+Cf,GAASc,EAAKE,MAG/DC,QAASf,GAAAA,UAAAA,EAAAA,EAAUgB,KAAK,KAAMJ,EAAKE,IAAKF,GAAMN,SAE7CM,EAAKK,OAHDL,EAAKE,SAStB,ECvCO,SAASI,EAAWrB,GACzB,IACEC,EAaED,EAbFC,MACAE,EAYEH,EAZFG,SACAmB,EAWEtB,EAXFsB,WACAC,EAUEvB,EAVFuB,cACAC,EASExB,EATFwB,UACApB,EAQEJ,EARFI,MACAqB,EAOEzB,EAPFyB,YACAC,EAME1B,EANF0B,WACAC,EAKE3B,EALF2B,WACAC,EAIE5B,EAJF4B,WACAf,EAGEb,EAHFa,UACAgB,EAEE7B,EAFF6B,YACAxB,EACEL,EADFK,UAEF,IAAAyB,EAAoCC,EAAyB,IAAtDC,EAAUF,EAAA,GAAEG,EAAaH,EAAA,GAGhC,IAAMI,EAAoBC,GAAQ,WAChC,OAAAC,EAAA,CACEhB,MAAO,QACPH,IAAK,OACFS,EAEP,GAAG,CAACA,IAGJ,IAAMW,EAAsBd,GAAa,MAAbA,EAAejB,OAASiB,EAAgB,CAACW,EAAkBd,OAGvF,IAAMkB,EAAeH,GAAQ,WAC3B,IAAQf,EAAec,EAAfd,MAAOH,EAAQiB,EAARjB,IACf,OAAOe,eAAAA,EAAYlB,KAAI,SAACC,GACtB,OAAAqB,KACKrB,EAAI,CACPK,MAAOO,EAAaA,EAAWZ,GAAQA,GAAI,UAAA,EAAJA,EAAOK,GAC9CH,IAAKF,GAAAA,UAAAA,EAAAA,EAAOE,IAEhB,GACD,GAAE,CAACe,EAAYE,EAAmBP,IAKnCY,EAASC,iBAAgB,WACvBC,EAAa,GACf,GAAG,CAACnB,IAGJ,IAAMmB,EAAe,SAAfA,EAAgBC,GACpB,IAAKA,EAAY,CAEfT,EAAcX,GACd,MACF,CAEA,IAAMqB,EAAUrB,EAAWsB,QAAO,SAAC7B,GACjC,SAASsB,GAAAA,MAAAA,EAAqBQ,MAAK,SAAC5B,GAAQ,IAAA6B,EAC1C,OAAAA,EAAO/B,EAAKE,KAAL6B,UAAAA,EAAAA,EAAWC,SAASL,EAC5B,IACH,IACAT,EAAcU,IAOhB,IAAMK,EAAmB,SAAnBA,EAAoBC,GACxBR,EAAaQ,EAAEC,OAAOjD,QAMxB,IAAMiB,EAAUiC,EAAMC,gBAAe,SAACnC,GACpC,IAAMoC,EAAa/B,EAAWuB,MAAK,SAAC9B,GAAI,OAAKuC,EAAarC,EAAKF,EAAKmB,EAAkBjB,SACtFd,eAAAA,EAAWc,EAAKoC,EAClB,IAEA,OACEE,EAAA,MAAA,CAAKnD,MAAOoB,EAAWX,UAAWG,EAAWH,EAAW,yBAAyBJ,UAC/E8C,EAAA,MAAA,CAAK1C,UAAU,oCAAoCT,MAAOyB,EAAYpB,SAAA,CACpEF,EAACiD,EAAkB,CACjBC,SAAU7B,EAAaa,EAAeiB,UACtCvD,UAAWyB,EAAaoB,EAAmBU,UAC3CjC,YAAaA,GAAe,WAC5BkC,WAAU,SAET3D,EAAM4D,oBACPrD,EAAA,MAAA,CAAKM,UAAU,qCAAoCJ,SAAET,EAAM4D,wBAG/DrD,EAACR,EAAQ,CACPK,MAAOA,EACPH,MAAOA,EACPC,SAAUoC,EACVnC,SAAUe,EACVb,UAAWA,MAInB"}
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.2.95",
3
+ "version": "4.2.97",
4
4
  "description": "flat-biz ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",
@@ -63,7 +63,8 @@
63
63
  "@dnd-kit/modifiers": "^6.0.1",
64
64
  "@dnd-kit/sortable": "^7.0.2",
65
65
  "@dnd-kit/utilities": "^3.2.1",
66
- "use-intl": "3.0.0-rc.6"
66
+ "use-intl": "3.0.0-rc.6",
67
+ "react-split": "2.0.14"
67
68
  },
68
69
  "gitHead": "4378d433b73ee28fd7cb4c64bed8571f993eb5a9"
69
70
  }