From 866ce14210a36c8f446e44bd05c692a9351f6f5c Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 30 Jan 2026 17:04:58 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix=EF=BC=9A=E6=9B=B4=E6=96=B0=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=B8=BB=E9=A2=98=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gen/ApiTypes.d.ts | 52 +++++++++++++++++++-- src/gen/Apis.ts | 21 +++++++++ src/gen/Enums.ts | 2 +- src/pages/meter/common_meter/index.tsx | 32 +++++++++---- src/pages/meter/house_meter/index.tsx | 44 ++++++++++------- src/pages/meter/readings/show/$id.tsx | 16 +++---- src/pages/meter/readings/table/HasHouse.tsx | 2 + 7 files changed, 130 insertions(+), 39 deletions(-) diff --git a/src/gen/ApiTypes.d.ts b/src/gen/ApiTypes.d.ts index 9337a58..d473266 100644 --- a/src/gen/ApiTypes.d.ts +++ b/src/gen/ApiTypes.d.ts @@ -151,6 +151,11 @@ declare namespace ApiTypes { "asset_houses_id"?: number; // 资产房屋ID "asset_projects_id"?: number; // 资产项目ID "status"?: string; // 状态,[enum:HouseOccupantsStatusEnum] + "name"?: string; // 客户姓名 + "phone"?: string; // 客户手机号 + "id_card"?: string; // 客户身份证号 + "house_name"?: string; // 房屋名称 + "project_name"?: string; // 项目名称 }; type CustomerList = { "name"?: string; // 客户姓名 @@ -198,6 +203,8 @@ declare namespace ApiTypes { "type"?: string[]; // 类型,[enum:HouseRegistersTypeEnum] "status"?: string; // 状态,[enum:HouseRegistersStatusEnum] "asset_houses_id"?: number; // 房屋ID + "customer_name"?: string; // 客户名称 + "project_name"?: string; // 模糊搜索:项目名称 }; type Store = { "asset_houses_id": number; // 房屋ID @@ -895,7 +902,7 @@ declare namespace ApiTypes { } namespace CompanyProjectReceiptAccounts { type List = { - "projects_id"?: number; // 所属项目id,[ref:asset_projects] + "asset_projects_id"?: number; // 所属项目id,[ref:asset_projects] }; type Store = { "projects_id": number; // 所属项目id,[ref:asset_projects] @@ -1191,7 +1198,7 @@ declare namespace ApiTypes { "tiered_rates"?: string[]; // 阶梯收费标准 "is_apportionment"?: number; // 是否分摊 "apportionment_method"?: string; // 分摊方式,[enum:HouseChargeStandardsApportionmentMethodEnum] - "has_late_fee"?: number; // 是否滞纳金 + "has_late_fee"?: boolean; // 是否滞纳金 "late_fee_start_days"?: number; // 生成几天后开始收取滞纳金 "late_fee_rate"?: number; // 滞纳金费率(百分比) "late_fee_cap_days"?: number; // 滞纳金封顶天数 @@ -1216,7 +1223,7 @@ declare namespace ApiTypes { "tiered_rates"?: string[]; // 阶梯收费标准 "is_apportionment"?: number; // 是否分摊 "apportionment_method"?: string; // 分摊方式,[enum:HouseChargeStandardsApportionmentMethodEnum] - "has_late_fee"?: number; // 是否滞纳金 + "has_late_fee"?: boolean; // 是否滞纳金 "late_fee_start_days"?: number; // 生成几天后开始收取滞纳金 "late_fee_rate"?: number; // 滞纳金费率(百分比) "late_fee_cap_days"?: number; // 滞纳金封顶天数 @@ -1255,11 +1262,15 @@ declare namespace ApiTypes { } namespace HouseChargeTasks { type List = { + "id"?: number; // id 任务id "charge_standard_name"?: string; // 模糊搜索:收费标准名称 "asset_projects_id"?: number; // 资产项目id,[ref:asset_projects] "status"?: string; // 任务状态,[enum:HouseChargeTasksStatusEnum] "type"?: string; // 类型,[enum:HouseChargeTasksTypeEnum] "project_name"?: string; // 资产项目名称 + "company_name"?: string; // 公司名称 + "bill_year"?: string; // 月份 + "bill_month"?: string; // 月份 }; type Store = { "house_charge_standards_id": number; // 房屋收费标准id,[ref:house_charge_standards] @@ -1422,6 +1433,9 @@ declare namespace ApiTypes { "total_payable_amount": number; // 应付金额 "bill_ids": string[]; // 账单id }; + type ImportOfflinePayment = { + "upload_file": mimes:xlsx,xls; // 上传文件 + }; } namespace HousePrepaymentLogs { type List = { @@ -1517,6 +1531,9 @@ declare namespace ApiTypes { type Delete = { "id": number; // id }; + type Import = { + "upload_file"?: mimes:xlsx,xls; // 上传的时候必填文件 + }; } namespace HouseMeterReadings { type List = { @@ -1573,6 +1590,10 @@ declare namespace ApiTypes { namespace HouseMeterTasks { type List = { "name"?: string; // 模糊搜索:名称 + "status"?: string; // 任务状态,[enum:HouseChargeTasksStatusEnum] + "generation_method"?: string; // 生成方式,[enum:HouseMeterTasksGenerationMethodEnum] + "bill_year"?: number; // 年份 + "bill_month"?: number; // 月份 }; type Store = { "asset_projects_id": number; // 资产项目id,[ref:asset_projects] @@ -1599,6 +1620,9 @@ declare namespace ApiTypes { "project_name"?: string; // 模糊搜索:项目名称 "charge_standards_id"?: number; // 房屋收费标准id,[ref:house_charge_standards] "meter_type"?: string; // 仪表类型,[enum:HouseMetersMeterTypeEnum] + "usage_type"?: string; // 使用类型,[enum:HouseMetersUsageTypeEnum] + "charge_standard_name"?: string; // 模糊搜索:收费标准名称 + "asset_houses_id"?: number; // 房屋id,[ref:asset_houses] }; type Store = { "asset_projects_id": number; // 项目id,[ref:asset_projects] @@ -1635,6 +1659,21 @@ declare namespace ApiTypes { type Delete = { "id": number; // id }; + type Import = { + "upload_file"?: mimes:xlsx,xls; // 上传的时候必填文件 + }; + type Export = { + "name"?: string; // 模糊搜索:名称 + "asset_projects_id"?: number; // 项目id,[ref:asset_projects] + "project_name"?: string; // 模糊搜索:项目名称 + "charge_standards_id"?: number; // 房屋收费标准id,[ref:house_charge_standards] + "meter_type"?: string; // 仪表类型,[enum:HouseMetersMeterTypeEnum] + "usage_type"?: string; // 使用类型,[enum:HouseMetersUsageTypeEnum] + "charge_standard_name"?: string; // 模糊搜索:收费标准名称 + "asset_houses_id"?: number; // 房屋id,[ref:asset_houses] + "download_type"?: string; // 下载类型:all-全部,page-当前页 + "current"?: number; // 当前页偏移量 + }; } } namespace Msg { @@ -1813,6 +1852,13 @@ declare namespace ApiTypes { "assign_status"?: string; // 工单分配状态,[enum:HouseWorkOrdersAssignStatusEnum] "reporter_name"?: string; // 模糊搜索:上报人姓名 "reporter_phone"?: string; // 模糊搜索:上报人手机 + "is_completed"?: boolean; // 是否完工:0否,1是 + "is_evaluated"?: boolean; // 是否评价: 0否,1是 + "is_visited"?: boolean; // 是否已访问: 0否,1是 + "location"?: string; // 报修位置[enum:HouseWorkOrdersLocationEnum] + "asset_projects_id"?: number; // 资产项目id,[ref:asset_projects] + "project_name"?: string; // 模糊搜索:项目名称 + "asset_houses_id"?: number; // 资产房屋id,[ref:asset_houses] }; type Store = { "type": string; // 工单类型,[enum:HouseWorkOrdersTypeEnum] diff --git a/src/gen/Apis.ts b/src/gen/Apis.ts index 8e4a4dd..2a8fd1b 100644 --- a/src/gen/Apis.ts +++ b/src/gen/Apis.ts @@ -784,6 +784,12 @@ export const Apis = { GetPayCode(data: ApiTypes.HouseOrder.HouseOrders.GetPayCode): Promise { return request('company/house_order/house_orders/get_pay_code', { data }); }, + DownloadOfflinePaymentTemplate(): Promise { + return request('company/house_order/house_orders/download_offline_payment_template', {responseType: 'blob',}); + }, + ImportOfflinePayment(data: ApiTypes.HouseOrder.HouseOrders.ImportOfflinePayment): Promise { + return request('company/house_order/house_orders/import_offline_payment', { data }); + }, }, HousePrepaymentLogs: { List(data?: ApiTypes.HouseOrder.HousePrepaymentLogs.List): Promise { @@ -856,6 +862,12 @@ export const Apis = { Delete(data: ApiTypes.Meter.HouseMeterHasHouses.Delete): Promise { return request('company/meter/house_meter_has_houses/delete', { data }); }, + Import(data?: ApiTypes.Meter.HouseMeterHasHouses.Import): Promise { + return request('company/meter/house_meter_has_houses/import', { data }); + }, + DownloadTemplate(): Promise { + return request('company/meter/house_meter_has_houses/download_template', {responseType: 'blob',}); + }, }, HouseMeterReadings: { List(data: ApiTypes.Meter.HouseMeterReadings.List): Promise { @@ -927,6 +939,15 @@ export const Apis = { Delete(data: ApiTypes.Meter.HouseMeters.Delete): Promise { return request('company/meter/house_meters/delete', { data }); }, + Import(data?: ApiTypes.Meter.HouseMeters.Import): Promise { + return request('company/meter/house_meters/import', { data }); + }, + DownloadTemplate(): Promise { + return request('company/meter/house_meters/download_template', {responseType: 'blob',}); + }, + Export(data?: ApiTypes.Meter.HouseMeters.Export): Promise { + return request('company/meter/house_meters/export', { responseType: 'blob',data }); + }, }, }, Msg: { diff --git a/src/gen/Enums.ts b/src/gen/Enums.ts index 2d0a7cf..9c33826 100644 --- a/src/gen/Enums.ts +++ b/src/gen/Enums.ts @@ -251,7 +251,7 @@ export const BannersTypeEnum= { // 缓存类型 export const CacheTypeEnum= { - 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#63f8de","value":"MobilePhoneVerificationCode"}, + 'MobilePhoneVerificationCode': {"text":"手机验证码","color":"#e482d3","value":"MobilePhoneVerificationCode"}, }; // CompaniesMerchantTypeEnum diff --git a/src/pages/meter/common_meter/index.tsx b/src/pages/meter/common_meter/index.tsx index 7664fa4..a06b02f 100644 --- a/src/pages/meter/common_meter/index.tsx +++ b/src/pages/meter/common_meter/index.tsx @@ -72,19 +72,19 @@ export default function CommonMeter({ title = '公摊表' }) { }} /> ), - update: , + has: ( + + ), }); let permissionsSpace = getCurrentPermissions({ - has: { + update: { key: '1', - label: ( - - ), + label: , }, delete: { key: '2', @@ -135,6 +135,20 @@ export default function CommonMeter({ title = '公摊表' }) { // search: { transform: (value) => ({ project_name: value }) } search: false, }, + { + title: '房屋', + render: (_, item: any) => { + return ( + + {item.house_meter_has_houses?.map( + (res: { full_name: string }) => { + return res?.full_name; + }, + )} + + ); + }, + }, { title: '仪表编号', dataIndex: 'name', diff --git a/src/pages/meter/house_meter/index.tsx b/src/pages/meter/house_meter/index.tsx index 2a743fb..c49c30b 100644 --- a/src/pages/meter/house_meter/index.tsx +++ b/src/pages/meter/house_meter/index.tsx @@ -72,19 +72,19 @@ export default function HouseMeter({ title = '房屋表' }) { }} /> ), - update: , + has: ( + + ), }); let permissionsSpace = getCurrentPermissions({ - has: { + update: { key: '1', - label: ( - - ), + label: , }, delete: { key: '2', @@ -135,6 +135,16 @@ export default function HouseMeter({ title = '房屋表' }) { // search: { transform: (value) => ({ project_name: value }) } search: false, }, + { + title: '房屋', + render: (_, item: any) => { + return item.house_meter_has_houses?.map( + (res: { full_name: string }) => { + return res?.full_name; + }, + ); + }, + }, { title: '仪表编号', dataIndex: 'name', @@ -205,14 +215,14 @@ export default function HouseMeter({ title = '房屋表' }) { // dataIndex: 'remark', // search: false, // }, - MyColumns.SoftDelete({ - onRestore: Apis.Meter.HouseMeters.Restore, - onSoftDelete: Apis.Meter.HouseMeters.SoftDelete, - search: false, - setPermissions: getCurrentPermissions({ - enableDisable: true, - }), - }), + // MyColumns.SoftDelete({ + // onRestore: Apis.Meter.HouseMeters.Restore, + // onSoftDelete: Apis.Meter.HouseMeters.SoftDelete, + // search: false, + // setPermissions: getCurrentPermissions({ + // enableDisable: true, + // }), + // }), // MyColumns.CreatedAt(), MyColumns.Option({ render: (_, item: any, index, action) => ( diff --git a/src/pages/meter/readings/show/$id.tsx b/src/pages/meter/readings/show/$id.tsx index 77e303d..ae5aade 100644 --- a/src/pages/meter/readings/show/$id.tsx +++ b/src/pages/meter/readings/show/$id.tsx @@ -1,4 +1,4 @@ -import { MyPageContainer, usePageTabs } from '@/common'; +import { MyPageContainer } from '@/common'; import { Apis } from '@/gen/Apis'; import { ProCard } from '@ant-design/pro-components'; import { useParams } from '@umijs/max'; @@ -12,13 +12,6 @@ import Tasks from '../table/Tasks'; export default function Show({ title = '仪表详情' }) { const { id } = useParams<{ id: string }>(); const [data, setShow] = useState({}); - console.log('id', data); - - // 注册标签页 - const { addTab } = usePageTabs({ - tabKey: `meter-detail-${id}`, - tabLabel: `仪表:${data?.name}` || title, - }); const loadShow = () => { let paramsId: any = { id: id ?? 0 }; @@ -68,7 +61,12 @@ export default function Show({ title = '仪表详情' }) { ]; return ( - + diff --git a/src/pages/meter/readings/table/HasHouse.tsx b/src/pages/meter/readings/table/HasHouse.tsx index 0bb9ac4..ac7d61c 100644 --- a/src/pages/meter/readings/table/HasHouse.tsx +++ b/src/pages/meter/readings/table/HasHouse.tsx @@ -9,6 +9,8 @@ import { HouseMetersMeterTypeEnum } from '@/gen/Enums'; import { ProTable } from '@ant-design/pro-components'; import { useNavigate } from '@umijs/max'; import { Space } from 'antd'; +import MeterHasHouse from '../../house_meter/modals/MeterHasHouse'; +import MeterHasOne from '../../house_meter/modals/MeterHasOne'; export default function Index(props: MyBetaModalFormProps) { const navigate = useNavigate(); From 3255c9deb66a65ac3e8221f46e1f971edacb0d54 Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 30 Jan 2026 17:48:53 +0800 Subject: [PATCH 2/5] =?UTF-8?q?fix=EF=BC=9A=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/charge/standard/components/Instrument.tsx | 4 ++-- src/pages/customer/archive/components/MeterInfo.tsx | 4 ++-- src/pages/meter/readings/index.tsx | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pages/charge/standard/components/Instrument.tsx b/src/pages/charge/standard/components/Instrument.tsx index 5b9bd3a..9a56aa6 100644 --- a/src/pages/charge/standard/components/Instrument.tsx +++ b/src/pages/charge/standard/components/Instrument.tsx @@ -30,7 +30,7 @@ export default function Index(props: MyBetaModalFormProps) { /> ), }, - '/instrument/instrument_list', + '/meter', ); }; let tableRender = (item: any, action: any) => { @@ -54,7 +54,7 @@ export default function Index(props: MyBetaModalFormProps) { /> ), }, - '/instrument/instrument_list', + '/meter', ); }; return ( diff --git a/src/pages/customer/archive/components/MeterInfo.tsx b/src/pages/customer/archive/components/MeterInfo.tsx index 55ac0eb..f8a45ba 100644 --- a/src/pages/customer/archive/components/MeterInfo.tsx +++ b/src/pages/customer/archive/components/MeterInfo.tsx @@ -79,12 +79,12 @@ export default function Index(props: MyBetaModalFormProps) { renderValue ? dayjs().diff(renderValue, 'day') : '-', }, MyColumns.Option({ - render: (_, item: any, index, action) => ( + render: (_, item: any, index) => ( { - navigate(`/instrument/readings/show/${item.id}`); + navigate(`/meter/readings/show/${item.id}`); }} /> diff --git a/src/pages/meter/readings/index.tsx b/src/pages/meter/readings/index.tsx index a8e03d0..5cbed8c 100644 --- a/src/pages/meter/readings/index.tsx +++ b/src/pages/meter/readings/index.tsx @@ -27,7 +27,7 @@ export default function Index({ title = '抄表数据' }) { { - navigate(`/instrument/readings/show/${item.id}`); + navigate(`/meter/readings/show/${item.id}`); }} /> ), From 96f0ac68de466f8951f0c7b97f91a24149367710 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 4 Feb 2026 12:32:17 +0800 Subject: [PATCH 3/5] =?UTF-8?q?fix:=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/common/components/layout/AvatarProps.tsx | 13 +- .../components/layout/ChangePassword.tsx | 12 +- src/common/libs/umi/layoutConfig.tsx | 77 ++++---- src/common/libs/umi/requestConfig.ts | 4 +- src/common/libs/valtio/actions.ts | 1 + src/common/libs/valtio/state.ts | 5 + src/common/pages/MyLoginPage.tsx | 4 +- src/components/MyModal.tsx | 1 + src/gen/ApiTypes.d.ts | 157 ++++++++++++++++ src/gen/Apis.ts | 109 +++++++++++ src/gen/Enums.ts | 46 ++++- src/pages/asset/activities/index.tsx | 9 +- .../asset/activities/modals/EnrollsList.tsx | 5 + .../customer/house_registers_audit/index.tsx | 4 +- .../house_registers_audit/modals/Audit.tsx | 10 +- src/pages/customer/list/index.tsx | 2 +- .../index/charts/FinancialAnalysisLine.tsx | 68 +++++++ src/pages/index/components/LayoutLeft.tsx | 174 ++++++++++++++++++ src/pages/index/components/LayoutRight.tsx | 3 + src/pages/index/index.tsx | 13 +- src/pages/index/style.scss | 6 +- .../meter/readings/modals/CorrectReading.tsx | 1 - src/pages/work_order/list/index.tsx | 77 ++++---- .../list/modals/WorkOrderAssign.tsx | 10 +- .../work_order/list/modals/WorkOrderShow.tsx | 2 +- .../list/modals/WorkOrderUpdate.tsx | 2 +- 26 files changed, 709 insertions(+), 106 deletions(-) create mode 100644 src/pages/index/charts/FinancialAnalysisLine.tsx create mode 100644 src/pages/index/components/LayoutLeft.tsx create mode 100644 src/pages/index/components/LayoutRight.tsx diff --git a/src/common/components/layout/AvatarProps.tsx b/src/common/components/layout/AvatarProps.tsx index 5952c6a..31bb14c 100644 --- a/src/common/components/layout/AvatarProps.tsx +++ b/src/common/components/layout/AvatarProps.tsx @@ -1,12 +1,13 @@ import { Apis } from '@/gen/Apis'; import { + DownOutlined, LogoutOutlined, UnlockOutlined, UserOutlined, } from '@ant-design/icons'; import { history } from '@umijs/max'; import { Avatar, Dropdown, MenuProps, Space } from 'antd'; -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import { stateActions } from '../../libs/valtio/actions'; import AvatarIcon from './AvatarIcon.png'; import ChangePassword from './ChangePassword'; @@ -52,6 +53,15 @@ export default function AvatarProps({ user }: { user: any }) { }, ]; + useEffect(() => { + let loginUserInfo = sessionStorage.getItem('loginUserInfo'); + console.log(loginUserInfo, 'loginUserInfo'); + if (loginUserInfo === 'dW5kZWZpbmVkXzAx') { + setOpen(true); + console.log('登录成功'); + } + }, []); + return ( <> @@ -59,6 +69,7 @@ export default function AvatarProps({ user }: { user: any }) { } src={AvatarIcon} size={28} /> {user?.name} + diff --git a/src/common/components/layout/ChangePassword.tsx b/src/common/components/layout/ChangePassword.tsx index 953c8d5..67de4b7 100644 --- a/src/common/components/layout/ChangePassword.tsx +++ b/src/common/components/layout/ChangePassword.tsx @@ -1,7 +1,8 @@ import { Apis } from '@/gen/Apis'; import { ModalForm, ProFormText } from '@ant-design/pro-components'; +import { history } from '@umijs/max'; import { message } from 'antd'; - +import { stateActions } from '../../libs/valtio/actions'; export default function ChangePassword({ open, setOpen, @@ -14,12 +15,17 @@ export default function ChangePassword({ open={open} wrapperCol={{ span: 24 }} width="500px" - title="修改密码" + title="请修改初始密码" onFinish={async (values) => { return Apis.Common.Auth.ChangePassword(values) .then(() => { message.success('修改密码成功'); - setOpen(false); + Apis.Common.Auth.Logout().then(() => { + stateActions.setLogout(); + sessionStorage.removeItem('loginUserInfo'); + history.push('/login'); + setOpen(false); + }); }) .catch(() => false); }} diff --git a/src/common/libs/umi/layoutConfig.tsx b/src/common/libs/umi/layoutConfig.tsx index 37ad9a7..e52bf2c 100644 --- a/src/common/libs/umi/layoutConfig.tsx +++ b/src/common/libs/umi/layoutConfig.tsx @@ -1,15 +1,16 @@ import { MyIcons, MyIconsType, PermissionsType, useMyState } from '@/common'; import AvatarProps from '@/common/components/layout/AvatarProps'; -import { SettingOutlined } from '@ant-design/icons'; +import { Apis } from '@/gen/Apis'; import { Link, RuntimeConfig, history, useNavigate } from '@umijs/max'; -import { AutoComplete, Button, Input, Menu, MenuProps, Space } from 'antd'; -import { useState } from 'react'; +import { AutoComplete, Input, Menu, MenuProps, Select, Space } from 'antd'; +import { useEffect, useState } from 'react'; import './allConfig.scss'; // import Logo from './logo.png'; interface LevelKeysProps { key?: string; children?: LevelKeysProps[]; } + const loopMenu = (permissions: PermissionsType[] | undefined) => { let tree: PermissionsType[] = []; let map: Record = {}; @@ -57,6 +58,7 @@ const loopMenu = (permissions: PermissionsType[] | undefined) => { }; export const LayoutConfig: RuntimeConfig['layout'] = () => { + const [getSelectProject, setSelectProject] = useState([]); const { snap } = useMyState(); const navigate = useNavigate(); const permissionsList = (snap.session.permissions || []) @@ -69,12 +71,20 @@ export const LayoutConfig: RuntimeConfig['layout'] = () => { { label: '收费Bi', path: '/charge/charge_bi' }, { label: '项目Bi', path: '/asset/asset_bi' }, ]; + const handleLoadProject = async () => { + let res = await Apis.Common.Auth.GetProjects(); + setSelectProject( + res?.data?.map((item) => ({ + value: item.id, + label: item.name, + })), + ); + }; const [stateOpenKeys, setStateOpenKeys] = useState(['2', '23']); const getLevelKeys: any = (items1: LevelKeysProps[]) => { const key: Record = {}; const func = (items2: LevelKeysProps[], level = 1) => { - console.log(items2, 'level'); items2?.forEach((item) => { if (item.key) { key[item.key] = level; @@ -88,18 +98,22 @@ export const LayoutConfig: RuntimeConfig['layout'] = () => { return key; }; + useEffect(() => { + handleLoadProject(''); + }, []); + return { title: '', // 首页 logo logo: ( -
+
), @@ -114,45 +128,29 @@ export const LayoutConfig: RuntimeConfig['layout'] = () => {
- {/* - 常用功能: - {quickLinks.map((q) => ( - history.push(q.path)} - className="quick_link" - > - {q.label} - - ))} - */}
- {/* -
- -
员工端
-
- -
- -
客户端
-
-
- } - > -