init: F9智慧缫丝系统 - 后端(server) + 主前端(web) + 打印设计器(openprint) 首次提交

This commit is contained in:
2026-08-15 15:37:25 +08:00
commit 7235265749
294 changed files with 59182 additions and 0 deletions
+141
View File
@@ -0,0 +1,141 @@
/**
* 菜单 component → 后端数据表名 映射表
* key 为后端菜单 Component(模块/页面),value 为 API 数据表名
* 未列入的 component 将按默认规则 "Module_PascalPage" 推断
*/
const TABLE_MAP = {
'BaseCommon/material': 'BaseCommon_Material',
'BaseCommon/spec': 'BaseCommon_SilkSpec',
'BaseCommon/grade': 'BaseCommon_GradeStandard',
'BaseCommon/partner': 'BaseCommon_Partner',
'BaseCommon/period': 'BaseCommon_AccountPeriod',
'BaseCommon/worktype': 'BaseCommon_WorkType',
'BaseCommon/dict': 'BaseCommon_Dict',
'RawMaterial/zhuangkou': 'RawMaterial_Zhuangkou',
'RawMaterial/instock': 'RawMaterial_InStock',
'RawMaterial/repack': 'RawMaterial_Repack',
'RawMaterial/outstock': 'RawMaterial_OutStock',
'RawMaterial/stock': 'RawMaterial_Stock',
'RawMaterial/purchase': 'RawMaterial_Purchase',
'Process/zhuangkou': 'Process_ProcessZhuangkou',
'Process/trial': 'Process_Trial',
'Process/index': 'Process_Index',
'Process/sheet': 'Process_Sheet',
'ProPlan/workorder': 'ProPlan_WorkOrder',
'ProPlan/change': 'ProPlan_Change',
'ProXuan/team': 'ProXuan_Team',
'ProXuan/daily': 'ProXuan_Daily',
'ProXuan/quality': 'ProXuan_Quality',
'ProXuan/tempstock': 'ProXuan_TempStock',
'ProQian/workshop': 'ProQian_Workshop',
'ProQian/machine': 'ProQian_Machine',
'ProQian/schedule': 'ProQian_Schedule',
'ProQian/shifttime': 'ProQian_ShiftTime',
'ProQian/cocoon': 'ProQian_CocoonBoiling',
'ProQian/thread': 'ProQian_ThreadRecord',
'ProHou/daily': 'ProHou_Daily',
'ProHou/spool': 'ProHou_SpoolLedger',
'ProHou/check': 'ProHou_SpoolCheck',
'ProHou/weigh': 'ProHou_WeighBig',
'Lims/spoolcheck': 'Lims_SpoolCheck',
'Lims/blackboard': 'Lims_BlackBoard',
'Lims/denier': 'Lims_Denier',
'Lims/moisture': 'Lims_Moisture',
'Lims/abnormal': 'Lims_Abnormal',
'Lims/grade': 'Lims_GradeResult',
'Fims/batch': 'Fims_Batch',
'Fims/package': 'Fims_Package',
'Fims/instock': 'Fims_InStock',
'Fims/outstock': 'Fims_OutStock',
'Fims/stock': 'Fims_Stock',
'Sams/customer': 'Sams_Customer',
'Sams/contract': 'Sams_Contract',
'Sams/dispatch': 'Sams_DispatchPlan',
'Sams/payment': 'Sams_Payment',
'Sams/invoice': 'Sams_Invoice',
'HRS/employee': 'HRS_Employee',
'HRS/change': 'HRS_EmployeeChange',
'HRS/attendance': 'HRS_Attendance',
'HRS/dorm': 'HRS_Dorm',
'HRS/canteen': 'HRS_CanteenRecord',
'FlexPay/config': 'FlexPay_Config',
'FlexPay/scheme': 'FlexPay_Scheme',
'FlexPay/reward': 'FlexPay_Reward',
'FlexPay/piece': 'FlexPay_PieceResult',
'FlexPay/salary': 'FlexPay_Salary',
'FlexPay/payroll': 'FlexPay_Payroll',
'Enms/meter': 'Enms_Meter',
'Enms/reading': 'Enms_Reading',
'Enms/rule': 'Enms_AllocateRule',
'Enms/result': 'Enms_AllocateResult',
'Qums/grain': 'Qums_GrainCount',
'Qums/task': 'Qums_CheckTask',
'WmsWu/stock': 'WmsWu_Stock',
'WmsWu/instock': 'WmsWu_InStock',
'WmsWu/outstock': 'WmsWu_OutStock',
'WmsWu/plan': 'WmsWu_PurchasePlan',
'WmsWu/apply': 'WmsWu_Apply',
'WmsWu/ledger': 'WmsWu_Ledger',
'WmsFu/stock': 'WmsFu_Stock',
'WmsFu/instock': 'WmsFu_InStock',
'WmsFu/outstock': 'WmsFu_OutStock',
'BizBoss/cost': 'BizBoss_CostAllocate',
'BizBoss/profit': 'BizBoss_Profit',
'RepCenter/report': 'RepCenter_Report',
'RepCenter/design': 'RepCenter_ReportDesign',
'BoardCenter/board': 'BoardCenter_Board',
'ApiCenter/internal': 'ApiCenter_InternalApi',
'ApiCenter/external': 'ApiCenter_ExternalApi',
'ApiCenter/sync': 'ApiCenter_SyncLog',
'BaseSys/menu': 'BaseSys_Menu',
'BaseSys/org': 'BaseSys_Org',
'BaseSys/role': 'BaseSys_Role',
'BaseSys/user': 'BaseSys_User'
}
/** 根据 component 推断表名 */
export function resolveTable(component) {
if (!component) return null
if (TABLE_MAP[component]) return TABLE_MAP[component]
// 默认规则:Module/page → Module_PascalPage
const [mod, page] = component.split('/')
if (!page) return null
const pascal = page.charAt(0).toUpperCase() + page.slice(1)
return `${mod}_${pascal}`
}
/** 特殊页面:不经过通用 CRUD(如工作台、看板) */
export const SPECIAL_PAGES = new Set(['WorkBench/index'])
/**
* 详情页映射:component → 详情页路由(:id 占位替换)
* 配置后,通用 CRUD 列表操作列会显示"详情"按钮
*/
export const DETAIL_MAP = {
'Process/zhuangkou': '/process/zhuangkou-detail'
}
/** 根据 component 解析详情页路由(无则返回 null) */
export function resolveDetail(component) {
return component ? DETAIL_MAP[component] || null : null
}