@flatbiz/antd 4.4.12 → 4.4.14
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/ace-editor-groovy/index.js +1 -1
- package/esm/ace-editor-groovy/index.js.map +1 -1
- package/esm/ace-editor-java/index.js +1 -1
- package/esm/ace-editor-java/index.js.map +1 -1
- package/esm/ace-editor-json/index.js +1 -1
- package/esm/ace-editor-json/index.js.map +1 -1
- package/esm/ace-editor-mysql/index.js +1 -1
- package/esm/ace-editor-mysql/index.js.map +1 -1
- package/esm/ace-editor-xml/index.js +1 -1
- package/esm/ace-editor-xml/index.js.map +1 -1
- package/esm/date-picker-wrapper/index.js +1 -1
- package/esm/date-picker-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper/index.js +1 -1
- package/esm/date-range-picker-wrapper/index.js.map +1 -1
- package/esm/date-range-picker-wrapper-form-item/index.js +2 -1
- package/esm/date-range-picker-wrapper-form-item/index.js.map +1 -1
- package/esm/drag-form-list/index.css +1 -1
- package/esm/drag-form-list/index.js +4 -1
- package/esm/drag-form-list/index.js.map +1 -1
- package/esm/easy-form/index.js +2 -1
- package/esm/easy-form/index.js.map +1 -1
- package/esm/easy-table/index.js +5 -2
- package/esm/easy-table/index.js.map +1 -1
- package/esm/file-export/index.js +1 -1
- package/esm/file-export/index.js.map +1 -1
- package/esm/file-import/index.js.map +1 -1
- package/esm/form-item-text/index.js +2 -1
- package/esm/form-item-text/index.js.map +1 -1
- package/esm/form-item-wrapper/index.css +1 -0
- package/esm/form-item-wrapper/index.js +2 -1
- package/esm/form-item-wrapper/index.js.map +1 -1
- package/esm/form-list-wrapper/index.js +4 -1
- package/esm/form-list-wrapper/index.js.map +1 -1
- package/esm/form-wrapper/index.css +1 -0
- package/esm/form-wrapper/index.js +2 -1
- package/esm/form-wrapper/index.js.map +1 -1
- package/esm/index.js +5 -4
- package/esm/modal-action/index.js.map +1 -1
- package/esm/pre-defined-class-name/index.js +1 -1
- package/esm/pre-defined-class-name/index.js.map +1 -1
- package/esm/upload-wrapper/index.js.map +1 -1
- package/index.d.ts +235 -77
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\n// export const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n// modelKey: string;\n// onRequest: (params?: TPlainObject) => void;\n// tableList: TPlainObject[];\n// tableTotal: number;\n// loading?: boolean;\n// fieldNames: TPlainObject;\n// pageSize: number;\n// initRequest: boolean;\n// initialValues: TPlainObject;\n// onSetPaginationStatus: (status: boolean) => void;\n// paginationStatus: boolean;\n// onFormFinish?: (values?: TPlainObject) => void;\n// form: FormInstance;\n// getEasyTableRef: () => EasyTableRefApi;\n// paginationFixed: boolean;\n// foldKeys: string[];\n// }>();\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableDataSource?: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n dynamicColumns?: TEasyTableTableColumn<TPlainObject>[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * 例如:\n * fieldNames={{\n * list: 'aList',\n * total: 'aTotal',\n * }}\n * serviceConfig={{\n * url: '/v1/board/list',\n * requestResultAdapter: (respData) => {\n * return {\n * aList: respData.data.rows,\n * aTotal: respData.page.total,\n * };\n * },\n * }}\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n /**\n * 动态列自定义渲染\n * ```\n * 1. respData: 接口返回数据\n * 2. columns: Table columns配置项\n * ```\n *\n */\n dynamicColumsAdapter?: (\n respData?: TAny,\n columns?: TEasyTableTableColumn<TPlainObject>[],\n ) => TEasyTableTableColumn<TPlainObject>[] | undefined;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /**\n * 字段映射,默认值:{ list:'list', total:'total', pageNo:'pageNo', pageSize:'pageSize' }\n * ```\n * 1. list、total用于解析接口响应数据,可以配置多级,例如:{ list: 'data.rows', total: 'page.total' }\n * 2. pageNo、pageSize用于接口分页入参Key定义,只能一级,例如:pageNo: 'page'\n * ```\n */\n fieldNames?: {\n list?: string;\n total?: string;\n pageNo?: string;\n pageSize?: string;\n };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n /** 表格数据变更回调 */\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /** 自定义处理服务异常 */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * 2. 取消内边距\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n let respDataNew: TPlainObject = respData;\n if (requestResultAdapter) {\n respDataNew = requestResultAdapter(respData);\n }\n if (dynamicColumsAdapter) {\n const dynamicColumns = dynamicColumsAdapter(respData, baseColumnsRef.current);\n /** 不要添加默认值 */\n setDynamicColumns(dynamicColumns);\n }\n const respList = get(respDataNew, fieldNames.list);\n setDataSource(isArray(respList) ? respList : []);\n setTotal(get(respDataNew, fieldNames.total));\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n const onSetBaseColumns = (base) => {\n baseColumnsRef.current = base;\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableDataSource: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n dynamicColumns,\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={wrapperClassName} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n formClassName?: string;\n formStyle?: CSSProperties;\n /** filter Form 外层 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};\n\n/**\n * 过滤条件\n *\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTableFilter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,默认重启按钮触发请求,默认值:true\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName,\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n return (\n <BlockLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <Form\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={classNames(\n formClassName,\n preDefinedClassName.form.label_width_80,\n preDefinedClassName.form.formItemGap8,\n preDefinedClassName.form.label_align_right,\n )}\n style={props.formStyle}\n >\n {props.isPure ? (\n children\n ) : (\n <FormGrid.Row gutter={[15, 0]} gridSize={props.formGridSize}>\n {formRowChildren}\n </FormGrid.Row>\n )}\n </Form>\n </BlockLayout>\n );\n};\n","import { useContext } from 'react';\nimport { EasyTableContext } from './context';\n\n/**\n * 在 EasyTable子组件内才可使用\n * @returns\n */\nexport const useEasyTable = () => {\n const ctx = useContext(EasyTableContext);\n return ctx.getEasyTableRef();\n};\n\n/**\n *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useContext, useMemo } from 'react';\nimport { BlockLayout } from '../block-layout';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport { TEasyTableTableColumn } from './type';\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @version 4.4.6\n * ```\n * 1. true:获取数据后再初始化渲染表格(可用于实现表格中defaultXxxx相关功能的使用)\n * ```\n */\n isSync?: boolean;\n /**\n * 空效果显示尺寸,默认值:small\n * @version 4.4.6\n */\n emptyShowSize?: 'small' | 'large';\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, isSync, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableDataSource,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n dynamicColumns,\n } = ctx;\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n fbaHooks.useEffectCustom(() => {\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, [props.columns]);\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\n [fieldNames.pageSize]: pagination.pageSize,\n [fieldNames.pageNo]: pagination.current,\n });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (!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 fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n const columns = dynamicColumns ? dynamicColumns : props.columns;\n\n return columns.map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n });\n }, [dynamicColumns, props.columns]);\n\n const tableRender = () => {\n if (isSync && !dataSource) {\n /** loading表格 */\n return (\n <Fragment>\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n columns={columns}\n rowKey={rowKey}\n loading={true}\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={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </Fragment>\n );\n }\n return (\n <Fragment>\n {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n </Fragment>\n );\n };\n\n return (\n <BlockLayout\n className={classNames(\n 'easy-table-table',\n { 'ett-empty-show-small': props.emptyShowSize === 'small' },\n props.tableWrapperClassName,\n )}\n style={props.tableWrapperStyle}\n >\n {tableRender()}\n </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提示高windows下table左右滚动体验\n *\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n * @param props\n * @returns\n *\n *```\n *1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 Form.Item\n * <EasyTable.Filter>\n * <FormCol span={12}><Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <Form.Item name=\"field1\" label=\"条件1\">xxx</Form.Item>\n * }}\n * </EasyTable.Filter>\n *2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n *3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n *4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n *5. Filter 子节点包含 hidden = true 会被忽略\n *6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","baseColumnsRef","_useState5","dynamicColumns","setDynamicColumns","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","_respData","respDataNew","_dynamicColumns","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","respData","current","onDataSourceChange","_get","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","Provider","value","tableDataSource","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","defaultRightList","hidden","ButtonWrapper","type","htmlType","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","OperateCol","BlockLayout","autoComplete","onFinish","preDefinedClassName","label_width_80","formItemGap8","label_align_right","formStyle","isPure","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","rowKey","isSync","otherProps","_objectWithoutPropertiesLoose","_excluded","fbaHooks","useEffectCustom","columns","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","hasPagination","tooltip","tipsWrapperProps","title","_excluded2","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","tableRender","Fragment","Table","scroll","x","bordered","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/easy-table/context.ts","@flatbiz/antd/src/easy-table/model.ts","@flatbiz/antd/src/easy-table/easy-table.tsx","@flatbiz/antd/src/easy-table/filter.tsx","@flatbiz/antd/src/easy-table/hooks.ts","@flatbiz/antd/src/easy-table/table.tsx","@flatbiz/antd/src/easy-table/index.ts"],"sourcesContent":["import { noop, TPlainObject } from '@flatbiz/utils';\nimport { FormInstance } from 'antd';\nimport { createContext } from 'react';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\n// export const [useEasyTableCtx, EasyTableCtxProvider] = createCtx<{\n// modelKey: string;\n// onRequest: (params?: TPlainObject) => void;\n// tableList: TPlainObject[];\n// tableTotal: number;\n// loading?: boolean;\n// fieldNames: TPlainObject;\n// pageSize: number;\n// initRequest: boolean;\n// initialValues: TPlainObject;\n// onSetPaginationStatus: (status: boolean) => void;\n// paginationStatus: boolean;\n// onFormFinish?: (values?: TPlainObject) => void;\n// form: FormInstance;\n// getEasyTableRef: () => EasyTableRefApi;\n// paginationFixed: boolean;\n// foldKeys: string[];\n// }>();\n\nexport type EditableFieldContextContextApi = {\n modelKey: string;\n onRequest: (params?: TPlainObject) => void;\n tableDataSource?: TPlainObject[];\n tableTotal: number;\n loading?: boolean;\n fieldNames: TPlainObject;\n pageSize: number;\n initRequest: boolean;\n initialValues: TPlainObject;\n onSetPaginationStatus: (status: boolean) => void;\n paginationStatus: boolean;\n onFormFinish?: (values?: TPlainObject) => void;\n form: FormInstance;\n getEasyTableRef: () => EasyTableRefApi;\n paginationFixed: boolean;\n foldKeys: string[];\n dynamicColumns?: TEasyTableTableColumn<TPlainObject>[];\n onSetBaseColumns: (baseColumns?: TEasyTableTableColumn<TPlainObject>[]) => void;\n};\n\nexport const EasyTableContext = createContext<EditableFieldContextContextApi>({\n onRequest: noop,\n tableList: [],\n getEasyTableRef: () => {\n //\n },\n} as unknown as EditableFieldContextContextApi);\n","import { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\n\nexport type ModelState = {\n queryCondition: TPlainObject;\n isInit: boolean;\n};\n\ntype ModelActionParams = {\n updateFilterCondition?: Partial<ModelState['queryCondition']>;\n resetFilterCondition?: TPlainObject;\n updateInitStatus: void;\n};\n\nconst defaultState: ModelState = {\n queryCondition: {},\n isInit: true,\n};\n\nconst _EasyTableModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n updateFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...state.queryCondition,\n ...params,\n };\n };\n },\n resetFilterCondition: (params) => {\n return (state) => {\n state.queryCondition = {\n ...defaultState.queryCondition,\n ...params,\n };\n };\n },\n updateInitStatus: () => {\n return (state) => {\n state.isInit = false;\n };\n },\n },\n state: defaultState,\n};\n\nconst easyTableModels: Record<string, API<ModelType<ModelState, ModelActionParams, TAny>>> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = selectorWrapperModel('key值').useStore();\n * ```\n */\nexport const easyTableModel = (key: string) => {\n if (!easyTableModels[key]) {\n easyTableModels[key] = Model(_EasyTableModel);\n }\n return easyTableModels[key];\n};\n","import { isArray, isUndefined } from '@dimjs/lang';\nimport { cloneState } from '@dimjs/model';\nimport { classNames, get } from '@dimjs/utils';\nimport { TAny, TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Form, FormInstance, message, PaginationProps } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { PaginationWrapper } from '../pagination-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport './style.less';\nimport { EasyTableRefApi, TEasyTableTableColumn } from './type';\n\ntype EasyTableServiceConfig = {\n /** 接口配置 */\n onRequest: (params?: TPlainObject) => Promise<TPlainObject | TPlainObject[]>;\n /** 请求参数处理 */\n requestParamsAdapter?: (params: TPlainObject) => TPlainObject;\n /**\n * 接口相应数据处理\n * ```\n * 返回数据为对象,包含两个字段\n * 1. 表格列表数据 - Array\n * 2. 表格条数总数 - Number\n * 其中 字段key 命名会通过 fieldNames 进行转义\n * 例如:\n * fieldNames={{\n * list: 'aList',\n * total: 'aTotal',\n * }}\n * serviceConfig={{\n * url: '/v1/board/list',\n * requestResultAdapter: (respData) => {\n * return {\n * aList: respData.data.rows,\n * aTotal: respData.page.total,\n * };\n * },\n * }}\n * ```\n */\n requestResultAdapter?: (params: TAny) => TPlainObject;\n /**\n * 动态列自定义渲染\n * ```\n * 1. respData: 接口返回数据\n * 2. columns: Table columns配置项\n * ```\n *\n */\n dynamicColumsAdapter?: (\n respData?: TAny,\n columns?: TEasyTableTableColumn<TPlainObject>[],\n ) => TEasyTableTableColumn<TPlainObject>[] | undefined;\n};\n\nexport type EasyTableProps = {\n className?: string;\n style?: CSSProperties;\n children: ReactElement | ReactElement[] | ((dataSource?: TAny) => ReactElement);\n /**\n * EasyTable唯一值,可用于缓存查询条件\n * @deprecated 已过时,如果需要缓存数据请设置 cacheSwitch 参数\n */\n modelKey?: string;\n /**\n * 缓存查询条件开关,默认false\n * ```\n * 是否缓存表格查询条件,在路由跳转回来时,不会丢失\n * ```\n */\n cacheSwitch?: boolean;\n /** 接口数据配置 */\n serviceConfig: EasyTableServiceConfig;\n /**\n * 1. 查询条件Form initialValues\n * 2. 接口其他参数,例如常量类型\n */\n initialValues?: TPlainObject;\n /**\n * 分页初始化参数,默认值: pageSize = 10\n * @deprecated 已过时 4.3.0版本移除,使用 pageSize 赋值\n */\n initialPaginationParams?: { pageSize?: number };\n /** 分页单页条数,默认值:10 */\n pageSize?: number;\n /**\n * 字段映射,默认值:{ list:'list', total:'total', pageNo:'pageNo', pageSize:'pageSize' }\n * ```\n * 1. list、total用于解析接口响应数据,可以配置多级,例如:{ list: 'data.rows', total: 'page.total' }\n * 2. pageNo、pageSize用于接口分页入参Key定义,只能一级,例如:pageNo: 'page'\n * ```\n */\n fieldNames?: {\n list?: string;\n total?: string;\n pageNo?: string;\n pageSize?: string;\n };\n /** 初始化是否请求,默认值:true */\n initRequest?: boolean;\n /** 表格数据变更回调 */\n onDataSourceChange?: (dataSource: TAny) => void;\n /** 如果自定义查询按钮,可设置 Form onFinish */\n onFormFinish?: (values?: TPlainObject) => void;\n /** 在父节点高度下,上下铺满;默认值:true */\n isFull?: boolean;\n /** 查询条件固定,不随滚动条滚动 */\n filterFixed?: boolean;\n /** 分页区域固定,不随滚动条滚动 */\n paginationFixed?: boolean;\n /**\n * 1. 配合paginationFixed=true一起使用有效果\n * 2. 当使用Table内的pagination时,在EasyTable.Table中配置分页属性\n */\n pagination?: PaginationProps;\n /**\n * 查询条件展开、收起,被收起key数组;数组内容为EasyTable.Filter 子节点key值\n */\n foldKeys?: string[];\n /** 自定义处理服务异常 */\n onRequestErrorHandle?: (error) => void;\n /**\n * 是否inline模式\n * ```\n * 1. 缩短 EasyTable.Filter 与 EasyTable.Table 之间的距离\n * 2. 取消内边距\n * ```\n */\n isInline?: boolean;\n /** Form 实例 */\n form?: FormInstance;\n};\n\nexport const EasyTable = forwardRef<EasyTableRefApi, EasyTableProps>((props, ref) => {\n const [dataSource, setDataSource] = useState<TPlainObject[]>();\n const [total, setTotal] = useState<number>(0);\n const [loading, setLoading] = useState<boolean>(false);\n const easyTableId = hooks.useId(undefined, 'easy-table-key');\n\n const modelKey = useMemo(() => {\n return props.cacheSwitch ? location.pathname : easyTableId;\n }, [easyTableId, props.cacheSwitch]);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n const pageSize = props.pageSize || props.initialPaginationParams?.pageSize || 10;\n const initRequest = props.initRequest === undefined ? true : props.initRequest;\n const [paginationStatus, setPaginationStatus] = useState(false);\n const respOriginalDataRef = useRef<TAny>();\n const baseColumnsRef = useRef<TEasyTableTableColumn<TPlainObject>[]>([]);\n const [dynamicColumns, setDynamicColumns] = useState<TEasyTableTableColumn<TPlainObject>[]>();\n\n const fieldNames = {\n list: 'list',\n total: 'total',\n pageNo: 'pageNo',\n pageSize: 'pageSize',\n ...props.fieldNames,\n };\n\n const [form] = Form.useForm(props.form);\n\n const onInnerRequest = hooks.useCallbackRef(async (params) => {\n try {\n setLoading(true);\n const allState = await actions.updateFilterCondition(params);\n const queryCondition = cloneState(allState.queryCondition || {});\n const { requestParamsAdapter, onRequest, requestResultAdapter, dynamicColumsAdapter } =\n props.serviceConfig;\n const paramsNew = requestParamsAdapter ? requestParamsAdapter(queryCondition) : queryCondition;\n const respData = (await onRequest(paramsNew)) || {};\n respOriginalDataRef.current = respData;\n props.onDataSourceChange?.(respData);\n let respDataNew: TPlainObject = respData;\n if (requestResultAdapter) {\n respDataNew = requestResultAdapter(respData);\n }\n if (dynamicColumsAdapter) {\n const dynamicColumns = dynamicColumsAdapter(respData, baseColumnsRef.current);\n /** 不要添加默认值 */\n setDynamicColumns(dynamicColumns);\n }\n const respList = get(respDataNew, fieldNames.list);\n setDataSource(isArray(respList) ? respList : []);\n setTotal(get(respDataNew, fieldNames.total));\n setLoading(false);\n } catch (error) {\n setLoading(false);\n if (props.onRequestErrorHandle) {\n props.onRequestErrorHandle(error);\n } else {\n void message.error(error.message);\n }\n }\n });\n\n const clearQueryCondition = hooks.useCallbackRef(async (values?: TPlainObject) => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (values) {\n void actions.updateFilterCondition(values);\n form.setFieldsValue(values);\n }\n });\n\n const getPaginationData = (pageNo: number, _pageSize: number) => {\n if (paginationStatus) {\n return {\n [fieldNames.pageNo]: pageNo,\n [fieldNames.pageSize]: _pageSize || pageSize,\n };\n } else {\n return {};\n }\n };\n\n const onResetRequest = hooks.useCallbackRef(async (values?: TPlainObject) => {\n const params = {\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n ...props.initialValues,\n ...values,\n };\n await actions.resetFilterCondition(params);\n form.resetFields();\n if (values) {\n form.setFieldsValue(values);\n }\n void onInnerRequest(params);\n });\n\n const getRequestParams = hooks.useCallbackRef(() => {\n return {\n ...state.queryCondition,\n ...form.getFieldsValue(),\n };\n });\n\n const getEasyTableRef = () => {\n return {\n /**\n * 参数\n * 1. 不用添加已存在的搜索条件\n * 2. 此处可重新\n */\n onRequest: onInnerRequest,\n clearQueryCondition,\n getRequestParams,\n onResetRequest,\n form,\n getDataSource: () => {\n return respOriginalDataRef.current;\n },\n onFilterDataSource: (filterDataSource) => {\n setDataSource(filterDataSource);\n },\n onClearDataSource: () => {\n setTotal(0);\n setDataSource([]);\n },\n onUpdateDataSource: (dataList) => {\n setDataSource(dataList);\n respOriginalDataRef.current = dataList;\n props.onDataSourceChange?.(dataList);\n },\n };\n };\n\n useImperativeHandle(ref, () => {\n return getEasyTableRef();\n });\n\n const onSetPaginationStatus = (status: boolean) => {\n setPaginationStatus(status);\n };\n const onSetBaseColumns = (base) => {\n baseColumnsRef.current = base;\n };\n\n const onFormFinish = () => {\n const values = form.getFieldsValue();\n if (props.onFormFinish) {\n props.onFormFinish({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n } else {\n void onInnerRequest({\n ...values,\n ...getPaginationData(1, state.queryCondition[fieldNames.pageSize]),\n });\n }\n };\n const isFull = isUndefined(props.isFull) ? true : props.isFull;\n const className = classNames(\n 'fba-easy-table',\n {\n 'fba-easy-table-full': isFull,\n 'fba-easy-table-filter-fixed': props.filterFixed,\n 'fba-easy-table-pagination-fixed': props.paginationFixed,\n },\n props.className,\n );\n\n const paginationData = useMemo(() => {\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: total,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n };\n }, [fieldNames.pageNo, fieldNames.pageSize, pageSize, props.pagination, state.queryCondition, total]);\n\n const onChange = hooks.useCallbackRef((page: number, pageSize: number) => {\n void onInnerRequest({\n [fieldNames.pageSize]: pageSize,\n [fieldNames.pageNo]: page,\n });\n props.pagination?.onChange?.(page, pageSize);\n });\n\n const wrapperClassName = classNames(\n 'fba-easy-table-wrapper',\n {\n 'fba-easy-table-wrapper-inline': props.isInline,\n },\n props.className,\n );\n\n const children =\n typeof props.children === 'function' ? props.children(respOriginalDataRef.current) : props.children;\n\n return (\n <EasyTableContext.Provider\n value={{\n onSetBaseColumns,\n getEasyTableRef,\n modelKey,\n onRequest: onInnerRequest,\n tableDataSource: dataSource,\n tableTotal: total,\n loading,\n fieldNames,\n pageSize,\n initRequest,\n initialValues: props.initialValues || {},\n onSetPaginationStatus,\n paginationStatus,\n onFormFinish,\n form,\n paginationFixed: props.paginationFixed || false,\n foldKeys: props.foldKeys || [],\n dynamicColumns,\n }}\n >\n {props.paginationFixed ? (\n <div className={wrapperClassName} style={props.style}>\n <div className={className}>{children}</div>\n {total > 0 && (\n <div className=\"fba-easy-table-pagination\">\n <PaginationWrapper size=\"small\" {...paginationData} onChange={onChange} />\n </div>\n )}\n </div>\n ) : (\n <div className={wrapperClassName} style={props.style}>\n {children}\n </div>\n )}\n </EasyTableContext.Provider>\n );\n});\n","import { DownOutlined, UpOutlined } from '@ant-design/icons';\nimport { isUndefined } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { FormInstance } from 'antd';\nimport { Children, CSSProperties, ReactElement, useContext, useMemo, useState } from 'react';\nimport { isFragment } from 'react-is';\nimport { BlockLayout } from '../block-layout';\nimport { ButtonWrapper, ButtonWrapperProps } from '../button-wrapper';\nimport { EasyForm, EasyFormProps } from '../easy-form';\nimport { FormGrid } from '../form-grid';\nimport { FormOperateColProps } from '../form-grid/form-operate-col';\nimport { FormRowProps } from '../form-grid/form-row';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\n\nexport type EasyTableFilterProps = {\n children: ReactElement | ReactElement[] | ((form: FormInstance) => ReactElement);\n /** isPure = true时无效 */\n filterOperate?: (form: FormInstance) => FormOperateColProps;\n /** 是否为纯净模式(查询条件布局是否自定义), */\n isPure?: boolean;\n /** 查询按钮配置 */\n queryButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /** 重置按钮配置 */\n resetButtonProps?: Omit<ButtonWrapperProps, 'onClick'> & { text?: string };\n /**\n * 网格布局设置\n * default = { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 };\n * small = { xs: 24, sm: 8, md: 8, lg: 6, xl: 6, xxl: 6 };\n */\n formGridSize?: FormRowProps['gridSize'];\n /**\n * @deprecated已过期,使用 easyFormProps.className 配置\n */\n formClassName?: string;\n /**\n * @deprecated已过期,使用 easyFormProps.style 配置\n */\n formStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout style */\n filterWrapperStyle?: CSSProperties;\n /** filter Form 外层 BlockLayout className */\n filterWrapperClassName?: string;\n /**\n * 自定义 filterOperate.rightList 后 默认【查询、重置】按钮处理逻辑\n * 1. cover:覆盖内部查询重置按钮(默认值)\n * 2. beforeAppend:添加到【查询重置】按钮前面\n * 3. afterAppend:添加到【查询重置】按钮后面\n *\n * 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n */\n rightOperateAreaAppendType?: 'cover' | 'beforeAppend' | 'afterAppend';\n /** 默认重启按钮触发请求,默认值:true */\n defaultResetButtonTriggerRequest?: boolean;\n easyFormProps?: Omit<\n EasyFormProps,\n 'isPure' | 'column' | 'forceColumn' | 'width' | 'gridGutter' | 'children'\n >;\n};\n\n/**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTableFilter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTableFilter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTableFilter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\n * </EasyTableFilter>\n *\n * -- children 可为 function\n * <EasyTableFilter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTableFilter>\n *\n * 2. 用户2(自定义布局)\n * EasyTableFilter设置 isPure = true,FormItem无布局规则\n * 3. EasyTableFilter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. 通过设置 defaultResetButtonTriggerRequest,默认重启按钮触发请求,默认值:true\n * 8. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n *```\n */\nexport const EasyTableFilter = (props: EasyTableFilterProps) => {\n const ctx = useContext(EasyTableContext);\n const {\n queryButtonProps,\n resetButtonProps,\n filterOperate,\n formClassName = '',\n defaultResetButtonTriggerRequest,\n filterWrapperStyle,\n filterWrapperClassName,\n rightOperateAreaAppendType,\n easyFormProps,\n } = props;\n const {\n modelKey,\n foldKeys,\n fieldNames,\n onRequest,\n pageSize,\n paginationStatus,\n initialValues,\n form,\n onFormFinish,\n } = ctx;\n const children = typeof props.children === 'function' ? props.children(form) : props.children;\n\n const rightOperateAreaAppendTypeFt = rightOperateAreaAppendType || 'cover';\n const childrens = useMemo(() => {\n if (isFragment(children)) {\n return Children.toArray((children as ReactElement).props.children) as ReactElement[];\n } else {\n return Children.toArray(children) as ReactElement[];\n }\n }, [children]);\n\n const [openFold, setOpenFold] = useState(false);\n\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n const onReset = hooks.useCallbackRef(async () => {\n await actions.resetFilterCondition();\n form.resetFields();\n if (isUndefined(defaultResetButtonTriggerRequest) || defaultResetButtonTriggerRequest) {\n if (paginationStatus) {\n onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n });\n } else {\n onRequest(initialValues);\n }\n }\n });\n\n const formRowChildren = useMemo(() => {\n const defaultRightList = [\n !queryButtonProps?.hidden ? (\n <ButtonWrapper key=\"1\" type=\"primary\" htmlType=\"submit\" {...queryButtonProps}>\n {queryButtonProps?.text || '查询'}\n </ButtonWrapper>\n ) : null,\n !resetButtonProps?.hidden ? (\n <ButtonWrapper key=\"2\" onClick={onReset} {...resetButtonProps}>\n {resetButtonProps?.text || '重置'}\n </ButtonWrapper>\n ) : null,\n ].filter(Boolean);\n const customFormOperateCol = filterOperate?.(form);\n const customRightList = customFormOperateCol?.rightList;\n const leftList: TAny[] = customFormOperateCol?.leftList || [];\n\n let rightList: TAny[] = defaultRightList;\n if (customRightList) {\n if (rightOperateAreaAppendTypeFt === 'afterAppend') {\n rightList = [...defaultRightList, ...customRightList];\n } else if (rightOperateAreaAppendTypeFt === 'beforeAppend') {\n rightList = [...customRightList, ...defaultRightList];\n } else {\n rightList = customRightList;\n }\n }\n\n if (foldKeys.length > 0) {\n const changeFolditem = (\n <ButtonWrapper\n type=\"link\"\n key=\"fold-trigger\"\n style={{ padding: '0' }}\n onClick={() => {\n setOpenFold(!openFold);\n }}\n >\n {openFold ? (\n <span>\n 收起\n <UpOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n ) : (\n <span>\n 展开\n <DownOutlined style={{ marginLeft: 3, fontSize: 12 }} />\n </span>\n )}\n </ButtonWrapper>\n );\n\n if (rightList.length > 0 || leftList.length === 0) {\n rightList.push(changeFolditem);\n } else if (leftList?.length > 0) {\n leftList.push(changeFolditem);\n }\n }\n\n return childrens\n .map((item, index) => {\n if (!openFold && foldKeys.find((keyItem) => `.$${keyItem}` === item.key)) return null;\n if (item.props['hidden']) return null;\n if (item.type['domTypeName'] === 'FormCol') return item;\n return <FormGrid.Col key={index}>{item}</FormGrid.Col>;\n })\n .filter(Boolean)\n .concat(\n <FormGrid.OperateCol key={999} {...customFormOperateCol} leftList={leftList} rightList={rightList} />,\n );\n }, [\n childrens,\n filterOperate,\n foldKeys,\n form,\n onReset,\n openFold,\n queryButtonProps,\n resetButtonProps,\n rightOperateAreaAppendTypeFt,\n ]);\n\n return (\n <BlockLayout\n className={classNames('easy-table-filter', filterWrapperClassName)}\n style={filterWrapperStyle}\n >\n <EasyForm\n form={form}\n autoComplete=\"off\"\n onFinish={onFormFinish}\n initialValues={{\n ...initialValues,\n ...state.queryCondition,\n }}\n className={formClassName}\n style={props.formStyle}\n isPure={true}\n labelWidth=\"80\"\n labelAlign=\"right\"\n formItemGap=\"15\"\n {...easyFormProps}\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 *\n * @deprecated 已过时 @4.3.0版本移除,请使用 useEasyTable\n * @returns\n */\nexport const useEasyTablRef = () => {\n const ctx = useContext(EasyTableContext);\n return {\n current: ctx.getEasyTableRef(),\n };\n};\n","import { classNames } from '@dimjs/utils';\nimport { getUuid, isMacEnv, isUndefinedOrNull, TAny, TPlainObject } from '@flatbiz/utils';\nimport { Table, TableProps } from 'antd';\nimport { CSSProperties, Fragment, ReactElement, useContext, useMemo } from 'react';\nimport { BlockLayout } from '../block-layout';\nimport { fbaHooks } from '../fba-hooks';\nimport { SmallSelect } from '../pagination-wrapper/select';\nimport { TableScrollbar } from '../table-scrollbar';\nimport { TableTitleTooltip } from '../table-title-tooltip';\nimport { TipsWrapper } from '../tips-wrapper';\nimport { EasyTableContext } from './context';\nimport { easyTableModel } from './model';\nimport { TEasyTableTableColumn } from './type';\n\nexport type EasyTableTableProps<T> = Omit<\n TableProps<TAny>,\n 'dataSource' | 'loading' | 'rowKey' | 'columns'\n> & {\n children?: ReactElement | ReactElement[];\n /**\n * 表格行 key 的取值,\n * ```\n * 如果 rowKey 为string类型\n * 1. 组件会判断表格列表数据第一条是否存在当前rowKey对象的数据,如果没有组件内部会动态添加唯一值\n * 2. 基于上一条的逻辑,如果表格数据没有唯一值,可指定 rowKey 值为table数据中不存在的字段名,例如:rowKey=\"_uid\"\n * 3. 如果触发上述逻辑,表格数据中会多出rowKey对应的键值对数据\n * ```\n */\n rowKey: TableProps<TAny>['rowKey'];\n /** table Form 外层 SimpleLayout className */\n tableWrapperStyle?: CSSProperties;\n /** table Form 外层 SimpleLayout className */\n tableWrapperClassName?: string;\n columns: TEasyTableTableColumn<T>[];\n /**\n * 数据加载与表格初始化渲染 是否同步\n * @version 4.4.6\n * ```\n * 1. true:获取数据后再初始化渲染表格(可用于实现表格中defaultXxxx相关功能的使用)\n * ```\n */\n isSync?: boolean;\n /**\n * 空效果显示尺寸,默认值:small\n * @version 4.4.6\n */\n emptyShowSize?: 'small' | 'large';\n};\n\n/**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\nexport const EasyTableTable = <T extends TPlainObject>(props: EasyTableTableProps<T>) => {\n const ctx = useContext(EasyTableContext);\n const { children, rowKey, pagination, isSync, ...otherProps } = props;\n\n const {\n modelKey,\n fieldNames,\n onRequest,\n tableDataSource,\n initRequest,\n pageSize,\n tableTotal,\n loading,\n initialValues,\n paginationFixed,\n onSetPaginationStatus,\n dynamicColumns,\n } = ctx;\n const [state, actions] = easyTableModel(modelKey).useStore();\n\n fbaHooks.useEffectCustom(() => {\n ctx.onSetBaseColumns((props.columns || []) as TEasyTableTableColumn<TPlainObject>[]);\n }, [props.columns]);\n\n const tablePaginationData = useMemo(() => {\n if (paginationFixed || pagination === false) return false;\n return {\n showSizeChanger: true,\n current: state.queryCondition[fieldNames.pageNo] || 1,\n pageSize: state.queryCondition[fieldNames.pageSize] || pageSize,\n total: tableTotal,\n showTotal: (total) => `共 ${total} 条记录`,\n ...props.pagination,\n selectComponentClass: SmallSelect,\n };\n }, [\n fieldNames.pageNo,\n fieldNames.pageSize,\n pageSize,\n pagination,\n paginationFixed,\n props.pagination,\n state.queryCondition,\n tableTotal,\n ]);\n\n const onChangePage: TableProps<TAny>['onChange'] = (pagination, filters, sorter, extra) => {\n if (extra.action === 'paginate' && tablePaginationData) {\n onRequest({\n [fieldNames.pageSize]: pagination.pageSize,\n [fieldNames.pageNo]: pagination.current,\n });\n } else {\n props.onChange?.(pagination, filters, sorter, extra);\n }\n };\n\n const dataSource = useMemo(() => {\n if (!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 fbaHooks.useEffectCustom(() => {\n const hasPagination = paginationFixed || tablePaginationData !== false;\n onSetPaginationStatus(hasPagination);\n if (initRequest !== false || !state.isInit) {\n if (hasPagination) {\n void onRequest({\n [fieldNames.pageNo]: 1,\n [fieldNames.pageSize]: pageSize,\n ...initialValues,\n ...state.queryCondition,\n });\n } else {\n void onRequest(initialValues);\n }\n } else {\n void actions.updateFilterCondition(initialValues);\n }\n void actions.updateInitStatus();\n }, []);\n\n const columns = useMemo(() => {\n const columns = dynamicColumns ? dynamicColumns : props.columns;\n\n return columns.map((item) => {\n const { tooltip, tipsWrapperProps, title, ...otherProps } = item;\n if (typeof title === 'string' && tipsWrapperProps) {\n if (typeof tipsWrapperProps === 'string') {\n return {\n ...otherProps,\n title: (\n <TipsWrapper tipType=\"popover\" popoverProps={{ content: tipsWrapperProps }}>\n {title}\n </TipsWrapper>\n ),\n };\n }\n return {\n ...otherProps,\n title: <TipsWrapper {...tipsWrapperProps}>{title}</TipsWrapper>,\n };\n }\n if (typeof title === 'string' && !!tooltip) {\n return {\n ...otherProps,\n title: <TableTitleTooltip tooltip={tooltip} title={title}></TableTitleTooltip>,\n };\n }\n return item;\n });\n }, [dynamicColumns, props.columns]);\n\n const tableRender = () => {\n if (isSync && !dataSource) {\n /** loading表格 */\n return (\n <Fragment>\n {children}\n <Table\n key=\"1\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n columns={columns}\n rowKey={rowKey}\n loading={true}\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={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </Fragment>\n );\n }\n return (\n <Fragment>\n {children}\n <TableScrollbar>\n <Table\n key=\"3\"\n size=\"small\"\n scroll={{ x: 'max-content' }}\n bordered\n {...otherProps}\n columns={columns}\n pagination={tablePaginationData}\n rowKey={rowKey}\n onChange={onChangePage}\n loading={loading}\n dataSource={dataSource}\n />\n </TableScrollbar>\n </Fragment>\n );\n };\n\n return (\n <BlockLayout\n className={classNames(\n 'easy-table-table',\n { 'ett-empty-show-small': props.emptyShowSize === 'small' },\n props.tableWrapperClassName,\n )}\n style={props.tableWrapperStyle}\n >\n {tableRender()}\n </BlockLayout>\n );\n};\n","import { fbaUtils } from '../fba-utils';\nimport { EasyTable as EasyTableInner } from './easy-table';\nimport { EasyTableFilter } from './filter';\nimport { useEasyTable, useEasyTablRef } from './hooks';\nimport { EasyTableTable } from './table';\n\n/**\n * 对 查询条件+表格数据 进行深度封装,内置数据交互处理\n * ```\n * Demo https://fex.qa.tcshuke.com/docs/admin/main/crud/easy-table\n *\n * 1. 废弃modelKey参数\n * 2. 如果需要在路由跳转回退中缓存查询条件,设置cacheSwitch=true\n * 3. 需要获取查询条件、主动发起请求等可通过ref、useEasyTable操作\n * 4. 可通过属性 initRequest 设置初始化是否请求数据\n * 5. 可通过属性 fieldNames 来设置自定义变量,默认值为:list、total、pageNo、pageSize\n * 6. isFull=true,设置【在父节点高度下,上下铺满】(默认值:true)\n * 7. filterFixed=true,设置查询条件固定,不随滚动条滚动\n * 8. paginationFixed=true,可设置分页条件在底部固定,不随滚动条滚动\n * 9. foldKeys=string[],查询条件展开、收起,被收起数组内容为EasyTable.Filter 子节点key值\n * 10. windows环境下,会在EasyTable.Table外部包装一下 TableScrollbar,提高windows下table左右滚动体验\n * ```\n */\nexport const EasyTable = fbaUtils.attachPropertiesToComponent(EasyTableInner, {\n /**\n * 过滤条件\n *```\n * 1. 用法1\n * -- 默认网格布局 规则:{ xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 6 }\n * <EasyTable.Filter>\n * <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * </EasyTable.Filter>\n *\n * -- 自定义网格布局 使用 FormCol组件包装 FormItemWrapper\n * <EasyTable.Filter>\n * <FormCol span={12}><FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper></FormCol>\n * </EasyTable.Filter>\n *\n * -- children 可为 function\n * <EasyTable.Filter>\n * {(form) => {\n * return <FormItemWrapper name=\"field1\" label=\"条件1\">xxx</FormItemWrapper>\n * }}\n * </EasyTable.Filter>\n * 2. 用户2(自定义布局)\n * EasyTable.Filter设置 isPure = true,FormItem无布局规则\n * 3. EasyTable.Filter中内置了 Form 标签,当children为函数时,可获取form实例\n * 4. 默认布局下,可通过设置 filterOperate 设置操作按钮\n * 5. Filter 子节点包含 hidden = true 会被忽略\n * 6. 如果想隐藏【查询、重置】按钮中的某一个,可设置 queryButtonProps.hidden、resetButtonProps.hidden\n * 7. EasyTableFilter 子节点可使用 FormItemWrapper,FormItemWrapper中可配置label宽度等\n * 8. 通过easyFormProps属性可整体控制子节点FormItem布局\n *```\n */\n Filter: EasyTableFilter,\n /**\n * 表格渲染\n * @param props\n * ```\n * 1. 继承了 TableProps 可设置antd table功能\n * 2. 分页功能已内置处理,不调用 onChange\n * ```\n */\n Table: EasyTableTable,\n /**\n * @deprecated 已过时 4.3.0版本移除,请使用 useEasyTable\n */\n useEasyTablRef: useEasyTablRef,\n\n /** 在 EasyTable子组件内才可使用 */\n useEasyTable: useEasyTable,\n});\n"],"names":["EasyTableContext","createContext","onRequest","noop","tableList","getEasyTableRef","defaultState","queryCondition","isInit","_EasyTableModel","actions","updateFilterCondition","params","state","_extends","resetFilterCondition","updateInitStatus","easyTableModels","easyTableModel","key","Model","EasyTable","forwardRef","props","ref","_props$initialPaginat","_useState","useState","dataSource","setDataSource","_useState2","total","setTotal","_useState3","loading","setLoading","easyTableId","_hooks","useId","undefined","modelKey","useMemo","cacheSwitch","location","pathname","_easyTableModel$useSt","useStore","pageSize","initialPaginationParams","initRequest","_useState4","paginationStatus","setPaginationStatus","respOriginalDataRef","useRef","baseColumnsRef","_useState5","dynamicColumns","setDynamicColumns","fieldNames","list","pageNo","_Form$useForm","Form","useForm","form","onInnerRequest","useCallbackRef","Promise","$return","$error","allState","_props$serviceConfig","requestParamsAdapter","requestResultAdapter","dynamicColumsAdapter","paramsNew","_respData","respDataNew","_dynamicColumns","respList","$Try_1_Post","$boundEx","$Try_1_Catch","error","onRequestErrorHandle","message","resolve","then","$await_2","cloneState","serviceConfig","$await_3","respData","current","onDataSourceChange","_get","_isArray","clearQueryCondition","values","$await_4","resetFields","setFieldsValue","getPaginationData","_pageSize","_ref","onResetRequest","initialValues","$await_5","getRequestParams","getFieldsValue","getDataSource","onFilterDataSource","filterDataSource","onClearDataSource","onUpdateDataSource","dataList","useImperativeHandle","onSetPaginationStatus","status","onSetBaseColumns","base","onFormFinish","isFull","_isUndefined","className","_classNames","filterFixed","paginationFixed","paginationData","showSizeChanger","showTotal","pagination","onChange","page","_onInnerRequest","_props$pagination","wrapperClassName","isInline","children","_jsx","Provider","value","tableDataSource","tableTotal","foldKeys","_jsxs","style","PaginationWrapper","size","EasyTableFilter","ctx","useContext","queryButtonProps","resetButtonProps","filterOperate","_props$formClassName","formClassName","defaultResetButtonTriggerRequest","filterWrapperStyle","filterWrapperClassName","rightOperateAreaAppendType","easyFormProps","rightOperateAreaAppendTypeFt","childrens","isFragment","Children","toArray","openFold","setOpenFold","onReset","_extends2","$await_1","formRowChildren","defaultRightList","hidden","ButtonWrapper","type","htmlType","text","onClick","filter","Boolean","customFormOperateCol","customRightList","rightList","leftList","concat","length","changeFolditem","padding","_UpOutlined","marginLeft","fontSize","_DownOutlined","push","map","item","index","find","keyItem","FormGrid","Col","OperateCol","BlockLayout","EasyForm","autoComplete","onFinish","formStyle","isPure","labelWidth","labelAlign","formItemGap","Row","gutter","gridSize","formGridSize","useEasyTable","useEasyTablRef","EasyTableTable","rowKey","isSync","otherProps","_objectWithoutPropertiesLoose","_excluded","fbaHooks","useEffectCustom","columns","tablePaginationData","selectComponentClass","SmallSelect","onChangePage","filters","sorter","extra","action","_onRequest","isUndefinedOrNull","getUuid","hasPagination","tooltip","tipsWrapperProps","title","_excluded2","TipsWrapper","tipType","popoverProps","content","TableTitleTooltip","tableRender","Fragment","Table","scroll","x","bordered","isMacEnv","TableScrollbar","emptyShowSize","tableWrapperClassName","tableWrapperStyle","fbaUtils","attachPropertiesToComponent","EasyTableInner","Filter"],"mappings":"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"}
|
package/esm/file-export/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{_ as
|
|
4
|
+
import{_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{message as t}from"antd";import{Fragment as e,isValidElement as o}from"react";import{jsx as n}from"react/jsx-runtime";var i=function i(c){var u=c.action;var a=function r(){return new Promise((function(r,e){var o,n,i;var u=function(){try{return r()}catch(r){return e(r)}};var a=function(r){try{if(c.onExportError){c.onExportError(r)}else{t.error((r==null?void 0:r.message)||"文件导出失败...")}return u()}catch(r){return e(r)}};try{c.onExportPre==null?void 0:c.onExportPre();return Promise.resolve(c.onRequest()).then((function(r){try{o=r;n=document.createElement("a");i=window.URL.createObjectURL(o.data);n.style.display="none";n.href=i;n.setAttribute("download",o.fileName);document.body.appendChild(n);n.click();document.body.removeChild(n);c.onExportNext==null?void 0:c.onExportNext();return u()}catch(r){return a(r)}}),a)}catch(r){a(r)}}))};return n(e,{children:o(u)?n(u.type,r({},u.props,{onClick:a})):u==null?void 0:u({onClick:a})})};export{i as FileExport};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-export/file-export.tsx"],"sourcesContent":["import { Fragment, isValidElement, ReactElement } from 'react';\n\
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-export/file-export.tsx"],"sourcesContent":["import { message } from 'antd';\nimport { Fragment, isValidElement, ReactElement } from 'react';\n\nexport type FileExportProps = {\n /** 触发节点 */\n action: (ReactElement & { onClick?: (e) => void }) | ((data: { onClick: (e) => void }) => ReactElement);\n /**\n * 获取文件流数据\n * ```\n * 1. fileName 文件名称\n * 2. data 文件流\n * ```\n */\n onRequest: () => Promise<{ fileName: string; data: Blob }>;\n /** 导出操作前 */\n onExportPre?: () => void;\n /** 导出操作后 */\n onExportNext?: () => void;\n /** 导出操作失败,隐藏默认失败效果 */\n onExportError?: (error?: any) => void;\n};\n\n/**\n * 文件导出\n * ```\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/widget?key=file-export\n * 例如:\n <FileExport\n action={<Button>下载</Button>}\n onRequest={() => {\n return serviceHandle.fileExport('/export/file', {});\n }}\n onExportNext={() => {\n message.success('导出成功...');\n }}\n />\n * ```\n */\nexport const FileExport = (props: FileExportProps) => {\n const Action = props.action;\n\n const handleOnClick = async () => {\n try {\n props.onExportPre?.();\n const respData = await props.onRequest();\n const link = document.createElement('a');\n const url = window.URL.createObjectURL(respData.data);\n link.style.display = 'none';\n link.href = url;\n link.setAttribute('download', respData.fileName);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n props.onExportNext?.();\n } catch (error: any) {\n if (props.onExportError) {\n props.onExportError(error);\n } else {\n message.error(error?.message || '文件导出失败...');\n }\n }\n };\n\n return (\n <Fragment>\n {isValidElement(Action) ? (\n <Action.type {...Action.props} onClick={handleOnClick} />\n ) : (\n Action?.({ onClick: handleOnClick })\n )}\n </Fragment>\n );\n};\n"],"names":["FileExport","props","Action","action","handleOnClick","Promise","$return","$error","respData","link","url","$Try_1_Post","$boundEx","$Try_1_Catch","error","onExportError","message","onExportPre","resolve","onRequest","then","$await_2","document","createElement","window","URL","createObjectURL","data","style","display","href","setAttribute","fileName","body","appendChild","click","removeChild","onExportNext","_jsx","Fragment","children","isValidElement","type","_extends","onClick"],"mappings":";6LAsCaA,EAAa,SAAbA,EAAcC,GACzB,IAAMC,EAASD,EAAME,OAErB,IAAMC,EAAgB,SAAhBA,IAAgB,OAAA,IAAAC,SAAA,SAAAC,EAAAC,GAAA,IAGZC,EACAC,EACAC,EA9CZ,IAAIC,aAAJ,IAAI,OAAAL,GAAK,CAAC,MAAAM,GAAW,OAAOL,EAAAK,EAAM,GAAlC,IAAIC,EAAA,SAsDSC,GAtDb,IAuDM,GAAIb,EAAMc,cAAe,CACvBd,EAAMc,cAAcD,EACtB,KAAO,CACLE,EAAQF,OAAMA,GAAAA,UAAAA,EAAAA,EAAOE,UAAW,YAClC,CA3DN,OAAOL,GAAE,CAAC,MAAAC,GAAW,OAAOL,EAAAK,EAAM,GA0C9B,IACEX,EAAMgB,aAAW,UAAA,EAAjBhB,EAAMgB,cACW,OAAAZ,QAAAa,QAAMjB,EAAMkB,aAAZC,MAAuB,SAAAC,GA5C9C,IA4CYb,EAAWa,EACXZ,EAAOa,SAASC,cAAc,KAC9Bb,EAAMc,OAAOC,IAAIC,gBAAgBlB,EAASmB,MAChDlB,EAAKmB,MAAMC,QAAU,OACrBpB,EAAKqB,KAAOpB,EACZD,EAAKsB,aAAa,WAAYvB,EAASwB,UACvCV,SAASW,KAAKC,YAAYzB,GAC1BA,EAAK0B,QACLb,SAASW,KAAKG,YAAY3B,GAC1BR,EAAMoC,cAAY,UAAA,EAAlBpC,EAAMoC,eArDZ,OAAO1B,GAAE,CAAC,MAAAC,GAAW,OAAOC,EAAAD,EAAM,CAAC,GAAAC,EAsD9B,CAAC,MAAOC,GAAYD,EAAZC,EAMT,CAAC,GACF,EAED,OACEwB,EAACC,EAAQ,CAAAC,SACNC,EAAevC,GACdoC,EAACpC,EAAOwC,KAAIC,EAAKzC,CAAAA,EAAAA,EAAOD,MAAK,CAAE2C,QAASxC,KAExCF,GAAM,UAAA,EAANA,EAAS,CAAE0C,QAASxC,KAI5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-import/file-import.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Upload, UploadProps } from 'antd';\nimport { isValidElement, ReactElement, useState } from 'react';\n\nexport type FileImportProps = {\n /** 上传文件接口返回处理 */\n onImportFinish: (data?: TAny) => void;\n buttonName?: string | ReactElement;\n children?: React.ReactNode | ((data: { loading: boolean }) => React.ReactNode);\n} & Omit<\n UploadProps,\n | 'fileList'\n | 'showUploadList'\n | 'itemRender'\n | 'listType'\n | 'multiple'\n | 'previewFile'\n | 'progress'\n | 'onChange'\n | 'onDownload'\n | 'onRemove'\n | 'onPreview'\n | 'directory'\n | 'customRequest'\n | 'defaultFileList'\n | 'iconRender'\n>;\n\n/**\n * 文件导入\n * ```\n *
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/file-import/file-import.tsx"],"sourcesContent":["import { TAny } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { Button, message, Upload, UploadProps } from 'antd';\nimport { isValidElement, ReactElement, useState } from 'react';\n\nexport type FileImportProps = {\n /** 上传文件接口返回处理 */\n onImportFinish: (data?: TAny) => void;\n buttonName?: string | ReactElement;\n children?: React.ReactNode | ((data: { loading: boolean }) => React.ReactNode);\n} & Omit<\n UploadProps,\n | 'fileList'\n | 'showUploadList'\n | 'itemRender'\n | 'listType'\n | 'multiple'\n | 'previewFile'\n | 'progress'\n | 'onChange'\n | 'onDownload'\n | 'onRemove'\n | 'onPreview'\n | 'directory'\n | 'customRequest'\n | 'defaultFileList'\n | 'iconRender'\n>;\n\n/**\n * 文件导入\n * ```\n * demo:https://fex.qa.tcshuke.com/docs/admin/main/widget?key=file-export\n * 1. accept默认值 '.xlsx,.xls',\n * 2. formData 上传key默认值 file\n * \n * 例如:\n <FileImport\n action={'https://xxx/xxx/xx'}\n onImportFinish={(data) => {\n console.log('上传接口响应数据', data);\n }}\n >\n <Button>文件上传</Button>\n </FileImport>\n * ```\n */\nexport const FileImport = (props: FileImportProps) => {\n const { onImportFinish, buttonName, ...otherProps } = props;\n\n const [loading, setLoading] = useState(false);\n\n const onChange = hooks.useCallbackRef((info) => {\n if (info.file.status === 'uploading') {\n setLoading(true);\n } else if (info.file.status === 'done') {\n setLoading(false);\n const respData = info.file.response;\n if (respData.code === '0000') {\n onImportFinish(respData.data);\n } else {\n void message.error((respData.message as string) || '文件导入异常...');\n }\n }\n });\n\n return (\n <Upload showUploadList={false} maxCount={1} {...otherProps} onChange={onChange}>\n {typeof props.children === 'function' ? (\n props.children?.({ loading })\n ) : isValidElement(props.children) ? (\n props.children\n ) : (\n <Button type=\"primary\" ghost loading={loading}>\n {buttonName || '选择文件'}\n </Button>\n )}\n </Upload>\n );\n};\n\nFileImport.defaultProps = {\n name: 'file',\n accept: '.xlsx,.xls',\n};\n"],"names":["FileImport","props","onImportFinish","buttonName","otherProps","_objectWithoutPropertiesLoose","_excluded","_useState","useState","loading","setLoading","onChange","_hooks","useCallbackRef","info","file","status","respData","response","code","data","message","error","_jsx","Upload","_extends","showUploadList","maxCount","children","isValidElement","Button","type","ghost","defaultProps","name","accept"],"mappings":";gTA+CaA,EAAa,SAAbA,EAAcC,GACzB,IAAQC,EAA8CD,EAA9CC,eAAgBC,EAA8BF,EAA9BE,WAAeC,EAAUC,EAAKJ,EAAKK,GAE3D,IAAAC,EAA8BC,EAAS,OAAhCC,EAAOF,EAAA,GAAEG,EAAUH,EAAA,GAE1B,IAAMI,EAAWC,EAAMC,gBAAe,SAACC,GACrC,GAAIA,EAAKC,KAAKC,SAAW,YAAa,CACpCN,EAAW,KACZ,MAAM,GAAII,EAAKC,KAAKC,SAAW,OAAQ,CACtCN,EAAW,OACX,IAAMO,EAAWH,EAAKC,KAAKG,SAC3B,GAAID,EAASE,OAAS,OAAQ,CAC5BjB,EAAee,EAASG,KAC1B,KAAO,MACAC,EAAQC,MAAOL,EAASI,SAAsB,YACrD,CACF,CACF,IAEA,OACEE,EAACC,EAAMC,EAAA,CAACC,eAAgB,MAAOC,SAAU,GAAOvB,EAAU,CAAEO,SAAUA,EAASiB,gBACrE3B,EAAM2B,WAAa,WACzB3B,EAAM2B,UAAQ,UAAA,EAAd3B,EAAM2B,SAAW,CAAEnB,QAAAA,IACjBoB,EAAe5B,EAAM2B,UACvB3B,EAAM2B,SAENL,EAACO,EAAM,CAACC,KAAK,UAAUC,MAAK,KAACvB,QAASA,EAAQmB,SAC3CzB,GAAc,WAKzB,EAEAH,EAAWiC,aAAe,CACxBC,KAAM,OACNC,OAAQ"}
|
|
@@ -2,8 +2,9 @@
|
|
|
2
2
|
import './../text-css-ellipsis/index.css';
|
|
3
3
|
import './../fba-hooks/index.css';
|
|
4
4
|
import './../form-item-wrapper/index.css';
|
|
5
|
+
import './../pre-defined-class-name/index.css';
|
|
5
6
|
import './../form-item-hidden/index.css';
|
|
6
7
|
import './index.css';
|
|
7
8
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
8
|
-
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{_ as r,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useState as a,useMemo as i,Fragment as t}from"react";import{isUndefinedOrNull as
|
|
9
|
+
import{classNames as e}from"@dimjs/utils/cjs/class-names";import{_ as r,a as n}from"../_rollupPluginBabelHelpers-a0769acd.js";import{useState as a,useMemo as i,Fragment as t}from"react";import{isUndefinedOrNull as o,toArray as l}from"@flatbiz/utils";import{Spin as s,Form as u,message as m}from"antd";import{TextCssEllipsis as d}from"../text-css-ellipsis/index.js";import{jsx as c,jsxs as f}from"react/jsx-runtime";import{FormItemWrapper as v}from"../form-item-wrapper/index.js";import{isDeepEqual as p}from"@dimjs/lang/cjs/is-deep-equal";import{fbaHooks as h}from"../fba-hooks/index.js";import{FormItemHidden as g}from"../form-item-hidden/index.js";import"ahooks";import"../pre-defined-class-name/index.js";import"@dimjs/lang/cjs/is-array";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var y=function e(r){var n=function(){if(o(r.value))return r.placeholderValue;return typeof r.value==="string"?r.value:JSON.stringify(r.value)}();var a=r.wrap?n:c(d,{text:n||""});if(r.loading){return c("span",{className:"form-item-text-content fitc-loading",style:r.style,children:c(s,{spinning:r.loading,size:"small",children:c("span",{style:{textIndent:"-9999px",display:"inline-block"},children:"Loading"})})})}return c("span",{className:"form-item-text-content",style:r.style,children:r.render?r.render(r.value):a})};var x=function e(n){var t=n.serviceConfig;var s=a(false),d=s[0],c=s[1];var f=a(),v=f[0],g=f[1];var y=h.usePrevious(t==null?void 0:t.params);var x=a("init"),j=x[0],w=x[1];var P=u.useFormInstance();var V=i((function(){var e;if(!(t!=null&&t.params)||l(t==null?void 0:t.invalidParamKey).length===0){return t==null?void 0:t.params}var n=r({},t==null?void 0:t.params);t==null||(e=t.invalidParamKey)==null?void 0:e.forEach((function(e){n[e]=undefined}));return n}),[t==null?void 0:t.invalidParamKey,t==null?void 0:t.params]);var N=function e(a){return new Promise((function(e,i){var l=function(e){return function(r){try{c(false);return e&&e.call(this,r)}catch(e){return i(e)}}.bind(this)}.bind(this);var s,u,f,v,p,h;if(!t)return e();u=r({},V,a);if(t!=null&&(s=t.requiredParamsKeys)!=null&&s.length){f=t==null?void 0:t.requiredParamsKeys.find((function(e){return o(u[e])}));if(f){console.warn("FormItemText组件:参数:"+(t==null?void 0:t.requiredParamsKeys.join("、"))+"不能为空");return e()}}var y=function(){try{return e()}catch(e){return i(e)}};var x=function(e){try{console.error(e);w("error");void m.error((e==null?void 0:e.message)||"接口调用异常");return l(y)()}catch(e){return l(i)(e)}};try{if(!d)c(true);return Promise.resolve(t.onRequest(u)).then((function(e){try{v=e;p=n.name?P.getFieldValue(n.name):undefined;h=t.onResponseAdapter?t.onResponseAdapter(v,p):v;g(h);w("success");return l(y)()}catch(e){return x(e)}}),x)}catch(e){x(e)}}))};h.useEffectCustomAsync(N,[]);h.useEffectCustom((function(){if(!t)return;if(y){if(!p(t.params,y)){void N()}}}),[y,t==null?void 0:t.params]);if(!t){return undefined}return{loading:d,status:j,viewValue:v}};var j=["wrap","render","placeholderValue","serviceConfig"];var w=function a(i){var t=i.wrap,o=i.render,l=i.placeholderValue,s=i.serviceConfig,u=n(i,j);var m=x({serviceConfig:s,name:i.name});return c(v,r({},u,{name:undefined,className:e("form-item-text",i.className),children:c(y,{loading:m==null?void 0:m.loading,wrap:t,render:o,placeholderValue:l,value:m==null?void 0:m.viewValue})}))};var P=["wrap","render","placeholderValue"];var V=function a(i){var o=i.wrap,l=i.render,s=i.placeholderValue,u=n(i,P);if(i.serviceConfig){return f(t,{children:[c(g,{name:i.name}),c(w,r({},i))]})}return c(v,r({},u,{className:e("form-item-text",i.className),children:c(y,{wrap:o,render:l,placeholderValue:s})}))};v["domTypeName"]="FormItemText";export{V as FormItemText};
|
|
9
10
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-text/content.tsx","@flatbiz/antd/src/form-item-text/use-request.tsx","@flatbiz/antd/src/form-item-text/request-text.tsx","@flatbiz/antd/src/form-item-text/form-item-text.tsx"],"sourcesContent":["import { isUndefinedOrNull } from '@flatbiz/utils';\nimport { Spin } from 'antd';\nimport { type CSSProperties } from 'react';\nimport { TextCssEllipsis } from '../text-css-ellipsis';\nimport { type FormItemTextProps } from './types';\n\nexport const FormItemTextContent = (\n props: Pick<FormItemTextProps, 'render' | 'wrap' | 'placeholderValue'> & {\n value?: string;\n style?: CSSProperties;\n loading?: boolean;\n },\n) => {\n const originalValue = (function () {\n if (isUndefinedOrNull(props.value)) return props.placeholderValue;\n return typeof props.value === 'string' ? props.value : JSON.stringify(props.value);\n })();\n const valueFt = props.wrap ? originalValue : <TextCssEllipsis text={originalValue || ''} />;\n if (props.loading) {\n return (\n <span className=\"form-item-text-content fitc-loading\" style={props.style}>\n <Spin spinning={props.loading} size=\"small\">\n <span style={{ textIndent: '-9999px', display: 'inline-block' }}>Loading</span>\n </Spin>\n </span>\n );\n }\n return (\n <span className=\"form-item-text-content\" style={props.style}>\n {props.render ? props.render(props.value) : valueFt}\n </span>\n );\n};\n","import { isDeepEqual } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form, message } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormItemWrapperProps } from '../form-item-wrapper';\nimport { type FormItemTextServiceConfig } from './types';\n\nexport const useRequestFormItemText = (props: {\n serviceConfig?: FormItemTextServiceConfig;\n name?: FormItemWrapperProps['name'];\n}) => {\n const serviceConfig = props.serviceConfig;\n const [loading, setLoading] = useState(false);\n const [respData, setRespData] = useState<TAny>();\n const prevParams = fbaHooks.usePrevious(serviceConfig?.params);\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const form = Form.useFormInstance();\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig?.params || toArray(serviceConfig?.invalidParamKey).length === 0) {\n return serviceConfig?.params;\n }\n const newParams = { ...serviceConfig?.params };\n serviceConfig?.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig?.invalidParamKey, serviceConfig?.params]);\n\n const onInnerRequest = async (params?: TPlainObject) => {\n if (!serviceConfig) return;\n const mergeProps = { ...serviceParams, ...params };\n if (serviceConfig?.requiredParamsKeys?.length) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(mergeProps[item]);\n });\n if (target) {\n console.warn(`FormItemText组件:参数:${serviceConfig?.requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n if (!loading) setLoading(true);\n const respData = await serviceConfig.onRequest(mergeProps);\n const value = props.name ? form.getFieldValue(props.name) : undefined;\n const respDataFt = serviceConfig.onResponseAdapter\n ? serviceConfig.onResponseAdapter(respData, value)\n : respData;\n setRespData(respDataFt);\n setStatus('success');\n } catch (error: TAny) {\n console.error(error);\n setStatus('error');\n void message.error(error?.message || '接口调用异常');\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInnerRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (!serviceConfig) return;\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInnerRequest();\n }\n }\n }, [prevParams, serviceConfig?.params]);\n\n if (!serviceConfig) {\n return undefined;\n }\n\n return { loading, status, viewValue: respData };\n};\n","import { classNames } from '@dimjs/utils';\n\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { FormItemTextContent } from './content';\nimport { type FormItemTextProps } from './types';\nimport { useRequestFormItemText } from './use-request';\n\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * @param props\n * @returns\n */\nexport const RequestText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, serviceConfig, ...otherProps } = props;\n\n const requestResult = useRequestFormItemText({\n serviceConfig,\n name: props.name,\n });\n\n return (\n <FormItemWrapper\n {...otherProps}\n name={undefined}\n className={classNames('form-item-text', props.className)}\n >\n <FormItemTextContent\n loading={requestResult?.loading}\n wrap={wrap}\n render={render}\n placeholderValue={placeholderValue}\n value={requestResult?.viewValue}\n />\n </FormItemWrapper>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Fragment } from 'react';\n\nimport { FormItemTextContent } from './content';\nimport { RequestText } from './request-text';\nimport { type FormItemTextProps } from './types';\n\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport './style.less';\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * ```\n * 可通过配置 serviceConfig 通过接口获取数据,一般用于 Select 数据显示\n *\n * 例如:\n * 1. 基本数据渲染\n * <FormItemText name=\"xxx\" label=\"xxx\" />\n * 2. 对象数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * render={(value) => {\n * const target = [].find(\n * (item) => item.value === value,\n * );\n * return target ? (\n * <Tag color={target['color']}>{target.label}</Tag>\n * ) : null;\n * }}\n * />\n * 3. 接口数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * serviceConfig={{\n * onRequest: () => {\n * return serviceHandle.request('/random/api9468', {}, 'post');\n * },\n * onResponseAdapter: (dataList: TPlainObject[], value) => {\n * return dataList?.find((item) => item.value === value);\n * },\n * }}\n * render={(dataItem) => {\n * return dataItem ? (\n * <Tag style={{ margin: 0 }} color={dataItem['color']}>\n * {dataItem.label}\n * </Tag>\n * ) : null;\n * }}\n * />\n * ```\n */\nexport const FormItemText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, ...otherProps } = props;\n\n if (props.serviceConfig) {\n return (\n <Fragment>\n <FormItemHidden name={props.name} />\n <RequestText {...props} />\n </Fragment>\n );\n }\n\n return (\n <FormItemWrapper {...otherProps} className={classNames('form-item-text', props.className)}>\n <FormItemTextContent wrap={wrap} render={render} placeholderValue={placeholderValue} />\n </FormItemWrapper>\n );\n};\n"],"names":["FormItemTextContent","props","originalValue","isUndefinedOrNull","value","placeholderValue","JSON","stringify","valueFt","wrap","_jsx","TextCssEllipsis","text","loading","className","style","children","Spin","spinning","size","textIndent","display","render","useRequestFormItemText","serviceConfig","_useState","useState","setLoading","_useState2","respData","setRespData","prevParams","fbaHooks","usePrevious","params","_useState3","status","setStatus","form","Form","useFormInstance","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","undefined","onInnerRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_serviceConfig$requir","mergeProps","target","_respData","respDataFt","requiredParamsKeys","find","item","console","warn","join","$Try_1_Post","$Try_1_Catch","error","message","resolve","onRequest","then","$await_2","name","getFieldValue","onResponseAdapter","useEffectCustomAsync","useEffectCustom","_isDeepEqual","viewValue","RequestText","otherProps","_objectWithoutPropertiesLoose","_excluded","requestResult","FormItemWrapper","_classNames","FormItemText","_jsxs","Fragment","FormItemHidden"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-text/content.tsx","@flatbiz/antd/src/form-item-text/use-request.tsx","@flatbiz/antd/src/form-item-text/request-text.tsx","@flatbiz/antd/src/form-item-text/form-item-text.tsx"],"sourcesContent":["import { isUndefinedOrNull } from '@flatbiz/utils';\nimport { Spin } from 'antd';\nimport { type CSSProperties } from 'react';\nimport { TextCssEllipsis } from '../text-css-ellipsis';\nimport { type FormItemTextProps } from './types';\n\nexport const FormItemTextContent = (\n props: Pick<FormItemTextProps, 'render' | 'wrap' | 'placeholderValue'> & {\n value?: string;\n style?: CSSProperties;\n loading?: boolean;\n },\n) => {\n const originalValue = (function () {\n if (isUndefinedOrNull(props.value)) return props.placeholderValue;\n return typeof props.value === 'string' ? props.value : JSON.stringify(props.value);\n })();\n const valueFt = props.wrap ? originalValue : <TextCssEllipsis text={originalValue || ''} />;\n if (props.loading) {\n return (\n <span className=\"form-item-text-content fitc-loading\" style={props.style}>\n <Spin spinning={props.loading} size=\"small\">\n <span style={{ textIndent: '-9999px', display: 'inline-block' }}>Loading</span>\n </Spin>\n </span>\n );\n }\n return (\n <span className=\"form-item-text-content\" style={props.style}>\n {props.render ? props.render(props.value) : valueFt}\n </span>\n );\n};\n","import { isDeepEqual } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TAny, type TPlainObject } from '@flatbiz/utils';\nimport { Form, message } from 'antd';\nimport { useMemo, useState } from 'react';\nimport { fbaHooks } from '../fba-hooks';\nimport { FormItemWrapperProps } from '../form-item-wrapper';\nimport { type FormItemTextServiceConfig } from './types';\n\nexport const useRequestFormItemText = (props: {\n serviceConfig?: FormItemTextServiceConfig;\n name?: FormItemWrapperProps['name'];\n}) => {\n const serviceConfig = props.serviceConfig;\n const [loading, setLoading] = useState(false);\n const [respData, setRespData] = useState<TAny>();\n const prevParams = fbaHooks.usePrevious(serviceConfig?.params);\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const form = Form.useFormInstance();\n\n // 用于直接发起接口调用,不能用于比较\n const serviceParams = useMemo(() => {\n if (!serviceConfig?.params || toArray(serviceConfig?.invalidParamKey).length === 0) {\n return serviceConfig?.params;\n }\n const newParams = { ...serviceConfig?.params };\n serviceConfig?.invalidParamKey?.forEach((key) => {\n newParams[key] = undefined;\n });\n return newParams;\n }, [serviceConfig?.invalidParamKey, serviceConfig?.params]);\n\n const onInnerRequest = async (params?: TPlainObject) => {\n if (!serviceConfig) return;\n const mergeProps = { ...serviceParams, ...params };\n if (serviceConfig?.requiredParamsKeys?.length) {\n const target = serviceConfig?.requiredParamsKeys.find((item) => {\n return isUndefinedOrNull(mergeProps[item]);\n });\n if (target) {\n console.warn(`FormItemText组件:参数:${serviceConfig?.requiredParamsKeys.join('、')}不能为空`);\n return;\n }\n }\n try {\n if (!loading) setLoading(true);\n const respData = await serviceConfig.onRequest(mergeProps);\n const value = props.name ? form.getFieldValue(props.name) : undefined;\n const respDataFt = serviceConfig.onResponseAdapter\n ? serviceConfig.onResponseAdapter(respData, value)\n : respData;\n setRespData(respDataFt);\n setStatus('success');\n } catch (error: TAny) {\n console.error(error);\n setStatus('error');\n void message.error(error?.message || '接口调用异常');\n } finally {\n setLoading(false);\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInnerRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (!serviceConfig) return;\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onInnerRequest();\n }\n }\n }, [prevParams, serviceConfig?.params]);\n\n if (!serviceConfig) {\n return undefined;\n }\n\n return { loading, status, viewValue: respData };\n};\n","import { classNames } from '@dimjs/utils';\n\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport { FormItemTextContent } from './content';\nimport { type FormItemTextProps } from './types';\nimport { useRequestFormItemText } from './use-request';\n\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * @param props\n * @returns\n */\nexport const RequestText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, serviceConfig, ...otherProps } = props;\n\n const requestResult = useRequestFormItemText({\n serviceConfig,\n name: props.name,\n });\n\n return (\n <FormItemWrapper\n {...otherProps}\n name={undefined}\n className={classNames('form-item-text', props.className)}\n >\n <FormItemTextContent\n loading={requestResult?.loading}\n wrap={wrap}\n render={render}\n placeholderValue={placeholderValue}\n value={requestResult?.viewValue}\n />\n </FormItemWrapper>\n );\n};\n","import { classNames } from '@dimjs/utils';\nimport { Fragment } from 'react';\n\nimport { FormItemTextContent } from './content';\nimport { RequestText } from './request-text';\nimport { type FormItemTextProps } from './types';\n\nimport { FormItemHidden } from '../form-item-hidden';\nimport { FormItemWrapper } from '../form-item-wrapper';\nimport './style.less';\n/**\n * FormItem 文本显示,默认不换行,超出省略(鼠标悬浮可显示)\n * ```\n * 可通过配置 serviceConfig 通过接口获取数据,一般用于 Select 数据显示\n *\n * 例如:\n * 1. 基本数据渲染\n * <FormItemText name=\"xxx\" label=\"xxx\" />\n * 2. 对象数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * render={(value) => {\n * const target = [].find(\n * (item) => item.value === value,\n * );\n * return target ? (\n * <Tag color={target['color']}>{target.label}</Tag>\n * ) : null;\n * }}\n * />\n * 3. 接口数据渲染\n * <FormItemText\n * name=\"xxx\"\n * label=\"xxx\"\n * serviceConfig={{\n * onRequest: () => {\n * return serviceHandle.request('/random/api9468', {}, 'post');\n * },\n * onResponseAdapter: (dataList: TPlainObject[], value) => {\n * return dataList?.find((item) => item.value === value);\n * },\n * }}\n * render={(dataItem) => {\n * return dataItem ? (\n * <Tag style={{ margin: 0 }} color={dataItem['color']}>\n * {dataItem.label}\n * </Tag>\n * ) : null;\n * }}\n * />\n * ```\n */\nexport const FormItemText = (props: FormItemTextProps) => {\n const { wrap, render, placeholderValue, ...otherProps } = props;\n\n if (props.serviceConfig) {\n return (\n <Fragment>\n <FormItemHidden name={props.name} />\n <RequestText {...props} />\n </Fragment>\n );\n }\n\n return (\n <FormItemWrapper {...otherProps} className={classNames('form-item-text', props.className)}>\n <FormItemTextContent wrap={wrap} render={render} placeholderValue={placeholderValue} />\n </FormItemWrapper>\n );\n};\n\nFormItemWrapper['domTypeName'] = 'FormItemText';\n"],"names":["FormItemTextContent","props","originalValue","isUndefinedOrNull","value","placeholderValue","JSON","stringify","valueFt","wrap","_jsx","TextCssEllipsis","text","loading","className","style","children","Spin","spinning","size","textIndent","display","render","useRequestFormItemText","serviceConfig","_useState","useState","setLoading","_useState2","respData","setRespData","prevParams","fbaHooks","usePrevious","params","_useState3","status","setStatus","form","Form","useFormInstance","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","undefined","onInnerRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_serviceConfig$requir","mergeProps","target","_respData","respDataFt","requiredParamsKeys","find","item","console","warn","join","$Try_1_Post","$Try_1_Catch","error","message","resolve","onRequest","then","$await_2","name","getFieldValue","onResponseAdapter","useEffectCustomAsync","useEffectCustom","_isDeepEqual","viewValue","RequestText","otherProps","_objectWithoutPropertiesLoose","_excluded","requestResult","FormItemWrapper","_classNames","FormItemText","_jsxs","Fragment","FormItemHidden"],"mappings":";+yBAMO,IAAMA,EAAsB,SAAtBA,EACXC,GAMA,IAAMC,EAAiB,WACrB,GAAIC,EAAkBF,EAAMG,OAAQ,OAAOH,EAAMI,iBACjD,cAAcJ,EAAMG,QAAU,SAAWH,EAAMG,MAAQE,KAAKC,UAAUN,EAAMG,MAC9E,CAHuB,GAIvB,IAAMI,EAAUP,EAAMQ,KAAOP,EAAgBQ,EAACC,EAAe,CAACC,KAAMV,GAAiB,KACrF,GAAID,EAAMY,QAAS,CACjB,OACEH,EAAA,OAAA,CAAMI,UAAU,sCAAsCC,MAAOd,EAAMc,MAAMC,SACvEN,EAACO,EAAI,CAACC,SAAUjB,EAAMY,QAASM,KAAK,QAAOH,SACzCN,EAAA,OAAA,CAAMK,MAAO,CAAEK,WAAY,UAAWC,QAAS,gBAAiBL,SAAC,eAIzE,CACA,OACEN,EAAA,OAAA,CAAMI,UAAU,yBAAyBC,MAAOd,EAAMc,MAAMC,SACzDf,EAAMqB,OAASrB,EAAMqB,OAAOrB,EAAMG,OAASI,GAGlD,ECxBO,IAAMe,EAAyB,SAAzBA,EAA0BtB,GAIrC,IAAMuB,EAAgBvB,EAAMuB,cAC5B,IAAAC,EAA8BC,EAAS,OAAhCb,EAAOY,EAAA,GAAEE,EAAUF,EAAA,GAC1B,IAAAG,EAAgCF,IAAzBG,EAAQD,EAAA,GAAEE,EAAWF,EAAA,GAC5B,IAAMG,EAAaC,EAASC,YAAYT,GAAAA,UAAAA,EAAAA,EAAeU,QACvD,IAAAC,EAA4BT,EAAuC,QAA5DU,EAAMD,EAAA,GAAEE,EAASF,EAAA,GACxB,IAAMG,EAAOC,EAAKC,kBAGlB,IAAMC,EAAgBC,GAAQ,WAAM,IAAAC,EAClC,KAAKnB,GAAa,MAAbA,EAAeU,SAAUU,EAAQpB,GAAAA,UAAAA,EAAAA,EAAeqB,iBAAiBC,SAAW,EAAG,CAClF,OAAOtB,GAAa,UAAA,EAAbA,EAAeU,MACxB,CACA,IAAMa,EAASC,EAAA,CAAA,EAAQxB,GAAAA,UAAAA,EAAAA,EAAeU,QACtCV,GAAamB,OAAAA,EAAbnB,EAAeqB,kBAAfF,UAAAA,EAAAA,EAAgCM,SAAQ,SAACC,GACvCH,EAAUG,GAAOC,SACnB,IACA,OAAOJ,CACR,GAAE,CAACvB,GAAa,UAAA,EAAbA,EAAeqB,gBAAiBrB,GAAAA,UAAAA,EAAAA,EAAeU,SAEnD,IAAMkB,EAAiB,SAAjBA,EAAwBlB,GAAP,OAAA,IAAAmB,SAAA,SAAAC,EAAAC,GAAA,IAAAC,EA/BzB,SAAAC,GAAA,OAAC,SAAAC,GAAD,IAyDM/B,EAAW,OAzD8F,OAAO8B,GAAUA,EAAME,KAAKC,KAAIF,EAAtI,CAAC,MAAAG,GAAW,OAAON,EAAAM,EAAM,CAAgI,EAA/JC,KAAKF,OAALE,KAAKF,MAAK,IAAAG,EAiCHC,EAEEC,EAUAC,EACA9D,EACA+D,EAfR,IAAK3C,EAAe,OAAA8B,IACdU,EAAUhB,EAAQP,CAAAA,EAAAA,EAAkBP,GAC1C,GAAIV,GAAauC,OAAAA,EAAbvC,EAAe4C,qBAAfL,MAAAA,EAAmCjB,OAAQ,CACvCmB,EAASzC,GAAa,UAAA,EAAbA,EAAe4C,mBAAmBC,MAAK,SAACC,GACrD,OAAOnE,EAAkB6D,EAAWM,GACtC,IACA,GAAIL,EAAQ,CACVM,QAAQC,KAA0BhD,sBAAAA,eAAAA,EAAe4C,mBAAmBK,KAAK,cACzE,OAAAnB,GACF,CACF,CA1CJ,IAAIoB,aAAJ,IAAI,OAAApB,GAAK,CAAC,MAAAO,GAAW,OAAON,EAAAM,EAAM,GAAlC,IAAIc,EAAA,SAoDSC,GApDb,IAqDML,QAAQK,MAAMA,GACdvC,EAAU,cACLwC,EAAQD,OAAMA,GAAAA,UAAAA,EAAAA,EAAOC,UAAW,UAvD3C,OAAOrB,EAAAkB,EAAAlB,EAAE,CAAC,MAAAK,GAAW,OAAOL,EAAAD,EAAAC,CAAAK,EAAM,GA2C9B,IACE,IAAKhD,EAASc,EAAW,MACR,OAAA0B,QAAAyB,QAAMtD,EAAcuD,UAAUf,IAA9BgB,eAAyCC,GA7ChE,IA6CYpD,EAAWoD,EACX7E,EAAQH,EAAMiF,KAAO5C,EAAK6C,cAAclF,EAAMiF,MAAQ/B,UACtDgB,EAAa3C,EAAc4D,kBAC7B5D,EAAc4D,kBAAkBvD,EAAUzB,GAC1CyB,EACJC,EAAYqC,GACZ9B,EAAU,WAnDhB,OAAOmB,EAAAkB,EAAAlB,EAAE,CAAC,MAAAK,GAAW,OAAOc,EAAAd,EAAM,CAAC,GAAAc,EAoD9B,CAAC,MAAOC,GAAaD,EAAbC,EAIT,CAEC,GACF,EAED5C,EAASqD,qBAAqBjC,EAAgB,IAE9CpB,EAASsD,iBAAgB,WACvB,IAAK9D,EAAe,OACpB,GAAIO,EAAY,CACd,IAAKwD,EAAY/D,EAAcU,OAAQH,GAAa,MAC7CqB,GACP,CACF,IACC,CAACrB,EAAYP,eAAAA,EAAeU,SAE/B,IAAKV,EAAe,CAClB,OAAO2B,SACT,CAEA,MAAO,CAAEtC,QAAAA,EAASuB,OAAAA,EAAQoD,UAAW3D,EACvC,6DCjEO,IAAM4D,EAAc,SAAdA,EAAexF,GAC1B,IAAQQ,EAAiER,EAAjEQ,KAAMa,EAA2DrB,EAA3DqB,OAAQjB,EAAmDJ,EAAnDI,iBAAkBmB,EAAiCvB,EAAjCuB,cAAkBkE,EAAUC,EAAK1F,EAAK2F,GAE9E,IAAMC,EAAgBtE,EAAuB,CAC3CC,cAAAA,EACA0D,KAAMjF,EAAMiF,OAGd,OACExE,EAACoF,EAAe9C,KACV0C,EAAU,CACdR,KAAM/B,UACNrC,UAAWiF,EAAW,iBAAkB9F,EAAMa,WAAWE,SAEzDN,EAACV,EAAmB,CAClBa,QAASgF,GAAAA,UAAAA,EAAAA,EAAehF,QACxBJ,KAAMA,EACNa,OAAQA,EACRjB,iBAAkBA,EAClBD,MAAOyF,GAAAA,UAAAA,EAAAA,EAAeL,cAI9B,iDCkBaQ,EAAe,SAAfA,EAAgB/F,GAC3B,IAAQQ,EAAkDR,EAAlDQ,KAAMa,EAA4CrB,EAA5CqB,OAAQjB,EAAoCJ,EAApCI,iBAAqBqF,EAAUC,EAAK1F,EAAK2F,GAE/D,GAAI3F,EAAMuB,cAAe,CACvB,OACEyE,EAACC,EAAQ,CAAAlF,SAAA,CACPN,EAACyF,EAAc,CAACjB,KAAMjF,EAAMiF,OAC5BxE,EAAC+E,EAAWzC,EAAA,CAAA,EAAK/C,MAGvB,CAEA,OACES,EAACoF,EAAe9C,KAAK0C,EAAU,CAAE5E,UAAWiF,EAAW,iBAAkB9F,EAAMa,WAAWE,SACxFN,EAACV,EAAmB,CAACS,KAAMA,EAAMa,OAAQA,EAAQjB,iBAAkBA,MAGzE,EAEAyF,EAAgB,eAAiB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.form-item-label-70.ant-form-item .ant-form-item-label{width:70px}.form-item-label-80.ant-form-item .ant-form-item-label{width:80px}.form-item-label-90.ant-form-item .ant-form-item-label{width:90px}.form-item-label-100.ant-form-item .ant-form-item-label{width:100px}.form-item-label-110.ant-form-item .ant-form-item-label{width:110px}.form-item-label-120.ant-form-item .ant-form-item-label{width:120px}.form-item-label-130.ant-form-item .ant-form-item-label{width:130px}.form-item-label-140.ant-form-item .ant-form-item-label{width:140px}.form-item-label-150.ant-form-item .ant-form-item-label{width:150px}.form-item-label-160.ant-form-item .ant-form-item-label{width:160px}.form-item-label-170.ant-form-item .ant-form-item-label{width:170px}.form-item-label-180.ant-form-item .ant-form-item-label{width:180px}.form-item-label-190.ant-form-item .ant-form-item-label{width:190px}.form-item-label-200.ant-form-item .ant-form-item-label{width:200px}.form-item-label-auto.ant-form-item .ant-form-item-row{flex-direction:row!important}.form-item-label-auto.ant-form-item .ant-form-item-label{width:auto!important}.form-item-label-auto.ant-form-item .ant-form-item-control{flex:1!important}.form-item-label-align-left.ant-form-item .ant-form-item-label{text-align:left}.form-item-label-align-right.ant-form-item .ant-form-item-label{text-align:right}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row{flex-direction:column}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-label{text-align:left;width:100%}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-control{flex:initial}.form-label-70 .ant-form-item-label{width:70px}.form-label-80 .ant-form-item-label{width:80px}.form-label-90 .ant-form-item-label{width:90px}.form-label-100 .ant-form-item-label{width:100px}.form-label-110 .ant-form-item-label{width:110px}.form-label-120 .ant-form-item-label{width:120px}.form-label-130 .ant-form-item-label{width:130px}.form-label-140 .ant-form-item-label{width:140px}.form-label-150 .ant-form-item-label{width:150px}.form-label-160 .ant-form-item-label{width:160px}.form-label-170 .ant-form-item-label{width:170px}.form-label-180 .ant-form-item-label{width:180px}.form-label-190 .ant-form-item-label{width:190px}.form-label-200 .ant-form-item-label{width:200px}.form-label-auto .ant-form-item-label{width:auto}.form-label-align-left .ant-form-item-label{text-align:left}.form-label-align-right .ant-form-item-label{text-align:right}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-row{flex-direction:column}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-label{text-align:left;width:100%}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-control{flex:initial}.form-formitem-gap-15{margin-bottom:-15px}.form-formitem-gap-15 .ant-form-item{margin-bottom:15px}.form-formitem-gap-8{margin-bottom:-8px}.form-formitem-gap-8 .ant-form-item{margin-bottom:8px}.form-formitem-gap-5{margin-bottom:-5px}.form-formitem-gap-5 .ant-form-item{margin-bottom:5px}.form-formitem-gap-0,.form-formitem-gap-0 .ant-form-item{margin-bottom:0}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
+
import './../pre-defined-class-name/index.css';
|
|
2
3
|
import './index.css';
|
|
3
4
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{
|
|
5
|
+
import{a as e,_ as r}from"../_rollupPluginBabelHelpers-a0769acd.js";import{composeProps as a}from"@flatbiz/utils";import{Form as l}from"antd";import{useMemo as i,isValidElement as t,cloneElement as n}from"react";import{preDefinedClassName as m}from"../pre-defined-class-name/index.js";import{jsx as o,jsxs as p}from"react/jsx-runtime";import"@dimjs/utils/cjs/class-names";var s=["wrapper","children","inputNormalize"],u=["wrapper","isClear","labelWidth","labelItemVertical","labelAlign","children","before","after","inputNormalize","outputNormalize","className"];var f=function r(l){var i=l.wrapper,t=l.children,m=l.inputNormalize,u=e(l,s);var f=u.hasOwnProperty("value");if(f&&m){u["value"]=m(u["value"])}var c=n(t,a(t.props,u,true));if(i){return i(c)}if(l.before||l.after){return p("div",{style:{display:"flex",alignItems:"center"},children:[l.before?o("span",{style:{marginRight:10},children:l.before}):null,o("div",{style:{flex:1},children:c}),l.after?o("span",{style:{marginLeft:10},children:l.after}):null]})}return c};var c=function a(n){var p=n.wrapper,s=n.isClear,c=n.labelWidth,d=n.labelItemVertical,b=n.labelAlign,h=n.children,v=n.before,N=n.after,g=n.inputNormalize,z=n.outputNormalize,y=n.className,w=e(n,u);var I=i((function(){return m.getFormLayoutClassName({labelWidth:c,labelItemVertical:d,labelAlign:b,className:y})}),[c,d,b]);if(s)return null;return o(l.Item,r({normalize:z},w,{className:I,children:t(h)?o(f,{wrapper:p,before:v,after:N,inputNormalize:g,children:h}):h}))};c["domTypeName"]="FormItemWrapper";export{c as FormItemWrapper};
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-wrapper/form-item-wrapper.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-item-wrapper/form-item-wrapper.tsx"],"sourcesContent":["import { composeProps, TAny } from '@flatbiz/utils';\nimport { Form, FormItemProps } from 'antd';\nimport { cloneElement, isValidElement, ReactElement, ReactNode, useMemo } from 'react';\nimport { preDefinedClassName } from '../pre-defined-class-name';\nimport { TFormItemLayoutPreClassNameProps } from '../pre-defined-class-name/form';\n\nexport type FormItemWrapperProps = FormItemProps &\n TFormItemLayoutPreClassNameProps & {\n wrapper?: (children: ReactNode) => ReactElement;\n /** 设置wrapper后,before、after失效 */\n before?: ReactNode;\n /** 设置wrapper后,before、after失效 */\n after?: ReactNode;\n /** value 序列化处理 */\n inputNormalize?: (value?: TAny) => TAny;\n /**\n * onChange 参数序列化处理\n * 如果设置 normalize 属性,outputNormalize将失效\n */\n outputNormalize?: (value?: TAny) => TAny;\n /** 是否清除 Form.Item */\n isClear?: boolean;\n /**\n * 栅格占位格数,最大值:24\n * ```\n * 1. 当 FormItemWrapper 处在 EasyForm 直接子节点中有效,即FormItemWrapper在EasyForm栅格中的占位格数;\n * ```\n */\n span?: number;\n };\n\ntype FormItemWrapperChildrenProps = Pick<\n FormItemWrapperProps,\n 'wrapper' | 'after' | 'before' | 'inputNormalize'\n> & {\n children: ReactElement;\n};\n\nconst FormItemWrapperChildren = (props: FormItemWrapperChildrenProps) => {\n const { wrapper, children, inputNormalize, ...rest } = props;\n // composeProps 合并执行 Form.Item 传的 onChange 以及组件本身的方法\n const hasValue = rest.hasOwnProperty('value');\n if (hasValue && inputNormalize) {\n rest['value'] = inputNormalize(rest['value']);\n }\n const _children = cloneElement(children, composeProps(children.props, rest, true));\n if (wrapper) {\n return wrapper(_children);\n }\n if (props.before || props.after) {\n return (\n <div style={{ display: 'flex', alignItems: 'center' }}>\n {props.before ? <span style={{ marginRight: 10 }}>{props.before}</span> : null}\n <div style={{ flex: 1 }}>{_children}</div>\n {props.after ? <span style={{ marginLeft: 10 }}>{props.after}</span> : null}\n </div>\n );\n }\n return _children;\n};\n\n/**\n * 对 Form.Item 包装处理\n * ```\n * 1. 为 children 增加 before、after\n * 2. 对输入、输出数据进行序列化处理\n * 3. 内置布局样式使用 preDefinedClassName.formItem\n * ```\n */\nexport const FormItemWrapper = (props: FormItemWrapperProps) => {\n const {\n wrapper,\n isClear,\n labelWidth,\n labelItemVertical,\n labelAlign,\n children,\n before,\n after,\n inputNormalize,\n outputNormalize,\n className,\n ...rest\n } = props;\n\n const innerClassName = useMemo(() => {\n return preDefinedClassName.getFormLayoutClassName({\n labelWidth,\n labelItemVertical,\n labelAlign,\n className,\n });\n }, [labelWidth, labelItemVertical, labelAlign]);\n\n if (isClear) return null;\n\n return (\n <Form.Item normalize={outputNormalize} {...rest} className={innerClassName}>\n {isValidElement(children) ? (\n <FormItemWrapperChildren\n wrapper={wrapper}\n before={before}\n after={after}\n inputNormalize={inputNormalize}\n >\n {children}\n </FormItemWrapperChildren>\n ) : (\n children\n )}\n </Form.Item>\n );\n};\n\nFormItemWrapper['domTypeName'] = 'FormItemWrapper';\n"],"names":["FormItemWrapperChildren","props","wrapper","children","inputNormalize","rest","_objectWithoutPropertiesLoose","_excluded","hasValue","hasOwnProperty","_children","cloneElement","composeProps","before","after","_jsxs","style","display","alignItems","_jsx","marginRight","flex","marginLeft","FormItemWrapper","isClear","labelWidth","labelItemVertical","labelAlign","outputNormalize","className","_excluded2","innerClassName","useMemo","preDefinedClassName","getFormLayoutClassName","Form","Item","_extends","normalize","isValidElement"],"mappings":";mjBAsCA,IAAMA,EAA0B,SAA1BA,EAA2BC,GAC/B,IAAQC,EAA+CD,EAA/CC,QAASC,EAAsCF,EAAtCE,SAAUC,EAA4BH,EAA5BG,eAAmBC,EAAIC,EAAKL,EAAKM,GAE5D,IAAMC,EAAWH,EAAKI,eAAe,SACrC,GAAID,GAAYJ,EAAgB,CAC9BC,EAAK,SAAWD,EAAeC,EAAK,SACtC,CACA,IAAMK,EAAYC,EAAaR,EAAUS,EAAaT,EAASF,MAAOI,EAAM,OAC5E,GAAIH,EAAS,CACX,OAAOA,EAAQQ,EACjB,CACA,GAAIT,EAAMY,QAAUZ,EAAMa,MAAO,CAC/B,OACEC,EAAA,MAAA,CAAKC,MAAO,CAAEC,QAAS,OAAQC,WAAY,UAAWf,SACnDF,CAAAA,EAAMY,OAASM,EAAA,OAAA,CAAMH,MAAO,CAAEI,YAAa,IAAKjB,SAAEF,EAAMY,SAAiB,KAC1EM,EAAA,MAAA,CAAKH,MAAO,CAAEK,KAAM,GAAIlB,SAAEO,IACzBT,EAAMa,MAAQK,EAAA,OAAA,CAAMH,MAAO,CAAEM,WAAY,IAAKnB,SAAEF,EAAMa,QAAgB,OAG7E,CACA,OAAOJ,CACT,MAUaa,EAAkB,SAAlBA,EAAmBtB,GAC9B,IACEC,EAYED,EAZFC,QACAsB,EAWEvB,EAXFuB,QACAC,EAUExB,EAVFwB,WACAC,EASEzB,EATFyB,kBACAC,EAQE1B,EARF0B,WACAxB,EAOEF,EAPFE,SACAU,EAMEZ,EANFY,OACAC,EAKEb,EALFa,MACAV,EAIEH,EAJFG,eACAwB,EAGE3B,EAHF2B,gBACAC,EAEE5B,EAFF4B,UACGxB,EAAIC,EACLL,EAAK6B,GAET,IAAMC,EAAiBC,GAAQ,WAC7B,OAAOC,EAAoBC,uBAAuB,CAChDT,WAAAA,EACAC,kBAAAA,EACAC,WAAAA,EACAE,UAAAA,GAEH,GAAE,CAACJ,EAAYC,EAAmBC,IAEnC,GAAIH,EAAS,OAAO,KAEpB,OACEL,EAACgB,EAAKC,KAAIC,EAAA,CAACC,UAAWV,GAAqBvB,EAAI,CAAEwB,UAAWE,EAAe5B,SACxEoC,EAAepC,GACdgB,EAACnB,EAAuB,CACtBE,QAASA,EACTW,OAAQA,EACRC,MAAOA,EACPV,eAAgBA,EAAeD,SAE9BA,IAGHA,IAIR,EAEAoB,EAAgB,eAAiB"}
|
|
@@ -4,7 +4,10 @@ import './../config-provider-wrapper/index.css';
|
|
|
4
4
|
import './../fba-hooks/index.css';
|
|
5
5
|
import './../types/index.css';
|
|
6
6
|
import './../fba-utils/index.css';
|
|
7
|
+
import './../form-item-group/index.css';
|
|
8
|
+
import './../flex-layout/index.css';
|
|
9
|
+
import './../text-symbol-wrapper/index.css';
|
|
7
10
|
import './index.css';
|
|
8
11
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
9
|
-
import{_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as
|
|
12
|
+
import{_ as e}from"../_rollupPluginBabelHelpers-a0769acd.js";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{toArray as r,getUuid as i}from"@flatbiz/utils";import{Form as n,Empty as o}from"antd";import{useRef as a,Fragment as m}from"react";import{ButtonWrapper as l}from"../button-wrapper/index.js";import{FormItemGroup as s}from"../form-item-group/index.js";import{TextSymbolWrapper as d}from"../text-symbol-wrapper/index.js";import{jsxs as p,jsx as u}from"react/jsx-runtime";import"@ant-design/icons/es/icons/LoadingOutlined";import"@dimjs/lang/cjs/is-promise";import"@wove/react/cjs/hooks";import"../index-7f4ad045.js";import"antd/es/locale/en_US";import"antd/es/locale/zh_CN";import"dayjs";import"dayjs/locale/en";import"dayjs/locale/zh-cn";import"dayjs/plugin/advancedFormat";import"dayjs/plugin/customParseFormat";import"dayjs/plugin/localeData";import"dayjs/plugin/utc";import"dayjs/plugin/weekday";import"dayjs/plugin/weekOfYear";import"dayjs/plugin/weekYear";import"../fba-hooks/index.js";import"@dimjs/lang/cjs/is-array";import"../use-responsive-point-21b8c601.js";import"@dimjs/utils/cjs/extend";import"../fba-utils/index.js";import"../flex-layout/index.js";var c=function e(t){if(t.wrapper)return t.wrapper({children:t.children});return t.children};var f=function e(t){var r;return u(s.HorizontalUnion,{style:{marginBottom:10},groupConfigList:((r=t.formListItemTitleList)==null?void 0:r.map((function(e){if(e.required){return{width:e.width,mainItem:u("div",{style:{textAlign:"center"},children:u(d,{text:e.title,symbolType:"required"})})}}return{width:e.width,mainItem:u("div",{style:{textAlign:"center"},children:e.title})}})))||[]})};var j=function s(d){var j;var g=[].concat(d.prevCompleteName,r(d.name));var h=n.useFormInstance();var y=a([]);var v=d.uidFieldName||"uid";var w=n.useWatch(g,h);return p("div",{className:t("form-list-wrapper",d.className),style:d.style,children:[(j=d.formListItemTitleList)!=null&&j.length?u(f,{formListItemTitleList:d.formListItemTitleList,className:d.formListItemTitleClassName,style:d.formListItemTitleStyle}):null,!d.hiddenEmptyRender&&!(w!=null&&w.length)?u(o,{image:o.PRESENTED_IMAGE_SIMPLE,style:{margin:"15px 0"}}):null,u(n.List,{name:d.name,rules:d.rules,children:function t(r,n){y.current=r;return u(c,{wrapper:d.formListChildrenWrapper,children:p(m,{children:[r.map((function(e,t){var r=[].concat(g,[e.name]);return u(m,{children:d.children({formListFieldData:e,operation:n,formStageCompleteName:r,prevCompleteName:g,index:t,getInsideFormItemName:function t(r){return[e.name,r]},getInsideFormItemData:function e(){return h.getFieldValue(r)},uidKey:v})},e.key)})),d.onCustomAddRowButton?d.onCustomAddRowButton(n):u(l,{hidden:d.hiddenAddRowButton,type:"dashed",block:true,onClick:function t(){var r;return n.add(e((r={},r[v]=i(),r),d.getAddRowDefaultValues==null?void 0:d.getAddRowDefaultValues()))},children:"添加"})]})})}})]})};export{j as FormListWrapper};
|
|
10
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-list-wrapper/form-list-wrapper.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { getUuid, toArray } from '@flatbiz/utils';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { Fragment, useRef, type ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport './style.less';\nimport { type FormListWrapperProps } from './types';\ntype FormListChildrenWrapperProps = {\n wrapper?: FormListWrapperProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\n/**\n * FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * ```\n */\nexport const FormListWrapper = (props: FormListWrapperProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n const uidFieldName = props.uidFieldName || 'uid';\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n return (\n <div className={classNames('form-list-wrapper', props.className)} style={props.style}>\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <Form.List name={props.name} rules={props.rules}>\n {(fields, operation) => {\n formListOperationRef.current = fields;\n return (\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n {fields.map((field, index) => {\n const formStageCompleteName = [...stageCompleteName, field.name];\n return (\n <Fragment key={field.key}>\n {props.children({\n formListFieldData: field,\n operation: operation,\n formStageCompleteName,\n prevCompleteName: stageCompleteName,\n index,\n getInsideFormItemName: (key: string) => {\n return [field.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(formStageCompleteName);\n },\n uidKey: uidFieldName,\n })}\n </Fragment>\n );\n })}\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({ [uidFieldName]: getUuid(), ...props.getAddRowDefaultValues?.() })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n </Fragment>\n </FormListChildrenWrapper>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["FormListChildrenWrapper","props","wrapper","children","FormListWrapper","stageCompleteName","concat","prevCompleteName","toArray","name","form","Form","useFormInstance","formListOperationRef","useRef","uidFieldName","formListValue","useWatch","_jsxs","className","_classNames","
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/form-list-wrapper/form-list-wrapper.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { getUuid, toArray } from '@flatbiz/utils';\nimport { Empty, Form, type FormListFieldData } from 'antd';\nimport { CSSProperties, Fragment, useRef, type ReactElement } from 'react';\nimport { ButtonWrapper } from '../button-wrapper';\nimport { FormItemGroup } from '../form-item-group';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper';\nimport './style.less';\nimport { type FormListWrapperProps } from './types';\ntype FormListChildrenWrapperProps = {\n wrapper?: FormListWrapperProps['formListChildrenWrapper'];\n children: ReactElement;\n};\nconst FormListChildrenWrapper = (props: FormListChildrenWrapperProps) => {\n if (props.wrapper) return props.wrapper({ children: props.children });\n return props.children;\n};\n\nconst FormListTitleRender = (props: {\n formListItemTitleList: FormListWrapperProps['formListItemTitleList'];\n className?: string;\n style?: CSSProperties;\n}) => {\n return (\n <FormItemGroup.HorizontalUnion\n style={{ marginBottom: 10 }}\n groupConfigList={\n props.formListItemTitleList?.map((item) => {\n if (item.required) {\n return {\n width: item.width,\n mainItem: (\n <div style={{ textAlign: 'center' }}>\n <TextSymbolWrapper text={item.title} symbolType=\"required\" />\n </div>\n ),\n };\n }\n return { width: item.width, mainItem: <div style={{ textAlign: 'center' }}>{item.title}</div> };\n }) || []\n }\n />\n );\n};\n\n/**\n * FormList\n * ```\n * 1. FormList数组中必须要有唯一值字段,默认值字段名称uid,可通过uidFieldName自定义设置\n * 2. Demo: https://fex.qa.tcshuke.com/docs/admin/main/form/list\n * ```\n */\nexport const FormListWrapper = (props: FormListWrapperProps) => {\n const stageCompleteName = [...props.prevCompleteName, ...toArray(props.name)] as Array<string | number>;\n const form = Form.useFormInstance();\n const formListOperationRef = useRef<FormListFieldData[]>([]);\n const uidFieldName = props.uidFieldName || 'uid';\n const formListValue = Form.useWatch(stageCompleteName, form);\n\n return (\n <div className={classNames('form-list-wrapper', props.className)} style={props.style}>\n {props.formListItemTitleList?.length ? (\n <FormListTitleRender\n formListItemTitleList={props.formListItemTitleList}\n className={props.formListItemTitleClassName}\n style={props.formListItemTitleStyle}\n />\n ) : null}\n {!props.hiddenEmptyRender && !formListValue?.length ? (\n <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} style={{ margin: '15px 0' }} />\n ) : null}\n <Form.List name={props.name} rules={props.rules}>\n {(fields, operation) => {\n formListOperationRef.current = fields;\n return (\n <FormListChildrenWrapper wrapper={props.formListChildrenWrapper}>\n <Fragment>\n {fields.map((field, index) => {\n const formStageCompleteName = [...stageCompleteName, field.name];\n return (\n <Fragment key={field.key}>\n {props.children({\n formListFieldData: field,\n operation: operation,\n formStageCompleteName,\n prevCompleteName: stageCompleteName,\n index,\n getInsideFormItemName: (key: string) => {\n return [field.name, key];\n },\n getInsideFormItemData: () => {\n return form.getFieldValue(formStageCompleteName);\n },\n uidKey: uidFieldName,\n })}\n </Fragment>\n );\n })}\n {props.onCustomAddRowButton ? (\n props.onCustomAddRowButton(operation)\n ) : (\n <ButtonWrapper\n hidden={props.hiddenAddRowButton}\n type=\"dashed\"\n block\n onClick={() =>\n operation.add({ [uidFieldName]: getUuid(), ...props.getAddRowDefaultValues?.() })\n }\n >\n 添加\n </ButtonWrapper>\n )}\n </Fragment>\n </FormListChildrenWrapper>\n );\n }}\n </Form.List>\n </div>\n );\n};\n"],"names":["FormListChildrenWrapper","props","wrapper","children","FormListTitleRender","_props$formListItemTi","_jsx","FormItemGroup","HorizontalUnion","style","marginBottom","groupConfigList","formListItemTitleList","map","item","required","width","mainItem","textAlign","TextSymbolWrapper","text","title","symbolType","FormListWrapper","_props$formListItemTi2","stageCompleteName","concat","prevCompleteName","toArray","name","form","Form","useFormInstance","formListOperationRef","useRef","uidFieldName","formListValue","useWatch","_jsxs","className","_classNames","length","formListItemTitleClassName","formListItemTitleStyle","hiddenEmptyRender","Empty","image","PRESENTED_IMAGE_SIMPLE","margin","List","rules","fields","operation","current","formListChildrenWrapper","Fragment","field","index","formStageCompleteName","formListFieldData","getInsideFormItemName","key","getInsideFormItemData","getFieldValue","uidKey","onCustomAddRowButton","ButtonWrapper","hidden","hiddenAddRowButton","type","block","onClick","_extends2","add","_extends","getUuid","getAddRowDefaultValues"],"mappings":";kqCAaA,IAAMA,EAA0B,SAA1BA,EAA2BC,GAC/B,GAAIA,EAAMC,QAAS,OAAOD,EAAMC,QAAQ,CAAEC,SAAUF,EAAME,WAC1D,OAAOF,EAAME,QACf,EAEA,IAAMC,EAAsB,SAAtBA,EAAuBH,GAIvB,IAAAI,EACJ,OACEC,EAACC,EAAcC,gBAAe,CAC5BC,MAAO,CAAEC,aAAc,IACvBC,kBACEN,EAAAJ,EAAMW,wBAANP,UAAAA,EAAAA,EAA6BQ,KAAI,SAACC,GAChC,GAAIA,EAAKC,SAAU,CACjB,MAAO,CACLC,MAAOF,EAAKE,MACZC,SACEX,EAAA,MAAA,CAAKG,MAAO,CAAES,UAAW,UAAWf,SAClCG,EAACa,EAAiB,CAACC,KAAMN,EAAKO,MAAOC,WAAW,eAIxD,CACA,MAAO,CAAEN,MAAOF,EAAKE,MAAOC,SAAUX,EAAA,MAAA,CAAKG,MAAO,CAAES,UAAW,UAAWf,SAAEW,EAAKO,QAClF,MAAK,IAId,MASaE,EAAkB,SAAlBA,EAAmBtB,GAAgC,IAAAuB,EAC9D,IAAMC,EAAiB,GAAAC,OAAOzB,EAAM0B,iBAAqBC,EAAQ3B,EAAM4B,OACvE,IAAMC,EAAOC,EAAKC,kBAClB,IAAMC,EAAuBC,EAA4B,IACzD,IAAMC,EAAelC,EAAMkC,cAAgB,MAC3C,IAAMC,EAAgBL,EAAKM,SAASZ,EAAmBK,GAEvD,OACEQ,EAAA,MAAA,CAAKC,UAAWC,EAAW,oBAAqBvC,EAAMsC,WAAY9B,MAAOR,EAAMQ,MAAMN,SAClF,EAAAqB,EAAAvB,EAAMW,wBAANY,MAAAA,EAA6BiB,OAC5BnC,EAACF,EAAmB,CAClBQ,sBAAuBX,EAAMW,sBAC7B2B,UAAWtC,EAAMyC,2BACjBjC,MAAOR,EAAM0C,yBAEb,MACF1C,EAAM2C,qBAAsBR,SAAAA,EAAeK,QAC3CnC,EAACuC,EAAK,CAACC,MAAOD,EAAME,uBAAwBtC,MAAO,CAAEuC,OAAQ,YAC3D,KACJ1C,EAACyB,EAAKkB,KAAI,CAACpB,KAAM5B,EAAM4B,KAAMqB,MAAOjD,EAAMiD,MAAM/C,SAC7C,SAAAA,EAACgD,EAAQC,GACRnB,EAAqBoB,QAAUF,EAC/B,OACE7C,EAACN,EAAuB,CAACE,QAASD,EAAMqD,wBAAwBnD,SAC9DmC,EAACiB,EAAQ,CAAApD,SAAA,CACNgD,EAAOtC,KAAI,SAAC2C,EAAOC,GAClB,IAAMC,KAAqBhC,OAAOD,EAAmB+B,CAAAA,EAAM3B,OAC3D,OACEvB,EAACiD,EAAQ,CAAApD,SACNF,EAAME,SAAS,CACdwD,kBAAmBH,EACnBJ,UAAWA,EACXM,sBAAAA,EACA/B,iBAAkBF,EAClBgC,MAAAA,EACAG,sBAAuB,SAAAA,EAACC,GACtB,MAAO,CAACL,EAAM3B,KAAMgC,EACrB,EACDC,sBAAuB,SAAAA,IACrB,OAAOhC,EAAKiC,cAAcL,EAC3B,EACDM,OAAQ7B,KAbGqB,EAAMK,IAiBzB,IACC5D,EAAMgE,qBACLhE,EAAMgE,qBAAqBb,GAE3B9C,EAAC4D,EAAa,CACZC,OAAQlE,EAAMmE,mBACdC,KAAK,SACLC,MAAK,KACLC,QAAS,SAAAA,IAAA,IAAAC,EAAA,OACPpB,EAAUqB,IAAGC,GAAAF,EAAA,CAAA,EAAAA,EAAIrC,GAAewC,IAASH,GAAKvE,EAAM2E,wBAAsB,UAAA,EAA5B3E,EAAM2E,0BACrD,EAAAzE,SACF,WAOX,MAIR"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.form-item-label-70.ant-form-item .ant-form-item-label{width:70px}.form-item-label-80.ant-form-item .ant-form-item-label{width:80px}.form-item-label-90.ant-form-item .ant-form-item-label{width:90px}.form-item-label-100.ant-form-item .ant-form-item-label{width:100px}.form-item-label-110.ant-form-item .ant-form-item-label{width:110px}.form-item-label-120.ant-form-item .ant-form-item-label{width:120px}.form-item-label-130.ant-form-item .ant-form-item-label{width:130px}.form-item-label-140.ant-form-item .ant-form-item-label{width:140px}.form-item-label-150.ant-form-item .ant-form-item-label{width:150px}.form-item-label-160.ant-form-item .ant-form-item-label{width:160px}.form-item-label-170.ant-form-item .ant-form-item-label{width:170px}.form-item-label-180.ant-form-item .ant-form-item-label{width:180px}.form-item-label-190.ant-form-item .ant-form-item-label{width:190px}.form-item-label-200.ant-form-item .ant-form-item-label{width:200px}.form-item-label-auto.ant-form-item .ant-form-item-row{flex-direction:row!important}.form-item-label-auto.ant-form-item .ant-form-item-label{width:auto!important}.form-item-label-auto.ant-form-item .ant-form-item-control{flex:1!important}.form-item-label-align-left.ant-form-item .ant-form-item-label{text-align:left}.form-item-label-align-right.ant-form-item .ant-form-item-label{text-align:right}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row{flex-direction:column}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-label{text-align:left;width:100%}.ant-form-item.form-item-label-value-vertical>.ant-form-item-row>.ant-form-item-control{flex:initial}.form-label-70 .ant-form-item-label{width:70px}.form-label-80 .ant-form-item-label{width:80px}.form-label-90 .ant-form-item-label{width:90px}.form-label-100 .ant-form-item-label{width:100px}.form-label-110 .ant-form-item-label{width:110px}.form-label-120 .ant-form-item-label{width:120px}.form-label-130 .ant-form-item-label{width:130px}.form-label-140 .ant-form-item-label{width:140px}.form-label-150 .ant-form-item-label{width:150px}.form-label-160 .ant-form-item-label{width:160px}.form-label-170 .ant-form-item-label{width:170px}.form-label-180 .ant-form-item-label{width:180px}.form-label-190 .ant-form-item-label{width:190px}.form-label-200 .ant-form-item-label{width:200px}.form-label-auto .ant-form-item-label{width:auto}.form-label-align-left .ant-form-item-label{text-align:left}.form-label-align-right .ant-form-item-label{text-align:right}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-row{flex-direction:column}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-label{text-align:left;width:100%}.form-label-value-vertical .ant-form-item:not(.form-item-label-auto) .ant-form-item-control{flex:initial}.form-formitem-gap-15{margin-bottom:-15px}.form-formitem-gap-15 .ant-form-item{margin-bottom:15px}.form-formitem-gap-8{margin-bottom:-8px}.form-formitem-gap-8 .ant-form-item{margin-bottom:8px}.form-formitem-gap-5{margin-bottom:-5px}.form-formitem-gap-5 .ant-form-item{margin-bottom:5px}.form-formitem-gap-0,.form-formitem-gap-0 .ant-form-item{margin-bottom:0}
|