@flatbiz/antd 4.4.46 → 4.5.1
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/drag-editable-table/index.js +1 -2
- package/esm/drag-editable-table/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 -2
- package/esm/editable-table/index.js.map +1 -1
- package/esm/index.js +1 -1
- package/index.d.ts +26 -45
- package/package.json +1 -1
|
@@ -5,7 +5,6 @@ import './../config-provider-wrapper/index.css';
|
|
|
5
5
|
import './../fba-hooks/index.css';
|
|
6
6
|
import './../types/index.css';
|
|
7
7
|
import './../fba-utils/index.css';
|
|
8
|
-
import './../table-title-tooltip/index.css';
|
|
9
8
|
import './../text-symbol-wrapper/index.css';
|
|
10
9
|
import './../form-item-hidden/index.css';
|
|
11
10
|
import './../date-picker-wrapper/index.css';
|
|
@@ -27,5 +26,5 @@ import './../input-text-area-wrapper/index.css';
|
|
|
27
26
|
import './../icon-wrapper/index.css';
|
|
28
27
|
import './index.css';
|
|
29
28
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
30
|
-
import{a as i,_ as
|
|
29
|
+
import{a as i,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useSensors as e,useSensor as o,PointerSensor as t,DndContext as n}from"@dnd-kit/core";import{restrictToVerticalAxis as s}from"@dnd-kit/modifiers";import{useSortable as a,SortableContext as d,verticalListSortingStrategy as m,arrayMove as p}from"@dnd-kit/sortable";import{Form as l}from"antd";import{EditableTable as c}from"../editable-table/index.js";import{createCtx as u}from"@wove/react/cjs/create-ctx";import j from"@ant-design/icons/es/icons/DragOutlined";import{CSS as g}from"@dnd-kit/utilities";import{isUndefinedOrNull as v,noop as f}from"@flatbiz/utils";import{createElement as x,Children as y,cloneElement as b}from"react";import{IconWrapper as w}from"../icon-wrapper/index.js";import{jsx as h}from"react/jsx-runtime";import"@ant-design/icons/es/icons/PlusOutlined";import"@dimjs/utils/cjs/class-names";import"../button-wrapper/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"../text-symbol-wrapper/index.js";import"../tips-wrapper/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../form-item-hidden/index.js";import"../table-cell-render/index.js";import"@dimjs/lang/cjs/is-string";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"../tag-list-render/index.js";import"../date-picker-wrapper/index.js";import"../time-53b3f55f.js";import"../date-range-picker-wrapper/index.js";import"../input-wrapper/index.js";import"../selector-wrapper/index.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"../switch-wrapper/index.js";import"@dimjs/lang/cjs/is-boolean";import"@dimjs/lang/cjs/is-number";import"../input-text-area-wrapper/index.js";import"../upload-wrapper/index.js";import"react-dom";import"@ant-design/icons/es/icons/DeleteOutlined";var k=u(),I=k[0],_=k[1];var C=["dragIcon"];var D=function e(o){var t=o.dragIcon,n=i(o,C);var s=n["data-row-key"];var d=a({id:s}),m=d.setActivatorNodeRef,p=d.listeners,l=d.setNodeRef,c=d.transform,u=d.transition,k=d.isDragging;if(v(s)){return h("tr",r({},n))}var I=r({},n.style,{transform:g.Transform.toString(c&&r({},c,{scaleY:1})),transition:u,cursor:"move"},k?{position:"relative",zIndex:9999,boxShadow:" 0px 0px 12px 4px rgba(34, 33, 81, 0.1)",backgroundColor:"var(--block-bg-color)"}:{});var _=t||h(j,{});return x("tr",r({},n,{ref:l,style:I,key:s}),y.map(o.children,(function(i){if(i.key==="__sort"){return b(i,{children:h("span",r({ref:m,style:{touchAction:"none",cursor:"move"}},p,{children:h(w,{style:{touchAction:"none",cursor:"move",padding:"1px 0px",margin:0,justifyContent:"center",color:"#787878"},icon:_,onClick:f})}))})}return i})))};var F=function i(e){var o=I();return h(D,r({},e,{dragIcon:o.dragIcon}))};var O=["dragIcon","uidFieldKey","onDragChange","disabledDrag"];var P=function a(u){var j,g;var v=u.dragIcon,f=u.uidFieldKey,x=u.onDragChange,y=u.disabledDrag,b=i(u,O);var w=l.useFormInstance();var k=l.useWatch(u.name,w);var I=e(o(t,{activationConstraint:{delay:0,tolerance:0}}));var C=function i(r){var e=r.active,o=r.over;if(e.id!==(o==null?void 0:o.id)){var t=k.findIndex((function(i){return i[f]===e.id}));var n=k.findIndex((function(i){return i[f]===(o==null?void 0:o.id)}));var s=p(k,t,n);w.setFields([{name:u.name,value:s}]);x==null?void 0:x(s,{activeId:e.id,activeIndex:t,overIndex:n})}};var D=y?b.columns:[{dataIndex:"__sort",width:50,key:"__sort"}].concat(b.columns||[]);return h(_,{value:{dragIcon:v,uidFieldKey:f},children:h(n,{sensors:I,modifiers:[s],onDragEnd:C,children:h(d,{items:(k==null?void 0:k.map((function(i){return i[f]})))||[],strategy:m,children:h(c,r({},b,{uidFieldKey:f,columns:D,tableProps:r({},b.tableProps,{components:r({},(j=b.tableProps)==null?void 0:j.components,{body:r({},(g=b.tableProps)==null||(g=g.components)==null?void 0:g.body,{row:y?undefined:F})})})}))})})})};export{P as DragEditableTable};
|
|
31
30
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-table/context.ts","@flatbiz/antd/src/drag-editable-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-editable-table/row.tsx","@flatbiz/antd/src/drag-editable-table/drag.tsx"],"sourcesContent":["import { type TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: ReactElement;\n getTableItemDataByFormListItemKey?: (key: number) => TPlainObject;\n uidFieldKey: string;\n}>();\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { isUndefinedOrNull, noop, type TPlainObject } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, useMemo, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype TableTrHandleProps = RowProps & {\n dragIcon?: ReactElement;\n getTableItemDataByFormListItemKey: (key: number) => TPlainObject;\n uidFieldKey: string;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'] as number;\n\n const uidValue = useMemo(() => {\n return !isUndefinedOrNull(rowId)\n ? props.getTableItemDataByFormListItemKey(rowId)?.[props.uidFieldKey]\n : undefined;\n }, [props, rowId]);\n\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: uidValue,\n });\n\n if (isUndefinedOrNull(uidValue)) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = dragIcon || <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style} key={uidValue}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === '__sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span ref={setActivatorNodeRef} style={{ touchAction: 'none', cursor: 'move' }} {...listeners}>\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return (\n <TableTrHandle\n {...props}\n dragIcon={ctx.dragIcon}\n uidFieldKey={ctx.uidFieldKey}\n getTableItemDataByFormListItemKey={ctx.getTableItemDataByFormListItemKey}\n />\n );\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { forwardRef, useImperativeHandle, useRef, type ReactElement } from 'react';\nimport { EditableTable, EditableTableProps, EditableTableRefApi } from '../editable-table';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\nexport type DragEditableTableProps = EditableTableProps & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽编辑表格\n * ```\n * 1. 表格数据必须要有唯一值字段,通过参数 uidFieldKey 告诉组件\n * 2. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragEditableTable = forwardRef<EditableTableRefApi, DragEditableTableProps>((props, ref) => {\n const { dragIcon, uidFieldKey, onDragChange, disabledDrag, ...otherProps } = props;\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(props.name, form);\n\n const editableTableRef = useRef<EditableTableRefApi>(null);\n\n useImperativeHandle(ref, () => {\n return editableTableRef.current as EditableTableRefApi;\n });\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n form.setFields([\n {\n name: props.name,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columns = disabledDrag\n ? otherProps.columns\n : [{ dataIndex: '__sort', width: 50, key: '__sort' }].concat((otherProps.columns || []) as TAny[]);\n\n return (\n <CtxProvider\n value={{\n dragIcon,\n uidFieldKey,\n getTableItemDataByFormListItemKey: (key) => {\n return editableTableRef.current?.getTableItemDataByFormListItemKey(key) as TPlainObject;\n },\n }}\n >\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableTable\n ref={editableTableRef}\n {...otherProps}\n columns={columns}\n tableProps={{\n ...otherProps.tableProps,\n components: {\n ...otherProps.tableProps?.components,\n body: {\n ...otherProps.tableProps?.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n },\n }}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n});\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTrHandle","props","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","uidValue","useMemo","_props$getTableItemDa","isUndefinedOrNull","getTableItemDataByFormListItemKey","uidFieldKey","undefined","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","_jsx","_extends","style","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_DragOutlined","_createElement","ref","key","Children","map","children","child","cloneElement","touchAction","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","Row","ctx","DragEditableTable","forwardRef","_otherProps$tableProp","_otherProps$tableProp2","onDragChange","disabledDrag","otherProps","form","Form","useFormInstance","dataList","useWatch","name","editableTableRef","useRef","useImperativeHandle","current","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","value","activeId","columns","dataIndex","width","concat","_editableTableRef$cur","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","EditableTable","tableProps","components","body","row"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-editable-table/context.ts","@flatbiz/antd/src/drag-editable-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-editable-table/row.tsx","@flatbiz/antd/src/drag-editable-table/drag.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: ReactElement;\n uidFieldKey: string;\n}>();\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { isUndefinedOrNull, noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\n\ntype TableTrHandleProps = RowProps & {\n dragIcon?: ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'] as number;\n\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (isUndefinedOrNull(rowId)) {\n return <tr {...innerProps} />;\n }\n const style: React.CSSProperties = {\n ...innerProps.style,\n transform: CSS.Transform.toString(transform && { ...transform, scaleY: 1 }),\n transition,\n cursor: 'move',\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: 'var(--block-bg-color)',\n }\n : {}),\n };\n const iconElement = dragIcon || <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style} key={rowId}>\n {Children.map(props.children, (child) => {\n if ((child as React.ReactElement).key === '__sort') {\n return cloneElement(child as React.ReactElement, {\n children: (\n <span ref={setActivatorNodeRef} style={{ touchAction: 'none', cursor: 'move' }} {...listeners}>\n <IconWrapper\n style={{\n touchAction: 'none',\n cursor: 'move',\n padding: '1px 0px',\n margin: 0,\n justifyContent: 'center',\n color: '#787878',\n }}\n icon={iconElement}\n onClick={noop}\n />\n </span>\n ),\n });\n }\n return child;\n })}\n </tr>\n );\n};\n","import { getCtx } from './context';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return <TableTrHandle {...props} dragIcon={ctx.dragIcon} />;\n};\n","import { DndContext, PointerSensor, useSensor, useSensors, type DragEndEvent } from '@dnd-kit/core';\nimport { restrictToVerticalAxis } from '@dnd-kit/modifiers';\nimport { arrayMove, SortableContext, verticalListSortingStrategy } from '@dnd-kit/sortable';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form } from 'antd';\nimport { type ReactElement } from 'react';\nimport { EditableTable, EditableTableProps } from '../editable-table';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\nexport type DragEditableTableProps = EditableTableProps & {\n /**\n * 拖拽图标自定义,默认使用 DragOutlined 图标\n */\n dragIcon?: ReactElement;\n\n /** 禁用拖拽 */\n disabledDrag?: boolean;\n /**\n * 表格数据唯一值字段Key\n * ```\n * ```\n */\n uidFieldKey: string;\n /**\n * 拖拽结束事件\n * ```\n * dataSource: 拖拽完成后的数据源\n * dragData\n * 1. activeId 拖拽ID\n * 2. activeIndex 拖拽起始表格数组索引值\n * 3. overIndex 拖拽结束表格数组索引值\n * ```\n */\n onDragChange?: (\n dataSource: TPlainObject[],\n dragData: {\n activeId: string | number;\n activeIndex: number;\n overIndex: number;\n },\n ) => void;\n};\n\n/**\n * 可拖拽编辑表格\n * ```\n * 1. 表格数据必须要有唯一值字段,通过参数 uidFieldKey 告诉组件\n * 2. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragEditableTable = (props) => {\n const { dragIcon, uidFieldKey, onDragChange, disabledDrag, ...otherProps } = props;\n const form = Form.useFormInstance();\n const dataList = Form.useWatch(props.name, form);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: 0,\n tolerance: 0,\n },\n }),\n );\n\n const onDragEnd = ({ active, over }: DragEndEvent) => {\n if (active.id !== over?.id) {\n const activeIndex = dataList.findIndex((i) => i[uidFieldKey] === active.id);\n const overIndex = dataList.findIndex((i) => i[uidFieldKey] === over?.id);\n const dataListNew = arrayMove(dataList, activeIndex, overIndex);\n form.setFields([\n {\n name: props.name,\n value: dataListNew,\n },\n ]);\n onDragChange?.(dataListNew as TPlainObject[], {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columns = disabledDrag\n ? otherProps.columns\n : [{ dataIndex: '__sort', width: 50, key: '__sort' }].concat((otherProps.columns || []) as TAny[]);\n\n return (\n <CtxProvider\n value={{\n dragIcon,\n uidFieldKey,\n }}\n >\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext\n items={dataList?.map((i) => i[uidFieldKey]) || []}\n strategy={verticalListSortingStrategy}\n >\n <EditableTable\n {...otherProps}\n uidFieldKey={uidFieldKey}\n columns={columns}\n tableProps={{\n ...otherProps.tableProps,\n components: {\n ...otherProps.tableProps?.components,\n body: {\n ...otherProps.tableProps?.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n },\n }}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTrHandle","props","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","_useSortable","useSortable","id","setActivatorNodeRef","listeners","setNodeRef","transform","transition","isDragging","isUndefinedOrNull","_jsx","_extends","style","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","backgroundColor","iconElement","_DragOutlined","_createElement","ref","key","Children","map","children","child","cloneElement","touchAction","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","Row","ctx","DragEditableTable","_otherProps$tableProp","_otherProps$tableProp2","uidFieldKey","onDragChange","disabledDrag","otherProps","form","Form","useFormInstance","dataList","useWatch","name","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","setFields","value","activeId","columns","dataIndex","width","concat","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","EditableTable","tableProps","components","body","row","undefined"],"mappings":"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"}
|
package/esm/easy-table/index.js
CHANGED
|
@@ -19,5 +19,5 @@ import './../form-grid/index.css';
|
|
|
19
19
|
import './../table-scrollbar/index.css';
|
|
20
20
|
import './index.css';
|
|
21
21
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
22
|
-
import{fbaUtils as e}from"../fba-utils/index.js";import{_ as n,a as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{isUndefined as r}from"@dimjs/lang/cjs/is-undefined";import{get as a}from"@dimjs/utils/cjs/get";import{isString as o}from"@dimjs/lang/cjs/is-string";import{isArray as l}from"@dimjs/lang/cjs/is-array";import{hooks as s}from"@wove/react/cjs/hooks";import{cloneState as u}from"@dimjs/model";import{noop as d,localStorageCache as c,isUndefinedOrNull as f,getUuid as p,isMacEnv as m}from"@flatbiz/utils";import{Drawer as v,Table as g,Checkbox as h,Popover as y,Form as C,message as S}from"antd";import{createContext as x,useState as b,Fragment as F,forwardRef as j,useRef as z,useMemo as R,useEffect as w,useImperativeHandle as q,cloneElement as P,useContext as N,Children as K}from"react";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{fbaHooks as T}from"../fba-hooks/index.js";import{FlexLayout as I}from"../flex-layout/index.js";import{IconWrapper as _}from"../icon-wrapper/index.js";import{P as D,S as L}from"../index-6677fbfc.js";import{SvgHttpView as E}from"../svg-http-view/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/index.js";import{TipsWrapper as A}from"../tips-wrapper/index.js";import{jsx as B,jsxs as O}from"react/jsx-runtime";import{Model as W}from"@dimjs/model-react";import U from"@ant-design/icons/es/icons/DownOutlined";import G from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as H}from"react-is";import{BlockLayout as Y}from"../block-layout/index.js";import{EasyForm as Q}from"../easy-form/index.js";import{FormGrid as $}from"../form-grid/index.js";import{TableScrollbar as J}from"../table-scrollbar/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../box-grid/index.js";import"@dimjs/lang/cjs/is-number";import"ahooks";import"../form-wrapper/index.js";import"../pre-defined-class-name/index.js";var M=x({onRequest:d,tableList:[],getEasyTableRef:function e(){}});var X=function e(n){var t=b(n.initSelectedRowKeys||[]),i=t[0],r=t[1];var a={type:"checkbox",selectedRowKeys:i,onChange:function e(t){r(t);n.onChange(t);if(n.cacheKey){c.set("easy_tab_"+n.cacheKey,{keys:t})}}};var o=[{title:"字段名称",dataIndex:"title",render:function e(n,t){return t["_isFoldTitle"]||n}},{title:"字段Key",dataIndex:"dataIndex"}];return B(F,{children:B(v,{title:"选择字段",open:n.open,onClose:n.onClose,width:"35%",styles:{body:{padding:15}},children:B(g,{bordered:true,size:"small",columns:o,rowSelection:a,rowKey:"dataIndex",pagination:false,scroll:{x:"max-content"},dataSource:n.dataList})})})};var Z=function e(n){var t=b(n.initSelectedRowKeys||[]),i=t[0],r=t[1];var a=function e(t){r(t);n.onChange(t);if(n.cacheKey){c.set("easy_tab_"+n.cacheKey,{keys:t})}};var o=B(F,{children:B(h.Group,{defaultValue:i,onChange:a,value:i,style:{display:"flex",flexDirection:"column"},children:n.dataList.map((function(e){var n=e["_isFoldTitle"]||e.title;return B(h,{value:e.dataIndex,style:{padding:"0 0 5px 0"},children:n},e.dataIndex)}))})});var l=function e(t){if(t.target.checked){a(n.dataList.map((function(e){return e.dataIndex})))}else{a([])}};return B(y,{content:o,title:B(h,{checked:i.length===n.dataList.length,onChange:l,children:"全选(字段列表)"}),placement:"bottomRight",overlayClassName:"fold-operate-popiver",children:n.children})};var ee={queryCondition:{},isInit:true};var ne={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=n({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=n({},ee.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:ee};var te={};var ie=function e(n){if(!te[n]){te[n]=W(ne)}return te[n]};var re=["tooltip","tipsWrapperProps","title","hidden","isFold"];var ae=j((function(e,d){var f;var p=b(),m=p[0],v=p[1];var g=b(0),h=g[0],y=g[1];var x=b(false),F=x[0],j=x[1];var N=s.useId(undefined,"easy-table-key");var K=e.columnFoldConfig;var L=e.asyncColumnRequest;var W=b(false),U=W[0],G=W[1];var H=z({});var Y=b({}),Q=Y[0],$=Y[1];var J=b((function(){if(K!=null&&K.cacheKey){var e;var n=c.get("easy_tab_"+K.cacheKey);var t=l(n==null?void 0:n.keys)?n==null||(e=n.keys)==null?void 0:e.filter((function(e){return o(e)})):[];return t.length>0?t:(K==null?void 0:K.initSelectedKeys)||[]}else{return(K==null?void 0:K.initSelectedKeys)||[]}})),ee=J[0],ne=J[1];var te=R((function(){if(e.cacheSwitch===true){return location.pathname}if(typeof e.cacheSwitch==="string"){return e.cacheSwitch}return N}),[N,e.cacheSwitch]);var ae=ie(te).useStore(),oe=ae[0],le=ae[1];var se=e.pageSize||((f=e.initialPaginationParams)==null?void 0:f.pageSize)||10;var ue=e.initRequest===undefined?true:e.initRequest;var de=z(false);var ce=z();var fe=z([]);var pe=b(),me=pe[0],ve=pe[1];var ge=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var he=C.useForm(e.form),ye=he[0];var Ce=s.useCallbackRef((function(n){return new Promise((function(t,i){var r,o,s,d,c,f,p,m,g,h,C,x;var b=function(){try{return t()}catch(e){return i(e)}};var F=function(n){try{j(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(n)}else{void S.error(n.message)}return b()}catch(e){return i(e)}};try{if(e.breforeRequest){var z=function(){try{return w.call(this)}catch(e){return F(e)}}.bind(this);var R=function(e){try{return t()}catch(e){return F(e)}};try{return Promise.resolve(e.breforeRequest(ye)).then((function(e){try{return z()}catch(e){return R(e)}}),R)}catch(q){R(q)}}function w(){j(true);return Promise.resolve(le.updateFilterCondition(n)).then((function(n){try{r=n;o=u(r.queryCondition||{});s=e.serviceConfig,d=s.requestParamsAdapter,c=s.onRequest,f=s.requestResultAdapter,p=s.dynamicColumsAdapter;m=d?d(o):o;return Promise.resolve(c(m)).then((function(n){try{g=n||{};ce.current=g;e.onDataSourceChange==null?void 0:e.onDataSourceChange(g);h=g;if(f){h=f(g)}if(p){C=p(g,fe.current);ve(C)}x=a(h,ge.list);v(l(x)?x:[]);y(a(h,ge.total));j(false);return b()}catch(e){return F(e)}}),F)}catch(e){return F(e)}}),F)}return w.call(this)}catch(P){F(P)}}))}));T.useEffectCustom((function(){var t=Ee();if(ue!==false||!oe.isInit){if(t){var i;void Ce(n((i={},i[ge.pageNo]=1,i[ge.pageSize]=se,i),e.initialValues,oe.queryCondition))}else{void Ce(e.initialValues)}}else{void le.updateFilterCondition(e.initialValues)}void le.updateInitStatus()}),[]);w((function(){if(L!=null&&L.length){var e=function e(){var i;var r=L[t];H.current=n({},H.current,(i={},i[r.dataIndex]={loading:true},i));$(H.current);r.onRequest().then((function(e){var t;H.current=n({},H.current,(t={},t[r.dataIndex]={loading:false,respData:e},t));$(H.current)})).catch((function(e){var t;console.error(e==null?void 0:e.message);H.current=n({},H.current,(t={},t[r.dataIndex]={loading:false},t));$(H.current)}))};for(var t=0;t<L.length;t++){e()}}}),[]);var Se=s.useCallbackRef((function(e){return new Promise((function(n,t){return Promise.resolve(le.resetFilterCondition()).then((function(i){try{ye.resetFields();if(e){void le.updateFilterCondition(e);ye.setFieldsValue(e)}return n()}catch(e){return t(e)}}),t)}))}));var xe=function e(n,t){if(Ee()){var i;return i={},i[ge.pageNo]=n,i[ge.pageSize]=t||se,i}else{var r;return r={},r[ge.pageNo]=undefined,r[ge.pageSize]=undefined,r}};var be=s.useCallbackRef((function(t){return new Promise((function(i,r){var a;a=n({},xe(1,oe.queryCondition[ge.pageSize]),e.initialValues,t);return Promise.resolve(le.resetFilterCondition(a)).then((function(e){try{ye.resetFields();if(t){ye.setFieldsValue(t)}void Ce(a);return i()}catch(e){return r(e)}}),r)}))}));var Fe=s.useCallbackRef((function(){return n({},oe.queryCondition,ye.getFieldsValue())}));var je=s.useCallbackRef((function(){G(true)}));var ze=s.useCallbackRef((function(){G(false)}));var Re=function n(){return{onRequest:Ce,clearQueryCondition:Se,getRequestParams:Fe,onResetRequest:be,form:ye,getDataSource:function e(){return ce.current},onFilterDataSource:function e(n){v(n)},onClearDataSource:function e(){y(0);v([])},onUpdateDataSource:function n(t){v(t);ce.current=t;e.onDataSourceChange==null?void 0:e.onDataSourceChange(t)},columnFoldTriggerRender:function n(t){var i;if(((i=e.columnFoldConfig)==null?void 0:i.triggerType)==="drawer"){return P(t,{onClick:je})}return B(Z,{dataList:_e,onChange:De,cacheKey:K==null?void 0:K.cacheKey,initSelectedRowKeys:ee,children:t})},loading:F}};q(d,(function(){return Re()}));var we=function e(n){de.current=n};var qe=function e(n){fe.current=n};var Pe=function t(){var i=ye.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},i,xe(1,oe.queryCondition[ge.pageSize])))}else{void Ce(n({},i,xe(1,oe.queryCondition[ge.pageSize])))}};var Ne=r(e.isFull)?true:e.isFull;var Ke=i("fba-easy-table",{"fba-easy-table-full":Ne,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var ke=R((function(){return n({showSizeChanger:true,current:oe.queryCondition[ge.pageNo]||1,pageSize:oe.queryCondition[ge.pageSize]||se,total:h,showTotal:function e(n){return"共 "+n+" 条记录"}},e.pagination)}),[ge.pageNo,ge.pageSize,se,e.pagination,oe.queryCondition,h]);var Te=me?me:fe.current;var Ie=R((function(){var e=Te.map((function(e){var i=e.tooltip,r=e.tipsWrapperProps,a=e.title,o=e.hidden,l=e.isFold,s=t(e,re);if(o)return null;if(l&&!ee.includes(e.dataIndex))return null;if(typeof a==="string"&&r){if(typeof r==="string"){return n({},s,{title:B(A,{tipType:"popover",popoverProps:{content:r},children:a})})}return n({},s,{title:B(A,n({},r,{children:a}))})}if(typeof a==="string"&&!!i){return n({},s,{title:B(V,{tooltip:i,title:a})})}return e})).filter(Boolean);return[].concat(e)}),[Te,ee]);var _e=Te.filter((function(e){return!e.hidden&&e.isFold&&e.dataIndex}));var De=function e(n){ne(n);K==null||K.onChange==null?void 0:K.onChange(n)};Ie=R((function(){if(K!=null&&K.hidden)return Ie;var e=Ie[Ie.length-1];if(_e.length>0&&Ie.length>0){var n=Ie.find((function(e){return e["_isFoldColumn"]}));if(n&&e.dataIndex!==n.dataIndex){n.title=n["_isFoldTitle"];n["_isFoldColumn"]=false}if(!e["_isFoldColumn"]){e["_isFoldTitle"]=e["_isFoldTitle"]||e.title;e["_isFoldColumn"]=true;var t=K==null?void 0:K.triggerType;e.title=O(I,{direction:"horizontal",fullIndex:0,style:{alignItems:"center"},children:[B("span",{children:e.title}),B("div",{style:{padding:"0 5px 0 20px",display:"flex"},children:t==="drawer"?B(_,{onClick:je,text:K==null?void 0:K.text,size:"small",icon:(K==null?void 0:K.icon)||B(E,{svgPath:"ionic/list-circle",color:"#868686"}),hoverTips:(K==null?void 0:K.hoverTipText)||"字段列表",style:{padding:0,margin:0}}):B(Z,{dataList:_e,onChange:De,cacheKey:K==null?void 0:K.cacheKey,initSelectedRowKeys:ee,children:B(_,{text:K==null?void 0:K.text,style:{padding:0,margin:0},size:"small",icon:(K==null?void 0:K.icon)||B(E,{svgPath:"ionic/list-circle",color:"#868686"})})})})]})}}return Ie}),[Ie,_e,K]);Ie=R((function(){if(!Object.keys(Q))return Ie;return Ie.map((function(e){var n=e.dataIndex;var t=Q[n];if(n&&t){if(t.loading){e.render=function(e){return B(k,{loading:true,type:"text",loadingPosition:"center",removeGap:true,children:e})}}else if(e.asyncRender){e.render=function(n,i,r){return e.asyncRender==null?void 0:e.asyncRender(n,i,r,t.respData)}}}return e}))}),[Ie,Q]);var Le=s.useCallbackRef((function(n,t){var i,r;void Ce((i={},i[ge.pageSize]=t,i[ge.pageNo]=n,i));(r=e.pagination)==null||r.onChange==null?void 0:r.onChange(n,t)}));var Ee=function n(){return e.paginationFixed||de.current};s.useUpdateEffect((function(){if(e.paginationFixed){var n;Ce((n={},n[ge.pageSize]=oe.queryCondition[ge.pageSize]||se,n[ge.pageNo]=1,n))}else{var t;Ce((t={},t[ge.pageSize]=undefined,t[ge.pageNo]=undefined,t))}}),[e.paginationFixed]);var Ve=i("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var Ae=n({overflowY:e.filterFixed||e.paginationFixed?"hidden":"auto"},e.style);var Be=typeof e.children==="function"?e.children(ce.current):e.children;return O(M.Provider,{value:{onSetBaseColumns:qe,getEasyTableRef:Re,modelKey:te,onRequest:Ce,tableDataSource:m,tableTotal:h,loading:F,fieldNames:ge,pageSize:se,onSetPaginationStatus:we,getPaginationStatus:Ee,onFormFinish:Pe,form:ye,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[],columns:Ie,initialValues:e.initialValues},children:[e.paginationFixed?O("div",{className:Ve,style:Ae,children:[B("div",{className:Ke,children:Be}),h>0&&B("div",{className:"fba-easy-table-pagination",children:B(D,n({size:"small"},ke,{onChange:Le}))})]}):B("div",{className:Ve,style:e.style,children:Be}),B(X,{dataList:_e,onClose:ze,open:U,onChange:De,cacheKey:K==null?void 0:K.cacheKey,initSelectedRowKeys:ee})]})}));var oe=function e(t){var a=T.useResponsivePoint()||"md";var o=N(M);var l=t.queryButtonProps,u=t.resetButtonProps,d=t.filterOperate,c=t.formClassName,f=c===void 0?"":c,p=t.defaultResetButtonTriggerRequest,m=t.filterWrapperStyle,v=t.filterWrapperClassName,g=t.rightOperateAreaAppendType,h=t.easyFormProps;var y=o.modelKey,C=o.foldKeys,S=o.fieldNames,x=o.onRequest,F=o.pageSize,j=o.getPaginationStatus,z=o.initialValues,w=o.form,q=o.onFormFinish;var P=typeof t.children==="function"?t.children(w):t.children;var I=g||"cover";var _=R((function(){if(H(P)){return K.toArray(P.props.children)}else{return K.toArray(P)}}),[P]);var D=b(false),L=D[0],E=D[1];var V=ie(y).useStore(),A=V[0],W=V[1];var J=s.useCallbackRef((function(){return new Promise((function(e,t){var i;return Promise.resolve(W.resetFilterCondition()).then(function(a){try{w.resetFields();if(r(p)||p){return Promise.resolve(w.validateFields()).then(function(e){try{if(j()){x(n((i={},i[S.pageNo]=1,i[S.pageSize]=F,i),z))}else{x(z)}return o.call(this)}catch(e){return t(e)}}.bind(this),t)}function o(){return e()}return o.call(this)}catch(l){return t(l)}}.bind(this),t)}))}));var X=R((function(){var e=[!(l!=null&&l.hidden)?B(k,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"):null,!(u!=null&&u.hidden)?B(k,n({onClick:J},u,{children:(u==null?void 0:u.text)||"重置"}),"2"):null].filter(Boolean);var t=d==null?void 0:d(w);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var a=e;if(i){if(I==="afterAppend"){a=[].concat(e,i)}else if(I==="beforeAppend"){a=[].concat(i,e)}else{a=i}}if(C.length>0){var o=B(k,{type:"link",style:{padding:"0"},onClick:function e(){E(!L)},children:L?O("span",{children:["收起",B(G,{style:{marginLeft:3,fontSize:12}})]}):O("span",{children:["展开",B(U,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return _.map((function(e,n){if(!L&&C.find((function(n){return".$"+n===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return B($.Col,{children:e},n)})).filter(Boolean).concat(B($.OperateCol,n({},t,{leftList:r,rightList:a}),999))}),[_,d,C,w,J,L,l,u,I]);var Z=a==="xs"?"left":(h==null?void 0:h.labelAlign)||"right";return B(Y,{className:i("easy-table-filter",v),style:m,children:B(Q,n({form:w,autoComplete:"off",onFinish:q,initialValues:n({},z,A.queryCondition),className:f,style:t.formStyle,isPure:true,labelWidth:"80",formItemGap:"15"},h,{labelAlign:Z,children:t.isPure?P:B($.Row,{gutter:[15,0],gridSize:t.formGridSize,children:X})}))})};var le=function e(){var n=N(M);return n.getEasyTableRef()};var se=function e(){var n=N(M);return{current:n.getEasyTableRef()}};var ue=["children","rowKey","pagination","isSync"];var de=function e(r){var a=N(M);var o=r.children,l=r.rowKey,u=r.pagination,d=r.isSync,c=t(r,ue);var v=a.modelKey,h=a.fieldNames,y=a.onRequest,C=a.tableDataSource,S=a.pageSize,x=a.tableTotal,b=a.loading,j=a.paginationFixed,z=a.onSetPaginationStatus;var w=ie(v).useStore(),q=w[0];T.useEffectCustom((function(){a.onSetBaseColumns(r.columns||[])}),[r.columns]);T.useEffectCustom((function(){z(u!==false)}),[u]);s.useUpdateEffect((function(){if(!j){if(u!==false){var e;y((e={},e[h.pageSize]=q.queryCondition[h.pageSize]||S,e[h.pageNo]=1,e))}else{var n;y((n={},n[h.pageSize]=undefined,n[h.pageNo]=undefined,n))}}}),[u]);var P=R((function(){if(j||u===false)return false;return n({showSizeChanger:true,current:q.queryCondition[h.pageNo]||1,pageSize:q.queryCondition[h.pageSize]||S,total:x,showTotal:function e(n){return"共 "+n+" 条记录"}},r.pagination,{selectComponentClass:L})}),[h.pageNo,h.pageSize,S,u,j,r.pagination,q.queryCondition,x]);var K=function e(n,t,i,a){if(a.action==="paginate"&&P){var o;y((o={},o[h.pageSize]=n.pageSize,o[h.pageNo]=n.current,o))}else{r.onChange==null?void 0:r.onChange(n,t,i,a)}};var k=R((function(){if(!C)return undefined;if(C.length===0){return[]}if(typeof l==="string"&&f(C[0][l])){return C.map((function(e){e[l]=p();return e}))}return C}),[C,l]);var I=function e(){if(d&&!k){return O(F,{children:[o,B(g,{size:"small",scroll:{x:"max-content"},bordered:true,rowKey:l,columns:a.columns,loading:b},"1")]})}if(m()){return O(F,{children:[o,B(g,n({size:"small",scroll:{x:"max-content"},bordered:true},c,{columns:a.columns,pagination:P,rowKey:l,onChange:K,loading:b,dataSource:k}),"2")]})}return O(F,{children:[o,B(J,{children:B(g,n({size:"small",scroll:{x:"max-content"},bordered:true},c,{columns:a.columns,pagination:P,rowKey:l,onChange:K,loading:b,dataSource:k}),"3")})]})};return B(Y,{className:i("easy-table-table",{"ett-empty-show-small":r.emptyShowSize==="small"},r.tableWrapperClassName),style:r.tableWrapperStyle,children:I()})};var ce=e.attachPropertiesToComponent(ae,{Filter:oe,Table:de,useEasyTablRef:se,useEasyTable:le});export{ce as EasyTable};
|
|
22
|
+
import{fbaUtils as e}from"../fba-utils/index.js";import{_ as n,a as t}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as i}from"@dimjs/utils/cjs/class-names";import{isUndefined as r}from"@dimjs/lang/cjs/is-undefined";import{get as a}from"@dimjs/utils/cjs/get";import{isString as o}from"@dimjs/lang/cjs/is-string";import{isArray as l}from"@dimjs/lang/cjs/is-array";import{hooks as u}from"@wove/react/cjs/hooks";import{cloneState as s}from"@dimjs/model";import{noop as d,localStorageCache as c,isUndefinedOrNull as f,getUuid as p,isMacEnv as m}from"@flatbiz/utils";import{Drawer as v,Table as g,Checkbox as h,Popover as y,Form as C,message as S}from"antd";import{createContext as x,useState as b,Fragment as F,forwardRef as j,useRef as z,useMemo as R,useEffect as w,useImperativeHandle as q,cloneElement as P,useContext as N,Children as K}from"react";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{fbaHooks as T}from"../fba-hooks/index.js";import{FlexLayout as I}from"../flex-layout/index.js";import{IconWrapper as _}from"../icon-wrapper/index.js";import{P as D,S as L}from"../index-6677fbfc.js";import{SvgHttpView as V}from"../svg-http-view/index.js";import{TableTitleTooltip as E}from"../table-title-tooltip/index.js";import{TipsWrapper as A}from"../tips-wrapper/index.js";import{jsx as B,jsxs as O}from"react/jsx-runtime";import{Model as W}from"@dimjs/model-react";import U from"@ant-design/icons/es/icons/DownOutlined";import G from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as H}from"react-is";import{BlockLayout as Q}from"../block-layout/index.js";import{EasyForm as Y}from"../easy-form/index.js";import{FormGrid as $}from"../form-grid/index.js";import{TableScrollbar as J}from"../table-scrollbar/index.js";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"@dimjs/utils/cjs/extend";import"../use-responsive-point-21b8c601.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"../box-grid/index.js";import"@dimjs/lang/cjs/is-number";import"ahooks";import"../form-wrapper/index.js";import"../pre-defined-class-name/index.js";var M=x({onRequest:d,tableList:[],getEasyTableRef:function e(){}});var X=function e(n){var t=b(n.initSelectedRowKeys||[]),i=t[0],r=t[1];var a={type:"checkbox",selectedRowKeys:i,onChange:function e(t){r(t);n.onChange(t);if(n.cacheKey){c.set("easy_tab_"+n.cacheKey,{keys:t})}}};var o=[{title:"字段名称",dataIndex:"title",render:function e(n,t){return t["_isFoldTitle"]||n}},{title:"字段Key",dataIndex:"dataIndex"}];return B(F,{children:B(v,{title:"选择字段",open:n.open,onClose:n.onClose,width:"35%",styles:{body:{padding:15}},children:B(g,{bordered:true,size:"small",columns:o,rowSelection:a,rowKey:"dataIndex",pagination:false,scroll:{x:"max-content"},dataSource:n.dataList})})})};var Z=function e(n){var t=b(n.initSelectedRowKeys||[]),i=t[0],r=t[1];var a=function e(t){r(t);n.onChange(t);if(n.cacheKey){c.set("easy_tab_"+n.cacheKey,{keys:t})}};var o=B(F,{children:B(h.Group,{defaultValue:i,onChange:a,value:i,style:{display:"flex",flexDirection:"column"},children:n.dataList.map((function(e){var n=e["_isFoldTitle"]||e.title;return B(h,{value:e.dataIndex,style:{padding:"0 0 5px 0"},children:n},e.dataIndex)}))})});var l=function e(t){if(t.target.checked){a(n.dataList.map((function(e){return e.dataIndex})))}else{a([])}};return B(y,{content:o,title:B(h,{checked:i.length===n.dataList.length,onChange:l,children:"全选(字段列表)"}),placement:"bottomRight",overlayClassName:"fold-operate-popiver",children:n.children})};var ee={queryCondition:{},isInit:true};var ne={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=n({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=n({},ee.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:ee};var te={};var ie=function e(n){if(!te[n]){te[n]=W(ne)}return te[n]};var re=["tooltip","tipsWrapperProps","title","hidden","isFold"];var ae=j((function(e,d){var f;var p=b(),m=p[0],v=p[1];var g=b(0),h=g[0],y=g[1];var x=b(false),F=x[0],j=x[1];var N=u.useId(undefined,"easy-table-key");var K=e.columnFoldConfig;var L=e.asyncColumnRequest;var W=b(false),U=W[0],G=W[1];var H=z({});var Q=b({}),Y=Q[0],$=Q[1];var J=b((function(){if(K!=null&&K.cacheKey){var e;var n=c.get("easy_tab_"+K.cacheKey);var t=l(n==null?void 0:n.keys)?n==null||(e=n.keys)==null?void 0:e.filter((function(e){return o(e)})):[];return t.length>0?t:(K==null?void 0:K.initSelectedKeys)||[]}else{return(K==null?void 0:K.initSelectedKeys)||[]}})),ee=J[0],ne=J[1];var te=R((function(){if(e.cacheSwitch===true){return location.pathname}if(typeof e.cacheSwitch==="string"){return e.cacheSwitch}return N}),[N,e.cacheSwitch]);var ae=ie(te).useStore(),oe=ae[0],le=ae[1];var ue=e.pageSize||((f=e.initialPaginationParams)==null?void 0:f.pageSize)||10;var se=e.initRequest===undefined?true:e.initRequest;var de=z(false);var ce=z();var fe=z([]);var pe=b(),me=pe[0],ve=pe[1];var ge=n({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var he=C.useForm(e.form),ye=he[0];var Ce=u.useCallbackRef((function(n){return new Promise((function(t,i){var r,o,u,d,c,f,p,m,g,h,C,x;var b=function(){try{return t()}catch(e){return i(e)}};var F=function(n){try{j(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(n)}else{void S.error(n.message)}return b()}catch(e){return i(e)}};try{if(e.breforeRequest){var z=function(){try{return w.call(this)}catch(e){return F(e)}}.bind(this);var R=function(e){try{return t()}catch(e){return F(e)}};try{return Promise.resolve(e.breforeRequest(ye)).then((function(e){try{return z()}catch(e){return R(e)}}),R)}catch(q){R(q)}}function w(){j(true);return Promise.resolve(le.updateFilterCondition(n)).then((function(n){try{r=n;o=s(r.queryCondition||{});u=e.serviceConfig,d=u.requestParamsAdapter,c=u.onRequest,f=u.requestResultAdapter,p=u.dynamicColumsAdapter;m=d?d(o):o;return Promise.resolve(c(m)).then((function(n){try{g=n||{};ce.current=g;e.onDataSourceChange==null?void 0:e.onDataSourceChange(g);h=g;if(f){h=f(g)}if(p){C=p(g,fe.current);ve(C)}x=a(h,ge.list);v(l(x)?x:[]);y(a(h,ge.total));j(false);return b()}catch(e){return F(e)}}),F)}catch(e){return F(e)}}),F)}return w.call(this)}catch(P){F(P)}}))}));T.useEffectCustom((function(){var t=Ee();if(se!==false||!oe.isInit){if(t){var i;void Ce(n((i={},i[ge.pageNo]=1,i[ge.pageSize]=ue,i),e.initialValues,oe.queryCondition))}else{void Ce(e.initialValues)}}else{void le.updateFilterCondition(e.initialValues)}void le.updateInitStatus()}),[]);w((function(){if(L!=null&&L.length){var e=function e(){var i;var r=L[t];H.current=n({},H.current,(i={},i[r.dataIndex]={loading:true},i));$(H.current);r.onRequest().then((function(e){var t;H.current=n({},H.current,(t={},t[r.dataIndex]={loading:false,respData:e},t));$(H.current)})).catch((function(e){var t;console.error(e==null?void 0:e.message);H.current=n({},H.current,(t={},t[r.dataIndex]={loading:false},t));$(H.current)}))};for(var t=0;t<L.length;t++){e()}}}),[]);var Se=u.useCallbackRef((function(e){return new Promise((function(n,t){return Promise.resolve(le.resetFilterCondition()).then((function(i){try{ye.resetFields();if(e){void le.updateFilterCondition(e);ye.setFieldsValue(e)}return n()}catch(e){return t(e)}}),t)}))}));var xe=u.useCallbackRef((function(e){return new Promise((function(n,t){return Promise.resolve(le.updateFilterCondition(e)).then((function(i){try{ye.setFieldsValue(e);return n()}catch(e){return t(e)}}),t)}))}));var be=function e(n,t){if(Ee()){var i;return i={},i[ge.pageNo]=n,i[ge.pageSize]=t||ue,i}else{var r;return r={},r[ge.pageNo]=undefined,r[ge.pageSize]=undefined,r}};var Fe=u.useCallbackRef((function(t){return new Promise((function(i,r){var a;a=n({},be(1,oe.queryCondition[ge.pageSize]),e.initialValues,t);return Promise.resolve(le.resetFilterCondition(a)).then((function(e){try{ye.resetFields();if(t){ye.setFieldsValue(t)}void Ce(a);return i()}catch(e){return r(e)}}),r)}))}));var je=u.useCallbackRef((function(){return n({},oe.queryCondition,ye.getFieldsValue())}));var ze=u.useCallbackRef((function(){G(true)}));var Re=u.useCallbackRef((function(){G(false)}));var we=function n(){return{onRequest:Ce,clearQueryCondition:Se,updateQueryCondition:xe,getRequestParams:je,onResetRequest:Fe,form:ye,getDataSource:function e(){return ce.current},onFilterDataSource:function e(n){v(n)},onClearDataSource:function e(){y(0);v([])},onUpdateDataSource:function n(t){v(t);ce.current=t;e.onDataSourceChange==null?void 0:e.onDataSourceChange(t)},columnFoldTriggerRender:function n(t){var i;if(((i=e.columnFoldConfig)==null?void 0:i.triggerType)==="drawer"){return P(t,{onClick:ze})}return B(Z,{dataList:De,onChange:Le,cacheKey:K==null?void 0:K.cacheKey,initSelectedRowKeys:ee,children:t})},loading:F}};q(d,(function(){return we()}));var qe=function e(n){de.current=n};var Pe=function e(n){fe.current=n};var Ne=function t(){var i=ye.getFieldsValue();if(e.onFormFinish){e.onFormFinish(n({},i,be(1,oe.queryCondition[ge.pageSize])))}else{void Ce(n({},i,be(1,oe.queryCondition[ge.pageSize])))}};var Ke=r(e.isFull)?true:e.isFull;var ke=i("fba-easy-table",{"fba-easy-table-full":Ke,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var Te=R((function(){return n({showSizeChanger:true,current:oe.queryCondition[ge.pageNo]||1,pageSize:oe.queryCondition[ge.pageSize]||ue,total:h,showTotal:function e(n){return"共 "+n+" 条记录"}},e.pagination)}),[ge.pageNo,ge.pageSize,ue,e.pagination,oe.queryCondition,h]);var Ie=me?me:fe.current;var _e=R((function(){var e=Ie.map((function(e){var i=e.tooltip,r=e.tipsWrapperProps,a=e.title,o=e.hidden,l=e.isFold,u=t(e,re);if(o)return null;if(l&&!ee.includes(e.dataIndex))return null;if(typeof a==="string"&&r){if(typeof r==="string"){return n({},u,{title:B(A,{tipType:"popover",popoverProps:{content:r},children:a})})}return n({},u,{title:B(A,n({},r,{children:a}))})}if(typeof a==="string"&&!!i){return n({},u,{title:B(E,{tooltip:i,title:a})})}return e})).filter(Boolean);return[].concat(e)}),[Ie,ee]);var De=Ie.filter((function(e){return!e.hidden&&e.isFold&&e.dataIndex}));var Le=function e(n){ne(n);K==null||K.onChange==null?void 0:K.onChange(n)};_e=R((function(){if(K!=null&&K.hidden)return _e;var e=_e[_e.length-1];if(De.length>0&&_e.length>0){var n=_e.find((function(e){return e["_isFoldColumn"]}));if(n&&e.dataIndex!==n.dataIndex){n.title=n["_isFoldTitle"];n["_isFoldColumn"]=false}if(!e["_isFoldColumn"]){e["_isFoldTitle"]=e["_isFoldTitle"]||e.title;e["_isFoldColumn"]=true;var t=K==null?void 0:K.triggerType;e.title=O(I,{direction:"horizontal",fullIndex:0,style:{alignItems:"center"},children:[B("span",{children:e.title}),B("div",{style:{padding:"0 5px 0 20px",display:"flex"},children:t==="drawer"?B(_,{onClick:ze,text:K==null?void 0:K.text,size:"small",icon:(K==null?void 0:K.icon)||B(V,{svgPath:"ionic/list-circle",color:"#868686"}),hoverTips:(K==null?void 0:K.hoverTipText)||"字段列表",style:{padding:0,margin:0}}):B(Z,{dataList:De,onChange:Le,cacheKey:K==null?void 0:K.cacheKey,initSelectedRowKeys:ee,children:B(_,{text:K==null?void 0:K.text,style:{padding:0,margin:0},size:"small",icon:(K==null?void 0:K.icon)||B(V,{svgPath:"ionic/list-circle",color:"#868686"})})})})]})}}return _e}),[_e,De,K]);_e=R((function(){if(!Object.keys(Y))return _e;return _e.map((function(e){var n=e.dataIndex;var t=Y[n];if(n&&t){if(t.loading){e.render=function(e){return B(k,{loading:true,type:"text",loadingPosition:"center",removeGap:true,children:e})}}else if(e.asyncRender){e.render=function(n,i,r){return e.asyncRender==null?void 0:e.asyncRender(n,i,r,t.respData)}}}return e}))}),[_e,Y]);var Ve=u.useCallbackRef((function(n,t){var i,r;void Ce((i={},i[ge.pageSize]=t,i[ge.pageNo]=n,i));(r=e.pagination)==null||r.onChange==null?void 0:r.onChange(n,t)}));var Ee=function n(){return e.paginationFixed||de.current};u.useUpdateEffect((function(){if(e.paginationFixed){var n;void Ce((n={},n[ge.pageSize]=oe.queryCondition[ge.pageSize]||ue,n[ge.pageNo]=1,n))}else{var t;void Ce((t={},t[ge.pageSize]=undefined,t[ge.pageNo]=undefined,t))}}),[e.paginationFixed]);var Ae=i("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var Be=n({overflowY:e.filterFixed||e.paginationFixed?"hidden":"auto"},e.style);var Oe=typeof e.children==="function"?e.children(ce.current):e.children;return O(M.Provider,{value:{onSetBaseColumns:Pe,getEasyTableRef:we,modelKey:te,onRequest:Ce,tableDataSource:m,tableTotal:h,loading:F,fieldNames:ge,pageSize:ue,onSetPaginationStatus:qe,getPaginationStatus:Ee,onFormFinish:Ne,form:ye,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[],columns:_e,initialValues:e.initialValues},children:[e.paginationFixed?O("div",{className:Ae,style:Be,children:[B("div",{className:ke,children:Oe}),h>0&&B("div",{className:"fba-easy-table-pagination",children:B(D,n({size:"small"},Te,{onChange:Ve}))})]}):B("div",{className:Ae,style:e.style,children:Oe}),B(X,{dataList:De,onClose:Re,open:U,onChange:Le,cacheKey:K==null?void 0:K.cacheKey,initSelectedRowKeys:ee})]})}));var oe=function e(t){var a=T.useResponsivePoint()||"md";var o=N(M);var l=t.queryButtonProps,s=t.resetButtonProps,d=t.filterOperate,c=t.formClassName,f=c===void 0?"":c,p=t.defaultResetButtonTriggerRequest,m=t.filterWrapperStyle,v=t.filterWrapperClassName,g=t.rightOperateAreaAppendType,h=t.easyFormProps;var y=o.modelKey,C=o.foldKeys,S=o.fieldNames,x=o.onRequest,F=o.pageSize,j=o.getPaginationStatus,z=o.initialValues,w=o.form,q=o.onFormFinish;var P=typeof t.children==="function"?t.children(w):t.children;var I=g||"cover";var _=R((function(){if(H(P)){return K.toArray(P.props.children)}else{return K.toArray(P)}}),[P]);var D=b(false),L=D[0],V=D[1];var E=ie(y).useStore(),A=E[0],W=E[1];var J=u.useCallbackRef((function(){return new Promise((function(e,t){var i;return Promise.resolve(W.resetFilterCondition()).then(function(a){try{w.resetFields();if(r(p)||p){return Promise.resolve(w.validateFields()).then(function(e){try{if(j()){x(n((i={},i[S.pageNo]=1,i[S.pageSize]=F,i),z))}else{x(z)}return o.call(this)}catch(e){return t(e)}}.bind(this),t)}function o(){return e()}return o.call(this)}catch(l){return t(l)}}.bind(this),t)}))}));var X=R((function(){var e=[!(l!=null&&l.hidden)?B(k,n({type:"primary",htmlType:"submit"},l,{children:(l==null?void 0:l.text)||"查询"}),"1"):null,!(s!=null&&s.hidden)?B(k,n({onClick:J},s,{children:(s==null?void 0:s.text)||"重置"}),"2"):null].filter(Boolean);var t=d==null?void 0:d(w);var i=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var a=e;if(i){if(I==="afterAppend"){a=[].concat(e,i)}else if(I==="beforeAppend"){a=[].concat(i,e)}else{a=i}}if(C.length>0){var o=B(k,{type:"link",style:{padding:"0"},onClick:function e(){V(!L)},children:L?O("span",{children:["收起",B(G,{style:{marginLeft:3,fontSize:12}})]}):O("span",{children:["展开",B(U,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(a.length>0||r.length===0){a.push(o)}else if((r==null?void 0:r.length)>0){r.push(o)}}return _.map((function(e,n){if(!L&&C.find((function(n){return".$"+n===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return B($.Col,{children:e},n)})).filter(Boolean).concat(B($.OperateCol,n({},t,{leftList:r,rightList:a}),999))}),[_,d,C,w,J,L,l,s,I]);var Z=a==="xs"?"left":(h==null?void 0:h.labelAlign)||"right";return B(Q,{className:i("easy-table-filter",v),style:m,children:B(Y,n({form:w,autoComplete:"off",onFinish:q,initialValues:n({},z,A.queryCondition),className:f,style:t.formStyle,isPure:true,labelWidth:"80",formItemGap:"15"},h,{labelAlign:Z,children:t.isPure?P:B($.Row,{gutter:[15,0],gridSize:t.formGridSize,children:X})}))})};var le=function e(){var n=N(M);return n.getEasyTableRef()};var ue=function e(){var n=N(M);return{current:n.getEasyTableRef()}};var se=["children","rowKey","pagination","isSync"];var de=function e(r){var a=N(M);var o=r.children,l=r.rowKey,s=r.pagination,d=r.isSync,c=t(r,se);var v=a.modelKey,h=a.fieldNames,y=a.onRequest,C=a.tableDataSource,S=a.pageSize,x=a.tableTotal,b=a.loading,j=a.paginationFixed,z=a.onSetPaginationStatus;var w=ie(v).useStore(),q=w[0];T.useEffectCustom((function(){a.onSetBaseColumns(r.columns||[])}),[r.columns]);T.useEffectCustom((function(){z(s!==false)}),[s]);u.useUpdateEffect((function(){if(!j){if(s!==false){var e;y((e={},e[h.pageSize]=q.queryCondition[h.pageSize]||S,e[h.pageNo]=1,e))}else{var n;y((n={},n[h.pageSize]=undefined,n[h.pageNo]=undefined,n))}}}),[s]);var P=R((function(){if(j||s===false)return false;return n({showSizeChanger:true,current:q.queryCondition[h.pageNo]||1,pageSize:q.queryCondition[h.pageSize]||S,total:x,showTotal:function e(n){return"共 "+n+" 条记录"}},r.pagination,{selectComponentClass:L})}),[h.pageNo,h.pageSize,S,s,j,r.pagination,q.queryCondition,x]);var K=function e(n,t,i,a){if(a.action==="paginate"&&P){var o;y((o={},o[h.pageSize]=n.pageSize,o[h.pageNo]=n.current,o))}else{r.onChange==null?void 0:r.onChange(n,t,i,a)}};var k=R((function(){if(!C)return undefined;if(C.length===0){return[]}if(typeof l==="string"&&f(C[0][l])){return C.map((function(e){e[l]=p();return e}))}return C}),[C,l]);var I=function e(){if(d&&!k){return O(F,{children:[o,B(g,{size:"small",scroll:{x:"max-content"},bordered:true,rowKey:l,columns:a.columns,loading:b},"1")]})}if(m()){return O(F,{children:[o,B(g,n({size:"small",scroll:{x:"max-content"},bordered:true},c,{columns:a.columns,pagination:P,rowKey:l,onChange:K,loading:b,dataSource:k}),"2")]})}return O(F,{children:[o,B(J,{children:B(g,n({size:"small",scroll:{x:"max-content"},bordered:true},c,{columns:a.columns,pagination:P,rowKey:l,onChange:K,loading:b,dataSource:k}),"3")})]})};return B(Q,{className:i("easy-table-table",{"ett-empty-show-small":r.emptyShowSize==="small"},r.tableWrapperClassName),style:r.tableWrapperStyle,children:I()})};var ce=e.attachPropertiesToComponent(ae,{Filter:oe,Table:de,useEasyTablRef:ue,useEasyTable:le});export{ce as EasyTable};
|
|
23
23
|
//# 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/fold-operate.tsx","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableDataSource?: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initialValues?: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n getPaginationStatus: () => boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n columns: TEasyTableTableColumn<TPlainObject>[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { localStorageCache, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Drawer, Table } from 'antd';\nimport { ColumnsType } from 'antd/es/table';\nimport { TableRowSelection } from 'antd/es/table/interface';\nimport { CSSProperties, Fragment, useState } from 'react';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex?: string; title: string }[];\n onChange: (keys: string[]) => void;\n open?: boolean;\n onClose?: () => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n};\n\nexport const FoldOperate = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n const rowSelection = {\n type: 'checkbox',\n selectedRowKeys: selectedRowKeys,\n onChange: (selectedRowKeys: string[]) => {\n setSelectedRowKeys(selectedRowKeys);\n props.onChange(selectedRowKeys);\n if (props.cacheKey) {\n localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: selectedRowKeys });\n }\n },\n } as TableRowSelection<TAny>;\n\n const columns: ColumnsType<TPlainObject> = [\n {\n title: '字段名称',\n dataIndex: 'title',\n render: (value, recrd) => {\n return recrd['_isFoldTitle'] || value;\n },\n },\n { title: '字段Key', dataIndex: 'dataIndex' },\n ];\n\n return (\n <Fragment>\n <Drawer\n title=\"选择字段\"\n open={props.open}\n onClose={props.onClose}\n width={'35%'}\n styles={{\n body: {\n padding: 15,\n },\n }}\n >\n <Table\n bordered\n size=\"small\"\n columns={columns}\n rowSelection={rowSelection}\n rowKey=\"dataIndex\"\n pagination={false}\n scroll={{ x: 'max-content' }}\n dataSource={props.dataList}\n />\n </Drawer>\n </Fragment>\n );\n};\n","import { localStorageCache } from '@flatbiz/utils';\nimport { Checkbox, Popover } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useState } from 'react';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex: string; title: string }[];\n onChange: (keys: string[]) => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n children?: ReactElement;\n};\n\nexport const FoldOperateDropdown = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n\n const onChange = (keys) => {\n setSelectedRowKeys(keys);\n props.onChange(keys);\n if (props.cacheKey) {\n localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: keys });\n }\n };\n\n const content = (\n <Fragment>\n <Checkbox.Group\n defaultValue={selectedRowKeys}\n onChange={onChange}\n value={selectedRowKeys}\n style={{ display: 'flex', flexDirection: 'column' }}\n >\n {props.dataList.map((item) => {\n const label = item['_isFoldTitle'] || item.title;\n return (\n <Checkbox value={item.dataIndex} key={item.dataIndex} style={{ padding: '0 0 5px 0' }}>\n {label}\n </Checkbox>\n );\n })}\n </Checkbox.Group>\n </Fragment>\n );\n\n const onChangeAll = (e) => {\n if (e.target.checked) {\n onChange(props.dataList.map((item) => item.dataIndex));\n } else {\n onChange([]);\n }\n };\n\n return (\n <Popover\n content={content}\n title={\n <Checkbox checked={selectedRowKeys.length === props.dataList.length} onChange={onChangeAll}>\n 全选(字段列表)\n </Checkbox>\n }\n placement=\"bottomRight\"\n overlayClassName=\"fold-operate-popiver\"\n >\n {props.children}\n </Popover>\n );\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?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isString, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { localStorageCache, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport {\n cloneElement,\n CSSProperties,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { IconWrapper } from '../icon-wrapper';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { SvgHttpView } from '../svg-http-view';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { FoldOperate } from './fold-operate';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableProps, EasyTableRefApi, TEasyTableTableColumn } from './type';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n const columnFoldConfig = props.columnFoldConfig;\n const asyncColumnRequest = props.asyncColumnRequest;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n const asyncColumnRequestResultRef = useRef<{\n [dataIndex: string]: {\n respData?: any;\n loading?: boolean;\n };\n }>({});\n const [asyncColumnRequestResult, setAsyncColumnRequestResult] = useState<{\n [dataIndex: string]: {\n respData?: any;\n loading?: boolean;\n };\n }>({});\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (columnFoldConfig?.cacheKey) {\n const cacheValue = localStorageCache.get(`easy_tab_${columnFoldConfig.cacheKey}`);\n const cacheKeyList = isArray(cacheValue?.keys)\n ? (cacheValue?.keys?.filter((item) => isString(item)) as string[])\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\n const modelKey = useMemo(() => {\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const paginationStatusRef = useRef(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n if (props.breforeRequest) {\n try {\n await props.breforeRequest(form);\n } catch (error) {\n return;\n }\n }\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n let respDataNew: TPlainObject = respData;\n if (requestResultAdapter) {\n respDataNew = requestResultAdapter(respData);\n }\n if (dynamicColumsAdapter) {\n const dynamicColumns = dynamicColumsAdapter(respData, baseColumnsRef.current);\n /** 不要添加默认值 */\n setDynamicColumns(dynamicColumns);\n }\n const respList = get(respDataNew, fieldNames.list);\n setDataSource(isArray(respList) ? respList : []);\n setTotal(get(respDataNew, fieldNames.total));\n setLoading(false);\n } catch (error: any) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = getPaginationStatus();\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...state.queryCondition,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n void actions.updateFilterCondition(props.initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n useEffect(() => {\n if (asyncColumnRequest?.length) {\n for (let index = 0; index < asyncColumnRequest.length; index++) {\n const element = asyncColumnRequest[index];\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: true },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n element\n .onRequest()\n .then((respData) => {\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false, respData },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n })\n .catch((error: any) => {\n console.error(error?.message);\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n });\n }\n }\n }, []);\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (getPaginationStatus()) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {\n [fieldNames.pageNo]: undefined,\n [fieldNames.pageSize]: undefined,\n };\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const onOpenColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(true);\n });\n const onCloseColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(false);\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n columnFoldTriggerRender: (children) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n {children}\n </FoldOperateDropdown>\n );\n },\n loading,\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n paginationStatusRef.current = status;\n };\n\n const onSetBaseColumns = (base) => {\n baseColumnsRef.current = base;\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const columnsMerge = (dynamicColumns ? dynamicColumns : baseColumnsRef.current) as TPlainObject[];\n\n let tableColumns = useMemo(() => {\n const tempList = columnsMerge\n .map((item) => {\n const { tooltip, tipsWrapperProps, title, hidden, isFold, ...otherProps } = item;\n if (hidden) return null;\n if (isFold && !showFoldKeyList.includes(item.dataIndex as string)) return null;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n })\n .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [columnsMerge, showFoldKeyList]);\n\n const foldColumnList = columnsMerge.filter((item: any) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n const onChangeFoldColumnList = (keyList: string[]) => {\n setShowFoldKeyList(keyList);\n columnFoldConfig?.onChange?.(keyList);\n };\n\n tableColumns = useMemo(() => {\n if (columnFoldConfig?.hidden) return tableColumns;\n const finalItem = tableColumns[tableColumns.length - 1] as TPlainObject;\n if (foldColumnList.length > 0 && tableColumns.length > 0) {\n const foldColumnTarget = tableColumns.find((item) => item['_isFoldColumn']);\n\n if (foldColumnTarget && finalItem.dataIndex !== foldColumnTarget.dataIndex) {\n foldColumnTarget.title = foldColumnTarget['_isFoldTitle'];\n foldColumnTarget['_isFoldColumn'] = false;\n }\n if (!finalItem['_isFoldColumn']) {\n finalItem['_isFoldTitle'] = finalItem['_isFoldTitle'] || finalItem.title;\n finalItem['_isFoldColumn'] = true;\n\n const triggerType = columnFoldConfig?.triggerType;\n\n finalItem.title = (\n <FlexLayout direction=\"horizontal\" fullIndex={0} style={{ alignItems: 'center' }}>\n <span>{finalItem.title}</span>\n <div style={{ padding: '0 5px 0 20px', display: 'flex' }}>\n {triggerType === 'drawer' ? (\n <IconWrapper\n onClick={onOpenColumnFoldModal}\n text={columnFoldConfig?.text}\n size=\"small\"\n icon={columnFoldConfig?.icon || <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />}\n hoverTips={columnFoldConfig?.hoverTipText || '字段列表'}\n style={{ padding: 0, margin: 0 }}\n />\n ) : (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n <IconWrapper\n text={columnFoldConfig?.text}\n style={{ padding: 0, margin: 0 }}\n size=\"small\"\n icon={\n columnFoldConfig?.icon || <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n }\n />\n </FoldOperateDropdown>\n )}\n </div>\n </FlexLayout>\n );\n }\n }\n return tableColumns;\n }, [tableColumns, foldColumnList, columnFoldConfig]);\n\n tableColumns = useMemo(() => {\n if (!Object.keys(asyncColumnRequestResult)) return tableColumns;\n return tableColumns.map((item: any) => {\n const dataIndex = item.dataIndex as string;\n const result = asyncColumnRequestResult[dataIndex];\n if (dataIndex && result) {\n if (result.loading) {\n item.render = (value) => {\n return (\n <ButtonWrapper loading type=\"text\" loadingPosition=\"center\" removeGap>\n {value}\n </ButtonWrapper>\n );\n };\n } else if (item.asyncRender) {\n item.render = (value, record, index) => {\n return item.asyncRender?.(value, record, index, result.respData);\n };\n }\n }\n return item;\n });\n }, [tableColumns, asyncColumnRequestResult]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const getPaginationStatus = () => {\n return props.paginationFixed || paginationStatusRef.current;\n };\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (props.paginationFixed) {\n onInnerRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n onInnerRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }, [props.paginationFixed]);\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const wrapperStyle: CSSProperties = {\n overflowY: props.filterFixed || props.paginationFixed ? 'hidden' : 'auto',\n ...props.style,\n };\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableDataSource: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n onSetPaginationStatus,\n getPaginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n columns: tableColumns,\n initialValues: props.initialValues,\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={wrapperStyle}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={wrapperClassName} style={props.style}>\n {children}\n </div>\n )}\n <FoldOperate\n dataList={foldColumnList as TAny[]}\n onClose={onCloseColumnFoldModal}\n open={columnFoldOpen}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n />\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { EasyForm, EasyFormProps } from '../easy-form';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n /**\n * @deprecated已过期,使用 easyFormProps.className 配置\n */\n formClassName?: string;\n /**\n * @deprecated已过期,使用 easyFormProps.style 配置\n */\n formStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n easyFormProps?: Omit<\n EasyFormProps,\n 'isPure' | 'column' | 'forceColumn' | 'width' | 'gridGutter' | 'children'\n >;\n};\n\n/**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTableFilter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,默认重启按钮触发请求,默认值:true\n * 8. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const screenType = fbaHooks.useResponsivePoint() || 'md';\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName = '',\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n easyFormProps,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n await form.validateFields();\n if (getPaginationStatus()) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !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 ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n const labelAlign = screenType === 'xs' ? 'left' : easyFormProps?.labelAlign || 'right';\n\n return (\n <BlockLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <EasyForm\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n isPure={true}\n labelWidth=\"80\"\n formItemGap=\"15\"\n {...easyFormProps}\n labelAlign={labelAlign}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </EasyForm>\n </BlockLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n * @deprecated 已过时 @4.5.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useContext, useMemo } from 'react';\nimport { BlockLayout } from '../block-layout';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport { TEasyTableTableColumn } from './type';\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @version 4.4.6\n * ```\n * 1. true:获取数据后再初始化渲染表格(可用于实现表格中defaultXxxx相关功能的使用)\n * ```\n */\n isSync?: boolean;\n /**\n * 空效果显示尺寸,默认值:small\n * @version 4.4.6\n */\n emptyShowSize?: 'small' | 'large';\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, isSync, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state] = easyTableModel(modelKey).useStore();\n fbaHooks.useEffectCustom(() => {\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, [props.columns]);\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(pagination !== false);\n }, [pagination]);\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (!paginationFixed) {\n if (pagination !== false) {\n onRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n onRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }\n }, [pagination]);\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\n [fieldNames.pageSize]: pagination.pageSize,\n [fieldNames.pageNo]: pagination.current,\n });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (!tableDataSource) return undefined;\n if (tableDataSource.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableDataSource[0][rowKey])) {\n return tableDataSource.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableDataSource;\n }, [tableDataSource, rowKey]);\n\n const tableRender = () => {\n if (isSync && !dataSource) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n rowKey={rowKey as any}\n columns={ctx.columns}\n loading={loading}\n />\n </Fragment>\n );\n }\n if (isMacEnv()) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"2\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={ctx.columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </Fragment>\n );\n }\n return (\n <Fragment>\n {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={ctx.columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n </Fragment>\n );\n };\n\n return (\n <BlockLayout\n className={classNames(\n 'easy-table-table',\n { 'ett-empty-show-small': props.emptyShowSize === 'small' },\n props.tableWrapperClassName,\n )}\n style={props.tableWrapperStyle}\n >\n {tableRender()}\n </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n *\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true;如果存在多个EasyTable缓存情况可设置cacheSwitch为自定义字符串\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提高windows下table左右滚动体验\n * 11. 可实现部分字段折叠,手动选择显示,将EasyTable.Table columns中isFold属性设为true,可通过EasyTable columnFoldConfig配置属性,demo(https://fex.qa.tcshuke.com/docs/admin/main/crud/demo1)\n * 12. 通过asyncColumnRequest、asyncRender配合使用可实现表格列数据接口渲染(demo:https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table)\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTable.Filter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTable.Filter>\n * 2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n * 3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n * 8. 通过easyFormProps属性可整体控制子节点FormItem布局\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperate","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","rowSelection","type","onChange","cacheKey","localStorageCache","set","keys","columns","title","dataIndex","render","value","recrd","_jsx","Fragment","children","Drawer","open","onClose","width","styles","body","padding","Table","bordered","size","rowKey","pagination","scroll","x","dataSource","dataList","FoldOperateDropdown","content","Checkbox","Group","defaultValue","style","display","flexDirection","map","item","label","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","ref","_props$initialPaginat","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","columnFoldConfig","asyncColumnRequest","_useState4","columnFoldOpen","setColumnFoldOpen","asyncColumnRequestResultRef","useRef","_useState5","asyncColumnRequestResult","setAsyncColumnRequestResult","_useState6","_cacheValue$keys","cacheValue","get","cacheKeyList","_isArray","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","paginationStatusRef","respOriginalDataRef","baseColumnsRef","_useState7","dynamicColumns","setDynamicColumns","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","respData","respDataNew","_dynamicColumns","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","breforeRequest","$Try_2_Post","$If_3","call","this","bind","$Try_2_Catch","resolve","then","$await_4","$await_5","cloneState","serviceConfig","$await_6","current","onDataSourceChange","_get","fbaHooks","useEffectCustom","hasPagination","getPaginationStatus","_extends2","initialValues","useEffect","_loop","_extends3","element","index","_extends4","catch","_extends5","console","clearQueryCondition","values","$await_7","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","$await_8","getRequestParams","getFieldsValue","onOpenColumnFoldModal","onCloseColumnFoldModal","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","columnFoldTriggerRender","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","onChangeFoldColumnList","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","columnsMerge","tableColumns","tempList","tooltip","tipsWrapperProps","hidden","isFold","otherProps","_objectWithoutPropertiesLoose","_excluded","includes","TipsWrapper","tipType","popoverProps","TableTitleTooltip","Boolean","concat","keyList","finalItem","foldColumnTarget","find","_jsxs","FlexLayout","direction","fullIndex","alignItems","IconWrapper","text","icon","SvgHttpView","svgPath","color","hoverTips","hoverTipText","margin","Object","result","ButtonWrapper","loadingPosition","removeGap","asyncRender","record","page","_onInnerRequest","_props$pagination","useUpdateEffect","_onInnerRequest2","_onInnerRequest3","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","PaginationWrapper","EasyTableFilter","screenType","useResponsivePoint","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","$await_2","validateFields","$await_3","$If_1","formRowChildren","defaultRightList","htmlType","customFormOperateCol","customRightList","rightList","leftList","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","keyItem","FormGrid","Col","OperateCol","labelAlign","BlockLayout","EasyForm","autoComplete","onFinish","formStyle","isPure","labelWidth","formItemGap","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","isSync","_onRequest","_onRequest2","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest3","isUndefinedOrNull","getUuid","tableRender","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/fold-operate.tsx","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableDataSource?: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initialValues?: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n getPaginationStatus: () => boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n columns: TEasyTableTableColumn<TPlainObject>[];\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { localStorageCache, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Drawer, Table } from 'antd';\nimport { ColumnsType } from 'antd/es/table';\nimport { TableRowSelection } from 'antd/es/table/interface';\nimport { CSSProperties, Fragment, useState } from 'react';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex?: string; title: string }[];\n onChange: (keys: string[]) => void;\n open?: boolean;\n onClose?: () => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n};\n\nexport const FoldOperate = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n const rowSelection = {\n type: 'checkbox',\n selectedRowKeys: selectedRowKeys,\n onChange: (selectedRowKeys: string[]) => {\n setSelectedRowKeys(selectedRowKeys);\n props.onChange(selectedRowKeys);\n if (props.cacheKey) {\n localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: selectedRowKeys });\n }\n },\n } as TableRowSelection<TAny>;\n\n const columns: ColumnsType<TPlainObject> = [\n {\n title: '字段名称',\n dataIndex: 'title',\n render: (value, recrd) => {\n return recrd['_isFoldTitle'] || value;\n },\n },\n { title: '字段Key', dataIndex: 'dataIndex' },\n ];\n\n return (\n <Fragment>\n <Drawer\n title=\"选择字段\"\n open={props.open}\n onClose={props.onClose}\n width={'35%'}\n styles={{\n body: {\n padding: 15,\n },\n }}\n >\n <Table\n bordered\n size=\"small\"\n columns={columns}\n rowSelection={rowSelection}\n rowKey=\"dataIndex\"\n pagination={false}\n scroll={{ x: 'max-content' }}\n dataSource={props.dataList}\n />\n </Drawer>\n </Fragment>\n );\n};\n","import { localStorageCache } from '@flatbiz/utils';\nimport { Checkbox, Popover } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useState } from 'react';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex: string; title: string }[];\n onChange: (keys: string[]) => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n children?: ReactElement;\n};\n\nexport const FoldOperateDropdown = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n\n const onChange = (keys) => {\n setSelectedRowKeys(keys);\n props.onChange(keys);\n if (props.cacheKey) {\n localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: keys });\n }\n };\n\n const content = (\n <Fragment>\n <Checkbox.Group\n defaultValue={selectedRowKeys}\n onChange={onChange}\n value={selectedRowKeys}\n style={{ display: 'flex', flexDirection: 'column' }}\n >\n {props.dataList.map((item) => {\n const label = item['_isFoldTitle'] || item.title;\n return (\n <Checkbox value={item.dataIndex} key={item.dataIndex} style={{ padding: '0 0 5px 0' }}>\n {label}\n </Checkbox>\n );\n })}\n </Checkbox.Group>\n </Fragment>\n );\n\n const onChangeAll = (e) => {\n if (e.target.checked) {\n onChange(props.dataList.map((item) => item.dataIndex));\n } else {\n onChange([]);\n }\n };\n\n return (\n <Popover\n content={content}\n title={\n <Checkbox checked={selectedRowKeys.length === props.dataList.length} onChange={onChangeAll}>\n 全选(字段列表)\n </Checkbox>\n }\n placement=\"bottomRight\"\n overlayClassName=\"fold-operate-popiver\"\n >\n {props.children}\n </Popover>\n );\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?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isString, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { localStorageCache, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, message } from 'antd';\nimport {\n cloneElement,\n CSSProperties,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { fbaHooks } from '../fba-hooks';\nimport { FlexLayout } from '../flex-layout';\nimport { IconWrapper } from '../icon-wrapper';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { SvgHttpView } from '../svg-http-view';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { FoldOperate } from './fold-operate';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableProps, EasyTableRefApi, TEasyTableTableColumn } from './type';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n const columnFoldConfig = props.columnFoldConfig;\n const asyncColumnRequest = props.asyncColumnRequest;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n const asyncColumnRequestResultRef = useRef<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n const [asyncColumnRequestResult, setAsyncColumnRequestResult] = useState<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (columnFoldConfig?.cacheKey) {\n const cacheValue = localStorageCache.get(`easy_tab_${columnFoldConfig.cacheKey}`);\n const cacheKeyList = isArray(cacheValue?.keys)\n ? (cacheValue?.keys?.filter((item) => isString(item)) as string[])\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\n const modelKey = useMemo(() => {\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const paginationStatusRef = useRef(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n if (props.breforeRequest) {\n try {\n await props.breforeRequest(form);\n } catch (error) {\n return;\n }\n }\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n let respDataNew: TPlainObject = respData;\n if (requestResultAdapter) {\n respDataNew = requestResultAdapter(respData);\n }\n if (dynamicColumsAdapter) {\n const dynamicColumns = dynamicColumsAdapter(respData, baseColumnsRef.current);\n /** 不要添加默认值 */\n setDynamicColumns(dynamicColumns);\n }\n const respList = get(respDataNew, fieldNames.list);\n setDataSource(isArray(respList) ? respList : []);\n setTotal(get(respDataNew, fieldNames.total));\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = getPaginationStatus();\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...state.queryCondition,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n void actions.updateFilterCondition(props.initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n useEffect(() => {\n if (asyncColumnRequest?.length) {\n for (let index = 0; index < asyncColumnRequest.length; index++) {\n const element = asyncColumnRequest[index];\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: true },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n element\n .onRequest()\n .then((respData) => {\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false, respData },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n })\n .catch((error) => {\n console.error(error?.message);\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n });\n }\n }\n }, []);\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const updateQueryCondition = hooks.useCallbackRef(async (values: TPlainObject) => {\n await actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (getPaginationStatus()) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {\n [fieldNames.pageNo]: undefined,\n [fieldNames.pageSize]: undefined,\n };\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const onOpenColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(true);\n });\n const onCloseColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(false);\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n updateQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n columnFoldTriggerRender: (children) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n {children}\n </FoldOperateDropdown>\n );\n },\n loading,\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n paginationStatusRef.current = status;\n };\n\n const onSetBaseColumns = (base) => {\n baseColumnsRef.current = base;\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const columnsMerge = (dynamicColumns ? dynamicColumns : baseColumnsRef.current) as TPlainObject[];\n\n let tableColumns = useMemo(() => {\n const tempList = columnsMerge\n .map((item) => {\n const { tooltip, tipsWrapperProps, title, hidden, isFold, ...otherProps } = item;\n if (hidden) return null;\n if (isFold && !showFoldKeyList.includes(item.dataIndex as string)) return null;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n })\n .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [columnsMerge, showFoldKeyList]);\n\n const foldColumnList = columnsMerge.filter((item: any) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n const onChangeFoldColumnList = (keyList: string[]) => {\n setShowFoldKeyList(keyList);\n columnFoldConfig?.onChange?.(keyList);\n };\n\n tableColumns = useMemo(() => {\n if (columnFoldConfig?.hidden) return tableColumns;\n const finalItem = tableColumns[tableColumns.length - 1];\n if (foldColumnList.length > 0 && tableColumns.length > 0) {\n const foldColumnTarget = tableColumns.find((item) => item['_isFoldColumn']);\n\n if (foldColumnTarget && finalItem.dataIndex !== foldColumnTarget.dataIndex) {\n foldColumnTarget.title = foldColumnTarget['_isFoldTitle'];\n foldColumnTarget['_isFoldColumn'] = false;\n }\n if (!finalItem['_isFoldColumn']) {\n finalItem['_isFoldTitle'] = finalItem['_isFoldTitle'] || finalItem.title;\n finalItem['_isFoldColumn'] = true;\n\n const triggerType = columnFoldConfig?.triggerType;\n\n finalItem.title = (\n <FlexLayout direction=\"horizontal\" fullIndex={0} style={{ alignItems: 'center' }}>\n <span>{finalItem.title}</span>\n <div style={{ padding: '0 5px 0 20px', display: 'flex' }}>\n {triggerType === 'drawer' ? (\n <IconWrapper\n onClick={onOpenColumnFoldModal}\n text={columnFoldConfig?.text}\n size=\"small\"\n icon={columnFoldConfig?.icon || <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />}\n hoverTips={columnFoldConfig?.hoverTipText || '字段列表'}\n style={{ padding: 0, margin: 0 }}\n />\n ) : (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n <IconWrapper\n text={columnFoldConfig?.text}\n style={{ padding: 0, margin: 0 }}\n size=\"small\"\n icon={\n columnFoldConfig?.icon || <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n }\n />\n </FoldOperateDropdown>\n )}\n </div>\n </FlexLayout>\n );\n }\n }\n return tableColumns;\n }, [tableColumns, foldColumnList, columnFoldConfig]);\n\n tableColumns = useMemo(() => {\n if (!Object.keys(asyncColumnRequestResult)) return tableColumns;\n return tableColumns.map((item: TAny) => {\n const dataIndex = item.dataIndex as string;\n const result = asyncColumnRequestResult[dataIndex];\n if (dataIndex && result) {\n if (result.loading) {\n item.render = (value) => {\n return (\n <ButtonWrapper loading type=\"text\" loadingPosition=\"center\" removeGap>\n {value}\n </ButtonWrapper>\n );\n };\n } else if (item.asyncRender) {\n item.render = (value, record, index) => {\n return item.asyncRender?.(value, record, index, result.respData);\n };\n }\n }\n return item;\n });\n }, [tableColumns, asyncColumnRequestResult]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const getPaginationStatus = () => {\n return props.paginationFixed || paginationStatusRef.current;\n };\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (props.paginationFixed) {\n void onInnerRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n void onInnerRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }, [props.paginationFixed]);\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const wrapperStyle: CSSProperties = {\n overflowY: props.filterFixed || props.paginationFixed ? 'hidden' : 'auto',\n ...props.style,\n };\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableDataSource: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n onSetPaginationStatus,\n getPaginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n columns: tableColumns,\n initialValues: props.initialValues,\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={wrapperStyle}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={wrapperClassName} style={props.style}>\n {children}\n </div>\n )}\n <FoldOperate\n dataList={foldColumnList as TAny[]}\n onClose={onCloseColumnFoldModal}\n open={columnFoldOpen}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n />\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { EasyForm, EasyFormProps } from '../easy-form';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n /**\n * @deprecated已过期,使用 easyFormProps.className 配置\n */\n formClassName?: string;\n /**\n * @deprecated已过期,使用 easyFormProps.style 配置\n */\n formStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n easyFormProps?: Omit<\n EasyFormProps,\n 'isPure' | 'column' | 'forceColumn' | 'width' | 'gridGutter' | 'children'\n >;\n};\n\n/**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTableFilter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,默认重启按钮触发请求,默认值:true\n * 8. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const screenType = fbaHooks.useResponsivePoint() || 'md';\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName = '',\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n easyFormProps,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n await form.validateFields();\n if (getPaginationStatus()) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !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 ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n const labelAlign = screenType === 'xs' ? 'left' : easyFormProps?.labelAlign || 'right';\n\n return (\n <BlockLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <EasyForm\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n isPure={true}\n labelWidth=\"80\"\n formItemGap=\"15\"\n {...easyFormProps}\n labelAlign={labelAlign}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </EasyForm>\n </BlockLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n * @deprecated 已过时 @4.5.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useContext, useMemo } from 'react';\nimport { BlockLayout } from '../block-layout';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport { TEasyTableTableColumn } from './type';\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @version 4.4.6\n * ```\n * 1. true:获取数据后再初始化渲染表格(可用于实现表格中defaultXxxx相关功能的使用)\n * ```\n */\n isSync?: boolean;\n /**\n * 空效果显示尺寸,默认值:small\n * @version 4.4.6\n */\n emptyShowSize?: 'small' | 'large';\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, isSync, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state] = easyTableModel(modelKey).useStore();\n fbaHooks.useEffectCustom(() => {\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, [props.columns]);\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(pagination !== false);\n }, [pagination]);\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (!paginationFixed) {\n if (pagination !== false) {\n onRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n onRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }\n }, [pagination]);\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\n [fieldNames.pageSize]: pagination.pageSize,\n [fieldNames.pageNo]: pagination.current,\n });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (!tableDataSource) return undefined;\n if (tableDataSource.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableDataSource[0][rowKey])) {\n return tableDataSource.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableDataSource;\n }, [tableDataSource, rowKey]);\n\n const tableRender = () => {\n if (isSync && !dataSource) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n rowKey={rowKey as any}\n columns={ctx.columns}\n loading={loading}\n />\n </Fragment>\n );\n }\n if (isMacEnv()) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"2\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={ctx.columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </Fragment>\n );\n }\n return (\n <Fragment>\n {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={ctx.columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n </Fragment>\n );\n };\n\n return (\n <BlockLayout\n className={classNames(\n 'easy-table-table',\n { 'ett-empty-show-small': props.emptyShowSize === 'small' },\n props.tableWrapperClassName,\n )}\n style={props.tableWrapperStyle}\n >\n {tableRender()}\n </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n *\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true;如果存在多个EasyTable缓存情况可设置cacheSwitch为自定义字符串\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提高windows下table左右滚动体验\n * 11. 可实现部分字段折叠,手动选择显示,将EasyTable.Table columns中isFold属性设为true,可通过EasyTable columnFoldConfig配置属性,demo(https://fex.qa.tcshuke.com/docs/admin/main/crud/demo1)\n * 12. 通过asyncColumnRequest、asyncRender配合使用可实现表格列数据接口渲染(demo:https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table)\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTable.Filter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTable.Filter>\n * 2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n * 3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n * 8. 通过easyFormProps属性可整体控制子节点FormItem布局\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperate","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","rowSelection","type","onChange","cacheKey","localStorageCache","set","keys","columns","title","dataIndex","render","value","recrd","_jsx","Fragment","children","Drawer","open","onClose","width","styles","body","padding","Table","bordered","size","rowKey","pagination","scroll","x","dataSource","dataList","FoldOperateDropdown","content","Checkbox","Group","defaultValue","style","display","flexDirection","map","item","label","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","ref","_props$initialPaginat","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","columnFoldConfig","asyncColumnRequest","_useState4","columnFoldOpen","setColumnFoldOpen","asyncColumnRequestResultRef","useRef","_useState5","asyncColumnRequestResult","setAsyncColumnRequestResult","_useState6","_cacheValue$keys","cacheValue","get","cacheKeyList","_isArray","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","paginationStatusRef","respOriginalDataRef","baseColumnsRef","_useState7","dynamicColumns","setDynamicColumns","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","respData","respDataNew","_dynamicColumns","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","breforeRequest","$Try_2_Post","$If_3","call","this","bind","$Try_2_Catch","resolve","then","$await_4","$await_5","cloneState","serviceConfig","$await_6","current","onDataSourceChange","_get","fbaHooks","useEffectCustom","hasPagination","getPaginationStatus","_extends2","initialValues","useEffect","_loop","_extends3","element","index","_extends4","catch","_extends5","console","clearQueryCondition","values","$await_7","resetFields","setFieldsValue","updateQueryCondition","$await_8","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","$await_9","getRequestParams","getFieldsValue","onOpenColumnFoldModal","onCloseColumnFoldModal","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","columnFoldTriggerRender","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","onChangeFoldColumnList","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","columnsMerge","tableColumns","tempList","tooltip","tipsWrapperProps","hidden","isFold","otherProps","_objectWithoutPropertiesLoose","_excluded","includes","TipsWrapper","tipType","popoverProps","TableTitleTooltip","Boolean","concat","keyList","finalItem","foldColumnTarget","find","_jsxs","FlexLayout","direction","fullIndex","alignItems","IconWrapper","text","icon","SvgHttpView","svgPath","color","hoverTips","hoverTipText","margin","Object","result","ButtonWrapper","loadingPosition","removeGap","asyncRender","record","page","_onInnerRequest","_props$pagination","useUpdateEffect","_onInnerRequest2","_onInnerRequest3","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","PaginationWrapper","EasyTableFilter","screenType","useResponsivePoint","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","$await_2","validateFields","$await_3","$If_1","formRowChildren","defaultRightList","htmlType","customFormOperateCol","customRightList","rightList","leftList","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","keyItem","FormGrid","Col","OperateCol","labelAlign","BlockLayout","EasyForm","autoComplete","onFinish","formStyle","isPure","labelWidth","formItemGap","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","isSync","_onRequest","_onRequest2","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest3","isUndefinedOrNull","getUuid","tableRender","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ import './../config-provider-wrapper/index.css';
|
|
|
4
4
|
import './../fba-hooks/index.css';
|
|
5
5
|
import './../types/index.css';
|
|
6
6
|
import './../fba-utils/index.css';
|
|
7
|
-
import './../table-title-tooltip/index.css';
|
|
8
7
|
import './../text-symbol-wrapper/index.css';
|
|
9
8
|
import './../form-item-hidden/index.css';
|
|
10
9
|
import './../date-picker-wrapper/index.css';
|
|
@@ -25,5 +24,5 @@ import './../input-wrapper/index.css';
|
|
|
25
24
|
import './../input-text-area-wrapper/index.css';
|
|
26
25
|
import './index.css';
|
|
27
26
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
28
|
-
import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{arrayField2LabelValue as a,toArray as t}from"@flatbiz/utils";import{Form as l,Checkbox as o,InputNumber as d,Radio as m,Tag as u,Space as s,Button as c,Table as p}from"antd";import{useMemo as f,useState as v,useEffect as g,Fragment as b,forwardRef as h,useRef as C,useImperativeHandle as x,isValidElement as j}from"react";import{ButtonWrapper as w}from"../button-wrapper/index.js";import{TableTitleTooltip as I}from"../table-title-tooltip/index.js";import{TextSymbolWrapper as y}from"../text-symbol-wrapper/index.js";import{TipsWrapper as R}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as k}from"../form-item-hidden/index.js";import{extend as P}from"@dimjs/utils/cjs/extend";import{hooks as F}from"@wove/react/cjs/hooks";import{tableCellRender as L}from"../table-cell-render/index.js";import{jsx as T,jsxs as O,Fragment as A}from"react/jsx-runtime";import{DatePickerWrapper as V}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as S}from"../date-range-picker-wrapper/index.js";import{InputWrapper as W}from"../input-wrapper/index.js";import{SelectorWrapper as B}from"../selector-wrapper/index.js";import{SwitchWrapper as _}from"../switch-wrapper/index.js";import{isBoolean as D}from"@dimjs/lang/cjs/is-boolean";import{isNumber as q}from"@dimjs/lang/cjs/is-number";import{isString as z}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as E}from"../input-text-area-wrapper/index.js";import{UploadWrapper as G}from"../upload-wrapper/index.js";import M from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var K=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var Y=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var d=a.editableComptProps;var m=f((function(){return d.options||[]}),[d.options]);var u=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);d.onChange==null?void 0:d.onChange(e)}));if(t){return T(o.Group,r({},d,{value:n.value,onChange:u}))}return T("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):L.selectorCell(m)(n.value)})};var H=function e(i){var a=i.fieldConfig.formItemProps;return T(l.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:T(Y,r({},i))}))};var J=function e(i){var a=i.fieldConfig,t=a.formItemProps,o=a.editableConfig;return T(l.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:T(V,r({allowClear:true},o.editableComptProps))}))};var Q=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=f((function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return T(S,r({allowClear:true},o,{value:n.value,onChange:d}))}return T("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var U=function e(i){var a=i.fieldConfig.formItemProps;return T(l.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:T(Q,r({},i))}))};var X=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return T(l.Item,r({},a,{name:n.name,children:T(W,r({allowClear:true},t.editableComptProps))}))};var Z=function e(i){var a=i.fieldConfig,t=a.formItemProps,o=a.editableConfig;return T(l.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:T(d,r({},o.editableComptProps))}))};var $=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=f((function(){return o.options||[]}),[o.options]);var u=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e.target.value);o.onChange==null?void 0:o.onChange(e)}));if(t){return T(m.Group,r({},o,{value:n.value,onChange:u}))}return T("span",{className:"editable-radio-group-view",children:l?l(n.value,d):L.selectorCell(d)(n.value)})};var ee=function e(i){var a=i.fieldConfig.formItemProps;return T(l.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:T($,r({},i))}))};var ne=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=v([]),s=m[0],c=m[1];var p=v([]),f=p[0],h=p[1];g((function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(s.length===0){h(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=s.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));h(r)}}),[l,d.fieldNames,n.value,s]);var C=F.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var x=F.useCallbackRef((function(e,r){n.onChange==null?void 0:n.onChange(e);d.onChange==null?void 0:d.onChange(e,r)}));if(l){return T(B,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:C}))}return O(b,{children:[T("div",{style:{display:"none"},children:T(B,r({},d,{onSelectorListAllChange:C}))}),T("span",{className:"editable-selector-view",children:o?o(n.value,s):f.map((function(e,n){return T(u,{color:"geekblue",children:e.label},n)}))})]})};var re=function e(i){var a=i.fieldConfig.formItemProps;return T(l.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:T(ne,r({},i))}))};var ie=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=f((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return T(_,r({},o,{value:n.value,onChange:d}))}if(l){return T("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return T("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?T(u,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):T(u,{style:{marginRight:0},children:m.unCheckedText})})};var ae=function e(i){var a=i.fieldConfig.formItemProps;return T(l.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:T(ie,r({},i))}))};var te=function e(n){var r,i;var a=f((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=z(n.value)||q(n.value)||D(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 t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return T("span",{children:t})};var le=function e(n){return T(l.Item,{noStyle:true,name:n.name,children:T(te,{name:n.name,fieldConfig:n.fieldConfig})})};var oe=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return T(l.Item,r({},a,{name:n.name,children:T(E,r({},t.editableComptProps))}))};var de=["children"];var me=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,de);if(o){return T(G,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return T("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):T(G,r({listType:"text"},u,{value:n.value,disabled:true}))})};var ue=function e(i){var a=i.fieldConfig.formItemProps;return T(l.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:T(me,r({},i))}))};var se=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=K(t,n.tableRowIndex);var o=P({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return T(X,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return T(Z,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return T(oe,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return T(J,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return T(U,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return T(re,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return T(H,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return T(ee,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return T(ue,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return T(ae,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return T(le,r({},d))};var ce=function e(r){var i=l.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,o=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,c=a.deleteOperateRender;return T(l.List,{name:r.name,children:function e(a,l){var p=l.add,f=l.remove;return O(A,{children:[t?t({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=o.find((function(e){return K(e.editable,r.tableRowIndex)}));var l=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return O("div",{className:l,children:[m==null?void 0:m({add:p,remove:function e(){f(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),O(s,{children:[o.map((function(n,i){return T(se,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?T(pe,{deleteOperateRender:c,remove:function e(){f(a)},index:a}):undefined]}),u==null?void 0:u({add:p,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){f(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var pe=function e(n){return T(l.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):T(c,{type:"link",danger:true,icon:T(M,{}),onClick:n.remove,children:"删除"})})};var fe=function e(n){if(n.fieldConfig){var r=t(n.hiddenField);if(N(n.fieldConfig["editableConfigList"])){var i=n.fieldConfig;return T(ce,{name:n.name,completeName:n.completeName,formListConfig:i,tableRowIndex:n.tableRowIndex})}else{return O(b,{children:[T(se,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),r.map((function(e){return T(k,{name:e.dataIndex})}))]})}}return T(le,{name:n.name})};var ve=["fieldConfig","renderMiddleware","tableChildrenColumnRender","tooltip","title","tipsWrapperProps","required","align"];var ge=h((function(a,o){var d;var m=l.useFormInstance();var u=C([]);var s=f((function(){if(!a.columns)return[];return a.columns.map((function(e){var n=e.fieldConfig,l=e.renderMiddleware,o=e.tableChildrenColumnRender,d=e.tooltip,u=e.title,s=e.tipsWrapperProps,c=e.required,p=e.align,f=i(e,ve);var v=j(u)||typeof u==="string";var g;if(s&&v){if(typeof s==="string"){g=T(R,{tipType:"popover",popoverProps:{content:s},children:u})}else{g=T(R,r({},s,{children:u}))}}else if(d){g=T(I,{title:u,tooltip:d})}else{g=u}return r({title:c?T(y,{style:{marginLeft:p==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=a.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},f,{render:function r(i,d,u){if(d["_isChildrenItem"]){if(o){return o(i,d,u)}return i}var s=[].concat(t(a.name),[d.name]);var c=e.dataIndex?[].concat(s,[e.dataIndex]):s;var p=l==null?void 0:l({name:c,tableRowIndex:d.name,operation:d.operation,tableRowName:s,index:u});if(p){return p}var f=typeof n==="function"?n({name:c,tableRowIndex:d.name,tableRowName:s,getTableRowData:function e(){return m.getFieldValue(s)}}):n;return T(fe,{name:e.dataIndex?[d.name,e.dataIndex]:[d.name],completeName:c,fieldConfig:f,tableRowIndex:d.name,hiddenField:e.hiddenField})}})}))}),[a.columns,a.name,(d=a.tableProps)==null?void 0:d.cellVerticalAlign]);var c=l.useWatch(a.name,m);x(o,(function(){return{getTableItemDataByFormListItemKey:function e(n){var r=u.current.find((function(e){return e.key===n}));if(r){return m.getFieldValue([].concat(t(a.name),[r.name]))}return undefined}}}));return T("div",{className:n("editable-table",{"et-empty-show-large":a.emptyShowSize==="large"}),children:T(l.List,{name:a.name,rules:a.rules,children:function n(i,t,o){var d=o.errors;u.current=i;return O("div",{style:{borderRadius:"6px",border:d!=null&&d.length?"1px solid #ff4d4f":"1px solid transparent"},children:[a.onTableBeforeRender?a.onTableBeforeRender(t,i.length):null,T(p,r({scroll:{x:"max-content"},pagination:false,rowKey:"key",size:"small"},a.tableProps,{dataSource:i.map((function(e){var n;var i=c==null||(n=c[e.name])==null?void 0:n.children;if(i){i.forEach((function(e){e["_isChildrenItem"]=true}))}return r({},e,{operation:t,children:i})})),columns:s})),a.onTableAfterRender?a.onTableAfterRender(t,i.length):T(w,{type:"dashed",hidden:a.hiddenFooterBtn,onClick:function e(){return t.add(a.getAddRowDefaultValues==null?void 0:a.getAddRowDefaultValues())},block:true,icon:T(e,{}),style:{marginTop:15},children:"新增"}),T(l.ErrorList,{errors:d.length?[T("div",{style:{color:"#ff4d4f",padding:"5px"},children:d})]:undefined})]})}})})}));export{ge as EditableTable};
|
|
27
|
+
import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{arrayField2LabelValue as a,toArray as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as o,Checkbox as d,InputNumber as m,Radio as u,Tag as s,Space as c,Button as f,Table as p}from"antd";import{useMemo as v,useState as g,useEffect as b,Fragment as h,useRef as C,isValidElement as x}from"react";import{ButtonWrapper as w}from"../button-wrapper/index.js";import{TextSymbolWrapper as j}from"../text-symbol-wrapper/index.js";import{TipsWrapper as I}from"../tips-wrapper/index.js";import{isArray as y}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as R}from"../form-item-hidden/index.js";import{extend as N}from"@dimjs/utils/cjs/extend";import{hooks as k}from"@wove/react/cjs/hooks";import{tableCellRender as P}from"../table-cell-render/index.js";import{jsx as F,jsxs as L,Fragment as T}from"react/jsx-runtime";import{DatePickerWrapper as O}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as A}from"../date-range-picker-wrapper/index.js";import{InputWrapper as V}from"../input-wrapper/index.js";import{SelectorWrapper as S}from"../selector-wrapper/index.js";import{SwitchWrapper as _}from"../switch-wrapper/index.js";import{isBoolean as K}from"@dimjs/lang/cjs/is-boolean";import{isNumber as W}from"@dimjs/lang/cjs/is-number";import{isString as B}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as q}from"../input-text-area-wrapper/index.js";import{UploadWrapper as z}from"../upload-wrapper/index.js";import D from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var E=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var G=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=v((function(){return o.options||[]}),[o.options]);var u=k.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o.onChange==null?void 0:o.onChange(e)}));if(t){return F(d.Group,r({},o,{value:n.value,onChange:u}))}return F("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):P.selectorCell(m)(n.value)})};var M=function e(i){var a=i.fieldConfig.formItemProps;return F(o.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:F(G,r({},i))}))};var Y=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return F(o.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:F(O,r({allowClear:true},l.editableComptProps))}))};var H=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=k.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=v((function(){var e=y(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return F(A,r({allowClear:true},o,{value:n.value,onChange:d}))}return F("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var J=function e(i){var a=i.fieldConfig.formItemProps;return F(o.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:F(H,r({},i))}))};var Q=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return F(o.Item,r({},a,{name:n.name,children:F(V,r({allowClear:true},t.editableComptProps))}))};var U=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return F(o.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:F(m,r({},l.editableComptProps))}))};var X=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=v((function(){return o.options||[]}),[o.options]);var m=k.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e.target.value);o.onChange==null?void 0:o.onChange(e)}));if(t){return F(u.Group,r({},o,{value:n.value,onChange:m}))}return F("span",{className:"editable-radio-group-view",children:l?l(n.value,d):P.selectorCell(d)(n.value)})};var Z=function e(i){var a=i.fieldConfig.formItemProps;return F(o.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:F(X,r({},i))}))};var $=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=g([]),u=m[0],c=m[1];var f=g([]),p=f[0],v=f[1];b((function(){if(!l){var e=y(n.value)?n.value:n.value===undefined?[]:[n.value];if(u.length===0){v(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=u.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));v(r)}}),[l,d.fieldNames,n.value,u]);var C=k.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var x=k.useCallbackRef((function(e,r){n.onChange==null?void 0:n.onChange(e);d.onChange==null?void 0:d.onChange(e,r)}));if(l){return F(S,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:C}))}return L(h,{children:[F("div",{style:{display:"none"},children:F(S,r({},d,{onSelectorListAllChange:C}))}),F("span",{className:"editable-selector-view",children:o?o(n.value,u):p.map((function(e,n){return F(s,{color:"geekblue",children:e.label},n)}))})]})};var ee=function e(i){var a=i.fieldConfig.formItemProps;return F(o.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:F($,r({},i))}))};var ne=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=k.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=v((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return F(_,r({},o,{value:n.value,onChange:d}))}if(l){return F("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return F("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?F(s,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):F(s,{style:{marginRight:0},children:m.unCheckedText})})};var re=function e(i){var a=i.fieldConfig.formItemProps;return F(o.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:F(ne,r({},i))}))};var ie=function e(n){var r,i;var a=v((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=B(n.value)||W(n.value)||K(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 t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return F("span",{children:t})};var ae=function e(n){return F(o.Item,{noStyle:true,name:n.name,children:F(ie,{name:n.name,fieldConfig:n.fieldConfig})})};var te=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return F(o.Item,r({},a,{name:n.name,children:F(q,r({},t.editableComptProps))}))};var le=["children"];var oe=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,le);if(o){return F(z,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return F("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):F(z,r({listType:"text"},u,{value:n.value,disabled:true}))})};var de=function e(i){var a=i.fieldConfig.formItemProps;return F(o.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:F(oe,r({},i))}))};var me=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=E(t,n.tableRowIndex);var o=N({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return F(Q,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return F(U,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return F(te,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return F(Y,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return F(J,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return F(ee,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return F(M,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return F(Z,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return F(de,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return F(re,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return F(ae,r({},d))};var ue=function e(r){var i=o.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,l=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return F(o.List,{name:r.name,children:function e(a,o){var f=o.add,p=o.remove;return L(T,{children:[t?t({tableRowIndex:r.tableRowIndex,add:f,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=l.find((function(e){return E(e.editable,r.tableRowIndex)}));var o=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return L("div",{className:o,children:[m==null?void 0:m({add:f,remove:function e(){p(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),L(c,{children:[l.map((function(n,i){return F(me,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?F(se,{deleteOperateRender:s,remove:function e(){p(a)},index:a}):undefined]}),u==null?void 0:u({add:f,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){p(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:f,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var se=function e(n){return F(o.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):F(f,{type:"link",danger:true,icon:F(D,{}),onClick:n.remove,children:"删除"})})};var ce=function e(n){if(n.fieldConfig){if(y(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return F(ue,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{var i;return L(h,{children:[F(me,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),(i=n.hiddenFieldList)==null?void 0:i.map((function(e,r){return F(R,{name:[n.tableRowIndex].concat(t(e.dataIndex))},r)}))]})}}return F(ae,{name:n.name})};var fe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align"];var pe=function a(d){var m;var u=o.useFormInstance();var s=C([]);var c=v((function(){var e=d.columns.find((function(e){return e["dataIndex"]===d.uidFieldKey}));return!!e}),[d.columns,d.uidFieldKey]);var f=v((function(){if(!d.columns)return[];return d.columns.map((function(e){var n=e.fieldConfig,a=e.renderMiddleware,l=e.tableChildrenColumnRender,o=e.title,m=e.tipsWrapperProps,s=e.required,f=e.align,p=i(e,fe);var v=x(o)||typeof o==="string";var g;if(m&&v){if(typeof m==="string"){g=F(I,{tipType:"popover",popoverProps:{content:m},children:o})}else{g=F(I,r({},m,{children:o}))}}else{g=o}return r({title:s?F(j,{style:{marginLeft:f==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=d.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},p,{render:function r(i,o,m){if(o["_isChildrenItem"]){if(l){return l(i,o,m)}return i}var s=[].concat(t(d.name),[o.name]);var f=e.dataIndex?[].concat(s,[e.dataIndex]):s;var p=a==null?void 0:a({name:f,tableRowIndex:o.name,operation:o.operation,tableRowName:s,index:m});if(p){return p}var v=typeof n==="function"?n({name:f,tableRowIndex:o.name,tableRowName:s,getTableRowData:function e(){return u.getFieldValue(s)}}):n;var g=t(e.hiddenField);if(!c&&m===0){g=g.concat([{dataIndex:d.uidFieldKey}])}return F(ce,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:f,fieldConfig:v,tableRowIndex:o.name,hiddenFieldList:g})}})}))}),[d.columns,(m=d.tableProps)==null?void 0:m.cellVerticalAlign,d.name,d.uidFieldKey,c,u]);var g=o.useWatch(d.name,u);return F("div",{className:n("editable-table",{"et-empty-show-large":d.emptyShowSize==="large"}),children:F(o.List,{name:d.name,rules:d.rules,children:function n(i,a,m){var c=m.errors;s.current=i;return L("div",{style:{borderRadius:"6px",border:c!=null&&c.length?"1px solid #ff4d4f":"1px solid transparent"},children:[d.onTableBeforeRender?d.onTableBeforeRender(a,i.length):null,F(p,r({scroll:{x:"max-content"},pagination:false,size:"small"},d.tableProps,{rowKey:function e(n){var r=u.getFieldValue([].concat(t(d.name),[n["_index"]]));var i=r==null?void 0:r[d.uidFieldKey];if(l(i)){console.warn("通过入参uidFieldKey:{"+d.uidFieldKey+"},未获取到表格行唯一值数据")}return i},dataSource:i.map((function(e,n){var i;var t=g==null||(i=g[e.name])==null?void 0:i.children;if(t){t.forEach((function(e){e["_isChildrenItem"]=true}))}return r({},e,{_index:n,operation:a,children:t})})),columns:f})),d.onTableAfterRender?d.onTableAfterRender(a,i.length):F(w,{type:"dashed",hidden:d.hiddenFooterBtn,onClick:function e(){return a.add(d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues())},block:true,icon:F(e,{}),style:{marginTop:15},children:"新增"}),F(o.ErrorList,{errors:c.length?[F("div",{style:{color:"#ff4d4f",padding:"5px"},children:c},"0")]:undefined})]})}})})};export{pe as EditableTable};
|
|
29
28
|
//# 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/switch-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 { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form } from 'antd';\nimport { useMemo } from 'react';\nimport { tableCellRender } from '../../table-cell-render';\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 options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem[],\n [editableComptProps.options],\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\n return (\n <span className=\"editable-checkbox-group-view\">\n {render ? render(props.value, options) : tableCellRender.selectorCell(options)(props.value)}\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 { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio } from 'antd';\nimport { useMemo } from 'react';\nimport { tableCellRender } from '../../table-cell-render';\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 const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem<string | number>[],\n [editableComptProps.options],\n );\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, options) : tableCellRender.selectorCell(options)(props.value)}\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 { 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\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={'geekblue'}>\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 { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { SwitchWrapper } from '../../switch-wrapper';\nimport { EditableFormItemProps, EditableSwitchWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | boolean;\n onChange?: (value?: string | number | boolean) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSwitchWrapperConfig).editableComptProps;\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewData = useMemo(() => {\n const defaultCheckedText = editableComptProps.checkedChildren || '是';\n const defaultUnCheckedText = editableComptProps.unCheckedChildren || '否';\n\n return {\n checkedText: defaultCheckedText,\n unCheckedText: defaultUnCheckedText,\n };\n }, [editableComptProps.checkedChildren, editableComptProps.unCheckedChildren]);\n\n if (editable) {\n return <SwitchWrapper {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n if (render) {\n return <span className=\"editable-switch-wrapper-view\">{render(props.value)}</span>;\n }\n return (\n <span className=\"editable-switch-wrapper-view\">\n {editableComptProps.checkedValue == props.value ? (\n <Tag color=\"geekblue\" style={{ marginRight: 0 }}>\n {viewData.checkedText}\n </Tag>\n ) : (\n <Tag style={{ marginRight: 0 }}>{viewData.unCheckedText}</Tag>\n )}\n </span>\n );\n};\n\nexport const SwitchWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-switch-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form } 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 <span>{viewText}</span>;\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 { SwitchWrapperFormItem } from './switch-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 === 'switchWrapper') {\n return <SwitchWrapperFormItem {...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 { toArray } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { FormItemHidden } from '../../form-item-hidden';\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 } | { dataIndex: string }[];\n};\n\nexport const FormListItem = (props: FormListItemProps) => {\n if (props.fieldConfig) {\n const hiddenField = toArray<{ dataIndex: string }>(props.hiddenField);\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 {hiddenField.map((item) => {\n return <FormItemHidden name={item.dataIndex} />;\n })}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Form, FormListOperation, Table, TableProps } from 'antd';\nimport { FormListFieldData, FormListProps } from 'antd/es/form';\nimport { ColumnsType } from 'antd/es/table';\nimport { forwardRef, isValidElement, ReactElement, useImperativeHandle, useMemo, useRef } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport { TipsWrapper, TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\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 getTableRowData: () => TPlainObject;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型、ReactElement有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?:\n | {\n dataIndex: string;\n }\n | {\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 * 4. 对 table children column渲染无效\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n index: number;\n }) => ReactElement | null;\n /** table datasource children column 自定义渲染 */\n tableChildrenColumnRender?: (value: TAny, record: TPlainObject, index: number) => ReactElement | null;\n /** 为表格header中的字段添加必填标识,无验证拦截功能 */\n required?: boolean;\n};\n\nexport type EditableTableProps = {\n name: EditableTableName;\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 /**\n * Form.List rules\n * ```\n rules={[\n {\n validator: async (_, names) => {\n if (!names || names.length < 2) {\n return Promise.reject(new Error('At least 2 passengers'));\n }\n },\n },\n ]}\n * ```\n */\n rules?: FormListProps['rules'];\n /** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */\n hiddenFooterBtn?: boolean;\n /** 新增行默认值,自定义onTableAfterRender后失效 */\n getAddRowDefaultValues?: () => TPlainObject;\n /** 空效果显示尺寸,默认值:small */\n emptyShowSize?: 'small' | 'large';\n};\n\nexport type EditableTableRefApi = {\n /** 可用于表格行选择操作时,获取操作列数据 */\n getTableItemDataByFormListItemKey: (key: number) => TPlainObject;\n};\n\n/**\n * 可编辑表格\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * ```\n * 1. 通过 tableProps 设置Table属性,table size默认:small\n * 2. Table children column 不可编辑\n * 3. 当存在折叠children数据时,组件会在children中内置_isChildrenItem字段\n * 4. 可通过tableChildrenColumnRender自定义渲染 table children column 显示\n * 5. 设置 rowSelection 后,rowSelection.onChange 通过 ref 的 getTableItemDataByFormListItemKey获取数据\n * ```\n */\nexport const EditableTable = forwardRef<EditableTableRefApi, EditableTableProps>((props, ref) => {\n const form = Form.useFormInstance();\n\n const formListFieldsRef = useRef<FormListFieldData[]>([]);\n\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const {\n fieldConfig,\n renderMiddleware,\n tableChildrenColumnRender,\n tooltip,\n title,\n tipsWrapperProps,\n required,\n align,\n ...otherColumnItem\n } = columnItem;\n const support = isValidElement(title) || typeof title === 'string';\n let titleRender: ReactElement | string;\n if (tipsWrapperProps && support) {\n if (typeof tipsWrapperProps === 'string') {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n );\n } else {\n titleRender = <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>;\n }\n } else if (tooltip) {\n titleRender = <TableTitleTooltip title={title as string} tooltip={tooltip} />;\n } else {\n titleRender = title as string;\n }\n return {\n title: required ? (\n <TextSymbolWrapper\n style={{ marginLeft: align === 'center' ? undefined : 10 }}\n text={titleRender}\n position=\"before\"\n symbolType=\"required\"\n />\n ) : (\n titleRender\n ),\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n render: (_value, record, index) => {\n if (record['_isChildrenItem']) {\n if (tableChildrenColumnRender) {\n return tableChildrenColumnRender(_value, record, index);\n }\n return _value;\n }\n const tableRowName = [...toArray<string | number>(props.name as TAny), 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 getTableRowData: () => {\n return form.getFieldValue(tableRowName);\n },\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 const formListDataSource = Form.useWatch(props.name, form);\n\n useImperativeHandle(ref, () => {\n return {\n getTableItemDataByFormListItemKey: (key) => {\n const target = formListFieldsRef.current.find((item) => item.key === key);\n if (target) {\n return form.getFieldValue([...toArray<string>(props.name), target.name]);\n }\n return undefined;\n },\n };\n });\n\n return (\n <div className={classNames('editable-table', { 'et-empty-show-large': props.emptyShowSize === 'large' })}>\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation, { errors }) => {\n formListFieldsRef.current = fields;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n rowKey=\"key\"\n size=\"small\"\n {...props.tableProps}\n dataSource={fields.map((item) => {\n const children = formListDataSource?.[item.name]?.children as TPlainObject[] | undefined;\n if (children) {\n children.forEach((item) => {\n item['_isChildrenItem'] = true;\n });\n }\n return {\n ...item,\n operation: formListOperation,\n children,\n };\n })}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <ButtonWrapper\n type=\"dashed\"\n hidden={props.hiddenFooterBtn}\n onClick={() => formListOperation.add(props.getAddRowDefaultValues?.())}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </ButtonWrapper>\n )}\n <Form.ErrorList\n errors={\n errors.length\n ? [\n <div\n style={{\n color: '#ff4d4f',\n padding: '5px',\n }}\n >\n {errors}\n </div>,\n ]\n : undefined\n }\n />\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n});\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","options","useMemo","onChange","_hooks","useCallbackRef","value","_jsx","Checkbox","Group","_extends","className","children","tableCellRender","selectorCell","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","_isArray","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","e","target","Radio","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","viewLabelList","setviewLabelList","useEffect","length","map","item","label","returnList","forEach","find","temp","push","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","tag","index","Tag","color","SelectorWrapperFormItem","viewData","defaultCheckedText","checkedChildren","defaultUnCheckedText","unCheckedChildren","checkedText","unCheckedText","SwitchWrapper","checkedValue","marginRight","SwitchWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","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","toArray","FormItemHidden","dataIndex","EditableTable","forwardRef","ref","_props$tableProps2","form","formListFieldsRef","useRef","columns","columnItem","renderMiddleware","tableChildrenColumnRender","tooltip","title","tipsWrapperProps","required","align","otherColumnItem","support","isValidElement","titleRender","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","TextSymbolWrapper","marginLeft","text","position","symbolType","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","_value","record","tableRowName","customRender","operation","fieldConfigActual","getTableRowData","formListDataSource","useWatch","useImperativeHandle","getTableItemDataByFormListItemKey","key","current","emptyShowSize","rules","formListOperation","errors","borderRadius","border","onTableBeforeRender","Table","scroll","x","pagination","rowKey","size","dataSource","_formListDataSource$i","onTableAfterRender","ButtonWrapper","hidden","hiddenFooterBtn","getAddRowDefaultValues","block","_PlusOutlined","marginTop","ErrorList","padding"],"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/switch-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 { classNames } from '@dimjs/utils';\nimport { LabelValueItem, TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Checkbox, Form } from 'antd';\nimport { useMemo } from 'react';\nimport { tableCellRender } from '../../table-cell-render';\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 options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem[],\n [editableComptProps.options],\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\n return (\n <span className=\"editable-checkbox-group-view\">\n {render ? render(props.value, options) : tableCellRender.selectorCell(options)(props.value)}\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 { classNames } from '@dimjs/utils';\nimport { LabelValueItem } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Radio } from 'antd';\nimport { useMemo } from 'react';\nimport { tableCellRender } from '../../table-cell-render';\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 const options = useMemo(\n () => (editableComptProps.options || []) as LabelValueItem<string | number>[],\n [editableComptProps.options],\n );\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, options) : tableCellRender.selectorCell(options)(props.value)}\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 { 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\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={'geekblue'}>\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 { classNames } from '@dimjs/utils';\nimport { hooks } from '@wove/react';\nimport { Form, Tag } from 'antd';\nimport { useMemo } from 'react';\nimport { SwitchWrapper } from '../../switch-wrapper';\nimport { EditableFormItemProps, EditableSwitchWrapperConfig } from '../type';\n\ntype FormItemContentProps = Omit<EditableFormItemProps, 'formItemProps'> & {\n value?: string | number | boolean;\n onChange?: (value?: string | number | boolean) => void;\n};\n\nconst FormItemContent = (props: FormItemContentProps) => {\n const { editableConfig, editable, render } = props.fieldConfig;\n const editableComptProps = (editableConfig as EditableSwitchWrapperConfig).editableComptProps;\n const onChange = hooks.useCallbackRef((data) => {\n props.onChange?.(data);\n editableComptProps?.onChange?.(data);\n });\n\n const viewData = useMemo(() => {\n const defaultCheckedText = editableComptProps.checkedChildren || '是';\n const defaultUnCheckedText = editableComptProps.unCheckedChildren || '否';\n\n return {\n checkedText: defaultCheckedText,\n unCheckedText: defaultUnCheckedText,\n };\n }, [editableComptProps.checkedChildren, editableComptProps.unCheckedChildren]);\n\n if (editable) {\n return <SwitchWrapper {...editableComptProps} value={props.value} onChange={onChange} />;\n }\n if (render) {\n return <span className=\"editable-switch-wrapper-view\">{render(props.value)}</span>;\n }\n return (\n <span className=\"editable-switch-wrapper-view\">\n {editableComptProps.checkedValue == props.value ? (\n <Tag color=\"geekblue\" style={{ marginRight: 0 }}>\n {viewData.checkedText}\n </Tag>\n ) : (\n <Tag style={{ marginRight: 0 }}>{viewData.unCheckedText}</Tag>\n )}\n </span>\n );\n};\n\nexport const SwitchWrapperFormItem = (props: EditableFormItemProps) => {\n const { formItemProps } = props.fieldConfig;\n return (\n <Form.Item\n {...formItemProps}\n name={props.name}\n className={classNames('editable-switch-wrapper-form-item', formItemProps?.className)}\n >\n <FormItemContent {...props} />\n </Form.Item>\n );\n};\n","import { isBoolean, isNumber, isString } from '@dimjs/lang';\nimport { Form } 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 <span>{viewText}</span>;\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 { SwitchWrapperFormItem } from './switch-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 === 'switchWrapper') {\n return <SwitchWrapperFormItem {...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 { toArray } from '@flatbiz/utils';\nimport { Fragment } from 'react';\nimport { FormItemHidden } from '../../form-item-hidden';\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 hiddenFieldList?: { 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.hiddenFieldList?.map((item, index) => {\n return <FormItemHidden key={index} name={[props.tableRowIndex, ...toArray(item.dataIndex)]} />;\n })}\n </Fragment>\n );\n }\n }\n return <TextFormItem name={props.name} />;\n};\n","import { PlusOutlined } from '@ant-design/icons';\nimport { classNames } from '@dimjs/utils';\nimport { isUndefinedOrNull, TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Form, FormListOperation, Table, TableProps } from 'antd';\nimport { FormListFieldData, FormListProps } from 'antd/es/form';\nimport { ColumnsType } from 'antd/es/table';\nimport { isValidElement, ReactElement, useMemo, useRef } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport { TipsWrapper, TipsWrapperProps } from '../tips-wrapper/tips-wrapper';\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 getTableRowData: () => TPlainObject;\n};\n/**\n * antd 默认render功能此处不能使用\n */\nexport type EditableTableColumn = Omit<ColumnsType['0'], 'render'> & {\n /**\n * @description 请使用 tipsWrapperProps 属性配置\n * ```\n * 会在 title 之后展示一个 icon,hover 之后提示一些信息\n * 1. title为string类型、ReactElement有效\n * 2. hoverArea 默认值:icon\n * ```\n */\n // tooltip?: string | { content: string; icon?: ReactElement; hoverArea?: 'icon' | 'all' };\n /**\n * 会在 title 之后展示一个 icon\n * ```\n * 1. title为string类型有效\n * 2. 可为icon添加提示效果\n * 3. 可为icon添加点击事件\n * ```\n */\n tipsWrapperProps?: string | TipsWrapperProps;\n dataIndex?: string;\n fieldConfig?:\n | FieldSingleConfig\n | FormListConfig\n | ((data: fieldConfigFunctionParams) => FieldSingleConfig | FormListConfig);\n /** 隐藏域字段 */\n hiddenField?:\n | {\n dataIndex: string;\n }\n | {\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 * 4. 对 table children column渲染无效\n * ```\n */\n renderMiddleware?: (item: {\n tableRowIndex: number;\n name: EditableTableName;\n tableRowName: EditableTableName;\n operation: FormListOperation;\n index: number;\n }) => ReactElement | null;\n /** table datasource children column 自定义渲染 */\n tableChildrenColumnRender?: (value: TAny, record: TPlainObject, index: number) => ReactElement | null;\n /** 为表格header中的字段添加必填标识,无验证拦截功能 */\n required?: boolean;\n};\n\nexport type EditableTableProps = {\n /** FormList name属性 */\n name: EditableTableName;\n /**\n * 表格行数据,唯一值字段Key\n * ```\n * 1. 如果数据中没有可前端添加key\n * 2. 有问题可咨询 xg15472\n * ```\n */\n uidFieldKey: 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\n /** 新增行默认值,自定义onTableAfterRender后失效 */\n getAddRowDefaultValues?: () => TPlainObject;\n\n /** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */\n hiddenFooterBtn?: boolean;\n /**\n * Form.List rules\n * ```\n rules={[\n {\n validator: async (_, names) => {\n if (!names || names.length < 2) {\n return Promise.reject(new Error('At least 2 passengers'));\n }\n },\n },\n ]}\n * ```\n */\n rules?: FormListProps['rules'];\n /** 空效果显示尺寸,默认值:small */\n emptyShowSize?: 'small' | 'large';\n};\n\n/**\n * 可编辑表格(通过FormList实现)\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1\n * ```\n * 1. 通过 tableProps 设置Table属性,table size默认:small\n * 2. Table children column 不可编辑\n * 3. 当存在折叠children数据时,组件会在children中内置_isChildrenItem字段\n * 4. 可通过tableChildrenColumnRender自定义渲染 table children column 显示\n * 5. 设置 rowSelection 后,rowSelection.onChange 通过 ref 的 getTableItemDataByFormListItemKey获取数据\n * 6. 4.5.0版本移除 ref.getTableItemDataByFormListItemKey 功能,可选择表格参考(https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable2)\n * ```\n */\nexport const EditableTable = (props: EditableTableProps) => {\n const form = Form.useFormInstance();\n\n const formListFieldsRef = useRef<FormListFieldData[]>([]);\n\n const columnsIncludeUidKey = useMemo(() => {\n const hasUid = props.columns.find((item) => item['dataIndex'] === props.uidFieldKey);\n return !!hasUid;\n }, [props.columns, props.uidFieldKey]);\n\n const columns = useMemo(() => {\n if (!props.columns) return [];\n return props.columns.map((columnItem) => {\n const {\n fieldConfig,\n renderMiddleware,\n tableChildrenColumnRender,\n // tooltip,\n title,\n tipsWrapperProps,\n required,\n align,\n ...otherColumnItem\n } = columnItem;\n const support = isValidElement(title) || typeof title === 'string';\n let titleRender: ReactElement | string;\n if (tipsWrapperProps && support) {\n if (typeof tipsWrapperProps === 'string') {\n titleRender = (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n );\n } else {\n titleRender = <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>;\n }\n }\n // else if (tooltip) {\n // titleRender = <TableTitleTooltip title={title as string} tooltip={tooltip} />;\n // }\n else {\n titleRender = title as string;\n }\n return {\n title: required ? (\n <TextSymbolWrapper\n style={{ marginLeft: align === 'center' ? undefined : 10 }}\n text={titleRender}\n position=\"before\"\n symbolType=\"required\"\n />\n ) : (\n titleRender\n ),\n onCell: () => {\n return {\n valign: props.tableProps?.cellVerticalAlign || 'middle',\n };\n },\n ...otherColumnItem,\n render: (_value, record, index) => {\n if (record['_isChildrenItem']) {\n if (tableChildrenColumnRender) {\n return tableChildrenColumnRender(_value, record, index);\n }\n return _value;\n }\n const tableRowName = [...toArray<string | number>(props.name as TAny), 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 getTableRowData: () => {\n return form.getFieldValue(tableRowName);\n },\n })\n : fieldConfig;\n let hiddenFieldList = toArray<{ dataIndex: string }>(columnItem.hiddenField);\n if (!columnsIncludeUidKey && index === 0) {\n hiddenFieldList = hiddenFieldList.concat([{ dataIndex: props.uidFieldKey }]);\n }\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 hiddenFieldList={hiddenFieldList}\n />\n );\n },\n };\n }) as ColumnsType<EditableTableRecordType>;\n }, [\n props.columns,\n props.tableProps?.cellVerticalAlign,\n props.name,\n props.uidFieldKey,\n columnsIncludeUidKey,\n form,\n ]);\n\n const formListDataSource = Form.useWatch(props.name, form);\n\n return (\n <div className={classNames('editable-table', { 'et-empty-show-large': props.emptyShowSize === 'large' })}>\n <Form.List name={props.name} rules={props.rules}>\n {(fields, formListOperation, { errors }) => {\n formListFieldsRef.current = fields;\n return (\n <div\n style={{\n borderRadius: '6px',\n border: errors?.length ? '1px solid #ff4d4f' : '1px solid transparent',\n }}\n >\n {props.onTableBeforeRender ? props.onTableBeforeRender(formListOperation, fields.length) : null}\n <Table\n scroll={{ x: 'max-content' }}\n pagination={false}\n size=\"small\"\n {...props.tableProps}\n rowKey={(record) => {\n const target = form.getFieldValue([...toArray<string>(props.name), record['_index']]);\n const key = target?.[props.uidFieldKey];\n if (isUndefinedOrNull(key)) {\n console.warn(`通过入参uidFieldKey:{${props.uidFieldKey}},未获取到表格行唯一值数据`);\n }\n return key;\n }}\n dataSource={fields.map((item, index) => {\n const children = formListDataSource?.[item.name]?.children as TPlainObject[] | undefined;\n if (children) {\n children.forEach((item) => {\n item['_isChildrenItem'] = true;\n });\n }\n return {\n ...item,\n _index: index,\n operation: formListOperation,\n children,\n };\n })}\n columns={columns}\n />\n {props.onTableAfterRender ? (\n props.onTableAfterRender(formListOperation, fields.length)\n ) : (\n <ButtonWrapper\n type=\"dashed\"\n hidden={props.hiddenFooterBtn}\n onClick={() => formListOperation.add(props.getAddRowDefaultValues?.())}\n block\n icon={<PlusOutlined />}\n style={{ marginTop: 15 }}\n >\n 新增\n </ButtonWrapper>\n )}\n <Form.ErrorList\n errors={\n errors.length\n ? [\n <div\n style={{\n color: '#ff4d4f',\n padding: '5px',\n }}\n key=\"0\"\n >\n {errors}\n </div>,\n ]\n : undefined\n }\n />\n </div>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["getEditable","editable","tableRowIndex","CheckboxGroupFormItemContent","props","_props$fieldConfig","fieldConfig","editableConfig","render","editableComptProps","options","useMemo","onChange","_hooks","useCallbackRef","value","_jsx","Checkbox","Group","_extends","className","children","tableCellRender","selectorCell","CheckboxGroupFormItem","formItemProps","Form","Item","name","_classNames","DatePickerWrapperFormItem","DatePickerWrapper","allowClear","FormItemContent","data","viewLabel","_isArray","undefined","join","DateRangePickerWrapper","DateRangePickerWrapperFormItem","InputFormItem","InputWrapper","InputNumberFormItem","InputNumber","RadioGroupFormItemContent","e","target","Radio","RadioGroupFormItem","_useState","useState","selectorList","setSelectorList","_useState2","viewLabelList","setviewLabelList","useEffect","length","map","item","label","returnList","forEach","find","temp","push","String","fieldNames","onSelectorListAllChange","dataList","arrayField2LabelValue","selectList","SelectorWrapper","_jsxs","Fragment","style","display","tag","index","Tag","color","SelectorWrapperFormItem","viewData","defaultCheckedText","checkedChildren","defaultUnCheckedText","unCheckedChildren","checkedText","unCheckedText","SwitchWrapper","checkedValue","marginRight","SwitchWrapperFormItem","FormItemTextContent","_props$fieldConfig2","_props$fieldConfig3","isBaseData","_isString","_isNumber","_isBoolean","console","warn","JSON","stringify","viewText","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","_props$hiddenFieldLis","hiddenFieldList","FormItemHidden","toArray","dataIndex","EditableTable","_props$tableProps2","form","formListFieldsRef","useRef","columnsIncludeUidKey","hasUid","columns","uidFieldKey","columnItem","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align","otherColumnItem","support","isValidElement","titleRender","TipsWrapper","tipType","popoverProps","content","TextSymbolWrapper","marginLeft","text","position","symbolType","onCell","_props$tableProps","valign","tableProps","cellVerticalAlign","_value","record","tableRowName","customRender","operation","fieldConfigActual","getTableRowData","hiddenField","formListDataSource","useWatch","emptyShowSize","rules","formListOperation","errors","current","borderRadius","border","onTableBeforeRender","Table","scroll","x","pagination","size","rowKey","key","isUndefinedOrNull","dataSource","_formListDataSource$i","_index","onTableAfterRender","ButtonWrapper","hidden","hiddenFooterBtn","getAddRowDefaultValues","block","_PlusOutlined","marginTop","ErrorList","padding"],"mappings":"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"}
|
package/esm/index.js
CHANGED
|
@@ -49,7 +49,6 @@ import './drag-collapse/index.css';
|
|
|
49
49
|
import './drag-collapse-form-list/index.css';
|
|
50
50
|
import './drag-editable-table/index.css';
|
|
51
51
|
import './editable-table/index.css';
|
|
52
|
-
import './table-title-tooltip/index.css';
|
|
53
52
|
import './text-symbol-wrapper/index.css';
|
|
54
53
|
import './form-item-hidden/index.css';
|
|
55
54
|
import './selector-wrapper/index.css';
|
|
@@ -70,6 +69,7 @@ import './form-wrapper/index.css';
|
|
|
70
69
|
import './easy-table/index.css';
|
|
71
70
|
import './pagination-wrapper/index.css';
|
|
72
71
|
import './svg-http-view/index.css';
|
|
72
|
+
import './table-title-tooltip/index.css';
|
|
73
73
|
import './tips-wrapper/index.css';
|
|
74
74
|
import './form-grid/index.css';
|
|
75
75
|
import './table-scrollbar/index.css';
|
package/index.d.ts
CHANGED
|
@@ -1692,11 +1692,6 @@ export type EditableTableColumn = Omit<ColumnsType["0"], "render"> & {
|
|
|
1692
1692
|
* 2. hoverArea 默认值:icon
|
|
1693
1693
|
* ```
|
|
1694
1694
|
*/
|
|
1695
|
-
tooltip?: string | {
|
|
1696
|
-
content: string;
|
|
1697
|
-
icon?: ReactElement;
|
|
1698
|
-
hoverArea?: "icon" | "all";
|
|
1699
|
-
};
|
|
1700
1695
|
/**
|
|
1701
1696
|
* 会在 title 之后展示一个 icon
|
|
1702
1697
|
* ```
|
|
@@ -1736,7 +1731,16 @@ export type EditableTableColumn = Omit<ColumnsType["0"], "render"> & {
|
|
|
1736
1731
|
required?: boolean;
|
|
1737
1732
|
};
|
|
1738
1733
|
export type EditableTableProps = {
|
|
1734
|
+
/** FormList name属性 */
|
|
1739
1735
|
name: EditableTableName;
|
|
1736
|
+
/**
|
|
1737
|
+
* 表格行数据,唯一值字段Key
|
|
1738
|
+
* ```
|
|
1739
|
+
* 1. 如果数据中没有可前端添加key
|
|
1740
|
+
* 2. 有问题可咨询 xg15472
|
|
1741
|
+
* ```
|
|
1742
|
+
*/
|
|
1743
|
+
uidFieldKey: string;
|
|
1740
1744
|
/**
|
|
1741
1745
|
* ```
|
|
1742
1746
|
* antd table属性
|
|
@@ -1752,6 +1756,10 @@ export type EditableTableProps = {
|
|
|
1752
1756
|
* 设置后,将覆盖底部`新增`按钮
|
|
1753
1757
|
*/
|
|
1754
1758
|
onTableAfterRender?: (formListOperation: FormListOperation, nextRowIndex: number) => ReactElement | null;
|
|
1759
|
+
/** 新增行默认值,自定义onTableAfterRender后失效 */
|
|
1760
|
+
getAddRowDefaultValues?: () => TPlainObject;
|
|
1761
|
+
/** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */
|
|
1762
|
+
hiddenFooterBtn?: boolean;
|
|
1755
1763
|
/**
|
|
1756
1764
|
* Form.List rules
|
|
1757
1765
|
* ```
|
|
@@ -1767,19 +1775,11 @@ export type EditableTableProps = {
|
|
|
1767
1775
|
* ```
|
|
1768
1776
|
*/
|
|
1769
1777
|
rules?: FormListProps["rules"];
|
|
1770
|
-
/** 隐藏底部`新增`按钮,设置 onTableAfterRender后 失效 */
|
|
1771
|
-
hiddenFooterBtn?: boolean;
|
|
1772
|
-
/** 新增行默认值,自定义onTableAfterRender后失效 */
|
|
1773
|
-
getAddRowDefaultValues?: () => TPlainObject;
|
|
1774
1778
|
/** 空效果显示尺寸,默认值:small */
|
|
1775
1779
|
emptyShowSize?: "small" | "large";
|
|
1776
1780
|
};
|
|
1777
|
-
export type EditableTableRefApi = {
|
|
1778
|
-
/** 可用于表格行选择操作时,获取操作列数据 */
|
|
1779
|
-
getTableItemDataByFormListItemKey: (key: number) => TPlainObject;
|
|
1780
|
-
};
|
|
1781
1781
|
/**
|
|
1782
|
-
*
|
|
1782
|
+
* 可编辑表格(通过FormList实现)
|
|
1783
1783
|
* demo:https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable1
|
|
1784
1784
|
* ```
|
|
1785
1785
|
* 1. 通过 tableProps 设置Table属性,table size默认:small
|
|
@@ -1787,9 +1787,10 @@ export type EditableTableRefApi = {
|
|
|
1787
1787
|
* 3. 当存在折叠children数据时,组件会在children中内置_isChildrenItem字段
|
|
1788
1788
|
* 4. 可通过tableChildrenColumnRender自定义渲染 table children column 显示
|
|
1789
1789
|
* 5. 设置 rowSelection 后,rowSelection.onChange 通过 ref 的 getTableItemDataByFormListItemKey获取数据
|
|
1790
|
+
* 6. 4.5.0版本移除 ref.getTableItemDataByFormListItemKey 功能,可选择表格参考(https://fex.qa.tcshuke.com/docs/admin/main/table/row-editable2)
|
|
1790
1791
|
* ```
|
|
1791
1792
|
*/
|
|
1792
|
-
export declare const EditableTable:
|
|
1793
|
+
export declare const EditableTable: (props: EditableTableProps) => import("react/jsx-runtime").JSX.Element;
|
|
1793
1794
|
export type DragEditableTableProps = EditableTableProps & {
|
|
1794
1795
|
/**
|
|
1795
1796
|
* 拖拽图标自定义,默认使用 DragOutlined 图标
|
|
@@ -1826,35 +1827,7 @@ export type DragEditableTableProps = EditableTableProps & {
|
|
|
1826
1827
|
* 2. Table 参数 components.body.row 被组件内部使用
|
|
1827
1828
|
* ```
|
|
1828
1829
|
*/
|
|
1829
|
-
export declare const DragEditableTable: import("react").
|
|
1830
|
-
/**
|
|
1831
|
-
* 拖拽图标自定义,默认使用 DragOutlined 图标
|
|
1832
|
-
*/
|
|
1833
|
-
dragIcon?: ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
|
1834
|
-
/** 禁用拖拽 */
|
|
1835
|
-
disabledDrag?: boolean | undefined;
|
|
1836
|
-
/**
|
|
1837
|
-
* 表格数据唯一值字段Key
|
|
1838
|
-
* ```
|
|
1839
|
-
* ```
|
|
1840
|
-
*/
|
|
1841
|
-
uidFieldKey: string;
|
|
1842
|
-
/**
|
|
1843
|
-
* 拖拽结束事件
|
|
1844
|
-
* ```
|
|
1845
|
-
* dataSource: 拖拽完成后的数据源
|
|
1846
|
-
* dragData
|
|
1847
|
-
* 1. activeId 拖拽ID
|
|
1848
|
-
* 2. activeIndex 拖拽起始表格数组索引值
|
|
1849
|
-
* 3. overIndex 拖拽结束表格数组索引值
|
|
1850
|
-
* ```
|
|
1851
|
-
*/
|
|
1852
|
-
onDragChange?: ((dataSource: TPlainObject[], dragData: {
|
|
1853
|
-
activeId: string | number;
|
|
1854
|
-
activeIndex: number;
|
|
1855
|
-
overIndex: number;
|
|
1856
|
-
}) => void) | undefined;
|
|
1857
|
-
} & import("react").RefAttributes<EditableTableRefApi>>;
|
|
1830
|
+
export declare const DragEditableTable: (props: any) => import("react/jsx-runtime").JSX.Element;
|
|
1858
1831
|
export type FormItemHorizontalUnionProps = {
|
|
1859
1832
|
className?: string;
|
|
1860
1833
|
style?: CSSProperties;
|
|
@@ -2395,8 +2368,16 @@ export type EasyTableRefApi = {
|
|
|
2395
2368
|
onRequest: (params?: TPlainObject) => void;
|
|
2396
2369
|
/** 获取请求参数 */
|
|
2397
2370
|
getRequestParams: () => TPlainObject;
|
|
2398
|
-
/**
|
|
2371
|
+
/**
|
|
2372
|
+
* 清除Form查询条件
|
|
2373
|
+
* ```
|
|
2374
|
+
* 1. 会执行form.resetFields();
|
|
2375
|
+
* 2. values 为清除后指定赋值form的数据
|
|
2376
|
+
* ```
|
|
2377
|
+
*/
|
|
2399
2378
|
clearQueryCondition: (values?: TPlainObject) => Promise<void>;
|
|
2379
|
+
/** 更新Form查询条件,不会执行form.resetFields(); */
|
|
2380
|
+
updateQueryCondition: (values: TPlainObject) => Promise<void>;
|
|
2400
2381
|
/** 搜素表单实例 */
|
|
2401
2382
|
form: FormInstance;
|
|
2402
2383
|
/** 重置请求 */
|