@flatbiz/antd 4.2.32 → 4.2.33
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.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
2
|
import './index.css';
|
|
3
3
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
4
|
-
import{classNames as
|
|
4
|
+
import{classNames as r}from"@dimjs/utils/cjs/class-names";import{Descriptions as e}from"antd";import{useMemo as l}from"react";import{jsx as a}from"react/jsx-runtime";var t=function t(n){var o={"--v-label-value-layout-lWidth":(n.labelWidth||120)+"px"};var i=r("v-label-value-layout",n.className);var m=l((function(){return n.options.filter((function(r){return!r.hidden}))}),[n.options]);return a(e,{column:n.column||1,bordered:n.bordered,size:"small",className:i,style:o,children:m.map((function(r,l){return a(e.Item,{label:r.label,span:r.span,children:r.value},l)}))})};export{t as LabelValueLayout};
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/label-value-layout/label-value-layout.tsx"],"sourcesContent":["import { classNames } from '@dimjs/utils';\nimport { Descriptions } from 'antd';\nimport { CSSProperties, ReactElement, useMemo } from 'react';\nimport './style.less';\n\nexport type LabelValueLayoutProps = {\n options: {\n label: string | ReactElement;\n value?: string | number | ReactElement;\n span?: number;\n hidden?: boolean;\n }[];\n labelWidth?: number;\n // 一行占几组,默认1\n column?: number;\n bordered?: boolean;\n className?: string;\n};\n\n/**\n * options[].span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度\n * options[].hidden 是否隐藏 Description.Item\n */\nexport const LabelValueLayout = (props: LabelValueLayoutProps) => {\n const style = { '--v-label-value-layout-lWidth': `${props.labelWidth || 120}px` } as CSSProperties;\n const className = classNames('v-label-value-layout', props.className);\n\n const options = useMemo(() => {\n return props.options.filter((item) => !item.hidden);\n }, [props.options]);\n return (\n <Descriptions\n column={props.column || 1}\n bordered={props.bordered}\n size=\"small\"\n className={className}\n style={style}\n >\n {options.map((item, index) => {\n return (\n <Descriptions.Item key={index} label={item.label} span={item.span}>\n {item.value}\n </Descriptions.Item>\n );\n })}\n </Descriptions>\n );\n};\n"],"names":["LabelValueLayout","props","style","labelWidth","className","_classNames","options","useMemo","filter","item","hidden","_jsx","Descriptions","column","bordered","size","children","map","index","Item","label","span","value"],"mappings":";0KAuBaA,EAAmB,SAAnBA,EAAoBC,GAC/B,IAAMC,EAAQ,CAAE,iCAAoCD,EAAME,YAAc,KAAG,MAC3E,IAAMC,EAAYC,EAAW,uBAAwBJ,EAAMG,WAE3D,IAAME,EAAUC,GAAQ,WACtB,OAAON,EAAMK,QAAQE,QAAO,SAACC,GAAI,OAAMA,EAAKC,SAC9C,GAAG,CAACT,EAAMK,UACV,OACEK,EAACC,EAAY,CACXC,OAAQZ,EAAMY,QAAU,EACxBC,SAAUb,EAAMa,SAChBC,KAAK,QACLX,UAAWA,EACXF,MAAOA,EAAMc,SAEZV,EAAQW,KAAI,SAACR,EAAMS,GAClB,OACEP,EAACC,EAAaO,KAAI,CAAaC,MAAOX,EAAKW,MAAOC,KAAMZ,EAAKY,KAAKL,SAC/DP,EAAKa,OADgBJ,OAOlC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/* eslint-disable */
|
|
2
|
+
import './../fba-utils/index.css';
|
|
2
3
|
import './../dynamic-node/index.css';
|
|
3
4
|
import './../fba-hooks/index.css';
|
|
4
5
|
import './index.css';
|
|
5
6
|
/*! @flatjs/forge MIT @flatbiz/antd */
|
|
6
|
-
import{
|
|
7
|
+
import{f as r}from"../fba-utils-1e895394.js";import{createCtx as e}from"@wove/react/cjs/create-ctx";import{classNames as t}from"@dimjs/utils/cjs/class-names";import{isDeepEqual as n}from"@dimjs/lang/cjs/is-deep-equal";import{a as i}from"../_rollupPluginBabelHelpers-1f4d8910.js";import{toArray as a}from"@flatbiz/utils";import{Result as o,Button as c,Spin as s}from"antd";import{forwardRef as u,useState as l,useRef as f,useMemo as m,useImperativeHandle as d}from"react";import{d as v}from"../dynamic-node-c7864af4.js";import{fbaHooks as h}from"../fba-hooks/index.js";import{jsx as p,jsxs as y}from"react/jsx-runtime";import"@dimjs/lang/cjs/is-array";import"react-dom/client";import"../dom-4d04aa64.js";import"@wove/react/cjs/hooks";import"../use-responsive-point-21b8c601.js";var g=e(),j=g[0],b=g[1];var P=u((function(r,e){var u=r.serviceConfig,g=r.isAsync,j=r.children,P=r.errorRender;var C=l("init"),N=C[0],R=C[1];var q=l(),x=q[0],k=q[1];var w=r.loadingHeight===undefined?100:r.loadingHeight;var E=f(null);var H=f();var T=f();var A=h.usePrevious(u.params);var K=m((function(){var r;if(!u.params||a(u.invalidParamKey).length===0){return u.params}var e=i({},u.params);(r=u.invalidParamKey)==null?void 0:r.forEach((function(r){e[r]=undefined}));return e}),[u]);var L=function r(){T.current=undefined;H.current=v.append({content:p(s,{spinning:true}),getContainer:function r(){return E.current}}).elementId};var z=function r(){v.remove(H.current)};var B=function r(){return new Promise((function(r,e){var t=function(r){return function(t){try{z();return r&&r.call(this,t)}catch(r){return e(r)}}.bind(this)}.bind(this);var n;var i=function(){try{return r()}catch(r){return e(r)}};var a=function(r){try{R("error");T.current=r.message;return t(i)()}catch(r){return t(e)(r)}};try{L();return Promise.resolve(u.onRequest(K)).then((function(r){try{n=r;R("success");k(n);return t(i)()}catch(r){return a(r)}}),a)}catch(r){a(r)}}))};h.useEffectCustomAsync(B,[]);h.useEffectCustom((function(){if(A){if(!n(u.params,A)){void I()}}}),[A,u.params]);var I=function r(e){return new Promise((function(r,t){var n=function(r){return function(e){try{z();return r&&r.call(this,e)}catch(r){return t(r)}}.bind(this)}.bind(this);var a;var o=function(){try{return r()}catch(r){return t(r)}};var c=function(r){try{R("error");return n(o)()}catch(r){return n(t)(r)}};try{L();return Promise.resolve(u.onRequest(i({},K,e))).then((function(r){try{a=r;k(a);R("success");return n(o)()}catch(r){return c(r)}}),c)}catch(r){c()}}))};d(e,(function(){return{onRefresh:I}}));if(N==="error"){if(P){return P(x)}return p("div",{className:"local-loading-error",style:{height:w},children:p(o,{status:"error",subTitle:T.current||"数据处理异常",extra:[p(c,{type:"primary",ghost:true,onClick:function r(){R("init");setTimeout((function(){void B()}),100)},children:"重新获取"},"console")]})})}if(N!=="success"&&!g){return p("div",{className:"fba-local-loading-process",style:{height:w,display:"flex",justifyContent:"center",position:"relative",backgroundColor:"#fff"},children:p("div",{className:"local-loading-area",ref:E})})}return p(b,{value:{onRequest:I},children:y("div",{className:t("fba-local-loading",r.className),style:r.style,children:[p("div",{className:"local-loading-area",ref:E}),p("div",{className:"local-loading-content",children:j(x)})]})})}));var C=r.attachPropertiesToComponent(P,{useLocalLoading:function r(){var e=j();return{onRequest:function r(t){e.onRequest(t)}}}});export{C as LocalLoading};
|
|
7
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/local-loading.tsx"],"sourcesContent":["import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { dynamicNode } from '../dynamic-node';\nimport { fbaHooks } from '../fba-hooks';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TPlainObject>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number;\n className?: string;\n style?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: () => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoading = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const loadingKeyRef = useRef<string>();\n const errorRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\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]);\n\n const openLoading = () => {\n errorRef.current = undefined;\n loadingKeyRef.current = dynamicNode.append({\n content: <Spin spinning={true}></Spin>,\n getContainer: () => {\n return rootRef.current as HTMLElement;\n },\n }).elementId;\n };\n\n const closeLoading = () => {\n dynamicNode.remove(loadingKeyRef.current);\n };\n\n const onInitRequest = async () => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest(serviceParams);\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n setStatus('error');\n errorRef.current = error.message;\n } finally {\n closeLoading();\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onRefresh();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n const onRefresh = async () => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest(serviceParams);\n setRespData(respData);\n setStatus('success');\n } catch (error) {\n setStatus('error');\n } finally {\n closeLoading();\n }\n };\n\n useImperativeHandle(ref, () => {\n return { onRefresh };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <div className=\"local-loading-error\" style={{ height: loadingHeight }}>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n onClick={() => {\n setStatus('init');\n setTimeout(() => {\n void onInitRequest();\n }, 100);\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className=\"fba-local-loading-process\"\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: '#fff',\n }}\n >\n <div className=\"local-loading-area\" ref={rootRef}></div>\n </div>\n );\n }\n\n return (\n <div className={classNames('fba-local-loading', props.className)} style={props.style}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <div className=\"local-loading-content\">{children(respData)}</div>\n </div>\n );\n});\n"],"names":["LocalLoading","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","loadingKeyRef","errorRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","openLoading","current","dynamicNode","append","content","_jsx","Spin","spinning","getContainer","elementId","closeLoading","remove","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","message","resolve","onRequest","then","$await_3","useEffectCustomAsync","useEffectCustom","_isDeepEqual","onRefresh","$Try_2_Finally","$Try_2_Exit","$Try_2_Value","_respData2","$Try_2_Post","$Try_2_Catch","$await_4","useImperativeHandle","className","style","height","Result","subTitle","extra","Button","type","ghost","onClick","setTimeout","display","justifyContent","position","backgroundColor","_jsxs","_classNames"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["@flatbiz/antd/src/local-loading/context.ts","@flatbiz/antd/src/local-loading/local-loading.tsx","@flatbiz/antd/src/local-loading/index.ts"],"sourcesContent":["import { TPlainObject } from '@flatbiz/utils';\nimport { createCtx } from '@wove/react';\n\nexport const [useLocalLoadingCtx, LocalLoadingCtxProvider] = createCtx<{\n onRequest: (params?: TPlainObject) => void;\n}>();\n","import { isDeepEqual } from '@dimjs/lang';\nimport { classNames } from '@dimjs/utils';\nimport { TAny, toArray, TPlainObject } from '@flatbiz/utils';\nimport { Button, Result, Spin } from 'antd';\nimport {\n CSSProperties,\n forwardRef,\n ReactElement,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { dynamicNode } from '../dynamic-node';\nimport { fbaHooks } from '../fba-hooks';\nimport { LocalLoadingCtxProvider } from './context';\nimport './style.less';\n\nexport type LocalLoadingServiceConfig = {\n onRequest: (params?: TAny) => Promise<TPlainObject>;\n params?: TPlainObject;\n /** 标记serviceConfig.params中无效参数,被设置的params key 不传入服务接口入参 */\n invalidParamKey?: string[];\n};\n\nexport interface LocalLoadingProps {\n /** 接口数据配置 */\n serviceConfig: LocalLoadingServiceConfig;\n /** children 为函数,参数【respData】为接口返回数据 */\n children: (respData?: TAny) => ReactElement;\n /**\n * 是否异步,默认:false\n * ```\n * true(异步):onRequest、react dom渲染同步执行\n * false(同步):onRequest有结果了才渲染 react dom\n * ```\n */\n isAsync?: boolean;\n /** 自定义异常渲染处理 */\n errorRender?: (error?: TAny) => ReactElement;\n /** loading高度,默认值:100;isAsync = true 无效 */\n loadingHeight?: number;\n className?: string;\n style?: CSSProperties;\n}\n\nexport type LocalLoadingRefApi = {\n onRefresh: (params?: TPlainObject) => void;\n};\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n * @param props\n * @returns\n */\nexport const LocalLoadingInner = forwardRef<LocalLoadingRefApi, LocalLoadingProps>((props, ref) => {\n const { serviceConfig, isAsync, children, errorRender } = props;\n const [status, setStatus] = useState<'success' | 'error' | 'init'>('init');\n const [respData, setRespData] = useState<TAny>();\n const loadingHeight = props.loadingHeight === undefined ? 100 : props.loadingHeight;\n const rootRef = useRef<HTMLDivElement>(null);\n const loadingKeyRef = useRef<string>();\n const errorRef = useRef<string>();\n\n const prevParams = fbaHooks.usePrevious(serviceConfig.params);\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]);\n\n const openLoading = () => {\n errorRef.current = undefined;\n loadingKeyRef.current = dynamicNode.append({\n content: <Spin spinning={true}></Spin>,\n getContainer: () => {\n return rootRef.current as HTMLElement;\n },\n }).elementId;\n };\n\n const closeLoading = () => {\n dynamicNode.remove(loadingKeyRef.current);\n };\n\n const onInitRequest = async () => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest(serviceParams);\n setStatus('success');\n setRespData(respData);\n } catch (error) {\n setStatus('error');\n errorRef.current = error.message;\n } finally {\n closeLoading();\n }\n };\n\n fbaHooks.useEffectCustomAsync(onInitRequest, []);\n\n fbaHooks.useEffectCustom(() => {\n if (prevParams) {\n if (!isDeepEqual(serviceConfig.params, prevParams)) {\n void onRefresh();\n }\n }\n }, [prevParams, serviceConfig.params]);\n\n const onRefresh = async (params?: TPlainObject) => {\n try {\n openLoading();\n const respData = await serviceConfig.onRequest({\n ...serviceParams,\n ...params,\n });\n setRespData(respData);\n setStatus('success');\n } catch (error) {\n setStatus('error');\n } finally {\n closeLoading();\n }\n };\n\n useImperativeHandle(ref, () => {\n return { onRefresh };\n });\n\n if (status === 'error') {\n if (errorRender) {\n return errorRender(respData);\n }\n return (\n <div className=\"local-loading-error\" style={{ height: loadingHeight }}>\n <Result\n status=\"error\"\n subTitle={errorRef.current || '数据处理异常'}\n extra={[\n <Button\n type=\"primary\"\n ghost\n key=\"console\"\n onClick={() => {\n setStatus('init');\n setTimeout(() => {\n void onInitRequest();\n }, 100);\n }}\n >\n 重新获取\n </Button>,\n ]}\n />\n </div>\n );\n }\n\n if (status !== 'success' && !isAsync) {\n return (\n <div\n className=\"fba-local-loading-process\"\n style={{\n height: loadingHeight,\n display: 'flex',\n justifyContent: 'center',\n position: 'relative',\n backgroundColor: '#fff',\n }}\n >\n <div className=\"local-loading-area\" ref={rootRef}></div>\n </div>\n );\n }\n\n return (\n <LocalLoadingCtxProvider value={{ onRequest: onRefresh }}>\n <div className={classNames('fba-local-loading', props.className)} style={props.style}>\n <div className=\"local-loading-area\" ref={rootRef}></div>\n <div className=\"local-loading-content\">{children(respData)}</div>\n </div>\n </LocalLoadingCtxProvider>\n );\n});\n","import { TPlainObject } from '@flatbiz/utils';\nimport { fbaUtils } from '../fba-utils';\nimport { useLocalLoadingCtx } from './context';\nimport { LocalLoadingInner } from './local-loading';\n\n/**\n * 局部加载,包含接口数据处理逻辑\n * ```\n * 包括\n * 1. loading显示效果\n * 2. error显示效果\n * 3. 获取服务数据\n * 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用\n * ```\n */\nexport const LocalLoading = fbaUtils.attachPropertiesToComponent(LocalLoadingInner, {\n useLocalLoading: () => {\n const ctx = useLocalLoadingCtx();\n return {\n onRequest: (params?: TPlainObject) => {\n ctx.onRequest(params);\n },\n };\n },\n});\n"],"names":["_createCtx","_createCtx2","useLocalLoadingCtx","LocalLoadingCtxProvider","LocalLoadingInner","forwardRef","props","ref","serviceConfig","isAsync","children","errorRender","_useState","useState","status","setStatus","_useState2","respData","setRespData","loadingHeight","undefined","rootRef","useRef","loadingKeyRef","errorRef","prevParams","fbaHooks","usePrevious","params","serviceParams","useMemo","_serviceConfig$invali","toArray","invalidParamKey","length","newParams","_extends","forEach","key","openLoading","current","dynamicNode","append","content","_jsx","Spin","spinning","getContainer","elementId","closeLoading","remove","onInitRequest","Promise","$return","$error","$Try_1_Finally","$Try_1_Exit","$Try_1_Value","call","this","$boundEx","bind","_respData","$Try_1_Post","$Try_1_Catch","error","message","resolve","onRequest","then","$await_3","useEffectCustomAsync","useEffectCustom","_isDeepEqual","onRefresh","$Try_2_Finally","$Try_2_Exit","$Try_2_Value","_respData2","$Try_2_Post","$Try_2_Catch","$await_4","useImperativeHandle","className","style","height","Result","subTitle","extra","Button","type","ghost","onClick","setTimeout","display","justifyContent","position","backgroundColor","value","_jsxs","_classNames","LocalLoading","fbaUtils","attachPropertiesToComponent","useLocalLoading","ctx"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1396,11 +1396,18 @@ export type LabelValueLayoutProps = {
|
|
|
1396
1396
|
options: {
|
|
1397
1397
|
label: string | ReactElement;
|
|
1398
1398
|
value?: string | number | ReactElement;
|
|
1399
|
+
span?: number;
|
|
1400
|
+
hidden?: boolean;
|
|
1399
1401
|
}[];
|
|
1400
1402
|
labelWidth?: number;
|
|
1401
1403
|
column?: number;
|
|
1402
1404
|
bordered?: boolean;
|
|
1405
|
+
className?: string;
|
|
1403
1406
|
};
|
|
1407
|
+
/**
|
|
1408
|
+
* options[].span 是 Description.Item 的数量。 span={2} 会占用两个 DescriptionItem 的宽度
|
|
1409
|
+
* options[].hidden 是否隐藏 Description.Item
|
|
1410
|
+
*/
|
|
1404
1411
|
export declare const LabelValueLayout: (props: LabelValueLayoutProps) => JSX.Element;
|
|
1405
1412
|
export type LocalLoadingServiceConfig = {
|
|
1406
1413
|
onRequest: (params?: TAny) => Promise<TPlainObject>;
|
|
@@ -1429,7 +1436,7 @@ export interface LocalLoadingProps {
|
|
|
1429
1436
|
style?: CSSProperties;
|
|
1430
1437
|
}
|
|
1431
1438
|
export type LocalLoadingRefApi = {
|
|
1432
|
-
onRefresh: () => void;
|
|
1439
|
+
onRefresh: (params?: TPlainObject) => void;
|
|
1433
1440
|
};
|
|
1434
1441
|
/**
|
|
1435
1442
|
* 局部加载,包含接口数据处理逻辑
|
|
@@ -1440,10 +1447,12 @@ export type LocalLoadingRefApi = {
|
|
|
1440
1447
|
* 3. 获取服务数据
|
|
1441
1448
|
* 4. 当 serviceConfig.params 值与上一次值不相等时,会主动发起服务调用
|
|
1442
1449
|
* ```
|
|
1443
|
-
* @param props
|
|
1444
|
-
* @returns
|
|
1445
1450
|
*/
|
|
1446
|
-
export declare const LocalLoading: import("react").ForwardRefExoticComponent<LocalLoadingProps & import("react").RefAttributes<LocalLoadingRefApi
|
|
1451
|
+
export declare const LocalLoading: import("react").ForwardRefExoticComponent<LocalLoadingProps & import("react").RefAttributes<LocalLoadingRefApi>> & {
|
|
1452
|
+
useLocalLoading: () => {
|
|
1453
|
+
onRequest: (params?: TPlainObject) => void;
|
|
1454
|
+
};
|
|
1455
|
+
};
|
|
1447
1456
|
export type onClick = (e?: React.MouseEvent<HTMLElement>) => void;
|
|
1448
1457
|
export interface ModalActionProps {
|
|
1449
1458
|
children: ReactElement | ((data: {
|