@flatbiz/antd 4.5.22 → 4.5.23

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.
Files changed (69) hide show
  1. package/esm/ace-editor-json/index.js +1 -1
  2. package/esm/ace-editor-json/index.js.map +1 -1
  3. package/esm/ace-editor-mysql/index.js +1 -1
  4. package/esm/ace-editor-mysql/index.js.map +1 -1
  5. package/esm/ace-editor-xml/index.js +1 -1
  6. package/esm/ace-editor-xml/index.js.map +1 -1
  7. package/esm/bootstrap/index.js +1 -1
  8. package/esm/bootstrap/index.js.map +1 -1
  9. package/esm/button-operate/index.js +1 -1
  10. package/esm/button-operate/index.js.map +1 -1
  11. package/esm/button-wrapper/index.js +1 -1
  12. package/esm/button-wrapper/index.js.map +1 -1
  13. package/esm/check-list/index.js +1 -1
  14. package/esm/check-list/index.js.map +1 -1
  15. package/esm/date-range-picker-wrapper-form-item/index.js +3 -1
  16. package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
  17. package/esm/dialog-alert/index.js +1 -1
  18. package/esm/dialog-alert/index.js.map +1 -1
  19. package/esm/dialog-confirm/index.js +1 -1
  20. package/esm/dialog-confirm/index.js.map +1 -1
  21. package/esm/dialog-drawer/index.js +1 -1
  22. package/esm/dialog-drawer/index.js.map +1 -1
  23. package/esm/dialog-drawer-content/index.js +1 -1
  24. package/esm/dialog-drawer-content/index.js.map +1 -1
  25. package/esm/dialog-modal/index.js +1 -1
  26. package/esm/dialog-modal/index.js.map +1 -1
  27. package/esm/drag-collapse/index.js +1 -1
  28. package/esm/drag-collapse/index.js.map +1 -1
  29. package/esm/drag-collapse-form-list/index.js +1 -1
  30. package/esm/drag-collapse-form-list/index.js.map +1 -1
  31. package/esm/drag-editable-table/index.js +1 -1
  32. package/esm/drag-editable-table/index.js.map +1 -1
  33. package/esm/drag-form-list/index.js +1 -1
  34. package/esm/drag-form-list/index.js.map +1 -1
  35. package/esm/dropdown-menu-wrapper/index.js +1 -1
  36. package/esm/dropdown-menu-wrapper/index.js.map +1 -1
  37. package/esm/easy-table/index.js +1 -1
  38. package/esm/easy-table/index.js.map +1 -1
  39. package/esm/editable-table/index.js +1 -1
  40. package/esm/editable-table/index.js.map +1 -1
  41. package/esm/fba-app/index.js +1 -1
  42. package/esm/fba-app/index.js.map +1 -1
  43. package/esm/fba-utils/index.js +1 -1
  44. package/esm/fba-utils/index.js.map +1 -1
  45. package/esm/form-item-wrapper/index.js +1 -1
  46. package/esm/form-item-wrapper/index.js.map +1 -1
  47. package/esm/form-list-wrapper/index.js +1 -1
  48. package/esm/form-list-wrapper/index.js.map +1 -1
  49. package/esm/form-wrapper/index.js +1 -1
  50. package/esm/form-wrapper/index.js.map +1 -1
  51. package/esm/index.js +1 -1
  52. package/esm/json-editor/index.js +1 -1
  53. package/esm/json-editor/index.js.map +1 -1
  54. package/esm/local-loading/index.js +1 -1
  55. package/esm/local-loading/index.js.map +1 -1
  56. package/esm/pdf/index.js +1 -1
  57. package/esm/pdf/index.js.map +1 -1
  58. package/esm/permission/index.js +1 -1
  59. package/esm/permission/index.js.map +1 -1
  60. package/esm/search-form/index.js +1 -1
  61. package/esm/search-form/index.js.map +1 -1
  62. package/esm/table-cell-render/index.js +1 -1
  63. package/esm/table-cell-render/index.js.map +1 -1
  64. package/esm/text-overflow-render/index.js +1 -1
  65. package/esm/text-overflow-render/index.js.map +1 -1
  66. package/esm/time-range-picker-wrapper-form-item/index.js +5 -2
  67. package/esm/time-range-picker-wrapper-form-item/index.js.map +1 -1
  68. package/index.d.ts +75 -12
  69. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/fold-operate.tsx","@flatbiz/antd/src/easy-table/hooks/columns.tsx","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, type TPlainObject } from '@flatbiz/utils';\nimport { type FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableDataSource?: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initialValues?: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n getPaginationStatus: () => boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n onSetColumns: (columns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n columns?: TEasyTableTableColumn<TPlainObject>[];\n dynamicColumnsConfig: {\n showFoldKeyList: string[];\n onChangeShowFoldKeyList: (keys: string[]) => void;\n columnFoldOpen: boolean;\n columnFoldConfig?: EasyTableProps['columnFoldConfig'];\n onOpenColumnFoldModal: () => void;\n onCloseColumnFoldModal: () => void;\n asyncColumnRequest?: EasyTableProps['asyncColumnRequest'];\n };\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { localStorageCache } from '@flatbiz/utils';\nimport { Checkbox, Popover } from 'antd';\nimport { Fragment, useState, type CSSProperties, type ReactElement } from 'react';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex: string; title: string }[];\n onChange: (keys: string[]) => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n children?: ReactElement;\n};\n\nexport const FoldOperateDropdown = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n\n const onChange = (keys) => {\n setSelectedRowKeys(keys);\n props.onChange(keys);\n if (props.cacheKey) {\n localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: keys });\n }\n };\n\n const content = (\n <Fragment>\n <Checkbox.Group\n defaultValue={selectedRowKeys}\n onChange={onChange}\n value={selectedRowKeys}\n style={{ display: 'flex', flexDirection: 'column' }}\n >\n {props.dataList.map((item) => {\n const label = item['_isFoldTitle'] || item.title;\n return (\n <Checkbox value={item.dataIndex} key={item.dataIndex} style={{ padding: '0 0 5px 0' }}>\n {label}\n </Checkbox>\n );\n })}\n </Checkbox.Group>\n </Fragment>\n );\n\n const onChangeAll = (e) => {\n if (e.target.checked) {\n onChange(props.dataList.map((item) => item.dataIndex));\n } else {\n onChange([]);\n }\n };\n\n return (\n <Popover\n content={content}\n title={\n <Checkbox checked={selectedRowKeys.length === props.dataList.length} onChange={onChangeAll}>\n 全选(字段列表)\n </Checkbox>\n }\n placement=\"bottomRight\"\n overlayClassName=\"fold-operate-popiver\"\n >\n {props.children}\n </Popover>\n );\n};\n","import { type API, type ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isString, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { Form, message } from 'antd';\nimport {\n cloneElement,\n forwardRef,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\n\nimport { localStorageCache, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { fbaHooks } from '../fba-hooks';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n const columnFoldConfig = props.columnFoldConfig;\n const asyncColumnRequest = props.asyncColumnRequest;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (columnFoldConfig?.cacheKey) {\n const cacheValue = localStorageCache.get(`easy_tab_${columnFoldConfig.cacheKey}`);\n const cacheKeyList = isArray(cacheValue?.keys)\n ? (cacheValue?.keys?.filter((item) => isString(item)) as string[])\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\n const modelKey = useMemo(() => {\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const paginationStatusRef = useRef(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const columnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n if (props.breforeRequest) {\n try {\n await props.breforeRequest(form);\n } catch (_error) {\n return;\n }\n }\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n let respDataNew: TPlainObject = respData;\n if (requestResultAdapter) {\n respDataNew = requestResultAdapter(respData);\n }\n if (dynamicColumsAdapter) {\n const dynamicColumns = dynamicColumsAdapter(respData, baseColumnsRef.current);\n /** 不要添加默认值 */\n setDynamicColumns(dynamicColumns);\n }\n const respList = get(respDataNew, fieldNames.list);\n setDataSource(isArray(respList) ? respList : []);\n setTotal(get(respDataNew, fieldNames.total));\n setLoading(false);\n } catch (error: any) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = getPaginationStatus();\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...state.queryCondition,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n void actions.updateFilterCondition(props.initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const updateQueryCondition = hooks.useCallbackRef(async (values: TPlainObject) => {\n await actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (getPaginationStatus()) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {\n [fieldNames.pageNo]: undefined,\n [fieldNames.pageSize]: undefined,\n };\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const onOpenColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(true);\n });\n\n const onCloseColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(false);\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n updateQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n dataSource: respOriginalDataRef.current,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n columnFoldTriggerRender: (children) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n const foldColumnList = columnsRef.current.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n {children}\n </FoldOperateDropdown>\n );\n },\n onChangeTableColumns: (columns) => {\n setDynamicColumns(columns);\n },\n getTableColumns: () => {\n return columnsRef.current;\n },\n loading,\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n paginationStatusRef.current = status;\n };\n\n const onSetBaseColumns = (base) => {\n baseColumnsRef.current = base;\n };\n\n const onSetColumns = (columns) => {\n columnsRef.current = columns;\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 onChangeFoldColumnList = (keyList: string[]) => {\n setShowFoldKeyList(keyList);\n columnFoldConfig?.onChange?.(keyList);\n };\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const getPaginationStatus = () => {\n return props.paginationFixed || paginationStatusRef.current;\n };\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (props.paginationFixed) {\n void onInnerRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n void onInnerRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }, [props.paginationFixed]);\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const wrapperStyle: CSSProperties = {\n overflowY: props.filterFixed || props.paginationFixed ? 'hidden' : 'auto',\n ...props.style,\n };\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n onSetColumns,\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableDataSource: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n onSetPaginationStatus,\n getPaginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n columns: dynamicColumns,\n initialValues: props.initialValues,\n dynamicColumnsConfig: {\n showFoldKeyList,\n onChangeShowFoldKeyList: onChangeFoldColumnList,\n columnFoldConfig,\n onOpenColumnFoldModal,\n onCloseColumnFoldModal,\n columnFoldOpen,\n asyncColumnRequest,\n },\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={wrapperStyle}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={wrapperClassName} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { type FormInstance } from 'antd';\nimport { Children, useContext, useMemo, useState, type CSSProperties, type ReactElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { EasyForm, EasyFormProps } from '../easy-form';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n /**\n * @deprecated已过期,使用 easyFormProps.className 配置\n */\n formClassName?: string;\n /**\n * @deprecated已过期,使用 easyFormProps.style 配置\n */\n formStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n easyFormProps?: Omit<\n EasyFormProps,\n 'isPure' | 'column' | 'forceColumn' | 'width' | 'gridGutter' | 'children'\n >;\n};\n\n/**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper\n * <EasyTableFilter>\n * <FormGrid.Col span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormGrid.Col>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,默认重启按钮触发请求,默认值:true\n * 8. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const screenType = fbaHooks.useResponsivePoint() || 'md';\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName = '',\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n easyFormProps,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n await form.validateFields();\n if (getPaginationStatus()) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n const labelAlign = screenType === 'xs' ? 'left' : easyFormProps?.labelAlign || 'right';\n\n return (\n <BlockLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <EasyForm\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n isPure={true}\n labelWidth=\"80\"\n formItemGap=\"15\"\n {...easyFormProps}\n labelAlign={labelAlign}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </EasyForm>\n </BlockLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n * @deprecated 已过时 @4.5.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { localStorageCache, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Drawer, Table } from 'antd';\nimport { type ColumnsType } from 'antd/es/table';\nimport { type TableRowSelection } from 'antd/es/table/interface';\nimport { Fragment, useState, type CSSProperties } from 'react';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex?: string; title: string }[];\n onChange: (keys: string[]) => void;\n open?: boolean;\n onClose?: () => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n};\n\nexport const FoldOperate = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n const rowSelection = {\n type: 'checkbox',\n selectedRowKeys: selectedRowKeys,\n onChange: (selectedRowKeys: string[]) => {\n setSelectedRowKeys(selectedRowKeys);\n props.onChange(selectedRowKeys);\n if (props.cacheKey) {\n localStorageCache.set(`easy_tab_${props.cacheKey}`, {\n keys: selectedRowKeys,\n });\n }\n },\n } as TableRowSelection<TAny>;\n\n const columns: ColumnsType<TPlainObject> = [\n {\n title: '字段名称',\n dataIndex: 'title',\n render: (value, recrd) => {\n return recrd['_isFoldTitle'] || value;\n },\n },\n { title: '字段Key', dataIndex: 'dataIndex' },\n ];\n\n return (\n <Fragment>\n <Drawer\n title=\"选择字段\"\n open={props.open}\n onClose={props.onClose}\n width={'35%'}\n styles={{\n body: {\n padding: 15,\n },\n }}\n >\n <Table\n bordered\n size=\"small\"\n columns={columns}\n rowSelection={rowSelection}\n rowKey=\"dataIndex\"\n pagination={false}\n scroll={{ x: 'max-content' }}\n dataSource={props.dataList}\n />\n </Drawer>\n </Fragment>\n );\n};\n","import { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { useMemo } from 'react';\nimport { ButtonWrapper } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { IconWrapper } from '../../icon-wrapper';\nimport { SvgHttpView } from '../../svg-http-view';\nimport { TableTitleTooltip } from '../../table-title-tooltip';\nimport { TipsWrapper } from '../../tips-wrapper';\nimport { FoldOperateDropdown } from '../fold-operate-dropdown';\nimport { type EasyTableProps } from '../type';\n\nexport const useColumnsAppendTips = (props: { columns: TPlainObject[] }) => {\n return useMemo(() => {\n const tempList = props.columns\n .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 .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [props.columns]);\n};\n\nexport const useColumnsAppendInnerColumn = (props: {\n columns: TPlainObject[];\n showFoldKeyList: string[];\n columnFoldConfig?: EasyTableProps['columnFoldConfig'];\n onOpenColumnFoldModal: () => void;\n onChangeFoldColumnList: (keyList: string[]) => void;\n foldColumnList: TPlainObject[];\n}) => {\n const columnsNew = props.columns;\n return fbaHooks.useMemoCustom(() => {\n if (props.columnFoldConfig?.hidden) return columnsNew;\n const finalItem = columnsNew[columnsNew.length - 1];\n if (props.foldColumnList.length > 0 && columnsNew.length > 0) {\n const foldColumnTarget = columnsNew.find((item) => item['_isFoldColumn']);\n\n if (foldColumnTarget && finalItem.dataIndex !== foldColumnTarget.dataIndex) {\n foldColumnTarget.title = foldColumnTarget['_isFoldTitle'];\n foldColumnTarget['_isFoldColumn'] = false;\n }\n if (!finalItem['_isFoldColumn']) {\n finalItem['_isFoldTitle'] = finalItem['_isFoldTitle'] || finalItem.title;\n finalItem['_isFoldColumn'] = true;\n\n const triggerType = props.columnFoldConfig?.triggerType;\n\n finalItem.title = (\n <FlexLayout direction=\"horizontal\" fullIndex={0} style={{ alignItems: 'center' }}>\n <span>{finalItem.title}</span>\n <div style={{ padding: '0 5px 0 20px', display: 'flex' }}>\n {triggerType === 'drawer' ? (\n <IconWrapper\n onClick={props.onOpenColumnFoldModal}\n text={props.columnFoldConfig?.text}\n size=\"small\"\n icon={\n props.columnFoldConfig?.icon || (\n <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n )\n }\n hoverTips={props.columnFoldConfig?.hoverTipText || '字段列表'}\n style={{ padding: 0, margin: 0 }}\n />\n ) : (\n <FoldOperateDropdown\n dataList={props.foldColumnList as TAny[]}\n onChange={props.onChangeFoldColumnList}\n cacheKey={props.columnFoldConfig?.cacheKey}\n initSelectedRowKeys={props.showFoldKeyList}\n >\n <IconWrapper\n text={props.columnFoldConfig?.text}\n style={{ padding: 0, margin: 0 }}\n size=\"small\"\n icon={\n props.columnFoldConfig?.icon || (\n <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n )\n }\n />\n </FoldOperateDropdown>\n )}\n </div>\n </FlexLayout>\n );\n }\n }\n return columnsNew;\n }, [props.columns, props.columnFoldConfig]);\n};\n\nexport const useColumnsToHidden = (props: { columns: TPlainObject[]; showFoldKeyList: string[] }) => {\n return useMemo(() => {\n const tempList = props.columns\n .map((item) => {\n const { hidden, isFold } = item;\n if (hidden) return null;\n if (isFold && !props.showFoldKeyList.includes(item.dataIndex as string)) return null;\n return item;\n })\n .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [props.columns, props.showFoldKeyList]);\n};\n\nexport const useColumnByAsyncColumnRequest = (props: {\n columns: TPlainObject[];\n asyncColumnRequestResult: TPlainObject;\n}) => {\n return useMemo(() => {\n if (!Object.keys(props.asyncColumnRequestResult)) return props.columns;\n return props.columns.map((item: TAny) => {\n const dataIndex = item.dataIndex as string;\n const result = props.asyncColumnRequestResult[dataIndex];\n if (dataIndex && result) {\n if (result.loading) {\n item.render = (value) => {\n return (\n <ButtonWrapper loading type=\"text\" loadingPosition=\"center\" removeGap>\n {value}\n </ButtonWrapper>\n );\n };\n } else if (item.asyncRender) {\n item.render = (value, record, index) => {\n return item.asyncRender?.(value, record, index, result.respData);\n };\n }\n }\n return item;\n });\n }, [props.columns, props.asyncColumnRequestResult]);\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Table, type TableProps } from 'antd';\nimport {\n Fragment,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactElement,\n} from 'react';\nimport { BlockLayout } from '../block-layout';\nimport { fbaHooks } from '../fba-hooks';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { EasyTableContext } from './context';\nimport { FoldOperate } from './fold-operate';\nimport {\n useColumnByAsyncColumnRequest,\n useColumnsAppendInnerColumn,\n useColumnsAppendTips,\n useColumnsToHidden,\n} from './hooks/columns';\nimport { easyTableModel } from './model';\nimport { type 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 /**\n * ```\n * 1. 当配置了 EasyTable.serviceConfig.dynamicColumsAdapter 后,columns配置只在初始化有效,再次修改无效\n * 2. 可通过 EasyTableRef.onChangeTableColumns 实现 columns 的指定修改\n * ```\n */\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @version 4.4.6\n * ```\n * 1. true:获取数据后再初始化渲染表格(可用于实现表格中defaultXxxx相关功能的使用)\n * ```\n */\n isSync?: boolean;\n /**\n * 空效果显示尺寸,默认值:small\n * @version 4.4.6\n */\n emptyShowSize?: 'small' | 'large';\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, isSync, ...otherProps } = props;\n\n const asyncColumnRequestResultRef = useRef<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n const [asyncColumnRequestResult, setAsyncColumnRequestResult] = useState<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n\n const {\n columnFoldConfig,\n onCloseColumnFoldModal,\n columnFoldOpen,\n onOpenColumnFoldModal,\n asyncColumnRequest,\n showFoldKeyList,\n onChangeShowFoldKeyList,\n } = ctx.dynamicColumnsConfig;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state] = easyTableModel(modelKey).useStore();\n\n fbaHooks.useEffectCustom(() => {\n /** 获取初始化 columns 数据 */\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, []);\n\n useEffect(() => {\n if (asyncColumnRequest?.length) {\n for (let index = 0; index < asyncColumnRequest.length; index++) {\n const element = asyncColumnRequest[index];\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: true },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n element\n .onRequest()\n .then((respData) => {\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false, respData },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n })\n .catch((error) => {\n console.error(error?.message);\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n });\n }\n }\n }, [asyncColumnRequest]);\n\n const columnsOriginal = useMemo(() => {\n if (ctx.columns) {\n ctx.onSetColumns(ctx.columns);\n return ctx.columns as TEasyTableTableColumn<T>[];\n } else {\n ctx.onSetColumns(props.columns as TEasyTableTableColumn<TPlainObject>[]);\n return props.columns;\n }\n }, [ctx.columns, props.columns]);\n\n let columnsNew = useColumnsAppendTips({\n columns: [...columnsOriginal],\n });\n\n const foldColumnList = columnsOriginal.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n columnsNew = useColumnsAppendInnerColumn({\n columns: columnsNew,\n foldColumnList,\n showFoldKeyList,\n columnFoldConfig,\n onOpenColumnFoldModal,\n onChangeFoldColumnList: onChangeShowFoldKeyList,\n });\n\n columnsNew = useColumnsToHidden({\n columns: columnsNew,\n showFoldKeyList,\n });\n\n columnsNew = useColumnByAsyncColumnRequest({\n columns: columnsNew,\n asyncColumnRequestResult,\n });\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(pagination !== false);\n }, [pagination]);\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (!paginationFixed) {\n if (pagination !== false) {\n onRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n onRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }\n }, [pagination]);\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n // selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\n [fieldNames.pageSize]: pagination.pageSize,\n [fieldNames.pageNo]: pagination.current,\n });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (!tableDataSource) return undefined;\n if (tableDataSource.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableDataSource[0][rowKey])) {\n return tableDataSource.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableDataSource;\n }, [tableDataSource, rowKey]);\n\n const tableRender = () => {\n if (isSync && !dataSource) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n rowKey={rowKey as TAny}\n columns={columnsNew}\n loading={loading}\n />\n </Fragment>\n );\n }\n if (isMacEnv()) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"2\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columnsNew}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </Fragment>\n );\n }\n return (\n <Fragment>\n {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columnsNew}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n </Fragment>\n );\n };\n\n return (\n <BlockLayout\n className={classNames(\n 'easy-table-table',\n { 'ett-empty-show-small': props.emptyShowSize === 'small' },\n props.tableWrapperClassName,\n )}\n style={props.tableWrapperStyle}\n >\n {tableRender()}\n\n <FoldOperate\n dataList={foldColumnList as TAny[]}\n onClose={onCloseColumnFoldModal}\n open={columnFoldOpen}\n onChange={onChangeShowFoldKeyList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\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 * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n *\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true;如果存在多个EasyTable缓存情况可设置cacheSwitch为自定义字符串\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提高windows下table左右滚动体验\n * 11. 可实现部分字段折叠,手动选择显示,将EasyTable.Table columns中isFold属性设为true,可通过EasyTable columnFoldConfig配置属性,demo(https://fex.qa.tcshuke.com/docs/admin/main/crud/demo1)\n * 12. 通过asyncColumnRequest、asyncRender配合使用可实现表格列数据接口渲染(demo:https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table)\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper\n * <EasyTable.Filter>\n * <FormGrid.Col span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormGrid.Col>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTable.Filter>\n * 2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n * 3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n * 8. 通过easyFormProps属性可整体控制子节点FormItem布局\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperateDropdown","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","onChange","keys","cacheKey","localStorageCache","set","content","_jsx","Fragment","children","Checkbox","Group","defaultValue","value","style","display","flexDirection","dataList","map","item","label","title","dataIndex","padding","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","ref","_props$initialPaginat","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","columnFoldConfig","asyncColumnRequest","_useState4","columnFoldOpen","setColumnFoldOpen","_useState5","_cacheValue$keys","cacheValue","get","cacheKeyList","_isArray","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","paginationStatusRef","useRef","respOriginalDataRef","baseColumnsRef","_useState6","dynamicColumns","setDynamicColumns","columnsRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","respData","respDataNew","_dynamicColumns","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","breforeRequest","$Try_2_Post","$If_3","call","this","bind","$Try_2_Catch","_error","resolve","then","$await_4","$await_5","cloneState","serviceConfig","$await_6","current","onDataSourceChange","_get","fbaHooks","useEffectCustom","hasPagination","getPaginationStatus","_extends2","initialValues","clearQueryCondition","values","$await_7","resetFields","setFieldsValue","updateQueryCondition","$await_8","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","$await_9","getRequestParams","getFieldsValue","onOpenColumnFoldModal","onCloseColumnFoldModal","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","columnFoldTriggerRender","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","hidden","isFold","onChangeFoldColumnList","onChangeTableColumns","columns","getTableColumns","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onSetColumns","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","keyList","page","_onInnerRequest","_props$pagination","useUpdateEffect","_onInnerRequest2","_onInnerRequest3","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","dynamicColumnsConfig","onChangeShowFoldKeyList","_jsxs","PaginationWrapper","size","EasyTableFilter","screenType","useResponsivePoint","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","$await_2","validateFields","$await_3","$If_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","text","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","index","find","keyItem","FormGrid","Col","OperateCol","labelAlign","BlockLayout","EasyForm","autoComplete","onFinish","formStyle","isPure","labelWidth","formItemGap","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","FoldOperate","rowSelection","render","recrd","Drawer","open","onClose","width","styles","body","Table","bordered","rowKey","scroll","x","useColumnsAppendTips","tempList","tooltip","tipsWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","TipsWrapper","tipType","popoverProps","TableTitleTooltip","useColumnsAppendInnerColumn","columnsNew","useMemoCustom","finalItem","foldColumnTarget","_props$columnFoldConf2","_props$columnFoldConf3","_props$columnFoldConf4","_props$columnFoldConf5","_props$columnFoldConf6","_props$columnFoldConf7","_props$columnFoldConf8","FlexLayout","direction","fullIndex","alignItems","IconWrapper","icon","SvgHttpView","svgPath","color","hoverTips","hoverTipText","margin","useColumnsToHidden","includes","useColumnByAsyncColumnRequest","Object","asyncColumnRequestResult","result","loadingPosition","removeGap","asyncRender","record","EasyTableTable","isSync","asyncColumnRequestResultRef","setAsyncColumnRequestResult","_ctx$dynamicColumnsCo","useEffect","_loop","element","_extends3","catch","_extends4","console","columnsOriginal","_onRequest","_onRequest2","tablePaginationData","onChangePage","filters","sorter","extra","action","_onRequest3","isUndefinedOrNull","getUuid","tableRender","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/fold-operate.tsx","@flatbiz/antd/src/easy-table/hooks/columns.tsx","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, type TPlainObject } from '@flatbiz/utils';\nimport { type FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableDataSource?: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initialValues?: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n getPaginationStatus: () => boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n onSetColumns: (columns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n columns?: TEasyTableTableColumn<TPlainObject>[];\n dynamicColumnsConfig: {\n showFoldKeyList: string[];\n onChangeShowFoldKeyList: (keys: string[]) => void;\n columnFoldOpen: boolean;\n columnFoldConfig?: EasyTableProps['columnFoldConfig'];\n onOpenColumnFoldModal: () => void;\n onCloseColumnFoldModal: () => void;\n asyncColumnRequest?: EasyTableProps['asyncColumnRequest'];\n };\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { localStorageCache } from '@flatbiz/utils';\nimport { Checkbox, Popover } from 'antd';\nimport { Fragment, useState, type CSSProperties, type ReactElement } from 'react';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex: string; title: string }[];\n onChange: (keys: string[]) => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n children?: ReactElement;\n};\n\nexport const FoldOperateDropdown = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n\n const onChange = (keys) => {\n setSelectedRowKeys(keys);\n props.onChange(keys);\n if (props.cacheKey) {\n localStorageCache.set(`easy_tab_${props.cacheKey}`, { keys: keys });\n }\n };\n\n const content = (\n <Fragment>\n <Checkbox.Group\n defaultValue={selectedRowKeys}\n onChange={onChange}\n value={selectedRowKeys}\n style={{ display: 'flex', flexDirection: 'column' }}\n >\n {props.dataList.map((item) => {\n const label = item['_isFoldTitle'] || item.title;\n return (\n <Checkbox value={item.dataIndex} key={item.dataIndex} style={{ padding: '0 0 5px 0' }}>\n {label}\n </Checkbox>\n );\n })}\n </Checkbox.Group>\n </Fragment>\n );\n\n const onChangeAll = (e) => {\n if (e.target.checked) {\n onChange(props.dataList.map((item) => item.dataIndex));\n } else {\n onChange([]);\n }\n };\n\n return (\n <Popover\n content={content}\n title={\n <Checkbox checked={selectedRowKeys.length === props.dataList.length} onChange={onChangeAll}>\n 全选(字段列表)\n </Checkbox>\n }\n placement=\"bottomRight\"\n overlayClassName=\"fold-operate-popiver\"\n >\n {props.children}\n </Popover>\n );\n};\n","import { type API, type ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { type TAny, type TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isString, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { Form, message } from 'antd';\nimport {\n cloneElement,\n forwardRef,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n} from 'react';\n\nimport { localStorageCache, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { fbaHooks } from '../fba-hooks';\nimport { fbaUtils } from '../fba-utils';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n const columnFoldConfig = props.columnFoldConfig;\n const asyncColumnRequest = props.asyncColumnRequest;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (columnFoldConfig?.cacheKey) {\n const cacheValue = localStorageCache.get(`easy_tab_${columnFoldConfig.cacheKey}`);\n const cacheKeyList = isArray(cacheValue?.keys)\n ? (cacheValue?.keys?.filter((item) => isString(item)) as string[])\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\n const modelKey = useMemo(() => {\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const paginationStatusRef = useRef(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const columnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n if (props.breforeRequest) {\n try {\n await props.breforeRequest(form);\n } catch (_error) {\n return;\n }\n }\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(fbaUtils.removeFormValuesInvalidField(paramsNew))) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n let respDataNew: TPlainObject = respData;\n if (requestResultAdapter) {\n respDataNew = requestResultAdapter(respData);\n }\n if (dynamicColumsAdapter) {\n const dynamicColumns = dynamicColumsAdapter(respData, baseColumnsRef.current);\n /** 不要添加默认值 */\n setDynamicColumns(dynamicColumns);\n }\n const respList = get(respDataNew, fieldNames.list);\n setDataSource(isArray(respList) ? respList : []);\n setTotal(get(respDataNew, fieldNames.total));\n setLoading(false);\n } catch (error: any) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n fbaHooks.useEffectCustom(() => {\n const hasPagination = getPaginationStatus();\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...state.queryCondition,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n void actions.updateFilterCondition(props.initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const updateQueryCondition = hooks.useCallbackRef(async (values: TPlainObject) => {\n await actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (getPaginationStatus()) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {\n [fieldNames.pageNo]: undefined,\n [fieldNames.pageSize]: undefined,\n };\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const onOpenColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(true);\n });\n\n const onCloseColumnFoldModal = hooks.useCallbackRef(() => {\n setColumnFoldOpen(false);\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n updateQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n dataSource: respOriginalDataRef.current,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n columnFoldTriggerRender: (children) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n const foldColumnList = columnsRef.current.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as TAny[]}\n onChange={onChangeFoldColumnList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n >\n {children}\n </FoldOperateDropdown>\n );\n },\n onChangeTableColumns: (columns) => {\n setDynamicColumns(columns);\n },\n getTableColumns: () => {\n return columnsRef.current;\n },\n loading,\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n paginationStatusRef.current = status;\n };\n\n const onSetBaseColumns = (base) => {\n baseColumnsRef.current = base;\n };\n\n const onSetColumns = (columns) => {\n columnsRef.current = columns;\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 onChangeFoldColumnList = (keyList: string[]) => {\n setShowFoldKeyList(keyList);\n columnFoldConfig?.onChange?.(keyList);\n };\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const getPaginationStatus = () => {\n return props.paginationFixed || paginationStatusRef.current;\n };\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (props.paginationFixed) {\n void onInnerRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n void onInnerRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }, [props.paginationFixed]);\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const wrapperStyle: CSSProperties = {\n overflowY: props.filterFixed || props.paginationFixed ? 'hidden' : 'auto',\n ...props.style,\n };\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n onSetColumns,\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableDataSource: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n onSetPaginationStatus,\n getPaginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n columns: dynamicColumns,\n initialValues: props.initialValues,\n dynamicColumnsConfig: {\n showFoldKeyList,\n onChangeShowFoldKeyList: onChangeFoldColumnList,\n columnFoldConfig,\n onOpenColumnFoldModal,\n onCloseColumnFoldModal,\n columnFoldOpen,\n asyncColumnRequest,\n },\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={wrapperStyle}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={wrapperClassName} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\n\nimport { type TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { type FormInstance } from 'antd';\nimport { Children, useContext, useMemo, useState, type CSSProperties, type ReactElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { EasyForm, EasyFormProps } from '../easy-form';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n /**\n * @deprecated已过期,使用 easyFormProps.className 配置\n */\n formClassName?: string;\n /**\n * @deprecated已过期,使用 easyFormProps.style 配置\n */\n formStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n easyFormProps?: Omit<\n EasyFormProps,\n 'isPure' | 'column' | 'forceColumn' | 'width' | 'gridGutter' | 'children'\n >;\n};\n\n/**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper\n * <EasyTableFilter>\n * <FormGrid.Col span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormGrid.Col>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,默认重启按钮触发请求,默认值:true\n * 8. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const screenType = fbaHooks.useResponsivePoint() || 'md';\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName = '',\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n easyFormProps,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n await form.validateFields();\n if (getPaginationStatus()) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n const labelAlign = screenType === 'xs' ? 'left' : easyFormProps?.labelAlign || 'right';\n\n return (\n <BlockLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <EasyForm\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n isPure={true}\n labelWidth=\"80\"\n formItemGap=\"15\"\n {...easyFormProps}\n labelAlign={labelAlign}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </EasyForm>\n </BlockLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n * @deprecated 已过时 @4.5.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { localStorageCache, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Drawer, Table } from 'antd';\nimport { type ColumnsType } from 'antd/es/table';\nimport { type TableRowSelection } from 'antd/es/table/interface';\nimport { Fragment, useState, type CSSProperties } from 'react';\n\ntype FoldOperateProps = {\n style?: CSSProperties;\n dataList: { dataIndex?: string; title: string }[];\n onChange: (keys: string[]) => void;\n open?: boolean;\n onClose?: () => void;\n cacheKey?: string;\n initSelectedRowKeys?: string[];\n};\n\nexport const FoldOperate = (props: FoldOperateProps) => {\n const [selectedRowKeys, setSelectedRowKeys] = useState<string[]>(props.initSelectedRowKeys || []);\n const rowSelection = {\n type: 'checkbox',\n selectedRowKeys: selectedRowKeys,\n onChange: (selectedRowKeys: string[]) => {\n setSelectedRowKeys(selectedRowKeys);\n props.onChange(selectedRowKeys);\n if (props.cacheKey) {\n localStorageCache.set(`easy_tab_${props.cacheKey}`, {\n keys: selectedRowKeys,\n });\n }\n },\n } as TableRowSelection<TAny>;\n\n const columns: ColumnsType<TPlainObject> = [\n {\n title: '字段名称',\n dataIndex: 'title',\n render: (value, recrd) => {\n return recrd['_isFoldTitle'] || value;\n },\n },\n { title: '字段Key', dataIndex: 'dataIndex' },\n ];\n\n return (\n <Fragment>\n <Drawer\n title=\"选择字段\"\n open={props.open}\n onClose={props.onClose}\n width={'35%'}\n styles={{\n body: {\n padding: 15,\n },\n }}\n >\n <Table\n bordered\n size=\"small\"\n columns={columns}\n rowSelection={rowSelection}\n rowKey=\"dataIndex\"\n pagination={false}\n scroll={{ x: 'max-content' }}\n dataSource={props.dataList}\n />\n </Drawer>\n </Fragment>\n );\n};\n","import { type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { useMemo } from 'react';\nimport { ButtonWrapper } from '../../button-wrapper';\nimport { fbaHooks } from '../../fba-hooks';\nimport { FlexLayout } from '../../flex-layout';\nimport { IconWrapper } from '../../icon-wrapper';\nimport { SvgHttpView } from '../../svg-http-view';\nimport { TableTitleTooltip } from '../../table-title-tooltip';\nimport { TipsWrapper } from '../../tips-wrapper';\nimport { FoldOperateDropdown } from '../fold-operate-dropdown';\nimport { type EasyTableProps } from '../type';\n\nexport const useColumnsAppendTips = (props: { columns: TPlainObject[] }) => {\n return useMemo(() => {\n const tempList = props.columns\n .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 .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [props.columns]);\n};\n\nexport const useColumnsAppendInnerColumn = (props: {\n columns: TPlainObject[];\n showFoldKeyList: string[];\n columnFoldConfig?: EasyTableProps['columnFoldConfig'];\n onOpenColumnFoldModal: () => void;\n onChangeFoldColumnList: (keyList: string[]) => void;\n foldColumnList: TPlainObject[];\n}) => {\n const columnsNew = props.columns;\n return fbaHooks.useMemoCustom(() => {\n if (props.columnFoldConfig?.hidden) return columnsNew;\n const finalItem = columnsNew[columnsNew.length - 1];\n if (props.foldColumnList.length > 0 && columnsNew.length > 0) {\n const foldColumnTarget = columnsNew.find((item) => item['_isFoldColumn']);\n\n if (foldColumnTarget && finalItem.dataIndex !== foldColumnTarget.dataIndex) {\n foldColumnTarget.title = foldColumnTarget['_isFoldTitle'];\n foldColumnTarget['_isFoldColumn'] = false;\n }\n if (!finalItem['_isFoldColumn']) {\n finalItem['_isFoldTitle'] = finalItem['_isFoldTitle'] || finalItem.title;\n finalItem['_isFoldColumn'] = true;\n\n const triggerType = props.columnFoldConfig?.triggerType;\n\n finalItem.title = (\n <FlexLayout direction=\"horizontal\" fullIndex={0} style={{ alignItems: 'center' }}>\n <span>{finalItem.title}</span>\n <div style={{ padding: '0 5px 0 20px', display: 'flex' }}>\n {triggerType === 'drawer' ? (\n <IconWrapper\n onClick={props.onOpenColumnFoldModal}\n text={props.columnFoldConfig?.text}\n size=\"small\"\n icon={\n props.columnFoldConfig?.icon || (\n <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n )\n }\n hoverTips={props.columnFoldConfig?.hoverTipText || '字段列表'}\n style={{ padding: 0, margin: 0 }}\n />\n ) : (\n <FoldOperateDropdown\n dataList={props.foldColumnList as TAny[]}\n onChange={props.onChangeFoldColumnList}\n cacheKey={props.columnFoldConfig?.cacheKey}\n initSelectedRowKeys={props.showFoldKeyList}\n >\n <IconWrapper\n text={props.columnFoldConfig?.text}\n style={{ padding: 0, margin: 0 }}\n size=\"small\"\n icon={\n props.columnFoldConfig?.icon || (\n <SvgHttpView svgPath=\"ionic/list-circle\" color=\"#868686\" />\n )\n }\n />\n </FoldOperateDropdown>\n )}\n </div>\n </FlexLayout>\n );\n }\n }\n return columnsNew;\n }, [props.columns, props.columnFoldConfig]);\n};\n\nexport const useColumnsToHidden = (props: { columns: TPlainObject[]; showFoldKeyList: string[] }) => {\n return useMemo(() => {\n const tempList = props.columns\n .map((item) => {\n const { hidden, isFold } = item;\n if (hidden) return null;\n if (isFold && !props.showFoldKeyList.includes(item.dataIndex as string)) return null;\n return item;\n })\n .filter(Boolean);\n return [...tempList] as TPlainObject[];\n }, [props.columns, props.showFoldKeyList]);\n};\n\nexport const useColumnByAsyncColumnRequest = (props: {\n columns: TPlainObject[];\n asyncColumnRequestResult: TPlainObject;\n}) => {\n return useMemo(() => {\n if (!Object.keys(props.asyncColumnRequestResult)) return props.columns;\n return props.columns.map((item: TAny) => {\n const dataIndex = item.dataIndex as string;\n const result = props.asyncColumnRequestResult[dataIndex];\n if (dataIndex && result) {\n if (result.loading) {\n item.render = (value) => {\n return (\n <ButtonWrapper loading type=\"text\" loadingPosition=\"center\" removeGap>\n {value}\n </ButtonWrapper>\n );\n };\n } else if (item.asyncRender) {\n item.render = (value, record, index) => {\n return item.asyncRender?.(value, record, index, result.respData);\n };\n }\n }\n return item;\n });\n }, [props.columns, props.asyncColumnRequestResult]);\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Table, type TableProps } from 'antd';\nimport {\n Fragment,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactElement,\n} from 'react';\nimport { BlockLayout } from '../block-layout';\nimport { fbaHooks } from '../fba-hooks';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { EasyTableContext } from './context';\nimport { FoldOperate } from './fold-operate';\nimport {\n useColumnByAsyncColumnRequest,\n useColumnsAppendInnerColumn,\n useColumnsAppendTips,\n useColumnsToHidden,\n} from './hooks/columns';\nimport { easyTableModel } from './model';\nimport { type 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 /**\n * ```\n * 1. 当配置了 EasyTable.serviceConfig.dynamicColumsAdapter 后,columns配置只在初始化有效,再次修改无效\n * 2. 可通过 EasyTableRef.onChangeTableColumns 实现 columns 的指定修改\n * ```\n */\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @version 4.4.6\n * ```\n * 1. true:获取数据后再初始化渲染表格(可用于实现表格中defaultXxxx相关功能的使用)\n * ```\n */\n isSync?: boolean;\n /**\n * 空效果显示尺寸,默认值:small\n * @version 4.4.6\n */\n emptyShowSize?: 'small' | 'large';\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, isSync, ...otherProps } = props;\n\n const asyncColumnRequestResultRef = useRef<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n const [asyncColumnRequestResult, setAsyncColumnRequestResult] = useState<{\n [dataIndex: string]: {\n respData?: TAny;\n loading?: boolean;\n };\n }>({});\n\n const {\n columnFoldConfig,\n onCloseColumnFoldModal,\n columnFoldOpen,\n onOpenColumnFoldModal,\n asyncColumnRequest,\n showFoldKeyList,\n onChangeShowFoldKeyList,\n } = ctx.dynamicColumnsConfig;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n const [state] = easyTableModel(modelKey).useStore();\n\n fbaHooks.useEffectCustom(() => {\n /** 获取初始化 columns 数据 */\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, []);\n\n useEffect(() => {\n if (asyncColumnRequest?.length) {\n for (let index = 0; index < asyncColumnRequest.length; index++) {\n const element = asyncColumnRequest[index];\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: true },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n element\n .onRequest()\n .then((respData) => {\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false, respData },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n })\n .catch((error) => {\n console.error(error?.message);\n asyncColumnRequestResultRef.current = {\n ...asyncColumnRequestResultRef.current,\n [element.dataIndex]: { loading: false },\n };\n setAsyncColumnRequestResult(asyncColumnRequestResultRef.current);\n });\n }\n }\n }, [asyncColumnRequest]);\n\n const columnsOriginal = useMemo(() => {\n if (ctx.columns) {\n ctx.onSetColumns(ctx.columns);\n return ctx.columns as TEasyTableTableColumn<T>[];\n } else {\n ctx.onSetColumns(props.columns as TEasyTableTableColumn<TPlainObject>[]);\n return props.columns;\n }\n }, [ctx.columns, props.columns]);\n\n let columnsNew = useColumnsAppendTips({\n columns: [...columnsOriginal],\n });\n\n const foldColumnList = columnsOriginal.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n columnsNew = useColumnsAppendInnerColumn({\n columns: columnsNew,\n foldColumnList,\n showFoldKeyList,\n columnFoldConfig,\n onOpenColumnFoldModal,\n onChangeFoldColumnList: onChangeShowFoldKeyList,\n });\n\n columnsNew = useColumnsToHidden({\n columns: columnsNew,\n showFoldKeyList,\n });\n\n columnsNew = useColumnByAsyncColumnRequest({\n columns: columnsNew,\n asyncColumnRequestResult,\n });\n\n fbaHooks.useEffectCustom(() => {\n onSetPaginationStatus(pagination !== false);\n }, [pagination]);\n\n // 分页参数发生变更\n hooks.useUpdateEffect(() => {\n if (!paginationFixed) {\n if (pagination !== false) {\n onRequest({\n [fieldNames.pageSize]: state.queryCondition[fieldNames.pageSize] || pageSize,\n [fieldNames.pageNo]: 1,\n });\n } else {\n onRequest({\n [fieldNames.pageSize]: undefined,\n [fieldNames.pageNo]: undefined,\n });\n }\n }\n }, [pagination]);\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n // selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\n [fieldNames.pageSize]: pagination.pageSize,\n [fieldNames.pageNo]: pagination.current,\n });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (!tableDataSource) return undefined;\n if (tableDataSource.length === 0) {\n return [];\n }\n if (typeof rowKey === 'string' && isUndefinedOrNull(tableDataSource[0][rowKey])) {\n return tableDataSource.map((item) => {\n item[rowKey] = getUuid();\n return item;\n });\n }\n return tableDataSource;\n }, [tableDataSource, rowKey]);\n\n const tableRender = () => {\n if (isSync && !dataSource) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n rowKey={rowKey as TAny}\n columns={columnsNew}\n loading={loading}\n />\n </Fragment>\n );\n }\n if (isMacEnv()) {\n return (\n <Fragment>\n {children}\n <Table\n key=\"2\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columnsNew}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </Fragment>\n );\n }\n return (\n <Fragment>\n {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columnsNew}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n </Fragment>\n );\n };\n\n return (\n <BlockLayout\n className={classNames(\n 'easy-table-table',\n { 'ett-empty-show-small': props.emptyShowSize === 'small' },\n props.tableWrapperClassName,\n )}\n style={props.tableWrapperStyle}\n >\n {tableRender()}\n\n <FoldOperate\n dataList={foldColumnList as TAny[]}\n onClose={onCloseColumnFoldModal}\n open={columnFoldOpen}\n onChange={onChangeShowFoldKeyList}\n cacheKey={columnFoldConfig?.cacheKey}\n initSelectedRowKeys={showFoldKeyList}\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 * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n *\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true;如果存在多个EasyTable缓存情况可设置cacheSwitch为自定义字符串\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提高windows下table左右滚动体验\n * 11. 可实现部分字段折叠,手动选择显示,将EasyTable.Table columns中isFold属性设为true,可通过EasyTable columnFoldConfig配置属性,demo(https://fex.qa.tcshuke.com/docs/admin/main/crud/demo1)\n * 12. 通过asyncColumnRequest、asyncRender配合使用可实现表格列数据接口渲染(demo:https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table)\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormGrid.Col 组件包装 FormItemWrapper\n * <EasyTable.Filter>\n * <FormGrid.Col span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormGrid.Col>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTable.Filter>\n * 2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n * 3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n * 8. 通过easyFormProps属性可整体控制子节点FormItem布局\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperateDropdown","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","onChange","keys","cacheKey","localStorageCache","set","content","_jsx","Fragment","children","Checkbox","Group","defaultValue","value","style","display","flexDirection","dataList","map","item","label","title","dataIndex","padding","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","ref","_props$initialPaginat","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","columnFoldConfig","asyncColumnRequest","_useState4","columnFoldOpen","setColumnFoldOpen","_useState5","_cacheValue$keys","cacheValue","get","cacheKeyList","_isArray","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","paginationStatusRef","useRef","respOriginalDataRef","baseColumnsRef","_useState6","dynamicColumns","setDynamicColumns","columnsRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","respData","respDataNew","_dynamicColumns","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","breforeRequest","$Try_2_Post","$If_3","call","this","bind","$Try_2_Catch","_error","resolve","then","$await_4","$await_5","cloneState","serviceConfig","fbaUtils","removeFormValuesInvalidField","$await_6","current","onDataSourceChange","_get","fbaHooks","useEffectCustom","hasPagination","getPaginationStatus","_extends2","initialValues","clearQueryCondition","values","$await_7","resetFields","setFieldsValue","updateQueryCondition","$await_8","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","$await_9","getRequestParams","getFieldsValue","onOpenColumnFoldModal","onCloseColumnFoldModal","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","columnFoldTriggerRender","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","hidden","isFold","onChangeFoldColumnList","onChangeTableColumns","columns","getTableColumns","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onSetColumns","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","keyList","page","_onInnerRequest","_props$pagination","useUpdateEffect","_onInnerRequest2","_onInnerRequest3","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","dynamicColumnsConfig","onChangeShowFoldKeyList","_jsxs","PaginationWrapper","size","EasyTableFilter","screenType","useResponsivePoint","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","$await_2","validateFields","$await_3","$If_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","text","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","index","find","keyItem","FormGrid","Col","OperateCol","labelAlign","BlockLayout","EasyForm","autoComplete","onFinish","formStyle","isPure","labelWidth","formItemGap","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","FoldOperate","rowSelection","render","recrd","Drawer","open","onClose","width","styles","body","Table","bordered","rowKey","scroll","x","useColumnsAppendTips","tempList","tooltip","tipsWrapperProps","otherProps","_objectWithoutPropertiesLoose","_excluded","TipsWrapper","tipType","popoverProps","TableTitleTooltip","useColumnsAppendInnerColumn","columnsNew","useMemoCustom","finalItem","foldColumnTarget","_props$columnFoldConf2","_props$columnFoldConf3","_props$columnFoldConf4","_props$columnFoldConf5","_props$columnFoldConf6","_props$columnFoldConf7","_props$columnFoldConf8","FlexLayout","direction","fullIndex","alignItems","IconWrapper","icon","SvgHttpView","svgPath","color","hoverTips","hoverTipText","margin","useColumnsToHidden","includes","useColumnByAsyncColumnRequest","Object","asyncColumnRequestResult","result","loadingPosition","removeGap","asyncRender","record","EasyTableTable","isSync","asyncColumnRequestResultRef","setAsyncColumnRequestResult","_ctx$dynamicColumnsCo","useEffect","_loop","element","_extends3","catch","_extends4","console","columnsOriginal","_onRequest","_onRequest2","tablePaginationData","onChangePage","filters","sorter","extra","action","_onRequest3","isUndefinedOrNull","getUuid","tableRender","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
@@ -24,5 +24,5 @@ import './../input-wrapper/index.css';
24
24
  import './../input-text-area-wrapper/index.css';
25
25
  import './index.css';
26
26
  /*! @flatjs/forge MIT @flatbiz/antd */
27
- import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{arrayField2LabelValue as a,toArray as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as o,Checkbox as d,InputNumber as m,Radio as u,Tag as s,Space as c,Button as p,message as f,Table as v}from"antd";import{useMemo as g,useState as b,useEffect as h,Fragment as C,useRef as x,isValidElement as w}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TextSymbolWrapper as I}from"../text-symbol-wrapper/index.js";import{TipsWrapper as y}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as R}from"../form-item-hidden/index.js";import{extend as k}from"@dimjs/utils/cjs/extend";import{hooks as F}from"@wove/react/cjs/hooks";import{tableCellRender as P}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as V}from"react/jsx-runtime";import{DatePickerWrapper as _}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as O}from"../date-range-picker-wrapper/index.js";import{InputWrapper as A}from"../input-wrapper/index.js";import{SelectorWrapper as S}from"../selector-wrapper/index.js";import{SwitchWrapper as K}from"../switch-wrapper/index.js";import{isBoolean as W}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as D}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as E}from"../input-text-area-wrapper/index.js";import{UploadWrapper as q}from"../upload-wrapper/index.js";import z from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var M=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=g((function(){return o.options||[]}),[o.options]);var u=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(d.Group,r({},o,{value:n.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):P.selectorCell(m)(n.value)})};var Y=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:L(M,r({},i))}))};var H=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:L(_,r({allowClear:true},l.editableComptProps))}))};var J=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=g((function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return L(O,r({allowClear:true},o,{value:n.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var Q=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:L(J,r({},i))}))};var U=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(A,r({allowClear:true},t.editableComptProps))}))};var $=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:L(m,r({},l.editableComptProps))}))};var X=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=g((function(){return o.options||[]}),[o.options]);var m=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e.target.value);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(u.Group,r({},o,{value:n.value,onChange:m}))}return L("span",{className:"editable-radio-group-view",children:l?l(n.value,d):P.selectorCell(d)(n.value)})};var Z=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:L(X,r({},i))}))};var ee=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=b([]),u=m[0],c=m[1];var p=b([]),f=p[0],v=p[1];h((function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(u.length===0){v(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=u.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));v(r)}}),[l,d.fieldNames,n.value,u]);var g=F.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var x=F.useCallbackRef((function(e,r){n.onChange==null?void 0:n.onChange(e);d.onChange==null?void 0:d.onChange(e,r)}));if(l){return L(S,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:g}))}return T(C,{children:[L("div",{style:{display:"none"},children:L(S,r({},d,{onSelectorListAllChange:g}))}),L("span",{className:"editable-selector-view",children:o?o(n.value,u):f.map((function(e,n){return L(s,{color:"geekblue",children:e.label},n)}))})]})};var ne=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:L(ee,r({},i))}))};var re=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=g((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return L(K,r({},o,{value:n.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?L(s,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):L(s,{style:{marginRight:0},children:m.unCheckedText})})};var ie=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:L(re,r({},i))}))};var ae=function e(n){var r,i;var a=g((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=D(n.value)||B(n.value)||W(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(o.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(E,r({},t.editableComptProps))}))};var oe=["children"];var de=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,oe);if(o){return L(q,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):L(q,r({listType:"text"},u,{value:n.value,disabled:true}))})};var me=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:L(de,r({},i))}))};var ue=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=G(t,n.tableRowIndex);var o=k({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L($,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L(Z,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return L(te,r({},d))};var se=function e(r){var i=o.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,l=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return L(o.List,{name:r.name,children:function e(a,o){var p=o.add,f=o.remove;return T(V,{children:[t?t({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=l.find((function(e){return G(e.editable,r.tableRowIndex)}));var o=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return T("div",{className:o,children:[m==null?void 0:m({add:p,remove:function e(){f(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),T(c,{children:[l.map((function(n,i){return L(ue,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?L(ce,{deleteOperateRender:s,remove:function e(){f(a)},index:a}):undefined]}),u==null?void 0:u({add:p,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){f(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var ce=function e(n){return L(o.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(p,{type:"link",danger:true,icon:L(z,{}),onClick:n.remove,children:"删除"})})};var pe=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{var i;return T(C,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),(i=n.hiddenFieldList)==null?void 0:i.map((function(e,r){return L(R,{name:[n.tableRowIndex].concat(t(e.dataIndex))},r)}))]})}}return L(te,{name:n.name})};var fe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align"];var ve=function a(d){var m=o.useFormInstance();var u=x([]);var s=g((function(){var e=d.columns.find((function(e){return e["dataIndex"]===d.uidFieldKey}));return!!e}),[d.columns,d.uidFieldKey]);var c=g((function(){if(!d.columns)return[];return d.columns.map((function(e){var n=e.fieldConfig,a=e.renderMiddleware,l=e.tableChildrenColumnRender,o=e.title,u=e.tipsWrapperProps,c=e.required,p=e.align,f=i(e,fe);var v=w(o)||typeof o==="string";var g;if(u&&v){if(typeof u==="string"){g=L(y,{tipType:"popover",popoverProps:{content:u},children:o})}else{g=L(y,r({},u,{children:o}))}}else{g=o}return r({title:c?L(I,{style:{marginLeft:p==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=d.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},f,{render:function r(i,o,u){if(o["_isChildrenItem"]){if(l){return l(i,o,u)}return i}var c=[].concat(t(d.name),[o.name]);var p=e.dataIndex?[].concat(c,[e.dataIndex]):c;var f=a==null?void 0:a({name:p,tableRowIndex:o.name,operation:o.operation,tableRowName:c,index:u,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}});if(f){return f}var v=typeof n==="function"?n({name:p,tableRowIndex:o.name,tableRowName:c,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}}):n;var g=t(e.hiddenField);if(!s&&u===0){g=g.concat([{dataIndex:d.uidFieldKey}])}return L(pe,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:p,fieldConfig:v,tableRowIndex:o.name,hiddenFieldList:g})}})}))}),[d.columns,d.tableProps,d.name,d.completeName,d.uidFieldKey,s,m]);var p=o.useWatch(d.completeName?d.completeName:d.name,m);h((function(){var e=t(d.name);if(/^\d+$/.test(""+(e==null?void 0:e[0]))&&d.completeName===undefined){void f.error("当前Editable处在FormList内部,必须赋值completeName参数")}}),[d.completeName,d.name]);return L("div",{className:n("editable-table",{"et-empty-show-large":d.emptyShowSize==="large"},d.className),style:d.style,children:L(o.List,{name:d.name,rules:d.rules,children:function n(i,a,s){var f=s.errors;u.current=i;return T("div",{style:{borderRadius:"6px",border:f!=null&&f.length?"1px solid #ff4d4f":"1px solid transparent"},children:[d.onTableBeforeRender?d.onTableBeforeRender(a,i.length):null,L(v,r({scroll:{x:"max-content"},pagination:false,size:"small"},d.tableProps,{rowKey:function e(n){var r;var i=d.completeName||[];var a=t(d.name);var o=i.length?i:a;var u;if(n["_isChildrenItem"]){u=m.getFieldValue([].concat(o,[n["_parentIndex"],"children",n["_index"]]))}else{u=m.getFieldValue([].concat(o,[n["_index"]]))}var s=(r=u)==null?void 0:r[d.uidFieldKey];if(l(s)){console.warn("EditableTable 通过入参uidFieldKey:"+d.uidFieldKey+",未获取到表格行唯一值数据")}return s},dataSource:i.map((function(e,n){var i;var t=p==null||(i=p[e.name])==null?void 0:i.children;if(t){t.forEach((function(e,r){e["_isChildrenItem"]=true;e["_parentIndex"]=n;e["_index"]=r}))}return r({},e,{_index:n,operation:a,children:t})})),columns:c})),d.onTableAfterRender?d.onTableAfterRender(a,i.length):L(j,{type:"dashed",hidden:d.hiddenFooterBtn,onClick:function e(){return a.add(d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"}),L(o.ErrorList,{errors:f.length?[L("div",{style:{color:"#ff4d4f",padding:"5px"},children:f},"0")]:undefined})]})}})})};export{ve as EditableTable};
27
+ import e from"@ant-design/icons/es/icons/PlusOutlined";import{classNames as n}from"@dimjs/utils/cjs/class-names";import{_ as r,a as i}from"../_rollupPluginBabelHelpers-a0769acd.js";import{arrayField2LabelValue as a,toArray as t,isUndefinedOrNull as l}from"@flatbiz/utils";import{Form as o,Checkbox as d,InputNumber as m,Radio as u,Tag as s,Space as c,Button as p,message as f,Table as v}from"antd";import{useMemo as g,useState as b,useEffect as h,Fragment as C,useRef as x,isValidElement as w}from"react";import{ButtonWrapper as j}from"../button-wrapper/index.js";import{TextSymbolWrapper as I}from"../text-symbol-wrapper/index.js";import{TipsWrapper as y}from"../tips-wrapper/index.js";import{isArray as N}from"@dimjs/lang/cjs/is-array";import{FormItemHidden as R}from"../form-item-hidden/index.js";import{extend as k}from"@dimjs/utils/cjs/extend";import{hooks as F}from"@wove/react/cjs/hooks";import{tableCellRender as P}from"../table-cell-render/index.js";import{jsx as L,jsxs as T,Fragment as V}from"react/jsx-runtime";import{DatePickerWrapper as _}from"../date-picker-wrapper/index.js";import{DateRangePickerWrapper as O}from"../date-range-picker-wrapper/index.js";import{InputWrapper as A}from"../input-wrapper/index.js";import{SelectorWrapper as S}from"../selector-wrapper/index.js";import{SwitchWrapper as K}from"../switch-wrapper/index.js";import{isBoolean as W}from"@dimjs/lang/cjs/is-boolean";import{isNumber as B}from"@dimjs/lang/cjs/is-number";import{isString as D}from"@dimjs/lang/cjs/is-string";import{InputTextAreaWrapper as E}from"../input-text-area-wrapper/index.js";import{UploadWrapper as q}from"../upload-wrapper/index.js";import z from"@ant-design/icons/es/icons/DeleteOutlined";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"../use-responsive-point-21b8c601.js";import"../fba-utils/index.js";import"@dimjs/model";import"@ant-design/icons/es/icons/QuestionCircleOutlined";import"@dimjs/lang/cjs/is-object";import"@dimjs/utils/cjs/get";import"@dimjs/lang/cjs/is-plain-object";import"@dimjs/lang/cjs/is-empty";import"../button-operate/index.js";import"@ant-design/icons/es/icons/MoreOutlined";import"@dimjs/lang/cjs/is-undefined";import"../dropdown-menu-wrapper/index.js";import"@ant-design/icons/es/icons/ExclamationCircleFilled";import"../dialog-confirm/index.js";import"../dialog-modal/index.js";import"@dimjs/lang/cjs/is-null";import"ahooks";import"react-dom/client";import"../flex-layout/index.js";import"@wove/react/cjs/create-ctx";import"../tag-list-render/index.js";import"../time-53b3f55f.js";import"@ant-design/icons/es/icons/RedoOutlined";import"../request-status/index.js";import"@dimjs/lang/cjs/is-deep-equal";import"@dimjs/utils/cjs/json";import"pubsub-js";import"react-dom";var G=function e(n,r){return typeof n==="boolean"?n:n==null?void 0:n({tableRowIndex:r})};var M=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var m=g((function(){return o.options||[]}),[o.options]);var u=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(d.Group,r({},o,{value:n.value,onChange:u}))}return L("span",{className:"editable-checkbox-group-view",children:l?l(n.value,m):P.selectorCell(m)(n.value)})};var Y=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-checkbox-group-form-item",a==null?void 0:a.className),children:L(M,r({},i))}))};var H=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-date-picker-wraper-form-item",t==null?void 0:t.className),children:L(_,r({allowClear:true},l.editableComptProps))}))};var J=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=g((function(){var e=N(n.value)?n.value:[];if(t)return undefined;return e.join("~")}),[t,n.value]);if(t){return L(O,r({allowClear:true},o,{value:n.value,onChange:d}))}return L("span",{className:"editable-date-range-picker-view",children:l?l(n.value):m})};var Q=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-date-range-picker-wraper-form-item",a==null?void 0:a.className),children:L(J,r({},i))}))};var U=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(A,r({allowClear:true},t.editableComptProps))}))};var $=function e(i){var a=i.fieldConfig,t=a.formItemProps,l=a.editableConfig;return L(o.Item,r({},t,{name:i.name,className:n("editable-input-number-form-item",t==null?void 0:t.className),children:L(m,r({},l.editableComptProps))}))};var X=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=g((function(){return o.options||[]}),[o.options]);var m=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e.target.value);o.onChange==null?void 0:o.onChange(e)}));if(t){return L(u.Group,r({},o,{value:n.value,onChange:m}))}return L("span",{className:"editable-radio-group-view",children:l?l(n.value,d):P.selectorCell(d)(n.value)})};var Z=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-radio-group-form-item",a==null?void 0:a.className),children:L(X,r({},i))}))};var ee=function e(n){var i=n.fieldConfig,t=i.editableConfig,l=i.editable,o=i.render;var d=t.editableComptProps;var m=b([]),u=m[0],c=m[1];var p=b([]),f=p[0],v=p[1];h((function(){if(!l){var e=N(n.value)?n.value:n.value===undefined?[]:[n.value];if(u.length===0){v(e.map((function(e){return{label:e,value:e}})))}var r=[];e.forEach((function(e){var n=u.find((function(n){return n.value===e}));r.push(n?n:{label:String(e),value:e})}));v(r)}}),[l,d.fieldNames,n.value,u]);var g=F.useCallbackRef((function(e){c(a(e||[],d.fieldNames))}));var x=F.useCallbackRef((function(e,r){n.onChange==null?void 0:n.onChange(e);d.onChange==null?void 0:d.onChange(e,r)}));if(l){return L(S,r({},d,{value:n.value,onChange:x,onSelectorListAllChange:g}))}return T(C,{children:[L("div",{style:{display:"none"},children:L(S,r({},d,{onSelectorListAllChange:g}))}),L("span",{className:"editable-selector-view",children:o?o(n.value,u):f.map((function(e,n){return L(s,{color:"geekblue",children:e.label},n)}))})]})};var ne=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-selector-wrapper-form-item",a==null?void 0:a.className),children:L(ee,r({},i))}))};var re=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable,l=i.render;var o=a.editableComptProps;var d=F.useCallbackRef((function(e){n.onChange==null?void 0:n.onChange(e);o==null||o.onChange==null?void 0:o.onChange(e)}));var m=g((function(){var e=o.checkedChildren||"是";var n=o.unCheckedChildren||"否";return{checkedText:e,unCheckedText:n}}),[o.checkedChildren,o.unCheckedChildren]);if(t){return L(K,r({},o,{value:n.value,onChange:d}))}if(l){return L("span",{className:"editable-switch-wrapper-view",children:l(n.value)})}return L("span",{className:"editable-switch-wrapper-view",children:o.checkedValue==n.value?L(s,{color:"geekblue",style:{marginRight:0},children:m.checkedText}):L(s,{style:{marginRight:0},children:m.unCheckedText})})};var ie=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-switch-wrapper-form-item",a==null?void 0:a.className),children:L(re,r({},i))}))};var ae=function e(n){var r,i;var a=g((function(){var e;if((e=n.fieldConfig)!=null&&e.render)return undefined;var r=D(n.value)||B(n.value)||W(n.value)||!n.value;if(!r){console.warn("Form.List name:【"+n.name+"】数据【"+JSON.stringify(n.value)+"】不能渲染在页面中")}return r?n.value:undefined}),[(r=n.fieldConfig)==null?void 0:r.render,n.name,n.value]);var t=((i=n.fieldConfig)==null||i.render==null?void 0:i.render(n.value))||a;return L("span",{children:t})};var te=function e(n){return L(o.Item,{noStyle:true,name:n.name,children:L(ae,{name:n.name,fieldConfig:n.fieldConfig})})};var le=function e(n){var i=n.fieldConfig,a=i.formItemProps,t=i.editableConfig;return L(o.Item,r({},a,{name:n.name,children:L(E,r({},t.editableComptProps))}))};var oe=["children"];var de=function e(n){var a=n.fieldConfig,t=a.editableConfig,l=a.render,o=a.editable;var d=t.editableComptProps,m=d.children,u=i(d,oe);if(o){return L(q,r({listType:"text"},u,{value:n.value,onChange:n.onChange,children:m}))}return L("div",{className:"upload-wrapper-selector-view",children:l?l(n.value):L(q,r({listType:"text"},u,{value:n.value,disabled:true}))})};var me=function e(i){var a=i.fieldConfig.formItemProps;return L(o.Item,r({},a,{name:i.name,className:n("editable-upload-wrapper-form-item",a==null?void 0:a.className),children:L(de,r({},i))}))};var ue=function e(n){var i=n.fieldConfig,a=i.editableConfig,t=i.editable;var l=G(t,n.tableRowIndex);var o=k({},n.fieldConfig,{editable:l});var d={name:n.name,fieldConfig:o};if((a==null?void 0:a.type)==="input"&&l){return L(U,r({},d))}else if((a==null?void 0:a.type)==="inputNumber"&&l){return L($,r({},d))}else if((a==null?void 0:a.type)==="textArea"&&l){return L(le,r({},d))}else if((a==null?void 0:a.type)==="datePickerWrapper"&&l){return L(H,r({},d))}else if((a==null?void 0:a.type)==="dateRangePickerWrapper"){return L(Q,r({},d))}else if((a==null?void 0:a.type)==="selectorWrapper"){return L(ne,r({},d))}else if((a==null?void 0:a.type)==="checkboxGroup"){return L(Y,r({},d))}else if((a==null?void 0:a.type)==="radioGroup"){return L(Z,r({},d))}else if((a==null?void 0:a.type)==="uploadWrapper"){return L(me,r({},d))}else if((a==null?void 0:a.type)==="switchWrapper"){return L(ie,r({},d))}else if((a==null?void 0:a.type)==="custom"){return a.editableComptProps({name:n.name,editable:l,completeName:n.completeName,tableRowIndex:n.tableRowIndex})}return L(te,r({},d))};var se=function e(r){var i=o.useFormInstance();var a=r.formListConfig,t=a.onFormListBeforeRender,l=a.editableConfigList,d=a.onFormListAfterRender,m=a.onFormListItemBeforeRender,u=a.onFormListItemAfterRender,s=a.deleteOperateRender;return L(o.List,{name:r.name,children:function e(a,o){var p=o.add,f=o.remove;return T(V,{children:[t?t({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null,a.map((function(e,a){var t=l.find((function(e){return G(e.editable,r.tableRowIndex)}));var o=n("editable-inner-formlist-item","editable-inner-formlist-item-"+r.name[1],{"editable-inner-formlist-item_preview":!t});return T("div",{className:o,children:[m==null?void 0:m({add:p,remove:function e(){f(a)},formListItemIndex:a,tableRowIndex:r.tableRowIndex,get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}}),T(c,{children:[l.map((function(n,i){return L(ue,{name:[e.name,n.fieldName],fieldConfig:n,tableRowIndex:r.tableRowIndex,completeName:[].concat(r.completeName,[e.name])},i)})),t?L(ce,{deleteOperateRender:s,remove:function e(){f(a)},index:a}):undefined]}),u==null?void 0:u({add:p,formListItemIndex:a,tableRowIndex:r.tableRowIndex,remove:function e(){f(a)},get value(){return i.getFieldValue([].concat(r.completeName,[e.name]))}})]},a)})),d?d({tableRowIndex:r.tableRowIndex,add:p,get value(){return i.getFieldValue(r.completeName)}}):null]})}})};var ce=function e(n){return L(o.Item,{children:n.deleteOperateRender?n.deleteOperateRender({remove:n.remove,formListItemIndex:n.index}):L(p,{type:"link",danger:true,icon:L(z,{}),onClick:n.remove,children:"删除"})})};var pe=function e(n){if(n.fieldConfig){if(N(n.fieldConfig["editableConfigList"])){var r=n.fieldConfig;return L(se,{name:n.name,completeName:n.completeName,formListConfig:r,tableRowIndex:n.tableRowIndex})}else{var i;return T(C,{children:[L(ue,{name:n.name,fieldConfig:n.fieldConfig,tableRowIndex:n.tableRowIndex,completeName:n.completeName}),(i=n.hiddenFieldList)==null?void 0:i.map((function(e,r){return L(R,{name:[n.tableRowIndex].concat(t(e.dataIndex))},r)}))]})}}return L(te,{name:n.name})};var fe=["fieldConfig","renderMiddleware","tableChildrenColumnRender","title","tipsWrapperProps","required","align"];var ve=function a(d){var m=o.useFormInstance();var u=x([]);var s=g((function(){var e=d.columns.find((function(e){return e["dataIndex"]===d.uidFieldKey}));return!!e}),[d.columns,d.uidFieldKey]);var c=g((function(){if(!d.columns)return[];return d.columns.map((function(e){var n=e.fieldConfig,a=e.renderMiddleware,l=e.tableChildrenColumnRender,o=e.title,u=e.tipsWrapperProps,c=e.required,p=e.align,f=i(e,fe);var v=w(o)||typeof o==="string";var g;if(u&&v){if(typeof u==="string"){g=L(y,{tipType:"popover",popoverProps:{content:u},children:o})}else{g=L(y,r({},u,{children:o}))}}else{g=o}return r({title:c?L(I,{style:{marginLeft:p==="center"?undefined:10},text:g,position:"before",symbolType:"required"}):g,onCell:function e(){var n;return{valign:((n=d.tableProps)==null?void 0:n.cellVerticalAlign)||"middle"}}},f,{render:function r(i,o,u){if(o["_isChildrenItem"]){if(l){return l(i,o,u)}return i}var c=[].concat(t(d.name),[o.name]);var p=e.dataIndex?[].concat(c,[e.dataIndex]):c;var f=a==null?void 0:a({name:p,tableRowIndex:o.name,operation:o.operation,tableRowName:c,index:u,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}});if(f){return f}var v=typeof n==="function"?n({name:p,tableRowIndex:o.name,tableRowName:c,getTableRowData:function e(){if(d.completeName){return m.getFieldValue([].concat(d.completeName,[o.name]))}return m.getFieldValue(c)}}):n;var g=t(e.hiddenField);if(!s&&u===0){g=g.concat([{dataIndex:d.uidFieldKey}])}return L(pe,{name:e.dataIndex?[o.name,e.dataIndex]:[o.name],completeName:p,fieldConfig:v,tableRowIndex:o.name,hiddenFieldList:g})}})}))}),[d.columns,d.tableProps,d.name,d.completeName,d.uidFieldKey,s,m]);var p=o.useWatch(d.completeName?d.completeName:d.name,m);h((function(){var e=t(d.name);if(/^\d+$/.test(""+(e==null?void 0:e[0]))&&d.completeName===undefined){void f.error("当前Editable处在FormList内部,必须赋值completeName参数")}}),[d.completeName,d.name]);return L("div",{className:n("editable-table",{"et-empty-show-large":d.emptyShowSize==="large"},d.className),style:d.style,children:L(o.List,{name:d.name,rules:d.rules,children:function n(i,a,s){var f=s.errors;u.current=i;return T("div",{style:{borderRadius:"6px",border:f!=null&&f.length?"1px solid #ff4d4f":"1px solid transparent"},children:[d.onTableBeforeRender?d.onTableBeforeRender(a,i.length):null,L(v,r({scroll:{x:"max-content"},pagination:false,size:"small"},d.tableProps,{rowKey:function e(n){var r;var i=d.completeName||[];var a=t(d.name);var o=i.length?i:a;var u;if(n["_isChildrenItem"]){u=m.getFieldValue([].concat(o,[n["_parentIndex"],"children",n["_index"]]))}else{u=m.getFieldValue([].concat(o,[n["_index"]]))}var s=(r=u)==null?void 0:r[d.uidFieldKey];if(l(s)){console.warn("EditableTable 通过入参uidFieldKey:"+d.uidFieldKey+",未获取到表格行唯一值数据")}return s},dataSource:i.map((function(e,n){var i;var t=p==null||(i=p[e.name])==null?void 0:i.children;if(t){t.forEach((function(e,r){e["_isChildrenItem"]=true;e["_parentIndex"]=n;e["_index"]=r}))}return r({},e,{_index:n,operation:a,children:t})})),columns:c})),d.onTableAfterRender?d.onTableAfterRender(a,i.length):L(j,{type:"dashed",hidden:d.hiddenFooterBtn,onClick:function e(){return a.add(d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues())},block:true,icon:L(e,{}),style:{marginTop:15},children:"新增"}),L(o.ErrorList,{errors:f.length?[L("div",{style:{color:"#ff4d4f",padding:"5px"},children:f},"0")]:undefined})]})}})})};export{ve as EditableTable};
28
28
  //# sourceMappingURL=index.js.map