diff --git a/src/pages/Company/List/edit.tsx b/src/pages/Company/List/edit.tsx index 141b6c6..b41ee75 100644 --- a/src/pages/Company/List/edit.tsx +++ b/src/pages/Company/List/edit.tsx @@ -206,12 +206,14 @@ export const CompanyDetailView = ({ onCancel, record, scaleEnum, + industryEnum, loading, }: { open: boolean; onCancel: () => void; record?: API.CompanyList.Company; scaleEnum?: DictValueEnumObj; + industryEnum?: DictValueEnumObj; loading?: boolean; }) => { const contacts = record?.companyContactList?.filter( @@ -253,8 +255,8 @@ export const CompanyDetailView = ({ )} {statusTag} - {record?.industry ? ( - {record.industry} + {record?.industry != null && record.industry !== '' ? ( + ) : null} diff --git a/src/pages/Company/List/index.tsx b/src/pages/Company/List/index.tsx index dcae54b..c45dd35 100644 --- a/src/pages/Company/List/index.tsx +++ b/src/pages/Company/List/index.tsx @@ -14,7 +14,8 @@ import { putCmsCompanyList, } from '@/services/company/list'; import { getDictValueEnum } from '@/services/system/dict'; -import DictTag from '@/components/DictTag'; +import { getCmsIndustryTreeList } from '@/services/classify/industry'; +import DictTag, { DictValueEnumObj } from '@/components/DictTag'; import { postCompanyApproval } from '@/services/company/review'; const buildListSearchParams = (values: Record): API.CompanyList.Params => { @@ -36,6 +37,25 @@ const loadCompanyDetail = async (record: API.CompanyList.Company) => { return { ...record, ...detail }; }; +/** 将行业树数据展平为 DictValueEnumObj */ +const flattenIndustryTree = (tree: { id: number; label: string; children?: any[] }[]): DictValueEnumObj => { + const map: DictValueEnumObj = {}; + const walk = (nodes: { id: number; label: string; children?: any[] }[]) => { + nodes?.forEach((node) => { + map[node.id] = { + text: node.label, + label: node.label, + value: node.id, + }; + if (node.children?.length) { + walk(node.children); + } + }); + }; + walk(tree); + return map; +}; + function ManagementList() { const access = useAccess(); @@ -48,6 +68,7 @@ function ManagementList() { const [detailLoading, setDetailLoading] = useState(false); const [detailData, setDetailData] = useState(); const [scaleEnum, setScaleEnum] = useState>({}); + const [industryEnum, setIndustryEnum] = useState({}); const [approvalVisible, setApprovalVisible] = useState(false); const [approvalStatus, setApprovalStatus] = useState<1 | 2>(1); const [approvalReason, setApprovalReason] = useState(''); @@ -89,6 +110,11 @@ function ManagementList() { getDictValueEnum('scale', true, true).then((data) => { setScaleEnum(data); }); + getCmsIndustryTreeList().then((res) => { + if (res?.data) { + setIndustryEnum(flattenIndustryTree(res.data)); + } + }); }, []); const columns: ProColumns[] = [ @@ -118,6 +144,9 @@ function ManagementList() { dataIndex: 'industry', valueType: 'text', align: 'center', + render: (_, record) => { + return ; + }, }, { title: '公司规模', @@ -187,7 +216,7 @@ function ManagementList() { size="small" key="detail" icon={} - hidden={!access.hasPerms('area:business:List.view')} + hidden={!access.hasPerms('cms:company:query')} onClick={async () => { setDetailData({ ...record }); setDetailVisible(true); @@ -209,7 +238,7 @@ function ManagementList() { size="small" key="edit" icon={} - hidden={!access.hasPerms('area:business:List.update')} + hidden={!access.hasPerms('cms:company:edit')} onClick={async () => { const hide = message.loading('正在加载详情'); try { @@ -229,6 +258,7 @@ function ManagementList() { type="link" size="small" key="approval" + hidden={!access.hasPerms('sys:company:approval')} icon={} onClick={() => { setCurrentRow(record); @@ -245,7 +275,7 @@ function ManagementList() { danger key="batchRemove" icon={} - hidden={!access.hasPerms('area:subway:List')} + hidden={!access.hasPerms('cms:company:remove')} onClick={async () => { Modal.confirm({ title: '删除', @@ -291,7 +321,7 @@ function ManagementList() {