@flatbiz/antd 4.3.0 → 4.4.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/amount-fen-input/index.js.map +1 -1
- package/esm/bootstrap/index.css +1 -0
- package/esm/bootstrap/index.js +12 -0
- package/esm/bootstrap/index.js.map +1 -0
- package/esm/card-layout/index.css +1 -0
- package/esm/card-layout/index.js +5 -0
- package/esm/card-layout/index.js.map +1 -0
- package/esm/dialog-drawer/index.js +1 -1
- package/esm/dialog-drawer/index.js.map +1 -1
- package/esm/dialog-modal/index.js +1 -1
- package/esm/dialog-modal/index.js.map +1 -1
- package/esm/drag-editable-table/index.js +1 -1
- package/esm/drag-editable-table/index.js.map +1 -1
- package/esm/drag-form-list/index.css +1 -1
- package/esm/drag-form-list/index.js +1 -1
- package/esm/drag-form-list/index.js.map +1 -1
- package/esm/drag-table/index.js +1 -1
- package/esm/drag-table/index.js.map +1 -1
- package/esm/easy-table/index.css +1 -1
- package/esm/easy-table/index.js +2 -2
- package/esm/easy-table/index.js.map +1 -1
- package/esm/fba-app/index.css +1 -1
- package/esm/fba-app/index.js +1 -1
- package/esm/fba-app/index.js.map +1 -1
- package/esm/fba-hooks/index.js +1 -1
- package/esm/fba-hooks/index.js.map +1 -1
- package/esm/form-item-group/index.css +1 -1
- package/esm/form-list-wrapper/index.css +1 -1
- package/esm/index-1f45bfd5.js +3 -0
- package/esm/index-1f45bfd5.js.map +1 -0
- package/esm/index.css +1 -0
- package/esm/index.js +9 -7
- package/esm/json-editor/index.js +1 -1
- package/esm/json-editor/index.js.map +1 -1
- package/esm/label-value-layout/index.css +1 -1
- package/esm/local-loading/index.js +1 -1
- package/esm/local-loading/index.js.map +1 -1
- package/esm/page-fixed-footer/index.css +1 -1
- package/esm/rule-describe/index.css +1 -1
- package/esm/search-form/index.css +1 -0
- package/esm/search-form/index.js +2 -1
- package/esm/search-form/index.js.map +1 -1
- package/esm/selector-wrapper/index.js.map +1 -1
- package/esm/simple-layout/index.js.map +1 -1
- package/esm/split-wrapper/index.css +1 -1
- package/esm/text-overflow/index.css +1 -1
- package/esm/tips-title/index.css +1 -1
- package/esm/tree-selector-wrapper/index.js +2 -2
- package/esm/tree-selector-wrapper/index.js.map +1 -1
- package/esm/tree-wrapper/index.css +1 -1
- package/esm/tree-wrapper/index.js +1 -1
- package/esm/tree-wrapper/index.js.map +1 -1
- package/index.d.ts +132 -23
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-table/context.ts","@flatbiz/antd/src/drag-table/table-tr.tsx","@flatbiz/antd/src/drag-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-table/row.tsx","@flatbiz/antd/src/drag-table/drag-table.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: false | ReactElement;\n}>();\n","import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nexport const TableTr = (props) => {\n const { listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...props.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 }\n : {}),\n };\n\n return <tr {...props} ref={setNodeRef} style={style} {...listeners} />;\n};\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, isValidElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\ntype TableTrHandleProps = RowProps & {\n dragIcon?: false | ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'];\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (!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: dragIcon === false ? 'move' : undefined,\n ...(isDragging\n ? {\n position: 'relative',\n zIndex: 9999,\n boxShadow: ' 0px 0px 12px 4px rgba(34, 33, 81, 0.1)',\n backgroundColor: '#fff',\n }\n : {}),\n };\n const iconElement = isValidElement(dragIcon) ? dragIcon : <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style}>\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 { TableTr } from './table-tr';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return ctx.dragIcon === false ? (\n <TableTr {...props} dragIcon={ctx.dragIcon} />\n ) : (\n <TableTrHandle {...props} dragIcon={ctx.dragIcon} />\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 { Table, type TableProps } from 'antd';\nimport { useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\ntype DragTableProps = Omit<TableProps<TPlainObject>, 'dataSource'> & {\n /**\n * ```\n * 1. 可自定义拖拽图标\n * 2. dragIcon = false,可设置表格行拖拽\n * ```\n */\n dragIcon?: false | ReactElement;\n /** 表格数据唯一值字段Key,未填或者无法唯一,都不能拖拽能力 */\n uidFieldKey: string;\n dataSource?: TPlainObject[];\n /** 禁用拖拽 */\n disabledDrag?: boolean;\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. 如果拖拽显示异常,请检查 uidFieldKey 是否正确\n * 3. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragTable = (props: DragTableProps) => {\n const { dragIcon, uidFieldKey, columns, dataSource, onDragChange, disabledDrag, ...otherProps } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n useEffect(() => {\n setDataList(dataSource || []);\n }, [dataSource]);\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 setDataList([...dataListNew]);\n onDragChange?.(dataListNew, {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columnsList = useMemo(() => {\n if (dragIcon === false) return columns;\n return [\n {\n key: 'sort',\n dataIndex: 'sort',\n align: 'center',\n width: 50,\n } as TAny,\n ].concat(columns || []);\n }, [columns, dragIcon]);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: dragIcon === false ? 150 : 0,\n tolerance: 0,\n },\n }),\n );\n\n return (\n <CtxProvider value={{ dragIcon }}>\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext items={dataList.map((i) => i[uidFieldKey])} strategy={verticalListSortingStrategy}>\n <Table\n pagination={false}\n rowKey={uidFieldKey}\n bordered\n components={{\n ...otherProps.components,\n body: {\n ...otherProps.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n }}\n {...otherProps}\n dataSource={dataList}\n columns={columnsList}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTr","props","_useSortable","useSortable","id","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","_jsx","ref","TableTrHandle","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","setActivatorNodeRef","undefined","backgroundColor","iconElement","isValidElement","_DragOutlined","children","Children","map","child","key","cloneElement","touchAction","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","Row","ctx","DragTable","_otherProps$component","uidFieldKey","columns","dataSource","onDragChange","disabledDrag","otherProps","_useState","useState","dataList","setDataList","useEffect","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","concat","activeId","columnsList","useMemo","dataIndex","align","width","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","value","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","Table","pagination","rowKey","bordered","components","body","row"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/drag-table/context.ts","@flatbiz/antd/src/drag-table/table-tr.tsx","@flatbiz/antd/src/drag-table/table-tr-handle.tsx","@flatbiz/antd/src/drag-table/row.tsx","@flatbiz/antd/src/drag-table/drag-table.tsx"],"sourcesContent":["import { createCtx } from '@wove/react';\nimport { type ReactElement } from 'react';\n\nexport const [getCtx, CtxProvider] = createCtx<{\n dragIcon?: false | ReactElement;\n}>();\n","import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\n\nexport const TableTr = (props) => {\n const { listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: props['data-row-key'],\n });\n\n const style: React.CSSProperties = {\n ...props.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 }\n : {}),\n };\n\n return <tr {...props} ref={setNodeRef} style={style} {...listeners} />;\n};\n","import { DragOutlined } from '@ant-design/icons';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { noop } from '@flatbiz/utils';\nimport { type RowProps } from 'antd';\nimport { Children, cloneElement, isValidElement, type ReactElement } from 'react';\nimport { IconWrapper } from '../icon-wrapper';\ntype TableTrHandleProps = RowProps & {\n dragIcon?: false | ReactElement;\n};\nexport const TableTrHandle = (props: TableTrHandleProps) => {\n const { dragIcon, ...innerProps } = props;\n const rowId = innerProps['data-row-key'];\n const { setActivatorNodeRef, listeners, setNodeRef, transform, transition, isDragging } = useSortable({\n id: rowId,\n });\n\n if (!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: dragIcon === false ? 'move' : undefined,\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 = isValidElement(dragIcon) ? dragIcon : <DragOutlined />;\n return (\n <tr {...innerProps} ref={setNodeRef} style={style}>\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 { TableTr } from './table-tr';\nimport { TableTrHandle } from './table-tr-handle';\n\nexport const Row = (props) => {\n const ctx = getCtx();\n return ctx.dragIcon === false ? (\n <TableTr {...props} dragIcon={ctx.dragIcon} />\n ) : (\n <TableTrHandle {...props} dragIcon={ctx.dragIcon} />\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 { Table, type TableProps } from 'antd';\nimport { useEffect, useMemo, useState, type ReactElement } from 'react';\nimport { CtxProvider } from './context';\nimport { Row } from './row';\n\ntype DragTableProps = Omit<TableProps<TPlainObject>, 'dataSource'> & {\n /**\n * ```\n * 1. 可自定义拖拽图标\n * 2. dragIcon = false,可设置表格行拖拽\n * ```\n */\n dragIcon?: false | ReactElement;\n /** 表格数据唯一值字段Key,未填或者无法唯一,都不能拖拽能力 */\n uidFieldKey: string;\n dataSource?: TPlainObject[];\n /** 禁用拖拽 */\n disabledDrag?: boolean;\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. 如果拖拽显示异常,请检查 uidFieldKey 是否正确\n * 3. Table 参数 components.body.row 被组件内部使用\n * ```\n */\nexport const DragTable = (props: DragTableProps) => {\n const { dragIcon, uidFieldKey, columns, dataSource, onDragChange, disabledDrag, ...otherProps } = props;\n const [dataList, setDataList] = useState<TAny[]>([]);\n\n useEffect(() => {\n setDataList(dataSource || []);\n }, [dataSource]);\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 setDataList([...dataListNew]);\n onDragChange?.(dataListNew, {\n activeId: active.id,\n activeIndex,\n overIndex,\n });\n }\n };\n\n const columnsList = useMemo(() => {\n if (dragIcon === false) return columns;\n return [\n {\n key: 'sort',\n dataIndex: 'sort',\n align: 'center',\n width: 50,\n } as TAny,\n ].concat(columns || []);\n }, [columns, dragIcon]);\n\n const sensors = useSensors(\n useSensor(PointerSensor, {\n activationConstraint: {\n // 当拖拽触发区域有其他点击事件时,需要延迟触发拖拽动作\n delay: dragIcon === false ? 150 : 0,\n tolerance: 0,\n },\n }),\n );\n\n return (\n <CtxProvider value={{ dragIcon }}>\n <DndContext sensors={sensors} modifiers={[restrictToVerticalAxis]} onDragEnd={onDragEnd}>\n <SortableContext items={dataList.map((i) => i[uidFieldKey])} strategy={verticalListSortingStrategy}>\n <Table\n pagination={false}\n rowKey={uidFieldKey}\n bordered\n components={{\n ...otherProps.components,\n body: {\n ...otherProps.components?.body,\n row: disabledDrag ? undefined : Row,\n },\n }}\n {...otherProps}\n dataSource={dataList}\n columns={columnsList}\n />\n </SortableContext>\n </DndContext>\n </CtxProvider>\n );\n};\n"],"names":["_createCtx","_createCtx2","getCtx","CtxProvider","TableTr","props","_useSortable","useSortable","id","listeners","setNodeRef","transform","transition","isDragging","style","_extends","CSS","Transform","toString","scaleY","cursor","position","zIndex","boxShadow","_jsx","ref","TableTrHandle","dragIcon","innerProps","_objectWithoutPropertiesLoose","_excluded","rowId","setActivatorNodeRef","undefined","backgroundColor","iconElement","isValidElement","_DragOutlined","children","Children","map","child","key","cloneElement","touchAction","IconWrapper","padding","margin","justifyContent","color","icon","onClick","noop","Row","ctx","DragTable","_otherProps$component","uidFieldKey","columns","dataSource","onDragChange","disabledDrag","otherProps","_useState","useState","dataList","setDataList","useEffect","onDragEnd","_ref","active","over","activeIndex","findIndex","i","overIndex","dataListNew","arrayMove","concat","activeId","columnsList","useMemo","dataIndex","align","width","sensors","useSensors","useSensor","PointerSensor","activationConstraint","delay","tolerance","value","DndContext","modifiers","restrictToVerticalAxis","SortableContext","items","strategy","verticalListSortingStrategy","Table","pagination","rowKey","bordered","components","body","row"],"mappings":"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"}
|
package/esm/easy-table/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.fba-easy-table-filter-fixed,.fba-easy-table-full,.fba-easy-table-pagination-fixed{display:flex;flex-direction:column;height:100%}.fba-easy-table-filter-fixed .easy-table-table,.fba-easy-table-full .easy-table-table,.fba-easy-table-pagination-fixed .easy-table-table{flex:1}.fba-easy-table-filter-fixed{overflow:hidden}.fba-easy-table-filter-fixed .easy-table-table{overflow-y:auto}.fba-easy-table-wrapper{display:flex;flex-direction:column;height:100%;overflow:hidden}.fba-easy-table-wrapper .fba-easy-table{flex:1;height:unset;overflow-y:auto}.fba-easy-table-pagination{background-color
|
|
1
|
+
.fba-easy-table-filter-fixed,.fba-easy-table-full,.fba-easy-table-pagination-fixed{display:flex;flex-direction:column;height:100%}.fba-easy-table-filter-fixed .easy-table-table,.fba-easy-table-full .easy-table-table,.fba-easy-table-pagination-fixed .easy-table-table{flex:1}.fba-easy-table-filter-fixed{overflow:hidden}.fba-easy-table-filter-fixed .easy-table-table{overflow-y:auto}.fba-easy-table-wrapper{display:flex;flex-direction:column;height:100%;overflow:hidden}.fba-easy-table-wrapper .fba-easy-table{flex:1;height:unset;overflow-y:auto}.fba-easy-table-pagination{background-color:var(--block-bg-color);box-shadow:0 0 17px rgba(0,0,0,.06);padding:15px 15px 20px;position:relative;text-align:right;z-index:2}.fba-easy-table-wrapper-inline .easy-table-table{margin:0;padding:0}.fba-easy-table-wrapper-inline .easy-table-filter{margin:0;padding:0 0 15px}.easy-table-table{padding:10px 15px}.easy-table-filter{margin-bottom:10px;padding:10px 15px}.block-layout{background-color:var(--block-bg-color)}.light-theme .block-layout{color:rgba(0,0,0,.88)}.dark-theme .block-layout{color:hsla(0,0%,100%,.85)}
|
package/esm/easy-table/index.js
CHANGED
|
@@ -7,10 +7,10 @@ import './../config-provider-wrapper/index.css';
|
|
|
7
7
|
import './../fba-hooks/index.css';
|
|
8
8
|
import './../types/index.css';
|
|
9
9
|
import './../form-grid/index.css';
|
|
10
|
-
import './../
|
|
10
|
+
import './../pre-defined-class-name/index.css';
|
|
11
11
|
import './../table-scrollbar/index.css';
|
|
12
12
|
import './../table-title-tooltip/index.css';
|
|
13
13
|
import './index.css';
|
|
14
14
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
15
|
-
import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as n}from"@dimjs/lang/cjs/is-undefined";import{isArray as i}from"@dimjs/lang/cjs/is-array";import{get as r}from"@dimjs/utils/cjs/get";import{_ as a,a as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as l}from"@wove/react/cjs/hooks";import{cloneState as s}from"@dimjs/model";import{Form as u,message as c,Table as d}from"antd";import{createContext as f,forwardRef as p,useState as m,useMemo as g,useRef as v,useImperativeHandle as y,useContext as h,Children as C}from"react";import{P as S,S as b}from"../index-6677fbfc.js";import{noop as j,isUndefinedOrNull as F,getUuid as q,isMacEnv as z}from"@flatbiz/utils";import{Model as R}from"@dimjs/model-react";import{jsx as N,jsxs as x}from"react/jsx-runtime";import P from"@ant-design/icons/es/icons/DownOutlined";import w from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as k}from"react-is";import{ButtonWrapper as T}from"../button-wrapper/index.js";import{FormGrid as D}from"../form-grid/index.js";import{SimpleLayout as E}from"../simple-layout/index.js";import{fbaHooks as K}from"../fba-hooks/index.js";import{TableScrollbar as L}from"../table-scrollbar/index.js";import{TableTitleTooltip as V}from"../table-title-tooltip/index.js";import{TipsWrapper as A}from"../tips-wrapper/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"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var B=f({onRequest:j,tableList:[],getEasyTableRef:function e(){}});var O={queryCondition:{},isInit:true};var I={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=a({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=a({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var W={};var _=function e(t){if(!W[t]){W[t]=R(I)}return W[t]};var H=p((function(e,o){var d;var f=m([]),p=f[0],h=f[1];var C=m(0),b=C[0],j=C[1];var F=m(false),q=F[0],z=F[1];var R=l.useId(undefined,"easy-table-key");var P=g((function(){return e.cacheSwitch?location.pathname:R}),[R,e.cacheSwitch]);var w=_(P).useStore(),k=w[0],T=w[1];var D=e.pageSize||((d=e.initialPaginationParams)==null?void 0:d.pageSize)||10;var E=e.initRequest===undefined?true:e.initRequest;var K=m(false),L=K[0],V=K[1];var A=v();var O=v([]);var I=m(),W=I[0],H=I[1];var U=a({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var Q=u.useForm(e.form),Y=Q[0];var G=l.useCallbackRef((function(t){return new Promise((function(n,a){var o,l,u,d,f,p,m,g,v,y,C,S;var b=function(){try{return n()}catch(e){return a(e)}};var F=function(t){try{z(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void c.error(t.message)}return b()}catch(e){return a(e)}};try{z(true);return Promise.resolve(T.updateFilterCondition(t)).then((function(t){try{o=t;l=s(o.queryCondition||{});u=e.serviceConfig,d=u.requestParamsAdapter,f=u.onRequest,p=u.requestResultAdapter,m=u.dynamicColumsAdapter;g=d?d(l):l;return Promise.resolve(f(g)).then((function(t){try{v=t||{};A.current=v;e.onDataSourceChange==null?void 0:e.onDataSourceChange(v);y=v;if(p){y=p(v)}if(m){C=m(v,O.current);H(C)}S=r(y,U.list);h(i(S)?S:[]);j(r(y,U.total));z(false);return b()}catch(e){return F(e)}}),F)}catch(e){return F(e)}}),F)}catch(e){F(e)}}))}));var $=l.useCallbackRef((function(e){return new Promise((function(t,n){return Promise.resolve(T.resetFilterCondition()).then((function(i){try{Y.resetFields();if(e){void T.updateFilterCondition(e);Y.setFieldsValue(e)}return t()}catch(e){return n(e)}}),n)}))}));var J=function e(t,n){if(L){var i;return i={},i[U.pageNo]=t,i[U.pageSize]=n||D,i}else{return{}}};var M=l.useCallbackRef((function(t){return new Promise((function(n,i){var r;r=a({},J(1,k.queryCondition[U.pageSize]),e.initialValues,t);return Promise.resolve(T.resetFilterCondition(r)).then((function(e){try{Y.resetFields();if(t){Y.setFieldsValue(t)}void G(r);return n()}catch(e){return i(e)}}),i)}))}));var X=l.useCallbackRef((function(){return a({},k.queryCondition,Y.getFieldsValue())}));var Z=function t(){return{onRequest:G,clearQueryCondition:$,getRequestParams:X,onResetRequest:M,form:Y,getDataSource:function e(){return A.current},onFilterDataSource:function e(t){h(t)},onClearDataSource:function e(){j(0);h([])},onUpdateDataSource:function t(n){h(n);A.current=n;e.onDataSourceChange==null?void 0:e.onDataSourceChange(n)}}};y(o,(function(){return Z()}));var ee=function e(t){V(t)};var te=function e(t){O.current=t};var ne=function t(){var n=Y.getFieldsValue();if(e.onFormFinish){e.onFormFinish(a({},n,J(1,k.queryCondition[U.pageSize])))}else{void G(a({},n,J(1,k.queryCondition[U.pageSize])))}};var ie=n(e.isFull)?true:e.isFull;var re=t("fba-easy-table",{"fba-easy-table-full":ie,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var ae=g((function(){return a({showSizeChanger:true,current:k.queryCondition[U.pageNo]||1,pageSize:k.queryCondition[U.pageSize]||D,total:b,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[U.pageNo,U.pageSize,D,e.pagination,k.queryCondition,b]);var oe=l.useCallbackRef((function(t,n){var i,r;void G((i={},i[U.pageSize]=n,i[U.pageNo]=t,i));(r=e.pagination)==null||r.onChange==null?void 0:r.onChange(t,n)}));var le=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var se=typeof e.children==="function"?e.children(A.current):e.children;return N(B.Provider,{value:{onSetBaseColumns:te,getEasyTableRef:Z,modelKey:P,onRequest:G,tableList:p,tableTotal:b,loading:q,fieldNames:U,pageSize:D,initRequest:E,initialValues:e.initialValues||{},onSetPaginationStatus:ee,paginationStatus:L,onFormFinish:ne,form:Y,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[],dynamicColumns:W},children:e.paginationFixed?x("div",{className:le,style:e.style,children:[N("div",{className:re,children:se}),b>0&&N("div",{className:"fba-easy-table-pagination",children:N(S,a({size:"small"},ae,{onChange:oe}))})]}):N("div",{className:re,style:e.style,children:se})})}));var U=function e(i){var r=h(B);var o=i.queryButtonProps,s=i.resetButtonProps,c=i.filterOperate,d=i.formClassName,f=i.defaultResetButtonTriggerRequest,p=i.filterWrapperStyle,v=i.filterWrapperClassName,y=i.rightOperateAreaAppendType;var S=r.modelKey,b=r.foldKeys,j=r.fieldNames,F=r.onRequest,q=r.pageSize,z=r.paginationStatus,R=r.initialValues,K=r.form,L=r.onFormFinish;var V=typeof i.children==="function"?i.children(K):i.children;var A=y||"cover";var O=g((function(){if(k(V)){return C.toArray(V.props.children)}else{return C.toArray(V)}}),[V]);var I=m(false),W=I[0],H=I[1];var U=_(S).useStore(),Q=U[0],Y=U[1];var G=l.useCallbackRef((function(){return new Promise((function(e,t){var i;return Promise.resolve(Y.resetFilterCondition()).then((function(r){try{K.resetFields();if(n(f)||f){if(z){F(a((i={},i[j.pageNo]=1,i[j.pageSize]=q,i),R))}else{F(R)}}return e()}catch(e){return t(e)}}),t)}))}));var $=g((function(){var e=[!(o!=null&&o.hidden)?N(T,a({type:"primary",htmlType:"submit"},o,{children:(o==null?void 0:o.text)||"查询"}),"1"):null,!(s!=null&&s.hidden)?N(T,a({onClick:G},s,{children:(s==null?void 0:s.text)||"重置"}),"2"):null].filter(Boolean);var t=c==null?void 0:c(K);var n=t==null?void 0:t.rightList;var i=(t==null?void 0:t.leftList)||[];var r=e;if(n){if(A==="afterAppend"){r=[].concat(e,n)}else if(A==="beforeAppend"){r=[].concat(n,e)}else{r=n}}if(b.length>0){var l=N(T,{type:"link",style:{padding:"0"},onClick:function e(){H(!W)},children:W?x("span",{children:["收起",N(w,{style:{marginLeft:3,fontSize:12}})]}):x("span",{children:["展开",N(P,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(r.length>0||i.length===0){r.push(l)}else if((i==null?void 0:i.length)>0){i.push(l)}}return O.map((function(e,t){if(!W&&b.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return N(D.Col,{children:e},t)})).filter(Boolean).concat(N(D.OperateCol,a({},t,{leftList:i,rightList:r}),999))}),[O,c,b,K,G,W,o,s,A]);return N(E,{className:t("easy-table-filter",v),style:p,children:N(u,{form:K,autoComplete:"off",onFinish:L,initialValues:a({},R,Q.queryCondition),className:d,style:i.formStyle,children:i.isPure?V:N(D.Row,{gutter:[15,0],gridSize:i.formGridSize,children:$})})})};var Q=function e(){var t=h(B);return t.getEasyTableRef()};var Y=function e(){var t=h(B);return{current:t.getEasyTableRef()}};var G=["children","rowKey","pagination"],$=["tooltip","tipsWrapperProps","title"];var J=function e(n){var i=h(B);var r=n.children,l=n.rowKey,s=n.pagination,u=o(n,G);var c=i.modelKey,f=i.fieldNames,p=i.onRequest,m=i.tableList,v=i.initRequest,y=i.pageSize,C=i.tableTotal,S=i.loading,j=i.initialValues,R=i.paginationFixed,P=i.onSetPaginationStatus,w=i.dynamicColumns;var k=_(c).useStore(),T=k[0],D=k[1];K.useEffectCustom((function(){i.onSetBaseColumns(n.columns||[])}),[n.columns]);var O=g((function(){if(R||s===false)return false;return a({showSizeChanger:true,current:T.queryCondition[f.pageNo]||1,pageSize:T.queryCondition[f.pageSize]||y,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},n.pagination,{selectComponentClass:b})}),[f.pageNo,f.pageSize,y,s,R,n.pagination,T.queryCondition,C]);var I=function e(t,i,r,a){if(a.action==="paginate"&&O){var o;p((o={},o[f.pageSize]=t.pageSize,o[f.pageNo]=t.current,o))}else{n.onChange==null?void 0:n.onChange(t,i,r,a)}};var W=g((function(){if(m.length===0){return[]}if(typeof l==="string"&&F(m[0][l])){return m.map((function(e){e[l]=q();return e}))}return m}),[m,l]);K.useEffectCustom((function(){var e=R||O!==false;P(e);if(v!==false||!T.isInit){if(e){var t;void p(a((t={},t[f.pageNo]=1,t[f.pageSize]=y,t),j,T.queryCondition))}else{void p(j)}}else{void D.updateFilterCondition(j)}void D.updateInitStatus()}),[]);var H=g((function(){var e=w?w:n.columns;return e.map((function(e){var t=e.tooltip,n=e.tipsWrapperProps,i=e.title,r=o(e,$);if(typeof i==="string"&&n){if(typeof n==="string"){return a({},r,{title:N(A,{tipType:"popover",popoverProps:{content:n},children:i})})}return a({},r,{title:N(A,a({},n,{children:i}))})}if(typeof i==="string"&&!!t){return a({},r,{title:N(V,{tooltip:t,title:i})})}return e}))}),[w,n.columns]);return x(E,{className:t("easy-table-table",n.tableWrapperClassName),style:n.tableWrapperStyle,children:[r,z()?N(d,a({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:H,pagination:O,rowKey:l,onChange:I,loading:S,dataSource:W})):N(L,{children:N(d,a({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:H,pagination:O,rowKey:l,onChange:I,loading:S,dataSource:W}))})]})};var M=e.attachPropertiesToComponent(H,{Filter:U,Table:J,useEasyTablRef:Y,useEasyTable:Q});export{M as EasyTable};
|
|
15
|
+
import{fbaUtils as e}from"../fba-utils/index.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isUndefined as n}from"@dimjs/lang/cjs/is-undefined";import{isArray as r}from"@dimjs/lang/cjs/is-array";import{get as i}from"@dimjs/utils/cjs/get";import{_ as a,a as o}from"../_rollupPluginBabelHelpers-a0769acd.js";import{hooks as l}from"@wove/react/cjs/hooks";import{cloneState as s}from"@dimjs/model";import{Form as u,message as c,Table as f}from"antd";import{createContext as d,forwardRef as p,useState as m,useMemo as g,useRef as v,useImperativeHandle as y,useContext as h,Children as C}from"react";import{P as S,S as b}from"../index-6677fbfc.js";import{noop as j,isUndefinedOrNull as F,getUuid as q,isMacEnv as z}from"@flatbiz/utils";import{Model as R}from"@dimjs/model-react";import{jsx as N,jsxs as x}from"react/jsx-runtime";import P from"@ant-design/icons/es/icons/DownOutlined";import w from"@ant-design/icons/es/icons/UpOutlined";import{isFragment as k}from"react-is";import{B as T}from"../index-1f45bfd5.js";import{ButtonWrapper as D}from"../button-wrapper/index.js";import{FormGrid as E}from"../form-grid/index.js";import{preDefinedClassName as K}from"../pre-defined-class-name/index.js";import{fbaHooks as L}from"../fba-hooks/index.js";import{TableScrollbar as V}from"../table-scrollbar/index.js";import{TableTitleTooltip as A}from"../table-title-tooltip/index.js";import{TipsWrapper as B}from"../tips-wrapper/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"ahooks";import"@ant-design/icons/es/icons/QuestionCircleOutlined";var I=d({onRequest:j,tableList:[],getEasyTableRef:function e(){}});var O={queryCondition:{},isInit:true};var _={actions:{updateFilterCondition:function e(t){return function(e){e.queryCondition=a({},e.queryCondition,t)}},resetFilterCondition:function e(t){return function(e){e.queryCondition=a({},O.queryCondition,t)}},updateInitStatus:function e(){return function(e){e.isInit=false}}},state:O};var W={};var H=function e(t){if(!W[t]){W[t]=R(_)}return W[t]};var U=p((function(e,o){var f;var d=m([]),p=d[0],h=d[1];var C=m(0),b=C[0],j=C[1];var F=m(false),q=F[0],z=F[1];var R=l.useId(undefined,"easy-table-key");var P=g((function(){return e.cacheSwitch?location.pathname:R}),[R,e.cacheSwitch]);var w=H(P).useStore(),k=w[0],T=w[1];var D=e.pageSize||((f=e.initialPaginationParams)==null?void 0:f.pageSize)||10;var E=e.initRequest===undefined?true:e.initRequest;var K=m(false),L=K[0],V=K[1];var A=v();var B=v([]);var O=m(),_=O[0],W=O[1];var U=a({list:"list",total:"total",pageNo:"pageNo",pageSize:"pageSize"},e.fieldNames);var G=u.useForm(e.form),Q=G[0];var Y=l.useCallbackRef((function(t){return new Promise((function(n,a){var o,l,u,f,d,p,m,g,v,y,C,S;var b=function(){try{return n()}catch(e){return a(e)}};var F=function(t){try{z(false);if(e.onRequestErrorHandle){e.onRequestErrorHandle(t)}else{void c.error(t.message)}return b()}catch(e){return a(e)}};try{z(true);return Promise.resolve(T.updateFilterCondition(t)).then((function(t){try{o=t;l=s(o.queryCondition||{});u=e.serviceConfig,f=u.requestParamsAdapter,d=u.onRequest,p=u.requestResultAdapter,m=u.dynamicColumsAdapter;g=f?f(l):l;return Promise.resolve(d(g)).then((function(t){try{v=t||{};A.current=v;e.onDataSourceChange==null?void 0:e.onDataSourceChange(v);y=v;if(p){y=p(v)}if(m){C=m(v,B.current);W(C)}S=i(y,U.list);h(r(S)?S:[]);j(i(y,U.total));z(false);return b()}catch(e){return F(e)}}),F)}catch(e){return F(e)}}),F)}catch(e){F(e)}}))}));var $=l.useCallbackRef((function(e){return new Promise((function(t,n){return Promise.resolve(T.resetFilterCondition()).then((function(r){try{Q.resetFields();if(e){void T.updateFilterCondition(e);Q.setFieldsValue(e)}return t()}catch(e){return n(e)}}),n)}))}));var J=function e(t,n){if(L){var r;return r={},r[U.pageNo]=t,r[U.pageSize]=n||D,r}else{return{}}};var M=l.useCallbackRef((function(t){return new Promise((function(n,r){var i;i=a({},J(1,k.queryCondition[U.pageSize]),e.initialValues,t);return Promise.resolve(T.resetFilterCondition(i)).then((function(e){try{Q.resetFields();if(t){Q.setFieldsValue(t)}void Y(i);return n()}catch(e){return r(e)}}),r)}))}));var X=l.useCallbackRef((function(){return a({},k.queryCondition,Q.getFieldsValue())}));var Z=function t(){return{onRequest:Y,clearQueryCondition:$,getRequestParams:X,onResetRequest:M,form:Q,getDataSource:function e(){return A.current},onFilterDataSource:function e(t){h(t)},onClearDataSource:function e(){j(0);h([])},onUpdateDataSource:function t(n){h(n);A.current=n;e.onDataSourceChange==null?void 0:e.onDataSourceChange(n)}}};y(o,(function(){return Z()}));var ee=function e(t){V(t)};var te=function e(t){B.current=t};var ne=function t(){var n=Q.getFieldsValue();if(e.onFormFinish){e.onFormFinish(a({},n,J(1,k.queryCondition[U.pageSize])))}else{void Y(a({},n,J(1,k.queryCondition[U.pageSize])))}};var re=n(e.isFull)?true:e.isFull;var ie=t("fba-easy-table",{"fba-easy-table-full":re,"fba-easy-table-filter-fixed":e.filterFixed,"fba-easy-table-pagination-fixed":e.paginationFixed},e.className);var ae=g((function(){return a({showSizeChanger:true,current:k.queryCondition[U.pageNo]||1,pageSize:k.queryCondition[U.pageSize]||D,total:b,showTotal:function e(t){return"共 "+t+" 条记录"}},e.pagination)}),[U.pageNo,U.pageSize,D,e.pagination,k.queryCondition,b]);var oe=l.useCallbackRef((function(t,n){var r,i;void Y((r={},r[U.pageSize]=n,r[U.pageNo]=t,r));(i=e.pagination)==null||i.onChange==null?void 0:i.onChange(t,n)}));var le=t("fba-easy-table-wrapper",{"fba-easy-table-wrapper-inline":e.isInline},e.className);var se=typeof e.children==="function"?e.children(A.current):e.children;return N(I.Provider,{value:{onSetBaseColumns:te,getEasyTableRef:Z,modelKey:P,onRequest:Y,tableList:p,tableTotal:b,loading:q,fieldNames:U,pageSize:D,initRequest:E,initialValues:e.initialValues||{},onSetPaginationStatus:ee,paginationStatus:L,onFormFinish:ne,form:Q,paginationFixed:e.paginationFixed||false,foldKeys:e.foldKeys||[],dynamicColumns:_},children:e.paginationFixed?x("div",{className:le,style:e.style,children:[N("div",{className:ie,children:se}),b>0&&N("div",{className:"fba-easy-table-pagination",children:N(S,a({size:"small"},ae,{onChange:oe}))})]}):N("div",{className:le,style:e.style,children:se})})}));var G=function e(r){var i=h(I);var o=r.queryButtonProps,s=r.resetButtonProps,c=r.filterOperate,f=r.formClassName,d=r.defaultResetButtonTriggerRequest,p=r.filterWrapperStyle,v=r.filterWrapperClassName,y=r.rightOperateAreaAppendType;var S=i.modelKey,b=i.foldKeys,j=i.fieldNames,F=i.onRequest,q=i.pageSize,z=i.paginationStatus,R=i.initialValues,L=i.form,V=i.onFormFinish;var A=typeof r.children==="function"?r.children(L):r.children;var B=y||"cover";var O=g((function(){if(k(A)){return C.toArray(A.props.children)}else{return C.toArray(A)}}),[A]);var _=m(false),W=_[0],U=_[1];var G=H(S).useStore(),Q=G[0],Y=G[1];var $=l.useCallbackRef((function(){return new Promise((function(e,t){var r;return Promise.resolve(Y.resetFilterCondition()).then((function(i){try{L.resetFields();if(n(d)||d){if(z){F(a((r={},r[j.pageNo]=1,r[j.pageSize]=q,r),R))}else{F(R)}}return e()}catch(e){return t(e)}}),t)}))}));var J=g((function(){var e=[!(o!=null&&o.hidden)?N(D,a({type:"primary",htmlType:"submit"},o,{children:(o==null?void 0:o.text)||"查询"}),"1"):null,!(s!=null&&s.hidden)?N(D,a({onClick:$},s,{children:(s==null?void 0:s.text)||"重置"}),"2"):null].filter(Boolean);var t=c==null?void 0:c(L);var n=t==null?void 0:t.rightList;var r=(t==null?void 0:t.leftList)||[];var i=e;if(n){if(B==="afterAppend"){i=[].concat(e,n)}else if(B==="beforeAppend"){i=[].concat(n,e)}else{i=n}}if(b.length>0){var l=N(D,{type:"link",style:{padding:"0"},onClick:function e(){U(!W)},children:W?x("span",{children:["收起",N(w,{style:{marginLeft:3,fontSize:12}})]}):x("span",{children:["展开",N(P,{style:{marginLeft:3,fontSize:12}})]})},"fold-trigger");if(i.length>0||r.length===0){i.push(l)}else if((r==null?void 0:r.length)>0){r.push(l)}}return O.map((function(e,t){if(!W&&b.find((function(t){return".$"+t===e.key})))return null;if(e.props["hidden"])return null;if(e.type["domTypeName"]==="FormCol")return e;return N(E.Col,{children:e},t)})).filter(Boolean).concat(N(E.OperateCol,a({},t,{leftList:r,rightList:i}),999))}),[O,c,b,L,$,W,o,s,B]);return N(T,{className:t("easy-table-filter",v),style:p,children:N(u,{form:L,autoComplete:"off",onFinish:V,initialValues:a({},R,Q.queryCondition),className:t(f,K.form.label_width_80,K.form.formItemGap8,K.form.label_align_right),style:r.formStyle,children:r.isPure?A:N(E.Row,{gutter:[15,0],gridSize:r.formGridSize,children:J})})})};var Q=function e(){var t=h(I);return t.getEasyTableRef()};var Y=function e(){var t=h(I);return{current:t.getEasyTableRef()}};var $=["children","rowKey","pagination"],J=["tooltip","tipsWrapperProps","title"];var M=function e(n){var r=h(I);var i=n.children,l=n.rowKey,s=n.pagination,u=o(n,$);var c=r.modelKey,d=r.fieldNames,p=r.onRequest,m=r.tableList,v=r.initRequest,y=r.pageSize,C=r.tableTotal,S=r.loading,j=r.initialValues,R=r.paginationFixed,P=r.onSetPaginationStatus,w=r.dynamicColumns;var k=H(c).useStore(),D=k[0],E=k[1];L.useEffectCustom((function(){r.onSetBaseColumns(n.columns||[])}),[n.columns]);var K=g((function(){if(R||s===false)return false;return a({showSizeChanger:true,current:D.queryCondition[d.pageNo]||1,pageSize:D.queryCondition[d.pageSize]||y,total:C,showTotal:function e(t){return"共 "+t+" 条记录"}},n.pagination,{selectComponentClass:b})}),[d.pageNo,d.pageSize,y,s,R,n.pagination,D.queryCondition,C]);var O=function e(t,r,i,a){if(a.action==="paginate"&&K){var o;p((o={},o[d.pageSize]=t.pageSize,o[d.pageNo]=t.current,o))}else{n.onChange==null?void 0:n.onChange(t,r,i,a)}};var _=g((function(){if(m.length===0){return[]}if(typeof l==="string"&&F(m[0][l])){return m.map((function(e){e[l]=q();return e}))}return m}),[m,l]);L.useEffectCustom((function(){var e=R||K!==false;P(e);if(v!==false||!D.isInit){if(e){var t;void p(a((t={},t[d.pageNo]=1,t[d.pageSize]=y,t),j,D.queryCondition))}else{void p(j)}}else{void E.updateFilterCondition(j)}void E.updateInitStatus()}),[]);var W=g((function(){var e=w?w:n.columns;return e.map((function(e){var t=e.tooltip,n=e.tipsWrapperProps,r=e.title,i=o(e,J);if(typeof r==="string"&&n){if(typeof n==="string"){return a({},i,{title:N(B,{tipType:"popover",popoverProps:{content:n},children:r})})}return a({},i,{title:N(B,a({},n,{children:r}))})}if(typeof r==="string"&&!!t){return a({},i,{title:N(A,{tooltip:t,title:r})})}return e}))}),[w,n.columns]);return x(T,{className:t("easy-table-table",n.tableWrapperClassName),style:n.tableWrapperStyle,children:[i,z()?N(f,a({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:W,pagination:K,rowKey:l,onChange:O,loading:S,dataSource:_})):N(V,{children:N(f,a({size:"small",scroll:{x:"max-content"},bordered:true},u,{columns:W,pagination:K,rowKey:l,onChange:O,loading:S,dataSource:_}))})]})};var X=e.attachPropertiesToComponent(U,{Filter:G,Table:M,useEasyTablRef:Y,useEasyTable:Q});export{X as EasyTable};
|
|
16
16
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\n// export const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n// modelKey: string;\n// onRequest: (params?: TPlainObject) => void;\n// tableList: TPlainObject[];\n// tableTotal: number;\n// loading?: boolean;\n// fieldNames: TPlainObject;\n// pageSize: number;\n// initRequest: boolean;\n// initialValues: TPlainObject;\n// onSetPaginationStatus: (status: boolean) => void;\n// paginationStatus: boolean;\n// onFormFinish?: (values?: TPlainObject) => void;\n// form: FormInstance;\n// getEasyTableRef: () => EasyTableRefApi;\n// paginationFixed: boolean;\n// foldKeys: string[];\n// }>();\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n dynamicColumns?: TEasyTableTableColumn<TPlainObject>[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * 例如:\n * fieldNames={{\n * list: 'aList',\n * total: 'aTotal',\n * }}\n * serviceConfig={{\n * url: '/v1/board/list',\n * requestResultAdapter: (respData) => {\n * return {\n * aList: respData.data.rows,\n * aTotal: respData.page.total,\n * };\n * },\n * }}\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n /**\n * 动态列自定义渲染\n * ```\n * 1. respData: 接口返回数据\n * 2. columns: Table columns配置项\n * ```\n *\n */\n dynamicColumsAdapter?: (\n respData?: TAny,\n columns?: TEasyTableTableColumn<TPlainObject>[],\n ) => TEasyTableTableColumn<TPlainObject>[] | undefined;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /**\n * 字段映射,默认值:{ list:'list', total:'total', pageNo:'pageNo', pageSize:'pageSize' }\n * ```\n * 1. list、total用于解析接口响应数据,可以配置多级,例如:{ list: 'data.rows', total: 'page.total' }\n * 2. pageNo、pageSize用于接口分页入参Key定义,只能一级,例如:pageNo: 'page'\n * ```\n */\n fieldNames?: { list?: string; total?: string; pageNo?: string; pageSize?: string };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * 2. 取消内边距\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n 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 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 const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n const onSetBaseColumns = (base) => {\n baseColumnsRef.current = base;\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({ ...values, ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]) });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({ [fieldNames.pageSize]: pageSize, [fieldNames.pageNo]: page });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n dynamicColumns,\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={className} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { SimpleLayout } from '../simple-layout';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n};\n\n/**\n * 过滤条件\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !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\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </SimpleLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, ReactElement, useContext, useMemo } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { SimpleLayout } from '../simple-layout';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { 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/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n dynamicColumns,\n } = ctx;\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n fbaHooks.useEffectCustom(() => {\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, [props.columns]);\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({ [fieldNames.pageSize]: pagination.pageSize, [fieldNames.pageNo]: pagination.current });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n const columns = dynamicColumns ? dynamicColumns : props.columns;\n\n return columns.map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n });\n }, [dynamicColumns, props.columns]);\n\n return (\n <SimpleLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </SimpleLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","baseColumnsRef","_useState5","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","resolve","then","$await_2","cloneState","serviceConfig","$await_3","respData","current","onDataSourceChange","_get","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","Provider","value","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","defaultRightList","hidden","ButtonWrapper","type","htmlType","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","OperateCol","SimpleLayout","autoComplete","onFinish","formStyle","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","fbaHooks","useEffectCustom","columns","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","hasPagination","tooltip","tipsWrapperProps","title","_excluded2","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\n// export const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n// modelKey: string;\n// onRequest: (params?: TPlainObject) => void;\n// tableList: TPlainObject[];\n// tableTotal: number;\n// loading?: boolean;\n// fieldNames: TPlainObject;\n// pageSize: number;\n// initRequest: boolean;\n// initialValues: TPlainObject;\n// onSetPaginationStatus: (status: boolean) => void;\n// paginationStatus: boolean;\n// onFormFinish?: (values?: TPlainObject) => void;\n// form: FormInstance;\n// getEasyTableRef: () => EasyTableRefApi;\n// paginationFixed: boolean;\n// foldKeys: string[];\n// }>();\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableList: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n dynamicColumns?: TEasyTableTableColumn<TPlainObject>[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * @param params\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * 例如:\n * fieldNames={{\n * list: 'aList',\n * total: 'aTotal',\n * }}\n * serviceConfig={{\n * url: '/v1/board/list',\n * requestResultAdapter: (respData) => {\n * return {\n * aList: respData.data.rows,\n * aTotal: respData.page.total,\n * };\n * },\n * }}\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n /**\n * 动态列自定义渲染\n * ```\n * 1. respData: 接口返回数据\n * 2. columns: Table columns配置项\n * ```\n *\n */\n dynamicColumsAdapter?: (\n respData?: TAny,\n columns?: TEasyTableTableColumn<TPlainObject>[],\n ) => TEasyTableTableColumn<TPlainObject>[] | undefined;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /**\n * 字段映射,默认值:{ list:'list', total:'total', pageNo:'pageNo', pageSize:'pageSize' }\n * ```\n * 1. list、total用于解析接口响应数据,可以配置多级,例如:{ list: 'data.rows', total: 'page.total' }\n * 2. pageNo、pageSize用于接口分页入参Key定义,只能一级,例如:pageNo: 'page'\n * ```\n */\n fieldNames?: {\n list?: string;\n total?: string;\n pageNo?: string;\n pageSize?: string;\n };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /**\n * 自定义处理服务异常\n * @param error\n * @returns\n */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * 2. 取消内边距\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>([]);\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n 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 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 const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n 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 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 wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableList: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n dynamicColumns,\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={wrapperClassName} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 SimpleLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n};\n\n/**\n * 过滤条件\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,可在右侧按钮区域新增自定义按钮\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !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\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n return (\n <BlockLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={classNames(\n formClassName,\n preDefinedClassName.form.label_width_80,\n preDefinedClassName.form.formItemGap8,\n preDefinedClassName.form.label_align_right,\n )}\n style={props.formStyle}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </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 *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, 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 { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\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/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableList,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n dynamicColumns,\n } = ctx;\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n fbaHooks.useEffectCustom(() => {\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, [props.columns]);\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 (tableList.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableList[0][rowKey])) {\n return tableList.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableList;\n }, [tableList, rowKey]);\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n const columns = dynamicColumns ? dynamicColumns : props.columns;\n\n return columns.map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n });\n }, [dynamicColumns, props.columns]);\n\n return (\n <BlockLayout\n className={classNames('easy-table-table', props.tableWrapperClassName)}\n style={props.tableWrapperStyle}\n >\n {children}\n {isMacEnv() ? (\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n ) : (\n <TableScrollbar>\n <Table\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n )}\n </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 * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","baseColumnsRef","_useState5","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","resolve","then","$await_2","cloneState","serviceConfig","$await_3","respData","current","onDataSourceChange","_get","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","Provider","value","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","defaultRightList","hidden","ButtonWrapper","type","htmlType","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","OperateCol","BlockLayout","autoComplete","onFinish","preDefinedClassName","label_width_80","formItemGap8","label_align_right","formStyle","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","rowKey","otherProps","_objectWithoutPropertiesLoose","_excluded","fbaHooks","useEffectCustom","columns","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","hasPagination","tooltip","tipsWrapperProps","title","_excluded2","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","tableWrapperClassName","tableWrapperStyle","isMacEnv","Table","scroll","x","bordered","TableScrollbar","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
package/esm/fba-app/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.fba-dialog-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px}.fba-dialog-modal .ant-modal-content{padding:20px 0}.fba-dialog-modal .ant-modal-footer,.fba-dialog-modal .ant-modal-header{padding:0 24px}.fba-dialog-modal .ant-modal-footer{margin:0}.fba-dialog-modal-title-extra .ant-modal-close{right:5px;top:5px}.fba-dialog-modal.fba-dialog-confirm .ant-modal-header{margin:0}.fba-dialog-modal.fba-dialog-confirm .ant-modal-body{
|
|
1
|
+
.fba-dialog-modal .ant-modal-body{overflow-x:hidden;overflow-y:auto;padding:10px 24px 20px}.fba-dialog-modal .ant-modal-content{padding:20px 0}.fba-dialog-modal .ant-modal-footer,.fba-dialog-modal .ant-modal-header{padding:0 24px}.fba-dialog-modal .ant-modal-footer{margin:0}.fba-dialog-modal-title-extra .ant-modal-close{right:5px;top:5px}.fba-dialog-modal.fba-dialog-confirm .ant-modal-header{margin:0}.fba-dialog-modal.fba-dialog-confirm .ant-modal-body{font-size:14px;font-weight:400}.fba-dialog-modal.fba-dialog-confirm .ant-modal-footer>button:nth-child(2){margin-left:15px}.light-theme .app-dialog-drawer .ant-drawer-body{color:rgba(0,0,0,.88)}.dark-theme .app-dialog-drawer .ant-drawer-body{color:hsla(0,0%,100%,.85)}.block-layout{background-color:var(--block-bg-color)}.light-theme .block-layout{color:rgba(0,0,0,.88)}.dark-theme .block-layout{color:hsla(0,0%,100%,.85)}.fba-dialog-loading .ant-modal-content{background-color:transparent!important;box-shadow:none!important;padding:0!important}.fba-dialog-loading .ant-modal-body{text-align:center!important}.fba-dialog-loading-content{background-color:var(--bg-color);border-radius:8px;display:inline-block;padding:20px 30px;text-align:center}.fba-dialog-loading-content .loader-inner{animation:dialog-spinner .6s linear infinite;border:2px solid rgba(0,128,227,.08);border-left:2px solid var(--fba-loading-color);border-radius:50%;height:30px;margin:0 auto;text-indent:-12345px;width:30px;z-index:100001}.fba-dialog-loading-content .loader-text{font-size:12px;font-size:16px;font-weight:500;letter-spacing:2px;margin-top:15px;text-align:left}@keyframes dialog-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
|
package/esm/fba-app/index.js
CHANGED
|
@@ -7,5 +7,5 @@ import './../types/index.css';
|
|
|
7
7
|
import './../flex-layout/index.css';
|
|
8
8
|
import './index.css';
|
|
9
9
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
10
|
-
import{fbaUtils as o}from"../fba-utils/index.js";import{hooks as e}from"@wove/react/cjs/hooks";import{a as n,_ as l}from"../_rollupPluginBabelHelpers-a0769acd.js";import{getUuid as a}from"@flatbiz/utils";import{createContext as r,useMemo as i,useContext as t,useState as s,createElement as u}from"react";import{classNames as d}from"@dimjs/utils/cjs/class-names";import{isPromise as c}from"@dimjs/lang/cjs/is-promise";import{useSize as f}from"ahooks";import{Form as p,Modal as v,Space as m,Drawer as C,theme as g}from"antd";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{FlexLayout as h}from"../flex-layout/index.js";import{g as b}from"../index-7f4ad045.js";import{jsx as y,jsxs as x}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"@ant-design/icons/es/icons/LoadingOutlined";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.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";var
|
|
10
|
+
import{fbaUtils as o}from"../fba-utils/index.js";import{hooks as e}from"@wove/react/cjs/hooks";import{a as n,_ as l}from"../_rollupPluginBabelHelpers-a0769acd.js";import{getUuid as a}from"@flatbiz/utils";import{createContext as r,useMemo as i,useContext as t,useState as s,createElement as u}from"react";import{classNames as d}from"@dimjs/utils/cjs/class-names";import{isPromise as c}from"@dimjs/lang/cjs/is-promise";import{useSize as f}from"ahooks";import{Form as p,Modal as v,Space as m,Drawer as C,theme as g}from"antd";import{ButtonWrapper as k}from"../button-wrapper/index.js";import{FlexLayout as h}from"../flex-layout/index.js";import{g as b}from"../index-7f4ad045.js";import{jsx as y,jsxs as x}from"react/jsx-runtime";import{B as D}from"../index-1f45bfd5.js";import"@dimjs/lang/cjs/is-array";import"@ant-design/icons/es/icons/LoadingOutlined";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.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";var O=r({});var j=["titleExtra","title","onOk","onCancel","okButtonProps","cancelButtonProps","content","className","okHidden","cancelHidden","footer","cancelText","okText","bodyHeightPercent"];var w=function o(a){var r,t;var s=a.titleExtra,u=a.title,m=a.onOk,C=a.onCancel,g=a.okButtonProps,D=a.cancelButtonProps,O=a.content,w=a.className,R=a.okHidden,P=a.cancelHidden,T=a.footer,M=a.cancelText,N=a.okText,H=a.bodyHeightPercent,B=n(a,j);var L=p.useForm(),A=L[0];var E=f(document.querySelector("html"));var F=b();var z=e.useCallbackRef((function(){a.onClose==null?void 0:a.onClose()}));var _=e.useCallbackRef((function(o){if(C){var e=C(A,o);if(e&&c(e)){return e.then(z)}}z();return Promise.resolve()}));var S=e.useCallbackRef((function(o){if(m){var e=m(A,o);if(e&&c(e)){return e.then(z)}}z();return Promise.resolve()}));var W=[y(k,l({},D,{onClick:_,hidden:P,children:M||((r=F.FbaDialogModal)==null?void 0:r.cancelText)}),"0"),y(k,l({type:"primary"},g,{onClick:S,hidden:R,children:N||"提交"}),"1")];var Y=T||W;var q=i((function(){if(!(E!=null&&E.height)||!H){return"auto"}return(E==null?void 0:E.height)*(H/100)}),[H,E==null?void 0:E.height]);return y(v,l({maskClosable:true,title:s?x(h,{direction:"horizontal",fullIndex:0,children:[y("span",{children:u}),s]}):u,centered:true,onCancel:z,destroyOnClose:true},B,{styles:{body:l({height:q,maxHeight:E!=null&&E.height?(E==null?void 0:E.height)*.8:"calc(100vh - 200px)"},(t=B.styles)==null?void 0:t.body)},className:d("fba-dialog-modal",{"fba-dialog-modal-title-extra":!!s},w),open:a.open,footer:Y,children:typeof O==="function"?O(A,{onClose:z}):O}))};var R=function o(e){var n=d("fba-dialog-confirm",e.className);return y(w,l({okText:"确定",width:350,cancelText:"取消",maskClosable:true},e,{className:n}))};var P=function o(e){return y(R,l({okText:"确定",cancelHidden:true,maskClosable:false},e,{onOk:function o(n,l){return e.onClick==null?void 0:e.onClick(l)}}))};var T=["onOk","onCancel","content","okText","cancelText","okButtonExtraProps","cancelButtonExtraProps","operatePosition","operateRender","width","okHidden","cancelHidden","extra"];var M=function o(a){var r=a.onOk,i=a.onCancel,t=a.content,s=a.okText,u=a.cancelText,f=a.okButtonExtraProps,v=a.cancelButtonExtraProps,g=a.operatePosition,h=g===void 0?"footer":g,b=a.operateRender,D=a.width,O=D===void 0?600:D,j=a.okHidden,w=a.cancelHidden,R=a.extra,P=n(a,T);var M=p.useForm(),N=M[0];var H=e.useCallbackRef((function(o){a.onClose==null?void 0:a.onClose(o)}));var B=e.useCallbackRef((function(o){if(i){var e=i(N,o);if(e&&c(e)){return e.then(H)}}H(o);return Promise.resolve()}));var L=e.useCallbackRef((function(o){if(r){var e=r(N,o);if(e&&c(e)){return e.then(H)}}H(o);return Promise.resolve()}));var A=x(m,{children:[w||v!=null&&v.hidden?null:y(k,l({},v,{onClick:B,children:u||"取消"})),j||f!=null&&f.hidden?null:y(k,l({type:"primary"},f,{onClick:L,children:s||"提交"}))]});var E=function o(){if(b){return b(N)}if(!j||!w){return A}return null};var F=typeof R==="function"?R(N):R;return y(C,l({maskClosable:true,destroyOnClose:true,width:"80%",contentWrapperStyle:{maxWidth:O},footer:h==="footer"?E():null},P,{className:d("app-dialog-drawer",P.className),extra:h==="header"?E():F,open:a.open,onClose:H,children:typeof t==="function"?t(N,{onClose:H}):t}))};var N=function o(e){var n=e.className,l=e.message,a=e.mask;var r=g.useToken(),i=r.token;var t=i.colorPrimary;return y(v,{maskClosable:false,centered:true,destroyOnClose:true,className:d("fba-dialog-loading",n),open:e.open,footer:null,closable:false,style:{"--fba-loading-color":t},mask:a,children:y(D,{className:d("fba-dialog-loading-content"),children:x("div",{className:"loader-wrapper",children:[y("div",{className:"loader-inner"}),y("div",{className:"loader-text",children:l||"处理中"})]})})})};var H=function o(){var e=t(O);var n=function o(){e.dialogDrawerClose==null?void 0:e.dialogDrawerClose()};return{appDialogDrawer:{open:function o(a){e.dialogDrawerOpen==null?void 0:e.dialogDrawerOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var B=function o(){var e=t(O);var n=function o(){e.dialogDrawerClose2==null?void 0:e.dialogDrawerClose2()};return{appDialogDrawer2:{open:function o(a){e.dialogDrawerOpen2==null?void 0:e.dialogDrawerOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var L=function o(){var e=t(O);var n=function o(){e.dialogModalClose==null?void 0:e.dialogModalClose()};return{appDialogModal:{open:function o(a){e.dialogModalOpen==null?void 0:e.dialogModalOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var A=function o(){var e=t(O);var n=function o(){e.dialogModalClose2==null?void 0:e.dialogModalClose2()};return{appDialogModal2:{open:function o(a){e.dialogModalOpen2==null?void 0:e.dialogModalOpen2(l({},a,{open:true}));return{onClose:n}},close:n}}};var E=function o(){var e=t(O);var n=function o(){e.dialogAlertClose==null?void 0:e.dialogAlertClose()};return{appDialogAlert:{open:function o(a){e.dialogAlertOpen==null?void 0:e.dialogAlertOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var F=function o(){var e=t(O);var n=function o(){e.dialogConfirmClose==null?void 0:e.dialogConfirmClose()};return{appDialogConfirm:{open:function o(a){e.dialogConfirmOpen==null?void 0:e.dialogConfirmOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var z=function o(){var e=t(O);var n=function o(){e.dialogLoadingClose==null?void 0:e.dialogLoadingClose()};return{appDialogLoading:{open:function o(a){e.dialogLoadingOpen==null?void 0:e.dialogLoadingOpen(l({},a,{open:true}));return{onClose:n}},close:n}}};var _=function o(n){var r=s({}),i=r[0],t=r[1];var d=s(a()),c=d[0],f=d[1];var p=s({}),v=p[0],m=p[1];var C=s(a()),g=C[0],k=C[1];var h=s({}),b=h[0],y=h[1];var D=s(a()),j=D[0],T=D[1];var H=s({}),B=H[0],L=H[1];var A=s(a()),E=A[0],F=A[1];var z=s({}),_=z[0],S=z[1];var W=s({}),Y=W[0],q=W[1];var I=s(),U=I[0],G=I[1];var J=s(a()),K=J[0],Q=J[1];var V=s(a()),X=V[0],Z=V[1];var $=s(a()),oo=$[0],eo=$[1];var no=e.useCallbackRef((function(o){t(o)}));var lo=e.useCallbackRef((function(o){t(l({},i,{open:false}));i.onClose==null?void 0:i.onClose(o);setTimeout((function(){f(a())}),200)}));var ao=e.useCallbackRef((function(o){m(o)}));var ro=e.useCallbackRef((function(o){m(l({},v,{open:false}));v.onClose==null?void 0:v.onClose(o);setTimeout((function(){k(a())}),200)}));var io=e.useCallbackRef((function(o){y(o)}));var to=e.useCallbackRef((function(){y(l({},b,{open:false}));b.onClose==null?void 0:b.onClose();setTimeout((function(){T(a())}),200)}));var so=e.useCallbackRef((function(o){L(o)}));var uo=e.useCallbackRef((function(){L(l({},B,{open:false}));B.onClose==null?void 0:B.onClose();setTimeout((function(){F(a())}),200)}));var co=e.useCallbackRef((function(o){S(o)}));var fo=e.useCallbackRef((function(){S(l({},_,{open:false}));_.onClose==null?void 0:_.onClose();setTimeout((function(){Q(a())}),200)}));var po=e.useCallbackRef((function(o){q(o)}));var vo=e.useCallbackRef((function(){q(l({},Y,{open:false}));Y.onClose==null?void 0:Y.onClose();setTimeout((function(){Z(a())}),200)}));var mo=e.useCallbackRef((function(o){G(o)}));var Co=e.useCallbackRef((function(){G(l({},U,{open:false}));setTimeout((function(){eo(a())}),200)}));return x(O.Provider,{value:{dialogDrawerOpen:no,dialogDrawerClose:lo,dialogDrawerOpen2:ao,dialogDrawerClose2:ro,dialogModalOpen:io,dialogModalClose:to,dialogModalOpen2:so,dialogModalClose2:uo,dialogAlertOpen:co,dialogAlertClose:fo,dialogConfirmOpen:po,dialogConfirmClose:vo,dialogLoadingOpen:mo,dialogLoadingClose:Co},children:[u(M,l({},i,{onClose:lo,key:c})),u(M,l({},v,{onClose:ro,key:g})),u(w,l({},b,{onClose:to,key:j})),u(w,l({},B,{onClose:uo,key:E})),u(P,l({},_,{onClose:fo,key:K})),u(R,l({},Y,{onClose:vo,key:X})),u(N,l({},U,{key:oo})),n.children]})};var S=o.attachPropertiesToComponent(_,{useDialogDrawer:H,useDialogDrawer2:B,useDialogModal:L,useDialogModal2:A,useDialogConfirm:F,useDialogAlert:E,useDialogLoading:z});export{S as FbaApp};
|
|
11
11
|
//# sourceMappingURL=index.js.map
|