import { OA_NAV } from "@/config/oaPaths.js"; const STATUS_MAP = { pending: { text: "审核中", type: "warning" }, approved: { text: "已通过", type: "success" }, rejected: { text: "已驳回", type: "error" }, draft: { text: "草稿", type: "info" }, published: { text: "已发布", type: "success" }, }; function baseRow(extra = {}) { return { id: `${Date.now()}_${Math.random().toString(36).slice(2, 8)}`, applicantName: "张三", deptName: "研发部", status: "pending", createTime: "2026-05-18 09:00:00", summary: "示例数据,可对接后端接口", ...extra, }; } /** 各子页面配置:title、storageKey、列表展示字段、初始 mock */ export const OA_PAGE_REGISTRY = { "HrManage/staff-archive": { title: "员工档案", module: "人事管理", storageKey: "oa_hr_staff_archive_v1", path: OA_NAV.staffArchive, fields: [ { label: "员工编号", prop: "staffNo" }, { label: "岗位", prop: "postJob" }, { label: "联系电话", prop: "phone" }, ], mockRows: [ baseRow({ staffNo: "E2026001", postJob: "工程师", phone: "13800000001", summary: "李明 · 在职", }), ], }, "HrManage/staff-contract": { title: "员工合同", module: "人事管理", storageKey: "oa_hr_staff_contract_v1", path: OA_NAV.staffContract, fields: [ { label: "合同编号", prop: "contractNo" }, { label: "合同类型", prop: "contractType" }, { label: "到期日", prop: "endDate" }, ], mockRows: [ baseRow({ contractNo: "HT-2026-001", contractType: "劳动合同", endDate: "2027-12-31", }), ], }, "HrManage/regular-apply": { title: "转正申请", module: "人事管理", storageKey: "oa_hr_regular_apply_v1", path: OA_NAV.regularApply, fields: [ { label: "入职日期", prop: "entryDate" }, { label: "转正日期", prop: "regularDate" }, ], mockRows: [baseRow({ entryDate: "2025-11-01", regularDate: "2026-05-20" })], }, "HrManage/transfer-apply": { title: "调岗申请", module: "人事管理", storageKey: "oa_hr_transfer_apply_v1", path: OA_NAV.transferApply, fields: [ { label: "原岗位", prop: "fromPost" }, { label: "目标岗位", prop: "toPost" }, ], mockRows: [ baseRow({ fromPost: "开发工程师", toPost: "高级开发工程师" }), ], }, "HrManage/resign-apply": { title: "离职申请", module: "人事管理", storageKey: "oa_hr_resign_apply_v1", path: OA_NAV.resignApply, fields: [ { label: "预计离职日", prop: "leaveDate" }, { label: "离职原因", prop: "reason" }, ], mockRows: [baseRow({ leaveDate: "2026-06-30", reason: "个人发展" })], }, "HrManage/work-handover": { title: "工作交接", module: "人事管理", storageKey: "oa_hr_work_handover_v1", path: OA_NAV.workHandover, fields: [ { label: "交接人", prop: "handoverTo" }, { label: "交接事项", prop: "handoverItems" }, ], mockRows: [ baseRow({ handoverTo: "王五", handoverItems: "项目文档、客户资料" }), ], }, "HrManage/post-manage": { title: "岗位管理", module: "人事管理", storageKey: "oa_hr_post_manage_v1", path: OA_NAV.postManage, fields: [ { label: "岗位编码", prop: "postCode" }, { label: "所属部门", prop: "deptName" }, ], mockRows: [baseRow({ postCode: "DEV-01", summary: "开发工程师" })], }, "AttendManage/leave-apply": { title: "请假申请", module: "假勤管理", storageKey: "oa_attend_leave_apply_v1", path: OA_NAV.leaveApply, fields: [ { label: "请假类型", prop: "leaveType" }, { label: "开始时间", prop: "startTime" }, { label: "结束时间", prop: "endTime" }, ], mockRows: [ baseRow({ leaveType: "年假", startTime: "2026-05-20 09:00", endTime: "2026-05-21 18:00", }), ], }, "AttendManage/overtime-apply": { title: "加班申请", module: "假勤管理", storageKey: "oa_attend_overtime_apply_v1", path: OA_NAV.overtimeApply, fields: [ { label: "加班日期", prop: "overtimeDate" }, { label: "时长(小时)", prop: "hours" }, ], mockRows: [ baseRow({ overtimeDate: "2026-05-18", hours: "3", summary: "版本上线" }), ], }, "ReimburseManage/travel-reimburse": { title: "差旅报销", module: "报销管理", storageKey: "oa_reimburse_travel_v1", path: OA_NAV.travelReimburse, fields: [ { label: "出差地点", prop: "destination" }, { label: "金额(元)", prop: "amount" }, ], mockRows: [ baseRow({ destination: "上海", amount: "2680.50", summary: "客户拜访差旅" }), ], }, "ReimburseManage/cost-reimburse": { title: "费用报销", module: "报销管理", storageKey: "oa_reimburse_cost_v1", path: OA_NAV.costReimburse, fields: [ { label: "费用科目", prop: "category" }, { label: "金额(元)", prop: "amount" }, ], mockRows: [ baseRow({ category: "办公用品", amount: "356.00", summary: "采购文具" }), ], }, "ApproveManage/approve-list": { title: "审批列表", module: "审批管理", storageKey: "oa_unified_approve_list_v1", path: OA_NAV.approveList, fields: [ { label: "审批类型", prop: "approvalTypeLabel" }, { label: "当前节点", prop: "currentNode" }, ], mockRows: [ baseRow({ approvalTypeLabel: "请假申请", currentNode: "部门负责人", }), ], }, "ApproveManage/approve-template": { title: "审批模板", module: "审批管理", storageKey: "oa_approve_template_custom_v1", path: OA_NAV.approveTemplate, fields: [ { label: "模板名称", prop: "templateName" }, { label: "节点数", prop: "nodeCount" }, ], mockRows: [ baseRow({ templateName: "通用审批流", nodeCount: "3", status: "approved", summary: "系统内置模板", }), ], }, "EnterpriseNews/news-manage": { title: "企业新闻", module: "企业新闻", storageKey: "oa_enterprise_news_v1", path: OA_NAV.enterpriseNews, fields: [ { label: "栏目", prop: "category" }, { label: "阅读量", prop: "readCount" }, ], mockRows: [ baseRow({ category: "公司动态", readCount: "128", status: "published", summary: "2026年第一季度经营通报", }), ], }, "NoticeAnnouncement/notice-manage": { title: "公告通知", module: "公告通知", storageKey: "oa_notice_announcement_v1", path: OA_NAV.noticeAnnouncement, fields: [ { label: "公告类型", prop: "noticeType" }, { label: "优先级", prop: "priority" }, ], mockRows: [ baseRow({ noticeType: "企业公告", priority: "普通", status: "published", summary: "五一劳动节放假安排", }), ], }, }; export function getOaPageConfig(pageKey) { return OA_PAGE_REGISTRY[pageKey] || null; } export function getStatusMeta(status) { return STATUS_MAP[status] || { text: status || "—", type: "info" }; }