@flatbiz/antd 5.0.26 → 5.0.28

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/dist/index.d.ts CHANGED
@@ -4017,6 +4017,8 @@ export type TLabelValueItem = {
4017
4017
  hideTip?: boolean;
4018
4018
  /** value 渲染不使用 TextOverflow 包裹 */
4019
4019
  valueNoWrapper?: boolean;
4020
+ labelStyle?: CSSProperties;
4021
+ valueStyle?: CSSProperties;
4020
4022
  };
4021
4023
  export type LabelValueRenderProps = {
4022
4024
  className?: string;
@@ -5970,11 +5972,43 @@ export type TreeWrapperProps = Omit<TreeProps, "treeData" | "onExpand" | "select
5970
5972
  * 自定义搜索规则
5971
5973
  */
5972
5974
  customSearchRule?: (nodeData: TPlainObject, searchValue?: string) => boolean;
5975
+ /**
5976
+ * 点击父节点 是否切换折叠
5977
+ * ```
5978
+ * 1. 设置 titleRender 后,此配置失效
5979
+ * ```
5980
+ */
5981
+ clickParentNodeToggleExpand?: boolean;
5982
+ /**
5983
+ * 禁用节点选中
5984
+ * ```
5985
+ * 1. checkable = true,此配置失效
5986
+ * 2. 在未设置节点 disabled 属性情况下,满足此配置不会触发onChange事件
5987
+ * ```
5988
+ */
5989
+ disableNodeSelect?: (item: TPlainObject) => boolean;
5990
+ /**
5991
+ * 是否必选,最后一个不能取消
5992
+ * ```
5993
+ * 1. 设置 checkable = true 时无效
5994
+ * ```
5995
+ */
5996
+ required?: boolean;
5997
+ /**
5998
+ * 在第一次渲染value时,主动执行一次onChange
5999
+ * ```
6000
+ * 1. 设置labelInValue = true 时有效
6001
+ * 2. 不考虑子父节点的关系
6002
+ * ```
6003
+ */
6004
+ executeOnChangeInRenderFirstValue?: boolean;
5973
6005
  };
5974
6006
  export type TreeWrapperRefApi = {
5975
6007
  onClearSelectorList: () => void;
5976
6008
  getTreeDataList: () => TreeProps["treeData"];
5977
6009
  onChangeExpandedKeys: (expandedKeys: Array<string | number>) => void;
6010
+ getTreeTiledArray: () => TPlainObject[];
6011
+ getTreeTiledArrayMap: () => TPlainObject;
5978
6012
  /** 选择所有 */
5979
6013
  onSelectAll: () => void;
5980
6014
  /** 取消选择所有 */
@@ -6057,6 +6091,10 @@ export type TreeModalSelectorProps = Omit<TreeModalProps, "children" | "forceRen
6057
6091
  /** 是否返回label+value模式 */
6058
6092
  labelInValue?: boolean;
6059
6093
  onChange?: (values?: TreeModelSelectItem[] | TreeModelSelectItem) => void;
6094
+ /** 最大选择数量 */
6095
+ maxCount?: number;
6096
+ /** 超过最大选择数量提示文本 */
6097
+ overMaxCountMsg?: string;
6060
6098
  };
6061
6099
  /**
6062
6100
  * 树弹框选择器
@@ -6175,6 +6213,14 @@ export type TreeSelectorWrapperProps = Omit<TreeSelectProps, "treeExpandedKeys"
6175
6213
  selectedParentCheckedAllChildrenList?: boolean;
6176
6214
  /** 有唯一跟节点时,初始化是否展开,默认值:false */
6177
6215
  initRootExpand?: boolean;
6216
+ /**
6217
+ * 在第一次渲染value时,主动执行一次onChange
6218
+ * ```
6219
+ * 1. 设置labelInValue = true 时有效
6220
+ * 2. 不考虑子父节点的关系
6221
+ * ```
6222
+ */
6223
+ executeOnChangeInRenderFirstValue?: boolean;
6178
6224
  };
6179
6225
  /**
6180
6226
  * 树选择器包装组件,由于过度封装,部分antd TreeSelect原始功能不支持,不满足情况的请使用antd TreeSelect实现
package/dist/index.js CHANGED
@@ -205,7 +205,7 @@ export { I as InputSearchWrapper } from './input-search-wrapper-wVYGWi2O.js';
205
205
  export { I as InputTextAreaWrapper } from './input-text-area-wrapper-Cxi-wf5J.js';
206
206
  export { I as InputWrapper } from './input-wrapper-B3FjX76n.js';
207
207
  export { L as LabelValueLayout } from './label-value-layout-Cv5FYWlQ.js';
208
- export { L as LabelValueRender } from './label-value-C7kXxKh2.js';
208
+ export { L as LabelValueRender } from './label-value-BawoCisD.js';
209
209
  export { LocalLoading } from './local-loading/index.js';
210
210
  export { M as MentionEditor } from './mention-editor-GK6I91p1.js';
211
211
  export { M as MentionsWrapper } from './mentions-CZv5lHej.js';
@@ -256,8 +256,8 @@ export { T as TimeRangePickerWrapperFormItem } from './time-range-picker-wrapper
256
256
  export { T as TipsTitle } from './tips-title-DWwc8kJv.js';
257
257
  export { T as TipsWrapper } from './tips-wrapper-Bf9nfZq3.js';
258
258
  export { TreeModal } from './tree-modal/index.js';
259
- export { T as TreeModalSelector } from './selector-dbYimxeI.js';
260
- export { T as TreeSelectorWrapper } from './selector-DTu7bz-a.js';
259
+ export { T as TreeModalSelector } from './selector-DZ66pfO5.js';
260
+ export { T as TreeSelectorWrapper } from './selector-DCHIIlhe.js';
261
261
  export { TreeWrapper } from './tree-wrapper/index.js';
262
262
  export { types } from './types/index.js';
263
263
  export { U as UploadWrapper } from './upload-wrapper-CwKeqggJ.js';
@@ -3,7 +3,7 @@
3
3
  import { hooks } from '@wove/react/hooks';
4
4
  import { classNames } from '@dimjs/utils/class-names/class-names';
5
5
  import { b as _objectSpread2, a as _slicedToArray } from './_rollupPluginBabelHelpers-BYm17lo8.js';
6
- import { useState, useMemo } from 'react';
6
+ import { useState, useMemo, isValidElement } from 'react';
7
7
  import { arrayTotal, isUndefinedOrNull, isNumber } from '@flatbiz/utils';
8
8
  import { BoxGrid } from './box-grid/index.js';
9
9
  import { fbaHooks } from './fba-hooks/index.js';
@@ -179,11 +179,20 @@ var LabelValueRender = function LabelValueRender(props) {
179
179
  });
180
180
  return getRenderGrid(dataListNew.filter(Boolean));
181
181
  }, [breakpoint, columnNew, gridSize, options]);
182
- var colon = borderedNew ? '' : ':';
182
+ var showColon = !borderedNew && directionNew !== 'vertical';
183
183
  var getFormRowChildren = function getFormRowChildren() {
184
184
  return renderList === null || renderList === void 0 ? void 0 : renderList.map(function (item, index) {
185
185
  var ellipsisFt = directionNew === 'vertical' ? true : isUndefinedOrNull(item.ellipsis) ? ellipsis : item.ellipsis;
186
- var labelContent = "".concat(item.label).concat(colon);
186
+ var labelContent = item.label;
187
+ // let labelContent: ReactElement | string = isValidElement(item.label)
188
+ // ? item.label
189
+ // : `${item.label}${colon}`;
190
+ // if (colon) {
191
+ // labelContent = isValidElement(item.label)
192
+ // ? item.label
193
+ // : `${item.label}${colon}`;
194
+ // }
195
+
187
196
  if (item.tips && ellipsisFt) {
188
197
  labelContent = /*#__PURE__*/jsx(TipsWrapper, {
189
198
  tipType: "tooltip",
@@ -209,32 +218,44 @@ var LabelValueRender = function LabelValueRender(props) {
209
218
  hideTip: item.hideTip
210
219
  });
211
220
  }
221
+ var innerlabelStyle = showColon ? {
222
+ display: 'flex',
223
+ gap: 3
224
+ } : {};
212
225
  return /*#__PURE__*/jsxs(BoxGrid.Col, _objectSpread2(_objectSpread2({}, gridSize), {}, {
213
226
  span: item.grid,
214
227
  className: classNames('label-value-tr', {
215
228
  'label-value-last-tr': item.isLast
216
229
  }),
217
- children: [/*#__PURE__*/jsx("span", {
230
+ children: [/*#__PURE__*/jsxs("div", {
218
231
  className: "label-value-label",
219
- style: props.labelStyle,
220
- children: item.required ? /*#__PURE__*/jsx(TextSymbolWrapper, {
221
- text: labelContent,
222
- symbolType: "required"
223
- }) : labelContent
224
- }), ellipsisFt && !item.valueNoWrapper ? /*#__PURE__*/jsx("span", {
232
+ style: _objectSpread2(_objectSpread2(_objectSpread2({}, innerlabelStyle), props.labelStyle), item.labelStyle),
233
+ children: [item.required ? /*#__PURE__*/jsx("div", {
234
+ style: {
235
+ paddingLeft: 8,
236
+ position: 'relative',
237
+ width: '100%'
238
+ },
239
+ children: /*#__PURE__*/jsx(TextSymbolWrapper, {
240
+ text: labelContent,
241
+ symbolType: "required"
242
+ })
243
+ }) : labelContent, showColon ? /*#__PURE__*/jsx("div", {
244
+ children: ":"
245
+ }) : null]
246
+ }), ! /*#__PURE__*/isValidElement(item.value) && ellipsisFt && !item.valueNoWrapper ? /*#__PURE__*/jsx("div", {
225
247
  className: "label-value-value",
226
- style: props.valueStyle,
227
- onClick: item.onClick,
248
+ style: _objectSpread2(_objectSpread2({}, props.valueStyle), item.valueStyle),
228
249
  children: /*#__PURE__*/jsx(TextOverflow, {
229
250
  text: item.value,
230
251
  onClick: item.onClick,
231
252
  hideTip: item.hideTip
232
253
  })
233
- }) : /*#__PURE__*/jsx("span", {
254
+ }) : /*#__PURE__*/jsx("div", {
234
255
  className: "label-value-value",
235
- style: _objectSpread2({
256
+ style: _objectSpread2(_objectSpread2({
236
257
  wordBreak: 'break-all'
237
- }, props.valueStyle),
258
+ }, props.valueStyle), item.valueStyle),
238
259
  children: item.onClick ? /*#__PURE__*/jsx("a", {
239
260
  onClick: item.onClick,
240
261
  children: item.value
@@ -277,4 +298,4 @@ var LabelValueRender = function LabelValueRender(props) {
277
298
  };
278
299
 
279
300
  export { LabelValueRender as L };
280
- //# sourceMappingURL=label-value-C7kXxKh2.js.map
301
+ //# sourceMappingURL=label-value-BawoCisD.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"label-value-BawoCisD.js","sources":["@flatbiz/antd/src/label-value-render/utils.ts","@flatbiz/antd/src/label-value-render/label-value.tsx"],"sourcesContent":["import { arrayTotal } from '@flatbiz/utils';\nimport type { TLabelValueRenderItem } from './types.js';\n\nexport const getRenderGrid = (dataList: TLabelValueRenderItem[]) => {\n let results: TLabelValueRenderItem[][] = [];\n\n let currentSum = 0;\n let currentArr: TLabelValueRenderItem[] = [];\n for (let i = 0; i < dataList.length; i++) {\n const item = dataList[i];\n const grid = item.grid;\n const temp = {\n ...item,\n grid: grid,\n } as TLabelValueRenderItem;\n if (currentSum + grid <= 24 && grid > 0) {\n currentSum += grid;\n currentArr.push(temp);\n } else {\n results.push(currentArr);\n currentSum = grid;\n currentArr = [temp];\n }\n }\n\n if (currentArr.length > 0) {\n results.push(currentArr);\n }\n if (results.length > 0) {\n results = results.map((item, index) => {\n if (item.length === 1) {\n item[0].grid = 24;\n } else {\n const total = arrayTotal(item, 'grid');\n const lastItem = item[item.length - 1];\n if (total < 24) {\n lastItem.grid = 24 - total + lastItem.grid;\n }\n }\n if (index === results.length - 1) {\n return item.map((temp) => {\n temp.isLast = true;\n return temp;\n });\n }\n return item;\n });\n }\n\n let resultsFt: TLabelValueRenderItem[] = [];\n results.forEach((item) => {\n resultsFt = resultsFt.concat(item);\n });\n return resultsFt;\n};\n","import type { CSSProperties, ReactElement } from 'react';\nimport { isValidElement, useMemo, useState } from 'react';\nimport { classNames } from '@dimjs/utils';\nimport type { TAny } from '@flatbiz/utils';\nimport { isNumber, isUndefinedOrNull } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { BoxGrid } from '../box-grid/index.js';\nimport type { TBoxBreakpoint } from '../box-grid/type.js';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport { TextOverflow } from '../text-overflow/index.js';\nimport { TextSymbolWrapper } from '../text-symbol-wrapper/symbol.jsx';\nimport { TipsWrapper } from '../tips-wrapper/index.js';\nimport type { TLabelValueItem, TLabelValueRenderItem } from './types.js';\nimport { getRenderGrid } from './utils.js';\nimport './style.less';\n\nexport type LabelValueRenderProps = {\n className?: string;\n style?: CSSProperties;\n /**\n * 定义一行显示几列, 默认值:4\n * ```\n * 1. label+value 一组为一列\n * 2. 当外层宽度尺寸大于 992px(lg) 时,一行显示几列\n * 3. 当外层宽度尺寸小于992px(lg),为xs、sm、md情况下不受column值影响,响应式布局\n * 4. 宽度尺寸定义\n * xs: 宽度 < 576px\n * sm: 宽度 ≥ 576px\n * md: 宽度 ≥ 768px\n * lg: 宽度 ≥ 992px\n * xl: 宽度 ≥ 1200px\n * xxl: 宽度 ≥ 1600px\n * 5. 列数尺寸定义\n * {\n * 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n * 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n * 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n * 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n * 6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 4 },\n * };\n * ```\n */\n column?: 1 | 2 | 3 | 4 | 6;\n /**\n * 强制定义一行显示几列,不考虑响应式\n * ```\n * 1. 优先级大于column\n * 2. 建议优先使用column配置\n * ```\n */\n forceColumn?: 1 | 2 | 3 | 4 | 6;\n /** 数据源配置 */\n options: TLabelValueItem[];\n /**\n * 超过宽度将自动省略,默认值:true\n * ```\n * 1. 当 direction = vertical时,强制为true\n * ```\n */\n ellipsis?: boolean;\n /**\n * 是否添加边框\n * @deprecated 已过期,请使用 bordered\n */\n border?: boolean;\n /** 是否添加边框 */\n bordered?: boolean;\n /** label对齐方式 */\n labelAlign?: 'left' | 'right' | 'center';\n /** label 宽度,默认值:100 */\n labelWidth?: number | 'auto';\n width?: number;\n /** label 样式 */\n labelStyle?: CSSProperties;\n /** value 样式 */\n valueStyle?: CSSProperties;\n\n size?: 'default' | 'small';\n /**\n * label&value 方向布局\n * ```\n * 1. auto表示当响应式为xs(小屏幕)时为vertical,其他情况为horizontal\n * ```\n */\n direction?: 'vertical' | 'horizontal' | 'auto';\n /**\n * 网格布局间距,默认值:[10, 0]\n * ```\n * 1. border = true 无效\n * ```\n */\n gutter?: [number, number];\n\n /** 隐藏 value hover效果 */\n hiddenValueHover?: boolean;\n};\n\n/**\n * label+value 列表布局\n * ```\n * 1. 可设置超出隐藏、必填标识、设置隐藏、添加说明标签等功能\n * 2. 可自定义设置占用网格列数\n * 3. 内置响应式布局\n * ```\n */\nexport const LabelValueRender = (props: LabelValueRenderProps) => {\n const screenType = fbaHooks.useResponsivePoint() || '';\n const [breakpoint, setBreakpoint] = useState<TBoxBreakpoint>();\n\n const {\n column,\n forceColumn,\n labelAlign,\n labelWidth,\n options,\n border,\n bordered,\n width,\n size = 'default',\n direction = 'auto',\n gutter,\n hiddenValueHover,\n } = props;\n\n const columnNew = column && [1, 2, 3, 4, 6].includes(column) ? column : 4;\n\n const borderedNew = !isUndefinedOrNull(bordered) ? bordered : border;\n\n const directionNew = useMemo(() => {\n if (direction === 'horizontal' || direction === 'vertical')\n return direction;\n if (screenType === 'xs' || breakpoint === 'xs') return 'vertical';\n return 'horizontal';\n }, [breakpoint, direction, screenType]);\n\n const ellipsis = useMemo(() => {\n if (directionNew === 'vertical') return true;\n return isUndefinedOrNull(props.ellipsis) ? true : props.ellipsis;\n }, [directionNew, props.ellipsis]);\n\n const labelWidthNew = labelWidth\n ? isNumber(labelWidth)\n ? `${labelWidth}px`\n : labelWidth\n : '100px';\n\n const gridSize = useMemo(() => {\n if (forceColumn) {\n const num = 24 / forceColumn;\n return { xs: num, sm: num, md: num, lg: num, xl: num, xxl: num };\n }\n const columnMap = {\n 1: { xs: 24, sm: 24, md: 24, lg: 24, xl: 24, xxl: 24 },\n 2: { xs: 24, sm: 12, md: 12, lg: 12, xl: 12, xxl: 12 },\n 3: { xs: 24, sm: 12, md: 12, lg: 8, xl: 8, xxl: 8 },\n 4: { xs: 24, sm: 12, md: 12, lg: 6, xl: 6, xxl: 6 },\n 6: { xs: 24, sm: 12, md: 8, lg: 6, xl: 4, xxl: 4 },\n };\n return columnMap[columnNew];\n }, [columnNew, forceColumn]);\n\n const renderList = useMemo(() => {\n if (!breakpoint) return undefined;\n const dataListNew: TLabelValueRenderItem[] = [];\n options.forEach((item) => {\n if (!item.hidden) {\n let grid: number | undefined = undefined;\n if (item.span) {\n const itemSpan = item.span > columnNew ? columnNew : item.span;\n grid = itemSpan * (24 / columnNew);\n if (breakpoint === 'xs') {\n grid = 24;\n } else if (breakpoint === 'sm') {\n grid = grid > 12 ? grid : 12;\n }\n }\n dataListNew.push({\n ...item,\n grid: grid ? grid : gridSize[breakpoint],\n });\n }\n });\n return getRenderGrid(dataListNew.filter(Boolean));\n }, [breakpoint, columnNew, gridSize, options]);\n\n const showColon = !borderedNew && directionNew !== 'vertical';\n\n const getFormRowChildren = () => {\n return renderList\n ?.map((item, index) => {\n const ellipsisFt =\n directionNew === 'vertical'\n ? true\n : isUndefinedOrNull(item.ellipsis)\n ? ellipsis\n : item.ellipsis;\n\n let labelContent: ReactElement | string = item.label;\n // let labelContent: ReactElement | string = isValidElement(item.label)\n // ? item.label\n // : `${item.label}${colon}`;\n // if (colon) {\n // labelContent = isValidElement(item.label)\n // ? item.label\n // : `${item.label}${colon}`;\n // }\n\n if (item.tips && ellipsisFt) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n <TextOverflow\n text={labelContent as unknown as string}\n hideTip={item.hideTip}\n />\n </TipsWrapper>\n );\n } else if (item.tips) {\n labelContent = (\n <TipsWrapper tipType=\"tooltip\" tooltipProps={{ title: item.tips }}>\n {labelContent}\n </TipsWrapper>\n );\n } else if (ellipsisFt) {\n labelContent = (\n <TextOverflow\n text={labelContent as unknown as string}\n hideTip={item.hideTip}\n />\n );\n }\n\n const innerlabelStyle = showColon ? { display: 'flex', gap: 3 } : {};\n return (\n <BoxGrid.Col\n key={index}\n {...gridSize}\n span={item.grid}\n className={classNames('label-value-tr', {\n 'label-value-last-tr': item.isLast,\n })}\n >\n <div\n className=\"label-value-label\"\n style={{\n ...innerlabelStyle,\n ...props.labelStyle,\n ...item.labelStyle,\n }}\n >\n {item.required ? (\n <div\n style={{\n paddingLeft: 8,\n position: 'relative',\n width: '100%',\n }}\n >\n <TextSymbolWrapper\n text={labelContent}\n symbolType=\"required\"\n />\n </div>\n ) : (\n labelContent\n )}\n {showColon ? <div>:</div> : null}\n </div>\n {!isValidElement(item.value) &&\n ellipsisFt &&\n !item.valueNoWrapper ? (\n <div\n className=\"label-value-value\"\n style={{\n ...props.valueStyle,\n ...item.valueStyle,\n }}\n >\n <TextOverflow\n text={item.value as string}\n onClick={item.onClick}\n hideTip={item.hideTip}\n />\n </div>\n ) : (\n <div\n className=\"label-value-value\"\n style={{\n wordBreak: 'break-all',\n ...props.valueStyle,\n ...item.valueStyle,\n }}\n >\n {item.onClick ? (\n <a onClick={item.onClick}>{item.value}</a>\n ) : (\n item.value\n )}\n </div>\n )}\n </BoxGrid.Col>\n );\n })\n .filter(Boolean);\n };\n\n const onBoxBreakpointChange = hooks.useCallbackRef(\n (breakpoint: TBoxBreakpoint) => {\n setBreakpoint(breakpoint);\n }\n );\n\n const innerStyle = useMemo(() => {\n /** 小屏幕不控制宽度 */\n if (['xs', 'sm'].includes(screenType) || !width) {\n return {};\n }\n return { width };\n }, [screenType, width]);\n\n const align = (function () {\n if (labelAlign) return labelAlign;\n if (borderedNew) return 'left';\n if (directionNew === 'horizontal') return 'right';\n return 'left';\n })();\n\n return (\n <BoxGrid.Row\n style={\n {\n ...innerStyle,\n ...props.style,\n '--lvr-label-width':\n directionNew === 'horizontal' ? labelWidthNew : undefined,\n } as TAny\n }\n className={classNames(\n 'label-value-render',\n `lvr-${directionNew}`,\n `lvr-size-${size}`,\n `lvr-label-${align}`,\n { 'lvr-border': borderedNew },\n { 'lvr-hidden-hover': hiddenValueHover },\n props.className\n )}\n gutter={borderedNew ? [0, 0] : gutter || [10, 0]}\n onBoxBreakpointChange={onBoxBreakpointChange}\n >\n {getFormRowChildren()}\n </BoxGrid.Row>\n );\n};\n"],"names":["getRenderGrid","dataList","results","currentSum","currentArr","i","length","item","grid","temp","_objectSpread","push","map","index","total","arrayTotal","lastItem","isLast","resultsFt","forEach","concat","LabelValueRender","props","screenType","fbaHooks","useResponsivePoint","_useState","useState","_useState2","_slicedToArray","breakpoint","setBreakpoint","column","forceColumn","labelAlign","labelWidth","options","border","bordered","width","_props$size","size","_props$direction","direction","gutter","hiddenValueHover","columnNew","includes","borderedNew","isUndefinedOrNull","directionNew","useMemo","ellipsis","labelWidthNew","isNumber","gridSize","num","xs","sm","md","lg","xl","xxl","columnMap","renderList","undefined","dataListNew","hidden","span","itemSpan","filter","Boolean","showColon","getFormRowChildren","ellipsisFt","labelContent","label","tips","_jsx","TipsWrapper","tipType","tooltipProps","title","children","TextOverflow","text","hideTip","innerlabelStyle","display","gap","_jsxs","BoxGrid","Col","className","_classNames","style","labelStyle","required","paddingLeft","position","TextSymbolWrapper","symbolType","isValidElement","value","valueNoWrapper","valueStyle","onClick","wordBreak","onBoxBreakpointChange","_hooks","useCallbackRef","innerStyle","align","Row"],"mappings":"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"}
@@ -19,6 +19,8 @@ export type TLabelValueItem = {
19
19
  hideTip?: boolean;
20
20
  /** value 渲染不使用 TextOverflow 包裹 */
21
21
  valueNoWrapper?: boolean;
22
+ labelStyle?: CSSProperties;
23
+ valueStyle?: CSSProperties;
22
24
  };
23
25
  export type LabelValueRenderProps = {
24
26
  className?: string;
@@ -6,7 +6,7 @@ import './../tips-wrapper/index.css';
6
6
  import './index.css';
7
7
  /*! @flatjs/forge MIT @flatbiz/antd */
8
8
 
9
- export { L as LabelValueRender } from '../label-value-C7kXxKh2.js';
9
+ export { L as LabelValueRender } from '../label-value-BawoCisD.js';
10
10
  import '@wove/react/hooks';
11
11
  import '@dimjs/utils/class-names/class-names';
12
12
  import '../_rollupPluginBabelHelpers-BYm17lo8.js';
@@ -10,6 +10,7 @@ import { isArray } from '@dimjs/lang/is-array';
10
10
  import { get } from '@dimjs/utils/get/get';
11
11
  import { isObject } from '@dimjs/lang/is-object';
12
12
  import { useState, useRef, useMemo, createElement } from 'react';
13
+ import { usePrevious } from 'ahooks';
13
14
  import { TreeSelect, Button } from 'antd';
14
15
  import { dequal } from 'dequal';
15
16
  import { toArray, treeToTiledMap, isNotEmptyArray, treeToArray, isUndefinedOrNull } from '@flatbiz/utils';
@@ -83,11 +84,7 @@ var getExpandedKeysByValues = function getExpandedKeysByValues(values, treeSelec
83
84
  return Array.from(new Set(expandedKeys));
84
85
  };
85
86
 
86
- var _excluded = ["serviceConfig", "effectDependencyList", "onTreeSelectorListChange", "onTreeSelectorRequestError", "treeSelectorList", "requestMessageConfig", "modelKey", "value", "labelInValue", "labelInValueFieldNames", "onTreeItemDataAdapter", "selectedParentCheckedAllChildrenList", "fieldNames", "onChange", "treeDefaultExpandAll", "showAllOption", "initRootExpand", "treeDefaultExpandedKeys"];
87
- // type TreeSelectorWrapperPropsInner = TreeSelectorWrapperProps & {
88
- // onChange?: (selectedValue?: TreeSelectorWrapperValue) => void;
89
- // };
90
-
87
+ var _excluded = ["serviceConfig", "effectDependencyList", "onTreeSelectorListChange", "onTreeSelectorRequestError", "treeSelectorList", "requestMessageConfig", "modelKey", "value", "labelInValue", "labelInValueFieldNames", "onTreeItemDataAdapter", "selectedParentCheckedAllChildrenList", "fieldNames", "onChange", "treeDefaultExpandAll", "showAllOption", "initRootExpand", "treeDefaultExpandedKeys", "executeOnChangeInRenderFirstValue"];
91
88
  /**
92
89
  * 树选择器包装组件,由于过度封装,部分antd TreeSelect原始功能不支持,不满足情况的请使用antd TreeSelect实现
93
90
  * ```
@@ -115,6 +112,7 @@ var TreeSelectorWrapper = function TreeSelectorWrapper(props) {
115
112
  showAllOption = props.showAllOption,
116
113
  initRootExpand = props.initRootExpand,
117
114
  treeDefaultExpandedKeys = props.treeDefaultExpandedKeys,
115
+ executeOnChangeInRenderFirstValue = props.executeOnChangeInRenderFirstValue,
118
116
  otherProps = _objectWithoutProperties(props, _excluded);
119
117
  /**
120
118
  * 不能使用key、defaultValue模式
@@ -174,16 +172,35 @@ var TreeSelectorWrapper = function TreeSelectorWrapper(props) {
174
172
  _useState4 = _slicedToArray(_useState3, 2),
175
173
  searchValue = _useState4[0],
176
174
  setSearchValue = _useState4[1];
177
- var propsPureValue = useMemo(function () {
178
- return toArray(props.value).map(function (item) {
175
+ var propsPureValue = fbaHooks.useMemoCustom(function () {
176
+ return toArray(value).map(function (item) {
179
177
  if (isObject(item)) {
180
178
  return labelInValue ? item[labelInValueFieldNamesMerge.value] : item[fieldNamesMerge.value];
181
179
  }
182
180
  return item;
183
181
  });
184
182
  }, [fieldNamesMerge.value, labelInValue, labelInValueFieldNamesMerge.value, props.value]);
183
+ var prevPropsPureValue = usePrevious(propsPureValue);
185
184
  fbaHooks.useEffectCustom(function () {
186
185
  if (state.treeSelectorList.length > 0) {
186
+ if (responseFirstRef.current && executeOnChangeInRenderFirstValue && labelInValue) {
187
+ var dataList = [];
188
+ var originalList = [];
189
+ propsPureValue.forEach(function (item) {
190
+ var target = state.treeSelectorTiledMap[item];
191
+ if (target) {
192
+ originalList.push(target);
193
+ dataList.push(_defineProperty(_defineProperty({}, labelInValueFieldNamesMerge.label, target[fieldNamesMerge.label]), labelInValueFieldNamesMerge.value, target[fieldNamesMerge.value]));
194
+ }
195
+ });
196
+ if (isMultiple) {
197
+ var _props$onChange;
198
+ (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, dataList ? dataList : undefined, originalList);
199
+ } else {
200
+ var _props$onChange2;
201
+ (_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 || _props$onChange2.call(props, dataList ? dataList[0] : undefined, originalList[0]);
202
+ }
203
+ }
187
204
  var _treeExpandedKeys = [];
188
205
  if (responseFirstRef.current) {
189
206
  responseFirstRef.current = false;
@@ -199,14 +216,29 @@ var TreeSelectorWrapper = function TreeSelectorWrapper(props) {
199
216
  _treeExpandedKeys = [state.treeSelectorList[0][fieldNamesMerge.value]];
200
217
  }
201
218
  setTreeExpandedKeys(_treeExpandedKeys);
202
- } else {
219
+ }
220
+ // else {
221
+ // responseFirstRef.current = false;
222
+ // if (!searchValue) {
223
+ // const expandedKeys = getExpandedKeysByValues(
224
+ // propsPureValue,
225
+ // state.treeSelectorTiledMap
226
+ // );
227
+ // setTreeExpandedKeys(expandedKeys);
228
+ // }
229
+ // }
230
+ }
231
+ }, [propsPureValue, state.treeSelectorList]);
232
+ fbaHooks.useEffectCustom(function () {
233
+ if (!responseFirstRef.current && propsPureValue.length > 0) {
234
+ if (state.treeSelectorList.length > 0 && JSON.stringify(propsPureValue) !== JSON.stringify(prevPropsPureValue)) {
203
235
  if (!searchValue) {
204
236
  var expandedKeys = getExpandedKeysByValues(propsPureValue, state.treeSelectorTiledMap);
205
237
  setTreeExpandedKeys(expandedKeys);
206
238
  }
207
239
  }
208
240
  }
209
- }, [value, state.treeSelectorList]);
241
+ }, [propsPureValue, state.treeSelectorList]);
210
242
  var valueIsEmpty = function valueIsEmpty(value) {
211
243
  return value === '' || isUndefinedOrNull(value);
212
244
  };
@@ -459,4 +491,4 @@ var TreeSelectorWrapper = function TreeSelectorWrapper(props) {
459
491
  };
460
492
 
461
493
  export { TreeSelectorWrapper as T };
462
- //# sourceMappingURL=selector-DTu7bz-a.js.map
494
+ //# sourceMappingURL=selector-DCHIIlhe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-DCHIIlhe.js","sources":["@flatbiz/antd/src/tree-selector-wrapper/model.ts","@flatbiz/antd/src/tree-selector-wrapper/utils.ts","@flatbiz/antd/src/tree-selector-wrapper/selector.tsx"],"sourcesContent":["import type { TreeSelectProps } from 'antd';\nimport type { API, ModelType } from '@dimjs/model';\nimport { Model } from '@dimjs/model-react';\nimport type { TAny, TPlainObject, TSetDefaultDefined } from '@flatbiz/utils';\nimport type { TRequestStatus } from '../request-status/index.js';\n\nexport type ModelState = {\n treeSelectorList: TSetDefaultDefined<TreeSelectProps['treeData'], []>;\n treeSelectorTiledMap: TPlainObject;\n queryIsEmpty: boolean;\n requestStatus?: TRequestStatus;\n};\n\ntype ModelActionParams = {\n setSelectBoxList: {\n treeSelectorList: ModelState['treeSelectorList'];\n treeSelectorTiledMap: TPlainObject;\n };\n resetSelectBoxList: void;\n changeRequestStatus: TRequestStatus;\n};\n\nconst defaultState: ModelState = {\n treeSelectorList: [],\n treeSelectorTiledMap: {},\n queryIsEmpty: false,\n};\n\nconst TreeSelectorWrapperModel: ModelType<ModelState, ModelActionParams> = {\n actions: {\n setSelectBoxList: (params) => {\n return (state) => {\n state.treeSelectorList = params.treeSelectorList || [];\n state.treeSelectorTiledMap = params.treeSelectorTiledMap || {};\n state.requestStatus = 'request-success';\n };\n },\n resetSelectBoxList: () => {\n return (state) => {\n state.treeSelectorList = [];\n state.treeSelectorTiledMap = {};\n };\n },\n changeRequestStatus: (params) => {\n return (state) => {\n state.requestStatus = params;\n };\n },\n },\n state: defaultState,\n};\n\nconst treeSelectorWrapperModels: Record<\n string,\n API<ModelType<ModelState, ModelActionParams, TAny>>\n> = {};\n\n/**\n * ```\n * 使用方式\n * const [state, actions] = useTreeSelectorWrapperModel('key值').useStore();\n * ```\n */\nexport const treeSelectorWrapperModel = (key: string) => {\n if (!treeSelectorWrapperModels[key]) {\n treeSelectorWrapperModels[key] = Model(TreeSelectorWrapperModel);\n }\n return treeSelectorWrapperModels[key];\n};\n","export const getExpandedKeysByValue = (value: string | number, treeSelectorTiledMap) => {\n const tempList: Array<string | number> = [];\n let parentNode = treeSelectorTiledMap[value];\n while (parentNode) {\n const pId = parentNode.pId;\n parentNode = treeSelectorTiledMap[pId];\n if (parentNode) {\n tempList.push(pId);\n }\n }\n return tempList;\n};\n\nexport const getExpandedKeysByValues = (values: Array<string | number>, treeSelectorTiledMap) => {\n if (values.length === 0) return [];\n const expandedKeys: Array<string | number> = [];\n values.forEach((value) => {\n const targetList = getExpandedKeysByValue(value, treeSelectorTiledMap);\n expandedKeys.push(...targetList);\n });\n return Array.from(new Set(expandedKeys));\n};\n","import { type DependencyList, useMemo, useRef, useState } from 'react';\nimport { usePrevious } from 'ahooks';\nimport { Button, TreeSelect, type TreeSelectProps } from 'antd';\nimport { dequal } from 'dequal';\nimport { CaretDownFilled, RedoOutlined } from '@ant-design/icons';\nimport { isArray, isObject } from '@dimjs/lang';\nimport { classNames, extend, get } from '@dimjs/utils';\nimport {\n isNotEmptyArray,\n isUndefinedOrNull,\n type TAny,\n toArray,\n type TPlainObject,\n treeToArray,\n treeToTiledMap,\n} from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { fbaHooks } from '../fba-hooks/index.js';\nimport {\n RequestStatus,\n type TRequestStatusProps,\n} from '../request-status/index.js';\nimport { treeSelectorWrapperModel } from './model.js';\nimport { getExpandedKeysByValues } from './utils.js';\nimport './style.less';\n\ntype TreeSelectorWrapperValue =\n | string\n | number\n | Array<string | number>\n | TPlainObject<string | number>\n | Array<TPlainObject<string | number>>;\n\ntype TreeSelectorServiceConfig = {\n params?: TPlainObject;\n requiredParamsKeys?: string[];\n onRequest?: (params?: TAny) => TAny;\n /**\n * 响应数据适配器\n */\n onRequestResultAdapter?: (respData: TAny) => TPlainObject[];\n};\n\nexport type TreeSelectorWrapperProps = Omit<\n TreeSelectProps,\n | 'treeExpandedKeys'\n | 'treeData'\n | 'loading'\n | 'onTreeExpand'\n | 'onChange'\n | 'value'\n | 'fieldNames'\n | 'defaultValue'\n | 'treeDataSimpleMode'\n | 'onSearch'\n> & {\n modelKey: string;\n fieldNames?: {\n /**\n * 1. list 为 onRequest 返回数据中列表key值,可多级取值,例如: 'a.b.c'\n * 2. 配置 serviceConfig.onRequestResultAdapter 后此配置失效\n */\n list?: string;\n label?: string;\n value?: string;\n children?: string;\n disabled?: string;\n };\n /**\n * useEffect依赖项数组,用于重新发起获取接口数据\n */\n effectDependencyList?: DependencyList;\n /**\n * 请求服务需求的数据,当设置`treeSelectorList`后无效果\n */\n serviceConfig?: TreeSelectorServiceConfig;\n /**\n * 当设置treeSelectorList后,serviceConfig 将失效\n */\n treeSelectorList?: TreeSelectProps['treeData'];\n /**\n * treeSelectorList发生变更时触发\n */\n onTreeSelectorListChange?: (\n treeSelectorList?: TreeSelectProps['treeData']\n ) => void;\n /**\n * 通过服务获取数据异常回调,当设置`treeSelectorList`后无效果\n */\n onTreeSelectorRequestError?: (error: Error) => void;\n /**\n * 添加全部选项\n * ```\n * 1. showAllOption = true,添加默认全部选项(value值为空字符串)\n * 2. 可自定义全部选项,例如:{ label: '全部', value: 'all' }\n * 3. 自定义字段会通过fieldNames转换后使用\n * 4. 多选操作时,最好不要设置全部选项\n * ```\n */\n showAllOption?: true | TPlainObject<string | number>;\n /**\n * 1. 当 treeCheckable = true && treeCheckStrictly = true,如果选择的数据中含有父节点,selectedValue、selectedList返回数据包含父节点\n * 2. 当 treeCheckable = true && treeCheckStrictly = false,selectedValue、selectedList返回的数据不包含父节点\n * 3. 当 treeCheckable = false,节点选择没有级联关系,selectedValue、selectedList返回的数据就是实际选择\n * 4. selectAllDataList 返回的数据都包含父节点\n * 5. 使用 onTreeItemAdapter 拼接label数据后,选中回填数据也是拼接后的\n * 6. triggerInfo 当前操作节点数据\n */\n onChange?: (\n selectedValue?: TreeSelectorWrapperValue,\n selectedData?: TPlainObject[] | TPlainObject,\n triggerInfo?: TPlainObject\n ) => void;\n /**\n * tree item 数据适配器,返回的数据会通过fieldNames配置取数据\n * ```\n * 1. 可用于设置disabled状态\n * onTreeItemDataAdapter: (dataItem) => {\n * if(dataItem.xx === xx){\n * dataItem['disabled] = true;\n * }\n * return dataItem;\n * }\n * 2. 可设置label数据显示\n * ```\n */\n onTreeItemDataAdapter?: (dataItem: TPlainObject) => TPlainObject;\n // icon 无法实现、treeIcon不起作用4.20.0\n // showIcon?: boolean;\n // icon?: (data: TPlainObject) => ReactElement;\n /** 自定义异常提示文案 */\n requestMessageConfig?: TRequestStatusProps['messageConfig'];\n /**\n * value格式\n *```\n * 1. string 、number\n * 2. Array<string | number>\n * 3. lableInValue = true,根据labelInValueFieldNames配置格式\n * 4. lableInValue = true,Array<labelInValueFieldNames配置>\n * ```\n */\n value?: TreeSelectorWrapperValue;\n\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n labelInValue?: boolean;\n /**\n * @deprecated 已弃用\n * ```\n * lableInValue = true,onChange输出数据字段名称,默认:{ label: string; value: string|number }\n * ```\n */\n labelInValueFieldNames?: { label: string; value: string };\n /**\n * treeCheckStrictly = true模式下有效,点击父节点是否选中所有子节点,默认值:true\n */\n selectedParentCheckedAllChildrenList?: boolean;\n /** 有唯一跟节点时,初始化是否展开,默认值:false */\n initRootExpand?: boolean;\n\n /**\n * 在第一次渲染value时,主动执行一次onChange\n * ```\n * 1. 设置labelInValue = true 时有效\n * 2. 不考虑子父节点的关系\n * ```\n */\n executeOnChangeInRenderFirstValue?: boolean;\n};\n\n/**\n * 树选择器包装组件,由于过度封装,部分antd TreeSelect原始功能不支持,不满足情况的请使用antd TreeSelect实现\n * ```\n * 1. 当设置treeSelectorList属性后,serviceConfig、onTreeSelectorListChange将失效\n * 2. 父节点默认不返回,需要返回请设置showCheckedStrategy\n * ```\n */\nexport const TreeSelectorWrapper = (props: TreeSelectorWrapperProps) => {\n const {\n serviceConfig,\n effectDependencyList,\n onTreeSelectorListChange,\n onTreeSelectorRequestError,\n treeSelectorList,\n requestMessageConfig,\n modelKey,\n value,\n labelInValue: _labelInValue,\n labelInValueFieldNames,\n onTreeItemDataAdapter,\n selectedParentCheckedAllChildrenList = true,\n fieldNames,\n onChange,\n treeDefaultExpandAll,\n showAllOption,\n initRootExpand,\n treeDefaultExpandedKeys,\n executeOnChangeInRenderFirstValue,\n ...otherProps\n } = props;\n /**\n * 不能使用key、defaultValue模式\n * 1. 勾选的和回填选中不相同情况,勾选后会渲染defaultValue模式后,弹框被关闭,操作体验存在问题\n */\n const hasTreeSelectorList = Object.prototype.hasOwnProperty.call(\n props,\n 'treeSelectorList'\n );\n const newServiceConfig = serviceConfig || {};\n const newEffectDependencyList = effectDependencyList || [];\n const [loading, setLoading] = fbaHooks.useSafeState(false);\n const [treeExpandedKeys, setTreeExpandedKeys] = useState<React.Key[]>();\n const [state, actions] = treeSelectorWrapperModel(modelKey).useStore();\n const requestPreKey = `request-progress-${modelKey}`;\n const isMultiple = otherProps.treeCheckable || otherProps.multiple;\n const responseFirstRef = useRef(true);\n /**\n * treeCheckStrictly \tcheckable 状态下节点选择完全受控(父子节点选中状态不再关联),\n * 会使得 labelInValue 强制为 true\n */\n const labelInValue = useMemo(() => {\n if (otherProps.treeCheckStrictly) return true;\n return _labelInValue;\n }, [_labelInValue, otherProps.treeCheckStrictly]);\n\n const fieldNamesMerge = useMemo(() => {\n return {\n label: 'label',\n value: 'value',\n children: 'children',\n disabled: 'disabled',\n ...fieldNames,\n };\n }, [fieldNames]);\n\n const labelInValueFieldNamesMerge = useMemo(() => {\n return { label: 'label', value: 'value', ...labelInValueFieldNames };\n }, [labelInValueFieldNames]);\n\n const allOptionConfig = useMemo(() => {\n if (showAllOption) {\n const isTrue = showAllOption === true;\n return {\n label: isTrue ? '全部' : showAllOption.label,\n value: isTrue ? '' : showAllOption.value,\n };\n }\n return null;\n }, [showAllOption]);\n\n const [searchValue, setSearchValue] = useState<string>();\n\n const propsPureValue = fbaHooks.useMemoCustom(() => {\n return toArray<TAny>(value).map((item) => {\n if (isObject(item)) {\n return (\n labelInValue\n ? item[labelInValueFieldNamesMerge.value]\n : item[fieldNamesMerge.value]\n ) as string | number;\n }\n return item as string | number;\n });\n }, [\n fieldNamesMerge.value,\n labelInValue,\n labelInValueFieldNamesMerge.value,\n props.value,\n ]);\n\n const prevPropsPureValue = usePrevious(propsPureValue);\n\n fbaHooks.useEffectCustom(() => {\n if (state.treeSelectorList.length > 0) {\n if (\n responseFirstRef.current &&\n executeOnChangeInRenderFirstValue &&\n labelInValue\n ) {\n const dataList: TPlainObject[] = [];\n const originalList: TPlainObject[] = [];\n propsPureValue.forEach((item) => {\n const target = state.treeSelectorTiledMap[item];\n if (target) {\n originalList.push(target);\n dataList.push({\n [labelInValueFieldNamesMerge.label]:\n target[fieldNamesMerge.label],\n [labelInValueFieldNamesMerge.value]:\n target[fieldNamesMerge.value],\n });\n }\n });\n if (isMultiple) {\n props.onChange?.(dataList ? dataList : undefined, originalList);\n } else {\n props.onChange?.(dataList ? dataList[0] : undefined, originalList[0]);\n }\n }\n let treeExpandedKeys: Array<string | number> = [];\n if (responseFirstRef.current) {\n responseFirstRef.current = false;\n if (treeDefaultExpandedKeys) {\n treeExpandedKeys = treeDefaultExpandedKeys as Array<string | number>;\n } else if (treeDefaultExpandAll) {\n const allValues = Object.keys(state.treeSelectorTiledMap).map(\n (item) =>\n state.treeSelectorTiledMap[item]?.[fieldNamesMerge.value] as\n | string\n | number\n );\n treeExpandedKeys = allValues;\n } else if (initRootExpand && state.treeSelectorList.length === 1) {\n treeExpandedKeys = [state.treeSelectorList[0][fieldNamesMerge.value]];\n }\n setTreeExpandedKeys(treeExpandedKeys);\n }\n // else {\n // responseFirstRef.current = false;\n // if (!searchValue) {\n // const expandedKeys = getExpandedKeysByValues(\n // propsPureValue,\n // state.treeSelectorTiledMap\n // );\n // setTreeExpandedKeys(expandedKeys);\n // }\n // }\n }\n }, [propsPureValue, state.treeSelectorList]);\n\n fbaHooks.useEffectCustom(() => {\n if (!responseFirstRef.current && propsPureValue.length > 0) {\n if (\n state.treeSelectorList.length > 0 &&\n JSON.stringify(propsPureValue) !== JSON.stringify(prevPropsPureValue)\n ) {\n if (!searchValue) {\n const expandedKeys = getExpandedKeysByValues(\n propsPureValue,\n state.treeSelectorTiledMap\n );\n setTreeExpandedKeys(expandedKeys);\n }\n }\n }\n }, [propsPureValue, state.treeSelectorList]);\n\n const valueIsEmpty = (value: string | number) => {\n return value === '' || isUndefinedOrNull(value);\n };\n\n const serviceResponseHandle = (respData) => {\n let result = respData;\n if (newServiceConfig.onRequestResultAdapter) {\n result = newServiceConfig.onRequestResultAdapter(\n respData as unknown as TPlainObject\n );\n } else if (fieldNamesMerge.list) {\n result = get(respData, fieldNamesMerge.list);\n }\n if (result && !isArray(result)) {\n console.warn('待渲染数据为非数组结构', result);\n return [];\n }\n return result || [];\n };\n\n const startDataSourceRequest = hooks.useCallbackRef(async () => {\n if (!newServiceConfig.onRequest) {\n throw new Error('onRequest 调用接口服务不能为空');\n }\n const requiredParamsKeys = newServiceConfig.requiredParamsKeys || [];\n const params = extend({}, newServiceConfig.params);\n const isEmpty = requiredParamsKeys.find((key) => {\n return valueIsEmpty(params[key] as string | number);\n });\n if (isEmpty) {\n void actions.changeRequestStatus('no-dependencies-params');\n console.warn(\n `TreeSelectorWrapper组件:参数:${requiredParamsKeys.join('、')}不能为空`\n );\n return;\n }\n try {\n setLoading(true);\n window[requestPreKey] = true;\n void actions.changeRequestStatus('request-progress');\n const _respData = await newServiceConfig.onRequest?.(params);\n const respData = serviceResponseHandle(\n _respData\n ) as TreeSelectProps['treeData'];\n setLoading(false);\n window[requestPreKey] = false;\n onChangeSelectorList(respData || []);\n } catch (error: TAny) {\n setLoading(false);\n window[requestPreKey] = false;\n void actions.changeRequestStatus('request-error');\n onTreeSelectorRequestError?.(error);\n }\n });\n\n hooks.useCustomCompareEffect(\n () => {\n if (hasTreeSelectorList) return;\n // 当无依赖项时,如果存在缓存数据,就不在调用接口\n if (newEffectDependencyList.length) {\n // 内部主动清楚数据,被依赖的数据发生变更时,依赖组件数据清空\n onChangeSelectorList([]);\n void startDataSourceRequest();\n return;\n }\n const allState = treeSelectorWrapperModel(modelKey).getState();\n if (allState.requestStatus === 'request-success') {\n return;\n }\n // 判断相同的modelKey是否已经在请求数据中,避免重复请求\n if (!window[requestPreKey]) {\n void startDataSourceRequest();\n return;\n }\n },\n newEffectDependencyList,\n dequal\n );\n\n const onChangeSelectorList = hooks.useCallbackRef((dataList: TAny[]) => {\n if (dataList?.length === 0 && state.treeSelectorList.length === 0) {\n void actions.setSelectBoxList({\n treeSelectorList: [],\n treeSelectorTiledMap: {},\n });\n onTreeSelectorListChange?.([]);\n return;\n }\n // 全部选项\n const tempItem = allOptionConfig\n ? {\n [fieldNamesMerge.label]: allOptionConfig.label,\n [fieldNamesMerge.value]: allOptionConfig.value,\n }\n : undefined;\n const newdataList = showAllOption ? [tempItem, ...dataList] : dataList;\n void actions.setSelectBoxList({\n treeSelectorList: newdataList,\n treeSelectorTiledMap: treeToTiledMap(\n newdataList,\n {\n value: fieldNamesMerge.value,\n children: fieldNamesMerge.children,\n },\n 'pId'\n ),\n });\n onTreeSelectorListChange?.(dataList);\n });\n\n fbaHooks.useEffectCustom(() => {\n if (hasTreeSelectorList) {\n onChangeSelectorList(treeSelectorList || []);\n }\n }, [treeSelectorList]);\n\n const onTreeExpand = hooks.useCallbackRef((expandedKeys) => {\n setTreeExpandedKeys(expandedKeys as string[]);\n });\n\n const onAgainRequest = hooks.useCallbackRef(() => {\n void startDataSourceRequest();\n });\n\n /**\n * 根据treeCheckable、treeCheckStrictly、showCheckedStrategy等设置情况,判断返回数据是否包含父节点\n * 1. 当 treeCheckable = true,changeValue 数据格式为 { label,value }[]\n */\n const onInnerChange = hooks.useCallbackRef(\n (changeValue: TAny, _data, triggerInfo: TPlainObject) => {\n let resultValueList = toArray<TAny>(changeValue);\n if (otherProps.treeCheckStrictly) {\n if (selectedParentCheckedAllChildrenList && triggerInfo.checked) {\n const target = state.treeSelectorTiledMap[triggerInfo?.triggerValue];\n if (isNotEmptyArray(target[fieldNamesMerge.children])) {\n resultValueList = treeToArray(\n [target],\n fieldNamesMerge.children\n ).map((item) => {\n return item[fieldNamesMerge.value];\n });\n } else {\n resultValueList = changeValue?.map((item) => item.value);\n }\n } else {\n resultValueList = changeValue?.map((item) => item.value);\n }\n }\n if (labelInValue) {\n const resultItemList = resultValueList.map((item) => {\n const target = state.treeSelectorTiledMap[item];\n return {\n [labelInValueFieldNamesMerge.label]: target[fieldNamesMerge.label],\n [labelInValueFieldNamesMerge.value]: target[fieldNamesMerge.value],\n };\n });\n if (isMultiple) {\n onChange?.(resultItemList, resultItemList, triggerInfo);\n } else {\n onChange?.(resultItemList[0], resultItemList[0], triggerInfo);\n }\n } else {\n const resultItemList = resultValueList.map((item) => {\n return state.treeSelectorTiledMap[item];\n });\n if (isMultiple) {\n onChange?.(resultValueList, resultItemList, triggerInfo);\n } else {\n onChange?.(resultValueList[0], resultItemList[0], triggerInfo);\n }\n }\n }\n );\n\n const mapTree = hooks.useCallbackRef((data) => {\n if (!data) return null;\n return data.map((item) => {\n const itemAdapterData = onTreeItemDataAdapter?.({ ...item }) || item;\n const children = itemAdapterData[fieldNamesMerge.children];\n const value = itemAdapterData[fieldNamesMerge.value];\n const label = itemAdapterData[fieldNamesMerge.label];\n const disabled = itemAdapterData[fieldNamesMerge.disabled]\n ? itemAdapterData[fieldNamesMerge.disabled]\n : itemAdapterData.disabled;\n return (\n <TreeSelect.TreeNode\n {...itemAdapterData}\n disabled={disabled}\n value={value}\n title={label}\n key={`${value}`}\n >\n {children && children.length > 0 && mapTree(children)}\n </TreeSelect.TreeNode>\n );\n });\n });\n\n const onSearch = (searchValue?: string) => {\n setSearchValue(searchValue);\n let targetKeyList: Array<string | number> = [];\n if (!searchValue) {\n setSearchValue(undefined);\n targetKeyList = propsPureValue;\n } else {\n Object.keys(state.treeSelectorTiledMap).forEach((item) => {\n const target = state.treeSelectorTiledMap[item];\n const label = target?.[fieldNamesMerge.label] as string;\n if (label?.includes(searchValue)) {\n targetKeyList.push(target[fieldNamesMerge.value]);\n }\n });\n }\n\n const expandedKeysMerge = getExpandedKeysByValues(\n targetKeyList,\n state.treeSelectorTiledMap\n );\n setTreeExpandedKeys(expandedKeysMerge);\n };\n\n const treeValue = isMultiple ? propsPureValue : propsPureValue[0];\n\n /**\n * 1. 使用 TreeNode 渲染节点,不能重写 fieldNames 配置\n * 2. 使用 TreeNode 是为了实现 TreeNode ICON\n */\n return (\n <TreeSelect\n searchValue={searchValue}\n dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}\n showSearch={true}\n treeLine={{ showLeafIcon: false }}\n treeNodeFilterProp=\"title\"\n switcherIcon={<CaretDownFilled />}\n popupMatchSelectWidth={false}\n {...otherProps}\n className={classNames('v-tree-select-wrapper', otherProps.className)}\n popupClassName={classNames(\n 'v-tree-select-wrapper-dropdown',\n otherProps.popupClassName\n )}\n onChange={onInnerChange}\n treeExpandedKeys={treeExpandedKeys}\n value={treeValue}\n onSearch={onSearch}\n loading={loading}\n onTreeExpand={onTreeExpand}\n style={{ width: '100%', ...otherProps.style }}\n suffixIcon={\n state.requestStatus === 'request-error' ? (\n <RedoOutlined spin={loading} onClick={onAgainRequest} />\n ) : undefined\n }\n notFoundContent={\n <RequestStatus\n status={state.requestStatus}\n messageConfig={requestMessageConfig}\n loading={loading}\n errorButton={\n <Button type=\"primary\" onClick={onAgainRequest}>\n 重新获取数据\n </Button>\n }\n />\n }\n >\n {mapTree(state.treeSelectorList)}\n </TreeSelect>\n );\n};\n"],"names":["defaultState","treeSelectorList","treeSelectorTiledMap","queryIsEmpty","TreeSelectorWrapperModel","actions","setSelectBoxList","params","state","requestStatus","resetSelectBoxList","changeRequestStatus","treeSelectorWrapperModels","treeSelectorWrapperModel","key","Model","getExpandedKeysByValue","value","tempList","parentNode","pId","push","getExpandedKeysByValues","values","length","expandedKeys","forEach","targetList","apply","_toConsumableArray","Array","from","Set","TreeSelectorWrapper","props","serviceConfig","effectDependencyList","onTreeSelectorListChange","onTreeSelectorRequestError","requestMessageConfig","modelKey","_labelInValue","labelInValue","labelInValueFieldNames","onTreeItemDataAdapter","_props$selectedParent","selectedParentCheckedAllChildrenList","fieldNames","onChange","treeDefaultExpandAll","showAllOption","initRootExpand","treeDefaultExpandedKeys","executeOnChangeInRenderFirstValue","otherProps","_objectWithoutProperties","_excluded","hasTreeSelectorList","Object","prototype","hasOwnProperty","call","newServiceConfig","newEffectDependencyList","_fbaHooks$useSafeStat","fbaHooks","useSafeState","_fbaHooks$useSafeStat2","_slicedToArray","loading","setLoading","_useState","useState","_useState2","treeExpandedKeys","setTreeExpandedKeys","_treeSelectorWrapperM","useStore","_treeSelectorWrapperM2","requestPreKey","concat","isMultiple","treeCheckable","multiple","responseFirstRef","useRef","useMemo","treeCheckStrictly","fieldNamesMerge","_objectSpread","label","children","disabled","labelInValueFieldNamesMerge","allOptionConfig","isTrue","_useState3","_useState4","searchValue","setSearchValue","propsPureValue","useMemoCustom","toArray","map","item","_isObject","prevPropsPureValue","usePrevious","useEffectCustom","current","dataList","originalList","target","_defineProperty","_props$onChange","undefined","_props$onChange2","allValues","keys","_state$treeSelectorTi","JSON","stringify","valueIsEmpty","isUndefinedOrNull","serviceResponseHandle","respData","result","onRequestResultAdapter","list","_get","_isArray","console","warn","startDataSourceRequest","_hooks","useCallbackRef","Promise","$return","$error","requiredParamsKeys","isEmpty","_newServiceConfig$onR","_respData","onRequest","Error","_extend","find","join","$Try_1_Post","$boundEx","$Try_1_Catch","error","window","resolve","then","$await_2","onChangeSelectorList","useCustomCompareEffect","allState","getState","dequal","tempItem","newdataList","treeToTiledMap","onTreeExpand","onAgainRequest","onInnerChange","changeValue","_data","triggerInfo","resultValueList","checked","triggerValue","isNotEmptyArray","treeToArray","resultItemList","mapTree","data","itemAdapterData","_createElement","TreeSelect","TreeNode","title","onSearch","targetKeyList","includes","expandedKeysMerge","treeValue","_jsx","dropdownStyle","maxHeight","overflow","showSearch","treeLine","showLeafIcon","treeNodeFilterProp","switcherIcon","_CaretDownFilled","popupMatchSelectWidth","className","_classNames","popupClassName","style","width","suffixIcon","_RedoOutlined","spin","onClick","notFoundContent","RequestStatus","status","messageConfig","errorButton","Button","type"],"mappings":"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"}
@@ -4,12 +4,12 @@ import { _ as _objectWithoutProperties, a as _slicedToArray, b as _objectSpread2
4
4
  import { hooks } from '@wove/react/hooks';
5
5
  import { isObject } from '@dimjs/lang/is-object';
6
6
  import { useRef, useState, useEffect } from 'react';
7
- import { Select } from 'antd';
7
+ import { Select, message } from 'antd';
8
8
  import { isUndefinedOrNull, toArray } from '@flatbiz/utils';
9
9
  import { TreeModal } from './tree-modal/index.js';
10
10
  import { jsx } from 'react/jsx-runtime';
11
11
 
12
- var _excluded = ["placeholder", "maxTagCount", "labelInValue"];
12
+ var _excluded = ["placeholder", "maxTagCount", "labelInValue", "maxCount", "overMaxCountMsg"];
13
13
  /**
14
14
  * 树弹框选择器
15
15
  * ```
@@ -22,6 +22,8 @@ var TreeModalSelector = function TreeModalSelector(props) {
22
22
  var placeholder = props.placeholder,
23
23
  maxTagCount = props.maxTagCount,
24
24
  labelInValue = props.labelInValue,
25
+ maxCount = props.maxCount,
26
+ overMaxCountMsg = props.overMaxCountMsg,
25
27
  otherProps = _objectWithoutProperties(props, _excluded);
26
28
  var placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;
27
29
  var dataSourceMapRef = useRef({});
@@ -53,6 +55,10 @@ var TreeModalSelector = function TreeModalSelector(props) {
53
55
  (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, valueFt === null || valueFt === void 0 ? void 0 : valueFt[0]);
54
56
  } else {
55
57
  var _props$onChange2;
58
+ if (valueFt && maxCount !== undefined && valueFt.length > maxCount) {
59
+ message.error(overMaxCountMsg ? overMaxCountMsg : "\u6700\u591A\u9009\u62E9".concat(maxCount, "\u9879"));
60
+ return;
61
+ }
56
62
  (_props$onChange2 = props.onChange) === null || _props$onChange2 === void 0 || _props$onChange2.call(props, valueFt);
57
63
  }
58
64
  };
@@ -107,4 +113,4 @@ var TreeModalSelector = function TreeModalSelector(props) {
107
113
  };
108
114
 
109
115
  export { TreeModalSelector as T };
110
- //# sourceMappingURL=selector-dbYimxeI.js.map
116
+ //# sourceMappingURL=selector-DZ66pfO5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector-DZ66pfO5.js","sources":["@flatbiz/antd/src/tree-modal-selector/selector.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { message, Select } from 'antd';\nimport { isObject } from '@dimjs/lang';\nimport { isUndefinedOrNull, toArray, type TPlainObject } from '@flatbiz/utils';\nimport { hooks } from '@wove/react';\nimport { TreeModal } from '../tree-modal/index.js';\nimport type {\n TreeModalProps,\n TreeModelSelectItem,\n} from '../tree-modal/types.js';\nexport type TreeModalSelectorProps = Omit<\n TreeModalProps,\n 'children' | 'forceRender' | 'onChange'\n> & {\n placeholder?: string;\n /**\n * 1. 可指定数量\n * 2. 可设置 responsive,一行自适应显示\n */\n maxTagCount?: number | 'responsive';\n /** 是否返回label+value模式 */\n labelInValue?: boolean;\n onChange?: (values?: TreeModelSelectItem[] | TreeModelSelectItem) => void;\n\n /** 最大选择数量 */\n maxCount?: number;\n /** 超过最大选择数量提示文本 */\n overMaxCountMsg?: string;\n};\n\n/**\n * 树弹框选择器\n * ```\n * 1. 可通过 treeProps.checkableType 配置多选节点模式(包括返回所有节点、只返回叶子节点、叶子节点&父节点全选只返回父节点),默认只返回叶子节点\n * 2. demo: https://fex.qa.tcshuke.com/docs/admin/main/selector/tree\n * ```\n */\nexport const TreeModalSelector = (props: TreeModalSelectorProps) => {\n const {\n placeholder,\n maxTagCount,\n labelInValue,\n maxCount,\n overMaxCountMsg,\n ...otherProps\n } = props;\n const placeholderFt = isUndefinedOrNull(placeholder) ? '请选择' : placeholder;\n\n const dataSourceMapRef = useRef<TPlainObject>({});\n\n const labelKey = otherProps.fieldNames?.label || 'label';\n const valueKey = otherProps.fieldNames?.value || 'value';\n\n const [showValues, setShowValues] = useState<TreeModelSelectItem[]>();\n\n useEffect(() => {\n const dataList =\n toArray(props.value)?.map((item) => {\n const objItems = (\n isObject(item) ? item : { label: item, value: item }\n ) as TreeModelSelectItem;\n return {\n value: objItems.value,\n label:\n dataSourceMapRef.current[objItems.value]?.[labelKey] ||\n objItems.value,\n } as TreeModelSelectItem;\n }) || [];\n setShowValues(dataList);\n }, [labelKey, props.value]);\n\n const onInnerChange = (value: TreeModelSelectItem[]) => {\n const valueFt = toArray(value).length ? value : undefined;\n if (otherProps.isMultiple == false) {\n props.onChange?.(valueFt?.[0]);\n } else {\n if (valueFt && maxCount !== undefined && valueFt.length > maxCount) {\n message.error(\n overMaxCountMsg ? overMaxCountMsg : `最多选择${maxCount}项`\n );\n return;\n }\n\n props.onChange?.(valueFt);\n }\n };\n\n const onSelectChange = (value) => {\n setShowValues(value);\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n\n onInnerChange(value?.map((item) => item.value));\n };\n const treeModalChange = (value) => {\n setShowValues(value);\n if (labelInValue) {\n onInnerChange(value);\n return;\n }\n onInnerChange(value?.map((item) => item.value));\n };\n\n const onDataSourceChange = hooks.useCallbackRef(\n (_treeDataList: TPlainObject[], mapData: TPlainObject) => {\n dataSourceMapRef.current = mapData;\n const result = showValues\n ?.map((item) => {\n const target = mapData[item.value];\n return target\n ? { label: target[labelKey], value: target[valueKey] }\n : undefined;\n })\n .filter(Boolean) as TreeModelSelectItem[];\n setShowValues(result);\n }\n );\n\n return (\n <TreeModal\n {...otherProps}\n forceRender={true}\n onChange={treeModalChange}\n onDataSourceChange={onDataSourceChange}\n >\n <Select\n labelInValue\n style={{ width: '100%' }}\n placeholder={placeholderFt}\n maxTagCount={maxTagCount}\n mode=\"multiple\"\n open={false}\n value={showValues}\n onChange={onSelectChange}\n />\n </TreeModal>\n );\n};\n"],"names":["TreeModalSelector","props","_otherProps$fieldName","_otherProps$fieldName2","placeholder","maxTagCount","labelInValue","maxCount","overMaxCountMsg","otherProps","_objectWithoutProperties","_excluded","placeholderFt","isUndefinedOrNull","dataSourceMapRef","useRef","labelKey","fieldNames","label","valueKey","value","_useState","useState","_useState2","_slicedToArray","showValues","setShowValues","useEffect","_toArray","dataList","toArray","map","item","_dataSourceMapRef$cur","objItems","_isObject","current","onInnerChange","valueFt","length","undefined","isMultiple","_props$onChange","onChange","call","_props$onChange2","message","error","concat","onSelectChange","treeModalChange","onDataSourceChange","_hooks","useCallbackRef","_treeDataList","mapData","result","target","filter","Boolean","_jsx","TreeModal","_objectSpread","forceRender","children","Select","style","width","mode","open"],"mappings":"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"}
@@ -361,6 +361,36 @@ export type TreeWrapperProps = Omit<TreeProps, "treeData" | "onExpand" | "select
361
361
  * 自定义搜索规则
362
362
  */
363
363
  customSearchRule?: (nodeData: TPlainObject, searchValue?: string) => boolean;
364
+ /**
365
+ * 点击父节点 是否切换折叠
366
+ * ```
367
+ * 1. 设置 titleRender 后,此配置失效
368
+ * ```
369
+ */
370
+ clickParentNodeToggleExpand?: boolean;
371
+ /**
372
+ * 禁用节点选中
373
+ * ```
374
+ * 1. checkable = true,此配置失效
375
+ * 2. 在未设置节点 disabled 属性情况下,满足此配置不会触发onChange事件
376
+ * ```
377
+ */
378
+ disableNodeSelect?: (item: TPlainObject) => boolean;
379
+ /**
380
+ * 是否必选,最后一个不能取消
381
+ * ```
382
+ * 1. 设置 checkable = true 时无效
383
+ * ```
384
+ */
385
+ required?: boolean;
386
+ /**
387
+ * 在第一次渲染value时,主动执行一次onChange
388
+ * ```
389
+ * 1. 设置labelInValue = true 时有效
390
+ * 2. 不考虑子父节点的关系
391
+ * ```
392
+ */
393
+ executeOnChangeInRenderFirstValue?: boolean;
364
394
  };
365
395
  export type TreeModelSelectItem = {
366
396
  label: string;
@@ -35,6 +35,7 @@ import '@dimjs/lang/is-undefined';
35
35
  import '@dimjs/lang/is-string';
36
36
  import '@dimjs/lang/is-array';
37
37
  import '@dimjs/model-react';
38
+ import '@dimjs/utils/array/array-remove';
38
39
  import '@ant-design/icons/es/icons/CaretDownFilled.js';
39
40
  import '@ant-design/icons/es/icons/MoreOutlined.js';
40
41
  import '@dimjs/utils/extend/extend';