@flatbiz/antd 4.5.35 → 4.5.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/button-operate/index.css +1 -1
- package/esm/button-operate/index.js +3 -4
- package/esm/button-operate/index.js.map +1 -1
- package/esm/dialog-preview-image/index.css +0 -0
- package/esm/dialog-preview-image/index.js +6 -0
- package/esm/dialog-preview-image/index.js.map +1 -0
- package/esm/drag-editable-table/index.js +1 -2
- package/esm/easy-table/index.js +1 -1
- package/esm/easy-table/index.js.map +1 -1
- package/esm/editable-table/index.js +1 -2
- package/esm/index.js +1 -1
- package/esm/table-cell-render/index.js +2 -3
- package/esm/tree-modal/index.js +2 -2
- package/esm/tree-modal-selector/index.js +2 -2
- package/esm/tree-selector-wrapper/index.js +1 -1
- package/esm/tree-selector-wrapper/index.js.map +1 -1
- package/esm/tree-wrapper/index.js +4 -4
- package/esm/tree-wrapper/index.js.map +1 -1
- package/index.d.ts +6 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/cache.ts","@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@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 { isArray, isObject } from '@dimjs/lang';\nimport { localStorageCache, sessionStorageCache, TPlainObject } from '@flatbiz/utils';\n\nexport const filterCache = {\n set: (cacheKey: string, filterCondition: TPlainObject) => {\n const value = filterCache.get(cacheKey);\n const mergeParams = {\n ...value,\n ...filterCondition,\n };\n sessionStorageCache.set(`easy_tab_filter_${cacheKey}`, mergeParams);\n return mergeParams as TPlainObject;\n },\n get: (cacheKey: string) => {\n const value = sessionStorageCache.get(`easy_tab_filter_${cacheKey}`) as TPlainObject;\n return isObject(value) ? value : {};\n },\n remove: (cacheKey: string) => {\n sessionStorageCache.remove(`easy_tab_filter_${cacheKey}`);\n },\n};\n\nexport const firstQueryCache = {\n set: (cacheKey: string, flag: boolean) => {\n sessionStorageCache.set(`easy_tab_firstQuery_${cacheKey}`, { value: flag });\n },\n get: (cacheKey: string) => {\n const value = sessionStorageCache.get(`easy_tab_firstQuery_${cacheKey}`)?.value;\n return value === false ? false : true;\n },\n remove: (cacheKey: string) => {\n sessionStorageCache.remove(`easy_tab_firstQuery_${cacheKey}`);\n },\n};\n\nexport const columnFoldCache = {\n set: (cacheKey: string, value: string[]) => {\n localStorageCache.set(`easy_tab_columnFold_${cacheKey}`, { value });\n },\n get: (cacheKey: string) => {\n const value = localStorageCache.get(`easy_tab_columnFold_${cacheKey}`)?.value;\n return isArray(value) ? (value as string[]) : [];\n },\n remove: (cacheKey: string) => {\n localStorageCache.remove(`easy_tab_columnFold_${cacheKey}`);\n },\n};\n","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 cacheKey: 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 { Checkbox, Popover } from 'antd';\nimport { Fragment, useState, type CSSProperties, type ReactElement } from 'react';\nimport { columnFoldCache } from './cache';\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 columnFoldCache.set(props.cacheKey, keys);\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 { isArray, isString, isUndefined } from '@dimjs/lang';\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 { getUuid, 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';\n\nimport { columnFoldCache, filterCache, firstQueryCache } from './cache';\nimport { EasyTableContext } from './context';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport './style.less';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const screenType = fbaHooks.useResponsivePoint();\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const columnFoldConfig = props.columnFoldConfig;\n const asyncColumnRequest = props.asyncColumnRequest;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n\n const cacheKey = useMemo(() => {\n if (props.cacheKey) return props.cacheKey;\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return getUuid();\n }, [props.cacheSwitch, props.cacheKey]);\n\n const cacheParams = filterCache.get(cacheKey);\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (cacheKey) {\n const columnFoldCacheValue = columnFoldCache.get(cacheKey);\n const cacheKeyList = isArray(columnFoldCacheValue)\n ? columnFoldCacheValue.filter((item) => isString(item))\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\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 firstQueryCache.set(cacheKey, false);\n setLoading(true);\n const paramsAll = filterCache.set(cacheKey, params);\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(paramsAll) : paramsAll;\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 const firstQueryFlag = firstQueryCache.get(cacheKey);\n form.setFieldsValue({\n ...props.initialValues,\n ...cacheParams,\n });\n if (initRequest || !firstQueryFlag) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...cacheParams,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n filterCache.set(cacheKey, props.initialValues || {});\n }\n }, []);\n\n const clearQueryCondition = hooks.useCallbackRef((values?: TPlainObject) => {\n filterCache.remove(cacheKey);\n form.resetFields();\n if (values) {\n filterCache.set(cacheKey, values);\n form.setFieldsValue(values);\n }\n });\n\n const updateQueryCondition = hooks.useCallbackRef((values: TPlainObject) => {\n filterCache.set(cacheKey, 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((values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n filterCache.remove(cacheKey);\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 ...cacheParams,\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 = (): EasyTableRefApi => {\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, columns: TEasyTableTableColumn<TPlainObject>[]) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n\n const foldColumnList = columns.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as { dataIndex: string; title: string }[]}\n onChange={onChangeFoldColumnList}\n cacheKey={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 setEnabledInitRequest: () => {\n firstQueryCache.set(cacheKey, false);\n },\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, cacheParams[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const filterFixedFt = screenType === 'xs' ? false : props.filterFixed;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': filterFixedFt,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = fbaHooks.useMemoCustom(() => {\n return {\n showSizeChanger: true,\n current: cacheParams[fieldNames.pageNo] || 1,\n pageSize: cacheParams[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, cacheParams, fieldNames.pageSize, cacheKey, pageSize, props.pagination, 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 const params = {\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n };\n filterCache.set(cacheKey, params);\n void onInnerRequest(params);\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]: cacheParams[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 cacheKey,\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 <div className={className}>{children}</div>\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 { filterCache } from './cache';\nimport { EasyTableContext } from './context';\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 cacheKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n\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 onReset = hooks.useCallbackRef(async () => {\n filterCache.remove(cacheKey);\n form.resetFields();\n form.setFieldsValue(initialValues);\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={initialValues}\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 { 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';\nimport { columnFoldCache } from './cache';\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 columnFoldCache.set(props.cacheKey, selectedRowKeys);\n }\n },\n } as TableRowSelection<TAny>;\n\n const columns: ColumnsType<TPlainObject> = [\n {\n title: '字段名称',\n dataIndex: 'title',\n render: (value, recrd) => {\n return recrd['_isFoldTitle'] || value;\n },\n },\n { title: '字段Key', dataIndex: 'dataIndex' },\n ];\n\n return (\n <Fragment>\n <Drawer\n title=\"选择字段\"\n open={props.open}\n onClose={props.onClose}\n width={'35%'}\n styles={{\n body: {\n padding: 15,\n },\n }}\n >\n <Table\n bordered\n size=\"small\"\n columns={columns}\n rowSelection={rowSelection}\n rowKey=\"dataIndex\"\n pagination={false}\n scroll={{ x: 'max-content' }}\n dataSource={props.dataList}\n />\n </Drawer>\n </Fragment>\n );\n};\n","import { 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 cacheKey: string;\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.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 { filterCache } from './cache';\nimport { EasyTableContext } from './context';\nimport { FoldOperate } from './fold-operate';\nimport {\n useColumnByAsyncColumnRequest,\n useColumnsAppendInnerColumn,\n useColumnsAppendTips,\n useColumnsToHidden,\n} from './hooks/columns';\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 cacheKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n\n const cacheParams = filterCache.get(cacheKey);\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 = fbaHooks.useMemoCustom(() => {\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 cacheKey,\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]: cacheParams[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: cacheParams[fieldNames.pageNo] || 1,\n pageSize: cacheParams[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n // selectComponentClass: SmallSelect,\n };\n }, [\n cacheParams,\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\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 columnsNew = useMemo(() => {\n return columnsNew.map((item) => {\n if (!!item.defaultValue && !item.render) {\n item.render = (value) => {\n return isUndefinedOrNull(value) || value == '' ? item.defaultValue : value;\n };\n }\n return item;\n });\n }, [columnsNew]);\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={cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n />\n </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { firstQueryCache } from './cache';\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 setEnabledInitRequest: (cacheKey: string) => {\n firstQueryCache.set(cacheKey, false);\n },\n});\n"],"names":["filterCache","set","cacheKey","filterCondition","value","get","mergeParams","_extends","sessionStorageCache","_isObject","remove","firstQueryCache","flag","_sessionStorageCache$","columnFoldCache","localStorageCache","_localStorageCache$ge","_isArray","EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperateDropdown","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","onChange","keys","content","_jsx","Fragment","children","Checkbox","Group","defaultValue","style","display","flexDirection","dataList","map","item","label","title","dataIndex","padding","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","EasyTable","forwardRef","ref","_props$initialPaginat","screenType","fbaHooks","useResponsivePoint","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","columnFoldConfig","asyncColumnRequest","_useState4","columnFoldOpen","setColumnFoldOpen","useMemo","cacheSwitch","location","pathname","getUuid","cacheParams","_useState5","columnFoldCacheValue","cacheKeyList","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","pageSize","initialPaginationParams","initRequest","undefined","paginationStatusRef","useRef","respOriginalDataRef","baseColumnsRef","_useState6","dynamicColumns","setDynamicColumns","columnsRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","_hooks","useCallbackRef","params","Promise","$return","$error","paramsAll","_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","serviceConfig","fbaUtils","removeFormValuesInvalidField","$await_5","current","onDataSourceChange","_get","useEffectCustom","hasPagination","getPaginationStatus","firstQueryFlag","setFieldsValue","initialValues","_extends2","clearQueryCondition","values","resetFields","updateQueryCondition","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","getRequestParams","getFieldsValue","onOpenColumnFoldModal","onCloseColumnFoldModal","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","columnFoldTriggerRender","columns","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","hidden","isFold","onChangeFoldColumnList","onChangeTableColumns","getTableColumns","setEnabledInitRequest","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onSetColumns","onFormFinish","isFull","_isUndefined","filterFixedFt","filterFixed","className","_classNames","paginationFixed","paginationData","useMemoCustom","showSizeChanger","showTotal","pagination","keyList","page","_params","_props$pagination","useUpdateEffect","_onInnerRequest","_onInnerRequest2","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","dynamicColumnsConfig","onChangeShowFoldKeyList","_jsxs","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","validateFields","$await_2","$If_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","text","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","index","find","keyItem","key","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","finalItem","foldColumnTarget","_props$columnFoldConf2","_props$columnFoldConf3","_props$columnFoldConf4","_props$columnFoldConf5","_props$columnFoldConf6","_props$columnFoldConf7","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","tableRender","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/cache.ts","@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/fold-operate-dropdown.tsx","@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 { isArray, isObject } from '@dimjs/lang';\nimport { localStorageCache, sessionStorageCache, TPlainObject } from '@flatbiz/utils';\n\nexport const filterCache = {\n set: (cacheKey: string, filterCondition: TPlainObject) => {\n const value = filterCache.get(cacheKey);\n const mergeParams = {\n ...value,\n ...filterCondition,\n };\n sessionStorageCache.set(`easy_tab_filter_${cacheKey}`, mergeParams);\n return mergeParams as TPlainObject;\n },\n get: (cacheKey: string) => {\n const value = sessionStorageCache.get(`easy_tab_filter_${cacheKey}`) as TPlainObject;\n return isObject(value) ? value : {};\n },\n remove: (cacheKey: string) => {\n sessionStorageCache.remove(`easy_tab_filter_${cacheKey}`);\n },\n};\n\nexport const firstQueryCache = {\n set: (cacheKey: string, flag: boolean) => {\n sessionStorageCache.set(`easy_tab_firstQuery_${cacheKey}`, { value: flag });\n },\n get: (cacheKey: string) => {\n const value = sessionStorageCache.get(`easy_tab_firstQuery_${cacheKey}`)?.value;\n return value === false ? false : true;\n },\n remove: (cacheKey: string) => {\n sessionStorageCache.remove(`easy_tab_firstQuery_${cacheKey}`);\n },\n};\n\nexport const columnFoldCache = {\n set: (cacheKey: string, value: string[]) => {\n localStorageCache.set(`easy_tab_columnFold_${cacheKey}`, { value });\n },\n get: (cacheKey: string) => {\n const value = localStorageCache.get(`easy_tab_columnFold_${cacheKey}`)?.value;\n return isArray(value) ? (value as string[]) : [];\n },\n remove: (cacheKey: string) => {\n localStorageCache.remove(`easy_tab_columnFold_${cacheKey}`);\n },\n};\n","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 cacheKey: 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 { Checkbox, Popover } from 'antd';\nimport { Fragment, useState, type CSSProperties, type ReactElement } from 'react';\nimport { columnFoldCache } from './cache';\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 columnFoldCache.set(props.cacheKey, keys);\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 { isArray, isString, isUndefined } from '@dimjs/lang';\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 { getUuid, 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';\n\nimport { columnFoldCache, filterCache, firstQueryCache } from './cache';\nimport { EasyTableContext } from './context';\nimport { FoldOperateDropdown } from './fold-operate-dropdown';\nimport './style.less';\nimport { type EasyTableProps, type EasyTableRefApi, type TEasyTableTableColumn } from './type';\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const screenType = fbaHooks.useResponsivePoint();\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const columnFoldConfig = props.columnFoldConfig;\n const asyncColumnRequest = props.asyncColumnRequest;\n\n const [columnFoldOpen, setColumnFoldOpen] = useState(false);\n\n const cacheKey = useMemo(() => {\n if (props.cacheKey) return props.cacheKey;\n if (props.cacheSwitch === true) {\n return location.pathname;\n }\n if (typeof props.cacheSwitch === 'string') {\n return props.cacheSwitch;\n }\n return getUuid();\n }, [props.cacheSwitch, props.cacheKey]);\n\n const cacheParams = filterCache.get(cacheKey);\n\n const [showFoldKeyList, setShowFoldKeyList] = useState<string[]>(() => {\n if (cacheKey) {\n const columnFoldCacheValue = columnFoldCache.get(cacheKey);\n const cacheKeyList = isArray(columnFoldCacheValue)\n ? columnFoldCacheValue.filter((item) => isString(item))\n : [];\n return cacheKeyList.length > 0 ? cacheKeyList : columnFoldConfig?.initSelectedKeys || [];\n } else {\n return columnFoldConfig?.initSelectedKeys || [];\n }\n });\n\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 firstQueryCache.set(cacheKey, false);\n setLoading(true);\n const paramsAll = filterCache.set(cacheKey, params);\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(paramsAll) : paramsAll;\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 const firstQueryFlag = firstQueryCache.get(cacheKey);\n form.setFieldsValue({\n ...props.initialValues,\n ...cacheParams,\n });\n if (initRequest || !firstQueryFlag) {\n if (hasPagination) {\n void onInnerRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...props.initialValues,\n ...cacheParams,\n });\n } else {\n void onInnerRequest(props.initialValues);\n }\n } else {\n filterCache.set(cacheKey, props.initialValues || {});\n }\n }, []);\n\n const clearQueryCondition = hooks.useCallbackRef((values?: TPlainObject) => {\n filterCache.remove(cacheKey);\n form.resetFields();\n if (values) {\n filterCache.set(cacheKey, values);\n form.setFieldsValue(values);\n }\n });\n\n const updateQueryCondition = hooks.useCallbackRef((values: TPlainObject) => {\n filterCache.set(cacheKey, 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((values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n filterCache.remove(cacheKey);\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 ...cacheParams,\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 = (): EasyTableRefApi => {\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, columns: TEasyTableTableColumn<TPlainObject>[]) => {\n if (props.columnFoldConfig?.triggerType === 'drawer') {\n return cloneElement(children, {\n onClick: onOpenColumnFoldModal,\n });\n }\n\n const foldColumnList = columns.filter((item: TAny) => {\n return !item.hidden && item.isFold && item.dataIndex;\n });\n\n return (\n <FoldOperateDropdown\n dataList={foldColumnList as { dataIndex: string; title: string }[]}\n onChange={onChangeFoldColumnList}\n cacheKey={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 setEnabledInitRequest: () => {\n firstQueryCache.set(cacheKey, false);\n },\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, cacheParams[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, cacheParams[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const filterFixedFt = screenType === 'xs' ? false : props.filterFixed;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': filterFixedFt,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = fbaHooks.useMemoCustom(() => {\n return {\n showSizeChanger: true,\n current: cacheParams[fieldNames.pageNo] || 1,\n pageSize: cacheParams[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, cacheParams, fieldNames.pageSize, cacheKey, pageSize, props.pagination, 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 const params = {\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n };\n filterCache.set(cacheKey, params);\n void onInnerRequest(params);\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]: cacheParams[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 cacheKey,\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 <div className={className}>{children}</div>\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 { filterCache } from './cache';\nimport { EasyTableContext } from './context';\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 cacheKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n getPaginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n\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 onReset = hooks.useCallbackRef(async () => {\n filterCache.remove(cacheKey);\n form.resetFields();\n form.setFieldsValue(initialValues);\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={initialValues}\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 { 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';\nimport { columnFoldCache } from './cache';\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 columnFoldCache.set(props.cacheKey, selectedRowKeys);\n }\n },\n } as TableRowSelection<TAny>;\n\n const columns: ColumnsType<TPlainObject> = [\n {\n title: '字段名称',\n dataIndex: 'title',\n render: (value, recrd) => {\n return recrd['_isFoldTitle'] || value;\n },\n },\n { title: '字段Key', dataIndex: 'dataIndex' },\n ];\n\n return (\n <Fragment>\n <Drawer\n title=\"选择字段\"\n open={props.open}\n onClose={props.onClose}\n width={'35%'}\n styles={{\n body: {\n padding: 15,\n },\n }}\n >\n <Table\n bordered\n size=\"small\"\n columns={columns}\n rowSelection={rowSelection}\n rowKey=\"dataIndex\"\n pagination={false}\n scroll={{ x: 'max-content' }}\n dataSource={props.dataList}\n />\n </Drawer>\n </Fragment>\n );\n};\n","import { 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 cacheKey: string;\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.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 { filterCache } from './cache';\nimport { EasyTableContext } from './context';\nimport { FoldOperate } from './fold-operate';\nimport {\n useColumnByAsyncColumnRequest,\n useColumnsAppendInnerColumn,\n useColumnsAppendTips,\n useColumnsToHidden,\n} from './hooks/columns';\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 const screenType = fbaHooks.useResponsivePoint() || '';\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 cacheKey,\n fieldNames,\n onRequest,\n tableDataSource,\n pageSize,\n tableTotal,\n loading,\n paginationFixed,\n onSetPaginationStatus,\n } = ctx;\n\n const cacheParams = filterCache.get(cacheKey);\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 = fbaHooks.useMemoCustom(() => {\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 cacheKey,\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]: cacheParams[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: cacheParams[fieldNames.pageNo] || 1,\n pageSize: cacheParams[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n // selectComponentClass: SmallSelect,\n };\n }, [\n cacheParams,\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\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 columnsNew = useMemo(() => {\n return columnsNew.map((item) => {\n if (!!item.fixed && screenType === 'xs') {\n item.fixed = undefined;\n }\n if (!!item.defaultValue && !item.render) {\n item.render = (value) => {\n return isUndefinedOrNull(value) || value == '' ? item.defaultValue : value;\n };\n }\n return item;\n });\n }, [columnsNew, screenType]);\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={cacheKey}\n initSelectedRowKeys={showFoldKeyList}\n />\n </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { firstQueryCache } from './cache';\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 setEnabledInitRequest: (cacheKey: string) => {\n firstQueryCache.set(cacheKey, false);\n },\n});\n"],"names":["filterCache","set","cacheKey","filterCondition","value","get","mergeParams","_extends","sessionStorageCache","_isObject","remove","firstQueryCache","flag","_sessionStorageCache$","columnFoldCache","localStorageCache","_localStorageCache$ge","_isArray","EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","FoldOperateDropdown","props","_useState","useState","initSelectedRowKeys","selectedRowKeys","setSelectedRowKeys","onChange","keys","content","_jsx","Fragment","children","Checkbox","Group","defaultValue","style","display","flexDirection","dataList","map","item","label","title","dataIndex","padding","onChangeAll","e","target","checked","Popover","length","placement","overlayClassName","EasyTable","forwardRef","ref","_props$initialPaginat","screenType","fbaHooks","useResponsivePoint","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","columnFoldConfig","asyncColumnRequest","_useState4","columnFoldOpen","setColumnFoldOpen","useMemo","cacheSwitch","location","pathname","getUuid","cacheParams","_useState5","columnFoldCacheValue","cacheKeyList","filter","_isString","initSelectedKeys","showFoldKeyList","setShowFoldKeyList","pageSize","initialPaginationParams","initRequest","undefined","paginationStatusRef","useRef","respOriginalDataRef","baseColumnsRef","_useState6","dynamicColumns","setDynamicColumns","columnsRef","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","_hooks","useCallbackRef","params","Promise","$return","$error","paramsAll","_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","serviceConfig","fbaUtils","removeFormValuesInvalidField","$await_5","current","onDataSourceChange","_get","useEffectCustom","hasPagination","getPaginationStatus","firstQueryFlag","setFieldsValue","initialValues","_extends2","clearQueryCondition","values","resetFields","updateQueryCondition","getPaginationData","_pageSize","_ref","_ref2","onResetRequest","getRequestParams","getFieldsValue","onOpenColumnFoldModal","onCloseColumnFoldModal","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","columnFoldTriggerRender","columns","_props$columnFoldConf","triggerType","cloneElement","onClick","foldColumnList","hidden","isFold","onChangeFoldColumnList","onChangeTableColumns","getTableColumns","setEnabledInitRequest","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onSetColumns","onFormFinish","isFull","_isUndefined","filterFixedFt","filterFixed","className","_classNames","paginationFixed","paginationData","useMemoCustom","showSizeChanger","showTotal","pagination","keyList","page","_params","_props$pagination","useUpdateEffect","_onInnerRequest","_onInnerRequest2","wrapperClassName","isInline","wrapperStyle","overflowY","Provider","tableDataSource","tableTotal","foldKeys","dynamicColumnsConfig","onChangeShowFoldKeyList","_jsxs","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","validateFields","$await_2","$If_1","formRowChildren","defaultRightList","ButtonWrapper","type","htmlType","text","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","changeFolditem","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","index","find","keyItem","key","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","finalItem","foldColumnTarget","_props$columnFoldConf2","_props$columnFoldConf3","_props$columnFoldConf4","_props$columnFoldConf5","_props$columnFoldConf6","_props$columnFoldConf7","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","fixed","tableRender","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
@@ -14,10 +14,9 @@ import './../switch-wrapper/index.css';
|
|
|
14
14
|
import './../upload-wrapper/index.css';
|
|
15
15
|
import './../table-cell-render/index.css';
|
|
16
16
|
import './../button-operate/index.css';
|
|
17
|
-
import './../
|
|
17
|
+
import './../flex-layout/index.css';
|
|
18
18
|
import './../dialog-confirm/index.css';
|
|
19
19
|
import './../dialog-modal/index.css';
|
|
20
|
-
import './../flex-layout/index.css';
|
|
21
20
|
import './../tag-list-render/index.css';
|
|
22
21
|
import './../tag-list-select/index.css';
|
|
23
22
|
import './../input-wrapper/index.css';
|
package/esm/index.js
CHANGED
|
@@ -21,7 +21,6 @@ import './bootstrap/index.css';
|
|
|
21
21
|
import './fba-app/index.css';
|
|
22
22
|
import './box-grid/index.css';
|
|
23
23
|
import './button-operate/index.css';
|
|
24
|
-
import './dropdown-menu-wrapper/index.css';
|
|
25
24
|
import './dialog-confirm/index.css';
|
|
26
25
|
import './dialog-modal/index.css';
|
|
27
26
|
import './card-layout/index.css';
|
|
@@ -71,6 +70,7 @@ import './drag-form-list/index.css';
|
|
|
71
70
|
import './form-item-group/index.css';
|
|
72
71
|
import './drag-table/index.css';
|
|
73
72
|
import './drawer-wrapper/index.css';
|
|
73
|
+
import './dropdown-menu-wrapper/index.css';
|
|
74
74
|
import './dynamic-node/index.css';
|
|
75
75
|
import './easy-table/index.css';
|
|
76
76
|
import './pagination-wrapper/index.css';
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './../button-operate/index.css';
|
|
3
|
-
import './../button-wrapper/index.css';
|
|
4
3
|
import './../config-provider-wrapper/index.css';
|
|
5
4
|
import './../fba-hooks/index.css';
|
|
6
5
|
import './../types/index.css';
|
|
7
6
|
import './../fba-utils/index.css';
|
|
8
|
-
import './../
|
|
7
|
+
import './../button-wrapper/index.css';
|
|
8
|
+
import './../flex-layout/index.css';
|
|
9
9
|
import './../dialog-confirm/index.css';
|
|
10
10
|
import './../dialog-modal/index.css';
|
|
11
|
-
import './../flex-layout/index.css';
|
|
12
11
|
import './../tag-list-render/index.css';
|
|
13
12
|
import './../tag-list-select/index.css';
|
|
14
13
|
import './index.css';
|
package/esm/tree-modal/index.js
CHANGED
|
@@ -7,13 +7,13 @@ import './../text-overflow/index.css';
|
|
|
7
7
|
import './../tree-wrapper/index.css';
|
|
8
8
|
import './../request-status/index.css';
|
|
9
9
|
import './../button-operate/index.css';
|
|
10
|
-
import './../button-wrapper/index.css';
|
|
11
10
|
import './../config-provider-wrapper/index.css';
|
|
12
11
|
import './../types/index.css';
|
|
13
12
|
import './../fba-utils/index.css';
|
|
14
|
-
import './../
|
|
13
|
+
import './../button-wrapper/index.css';
|
|
15
14
|
import './../dialog-confirm/index.css';
|
|
16
15
|
import './../dialog-modal/index.css';
|
|
16
|
+
import './../dropdown-menu-wrapper/index.css';
|
|
17
17
|
import './../input-search-wrapper/index.css';
|
|
18
18
|
import './index.css';
|
|
19
19
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
@@ -8,13 +8,13 @@ import './../text-overflow/index.css';
|
|
|
8
8
|
import './../tree-wrapper/index.css';
|
|
9
9
|
import './../request-status/index.css';
|
|
10
10
|
import './../button-operate/index.css';
|
|
11
|
-
import './../button-wrapper/index.css';
|
|
12
11
|
import './../config-provider-wrapper/index.css';
|
|
13
12
|
import './../types/index.css';
|
|
14
13
|
import './../fba-utils/index.css';
|
|
15
|
-
import './../
|
|
14
|
+
import './../button-wrapper/index.css';
|
|
16
15
|
import './../dialog-confirm/index.css';
|
|
17
16
|
import './../dialog-modal/index.css';
|
|
17
|
+
import './../dropdown-menu-wrapper/index.css';
|
|
18
18
|
import './../input-search-wrapper/index.css';
|
|
19
19
|
import './index.css';
|
|
20
20
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
@@ -3,5 +3,5 @@ import './../fba-hooks/index.css';
|
|
|
3
3
|
import './../request-status/index.css';
|
|
4
4
|
import './index.css';
|
|
5
5
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import e from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import t from"@ant-design/icons/es/icons/CaretDownFilled";import{extend as l}from"@dimjs/utils/cjs/extend";import{hooks as a}from"@wove/react/cjs/hooks";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{isObject as i}from"@dimjs/lang/cjs/is-object";import{a as o,_ as u}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as s,treeToTiledMap as c,isNotEmptyArray as f,treeToArray as d,isUndefinedOrNull as v}from"@flatbiz/utils";import{TreeSelect as p,Button as m}from"antd";import{dequal as h}from"dequal";import{useState as S,useRef as g,useMemo as b,createElement as C}from"react";import{fbaHooks as y}from"../fba-hooks/index.js";import{RequestStatus as q}from"../request-status/index.js";import{Model as w}from"@dimjs/model-react";import{jsx as L}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var
|
|
6
|
+
import e from"@ant-design/icons/es/icons/RedoOutlined";import{classNames as r}from"@dimjs/utils/cjs/class-names";import t from"@ant-design/icons/es/icons/CaretDownFilled";import{extend as l}from"@dimjs/utils/cjs/extend";import{hooks as a}from"@wove/react/cjs/hooks";import{isArray as n}from"@dimjs/lang/cjs/is-array";import{isObject as i}from"@dimjs/lang/cjs/is-object";import{a as o,_ as u}from"../_rollupPluginBabelHelpers-a0769acd.js";import{toArray as s,treeToTiledMap as c,isNotEmptyArray as f,treeToArray as d,isUndefinedOrNull as v}from"@flatbiz/utils";import{TreeSelect as p,Button as m}from"antd";import{dequal as h}from"dequal";import{useState as S,useRef as g,useMemo as b,createElement as C}from"react";import{fbaHooks as y}from"../fba-hooks/index.js";import{RequestStatus as q}from"../request-status/index.js";import{Model as w}from"@dimjs/model-react";import{jsx as L}from"react/jsx-runtime";import"../use-responsive-point-21b8c601.js";var T={treeSelectorList:[],treeSelectorTiledMap:{},queryIsEmpty:false};var R={actions:{setSelectBoxList:function e(r){return function(e){e.treeSelectorList=r.treeSelectorList||[];e.treeSelectorTiledMap=r.treeSelectorTiledMap||{};e.requestStatus="request-success"}},resetSelectBoxList:function e(){return function(e){e.treeSelectorList=[];e.treeSelectorTiledMap={}}},changeRequestStatus:function e(r){return function(e){e.requestStatus=r}}},state:T};var j={};var k=function e(r){if(!j[r]){j[r]=w(R)}return j[r]};var x=function e(r,t){var l=[];var a=t[r];while(a){var n=a.pId;a=t[n];if(a){l.push(n)}}return l};var M=function e(r,t){if(r.length===0)return[];var l=[];r.forEach((function(e){var r=x(e,t);l.push.apply(l,r)}));return Array.from(new Set(l))};var E=["serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","treeSelectorList","requestMessageConfig","modelKey","value","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","selectedParentCheckedAllChildrenList","fieldNames","onChange","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys"];var I=function w(T){var R=T.serviceConfig,j=T.effectDependencyList,x=T.onTreeSelectorListChange,I=T.onTreeSelectorRequestError,A=T.treeSelectorList,N=T.requestMessageConfig,D=T.modelKey,P=T.value,O=T.labelInValue,B=T.labelInValueFieldNames,K=T.onTreeItemDataAdapter,V=T.selectedParentCheckedAllChildrenList,F=V===void 0?true:V,H=T.fieldNames,W=T.onChange,_=T.treeDefaultExpandAll,z=T.showAllOption,G=T.initRootExpand,J=T.treeDefaultExpandedKeys,Q=o(T,E);var U=Object.prototype.hasOwnProperty.call(T,"treeSelectorList");var X=R||{};var Y=j||[];var Z=y.useSafeState(false),$=Z[0],ee=Z[1];var re=S(),te=re[0],le=re[1];var ae=k(D).useStore(),ne=ae[0],ie=ae[1];var oe="request-progress-"+D;var ue=Q.treeCheckable||Q.multiple;var se=g(true);var ce=b((function(){if(Q.treeCheckStrictly)return true;return O}),[O,Q.treeCheckStrictly]);var fe=b((function(){return u({label:"label",value:"value",children:"children",disabled:"disabled"},H)}),[H]);var de=b((function(){return u({label:"label",value:"value"},B)}),[B]);var ve=b((function(){if(z){var e=z===true;return{label:e?"全部":z.label,value:e?"":z.value}}return null}),[z]);var pe=S(),me=pe[0],he=pe[1];var Se=b((function(){return s(T.value).map((function(e){if(i(e)){return ce?e[de.value]:e[fe.value]}return e}))}),[fe.value,ce,de.value,T.value]);y.useEffectCustom((function(){if(ne.treeSelectorList.length>0){var e=[];if(se.current){se.current=false;if(J){e=J}else if(_){var r=Object.keys(ne.treeSelectorTiledMap).map((function(e){var r;return(r=ne.treeSelectorTiledMap[e])==null?void 0:r[fe.value]}));e=r}else if(G&&ne.treeSelectorList.length===1){e=[ne.treeSelectorList[0][fe.value]]}le(e)}else{if(!me){var t=M(Se,ne.treeSelectorTiledMap);le(t)}}}}),[P,ne.treeSelectorList]);var ge=function e(r){return r===""||v(r)};var be=function e(r){var t=X.onRequestResultAdapter?X.onRequestResultAdapter(r):r;if(t&&!n(t)){console.warn("待渲染数据为非数组结构",t);return[]}return t||[]};var Ce=a.useCallbackRef((function(){return new Promise((function(e,r){var t,a,n,i,o;if(!X.onRequest){return r(new Error("onRequest 调用接口服务不能为空"))}t=X.requiredParamsKeys||[];a=l({},X.params);n=t.find((function(e){return ge(a[e])}));if(n){void ie.changeRequestStatus("no-dependencies-params");console.warn("TreeSelectorWrapper组件:参数:"+t.join("、")+"不能为空");return e()}var u=function(){try{return e()}catch(e){return r(e)}};var s=function(e){try{ee(false);window[oe]=false;void ie.changeRequestStatus("request-error");I==null?void 0:I(e);return u()}catch(e){return r(e)}};try{ee(true);window[oe]=true;void ie.changeRequestStatus("request-progress");return Promise.resolve(X.onRequest==null?void 0:X.onRequest(a)).then((function(e){try{i=e;o=be(i);ee(false);window[oe]=false;ye(o||[]);return u()}catch(e){return s(e)}}),s)}catch(e){s(e)}}))}));a.useCustomCompareEffect((function(){if(U)return;if(Y.length){ye([]);void Ce();return}var e=k(D).getState();if(e.requestStatus==="request-success"){return}if(!window[oe]){void Ce();return}}),Y,h);var ye=a.useCallbackRef((function(e){var r;if((e==null?void 0:e.length)===0&&ne.treeSelectorList.length===0){void ie.setSelectBoxList({treeSelectorList:[],treeSelectorTiledMap:{}});x==null?void 0:x([]);return}var t=ve?(r={},r[fe.label]=ve.label,r[fe.value]=ve.value,r):undefined;var l=z?[t].concat(e):e;void ie.setSelectBoxList({treeSelectorList:l,treeSelectorTiledMap:c(l,{value:fe.value,children:fe.children},"pId")});x==null?void 0:x(e)}));y.useEffectCustom((function(){if(U){ye(A||[])}}),[A]);var qe=a.useCallbackRef((function(e){le(e)}));var we=a.useCallbackRef((function(){void Ce()}));var Le=a.useCallbackRef((function(e,r,t){var l=s(e);if(Q.treeCheckStrictly){if(F&&t.checked){var a=ne.treeSelectorTiledMap[t==null?void 0:t.triggerValue];if(f(a[fe.children])){l=d([a],fe.children).map((function(e){return e[fe.value]}))}else{l=e==null?void 0:e.map((function(e){return e.value}))}}else{l=e==null?void 0:e.map((function(e){return e.value}))}}if(ce){var n=l.map((function(e){var r;var t=ne.treeSelectorTiledMap[e];return r={},r[de.label]=t[fe.label],r[de.value]=t[fe.value],r}));if(ue){W==null?void 0:W(n,n,t)}else{W==null?void 0:W(n[0],n[0],t)}}else{var i=l.map((function(e){return ne.treeSelectorTiledMap[e]}));if(ue){W==null?void 0:W(l,i,t)}else{W==null?void 0:W(l[0],i[0],t)}}}));var Te=a.useCallbackRef((function(e){if(!e)return null;return e.map((function(e){var r=(K==null?void 0:K(u({},e)))||e;var t=r[fe.children];var l=r[fe.value];var a=r[fe.label];var n=r[fe.disabled]?r[fe.disabled]:r.disabled;return C(p.TreeNode,u({},r,{disabled:n,value:l,title:a,key:""+l}),t&&t.length>0&&Te(t))}))}));var Re=function e(r){he(r);var t=[];if(!r){he(undefined);t=Se}else{Object.keys(ne.treeSelectorTiledMap).forEach((function(e){var l=ne.treeSelectorTiledMap[e];var a=l==null?void 0:l[fe.label];if(a!=null&&a.includes(r)){t.push(l[fe.value])}}))}var l=M(t,ne.treeSelectorTiledMap);le(l)};var je=ue?Se:Se[0];return L(p,u({searchValue:me,dropdownStyle:{maxHeight:400,overflow:"auto"},showSearch:true,treeLine:{showLeafIcon:false},treeNodeFilterProp:"title",switcherIcon:L(t,{}),popupMatchSelectWidth:false},Q,{className:r("v-tree-select-wrapper",Q.className),popupClassName:r("v-tree-select-wrapper-dropdown",Q.popupClassName),onChange:Le,treeExpandedKeys:te,value:je,onSearch:Re,loading:$,onTreeExpand:qe,style:u({width:"100%"},Q.style),suffixIcon:ne.requestStatus==="request-error"?L(e,{spin:$,onClick:we}):undefined,notFoundContent:L(q,{status:ne.requestStatus,messageConfig:N,loading:$,errorButton:L(m,{type:"primary",onClick:we,children:"重新获取数据"})}),children:Te(ne.treeSelectorList)}))};export{I as TreeSelectorWrapper};
|
|
7
7
|
//# sourceMappingURL=index.js.map
|