diff --git a/backend/xiaoqu-intellectual-web/src/main/resources/application-test.yml b/backend/xiaoqu-intellectual-web/src/main/resources/application-test.yml index ace659f..6a1cbd0 100644 --- a/backend/xiaoqu-intellectual-web/src/main/resources/application-test.yml +++ b/backend/xiaoqu-intellectual-web/src/main/resources/application-test.yml @@ -2,7 +2,7 @@ server: port: 8095 #redis 多DB配置 redis: - host: 192.168.1.181 + host: localhost port: 6379 password: kaixinjiuhao timeout: 30000 @@ -47,13 +47,13 @@ spring: datasource: type: com.alibaba.druid.pool.DruidDataSource db1: - url: jdbc:mysql://192.168.1.181:3306/xiaoqu_comples_d?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true + url: jdbc:mysql://localhost:3306/xiaoqu_comples_d?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true username: root password: kaixinjiuhao driver-class-name: com.mysql.cj.jdbc.Driver db2: - url: jdbc:mysql://192.168.1.181:3306/xiaoqu_intellectual_d?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true + url: jdbc:mysql://localhost:3306/xiaoqu_intellectual_d?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai&allowMultiQueries=true&allowPublicKeyRetrieval=true username: root password: kaixinjiuhao driver-class-name: com.mysql.cj.jdbc.Driver diff --git a/frontend/witcleansystem/src/Assets/css/base.scss b/frontend/witcleansystem/src/Assets/css/base.scss index cd745f4..8da3463 100644 --- a/frontend/witcleansystem/src/Assets/css/base.scss +++ b/frontend/witcleansystem/src/Assets/css/base.scss @@ -1,95 +1,417 @@ @charset "UTF-8"; -$default-begin-color: #6094fb; -$default-end-color: #888afa; -$default-color: #6d73fb; -$menu-bg-color: #000; + +// Legacy SCSS variables (kept for any remaining references) +$default-begin-color: #6366f1; +$default-end-color: #818cf8; +$default-color: #6366f1; +$menu-bg-color: #1e293b; + +// ========================================== +// Element Plus Theme Override via CSS Variables +// ========================================== +:root { + --el-color-primary: var(--color-primary); + --el-color-primary-light-3: var(--color-primary-light); + --el-color-primary-dark-2: var(--color-primary-dark); + --el-color-success: var(--color-success); + --el-color-warning: var(--color-warning); + --el-color-danger: var(--color-danger); + --el-color-info: var(--color-info); + --el-border-color: var(--color-border); + --el-border-color-light: var(--color-border-light); + --el-border-radius-base: var(--radius-sm); + --el-font-size-base: var(--font-size-base); + --el-text-color-primary: var(--color-text-primary); + --el-text-color-regular: var(--color-text-secondary); + --el-text-color-placeholder: var(--color-text-placeholder); + --el-bg-color-page: var(--color-bg-page); +} + .default-bg { - background-image: -webkit-gradient( - linear, - left top, - right top, - from(#6094fb), - to(#888afa) - ); - background-image: linear-gradient(to right, #6094fb, #888afa); + background-image: linear-gradient(to right, var(--color-primary), var(--color-primary-light)); } -/* 修改el-button 默认样式 */ -.el-button--primary.is-active, -.el-button--primary:active { - background: #20b2aa !important; - border-color: #20b2aa !important; - color: #fff !important; +// ========================================== +// Element Plus Component Style Normalization +// ========================================== + +// ---------- Global ---------- +* { + transition: background-color 0.2s, border-color 0.2s, color 0.15s, box-shadow 0.15s; } -.el-button--primary:focus, -.el-button--primary:hover { - background: #48d1cc !important; - border-color: #48d1cc !important; - color: #fff !important; +// ---------- Button ---------- +.el-button { + border-radius: var(--radius-md); + font-weight: 500; + letter-spacing: 0.3px; + transition: all 0.2s ease; + + &:focus-visible { + outline: 2px solid var(--color-primary-light); + outline-offset: 1px; + } + + &--primary { + box-shadow: 0 1px 3px rgba(99, 102, 241, 0.3); + &:hover, &:focus { + box-shadow: 0 3px 8px rgba(99, 102, 241, 0.35); + } + &:active { + transform: scale(0.97); + } + } + + &--success { + box-shadow: 0 1px 3px rgba(34, 197, 94, 0.3); + } + &--warning { + box-shadow: 0 1px 3px rgba(245, 158, 11, 0.3); + } + &--danger { + box-shadow: 0 1px 3px rgba(239, 68, 68, 0.3); + } + + &.is-round { + border-radius: 999px; + } + + &.is-circle { + border-radius: 50%; + } } -.el-button--primary { - color: #fff !important; - /* background-color: #20b2aa; */ - background-image: -webkit-gradient( - linear, - left top, - right top, - from(#6094fb), - to(#888afa) - ) !important; - background-image: linear-gradient(to right, #6094fb, #888afa) !important; - border-color: #6094fb !important; +// ---------- Input / Select / Cascader / DatePicker ---------- +.el-input__wrapper, +.el-textarea__inner { + border-radius: var(--radius-md); + transition: box-shadow 0.2s, border-color 0.2s; } +.el-select .el-input__wrapper, +.el-cascader .el-input__wrapper, +.el-date-editor.el-input__wrapper { + border-radius: var(--radius-md); +} + +.el-input-group__append, +.el-input-group__prepend { + border-radius: 0 var(--radius-md) var(--radius-md) 0; +} + +.el-input-group__prepend { + border-radius: var(--radius-md) 0 0 var(--radius-md); +} + +// ---------- Form ---------- .el-form-item__label-wrap { - margin-left: 5px !important; + margin-left: 5px; } .el-form--inline .el-form-item { - margin-bottom: 10px !important; + margin-bottom: 10px; } -.el-pagination--small .el-pagination__sizes .el-input--mini .el-input__inner { - height: 22px; - line-height: 22px !important; +.el-form-item__label { + font-weight: 500; + color: var(--color-text-secondary); +} + +// ---------- Table ---------- +.el-table { + font-size: var(--font-size-base); + border-radius: var(--radius-md); + overflow: hidden; + --el-table-bg-color: var(--color-bg-card); + --el-table-tr-bg-color: var(--color-bg-card); + --el-table-header-bg-color: var(--color-bg-page); + --el-table-border-color: var(--color-border); + background-color: var(--color-bg-card); + + // 所有表头单元格(含左上角索引列表头) + th.el-table__cell { + background-color: var(--color-bg-page) !important; + font-weight: 600; + color: var(--color-text-primary); + font-size: var(--font-size-sm); + } + + // 所有行背景 + tr { + background-color: var(--color-bg-card) !important; + } + + // 所有单元格背景继承行 + td.el-table__cell { + background-color: inherit !important; + } + + // 斑马纹偶行 + &.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell { + background-color: var(--color-bg-page) !important; + } + + // hover 行 + .el-table__body tr:hover > td.el-table__cell { + background-color: var(--color-primary-bg) !important; + } + + // 空数据区 + .el-table__empty-block { + background-color: var(--color-bg-card); + } + + // 内部容器 + .el-table__inner-wrapper::before { + background-color: var(--color-border); + } + + // 底部横向滚动条加大 + .el-scrollbar__bar.is-horizontal { + height: 10px; + } + .el-scrollbar__bar.is-horizontal .el-scrollbar__thumb { + border-radius: 5px; + } } body .el-table th.gutter { - display: none !important; - width: 0px !important; + display: none; + width: 0; } body .el-table colgroup.gutter { - display: none !important; - width: 0px !important; + display: none; + width: 0; } +// ---------- Pagination ---------- +.el-pagination { + .el-pager li, + .btn-prev, + .btn-next { + border-radius: var(--radius-sm); + } + + .el-pager li.is-active { + font-weight: 600; + } +} + +// ---------- Dialog ---------- +.el-dialog { + border-radius: var(--radius-lg); + overflow: hidden; + + .el-dialog__header { + padding: var(--spacing-lg) var(--spacing-xl); + border-bottom: 1px solid var(--color-border-light); + margin-right: 0; + } + + .el-dialog__title { + font-size: var(--font-size-lg); + font-weight: 600; + color: var(--color-text-primary); + } + + .el-dialog__headerbtn { + top: var(--spacing-lg); + right: var(--spacing-xl); + width: 28px; + height: 28px; + border-radius: var(--radius-sm); + transition: background 0.2s; + &:hover { + background: var(--color-border-light); + } + } + + .el-dialog__body { + padding: var(--spacing-xl); + } + + .el-dialog__footer { + padding: var(--spacing-md) var(--spacing-xl); + border-top: 1px solid var(--color-border-light); + } +} + +// ---------- Drawer ---------- +.el-drawer { + .el-drawer__header { + font-size: var(--font-size-lg); + font-weight: 600; + color: var(--color-text-primary); + margin-bottom: 0; + padding: var(--spacing-lg) var(--spacing-xl); + border-bottom: 1px solid var(--color-border-light); + } + + .el-drawer__body { + padding: var(--spacing-xl); + } + + .el-drawer__footer { + padding: var(--spacing-md) var(--spacing-xl); + border-top: 1px solid var(--color-border-light); + } +} + +// ---------- Tag ---------- +.el-tag { + border-radius: var(--radius-sm); + font-size: var(--font-size-xs); +} + +.el-tag--round { + border-radius: 999px; +} + +// ---------- Menu ---------- +.el-menu { + border-right: none; + border-bottom: none; +} + +// ---------- Tabs ---------- +.el-tabs__item { + transition: color 0.2s; +} + +// ---------- Popover / Tooltip ---------- +.el-popover.el-popper { + border-radius: var(--radius-md); + box-shadow: var(--shadow-md); +} + +.el-tooltip__popper { + border-radius: var(--radius-sm); +} + +// ---------- Dropdown ---------- +.el-dropdown-menu { + border-radius: var(--radius-md); + padding: var(--spacing-xs) 0; + box-shadow: var(--shadow-md); +} + +.el-dropdown-menu__item { + border-radius: var(--radius-sm); + margin: 0 var(--spacing-xs); + padding: var(--spacing-sm) var(--spacing-md); + transition: background 0.15s, color 0.15s; +} + +// ---------- Message / MessageBox ---------- +.el-message { + border-radius: var(--radius-md); + box-shadow: var(--shadow-md); +} + +.el-message-box { + border-radius: var(--radius-lg); + overflow: hidden; + + .el-message-box__header { + padding: var(--spacing-lg) var(--spacing-xl) var(--spacing-md); + } + + .el-message-box__title { + font-size: var(--font-size-lg); + font-weight: 600; + } + + .el-message-box__btns .el-button { + border-radius: var(--radius-md); + } +} + +// ---------- Notification ---------- +.el-notification { + border-radius: var(--radius-md); + box-shadow: var(--shadow-md); +} + +// ---------- Card ---------- +.el-card { + border-radius: var(--radius-md); + box-shadow: var(--shadow-sm); + border: 1px solid var(--color-border-light); +} + +// ---------- Tree ---------- +.el-tree-node__content { + border-radius: var(--radius-sm); + transition: background-color 0.15s; +} + +// ---------- Checkbox / Radio ---------- +.el-checkbox__inner, +.el-radio__inner { + border-radius: var(--radius-sm); + transition: all 0.2s; +} + +.el-radio__inner { + border-radius: 50%; +} + +// ---------- Switch ---------- +.el-switch__core { + border-radius: 999px; +} + +// ---------- Skeleton ---------- +.el-skeleton__item { + border-radius: var(--radius-sm); +} + +// ---------- Badge ---------- +.el-badge__content { + border-radius: 999px; +} + +// ---------- Upload ---------- +.el-upload-dragger { + border-radius: var(--radius-md); + transition: border-color 0.2s; +} + +// ---------- Popover row buttons ---------- .btn-popover { - min-width: auto !important; + min-width: auto; + border-radius: var(--radius-md); } .btn-popover .row-buttons { text-align: center; + background: var(--color-primary-bg); + border-radius: var(--radius-sm); + margin-bottom: 4px; + transition: background 0.2s; } .btn-popover .row-buttons:hover { - background: #20b2aa; + background: var(--color-primary); } .btn-popover .row-buttons:hover button { - color: #fff !important; + color: #fff; display: block; width: 100%; height: 100%; } +.btn-popover .row-buttons button { + color: var(--color-primary); +} + .btn-popover .row-button { - /* border-right: 1px solid #f2f2f2; */ text-align: center; } +// ---------- Image viewer ---------- .el-image-viewer__wrapper .el-image-viewer__mask { background: #fff; opacity: 0.8; @@ -97,104 +419,204 @@ body .el-table colgroup.gutter { .el-image-viewer__wrapper > .el-image-viewer__btn.el-image-viewer__close { color: #ffffff; - background-color: grey; + background-color: var(--color-info); + border-radius: 50%; } +// ---------- Loading ---------- .overall-loading .el-loading-text { color: rgba(255, 255, 255, 0.76); } .overall-loading .el-loading-spinner i { - color: rgba(255, 255, 255, 0.781); + color: rgba(255, 255, 255, 0.78); font-size: 40px; } .el-loading-mask { - -webkit-transition: opactiy 0.1s !important; - transition: opactiy 0.1s !important; - z-index: 9999 !important; + transition: opacity 0.1s; + z-index: 9999; } + +// ========================================== +// Global Layout Utility Classes +// ========================================== + .main-container { - background-color: #fff; - padding: 0 10px; + background-color: var(--color-bg-card); + padding: 0 var(--spacing-md); box-sizing: border-box; + display: flex; + flex-direction: column; + height: calc(100vh - var(--page-top-offset)); } + +// Unified page container +.page-container { + padding: var(--spacing-lg); + background-color: var(--color-bg-card); + box-sizing: border-box; + display: flex; + flex-direction: column; + height: calc(100vh - var(--page-top-offset)); +} + +// Unified search area +.search-area { + padding: var(--spacing-md) var(--spacing-lg); + display: flex; + align-items: center; + flex-wrap: wrap; + flex-shrink: 0; +} + +// Unified table area — fill remaining space +.main-table { + padding: 0; + flex: 1; + min-height: 0; + overflow: hidden; +} + +// Unified task-box height +.task-box { + box-sizing: border-box; + height: calc(100vh - var(--page-top-offset)); + display: flex; + flex-direction: column; +} + +// Search wrapper — no shrink +.grid-right-btn, +.top-screen { + flex-shrink: 0; +} + +// Common page containers — flex column fill +.regional-grid, +.plan-task, +.user-manage { + display: flex; + flex-direction: column; + height: calc(100vh - var(--page-top-offset)); + box-sizing: border-box; + background-color: var(--color-bg-card); + overflow: hidden; + padding-bottom: 0; +} + +// ========================================== +// Form & Search Field Widths +// ========================================== + .screen-item { - width: 150px; + width: 160px; display: inline-block; } .screen-item .el-input { width: 100%; } + .form-item { width: 180px; } + .form-item .el-input { width: 100%; } + .form-item .el-date-editor.el-input, .form-item .el-date-editor.el-input__inner { width: 100%; } + .form-tip { - margin-left: 10px; - color: blue; + margin-left: var(--spacing-md); + color: var(--color-primary); cursor: pointer; } + +// ========================================== +// Left-Right Split Layout (tree + table) +// ========================================== + +.split-layout { + display: flex; + box-sizing: border-box; + height: calc(100vh - var(--page-top-offset)); + + .split-layout-left { + width: var(--tree-panel-width); + min-width: var(--tree-panel-width); + box-sizing: border-box; + padding: var(--spacing-xl); + background-color: var(--color-bg-card); + border-right: 1px solid var(--color-border-light); + overflow: auto; + } + + .split-layout-right { + flex: 1; + min-width: 0; + padding: var(--spacing-md); + background-color: var(--color-bg-card); + overflow: auto; + } +} + +// ========================================== +// Dialog / Hand-box Styles +// ========================================== + +// Dialog form standard spacing (replaces margin-top: -20px hack) +.dialog-form { + padding: var(--spacing-xl) 0; + border-top: 1px solid var(--color-border); + border-bottom: 1px solid var(--color-border); +} + .hand-box .hand-box-title { font-weight: bold; font-size: 18px; line-height: 40px; - border-bottom: 1px solid #f2f2f2; + border-bottom: 1px solid var(--color-border-light); } .hand-box .hand-box-title > span { - font-size: 12px; - color: grey; - margin-left: 20px; + font-size: var(--font-size-xs); + color: var(--color-info); + margin-left: var(--spacing-xl); } .hand-box .hand-box-con { - display: -webkit-box; - display: -ms-flexbox; display: flex; - -ms-flex-wrap: wrap; flex-wrap: wrap; width: 100%; - padding: 10px 0; - flex-wrap: wrap; + padding: var(--spacing-md) 0; } .hand-box .hand-box-con .handle-item { width: 50%; - display: -webkit-box; - display: -ms-flexbox; display: flex; - -webkit-box-pack: start; - -ms-flex-pack: start; justify-content: flex-start; - -webkit-box-align: center; - -ms-flex-align: center; align-items: center; - -ms-flex-line-pack: center; align-content: center; - margin-bottom: 10px; + margin-bottom: var(--spacing-md); } .hand-box .hand-box-con .handle-item.upload { width: 100%; - -ms-flex-wrap: wrap; flex-wrap: wrap; } .hand-box .hand-box-con .handle-item .handle-label { width: 120px; - color: #000; + color: var(--color-text-primary); } .hand-box .hand-box-con .handle-item .handle-value { - color: grey; + color: var(--color-info); } .hand-box .hand-box-con .handle-item .upload-item, @@ -204,20 +626,12 @@ body .el-table colgroup.gutter { } .hand-box .hand-box-con .handle-item .upload-item { - display: -webkit-box; - display: -ms-flexbox; display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; align-items: center; - -ms-flex-wrap: wrap; flex-wrap: wrap; - -ms-flex-line-pack: center; align-content: center; - border: 1px dashed #f2f2f2; + border: 1px dashed var(--color-border-light); position: relative; cursor: pointer; } @@ -242,14 +656,13 @@ body .el-table colgroup.gutter { .hand-box .hand-box-con .handle-item .img-item { text-align: center; - margin-left: 20px; + margin-left: var(--spacing-xl); overflow: hidden; } .hand-box .hand-box-con .handle-item .img-item .img-box { width: 100%; - padding: 10px; - -webkit-box-sizing: border-box; + padding: var(--spacing-md); box-sizing: border-box; position: relative; } @@ -267,7 +680,7 @@ body .el-table colgroup.gutter { right: 0; top: 0; border-radius: 50%; - background-color: #f2f2f2f2; + background-color: var(--color-border-light); line-height: 20px; text-align: center; cursor: pointer; @@ -275,20 +688,18 @@ body .el-table colgroup.gutter { } .hand-box .hand-box-con .handle-item .img-item .img-box span:hover { - background-color: blue; + background-color: var(--color-primary); color: #fff; } .qu-dialog { position: absolute; width: 100%; - background-color: #fff; + background-color: var(--color-bg-card); } .qu-dialog .el-dialog { - margin: 0 !important; - width: 100% !important; - -webkit-box-shadow: 0 0px 0px !important; - box-shadow: 0 0px 0px !important; + margin: 0; + width: 100%; + box-shadow: none; } -/*# sourceMappingURL=base.css.map */ diff --git a/frontend/witcleansystem/src/Assets/css/variables.scss b/frontend/witcleansystem/src/Assets/css/variables.scss new file mode 100644 index 0000000..c9d8953 --- /dev/null +++ b/frontend/witcleansystem/src/Assets/css/variables.scss @@ -0,0 +1,120 @@ +:root { + // 主色 + --color-primary: #6366f1; + --color-primary-light: #818cf8; + --color-primary-dark: #4f46e5; + --color-primary-bg: #eef2ff; + + // 语义色 + --color-success: #22c55e; + --color-warning: #f59e0b; + --color-danger: #ef4444; + --color-info: #6b7280; + + // 中性色 + --color-text-primary: #1f2937; + --color-text-secondary: #6b7280; + --color-text-placeholder: #9ca3af; + --color-border: #e5e7eb; + --color-border-light: #f3f4f6; + --color-bg-page: #f5f7fa; + --color-bg-card: #ffffff; + + // 侧边栏(跟随主色) + --sidebar-bg: var(--color-primary-dark); + --sidebar-text: rgba(255, 255, 255, 0.75); + --sidebar-active: #fff; + --sidebar-width: 200px; + --sidebar-collapsed-width: 64px; + + // 间距(8px 基准栅格) + --spacing-xs: 4px; + --spacing-sm: 8px; + --spacing-md: 12px; + --spacing-lg: 16px; + --spacing-xl: 24px; + --spacing-2xl: 32px; + + // 头部 & 标签栏高度(tags+头像合并为一行) + --header-height: 50px; + --topbar-height: 40px; + --tags-height: 0px; + --content-padding-top: calc(var(--topbar-height) + 4px); + --page-top-offset: var(--content-padding-top); + + // 圆角 + --radius-sm: 4px; + --radius-md: 8px; + --radius-lg: 12px; + + // 阴影 + --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05); + --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07); + + // 字体 + --font-size-xs: 12px; + --font-size-sm: 13px; + --font-size-base: 14px; + --font-size-lg: 16px; + --font-size-xl: 20px; + + // 树面板(左右分栏布局) + --tree-panel-width: 280px; +} + +// 暗色模式 +[data-theme="dark"] { + --color-text-primary: #e5e7eb; + --color-text-secondary: #9ca3af; + --color-text-placeholder: #6b7280; + --color-border: #374151; + --color-border-light: #1f2937; + --color-bg-page: #111827; + --color-bg-card: #1f2937; + + --sidebar-bg: #0f172a; + --sidebar-text: #94a3b8; + + --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.3); + --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.4); + + // Element Plus 暗色适配 + --el-bg-color: #1f2937; + --el-bg-color-overlay: #374151; + --el-bg-color-page: #111827; + --el-text-color-primary: #e5e7eb; + --el-text-color-regular: #d1d5db; + --el-text-color-secondary: #9ca3af; + --el-text-color-placeholder: #6b7280; + --el-border-color: #374151; + --el-border-color-light: #4b5563; + --el-border-color-lighter: #374151; + --el-border-color-extra-light: #1f2937; + --el-fill-color: #374151; + --el-fill-color-light: #1f2937; + --el-fill-color-lighter: #111827; + --el-fill-color-blank: #1f2937; + --el-mask-color: rgba(0, 0, 0, 0.6); + + // 表格暗色 + --el-table-bg-color: var(--color-bg-card); + --el-table-tr-bg-color: var(--color-bg-card); + --el-table-header-bg-color: var(--color-bg-page); + --el-table-row-hover-bg-color: #374151; + --el-table-current-row-bg-color: #374151; + --el-table-border-color: #374151; + --el-table-text-color: var(--color-text-primary); + --el-table-header-text-color: var(--color-text-secondary); + // stripe 斑马纹(偶行比奇行略浅) + --el-fill-color-lighter: #263345; + --el-color-white: var(--color-bg-card); + + // 分页暗色 + --el-pagination-bg-color: transparent; + --el-pagination-button-bg-color: #374151; + --el-pagination-hover-color: var(--color-primary); + + // 对话框/抽屉暗色 + --el-dialog-bg-color: #1f2937; + --el-drawer-bg-color: #1f2937; +} diff --git a/frontend/witcleansystem/src/Components/common/headerCom.vue b/frontend/witcleansystem/src/Components/common/headerCom.vue index 43a6fd2..531dfc5 100644 --- a/frontend/witcleansystem/src/Components/common/headerCom.vue +++ b/frontend/witcleansystem/src/Components/common/headerCom.vue @@ -1,45 +1,90 @@ diff --git a/frontend/witcleansystem/src/Components/common/sideMenuCom.vue b/frontend/witcleansystem/src/Components/common/sideMenuCom.vue index 2f0b79d..b46cd8f 100644 --- a/frontend/witcleansystem/src/Components/common/sideMenuCom.vue +++ b/frontend/witcleansystem/src/Components/common/sideMenuCom.vue @@ -1,9 +1,9 @@