整个路由布局修改
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# the base url of the application, the default is "/"
|
||||
# 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变更管理系统
|
||||
|
||||
@@ -20,7 +20,7 @@ VITE_AUTH_ROUTE_MODE=static
|
||||
VITE_ROUTE_HOME=home
|
||||
|
||||
# default menu icon
|
||||
VITE_MENU_ICON=mdi:menu
|
||||
VITE_MENU_ICON=
|
||||
|
||||
# whether to enable http proxy when is dev mode
|
||||
VITE_HTTP_PROXY=N
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# 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
|
||||
|
||||
# other backend service base url, prod environment
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# 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
|
||||
|
||||
# other backend service base url, test environment
|
||||
|
||||
@@ -29,7 +29,6 @@ export function createViteProxy(env: Env.ImportMeta, enable: boolean) {
|
||||
|
||||
function createProxyItem(item: App.Service.ServiceConfigItem, enableLog: boolean) {
|
||||
const proxy: Record<string, ProxyOptions> = {};
|
||||
|
||||
proxy[item.proxyPattern] = {
|
||||
target: item.baseURL,
|
||||
changeOrigin: true,
|
||||
|
||||
+16
-15
@@ -224,16 +224,20 @@ const local: App.I18n.Schema = {
|
||||
403: '无权限',
|
||||
404: '页面不存在',
|
||||
500: '服务器错误',
|
||||
home: '我的操作台',
|
||||
home_index: '工作台首页',
|
||||
home_initiatechange: '发起变更',
|
||||
home_highrisk: '本专业高风险',
|
||||
home_highriskdetail: '高风险场景详情',
|
||||
home_mytask: '我的任务',
|
||||
home_mydraft: '我的草稿',
|
||||
home_pending: '待我处理',
|
||||
home_process: '流程演示',
|
||||
home_processdetail: '流程演示详情',
|
||||
home: '首页',
|
||||
my: '我的操作台',
|
||||
my_initiatechange: '发起变更',
|
||||
my_highrisk: '本专业高风险',
|
||||
my_highriskdetail: '高风险场景详情',
|
||||
my_mytask: '我的任务',
|
||||
my_mydraft: '我的草稿',
|
||||
my_pending: '待我处理',
|
||||
my_process: '流程演示',
|
||||
my_processdetail: '流程演示详情',
|
||||
my_pendingchange: '待投用变更',
|
||||
my_effect: '变更投入和效果',
|
||||
my_datachangecenter: '变更数据中心',
|
||||
my_closeconfirm: '关闭确认',
|
||||
changeledger: '变更台账',
|
||||
changeledger_mychanges: '我发起的变更',
|
||||
changeledger_workshopchanges: '本车间变更',
|
||||
@@ -245,12 +249,9 @@ const local: App.I18n.Schema = {
|
||||
systemmanage_user: '架构及用户管理',
|
||||
systemmanage_role: '角色管理',
|
||||
systemmanage_template: '审批模板管理',
|
||||
home_pssr: 'PSSR监督',
|
||||
my_pssr: 'PSSR监督',
|
||||
riskstatistics: '安全与风险统计',
|
||||
home_pendingchange: '待投用变更',
|
||||
home_effect: '变更投入和效果',
|
||||
home_datachangecenter: '变更数据中心',
|
||||
home_closeconfirm: '关闭确认',
|
||||
|
||||
report: '统计报表',
|
||||
signstatistics: '质量会签统计',
|
||||
factoryoverview: '全工厂统计概览',
|
||||
|
||||
@@ -24,21 +24,21 @@ export const views: Record<LastLevelRouteKey, RouteComponent | (() => Promise<Ro
|
||||
docs_archives: () => import("@/views/docs/archives/index.vue"),
|
||||
docs_query: () => import("@/views/docs/query/index.vue"),
|
||||
factoryoverview: () => import("@/views/factoryOverview/index.vue"),
|
||||
home_closeconfirm: () => import("@/views/home/closeConfirm/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"),
|
||||
home: () => import("@/views/home/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"),
|
||||
riskstatistics: () => import("@/views/riskStatistics/index.vue"),
|
||||
signstatistics: () => import("@/views/signStatistics/index.vue"),
|
||||
|
||||
+149
-162
@@ -47,7 +47,7 @@ export const generatedRoutes: GeneratedRoute[] = [
|
||||
title: 'changeledger',
|
||||
i18nKey: 'route.changeledger',
|
||||
icon: 'tabler:table',
|
||||
order: 2
|
||||
order: 3
|
||||
},
|
||||
children: [
|
||||
{
|
||||
@@ -130,171 +130,13 @@ export const generatedRoutes: GeneratedRoute[] = [
|
||||
{
|
||||
name: 'home',
|
||||
path: '/home',
|
||||
component: 'layout.base',
|
||||
component: 'layout.base$view.home',
|
||||
meta: {
|
||||
title: '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
|
||||
}
|
||||
},
|
||||
{
|
||||
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',
|
||||
@@ -308,6 +150,151 @@ export const generatedRoutes: GeneratedRoute[] = [
|
||||
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',
|
||||
path: '/report',
|
||||
|
||||
@@ -175,21 +175,21 @@ const routeMap: RouteMap = {
|
||||
"docs_query": "/docs/query",
|
||||
"factoryoverview": "/factoryoverview",
|
||||
"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)?",
|
||||
"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",
|
||||
"riskstatistics": "/riskstatistics",
|
||||
"signstatistics": "/signstatistics",
|
||||
|
||||
Vendored
+29
-28
@@ -29,21 +29,21 @@ declare module "@elegant-router/types" {
|
||||
"docs_query": "/docs/query";
|
||||
"factoryoverview": "/factoryoverview";
|
||||
"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)?";
|
||||
"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";
|
||||
"riskstatistics": "/riskstatistics";
|
||||
"signstatistics": "/signstatistics";
|
||||
@@ -92,6 +92,7 @@ declare module "@elegant-router/types" {
|
||||
| "factoryoverview"
|
||||
| "home"
|
||||
| "login"
|
||||
| "my"
|
||||
| "report"
|
||||
| "riskstatistics"
|
||||
| "signstatistics"
|
||||
@@ -121,21 +122,21 @@ declare module "@elegant-router/types" {
|
||||
| "docs_archives"
|
||||
| "docs_query"
|
||||
| "factoryoverview"
|
||||
| "home_closeconfirm"
|
||||
| "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"
|
||||
| "home"
|
||||
| "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"
|
||||
| "riskstatistics"
|
||||
| "signstatistics"
|
||||
|
||||
@@ -8,7 +8,7 @@ import {
|
||||
countOpenStatus, type ChangeLevel, type ChangeOrder, type ChangeStatus, type ChangeType,
|
||||
} from "@/typings/model";
|
||||
import { getColorWithOpacity } from "@/utils/common";
|
||||
import FlowRing from "../modules/FlowRing.vue";
|
||||
import FlowRing from "./modules/FlowRing.vue";
|
||||
|
||||
const appStore = useAppStore();
|
||||
const themeStore = useThemeStore();
|
||||
@@ -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>
|
||||
@@ -313,13 +313,13 @@ const toggle = (v: boolean) => {
|
||||
<div class="py-3 px-4">
|
||||
<NTabs type="segment" animated>
|
||||
<NTabPane name="chap1" tab="HAZOP分析矩阵">
|
||||
|
||||
HAZOP分析矩阵
|
||||
</NTabPane>
|
||||
<NTabPane name="chap2" tab="JSA分析矩阵">
|
||||
|
||||
JSA分析矩阵
|
||||
</NTabPane>
|
||||
<NTabPane name="chap3" tab="SCL分析矩阵">
|
||||
|
||||
SCL分析矩阵
|
||||
</NTabPane>
|
||||
</NTabs>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user