整个路由布局修改

This commit is contained in:
2026-08-26 09:29:46 +08:00
parent 250cf6b22e
commit c78f0660f7
30 changed files with 230 additions and 261 deletions
+2 -2
View File
@@ -1,6 +1,6 @@
# the base url of the application, the default is "/" # the base url of the application, the default is "/"
# if use a sub directory, it must be end with "/", like "/admin/" but not "/admin" # if use a sub directory, it must be end with "/", like "/admin/" but not "/admin"
VITE_BASE_URL=http://192.168.0.230:8086 VITE_BASE_URL=/
VITE_APP_TITLE=MOC变更管理系统 VITE_APP_TITLE=MOC变更管理系统
@@ -20,7 +20,7 @@ VITE_AUTH_ROUTE_MODE=static
VITE_ROUTE_HOME=home VITE_ROUTE_HOME=home
# default menu icon # default menu icon
VITE_MENU_ICON=mdi:menu VITE_MENU_ICON=
# whether to enable http proxy when is dev mode # whether to enable http proxy when is dev mode
VITE_HTTP_PROXY=N VITE_HTTP_PROXY=N
+1 -1
View File
@@ -1,5 +1,5 @@
# backend service base url, prod environment # backend service base url, prod environment
VITE_BASE_URL=http://192.168.0.230:8086 VITE_BASE_URL=/
VITE_SERVICE_BASE_URL=http://192.168.0.230:8086 VITE_SERVICE_BASE_URL=http://192.168.0.230:8086
# other backend service base url, prod environment # other backend service base url, prod environment
+1 -1
View File
@@ -1,5 +1,5 @@
# backend service base url, test environment # backend service base url, test environment
VITE_BASE_URL=http://192.168.0.230:8086 VITE_BASE_URL=/
VITE_SERVICE_BASE_URL=http://192.168.0.230:8086 VITE_SERVICE_BASE_URL=http://192.168.0.230:8086
# other backend service base url, test environment # other backend service base url, test environment
-1
View File
@@ -29,7 +29,6 @@ export function createViteProxy(env: Env.ImportMeta, enable: boolean) {
function createProxyItem(item: App.Service.ServiceConfigItem, enableLog: boolean) { function createProxyItem(item: App.Service.ServiceConfigItem, enableLog: boolean) {
const proxy: Record<string, ProxyOptions> = {}; const proxy: Record<string, ProxyOptions> = {};
proxy[item.proxyPattern] = { proxy[item.proxyPattern] = {
target: item.baseURL, target: item.baseURL,
changeOrigin: true, changeOrigin: true,
+16 -15
View File
@@ -224,16 +224,20 @@ const local: App.I18n.Schema = {
403: '无权限', 403: '无权限',
404: '页面不存在', 404: '页面不存在',
500: '服务器错误', 500: '服务器错误',
home: '我的操作台', home: '首页',
home_index: '工作台首页', my: '我的操作台',
home_initiatechange: '发起变更', my_initiatechange: '发起变更',
home_highrisk: '本专业高风险', my_highrisk: '本专业高风险',
home_highriskdetail: '高风险场景详情', my_highriskdetail: '高风险场景详情',
home_mytask: '我的任务', my_mytask: '我的任务',
home_mydraft: '我的草稿', my_mydraft: '我的草稿',
home_pending: '待我处理', my_pending: '待我处理',
home_process: '流程演示', my_process: '流程演示',
home_processdetail: '流程演示详情', my_processdetail: '流程演示详情',
my_pendingchange: '待投用变更',
my_effect: '变更投入和效果',
my_datachangecenter: '变更数据中心',
my_closeconfirm: '关闭确认',
changeledger: '变更台账', changeledger: '变更台账',
changeledger_mychanges: '我发起的变更', changeledger_mychanges: '我发起的变更',
changeledger_workshopchanges: '本车间变更', changeledger_workshopchanges: '本车间变更',
@@ -245,12 +249,9 @@ const local: App.I18n.Schema = {
systemmanage_user: '架构及用户管理', systemmanage_user: '架构及用户管理',
systemmanage_role: '角色管理', systemmanage_role: '角色管理',
systemmanage_template: '审批模板管理', systemmanage_template: '审批模板管理',
home_pssr: 'PSSR监督', my_pssr: 'PSSR监督',
riskstatistics: '安全与风险统计', riskstatistics: '安全与风险统计',
home_pendingchange: '待投用变更',
home_effect: '变更投入和效果',
home_datachangecenter: '变更数据中心',
home_closeconfirm: '关闭确认',
report: '统计报表', report: '统计报表',
signstatistics: '质量会签统计', signstatistics: '质量会签统计',
factoryoverview: '全工厂统计概览', factoryoverview: '全工厂统计概览',
+14 -14
View File
@@ -24,21 +24,21 @@ export const views: Record<LastLevelRouteKey, RouteComponent | (() => Promise<Ro
docs_archives: () => import("@/views/docs/archives/index.vue"), docs_archives: () => import("@/views/docs/archives/index.vue"),
docs_query: () => import("@/views/docs/query/index.vue"), docs_query: () => import("@/views/docs/query/index.vue"),
factoryoverview: () => import("@/views/factoryOverview/index.vue"), factoryoverview: () => import("@/views/factoryOverview/index.vue"),
home_closeconfirm: () => import("@/views/home/closeConfirm/index.vue"), home: () => import("@/views/home/index.vue"),
home_datachangecenter: () => import("@/views/home/dataChangeCenter/index.vue"),
home_effect: () => import("@/views/home/effect/index.vue"),
home_highrisk: () => import("@/views/home/highRisk/index.vue"),
home_highriskdetail: () => import("@/views/home/highRiskDetail/index.vue"),
home_index: () => import("@/views/home/index/index.vue"),
home_initiatechange: () => import("@/views/home/initiateChange/index.vue"),
home_mydraft: () => import("@/views/home/myDraft/index.vue"),
home_mytask: () => import("@/views/home/myTask/index.vue"),
home_pending: () => import("@/views/home/pending/index.vue"),
home_pendingchange: () => import("@/views/home/pendingChange/index.vue"),
home_process: () => import("@/views/home/process/index.vue"),
home_processdetail: () => import("@/views/home/processDetail/index.vue"),
home_pssr: () => import("@/views/home/pssr/index.vue"),
login: () => import("@/views/login/index.vue"), login: () => import("@/views/login/index.vue"),
my_closeconfirm: () => import("@/views/my/closeConfirm/index.vue"),
my_datachangecenter: () => import("@/views/my/dataChangeCenter/index.vue"),
my_effect: () => import("@/views/my/effect/index.vue"),
my_highrisk: () => import("@/views/my/highRisk/index.vue"),
my_highriskdetail: () => import("@/views/my/highRiskDetail/index.vue"),
my_initiatechange: () => import("@/views/my/initiateChange/index.vue"),
my_mydraft: () => import("@/views/my/myDraft/index.vue"),
my_mytask: () => import("@/views/my/myTask/index.vue"),
my_pending: () => import("@/views/my/pending/index.vue"),
my_pendingchange: () => import("@/views/my/pendingChange/index.vue"),
my_process: () => import("@/views/my/process/index.vue"),
my_processdetail: () => import("@/views/my/processDetail/index.vue"),
my_pssr: () => import("@/views/my/pssr/index.vue"),
report: () => import("@/views/report/index.vue"), report: () => import("@/views/report/index.vue"),
riskstatistics: () => import("@/views/riskStatistics/index.vue"), riskstatistics: () => import("@/views/riskStatistics/index.vue"),
signstatistics: () => import("@/views/signStatistics/index.vue"), signstatistics: () => import("@/views/signStatistics/index.vue"),
+148 -161
View File
@@ -47,7 +47,7 @@ export const generatedRoutes: GeneratedRoute[] = [
title: 'changeledger', title: 'changeledger',
i18nKey: 'route.changeledger', i18nKey: 'route.changeledger',
icon: 'tabler:table', icon: 'tabler:table',
order: 2 order: 3
}, },
children: [ children: [
{ {
@@ -130,172 +130,14 @@ export const generatedRoutes: GeneratedRoute[] = [
{ {
name: 'home', name: 'home',
path: '/home', path: '/home',
component: 'layout.base', component: 'layout.base$view.home',
meta: { meta: {
title: 'home', title: 'home',
i18nKey: 'route.home', i18nKey: 'route.home',
icon: 'lucide:home', icon: 'ant-design:home-outlined',
order: 1
},
children: [
{
name: 'home_closeconfirm',
path: '/home/closeconfirm',
component: 'view.home_closeconfirm',
meta: {
title: 'home_closeconfirm',
i18nKey: 'route.home_closeconfirm',
icon: '',
order: 6
}
},
{
name: 'home_datachangecenter',
path: '/home/datachangecenter',
component: 'view.home_datachangecenter',
meta: {
title: 'home_datachangecenter',
i18nKey: 'route.home_datachangecenter',
icon: '',
order: 5
}
},
{
name: 'home_effect',
path: '/home/effect',
component: 'view.home_effect',
meta: {
title: 'home_effect',
i18nKey: 'route.home_effect',
icon: '',
order: 6
}
},
{
name: 'home_highrisk',
path: '/home/highrisk',
component: 'view.home_highrisk',
meta: {
title: 'home_highrisk',
i18nKey: 'route.home_highrisk',
icon: '',
order: 6
}
},
{
name: 'home_highriskdetail',
path: '/home/highriskdetail',
component: 'view.home_highriskdetail',
meta: {
title: 'home_highriskdetail',
i18nKey: 'route.home_highriskdetail',
activeMenu: 'home_highrisk',
hideInMenu: true,
icon: ''
}
},
{
name: 'home_index',
path: '/home/index',
component: 'view.home_index',
meta: {
title: 'home_index',
i18nKey: 'route.home_index',
icon: '',
order: 1 order: 1
} }
}, },
{
name: 'home_initiatechange',
path: '/home/initiatechange',
component: 'view.home_initiatechange',
meta: {
title: 'home_initiatechange',
i18nKey: 'route.home_initiatechange',
icon: '',
order: 2
}
},
{
name: 'home_mydraft',
path: '/home/mydraft',
component: 'view.home_mydraft',
meta: {
title: 'home_mydraft',
i18nKey: 'route.home_mydraft',
icon: '',
order: 3
}
},
{
name: 'home_mytask',
path: '/home/mytask',
component: 'view.home_mytask',
meta: {
title: 'home_mytask',
i18nKey: 'route.home_mytask',
icon: '',
order: 5
}
},
{
name: 'home_pending',
path: '/home/pending',
component: 'view.home_pending',
meta: {
title: 'home_pending',
i18nKey: 'route.home_pending',
icon: '',
order: 4
}
},
{
name: 'home_pendingchange',
path: '/home/pendingchange',
component: 'view.home_pendingchange',
meta: {
title: 'home_pendingchange',
i18nKey: 'route.home_pendingchange',
icon: '',
order: 5
}
},
{
name: 'home_process',
path: '/home/process',
component: 'view.home_process',
meta: {
title: 'home_process',
i18nKey: 'route.home_process',
icon: '',
order: 7
}
},
{
name: 'home_processdetail',
path: '/home/processdetail',
component: 'view.home_processdetail',
meta: {
title: 'home_processdetail',
i18nKey: 'route.home_processdetail',
activeMenu: 'home_process',
hideInMenu: true,
icon: ''
}
},
{
name: 'home_pssr',
path: '/home/pssr',
component: 'view.home_pssr',
meta: {
title: 'home_pssr',
i18nKey: 'route.home_pssr',
icon: '',
order: 6
}
}
]
},
{ {
name: 'login', name: 'login',
path: '/login/:module(pwd-login)?', path: '/login/:module(pwd-login)?',
@@ -308,6 +150,151 @@ export const generatedRoutes: GeneratedRoute[] = [
hideInMenu: true hideInMenu: true
} }
}, },
{
name: 'my',
path: '/my',
component: 'layout.base',
meta: {
title: 'my',
i18nKey: 'route.my',
icon: 'heroicons:computer-desktop',
order: 2
},
children: [
{
name: 'my_closeconfirm',
path: '/my/closeconfirm',
component: 'view.my_closeconfirm',
meta: {
title: 'my_closeconfirm',
i18nKey: 'route.my_closeconfirm',
icon: ''
}
},
{
name: 'my_datachangecenter',
path: '/my/datachangecenter',
component: 'view.my_datachangecenter',
meta: {
title: 'my_datachangecenter',
i18nKey: 'route.my_datachangecenter',
icon: ''
}
},
{
name: 'my_effect',
path: '/my/effect',
component: 'view.my_effect',
meta: {
title: 'my_effect',
i18nKey: 'route.my_effect',
icon: ''
}
},
{
name: 'my_highrisk',
path: '/my/highrisk',
component: 'view.my_highrisk',
meta: {
title: 'my_highrisk',
i18nKey: 'route.my_highrisk',
icon: ''
}
},
{
name: 'my_highriskdetail',
path: '/my/highriskdetail',
component: 'view.my_highriskdetail',
meta: {
title: 'my_highriskdetail',
i18nKey: 'route.my_highriskdetail',
icon: '',
hideInMenu: true
}
},
{
name: 'my_initiatechange',
path: '/my/initiatechange',
component: 'view.my_initiatechange',
meta: {
title: 'my_initiatechange',
i18nKey: 'route.my_initiatechange',
icon: ''
}
},
{
name: 'my_mydraft',
path: '/my/mydraft',
component: 'view.my_mydraft',
meta: {
title: 'my_mydraft',
i18nKey: 'route.my_mydraft',
icon: ''
}
},
{
name: 'my_mytask',
path: '/my/mytask',
component: 'view.my_mytask',
meta: {
title: 'my_mytask',
i18nKey: 'route.my_mytask',
icon: ''
}
},
{
name: 'my_pending',
path: '/my/pending',
component: 'view.my_pending',
meta: {
title: 'my_pending',
i18nKey: 'route.my_pending',
icon: ''
}
},
{
name: 'my_pendingchange',
path: '/my/pendingchange',
component: 'view.my_pendingchange',
meta: {
title: 'my_pendingchange',
i18nKey: 'route.my_pendingchange',
icon: ''
}
},
{
name: 'my_process',
path: '/my/process',
component: 'view.my_process',
meta: {
title: 'my_process',
i18nKey: 'route.my_process',
icon: ''
}
},
{
name: 'my_processdetail',
path: '/my/processdetail',
component: 'view.my_processdetail',
meta: {
title: 'my_processdetail',
i18nKey: 'route.my_processdetail',
icon: '',
hideInMenu: true
}
},
{
name: 'my_pssr',
path: '/my/pssr',
component: 'view.my_pssr',
meta: {
title: 'my_pssr',
i18nKey: 'route.my_pssr',
icon: ''
}
}
]
},
{ {
name: 'report', name: 'report',
path: '/report', path: '/report',
+14 -14
View File
@@ -175,21 +175,21 @@ const routeMap: RouteMap = {
"docs_query": "/docs/query", "docs_query": "/docs/query",
"factoryoverview": "/factoryoverview", "factoryoverview": "/factoryoverview",
"home": "/home", "home": "/home",
"home_closeconfirm": "/home/closeconfirm",
"home_datachangecenter": "/home/datachangecenter",
"home_effect": "/home/effect",
"home_highrisk": "/home/highrisk",
"home_highriskdetail": "/home/highriskdetail",
"home_index": "/home/index",
"home_initiatechange": "/home/initiatechange",
"home_mydraft": "/home/mydraft",
"home_mytask": "/home/mytask",
"home_pending": "/home/pending",
"home_pendingchange": "/home/pendingchange",
"home_process": "/home/process",
"home_processdetail": "/home/processdetail",
"home_pssr": "/home/pssr",
"login": "/login/:module(pwd-login)?", "login": "/login/:module(pwd-login)?",
"my": "/my",
"my_closeconfirm": "/my/closeconfirm",
"my_datachangecenter": "/my/datachangecenter",
"my_effect": "/my/effect",
"my_highrisk": "/my/highrisk",
"my_highriskdetail": "/my/highriskdetail",
"my_initiatechange": "/my/initiatechange",
"my_mydraft": "/my/mydraft",
"my_mytask": "/my/mytask",
"my_pending": "/my/pending",
"my_pendingchange": "/my/pendingchange",
"my_process": "/my/process",
"my_processdetail": "/my/processdetail",
"my_pssr": "/my/pssr",
"report": "/report", "report": "/report",
"riskstatistics": "/riskstatistics", "riskstatistics": "/riskstatistics",
"signstatistics": "/signstatistics", "signstatistics": "/signstatistics",
+29 -28
View File
@@ -29,21 +29,21 @@ declare module "@elegant-router/types" {
"docs_query": "/docs/query"; "docs_query": "/docs/query";
"factoryoverview": "/factoryoverview"; "factoryoverview": "/factoryoverview";
"home": "/home"; "home": "/home";
"home_closeconfirm": "/home/closeconfirm";
"home_datachangecenter": "/home/datachangecenter";
"home_effect": "/home/effect";
"home_highrisk": "/home/highrisk";
"home_highriskdetail": "/home/highriskdetail";
"home_index": "/home/index";
"home_initiatechange": "/home/initiatechange";
"home_mydraft": "/home/mydraft";
"home_mytask": "/home/mytask";
"home_pending": "/home/pending";
"home_pendingchange": "/home/pendingchange";
"home_process": "/home/process";
"home_processdetail": "/home/processdetail";
"home_pssr": "/home/pssr";
"login": "/login/:module(pwd-login)?"; "login": "/login/:module(pwd-login)?";
"my": "/my";
"my_closeconfirm": "/my/closeconfirm";
"my_datachangecenter": "/my/datachangecenter";
"my_effect": "/my/effect";
"my_highrisk": "/my/highrisk";
"my_highriskdetail": "/my/highriskdetail";
"my_initiatechange": "/my/initiatechange";
"my_mydraft": "/my/mydraft";
"my_mytask": "/my/mytask";
"my_pending": "/my/pending";
"my_pendingchange": "/my/pendingchange";
"my_process": "/my/process";
"my_processdetail": "/my/processdetail";
"my_pssr": "/my/pssr";
"report": "/report"; "report": "/report";
"riskstatistics": "/riskstatistics"; "riskstatistics": "/riskstatistics";
"signstatistics": "/signstatistics"; "signstatistics": "/signstatistics";
@@ -92,6 +92,7 @@ declare module "@elegant-router/types" {
| "factoryoverview" | "factoryoverview"
| "home" | "home"
| "login" | "login"
| "my"
| "report" | "report"
| "riskstatistics" | "riskstatistics"
| "signstatistics" | "signstatistics"
@@ -121,21 +122,21 @@ declare module "@elegant-router/types" {
| "docs_archives" | "docs_archives"
| "docs_query" | "docs_query"
| "factoryoverview" | "factoryoverview"
| "home_closeconfirm" | "home"
| "home_datachangecenter"
| "home_effect"
| "home_highrisk"
| "home_highriskdetail"
| "home_index"
| "home_initiatechange"
| "home_mydraft"
| "home_mytask"
| "home_pending"
| "home_pendingchange"
| "home_process"
| "home_processdetail"
| "home_pssr"
| "login" | "login"
| "my_closeconfirm"
| "my_datachangecenter"
| "my_effect"
| "my_highrisk"
| "my_highriskdetail"
| "my_initiatechange"
| "my_mydraft"
| "my_mytask"
| "my_pending"
| "my_pendingchange"
| "my_process"
| "my_processdetail"
| "my_pssr"
| "report" | "report"
| "riskstatistics" | "riskstatistics"
| "signstatistics" | "signstatistics"
@@ -8,7 +8,7 @@ import {
countOpenStatus, type ChangeLevel, type ChangeOrder, type ChangeStatus, type ChangeType, countOpenStatus, type ChangeLevel, type ChangeOrder, type ChangeStatus, type ChangeType,
} from "@/typings/model"; } from "@/typings/model";
import { getColorWithOpacity } from "@/utils/common"; import { getColorWithOpacity } from "@/utils/common";
import FlowRing from "../modules/FlowRing.vue"; import FlowRing from "./modules/FlowRing.vue";
const appStore = useAppStore(); const appStore = useAppStore();
const themeStore = useThemeStore(); const themeStore = useThemeStore();
-19
View File
@@ -1,19 +0,0 @@
<script setup lang="ts">
const props = defineProps<{ status: any }>();
const BIG_STAGES = ["申请审批", "实施与关闭", "变更关闭"];
const bigStageOf = (s: any) => (s === "审批中" ? 0 : s === "已关闭" ? 2 : 1);
const cur = bigStageOf(props.status);
const pct = ((cur + 1) / BIG_STAGES.length) * 100;
const size = 34, stroke = 4, r = (size - stroke) / 2, c = 2 * Math.PI * r;
const title = `阶段进度 ${cur + 1}/${BIG_STAGES.length}${BIG_STAGES.slice(0, cur + 1).join(" → ")}${cur < BIG_STAGES.length - 1 ? " → …" : ""}`;
</script>
<template>
<span class="relative inline-flex shrink-0 items-center justify-center" :style="{ width: size + 'px', height: size + 'px' }" :title="title">
<svg :width="size" :height="size" class="-rotate-90">
<circle :cx="size / 2" :cy="size / 2" :r="r" stroke="#E2E8F0" :stroke-width="stroke" fill="none" />
<circle :cx="size / 2" :cy="size / 2" :r="r" stroke="#2080f0" :stroke-width="stroke" fill="none"
:stroke-dasharray="c" :stroke-dashoffset="c * (1 - pct / 100)" stroke-linecap="round" />
</svg>
<span class="absolute inset-0 flex items-center justify-center text-[9px] font-bold text-[#2080f0] dark:text-white">{{ cur + 1 }}/3</span>
</span>
</template>
+3 -3
View File
@@ -313,13 +313,13 @@ const toggle = (v: boolean) => {
<div class="py-3 px-4"> <div class="py-3 px-4">
<NTabs type="segment" animated> <NTabs type="segment" animated>
<NTabPane name="chap1" tab="HAZOP分析矩阵"> <NTabPane name="chap1" tab="HAZOP分析矩阵">
HAZOP分析矩阵
</NTabPane> </NTabPane>
<NTabPane name="chap2" tab="JSA分析矩阵"> <NTabPane name="chap2" tab="JSA分析矩阵">
JSA分析矩阵
</NTabPane> </NTabPane>
<NTabPane name="chap3" tab="SCL分析矩阵"> <NTabPane name="chap3" tab="SCL分析矩阵">
SCL分析矩阵
</NTabPane> </NTabPane>
</NTabs> </NTabs>
</div> </div>