@flatbiz/antd 4.2.13 → 4.2.16

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.
@@ -0,0 +1 @@
1
+ .fba-easy-table-filter-fixed,.fba-easy-table-full,.fba-easy-table-pagination-fixed{display:flex;flex-direction:column;height:100%}.fba-easy-table-filter-fixed .easy-table-table,.fba-easy-table-full .easy-table-table,.fba-easy-table-pagination-fixed .easy-table-table{flex:1}.fba-easy-table-filter-fixed{overflow:hidden}.fba-easy-table-filter-fixed .easy-table-table{overflow-y:auto}.fba-easy-table-wrapper{display:flex;flex-direction:column;height:100%}.fba-easy-table-wrapper .fba-easy-table{flex:1;height:auto;overflow-y:auto}.fba-easy-table-pagination{background-color:#fff;box-shadow:0 0 17px rgba(0,0,0,.08);padding:15px 15px 20px;position:relative;text-align:right;z-index:2}
@@ -7,5 +7,5 @@ import './../form-grid/index.css';
7
7
  import './../simple-layout/index.css';
8
8
  import './index.css';
9
9
  /*! @flatjs/forge MIT @flatbiz/antd */
10
- import{a as e}from"../attach-properties-to-component-9d9644cf.js";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{hooks as t}from"@wove/react/cjs/hooks";import{a as i,_ as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as o}from"@dimjs/model";import{Form as a,message as u,Table as s}from"antd";import{forwardRef as l,useState as c,useImperativeHandle as d,Children as m,useRef as p,useMemo as f}from"react";import{createCtx as v}from"@wove/react/cjs/create-ctx";import{Model as g}from"@dimjs/model-react";import{jsx as y,jsxs as h}from"react/jsx-runtime";import{B as C}from"../button-wrapper-698da5b1.js";import{FormGrid as S}from"../form-grid/index.js";import{S as j}from"../simple-layout-1676e586.js";import{isUndefinedOrNull as F,getUuid as q}from"@flatbiz/utils";import{fbaHooks as R}from"../fba-hooks/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils-a4c7d94d.js";import"@dimjs/utils/cjs/class-names";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var b=v(),z=b[0],P=b[1];var w={queryCondition:{},isInit:true};var N={actions:{updateFilterCondition:function e(r){return function(e){e.queryCondition=i({},e.queryCondition,r)}},resetFilterCondition:function e(){return function(e){e.queryCondition=w.queryCondition}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:w};var k={};var T=function e(r){if(!k[r]){k[r]=g(N)}return k[r]};var x=l((function(e,n){var s;var l=c([]),m=l[0],p=l[1];var f=c(0),v=f[0],g=f[1];var h=c(false),C=h[0],S=h[1];var j=T(e.modelKey).useStore(),F=j[0],q=j[1];var R=e.pageSize||((s=e.initialPaginationParams)==null?void 0:s.pageSize)||10;var b=e.initRequest===undefined?true:e.initRequest;var z=c(false),w=z[0],N=z[1];var k=i({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var x=a.useForm(),V=x[0];var K=t.useCallbackRef((function(t){return new Promise((function(i,n){var a,s,l,c,d,m,f,v,y,h;var C=function(){try{return i()}catch(e){return n(e)}};var j=function(e){try{S(false);void u.error(e.message);return C()}catch(e){return n(e)}};try{S(true);return Promise.resolve(q.updateFilterCondition(t)).then((function(t){try{a=t;s=o(a.queryCondition||{});l=e.serviceConfig,c=l.requestParamsAdapter,d=l.onRequest,m=l.requestResultAdapter;f=c?c(s):s;return Promise.resolve(d(f)).then((function(t){try{v=t||{};e.onDataSourceChange==null?void 0:e.onDataSourceChange(v);y=m?m(v):v;h=y[k.list];p(r(h)?h:[]);g(y[k.total]);S(false);return C()}catch(e){return j(e)}}),j)}catch(e){return j(e)}}),j)}catch(e){j(e)}}))}));var E=t.useCallbackRef((function(e){return new Promise((function(r,t){return Promise.resolve(q.resetFilterCondition()).then((function(i){try{V.resetFields();if(e){void q.updateFilterCondition(e);V.setFieldsValue(e)}return r()}catch(e){return t(e)}}),t)}))}));var I=function e(r,t){if(w){var i;return i={},i[k.pageNo]=r,i[k.pageSize]=t||R,i}else{return{}}};var A=t.useCallbackRef((function(r){return new Promise((function(t,n){return Promise.resolve(q.resetFilterCondition()).then((function(o){try{V.resetFields();void K(i({},I(1,R),e.initialValues,r));return t()}catch(e){return n(e)}}),n)}))}));var B=t.useCallbackRef((function(){return i({},F.queryCondition,V.getFieldsValue())}));var L=function e(){return{onRequest:K,clearQueryCondition:E,getRequestParams:B,onResetRequest:A,form:V}};d(n,(function(){return L()}));var O=function e(r){N(r)};var _=function r(){var t=V.getFieldsValue();if(e.onFormFinish){e.onFormFinish(i({},t,I(1,F.queryCondition.pageSize)))}else{void K(i({},t,I(1,F.queryCondition.pageSize)))}};return y(P,{value:{getEasyTableRef:L,modelKey:e.modelKey,onRequest:K,tableList:m,tableTotal:v,loading:C,fieldNames:k,pageSize:R,initRequest:b,initialValues:e.initialValues||{},onSetPaginationStatus:O,paginationStatus:w,onFormFinish:_,form:V},children:e.children})}));var V=function e(r){var n=r.queryButtonProps,o=r.resetButtonProps,u=r.filterOperate;var s=z(),l=s.modelKey,c=s.fieldNames,d=s.onRequest,p=s.pageSize,f=s.paginationStatus,v=s.initialValues,g=s.form,h=s.onFormFinish;var F=typeof r.children==="function"?r.children(g):r.children;var q=m.toArray(F);var R=T(l).useStore(),b=R[0],P=R[1];var w=t.useCallbackRef((function(){return new Promise((function(e,r){var t;return Promise.resolve(P.resetFilterCondition()).then((function(n){try{g.resetFields();if(f){d(i((t={},t[c.pageNo]=1,t[c.pageSize]=p,t),v))}else{d(v)}return e()}catch(e){return r(e)}}),r)}))}));var N=i({rightList:[!(n!=null&&n.hidden)?y(C,i({type:"primary",htmlType:"submit"},n,{children:(n==null?void 0:n.text)||"查询"}),"1"):null,!(o!=null&&o.hidden)?y(C,i({onClick:w},o,{children:(o==null?void 0:o.text)||"重置"}),"2"):null]},u==null?void 0:u(g));var k=q.map((function(e,r){if(e.type["domTypeName"]==="FormCol"){return e}return y(S.Col,{children:e},r)})).concat(y(S.OperateCol,i({},N),99));return y(j,{children:y(a,{form:g,onFinish:h,initialValues:i({},v,b.queryCondition),children:r.isPure?F:y(S.Row,{gutter:[15,0],children:k})})})};var K=function e(){var r=z();var t=p(r.getEasyTableRef());return t.current};var E=function e(){var r=z(),t=r.getEasyTableRef;var i=p(t());return i};var I=["children","rowKey","pagination"];var A=function e(r){var t=r.children,o=r.rowKey,a=r.pagination,u=n(r,I);var l=z(),c=l.modelKey,d=l.fieldNames,m=l.onRequest,p=l.tableList,v=l.initRequest,g=l.pageSize,C=l.tableTotal,S=l.loading,b=l.initialValues,P=l.onSetPaginationStatus;var w=T(c).useStore(),N=w[0],k=w[1];var x=a==false?false:i({showSizeChanger:true,current:N.queryCondition[d.pageNo],pageSize:N.queryCondition[d.pageSize],total:C,showTotal:function e(r){return"共 "+r+" 条记录"}},r.pagination);var V=function e(t){if(x){var i;m((i={},i[d.pageSize]=t.pageSize,i[d.pageNo]=t.current,i))}for(var n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++){o[a-1]=arguments[a]}r.onChange==null?void 0:r.onChange.apply(r,[t].concat(o))};var K=f((function(){if(p.length===0){return[]}if(F(p[0][o])){return p.map((function(e){e[o]=q();return e}))}return p}),[p,o]);R.useEffectCustom((function(){var e=x!==false;P(e);if(v!==false||!N.isInit){if(e){var r;void m(i((r={},r[d.pageNo]=1,r[d.pageSize]=g,r),b))}else{void m(b)}}else{void k.updateFilterCondition(b)}void k.updateInitStatus()}),[]);return h(j,{children:[t,y(s,i({size:"small",scroll:{x:"max-content"},bordered:true},u,{pagination:x,rowKey:o,onChange:V,loading:S,dataSource:K}))]})};var B=e(x,{Filter:V,Table:A,useEasyTablRef:E,useEasyTable:K});export{B as EasyTable};
10
+ import{a as e}from"../attach-properties-to-component-9d9644cf.js";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{isArray as t}from"@dimjs/lang/cjs/is-array";import{hooks as n}from"@wove/react/cjs/hooks";import{a as r,_ as a}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as o}from"@dimjs/model";import{Form as l,Pagination as s,message as u,Table as d}from"antd";import{forwardRef as c,useState as f,useImperativeHandle as p,useMemo as m,Children as g,useRef as v}from"react";import{createCtx as y}from"@wove/react/cjs/create-ctx";import{Model as h}from"@dimjs/model-react";import{jsx as C,jsxs as S}from"react/jsx-runtime";import b from"@ant-design/icons/es/icons/DownOutlined";import F from"@ant-design/icons/es/icons/UpOutlined";import{B as j}from"../button-wrapper-698da5b1.js";import{FormGrid as q}from"../form-grid/index.js";import{S as z}from"../simple-layout-1676e586.js";import{isUndefinedOrNull as R,getUuid as N}from"@flatbiz/utils";import{fbaHooks as w}from"../fba-hooks/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils-a4c7d94d.js";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var P=y(),x=P[0],k=P[1];var T={queryCondition:{},isInit:true};var K={actions:{updateFilterCondition:function e(i){return function(e){e.queryCondition=r({},e.queryCondition,i)}},resetFilterCondition:function e(){return function(e){e.queryCondition=T.queryCondition}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:T};var L={};var V=function e(i){if(!L[i]){L[i]=h(K)}return L[i]};var E=c((function(e,a){var d;var c=f([]),g=c[0],v=c[1];var y=f(0),h=y[0],b=y[1];var F=f(false),j=F[0],q=F[1];var z=V(e.modelKey).useStore(),R=z[0],N=z[1];var w=e.pageSize||((d=e.initialPaginationParams)==null?void 0:d.pageSize)||10;var P=e.initRequest===undefined?true:e.initRequest;var x=f(false),T=x[0],K=x[1];var L=r({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var E=l.useForm(),O=E[0];var B=n.useCallbackRef((function(i){return new Promise((function(n,r){var a,l,s,d,c,f,p,m,g,y;var h=function(){try{return n()}catch(e){return r(e)}};var C=function(e){try{q(false);void u.error(e.message);return h()}catch(e){return r(e)}};try{q(true);return Promise.resolve(N.updateFilterCondition(i)).then((function(i){try{a=i;l=o(a.queryCondition||{});s=e.serviceConfig,d=s.requestParamsAdapter,c=s.onRequest,f=s.requestResultAdapter;p=d?d(l):l;return Promise.resolve(c(p)).then((function(i){try{m=i||{};e.onDataSourceChange==null?void 0:e.onDataSourceChange(m);g=f?f(m):m;y=g[L.list];v(t(y)?y:[]);b(g[L.total]);q(false);return h()}catch(e){return C(e)}}),C)}catch(e){return C(e)}}),C)}catch(e){C(e)}}))}));var I=n.useCallbackRef((function(e){return new Promise((function(i,t){return Promise.resolve(N.resetFilterCondition()).then((function(n){try{O.resetFields();if(e){void N.updateFilterCondition(e);O.setFieldsValue(e)}return i()}catch(e){return t(e)}}),t)}))}));var A=function e(i,t){if(T){var n;return n={},n[L.pageNo]=i,n[L.pageSize]=t||w,n}else{return{}}};var D=n.useCallbackRef((function(i){return new Promise((function(t,n){return Promise.resolve(N.resetFilterCondition()).then((function(a){try{O.resetFields();void B(r({},A(1,w),e.initialValues,i));return t()}catch(e){return n(e)}}),n)}))}));var _=n.useCallbackRef((function(){return r({},R.queryCondition,O.getFieldsValue())}));var U=function e(){return{onRequest:B,clearQueryCondition:I,getRequestParams:_,onResetRequest:D,form:O}};p(a,(function(){return U()}));var Y=function e(i){K(i)};var H=function i(){var t=O.getFieldsValue();if(e.onFormFinish){e.onFormFinish(r({},t,A(1,R.queryCondition.pageSize)))}else{void B(r({},t,A(1,R.queryCondition.pageSize)))}};var Q=i("fba-easy-table",{"fba-easy-table-full":e.isFull,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed});var $=m((function(){return r({showSizeChanger:true,current:R.queryCondition[L.pageNo],pageSize:R.queryCondition[L.pageSize]||w,total:h,showTotal:function e(i){return"共 "+i+" 条记录"}},e.pagination)}),[L.pageNo,L.pageSize,w,e.pagination,R.queryCondition,h]);var G=n.useCallbackRef((function(i,t){var n,r;void B((n={},n[L.pageSize]=t,n[L.pageNo]=i,n));(r=e.pagination)==null?void 0:r.onChange==null?void 0:r.onChange(i,t)}));return C(k,{value:{getEasyTableRef:U,modelKey:e.modelKey,onRequest:B,tableList:g,tableTotal:h,loading:j,fieldNames:L,pageSize:w,initRequest:P,initialValues:e.initialValues||{},onSetPaginationStatus:Y,paginationStatus:T,onFormFinish:H,form:O,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[]},children:e.paginationFixed?S("div",{className:"fba-easy-table-wrapper",children:[C("div",{className:Q,children:e.children}),C(s,r({className:"fba-easy-table-pagination",size:"small"},$,{onChange:G}))]}):C("div",{className:Q,children:e.children})})}));var O=function e(i){var t=i.queryButtonProps,a=i.resetButtonProps,o=i.filterOperate;var s=x(),u=s.modelKey,d=s.foldKeys,c=s.fieldNames,p=s.onRequest,v=s.pageSize,y=s.paginationStatus,h=s.initialValues,R=s.form,N=s.onFormFinish;var w=typeof i.children==="function"?i.children(R):i.children;var P=g.toArray(w);var k=f(false),T=k[0],K=k[1];var L=V(u).useStore(),E=L[0],O=L[1];var B=n.useCallbackRef((function(){return new Promise((function(e,i){var t;return Promise.resolve(O.resetFilterCondition()).then((function(n){try{R.resetFields();if(y){p(r((t={},t[c.pageNo]=1,t[c.pageSize]=v,t),h))}else{p(h)}return e()}catch(e){return i(e)}}),i)}))}));var I=m((function(){var e=r({rightList:[!(t!=null&&t.hidden)?C(j,r({type:"primary",htmlType:"submit"},t,{children:(t==null?void 0:t.text)||"查询"}),"1"):null,!(a!=null&&a.hidden)?C(j,r({onClick:B},a,{children:(a==null?void 0:a.text)||"重置"}),"2"):null],leftList:[]},o==null?void 0:o(R));if(d.length>0){var i=C(j,{type:"link",style:{padding:"0"},onClick:function e(){K(!T)},children:T?S("span",{children:["收起",C(F,{style:{marginLeft:3,fontSize:12}})]}):S("span",{children:["展开",C(b,{style:{marginLeft:3,fontSize:12}})]})});var n=e.rightList,l=e.leftList;if(n.length>0||l.length===0){n.push(i)}else if((l==null?void 0:l.length)>0){l.push(i)}}return P.map((function(e,i){if(!T&&d.find((function(i){return".$"+i===e.key})))return null;if(e.type["domTypeName"]==="FormCol"){return e}return C(q.Col,{children:e},i)})).filter(Boolean).concat(C(q.OperateCol,r({},e),999))}),[P,o,d,R,B,T,t,a]);return C(z,{className:"easy-table-filter",children:C(l,{form:R,onFinish:N,initialValues:r({},h,E.queryCondition),children:i.isPure?w:C(q.Row,{gutter:[15,0],children:I})})})};var B=function e(){var i=x();var t=v(i.getEasyTableRef());return t.current};var I=function e(){var i=x(),t=i.getEasyTableRef;var n=v(t());return n};var A=["children","rowKey","pagination"];var D=function e(i){var t=i.children,n=i.rowKey,o=i.pagination,l=a(i,A);var s=x(),u=s.modelKey,c=s.fieldNames,f=s.onRequest,p=s.tableList,g=s.initRequest,v=s.pageSize,y=s.tableTotal,h=s.loading,b=s.initialValues,F=s.paginationFixed,j=s.onSetPaginationStatus;var q=V(u).useStore(),P=q[0],k=q[1];var T=m((function(){if(F||o===false)return false;return r({showSizeChanger:true,current:P.queryCondition[c.pageNo],pageSize:P.queryCondition[c.pageSize]||v,total:y,showTotal:function e(i){return"共 "+i+" 条记录"}},i.pagination)}),[c.pageNo,c.pageSize,v,o,F,i.pagination,P.queryCondition,y]);var K=function e(t){if(!F&&T){var n;f((n={},n[c.pageSize]=t.pageSize,n[c.pageNo]=t.current,n))}for(var r=arguments.length,a=new Array(r>1?r-1:0),o=1;o<r;o++){a[o-1]=arguments[o]}i.onChange==null?void 0:i.onChange.apply(i,[t].concat(a))};var L=m((function(){if(p.length===0){return[]}if(R(p[0][n])){return p.map((function(e){e[n]=N();return e}))}return p}),[p,n]);w.useEffectCustom((function(){var e=T!==false;j(e);if(g!==false||!P.isInit){if(e){var i;void f(r((i={},i[c.pageNo]=1,i[c.pageSize]=v,i),b))}else{void f(b)}}else{void k.updateFilterCondition(b)}void k.updateInitStatus()}),[]);return S(z,{className:"easy-table-table",children:[t,C(d,r({size:"small",scroll:{x:"max-content"},bordered:true},l,{pagination:T,rowKey:n,onChange:K,loading:h,dataSource:L}))]})};var _=e(E,{Filter:O,Table:D,useEasyTablRef:I,useEasyTable:B});export{_ as EasyTable};
11
11
  //# 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 { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition: void;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: () => {\n return (state) => {\n state.queryCondition = defaultState.queryCondition;\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useState } from 'react';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n children: ReactElement | ReactElement[];\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n};\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const 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 props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n void message.error(error.message);\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\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 await actions.resetFilterCondition();\n form.resetFields();\n void onInnerRequest({\n ...getPaginationData(1, pageSize),\n ...props.initialValues,\n ...values,\n });\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\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.pageSize) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition.pageSize),\n });\n }\n };\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.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 }}\n >\n {props.children}\n </EasyTableCtxProvider>\n );\n});\n","import { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n // 查询按钮配置\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n // 重置按钮配置\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate } = props;\n const { modelKey, fieldNames, onRequest, pageSize, paginationStatus, initialValues, form, onFormFinish } =\n useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = Children.toArray(children);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n ...filterOperate?.(form),\n };\n\n const formRowChildren = childrens\n .map((item, index) => {\n if ((item as ReactElement).type['domTypeName'] === 'FormCol') {\n return item;\n }\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .concat(<FormGrid.OperateCol key={99} {...formOperateColProps} />);\n\n return (\n <SimpleLayout>\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n >\n {props.isPure ? children : <FormGrid.Row gutter={[15, 0]}>{formRowChildren}</FormGrid.Row>}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useEasyTableCtx();\n const resp = useRef(ctx.getEasyTableRef());\n return resp.current;\n};\n\n/**\n *\n * @deprecated 已过去,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { getUuid, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement;\n /** 表格行 key 的取值 */\n rowKey: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const paginationData =\n pagination == false\n ? false\n : {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo],\n pageSize: state.queryCondition[fieldNames.pageSize],\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n\n const onChangePage: TableProps<TAny>['onChange'] = (data, ...otherProps) => {\n if (paginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationData !== 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 });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n return (\n <SimpleLayout>\n {children}\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n pagination={paginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </SimpleLayout>\n );\n};\n","import { attachPropertiesToComponent } from '../_utils/attach-properties-to-component';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\nexport const EasyTable = attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过去,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","$await_5","initialValues","getRequestParams","getFieldsValue","getEasyTableRef","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","_jsx","value","tableList","tableTotal","children","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","_useEasyTableCtx","childrens","Children","toArray","onReset","_extends2","$await_1","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","formRowChildren","map","item","index","FormGrid","Col","concat","OperateCol","SimpleLayout","onFinish","isPure","Row","gutter","useEasyTable","ctx","resp","useRef","current","useEasyTablRef","EasyTableTable","rowKey","pagination","otherProps","_objectWithoutPropertiesLoose","_excluded","paginationData","showSizeChanger","showTotal","onChangePage","data","_onRequest","_len","arguments","length","Array","_key","onChange","apply","useMemo","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","_jsxs","Table","size","scroll","x","bordered","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 { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition: void;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: () => {\n return (state) => {\n state.queryCondition = defaultState.queryCondition;\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message, Pagination, PaginationProps } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useMemo, useState } from 'react';\nimport { EasyTableCtxProvider } 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 children: ReactElement | ReactElement[];\n /** EasyTable唯一值,可用于缓存查询条件 */\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满 */\n 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\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const 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 props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n void message.error(error.message);\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\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 await actions.resetFilterCondition();\n form.resetFields();\n void onInnerRequest({\n ...getPaginationData(1, pageSize),\n ...props.initialValues,\n ...values,\n });\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\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.pageSize) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition.pageSize),\n });\n }\n };\n\n const className = classNames('fba-easy-table', {\n 'fba-easy-table-full': props.isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n });\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo],\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 return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.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=\"fba-easy-table-wrapper\">\n <div className={className}>{props.children}</div>\n <Pagination\n className=\"fba-easy-table-pagination\"\n size=\"small\"\n {...paginationData}\n onChange={onChange}\n />\n </div>\n ) : (\n <div className={className}>{props.children}</div>\n )}\n </EasyTableCtxProvider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement, useMemo, useState } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n // 查询按钮配置\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n // 重置按钮配置\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = Children.toArray(children) as ReactElement[];\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 (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formRowChildren = useMemo(() => {\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n leftList: [],\n ...filterOperate?.(form),\n };\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\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 const { rightList, leftList } = formOperateColProps;\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.type['domTypeName'] === 'FormCol') {\n return item;\n }\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(<FormGrid.OperateCol key={999} {...formOperateColProps} />);\n }, [childrens, filterOperate, foldKeys, form, onReset, openFold, queryButtonProps, resetButtonProps]);\n\n return (\n <SimpleLayout className=\"easy-table-filter\">\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n >\n {props.isPure ? children : <FormGrid.Row gutter={[15, 0]}>{formRowChildren}</FormGrid.Row>}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useEasyTableCtx();\n const resp = useRef(ctx.getEasyTableRef());\n return resp.current;\n};\n\n/**\n *\n * @deprecated 已过去,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { getUuid, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement | ReactElement[];\n /** 表格行 key 的取值 */\n rowKey: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const paginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo],\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\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'] = (data, ...otherProps) => {\n if (!paginationFixed && paginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationData !== 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 });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n return (\n <SimpleLayout className=\"easy-table-table\">\n {children}\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n pagination={paginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </SimpleLayout>\n );\n};\n","import { attachPropertiesToComponent } from '../_utils/attach-properties-to-component';\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. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 4. isFull=true,设置【在父节点高度下,上下铺满】\n * 5. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 6. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 7. foldKeys=string[],查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过去,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","$await_5","initialValues","getRequestParams","getFieldsValue","getEasyTableRef","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","className","_classNames","isFull","filterFixed","paginationFixed","paginationData","useMemo","showSizeChanger","current","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","_jsx","value","tableList","tableTotal","foldKeys","children","_jsxs","Pagination","size","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","_useEasyTableCtx","childrens","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","leftList","length","changeFolditem","style","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","filter","Boolean","concat","OperateCol","SimpleLayout","onFinish","isPure","Row","gutter","useEasyTable","ctx","resp","useRef","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","onChangePage","data","_onRequest","_len","arguments","Array","_key","apply","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","hasPagination","Table","scroll","x","bordered","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
@@ -1 +1 @@
1
- .tabs-sticky{height:100%;overflow:hidden}.tabs-sticky>.ant-tabs-content-holder{flex:1;overflow-y:auto}
1
+ .tabs-fixed{height:100%;overflow:hidden}.tabs-fixed>.ant-tabs-content-holder{flex:1;overflow-y:auto}.tabs-fixed>.ant-tabs-content-holder>.ant-tabs-content,.tabs-fixed>.ant-tabs-content-holder>.ant-tabs-content>.ant-tabs-tabpane{height:100%}
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable */
2
2
  import './index.css';
3
3
  /*! @flatjs/forge MIT @flatbiz/antd */
4
- import{_ as e,a as t}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as a}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{sessionStorageCache as i}from"@flatbiz/utils";import{Tabs as c}from"antd";import{useMemo as o}from"react";import{jsx as v}from"react/jsx-runtime";var l=["isSticky","activeCacheKey","cancelActiveCache"];var s=function s(n){var u=n.isSticky,f=u===void 0?true:u,m=n.activeCacheKey,y=n.cancelActiveCache,p=e(n,l);var K=Object.prototype.hasOwnProperty.call(n,"activeKey");var d=m||"tabs-wrapper-activeKey";var h=r.useCallbackRef((function(e){if(y!==true&&!K){i.set(d,{activeKey:e})}p.onChange==null?void 0:p.onChange(e)}));var C=o((function(){var e;if(y===true||K){return n.defaultActiveKey}var t=(e=i.get(d))==null?void 0:e.activeKey;return t||p.defaultActiveKey}),[d,y,K,p.defaultActiveKey,n.defaultActiveKey]);var A=a({"tabs-sticky":f},p.className);return v(c,t({},p,{className:A,defaultActiveKey:C,onChange:h}))};export{s as TabsWrapper};
4
+ import{_ as e,a as t}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{classNames as a}from"@dimjs/utils/cjs/class-names";import{hooks as r}from"@wove/react/cjs/hooks";import{isUndefined as i}from"@dimjs/lang/cjs/is-undefined";import{sessionStorageCache as c}from"@flatbiz/utils";import{Tabs as o}from"antd";import{useMemo as s}from"react";import{jsx as v}from"react/jsx-runtime";var l=["isSticky","isFixed","activeCacheKey","cancelActiveCache"];var n=function n(u){var f=u.isSticky,m=f===void 0?true:f,d=u.isFixed,p=d===void 0?true:d,y=u.activeCacheKey,K=u.cancelActiveCache,h=e(u,l);var j=Object.prototype.hasOwnProperty.call(u,"activeKey");var C=y||"tabs-wrapper-activeKey";var A=i(p)?m:p;var b=r.useCallbackRef((function(e){if(K!==true&&!j){c.set(C,{activeKey:e})}h.onChange==null?void 0:h.onChange(e)}));var g=s((function(){var e;if(K===true||j){return u.defaultActiveKey}var t=(e=c.get(C))==null?void 0:e.activeKey;return t||h.defaultActiveKey}),[C,K,j,h.defaultActiveKey,u.defaultActiveKey]);var x=a({"tabs-fixed":A},h.className);return v(o,t({},h,{className:x,defaultActiveKey:g,onChange:b}))};export{n as TabsWrapper};
5
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tabs-wrapper/tabs-wrapper.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { sessionStorageCache } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Tabs, TabsProps } from 'antd';\nimport { useMemo } from 'react';\nimport './style.less';\n\nexport type TabsWrapperProps = TabsProps & {\n /** Tabs Header 提供 Sticky 效果,默认值:true */\n isSticky?: boolean;\n /** 是否取消 active 缓存 */\n cancelActiveCache?: boolean;\n activeCacheKey?: string;\n};\n\n/**\n * Tabs 包装组件\n * ```\n * 1. Tabs Header 提供 Sticky 效果,默认值:true\n * 2. 使用时,父级必须要有高度,可置于Flex布局中\n * 3. 默认缓存激活的tab item(activeKey受控操作下缓存无效)\n * 当未设置activeKey,非受控操作时,组件内部会会话缓存activeKey,在刷新时,会显示上次的激活的tab item\n * 缓存Key:如果未设置 activeCacheKey,则使用默认的 cache key(tabs-wrapper-activeKey)\n * 缓存模式:会话缓存,在浏览器关闭后,会清除\n * ```\n */\nexport const TabsWrapper = (props: TabsWrapperProps) => {\n const { isSticky = true, activeCacheKey, cancelActiveCache, ...otherProps } = props;\n // 是否受控操作\n const isControl = Object.prototype.hasOwnProperty.call(props, 'activeKey');\n const cacheKey = activeCacheKey || 'tabs-wrapper-activeKey';\n\n const onChange = hooks.useCallbackRef((activeKey: string) => {\n if (cancelActiveCache !== true && !isControl) {\n sessionStorageCache.set(cacheKey, { activeKey });\n }\n otherProps.onChange?.(activeKey);\n });\n\n const defaultActiveKey = useMemo(() => {\n if (cancelActiveCache === true || isControl) {\n return props.defaultActiveKey;\n }\n const chcheActiveKey = sessionStorageCache.get(cacheKey)?.activeKey as string | undefined;\n return chcheActiveKey || otherProps.defaultActiveKey;\n }, [cacheKey, cancelActiveCache, isControl, otherProps.defaultActiveKey, props.defaultActiveKey]);\n\n const className = classNames({ 'tabs-sticky': isSticky }, otherProps.className);\n\n return (\n <Tabs {...otherProps} className={className} defaultActiveKey={defaultActiveKey} onChange={onChange} />\n );\n};\n"],"names":["TabsWrapper","props","_props$isSticky","isSticky","activeCacheKey","cancelActiveCache","otherProps","_objectWithoutPropertiesLoose","_excluded","isControl","Object","prototype","hasOwnProperty","call","cacheKey","onChange","_hooks","useCallbackRef","activeKey","sessionStorageCache","set","defaultActiveKey","useMemo","_sessionStorageCache$","chcheActiveKey","get","className","_classNames","_jsx","Tabs","_extends"],"mappings":";iYA0BaA,EAAc,SAAdA,EAAeC,GAC1B,IAAAC,EAA8ED,EAAtEE,SAAAA,EAAQD,SAAG,EAAA,KAAIA,EAAEE,EAAqDH,EAArDG,eAAgBC,EAAqCJ,EAArCI,kBAAsBC,EAAUC,EAAKN,EAAKO,GAEnF,IAAMC,EAAYC,OAAOC,UAAUC,eAAeC,KAAKZ,EAAO,aAC9D,IAAMa,EAAWV,GAAkB,yBAEnC,IAAMW,EAAWC,EAAMC,gBAAe,SAACC,GACrC,GAAIb,IAAsB,OAASI,EAAW,CAC5CU,EAAoBC,IAAIN,EAAU,CAAEI,UAAAA,GACtC,CACAZ,EAAWS,UAAXT,UAAAA,EAAAA,EAAWS,SAAWG,EACxB,IAEA,IAAMG,EAAmBC,GAAQ,WAAM,IAAAC,EACrC,GAAIlB,IAAsB,MAAQI,EAAW,CAC3C,OAAOR,EAAMoB,gBACf,CACA,IAAMG,GAAcD,EAAGJ,EAAoBM,IAAIX,KAAxBS,UAAAA,EAAAA,EAAmCL,UAC1D,OAAOM,GAAkBlB,EAAWe,gBACtC,GAAG,CAACP,EAAUT,EAAmBI,EAAWH,EAAWe,iBAAkBpB,EAAMoB,mBAE/E,IAAMK,EAAYC,EAAW,CAAE,cAAexB,GAAYG,EAAWoB,WAErE,OACEE,EAACC,EAAIC,KAAKxB,EAAU,CAAEoB,UAAWA,EAAWL,iBAAkBA,EAAkBN,SAAUA,IAE9F"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tabs-wrapper/tabs-wrapper.tsx"],"sourcesContent":["import { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { sessionStorageCache } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Tabs, TabsProps } from 'antd';\nimport { useMemo } from 'react';\nimport './style.less';\n\nexport type TabsWrapperProps = TabsProps & {\n /**\n * Tabs Header 提供 Sticky 效果,默认值:true\n * @deprecated 已废弃,请使用 isFixed 属性\n */\n isSticky?: boolean;\n /**\n * Tabs Header 提供 Fixed 效果,默认值:true\n */\n isFixed?: boolean;\n /** 是否取消 active 缓存 */\n cancelActiveCache?: boolean;\n activeCacheKey?: string;\n};\n\n/**\n * Tabs 包装组件\n * ```\n * 1. Tabs Header 提供 Sticky 效果,默认值:true\n * 2. 使用时,父级必须要有高度,可置于Flex布局中\n * 3. 默认缓存激活的tab item(activeKey受控操作下缓存无效)\n * 当未设置activeKey,非受控操作时,组件内部会会话缓存activeKey,在刷新时,会显示上次的激活的tab item\n * 缓存Key:如果未设置 activeCacheKey,则使用默认的 cache key(tabs-wrapper-activeKey)\n * 缓存模式:会话缓存,在浏览器关闭后,会清除\n * ```\n */\nexport const TabsWrapper = (props: TabsWrapperProps) => {\n const { isSticky = true, isFixed = true, activeCacheKey, cancelActiveCache, ...otherProps } = props;\n // 是否受控操作\n const isControl = Object.prototype.hasOwnProperty.call(props, 'activeKey');\n const cacheKey = activeCacheKey || 'tabs-wrapper-activeKey';\n const isFixedNew = isUndefined(isFixed) ? isSticky : isFixed;\n\n const onChange = hooks.useCallbackRef((activeKey: string) => {\n if (cancelActiveCache !== true && !isControl) {\n sessionStorageCache.set(cacheKey, { activeKey });\n }\n otherProps.onChange?.(activeKey);\n });\n\n const defaultActiveKey = useMemo(() => {\n if (cancelActiveCache === true || isControl) {\n return props.defaultActiveKey;\n }\n const chcheActiveKey = sessionStorageCache.get(cacheKey)?.activeKey as string | undefined;\n return chcheActiveKey || otherProps.defaultActiveKey;\n }, [cacheKey, cancelActiveCache, isControl, otherProps.defaultActiveKey, props.defaultActiveKey]);\n\n const className = classNames({ 'tabs-fixed': isFixedNew }, otherProps.className);\n\n return (\n <Tabs {...otherProps} className={className} defaultActiveKey={defaultActiveKey} onChange={onChange} />\n );\n};\n"],"names":["TabsWrapper","props","_props$isSticky","isSticky","_props$isFixed","isFixed","activeCacheKey","cancelActiveCache","otherProps","_objectWithoutPropertiesLoose","_excluded","isControl","Object","prototype","hasOwnProperty","call","cacheKey","isFixedNew","_isUndefined","onChange","_hooks","useCallbackRef","activeKey","sessionStorageCache","set","defaultActiveKey","useMemo","_sessionStorageCache$","chcheActiveKey","get","className","_classNames","_jsx","Tabs","_extends"],"mappings":";scAkCaA,EAAc,SAAdA,EAAeC,GAC1B,IAAAC,EAA8FD,EAAtFE,SAAAA,EAAQD,SAAG,EAAA,KAAIA,EAAAE,EAAuEH,EAArEI,QAAAA,EAAOD,SAAG,EAAA,KAAIA,EAAEE,EAAqDL,EAArDK,eAAgBC,EAAqCN,EAArCM,kBAAsBC,EAAUC,EAAKR,EAAKS,GAEnG,IAAMC,EAAYC,OAAOC,UAAUC,eAAeC,KAAKd,EAAO,aAC9D,IAAMe,EAAWV,GAAkB,yBACnC,IAAMW,EAAaC,EAAYb,GAAWF,EAAWE,EAErD,IAAMc,EAAWC,EAAMC,gBAAe,SAACC,GACrC,GAAIf,IAAsB,OAASI,EAAW,CAC5CY,EAAoBC,IAAIR,EAAU,CAAEM,UAAAA,GACtC,CACAd,EAAWW,UAAXX,UAAAA,EAAAA,EAAWW,SAAWG,EACxB,IAEA,IAAMG,EAAmBC,GAAQ,WAAM,IAAAC,EACrC,GAAIpB,IAAsB,MAAQI,EAAW,CAC3C,OAAOV,EAAMwB,gBACf,CACA,IAAMG,GAAcD,EAAGJ,EAAoBM,IAAIb,KAAxBW,UAAAA,EAAAA,EAAmCL,UAC1D,OAAOM,GAAkBpB,EAAWiB,gBACtC,GAAG,CAACT,EAAUT,EAAmBI,EAAWH,EAAWiB,iBAAkBxB,EAAMwB,mBAE/E,IAAMK,EAAYC,EAAW,CAAE,aAAcd,GAAcT,EAAWsB,WAEtE,OACEE,EAACC,EAAIC,KAAK1B,EAAU,CAAEsB,UAAWA,EAAWL,iBAAkBA,EAAkBN,SAAUA,IAE9F"}
@@ -9,5 +9,5 @@ import './../input-search-wrapper/index.css';
9
9
  import './../request-status/index.css';
10
10
  import './index.css';
11
11
  /*! @flatjs/forge MIT @flatbiz/antd */
12
- import e from"@ant-design/icons/es/icons/CaretDownFilled";import r from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{extend as n}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{_ as l,a as u}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as s}from"@dimjs/model";import{treeToArray as o,treeToTiledArray as c,treeLeafParentsArray as d,isUndefinedOrNull as f,treeFilter as v}from"@flatbiz/utils";import{Tree as m,Button as p,message as h}from"antd";import{forwardRef as g,useState as b,useMemo as y,useRef as L,useImperativeHandle as C,Fragment as w,isValidElement as j}from"react";import{a as q}from"../button-operate-794050a3.js";import{D as R}from"../dropdown-menu-wrapper-bf621188.js";import{fbaHooks as k}from"../fba-hooks/index.js";import{I as N}from"../input-search-wrapper-10d4a9b9.js";import{R as S}from"../request-status-03fc60e2.js";import{Model as T}from"@dimjs/model-react";import{isObject as P}from"@dimjs/lang/cjs/is-object";import{dequal as A}from"dequal";import{jsxs as D,jsx as E}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper-698da5b1.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils-a4c7d94d.js";import"../use-responsive-point-21b8c601.js";var I={treeList:[],treeTiledArray:[],queryIsEmpty:false};var x={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=o(e.treeList,r.childrenName);e.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function e(r){return function(e){var t=o(e.treeList,r.childrenName);var n=t.find((function(e){return e[r.valueName]===r.value}));if(n){if(a(r.appendList)&&r.appendList.length>0){n[r.childrenName]=r.appendList}else{n.isLeaf=true}}e.treeTiledArray=o(e.treeList,r.childrenName)}}},state:I};var O={};var V=function e(r){if(!O[r]){O[r]=T(x)}return O[r]};var K=function e(r,t,a){var n=c(t,a);return d(r,n,true,{value:"value",parentValue:"parentValue"})};var F=function e(r,t){var n=f(r)?[]:r;n=a(n)?n:[n];n=n.map((function(e){if(P(e))return e[t.value];return e}));return n};var _=function e(r,t){var a=F(r,t);var n={};a.forEach((function(e){n[e]=true}));return n};var M=function e(r,t,a){if(f(r)&&f(t))return true;var n=_(r,a);var i=_(t,a);var l=A(n,i);return l};var U=["serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType"];var z=g((function(o,d){var g=o.serviceConfig,T=o.effectDependencyList,P=o.selectorTreeList,A=o.value,I=o.onChange,x=o.modelKey,O=o.checkableResponseParentNode,_=O===void 0?true:O,z=o.checkable,B=o.onSelectorTreeListChange,W=o.treeItemDataAdapter,Y=o.searchValue,H=o.showSearch,G=o.searchPlaceholder,J=o.requestMessageConfig,Q=o.labelInValueFieldNames,X=o.labelInValue,Z=o.disabledCanUse,$=o.menuLayoutType,ee=o.menuTriggerType,re=l(o,U);var te=o.hasOwnProperty("selectorTreeList");var ae=g||{};var ne=T||[];var ie=b(),le=ie[0],ue=ie[1];var se=V(x).useStore(),oe=se[0],ce=se[1];var de=k.useSafeState(false),fe=de[0],ve=de[1];var me="request-progress-"+o.modelKey;var pe=y((function(){return u({label:"label",value:"value",children:"children"},o.fieldNames)}),[o.fieldNames]);var he=L();var ge=$===undefined?"fold":$;var be=ee===undefined?"click":ee;var ye=z===true;var Le=y((function(){return u({label:"label",value:"value"},Q)}),[Q]);var Ce=b(),we=Ce[0],je=Ce[1];var qe=L(true);var Re=b(0),ke=Re[0],Ne=Re[1];var Se=L();var Te=y((function(){var e=F(A,Le);return e}),[Le,A]);k.useEffectCustom((function(){if(f(A)&&qe.current||oe.treeList.length==0)return;qe.current=false;if(!M(A,Se.current,Le)){console.log("modelKey:"+x+" TreeWrapper key refresh",A,Se.current);Se.current=ye?Te:Te[0];var e=Ie(Te,true);ue(Array.from(new Set(e)));he.current=Te;Ne(Date.now())}}),[A,oe.treeList]);var Pe=function e(r){return r===""||f(r)};var Ae=function e(r){var t=ae.onRequestResultAdapter?ae.onRequestResultAdapter(r):r;return t};k.useEffectCustom((function(){je(Y)}),[Y]);var De=i.useCallbackRef((function(){return new Promise((function(e,r){var t,a,i,l,u;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{ve(false);void h.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!ae.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=ae.requiredParamsKeys;a=n({},ae.params);if(t){i=t.find((function(e){return Pe(a[e])}));if(i){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return s()}catch(e){return o(e)}};var d=function(e){try{window[me]=false;ve(false);void ce.changeRequestStatus("request-error");return c()}catch(e){return o(e)}};try{ve(true);return Promise.resolve(ce.changeRequestStatus("request-progress")).then((function(e){try{window[me]=true;return Promise.resolve(ae.onRequest==null?void 0:ae.onRequest(a)).then((function(e){try{l=e;u=Ae(l);Ee(u||[]);ve(false);window[me]=false;return c()}catch(e){return d(e)}}),d)}catch(e){return d(e)}}),d)}catch(e){d(e)}}catch(e){o(e)}}))}));k.useEffectCustom((function(){if(te)return;if(Boolean(ne.length)){void De();return}var e=V(x).getState();if(e.requestStatus==="request-success"){return}if(!window[me]){void De();return}}),ne);k.useEffectCustom((function(){if(te){Ee(P||[])}}),[P]);var Ee=i.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&oe.treeList.length===0){void ce.changeRequestStatus("request-success");return}void ce.setTreeList({treeList:e||[],childrenName:pe.children});B==null?void 0:B(e)}));var Ie=i.useCallbackRef((function(e,r){var t=[];e.forEach((function(e){if(!r&&le!=null&&le.includes(e))return;var a=K(e,oe.treeList,pe);t=t.concat(a.map((function(e){return e.value})))}));return t}));i.useUpdateEffect((function(){if(we){var e=c(oe.treeList||[],pe);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(we||"")}));ue((function(e){var t=Ie(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{ue([])}}),[we]);C(d,(function(){return{onClearSelectorList:function e(){void ce.resetTreeList()},getTreeDataList:function e(){return oe.treeList}}}));var xe=i.useCallbackRef((function(e){ue(e)}));var Oe=i.useCallbackRef((function(e,r,t){Se.current=e;var n=f(r)?[]:a(r)?r:[r];if(f(e)){I==null?void 0:I(e,r,t);return}if(X){var i=Le.label;var l=Le.value;var u=n.map((function(e){var r;return r={},r[i]=e[pe.label],r[l]=e[pe.value],r}));if(a(e)){I==null?void 0:I(u,n,t)}else{I==null?void 0:I(u[0],n[0],t)}}else{if(a(e)){I==null?void 0:I(e,n,t)}else{I==null?void 0:I(e,n[0],t)}}}));var Ve=i.useCallbackRef((function(e,r){var t=o.checkStrictly?e.checked:e;t=f(e)?[]:e;t=a(t)?t:[t];var n=[];var i=[];var l=[];var u=[];t.forEach((function(e){var r=oe.treeTiledArray.find((function(r){return r[pe.value]===e}));if(!r)return;var t=r==null?void 0:r[pe.children];if(!a(t)||t.length===0){n.push(r);i.push(r[pe.value])}l.push(r);u.push(r[pe.value])}));if(z){ue((function(e){var r=Ie(i).concat(e||[]);return Array.from(new Set(r))}));if(!_&&!o.checkStrictly){Oe(i,n,l)}else{Oe(u,l,l)}}else{if(t[0]){var s=l.find((function(e){return e[pe.value]===t[0]}));Oe(t[0],s,[s])}else{var c=r.node[pe.value];var d=oe.treeTiledArray.find((function(e){return e[pe.value]===c}));Oe(undefined,d,[d])}}}));var Ke=i.useCallbackRef((function(e){return W==null?void 0:W(e)}));var Fe=y((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var n;var i=(Ke==null?void 0:Ke(r))||r;var l=Z?undefined:i.disabled;var s=i[pe.label];var o;if(we){var c=s.indexOf(we);var d=s.substring(0,c);var f=s.slice(c+we.length);o=c>-1?D("span",{className:t({"v-tree-item-disabled":i.disabled}),children:[d,E("span",{className:"site-tree-search-value",children:we}),f]}):null}if(!o){o=E("span",{className:t({"v-tree-item-disabled":i.disabled}),children:s})}var v=i[pe.children];return u({},i,(n={disabled:l},n[pe.label]=o,n._treeItemName=s,n._disabled=i.disabled,n[pe.children]=a(v)&&v.length>0?e(v):undefined,n))}))};var r=s(oe.treeList||[]);if(we){return e(v(s(oe.treeList||[]),(function(e){var r=e.label.toLowerCase();return r.indexOf(we.toLowerCase())>=0})))}return e(r)}),[oe.treeList,Ke,Z,pe.label,pe.children,we]);var _e=i.useCallbackRef((function(e){return new Promise((function(r,t){return new Promise((function(a,n){var i,l,u,s;if(e[pe.children]){r();return a()}var c=function(){try{return a()}catch(e){return n(e)}};var d=function(e){try{void h.error(e.message||"数据加载异常...");t();return c()}catch(e){return n(e)}};try{return Promise.resolve((i=o.loadDataServiceConfig)==null?void 0:i.onRequest==null?void 0:i.onRequest((l=o.loadDataServiceConfig)==null?void 0:l.getParams==null?void 0:l.getParams(e))).then((function(t){try{u=t;s=ae.onRequestResultAdapter?ae.onRequestResultAdapter(u):u;void ce.treeListAppendChildren({value:e[pe.value],appendList:s,childrenName:pe.children,valueName:pe.value}).then((function(e){Ee(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Me=i.useCallbackRef((function(e){var r=e==null?void 0:e[pe.children];var t=o.loadDataFlag;var a=t?!e.isLeaf:false;var n=r&&r.length>0||a;return!n}));var Ue=i.useCallbackRef((function(e){var a,n;var i=e._treeItemName||e[pe.label];if(ge==="fold"){var l;var s=[];if((l=o.menuOptions)!=null&&l.fold){var c,d,f;s=((c=o.menuOptions)==null?void 0:(d=c[ge])==null?void 0:d.call(c,u({},e,(f={},f[pe.label]=i,f))))||[]}else{var v;s=(o.getMenuOptions==null?void 0:o.getMenuOptions(u({},e,(v={},v[pe.label]=i,v))))||[]}return D(w,{children:[E("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),s.length>0&&E(R,{menuList:s,children:E(r,{})})]})}var m=(a=o.menuOptions)==null?void 0:a.tile==null?void 0:a.tile(u({},e,(n={},n[pe.label]=i,n)));return D(w,{children:[E("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),m?E(q,u({},m,{gap:5,className:t("tree-item-title-operate",m.className)})):null]})}));var ze=i.useDebounceCallback((function(e){je(e);o.onSearchValueChange==null?void 0:o.onSearchValueChange(e)}),300);var Be=i.useCallbackRef((function(e){ze(e.target.value)}));var We=i.useCallbackRef((function(e){if(!o.icon)return null;if(j(o.icon))return o.icon;var r=Me(e.data);return o.icon(u({},e,{isParent:!r,isLeaf:r}))}));var Ye=y((function(){return{title:pe.label,key:pe.value,children:pe.children}}),[pe]);var He=Fe.length>0&&oe.requestStatus!=="request-error";var Ge=u({showLine:{showLeafIcon:false},titleRender:Ue,blockNode:true,switcherIcon:E(e,{})},re,{fieldNames:Ye,expandedKeys:le,treeData:Fe,onExpand:xe,loadData:o.loadDataFlag?_e:undefined,style:u({width:"100%"},re.style),icon:We});var Je={onCheck:Ve,checkable:z,defaultCheckedKeys:he.current};var Qe={onSelect:Ve,multiple:false,defaultSelectedKeys:he.current};var Xe=z?Je:Qe;var Ze=t("v-tree-wrapper","v-tree-wrapper-menu-"+be);var $e=oe.treeList.length>0&&!He&&we;return D("div",{className:Ze,children:[!!H&&D("div",{className:"v-tree-wrapper-search-area",children:[E(N,{className:"v-tree-wrapper-search",placeholder:G,onChange:Be,value:Y,allowClear:true}),!!o.searchExtraElement&&E("span",{className:"v-tree-wrapper-search-extra",children:o.searchExtraElement})]}),He?E(m,u({},Xe,Ge,{className:"v-tree-wrapper-tree"}),ke):E(S,{status:oe.requestStatus,loading:fe,messageConfig:u({"request-success":$e?"搜索结果为空":"暂无数据"},J),errorButton:E(p,{type:"primary",onClick:De,children:"重新获取数据"})})]})}));z.defaultProps={disabledCanUse:true};export{z as TreeWrapper};
12
+ import e from"@ant-design/icons/es/icons/CaretDownFilled";import r from"@ant-design/icons/es/icons/MoreOutlined";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{extend as n}from"@dimjs/utils/cjs/extend";import{hooks as i}from"@wove/react/cjs/hooks";import{_ as l,a as u}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as s}from"@dimjs/model";import{treeToArray as o,treeToTiledArray as c,treeLeafParentsArray as d,isUndefinedOrNull as f,treeFilter as v}from"@flatbiz/utils";import{Tree as m,Button as p,message as h}from"antd";import{forwardRef as g,useState as b,useMemo as y,useRef as L,useImperativeHandle as C,Fragment as w,isValidElement as j}from"react";import{a as q}from"../button-operate-794050a3.js";import{D as R}from"../dropdown-menu-wrapper-bf621188.js";import{fbaHooks as k}from"../fba-hooks/index.js";import{I as N}from"../input-search-wrapper-10d4a9b9.js";import{R as S}from"../request-status-03fc60e2.js";import{Model as T}from"@dimjs/model-react";import{isObject as P}from"@dimjs/lang/cjs/is-object";import{dequal as A}from"dequal";import{jsxs as D,jsx as E}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-undefined";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-promise";import"../button-wrapper-698da5b1.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"../config-provider-wrapper-dfe8f592.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-utils-a4c7d94d.js";import"../use-responsive-point-21b8c601.js";var I={treeList:[],treeTiledArray:[],queryIsEmpty:false};var x={actions:{setTreeList:function e(r){return function(e){e.treeList=r.treeList||[];e.treeTiledArray=o(e.treeList,r.childrenName);e.requestStatus="request-success"}},resetTreeList:function e(){return function(e){e.treeList=[]}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r;if(r==="request-error"){e.treeList=[]}}},treeListAppendChildren:function e(r){return function(e){var t=o(e.treeList,r.childrenName);var n=t.find((function(e){return e[r.valueName]===r.value}));if(n){if(a(r.appendList)&&r.appendList.length>0){n[r.childrenName]=r.appendList}else{n.isLeaf=true}}e.treeTiledArray=o(e.treeList,r.childrenName)}}},state:I};var O={};var V=function e(r){if(!O[r]){O[r]=T(x)}return O[r]};var K=function e(r,t,a){var n=c(t,a);return d(r,n,true,{value:"value",parentValue:"parentValue"})};var F=function e(r,t){var n=f(r)?[]:r;n=a(n)?n:[n];n=n.map((function(e){if(P(e))return e[t.value];return e}));return n};var _=function e(r,t){var a=F(r,t);var n={};a.forEach((function(e){n[e]=true}));return n};var M=function e(r,t,a){if(f(r)&&f(t))return true;var n=_(r,a);var i=_(t,a);var l=A(n,i);return l};var U=["serviceConfig","effectDependencyList","selectorTreeList","value","onChange","modelKey","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValueFieldNames","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType"];var z=g((function(o,d){var g=o.serviceConfig,T=o.effectDependencyList,P=o.selectorTreeList,A=o.value,I=o.onChange,x=o.modelKey,O=o.checkableResponseParentNode,_=O===void 0?true:O,z=o.checkable,B=o.onSelectorTreeListChange,W=o.treeItemDataAdapter,Y=o.searchValue,H=o.showSearch,G=o.searchPlaceholder,J=o.requestMessageConfig,Q=o.labelInValueFieldNames,X=o.labelInValue,Z=o.disabledCanUse,$=o.menuLayoutType,ee=o.menuTriggerType,re=l(o,U);var te=o.hasOwnProperty("selectorTreeList");var ae=g||{};var ne=T||[];var ie=b(),le=ie[0],ue=ie[1];var se=V(x).useStore(),oe=se[0],ce=se[1];var de=k.useSafeState(false),fe=de[0],ve=de[1];var me="request-progress-"+o.modelKey;var pe=y((function(){return u({label:"label",value:"value",children:"children"},o.fieldNames)}),[o.fieldNames]);var he=L();var ge=$===undefined?"fold":$;var be=ee===undefined?"click":ee;var ye=z===true;var Le=y((function(){return u({label:"label",value:"value"},Q)}),[Q]);var Ce=b(),we=Ce[0],je=Ce[1];var qe=L(true);var Re=b(0),ke=Re[0],Ne=Re[1];var Se=L();var Te=y((function(){var e=F(A,Le);return e}),[Le,A]);k.useEffectCustom((function(){if(f(A)&&qe.current||oe.treeList.length==0)return;qe.current=false;if(!M(A,Se.current,Le)){console.log("modelKey:"+x+" TreeWrapper key refresh",A,Se.current);Se.current=ye?Te:Te[0];var e=Ie(Te,true);ue(Array.from(new Set(e)));he.current=Te;Ne(Date.now())}}),[A,oe.treeList]);var Pe=function e(r){return r===""||f(r)};var Ae=function e(r){var t=ae.onRequestResultAdapter?ae.onRequestResultAdapter(r):r;return t};k.useEffectCustom((function(){je(Y)}),[Y]);var De=i.useCallbackRef((function(){return new Promise((function(e,r){var t,a,i,l,u;var s=function(){try{return e()}catch(e){return r(e)}};var o=function(e){try{ve(false);void h.error(e.message||"数据查询异常...");return s()}catch(e){return r(e)}};try{if(!ae.onRequest){throw new Error("onRequest 调用接口服务不能为空")}t=ae.requiredParamsKeys;a=n({},ae.params);if(t){i=t.find((function(e){return Pe(a[e])}));if(i){console.warn("TreeWrapper组件:参数:"+t.join("、")+"不能为空");return e()}}var c=function(){try{return s()}catch(e){return o(e)}};var d=function(e){try{window[me]=false;ve(false);void ce.changeRequestStatus("request-error");return c()}catch(e){return o(e)}};try{ve(true);return Promise.resolve(ce.changeRequestStatus("request-progress")).then((function(e){try{window[me]=true;return Promise.resolve(ae.onRequest==null?void 0:ae.onRequest(a)).then((function(e){try{l=e;u=Ae(l);Ee(u||[]);ve(false);window[me]=false;return c()}catch(e){return d(e)}}),d)}catch(e){return d(e)}}),d)}catch(e){d(e)}}catch(e){o(e)}}))}));k.useEffectCustom((function(){if(te)return;if(Boolean(ne.length)){void De();return}var e=V(x).getState();if(e.requestStatus==="request-success"){return}if(!window[me]){void De();return}}),ne);k.useEffectCustom((function(){if(te){Ee(P||[])}}),[P]);var Ee=i.useCallbackRef((function(e){if((e==null?void 0:e.length)===0&&oe.treeList.length===0){void ce.changeRequestStatus("request-success");return}void ce.setTreeList({treeList:e||[],childrenName:pe.children});B==null?void 0:B(e)}));var Ie=i.useCallbackRef((function(e,r){var t=[];e.forEach((function(e){if(!r&&le!=null&&le.includes(e))return;var a=K(e,oe.treeList,pe);t=t.concat(a.map((function(e){return e.value})))}));return t}));i.useUpdateEffect((function(){if(we){var e=c(oe.treeList||[],pe);var r=e.filter((function(e){var r;return(r=e.label)==null?void 0:r.includes(we||"")}));ue((function(e){var t=Ie(r.map((function(e){return e.value}))).concat(e||[]);return Array.from(new Set(t))}))}else{ue([])}}),[we]);C(d,(function(){return{onClearSelectorList:function e(){void ce.resetTreeList()},getTreeDataList:function e(){return oe.treeList}}}));var xe=i.useCallbackRef((function(e){ue(e)}));var Oe=i.useCallbackRef((function(e,r,t){Se.current=e;var n=f(r)?[]:a(r)?r:[r];if(f(e)){I==null?void 0:I(e,r,t);return}if(X){var i=Le.label;var l=Le.value;var u=n.map((function(e){var r;return r={},r[i]=e[pe.label],r[l]=e[pe.value],r}));if(a(e)){I==null?void 0:I(u,n,t)}else{I==null?void 0:I(u[0],n[0],t)}}else{if(a(e)){I==null?void 0:I(e,n,t)}else{I==null?void 0:I(e,n[0],t)}}}));var Ve=i.useCallbackRef((function(e,r){var t=o.checkStrictly?e.checked:e;t=f(e)?[]:e;t=a(t)?t:[t];var n=[];var i=[];var l=[];var u=[];t.forEach((function(e){var r=oe.treeTiledArray.find((function(r){return r[pe.value]===e}));if(!r)return;var t=r==null?void 0:r[pe.children];if(!a(t)||t.length===0){n.push(r);i.push(r[pe.value])}l.push(r);u.push(r[pe.value])}));if(z){ue((function(e){var r=Ie(i).concat(e||[]);return Array.from(new Set(r))}));if(!_&&!o.checkStrictly){Oe(i,n,l)}else{Oe(u,l,l)}}else{if(t[0]){var s=l.find((function(e){return e[pe.value]===t[0]}));Oe(t[0],s,[s])}else{var c=r.node[pe.value];var d=oe.treeTiledArray.find((function(e){return e[pe.value]===c}));Oe(undefined,d,[d])}}}));var Ke=i.useCallbackRef((function(e){return W==null?void 0:W(e)}));var Fe=y((function(){var e=function e(r){return r==null?void 0:r.map((function(r){var n;var i=(Ke==null?void 0:Ke(r))||r;var l=Z?undefined:i.disabled;var s=i[pe.label];var o;if(we){var c=s.indexOf(we);var d=s.substring(0,c);var f=s.slice(c+we.length);o=c>-1?D("span",{className:t({"v-tree-item-disabled":i.disabled}),children:[d,E("span",{className:"site-tree-search-value",children:we}),f]}):null}if(!o){o=E("span",{className:t({"v-tree-item-disabled":i.disabled}),children:s})}var v=i[pe.children];return u({},i,(n={disabled:l},n[pe.label]=o,n._treeItemName=s,n._disabled=i.disabled,n[pe.children]=a(v)&&v.length>0?e(v):undefined,n))}))};var r=s(oe.treeList||[]);if(we){return e(v(s(oe.treeList||[]),(function(e){var r;var t=(r=e[pe.label])==null?void 0:r.toLowerCase();return t.indexOf(we.toLowerCase())>=0})))}return e(r)}),[oe.treeList,Ke,Z,pe.label,pe.children,we]);var _e=i.useCallbackRef((function(e){return new Promise((function(r,t){return new Promise((function(a,n){var i,l,u,s;if(e[pe.children]){r();return a()}var c=function(){try{return a()}catch(e){return n(e)}};var d=function(e){try{void h.error(e.message||"数据加载异常...");t();return c()}catch(e){return n(e)}};try{return Promise.resolve((i=o.loadDataServiceConfig)==null?void 0:i.onRequest==null?void 0:i.onRequest((l=o.loadDataServiceConfig)==null?void 0:l.getParams==null?void 0:l.getParams(e))).then((function(t){try{u=t;s=ae.onRequestResultAdapter?ae.onRequestResultAdapter(u):u;void ce.treeListAppendChildren({value:e[pe.value],appendList:s,childrenName:pe.children,valueName:pe.value}).then((function(e){Ee(e.treeList);r()}));return c()}catch(e){return d(e)}}),d)}catch(e){d(e)}}))}))}));var Me=i.useCallbackRef((function(e){var r=e==null?void 0:e[pe.children];var t=o.loadDataFlag;var a=t?!e.isLeaf:false;var n=r&&r.length>0||a;return!n}));var Ue=i.useCallbackRef((function(e){var a,n;var i=e._treeItemName||e[pe.label];if(ge==="fold"){var l;var s=[];if((l=o.menuOptions)!=null&&l.fold){var c,d,f;s=((c=o.menuOptions)==null?void 0:(d=c[ge])==null?void 0:d.call(c,u({},e,(f={},f[pe.label]=i,f))))||[]}else{var v;s=(o.getMenuOptions==null?void 0:o.getMenuOptions(u({},e,(v={},v[pe.label]=i,v))))||[]}return D(w,{children:[E("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),s.length>0&&E(R,{menuList:s,children:E(r,{})})]})}var m=(a=o.menuOptions)==null?void 0:a.tile==null?void 0:a.tile(u({},e,(n={},n[pe.label]=i,n)));return D(w,{children:[E("span",{className:"tree-item-title",children:e==null?void 0:e[pe.label]}),m?E(q,u({},m,{gap:5,className:t("tree-item-title-operate",m.className)})):null]})}));var ze=i.useDebounceCallback((function(e){je(e);o.onSearchValueChange==null?void 0:o.onSearchValueChange(e)}),300);var Be=i.useCallbackRef((function(e){ze(e.target.value)}));var We=i.useCallbackRef((function(e){if(!o.icon)return null;if(j(o.icon))return o.icon;var r=Me(e.data);return o.icon(u({},e,{isParent:!r,isLeaf:r}))}));var Ye=y((function(){return{title:pe.label,key:pe.value,children:pe.children}}),[pe]);var He=Fe.length>0&&oe.requestStatus!=="request-error";var Ge=u({showLine:{showLeafIcon:false},titleRender:Ue,blockNode:true,switcherIcon:E(e,{})},re,{fieldNames:Ye,expandedKeys:le,treeData:Fe,onExpand:xe,loadData:o.loadDataFlag?_e:undefined,style:u({width:"100%"},re.style),icon:We});var Je={onCheck:Ve,checkable:z,defaultCheckedKeys:he.current};var Qe={onSelect:Ve,multiple:false,defaultSelectedKeys:he.current};var Xe=z?Je:Qe;var Ze=t("v-tree-wrapper","v-tree-wrapper-menu-"+be);var $e=oe.treeList.length>0&&!He&&we;return D("div",{className:Ze,children:[!!H&&D("div",{className:"v-tree-wrapper-search-area",children:[E(N,{className:"v-tree-wrapper-search",placeholder:G,onChange:Be,value:Y,allowClear:true}),!!o.searchExtraElement&&E("span",{className:"v-tree-wrapper-search-extra",children:o.searchExtraElement})]}),He?E(m,u({},Xe,Ge,{className:"v-tree-wrapper-tree"}),ke):E(S,{status:oe.requestStatus,loading:fe,messageConfig:u({"request-success":$e?"搜索结果为空":"暂无数据"},J),errorButton:E(p,{type:"primary",onClick:De,children:"重新获取数据"})})]})}));z.defaultProps={disabledCanUse:true};export{z as TreeWrapper};
13
13
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, LabelValueItem } from '@flatbiz/utils';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: any,\n value2: any,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { isUndefinedOrNull, TAny, TPlainObject, treeToTiledArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Tree, TreeProps } from 'antd';\nimport {\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ButtonOperate, ButtonOperateItem, ButtonOperateProps } from '../button-operate';\nimport { DropdownMenuItem, DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\n\nimport { treeFilter } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, treeWrapperValueDeepEqual } from './utils';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\ntype TreeLoadDataServiceConfig = {\n getParams: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'expandedKeys'\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'defaultCheckedKeys'\n | 'defaultSelectedKeys'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n> & {\n modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /** 菜单结构类型 tile/平铺 fold/折叠;默认:fold */\n menuLayoutType?: 'tile' | 'fold';\n /** 菜单触发类型,默认:click */\n menuTriggerType?: 'click' | 'hover';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期,请使用 menuOptions\n * @returns\n * ```\n * menuLayoutType = tile 无效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n\n /**\n * 根据 menuLayoutType 类型赋值\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n icon?: (data: { isParent: boolean; isLeaf: boolean }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n ...otherProps\n } = props;\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n // 必须是数组格式\n const defaultValueRef = useRef<Array<string | number>>();\n const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n\n const isMultiple = checkable === true;\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<string>();\n\n const isFirstUseValueRef = useRef(true);\n const [refreshKey, setRefreshKey] = useState(0);\n const innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if ((isUndefinedOrNull(value) && isFirstUseValueRef.current) || state.treeList.length == 0) return;\n isFirstUseValueRef.current = false;\n if (!treeWrapperValueDeepEqual(value, innerOperateValueRef.current, labelInValueFieldNamesMerge)) {\n console.log(`modelKey:${modelKey} TreeWrapper key refresh`, value, innerOperateValueRef.current);\n innerOperateValueRef.current = isMultiple ? valueList : valueList[0];\n // 重新计算 expandedKeys\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(expandedKeys)));\n defaultValueRef.current = valueList;\n setRefreshKey(Date.now());\n }\n }, [value, state.treeList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n onChangeSelectorList(respData || []);\n setLoading(false);\n window[requestPreKey] = false;\n } catch (error) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus('request-error');\n }\n } catch (error) {\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus('request-success');\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = hooks.useCallbackRef((valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n });\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onRespChange = hooks.useCallbackRef((selectedKey, selectInfo?, selectAllList?) => {\n innerOperateValueRef.current = selectedKey;\n const selectList = isUndefinedOrNull(selectInfo) ? [] : isArray(selectInfo) ? selectInfo : [selectInfo];\n if (isUndefinedOrNull(selectedKey)) {\n onChange?.(selectedKey, selectInfo, selectAllList);\n return;\n }\n if (labelInValue) {\n const lvLabel = labelInValueFieldNamesMerge.label;\n const lvValue = labelInValueFieldNamesMerge.value;\n const labelInValueList = selectList.map((item) => {\n return {\n [lvLabel]: item[fieldNames.label],\n [lvValue]: item[fieldNames.value],\n };\n });\n if (isArray(selectedKey)) {\n onChange?.(labelInValueList, selectList, selectAllList);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode]);\n } else {\n const nodeValue = operateInfo.node[fieldNames.value];\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === nodeValue);\n onRespChange(undefined, target, [target]);\n }\n }\n });\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = adapterItem[fieldNames.label] as string;\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom) {\n titleDom = (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>{strTitle}</span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]: isArray(children) && children.length > 0 ? loop(children) : undefined,\n };\n });\n const list = cloneState(state.treeList || []);\n if (treeSearchValue) {\n return loop(\n treeFilter(cloneState(state.treeList || []), (node) => {\n const value = node.label.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n }),\n );\n }\n return loop(list);\n }, [\n state.treeList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">{nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions}>\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n return (\n <Fragment>\n <span className=\"tree-item-title\">{nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n {...menuOptions}\n gap={5}\n className={classNames('tree-item-title-operate', menuOptions.className)}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef((e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n });\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return { title: fieldNames.label, key: fieldNames.value, children: fieldNames.children };\n }, [fieldNames]);\n\n const showTree = treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n ...otherProps,\n fieldNames: treeFieldNames,\n expandedKeys: treeExpandedKeys,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%', ...otherProps.style },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n // 必须是数组格式\n defaultCheckedKeys: defaultValueRef.current,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n // 必须是数组格式\n defaultSelectedKeys: defaultValueRef.current,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`);\n const isSearchEmpty = state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName}>\n {/* {showTree && <Spin spinning={loading} className=\"v-tree-wrapper-loading\"></Spin>} */}\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\">\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">{props.searchExtraElement}</span>\n )}\n </div>\n )}\n {showTree ? (\n <Tree key={refreshKey} {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\n};\n"],"names":["defaultState","treeList","treeTiledArray","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","requestStatus","resetTreeList","changeRequestStatus","treeListAppendChildren","array","target","find","item","valueName","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","array2map","list","forEach","treeWrapperValueDeepEqual","value1","value2","object1","object2","diff","dequal","TreeWrapper","forwardRef","props","ref","serviceConfig","effectDependencyList","selectorTreeList","onChange","modelKey","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","children","defaultValueRef","useRef","menuLayoutTypeNew","undefined","menuTriggerTypeNew","isMultiple","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","isFirstUseValueRef","_useState3","refreshKey","setRefreshKey","innerOperateValueRef","valueList","useEffectCustom","current","console","log","expandedKeys","getTreeExpandedKeys","Array","from","Set","Date","now","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","Boolean","allState","getState","dataList","refresh","newTreeExpandedKeys","includes","targetList","concat","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","getTreeDataList","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","operateInfo","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","node","treeItemDataAdapterHandle","dataItem","treeData","loop","_extends2","adapterItem","disabled","strTitle","titleDom","index","indexOf","beforeStr","substring","afterStr","slice","_jsxs","className","_classNames","_jsx","_treeItemName","_disabled","cloneState","treeFilter","toLowerCase","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_props$menuOptions3","_extends5","stringLabel","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends3","call","_extends4","getMenuOptions","Fragment","DropdownMenuWrapper","menuList","_MoreOutlined","tile","ButtonOperate","gap","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","style","width","checkedProps","onCheck","defaultCheckedKeys","selectedProps","onSelect","multiple","defaultSelectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/tree-wrapper/model.ts","@flatbiz/antd/src/tree-wrapper/utils.ts","@flatbiz/antd/src/tree-wrapper/tree-wrapper.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TPlainObject, treeToArray, TSetDefaultDefined } from '@flatbiz/utils';\nimport { TreeProps } from 'antd';\nimport { TRequestStatus } from '../request-status';\n\nexport type ModelState = {\n treeList: TSetDefaultDefined<TreeProps['treeData'], []>;\n treeTiledArray: TPlainObject[];\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setTreeList: {\n treeList: ModelState['treeList'];\n childrenName: string;\n };\n resetTreeList: void;\n changeRequestStatus: TRequestStatus;\n treeListAppendChildren: {\n value: string | number;\n appendList: TPlainObject[];\n childrenName: string;\n valueName: string;\n };\n};\n\nconst defaultState: ModelState = {\n treeList: [],\n treeTiledArray: [],\n queryIsEmpty: false,\n};\n\nconst TreeWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setTreeList: (params) => {\n return (state) => {\n state.treeList = params.treeList || [];\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n state.requestStatus = 'request-success';\n };\n },\n resetTreeList: () => {\n return (state) => {\n state.treeList = [];\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n if (params === 'request-error') {\n state.treeList = [];\n }\n };\n },\n treeListAppendChildren: (params) => {\n return (state) => {\n const array = treeToArray(state.treeList, params.childrenName);\n const target = array.find((item) => item[params.valueName] === params.value);\n if (target) {\n if (isArray(params.appendList) && params.appendList.length > 0) {\n target[params.childrenName] = params.appendList;\n } else {\n target.isLeaf = true;\n }\n }\n state.treeTiledArray = treeToArray(state.treeList, params.childrenName);\n };\n },\n },\n state: defaultState,\n};\n\nconst treeWrapperModels: Record<string, API<ModelType<ModelState, ModelActionParams, any>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeWrapperModel('key值').useStore();\n * ```\n */\nexport const treeWrapperModel = (key: string) => {\n if (!treeWrapperModels[key]) {\n treeWrapperModels[key] = Model(TreeWrapperModel);\n }\n return treeWrapperModels[key];\n};\n","import { TPlainObject, treeLeafParentsArray, treeToTiledArray } from '@flatbiz/utils';\n\nexport const getExpandedKeys = (\n value: string | number,\n treeList: TPlainObject[],\n fieldNames?: { label?: string; value?: string; children?: string },\n) => {\n const tiledArray = treeToTiledArray(treeList, fieldNames);\n return treeLeafParentsArray(value, tiledArray, true, { value: 'value', parentValue: 'parentValue' });\n};\n\nimport { isArray, isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, LabelValueItem } from '@flatbiz/utils';\nimport { dequal } from 'dequal';\n\nexport const getVauleList = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n let tempList = isUndefinedOrNull(data) ? [] : data;\n tempList = isArray(tempList) ? tempList : [tempList];\n tempList = tempList.map((item) => {\n if (isObject(item)) return item[labelInValueFieldNames.value];\n return item;\n });\n return tempList as Array<string | number>;\n};\n\nexport const array2map = (data, labelInValueFieldNames: LabelValueItem<string | number>) => {\n const list = getVauleList(data, labelInValueFieldNames);\n const map = {};\n list.forEach((item) => {\n map[item] = true;\n });\n return map;\n};\n\n/**\n * value的类型包括\n * string、number、\n * Array<string | number>、{ label: string, value: string | nuber }、\n * Array<{ label: string, value: string | nuber }>\n * 将数组转成对象,深度比较时不用考虑顺序问题\n * @param value1\n * @param value2\n * @returns\n */\nexport const treeWrapperValueDeepEqual = (\n value1: any,\n value2: any,\n labelInValueFieldNames: LabelValueItem<string | number>,\n) => {\n if (isUndefinedOrNull(value1) && isUndefinedOrNull(value2)) return true;\n const object1 = array2map(value1, labelInValueFieldNames);\n const object2 = array2map(value2, labelInValueFieldNames);\n const diff = dequal(object1, object2);\n return diff;\n};\n","import { CaretDownFilled, MoreOutlined } from '@ant-design/icons';\nimport { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, extend } from '@dimjs/utils';\n\nimport { isUndefinedOrNull, TAny, TPlainObject, treeToTiledArray } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Tree, TreeProps } from 'antd';\nimport {\n DependencyList,\n forwardRef,\n Fragment,\n isValidElement,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ButtonOperate, ButtonOperateItem, ButtonOperateProps } from '../button-operate';\nimport { DropdownMenuItem, DropdownMenuWrapper } from '../dropdown-menu-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { InputSearchWrapper } from '../input-search-wrapper';\nimport { RequestStatus, TRequestStatusProps } from '../request-status';\n\nimport { treeFilter } from '@flatbiz/utils';\nimport { treeWrapperModel } from './model';\nimport './style.less';\nimport { getExpandedKeys, getVauleList, treeWrapperValueDeepEqual } from './utils';\n\ntype TreeWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\ntype TreeLoadDataServiceConfig = {\n getParams: (dataItem: TPlainObject) => TPlainObject;\n onRequest: (params: TPlainObject) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeWrapperMenuItem = {\n title: string;\n onClick: (dataItem: TPlainObject, event) => void;\n icon?: ReactElement;\n};\n\nexport type TreeWrapperProps = Omit<\n TreeProps,\n | 'expandedKeys'\n | 'treeData'\n | 'onExpand'\n | 'selectedKeys'\n | 'checkedKeys'\n | 'onCheck'\n | 'onSelect'\n | 'defaultCheckedKeys'\n | 'defaultSelectedKeys'\n | 'fieldNames'\n | 'multiple'\n | 'loadData'\n | 'icon'\n> & {\n modelKey: string;\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`selectorTreeList`后无效果\n */\n serviceConfig?: TreeServiceConfig;\n loadDataServiceConfig?: TreeLoadDataServiceConfig;\n /**\n * 当设置selectorTreeList后,serviceConfig将失效\n * ```\n * 1. 不支持异步数据,异步使用serviceConfig方式\n * ```\n */\n selectorTreeList?: TPlainObject[];\n /**\n * 通过服务获取数据后回调,当设置`selectorList`后无效果\n */\n onSelectorTreeListChange?: (dataList: TPlainObject[]) => void;\n onChange?: (\n selectedKey?: TreeWrapperValue,\n operateNodeData?: TPlainObject[] | TPlainObject,\n operateAllNodeDataList?: TPlainObject[],\n ) => void;\n fieldNames?: { label?: string; value?: string; children?: string };\n /**\n * 搜索关键字,打开tree折叠过滤关键字\n */\n searchValue?: string;\n /**\n * checkable模式下,onChange是否返回父节点,默认值true\n * 1. checkStrictly = true,模式下失效\n */\n checkableResponseParentNode?: boolean;\n loadDataFlag?: boolean;\n /** 菜单结构类型 tile/平铺 fold/折叠;默认:fold */\n menuLayoutType?: 'tile' | 'fold';\n /** 菜单触发类型,默认:click */\n menuTriggerType?: 'click' | 'hover';\n /**\n * 获取菜单类别\n * @param dataItem\n * @deprecated 已过期,请使用 menuOptions\n * @returns\n * ```\n * menuLayoutType = tile 无效\n * ```\n */\n getMenuOptions?: (dataItem: TPlainObject) => DropdownMenuItem[] | ButtonOperateItem[];\n\n /**\n * 根据 menuLayoutType 类型赋值\n */\n menuOptions?: {\n tile?: (dataItem: TPlainObject) => ButtonOperateProps;\n fold?: (dataItem: TPlainObject) => DropdownMenuItem[];\n };\n showSearch?: boolean;\n onSearchValueChange?: (searchValue?: string) => void;\n searchPlaceholder?: string;\n icon?: (data: { isParent: boolean; isLeaf: boolean }) => ReactElement;\n /**\n * 是否必选,最后一个不能取消\n */\n // required?: boolean;\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeWrapperValue;\n labelInValue?: boolean;\n /**\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * 禁用状态是否可选,默认值true\n * 当dateItem中包含 disabled 则数据为禁用状态\n */\n disabledCanUse?: boolean;\n\n /** treeItem数据适配器 */\n treeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n /** 搜索位置额外元素 */\n searchExtraElement?: ReactElement;\n};\n\nexport type TreeWrapperRefApi = {\n onClearSelectorList: () => void;\n getTreeDataList: () => TreeProps['treeData'];\n};\n\n/**\n * Tree包装组件,默认返回父节点,可配置不返回\n * @param props\n * @returns\n * ```\n * 1. treeNode内置字段说明(如需要相关功能,可在接口中添加固定字段)\n * a. disabled 禁掉响应\n * b. isLeaf 设置为叶子节点 (设置了 loadData 时有效)。为 false 时会强制将其作为父节点\n * c. disableCheckbox checkable模式下,treeNode复选框是否可选\n * 2. 当设置selectorTreeList属性后,serviceConfig将失效\n * 3. checkable=true,为多选模式\n * 4. 设置value后,组件显示受控\n * 5. 设置loadDataFlag=true,会动态获取children,当treeNode中包含isLeaf=true字段,表示为叶子节点,没有children了\n * ```\n */\nexport const TreeWrapper = forwardRef<TreeWrapperRefApi, TreeWrapperProps>((props, ref) => {\n const {\n serviceConfig,\n effectDependencyList,\n selectorTreeList,\n value,\n onChange,\n modelKey,\n checkableResponseParentNode = true,\n checkable,\n onSelectorTreeListChange,\n treeItemDataAdapter,\n searchValue,\n showSearch,\n searchPlaceholder,\n requestMessageConfig,\n labelInValueFieldNames,\n labelInValue,\n disabledCanUse,\n menuLayoutType,\n menuTriggerType,\n ...otherProps\n } = props;\n const hasSelectorTreeList = props.hasOwnProperty('selectorTreeList');\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeWrapperModel(modelKey).useStore();\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const requestPreKey = `request-progress-${props.modelKey}`;\n const fieldNames = useMemo(() => {\n return { label: 'label', value: 'value', children: 'children', ...props.fieldNames };\n }, [props.fieldNames]);\n // 必须是数组格式\n const defaultValueRef = useRef<Array<string | number>>();\n const menuLayoutTypeNew = menuLayoutType === undefined ? 'fold' : menuLayoutType;\n const menuTriggerTypeNew = menuTriggerType === undefined ? 'click' : menuTriggerType;\n\n const isMultiple = checkable === true;\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n // tree 搜索值\n const [treeSearchValue, setTreeSearchValue] = useState<string>();\n\n const isFirstUseValueRef = useRef(true);\n const [refreshKey, setRefreshKey] = useState(0);\n const innerOperateValueRef = useRef<Array<string | number> | string | number>();\n\n const valueList = useMemo(() => {\n const tempList = getVauleList(value, labelInValueFieldNamesMerge);\n return tempList;\n }, [labelInValueFieldNamesMerge, value]);\n\n fbaHooks.useEffectCustom(() => {\n if ((isUndefinedOrNull(value) && isFirstUseValueRef.current) || state.treeList.length == 0) return;\n isFirstUseValueRef.current = false;\n if (!treeWrapperValueDeepEqual(value, innerOperateValueRef.current, labelInValueFieldNamesMerge)) {\n console.log(`modelKey:${modelKey} TreeWrapper key refresh`, value, innerOperateValueRef.current);\n innerOperateValueRef.current = isMultiple ? valueList : valueList[0];\n // 重新计算 expandedKeys\n const expandedKeys = getTreeExpandedKeys(valueList, true);\n setTreeExpandedKeys(Array.from(new Set(expandedKeys)));\n defaultValueRef.current = valueList;\n setRefreshKey(Date.now());\n }\n }, [value, state.treeList]);\n\n const valueIsEmpty = (data: string | number) => {\n return data === '' || isUndefinedOrNull(data);\n };\n\n const serviceResponseHandle = (respData) => {\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n return respDataList;\n };\n\n fbaHooks.useEffectCustom(() => {\n setTreeSearchValue(searchValue);\n }, [searchValue]);\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n try {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys;\n const params = extend({}, newServiceConfig.params);\n if (requiredParamsKeys) {\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n console.warn(`TreeWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n setLoading(true);\n await actions.changeRequestStatus('request-progress');\n window[requestPreKey] = true;\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(_respData) as TreeProps['treeData'];\n onChangeSelectorList(respData || []);\n setLoading(false);\n window[requestPreKey] = false;\n } catch (error) {\n window[requestPreKey] = false;\n setLoading(false);\n void actions.changeRequestStatus('request-error');\n }\n } catch (error) {\n setLoading(false);\n void message.error((error.message as string) || '数据查询异常...');\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (Boolean(newEffectDependencyList.length)) {\n void startDataSourceRequest();\n return;\n }\n const allState = treeWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n }, newEffectDependencyList);\n\n fbaHooks.useEffectCustom(() => {\n if (hasSelectorTreeList) {\n onChangeSelectorList(selectorTreeList || []);\n }\n }, [selectorTreeList]);\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeList.length === 0) {\n void actions.changeRequestStatus('request-success');\n return;\n }\n void actions.setTreeList({\n treeList: dataList || [],\n childrenName: fieldNames.children,\n });\n onSelectorTreeListChange?.(dataList);\n });\n\n const getTreeExpandedKeys = hooks.useCallbackRef((valueList: Array<string | number>, refresh?: boolean) => {\n let newTreeExpandedKeys = [] as Array<string | number>;\n valueList.forEach((value) => {\n if (!refresh && treeExpandedKeys?.includes(value)) return;\n const targetList = getExpandedKeys(value, state.treeList, fieldNames);\n newTreeExpandedKeys = newTreeExpandedKeys.concat(targetList.map((item) => item.value));\n });\n return newTreeExpandedKeys;\n });\n\n hooks.useUpdateEffect(() => {\n if (treeSearchValue) {\n const tiledArray = treeToTiledArray(state.treeList || [], fieldNames);\n const targetList = tiledArray.filter((item) => item.label?.includes(treeSearchValue || ''));\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(targetList.map((item) => item.value)).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n } else {\n setTreeExpandedKeys([]);\n }\n }, [treeSearchValue]);\n\n useImperativeHandle(ref, () => {\n return {\n onClearSelectorList: () => {\n void actions.resetTreeList();\n },\n getTreeDataList: () => {\n return state.treeList;\n },\n };\n });\n\n const onExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onRespChange = hooks.useCallbackRef((selectedKey, selectInfo?, selectAllList?) => {\n innerOperateValueRef.current = selectedKey;\n const selectList = isUndefinedOrNull(selectInfo) ? [] : isArray(selectInfo) ? selectInfo : [selectInfo];\n if (isUndefinedOrNull(selectedKey)) {\n onChange?.(selectedKey, selectInfo, selectAllList);\n return;\n }\n if (labelInValue) {\n const lvLabel = labelInValueFieldNamesMerge.label;\n const lvValue = labelInValueFieldNamesMerge.value;\n const labelInValueList = selectList.map((item) => {\n return {\n [lvLabel]: item[fieldNames.label],\n [lvValue]: item[fieldNames.value],\n };\n });\n if (isArray(selectedKey)) {\n onChange?.(labelInValueList, selectList, selectAllList);\n } else {\n onChange?.(labelInValueList[0], selectList[0], selectAllList);\n }\n } else {\n if (isArray(selectedKey)) {\n onChange?.(selectedKey, selectList, selectAllList);\n } else {\n onChange?.(selectedKey, selectList[0], selectAllList);\n }\n }\n });\n\n const onTreeChangeHandle = hooks.useCallbackRef((checkedData, operateInfo) => {\n let checkedValueList = props.checkStrictly ? checkedData.checked : checkedData;\n checkedValueList = isUndefinedOrNull(checkedData) ? [] : checkedData;\n checkedValueList = isArray(checkedValueList) ? checkedValueList : [checkedValueList];\n\n const selectedLeafList = [] as TPlainObject[];\n const selectedLeafValueList = [] as Array<string | number>;\n const selectedAllList = [] as TPlainObject[];\n const selectedAllValueList = [] as Array<string | number>;\n checkedValueList.forEach((item) => {\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === item);\n if (!target) return;\n const children = target?.[fieldNames.children];\n if (!isArray(children) || children.length === 0) {\n selectedLeafList.push(target);\n selectedLeafValueList.push(target[fieldNames.value]);\n }\n selectedAllList.push(target);\n selectedAllValueList.push(target[fieldNames.value]);\n });\n\n if (checkable) {\n setTreeExpandedKeys((prev) => {\n const mergeList = getTreeExpandedKeys(selectedLeafValueList).concat(prev || []);\n return Array.from(new Set(mergeList));\n });\n if (!checkableResponseParentNode && !props.checkStrictly) {\n onRespChange(selectedLeafValueList, selectedLeafList, selectedAllList);\n } else {\n onRespChange(selectedAllValueList, selectedAllList, selectedAllList);\n }\n } else {\n if (checkedValueList[0]) {\n const currentNode = selectedAllList.find((item) => item[fieldNames.value] === checkedValueList[0]);\n onRespChange(checkedValueList[0], currentNode, [currentNode]);\n } else {\n const nodeValue = operateInfo.node[fieldNames.value];\n const target = state.treeTiledArray.find((temp) => temp[fieldNames.value] === nodeValue);\n onRespChange(undefined, target, [target]);\n }\n }\n });\n\n const treeItemDataAdapterHandle = hooks.useCallbackRef((dataItem) => {\n return treeItemDataAdapter?.(dataItem);\n });\n\n const treeData = useMemo(() => {\n const loop = (data: TAny[]): TAny[] =>\n data?.map((item) => {\n const adapterItem = treeItemDataAdapterHandle?.(item) || item;\n const disabled = disabledCanUse ? undefined : adapterItem.disabled;\n const strTitle = adapterItem[fieldNames.label] as string;\n let titleDom;\n if (treeSearchValue) {\n const index = strTitle.indexOf(treeSearchValue);\n const beforeStr = strTitle.substring(0, index);\n const afterStr = strTitle.slice(index + treeSearchValue.length);\n titleDom =\n index > -1 ? (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>\n {beforeStr}\n <span className=\"site-tree-search-value\">{treeSearchValue}</span>\n {afterStr}\n </span>\n ) : null;\n }\n if (!titleDom) {\n titleDom = (\n <span className={classNames({ 'v-tree-item-disabled': adapterItem.disabled })}>{strTitle}</span>\n );\n }\n const children = adapterItem[fieldNames.children];\n return {\n ...adapterItem,\n disabled,\n [fieldNames.label]: titleDom,\n _treeItemName: strTitle,\n _disabled: adapterItem.disabled,\n [fieldNames.children]: isArray(children) && children.length > 0 ? loop(children) : undefined,\n };\n });\n const list = cloneState(state.treeList || []);\n if (treeSearchValue) {\n return loop(\n treeFilter(cloneState(state.treeList || []), (node) => {\n const value = node[fieldNames.label]?.toLowerCase();\n return value.indexOf(treeSearchValue.toLowerCase()) >= 0;\n }),\n );\n }\n return loop(list);\n }, [\n state.treeList,\n treeItemDataAdapterHandle,\n disabledCanUse,\n fieldNames.label,\n fieldNames.children,\n treeSearchValue,\n ]);\n\n const loadData = hooks.useCallbackRef((dataItem: TPlainObject) => {\n return new Promise<void>(async (resolve, reject) => {\n if (dataItem[fieldNames.children]) {\n resolve();\n return;\n }\n try {\n const respData = await props.loadDataServiceConfig?.onRequest?.(\n props.loadDataServiceConfig?.getParams?.(dataItem),\n );\n const respDataList = (\n newServiceConfig.onRequestResultAdapter\n ? newServiceConfig.onRequestResultAdapter(respData as unknown as TPlainObject)\n : respData\n ) as TPlainObject[];\n void actions\n .treeListAppendChildren({\n value: dataItem[fieldNames.value],\n appendList: respDataList,\n childrenName: fieldNames.children,\n valueName: fieldNames.value,\n })\n .then((allState) => {\n onChangeSelectorList(allState.treeList as TPlainObject[]);\n resolve();\n });\n } catch (error) {\n void message.error(error.message || '数据加载异常...');\n // 此处失败后,会重试“loadData”请求多次\n reject();\n }\n });\n });\n\n const isLeafNode = hooks.useCallbackRef((nodeData) => {\n const children = nodeData?.[fieldNames.children];\n // 当loadDataFlag=true,考虑叶子节点显示问题\n const loadDataFlag = props.loadDataFlag;\n const loadHasChildren = loadDataFlag ? !nodeData.isLeaf : false;\n const hasChildren = (children && children.length > 0) || loadHasChildren;\n return !hasChildren;\n });\n\n const titleRender = hooks.useCallbackRef((nodeData) => {\n const stringLabel = nodeData._treeItemName || nodeData[fieldNames.label];\n\n if (menuLayoutTypeNew === 'fold') {\n let menuOptions: TAny[] = [];\n if (props.menuOptions?.fold) {\n menuOptions =\n props.menuOptions?.[menuLayoutTypeNew]?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n } else {\n menuOptions =\n props.getMenuOptions?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n }) || [];\n }\n return (\n <Fragment>\n <span className=\"tree-item-title\">{nodeData?.[fieldNames.label]}</span>\n {menuOptions.length > 0 && (\n <DropdownMenuWrapper menuList={menuOptions}>\n <MoreOutlined />\n </DropdownMenuWrapper>\n )}\n </Fragment>\n );\n }\n const menuOptions = props.menuOptions?.tile?.({\n ...nodeData,\n [fieldNames.label]: stringLabel,\n });\n return (\n <Fragment>\n <span className=\"tree-item-title\">{nodeData?.[fieldNames.label]}</span>\n {menuOptions ? (\n <ButtonOperate\n {...menuOptions}\n gap={5}\n className={classNames('tree-item-title-operate', menuOptions.className)}\n />\n ) : null}\n </Fragment>\n );\n });\n\n const onChangeDebounce = hooks.useDebounceCallback((value: string) => {\n setTreeSearchValue(value);\n props.onSearchValueChange?.(value);\n }, 300);\n\n const onSearchChange = hooks.useCallbackRef((e: React.ChangeEvent<HTMLInputElement>) => {\n onChangeDebounce(e.target.value);\n });\n\n const iconHandle = hooks.useCallbackRef((treeData) => {\n if (!props.icon) return null;\n if (isValidElement(props.icon)) return props.icon;\n const isLeafFlag = isLeafNode(treeData.data);\n return props.icon({\n ...treeData,\n isParent: !isLeafFlag,\n isLeaf: isLeafFlag,\n });\n });\n\n const treeFieldNames = useMemo(() => {\n return { title: fieldNames.label, key: fieldNames.value, children: fieldNames.children };\n }, [fieldNames]);\n\n const showTree = treeData.length > 0 && state.requestStatus !== 'request-error';\n const commonProps = {\n showLine: { showLeafIcon: false },\n titleRender,\n blockNode: true,\n switcherIcon: <CaretDownFilled />,\n ...otherProps,\n fieldNames: treeFieldNames,\n expandedKeys: treeExpandedKeys,\n treeData,\n onExpand,\n loadData: props.loadDataFlag ? loadData : undefined,\n style: { width: '100%', ...otherProps.style },\n icon: iconHandle,\n };\n\n const checkedProps = {\n onCheck: onTreeChangeHandle,\n checkable,\n // 必须是数组格式\n defaultCheckedKeys: defaultValueRef.current,\n };\n\n const selectedProps = {\n onSelect: onTreeChangeHandle,\n multiple: false,\n // 必须是数组格式\n defaultSelectedKeys: defaultValueRef.current,\n };\n const sceneProps = checkable ? checkedProps : selectedProps;\n const cName = classNames('v-tree-wrapper', `v-tree-wrapper-menu-${menuTriggerTypeNew}`);\n const isSearchEmpty = state.treeList.length > 0 && !showTree && treeSearchValue;\n return (\n <div className={cName}>\n {/* {showTree && <Spin spinning={loading} className=\"v-tree-wrapper-loading\"></Spin>} */}\n {!!showSearch && (\n <div className=\"v-tree-wrapper-search-area\">\n <InputSearchWrapper\n className=\"v-tree-wrapper-search\"\n placeholder={searchPlaceholder}\n onChange={onSearchChange}\n value={searchValue}\n allowClear\n />\n {!!props.searchExtraElement && (\n <span className=\"v-tree-wrapper-search-extra\">{props.searchExtraElement}</span>\n )}\n </div>\n )}\n {showTree ? (\n <Tree key={refreshKey} {...sceneProps} {...commonProps} className=\"v-tree-wrapper-tree\"></Tree>\n ) : (\n <RequestStatus\n status={state.requestStatus}\n loading={loading}\n messageConfig={{\n 'request-success': isSearchEmpty ? '搜索结果为空' : '暂无数据',\n ...requestMessageConfig,\n }}\n errorButton={\n <Button type=\"primary\" onClick={startDataSourceRequest}>\n 重新获取数据\n </Button>\n }\n />\n )}\n </div>\n );\n});\n\nTreeWrapper.defaultProps = {\n disabledCanUse: true,\n};\n"],"names":["defaultState","treeList","treeTiledArray","queryIsEmpty","TreeWrapperModel","actions","setTreeList","params","state","treeToArray","childrenName","requestStatus","resetTreeList","changeRequestStatus","treeListAppendChildren","array","target","find","item","valueName","value","_isArray","appendList","length","isLeaf","treeWrapperModels","treeWrapperModel","key","Model","getExpandedKeys","fieldNames","tiledArray","treeToTiledArray","treeLeafParentsArray","parentValue","getVauleList","data","labelInValueFieldNames","tempList","isUndefinedOrNull","map","_isObject","array2map","list","forEach","treeWrapperValueDeepEqual","value1","value2","object1","object2","diff","dequal","TreeWrapper","forwardRef","props","ref","serviceConfig","effectDependencyList","selectorTreeList","onChange","modelKey","_props$checkableRespo","checkableResponseParentNode","checkable","onSelectorTreeListChange","treeItemDataAdapter","searchValue","showSearch","searchPlaceholder","requestMessageConfig","labelInValue","disabledCanUse","menuLayoutType","menuTriggerType","otherProps","_objectWithoutPropertiesLoose","_excluded","hasSelectorTreeList","hasOwnProperty","newServiceConfig","newEffectDependencyList","_useState","useState","treeExpandedKeys","setTreeExpandedKeys","_treeWrapperModel$use","useStore","_fbaHooks$useSafeStat","fbaHooks","useSafeState","loading","setLoading","requestPreKey","useMemo","_extends","label","children","defaultValueRef","useRef","menuLayoutTypeNew","undefined","menuTriggerTypeNew","isMultiple","labelInValueFieldNamesMerge","_useState2","treeSearchValue","setTreeSearchValue","isFirstUseValueRef","_useState3","refreshKey","setRefreshKey","innerOperateValueRef","valueList","useEffectCustom","current","console","log","expandedKeys","getTreeExpandedKeys","Array","from","Set","Date","now","valueIsEmpty","serviceResponseHandle","respData","respDataList","onRequestResultAdapter","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","_params","isEmpty","_respData","_respData2","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","onRequest","Error","_extend","warn","join","$Try_2_Post","$Try_2_Catch","window","resolve","then","$await_4","$await_5","onChangeSelectorList","Boolean","allState","getState","dataList","refresh","newTreeExpandedKeys","includes","targetList","concat","useUpdateEffect","filter","_item$label","prev","mergeList","useImperativeHandle","onClearSelectorList","getTreeDataList","onExpand","onRespChange","selectedKey","selectInfo","selectAllList","selectList","lvLabel","lvValue","labelInValueList","_ref","onTreeChangeHandle","checkedData","operateInfo","checkedValueList","checkStrictly","checked","selectedLeafList","selectedLeafValueList","selectedAllList","selectedAllValueList","temp","push","currentNode","nodeValue","node","treeItemDataAdapterHandle","dataItem","treeData","loop","_extends2","adapterItem","disabled","strTitle","titleDom","index","indexOf","beforeStr","substring","afterStr","slice","_jsxs","className","_classNames","_jsx","_treeItemName","_disabled","cloneState","treeFilter","_node$fieldNames$labe","toLowerCase","loadData","reject","_props$loadDataServic","_props$loadDataServic2","_respData3","$Try_3_Post","$Try_3_Catch","loadDataServiceConfig","getParams","$await_6","isLeafNode","nodeData","loadDataFlag","loadHasChildren","hasChildren","titleRender","_props$menuOptions3","_extends5","stringLabel","_props$menuOptions","menuOptions","fold","_props$menuOptions2","_props$menuOptions2$m","_extends3","call","_extends4","getMenuOptions","Fragment","DropdownMenuWrapper","menuList","_MoreOutlined","tile","ButtonOperate","gap","onChangeDebounce","useDebounceCallback","onSearchValueChange","onSearchChange","e","iconHandle","icon","isValidElement","isLeafFlag","isParent","treeFieldNames","title","showTree","commonProps","showLine","showLeafIcon","blockNode","switcherIcon","_CaretDownFilled","style","width","checkedProps","onCheck","defaultCheckedKeys","selectedProps","onSelect","multiple","defaultSelectedKeys","sceneProps","cName","isSearchEmpty","InputSearchWrapper","placeholder","allowClear","searchExtraElement","Tree","RequestStatus","status","messageConfig","errorButton","Button","type","onClick","defaultProps"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -3,7 +3,7 @@
3
3
 
4
4
  import { API, ModelType } from '@dimjs/model';
5
5
  import { DateFormatType, TAny, TNoopDefine, TPlainObject } from '@flatbiz/utils';
6
- import { ButtonProps, CascaderProps, CheckboxProps, DrawerProps, DropdownProps, FormInstance, FormItemProps, InputNumberProps, InputProps, ModalProps, PopconfirmProps, RadioGroupProps, RowProps, SelectProps, SpaceProps, SwitchProps, TableProps, TabsProps, TimePickerProps, TimeRangePickerProps, TooltipProps, TreeProps, TreeSelectProps, UploadProps } from 'antd';
6
+ import { ButtonProps, CascaderProps, CheckboxProps, DrawerProps, DropdownProps, FormInstance, FormItemProps, InputNumberProps, InputProps, ModalProps, PaginationProps, PopconfirmProps, RadioGroupProps, RowProps, SelectProps, SpaceProps, SwitchProps, TableProps, TabsProps, TimePickerProps, TimeRangePickerProps, TooltipProps, TreeProps, TreeSelectProps, UploadProps } from 'antd';
7
7
  import { ConfigProviderProps } from 'antd/es/config-provider';
8
8
  import { PickerDateProps } from 'antd/es/date-picker/generatePicker';
9
9
  import { CheckboxGroupProps } from 'antd/lib/checkbox';
@@ -610,6 +610,7 @@ export type EasyTableServiceConfig = {
610
610
  };
611
611
  export type EasyTableProps = {
612
612
  children: ReactElement | ReactElement[];
613
+ /** EasyTable唯一值,可用于缓存查询条件 */
613
614
  modelKey: string;
614
615
  /** 接口数据配置 */
615
616
  serviceConfig: EasyTableServiceConfig;
@@ -640,6 +641,21 @@ export type EasyTableProps = {
640
641
  onDataSourceChange?: (dataSource: TAny) => void;
641
642
  /** 如果自定义查询按钮,可设置 Form onFinish */
642
643
  onFormFinish?: (values?: TPlainObject) => void;
644
+ /** 在父节点高度下,上下铺满 */
645
+ isFull?: boolean;
646
+ /** 查询条件固定,不随滚动条滚动 */
647
+ filterFixed?: boolean;
648
+ /** 分页区域固定,不随滚动条滚动 */
649
+ paginationFixed?: boolean;
650
+ /**
651
+ * 1. 配合paginationFixed=true一起使用有效果
652
+ * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性
653
+ */
654
+ pagination?: PaginationProps;
655
+ /**
656
+ * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值
657
+ */
658
+ foldKeys?: string[];
643
659
  };
644
660
  export type FormOperateColProps = {
645
661
  className?: string;
@@ -663,10 +679,24 @@ export type EasyTableFilterProps = {
663
679
  };
664
680
  };
665
681
  export type EasyTableTableProps = Omit<TableProps<TAny>, "dataSource" | "loading" | "rowKey"> & {
666
- children?: ReactElement;
682
+ children?: ReactElement | ReactElement[];
667
683
  /** 表格行 key 的取值 */
668
684
  rowKey: string;
669
685
  };
686
+ /**
687
+ * 对 查询条件+表格数据 进行深度封装,内置数据交互处理
688
+ * ```
689
+ * 1. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作
690
+ * 2. 可通过属性 initRequest 设置初始化是否请求数据
691
+ * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize
692
+ * 4. isFull=true,设置【在父节点高度下,上下铺满】
693
+ * 5. filterFixed=true,设置查询条件固定,不随滚动条滚动
694
+ * 6. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动
695
+ * 7. foldKeys=string[],查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值
696
+ *
697
+ * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table
698
+ * ```
699
+ */
670
700
  export declare const EasyTable: import("react").ForwardRefExoticComponent<EasyTableProps & import("react").RefAttributes<EasyTableRefApi>> & {
671
701
  /**
672
702
  * 过滤条件
@@ -1910,8 +1940,15 @@ export type TableTitleTooltipProps = {
1910
1940
  };
1911
1941
  export declare const TableTitleTooltip: (props: TableTitleTooltipProps) => JSX.Element;
1912
1942
  export type TabsWrapperProps = TabsProps & {
1913
- /** Tabs Header 提供 Sticky 效果,默认值:true */
1943
+ /**
1944
+ * Tabs Header 提供 Sticky 效果,默认值:true
1945
+ * @deprecated 已废弃,请使用 isFixed 属性
1946
+ */
1914
1947
  isSticky?: boolean;
1948
+ /**
1949
+ * Tabs Header 提供 Fixed 效果,默认值:true
1950
+ */
1951
+ isFixed?: boolean;
1915
1952
  /** 是否取消 active 缓存 */
1916
1953
  cancelActiveCache?: boolean;
1917
1954
  activeCacheKey?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flatbiz/antd",
3
- "version": "4.2.13",
3
+ "version": "4.2.16",
4
4
  "description": "flat-biz ui components",
5
5
  "main": "index.js",
6
6
  "typings": "index.d.ts",