From a9d97b150701e634bdb751eab277696abd136cca Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 16 六月 2026 14:39:47 +0800
Subject: [PATCH] 君歌app 1.依照web端功能修改
---
src/pages/oa/_utils/oaPageRegistry.js | 256 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 256 insertions(+), 0 deletions(-)
diff --git a/src/pages/oa/_utils/oaPageRegistry.js b/src/pages/oa/_utils/oaPageRegistry.js
new file mode 100644
index 0000000..22019bc
--- /dev/null
+++ b/src/pages/oa/_utils/oaPageRegistry.js
@@ -0,0 +1,256 @@
+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,
+ };
+}
+
+/** 鍚勫瓙椤甸潰閰嶇疆锛歵itle銆乻torageKey銆佸垪琛ㄥ睍绀哄瓧娈点�佸垵濮� mock */
+export const OA_PAGE_REGISTRY = {
+ "HrManage/staff-archive": {
+ title: "鍛樺伐妗f",
+ 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骞寸涓�瀛e害缁忚惀閫氭姤",
+ }),
+ ],
+ },
+ "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" };
+}
--
Gitblit v1.9.3