Compare commits
7 Commits
69d9d9f622
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| cca37d9384 | |||
|
|
793a8e1b84 | ||
| 48309e703c | |||
|
|
971967b791 | ||
|
|
5cafab7534 | ||
| f2bf843984 | |||
|
|
f7cdff31ba |
25
index.html
25
index.html
@@ -6,18 +6,37 @@
|
|||||||
<title>效能平台</title>
|
<title>效能平台</title>
|
||||||
<link rel="stylesheet" href="https://unpkg.com/wangeditor@4.7.15/dist/css/style.css" />
|
<link rel="stylesheet" href="https://unpkg.com/wangeditor@4.7.15/dist/css/style.css" />
|
||||||
<style>
|
<style>
|
||||||
|
html {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
body {
|
body {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
background: #070b16;
|
||||||
|
color: #dbeafe;
|
||||||
}
|
}
|
||||||
html{
|
body.theme-light {
|
||||||
height: 100%;
|
background: #eef4ff;
|
||||||
|
color: #1f2937;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
<script>
|
||||||
|
(function () {
|
||||||
|
var theme = 'dark';
|
||||||
|
try {
|
||||||
|
theme = localStorage.getItem('uiTheme') || 'dark';
|
||||||
|
} catch (e) {}
|
||||||
|
document.documentElement.className = theme === 'light' ? 'theme-light' : 'theme-dark';
|
||||||
|
document.addEventListener('DOMContentLoaded', function () {
|
||||||
|
document.body.classList.remove('theme-dark', 'theme-light');
|
||||||
|
document.body.classList.add(theme === 'light' ? 'theme-light' : 'theme-dark');
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body class="theme-dark">
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<!-- built files will be auto injected -->
|
<!-- built files will be auto injected -->
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
12
nginx.conf
12
nginx.conf
@@ -1,3 +1,4 @@
|
|||||||
|
# 发版后避免浏览器长期使用旧 index 引用旧 js/css
|
||||||
server {
|
server {
|
||||||
listen 80;
|
listen 80;
|
||||||
server_name localhost;
|
server_name localhost;
|
||||||
@@ -7,6 +8,17 @@ server {
|
|||||||
root /usr/share/nginx/html;
|
root /usr/share/nginx/html;
|
||||||
index index.html;
|
index index.html;
|
||||||
|
|
||||||
|
location = /index.html {
|
||||||
|
add_header Cache-Control "no-store, no-cache, must-revalidate, max-age=0" always;
|
||||||
|
add_header Pragma "no-cache" always;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ^~ /static/ {
|
||||||
|
expires 1y;
|
||||||
|
add_header Cache-Control "public, immutable" always;
|
||||||
|
access_log off;
|
||||||
|
}
|
||||||
|
|
||||||
location /it/api/ {
|
location /it/api/ {
|
||||||
proxy_pass http://172.18.0.1:5010;
|
proxy_pass http://172.18.0.1:5010;
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
|
|||||||
52
src/App.vue
52
src/App.vue
@@ -233,12 +233,36 @@ button,
|
|||||||
border-color: rgba(56, 189, 248, 0.5);
|
border-color: rgba(56, 189, 248, 0.5);
|
||||||
}
|
}
|
||||||
|
|
||||||
.el-tag {
|
.el-tag:not(.el-tag--success):not(.el-tag--warning):not(.el-tag--danger):not(.el-tag--info) {
|
||||||
border-color: rgba(56, 189, 248, 0.28);
|
border-color: rgba(56, 189, 248, 0.28);
|
||||||
background: rgba(56, 189, 248, 0.12);
|
background: rgba(56, 189, 248, 0.12);
|
||||||
color: #bae6fd;
|
color: #bae6fd;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.el-tag.el-tag--success {
|
||||||
|
border-color: rgba(103, 194, 58, 0.45);
|
||||||
|
background: rgba(103, 194, 58, 0.16);
|
||||||
|
color: #86efac;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tag.el-tag--warning {
|
||||||
|
border-color: rgba(230, 162, 60, 0.45);
|
||||||
|
background: rgba(230, 162, 60, 0.16);
|
||||||
|
color: #fcd34d;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tag.el-tag--danger {
|
||||||
|
border-color: rgba(245, 108, 108, 0.45);
|
||||||
|
background: rgba(245, 108, 108, 0.16);
|
||||||
|
color: #fca5a5;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-tag.el-tag--info {
|
||||||
|
border-color: rgba(148, 163, 184, 0.35);
|
||||||
|
background: rgba(148, 163, 184, 0.14);
|
||||||
|
color: #cbd5e1;
|
||||||
|
}
|
||||||
|
|
||||||
.el-card__header {
|
.el-card__header {
|
||||||
background: #162033;
|
background: #162033;
|
||||||
border-bottom-color: rgba(148, 163, 184, 0.18);
|
border-bottom-color: rgba(148, 163, 184, 0.18);
|
||||||
@@ -439,12 +463,36 @@ body.theme-light .el-tabs__nav-wrap::after {
|
|||||||
background-color: #e2e8f0;
|
background-color: #e2e8f0;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.theme-light .el-tag {
|
body.theme-light .el-tag:not(.el-tag--success):not(.el-tag--warning):not(.el-tag--danger):not(.el-tag--info) {
|
||||||
border-color: #bfdbfe;
|
border-color: #bfdbfe;
|
||||||
background: #eff6ff;
|
background: #eff6ff;
|
||||||
color: #1d4ed8;
|
color: #1d4ed8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-tag.el-tag--success {
|
||||||
|
border-color: #e1f3d8;
|
||||||
|
background: #f0f9eb;
|
||||||
|
color: #67c23a;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-tag.el-tag--warning {
|
||||||
|
border-color: #faecd8;
|
||||||
|
background: #fdf6ec;
|
||||||
|
color: #e6a23c;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-tag.el-tag--danger {
|
||||||
|
border-color: #fde2e2;
|
||||||
|
background: #fef0f0;
|
||||||
|
color: #f56c6c;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-tag.el-tag--info {
|
||||||
|
border-color: #e9e9eb;
|
||||||
|
background: #f4f4f5;
|
||||||
|
color: #909399;
|
||||||
|
}
|
||||||
|
|
||||||
body.theme-light .el-tree,
|
body.theme-light .el-tree,
|
||||||
body.theme-light .el-tree-node__content {
|
body.theme-light .el-tree-node__content {
|
||||||
color: #334155;
|
color: #334155;
|
||||||
|
|||||||
@@ -9,6 +9,7 @@
|
|||||||
<div class="brand-subtitle">Quality Workspace</div>
|
<div class="brand-subtitle">Quality Workspace</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="aside-menu-scroll">
|
||||||
<el-menu
|
<el-menu
|
||||||
:default-active="$route.path"
|
:default-active="$route.path"
|
||||||
class="el-menu-vertical-demo"
|
class="el-menu-vertical-demo"
|
||||||
@@ -48,6 +49,7 @@
|
|||||||
</el-menu-item>
|
</el-menu-item>
|
||||||
</template>
|
</template>
|
||||||
</el-menu>
|
</el-menu>
|
||||||
|
</div>
|
||||||
</aside>
|
</aside>
|
||||||
<el-container class="workspace-shell">
|
<el-container class="workspace-shell">
|
||||||
<el-header class="header">
|
<el-header class="header">
|
||||||
@@ -391,18 +393,43 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.aside {
|
.aside {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
background: linear-gradient(180deg, #07111f 0%, #081426 46%, #050914 100%);
|
background: linear-gradient(180deg, #07111f 0%, #081426 46%, #050914 100%);
|
||||||
box-shadow: 12px 0 38px rgba(0, 0, 0, 0.42), inset -1px 0 0 rgba(56, 189, 248, 0.14);
|
box-shadow: 12px 0 38px rgba(0, 0, 0, 0.42), inset -1px 0 0 rgba(56, 189, 248, 0.14);
|
||||||
transition: width 0.25s ease;
|
transition: width 0.25s ease;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.aside-menu-scroll {
|
||||||
|
flex: 1;
|
||||||
|
min-height: 0;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow-y: auto;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside-menu-scroll::-webkit-scrollbar {
|
||||||
|
width: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside-menu-scroll::-webkit-scrollbar-thumb {
|
||||||
|
border-radius: 3px;
|
||||||
|
background: rgba(148, 163, 184, 0.35);
|
||||||
|
}
|
||||||
|
|
||||||
|
.aside-menu-scroll::-webkit-scrollbar-track {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
.aside--collapse .brand-panel {
|
.aside--collapse .brand-panel {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
padding: 18px 8px;
|
padding: 18px 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.brand-panel {
|
.brand-panel {
|
||||||
|
flex-shrink: 0;
|
||||||
height: 72px;
|
height: 72px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
display: flex;
|
display: flex;
|
||||||
@@ -447,7 +474,6 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.el-menu-vertical-demo {
|
.el-menu-vertical-demo {
|
||||||
height: calc(100% - 72px);
|
|
||||||
border-right: none;
|
border-right: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -680,4 +706,58 @@ export default {
|
|||||||
.theme-shell-light .main-form {
|
.theme-shell-light .main-form {
|
||||||
background: linear-gradient(135deg, #f8fbff 0%, #eef4ff 100%);
|
background: linear-gradient(135deg, #f8fbff 0%, #eef4ff 100%);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 深色壳下内容区兜底:避免旧缓存 bundle 未加载 App.vue 全局样式时出现白卡片/白分页 */
|
||||||
|
.theme-shell-dark >>> .page-section.el-card {
|
||||||
|
background: #111827;
|
||||||
|
border-color: rgba(148, 163, 184, 0.2);
|
||||||
|
color: #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-shell-dark >>> .page-section .el-card__header {
|
||||||
|
background: #162033;
|
||||||
|
border-bottom-color: rgba(148, 163, 184, 0.18);
|
||||||
|
color: #f8fafc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-shell-dark >>> .page-section .el-table,
|
||||||
|
.theme-shell-dark >>> .page-section .el-table__expanded-cell,
|
||||||
|
.theme-shell-dark >>> .page-section .el-table th,
|
||||||
|
.theme-shell-dark >>> .page-section .el-table tr,
|
||||||
|
.theme-shell-dark >>> .page-section .el-table td {
|
||||||
|
background-color: #111827 !important;
|
||||||
|
color: #e5e7eb !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-shell-dark >>> .page-section .el-table th,
|
||||||
|
.theme-shell-dark >>> .page-section .el-table thead th {
|
||||||
|
background: #1f2937 !important;
|
||||||
|
color: #f8fafc !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-shell-dark >>> .page-section .el-form-item__label {
|
||||||
|
color: #dbeafe;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-shell-dark >>> .page-section .el-input__inner,
|
||||||
|
.theme-shell-dark >>> .page-section .el-textarea__inner,
|
||||||
|
.theme-shell-dark >>> .page-section .el-select .el-input__inner {
|
||||||
|
background-color: #0f172a;
|
||||||
|
border-color: rgba(148, 163, 184, 0.28);
|
||||||
|
color: #f8fafc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-shell-dark >>> .page-section .el-pagination,
|
||||||
|
.theme-shell-dark >>> .page-section .el-pagination button,
|
||||||
|
.theme-shell-dark >>> .page-section .el-pagination span:not([class*=suffix]) {
|
||||||
|
color: #dbeafe;
|
||||||
|
}
|
||||||
|
|
||||||
|
.theme-shell-dark >>> .page-section .el-pagination .btn-prev,
|
||||||
|
.theme-shell-dark >>> .page-section .el-pagination .btn-next,
|
||||||
|
.theme-shell-dark >>> .page-section .el-pager li {
|
||||||
|
background: #111827;
|
||||||
|
color: #dbeafe;
|
||||||
|
border: 1px solid rgba(148, 163, 184, 0.18);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-tabs v-model="activeTab" style="margin-top: 8px;">
|
<el-tabs v-model="activeTab" class="case-list-tabs" style="margin-top: 8px;">
|
||||||
<el-tab-pane label="模块列表" name="modules">
|
<el-tab-pane label="模块列表" name="modules">
|
||||||
<div class="module-list-toolbar">
|
<div class="module-list-toolbar">
|
||||||
<el-button
|
<el-button
|
||||||
@@ -588,6 +588,7 @@
|
|||||||
width="760px"
|
width="760px"
|
||||||
top="6vh"
|
top="6vh"
|
||||||
append-to-body
|
append-to-body
|
||||||
|
custom-class="case-ai-detail-dialog"
|
||||||
@closed="resetAiCaseDetailDialog">
|
@closed="resetAiCaseDetailDialog">
|
||||||
<div v-loading="aiCaseDetailLoading" class="ai-case-detail-wrap">
|
<div v-loading="aiCaseDetailLoading" class="ai-case-detail-wrap">
|
||||||
<template v-if="!aiCaseDetailLoading && aiCaseDetailRowPresent">
|
<template v-if="!aiCaseDetailLoading && aiCaseDetailRowPresent">
|
||||||
@@ -641,6 +642,7 @@
|
|||||||
:visible.sync="autoGenDialogVisible"
|
:visible.sync="autoGenDialogVisible"
|
||||||
width="560px"
|
width="560px"
|
||||||
append-to-body
|
append-to-body
|
||||||
|
custom-class="case-auto-gen-dialog"
|
||||||
@closed="resetAutoGenDialog">
|
@closed="resetAutoGenDialog">
|
||||||
<el-form ref="autoGenFormRef" :model="autoGenForm" :rules="autoGenRules" label-width="120px" size="small">
|
<el-form ref="autoGenFormRef" :model="autoGenForm" :rules="autoGenRules" label-width="120px" size="small">
|
||||||
<el-form-item label="当前用例">
|
<el-form-item label="当前用例">
|
||||||
@@ -2538,7 +2540,6 @@ export default {
|
|||||||
.ai-case-detail-title {
|
.ai-case-detail-title {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #f8fafc;
|
|
||||||
line-height: 1.4;
|
line-height: 1.4;
|
||||||
margin-bottom: 14px;
|
margin-bottom: 14px;
|
||||||
}
|
}
|
||||||
@@ -2554,20 +2555,16 @@ export default {
|
|||||||
.ai-case-detail-label {
|
.ai-case-detail-label {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: #cbd5e1;
|
|
||||||
margin-bottom: 6px;
|
margin-bottom: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ai-case-detail-text {
|
.ai-case-detail-text {
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
color: #e5e7eb;
|
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
padding: 10px 12px;
|
padding: 10px 12px;
|
||||||
background: #0f172a;
|
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border: 1px solid rgba(148, 163, 184, 0.2);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.ai-case-detail-empty {
|
.ai-case-detail-empty {
|
||||||
@@ -2578,7 +2575,6 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.auto-gen-case-title {
|
.auto-gen-case-title {
|
||||||
color: #f8fafc;
|
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
word-break: break-word;
|
word-break: break-word;
|
||||||
@@ -2596,12 +2592,315 @@ body.theme-light .ai-gen-params-bar {
|
|||||||
|
|
||||||
body.theme-light .ai-gen-params-label,
|
body.theme-light .ai-gen-params-label,
|
||||||
body.theme-light .ai-doc-block-title,
|
body.theme-light .ai-doc-block-title,
|
||||||
body.theme-light .ai-case-table-title,
|
body.theme-light .ai-case-table-title {
|
||||||
body.theme-light .auto-gen-case-title {
|
|
||||||
color: #0f172a;
|
color: #0f172a;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.theme-light .ai-gen-params-hint {
|
body.theme-light .ai-gen-params-hint {
|
||||||
color: #64748b;
|
color: #64748b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-wrap {
|
||||||
|
background: #f8fbff;
|
||||||
|
border-color: #dbe5f3;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .xmind-tree /deep/ .el-tree-node__children:before {
|
||||||
|
border-left-color: #cbd5e1;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .xmind-tree /deep/ .el-tree-node__content:before {
|
||||||
|
border-top-color: #94a3b8;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-node {
|
||||||
|
background: #ffffff;
|
||||||
|
border-color: #dbe5f3;
|
||||||
|
box-shadow: 0 1px 6px rgba(37, 99, 235, 0.08);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-node-title {
|
||||||
|
color: #0f172a;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-node-project {
|
||||||
|
border-color: #67c23a;
|
||||||
|
box-shadow: 0 1px 6px rgba(103, 194, 58, 0.12);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-node-module {
|
||||||
|
border-color: #e6a23c;
|
||||||
|
box-shadow: 0 1px 6px rgba(230, 162, 60, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-node-case {
|
||||||
|
border-color: #93c5fd;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-inline-detail-line {
|
||||||
|
border-top-color: #94a3b8;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-inline-detail-card {
|
||||||
|
background: #ffffff;
|
||||||
|
border-color: #dbe5f3;
|
||||||
|
box-shadow: 0 4px 16px rgba(37, 99, 235, 0.08);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-inline-detail-title {
|
||||||
|
color: #0f172a;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-inline-detail-item {
|
||||||
|
color: #475569;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .mindmap-meta-text,
|
||||||
|
body.theme-light .mindmap-empty {
|
||||||
|
color: #64748b;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<!-- 非 scoped:Tab / append-to-body 弹窗 / 日期范围在深浅色下与整站一致 -->
|
||||||
|
<style>
|
||||||
|
.case-list-tabs .el-tabs__item {
|
||||||
|
color: #94a3b8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-list-tabs .el-tabs__item:hover {
|
||||||
|
color: #cbd5e1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-list-tabs .el-tabs__item.is-active {
|
||||||
|
color: #38bdf8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.case-list-tabs .el-tabs__nav-wrap::after {
|
||||||
|
background-color: rgba(148, 163, 184, 0.18);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .case-list-tabs .el-tabs__item {
|
||||||
|
color: #64748b;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .case-list-tabs .el-tabs__item:hover {
|
||||||
|
color: #334155;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .case-list-tabs .el-tabs__item.is-active {
|
||||||
|
color: #2563eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .case-list-tabs .el-tabs__nav-wrap::after {
|
||||||
|
background-color: #e2e8f0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-auto-gen-dialog {
|
||||||
|
background: #111827;
|
||||||
|
border: 1px solid rgba(148, 163, 184, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-auto-gen-dialog .el-dialog__header {
|
||||||
|
border-bottom: 1px solid rgba(148, 163, 184, 0.16);
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-auto-gen-dialog .el-dialog__title,
|
||||||
|
.el-dialog.case-auto-gen-dialog .el-dialog__body,
|
||||||
|
.el-dialog.case-auto-gen-dialog .el-form-item__label {
|
||||||
|
color: #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-auto-gen-dialog .auto-gen-case-title {
|
||||||
|
color: #f1f5f9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-auto-gen-dialog .el-input__inner,
|
||||||
|
.el-dialog.case-auto-gen-dialog .el-textarea__inner,
|
||||||
|
.el-dialog.case-auto-gen-dialog .el-select .el-input__inner {
|
||||||
|
background-color: #0f172a;
|
||||||
|
border-color: rgba(148, 163, 184, 0.28);
|
||||||
|
color: #f8fafc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-auto-gen-dialog .el-input__inner::placeholder,
|
||||||
|
.el-dialog.case-auto-gen-dialog .el-textarea__inner::placeholder {
|
||||||
|
color: #64748b;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-auto-gen-dialog {
|
||||||
|
background: #ffffff;
|
||||||
|
border-color: #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-auto-gen-dialog .el-dialog__header {
|
||||||
|
border-bottom-color: #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-auto-gen-dialog .el-dialog__title,
|
||||||
|
body.theme-light .el-dialog.case-auto-gen-dialog .el-dialog__body,
|
||||||
|
body.theme-light .el-dialog.case-auto-gen-dialog .el-form-item__label {
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-auto-gen-dialog .auto-gen-case-title {
|
||||||
|
color: #0f172a;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-auto-gen-dialog .el-input__inner,
|
||||||
|
body.theme-light .el-dialog.case-auto-gen-dialog .el-textarea__inner,
|
||||||
|
body.theme-light .el-dialog.case-auto-gen-dialog .el-select .el-input__inner {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-color: #dcdfe6;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-wrap .el-date-editor .el-input__inner {
|
||||||
|
background-color: #0f172a;
|
||||||
|
border-color: rgba(148, 163, 184, 0.28);
|
||||||
|
color: #f8fafc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-wrap .el-date-editor .el-range-input {
|
||||||
|
background-color: transparent;
|
||||||
|
color: #f8fafc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-wrap .el-date-editor .el-range-separator {
|
||||||
|
color: #94a3b8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-wrap .el-date-editor .el-range-input::placeholder {
|
||||||
|
color: #64748b;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .page-wrap .el-date-editor .el-input__inner {
|
||||||
|
background-color: #ffffff;
|
||||||
|
border-color: #dcdfe6;
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .page-wrap .el-date-editor .el-range-input {
|
||||||
|
color: #606266;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .page-wrap .el-date-editor .el-range-separator {
|
||||||
|
color: #909399;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* AI 用例详情弹窗(append-to-body) */
|
||||||
|
.el-dialog.case-ai-detail-dialog {
|
||||||
|
background: #111827;
|
||||||
|
border: 1px solid rgba(148, 163, 184, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .el-dialog__header {
|
||||||
|
border-bottom: 1px solid rgba(148, 163, 184, 0.16);
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .el-dialog__title {
|
||||||
|
color: #f8fafc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .el-dialog__body {
|
||||||
|
color: #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .ai-case-detail-title {
|
||||||
|
color: #f8fafc;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .ai-case-detail-label {
|
||||||
|
color: #dbeafe;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .ai-case-detail-text {
|
||||||
|
color: #e5e7eb;
|
||||||
|
background: #0f172a;
|
||||||
|
border: 1px solid rgba(148, 163, 184, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .ai-case-detail-empty {
|
||||||
|
color: #94a3b8;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .el-descriptions__body {
|
||||||
|
background-color: #111827;
|
||||||
|
color: #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .el-descriptions-item__label {
|
||||||
|
color: #94a3b8;
|
||||||
|
background: #1f2937;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .el-descriptions-item__content {
|
||||||
|
color: #e5e7eb;
|
||||||
|
background: #111827;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .el-descriptions__body .el-descriptions__table {
|
||||||
|
border-color: rgba(148, 163, 184, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-dialog.case-ai-detail-dialog .el-descriptions__body .el-descriptions-item__cell {
|
||||||
|
border-color: rgba(148, 163, 184, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog {
|
||||||
|
background: #ffffff;
|
||||||
|
border-color: #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .el-dialog__header {
|
||||||
|
border-bottom-color: #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .el-dialog__title {
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .el-dialog__body {
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .ai-case-detail-title {
|
||||||
|
color: #0f172a;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .ai-case-detail-label {
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .ai-case-detail-text {
|
||||||
|
color: #334155;
|
||||||
|
background: #f8fafc;
|
||||||
|
border: 1px solid #e5e7eb;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .ai-case-detail-empty {
|
||||||
|
color: #909399;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .el-descriptions__body {
|
||||||
|
background-color: #ffffff;
|
||||||
|
color: #303133;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .el-descriptions-item__label {
|
||||||
|
color: #606266;
|
||||||
|
background: #fafafa;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .el-descriptions-item__content {
|
||||||
|
color: #303133;
|
||||||
|
background: #ffffff;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .el-descriptions__body .el-descriptions__table {
|
||||||
|
border-color: #ebeef5;
|
||||||
|
}
|
||||||
|
|
||||||
|
body.theme-light .el-dialog.case-ai-detail-dialog .el-descriptions__body .el-descriptions-item__cell {
|
||||||
|
border-color: #ebeef5;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -8,6 +8,14 @@ import ElementUI from 'element-ui';
|
|||||||
import store from '@/vuex/store'
|
import store from '@/vuex/store'
|
||||||
import 'element-ui/lib/theme-chalk/index.css';
|
import 'element-ui/lib/theme-chalk/index.css';
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
|
|
||||||
|
function applyInitialTheme() {
|
||||||
|
const theme = localStorage.getItem('uiTheme') || 'dark'
|
||||||
|
document.body.classList.remove('theme-dark', 'theme-light')
|
||||||
|
document.body.classList.add(theme === 'light' ? 'theme-light' : 'theme-dark')
|
||||||
|
}
|
||||||
|
applyInitialTheme()
|
||||||
|
|
||||||
Vue.use(ElementUI);
|
Vue.use(ElementUI);
|
||||||
Vue.prototype.$axios = axios
|
Vue.prototype.$axios = axios
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user