diff --git a/components/FormBuilder/FormBuilder.js b/components/FormBuilder/FormBuilder.js index a43f813..638269d 100644 --- a/components/FormBuilder/FormBuilder.js +++ b/components/FormBuilder/FormBuilder.js @@ -57,7 +57,7 @@ const FormBuilder = (props) => { )} {showCancelButton && ( - )} diff --git a/components/HiddenInfo/gwj/index.js b/components/HiddenInfo/gwj/index.js index a4a34dc..b2bc019 100644 --- a/components/HiddenInfo/gwj/index.js +++ b/components/HiddenInfo/gwj/index.js @@ -90,15 +90,17 @@ function HiddenInfo(props) { { label: "隐患状态", children: getLabelName({ list: HIDDEN_STATE_ENUM, status: info.state }) }, { label: "隐患描述", children: info.hiddenDesc }, { label: "隐患部位", children: info.hiddenPart }, - ...(info.source === 2 || info.source === 3 + ...( + (info.source === 2 || info.source === 3) && (info.hiddenCheckListCO && Object.keys(info.hiddenCheckListCO).length > 0) ? [ - { label: "风险点(单元)", children: "todo" }, - { label: "辨识部位", children: "todo" }, - { label: "存在风险", children: "todo" }, - { label: "风险分级", children: "todo" }, - { label: "隐患清单", children: "todo" }, + { label: "风险点(单元)", children: info.hiddenCheckListCO.listRiskPoints }, + { label: "辨识部位", children: info.hiddenCheckListCO.identifiedLocations }, + { label: "存在风险", children: info.hiddenCheckListCO.existingRisks }, + { label: "风险分级", children: info.hiddenCheckListCO.riskLevel }, + { label: "隐患清单", children: info.hiddenCheckListCO.listName }, ] - : []), + : [] + ), { label: "隐患上报位置(经纬度)", children: [info.longitude && `经度:${info.longitude}`, info.latitude && `纬度:${info.latitude}`].filter(Boolean).join(" "), diff --git a/components/SelectTree/Basic/index.d.ts b/components/SelectTree/Basic/index.d.ts index dc89c83..fa57d03 100644 --- a/components/SelectTree/Basic/index.d.ts +++ b/components/SelectTree/Basic/index.d.ts @@ -23,6 +23,8 @@ export interface BasicSelectTreeProps extends Omit void; /** 获取数据 */ onGetData?: (data: Record[], processedData: Record[]) => void; + /** 是否只允许选择最后一级,默认 false */ + onlyLastLevel?: boolean; } /** diff --git a/components/SelectTree/Basic/index.js b/components/SelectTree/Basic/index.js index 44e13d2..3a5cd9d 100644 --- a/components/SelectTree/Basic/index.js +++ b/components/SelectTree/Basic/index.js @@ -1,6 +1,6 @@ import { TreeSelect } from "antd"; import { useEffect } from "react"; -import { getTreeNodePaths, processTreeDataByLevel } from "../../../utils"; +import { getTreeNodePaths, processTreeDataByLevel, processTreeDataForOnlyLastLevel } from "../../../utils"; /** * 基础下拉树组件(不建议直接使用此组件,二次继承使用) @@ -18,11 +18,12 @@ function BasicSelectTree(props) { idKey = "id", childrenKey = "children", level, + onlyLastLevel = false, ...restProps } = props; // 根据 level 处理树数据 - const processedTreeData = level + let processedTreeData = level ? processTreeDataByLevel({ data: treeData, level, @@ -31,6 +32,9 @@ function BasicSelectTree(props) { }) : treeData; + // 根据 onlyLastLevel 处理树数据 + processedTreeData = processTreeDataForOnlyLastLevel({ data: processedTreeData, childrenKey, onlyLastLevel }); + const handleChange = (value, label, extra) => { if (value) { const parentNodes = getTreeNodePaths({ diff --git a/hooks/useTable/index.js b/hooks/useTable/index.js index f6d2b51..c9422a2 100644 --- a/hooks/useTable/index.js +++ b/hooks/useTable/index.js @@ -115,7 +115,7 @@ function useTable(service, options) { usePagination = true, defaultType = "advance", defaultCurrent = 1, - defaultPageSize = 10, + defaultPageSize = 20, defaultPagination = { current: defaultCurrent, pageSize: defaultPageSize }, ...restRestOptions } = restOptions; diff --git a/utils/index.d.ts b/utils/index.d.ts index 77a2c20..16abcf4 100644 --- a/utils/index.d.ts +++ b/utils/index.d.ts @@ -301,3 +301,22 @@ export function processTreeDataByLevel( /** 子节点 */ [key: string]: any; }[]; + +/** + * 根据 onlyLastLevel 属性处理树数据,添加 selectable 属性控制节点是否可选择 + */ +export function processTreeDataForOnlyLastLevel( + options: { + /** 树形数据 */ + data: any[]; + /** 子节点字段名 */ + childrenKey: string; + /** 是否只允许选择最后一级 */ + onlyLastLevel?: boolean; + }, +): { + /** 是否允许选择 */ + selectable: boolean; + /** 子节点 */ + [key: string]: any; +}[]; diff --git a/utils/index.js b/utils/index.js index b5beb67..3b3eb11 100644 --- a/utils/index.js +++ b/utils/index.js @@ -462,6 +462,33 @@ export const processTreeDataByLevel = (options) => { }); }; +/** + * 根据 onlyLastLevel 属性处理树数据,添加 selectable 属性控制节点是否可选择 + */ +export const processTreeDataForOnlyLastLevel = (options) => { + const { data, childrenKey, onlyLastLevel = false } = options; + if (!onlyLastLevel) + return data; + + return data.map((item) => { + // 检查是否有子节点 + const hasChildren = item[childrenKey] && item[childrenKey].length > 0; + + // 如果有子节点,则不可选择 + const processedItem = { + ...item, + selectable: !hasChildren, + }; + + // 递归处理子节点 + if (hasChildren) { + processedItem[childrenKey] = processTreeDataForOnlyLastLevel({ data: item[childrenKey], childrenKey, onlyLastLevel }); + } + + return processedItem; + }); +}; + /** * 获取文件url */