@topthink/components 1.0.56 → 1.0.58
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/es/editor-widget-ebec8493.js +356 -0
- package/es/editor-widget-ebec8493.js.map +1 -0
- package/es/form-74ef0417.js +2 -0
- package/es/form-74ef0417.js.map +1 -0
- package/es/form-8925a750.js +231 -0
- package/es/form-8925a750.js.map +1 -0
- package/es/form-9c0e638a.js +230 -1
- package/es/form-9c0e638a.js.map +1 -1
- package/es/index-2b97b70d.js +2 -0
- package/es/index-2b97b70d.js.map +1 -0
- package/es/index-303e1845.js +560 -0
- package/es/index-303e1845.js.map +1 -0
- package/es/index-4f51cece.js +1304 -19
- package/es/index-4f51cece.js.map +1 -1
- package/es/index-563b11c6.js +67 -0
- package/es/index-563b11c6.js.map +1 -0
- package/es/index-6ae8237d.js +67 -0
- package/es/index-6ae8237d.js.map +1 -0
- package/es/index-7a7c06a9.js +40 -0
- package/es/index-7a7c06a9.js.map +1 -0
- package/es/index-9869b1c6.js +1350 -0
- package/es/index-9869b1c6.js.map +1 -0
- package/es/index-a214613e.js +40 -0
- package/es/index-a214613e.js.map +1 -0
- package/es/index-d964165a.js +529 -9
- package/es/index-d964165a.js.map +1 -1
- package/es/index.js +1 -1
- package/package.json +7 -5
- package/types/components/lazy/form/widgets/editor-widget.d.ts +5 -0
- package/types/index.d.ts +1 -1
- package/types/utils/is-record.d.ts +1 -0
- package/types/errors/unauthorized.d.ts +0 -4
- /package/types/components/lazy/{form.d.ts → form/index.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-9869b1c6.js","sources":["../src/utils/message.ts","../src/hooks/use-state-with-callback.ts","../src/components/modal/message.tsx","../src/components/modal/show.tsx","../src/components/tooltip.tsx","../src/components/lazy/table/context.ts","../src/components/button.tsx","../src/components/modal/confirm.tsx","../src/components/modal/index.tsx","../src/utils/toast.tsx","../src/utils/is-record.ts","../src/request.ts","../src/hooks/use-unmounted-ref.ts","../src/hooks/use-safe-state.ts","../src/utils/wait-pay-complete.tsx","../src/components/result.tsx","../src/components/dimmer.tsx","../src/components/loader.tsx","../src/components/card.tsx","../src/components/error.tsx","../src/components/space.tsx","../src/components/steps.tsx","../src/components/statistic.tsx","../src/components/pagination.tsx","../src/components/number-format.tsx","../src/components/loading-button.tsx","../src/components/image-zoom.tsx","../src/components/request-button.tsx","../src/components/form.tsx","../src/components/table.tsx","../src/hooks/use-overlay-state.ts","../src/components/modal-button.tsx","../src/components/modal-form.tsx","../src/hooks/use-request.ts","../src/hooks/use-callback-ref.ts","../src/hooks/use-controllable-state.ts","../src/hooks/use-debounce.ts","../src/errors/unauthorized.ts"],"sourcesContent":["import Swal from 'sweetalert2/dist/sweetalert2.js';\r\nimport withReactContent from 'sweetalert2-react-content';\r\nimport { SweetAlertOptions, SweetAlertResult } from 'sweetalert2';\r\n\r\nconst CustomSwal = withReactContent(Swal);\r\n\r\ninterface MessageOptions<T = any> extends SweetAlertOptions<T> {\r\n\r\n}\r\n\r\nconst defaultOptions: MessageOptions = {\r\n confirmButtonText: '确定',\r\n cancelButtonText: '取消',\r\n};\r\n\r\nconst Message = {\r\n confirm: async <T = any>(options: MessageOptions<T>) => {\r\n const { isConfirmed } = await CustomSwal.fire({\r\n ...defaultOptions,\r\n icon: 'warning',\r\n showCancelButton: true,\r\n ...options,\r\n async preConfirm(data) {\r\n if (options.preConfirm) {\r\n try {\r\n return await options.preConfirm(data);\r\n } catch (e) {\r\n if (e instanceof Error) {\r\n CustomSwal.showValidationMessage(e.message);\r\n }\r\n return false;\r\n }\r\n }\r\n return true;\r\n },\r\n });\r\n\r\n return isConfirmed;\r\n },\r\n success: (options: MessageOptions) => {\r\n CustomSwal.fire({\r\n ...defaultOptions,\r\n toast: true,\r\n position: 'top',\r\n icon: 'success',\r\n timer: 2000,\r\n showConfirmButton: false,\r\n ...options\r\n });\r\n },\r\n error: (options: MessageOptions) => {\r\n CustomSwal.fire({\r\n ...defaultOptions,\r\n toast: true,\r\n position: 'top',\r\n icon: 'error',\r\n timer: 5000,\r\n showConfirmButton: false,\r\n ...options\r\n });\r\n },\r\n close: (result?: SweetAlertResult) => {\r\n CustomSwal.close(result);\r\n },\r\n defaults: defaultOptions\r\n};\r\n\r\nexport default Message;\r\n","import { SetStateAction, useEffect, useRef, useState } from 'react';\n\nexport default function useStateWithCallback<S>(initState: S): [S, (value: SetStateAction<S>, callback: () => void) => void] {\n const callbackRef = useRef<Function | null>(null);\n\n const [state, setState] = useState(initState);\n\n useEffect(() => {\n if (callbackRef.current) {\n callbackRef.current();\n callbackRef.current = null;\n }\n }, [state]);\n\n const setCallbackState = (value: SetStateAction<S>, callback: () => void) => {\n callbackRef.current = typeof callback === 'function' ? callback : null;\n setState(value);\n };\n\n return [state, setCallbackState];\n}\n","import {\r\n ComponentType,\r\n createContext,\r\n Fragment,\r\n ReactNode,\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useMemo,\r\n useState\r\n} from 'react';\r\nimport useStateWithCallback from '../../hooks/use-state-with-callback';\r\nimport { ModalProps } from 'react-bootstrap';\r\n\r\ninterface MessageContextType {\r\n container?: ModalProps['container'];\r\n}\r\n\r\nconst MessageContext = createContext<MessageContextType>({});\r\n\r\ntype MessageWrapProps<T, P = void> = {\r\n resolve: (value: P | void) => void\r\n destroy: () => void\r\n message: T\r\n}\r\n\r\nexport type MessageProps<T, P = void> = {\r\n resolve: (value: P | void) => void\r\n message: T\r\n state: {\r\n show: boolean\r\n onHide: () => void\r\n onExited: () => void\r\n container?: ModalProps['container']\r\n }\r\n}\r\n\r\nexport function wrapMessage<T = {}, P = any>(Component: ComponentType<MessageProps<T, P>>): ComponentType<MessageWrapProps<T, P>> {\r\n\r\n return ({ resolve, destroy, message }) => {\r\n\r\n const [show, setShow] = useStateWithCallback(true);\r\n const context = useContext(MessageContext);\r\n\r\n const handleResolve = useCallback((value: P | void) => {\r\n setShow(false, () => {\r\n resolve(value);\r\n });\r\n }, [setShow, resolve]);\r\n\r\n const state = useMemo(() => {\r\n return {\r\n show,\r\n onHide: () => handleResolve(),\r\n onExited: () => destroy(),\r\n container: context.container\r\n };\r\n }, [show, handleResolve, destroy]);\r\n\r\n return <Component\r\n resolve={handleResolve}\r\n state={state}\r\n message={message}\r\n />;\r\n };\r\n}\r\n\r\nexport function createMessage<T = {}, P = any>(Component: ComponentType<MessageWrapProps<T, P>>): (message: T) => Promise<P | void> {\r\n return (message) => {\r\n return new Promise<P | void>((resolve) => {\r\n const component = <Component\r\n resolve={resolve}\r\n destroy={() => {\r\n hide(component);\r\n }}\r\n message={message}\r\n />;\r\n\r\n show(component);\r\n });\r\n };\r\n}\r\n\r\ntype State = Set<ReactNode>\r\n\r\nlet listener: (state: State) => void = () => void 0;\r\n\r\nlet memoryState: State = new Set();\r\n\r\nexport const show = (modal: ReactNode) => {\r\n memoryState = new Set(memoryState);\r\n memoryState.add(modal);\r\n\r\n listener(memoryState);\r\n};\r\n\r\nexport const hide = (modal: ReactNode) => {\r\n memoryState = new Set(memoryState);\r\n memoryState.delete(modal);\r\n\r\n listener(memoryState);\r\n};\r\n\r\nexport default function Message(props: MessageContextType) {\r\n const [state, setState] = useState<State>(memoryState);\r\n useEffect(() => {\r\n listener = setState;\r\n }, []);\r\n\r\n return <MessageContext.Provider value={props}>\r\n {Array.from(state).map((message, index) => <Fragment key={`message-${index}`}>{message}</Fragment>)}\r\n </MessageContext.Provider>;\r\n}\r\n","import { createMessage, MessageProps, wrapMessage } from './message';\r\nimport { ComponentType } from 'react';\r\n\r\nexport default function show<T, P = any>(Component: ComponentType<MessageProps<any, T>>, options?: P) {\r\n return createMessage(wrapMessage(Component))(options);\r\n}\r\n","import { OverlayTrigger, OverlayTriggerProps, Tooltip as BsTooltip } from 'react-bootstrap';\r\nimport { uniqueId } from 'lodash';\r\n\r\ninterface TooltipProps {\r\n tooltip: string;\r\n children: OverlayTriggerProps['children'];\r\n placement?: OverlayTriggerProps['placement'];\r\n}\r\n\r\nexport default function Tooltip({ tooltip, children, placement = 'bottom' }: TooltipProps) {\r\n\r\n return <OverlayTrigger\r\n placement={placement}\r\n overlay={\r\n <BsTooltip id={uniqueId()}>\r\n {tooltip}\r\n </BsTooltip>\r\n }\r\n >\r\n {children}\r\n </OverlayTrigger>;\r\n}\r\n","import { createContext } from 'react';\r\n\r\nexport const TableContext = createContext(false);\r\n","import { Button as BsButton, ButtonProps as BsButtonProps, Spinner } from 'react-bootstrap';\r\nimport { forwardRef, useContext } from 'react';\r\nimport Tooltip from './tooltip';\r\nimport { TableContext } from './lazy/table/context';\r\n\r\nexport interface ButtonProps extends BsButtonProps {\r\n loading?: boolean;\r\n percent?: number;\r\n tooltip?: string;\r\n}\r\n\r\nconst Button = forwardRef<any, ButtonProps>((\r\n {\r\n loading,\r\n percent,\r\n disabled,\r\n children,\r\n tooltip,\r\n variant,\r\n ...props\r\n },\r\n ref\r\n) => {\r\n\r\n const inTable = useContext(TableContext);\r\n\r\n if (inTable && !variant) {\r\n variant = 'link';\r\n }\r\n\r\n if (loading) {\r\n disabled = true;\r\n children = <>\r\n <Spinner ref={ref} as='span' size='sm' role='status' aria-hidden='true' animation='border' />\r\n {percent ? <span className='ms-2'>{percent}%</span> : null}\r\n </>;\r\n }\r\n\r\n const button = <BsButton ref={ref} {...props} variant={variant} disabled={disabled}>{children}</BsButton>;\r\n\r\n if (tooltip) {\r\n return <Tooltip tooltip={tooltip}>\r\n <span className={'d-inline-block'}>{button}</span>\r\n </Tooltip>;\r\n }\r\n\r\n return button;\r\n});\r\n\r\nexport default Button;\r\n","import { FC } from 'react';\r\nimport { Modal } from 'react-bootstrap';\r\nimport { createMessage, MessageProps, wrapMessage } from './message';\r\nimport Button from '../button';\r\n\r\ninterface ConfirmOptions {\r\n title?: string;\r\n message: string;\r\n okText?: string;\r\n cancelText?: string;\r\n}\r\n\r\nconst Confirm: FC<MessageProps<ConfirmOptions, true>> = function({\r\n state,\r\n message: {\r\n title,\r\n message,\r\n okText,\r\n cancelText\r\n },\r\n resolve,\r\n}) {\r\n return <Modal centered {...state} >\r\n <Modal.Header>\r\n <Modal.Title as='h5'>{title || '确认'}</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>{message}</Modal.Body>\r\n <Modal.Footer>\r\n <Button variant='secondary' onClick={() => resolve()}>{cancelText || '取消'}</Button>\r\n <Button onClick={() => resolve(true)}>{okText || '确定'}</Button>\r\n </Modal.Footer>\r\n </Modal>;\r\n};\r\n\r\nexport default function confirm(options: ConfirmOptions) {\r\n return createMessage(wrapMessage(Confirm))(options);\r\n}\r\n","import { Modal as ReactModal, ModalProps as ReactModalProps } from 'react-bootstrap';\r\nimport { ElementType, MouseEvent, ReactNode, useMemo, useState } from 'react';\r\nimport Button, { ButtonProps } from '../button';\r\nimport show from './show';\r\nimport confirm from './confirm';\r\nimport Message, { MessageProps } from './message';\r\n\r\nexport interface ModalProps extends Pick<\r\n ReactModalProps,\r\n 'style' | 'container' | 'backdrop' | 'centered' | 'size' | 'scrollable' | 'fullscreen' | 'onHide' | 'onShow' | 'onEnter' | 'onEntering' | 'onEntered' | 'onExit' | 'onExiting' | 'onExited'\r\n> {\r\n children: ReactNode;\r\n header?: ReactNode;\r\n footer?: ReactNode | ((args: { okButton: ReactNode, cancelButton: ReactNode }) => ReactNode);\r\n okText?: string;\r\n cancelText?: string;\r\n closable?: boolean;\r\n show?: boolean;\r\n onOk?: (e: MouseEvent) => void;\r\n onCancel?: (e: MouseEvent) => void;\r\n okButtonProps?: ButtonProps;\r\n bodyAs?: ElementType;\r\n headerAs?: ElementType;\r\n confirmLoading?: boolean;\r\n}\r\n\r\nconst Modal = ({\r\n header,\r\n children,\r\n footer,\r\n closable = true,\r\n show,\r\n cancelText = '取消',\r\n okText = '确定',\r\n onOk,\r\n onCancel,\r\n onHide,\r\n okButtonProps,\r\n bodyAs,\r\n headerAs = 'h5',\r\n confirmLoading = false,\r\n ...rest\r\n}: ModalProps) => {\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const okButton = useMemo(() => {\r\n return <Button loading={loading || confirmLoading} variant={'primary'} onClick={async (e) => {\r\n setLoading(true);\r\n try {\r\n await onOk?.(e);\r\n if (!e.defaultPrevented) {\r\n onHide?.();\r\n }\r\n } finally {\r\n setLoading(false);\r\n }\r\n }} {...okButtonProps}>{okText}</Button>;\r\n }, [okButtonProps, okText, onOk, onHide, loading, confirmLoading]);\r\n\r\n const cancelButton = useMemo(() => {\r\n return <Button variant='secondary' onClick={(e) => {\r\n onCancel?.(e);\r\n if (!e.defaultPrevented) {\r\n onHide?.();\r\n }\r\n }}>{cancelText}</Button>;\r\n }, [onCancel, onHide, cancelText]);\r\n\r\n switch (typeof footer) {\r\n case 'undefined':\r\n footer = <>\r\n {cancelButton}\r\n {okButton}\r\n </>;\r\n break;\r\n case 'function':\r\n footer = footer({ okButton, cancelButton });\r\n break;\r\n }\r\n\r\n return <ReactModal {...rest} onHide={onHide} show={show}>\r\n {header && <ReactModal.Header closeButton={closable}>\r\n <ReactModal.Title as={headerAs}>{header}</ReactModal.Title>\r\n </ReactModal.Header>}\r\n <ReactModal.Body as={bodyAs}>{children}</ReactModal.Body>\r\n {footer && <ReactModal.Footer>{footer}</ReactModal.Footer>}\r\n </ReactModal>;\r\n};\r\n\r\nModal.Message = Message;\r\nModal.confirm = confirm;\r\nModal.show = show;\r\nexport default Modal;\r\nexport { MessageProps };\r\n","import { Alert } from 'react-bootstrap';\r\nimport { NoticeContent, NotificationInstance } from 'rc-notification/lib/Notification';\r\nimport Notification from 'rc-notification';\r\nimport { NotificationProps } from 'rc-notification/es/Notification';\r\n\r\nlet noticeInstance: NotificationInstance | null;\r\n\r\nconst defaultOptions: NotificationProps & {\r\n getContainer?: () => HTMLElement;\r\n} = {};\r\n\r\nfunction getNoticeInstance(callback: (instance: NotificationInstance) => void) {\r\n if (noticeInstance) {\r\n return callback(noticeInstance);\r\n }\r\n\r\n Notification.newInstance({\r\n ...defaultOptions,\r\n prefixCls: 'notification',\r\n maxCount: 5,\r\n style: {\r\n top: 20,\r\n right: 20\r\n }\r\n }, (instance) => {\r\n if (noticeInstance) {\r\n callback(noticeInstance);\r\n return;\r\n }\r\n noticeInstance = instance;\r\n callback(instance);\r\n });\r\n}\r\n\r\n\r\nconst notice = ({ type, ...options }: { type: string } & NoticeContent) => {\r\n getNoticeInstance((instance) => {\r\n options.duration = 3;\r\n let variant = type;\r\n switch (type) {\r\n case 'error':\r\n variant = 'danger';\r\n options.duration = options.closable ? 0 : 5;\r\n break;\r\n }\r\n\r\n options.content = <Alert variant={variant}>{options.content}</Alert>;\r\n\r\n instance.notice(options);\r\n });\r\n};\r\n\r\nconst types = ['error', 'success', 'info'] as const;\r\n\r\ntype ToastType = Record<typeof types[number], (content: string, options?: NoticeContent) => void> & {\r\n defaults: typeof defaultOptions;\r\n};\r\n\r\nconst Toast = types.reduce((toast, type) => {\r\n toast[type] = (content: string, options?: NoticeContent) => {\r\n notice({\r\n ...options,\r\n type,\r\n content\r\n });\r\n };\r\n return toast;\r\n}, {} as any);\r\n\r\nToast.defaults = defaultOptions;\r\n\r\nexport default Toast as ToastType;\r\n","export default function isRecord(data: any): data is Record<string, string> {\r\n return data && (typeof data === 'object');\r\n}\r\n","import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';\r\nimport queryString from 'query-string';\r\nimport * as rax from 'retry-axios';\r\nimport { RetryConfig } from 'retry-axios';\r\nimport Toast from './utils/toast';\r\nimport isRecord from './utils/is-record';\r\n\r\nexport type Errors = string | {\r\n [key: string]: string\r\n}\r\n\r\ndeclare module 'retry-axios' {\r\n interface RetryConfig {\r\n retryDecider?: () => boolean;\r\n }\r\n}\r\n\r\ndeclare module 'axios' {\r\n interface AxiosError {\r\n errors: Errors;\r\n }\r\n\r\n interface AxiosRequestConfig {\r\n raxConfig?: RetryConfig;\r\n authTokenName?: string;\r\n }\r\n}\r\n\r\nrax.attach();\r\n\r\naxios.defaults.raxConfig = {\r\n retryDelay: 2000,\r\n backoffType: 'static',\r\n shouldRetry: ({ config, response }) => {\r\n if (config.raxConfig?.retryDecider && !config.raxConfig.retryDecider()) {\r\n return false;\r\n }\r\n return config.method?.toUpperCase() === 'GET' && response?.status === 449;\r\n }\r\n};\r\naxios.defaults.maxContentLength = Infinity;\r\naxios.defaults.maxBodyLength = Infinity;\r\naxios.defaults.baseURL = '/api';\r\naxios.defaults.authTokenName = 'authorization';\r\naxios.interceptors.request.use(\r\n config => {\r\n const key = config.authTokenName;\r\n if (key) {\r\n const token = localStorage.getItem(key);\r\n\r\n if (token) {\r\n config.headers = {\r\n Authorization: `Bearer ${token}`,\r\n ...config.headers,\r\n };\r\n }\r\n }\r\n return config;\r\n },\r\n error => {\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\naxios.interceptors.response.use(\r\n response => {\r\n if (response.status === 201 && response.data.location) {\r\n window.location.href = response.data.location;\r\n response.data = undefined; //防止多次跳转\r\n }\r\n\r\n return response;\r\n },\r\n e => {\r\n if (axios.isAxiosError(e)) {\r\n if (e.response) {\r\n const { data, status } = e.response;\r\n if (status === 401) {\r\n e.errors = 'Unauthorized';\r\n Toast.error('Unauthorized');\r\n } else {\r\n if (isRecord(data)) {\r\n if (status === 422) {\r\n e.errors = data;\r\n } else if ('message' in data) {\r\n e.errors = data['message'];\r\n }\r\n } else {\r\n e.errors = data as string;\r\n }\r\n }\r\n }\r\n }\r\n return Promise.reject(e);\r\n }\r\n);\r\n\r\nexport type RequestConfig = AxiosRequestConfig | string\r\nexport type RequestInstance = AxiosInstance\r\nexport const isRequestError = axios.isAxiosError;\r\n\r\nexport const showRequestError = (e: any) => {\r\n if (axios.isAxiosError(e)) {\r\n let errors = e.errors;\r\n if (typeof e.errors !== 'string') {\r\n errors = Object.values(e.errors).join('<br />');\r\n }\r\n Toast.error(errors as string);\r\n } else {\r\n throw e;\r\n }\r\n};\r\n\r\nconst request = async function <T = any>(config: RequestConfig) {\r\n config = typeof config === 'string' ? { url: config } : config;\r\n\r\n const { data } = await axios.request<T>({\r\n paramsSerializer: function(params) {\r\n return queryString.stringify(params, {\r\n sort: false,\r\n skipNull: true,\r\n skipEmptyString: true,\r\n arrayFormat: 'bracket',\r\n });\r\n },\r\n ...config\r\n });\r\n\r\n return data;\r\n};\r\n\r\nrequest.defaults = axios.defaults;\r\nrequest.interceptors = axios.interceptors;\r\n\r\nexport default request;\r\n","import { useEffect, useRef } from 'react';\r\n\r\nconst useUnmountedRef = () => {\r\n const unmountedRef = useRef(false);\r\n useEffect(() => {\r\n unmountedRef.current = false;\r\n return () => {\r\n unmountedRef.current = true;\r\n };\r\n }, []);\r\n return unmountedRef;\r\n};\r\n\r\nexport default useUnmountedRef;\r\n","import { useCallback, useState } from 'react';\r\nimport type { Dispatch, SetStateAction } from 'react';\r\nimport useUnmountedRef from './use-unmounted-ref';\r\n\r\nfunction useSafeState<S>(initialState: S | (() => S)): [S, Dispatch<SetStateAction<S>>];\r\n\r\nfunction useSafeState<S = undefined>(): [S | undefined, Dispatch<SetStateAction<S | undefined>>];\r\n\r\nfunction useSafeState<S>(initialState?: S | (() => S)) {\r\n const unmountedRef = useUnmountedRef();\r\n const [state, setState] = useState(initialState);\r\n const setCurrentState = useCallback((currentState) => {\r\n /** if component is unmounted, stop update */\r\n if (unmountedRef.current) return;\r\n setState(currentState);\r\n }, []);\r\n\r\n return [state, setCurrentState] as const;\r\n}\r\n\r\nexport default useSafeState;\r\n","import show from '../components/modal/show';\r\nimport Modal, { MessageProps } from '../components/modal';\r\nimport { useEffect, useRef } from 'react';\r\nimport request from '../request';\r\nimport useSafeState from '../hooks/use-safe-state';\r\n\r\ninterface PayResult {\r\n pay_url: string;\r\n order_no: string;\r\n}\r\n\r\ninterface Options {\r\n result: PayResult;\r\n checkUrl: string;\r\n onComplete?: () => void;\r\n}\r\n\r\nconst WaitModal = function({ state, message, resolve }: MessageProps<Options>) {\r\n\r\n const open = useRef(true);\r\n const { result, checkUrl, onComplete } = message;\r\n const [checking, setChecking] = useSafeState(false);\r\n\r\n useEffect(() => {\r\n request({\r\n url: checkUrl,\r\n method: 'post',\r\n data: { order_no: result.order_no },\r\n raxConfig: {\r\n shouldRetry(err) {\r\n return open.current && err.response?.status === 449;\r\n }\r\n }\r\n }).then(() => {\r\n onComplete?.();\r\n resolve();\r\n }).catch(() => null);\r\n }, []);\r\n\r\n return <Modal\r\n {...state}\r\n centered\r\n onHide={() => {\r\n open.current = false;\r\n state.onHide();\r\n }}\r\n backdrop='static'\r\n header='支付结果'\r\n okText='已完成支付'\r\n okButtonProps={{ loading: checking }}\r\n onOk={async (e) => {\r\n e.preventDefault();\r\n try {\r\n setChecking(true);\r\n await request({\r\n url: checkUrl,\r\n method: 'post',\r\n data: { order_no: result.order_no },\r\n raxConfig: {\r\n shouldRetry() {\r\n return false;\r\n }\r\n }\r\n });\r\n onComplete?.();\r\n resolve();\r\n } catch {\r\n // ignore\r\n } finally {\r\n setChecking(false);\r\n }\r\n }}\r\n cancelText='取消'\r\n >\r\n 请在新打开的页面上进行支付,支付完成后再关闭此窗口\r\n </Modal>;\r\n};\r\n\r\nexport default function waitPayComplete(options: Options) {\r\n const { result } = options;\r\n window.open(result.pay_url);\r\n show(WaitModal, options);\r\n}\r\n","import { ReactNode } from 'react';\r\nimport styled from 'styled-components';\r\n\r\nconst Container = styled.div`\r\n padding: 48px 32px;\r\n`;\r\n\r\nconst Icon = styled.div`\r\n margin-bottom: 24px;\r\n text-align: center;\r\n font-size: 72px;\r\n`;\r\n\r\nconst Title = styled.div`\r\n color: rgba(0, 0, 0, .85);\r\n font-size: 24px;\r\n line-height: 1.8;\r\n text-align: center;\r\n`;\r\n\r\nconst Extra = styled.div`\r\n margin-top: 32px;\r\n text-align: center;\r\n`;\r\n\r\nconst IconMap = {\r\n success: <i className='bi bi-check-circle-fill text-success' />,\r\n error: <i className='bi bi-exclamation-circle-fill text-danger' />,\r\n info: <i className='bi bi-info-circle-fill text-info' />,\r\n warning: <i className='bi bi-exclamation-triangle-fill text-warning' />,\r\n};\r\n\r\ninterface ResultProps {\r\n status?: keyof typeof IconMap\r\n icon?: ReactNode\r\n title?: string\r\n extra?: ReactNode;\r\n}\r\n\r\nexport default function Result({ status, title, icon, extra }: ResultProps) {\r\n\r\n if (!icon && status) {\r\n icon = IconMap[status];\r\n }\r\n\r\n return <Container>\r\n {icon && <Icon>{icon}</Icon>}\r\n {title && <Title>{title}</Title>}\r\n {extra && <Extra>{extra}</Extra>}\r\n </Container>;\r\n}\r\n","import styled from 'styled-components';\r\n\r\nexport const Dimmable = styled.div`\r\n position: relative;\r\n`;\r\n\r\ninterface DimmerProps {\r\n active?: boolean\r\n inverted?: boolean\r\n}\r\n\r\nconst Dimmer = styled.div<DimmerProps>`\r\n display: ${props => props.active ? 'flex' : 'none'};\r\n position: absolute;\r\n top: 0 !important;\r\n left: 0 !important;\r\n width: 100%;\r\n height: 100%;\r\n text-align: center;\r\n vertical-align: middle;\r\n padding: 1em;\r\n background-color: ${props => props.inverted ? 'rgba(255, 255, 255, .85)' : 'rgba(0, 0, 0, .85)'};\r\n opacity: ${props => props.active ? 1 : 0};\r\n line-height: 1;\r\n animation-fill-mode: both;\r\n animation-duration: .5s;\r\n transition: background-color .5s linear;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n user-select: none;\r\n will-change: opacity;\r\n z-index: 990;\r\n`;\r\n\r\nexport default Dimmer;\r\n","import { PropsWithChildren } from 'react';\r\nimport { Spinner, SpinnerProps } from 'react-bootstrap';\r\nimport Dimmer from './dimmer';\r\nimport styled from 'styled-components';\r\n\r\ninterface LoaderProps {\r\n loading?: boolean;\r\n animation?: SpinnerProps['animation'];\r\n wrap?: boolean | number;\r\n}\r\n\r\nexport default function Loader({\r\n loading = true,\r\n children,\r\n variant = 'primary',\r\n animation = 'border',\r\n wrap,\r\n ...props\r\n}: PropsWithChildren<LoaderProps & Omit<SpinnerProps, 'animation'>>): JSX.Element | null {\r\n if (!loading) {\r\n return null;\r\n }\r\n\r\n if (children) {\r\n children = <p className='mt-3 text-secondary'>{children}</p>;\r\n }\r\n\r\n children = <Dimmer inverted active>\r\n <Spinner animation={animation} variant={variant} {...props} />\r\n {children}\r\n </Dimmer>;\r\n\r\n if (wrap) {\r\n return <Wrap $height={typeof wrap === 'number' ? wrap : 150}>\r\n {children}\r\n </Wrap>;\r\n }\r\n\r\n return children as JSX.Element;\r\n}\r\n\r\nconst Wrap = styled.div<{ $height: number }>`\r\n position: relative;\r\n height: ${props => `${props.$height}px`};\r\n`;\r\n","import { PropsWithChildren } from 'react';\r\nimport { Card as BsCard, CardProps as BsCardProps } from 'react-bootstrap';\r\nimport classNames from 'classnames';\r\n\r\ninterface CardProps extends BsCardProps {\r\n title?: string;\r\n}\r\n\r\nexport default function Card({ children, title, className, ...props }: PropsWithChildren<CardProps>) {\r\n\r\n return <BsCard className={classNames('border-0 shadow-sm mb-3', className)} {...props}>\r\n <div className='card-body'>\r\n {title && <>\r\n <h5>{title}</h5>\r\n <hr />\r\n </>}\r\n {children}\r\n </div>\r\n </BsCard>;\r\n}\r\n","import { Alert } from 'react-bootstrap';\r\nimport { Errors } from '../request';\r\n\r\nexport default function Error({ errors }: { errors?: Errors }) {\r\n if (!errors) {\r\n return null;\r\n }\r\n return <Alert variant='danger'>\r\n <ul className='mb-0'>\r\n {typeof errors === 'string'\r\n ? <li>{errors}</li>\r\n : Object.entries(errors).map(([name, error]) => <li key={name}>{error}</li>)\r\n }\r\n </ul>\r\n </Alert>;\r\n}\r\n","import { Children, ReactNode } from 'react';\r\nimport styled, { css } from 'styled-components';\r\n\r\ninterface SpaceProps {\r\n children: ReactNode;\r\n size?: 'small' | 'middle' | 'large' | number;\r\n direction?: 'vertical' | 'horizontal';\r\n className?: string;\r\n}\r\n\r\n\r\nexport default function Space({ children, className, size = 'small', direction = 'horizontal' }: SpaceProps) {\r\n\r\n if (typeof size === 'string') {\r\n size = {\r\n small: 8,\r\n middle: 16,\r\n large: 24\r\n }[size];\r\n }\r\n\r\n const items = Children.map(children, (child) => {\r\n if (child) {\r\n return <Item>{child}</Item>;\r\n }\r\n });\r\n\r\n return <Container className={className} $direction={direction} $size={size}>\r\n {items}\r\n </Container>;\r\n}\r\n\r\nconst Container = styled.div<{ $size: number, $direction: string }>`\r\n display: inline-flex;\r\n align-items: center;\r\n gap: ${props => props.$size}px;\r\n\r\n ${props => props.$direction === 'vertical' && css`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: inherit;\r\n `}\r\n`;\r\n\r\nconst Item = styled.div`\r\n\r\n`;\r\n","import { ComponentProps, lazy, Suspense } from 'react';\r\n\r\nconst LazySteps = lazy(() => import('./lazy/steps'));\r\nconst LazyStep = lazy(() => import('./lazy/steps').then(({ Step }) => ({ default: Step })));\r\n\r\nexport default function Steps(props: ComponentProps<typeof LazySteps>) {\r\n return <Suspense fallback={null}>\r\n <LazySteps {...props} />\r\n </Suspense>;\r\n}\r\n\r\nconst Step = function(props: ComponentProps<typeof LazyStep>) {\r\n return <Suspense fallback={null}>\r\n <LazyStep {...props} />\r\n </Suspense>;\r\n};\r\n\r\nSteps.Step = Step;\r\n\r\nexport { Step };\r\n","import { ReactNode } from 'react';\r\nimport Card from './card';\r\nimport styled from 'styled-components';\r\n\r\nexport interface StatisticProps {\r\n title: ReactNode;\r\n content: ReactNode;\r\n footer?: ReactNode;\r\n}\r\n\r\nexport default function Statistic({ title, content, footer }: StatisticProps) {\r\n\r\n return <Card>\r\n <Title>{title}</Title>\r\n <Content>{content}</Content>\r\n {footer && <Footer>{footer}</Footer>}\r\n </Card>;\r\n}\r\n\r\nconst Footer = styled.div`\r\n margin-top: 9px;\r\n padding-top: 10px;\r\n border-top: 1px solid #f0f0f0;\r\n color: rgba(0, 0, 0, .65);\r\n`;\r\n\r\nconst Content = styled.div`\r\n color: rgba(0, 0, 0, .85);\r\n font-size: 24px;\r\n`;\r\n\r\nconst Title = styled.div`\r\n margin-bottom: 4px;\r\n color: rgba(0, 0, 0, .45);\r\n font-size: 1.1rem;\r\n`;\r\n\r\n","import { ReactNode, useCallback, useEffect, useMemo, useState } from 'react';\r\nimport { Pagination as BsPagination } from 'react-bootstrap';\r\n\r\nfunction noop() {\r\n}\r\n\r\n\r\nfunction isInteger(value: any): value is number {\r\n return (\r\n typeof value === 'number' && isFinite(value) && Math.floor(value) === value\r\n );\r\n}\r\n\r\nexport interface PaginationProps {\r\n className?: string\r\n total: number\r\n current?: number\r\n defaultCurrent?: number\r\n pageSize?: number\r\n defaultPageSize?: number,\r\n onChange?: (current: number, pageSize: number) => void\r\n}\r\n\r\nexport default function Pagination({\r\n total = 0,\r\n onChange = noop,\r\n defaultCurrent = 1,\r\n defaultPageSize = 10,\r\n className,\r\n ...props\r\n}: PaginationProps) {\r\n\r\n const [current, setCurrent] = useState(defaultCurrent);\r\n const [pageSize, setPageSize] = useState(defaultPageSize);\r\n\r\n useEffect(() => {\r\n if (isInteger(props.current)) {\r\n setCurrent(props.current);\r\n }\r\n }, [props.current]);\r\n\r\n useEffect(() => {\r\n if (isInteger(props.pageSize)) {\r\n setPageSize(props.pageSize);\r\n }\r\n }, [props.pageSize]);\r\n\r\n const allPages = useMemo(() => {\r\n return Math.floor((total - 1) / pageSize) + 1;\r\n }, [total, pageSize]);\r\n\r\n const handleChange = useCallback((p: number) => {\r\n return () => {\r\n if (p !== current) {\r\n setCurrent(p);\r\n onChange(p, pageSize);\r\n }\r\n };\r\n }, [onChange, current, pageSize]);\r\n\r\n const pageBufferSize = 2;\r\n const prevPage = current - 1 > 0 ? current - 1 : 0;\r\n const nextPage = current + 1 < allPages ? current + 1 : allPages;\r\n\r\n const pagerList: ReactNode[] = [];\r\n let jumpPrev: ReactNode = null;\r\n let jumpNext: ReactNode = null;\r\n let firstPager: ReactNode = null;\r\n let lastPager: ReactNode = null;\r\n\r\n if (allPages <= 3 + pageBufferSize * 2) {\r\n for (let i = 1; i <= allPages; i += 1) {\r\n const active = current === i;\r\n pagerList.push(\r\n <BsPagination.Item key={i} active={active} onClick={handleChange(i)}>{i}</BsPagination.Item>\r\n );\r\n }\r\n } else {\r\n lastPager = <BsPagination.Last key='last' onClick={handleChange(allPages)} />;\r\n firstPager = <BsPagination.First key='first' onClick={handleChange(1)} />;\r\n jumpPrev = <BsPagination.Prev key='prev' onClick={handleChange(prevPage)} />;\r\n jumpNext = <BsPagination.Next key='next' onClick={handleChange(nextPage)} />;\r\n\r\n let left = Math.max(1, current - pageBufferSize);\r\n let right = Math.min(current + pageBufferSize, allPages);\r\n\r\n if (current - 1 <= pageBufferSize) {\r\n right = 1 + pageBufferSize * 2;\r\n }\r\n\r\n if (allPages - current <= pageBufferSize) {\r\n left = allPages - pageBufferSize * 2;\r\n }\r\n\r\n for (let i = left; i <= right; i += 1) {\r\n const active = current === i;\r\n pagerList.push(\r\n <BsPagination.Item key={i} active={active} onClick={handleChange(i)}>{i}</BsPagination.Item>\r\n );\r\n }\r\n\r\n if (current - 1 >= pageBufferSize * 2 && current !== 1 + 2) {\r\n pagerList.unshift(jumpPrev);\r\n }\r\n if (\r\n allPages - current >= pageBufferSize * 2 &&\r\n current !== allPages - 2\r\n ) {\r\n pagerList.push(jumpNext);\r\n }\r\n\r\n if (left !== 1) {\r\n pagerList.unshift(firstPager);\r\n }\r\n if (right !== allPages) {\r\n pagerList.push(lastPager);\r\n }\r\n }\r\n\r\n return <BsPagination className={className}>\r\n {pagerList}\r\n </BsPagination>;\r\n\r\n}\r\n","import { useMemo } from 'react';\r\n\r\ninterface Props {\r\n value: number;\r\n currency?: boolean;\r\n locale?: string;\r\n className?: string;\r\n options?: Intl.NumberFormatOptions;\r\n}\r\n\r\nexport default function NumberFormat({ className, value, locale = 'zh-CN', currency = true, options = {} }: Props) {\r\n\r\n const formatter = useMemo(() => {\r\n\r\n let opt;\r\n\r\n if (currency) {\r\n opt = {\r\n style: 'currency',\r\n currency: 'CNY'\r\n };\r\n } else {\r\n opt = {\r\n minimumFractionDigits: 2,\r\n };\r\n }\r\n\r\n return new Intl.NumberFormat(locale, { ...opt, ...options });\r\n }, [currency, locale, options]);\r\n\r\n if (className) {\r\n return <span className={className}>{formatter.format(value)}</span>;\r\n }\r\n\r\n return <>{formatter.format(value)}</>;\r\n}\r\n","import { Button, ButtonProps } from 'react-bootstrap';\r\n\r\ninterface CustomButtonProps extends ButtonProps {\r\n loading: boolean;\r\n}\r\n\r\nexport default function LoadingButton({ loading, disabled, children, ...props }: CustomButtonProps) {\r\n\r\n return <Button {...props} disabled={loading || disabled}>\r\n {loading ? 'Loading…' : children}\r\n </Button>;\r\n}\r\n","import { ComponentProps, lazy, Suspense } from 'react';\r\n\r\nconst LazyImageZoom = lazy(() => import('./lazy/image-zoom'));\r\n\r\nexport default function ImageZoom(props: ComponentProps<typeof LazyImageZoom>) {\r\n return <Suspense fallback={null}>\r\n <LazyImageZoom {...props} />\r\n </Suspense>;\r\n}\r\n","import request, { RequestConfig, showRequestError } from '../request';\r\nimport { createElement, ElementType, MouseEvent, useCallback } from 'react';\r\nimport { AxiosRequestConfig } from 'axios';\r\nimport Button, { ButtonProps } from './button';\r\nimport useSafeState from '../hooks/use-safe-state';\r\nimport Modal from './modal';\r\n\r\ninterface Props extends Omit<ButtonProps, 'as'> {\r\n url: RequestConfig;\r\n method?: AxiosRequestConfig['method'];\r\n confirm?: string;\r\n onSuccess?: (result: any) => void;\r\n as?: ElementType | ButtonProps['as'];\r\n}\r\n\r\nexport default function RequestButton({\r\n url,\r\n method,\r\n confirm,\r\n onSuccess,\r\n children,\r\n disabled,\r\n as = Button,\r\n ...props\r\n}: Props) {\r\n\r\n const [fetching, setFetching] = useSafeState(false);\r\n\r\n const handleClick = useCallback(async (e: MouseEvent) => {\r\n e.preventDefault();\r\n try {\r\n setFetching(true);\r\n if (confirm) {\r\n if (!await Modal.confirm({ message: confirm })) {\r\n return;\r\n }\r\n }\r\n\r\n const config = typeof url === 'string' ? { url, method } : { method, ...url };\r\n\r\n const result = await request(config);\r\n\r\n if (onSuccess) {\r\n onSuccess(result);\r\n }\r\n } catch (e) {\r\n showRequestError(e);\r\n } finally {\r\n setFetching(false);\r\n }\r\n }, [url, method, setFetching]);\r\n\r\n return createElement(as, {\r\n ...props,\r\n disabled: disabled || fetching,\r\n onClick: handleClick\r\n }, children);\r\n}\r\n","import { forwardRef, lazy, Suspense } from 'react';\r\nimport type { CustomFormType } from './lazy/form';\r\n\r\nconst LazyForm = lazy(() => import('./lazy/form'));\r\n\r\nconst Form: CustomFormType = forwardRef((props, ref) => {\r\n return <Suspense fallback={null}>\r\n <LazyForm {...props} ref={ref} />\r\n </Suspense>;\r\n});\r\n\r\nexport default Form;\r\n\r\nexport type { FormProps, FormType } from './lazy/form';\r\n","import { ComponentProps, forwardRef, lazy, Suspense } from 'react';\r\nimport type { CustomTableType } from './lazy/table';\r\n\r\nconst LazyTable = lazy(() => import('./lazy/table'));\r\n\r\nconst Table: CustomTableType = forwardRef((props: ComponentProps<typeof LazyTable>, ref) => {\r\n return <Suspense fallback={null}>\r\n <LazyTable {...props} ref={ref} />\r\n </Suspense>;\r\n});\r\n\r\nexport default Table;\r\n\r\nexport type { TableProps, Columns, TableType } from './lazy/table';\r\n","import { useCallback, useState } from 'react';\r\n\r\ninterface Options {\r\n onHide?: () => void;\r\n onShow?: () => void;\r\n}\r\n\r\nlet id = 0;\r\n\r\nexport default function useOverlayState({ onHide, onShow }: Options = {}) {\r\n const [visible, setVisible] = useState(false);\r\n\r\n const [key, setKey] = useState(`visible-${id}`);\r\n\r\n const hide = useCallback(() => {\r\n setVisible(false);\r\n if (onHide) {\r\n onHide();\r\n }\r\n }, [setVisible, onHide]);\r\n\r\n const exit = useCallback(() => {\r\n setKey(`visible-${++id}`);\r\n }, [setKey, id]);\r\n\r\n const show = useCallback(() => {\r\n setVisible(true);\r\n if (onShow) {\r\n onShow();\r\n }\r\n }, [setVisible, onShow]);\r\n\r\n const state = {\r\n show: visible,\r\n onHide: hide,\r\n onExited: exit,\r\n key\r\n };\r\n\r\n return {\r\n visible,\r\n show,\r\n hide,\r\n state\r\n };\r\n}\r\n","import {\r\n createElement,\r\n ElementType,\r\n forwardRef,\r\n ForwardRefExoticComponent,\r\n MouseEvent,\r\n PropsWithChildren,\r\n PropsWithoutRef,\r\n ReactNode,\r\n RefAttributes,\r\n useImperativeHandle\r\n} from 'react';\r\nimport useOverlayState from '../hooks/use-overlay-state';\r\nimport Modal, { ModalProps } from './modal';\r\nimport { ButtonProps } from 'react-bootstrap';\r\nimport Button from './button';\r\n\r\nexport interface ModalButtonProps extends Omit<ButtonProps, 'as'> {\r\n text: ReactNode;\r\n modalProps?: Omit<ModalProps, 'children' | 'confirmLoading' | 'onOk'>;\r\n onOk?: () => any;\r\n onShow?: () => void;\r\n confirmLoading?: boolean;\r\n as?: ElementType | ButtonProps['as'];\r\n}\r\n\r\nexport interface ModalType {\r\n close: () => void;\r\n}\r\n\r\ntype ModalButtonType = ForwardRefExoticComponent<PropsWithoutRef<PropsWithChildren<ModalButtonProps>>\r\n & RefAttributes<ModalType>>\r\n\r\nconst ModalButton: ModalButtonType = forwardRef(({\r\n text,\r\n onOk,\r\n modalProps,\r\n children,\r\n onShow,\r\n confirmLoading,\r\n as = Button,\r\n ...props\r\n}, ref) => {\r\n\r\n const { state, show, hide } = useOverlayState({ onShow });\r\n\r\n useImperativeHandle(ref, () => ({\r\n close: hide\r\n }));\r\n\r\n const handleOk = async (e: MouseEvent) => {\r\n if (onOk) {\r\n const result = await onOk();\r\n if (result === false) {\r\n e.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n const button = createElement(as, {\r\n ...props,\r\n onClick: show\r\n }, text);\r\n\r\n return <>\r\n {button}\r\n <Modal\r\n header={text}\r\n {...modalProps}\r\n {...state}\r\n confirmLoading={confirmLoading}\r\n onOk={handleOk}\r\n >\r\n {children}\r\n </Modal>\r\n </>;\r\n});\r\n\r\nexport default ModalButton;\r\n","import ModalButton, { ModalButtonProps, ModalType } from './modal-button';\r\nimport { ReactNode, useCallback, useRef, useState } from 'react';\r\nimport Form, { FormProps, FormType } from './form';\r\n\r\nexport interface ModalFormProps<T = any> extends FormProps<T> {\r\n text: ReactNode;\r\n buttonProps?: Omit<ModalButtonProps, 'text' | 'modalProps' | 'confirmLoading' | 'onOk'>;\r\n modalProps?: ModalButtonProps['modalProps'];\r\n children?: ReactNode;\r\n}\r\n\r\nexport default function ModalForm<T = any>({\r\n text,\r\n onSuccess,\r\n buttonProps,\r\n modalProps,\r\n children,\r\n ...props\r\n}: ModalFormProps<T>) {\r\n\r\n const [loading, setLoading] = useState(false);\r\n\r\n const ref = useRef<ModalType>(null);\r\n const form = useRef<FormType>(null);\r\n\r\n const handleOk = useCallback(() => {\r\n form.current?.submit();\r\n return false;\r\n }, []);\r\n\r\n const handleSuccess = useCallback((data) => {\r\n if (onSuccess) {\r\n onSuccess(data);\r\n }\r\n ref.current?.close();\r\n }, [onSuccess]);\r\n\r\n return <ModalButton\r\n ref={ref}\r\n text={text}\r\n {...buttonProps}\r\n modalProps={modalProps}\r\n onOk={handleOk}\r\n confirmLoading={loading}\r\n >\r\n <Form\r\n {...props}\r\n onSubmitting={setLoading}\r\n ref={form}\r\n onSuccess={handleSuccess}\r\n >\r\n {children}\r\n <input type='submit' hidden />\r\n </Form>\r\n </ModalButton>;\r\n}\r\n","import { useAsyncCallback, UseAsyncCallbackOptions } from 'react-async-hook';\r\nimport request, { isRequestError, RequestConfig } from '../request';\r\nimport { DependencyList, useCallback, useEffect } from 'react';\r\nimport { AxiosRequestConfig } from 'axios';\r\nimport { values } from 'lodash';\r\n\r\ntype UseRequestOptions<T> = {\r\n manual?: boolean\r\n refreshDeps?: DependencyList;\r\n} & UseAsyncCallbackOptions<T>;\r\n\r\nexport default function useRequest<T = any>(config: RequestConfig, {\r\n manual,\r\n refreshDeps,\r\n ...options\r\n}: UseRequestOptions<T> = {}) {\r\n let { execute, currentParams, error, ...others } = useAsyncCallback(async (params?: AxiosRequestConfig) => {\r\n\r\n config = typeof config === 'string' ? { url: config } : config;\r\n\r\n return await request<T>({\r\n ...config,\r\n ...params\r\n });\r\n }, options);\r\n\r\n useEffect(() => {\r\n if (!manual && !refreshDeps) {\r\n try {\r\n execute();\r\n } catch {\r\n\r\n }\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (refreshDeps) {\r\n refresh();\r\n }\r\n }, refreshDeps);\r\n\r\n const refresh = useCallback(async () => {\r\n try {\r\n if (currentParams) {\r\n await execute(...currentParams);\r\n } else {\r\n await execute();\r\n }\r\n } catch {\r\n\r\n }\r\n }, [execute, currentParams]);\r\n\r\n if (error && isRequestError(error)) {\r\n const errors = error.errors;\r\n error = new Error(typeof errors === 'string' ? errors : values(errors).join(''));\r\n }\r\n\r\n return {\r\n refresh,\r\n execute,\r\n error,\r\n ...others\r\n };\r\n}\r\n","import { DependencyList, useCallback, useEffect, useRef } from 'react';\r\n\r\nexport default function useCallbackRef<T extends (...args: any[]) => any>(\r\n callback: T | undefined,\r\n deps: DependencyList = [],\r\n) {\r\n const callbackRef = useRef(callback);\r\n\r\n useEffect(() => {\r\n callbackRef.current = callback;\r\n });\r\n\r\n return useCallback(((...args) => callbackRef.current?.(...args)) as T, deps);\r\n}\r\n","import { Dispatch, SetStateAction, useState } from 'react';\r\nimport useCallbackRef from './use-callback-ref';\r\n\r\nexport interface UseControllableStateProps<T> {\r\n value?: T;\r\n defaultValue?: T | (() => T);\r\n onChange?: (value: T) => void;\r\n shouldUpdate?: (prev: T, next: T) => boolean;\r\n}\r\n\r\nexport default function useControllableState<T>(props: UseControllableStateProps<T>) {\r\n const {\r\n value: valueProp,\r\n defaultValue,\r\n onChange,\r\n shouldUpdate = (prev, next) => prev !== next,\r\n } = props;\r\n\r\n const onChangeProp = useCallbackRef(onChange);\r\n const shouldUpdateProp = useCallbackRef(shouldUpdate);\r\n\r\n const [uncontrolledState, setUncontrolledState] = useState(defaultValue as T);\r\n const controlled = valueProp !== undefined;\r\n const value = controlled ? valueProp : uncontrolledState;\r\n\r\n const setValue = useCallbackRef(\r\n (next: SetStateAction<T>) => {\r\n const setter = next as (prevState?: T) => T;\r\n const nextValue = typeof next === 'function' ? setter(value) : next;\r\n\r\n if (!shouldUpdateProp(value, nextValue)) {\r\n return;\r\n }\r\n\r\n if (!controlled) {\r\n setUncontrolledState(nextValue);\r\n }\r\n\r\n onChangeProp(nextValue);\r\n },\r\n [controlled, onChangeProp, value, shouldUpdateProp],\r\n );\r\n\r\n return [value, setValue] as [T, Dispatch<SetStateAction<T>>];\r\n}\r\n","import { debounce, DebouncedFunc } from 'lodash';\r\nimport { useEffect, useRef } from 'react';\r\n\r\nexport default function useDebounce<T extends (...args: any) => any>(callback: T, wait: number, options?: {}): DebouncedFunc<T> {\r\n const callbackRef = useRef<T>(callback);\r\n const debouncedCallbackRef = useRef<DebouncedFunc<T>>(\r\n debounce(callback, wait, options)\r\n );\r\n\r\n useEffect(() => {\r\n callbackRef.current = callback;\r\n });\r\n\r\n useEffect(() => {\r\n debouncedCallbackRef.current = debounce((...args: any) => {\r\n callbackRef.current(...args);\r\n }, wait, options);\r\n }, [wait, options]);\r\n\r\n return debouncedCallbackRef.current;\r\n}\r\n","export default class Unauthorized extends Error {\r\n\r\n url: string;\r\n\r\n constructor(url: string) {\r\n super('Unauthorized');\r\n this.url = url;\r\n }\r\n}\r\n"],"names":["CustomSwal","withReactContent","Swal","defaultOptions","confirmButtonText","cancelButtonText","Message","confirm","options","isConfirmed","fire","icon","showCancelButton","preConfirm","data","e","Error","showValidationMessage","message","success","toast","position","timer","showConfirmButton","error","close","result","defaults","useStateWithCallback","initState","callbackRef","useRef","state","setState","useState","useEffect","current","setCallbackState","value","callback","MessageContext","createContext","wrapMessage","Component","resolve","destroy","show","setShow","context","useContext","handleResolve","useCallback","useMemo","onHide","onExited","container","_jsx","createMessage","Promise","component","hide","listener","memoryState","Set","modal","add","delete","props","Provider","children","Array","from","map","index","Fragment","Tooltip","tooltip","placement","OverlayTrigger","overlay","BsTooltip","id","uniqueId","TableContext","Button","forwardRef","ref","loading","percent","disabled","variant","inTable","_jsxs","Spinner","as","size","role","animation","className","button","BsButton","Confirm","title","okText","cancelText","Modal","centered","Header","Title","Body","Footer","onClick","header","footer","closable","onOk","onCancel","okButtonProps","bodyAs","headerAs","confirmLoading","rest","setLoading","okButton","defaultPrevented","cancelButton","_Fragment","ReactModal","closeButton","noticeInstance","getNoticeInstance","Notification","newInstance","prefixCls","maxCount","style","top","right","instance","notice","type","duration","content","Alert","types","Toast","reduce","isRecord","rax","attach","axios","raxConfig","retryDelay","backoffType","shouldRetry","config","response","retryDecider","method","toUpperCase","status","maxContentLength","Infinity","maxBodyLength","baseURL","authTokenName","interceptors","request","use","key","token","localStorage","getItem","headers","Authorization","reject","location","window","href","undefined","isAxiosError","errors","isRequestError","showRequestError","Object","values","join","url","paramsSerializer","params","queryString","stringify","sort","skipNull","skipEmptyString","arrayFormat","useUnmountedRef","unmountedRef","useSafeState","initialState","setCurrentState","currentState","WaitModal","open","checkUrl","onComplete","checking","setChecking","order_no","err","then","catch","backdrop","preventDefault","waitPayComplete","pay_url","Container","styled","div","Icon","Extra","IconMap","info","warning","Result","extra","Dimmer","active","inverted","Loader","wrap","Wrap","$height","Card","BsCard","classNames","entries","name","Space","direction","small","middle","large","items","Children","child","Item","$size","$direction","css","LazySteps","lazy","LazyStep","Step","default","Steps","Suspense","fallback","Statistic","Content","noop","isInteger","isFinite","Math","floor","Pagination","total","onChange","defaultCurrent","defaultPageSize","setCurrent","pageSize","setPageSize","allPages","handleChange","p","pageBufferSize","prevPage","nextPage","pagerList","jumpPrev","jumpNext","firstPager","lastPager","i","push","BsPagination","Last","First","Prev","Next","left","max","min","unshift","NumberFormat","locale","currency","formatter","opt","minimumFractionDigits","Intl","format","LoadingButton","LazyImageZoom","ImageZoom","RequestButton","onSuccess","fetching","setFetching","handleClick","createElement","LazyForm","Form","LazyTable","Table","useOverlayState","onShow","visible","setVisible","setKey","exit","ModalButton","text","modalProps","useImperativeHandle","handleOk","ModalForm","buttonProps","form","submit","handleSuccess","onSubmitting","hidden","useRequest","manual","refreshDeps","execute","currentParams","others","useAsyncCallback","refresh","useCallbackRef","deps","args","useControllableState","valueProp","defaultValue","shouldUpdate","prev","next","onChangeProp","shouldUpdateProp","uncontrolledState","setUncontrolledState","controlled","setValue","setter","nextValue","useDebounce","wait","debouncedCallbackRef","debounce","Unauthorized","constructor"],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import n from"rc-table";import{unstable_batchedUpdates as a}from"react-dom";import{FormControl as o,Table as c}from"react-bootstrap";import{useUrlSearchParams as i}from"use-url-search-params";import*as l from"react";import{useState as s,useCallback as d,useRef as u,useEffect as p,memo as m,forwardRef as h,useImperativeHandle as f,useMemo as g}from"react";import{B as v,a as y,P as b,b as x,r as w,N as j,L as C,T as k,C as S,S as z}from"./index-563b11c6.js";import E from"styled-components";import O from"./index-2b97b70d.js";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"lodash";import"axios";import"query-string";import"retry-axios";import"rc-notification";import"classnames";import"react-async-hook";import"@topthink/json-form";const V=function(t){let{indeterminate:r=!1,...n}=t;const a=u(null);return p((()=>{a.current&&(a.current.indeterminate=r)}),[r]),e("input",{ref:a,...n,className:"form-check-input",type:"checkbox"})};var N;function H(){return H=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},H.apply(this,arguments)}const K=e=>l.createElement("svg",H({viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor"},e),N||(N=l.createElement("path",{d:"M252.069 906.496h520.283c89.582 0 134.144-44.562 134.144-132.846V250.331c0-88.283-44.562-132.845-134.144-132.845H252.069c-89.143 0-134.583 44.141-134.583 132.845V773.67c0 88.704 45.44 132.845 134.583 132.845zm1.28-68.992c-42.844 0-66.853-22.71-66.853-67.291V253.806c0-44.58 24.01-67.292 66.853-67.292h517.723c42.423 0 66.432 22.711 66.432 67.292v516.388c0 44.58-24.01 67.292-66.432 67.292zM511.78 714.496c22.71 0 36.425-15.854 36.425-40.704V547.365H682.35c24.009 0 40.722-12.874 40.722-35.584 0-23.132-15.854-36.426-40.722-36.426H548.206V340.773c0-24.85-13.715-40.704-36.425-40.704s-35.566 16.713-35.566 40.722v134.583H342.49c-24.85 0-41.142 13.275-41.142 36.407 0 22.71 17.152 35.584 41.142 35.584h133.724v126.427c0 23.99 12.855 40.704 35.566 40.704z"})));var M;function q(){return q=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},q.apply(this,arguments)}const B=e=>l.createElement("svg",q({viewBox:"0 0 1024 1024",xmlns:"http://www.w3.org/2000/svg",width:16,height:16,fill:"currentColor"},e),M||(M=l.createElement("path",{d:"M252.069 906.496h520.283c89.582 0 134.144-44.562 134.144-132.846V250.331c0-88.283-44.562-132.845-134.144-132.845H252.069c-89.143 0-134.583 44.141-134.583 132.845V773.67c0 88.704 45.44 132.845 134.583 132.845zm1.28-68.992c-42.844 0-66.853-22.71-66.853-67.291V253.806c0-44.58 24.01-67.292 66.853-67.292h517.723c42.423 0 66.432 22.711 66.432 67.292v516.388c0 44.58-24.01 67.292-66.432 67.292zm86.582-289.719h344.576c23.991 0 40.704-12.855 40.704-35.566 0-23.15-15.433-36.425-40.704-36.425H339.931c-24.868 0-40.722 13.276-40.722 36.425 0 22.711 16.713 35.566 40.722 35.566z"})));function P(r){let{data:n,options:a,columns:o,onSearch:c}=r;const[i,l]=s(0),u={"ui:col":10,"ui:order":a.order},p={};a.fields.forEach((e=>{const t=o.find((t=>t.dataIndex===e));if(t){const r=t.title;if("string"==typeof r){if(u[e]={"ui:col":4,"ui:labelCol":3,"ui:placeholder":"请输入",...a.ui?.[e]},t.valueEnum){const n=t.valueEnum;return u[e]["ui:placeholder"]="请选择",p[e]={title:r,type:"string",enum:Object.keys(n).flatMap((e=>"string"==typeof n[e].text?[e]:[])),enumNames:Object.keys(n).flatMap((e=>{const t=n[e].text;return"string"==typeof t?[t]:[]}))}}return p[e]={title:r,type:"string"}}}})),a.extraFields&&Object.entries(a.extraFields).forEach((e=>{let[t,r]=e;u[t]={"ui:col":4,"ui:labelCol":3,"ui:placeholder":"请输入",...a.ui?.[t]},p[t]={title:r,type:"string"}}));const m={type:"object",properties:p},h=d((e=>{let{formData:t}=e;c(t)}),[c]),f=d((()=>{l((e=>e+1)),c({})}),[]);return e(T,{children:e(O,{formContext:{layout:"horizontal"},schema:m,uiSchema:u,onSubmit:h,formData:n,children:e("div",{className:"col-2 ms-auto mt-auto",children:t("div",{className:"justify-content-end d-flex gap-2 ",children:[e(v,{className:"px-4",onClick:f,variant:"secondary",children:"重置"}),e(v,{className:"px-4",type:"submit",variant:"primary",children:"查询"})]})})})},i)}const T=E.div`
|
|
2
|
+
margin-bottom: 1rem;
|
|
3
|
+
`;function _(t){let{keyword:r,onKeywordChange:n}=t;const[a,c]=s(r),i=y(n,500);p((()=>{c(r)}),[r]);const l=d((e=>{c(e.target.value),i(e.target.value)}),[i,c]);return e(o,{value:a,onChange:l,type:"search",placeholder:"Search..."})}const D=E.thead`
|
|
4
|
+
th {
|
|
5
|
+
padding: 0.5rem 0.5rem;
|
|
6
|
+
border-bottom-width: 1px;
|
|
7
|
+
border-color: var(--bs-border-color);
|
|
8
|
+
}
|
|
9
|
+
`,F={table:t=>e(c,{...t,className:"mb-0 align-middle table-hover"}),header:{wrapper:t=>e(D,{...t})}},I=E.a`
|
|
10
|
+
cursor: pointer;
|
|
11
|
+
width: 28px;
|
|
12
|
+
height: 28px;
|
|
13
|
+
display: inline-flex;
|
|
14
|
+
align-items: center;
|
|
15
|
+
justify-content: center;
|
|
16
|
+
vertical-align: middle;
|
|
17
|
+
`,R=function(t){let{record:r,expanded:n,expandable:a,onExpand:o}=t;return e(I,a?{onClick:e=>o(r,e),children:e(n?B:K,{})}:{})},A=E(b)`
|
|
18
|
+
margin-bottom: 0;
|
|
19
|
+
justify-content: flex-end;
|
|
20
|
+
margin-top: 1rem;
|
|
21
|
+
`;const L=h(((o,c)=>{let{source:l,rowKey:m="id",paginate:h=!0,toolBarRender:v,columns:y=[],search:b,rowSelection:z,card:E=!0,expandable:O={},sync:N=!1,...H}=o;const[K,M]=s([]),[q,B]=s(h?{total:0,current:1,pageSize:10}:null),[T,D]=s(!0),[I,L]=i({}),[$,W]=function(t,r,n){const[a,o]=s((()=>new Set(t?.selectedRowKeys||[]))),c=e=>"string"==typeof r?e[r]:r(e),i=e=>n.find((t=>c(t)===e)),l=d((e=>{e instanceof Set||(e=new Set(e)),o(e);const r=Array.from(e),n=r.map((function(e){return i(e)}));t?.onChange&&t?.onChange(r,n)}),[i]);return[d((r=>{if(!t)return r;const o=n.map(c),i=o.every((function(e){return a.has(e)})),s=o.some((function(e){return a.has(e)}));return[{key:"selection",title:e(V,{checked:i&&n.length>0,indeterminate:!i&&s,onChange:()=>{i?o.forEach((function(e){a.delete(e)})):o.forEach((function(e){a.add(e)})),l(new Set(a))}}),width:30,align:"center",render(t){let{record:r}=t;const n=c(r),o=a.has(n);return e(V,{checked:o,onChange:()=>{o?a.delete(n):a.add(n),l(new Set(a))}})}},...r]}),[n,t,a]),l]}(z,m,K),[X,Y]=x({value:N?I||{}:void 0,defaultValue:{},onChange:e=>{N&&L(e)}}),[Z,ee]=x({value:N?I.q||"":void 0,defaultValue:"",onChange:e=>{N&&L({q:e||void 0})}}),[te,re]=x({value:N?I.page||1:void 0,defaultValue:1,onChange:e=>{N&&L({page:e||void 0})}}),ne=d((async()=>{D(!0),W([]);try{let e;const t={...X,q:Z,page:te>1?te:void 0};e="string"==typeof l?await w({url:l,params:t}):await l(t),h&&function(e){return"current_page"in e}(e)&&(B({total:e.total,current:e.current_page,pageSize:e.per_page}),e=e.data),M(e)}catch(e){}finally{D(!1)}}),[l,M,Z,te,X]);p((()=>{ne()}),[Z,te,X]);const ae=u({reload:ne});p((()=>{ae.current={reload:ne}}),[ne]),f(c,(()=>ae.current));const oe=g((()=>$(y).map((t=>{let{render:r,valueType:n,valueEnum:a,...o}=t;const c={...o};return r?c.render=(e,t,n)=>r({value:e,record:t,index:n,action:ae.current}):"currency"===n?c.render=t=>e(j,{value:t}):a&&(c.render=t=>a[t]?a[t].status?e("span",{className:`text-${a[t].status}`,children:a[t].text}):a[t].text:t),c}))),[y,$,ae]),ce=t(r,{children:[e(C,{loading:T}),"object"==typeof b&&e(P,{data:X,columns:y,options:b,onSearch:e=>{a((()=>{re(1),Y(e)}))}}),!1!==v&&t(G,{children:[e(Q,{size:12,children:v&&v(ae.current)}),t(J,{size:12,children:[!0===b&&e(_,{keyword:Z,onKeywordChange:e=>{a((()=>{re(1),ee(e)}))}}),e(U,{onClick:ae.current.reload,children:e("i",{className:"bi bi-arrow-repeat"})})]})]}),e(k.Provider,{value:!0,children:e(n,{...H,expandable:{expandIcon:R,...O},rowKey:m,columns:oe,components:F,data:K})}),q&&e(A,{...q,onChange:re})]});return E?e(S,{children:ce}):ce}));var $=m(L);const G=E.div`
|
|
22
|
+
display: flex;
|
|
23
|
+
justify-content: space-between;
|
|
24
|
+
padding-bottom: 1rem;
|
|
25
|
+
height: 48px;
|
|
26
|
+
border-bottom: 2px solid #212529;
|
|
27
|
+
`,J=E(z)`
|
|
28
|
+
|
|
29
|
+
`,Q=E(z)`
|
|
30
|
+
|
|
31
|
+
`,U=E.span`
|
|
32
|
+
cursor: pointer;
|
|
33
|
+
font-size: 20px;
|
|
34
|
+
line-height: 1;
|
|
35
|
+
|
|
36
|
+
&:hover {
|
|
37
|
+
color: var(--bs-primary);
|
|
38
|
+
}
|
|
39
|
+
`;export{$ as default};
|
|
40
|
+
//# sourceMappingURL=index-a214613e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-a214613e.js","sources":["../src/components/lazy/table/use-selection.tsx","../src/images/plus_square.svg","../src/images/minus_square.svg","../src/components/lazy/table/search.tsx","../src/components/lazy/table/index.tsx"],"sourcesContent":["import { Columns, TableProps, TableRowSelection } from './index';\r\nimport { InputHTMLAttributes, Key, useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nconst Checkbox = function({\r\n indeterminate = false,\r\n ...props\r\n}: InputHTMLAttributes<HTMLInputElement> & { indeterminate?: boolean }) {\r\n\r\n const ref = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n ref.current.indeterminate = indeterminate;\r\n }\r\n }, [indeterminate]);\r\n\r\n return <input\r\n ref={ref}\r\n {...props}\r\n className='form-check-input'\r\n type='checkbox'\r\n />;\r\n};\r\n\r\nexport default function useSelection<T = any>(\r\n rowSelection: TableRowSelection<T> | undefined,\r\n rowKey: Required<TableProps<T>>['rowKey'],\r\n data: T[]\r\n): [(columns: Columns<T>) => Columns<T>, (keys: Key[]) => void] {\r\n const [keys, setKeys] = useState(() => new Set(rowSelection?.selectedRowKeys || []));\r\n\r\n const getRowKey = (record: T) => {\r\n if (typeof rowKey === 'string') {\r\n // @ts-ignore\r\n return record[rowKey];\r\n } else {\r\n return rowKey(record);\r\n }\r\n };\r\n\r\n const getRecordByKey = (key: Key) => {\r\n return data.find((record) => {\r\n return getRowKey(record) === key;\r\n })!;\r\n };\r\n\r\n const setSelectedKeys = useCallback((keys: Set<Key> | Key[]) => {\r\n if (!(keys instanceof Set)) {\r\n keys = new Set(keys);\r\n }\r\n\r\n setKeys(keys);\r\n const changedKeys = Array.from(keys);\r\n\r\n const records = changedKeys.map(function(key) {\r\n return getRecordByKey(key);\r\n });\r\n\r\n if (rowSelection?.onChange) {\r\n rowSelection?.onChange(changedKeys, records);\r\n }\r\n }, [getRecordByKey]);\r\n\r\n const transformColumns = useCallback((columns: Columns): Columns => {\r\n if (!rowSelection) {\r\n return columns;\r\n }\r\n\r\n const recordKeys = data.map(getRowKey);\r\n\r\n const checkedCurrentAll = recordKeys.every(function(key) {\r\n return keys.has(key);\r\n });\r\n\r\n const checkedCurrentSome = recordKeys.some(function(key) {\r\n return keys.has(key);\r\n });\r\n\r\n return [{\r\n key: 'selection',\r\n title: <Checkbox\r\n checked={checkedCurrentAll && data.length > 0}\r\n indeterminate={!checkedCurrentAll && checkedCurrentSome}\r\n onChange={() => {\r\n if (checkedCurrentAll) {\r\n recordKeys.forEach(function(key) {\r\n keys.delete(key);\r\n });\r\n } else {\r\n recordKeys.forEach(function(key) {\r\n keys.add(key);\r\n });\r\n }\r\n setSelectedKeys(new Set(keys));\r\n }}\r\n />,\r\n width: 30,\r\n align: 'center',\r\n render({ record }) {\r\n const key = getRowKey(record);\r\n const checked = keys.has(key);\r\n return <Checkbox\r\n checked={checked}\r\n onChange={() => {\r\n if (checked) {\r\n keys.delete(key);\r\n } else {\r\n keys.add(key);\r\n }\r\n setSelectedKeys(new Set(keys));\r\n }}\r\n />;\r\n }\r\n }, ...columns];\r\n }, [data, rowSelection, keys]);\r\n\r\n return [transformColumns, setSelectedKeys];\r\n}\r\n","var img = \"data:image/svg+xml,%3csvg t='1681378941268' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='11434' width='16' height='16' fill='currentColor'%3e %3cpath d='M252.068571 906.496h520.283429c89.581714 0 134.144-44.562286 134.144-132.845714V250.331429c0-88.283429-44.562286-132.845714-134.144-132.845715H252.068571c-89.142857 0-134.582857 44.141714-134.582857 132.845715V773.668571c0 88.704 45.44 132.845714 134.582857 132.845715z m1.28-68.992c-42.843429 0-66.852571-22.710857-66.852571-67.291429V253.805714c0-44.580571 24.009143-67.291429 66.852571-67.291428h517.723429c42.422857 0 66.432 22.710857 66.432 67.291428V770.194286c0 44.580571-24.009143 67.291429-66.432 67.291428z m258.432-123.008c22.710857 0 36.425143-15.853714 36.425143-40.704v-126.427429h134.144c24.009143 0 40.722286-12.873143 40.722286-35.584 0-23.131429-15.853714-36.425143-40.722286-36.425142H548.205714v-134.582858c0-24.850286-13.714286-40.704-36.425143-40.704s-35.565714 16.713143-35.565714 40.722286v134.582857H342.491429c-24.850286 0-41.142857 13.275429-41.142858 36.406857 0 22.710857 17.152 35.584 41.142858 35.584h133.723428v126.427429c0 23.990857 12.854857 40.704 35.565714 40.704z' p-id='11435'%3e%3c/path%3e%3c/svg%3e\";\n export default img;","var img = \"data:image/svg+xml,%3csvg t='1681378996359' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='12821' width='16' height='16' fill='currentColor'%3e %3cpath d='M252.068571 906.496h520.283429c89.581714 0 134.144-44.562286 134.144-132.845714V250.331429c0-88.283429-44.562286-132.845714-134.144-132.845715H252.068571c-89.142857 0-134.582857 44.141714-134.582857 132.845715V773.668571c0 88.704 45.44 132.845714 134.582857 132.845715z m1.28-68.992c-42.843429 0-66.852571-22.710857-66.852571-67.291429V253.805714c0-44.580571 24.009143-67.291429 66.852571-67.291428h517.723429c42.422857 0 66.432 22.710857 66.432 67.291428V770.194286c0 44.580571-24.009143 67.291429-66.432 67.291428z m86.582858-289.718857h344.576c23.990857 0 40.704-12.854857 40.704-35.565714 0-23.149714-15.433143-36.425143-40.704-36.425143H339.931429c-24.868571 0-40.722286 13.275429-40.722286 36.425143 0 22.710857 16.713143 35.565714 40.722286 35.565714z' p-id='12822'%3e%3c/path%3e%3c/svg%3e\";\n export default img;","import { ChangeEvent, useCallback, useEffect, useState } from 'react';\r\nimport useDebounce from '../../../hooks/use-debounce';\r\nimport styled from 'styled-components';\r\nimport Button from '../../button';\r\nimport Form from '../form';\r\nimport { FormControl } from 'react-bootstrap';\r\nimport type { Columns } from './index';\r\nimport { Schema, UiSchema } from '@topthink/json-form';\r\n\r\nexport type SearchOptions = {\r\n fields: string[];\r\n extraFields?: Record<string, string>;\r\n ui?: Record<string, UiSchema>;\r\n order?: string[];\r\n};\r\n\r\ninterface SearchProps {\r\n data: Record<string, string>;\r\n options: SearchOptions;\r\n columns: Columns;\r\n onSearch: (params: Record<string, any>) => void;\r\n}\r\n\r\nexport default function Search({ data, options, columns, onSearch }: SearchProps) {\r\n\r\n const [key, setKey] = useState(0);\r\n\r\n const uiSchema: UiSchema = {\r\n 'ui:col': 10,\r\n 'ui:order': options.order\r\n };\r\n\r\n const properties: Schema['properties'] = {};\r\n\r\n options.fields.forEach(field => {\r\n const column = columns.find(column => column.dataIndex === field);\r\n\r\n if (column) {\r\n const title = column.title;\r\n if (typeof title === 'string') {\r\n uiSchema[field] = {\r\n 'ui:col': 4,\r\n 'ui:labelCol': 3,\r\n 'ui:placeholder': '请输入',\r\n ...options.ui?.[field]\r\n };\r\n\r\n if (column.valueEnum) {\r\n const valueEnum = column.valueEnum;\r\n\r\n uiSchema[field]['ui:placeholder'] = '请选择';\r\n\r\n return properties[field] = {\r\n title,\r\n type: 'string',\r\n enum: Object.keys(valueEnum).flatMap(key => {\r\n const text = valueEnum[key].text;\r\n if (typeof text === 'string') {\r\n return [key];\r\n }\r\n return [];\r\n }),\r\n enumNames: Object.keys(valueEnum).flatMap(key => {\r\n const text = valueEnum[key].text;\r\n if (typeof text === 'string') {\r\n return [text];\r\n }\r\n return [];\r\n }),\r\n };\r\n }\r\n\r\n return properties[field] = {\r\n title,\r\n type: 'string',\r\n };\r\n }\r\n }\r\n });\r\n\r\n if (options.extraFields) {\r\n Object.entries(options.extraFields).forEach(([field, title]) => {\r\n uiSchema[field] = {\r\n 'ui:col': 4,\r\n 'ui:labelCol': 3,\r\n 'ui:placeholder': '请输入',\r\n ...options.ui?.[field]\r\n };\r\n properties[field] = {\r\n title,\r\n type: 'string',\r\n };\r\n });\r\n }\r\n\r\n const schema: Schema = {\r\n type: 'object',\r\n properties\r\n };\r\n\r\n const onSubmit = useCallback(({ formData }) => {\r\n onSearch(formData);\r\n }, [onSearch]);\r\n\r\n const onReset = useCallback(() => {\r\n setKey(key => key + 1);\r\n onSearch({});\r\n }, []);\r\n\r\n return <Container key={key}>\r\n <Form\r\n formContext={{ layout: 'horizontal' }}\r\n schema={schema}\r\n uiSchema={uiSchema}\r\n onSubmit={onSubmit}\r\n formData={data}\r\n >\r\n <div className='col-2 ms-auto mt-auto'>\r\n <div className='justify-content-end d-flex gap-2 '>\r\n <Button className={'px-4'} onClick={onReset} variant='secondary'>重置</Button>\r\n <Button className={'px-4'} type='submit' variant='primary'>查询</Button>\r\n </div>\r\n </div>\r\n </Form>\r\n </Container>;\r\n}\r\n\r\nconst Container = styled.div`\r\n margin-bottom: 1rem;\r\n`;\r\n\r\ninterface Props {\r\n keyword: string;\r\n onKeywordChange: (value: string) => void;\r\n}\r\n\r\nexport function LightSearch({ keyword, onKeywordChange }: Props) {\r\n\r\n const [value, setValue] = useState(keyword);\r\n\r\n const debouncedOnKeywordChange = useDebounce(onKeywordChange, 500);\r\n\r\n useEffect(() => {\r\n setValue(keyword);\r\n }, [keyword]);\r\n\r\n const onChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\r\n setValue(e.target.value);\r\n debouncedOnKeywordChange(e.target.value);\r\n }, [debouncedOnKeywordChange, setValue]);\r\n\r\n return <FormControl value={value} onChange={onChange} type={'search'} placeholder={'Search...'} />;\r\n}\r\n","import RcTable, { TableProps as RcTableProps } from 'rc-table';\r\nimport { unstable_batchedUpdates } from 'react-dom';\r\nimport { ColumnType as BsColumnType, RenderedCell, RenderExpandIconProps } from 'rc-table/es/interface';\r\nimport { Table as BsTable } from 'react-bootstrap';\r\nimport { useUrlSearchParams } from 'use-url-search-params';\r\nimport {\r\n forwardRef,\r\n ForwardRefExoticComponent,\r\n Key,\r\n memo,\r\n PropsWithChildren,\r\n PropsWithoutRef,\r\n ReactNode,\r\n RefAttributes,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useMemo,\r\n useRef,\r\n useState\r\n} from 'react';\r\nimport Pagination from '../../pagination';\r\nimport styled from 'styled-components';\r\nimport request from '../../../request';\r\nimport Card from '../../card';\r\nimport Loader from '../../loader';\r\nimport Space from '../../space';\r\nimport useSelection from './use-selection';\r\nimport { PaginationType } from '../../../utils/types';\r\nimport { ReactComponent as PlusIcon } from '../../../images/plus_square.svg';\r\nimport { ReactComponent as MinusIcon } from '../../../images/minus_square.svg';\r\nimport useControllableState from '../../../hooks/use-controllable-state';\r\nimport Search, { LightSearch, SearchOptions } from './search';\r\nimport NumberFormat from '../../number-format';\r\nimport { TableContext } from './context';\r\n\r\nexport interface TableType {\r\n reload: () => void;\r\n}\r\n\r\ninterface ColumnType<RecordType> extends BsColumnType<RecordType> {\r\n render?: (data: {\r\n value: any,\r\n record: RecordType,\r\n index: number,\r\n action: TableType\r\n }) => ReactNode | RenderedCell<RecordType>;\r\n valueType?: 'currency';\r\n valueEnum?: Record<number | string, {\r\n text: ReactNode;\r\n status?: string;\r\n }>;\r\n}\r\n\r\nexport type Columns<RecordType = any> = ColumnType<RecordType>[]\r\n\r\nconst CustomTHead = styled.thead`\r\n th {\r\n padding: 0.5rem 0.5rem;\r\n border-bottom-width: 1px;\r\n border-color: var(--bs-border-color);\r\n }\r\n`;\r\n\r\nconst components: RcTableProps['components'] = {\r\n table: (props) => {\r\n return <BsTable {...props} className='mb-0 align-middle table-hover' />;\r\n },\r\n header: {\r\n wrapper(props) {\r\n return <CustomTHead {...props} />;\r\n }\r\n }\r\n};\r\n\r\nconst ExpandIconContainer = styled.a`\r\n cursor: pointer;\r\n width: 28px;\r\n height: 28px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n vertical-align: middle;\r\n`;\r\n\r\nconst ExpandIcon = function <RecordType>({\r\n record,\r\n expanded,\r\n expandable,\r\n onExpand\r\n}: RenderExpandIconProps<RecordType>) {\r\n if (!expandable) return <ExpandIconContainer />;\r\n return <ExpandIconContainer onClick={e => onExpand(record, e)}>\r\n {expanded ? <MinusIcon /> : <PlusIcon />}\r\n </ExpandIconContainer>;\r\n};\r\n\r\nconst CustomPagination = styled(Pagination)`\r\n margin-bottom: 0;\r\n justify-content: flex-end;\r\n margin-top: 1rem;\r\n`;\r\n\r\nfunction isPagination<T>(data: any): data is PaginationType<T> {\r\n return 'current_page' in data;\r\n}\r\n\r\nexport interface TableRowSelection<RecordType = any> {\r\n selectedRowKeys?: Key[];\r\n onChange?: (selectedRowKeys: Key[], selectedRows: RecordType[]) => void;\r\n}\r\n\r\nexport interface TableProps<RecordType = any> extends Omit<RcTableProps<RecordType>, 'children' | 'columns'> {\r\n source: string | ((params: Params) => Promise<RecordType>);\r\n paginate?: boolean;\r\n columns: Columns<RecordType>;\r\n toolBarRender?: ((action: TableType) => ReactNode) | false;\r\n search?: boolean | SearchOptions;\r\n rowSelection?: TableRowSelection<RecordType>;\r\n card?: boolean;\r\n sync?: boolean;\r\n}\r\n\r\ntype Params = {\r\n page?: number;\r\n sortField?: string;\r\n sortOrder?: number;\r\n q?: string;\r\n [key: string]: any;\r\n};\r\n\r\nexport type CustomTableType<T = any> = ForwardRefExoticComponent<PropsWithoutRef<PropsWithChildren<TableProps<T>>>\r\n & RefAttributes<TableType>>\r\n\r\nconst Table: CustomTableType = forwardRef((\r\n {\r\n source,\r\n rowKey = 'id',\r\n paginate = true,\r\n toolBarRender,\r\n columns = [],\r\n search,\r\n rowSelection,\r\n card = true,\r\n expandable = {},\r\n sync = false,\r\n ...props\r\n },\r\n ref\r\n) => {\r\n const [data, setData] = useState<any[]>([]);\r\n const [pagination, setPagination] = useState(paginate ? { total: 0, current: 1, pageSize: 10 } : null);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [params, setParams] = useUrlSearchParams({});\r\n\r\n //多选\r\n const [transformColumns, setSelectionRowKeys] = useSelection(rowSelection, rowKey, data);\r\n\r\n const [filters, setFilters] = useControllableState<Record<string, string>>({\r\n value: sync ? (params as Record<string, string> || {}) : undefined,\r\n defaultValue: {},\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams(value);\r\n }\r\n }\r\n });\r\n\r\n const [keyword, setKeyword] = useControllableState<string>({\r\n value: sync ? (params.q as string || '') : undefined,\r\n defaultValue: '',\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams({ q: value || undefined });\r\n }\r\n }\r\n });\r\n\r\n const [page, setPage] = useControllableState<number>({\r\n value: sync ? (params.page as number || 1) : undefined,\r\n defaultValue: 1,\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams({ page: value || undefined });\r\n }\r\n }\r\n });\r\n\r\n const fetchData = useCallback(async () => {\r\n setLoading(true);\r\n setSelectionRowKeys([]);\r\n try {\r\n let result;\r\n const params: Params = {\r\n ...filters,\r\n q: keyword,\r\n page: page > 1 ? page : undefined,\r\n };\r\n\r\n if (typeof source === 'string') {\r\n result = await request({\r\n url: source,\r\n params,\r\n });\r\n } else {\r\n result = await source(params);\r\n }\r\n\r\n if (paginate && isPagination<any>(result)) {\r\n setPagination({\r\n total: result.total,\r\n current: result.current_page,\r\n pageSize: result.per_page\r\n });\r\n result = result.data;\r\n }\r\n setData(result);\r\n } catch (e) {\r\n\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [source, setData, keyword, page, filters]);\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, [keyword, page, filters]);\r\n\r\n const action = useRef<TableType>({\r\n reload: fetchData\r\n });\r\n\r\n useEffect(() => {\r\n action.current = {\r\n reload: fetchData\r\n };\r\n }, [fetchData]);\r\n\r\n useImperativeHandle(ref, () => action.current);\r\n\r\n const customColumns = useMemo(() => {\r\n return transformColumns(columns).map(({ render, valueType, valueEnum, ...column }) => {\r\n const customColumn: BsColumnType<any> = { ...column };\r\n\r\n if (render) {\r\n customColumn.render = (value, record, index) => {\r\n return render({ value, record, index, action: action.current });\r\n };\r\n } else if (valueType === 'currency') {\r\n customColumn.render = (value) => {\r\n return <NumberFormat value={value} />;\r\n };\r\n } else if (valueEnum) {\r\n customColumn.render = (value) => {\r\n if (valueEnum[value]) {\r\n if (valueEnum[value].status) {\r\n return <span className={`text-${valueEnum[value].status}`}>{valueEnum[value].text}</span>;\r\n }\r\n return valueEnum[value].text;\r\n }\r\n return value;\r\n };\r\n }\r\n return customColumn;\r\n });\r\n }, [columns, transformColumns, action]);\r\n\r\n const children = <>\r\n <Loader loading={loading} />\r\n {typeof search === 'object' && <Search\r\n data={filters}\r\n columns={columns}\r\n options={search}\r\n onSearch={(data) => {\r\n unstable_batchedUpdates(() => {\r\n setPage(1);\r\n setFilters(data);\r\n });\r\n }}\r\n />}\r\n {toolBarRender !== false && <Header>\r\n <LeftTools size={12}>\r\n {toolBarRender && toolBarRender(action.current)}\r\n </LeftTools>\r\n <RightTools size={12}>\r\n {search === true && <LightSearch keyword={keyword} onKeywordChange={(value) => {\r\n unstable_batchedUpdates(() => {\r\n setPage(1);\r\n setKeyword(value);\r\n });\r\n }} />}\r\n <Action onClick={action.current.reload}><i className='bi bi-arrow-repeat' /></Action>\r\n </RightTools>\r\n </Header>}\r\n <TableContext.Provider value={true}>\r\n <RcTable {...props} expandable={{ expandIcon: ExpandIcon, ...expandable }} rowKey={rowKey} columns={customColumns} components={components} data={data} />\r\n </TableContext.Provider>\r\n {pagination && <CustomPagination {...pagination} onChange={setPage} />}\r\n </>;\r\n\r\n if (card) {\r\n return <Card>\r\n {children}\r\n </Card>;\r\n }\r\n return children;\r\n});\r\n\r\nexport default memo(Table) as CustomTableType;\r\n\r\nconst Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n padding-bottom: 1rem;\r\n height: 48px;\r\n border-bottom: 2px solid #212529;\r\n`;\r\n\r\nconst RightTools = styled(Space)`\r\n\r\n`;\r\nconst LeftTools = styled(Space)`\r\n\r\n`;\r\n\r\nconst Action = styled.span`\r\n cursor: pointer;\r\n font-size: 20px;\r\n line-height: 1;\r\n\r\n &:hover {\r\n color: var(--bs-primary);\r\n }\r\n`;\r\n"],"names":["Checkbox","_ref","indeterminate","props","ref","useRef","useEffect","current","_jsx","className","type","_path","_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","this","SvgPlusSquare","React","createElement","viewBox","xmlns","width","height","fill","d","SvgMinusSquare","Search","data","options","columns","onSearch","setKey","useState","uiSchema","order","properties","fields","forEach","field","column","find","dataIndex","title","ui","valueEnum","enum","keys","flatMap","text","enumNames","extraFields","entries","_ref2","schema","onSubmit","useCallback","_ref3","formData","onReset","Container","children","Form","formContext","layout","_jsxs","Button","onClick","variant","styled","div","LightSearch","_ref4","keyword","onKeywordChange","value","setValue","debouncedOnKeywordChange","useDebounce","onChange","e","FormControl","placeholder","CustomTHead","thead","components","table","BsTable","header","wrapper","ExpandIconContainer","a","ExpandIcon","record","expanded","expandable","onExpand","MinusIcon","PlusIcon","CustomPagination","Pagination","Table","forwardRef","rowKey","paginate","toolBarRender","search","rowSelection","card","sync","setData","pagination","setPagination","total","pageSize","loading","setLoading","params","setParams","useUrlSearchParams","transformColumns","setSelectionRowKeys","setKeys","Set","selectedRowKeys","getRowKey","getRecordByKey","setSelectedKeys","changedKeys","Array","from","records","map","recordKeys","checkedCurrentAll","every","has","checkedCurrentSome","some","checked","delete","add","align","render","useSelection","filters","setFilters","useControllableState","undefined","defaultValue","setKeyword","q","page","setPage","fetchData","async","result","request","url","isPagination","current_page","per_page","action","reload","useImperativeHandle","customColumns","useMemo","valueType","customColumn","index","NumberFormat","status","_Fragment","Loader","unstable_batchedUpdates","Header","LeftTools","size","RightTools","Action","TableContext","Provider","RcTable","expandIcon","Card","memo","Space","span"],"mappings":"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"}
|