@flatbiz/antd 4.2.0 → 4.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/date-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/editable-table/index.js +1 -1
- package/esm/editable-table/index.js.map +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js +1 -1
- package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
- package/index.d.ts +21 -19
- package/package.json +1 -1
|
@@ -4,5 +4,5 @@ import './../fba-hooks/index.css';
|
|
|
4
4
|
import './../types/index.css';
|
|
5
5
|
import './index.css';
|
|
6
6
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
7
|
-
import{_ as e,a as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{Form as
|
|
7
|
+
import{_ as e,a as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{Form as o,Input as t}from"antd";import{useMemo as i,useRef as l,forwardRef as u,useImperativeHandle as s}from"react";import{D as m}from"../date-range-picker-wrapper-d22d0f60.js";import{fbaHooks as v}from"../fba-hooks/index.js";import{jsxs as c,Fragment as d,jsx as f}from"react/jsx-runtime";import"@flatbiz/utils";import"dayjs";import"../time-2782aa9b.js";import"../use-responsive-point-21b8c601.js";var p=["startName","endName","formListName","dateRangePickerWrapperProps"];var h=function t(u){var s=u.startName,h=u.endName,C=u.formListName,_=u.dateRangePickerWrapperProps,j=e(u,p);var P=o.useFormInstance();var k=i((function(){if(a(s)&&a(h)){return s.slice(0,s.length-1).concat("__#invalid_date_"+s[s.length-1]+"_"+h[h.length-1])}return"__#invalid_date_"+s+"_"+h}),[s,h]);var N=i((function(){return C?[].concat(C,s):s}),[s,C]);var b=i((function(){return C?[].concat(C,h):h}),[h,C]);var F=o.useWatch(N,P);var I=o.useWatch(b,P);var W=v.usePrevious(F);var x=v.usePrevious(I);v.useEffectCustom((function(){var e=C?[].concat(C,k):k;if(F&&I){P.setFields([{name:e,value:[F,I]}])}if(W&&x&&!F&&!I){P.setFields([{name:e,value:undefined}])}}),[F,I]);var R=l(null);var w=l(null);var y=r.useCallbackRef((function(e){var n,r;P.setFields([{name:N,value:e==null?void 0:e[0]},{name:b,value:e==null?void 0:e[1]}]);(n=R.current)==null?void 0:n.onChange==null?void 0:n.onChange(e==null?void 0:e[0]);(r=w.current)==null?void 0:r.onChange==null?void 0:r.onChange(e==null?void 0:e[1]);_==null?void 0:_.onChange==null?void 0:_.onChange(e)}));return c(d,{children:[f(o.Item,{name:s,hidden:true,children:f(g,{ref:R})}),f(o.Item,{name:h,hidden:true,children:f(g,{ref:w})}),f(o.Item,n({},j,{name:k,children:f(m,n({},_,{onChange:y}))}))]})};var g=u((function(e,n){s(n,(function(){return{onChange:function n(r){e.onChange==null?void 0:e.onChange(r)}}}));return f(t,{value:e.value})}));export{h as DateRangePickerWrapperFormItem};
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/date-range-picker-wrapper-form-item/date-range-picker-wrapper-form-item.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormItemProps, Input } from 'antd';\nimport { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';\nimport { DateRangePickerWrapper, DateRangePickerWrapperProps } from '../date-range-picker-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormItemNamePath } from '../types';\n\nexport type DateRangePickerWrapperFormItemProps = Omit<FormItemProps, 'name'> & {\n /**\n * 开始的时间name\n */\n startName: FormItemNamePath;\n /**\n * 结束的时间name\n */\n endName: FormItemNamePath;\n /**\n * 如果 DateRangePickerWrapperFormItem 在Form.List场景下 必传\n */\n formListName?: FormItemNamePath;\n dateRangePickerWrapperProps?: DateRangePickerWrapperProps;\n};\n/**\n * 包含了Form.Item组件的时间区间选择组件\n * ```\n * 1. 时间区间组件可以定义成两个字段操作,不用再通过数组处理\n * 2. 会在form中产生一个 `__#invalid_date_xxxx_xxxx` 的无效字段,可以直接忽略\n * ```\n */\nexport const DateRangePickerWrapperFormItem = (props: DateRangePickerWrapperFormItemProps) => {\n const { startName, endName, formListName, dateRangePickerWrapperProps, ...otherProps } = props;\n const form = Form.useFormInstance();\n const bodyName = useMemo(() => {\n if (isArray(startName) && isArray(endName)) {\n return startName\n .slice(0, startName.length - 1)\n .concat(`__#invalid_date_${startName[startName.length - 1]}_${endName[endName.length - 1]}`);\n }\n return `__#invalid_date_${startName}_${endName}`;\n }, [startName, endName]);\n\n const startNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, startName) : startName;\n }, [startName, formListName]);\n\n const endNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, endName) : endName;\n }, [endName, formListName]);\n\n const startVal = Form.useWatch(startNameMerge, form);\n const endVal = Form.useWatch(endNameMerge, form);\n const bodyVal = Form.useWatch(bodyName, form);\n\n fbaHooks.
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/date-range-picker-wrapper-form-item/date-range-picker-wrapper-form-item.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormItemProps, Input } from 'antd';\nimport { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';\nimport { DateRangePickerWrapper, DateRangePickerWrapperProps } from '../date-range-picker-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormItemNamePath } from '../types';\n\nexport type DateRangePickerWrapperFormItemProps = Omit<FormItemProps, 'name'> & {\n /**\n * 开始的时间name\n */\n startName: FormItemNamePath;\n /**\n * 结束的时间name\n */\n endName: FormItemNamePath;\n /**\n * 如果 DateRangePickerWrapperFormItem 在Form.List场景下 必传\n */\n formListName?: FormItemNamePath;\n dateRangePickerWrapperProps?: DateRangePickerWrapperProps;\n};\n/**\n * 包含了Form.Item组件的时间区间选择组件\n * ```\n * 1. 时间区间组件可以定义成两个字段操作,不用再通过数组处理\n * 2. 会在form中产生一个 `__#invalid_date_xxxx_xxxx` 的无效字段,可以直接忽略\n * ```\n */\nexport const DateRangePickerWrapperFormItem = (props: DateRangePickerWrapperFormItemProps) => {\n const { startName, endName, formListName, dateRangePickerWrapperProps, ...otherProps } = props;\n const form = Form.useFormInstance();\n const bodyName = useMemo(() => {\n if (isArray(startName) && isArray(endName)) {\n return startName\n .slice(0, startName.length - 1)\n .concat(`__#invalid_date_${startName[startName.length - 1]}_${endName[endName.length - 1]}`);\n }\n return `__#invalid_date_${startName}_${endName}`;\n }, [startName, endName]);\n\n const startNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, startName) : startName;\n }, [startName, formListName]);\n\n const endNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, endName) : endName;\n }, [endName, formListName]);\n\n const startVal = Form.useWatch(startNameMerge, form);\n const endVal = Form.useWatch(endNameMerge, form);\n // const bodyVal = Form.useWatch(bodyName, form);\n\n const preValue1 = fbaHooks.usePrevious(startVal);\n const preValue2 = fbaHooks.usePrevious(endVal);\n\n fbaHooks.useEffectCustom(() => {\n const name = formListName ? ([] as (string | number)[]).concat(formListName, bodyName) : bodyName;\n if (startVal && endVal) {\n form.setFields([{ name, value: [startVal, endVal] }]);\n }\n if (preValue1 && preValue2 && !startVal && !endVal) {\n form.setFields([{ name, value: undefined }]);\n }\n }, [startVal, endVal]);\n\n const reftest = useRef<InputContentRef>(null);\n const reftest2 = useRef<InputContentRef>(null);\n\n const onChange = hooks.useCallbackRef((data) => {\n form.setFields([\n { name: startNameMerge, value: data?.[0] },\n { name: endNameMerge, value: data?.[1] },\n ]);\n // 为了解决 外部Form onValuesChange获取到操作值\n reftest.current?.onChange?.(data?.[0]);\n reftest2.current?.onChange?.(data?.[1]);\n dateRangePickerWrapperProps?.onChange?.(data);\n });\n\n return (\n <>\n <Form.Item name={startName} hidden>\n <InputContent ref={reftest} />\n </Form.Item>\n <Form.Item name={endName} hidden>\n <InputContent ref={reftest2} />\n </Form.Item>\n <Form.Item {...otherProps} name={bodyName}>\n <DateRangePickerWrapper {...dateRangePickerWrapperProps} onChange={onChange} />\n </Form.Item>\n </>\n );\n};\n\ntype InputContentProps = {\n onChange?: (data: TAny) => void;\n value?: string;\n};\n\ntype InputContentRef = {\n onChange?: (data: TAny) => void;\n};\n\nconst InputContent = forwardRef<InputContentRef, InputContentProps>((props, ref) => {\n useImperativeHandle(ref, () => {\n return {\n onChange: (startVal) => {\n props.onChange?.(startVal);\n },\n };\n });\n\n return <Input value={props.value} />;\n});\n"],"names":["DateRangePickerWrapperFormItem","props","startName","endName","formListName","dateRangePickerWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","form","Form","useFormInstance","bodyName","useMemo","_isArray","slice","length","concat","startNameMerge","endNameMerge","startVal","useWatch","endVal","preValue1","fbaHooks","usePrevious","preValue2","useEffectCustom","name","setFields","value","undefined","reftest","useRef","reftest2","onChange","_hooks","useCallbackRef","data","_reftest$current","_reftest2$current","current","_jsxs","_Fragment","children","_jsx","Item","hidden","InputContent","ref","_extends","DateRangePickerWrapper","forwardRef","useImperativeHandle","Input"],"mappings":";2oBA+BaA,EAAiC,SAAjCA,EAAkCC,GAC7C,IAAQC,EAAiFD,EAAjFC,UAAWC,EAAsEF,EAAtEE,QAASC,EAA6DH,EAA7DG,aAAcC,EAA+CJ,EAA/CI,4BAAgCC,EAAUC,EAAKN,EAAKO,GAC9F,IAAMC,EAAOC,EAAKC,kBAClB,IAAMC,EAAWC,GAAQ,WACvB,GAAIC,EAAQZ,IAAcY,EAAQX,GAAU,CAC1C,OAAOD,EACJa,MAAM,EAAGb,EAAUc,OAAS,GAC5BC,OAA0Bf,mBAAAA,EAAUA,EAAUc,OAAS,GAAMb,IAAAA,EAAQA,EAAQa,OAAS,GAC3F,CACA,MAA0Bd,mBAAAA,MAAaC,CACzC,GAAG,CAACD,EAAWC,IAEf,IAAMe,EAAiBL,GAAQ,WAC7B,OAAOT,EAAgB,GAA2Ba,OAAOb,EAAcF,GAAaA,CACtF,GAAG,CAACA,EAAWE,IAEf,IAAMe,EAAeN,GAAQ,WAC3B,OAAOT,EAAgB,GAA2Ba,OAAOb,EAAcD,GAAWA,CACpF,GAAG,CAACA,EAASC,IAEb,IAAMgB,EAAWV,EAAKW,SAASH,EAAgBT,GAC/C,IAAMa,EAASZ,EAAKW,SAASF,EAAcV,GAG3C,IAAMc,EAAYC,EAASC,YAAYL,GACvC,IAAMM,EAAYF,EAASC,YAAYH,GAEvCE,EAASG,iBAAgB,WACvB,IAAMC,EAAOxB,EAAgB,GAA2Ba,OAAOb,EAAcQ,GAAYA,EACzF,GAAIQ,GAAYE,EAAQ,CACtBb,EAAKoB,UAAU,CAAC,CAAED,KAAAA,EAAME,MAAO,CAACV,EAAUE,KAC5C,CACA,GAAIC,GAAaG,IAAcN,IAAaE,EAAQ,CAClDb,EAAKoB,UAAU,CAAC,CAAED,KAAAA,EAAME,MAAOC,YACjC,CACF,GAAG,CAACX,EAAUE,IAEd,IAAMU,EAAUC,EAAwB,MACxC,IAAMC,EAAWD,EAAwB,MAEzC,IAAME,EAAWC,EAAMC,gBAAe,SAACC,GAAS,IAAAC,EAAAC,EAC9C/B,EAAKoB,UAAU,CACb,CAAED,KAAMV,EAAgBY,MAAOQ,GAAAA,UAAAA,EAAAA,EAAO,IACtC,CAAEV,KAAMT,EAAcW,MAAOQ,GAAAA,UAAAA,EAAAA,EAAO,OAGtCC,EAAAP,EAAQS,UAARF,UAAAA,EAAAA,EAAiBJ,UAAQ,UAAA,EAAzBI,EAAiBJ,SAAWG,GAAI,UAAA,EAAJA,EAAO,KACnCE,EAAAN,EAASO,UAATD,UAAAA,EAAAA,EAAkBL,UAAQ,UAAA,EAA1BK,EAAkBL,SAAWG,GAAI,UAAA,EAAJA,EAAO,IACpCjC,GAA2B,UAAA,EAA3BA,EAA6B8B,UAAQ,UAAA,EAArC9B,EAA6B8B,SAAWG,EAC1C,IAEA,OACEI,EAAAC,EAAA,CAAAC,SACEC,CAAAA,EAACnC,EAAKoC,KAAI,CAAClB,KAAM1B,EAAW6C,OAAM,KAAAH,SAChCC,EAACG,EAAY,CAACC,IAAKjB,MAErBa,EAACnC,EAAKoC,KAAI,CAAClB,KAAMzB,EAAS4C,OAAM,KAAAH,SAC9BC,EAACG,EAAY,CAACC,IAAKf,MAErBW,EAACnC,EAAKoC,KAAII,EAAA,CAAA,EAAK5C,EAAU,CAAEsB,KAAMhB,EAASgC,SACxCC,EAACM,EAAsBD,KAAK7C,EAA2B,CAAE8B,SAAUA,UAI3E,EAWA,IAAMa,EAAeI,GAA+C,SAACnD,EAAOgD,GAC1EI,EAAoBJ,GAAK,WACvB,MAAO,CACLd,SAAU,SAAAA,EAACf,GACTnB,EAAMkC,UAANlC,UAAAA,EAAAA,EAAMkC,SAAWf,EACnB,EAEJ,IAEA,OAAOyB,EAACS,EAAK,CAACxB,MAAO7B,EAAM6B,OAC7B"}
|
package/esm/easy-table/index.js
CHANGED
|
@@ -6,5 +6,5 @@ import './../simple-layout/index.css';
|
|
|
6
6
|
import './../fba-hooks/index.css';
|
|
7
7
|
import './index.css';
|
|
8
8
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
9
|
-
import{a as e}from"../attach-properties-to-component-9d9644cf.js";import{isArray as t}from"@dimjs/lang/cjs/is-array";import{hooks as r}from"@wove/react/cjs/hooks";import{a as i,_ as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as o}from"@dimjs/model";import{Form as a,message as u,Table as s}from"antd";import{forwardRef as l,useState as c,useImperativeHandle as
|
|
9
|
+
import{a as e}from"../attach-properties-to-component-9d9644cf.js";import{isArray as t}from"@dimjs/lang/cjs/is-array";import{hooks as r}from"@wove/react/cjs/hooks";import{a as i,_ as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{cloneState as o}from"@dimjs/model";import{Form as a,message as u,Table as s}from"antd";import{forwardRef as l,useState as c,useImperativeHandle as f,Children as d,useMemo as m,useRef as p}from"react";import{createCtx as v}from"@wove/react/cjs/create-ctx";import{Model as g}from"@dimjs/model-react";import{jsx as h,jsxs as y}from"react/jsx-runtime";import{B as C}from"../button-wrapper-9bef2281.js";import{FormGrid as S}from"../form-grid/index.js";import{S as q}from"../simple-layout-1676e586.js";import{isUndefinedOrNull as F,getUuid as R}from"@flatbiz/utils";import{fbaHooks as j}from"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-promise";import"../fba-utils-a4c7d94d.js";import"@dimjs/utils/cjs/class-names";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";var P=v(),b=P[0],z=P[1];var w={queryCondition:{},isInit:true};var N={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=i({},e.queryCondition,t)}},resetFilterCondition:function e(){return function(e){e.queryCondition=w.queryCondition}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:w};var x={};var V=function e(t){if(!x[t]){x[t]=g(N)}return x[t]};var T=l((function(e,n){var s;var l=c([]),d=l[0],m=l[1];var p=c(0),v=p[0],g=p[1];var y=c(false),C=y[0],S=y[1];var q=V(e.modelKey).useStore(),F=q[0],R=q[1];var j=e.pageSize||((s=e.initialPaginationParams)==null?void 0:s.pageSize)||10;var P=e.initRequest===undefined?true:e.initRequest;var b=c(false),w=b[0],N=b[1];var x=i({list:"list",total:"tatal",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var T=a.useForm(),K=T[0];var k=r.useCallbackRef((function(r){return new Promise((function(i,n){var a,s,l,c,f,d,p,v,h,y;var C=function(){try{return i()}catch(e){return n(e)}};var q=function(e){try{S(false);void u.error(e.message);return C()}catch(e){return n(e)}};try{S(true);return Promise.resolve(R.updateFilterCondition(r)).then((function(r){try{a=r;s=o(a.queryCondition||{});l=e.serviceConfig,c=l.requestParamsAdapter,f=l.onRequest,d=l.requestResultAdapter;p=c?c(s):s;return Promise.resolve(f(p)).then((function(r){try{v=r||{};e.onDataSourceChange==null?void 0:e.onDataSourceChange(v);h=d?d(v):v;y=h[x.list];m(t(y)?y:[]);g(h[x.total]);S(false);return C()}catch(e){return q(e)}}),q)}catch(e){return q(e)}}),q)}catch(e){q(e)}}))}));var I=r.useCallbackRef((function(e){return new Promise((function(t,r){return Promise.resolve(R.resetFilterCondition()).then((function(i){try{K.resetFields();if(e){void R.updateFilterCondition(e);K.setFieldsValue(e)}return t()}catch(e){return r(e)}}),r)}))}));var A=r.useCallbackRef((function(t){return new Promise((function(r,n){var o;return Promise.resolve(R.resetFilterCondition()).then((function(a){try{K.resetFields();if(w){void k(i((o={},o[x.pageNo]=1,o[x.pageSize]=j,o),e.initialValues,t))}else{void k(i({},e.initialValues,t))}return r()}catch(e){return n(e)}}),n)}))}));var B=function e(){return i({},F.queryCondition,K.getFieldsValue())};f(n,(function(){return{onRequest:k,clearQueryCondition:I,getRequestParams:B,onResetRequest:A,form:K}}));var E=function e(){return{onRequest:k,clearQueryCondition:I,getRequestParams:B,onResetRequest:A,form:K}};var L=function e(t){N(t)};var D=function t(){var r=K.getFieldsValue();if(e.onFormFinish){e.onFormFinish(r)}else{if(w){var n;void k(i({},r,(n={},n[x.pageNo]=1,n[x.pageSize]=F.queryCondition.pageSize,n)))}else{void k(r)}}};return h(z,{value:{getEasyTableRef:E,modelKey:e.modelKey,onRequest:k,tableList:d,tableTotal:v,loading:C,fieldNames:x,pageSize:j,initRequest:P,initialValues:e.initialValues||{},onSetPaginationStatus:L,paginationStatus:w,onFormFinish:D,form:K},children:e.children})}));var K=function e(t){var n=t.queryButtonProps,o=t.resetButtonProps,u=t.filterOperate;var s=b(),l=s.modelKey,c=s.fieldNames,f=s.onRequest,m=s.pageSize,p=s.paginationStatus,v=s.initialValues,g=s.form,y=s.onFormFinish;var F=typeof t.children==="function"?t.children(g):t.children;var R=d.toArray(F);var j=V(l).useStore(),P=j[0],z=j[1];var w=r.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(z.resetFilterCondition()).then((function(n){try{g.resetFields();if(p){f(i((r={},r[c.pageNo]=1,r[c.pageSiz]=m,r),v))}else{f(v)}return e()}catch(e){return t(e)}}),t)}))}));var N=i({rightList:[!(n!=null&&n.hidden)?h(C,i({type:"primary",htmlType:"submit"},n,{children:(n==null?void 0:n.text)||"查询"}),"1"):null,!(o!=null&&o.hidden)?h(C,i({onClick:w},o,{children:(o==null?void 0:o.text)||"重置"}),"2"):null]},u==null?void 0:u(g));var x=R.map((function(e,t){if(e.type["domTypeName"]==="FormCol"){return e}return h(S.Col,{children:e},t)})).concat(h(S.OperateCol,i({},N),99));return h(q,{children:h(a,{form:g,onFinish:y,initialValues:i({},v,P.queryCondition),children:t.isPure?F:h(S.Row,{gutter:[15,0],children:x})})})};var k=["children","rowKey","pagination"];var I=function e(t){var r=t.children,o=t.rowKey,a=t.pagination,u=n(t,k);var l=b(),c=l.modelKey,f=l.fieldNames,d=l.onRequest,p=l.tableList,v=l.initRequest,g=l.pageSize,C=l.tableTotal,S=l.loading,P=l.initialValues,z=l.onSetPaginationStatus;var w=V(c).useStore(),N=w[0],x=w[1];var T=a==false?false:i({showSizeChanger:true,current:N.queryCondition[f.pageNo],pageSize:N.queryCondition[f.pageSize],total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},t.pagination);var K=function e(r){if(T){var i;d((i={},i[f.pageSize]=r.pageSize,i[f.pageNo]=r.current,i))}for(var n=arguments.length,o=new Array(n>1?n-1:0),a=1;a<n;a++){o[a-1]=arguments[a]}t.onChange==null?void 0:t.onChange.apply(t,[r].concat(o))};var I=m((function(){if(p.length===0){return[]}if(F(p[0][o])){return p.map((function(e){e[o]=R();return e}))}return p}),[p,o]);j.useEffectCustom((function(){z(T!==false);if(v!==false||!N.isInit){if(T){var e;void d(i((e={},e[f.pageNo]=1,e[f.pageSize]=g,e),P))}else{void d(P)}}else{void x.updateFilterCondition(P)}void x.updateInitStatus()}),[]);return y(q,{children:[r,h(s,i({size:"small",scroll:{x:"max-content"},bordered:true},u,{pagination:T,rowKey:o,onChange:K,loading:S,dataSource:I}))]})};var A=function e(){var t=b(),r=t.getEasyTableRef;var i=p(r());return i};var B=e(T,{Filter:K,Table:I,useEasyTablRef:A});export{B as EasyTable};
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\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}>();\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, FormInstance, message } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useState } from 'react';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\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 EasyTableRefApi = {\n /** 外部发起请求服务 */\n onRequest: (params?: TPlainObject) => void;\n /** 获取请求参数 */\n getRequestParams: () => TPlainObject;\n /** 清楚查询条件 */\n clearQueryCondition: (values?: TPlainObject) => Promise<void>;\n form: FormInstance;\n /** 重置请求 */\n onResetRequest: (params?: TPlainObject) => void;\n};\n\nexport type EasyTableProps = {\n children: ReactElement | ReactElement[];\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSiz = 10\n * @deprecated 使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n};\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const onRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n void message.error(error.message);\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...values,\n });\n } else {\n void onRequest({\n ...props.initialValues,\n ...values,\n });\n }\n });\n\n const getRequestParams = () => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n };\n\n useImperativeHandle(ref, () => {\n return {\n onRequest: onRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n };\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish(values);\n } else {\n if (paginationStatus) {\n void onRequest({\n ...values,\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: state.queryCondition.pageSize,\n });\n } else {\n void onRequest(values);\n }\n }\n };\n\n return (\n <EasyTableCtxProvider\n value={{\n modelKey: props.modelKey,\n onRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n }}\n >\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...props.initialValues,\n ...state.queryCondition,\n }}\n >\n {props.children}\n </Form>\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 form = Form.useFormInstance();\n const { queryButtonProps, resetButtonProps, filterOperate } = props;\n\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = Children.toArray(children);\n const { modelKey, fieldNames, onRequest, pageSize, paginationStatus, initialValues } = useEasyTableCtx();\n const [, actions] = easyTableModel(modelKey).useStore();\n\n // const onQuery = hooks.useCallbackRef(() => {\n // if (paginationStatus) {\n // onRequest({\n // ...form.getFieldsValue(),\n // [fieldNames.pageNo]: 1,\n // [fieldNames.pageSiz]: state.queryCondition.pageSize,\n // });\n // } else {\n // onRequest(form.getFieldsValue());\n // }\n // });\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSiz]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n ...filterOperate?.(form),\n };\n\n if (props.isPure) {\n return <SimpleLayout>{children}</SimpleLayout>;\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 <FormGrid.Row gutter={[15, 0]}>{formRowChildren}</FormGrid.Row>\n </SimpleLayout>\n );\n};\n","import { getUuid, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement;\n /** 表格行 key 的取值 */\n rowKey: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const paginationData =\n pagination == false\n ? false\n : {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo],\n pageSize: state.queryCondition[fieldNames.pageSize],\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n\n const onChangePage: TableProps<TAny>['onChange'] = (data, ...otherProps) => {\n if (paginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(paginationData !== false);\n if (initRequest !== false || !state.isInit) {\n if (paginationData) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n return (\n <SimpleLayout>\n {children ? <SimpleLayout>{children}</SimpleLayout> : null}\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 { 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 * <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 */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","_onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","onResetRequest","_extends2","$await_5","initialValues","getRequestParams","getFieldsValue","useImperativeHandle","onSetPaginationStatus","status","onFormFinish","_extends3","_jsx","value","tableList","tableTotal","children","onFinish","EasyTableFilter","useFormInstance","queryButtonProps","resetButtonProps","filterOperate","childrens","Children","toArray","_useEasyTableCtx","onReset","$await_1","pageSiz","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","isPure","SimpleLayout","formRowChildren","map","item","index","FormGrid","Col","concat","OperateCol","Row","gutter","EasyTableTable","rowKey","pagination","otherProps","_objectWithoutPropertiesLoose","_excluded","paginationData","showSizeChanger","current","showTotal","onChangePage","data","_len","arguments","length","Array","_key","onChange","apply","useMemo","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","_jsxs","Table","size","scroll","x","bordered","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/use-easy-table-ref.ts","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { EasyTableRefApi } from './type';\n\nexport const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n}>();\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition: void;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: () => {\n return (state) => {\n state.queryCondition = defaultState.queryCondition;\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport { forwardRef, ReactElement, useImperativeHandle, useState } from 'react';\nimport { EasyTableCtxProvider } from './context';\nimport { easyTableModel } from './model';\nimport { EasyTableRefApi } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n};\n\nexport type EasyTableProps = {\n children: ReactElement | ReactElement[];\n modelKey: string;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSiz = 10\n * @deprecated 使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /** 字段映射 */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string; uid?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n};\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 需要获取查询条件、主动发起请求等可通过ref操作\n * 2. 可通过属性 initRequest 设置初始化是否请求数据\n * 3. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props: EasyTableProps, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const [state, actions] = easyTableModel(props.modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n\n const fieldNames = {\n list: 'list',\n total: 'tatal',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm();\n\n const onRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter } = props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n props.onDataSourceChange?.(respData);\n const respDataNew = requestResultAdapter ? requestResultAdapter(respData) : respData;\n const respList = respDataNew[fieldNames.list];\n setDataSource(isArray(respList) ? respList : []);\n setTotal(respDataNew[fieldNames.total]);\n setLoading(false);\n } catch (error) {\n setLoading(false);\n void message.error(error.message);\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...values,\n });\n } else {\n void onRequest({\n ...props.initialValues,\n ...values,\n });\n }\n });\n\n const getRequestParams = () => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n };\n\n useImperativeHandle(ref, () => {\n return {\n onRequest: onRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n };\n });\n\n const getEasyTableRef = () => {\n return {\n onRequest: onRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n };\n };\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish(values);\n } else {\n if (paginationStatus) {\n void onRequest({\n ...values,\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: state.queryCondition.pageSize,\n });\n } else {\n void onRequest(values);\n }\n }\n };\n\n return (\n <EasyTableCtxProvider\n value={{\n getEasyTableRef,\n modelKey: props.modelKey,\n onRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n }}\n >\n {props.children}\n </EasyTableCtxProvider>\n );\n});\n","import { hooks } from '@wove/react';\nimport { ButtonProps, Form, FormInstance } from 'antd';\nimport { Children, ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n // 查询按钮配置\n queryButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n // 重置按钮配置\n resetButtonProps?: Omit<ButtonProps, 'onClick'> & { text?: string };\n};\n\n/**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n *3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const { queryButtonProps, resetButtonProps, filterOperate } = props;\n const { modelKey, fieldNames, onRequest, pageSize, paginationStatus, initialValues, form, onFormFinish } =\n useEasyTableCtx();\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n const childrens = Children.toArray(children);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n // const onQuery = hooks.useCallbackRef(() => {\n // if (paginationStatus) {\n // onRequest({\n // ...form.getFieldsValue(),\n // [fieldNames.pageNo]: 1,\n // [fieldNames.pageSiz]: state.queryCondition.pageSize,\n // });\n // } else {\n // onRequest(form.getFieldsValue());\n // }\n // });\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSiz]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n });\n\n const formOperateColProps = {\n rightList: [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ],\n ...filterOperate?.(form),\n };\n\n const formRowChildren = childrens\n .map((item, index) => {\n if ((item as ReactElement).type['domTypeName'] === 'FormCol') {\n return item;\n }\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .concat(<FormGrid.OperateCol key={99} {...formOperateColProps} />);\n\n return (\n <SimpleLayout>\n <Form\n form={form}\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n >\n {props.isPure ? children : <FormGrid.Row gutter={[15, 0]}>{formRowChildren}</FormGrid.Row>}\n </Form>\n </SimpleLayout>\n );\n};\n","import { getUuid, isUndefinedOrNull, TAny } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { ReactElement, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SimpleLayout } from '../simple-layout';\nimport { useEasyTableCtx } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableTableProps = Omit<TableProps<TAny>, 'dataSource' | 'loading' | 'rowKey'> & {\n children?: ReactElement;\n /** 表格行 key 的取值 */\n rowKey: string;\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\nexport const EasyTableTable = (props: EasyTableTableProps) => {\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n onSetPaginationStatus,\n } = useEasyTableCtx();\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const paginationData =\n pagination == false\n ? false\n : {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo],\n pageSize: state.queryCondition[fieldNames.pageSize],\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n\n const onChangePage: TableProps<TAny>['onChange'] = (data, ...otherProps) => {\n if (paginationData) {\n onRequest({ [fieldNames.pageSize]: data.pageSize, [fieldNames.pageNo]: data.current });\n }\n props.onChange?.(data, ...otherProps);\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(paginationData !== false);\n if (initRequest !== false || !state.isInit) {\n if (paginationData) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n return (\n <SimpleLayout>\n {children}\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n pagination={paginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </SimpleLayout>\n );\n};\n","import { useRef } from 'react';\nimport { useEasyTableCtx } from './context';\nimport { EasyTableRefApi } from './type';\n\nexport const useEasyTablRef = () => {\n const { getEasyTableRef } = useEasyTableCtx();\n const ref = useRef<EasyTableRefApi>(getEasyTableRef());\n return ref;\n};\n","import { attachPropertiesToComponent } from '../_utils/attach-properties-to-component';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { EasyTableTable } from './table';\nimport { useEasyTablRef } from './use-easy-table-ref';\n\nexport const EasyTable = attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * ```\n */\n Table: EasyTableTable,\n\n useEasyTablRef: useEasyTablRef,\n});\n"],"names":["_createCtx","_createCtx2","useEasyTableCtx","EasyTableCtxProvider","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","_easyTableModel$useSt","modelKey","useStore","pageSize","initialPaginationParams","initRequest","undefined","_useState4","paginationStatus","setPaginationStatus","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onRequest","_hooks","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","_onRequest","requestResultAdapter","paramsNew","respData","respDataNew","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","onDataSourceChange","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","onResetRequest","_extends2","$await_5","initialValues","getRequestParams","getFieldsValue","useImperativeHandle","getEasyTableRef","onSetPaginationStatus","status","onFormFinish","_extends3","_jsx","value","tableList","tableTotal","children","EasyTableFilter","queryButtonProps","resetButtonProps","filterOperate","_useEasyTableCtx","childrens","Children","toArray","onReset","$await_1","pageSiz","formOperateColProps","rightList","hidden","ButtonWrapper","type","htmlType","text","onClick","formRowChildren","map","item","index","FormGrid","Col","concat","OperateCol","SimpleLayout","onFinish","isPure","Row","gutter","EasyTableTable","rowKey","pagination","otherProps","_objectWithoutPropertiesLoose","_excluded","paginationData","showSizeChanger","current","showTotal","onChangePage","data","_len","arguments","length","Array","_key","onChange","apply","useMemo","isUndefinedOrNull","getUuid","fbaHooks","useEffectCustom","_jsxs","Table","size","scroll","x","bordered","useEasyTablRef","useRef","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
@@ -9,5 +9,5 @@ import './../input-wrapper/index.css';
|
|
|
9
9
|
import './../input-text-area-wrapper/index.css';
|
|
10
10
|
import './index.css';
|
|
11
11
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
12
|
-
import e from"@ant-design/icons/es/icons/PlusOutlined";import{a as n,_ as r}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{Form as a,Checkbox as i,Tag as l,InputNumber as t,Radio as o,Typography as d,Space as u,Button as m,Input as f,Table as s}from"antd";import{useMemo as c,useState as v,useEffect as p,Fragment as g}from"react";import{isArray as b}from"@dimjs/lang/cjs/is-array";import{extend as C}from"@dimjs/utils/cjs/extend";import{classNames as h}from"@dimjs/utils/cjs/class-names";import{hooks as I}from"@wove/react/cjs/hooks";import{jsx as w,jsxs as x,Fragment as R}from"react/jsx-runtime";import{D as N}from"../date-picker-wrapper-407942d1.js";import{D as j}from"../date-range-picker-wrapper-d22d0f60.js";import{I as P}from"../input-wrapper-b378eb5a.js";import{fbaHooks as y}from"../fba-hooks/index.js";import{arrayField2LabelValue as k}from"@flatbiz/utils";import{S as L}from"../selector-wrapper-6560eb49.js";import{isBoolean as F}from"@dimjs/lang/cjs/is-boolean";import{isNumber as T}from"@dimjs/lang/cjs/is-number";import{isString as A}from"@dimjs/lang/cjs/is-string";import{I as O}from"../input-text-area-wrapper-c958fba0.js";import{U as S}from"../upload-wrapper-f20208d6.js";import V from"@ant-design/icons/es/icons/DeleteOutlined";import"dayjs";import"../time-2782aa9b.js";import"../use-responsive-point-21b8c601.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status-03fc60e2.js";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-plain-object";import"react-dom";var B=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var G=function e(r){var a=r.fieldConfig,t=a.editableConfig,o=a.editable,d=a.render;var u=t.editableComptProps;var m=c((function(){if(o)return[];var e=b(r.value)?r.value:[];var n=u.options||[];if(!b(n)||n.length===0){return e.map((function(e){return{label:e,value:e}}))}var a=[];e.forEach((function(e){var r=n.find((function(n){return n.value===e}));a.push(r?r:{label:e,value:e})}));return a}),[o,u.options,r.value]);var f=I.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e)}));if(o){return w(i.Group,n({},u,{value:r.value,onChange:f}))}return w("span",{className:"editable-checkbox-group-view",children:d?d(r.value):m.map((function(e,n){return w(l,{color:"#1890ff",children:e.label},n)}))})};var W=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-checkbox-group-form-item",i==null?void 0:i.className),children:w(G,n({},r))}))};var D=function e(r){var i=r.fieldConfig,l=i.formItemProps,t=i.editableConfig;return w(a.Item,n({},l,{name:r.name,className:h("editable-date-picker-wraper-form-item",l==null?void 0:l.className),children:w(N,n({allowClear:true},t.editableComptProps))}))};var _=function e(r){var a=r.fieldConfig,i=a.editableConfig,l=a.editable,t=a.render;var o=i.editableComptProps;var d=I.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null?void 0:o.onChange==null?void 0:o.onChange(e)}));var u=c((function(){var e=b(r.value)?r.value:[];if(l)return undefined;return e.join("~")}),[l,r.value]);if(l){return w(j,n({allowClear:true},o,{value:r.value,onChange:d}))}return w("span",{className:"editable-date-range-picker-view",children:t?t(r.value):u})};var E=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-date-range-picker-wraper-form-item",i==null?void 0:i.className),children:w(_,n({},r))}))};var M=function e(r){var i=r.fieldConfig,l=i.formItemProps,t=i.editableConfig;return w(a.Item,n({},l,{name:r.name,children:w(P,n({allowClear:true},t.editableComptProps))}))};var q=function e(r){var i=r.fieldConfig,l=i.formItemProps,o=i.editableConfig;return w(a.Item,n({},l,{name:r.name,className:h("editable-input-number-form-item",l==null?void 0:l.className),children:w(t,n({},o.editableComptProps))}))};var z=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,d=a.render;var u=i.editableComptProps;var m=y.useThemeToken();var f=c((function(){if(t)return[];var e=r.value;var n=u.options||[];if(!b(n)||n.length===0){return e}var a=n.find((function(n){return n.value===e}));return(a==null?void 0:a.label)||e}),[t,u.options,r.value]);var s=I.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e.target.value);u.onChange==null?void 0:u.onChange(e)}));if(t){return w(o.Group,n({},u,{value:r.value,onChange:s}))}return w("span",{className:"editable-radio-group-view",children:d?d(r.value):f?w(l,{color:m.colorPrimary,children:f}):null})};var H=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-radio-group-form-item",i==null?void 0:i.className),children:w(z,n({},r))}))};var J=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,o=a.render;var d=i.editableComptProps;var u=v([]),m=u[0],f=u[1];var s=v([]),c=s[0],C=s[1];var h=y.useThemeToken();p((function(){if(!t){var e=b(r.value)?r.value:r.value===undefined?[]:[r.value];if(m.length===0){C(e.map((function(e){return{label:e,value:e}})))}var n=[];e.forEach((function(e){var r=m.find((function(n){return n.value===e}));n.push(r?r:{label:String(e),value:e})}));C(n)}}),[t,d.fieldNames,r.value,m]);var R=I.useCallbackRef((function(e){f(k(e||[],d.fieldNames))}));var N=I.useCallbackRef((function(e,n){r.onChange==null?void 0:r.onChange(e);d.onChange==null?void 0:d.onChange(e,n)}));if(t){return w(L,n({},d,{value:r.value,onChange:N,onSelectorListAllChange:R}))}return x(g,{children:[w("div",{style:{display:"none"},children:w(L,n({},d,{onSelectorListAllChange:R}))}),w("span",{className:"editable-selector-view",children:o?o(r.value,m):c.map((function(e,n){return w(l,{color:h.colorPrimary,children:e.label},n)}))})]})};var K=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-selector-wrapper-form-item",i==null?void 0:i.className),children:w(J,n({},r))}))};var U=function e(n){var r,a;var i=c((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=A(n.value)||T(n.value)||F(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var l=((a=n.fieldConfig)==null?void 0:a.render==null?void 0:a.render(n.value))||i;return w(d.Paragraph,{className:"editable-text-view",ellipsis:A(l)?{tooltip:l}:true,children:l})};var Q=function e(n){return w(a.Item,{noStyle:true,name:n.name,children:w(U,{name:n.name,fieldConfig:n.fieldConfig})})};var X=function e(r){var i=r.fieldConfig,l=i.formItemProps,t=i.editableConfig;return w(a.Item,n({},l,{name:r.name,children:w(O,n({},t.editableComptProps))}))};var Y=["children"];var Z=function e(a){var i=a.fieldConfig,l=i.editableConfig,t=i.render,o=i.editable;var d=l.editableComptProps,u=d.children,m=r(d,Y);if(o){return w(S,n({listType:"text"},m,{value:a.value,onChange:a.onChange,children:u}))}return w("div",{className:"upload-wrapper-selector-view",children:t?t(a.value):w(S,n({listType:"text"},m,{value:a.value,disabled:true}))})};var $=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-upload-wrapper-form-item",i==null?void 0:i.className),children:w(Z,n({},r))}))};var ee=function e(r){var a=r.fieldConfig,i=a.editableConfig,l=a.editable;var t=B(l,r.tableRowIndex);var o=C({},r.fieldConfig,{editable:t});var d={name:r.name,fieldConfig:o};if((i==null?void 0:i.type)==="input"&&t){return w(M,n({},d))}else if((i==null?void 0:i.type)==="inputNumber"&&t){return w(q,n({},d))}else if((i==null?void 0:i.type)==="textArea"&&t){return w(X,n({},d))}else if((i==null?void 0:i.type)==="datePickerWrapper"&&t){return w(D,n({},d))}else if((i==null?void 0:i.type)==="dateRangePickerWrapper"){return w(E,n({},d))}else if((i==null?void 0:i.type)==="selectorWrapper"){return w(K,n({},d))}else if((i==null?void 0:i.type)==="checkboxGroup"){return w(W,n({},d))}else if((i==null?void 0:i.type)==="radioGroup"){return w(H,n({},d))}else if((i==null?void 0:i.type)==="uploadWrapper"){return w($,n({},d))}else if((i==null?void 0:i.type)==="custom"){return i.editableComptProps({name:r.name,editable:t,completeName:r.completeName,tableRowIndex:r.tableRowIndex})}return w(Q,n({},d))};var ne=function e(n){var r=a.useFormInstance();var i=n.formListConfig,l=i.onFormListBeforeRender,t=i.editableConfigList,o=i.onFormListAfterRender,d=i.onFormListItemBeforeRender,m=i.onFormListItemAfterRender,f=i.deleteOperateRender;return w(a.List,{name:n.name,children:function e(a,i){var s=i.add,c=i.remove;return x(R,{children:[l?l({tableRowIndex:n.tableRowIndex,add:s,get value(){return r.getFieldValue(n.completeName)}}):null,a.map((function(e,a){var i=t.find((function(e){return B(e.editable,n.tableRowIndex)}));var l=h("editable-inner-formlist-item","editable-inner-formlist-item-"+n.name[1],{"editable-inner-formlist-item_preview":!i});return x("div",{className:l,children:[d==null?void 0:d({add:s,remove:function e(){c(a)},formListItemIndex:a,tableRowIndex:n.tableRowIndex,get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}}),x(u,{children:[t.map((function(r,a){return w(ee,{name:[e.name,r.fieldName],fieldConfig:r,tableRowIndex:n.tableRowIndex,completeName:[].concat(n.completeName,[e.name])},a)})),i?w(re,{deleteOperateRender:f,remove:function e(){c(a)},index:a}):undefined]}),m==null?void 0:m({add:s,formListItemIndex:a,tableRowIndex:n.tableRowIndex,remove:function e(){c(a)},get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}})]},a)})),o?o({tableRowIndex:n.tableRowIndex,add:s,get value(){return r.getFieldValue(n.completeName)}}):null]})}})};var re=function e(n){return w(a.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):w(m,{type:"link",danger:true,icon:w(V,{}),onClick:n.remove,children:"删除"})})};var ae=function e(n){if(n.fieldConfig){if(b(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return w(ne,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return x(g,{children:[w(ee,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?w(a.Item,{hidden:true,name:n.hiddenField.dataIndex,children:w(f,{})}):null]})}}return w(Q,{name:n.name})};var ie=["fieldConfig","renderMiddleware"];var le=function i(l){var t;var o=c((function(){if(!l.columns)return[];return l.columns.map((function(e){var a=e.fieldConfig,i=e.renderMiddleware,t=r(e,ie);return n({onCell:function e(){var n;return{valign:((n=l.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},t,{render:function n(r,t){var o=[l.name,t.name];var d=e.dataIndex?[].concat(o,[e.dataIndex]):o;var u=i==null?void 0:i({name:d,tableRowIndex:t.name,operation:t.operation,tableRowName:o});if(u){return u}var m=typeof a==="function"?a({name:d,tableRowIndex:t.name,tableRowName:o}):a;return w(ae,{name:e.dataIndex?[t.name,e.dataIndex]:[t.name],completeName:d,fieldConfig:m,tableRowIndex:t.name,hiddenField:e.hiddenField})}})}))}),[l.columns,l.name,(t=l.tableProps)==null?void 0:t.cellVerticalAlign]);return w("div",{className:"editable-table",children:w(a.List,{name:l.name,rules:l.rules,children:function r(a,i){return x(g,{children:[l.onTableBeforeRender?l.onTableBeforeRender(i,a.length):null,w(s,n({scroll:{x:"max-content"},pagination:false,rowKey:"key"},l.tableProps,{dataSource:a.map((function(e){return n({},e,{operation:i})})),columns:o})),l.onTableAfterRender?l.onTableAfterRender(i,a.length):w(m,{type:"dashed",onClick:function e(){return i.add()},block:true,icon:w(e,{}),style:{marginTop:15},children:"新增"})]})}})})};export{le as EditableTable};
|
|
12
|
+
import e from"@ant-design/icons/es/icons/PlusOutlined";import{a as n,_ as r}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{Form as a,Checkbox as i,Tag as l,InputNumber as t,Radio as o,Typography as d,Space as u,Button as m,Input as f,Table as s}from"antd";import{useMemo as c,useState as v,useEffect as p,Fragment as g}from"react";import{isArray as b}from"@dimjs/lang/cjs/is-array";import{extend as C}from"@dimjs/utils/cjs/extend";import{classNames as h}from"@dimjs/utils/cjs/class-names";import{hooks as I}from"@wove/react/cjs/hooks";import{jsx as w,jsxs as x,Fragment as R}from"react/jsx-runtime";import{D as N}from"../date-picker-wrapper-407942d1.js";import{D as j}from"../date-range-picker-wrapper-d22d0f60.js";import{I as P}from"../input-wrapper-b378eb5a.js";import{fbaHooks as y}from"../fba-hooks/index.js";import{arrayField2LabelValue as k}from"@flatbiz/utils";import{S as L}from"../selector-wrapper-6560eb49.js";import{isBoolean as F}from"@dimjs/lang/cjs/is-boolean";import{isNumber as T}from"@dimjs/lang/cjs/is-number";import{isString as A}from"@dimjs/lang/cjs/is-string";import{I as O}from"../input-text-area-wrapper-c958fba0.js";import{U as S}from"../upload-wrapper-f20208d6.js";import V from"@ant-design/icons/es/icons/DeleteOutlined";import"dayjs";import"../time-2782aa9b.js";import"../use-responsive-point-21b8c601.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status-03fc60e2.js";import"@dimjs/utils/cjs/json";import"pubsub-js";import"@dimjs/lang/cjs/is-object";import"@dimjs/lang/cjs/is-plain-object";import"react-dom";var B=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var G=function e(r){var a=r.fieldConfig,t=a.editableConfig,o=a.editable,d=a.render;var u=t.editableComptProps;var m=c((function(){if(o)return[];var e=b(r.value)?r.value:[];var n=u.options||[];if(!b(n)||n.length===0){return e.map((function(e){return{label:e,value:e}}))}var a=[];e.forEach((function(e){var r=n.find((function(n){return n.value===e}));a.push(r?r:{label:e,value:e})}));return a}),[o,u.options,r.value]);var f=I.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);u.onChange==null?void 0:u.onChange(e)}));if(o){return w(i.Group,n({},u,{value:r.value,onChange:f}))}return w("span",{className:"editable-checkbox-group-view",children:d?d(r.value):m.map((function(e,n){return w(l,{color:"#1890ff",children:e.label},n)}))})};var W=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-checkbox-group-form-item",i==null?void 0:i.className),children:w(G,n({},r))}))};var D=function e(r){var i=r.fieldConfig,l=i.formItemProps,t=i.editableConfig;return w(a.Item,n({},l,{name:r.name,className:h("editable-date-picker-wraper-form-item",l==null?void 0:l.className),children:w(N,n({allowClear:true},t.editableComptProps))}))};var _=function e(r){var a=r.fieldConfig,i=a.editableConfig,l=a.editable,t=a.render;var o=i.editableComptProps;var d=I.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e);o==null?void 0:o.onChange==null?void 0:o.onChange(e)}));var u=c((function(){var e=b(r.value)?r.value:[];if(l)return undefined;return e.join("~")}),[l,r.value]);if(l){return w(j,n({allowClear:true},o,{value:r.value,onChange:d}))}return w("span",{className:"editable-date-range-picker-view",children:t?t(r.value):u})};var E=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-date-range-picker-wraper-form-item",i==null?void 0:i.className),children:w(_,n({},r))}))};var M=function e(r){var i=r.fieldConfig,l=i.formItemProps,t=i.editableConfig;return w(a.Item,n({},l,{name:r.name,children:w(P,n({allowClear:true},t.editableComptProps))}))};var q=function e(r){var i=r.fieldConfig,l=i.formItemProps,o=i.editableConfig;return w(a.Item,n({},l,{name:r.name,className:h("editable-input-number-form-item",l==null?void 0:l.className),children:w(t,n({},o.editableComptProps))}))};var z=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,d=a.render;var u=i.editableComptProps;var m=y.useThemeToken();var f=c((function(){if(t)return[];var e=r.value;var n=u.options||[];if(!b(n)||n.length===0){return e}var a=n.find((function(n){return n.value===e}));return(a==null?void 0:a.label)||e}),[t,u.options,r.value]);var s=I.useCallbackRef((function(e){r.onChange==null?void 0:r.onChange(e.target.value);u.onChange==null?void 0:u.onChange(e)}));if(t){return w(o.Group,n({},u,{value:r.value,onChange:s}))}return w("span",{className:"editable-radio-group-view",children:d?d(r.value):f?w(l,{color:m.colorPrimary,children:f}):null})};var H=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-radio-group-form-item",i==null?void 0:i.className),children:w(z,n({},r))}))};var J=function e(r){var a=r.fieldConfig,i=a.editableConfig,t=a.editable,o=a.render;var d=i.editableComptProps;var u=v([]),m=u[0],f=u[1];var s=v([]),c=s[0],C=s[1];var h=y.useThemeToken();p((function(){if(!t){var e=b(r.value)?r.value:r.value===undefined?[]:[r.value];if(m.length===0){C(e.map((function(e){return{label:e,value:e}})))}var n=[];e.forEach((function(e){var r=m.find((function(n){return n.value===e}));n.push(r?r:{label:String(e),value:e})}));C(n)}}),[t,d.fieldNames,r.value,m]);var R=I.useCallbackRef((function(e){f(k(e||[],d.fieldNames))}));var N=I.useCallbackRef((function(e,n){r.onChange==null?void 0:r.onChange(e);d.onChange==null?void 0:d.onChange(e,n)}));if(t){return w(L,n({},d,{value:r.value,onChange:N,onSelectorListAllChange:R}))}return x(g,{children:[w("div",{style:{display:"none"},children:w(L,n({},d,{onSelectorListAllChange:R}))}),w("span",{className:"editable-selector-view",children:o?o(r.value,m):c.map((function(e,n){return w(l,{color:h.colorPrimary,children:e.label},n)}))})]})};var K=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-selector-wrapper-form-item",i==null?void 0:i.className),children:w(J,n({},r))}))};var U=function e(n){var r,a;var i=c((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=A(n.value)||T(n.value)||F(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var l=((a=n.fieldConfig)==null?void 0:a.render==null?void 0:a.render(n.value))||i;return w(d.Paragraph,{className:"editable-text-view",ellipsis:A(l)?{tooltip:l}:true,children:l})};var Q=function e(n){return w(a.Item,{noStyle:true,name:n.name,children:w(U,{name:n.name,fieldConfig:n.fieldConfig})})};var X=function e(r){var i=r.fieldConfig,l=i.formItemProps,t=i.editableConfig;return w(a.Item,n({},l,{name:r.name,children:w(O,n({},t.editableComptProps))}))};var Y=["children"];var Z=function e(a){var i=a.fieldConfig,l=i.editableConfig,t=i.render,o=i.editable;var d=l.editableComptProps,u=d.children,m=r(d,Y);if(o){return w(S,n({listType:"text"},m,{value:a.value,onChange:a.onChange,children:u}))}return w("div",{className:"upload-wrapper-selector-view",children:t?t(a.value):w(S,n({listType:"text"},m,{value:a.value,disabled:true}))})};var $=function e(r){var i=r.fieldConfig.formItemProps;return w(a.Item,n({},i,{name:r.name,className:h("editable-upload-wrapper-form-item",i==null?void 0:i.className),children:w(Z,n({},r))}))};var ee=function e(r){var a=r.fieldConfig,i=a.editableConfig,l=a.editable;var t=B(l,r.tableRowIndex);var o=C({},r.fieldConfig,{editable:t});var d={name:r.name,fieldConfig:o};if((i==null?void 0:i.type)==="input"&&t){return w(M,n({},d))}else if((i==null?void 0:i.type)==="inputNumber"&&t){return w(q,n({},d))}else if((i==null?void 0:i.type)==="textArea"&&t){return w(X,n({},d))}else if((i==null?void 0:i.type)==="datePickerWrapper"&&t){return w(D,n({},d))}else if((i==null?void 0:i.type)==="dateRangePickerWrapper"){return w(E,n({},d))}else if((i==null?void 0:i.type)==="selectorWrapper"){return w(K,n({},d))}else if((i==null?void 0:i.type)==="checkboxGroup"){return w(W,n({},d))}else if((i==null?void 0:i.type)==="radioGroup"){return w(H,n({},d))}else if((i==null?void 0:i.type)==="uploadWrapper"){return w($,n({},d))}else if((i==null?void 0:i.type)==="custom"){return i.editableComptProps({name:r.name,editable:t,completeName:r.completeName,tableRowIndex:r.tableRowIndex})}return w(Q,n({},d))};var ne=function e(n){var r=a.useFormInstance();var i=n.formListConfig,l=i.onFormListBeforeRender,t=i.editableConfigList,o=i.onFormListAfterRender,d=i.onFormListItemBeforeRender,m=i.onFormListItemAfterRender,f=i.deleteOperateRender;return w(a.List,{name:n.name,children:function e(a,i){var s=i.add,c=i.remove;return x(R,{children:[l?l({tableRowIndex:n.tableRowIndex,add:s,get value(){return r.getFieldValue(n.completeName)}}):null,a.map((function(e,a){var i=t.find((function(e){return B(e.editable,n.tableRowIndex)}));var l=h("editable-inner-formlist-item","editable-inner-formlist-item-"+n.name[1],{"editable-inner-formlist-item_preview":!i});return x("div",{className:l,children:[d==null?void 0:d({add:s,remove:function e(){c(a)},formListItemIndex:a,tableRowIndex:n.tableRowIndex,get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}}),x(u,{children:[t.map((function(r,a){return w(ee,{name:[e.name,r.fieldName],fieldConfig:r,tableRowIndex:n.tableRowIndex,completeName:[].concat(n.completeName,[e.name])},a)})),i?w(re,{deleteOperateRender:f,remove:function e(){c(a)},index:a}):undefined]}),m==null?void 0:m({add:s,formListItemIndex:a,tableRowIndex:n.tableRowIndex,remove:function e(){c(a)},get value(){return r.getFieldValue([].concat(n.completeName,[e.name]))}})]},a)})),o?o({tableRowIndex:n.tableRowIndex,add:s,get value(){return r.getFieldValue(n.completeName)}}):null]})}})};var re=function e(n){return w(a.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):w(m,{type:"link",danger:true,icon:w(V,{}),onClick:n.remove,children:"删除"})})};var ae=function e(n){if(n.fieldConfig){if(b(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return w(ne,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{return x(g,{children:[w(ee,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),n.hiddenField?w(a.Item,{hidden:true,name:n.hiddenField.dataIndex,children:w(f,{})}):null]})}}return w(Q,{name:n.name})};var ie=["fieldConfig","renderMiddleware"];var le=function i(l){var t;var o=c((function(){if(!l.columns)return[];return l.columns.map((function(e){var a=e.fieldConfig,i=e.renderMiddleware,t=r(e,ie);return n({onCell:function e(){var n;return{valign:((n=l.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},t,{render:function n(r,t,o){var d=[l.name,t.name];var u=e.dataIndex?[].concat(d,[e.dataIndex]):d;var m=i==null?void 0:i({name:u,tableRowIndex:t.name,operation:t.operation,tableRowName:d,index:o});if(m){return m}var f=typeof a==="function"?a({name:u,tableRowIndex:t.name,tableRowName:d}):a;return w(ae,{name:e.dataIndex?[t.name,e.dataIndex]:[t.name],completeName:u,fieldConfig:f,tableRowIndex:t.name,hiddenField:e.hiddenField})}})}))}),[l.columns,l.name,(t=l.tableProps)==null?void 0:t.cellVerticalAlign]);return w("div",{className:"editable-table",children:w(a.List,{name:l.name,rules:l.rules,children:function r(a,i){return x(g,{children:[l.onTableBeforeRender?l.onTableBeforeRender(i,a.length):null,w(s,n({scroll:{x:"max-content"},pagination:false,rowKey:"key"},l.tableProps,{dataSource:a.map((function(e){return n({},e,{operation:i})})),columns:o})),l.onTableAfterRender?l.onTableAfterRender(i,a.length):w(m,{type:"dashed",onClick:function e(){return i.add()},block:true,icon:w(e,{}),style:{marginTop:15},children:"新增"})]})}})})};export{le as EditableTable};
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-table/utils.ts","@flatbiz/antd/src/editable-table/form-item/checkbox-group.tsx","@flatbiz/antd/src/editable-table/form-item/date-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/date-range-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/input.tsx","@flatbiz/antd/src/editable-table/form-item/input-number.tsx","@flatbiz/antd/src/editable-table/form-item/radio-group.tsx","@flatbiz/antd/src/editable-table/form-item/selector-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/text.tsx","@flatbiz/antd/src/editable-table/form-item/textarea.tsx","@flatbiz/antd/src/editable-table/form-item/upload-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/index.tsx","@flatbiz/antd/src/editable-table/form-list-item/form-list.tsx","@flatbiz/antd/src/editable-table/form-list-item/index.tsx","@flatbiz/antd/src/editable-table/editable-table.tsx"],"sourcesContent":["import { FieldSingleConfig } from './type';\n\nexport const getEditable = (editable: FieldSingleConfig['editable'], tableRowIndex: number) => {\n return typeof editable === 'boolean' ? editable : editable?.({ tableRowIndex });\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableCheckboxGroupConfig, EditableFormItemProps } from '../type';\n\ntype CheckboxGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst CheckboxGroupFormItemContent = (props: CheckboxGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableCheckboxGroupConfig).editableComptProps;\n const viewLabelList = useMemo(() => {\n if (editable) return [];\n const value = isArray(props.value) ? props.value : ([] as TAny[]);\n const options = (editableComptProps.options || []) as LabelValueItem[];\n if (!isArray(options) || options.length === 0) {\n return value.map((item) => ({ label: item, value: item }));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = options.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: item, value: item });\n });\n return returnList;\n }, [editable, editableComptProps.options, props.value]);\n\n const onChange = hooks.useCallbackRef((value) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value);\n });\n\n if (editable) {\n return <Checkbox.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-checkbox-group-view\">\n {render\n ? render(props.value)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color=\"#1890ff\">\n {tag.label}\n </Tag>\n ))}\n </span>\n );\n};\n\nexport const CheckboxGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-checkbox-group-form-item', formItemProps?.className)}\n >\n <CheckboxGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { DatePickerWrapper } from '../../date-picker-wrapper';\nimport { EditableDatePickerWrapperConfig, EditableFormItemProps } from '../type';\n\nexport const DatePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-picker-wraper-form-item', formItemProps?.className)}\n >\n <DatePickerWrapper\n allowClear\n {...(editableConfig as EditableDatePickerWrapperConfig).editableComptProps}\n />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { DateRangePickerWrapper } from '../../date-range-picker-wrapper';\nimport { EditableDateRangePickerWrapperConfig, EditableFormItemProps } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: [string, string];\n onChange?: (value?: [string, string]) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableDateRangePickerWrapperConfig).editableComptProps;\n\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewLabel = useMemo(() => {\n const value = isArray(props.value) ? props.value : ([] as any[]);\n if (editable) return undefined;\n return value.join('~');\n }, [editable, props.value]);\n\n if (editable) {\n return (\n <DateRangePickerWrapper allowClear {...editableComptProps} value={props.value} onChange={onChange} />\n );\n }\n return <span className=\"editable-date-range-picker-view\">{render ? render(props.value) : viewLabel}</span>;\n};\n\nexport const DateRangePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-range-picker-wraper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputWrapper } from '../../input-wrapper';\nimport { EditableFormItemProps, EditableInputConfig } from '../type';\n\nexport const InputFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputWrapper allowClear {...(editableConfig as EditableInputConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form, InputNumber } from 'antd';\nimport { EditableFormItemProps, EditableInputNumberConfig } from '../type';\n\nexport const InputNumberFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-input-number-form-item', formItemProps?.className)}\n >\n <InputNumber {...(editableConfig as EditableInputNumberConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport { EditableFormItemProps, EditableRadioGroupConfig } from '../type';\n\ntype RadioGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number;\n onChange?: (value: string | number) => void;\n};\n\nconst RadioGroupFormItemContent = (props: RadioGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableRadioGroupConfig).editableComptProps;\n\n const theme = fbaHooks.useThemeToken();\n\n const viewLabel = useMemo(() => {\n if (editable) return [];\n const value = props.value;\n const options = (editableComptProps.options || []) as LabelValueItem<string | number>[];\n if (!isArray(options) || options.length === 0) {\n return value;\n }\n const target = options.find((item) => item.value === value);\n return target?.label || value;\n }, [editable, editableComptProps.options, props.value]);\n\n const onChange = hooks.useCallbackRef((e) => {\n props.onChange?.(e.target.value as string | number);\n editableComptProps.onChange?.(e);\n });\n\n if (editable) {\n return <Radio.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-radio-group-view\">\n {render ? render(props.value) : viewLabel ? <Tag color={theme.colorPrimary}>{viewLabel}</Tag> : null}\n </span>\n );\n};\n\nexport const RadioGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-radio-group-form-item', formItemProps?.className)}\n >\n <RadioGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { arrayField2LabelValue, LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { Fragment, useEffect, useState } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport { SelectorWrapper } from '../../selector-wrapper';\nimport { EditableFormItemProps, EditableSelectWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSelectWrapperConfig).editableComptProps;\n const [selectorList, setSelectorList] = useState<LabelValueItem[]>([]);\n const [viewLabelList, setviewLabelList] = useState<LabelValueItem[]>([]);\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n if (!editable) {\n const value = isArray(props.value) ? props.value : props.value === undefined ? [] : [props.value];\n if (selectorList.length === 0) {\n setviewLabelList(value.map((item) => ({ label: item as string, value: item })));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = selectorList.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: String(item), value: item });\n });\n setviewLabelList(returnList);\n }\n }, [editable, editableComptProps.fieldNames, props.value, selectorList]);\n\n const onSelectorListAllChange = hooks.useCallbackRef((dataList: TPlainObject[]) => {\n setSelectorList(arrayField2LabelValue(dataList || [], editableComptProps.fieldNames));\n });\n\n const onChange = hooks.useCallbackRef((value, selectList) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value, selectList);\n });\n\n if (editable) {\n return (\n <SelectorWrapper\n {...editableComptProps}\n value={props.value}\n onChange={onChange}\n onSelectorListAllChange={onSelectorListAllChange}\n />\n );\n }\n return (\n <Fragment>\n <div style={{ display: 'none' }}>\n <SelectorWrapper {...editableComptProps} onSelectorListAllChange={onSelectorListAllChange} />\n </div>\n <span className=\"editable-selector-view\">\n {render\n ? render(props.value, selectorList)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={theme.colorPrimary}>\n {tag.label}\n </Tag>\n ))}\n </span>\n </Fragment>\n );\n};\n\nexport const SelectorWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-selector-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form, Typography } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, FieldSingleConfig } from '../type';\n\nconst FormItemTextContent = (props: {\n value?: string | number;\n name: EditableFormItemProps['name'];\n fieldConfig?: FieldSingleConfig;\n}) => {\n const value = useMemo(() => {\n if (props.fieldConfig?.render) return undefined;\n const isBaseData =\n isString(props.value) || isNumber(props.value) || isBoolean(props.value) || !props.value;\n if (!isBaseData) {\n console.warn(`Form.List name:【${props.name}】数据【${JSON.stringify(props.value)}】不能渲染在页面中`);\n }\n return isBaseData ? props.value : undefined;\n }, [props.fieldConfig?.render, props.name, props.value]);\n const viewText = props.fieldConfig?.render?.(props.value) || value;\n return (\n <Typography.Paragraph\n className=\"editable-text-view\"\n ellipsis={isString(viewText) ? { tooltip: viewText } : true}\n >\n {viewText}\n </Typography.Paragraph>\n );\n};\n\nexport const TextFormItem = (props: { name: Array<number | string>; fieldConfig?: FieldSingleConfig }) => {\n return (\n <Form.Item noStyle name={props.name}>\n <FormItemTextContent name={props.name} fieldConfig={props.fieldConfig} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputTextAreaWrapper } from '../../input-text-area-wrapper';\nimport { EditableFormItemProps, EditableTextareaConfig } from '../type';\n\nexport const TextAreaFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputTextAreaWrapper {...(editableConfig as EditableTextareaConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { UploadWrapper } from '../../upload-wrapper';\nimport { EditableFileUploadConfig, EditableFormItemProps } from '../type';\n\nconst UploadWrapperFormItemContent = (\n props: EditableFormItemProps & { value?: TAny; onChange?: (value?: TAny) => void },\n) => {\n const { editableConfig, render, editable } = props.fieldConfig;\n const { children, ...otherProps } = (editableConfig as EditableFileUploadConfig).editableComptProps;\n if (editable) {\n return (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} onChange={props.onChange}>\n {children}\n </UploadWrapper>\n );\n }\n return (\n <div className=\"upload-wrapper-selector-view\">\n {render ? (\n render(props.value)\n ) : (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} disabled={true} />\n )}\n </div>\n );\n};\n\nexport const UploadWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-upload-wrapper-form-item', formItemProps?.className)}\n >\n <UploadWrapperFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { extend } from '@dimjs/utils';\nimport { FieldSingleConfig } from '../type';\nimport { getEditable } from '../utils';\nimport { CheckboxGroupFormItem } from './checkbox-group';\nimport { DatePickerWrapperFormItem } from './date-picker-wrapper';\nimport { DateRangePickerWrapperFormItem } from './date-range-picker-wrapper';\nimport { InputFormItem } from './input';\nimport { InputNumberFormItem } from './input-number';\nimport { RadioGroupFormItem } from './radio-group';\nimport { SelectorWrapperFormItem } from './selector-wrapper';\nimport { TextFormItem } from './text';\nimport { TextAreaFormItem } from './textarea';\nimport { UploadWrapperFormItem } from './upload-wrapper';\n\nexport type FormItemAdapterProps = {\n name: Array<number | string>;\n completeName: Array<number | string>;\n fieldConfig: FieldSingleConfig;\n tableRowIndex: number;\n};\n\nexport const FormItemAdapter = (props: FormItemAdapterProps) => {\n const { editableConfig, editable } = props.fieldConfig;\n const newEditable = getEditable(editable, props.tableRowIndex);\n const fieldConfig = extend({}, props.fieldConfig, { editable: newEditable });\n\n const commomProps = {\n name: props.name,\n fieldConfig,\n };\n\n if (editableConfig?.type === 'input' && newEditable) {\n return <InputFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'inputNumber' && newEditable) {\n return <InputNumberFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'textArea' && newEditable) {\n return <TextAreaFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'datePickerWrapper' && newEditable) {\n return <DatePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'dateRangePickerWrapper') {\n return <DateRangePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'selectorWrapper') {\n return <SelectorWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'checkboxGroup') {\n return <CheckboxGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'radioGroup') {\n return <RadioGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'uploadWrapper') {\n return <UploadWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'custom') {\n return editableConfig.editableComptProps({\n name: props.name,\n editable: newEditable,\n completeName: props.completeName,\n tableRowIndex: props.tableRowIndex,\n });\n }\n\n return <TextFormItem {...commomProps} />;\n};\n","import { DeleteOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Button, Form, Space } from 'antd';\nimport { FormItemAdapter } from '../form-item';\nimport { FormListConfig } from '../type';\nimport { getEditable } from '../utils';\n\nexport type FormListProps = {\n name: Array<number | string>;\n formListConfig: FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n};\n\nexport const FormList = (props: FormListProps) => {\n const from = Form.useFormInstance();\n const {\n onFormListBeforeRender,\n editableConfigList,\n onFormListAfterRender,\n onFormListItemBeforeRender,\n onFormListItemAfterRender,\n deleteOperateRender,\n } = props.formListConfig;\n return (\n <Form.List name={props.name}>\n {(fields, { add, remove }) => (\n <>\n {onFormListBeforeRender\n ? onFormListBeforeRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n {fields.map((fieldChild, index) => {\n const hasEditable = editableConfigList.find((item) =>\n getEditable(item.editable, props.tableRowIndex),\n );\n const className = classNames(\n 'editable-inner-formlist-item',\n `editable-inner-formlist-item-${props.name[1]}`,\n { 'editable-inner-formlist-item_preview': !hasEditable },\n );\n return (\n <div key={index} className={className}>\n {onFormListItemBeforeRender?.({\n add,\n remove: () => {\n remove(index);\n },\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n <Space>\n {editableConfigList.map((fieldItem, index) => {\n return (\n <FormItemAdapter\n name={[fieldChild.name, fieldItem.fieldName]}\n fieldConfig={fieldItem}\n key={index}\n tableRowIndex={props.tableRowIndex}\n completeName={[...props.completeName, fieldChild.name]}\n />\n );\n })}\n {hasEditable ? (\n <DeleteFormListItem\n deleteOperateRender={deleteOperateRender}\n remove={() => {\n remove(index);\n }}\n index={index}\n />\n ) : undefined}\n </Space>\n {onFormListItemAfterRender?.({\n add,\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n remove: () => {\n remove(index);\n },\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n </div>\n );\n })}\n {onFormListAfterRender\n ? onFormListAfterRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n </>\n )}\n </Form.List>\n );\n};\n\nconst DeleteFormListItem = (props: {\n deleteOperateRender: FormListConfig['deleteOperateRender'];\n remove: () => void;\n index: number;\n}) => {\n return (\n <Form.Item>\n {props.deleteOperateRender ? (\n props.deleteOperateRender({ remove: props.remove, formListItemIndex: props.index })\n ) : (\n <Button type=\"link\" danger icon={<DeleteOutlined />} onClick={props.remove}>\n 删除\n </Button>\n )}\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { Form, Input } from 'antd';\nimport { Fragment } from 'react';\nimport { FormItemAdapter } from '../form-item';\nimport { TextFormItem } from '../form-item/text';\nimport { FieldSingleConfig, FormListConfig } from '../type';\nimport { FormList } from './form-list';\n\nexport type FormListItemProps = {\n name: Array<number | string>;\n fieldConfig?: FieldSingleConfig | FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n hiddenField?: { dataIndex: string };\n};\n\nexport const FormListItem = (props: FormListItemProps) => {\n if (props.fieldConfig) {\n if (isArray(props.fieldConfig['editableConfigList'])) {\n const formListConfig = props.fieldConfig as FormListConfig;\n return (\n <FormList\n name={props.name}\n completeName={props.completeName}\n formListConfig={formListConfig}\n tableRowIndex={props.tableRowIndex}\n />\n );\n } else {\n return (\n <Fragment>\n <FormItemAdapter\n name={props.name}\n fieldConfig={props.fieldConfig as FieldSingleConfig}\n tableRowIndex={props.tableRowIndex}\n completeName={props.completeName}\n />\n {props.hiddenField ? (\n <Form.Item hidden={true} name={props.hiddenField.dataIndex}>\n <Input />\n </Form.Item>\n ) : null}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { Button, Form, Table, TableProps } from 'antd';\nimport { FormListOperation, FormListProps } from 'antd/lib/form/FormList';\nimport { ColumnsType } from 'antd/lib/table';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { FormListItem } from './form-list-item';\nimport './style.less';\nimport { EditableTableName, EditableTableRecordType, FieldSingleConfig, FormListConfig } from './type';\n\ntype fieldConfigFunctionParams = {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?: {\n dataIndex: string;\n };\n /**\n * 渲染中间件,如果renderMiddleware返回值为ReactElement格式,则会终止后续逻辑,fieldConfig配置将失效\n * ```\n * 1. tableRowIndex: 当前row的索引值\n * 2. name: 当前table单元格的form.item的name值\n * 3. operation Form.List的操作函数\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n }) => ReactElement | null;\n};\n\nexport type EditableTableProps = {\n name: string;\n /**\n * ```\n * antd table属性\n * 1. 新增cellVerticalAlign,单元格竖直方向对齐方式,设置table column onCell属性后失效\n * ```\n */\n tableProps?: Omit<TableProps<EditableTableRecordType>, 'dataSource' | 'columns' | 'rowKey'> & {\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n columns: EditableTableColumn[];\n onTableBeforeRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /**\n * 设置后,将覆盖底部`新增`按钮\n */\n onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n rules?: FormListProps['rules'];\n};\n\nexport const EditableTable = (props: EditableTableProps) => {\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const { fieldConfig, renderMiddleware, ...otherColumnItem } = columnItem;\n return {\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n render: (_value, record) => {\n const tableRowName = [props.name, record.name];\n const completeName = columnItem.dataIndex ? [...tableRowName, columnItem.dataIndex] : tableRowName;\n const customRender = renderMiddleware?.({\n name: completeName,\n tableRowIndex: record.name,\n operation: record.operation,\n tableRowName,\n });\n if (customRender) {\n return customRender;\n }\n\n const fieldConfigActual =\n typeof fieldConfig === 'function'\n ? fieldConfig({\n name: completeName,\n tableRowIndex: record.name,\n tableRowName,\n })\n : fieldConfig;\n return (\n <FormListItem\n name={columnItem.dataIndex ? [record.name, columnItem.dataIndex] : [record.name]}\n completeName={completeName}\n fieldConfig={fieldConfigActual}\n tableRowIndex={record.name}\n hiddenField={columnItem.hiddenField}\n />\n );\n },\n };\n }) as ColumnsType<EditableTableRecordType>;\n }, [props.columns, props.name, props.tableProps?.cellVerticalAlign]);\n\n return (\n <div className=\"editable-table\">\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation) => {\n return (\n <Fragment>\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n rowKey=\"key\"\n {...props.tableProps}\n dataSource={fields.map((item) => ({ ...item, operation: formListOperation }))}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <Button\n type=\"dashed\"\n onClick={() => formListOperation.add()}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </Button>\n )}\n </Fragment>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","viewLabelList","useMemo","value","_isArray","options","length","map","item","label","returnList","forEach","target","find","temp","push","onChange","_hooks","useCallbackRef","_jsx","Checkbox","Group","_extends","className","children","tag","index","Tag","color","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","theme","fbaHooks","useThemeToken","e","Radio","colorPrimary","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","setviewLabelList","useEffect","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","SelectorWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","Typography","Paragraph","ellipsis","tooltip","TextFormItem","noStyle","TextAreaFormItem","InputTextAreaWrapper","UploadWrapperFormItemContent","_editableComptProps","otherProps","_objectWithoutPropertiesLoose","_excluded","UploadWrapper","listType","disabled","UploadWrapperFormItem","FormItemAdapter","newEditable","_extend","commomProps","type","completeName","FormList","from","useFormInstance","_props$formListConfig","formListConfig","onFormListBeforeRender","editableConfigList","onFormListAfterRender","onFormListItemBeforeRender","onFormListItemAfterRender","deleteOperateRender","List","fields","_ref","add","remove","_Fragment","getFieldValue","fieldChild","hasEditable","formListItemIndex","concat","Space","fieldItem","fieldName","DeleteFormListItem","Button","danger","icon","_DeleteOutlined","onClick","FormListItem","hiddenField","hidden","dataIndex","Input","EditableTable","_props$tableProps2","columns","columnItem","renderMiddleware","otherColumnItem","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","_value","record","tableRowName","customRender","operation","fieldConfigActual","rules","formListOperation","onTableBeforeRender","Table","scroll","x","pagination","rowKey","dataSource","onTableAfterRender","block","_PlusOutlined","marginTop"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/editable-table/utils.ts","@flatbiz/antd/src/editable-table/form-item/checkbox-group.tsx","@flatbiz/antd/src/editable-table/form-item/date-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/date-range-picker-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/input.tsx","@flatbiz/antd/src/editable-table/form-item/input-number.tsx","@flatbiz/antd/src/editable-table/form-item/radio-group.tsx","@flatbiz/antd/src/editable-table/form-item/selector-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/text.tsx","@flatbiz/antd/src/editable-table/form-item/textarea.tsx","@flatbiz/antd/src/editable-table/form-item/upload-wrapper.tsx","@flatbiz/antd/src/editable-table/form-item/index.tsx","@flatbiz/antd/src/editable-table/form-list-item/form-list.tsx","@flatbiz/antd/src/editable-table/form-list-item/index.tsx","@flatbiz/antd/src/editable-table/editable-table.tsx"],"sourcesContent":["import { FieldSingleConfig } from './type';\n\nexport const getEditable = (editable: FieldSingleConfig['editable'], tableRowIndex: number) => {\n return typeof editable === 'boolean' ? editable : editable?.({ tableRowIndex });\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableCheckboxGroupConfig, EditableFormItemProps } from '../type';\n\ntype CheckboxGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst CheckboxGroupFormItemContent = (props: CheckboxGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableCheckboxGroupConfig).editableComptProps;\n const viewLabelList = useMemo(() => {\n if (editable) return [];\n const value = isArray(props.value) ? props.value : ([] as TAny[]);\n const options = (editableComptProps.options || []) as LabelValueItem[];\n if (!isArray(options) || options.length === 0) {\n return value.map((item) => ({ label: item, value: item }));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = options.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: item, value: item });\n });\n return returnList;\n }, [editable, editableComptProps.options, props.value]);\n\n const onChange = hooks.useCallbackRef((value) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value);\n });\n\n if (editable) {\n return <Checkbox.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-checkbox-group-view\">\n {render\n ? render(props.value)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color=\"#1890ff\">\n {tag.label}\n </Tag>\n ))}\n </span>\n );\n};\n\nexport const CheckboxGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-checkbox-group-form-item', formItemProps?.className)}\n >\n <CheckboxGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form } from 'antd';\nimport { DatePickerWrapper } from '../../date-picker-wrapper';\nimport { EditableDatePickerWrapperConfig, EditableFormItemProps } from '../type';\n\nexport const DatePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-picker-wraper-form-item', formItemProps?.className)}\n >\n <DatePickerWrapper\n allowClear\n {...(editableConfig as EditableDatePickerWrapperConfig).editableComptProps}\n />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form } from 'antd';\nimport { useMemo } from 'react';\nimport { DateRangePickerWrapper } from '../../date-range-picker-wrapper';\nimport { EditableDateRangePickerWrapperConfig, EditableFormItemProps } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: [string, string];\n onChange?: (value?: [string, string]) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableDateRangePickerWrapperConfig).editableComptProps;\n\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewLabel = useMemo(() => {\n const value = isArray(props.value) ? props.value : ([] as any[]);\n if (editable) return undefined;\n return value.join('~');\n }, [editable, props.value]);\n\n if (editable) {\n return (\n <DateRangePickerWrapper allowClear {...editableComptProps} value={props.value} onChange={onChange} />\n );\n }\n return <span className=\"editable-date-range-picker-view\">{render ? render(props.value) : viewLabel}</span>;\n};\n\nexport const DateRangePickerWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-date-range-picker-wraper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputWrapper } from '../../input-wrapper';\nimport { EditableFormItemProps, EditableInputConfig } from '../type';\n\nexport const InputFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputWrapper allowClear {...(editableConfig as EditableInputConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Form, InputNumber } from 'antd';\nimport { EditableFormItemProps, EditableInputNumberConfig } from '../type';\n\nexport const InputNumberFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-input-number-form-item', formItemProps?.className)}\n >\n <InputNumber {...(editableConfig as EditableInputNumberConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport { EditableFormItemProps, EditableRadioGroupConfig } from '../type';\n\ntype RadioGroupFormItemContent = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number;\n onChange?: (value: string | number) => void;\n};\n\nconst RadioGroupFormItemContent = (props: RadioGroupFormItemContent) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableRadioGroupConfig).editableComptProps;\n\n const theme = fbaHooks.useThemeToken();\n\n const viewLabel = useMemo(() => {\n if (editable) return [];\n const value = props.value;\n const options = (editableComptProps.options || []) as LabelValueItem<string | number>[];\n if (!isArray(options) || options.length === 0) {\n return value;\n }\n const target = options.find((item) => item.value === value);\n return target?.label || value;\n }, [editable, editableComptProps.options, props.value]);\n\n const onChange = hooks.useCallbackRef((e) => {\n props.onChange?.(e.target.value as string | number);\n editableComptProps.onChange?.(e);\n });\n\n if (editable) {\n return <Radio.Group {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n return (\n <span className=\"editable-radio-group-view\">\n {render ? render(props.value) : viewLabel ? <Tag color={theme.colorPrimary}>{viewLabel}</Tag> : null}\n </span>\n );\n};\n\nexport const RadioGroupFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-radio-group-form-item', formItemProps?.className)}\n >\n <RadioGroupFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { arrayField2LabelValue, LabelValueItem, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { Fragment, useEffect, useState } from 'react';\nimport { fbaHooks } from '../../fba-hooks';\nimport { SelectorWrapper } from '../../selector-wrapper';\nimport { EditableFormItemProps, EditableSelectWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | Array<string | number>;\n onChange?: (value: TAny) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSelectWrapperConfig).editableComptProps;\n const [selectorList, setSelectorList] = useState<LabelValueItem[]>([]);\n const [viewLabelList, setviewLabelList] = useState<LabelValueItem[]>([]);\n const theme = fbaHooks.useThemeToken();\n\n useEffect(() => {\n if (!editable) {\n const value = isArray(props.value) ? props.value : props.value === undefined ? [] : [props.value];\n if (selectorList.length === 0) {\n setviewLabelList(value.map((item) => ({ label: item as string, value: item })));\n }\n const returnList = [] as LabelValueItem[];\n value.forEach((item) => {\n const target = selectorList.find((temp) => temp.value === item);\n returnList.push(target ? target : { label: String(item), value: item });\n });\n setviewLabelList(returnList);\n }\n }, [editable, editableComptProps.fieldNames, props.value, selectorList]);\n\n const onSelectorListAllChange = hooks.useCallbackRef((dataList: TPlainObject[]) => {\n setSelectorList(arrayField2LabelValue(dataList || [], editableComptProps.fieldNames));\n });\n\n const onChange = hooks.useCallbackRef((value, selectList) => {\n props.onChange?.(value);\n editableComptProps.onChange?.(value, selectList);\n });\n\n if (editable) {\n return (\n <SelectorWrapper\n {...editableComptProps}\n value={props.value}\n onChange={onChange}\n onSelectorListAllChange={onSelectorListAllChange}\n />\n );\n }\n return (\n <Fragment>\n <div style={{ display: 'none' }}>\n <SelectorWrapper {...editableComptProps} onSelectorListAllChange={onSelectorListAllChange} />\n </div>\n <span className=\"editable-selector-view\">\n {render\n ? render(props.value, selectorList)\n : viewLabelList.map((tag, index) => (\n <Tag key={index} color={theme.colorPrimary}>\n {tag.label}\n </Tag>\n ))}\n </span>\n </Fragment>\n );\n};\n\nexport const SelectorWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-selector-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form, Typography } from 'antd';\nimport { useMemo } from 'react';\nimport { EditableFormItemProps, FieldSingleConfig } from '../type';\n\nconst FormItemTextContent = (props: {\n value?: string | number;\n name: EditableFormItemProps['name'];\n fieldConfig?: FieldSingleConfig;\n}) => {\n const value = useMemo(() => {\n if (props.fieldConfig?.render) return undefined;\n const isBaseData =\n isString(props.value) || isNumber(props.value) || isBoolean(props.value) || !props.value;\n if (!isBaseData) {\n console.warn(`Form.List name:【${props.name}】数据【${JSON.stringify(props.value)}】不能渲染在页面中`);\n }\n return isBaseData ? props.value : undefined;\n }, [props.fieldConfig?.render, props.name, props.value]);\n const viewText = props.fieldConfig?.render?.(props.value) || value;\n return (\n <Typography.Paragraph\n className=\"editable-text-view\"\n ellipsis={isString(viewText) ? { tooltip: viewText } : true}\n >\n {viewText}\n </Typography.Paragraph>\n );\n};\n\nexport const TextFormItem = (props: { name: Array<number | string>; fieldConfig?: FieldSingleConfig }) => {\n return (\n <Form.Item noStyle name={props.name}>\n <FormItemTextContent name={props.name} fieldConfig={props.fieldConfig} />\n </Form.Item>\n );\n};\n","import { Form } from 'antd';\nimport { InputTextAreaWrapper } from '../../input-text-area-wrapper';\nimport { EditableFormItemProps, EditableTextareaConfig } from '../type';\n\nexport const TextAreaFormItem = (props: EditableFormItemProps) => {\n const { formItemProps, editableConfig } = props.fieldConfig;\n return (\n <Form.Item {...formItemProps} name={props.name}>\n <InputTextAreaWrapper {...(editableConfig as EditableTextareaConfig).editableComptProps} />\n </Form.Item>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { UploadWrapper } from '../../upload-wrapper';\nimport { EditableFileUploadConfig, EditableFormItemProps } from '../type';\n\nconst UploadWrapperFormItemContent = (\n props: EditableFormItemProps & { value?: TAny; onChange?: (value?: TAny) => void },\n) => {\n const { editableConfig, render, editable } = props.fieldConfig;\n const { children, ...otherProps } = (editableConfig as EditableFileUploadConfig).editableComptProps;\n if (editable) {\n return (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} onChange={props.onChange}>\n {children}\n </UploadWrapper>\n );\n }\n return (\n <div className=\"upload-wrapper-selector-view\">\n {render ? (\n render(props.value)\n ) : (\n <UploadWrapper listType=\"text\" {...otherProps} value={props.value} disabled={true} />\n )}\n </div>\n );\n};\n\nexport const UploadWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-upload-wrapper-form-item', formItemProps?.className)}\n >\n <UploadWrapperFormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { extend } from '@dimjs/utils';\nimport { FieldSingleConfig } from '../type';\nimport { getEditable } from '../utils';\nimport { CheckboxGroupFormItem } from './checkbox-group';\nimport { DatePickerWrapperFormItem } from './date-picker-wrapper';\nimport { DateRangePickerWrapperFormItem } from './date-range-picker-wrapper';\nimport { InputFormItem } from './input';\nimport { InputNumberFormItem } from './input-number';\nimport { RadioGroupFormItem } from './radio-group';\nimport { SelectorWrapperFormItem } from './selector-wrapper';\nimport { TextFormItem } from './text';\nimport { TextAreaFormItem } from './textarea';\nimport { UploadWrapperFormItem } from './upload-wrapper';\n\nexport type FormItemAdapterProps = {\n name: Array<number | string>;\n completeName: Array<number | string>;\n fieldConfig: FieldSingleConfig;\n tableRowIndex: number;\n};\n\nexport const FormItemAdapter = (props: FormItemAdapterProps) => {\n const { editableConfig, editable } = props.fieldConfig;\n const newEditable = getEditable(editable, props.tableRowIndex);\n const fieldConfig = extend({}, props.fieldConfig, { editable: newEditable });\n\n const commomProps = {\n name: props.name,\n fieldConfig,\n };\n\n if (editableConfig?.type === 'input' && newEditable) {\n return <InputFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'inputNumber' && newEditable) {\n return <InputNumberFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'textArea' && newEditable) {\n return <TextAreaFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'datePickerWrapper' && newEditable) {\n return <DatePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'dateRangePickerWrapper') {\n return <DateRangePickerWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'selectorWrapper') {\n return <SelectorWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'checkboxGroup') {\n return <CheckboxGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'radioGroup') {\n return <RadioGroupFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'uploadWrapper') {\n return <UploadWrapperFormItem {...commomProps} />;\n } else if (editableConfig?.type === 'custom') {\n return editableConfig.editableComptProps({\n name: props.name,\n editable: newEditable,\n completeName: props.completeName,\n tableRowIndex: props.tableRowIndex,\n });\n }\n\n return <TextFormItem {...commomProps} />;\n};\n","import { DeleteOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { Button, Form, Space } from 'antd';\nimport { FormItemAdapter } from '../form-item';\nimport { FormListConfig } from '../type';\nimport { getEditable } from '../utils';\n\nexport type FormListProps = {\n name: Array<number | string>;\n formListConfig: FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n};\n\nexport const FormList = (props: FormListProps) => {\n const from = Form.useFormInstance();\n const {\n onFormListBeforeRender,\n editableConfigList,\n onFormListAfterRender,\n onFormListItemBeforeRender,\n onFormListItemAfterRender,\n deleteOperateRender,\n } = props.formListConfig;\n return (\n <Form.List name={props.name}>\n {(fields, { add, remove }) => (\n <>\n {onFormListBeforeRender\n ? onFormListBeforeRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n {fields.map((fieldChild, index) => {\n const hasEditable = editableConfigList.find((item) =>\n getEditable(item.editable, props.tableRowIndex),\n );\n const className = classNames(\n 'editable-inner-formlist-item',\n `editable-inner-formlist-item-${props.name[1]}`,\n { 'editable-inner-formlist-item_preview': !hasEditable },\n );\n return (\n <div key={index} className={className}>\n {onFormListItemBeforeRender?.({\n add,\n remove: () => {\n remove(index);\n },\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n <Space>\n {editableConfigList.map((fieldItem, index) => {\n return (\n <FormItemAdapter\n name={[fieldChild.name, fieldItem.fieldName]}\n fieldConfig={fieldItem}\n key={index}\n tableRowIndex={props.tableRowIndex}\n completeName={[...props.completeName, fieldChild.name]}\n />\n );\n })}\n {hasEditable ? (\n <DeleteFormListItem\n deleteOperateRender={deleteOperateRender}\n remove={() => {\n remove(index);\n }}\n index={index}\n />\n ) : undefined}\n </Space>\n {onFormListItemAfterRender?.({\n add,\n formListItemIndex: index,\n tableRowIndex: props.tableRowIndex,\n remove: () => {\n remove(index);\n },\n get value() {\n return from.getFieldValue([...props.completeName, fieldChild.name]);\n },\n })}\n </div>\n );\n })}\n {onFormListAfterRender\n ? onFormListAfterRender({\n tableRowIndex: props.tableRowIndex,\n add,\n get value() {\n return from.getFieldValue(props.completeName);\n },\n })\n : null}\n </>\n )}\n </Form.List>\n );\n};\n\nconst DeleteFormListItem = (props: {\n deleteOperateRender: FormListConfig['deleteOperateRender'];\n remove: () => void;\n index: number;\n}) => {\n return (\n <Form.Item>\n {props.deleteOperateRender ? (\n props.deleteOperateRender({ remove: props.remove, formListItemIndex: props.index })\n ) : (\n <Button type=\"link\" danger icon={<DeleteOutlined />} onClick={props.remove}>\n 删除\n </Button>\n )}\n </Form.Item>\n );\n};\n","import { isArray } from '@dimjs/lang';\nimport { Form, Input } from 'antd';\nimport { Fragment } from 'react';\nimport { FormItemAdapter } from '../form-item';\nimport { TextFormItem } from '../form-item/text';\nimport { FieldSingleConfig, FormListConfig } from '../type';\nimport { FormList } from './form-list';\n\nexport type FormListItemProps = {\n name: Array<number | string>;\n fieldConfig?: FieldSingleConfig | FormListConfig;\n tableRowIndex: number;\n completeName: (string | number)[];\n hiddenField?: { dataIndex: string };\n};\n\nexport const FormListItem = (props: FormListItemProps) => {\n if (props.fieldConfig) {\n if (isArray(props.fieldConfig['editableConfigList'])) {\n const formListConfig = props.fieldConfig as FormListConfig;\n return (\n <FormList\n name={props.name}\n completeName={props.completeName}\n formListConfig={formListConfig}\n tableRowIndex={props.tableRowIndex}\n />\n );\n } else {\n return (\n <Fragment>\n <FormItemAdapter\n name={props.name}\n fieldConfig={props.fieldConfig as FieldSingleConfig}\n tableRowIndex={props.tableRowIndex}\n completeName={props.completeName}\n />\n {props.hiddenField ? (\n <Form.Item hidden={true} name={props.hiddenField.dataIndex}>\n <Input />\n </Form.Item>\n ) : null}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { Button, Form, Table, TableProps } from 'antd';\nimport { FormListOperation, FormListProps } from 'antd/lib/form/FormList';\nimport { ColumnsType } from 'antd/lib/table';\nimport { Fragment, ReactElement, useMemo } from 'react';\nimport { FormListItem } from './form-list-item';\nimport './style.less';\nimport { EditableTableName, EditableTableRecordType, FieldSingleConfig, FormListConfig } from './type';\n\ntype fieldConfigFunctionParams = {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?: {\n dataIndex: string;\n };\n /**\n * 渲染中间件,如果renderMiddleware返回值为ReactElement格式,则会终止后续逻辑,fieldConfig配置将失效\n * ```\n * 1. tableRowIndex: 当前row的索引值\n * 2. name: 当前table单元格的form.item的name值\n * 3. operation Form.List的操作函数\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n index: number;\n }) => ReactElement | null;\n};\n\nexport type EditableTableProps = {\n name: string;\n /**\n * ```\n * antd table属性\n * 1. 新增cellVerticalAlign,单元格竖直方向对齐方式,设置table column onCell属性后失效\n * ```\n */\n tableProps?: Omit<TableProps<EditableTableRecordType>, 'dataSource' | 'columns' | 'rowKey'> & {\n cellVerticalAlign?: 'baseline' | 'middle' | 'top' | 'bottom';\n };\n columns: EditableTableColumn[];\n onTableBeforeRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n /**\n * 设置后,将覆盖底部`新增`按钮\n */\n onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;\n rules?: FormListProps['rules'];\n};\n\nexport const EditableTable = (props: EditableTableProps) => {\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const { fieldConfig, renderMiddleware, ...otherColumnItem } = columnItem;\n return {\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n render: (_value, record, index) => {\n const tableRowName = [props.name, record.name];\n const completeName = columnItem.dataIndex ? [...tableRowName, columnItem.dataIndex] : tableRowName;\n const customRender = renderMiddleware?.({\n name: completeName,\n tableRowIndex: record.name,\n operation: record.operation,\n tableRowName,\n index,\n });\n if (customRender) {\n return customRender;\n }\n\n const fieldConfigActual =\n typeof fieldConfig === 'function'\n ? fieldConfig({\n name: completeName,\n tableRowIndex: record.name,\n tableRowName,\n })\n : fieldConfig;\n return (\n <FormListItem\n name={columnItem.dataIndex ? [record.name, columnItem.dataIndex] : [record.name]}\n completeName={completeName}\n fieldConfig={fieldConfigActual}\n tableRowIndex={record.name}\n hiddenField={columnItem.hiddenField}\n />\n );\n },\n };\n }) as ColumnsType<EditableTableRecordType>;\n }, [props.columns, props.name, props.tableProps?.cellVerticalAlign]);\n\n return (\n <div className=\"editable-table\">\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation) => {\n return (\n <Fragment>\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n rowKey=\"key\"\n {...props.tableProps}\n dataSource={fields.map((item) => ({ ...item, operation: formListOperation }))}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <Button\n type=\"dashed\"\n onClick={() => formListOperation.add()}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </Button>\n )}\n </Fragment>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","viewLabelList","useMemo","value","_isArray","options","length","map","item","label","returnList","forEach","target","find","temp","push","onChange","_hooks","useCallbackRef","_jsx","Checkbox","Group","_extends","className","children","tag","index","Tag","color","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","theme","fbaHooks","useThemeToken","e","Radio","colorPrimary","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","setviewLabelList","useEffect","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","SelectorWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","Typography","Paragraph","ellipsis","tooltip","TextFormItem","noStyle","TextAreaFormItem","InputTextAreaWrapper","UploadWrapperFormItemContent","_editableComptProps","otherProps","_objectWithoutPropertiesLoose","_excluded","UploadWrapper","listType","disabled","UploadWrapperFormItem","FormItemAdapter","newEditable","_extend","commomProps","type","completeName","FormList","from","useFormInstance","_props$formListConfig","formListConfig","onFormListBeforeRender","editableConfigList","onFormListAfterRender","onFormListItemBeforeRender","onFormListItemAfterRender","deleteOperateRender","List","fields","_ref","add","remove","_Fragment","getFieldValue","fieldChild","hasEditable","formListItemIndex","concat","Space","fieldItem","fieldName","DeleteFormListItem","Button","danger","icon","_DeleteOutlined","onClick","FormListItem","hiddenField","hidden","dataIndex","Input","EditableTable","_props$tableProps2","columns","columnItem","renderMiddleware","otherColumnItem","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","_value","record","tableRowName","customRender","operation","fieldConfigActual","rules","formListOperation","onTableBeforeRender","Table","scroll","x","pagination","rowKey","dataSource","onTableAfterRender","block","_PlusOutlined","marginTop"],"mappings":"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"}
|
|
@@ -4,5 +4,5 @@ import './../time-range-picker-wrapper/index.css';
|
|
|
4
4
|
import './../types/index.css';
|
|
5
5
|
import './index.css';
|
|
6
6
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
7
|
-
import{_ as e,a as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{Form as t,Input as
|
|
7
|
+
import{_ as e,a as n}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{hooks as r}from"@wove/react/cjs/hooks";import{isArray as a}from"@dimjs/lang/cjs/is-array";import{Form as t,Input as i}from"antd";import{useMemo as o,useRef as u,forwardRef as l,useImperativeHandle as m}from"react";import{fbaHooks as s}from"../fba-hooks/index.js";import{T as v}from"../time-range-picker-wrapper-24adf0d0.js";import{jsxs as c,Fragment as d,jsx as f}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";import"dayjs";import"../time-2782aa9b.js";var p=["startName","endName","formListName","timeRangePickerWrapperProps"];var h=function i(l){var m=l.startName,h=l.endName,_=l.formListName,j=l.timeRangePickerWrapperProps,C=e(l,p);var P=t.useFormInstance();var k=o((function(){if(a(m)&&a(h)){return m.slice(0,m.length-1).concat("__#invalid_time_"+m[m.length-1]+"_"+h[h.length-1])}return"__#invalid_time_"+m+"_"+h}),[m,h]);var N=o((function(){return _?[].concat(_,m):m}),[m,_]);var b=o((function(){return _?[].concat(_,h):h}),[h,_]);var F=t.useWatch(N,P);var I=t.useWatch(b,P);var W=s.usePrevious(F);var x=s.usePrevious(I);s.useEffectCustom((function(){var e=_?[].concat(_,k):k;if(F&&I){P.setFields([{name:e,value:[F,I]}])}if(W&&x&&!F&&!I){P.setFields([{name:e,value:undefined}])}}),[F,I]);var R=u(null);var w=u(null);var y=r.useCallbackRef((function(e){var n,r;P.setFields([{name:N,value:e==null?void 0:e[0]},{name:b,value:e==null?void 0:e[1]}]);(n=R.current)==null?void 0:n.onChange==null?void 0:n.onChange(e==null?void 0:e[0]);(r=w.current)==null?void 0:r.onChange==null?void 0:r.onChange(e==null?void 0:e[1])}));return c(d,{children:[f(t.Item,{name:m,hidden:true,children:f(g,{ref:R})}),f(t.Item,{name:h,hidden:true,children:f(g,{ref:w})}),f(t.Item,n({},C,{name:k,children:f(v,n({},j,{onChange:y}))}))]})};var g=l((function(e,n){m(n,(function(){return{onChange:function n(r){e.onChange==null?void 0:e.onChange(r)}}}));return f(i,{value:e.value})}));export{h as TimeRangePickerWrapperFormItem};
|
|
8
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/time-range-picker-wrapper-form-item/time-range-picker-wrapper-form-item.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormItemProps, Input } from 'antd';\nimport { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TimeRangePickerWrapper, TimeRangePickerWrapperProps } from '../time-range-picker-wrapper';\nimport { FormItemNamePath } from '../types';\n\nexport type TimeRangePickerWrapperFormItemProps = Omit<FormItemProps, 'name'> & {\n /**\n * 开始的时间name\n */\n startName: FormItemNamePath;\n /**\n * 结束的时间name\n */\n endName: FormItemNamePath;\n /**\n * 如果 TimeRangePickerWrapperFormItem 在Form.List场景下 必传\n */\n formListName?: FormItemNamePath;\n timeRangePickerWrapperProps?: Omit<TimeRangePickerWrapperProps, 'onChange'>;\n};\n/**\n * 包含了Form.Item组件的时间区间选择组件\n * ```\n * 1. 时间区间组件可以定义成两个字段操作,不用再通过数组处理\n * 2. 会在form中产生一个 `__#invalid_time_xxxx_xxxx` 的无效字段,可以直接忽略\n * ```\n */\nexport const TimeRangePickerWrapperFormItem = (props: TimeRangePickerWrapperFormItemProps) => {\n const { startName, endName, formListName, timeRangePickerWrapperProps, ...otherProps } = props;\n const form = Form.useFormInstance();\n const bodyName = useMemo(() => {\n if (isArray(startName) && isArray(endName)) {\n return startName\n .slice(0, startName.length - 1)\n .concat(`__#invalid_time_${startName[startName.length - 1]}_${endName[endName.length - 1]}`);\n }\n return `__#invalid_time_${startName}_${endName}`;\n }, [startName, endName]);\n\n const startNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, startName) : startName;\n }, [startName, formListName]);\n\n const endNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, endName) : endName;\n }, [endName, formListName]);\n\n const startVal = Form.useWatch(startNameMerge, form);\n const endVal = Form.useWatch(endNameMerge, form);\n const bodyVal = Form.useWatch(bodyName, form);\n\n fbaHooks.
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/time-range-picker-wrapper-form-item/time-range-picker-wrapper-form-item.tsx"],"sourcesContent":["import { isArray } from '@dimjs/lang';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormItemProps, Input } from 'antd';\nimport { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { TimeRangePickerWrapper, TimeRangePickerWrapperProps } from '../time-range-picker-wrapper';\nimport { FormItemNamePath } from '../types';\n\nexport type TimeRangePickerWrapperFormItemProps = Omit<FormItemProps, 'name'> & {\n /**\n * 开始的时间name\n */\n startName: FormItemNamePath;\n /**\n * 结束的时间name\n */\n endName: FormItemNamePath;\n /**\n * 如果 TimeRangePickerWrapperFormItem 在Form.List场景下 必传\n */\n formListName?: FormItemNamePath;\n timeRangePickerWrapperProps?: Omit<TimeRangePickerWrapperProps, 'onChange'>;\n};\n/**\n * 包含了Form.Item组件的时间区间选择组件\n * ```\n * 1. 时间区间组件可以定义成两个字段操作,不用再通过数组处理\n * 2. 会在form中产生一个 `__#invalid_time_xxxx_xxxx` 的无效字段,可以直接忽略\n * ```\n */\nexport const TimeRangePickerWrapperFormItem = (props: TimeRangePickerWrapperFormItemProps) => {\n const { startName, endName, formListName, timeRangePickerWrapperProps, ...otherProps } = props;\n const form = Form.useFormInstance();\n const bodyName = useMemo(() => {\n if (isArray(startName) && isArray(endName)) {\n return startName\n .slice(0, startName.length - 1)\n .concat(`__#invalid_time_${startName[startName.length - 1]}_${endName[endName.length - 1]}`);\n }\n return `__#invalid_time_${startName}_${endName}`;\n }, [startName, endName]);\n\n const startNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, startName) : startName;\n }, [startName, formListName]);\n\n const endNameMerge = useMemo(() => {\n return formListName ? ([] as (string | number)[]).concat(formListName, endName) : endName;\n }, [endName, formListName]);\n\n const startVal = Form.useWatch(startNameMerge, form);\n const endVal = Form.useWatch(endNameMerge, form);\n // const bodyVal = Form.useWatch(bodyName, form);\n\n const preValue1 = fbaHooks.usePrevious(startVal);\n const preValue2 = fbaHooks.usePrevious(endVal);\n\n fbaHooks.useEffectCustom(() => {\n const name = formListName ? ([] as (string | number)[]).concat(formListName, bodyName) : bodyName;\n if (startVal && endVal) {\n form.setFields([{ name, value: [startVal, endVal] }]);\n }\n if (preValue1 && preValue2 && !startVal && !endVal) {\n form.setFields([{ name, value: undefined }]);\n }\n }, [startVal, endVal]);\n\n const reftest = useRef<InputContentRef>(null);\n const reftest2 = useRef<InputContentRef>(null);\n\n const onChange = hooks.useCallbackRef((data) => {\n form.setFields([\n { name: startNameMerge, value: data?.[0] },\n { name: endNameMerge, value: data?.[1] },\n ]);\n // 为了解决 外部Form onValuesChange获取到操作值\n reftest.current?.onChange?.(data?.[0]);\n reftest2.current?.onChange?.(data?.[1]);\n });\n\n return (\n <>\n <Form.Item name={startName} hidden>\n <InputContent ref={reftest} />\n </Form.Item>\n <Form.Item name={endName} hidden>\n <InputContent ref={reftest2} />\n </Form.Item>\n <Form.Item {...otherProps} name={bodyName}>\n <TimeRangePickerWrapper {...timeRangePickerWrapperProps} onChange={onChange} />\n </Form.Item>\n </>\n );\n};\n\ntype InputContentProps = {\n onChange?: (data: TAny) => void;\n value?: string;\n};\n\ntype InputContentRef = {\n onChange?: (data: TAny) => void;\n};\n\nconst InputContent = forwardRef<InputContentRef, InputContentProps>((props, ref) => {\n useImperativeHandle(ref, () => {\n return {\n onChange: (startVal) => {\n props.onChange?.(startVal);\n },\n };\n });\n\n return <Input value={props.value} />;\n});\n"],"names":["TimeRangePickerWrapperFormItem","props","startName","endName","formListName","timeRangePickerWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","form","Form","useFormInstance","bodyName","useMemo","_isArray","slice","length","concat","startNameMerge","endNameMerge","startVal","useWatch","endVal","preValue1","fbaHooks","usePrevious","preValue2","useEffectCustom","name","setFields","value","undefined","reftest","useRef","reftest2","onChange","_hooks","useCallbackRef","data","_reftest$current","_reftest2$current","current","_jsxs","_Fragment","children","_jsx","Item","hidden","InputContent","ref","_extends","TimeRangePickerWrapper","forwardRef","useImperativeHandle","Input"],"mappings":";onBA+BaA,EAAiC,SAAjCA,EAAkCC,GAC7C,IAAQC,EAAiFD,EAAjFC,UAAWC,EAAsEF,EAAtEE,QAASC,EAA6DH,EAA7DG,aAAcC,EAA+CJ,EAA/CI,4BAAgCC,EAAUC,EAAKN,EAAKO,GAC9F,IAAMC,EAAOC,EAAKC,kBAClB,IAAMC,EAAWC,GAAQ,WACvB,GAAIC,EAAQZ,IAAcY,EAAQX,GAAU,CAC1C,OAAOD,EACJa,MAAM,EAAGb,EAAUc,OAAS,GAC5BC,OAA0Bf,mBAAAA,EAAUA,EAAUc,OAAS,GAAMb,IAAAA,EAAQA,EAAQa,OAAS,GAC3F,CACA,MAA0Bd,mBAAAA,MAAaC,CACzC,GAAG,CAACD,EAAWC,IAEf,IAAMe,EAAiBL,GAAQ,WAC7B,OAAOT,EAAgB,GAA2Ba,OAAOb,EAAcF,GAAaA,CACtF,GAAG,CAACA,EAAWE,IAEf,IAAMe,EAAeN,GAAQ,WAC3B,OAAOT,EAAgB,GAA2Ba,OAAOb,EAAcD,GAAWA,CACpF,GAAG,CAACA,EAASC,IAEb,IAAMgB,EAAWV,EAAKW,SAASH,EAAgBT,GAC/C,IAAMa,EAASZ,EAAKW,SAASF,EAAcV,GAG3C,IAAMc,EAAYC,EAASC,YAAYL,GACvC,IAAMM,EAAYF,EAASC,YAAYH,GAEvCE,EAASG,iBAAgB,WACvB,IAAMC,EAAOxB,EAAgB,GAA2Ba,OAAOb,EAAcQ,GAAYA,EACzF,GAAIQ,GAAYE,EAAQ,CACtBb,EAAKoB,UAAU,CAAC,CAAED,KAAAA,EAAME,MAAO,CAACV,EAAUE,KAC5C,CACA,GAAIC,GAAaG,IAAcN,IAAaE,EAAQ,CAClDb,EAAKoB,UAAU,CAAC,CAAED,KAAAA,EAAME,MAAOC,YACjC,CACF,GAAG,CAACX,EAAUE,IAEd,IAAMU,EAAUC,EAAwB,MACxC,IAAMC,EAAWD,EAAwB,MAEzC,IAAME,EAAWC,EAAMC,gBAAe,SAACC,GAAS,IAAAC,EAAAC,EAC9C/B,EAAKoB,UAAU,CACb,CAAED,KAAMV,EAAgBY,MAAOQ,GAAAA,UAAAA,EAAAA,EAAO,IACtC,CAAEV,KAAMT,EAAcW,MAAOQ,GAAAA,UAAAA,EAAAA,EAAO,OAGtCC,EAAAP,EAAQS,UAARF,UAAAA,EAAAA,EAAiBJ,UAAQ,UAAA,EAAzBI,EAAiBJ,SAAWG,GAAI,UAAA,EAAJA,EAAO,KACnCE,EAAAN,EAASO,UAATD,UAAAA,EAAAA,EAAkBL,UAAQ,UAAA,EAA1BK,EAAkBL,SAAWG,GAAI,UAAA,EAAJA,EAAO,GACtC,IAEA,OACEI,EAAAC,EAAA,CAAAC,SACEC,CAAAA,EAACnC,EAAKoC,KAAI,CAAClB,KAAM1B,EAAW6C,OAAM,KAAAH,SAChCC,EAACG,EAAY,CAACC,IAAKjB,MAErBa,EAACnC,EAAKoC,KAAI,CAAClB,KAAMzB,EAAS4C,OAAM,KAAAH,SAC9BC,EAACG,EAAY,CAACC,IAAKf,MAErBW,EAACnC,EAAKoC,KAAII,EAAA,CAAA,EAAK5C,EAAU,CAAEsB,KAAMhB,EAASgC,SACxCC,EAACM,EAAsBD,KAAK7C,EAA2B,CAAE8B,SAAUA,UAI3E,EAWA,IAAMa,EAAeI,GAA+C,SAACnD,EAAOgD,GAC1EI,EAAoBJ,GAAK,WACvB,MAAO,CACLd,SAAU,SAAAA,EAACf,GACTnB,EAAMkC,UAANlC,UAAAA,EAAAA,EAAMkC,SAAWf,EACnB,EAEJ,IAEA,OAAOyB,EAACS,EAAK,CAACxB,MAAO7B,EAAM6B,OAC7B"}
|
package/index.d.ts
CHANGED
|
@@ -540,6 +540,17 @@ export interface DropdownMenuWrapperProps extends Omit<DropdownProps, "menu"> {
|
|
|
540
540
|
menuList: Array<DropdownMenuItem | null>;
|
|
541
541
|
}
|
|
542
542
|
export declare const DropdownMenuWrapper: (props: DropdownMenuWrapperProps) => JSX.Element;
|
|
543
|
+
export type EasyTableRefApi = {
|
|
544
|
+
/** 外部发起请求服务 */
|
|
545
|
+
onRequest: (params?: TPlainObject) => void;
|
|
546
|
+
/** 获取请求参数 */
|
|
547
|
+
getRequestParams: () => TPlainObject;
|
|
548
|
+
/** 清楚查询条件 */
|
|
549
|
+
clearQueryCondition: (values?: TPlainObject) => Promise<void>;
|
|
550
|
+
form: FormInstance;
|
|
551
|
+
/** 重置请求 */
|
|
552
|
+
onResetRequest: (params?: TPlainObject) => void;
|
|
553
|
+
};
|
|
543
554
|
export type EasyTableServiceConfig = {
|
|
544
555
|
/** 接口配置 */
|
|
545
556
|
onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;
|
|
@@ -557,17 +568,6 @@ export type EasyTableServiceConfig = {
|
|
|
557
568
|
*/
|
|
558
569
|
requestResultAdapter?: (params: TAny) => TPlainObject;
|
|
559
570
|
};
|
|
560
|
-
export type EasyTableRefApi = {
|
|
561
|
-
/** 外部发起请求服务 */
|
|
562
|
-
onRequest: (params?: TPlainObject) => void;
|
|
563
|
-
/** 获取请求参数 */
|
|
564
|
-
getRequestParams: () => TPlainObject;
|
|
565
|
-
/** 清楚查询条件 */
|
|
566
|
-
clearQueryCondition: (values?: TPlainObject) => Promise<void>;
|
|
567
|
-
form: FormInstance;
|
|
568
|
-
/** 重置请求 */
|
|
569
|
-
onResetRequest: (params?: TPlainObject) => void;
|
|
570
|
-
};
|
|
571
571
|
export type EasyTableProps = {
|
|
572
572
|
children: ReactElement | ReactElement[];
|
|
573
573
|
modelKey: string;
|
|
@@ -636,24 +636,24 @@ export declare const EasyTable: import("react").ForwardRefExoticComponent<EasyTa
|
|
|
636
636
|
*```
|
|
637
637
|
*1. 用法1
|
|
638
638
|
* -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }
|
|
639
|
-
* <
|
|
639
|
+
* <EasyTable.Filter>
|
|
640
640
|
* <Form.Item name="field1" label="条件1">xxx</Form.Item>
|
|
641
|
-
* </
|
|
641
|
+
* </EasyTable.Filter>
|
|
642
642
|
*
|
|
643
643
|
* -- 自定义网格布局 使用 FormCol组件包装 Form.Item
|
|
644
|
-
* <
|
|
644
|
+
* <EasyTable.Filter>
|
|
645
645
|
* <FormCol span={12}><Form.Item name="field1" label="条件1">xxx</Form.Item></FormCol>
|
|
646
|
-
* </
|
|
646
|
+
* </EasyTable.Filter>
|
|
647
647
|
*
|
|
648
648
|
* -- children 可为 function
|
|
649
|
-
* <
|
|
649
|
+
* <EasyTable.Filter>
|
|
650
650
|
* {(form) => {
|
|
651
651
|
* return <Form.Item name="field1" label="条件1">xxx</Form.Item>
|
|
652
652
|
* }}
|
|
653
|
-
* </
|
|
653
|
+
* </EasyTable.Filter>
|
|
654
654
|
*2. 用户2(自定义布局)
|
|
655
|
-
*
|
|
656
|
-
*3.
|
|
655
|
+
* EasyTable.Filter设置 isPure = true,FormItem无布局规则
|
|
656
|
+
*3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例
|
|
657
657
|
*4. 默认布局下,可通过设置 filterOperate 设置操作按钮
|
|
658
658
|
*```
|
|
659
659
|
*/
|
|
@@ -666,6 +666,7 @@ export declare const EasyTable: import("react").ForwardRefExoticComponent<EasyTa
|
|
|
666
666
|
* ```
|
|
667
667
|
*/
|
|
668
668
|
Table: (props: EasyTableTableProps) => JSX.Element;
|
|
669
|
+
useEasyTablRef: () => import("react").MutableRefObject<EasyTableRefApi>;
|
|
669
670
|
};
|
|
670
671
|
export interface EditableFieldProps {
|
|
671
672
|
className?: string;
|
|
@@ -992,6 +993,7 @@ export type EditableTableColumn = Omit<ColumnsType["0"], "render"> & {
|
|
|
992
993
|
name: EditableTableName;
|
|
993
994
|
tableRowName: EditableTableName;
|
|
994
995
|
operation: FormListOperation;
|
|
996
|
+
index: number;
|
|
995
997
|
}) => ReactElement | null;
|
|
996
998
|
};
|
|
997
999
|
export type EditableTableProps = {
|