import _ from 'lodash'; import sha256 from 'crypto-js/sha256.js'; export const BasicFuncs = ['view', 'add', 'edit', 'del', 'export']; export const BasicFuncsI18n = { view: { zhCn: '查看', en: 'view', }, add: { zhCn: '新增', en: 'add', }, edit: { zhCn: '编辑', en: 'edit', }, del: { zhCn: '删除', en: 'delete', }, export: { zhCn: '导出', en: 'export', }, shutdown: { zhCn: '停止', en: 'terminate', }, }; export const ScopeFuncs = 'moduleFuncs'; export const ScopeApp = 'moduleApps'; export const ScopeRoute = 'moduleRoutes'; export const appList = [ { name: 'spdmTaskList', zhCn: '新增待办', en: 'Pending Task', pages: [ { name: 'spdmTaskSponsor', zhCn: '新增待办', en: 'Pending Task', path: '/spdm/task/sponsor', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Warning', }, }, ] }, { name: 'spdm_ProjectProjectList', zhCn: '项目列表', en: 'Project List', pages: [ { name: 'spdmProjectProjectList', zhCn: '项目列表', en: 'Project List', path: '/spdm/project/projectList', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-MessageBox', }, }, ], }, { name: 'spdm_ProjectDashboard', zhCn: '仿真看板', en: 'Simulation Dashboard', pages: [ { name: 'spdmProjectDashboard', zhCn: '仿真看板', en: 'Simulation Dashboard', path: '/spdm/project/dashboard', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-DataBoard', }, }, ], }, { name: 'spdm_TaskConfirm', zhCn: '未分发的', en: 'I Confirmed', pages: [ { name: 'spdmTaskConfirm', zhCn: '未分发的', en: 'I Confirmed', path: '/spdm/task/confirm', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-DocumentChecked', }, }, ], }, { name: 'spdm_TaskSend', zhCn: '已分发的', en: 'I Distributed', pages: [ { name: 'spdmTaskSend', zhCn: '已分发的', en: 'I Distributed', path: '/spdm/task/send', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Message', }, }, ], }, { name: 'spdm_TaskExecute', zhCn: '我执行的', en: 'I Executed', pages: [ { name: 'spdmTaskExecute', zhCn: '我执行的', en: 'I Executed', path: '/spdm/task/execute', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-SetUp', }, }, ], }, { name: 'spdm_TaskAttention', zhCn: '我关注的', en: 'I Attention', pages: [ { name: 'spdmTaskAttention', zhCn: '我关注的', en: 'I Attention', path: '/spdm/task/attention', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Bell', }, }, ], }, { name: 'spdm_TaskAll', zhCn: '所有任务', en: 'All Tasks', pages: [ { name: 'spdmTaskAll', zhCn: '所有任务', en: 'All Tasks', path: '/spdm/task/all', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-DocumentCopy', }, }, ], }, { name: 'spdm_TaskExecution', zhCn: '仿真执行', en: 'Task Execution', pages: [ { name: 'spdmTaskExecution', zhCn: '仿真执行', en: 'Task Execution', path: '/spdm/task/execution', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Operation', }, }, ], }, { name: 'spdm_TaskWorkLoad', zhCn: '工作负载', en: 'Task Work Load', pages: [ { name: 'spdmTaskWorkLoad', zhCn: '工作负载', en: 'Task Work Load', path: '/spdm/task/workLoad', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Odometer', }, }, ], }, { name: 'spdm_TaskWorkerLoad', zhCn: '人力负载', en: 'Task Worker Load', pages: [ { name: 'spdmTaskWorkerLoad', zhCn: '人力负载', en: 'Task Worker Load', path: '/spdm/task/workerLoad', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-UserFilled', }, }, ], }, { name: 'spdm_DataOverview', zhCn: '数据总览', en: 'Data Overview', pages: [ { name: 'spdmDataOverview', zhCn: '数据总览', en: 'Data Overview', path: '/spdm/data/overview', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-DataAnalysis', }, }, ], }, { name: 'spdm_DataAnalysis', zhCn: '数据查询', en: 'Data Query', pages: [ { name: 'spdmDataAnalysis', zhCn: '数据查询', en: 'Data Query', path: '/spdm/data/analysis', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Search', }, }, ], }, { name: 'spdm_DataPermission', zhCn: '数据权限', en: 'Data Permission', pages: [ { name: 'spdmDataPermission', zhCn: '数据权限', en: 'Data Permission', path: '/spdm/data/permission', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Warning', }, }, ], }, { name: 'spdm_SimulationProcess', zhCn: '仿真流程', en: 'Simulation Process', pages: [ { name: 'spdmSimulationProcess', zhCn: '仿真流程', en: 'Simulation Process', path: '/spdm/simulation/process', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-FolderChecked', }, }, ], }, { name: 'spdm_SystemApplication', zhCn: '应用中心', en: 'Application Center', pages: [ { name: 'spdmSystemApplication', zhCn: '应用中心', en: 'Application Center', path: '/spdm/simulation/application', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Cellphone', }, }, ], }, { name: 'spdm_CompetenceCenterCondition', zhCn: '仿真工况库', en: 'Condition Library', pages: [ { name: 'spdmCompetenceCenterCondition', zhCn: '仿真工况库', en: 'Condition Library', path: '/spdm/competenceCenter/condition', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Suitcase', }, }, ], }, { name: 'spdm_CompetenceCenterKnowledge', zhCn: '仿真标准库', en: 'Knowledge Library', pages: [ { name: 'spdmCompetenceCenterKnowledge', zhCn: '仿真标准库', en: 'Knowledge Library', path: '/spdm/competenceCenter/knowledge', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Memo', }, }, ], }, { name: 'spdm_CompetenceCenterParameter', zhCn: '仿真参数库', en: 'Parameter Library', pages: [ { name: 'spdmCompetenceCenterParameter', zhCn: '仿真参数库', en: 'Parameter Library', path: '/spdm/competenceCenter/parameter', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Tickets', }, }, ], }, { name: 'spdm_CompetenceCenterReport', zhCn: '报告模板库', en: 'Report Library', pages: [ { name: 'spdmCompetenceCenterReport', zhCn: '报告模板库', en: 'Report Library', path: '/spdm/competenceCenter/report', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Edit', }, }, ], }, { name: 'spdm_CompetenceCenterAnimation', zhCn: '仿真动画库', en: 'Animation Library', pages: [ { name: 'spdmCompetenceCenterAnimation', zhCn: '仿真动画库', en: 'Animation Library', path: '/spdm/competenceCenter/animation', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-VideoCamera', }, }, ], }, { name: 'spdm_SystemStorage', zhCn: '存储管理', en: 'Data Storage', pages: [ { name: 'spdmSystemStorage', zhCn: '存储管理', en: 'Data Storage', path: '/spdm/system/storage', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Wallet', }, }, ], }, { name: 'spdm_SystemDictionary', zhCn: '数据字典', en: 'Data Dictionary', pages: [ { name: 'spdmSystemDictionary', zhCn: '数据字典', en: 'Data Dictionary', path: '/spdm/system/dictionary', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Collection', }, }, ], }, { name: 'spdm_SystemConfiguration', zhCn: '业务配置', en: 'Configuration Management', pages: [ { name: 'spdmSystemConfiguration', zhCn: '业务配置', en: 'Configuration Management', path: '/spdm/system/configuration', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Setting', }, }, ], }, { name: 'spdm_SystemPermission', zhCn: '操作权限', en: 'Permission', pages: [ { name: 'spdmSystemPermission', zhCn: '操作权限', en: 'Permission', path: '/spdm/system/permission', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Lock', }, }, ], }, { name: 'spdm_SystemLogs', zhCn: '日志管理', en: 'Logs', pages: [ { name: 'spdmSystemLogs', zhCn: '日志管理', en: 'Logs', path: '/spdm/system/logs', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Link', }, }, ], }, { name: 'spdm_SystemDynamicTable', zhCn: '动态表格', en: 'Dynamic Table', pages: [ { name: 'spdmSystemDynamicTable', zhCn: '动态表格', en: 'Dynamic Table', path: '/spdm/system/dynamicTable', component: () => import('/@/spdm/views/index.vue'), meta: { icon: 'ele-Document', }, }, ], }, { name: 'project', zhCn: '项目管理', en: 'Project Management', pages: [ { name: 'projectList', zhCn: '项目列表', en: 'Project List', path: '/project/list', component: () => import('/@/views/honeycom-pm/project/project_list.vue'), meta: { icon: 'iconfont icon-diannao1', }, }, { name: 'projectDetail', zhCn: '项目详情', en: 'Project Detail', path: '/project/detail', component: () => import('/@/views/honeycom-pm/task/index.vue'), meta: { isKeepAlive: true, parentName: 'projectList', }, }, { name: 'projectSet', zhCn: '项目设置', en: 'Project Set', path: '/project/set', component: () => import('/@/views/honeycom-pm/project/set/projectSet.vue'), meta: { parentName: 'projectDetail', }, }, ], }, { name: 'task', zhCn: '审批流程', en: 'Task Center', functions: ['shutdown'], pages: [ { name: 'taskPending', zhCn: '待办任务', en: 'Pending Task', path: '/task/pending', component: () => import('/@/views/flow/task/pending.vue'), meta: { icon: 'fa fa-flag-checkered', }, }, // { // name: 'taskTransfer', // zhCn: '转办任务', // en: 'Transfer Task', // path: '/task/transfer', // component: () => import('/@/views/flow/task/transfer.vue'), // meta: { // icon: 'fa fa-share-square', // }, // }, // { // name: 'taskStarted', // zhCn: '发起任务', // en: 'Started Task', // path: '/task/started', // component: () => import('/@/views/flow/task/started.vue'), // meta: { // icon: 'fa fa-plane', // }, // }, // { // name: 'taskCc', // zhCn: '抄送任务', // en: 'CC Task', // path: '/task/cc', // component: () => import('/@/views/flow/task/cc.vue'), // meta: { // icon: 'fa fa-arrow-circle-right', // }, // }, { name: 'taskCompleted', zhCn: '已完成任务', en: 'Completed Task', path: '/task/completed', component: () => import('/@/views/flow/task/completed.vue'), meta: { icon: 'fa fa-hand-o-right', }, }, { name: 'flowGroup', zhCn: '流程模板管理', en: 'Flow List', path: '/flow/group', component: () => import('/@/views/flow/group/index.vue'), meta: { icon: 'iconfont icon-gongju', }, }, ], }, { name: 'form_template', zhCn: '表单管理', en: 'Form Management', pages: [ { name: 'formTemplateList', zhCn: '表单列表', en: 'Form Template List', path: '/form-template/list', component: () => import('/@/views/form/template/index.vue'), meta: { icon: 'iconfont icon-putong', }, }, { name: 'formTemplateVersion', zhCn: '表单版本', en: 'Form Template Version', path: '/form-template/version', component: () => import('/@/views/form/template/version.vue'), meta: { icon: 'iconfont icon-barcode-qr', parentName: `formTemplateList`, }, }, ], }, { name: 'flow_template', zhCn: '流程模板管理', en: 'Flow Template Management', pages: [ // { // name: 'flowGroup', // zhCn: '流程列表', // en: 'Flow List', // path: '/flow/group', // component: () => import('/@/views/flow/group/index.vue'), // meta: { // icon: 'iconfont icon-gongju', // }, // }, { name: 'flowCreate', zhCn: '创建流程', en: 'Create Flow Template', path: '/flow/create', component: () => import('/@/views/flow/create/all.vue'), meta: { icon: 'fa fa-arrow-circle-right', parentName: 'flowGroup', }, }, ], }, { name: 'flow_initiate', zhCn: '发起流程', en: 'Initiate Flow', pages: [ { name: 'flowInitiate', zhCn: '发起流程', en: 'Initiate Flow', path: '/flow/initiate', component: () => import('/@/views/flow/list/index.vue'), meta: { icon: 'fa fa-play', }, }, ], }, { name: 'screen_billboard', zhCn: '大屏看板', en: 'Screen Billboard', pages: [ { name: 'screenBillboardList', zhCn: '大屏看板列表', en: 'Screen Billboard List', path: '/screenBillboard/list', component: () => import('/@/views/tools/data/report.vue'), meta: { icon: 'iconfont icon-shuju', }, }, ], }, { name: 'system_file', zhCn: '文件管理', en: 'File Management', pages: [ { name: 'fileList', zhCn: '文件列表', en: 'File List', path: '/file/list', component: () => import('/@/views/admin/file/index.vue'), meta: { icon: 'ele-Files', }, }, ], }, { name: 'data_report', zhCn: '数据报表', en: 'Data Report', pages: [ { name: 'dataReportList', zhCn: '数据报表列表', en: 'Data Report List', path: '/data-report/list', component: () => import('/@/views/tools/data/jimu.vue'), meta: { icon: 'iconfont icon-ico_shuju', }, }, ], }, { name: 'tenant_staff', zhCn: '员工管理', en: 'Staff Management', pages: [ { name: 'organizationStaffList', zhCn: '员工列表', en: 'Staff List', path: '/organization/staff', component: () => import('/@/views/admin/system/user/index.vue'), meta: { icon: 'ele-User', }, }, ], }, { name: 'tenant_role', zhCn: '角色管理', en: 'Role Management', pages: [ { name: 'organizationRoleList', zhCn: '角色列表', en: 'Role List', path: '/organization/role', component: () => import('/@/views/admin/system/role/index.vue'), meta: { icon: 'iconfont icon-gerenzhongxin', }, }, ], }, { name: 'tenant_dept', zhCn: '部门管理', en: 'Dept Management', pages: [ { name: 'organizationDeptList', zhCn: '部门列表', en: 'Dept List', path: '/organization/dept', component: () => import('/@/views/admin/system/dept/index.vue'), meta: { icon: 'iconfont icon-zidingyibuju', }, }, ], }, { name: 'tenant_post', zhCn: '岗位管理', en: 'Post Management', pages: [ { name: 'organizationPostList', zhCn: '岗位列表', en: 'Post List', path: '/organization/post', component: () => import('/@/views/admin/system/sysPost/index.vue'), meta: { icon: 'iconfont icon--chaifenhang', }, }, ], }, { name: 'tenant_invite', zhCn: '邀请管理', en: 'Invite Management', pages: [ { name: 'organizationInviteList', zhCn: '邀请列表', en: 'Invite List', path: '/organization/invite', component: () => import('/@/views/home/invite/index.vue'), meta: { icon: 'iconfont icon-shouye_dongtaihui', }, }, ], }, { name: 'platform_user', zhCn: '用户管理', en: 'User Management', pages: [ { name: 'platformUser', zhCn: '用户管理', en: 'User Management', path: '/platform/user', component: () => import('/@/views/admin/sysAccount/index.vue'), meta: { icon: 'ele-Avatar', }, }, ], }, { name: 'platform_tenant', zhCn: '租户管理', en: 'Tenant Management', pages: [ { name: 'platformTenant', zhCn: '租户管理', en: 'Tenant Management', path: '/platform/tenant', component: () => import('/@/views/admin/system/tenant/index.vue'), meta: { icon: 'iconfont icon-shuxingtu', }, }, ], }, { name: 'platform_package', zhCn: '套餐管理', en: 'Package Management', pages: [ { name: 'platformPackage', zhCn: '套餐管理', en: 'Package Management', path: '/platform/package', component: () => import('/@/views/admin/system/package/index.vue'), meta: { icon: 'ele-Box', }, }, ], }, { name: 'system_cache', zhCn: '缓存管理', en: 'Cache Management', pages: [ { name: 'toolsCache', zhCn: '缓存管理', en: 'Cache Management', path: '/tools/cache', component: () => import('/@/views/tools/data/cache.vue'), meta: { icon: 'iconfont icon-shuju', }, }, ], }, { name: 'system_quartz', zhCn: '定时任务', en: 'Quartz Management', pages: [ { name: 'toolsQuartz', zhCn: '定时任务', en: 'Quartz Management', path: '/tools/quartz', component: () => import('/@/views/tools/job-manage/index.vue'), meta: { icon: 'ele-AlarmClock', }, }, ], }, { name: 'system_message', zhCn: '站内信管理', en: 'Message Management', pages: [ { name: 'toolsMessage', zhCn: '站内信管理', en: 'Message Management', path: '/tools/message', component: () => import('/@/views/tools/message/index.vue'), meta: { icon: 'iconfont icon-zhongduancanshuchaxun', }, }, ], }, { name: 'aisu_upload', zhCn: '爱数上传', en: 'Aisu Upload', pages: [ { name: 'aisuUpload', zhCn: '爱数上传', en: 'Aisu Upload', path: '/tools/aisu-upload', component: () => import('/@/views/tools/aisuUpload/index.vue'), meta: { icon: 'iconfont icon-zhongduancanshuchaxun', }, }, ], }, { name: 'log_audit', zhCn: '审计日志', en: 'Audit Log', pages: [ { name: 'logAudit', zhCn: '审计日志', en: 'Audit Log', path: '/log/audit', component: () => import('/@/views/admin/audit/index.vue'), meta: { icon: 'iconfont icon-biaodan', }, }, ], }, { name: 'log_operation', zhCn: '操作日志', en: 'Audit Log', pages: [ { name: 'logOperation', zhCn: '操作日志', en: 'Operation Log', path: '/log/operation', component: () => import('/@/views/admin/log/index.vue'), meta: { icon: 'iconfont icon-jinridaiban', }, }, ], }, { name: 'log_hrsync', zhCn: '同步日志', en: 'Synchronous Log', pages: [ { name: 'logHrsync', zhCn: '同步日志', en: 'Synchronous Log', path: '/log/hrsync', component: () => import('/@/views/admin/log/sync-index.vue'), meta: { icon: 'iconfont icon-jinridaiban', }, }, ], }, { name: 'system_route', zhCn: '路由管理', en: 'Route Management', pages: [ { name: 'toolsRoute', zhCn: '路由管理', en: 'Route Management', path: '/tools/route', component: () => import('/@/views/tools/route/index.vue'), meta: { icon: 'iconfont icon-crew_feature', }, }, ], }, { name: 'system_dict', zhCn: '字典管理', en: 'Dictionary Management', pages: [ { name: 'sysDict', zhCn: '字典管理', en: 'Dictionary Management', path: '/system/dict', component: () => import('/@/views/admin/dict/index.vue'), meta: { icon: 'iconfont icon-zhongduancanshuchaxun', }, }, ], }, { name: 'system_param', zhCn: '参数管理', en: 'Parameter Management', pages: [ { name: 'systemParam', zhCn: '参数管理', en: 'Parameter Management', path: '/system/param', component: () => import('/@/views/admin/param/index.vue'), meta: { icon: 'iconfont icon-wenducanshu-05', }, }, ], }, { name: 'system_client', zhCn: '终端管理', en: 'Client Management', pages: [ { name: 'systemClient', zhCn: '终端管理', en: 'Client Management', path: '/system/client', component: () => import('/@/views/admin/client/index.vue'), meta: { icon: 'iconfont icon-gongju', }, }, ], }, { name: 'system_social', zhCn: '社交管理', en: 'Social Management', pages: [ { name: 'systemSocial', zhCn: '社交管理', en: 'Social Management', path: '/system/social', component: () => import('/@/views/admin/social/index.vue'), meta: { icon: 'iconfont icon-quanxian', }, }, ], }, { name: 'system_token', zhCn: '令牌管理', en: 'Dictionary Management', pages: [ { name: 'systemToken', zhCn: '令牌管理', en: 'Token Management', path: '/system/token', component: () => import('/@/views/admin/token/index.vue'), meta: { icon: 'ele-Key', }, }, ], }, { name: 'system_region', zhCn: '区域管理', en: 'Region Management', pages: [ { name: 'systemRegion', zhCn: '区域管理', en: 'Region Management', path: '/system/region', component: () => import('/@/views/admin/sysArea/index.vue'), meta: { icon: 'iconfont icon-neiqianshujuchucun', }, }, ], }, { name: 'meiyun_product', zhCn: '日化产品管理', en: 'Product Management', pages: [ { name: 'meiyunProductList', zhCn: '产品列表', en: 'Product List', path: '/meiyun/product/list', component: () => import('/@/views/meiyun/product/list.vue'), meta: { icon: 'iconfont icon-yunxiazai_o', }, }, { name: 'meiyunProductDetail', zhCn: '产品详情', en: 'Product Detail', path: '/meiyun/product/detail', component: () => import('/@/views/meiyun/product/detail.vue'), meta: { icon: 'iconfont icon-yunxiazai_o', parentName: 'meiyunProductList', }, }, ], }, { name: 'meiyun_formula', zhCn: '配方管理', en: 'Formula Management', pages: [ { name: 'meiyunFormulaList', zhCn: '配方列表', en: 'Formula List', path: '/meiyun/formula/index', component: () => import('/@/views/meiyun/formula/index.vue'), meta: { icon: 'iconfont icon-AIshiyanshi', }, }, ], }, { name: 'meiyun_packingReceptacle', zhCn: '包材管理', en: 'Packing Receptacle Management', }, { name: 'meiyun_formulaInnerStandard', zhCn: '配方内控标准管理', en: 'Formula Inner Standard Management', pages: [ { name: 'meiyunFormulaInnerStandardList', zhCn: '配方内控标准列表', en: 'Formula Inner Standard List', path: '/meiyun/formulaInnerStandard/index', component: () => import('/@/views/meiyun/formulaInnerStandard/index.vue'), meta: { icon: 'iconfont icon-AIshiyanshi', }, }, ], }, { name: 'meiyun_formulaMakeupDemo', zhCn: '配方打样', en: 'Formula Making Samples', pages: [ { name: 'meiyunFormulaMakeupDemo', zhCn: '配方打样', en: 'Formula Making Samples', path: '/meiyun/formulaMakeupDemo/index', component: () => import('/@/views/meiyun/formulaMakeupDemo/index.vue'), meta: { icon: 'iconfont icon-AIshiyanshi', }, }, { name: 'meiyunFormulaMakeupDemoDetail', zhCn: '配方打样详情', en: 'Formula Making Samples Detail', path: '/meiyun/formulaMakeupDemoDetail/index', component: () => import('/@/views/meiyun/formulaMakeupDemoDetail/index.vue'), meta: { icon: 'iconfont icon-bolangneng', }, }, ], }, { name: 'meiyun_formulaSample', zhCn: '配方样品', en: 'Formula Samples', }, { name: 'meiyun_formulaMakeupDemoFile', zhCn: '配方打样附件', en: 'Formula Making Samples Files', }, { name: 'meiyun_formulaSampleTestItem', zhCn: '配方样品测试报告', en: 'Formula Samples Test Items', }, { name: 'meiyun_formulaComparison', zhCn: '配方对比', en: 'Formula Comparison', pages: [ { name: 'meiyunFormulaComparison', zhCn: '配方对比', en: 'Formula Comparison', path: '/meiyun/formulaComparison/index', component: () => import('/@/views/meiyun/formulaComparison/index.vue'), meta: { icon: 'iconfont icon-AIshiyanshi', }, }, ], }, { name: 'meiyun_sampleTesting', zhCn: '样品测试', en: 'Sample Testing', pages: [ { name: 'meiyunSampleTestingList', zhCn: '样品测试', en: 'Sample Testing', path: '/meiyun/sampleTesting/list', component: () => import('/@/views/meiyun/sampleTesting/list.vue'), meta: { icon: 'mdi mdi-contacts', }, }, { name: 'meiyunSampleTestingDetail', zhCn: '样品测试详情', en: 'Sample Testing Detail', path: '/meiyun/sampleTesting/detail', component: () => import('/@/views/meiyun/sampleTesting/detail.vue'), meta: { icon: 'iconfont icon-yunxiazai_o', parentName: 'meiyunSampleTestingList', }, }, ], }, { name: 'meiyun_packMaterialProofing', zhCn: '包材打样', en: 'Pack Material Proofing', pages: [ { name: 'meiyunPackMaterialProofing', zhCn: '包材打样', en: 'Pack Material Proofing', path: '/meiyun/packMaterialProofing/index', component: () => import('/@/views/meiyun/packMaterialProofing/index.vue'), meta: { icon: 'ele-Box', }, }, { name: 'meiyunPackMaterialProofingDetail', zhCn: '包材打样详情', en: 'Pack Material Proofing Detail', path: '/meiyun/packMaterialProofingDetail/index', component: () => import('/@/views/meiyun/packMaterialProofingDetail/index.vue'), meta: { icon: 'iconfont icon-shuaxin', parentName: 'meiyunPackMaterialProofing', }, }, ], }, { name: 'meiyun_packMaterialFile', zhCn: '包材打样附件', en: 'Pack Material Proofing Files', }, { name: 'meiyun_packMaterialSample', zhCn: '包材样品', en: 'Pack Material Samples', }, { name: 'meiyun_packageSample', zhCn: '包装样品', en: 'Package Samples', }, { name: 'meiyun_material', zhCn: '原料管理', en: 'Material Management', pages: [ { name: 'meiyunMaterialList', zhCn: '原料列表', en: 'Material List', path: '/meiyun/material/index', component: () => import('/@/views/meiyun/material/index.vue'), meta: { icon: 'iconfont icon-shuxingtu', }, }, { name: 'meiyunMaterialDetail', zhCn: '原料详情', en: 'Material Detail', path: '/meiyun/material/detail', component: () => import('/@/views/meiyun/material/detail.vue'), meta: { icon: 'iconfont icon-shuxingtu', parentName: 'meiyunMaterialList', }, }, ], }, { name: 'meiyun_manufacturer', zhCn: '生产商管理', en: 'Manufacturer Management', pages: [ { name: 'meiyunManufacturerList', zhCn: '生产商列表', en: 'Manufacturer List', path: '/meiyun/manufacturer', component: () => import('/@/views/meiyun/supplier/index.vue'), meta: { icon: 'iconfont icon-icon-', }, }, ], }, { name: 'meiyun_supplier', zhCn: '供应商管理', en: 'Supplier Management', pages: [ { name: 'supplierList', zhCn: '供应商列表', en: 'Supplier List', path: '/meiyun/supplier', component: () => import('/@/views/meiyun/supplier/index.vue'), meta: { icon: 'iconfont icon-gerenzhongxin', }, }, ], }, { name: 'meiyun_formulation_review', zhCn: '法规核查', en: 'Formulation Review', pages: [ { name: 'meiyunFormulationReview', zhCn: '法规核查', en: 'Formulation Review', path: '/meiyun/honeycom-cm/cosmetics/formulation-review/List', component: () => import('/@/views/meiyun/honeycom-cm/cosmetics/formulation-review/List.vue'), meta: { icon: 'mdi mdi-road', }, }, ], }, { name: 'meiyun_packing', zhCn: '包材列表', en: 'Packing List', pages: [ { name: 'meiyunPackingList', zhCn: '包材列表', en: 'Packing List', path: '/meiyun/packing/index', component: () => import('/@/views/meiyun/packing/index.vue'), meta: { icon: 'iconfont icon-shouye_dongtaihui', }, }, ], }, { name: 'meiyun_qmsFileManage', zhCn: 'QMS文件管理', en: 'QMS File Management', pages: [ { name: 'meiyunQmsFileManage', zhCn: 'QMS文件管理', en: 'QMS File Management', path: '/meiyun/qmsFileManage/index', component: () => import('/@/views/meiyun/qmsFileManage/index.vue'), meta: { icon: 'iconfont icon-quanjushezhi_o', }, }, ], }, { name: 'meiyun_implementationStandards', zhCn: '化妆品执行标准', en: 'Implementation Standards', pages: [ { name: 'meiyunImplementationStandards', zhCn: '化妆品执行标准', en: 'Implementation Standards', path: '/meiyun/implementationStandards/index', component: () => import('/@/views/meiyun/implementationStandards/index.vue'), meta: { icon: 'ele-Notebook', }, }, ], }, { name: 'meiyun_riskySubstances', zhCn: '风险物质管理', en: 'Risky Substances Management', pages: [ { name: 'meiyunRiskySubstancesList', zhCn: '风险物质列表', en: 'Risky Substances List', path: '/meiyun/baseData/riskySubstances/index', component: () => import('/@/views/meiyun/baseData/riskySubstances/index.vue'), meta: { icon: 'ele-Notebook', }, }, ], }, { name: 'meiyun_toxicologyDatabase', zhCn: '毒理数据', en: 'Toxicology Database', pages: [ { name: 'meiyunToxicologyDatabase', zhCn: '毒理数据', en: 'Toxicology Database', path: '/meiyun/honeycom-cm/cosmetics/toxicology-database/regulation/index', component: () => import('/@/views/meiyun/honeycom-cm/cosmetics/toxicology-database/regulation/index.vue'), meta: { icon: 'mdi mdi-cone', }, }, ], }, { name: 'meiyun_inciForbidden_chemistry', zhCn: '化妆品禁用原料目录', en: 'INCI Forbidden List', pages: [ { name: 'meiyunInciForbiddenChemistryList', zhCn: '化妆品禁用原料目录', en: 'INCI Forbidden List', path: '/meiyun/inciForbidden/chemistry', component: () => import('/@/views/meiyun/inciForbidden/index.vue'), meta: { icon: 'ele-Chicken', }, }, ], }, { name: 'meiyun_inciForbidden_organism', zhCn: '化妆品禁用植(动)物原料目录', en: 'INCI Forbidden List', pages: [ { name: 'meiyunInciForbiddenOrganismList', zhCn: '化妆品禁用植(动)物原料目录', en: 'INCI Forbidden List', path: '/meiyun/inciForbidden/organism', component: () => import('/@/views/meiyun/inciForbidden/index.vue'), meta: { icon: 'ele-HelpFilled', }, }, ], }, { name: 'meiyun_inciRestricted_ordinary', zhCn: '化妆品限用原料目录(表3)', en: 'INCI Restricted List', pages: [ { name: 'meiyunInciRestrictedOrdinaryList', zhCn: '化妆品限用原料目录(表3)', en: 'INCI Restricted List', path: '/meiyun/inciRestricted/ordinary', component: () => import('/@/views/meiyun/inciRestricted/index.vue'), meta: { icon: 'iconfont icon-crew_feature', }, }, ], }, { name: 'meiyun_inciRestricted_preservative', zhCn: '化妆品准用防腐剂(表4)', en: 'INCI Restricted List', pages: [ { name: 'meiyunInciRestrictedPreservativeList', zhCn: '化妆品准用防腐剂(表4)', en: 'INCI Restricted List', path: '/meiyun/inciRestricted/preservative', component: () => import('/@/views/meiyun/inciRestricted/index.vue'), meta: { icon: 'iconfont icon-shidu', }, }, ], }, { name: 'meiyun_inciRestricted_sunscreen', zhCn: '化妆品准用防晒剂(表5)', en: 'INCI Restricted List', pages: [ { name: 'meiyunInciRestrictedSunscreenList', zhCn: '化妆品准用防晒剂(表5)', en: 'INCI Restricted List', path: '/meiyun/inciRestricted/sunscreen', component: () => import('/@/views/meiyun/inciRestricted/index.vue'), meta: { icon: 'iconfont icon-zhongyingwenyuyan', }, }, ], }, { name: 'meiyun_colorant', zhCn: '化妆品准用着色剂(表6)', en: 'Colorant List', pages: [ { name: 'meiyunColorantList', zhCn: '化妆品准用着色剂(表6)', en: 'Colorant List', path: '/meiyun/colorant', component: () => import('/@/views/meiyun/colorant/index.vue'), meta: { icon: 'ele-Expand', }, }, ], }, { name: 'meiyun_inciRestricted_hairDye', zhCn: '化妆品准用染发剂(表7)', en: 'INCI Restricted List', pages: [ { name: 'meiyunInciRestrictedHairDyeList', zhCn: '化妆品准用染发剂(表7)', en: 'INCI Restricted List', path: '/meiyun/inciRestricted/hairDye', component: () => import('/@/views/meiyun/inciRestricted/index.vue'), meta: { icon: 'iconfont icon-gongju', }, }, ], }, { name: 'meiyun_standardItems', zhCn: '执行标准明细', en: 'Standard Items', pages: [ { name: 'meiyunStandardItemsList', zhCn: '执行标准明细', en: 'Standard Items', path: '/meiyun/standardItems', component: () => import('/@/views/meiyun/standardItems/index.vue'), meta: { icon: 'iconfont icon-bolangneng', }, }, ], }, { name: 'meiyun_inci', zhCn: 'INCI管理', en: 'INCI Management', pages: [ { name: 'meiyunInciList', zhCn: 'INCI管理', en: 'INCI Management', path: '/meiyun/inci', component: () => import('/@/views/meiyun/inci/index.vue'), meta: { icon: 'ele-Apple', }, }, ], }, { name: 'meiyun_inStandardCheckItem', zhCn: '配方内控检测项目', en: 'Inner Standard Check Item', pages: [ { name: 'meiyunInnerStandardCheckItemList', zhCn: '配方内控检测项目', en: 'Inner Standard Check Item', path: '/meiyun/innerStandardCheckItem', component: () => import('/@/views/meiyun/innerStandardCheckItem/index.vue'), meta: { icon: 'iconfont icon-bolangnengshiyanchang', }, }, ], }, { name: 'meiyun_qmsVerificationMetric', zhCn: 'QMS检测指标', en: 'QMS Verification Metric', pages: [ { name: 'meiyunQmsVerificationMetricList', zhCn: 'QMS检测指标', en: 'QMS Verification Metric', path: '/meiyun/qmsVerificationMetric', component: () => import('/@/views/meiyun/qmsVerificationMetric/index.vue'), meta: { icon: 'ele-Fold', }, }, ], }, { name: 'meiyun_qmsStandardDocument', zhCn: 'QMS标准文档', en: 'QMS Standard Document', pages: [ { name: 'meiyunQmsStandardDocument', zhCn: 'QMS标准文档', en: 'QMS Standard Document', path: '/meiyun/qmsStandardDocument', component: () => import('/@/views/meiyun/qmsStandardDocument/index.vue'), meta: { icon: 'iconfont icon-shuxing', }, }, ], }, // { // path: '/message/config', // name: 'moduleRoutes.messageConfig', // component: () => import('/@/views/message/config.vue'), // meta: {icon: 'iconfont icon-shuju'}, // }, // { // path: '/message/list', // name: 'moduleRoutes.messageList', // component: () => import('/@/views/message/list.vue'), // meta: {icon: 'iconfont icon-shuju'}, // }, // { // path: '/message/detail', // name: 'moduleRoutes.messageDetail', // component: () => import('/@/views/message/detail.vue'), // meta: {icon: 'iconfont icon-shuju'}, // }, // { // path: '/message/records', // name: 'moduleRoutes.messageRecords', // component: () => import('/@/views/message/records.vue'), // meta: {icon: 'iconfont icon-shuju'}, // }, { name: 'message_config', zhCn: '消息配置', en: 'Message Configuration', pages: [ { name: 'messageConfig', zhCn: '消息配置', en: 'Message Configuration', path: '/message/config', component: () => import('/@/views/message/config.vue'), meta: { icon: 'iconfont icon-shuju', }, }, ], }, { name: 'message_list', zhCn: '消息列表', en: 'Message List', pages: [ { name: 'messageList', zhCn: '消息列表', en: 'Message List', path: '/message/list', component: () => import('/@/views/message/list.vue'), meta: { icon: 'iconfont icon-shuju', }, }, { name: 'messageDetail', zhCn: '消息详情', en: 'Message Detail', path: '/message/detail', component: () => import('/@/views/message/detail.vue'), meta: { icon: 'iconfont icon-shuju', parentName: 'messageList', }, }, ], }, { name: 'message_records', zhCn: '消息记录', en: 'Message Records', pages: [ { name: 'messageRecords', zhCn: '消息记录', en: 'Message Records', path: '/message/records', component: () => import('/@/views/message/records.vue'), meta: { icon: 'iconfont icon-shuju', }, }, ], }, { name: 'mold_management', zhCn: '产品管理', en: 'Product Management', pages: [ { name: 'moldList', zhCn: '产品列表', en: 'Product List', path: '/mold/list', component: () => import('/@/views/mold/product/list.vue'), meta: { icon: 'iconfont icon-yunxiazai_o', }, }, { name: 'moldDetail', zhCn: '产品详情', en: 'Product Detail', path: '/mold/detail', component: () => import('/@/views/mold/product/detail.vue'), meta: { icon: 'iconfont icon-yunxiazai_o', parentName: 'moldList', }, }, { name: 'moldDataPermission', zhCn: '产品数据权限', en: 'ProductData Permission', path: '/mold/data-permission', component: () => import('/@/views/mold/product/data-permission.vue'), meta: { icon: 'iconfont icon-yunxiazai_o', parentName: 'moldDetail', }, }, ], }, { name: 'mold_part_management', zhCn: '零件管理', en: 'Part Management', pages: [ { name: 'moldPartList', zhCn: '零件列表', en: 'Part List', path: '/mold/part/list', component: () => import('/@/views/mold/part/list.vue'), meta: { icon: 'iconfont icon-yunxiazai_o', }, }, { name: 'moldPartDetail', zhCn: '零件详情', en: 'Part Detail', path: '/mold/part/detail/:moldPartId', component: () => import('/@/views/mold/part/detail.vue'), meta: { icon: 'iconfont icon-yunxiazai_o', parentName: 'moldPartList', }, }, ], }, { name: 'material_information_table', zhCn: '材料信息库', en: 'Material Information Table', pages: [ { name: 'materialInformationTable', zhCn: '材料信息库', en: 'Material Information Table', path: '/industrial/material', component: () => import('/@/views/industrial/material/index.vue'), meta: { icon: 'iconfont icon-yunxiazai_o' }, }, ], }, { name: 'material_color_error', zhCn: '颜色公差库', en: 'Color Tolerance Table', pages: [ { name: 'materialColorError', zhCn: '颜色公差库', en: 'Color Tolerance Table', path: '/industrial/color-error', component: () => import('/@/views/industrial/colorError/index.vue'), meta: { icon: 'iconfont icon-AIshiyanshi' }, }, ], }, { name: 'erp_material', zhCn: '物料管理', en: 'Material Management', pages: [ { path: '/industrial/erp-material', name: 'erpMaterial', zhCn: '物料管理', en: 'Material Management', component: () => import('/@/views/industrial/erp/index.vue'), meta: { icon: 'iconfont icon-AIshiyanshi', code: 'material_color_error_view' }, }, ], }, ]; export const navList = [ { name: 'spdmProject', zhCn: '项目管理', en: 'Project Management', subApps: ['spdm_ProjectProjectList', 'spdm_ProjectDashboard'], meta: { icon: 'ele-House', }, }, { name: 'spdmTask', zhCn: '任务管理', en: 'Task Management', subApps: ['spdm_TaskConfirm', 'spdm_TaskSend', 'spdm_TaskExecute', 'spdm_TaskAttention', 'spdm_TaskAll', 'spdm_TaskExecution', 'spdm_TaskWorkLoad', 'spdm_TaskWorkerLoad'], meta: { icon: 'ele-Calendar', }, }, { name: 'spdmData', zhCn: '数据管理', en: 'Data Management', subApps: ['spdm_DataOverview', 'spdm_DataAnalysis', 'spdm_DataPermission'], meta: { icon: 'ele-TakeawayBox', }, }, { name: 'spdmSimulation', zhCn: '流程管理', en: 'Process Management', subApps: ['spdm_SimulationProcess', 'spdm_SystemApplication'], meta: { icon: 'ele-Finished', }, }, { name: 'spdmCompetenceCenter', zhCn: '能力中心', en: 'Capability Center', subApps: ['spdm_CompetenceCenterCondition', 'spdm_CompetenceCenterKnowledge', 'spdm_CompetenceCenterParameter', 'spdm_CompetenceCenterReport', 'spdm_CompetenceCenterAnimation'], meta: { icon: 'ele-Reading', }, }, { name: 'spdmSystem', zhCn: '系统管理', en: 'System Administration', subApps: ['spdm_SystemStorage', 'spdm_SystemDictionary', 'spdm_SystemConfiguration', 'spdm_SystemPermission', 'spdm_SystemLogs', 'spdm_SystemDynamicTable', 'message_records'], meta: { icon: 'ele-Monitor', }, }, { name: 'collaborative', zhCn: '协同办公', en: 'Collaborative Office', subApps: ['flow_initiate'], meta: { icon: 'ele-Present', }, }, { name: 'cosmeticsBasic', zhCn: '化妆品行业基础数据', en: 'Cosmetics Basic Data', subApps: [ 'meiyun_implementationStandards', 'meiyun_riskySubstances', 'meiyun_toxicologyDatabase', 'meiyun_inciForbidden_chemistry', 'meiyun_inciForbidden_organism', 'meiyun_inciRestricted_ordinary', 'meiyun_inciRestricted_preservative', 'meiyun_inciRestricted_sunscreen', 'meiyun_colorant', 'meiyun_inciRestricted_hairDye', 'meiyun_qmsVerificationMetric', 'meiyun_inStandardCheckItem', 'meiyun_inci', 'meiyun_qmsFileManage', 'meiyun_qmsStandardDocument', ], meta: { icon: 'iconfont icon-dongtai', }, }, { name: 'organization', zhCn: '组织架构管理', en: 'Organization Management', subApps: ['tenant_staff', 'tenant_role', 'tenant_dept', 'tenant_post'], meta: { icon: 'iconfont icon-icon-', }, }, { name: 'platform', zhCn: '平台管理', en: 'Platform Management', subApps: ['platform_user', 'platform_tenant', 'platform_package'], meta: { icon: 'iconfont icon-caidan', }, }, { name: 'tools', zhCn: '基础工具', en: 'Base Tools', subApps: ['system_quartz', 'system_message', 'aisu_upload'], meta: { icon: 'iconfont icon-gongju', }, }, { name: 'log', zhCn: '日志管理', en: 'Log Management', subApps: ['log_audit', 'log_operation'], meta: { icon: 'ele-Cloudy', }, }, { name: 'message', zhCn: '消息中心', en: 'Message Management', subApps: ['message_config', 'message_list'], meta: { icon: 'iconfont icon-shuju', }, }, { name: 'system', zhCn: '系统设置', en: 'System Setting', subApps: ['system_route', 'system_dict', 'system_param', 'system_client', 'system_social', 'system_token', 'system_region', 'system_cache'], meta: { icon: 'iconfont icon-quanjushezhi_o', }, }, { name: 'industrial_resource_bank', zhCn: '工业资源库', en: 'Industrial Resource Bank', subApps: ['material_information_table', 'material_color_error', 'erp_material'], meta: { icon: 'iconfont icon-quanjushezhi_o', }, }, ]; export const menuList = [ { appName: 'spdmTaskList', }, { navName: 'spdmProject', }, { navName: 'spdmTask', }, { navName: 'spdmData', }, { navName: 'spdmSimulation', }, { navName: 'spdmCompetenceCenter', }, { navName: 'spdmSystem', }, { appName: 'meiyun_product', subApps: [ 'meiyun_formula', 'meiyun_formulaMakeupDemo', 'meiyun_formulaComparison', 'meiyun_sampleTesting', 'meiyun_packMaterialProofing', 'meiyun_material', 'meiyun_manufacturer', 'meiyun_supplier', 'meiyun_formulation_review', 'meiyun_packing', ], }, { appName: 'mold_management', }, { appName: 'mold_part_management', }, { appName: 'project', }, { navName: 'industrial_resource_bank', }, { appName: 'task', }, { appName: 'form_template', }, { navName: 'collaborative', }, { appName: 'system_file', }, { appName: 'screen_billboard', }, { appName: 'data_report', }, { navName: 'cosmeticsBasic', }, { navName: 'organization', }, { navName: 'platform', }, { navName: 'tools', }, { navName: 'log', }, { navName: 'message', }, { navName: 'system', }, ]; const HashSalt = 'iL8fQn4Xk6J9wP2T'; function generateBigInt(input) { // 创建一个哈希值 const hash = sha256(input.toString() + HashSalt).toString(); // 将哈希转换为 bigint // 取模以限制长度 const bigIntValue = BigInt('0x' + hash) % BigInt(10 ** 10); return bigIntValue.toString(); } export const createAppId = (appName) => generateBigInt(appName); export const createFunctionId = (functionName, appId) => { return generateBigInt(`${appId}${functionName}`); };