diff --git a/.env.development b/.env.development
index dcf21ec..a1bde1c 100644
--- a/.env.development
+++ b/.env.development
@@ -18,4 +18,7 @@ VITE_APP_BASE_API = '/'
# VITE_APP_BASE_API = 'http://118.31.7.2:7548/'
VITE_APP_AI_API = 'https://whmnjy.sztzjy.com:8764/'
VITE_APP_ENV = 'development'
-VITE_APP_BASE_API = 'http://192.168.1.74:7548/'
+# VITE_APP_BASE_API = 'http://192.168.1.74:7548/'
+# 开发环境通过 vite 代理转发到线上,baseURL 用相对路径 '/' 避免跨域
+# VITE_APP_BASE_API = 'http://120.79.161.177:8999/'
+VITE_APP_BASE_API = '/'
diff --git a/src/assets/styles/student-training.scss b/src/assets/styles/student-training.scss
index e8fff74..1638849 100644
--- a/src/assets/styles/student-training.scss
+++ b/src/assets/styles/student-training.scss
@@ -1,3 +1,23 @@
+/* 全局字体变量(:root):确保所有 .vue 文件均可访问,不限于 .student-training-shell */
+:root {
+ /* 字体栈:中文优先苹方/思源黑体,回退微软雅黑,跨平台一致 */
+ --student-font-base: "PingFang SC", "Source Han Sans SC", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
+ /* 数字/数据字体:等宽对齐,成绩/金额专用 */
+ --student-font-data: "PingFang SC", "SF Mono", "JetBrains Mono", "Microsoft YaHei", monospace;
+
+ /* 字号变量(对齐 Word 标准:1pt ≈ 1.333px) */
+ --student-fs-display: 20px; /* 小三 15pt - 任务主标题 */
+ --student-fs-h1: 18px; /* 小三 15pt - 步骤大标题 */
+ --student-fs-h2: 16px; /* 小四 12pt - 面板/步骤行标题 */
+ --student-fs-h3: 14px; /* 五号 10.5pt - 区块小标题 */
+ --student-fs-body: 14px; /* 五号 10.5pt - 正文/描述 */
+ --student-fs-body-sm: 13px; /* 表格次要文字 */
+ --student-fs-caption: 12px; /* 小五 9pt - 标签/徽章 */
+ --student-fs-button: 14px; /* 五号 - 按钮文字 */
+ --student-fs-button-lg: 15px; /* 主操作按钮 */
+ --student-fs-data: 16px; /* 小四 12pt - 数字/成绩/金额 */
+}
+
.student-training-shell {
--student-step-height: 46px;
--student-step-font: 14px;
@@ -37,25 +57,33 @@
margin: 0 !important;
padding: 24px 24px 32px !important;
background: #06111d !important;
+ /* 应用实训页专用字体栈 + 数字等宽对齐 */
+ font-family: var(--student-font-base) !important;
+ font-size: var(--student-fs-body) !important;
+ line-height: 1.8 !important;
+ font-variant-numeric: tabular-nums !important;
}
.student-training-shell .task-header .task-title {
- font-size: 30px !important;
- line-height: 1.3 !important;
+ font-size: var(--student-fs-display) !important; /* 20px 小三 */
+ line-height: 1.4 !important;
letter-spacing: 0 !important;
+ font-weight: 700 !important;
}
.student-training-shell .workbench-head h3 {
- font-size: 26px !important;
- line-height: 1.3 !important;
+ font-size: var(--student-fs-h1) !important; /* 18px 小三 */
+ line-height: 1.4 !important;
letter-spacing: 0 !important;
+ font-weight: 700 !important;
}
.student-training-shell .panel-title h4,
.student-training-shell .step-title-row h3 {
- font-size: 22px !important;
- line-height: 1.3 !important;
+ font-size: var(--student-fs-h2) !important; /* 16px 小四 */
+ line-height: 1.5 !important;
letter-spacing: 0 !important;
+ font-weight: 600 !important;
}
.student-training-shell .task-desc,
@@ -64,10 +92,23 @@
.student-training-shell .background-block,
.student-training-shell .example-block,
.student-training-shell .source-title {
- font-size: 15px !important;
+ font-size: var(--student-fs-body) !important; /* 14px 五号 */
line-height: 1.8 !important;
}
+/* 数字/成绩/金额专用:等宽对齐,避免列内跳动(小四 16px) */
+.student-training-shell .score-value,
+.student-training-shell .data-number,
+.student-training-shell .amount,
+.student-training-shell .stat-value,
+.student-training-shell .progress-value {
+ font-family: var(--student-font-data) !important;
+ font-size: var(--student-fs-data) !important; /* 16px 小四 */
+ font-variant-numeric: tabular-nums !important;
+ font-weight: 700 !important;
+ line-height: 1.4 !important;
+}
+
.student-training-shell .flow-steps,
.student-training-shell .step-indicator {
display: flex !important;
@@ -200,7 +241,7 @@
border-radius: 999px !important;
color: #ffffff !important;
background: linear-gradient(95deg, #0a6b9e, #0a5c86) !important;
- font-size: 15px !important;
+ font-size: var(--student-fs-body) !important;
font-weight: 800 !important;
line-height: 1 !important;
letter-spacing: 0 !important;
@@ -239,7 +280,7 @@
.training-step-area .online,
.training-step-area .online span {
color: #d7ecff !important;
- font-size: 15px !important;
+ font-size: var(--student-fs-body) !important;
line-height: 1.75 !important;
letter-spacing: 0 !important;
}
@@ -263,7 +304,7 @@
color: #e9fbff !important;
background: linear-gradient(180deg, #22aad6, #1687ba) !important;
box-shadow: none !important;
- font-size: 15px !important;
+ font-size: var(--student-fs-body) !important;
font-weight: 800 !important;
line-height: 1 !important;
letter-spacing: 0 !important;
@@ -512,7 +553,7 @@
.student-training-shell .large-textarea,
.student-training-shell .input-field,
.student-training-shell .table-textarea {
- font-size: 15px !important;
+ font-size: var(--student-fs-body) !important;
line-height: 1.65 !important;
letter-spacing: 0 !important;
}
@@ -568,7 +609,7 @@
color: #e9fbff !important;
background: rgba(13, 64, 88, 0.62) !important;
box-shadow: none !important;
- font-size: 15px !important;
+ font-size: var(--student-fs-body) !important;
font-weight: 800 !important;
line-height: 1 !important;
letter-spacing: 0 !important;
diff --git a/src/components/Crontab/index.vue b/src/components/Crontab/index.vue
index f1d7201..5fa31db 100644
--- a/src/components/Crontab/index.vue
+++ b/src/components/Crontab/index.vue
@@ -2,66 +2,33 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -70,41 +37,49 @@
时间表达式
- | {{item}} |
+ {{ item }} |
Cron 表达式 |
- {{crontabValueObj.second}}
- {{crontabValueObj.second}}
+ {{ crontabValueObj.second }}
+ {{ crontabValueObj.second }}
|
- {{crontabValueObj.min}}
- {{crontabValueObj.min}}
+ {{ crontabValueObj.min }}
+ {{ crontabValueObj.min }}
|
- {{crontabValueObj.hour}}
- {{crontabValueObj.hour}}
+ {{ crontabValueObj.hour }}
+ {{ crontabValueObj.hour }}
|
- {{crontabValueObj.day}}
- {{crontabValueObj.day}}
+ {{ crontabValueObj.day }}
+ {{ crontabValueObj.day }}
|
- {{crontabValueObj.month}}
- {{crontabValueObj.month}}
+ {{ crontabValueObj.month }}
+ {{ crontabValueObj.month }}
|
- {{crontabValueObj.week}}
- {{crontabValueObj.week}}
+ {{ crontabValueObj.week }}
+ {{ crontabValueObj.week }}
|
- {{crontabValueObj.year}}
- {{crontabValueObj.year}}
+ {{ crontabValueObj.year }}
+ {{ crontabValueObj.year }}
|
- {{crontabValueString}}
- {{crontabValueString}}
+ {{ crontabValueString }}
+ {{ crontabValueString }}
|
@@ -248,20 +223,23 @@ onMounted(() => {
text-align: center;
margin-top: 20px;
}
+
.popup-main {
position: relative;
margin: 10px auto;
background: #fff;
border-radius: 5px;
- font-size: 12px;
+ font-size: var(--student-fs-caption);
overflow: hidden;
}
+
.popup-title {
overflow: hidden;
line-height: 34px;
padding-top: 6px;
background: #f2f2f2;
}
+
.popup-result {
box-sizing: border-box;
line-height: 24px;
@@ -270,27 +248,31 @@ onMounted(() => {
border: 1px solid #ccc;
position: relative;
}
+
.popup-result .title {
position: absolute;
top: -28px;
left: 50%;
width: 140px;
- font-size: 14px;
+ font-size: var(--student-fs-body);
margin-left: -70px;
text-align: center;
line-height: 30px;
background: #fff;
}
+
.popup-result table {
text-align: center;
width: 100%;
margin: 0 auto;
}
+
.popup-result table td:not(.result) {
width: 3.5rem;
min-width: 3.5rem;
max-width: 3.5rem;
}
+
.popup-result table span {
display: block;
width: 100%;
@@ -301,10 +283,11 @@ onMounted(() => {
overflow: hidden;
border: 1px solid #e8e8e8;
}
+
.popup-result-scroll {
- font-size: 12px;
+ font-size: var(--student-fs-caption);
line-height: 24px;
height: 10em;
overflow-y: auto;
}
-
\ No newline at end of file
+
diff --git a/src/components/codemirror/index.vue b/src/components/codemirror/index.vue
index cc065b4..7162d00 100644
--- a/src/components/codemirror/index.vue
+++ b/src/components/codemirror/index.vue
@@ -168,14 +168,14 @@ watch(
:deep(#answer) {
display: block;
margin: -41px 0px 0px 0px;
- font-size: 14px;
+ font-size: var(--student-fs-body);
ol {
line-height: 10px;
li,
span {
- font-family: Source Han Sans CN;
+ font-family: var(--student-font-base);
font-weight: 400;
- font-size: 14px;
+ font-size: var(--student-fs-body);
color: #666666;
line-height: 14px;
}
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index c799bfe..afa79bf 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -370,10 +370,10 @@ onMounted(() => {
display: flex;
// justify-content: center;
align-items: center;
- font-family: Source Han Sans CN;
+ font-family: var(--student-font-base);
font-weight: bold;
color: #ffffff;
- font-size: 27px;
+ font-size: var(--student-fs-h1);
margin-left: 10px;
margin-top: 3px;
letter-spacing: 4px;
@@ -388,8 +388,8 @@ onMounted(() => {
z-index: 1000;
padding: 5px 20px;
span {
- font-size: 26px;
- font-family: Source Han Sans CN;
+ font-size: var(--student-fs-h1);
+ font-family: var(--student-font-base);
font-weight: 700;
color: #fff;
line-height: 50px;
@@ -423,7 +423,7 @@ onMounted(() => {
left: 45%;
top: 50%;
transform: translate(-50%, -50%);
- font-size: 20px;
+ font-size: var(--student-fs-display);
color: #fff;
font-weight: bold;
display: flex;
@@ -455,7 +455,7 @@ onMounted(() => {
&.school-admin-nav {
left: 55%;
gap: 8px;
- font-size: 16px;
+ font-size: var(--student-fs-h2);
.el-ment-item {
padding: 6px 10px;
}
@@ -465,7 +465,7 @@ onMounted(() => {
z-index: 1002;
max-width: calc(100vw - 560px);
gap: 8px;
- font-size: 15px;
+ font-size: var(--student-fs-body);
overflow-x: auto;
overflow-y: hidden;
padding: 4px 2px;
@@ -503,7 +503,7 @@ onMounted(() => {
display: inline-block;
padding: 0 8px;
height: 100%;
- font-size: 18px;
+ font-size: var(--student-fs-h1);
color: #5a5e66;
vertical-align: text-bottom;
@@ -536,7 +536,7 @@ onMounted(() => {
position: absolute;
right: -20px;
top: 25px;
- font-size: 12px;
+ font-size: var(--student-fs-caption);
}
}
}
@@ -556,7 +556,7 @@ onMounted(() => {
z-index: 1001;
span {
- font-size: 22px;
+ font-size: var(--student-fs-h2);
letter-spacing: 2px;
text-shadow: 0 0 14px rgba(80, 200, 255, 0.28);
}
diff --git a/src/layout/components/Settings/index.vue b/src/layout/components/Settings/index.vue
index 3bf28fe..5d88153 100644
--- a/src/layout/components/Settings/index.vue
+++ b/src/layout/components/Settings/index.vue
@@ -185,7 +185,7 @@ defineExpose({
line-height: 22px;
font-weight: bold;
.drawer-title {
- font-size: 14px;
+ font-size: var(--student-fs-body);
}
}
.setting-drawer-block-checbox {
@@ -223,7 +223,7 @@ defineExpose({
padding-left: 24px;
color: #1890ff;
font-weight: 700;
- font-size: 14px;
+ font-size: var(--student-fs-body);
}
}
}
@@ -231,7 +231,7 @@ defineExpose({
.drawer-item {
color: rgba(0, 0, 0, 0.65);
padding: 12px 0;
- font-size: 14px;
+ font-size: var(--student-fs-body);
.comp-style {
float: right;
diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue
index c6ebdba..0f57fd2 100644
--- a/src/layout/components/TagsView/index.vue
+++ b/src/layout/components/TagsView/index.vue
@@ -259,7 +259,7 @@ function handleScroll() {
color: #495060;
background: #fff;
padding: 0 8px;
- font-size: 12px;
+ font-size: var(--student-fs-caption);
margin-left: 5px;
margin-top: 4px;
&:first-of-type {
@@ -293,7 +293,7 @@ function handleScroll() {
list-style-type: none;
padding: 5px 0;
border-radius: 4px;
- font-size: 12px;
+ font-size: var(--student-fs-caption);
font-weight: 400;
color: #333;
box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);
diff --git a/src/views/AI/index.vue b/src/views/AI/index.vue
index 69e1412..6e0d88a 100644
--- a/src/views/AI/index.vue
+++ b/src/views/AI/index.vue
@@ -954,7 +954,7 @@
.active {
//放大
transform: scale(1.12);
- font-size: 18px;
+ font-size: var(--student-fs-h1);
font-weight: 600;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
color: #ffffff;
@@ -1018,7 +1018,7 @@
border: 1px solid #003e7c;
border-radius: 12px 12px 12px 0;
padding: 10px 12px 10px 12px;
- font-size: 14px;
+ font-size: var(--student-fs-body);
color: #ffffff;
// 鼠标小手
cursor: pointer;
@@ -1032,7 +1032,7 @@
:deep(.md-editor-preview-wrapper) {
padding: 0px 0px !important;
.md-editor-preview {
- font-size: 15px !important;
+ font-size: var(--student-fs-body) !important;
}
}
.questionItem {
@@ -1043,7 +1043,7 @@
border-radius: 12px 12px 0 12px;
// padding: 0px 12px 0px 16px;
font-weight: 400;
- font-size: 14px;
+ font-size: var(--student-fs-body);
line-height: 20px;
max-width: calc(100% - 51px);
word-break: break-all;
@@ -1056,7 +1056,7 @@
:deep(.answerCon) {
display: flex;
font-weight: 400;
- font-size: 14px;
+ font-size: var(--student-fs-body);
// color: rgb(68, 68, 68);
line-height: 22px;
// width: calc(100% - 51px);
diff --git a/src/views/analysis-of-students/dialogue.vue b/src/views/analysis-of-students/dialogue.vue
index 3f42f89..d6ea9da 100644
--- a/src/views/analysis-of-students/dialogue.vue
+++ b/src/views/analysis-of-students/dialogue.vue
@@ -269,7 +269,7 @@ onUnmounted(() => {
border: 1px solid #003e7c;
border-radius: 12px 12px 12px 0;
padding: 10px 12px 10px 12px;
- font-size: 14px;
+ font-size: var(--student-fs-body);
color: #ffffff;
// 鼠标小手
cursor: pointer;
@@ -283,7 +283,7 @@ onUnmounted(() => {
.md-editor-preview-wrapper {
padding: 0px 0px !important;
.md-editor-preview {
- font-size: 15px !important;
+ font-size: var(--student-fs-body) !important;
}
}
.questionItem {
@@ -294,7 +294,7 @@ onUnmounted(() => {
border-radius: 12px 12px 0 12px;
// padding: 0px 12px 0px 16px;
font-weight: 400;
- font-size: 14px;
+ font-size: var(--student-fs-body);
line-height: 20px;
max-width: calc(100% - 51px);
word-break: break-all;
@@ -307,7 +307,7 @@ onUnmounted(() => {
:deep(.answerCon) {
display: flex;
font-weight: 400;
- font-size: 14px;
+ font-size: var(--student-fs-body);
// color: rgb(68, 68, 68);
line-height: 22px;
// width: calc(100% - 51px);
diff --git a/src/views/assessment/diagnosis.vue b/src/views/assessment/diagnosis.vue
index 0e868d3..81d1279 100644
--- a/src/views/assessment/diagnosis.vue
+++ b/src/views/assessment/diagnosis.vue
@@ -72,5 +72,5 @@ onMounted(async () => { try { taskConfig.value = (await getTrainingTaskByKey(TAS
diff --git a/src/views/assessment/optimization.vue b/src/views/assessment/optimization.vue
index e0af0d5..9a48692 100644
--- a/src/views/assessment/optimization.vue
+++ b/src/views/assessment/optimization.vue
@@ -347,13 +347,13 @@ onMounted(async () => {
diff --git a/src/views/channel/index.vue b/src/views/channel/index.vue
index b762b46..a65c09c 100644
--- a/src/views/channel/index.vue
+++ b/src/views/channel/index.vue
@@ -1,4 +1,4 @@
-
+
@@ -915,7 +915,7 @@ onMounted(async () => {
min-width: 172px;
height: 56px;
border-radius: 8px;
- font-size: 18px;
+ font-size: var(--student-fs-h1);
font-weight: 800;
}
}
@@ -923,25 +923,25 @@ onMounted(async () => {
.channel {
display: grid; grid-template-columns: minmax(720px, 1fr) 340px; gap: 24px; min-height: calc(100vh - 76px); padding: 24px 24px 32px; color: #eef5ff; background: #06111d;
.training-core { min-width: 0; padding: 28px; border: 1px solid rgba(0,180,255,.25); border-radius: 36px; background: rgba(8,18,28,.6); box-shadow: inset 0 1px 0 rgba(169,229,255,.08), 0 22px 48px rgba(0,0,0,.22); }
- .task-header { margin-bottom: 24px; }.task-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 28px; padding: 4px 14px; border: 1px solid rgba(99,217,255,.55); border-radius: 999px; color: #dff5ff; background: rgba(17,126,178,.36); font-size: 12px; font-weight: 700; }.task-title { margin: 12px 0 0; color: #fff; font-size: 30px; font-weight: 900; line-height: 1.3; }
- .task-card,.step-card { border: 1px solid rgba(82,174,226,.42); border-radius: 26px; background: rgba(0,25,42,.64); }.task-card { margin-top: 28px; padding: 18px 22px 22px; }.workbench-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid rgba(0,180,255,.2); }.section-eyebrow { margin: 0; color: #71dfff; font-size: 12px; font-weight: 800; line-height: 1.4; }.workbench-head h3 { margin: 4px 0 8px; color: #fff; font-size: 26px; font-weight: 800; line-height: 1.3; }.workbench-description { margin: 0; color: #d7ecff; font-size: 15px; line-height: 1.8; }.workbench-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; margin-left: auto; gap: 10px; flex-shrink: 0; }
- .outline-action,.btn-nav { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 0 18px; border: 1px solid rgba(99,217,255,.55); border-radius: 999px; color: #e9fbff; background: rgba(17,126,178,.36); font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; }.step-indicator { display:flex; align-items:center; gap:12px; width:calc(100% + 24px); min-height:0; margin:0 -12px 32px; padding:18px 22px; overflow-x:auto; border:1px solid rgba(0,180,255,.3); border-radius:18px; background:linear-gradient(110deg,rgba(4,39,58,.9),rgba(2,20,33,.94)); box-shadow:inset 0 1px 0 rgba(169,229,255,.08); }.step-tab { display:flex; flex:1 0 145px; align-items:center; min-height:66px; padding:8px 10px; border:1px solid rgba(68,141,177,.35); border-radius:8px; color:#9ab3d0; background:rgba(3,27,43,.52); font:inherit; font-size:14px; font-weight:800; text-align:left; cursor:pointer; transition:transform .2s,color .2s,background .2s,border-color .2s,box-shadow .2s; }.step-tab:hover,.step-tab:focus-visible { transform:translateY(-2px); border-color:rgba(89,223,255,.82); color:#fff; background:rgba(8,92,131,.52); box-shadow:0 8px 18px rgba(0,0,0,.2); outline:none; }.step-tab.active { border-color:rgba(89,226,255,.85); color:#fff; background:linear-gradient(95deg,#0a6b9e,#0a5c86); box-shadow:0 8px 20px rgba(0,120,170,.22); }.step-marker { display:inline-flex; flex:0 0 38px; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(113,223,255,.55); border-radius:50%; color:#bdefff; background:rgba(3,27,43,.72); font-size:13px; font-weight:900; }.step-copy { display:grid; min-width:0; gap:4px; margin-left:10px; }.step-copy strong { display:-webkit-box; overflow:hidden; color:inherit; font-size:14px; line-height:1.25; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.step-copy span { color:#7ec7e7; font-size:12px; font-weight:700; }.step-tab.active .step-marker { border-color:#a8f3ff; color:#fff; background:linear-gradient(135deg,#0bb2ed,#0a6b9e); box-shadow:0 0 0 4px rgba(77,215,255,.13),0 0 18px rgba(77,215,255,.4); }.step-tab.complete .step-marker { border-color:#59e0ca; color:#dffbff; background:rgba(13,132,119,.5); }.step-connector { flex:0 0 28px; height:2px; background:rgba(77,167,220,.54); color:#78cfe9; font-size:16px; line-height:0; text-align:right; }.step-connector.complete { background:#55ddcc; color:#75f0df; }.step-card { margin-top: 32px; padding: 18px 22px 22px; }.step-indicator + .step-card,.workbench-head + .step-card { margin-top: 0; }.step-title-row { margin-bottom: 14px; }.step-title-row h3 { margin: 4px 0 0; color: #fff; font-size: 22px; font-weight: 900; line-height: 1.3; }.caseBacktitle { display: flex; align-items: center; gap: 8px; margin: 20px 0 10px; color: #dff5ff; font-size: 16px; font-weight: 800; }.caseBacktitle img { display: none; }.step-card > p { color: #d7ecff; font-size: 15px; line-height: 1.8; }
- :deep(.el-table) { width: 100% !important; max-width: 100%; border-radius: 18px; }:deep(.el-table th.el-table__cell) { background: rgba(8,55,82,.98) !important; }:deep(.el-input__wrapper) { min-height: 42px; border-radius: 14px; background: #0f1a24; }.online { border-radius: 14px; background: rgba(1,14,26,.72); }.step-navigation { display: flex; justify-content: center; gap: 14px; margin-top: 22px; }.btn-nav.btn-save,.btn-nav.btn-primary { border-color: rgba(92,224,255,.7); color: #fff; background: linear-gradient(95deg,#0b84bd,#096491); }.btn-nav:disabled { cursor: not-allowed; opacity: .45; }.taskfooter { gap: 52px; margin-top: 36px; padding-top: 0; border-top: 0; }.taskfooter :deep(.el-button) { min-width: 172px; height: 64px; border: 1px solid #2c83aa !important; border-radius: 6px; color: #dff7ff !important; background: rgba(13,64,88,.62) !important; font-size: 24px; font-weight: 900; }
+ .task-header { margin-bottom: 24px; }.task-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 28px; padding: 4px 14px; border: 1px solid rgba(99,217,255,.55); border-radius: 999px; color: #dff5ff; background: rgba(17,126,178,.36); font-size: var(--student-fs-caption); font-weight: 700; }.task-title { margin: 12px 0 0; color: #fff; font-size: var(--student-fs-display); font-weight: 900; line-height: 1.3; }
+ .task-card,.step-card { border: 1px solid rgba(82,174,226,.42); border-radius: 26px; background: rgba(0,25,42,.64); }.task-card { margin-top: 28px; padding: 18px 22px 22px; }.workbench-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; margin-bottom: 22px; padding-bottom: 18px; border-bottom: 1px solid rgba(0,180,255,.2); }.section-eyebrow { margin: 0; color: #71dfff; font-size: var(--student-fs-caption); font-weight: 800; line-height: 1.4; }.workbench-head h3 { margin: 4px 0 8px; color: #fff; font-size: var(--student-fs-h1); font-weight: 800; line-height: 1.3; }.workbench-description { margin: 0; color: #d7ecff; font-size: var(--student-fs-body); line-height: 1.8; }.workbench-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; margin-left: auto; gap: 10px; flex-shrink: 0; }
+ .outline-action,.btn-nav { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 40px; padding: 0 18px; border: 1px solid rgba(99,217,255,.55); border-radius: 999px; color: #e9fbff; background: rgba(17,126,178,.36); font: inherit; font-size: var(--student-fs-button); font-weight: 800; cursor: pointer; }.step-indicator { display:flex; align-items:center; gap:12px; width:calc(100% + 24px); min-height:0; margin:0 -12px 32px; padding:18px 22px; overflow-x:auto; border:1px solid rgba(0,180,255,.3); border-radius:18px; background:linear-gradient(110deg,rgba(4,39,58,.9),rgba(2,20,33,.94)); box-shadow:inset 0 1px 0 rgba(169,229,255,.08); }.step-tab { display:flex; flex:1 0 145px; align-items:center; min-height:66px; padding:8px 10px; border:1px solid rgba(68,141,177,.35); border-radius:8px; color:#9ab3d0; background:rgba(3,27,43,.52); font:inherit; font-size:var(--student-fs-body); font-weight:800; text-align:left; cursor:pointer; transition:transform .2s,color .2s,background .2s,border-color .2s,box-shadow .2s; }.step-tab:hover,.step-tab:focus-visible { transform:translateY(-2px); border-color:rgba(89,223,255,.82); color:#fff; background:rgba(8,92,131,.52); box-shadow:0 8px 18px rgba(0,0,0,.2); outline:none; }.step-tab.active { border-color:rgba(89,226,255,.85); color:#fff; background:linear-gradient(95deg,#0a6b9e,#0a5c86); box-shadow:0 8px 20px rgba(0,120,170,.22); }.step-marker { display:inline-flex; flex:0 0 38px; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(113,223,255,.55); border-radius:50%; color:#bdefff; background:rgba(3,27,43,.72); font-size:var(--student-fs-body-sm); font-weight:900; }.step-copy { display:grid; min-width:0; gap:4px; margin-left:10px; }.step-copy strong { display:-webkit-box; overflow:hidden; color:inherit; font-size:var(--student-fs-body); line-height:1.25; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.step-copy span { color:#7ec7e7; font-size:var(--student-fs-caption); font-weight:700; }.step-tab.active .step-marker { border-color:#a8f3ff; color:#fff; background:linear-gradient(135deg,#0bb2ed,#0a6b9e); box-shadow:0 0 0 4px rgba(77,215,255,.13),0 0 18px rgba(77,215,255,.4); }.step-tab.complete .step-marker { border-color:#59e0ca; color:#dffbff; background:rgba(13,132,119,.5); }.step-connector { flex:0 0 28px; height:2px; background:rgba(77,167,220,.54); color:#78cfe9; font-size:var(--student-fs-h2); line-height:0; text-align:right; }.step-connector.complete { background:#55ddcc; color:#75f0df; }.step-card { margin-top: 32px; padding: 18px 22px 22px; }.step-indicator + .step-card,.workbench-head + .step-card { margin-top: 0; }.step-title-row { margin-bottom: 14px; }.step-title-row h3 { margin: 4px 0 0; color: #fff; font-size: var(--student-fs-h2); font-weight: 900; line-height: 1.3; }.caseBacktitle { display: flex; align-items: center; gap: 8px; margin: 20px 0 10px; color: #dff5ff; font-size: var(--student-fs-h2); font-weight: 800; }.caseBacktitle img { display: none; }.step-card > p { color: #d7ecff; font-size: var(--student-fs-body); line-height: 1.8; }
+ :deep(.el-table) { width: 100% !important; max-width: 100%; border-radius: 18px; }:deep(.el-table th.el-table__cell) { background: rgba(8,55,82,.98) !important; }:deep(.el-input__wrapper) { min-height: 42px; border-radius: 14px; background: #0f1a24; }.online { border-radius: 14px; background: rgba(1,14,26,.72); }.step-navigation { display: flex; justify-content: center; gap: 14px; margin-top: 22px; }.btn-nav.btn-save,.btn-nav.btn-primary { border-color: rgba(92,224,255,.7); color: #fff; background: linear-gradient(95deg,#0b84bd,#096491); }.btn-nav:disabled { cursor: not-allowed; opacity: .45; }.taskfooter { gap: 52px; margin-top: 36px; padding-top: 0; border-top: 0; }.taskfooter :deep(.el-button) { min-width: 172px; height: 64px; border: 1px solid #2c83aa !important; border-radius: 6px; color: #dff7ff !important; background: rgba(13,64,88,.62) !important; font-size: var(--student-fs-h1); font-weight: 900; }
}
@media (max-width: 1100px) { .channel { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .channel { padding: 14px; .training-core { padding: 18px; border-radius: 24px; }.workbench-head,.workbench-actions,.step-navigation { flex-direction: column; align-items: stretch; }.workbench-actions,.outline-action,.btn-nav,.taskfooter :deep(.el-button) { width: 100%; }.step-indicator { align-items:stretch; flex-direction:column; width:100%; margin-right:0; margin-left:0; overflow:visible; border-radius:20px; }.step-tab { flex:0 0 auto; width:100%; }.step-connector { flex:0 0 22px; width:2px; height:22px; margin-left:29px; text-align:center; writing-mode:vertical-rl; }.taskfooter { gap: 14px; } } }
.step-tab.active { border-color:rgba(89,226,255,.85); color:#fff; background:linear-gradient(115deg,rgba(4,109,155,.78),rgba(5,62,102,.64)); box-shadow:0 0 18px rgba(24,183,235,.22),inset 0 1px 0 rgba(176,246,255,.2); }.step-tab.active .step-marker { border-color:#72e8ff; color:#fff; background:linear-gradient(135deg,#08b7e8,#1375d0); box-shadow:0 0 0 5px rgba(25,179,237,.14),0 0 18px rgba(46,208,255,.58); }.step-tab.complete { color:#dffbff; }.step-tab.complete .step-marker { border-color:rgba(84,230,221,.85); color:#062b37; background:#6ef0e1; box-shadow:0 0 12px rgba(79,231,218,.35); }.step-connector.complete { background:linear-gradient(90deg,#6ef0e1,#1cb8e9); color:#63e6f1; box-shadow:0 0 9px rgba(53,218,235,.46); }
/* Standard page step navigation */
.step-indicator { position:relative; display:flex; align-items:center; gap:0; width:calc(100% + 24px); margin:0 -12px 32px; padding:18px 22px; overflow-x:auto; border:1px solid rgba(0,180,255,.3); border-radius:18px; background:linear-gradient(90deg,rgba(6,42,61,.58),rgba(1,18,31,.42)),rgba(0,0,0,.3); box-shadow:inset 0 1px 0 rgba(145,233,255,.08); scrollbar-width:thin; }
-.step-tab { display:flex; flex:1 0 145px; align-items:center; min-width:0; min-height:66px; padding:8px 10px; border:1px solid rgba(68,141,177,.35); border-radius:8px; color:#9ab3d0; background:rgba(3,27,43,.52); box-shadow:inset 0 1px 0 rgba(135,221,255,.04); font:inherit; font-size:14px; font-weight:800; text-align:left; cursor:pointer; transition:transform .2s ease,color .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease; }
+.step-tab { display:flex; flex:1 0 145px; align-items:center; min-width:0; min-height:66px; padding:8px 10px; border:1px solid rgba(68,141,177,.35); border-radius:8px; color:#9ab3d0; background:rgba(3,27,43,.52); box-shadow:inset 0 1px 0 rgba(135,221,255,.04); font:inherit; font-size:var(--student-fs-body); font-weight:800; text-align:left; cursor:pointer; transition:transform .2s ease,color .2s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease; }
.step-tab:hover { transform:translateY(-2px); border-color:rgba(89,223,255,.82); color:#fff; background:rgba(8,92,131,.52); box-shadow:0 7px 18px rgba(0,0,0,.24),inset 0 1px 0 rgba(152,239,255,.16); }
.step-tab:hover .step-action { color:#9bf4ff; }
.step-tab:focus-visible { outline:2px solid rgba(92,224,255,.7); outline-offset:2px; }
.step-tab.active { border-color:rgba(89,226,255,0.85); color:#fff; background:linear-gradient(115deg,rgba(4,109,155,0.78),rgba(5,62,102,0.64)); box-shadow:0 0 18px rgba(24,183,235,.22),inset 0 1px 0 rgba(176,246,255,.2); }
-.step-marker { display:inline-flex; flex:0 0 38px; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(101,176,208,.6); border-radius:50%; color:#a6c4d9; background:rgba(3,25,40,.8); box-shadow:inset 0 0 12px rgba(38,174,233,.08); font-size:12px; font-weight:900; letter-spacing:.04em; }
+.step-marker { display:inline-flex; flex:0 0 38px; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid rgba(101,176,208,.6); border-radius:50%; color:#a6c4d9; background:rgba(3,25,40,.8); box-shadow:inset 0 0 12px rgba(38,174,233,.08); font-size:var(--student-fs-caption); font-weight:900; letter-spacing:.04em; }
.step-copy { display:grid; min-width:0; gap:4px; margin-left:10px; }
-.step-name { display:-webkit-box; overflow:hidden; color:inherit; font-size:14px; font-weight:800; line-height:1.25; text-overflow:ellipsis; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
-.step-action { color:#66b6d4; font-size:10px; font-weight:800; letter-spacing:.06em; line-height:1; }
+.step-name { display:-webkit-box; overflow:hidden; color:inherit; font-size:var(--student-fs-body); font-weight:800; line-height:1.25; text-overflow:ellipsis; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
+.step-action { color:#66b6d4; font-size:var(--student-fs-caption); font-weight:800; letter-spacing:.06em; line-height:1; }
.step-tab.active .step-marker { border-color:#72e8ff; color:#fff; background:linear-gradient(135deg,#08b7e8,#1375d0); box-shadow:0 0 0 5px rgba(25,179,237,.14),0 0 18px rgba(46,208,255,.58); }
.step-tab.complete .step-marker { border-color:rgba(84,230,221,.85); color:#062b37; background:#6ef0e1; box-shadow:0 0 12px rgba(79,231,218,.35); }
.step-connector { position:relative; flex:0 1 40px; min-width:18px; height:2px; margin:0 8px; overflow:visible; background:rgba(98,169,201,.34); }
@@ -960,7 +960,7 @@ onMounted(async () => {
.linear-forecast-intro {
margin: 0 0 22px;
color: #d7ecff;
- font-size: 16px;
+ font-size: var(--student-fs-h2);
line-height: 1.85;
}
@@ -1000,7 +1000,7 @@ onMounted(async () => {
.procurement-plan-intro {
margin: 0 0 18px;
color: #d7ecff;
- font-size: 16px;
+ font-size: var(--student-fs-h2);
line-height: 1.85;
}
@@ -1015,7 +1015,7 @@ onMounted(async () => {
.procurement-plan-rules h4 {
margin: 0;
color: #e9faff;
- font-size: 16px;
+ font-size: var(--student-fs-h2);
}
.procurement-plan-rules ol {
@@ -1053,7 +1053,7 @@ onMounted(async () => {
.procurement-plan-hint {
margin: 14px 0 0;
color: #8eb8ca !important;
- font-size: 14px !important;
+ font-size: var(--student-fs-body) !important;
line-height: 1.7;
}
@@ -1070,7 +1070,7 @@ onMounted(async () => {
.forecast-visual-intro {
margin: 0 0 22px;
color: #d7ecff;
- font-size: 16px;
+ font-size: var(--student-fs-h2);
line-height: 1.85;
}
@@ -1124,12 +1124,12 @@ onMounted(async () => {
}
.forecast-visual-dropzone strong {
- font-size: 22px;
+ font-size: var(--student-fs-h2);
}
.forecast-visual-dropzone span:last-child {
color: #98c8dc;
- font-size: 13px;
+ font-size: var(--student-fs-body-sm);
}
.forecast-visual-upload-icon {
@@ -1176,7 +1176,7 @@ onMounted(async () => {
.forecast-visual-file-meta span {
color: #98c8dc;
- font-size: 13px;
+ font-size: var(--student-fs-body-sm);
}
.forecast-visual-replace {
@@ -1188,7 +1188,7 @@ onMounted(async () => {
background: rgba(10, 107, 151, 0.38);
cursor: pointer;
font: inherit;
- font-size: 13px;
+ font-size: var(--student-fs-body-sm);
font-weight: 700;
}
diff --git a/src/views/channel/purchase.vue b/src/views/channel/purchase.vue
index 1258981..2d79c9e 100644
--- a/src/views/channel/purchase.vue
+++ b/src/views/channel/purchase.vue
@@ -1,4 +1,4 @@
-
{{ item.name }}:
- {{ item.value ?? 0 }}
+ {{ item.value ?? 0 }}
@@ -241,7 +241,7 @@ onMounted(() => {
.trend-title {
margin-top: 28px;
text-align: center;
- font-family: Source Han Sans CN;
+ font-family: var(--student-font-base);
font-weight: bold;
font-size: 16px;
color: #999999;
@@ -253,7 +253,7 @@ onMounted(() => {
border-bottom: 2px dashed #e5e5e5;
}
.card-header {
- font-family: Source Han Sans CN;
+ font-family: var(--student-font-base);
font-weight: bold;
font-size: 20px;
color: #333333;
@@ -283,7 +283,7 @@ onMounted(() => {
.el-card:nth-child(2) {
width: calc(100% - 53%);
.card-header {
- font-family: Source Han Sans CN;
+ font-family: var(--student-font-base);
font-weight: bold;
font-size: 20px;
color: #333333;
diff --git a/src/views/test/index.vue b/src/views/test/index.vue
index e775854..74e8126 100644
--- a/src/views/test/index.vue
+++ b/src/views/test/index.vue
@@ -233,8 +233,8 @@ onMounted(async () => { try { const result = await getTrainingTaskByKey(TASK_KEY
diff --git a/src/views/test/promotion.vue b/src/views/test/promotion.vue
index 4cc8463..3ec10c4 100644
--- a/src/views/test/promotion.vue
+++ b/src/views/test/promotion.vue
@@ -279,11 +279,11 @@ onMounted(async () => { try { const result = await getTrainingTaskByKey(TASK_KEY
diff --git a/src/views/training/CustomTrainingStepPage.vue b/src/views/training/CustomTrainingStepPage.vue
index 9772e57..ce27d0c 100644
--- a/src/views/training/CustomTrainingStepPage.vue
+++ b/src/views/training/CustomTrainingStepPage.vue
@@ -160,10 +160,10 @@ async function save(submitStep) {
.step-shell { max-width: 1080px; margin: 0 auto; }
.step-header, .answer-card { padding: 22px; border: 1px solid rgba(70, 181, 231, .36); border-radius: 16px; background: rgba(2, 22, 37, .82); }
.step-header { margin-bottom: 20px; }
-.step-header h1 { margin: 5px 0 10px; font-size: 26px; }
+.step-header h1 { margin: 5px 0 10px; font-size: var(--student-fs-h1); }
.step-header p { margin: 0; color: #b9ddf1; line-height: 1.75; }
.eyebrow { color: #72dcff !important; font-weight: 800; }
-.answer-card h2 { margin-top: 0; font-size: 20px; }
+.answer-card h2 { margin-top: 0; font-size: var(--student-fs-display); }
.attachment-area { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 16px; }
.attachment-area a { color: #75dcff; }
.hidden-input { display: none; }
diff --git a/src/views/training/GenericTrainingPage.vue b/src/views/training/GenericTrainingPage.vue
index be87673..9298d52 100644
--- a/src/views/training/GenericTrainingPage.vue
+++ b/src/views/training/GenericTrainingPage.vue
@@ -533,7 +533,7 @@ function exportOutcome() {
border-radius: 30px;
color: #d6f6ff;
background: rgba(0, 170, 255, 0.2);
- font-size: 12px;
+ font-size: var(--student-fs-caption);
font-weight: 700;
}
@@ -543,7 +543,7 @@ function exportOutcome() {
background: linear-gradient(135deg, #ffffff, #8bcbff);
-webkit-background-clip: text;
background-clip: text;
- font-size: 30px;
+ font-size: var(--student-fs-display);
line-height: 1.3;
font-weight: 900;
}
@@ -558,7 +558,7 @@ function exportOutcome() {
p,
li {
color: #d7ecff;
- font-size: 14px;
+ font-size: var(--student-fs-body);
line-height: 1.8;
}
@@ -624,7 +624,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 8px;
color: #ffffff;
- font-size: 26px !important;
+ font-size: var(--student-fs-h1) !important;
font-weight: 800 !important;
line-height: 1.3 !important;
}
@@ -632,7 +632,7 @@ function exportOutcome() {
p {
margin: 0;
color: #d7ecff;
- font-size: 15px;
+ font-size: var(--student-fs-body);
font-weight: 400;
line-height: 1.8;
}
@@ -658,7 +658,7 @@ function exportOutcome() {
border-radius: 6px;
color: #a9ecff;
background: rgba(7, 54, 78, 0.72);
- font-size: 13px;
+ font-size: var(--student-fs-body-sm);
font-weight: 800;
line-height: 1.2;
text-decoration: none;
@@ -673,7 +673,7 @@ function exportOutcome() {
.section-eyebrow {
margin: 0;
color: #71dfff;
- font-size: 12px;
+ font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
@@ -768,7 +768,7 @@ function exportOutcome() {
color: #a6c4d9;
background: rgba(3, 25, 40, 0.8);
box-shadow: inset 0 0 12px rgba(38, 174, 233, 0.08);
- font-size: 12px;
+ font-size: var(--student-fs-caption);
font-weight: 900;
letter-spacing: 0.04em;
transition: border-color 0.2s ease, color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
@@ -785,7 +785,7 @@ function exportOutcome() {
display: -webkit-box;
overflow: hidden;
color: inherit;
- font-size: 14px;
+ font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.25;
text-overflow: ellipsis;
@@ -795,7 +795,7 @@ function exportOutcome() {
.step-action {
color: #66b6d4;
- font-size: 10px;
+ font-size: var(--student-fs-caption);
font-weight: 800;
letter-spacing: 0.06em;
line-height: 1;
@@ -842,7 +842,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
- font-size: 22px;
+ font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@@ -863,7 +863,7 @@ function exportOutcome() {
.upload-tip {
margin: 0 0 18px;
color: #d7ecff;
- font-size: 15px;
+ font-size: var(--student-fs-body);
line-height: 1.8;
}
@@ -885,7 +885,7 @@ function exportOutcome() {
border-right: 1px solid rgba(134, 220, 255, 0.24);
color: #effdff;
background: linear-gradient(180deg, #0b7fb3, #075c88);
- font-size: 16px;
+ font-size: var(--student-fs-h2);
font-weight: 900;
text-align: center;
}
@@ -918,14 +918,14 @@ function exportOutcome() {
.serial-cell,
.task-name-cell {
color: #eafaff;
- font-size: 16px;
+ font-size: var(--student-fs-h2);
font-weight: 800;
text-align: center;
}
.desc-cell {
color: #d1e8f5;
- font-size: 14px;
+ font-size: var(--student-fs-body);
line-height: 1.75;
text-align: center;
}
@@ -983,14 +983,14 @@ function exportOutcome() {
color: #ffffff;
background: linear-gradient(95deg, #10a7d5, #0878af);
box-shadow: 0 12px 24px rgba(0, 138, 220, 0.24);
- font-size: 15px;
+ font-size: var(--student-fs-button-lg);
font-weight: 900;
cursor: pointer;
}
.upload-file-name {
color: #9fe8ff;
- font-size: 13px;
+ font-size: var(--student-fs-body-sm);
font-weight: 700;
}
@@ -1010,13 +1010,13 @@ function exportOutcome() {
display: block;
margin-bottom: 8px;
color: #69ddff;
- font-size: 18px;
+ font-size: var(--student-fs-h1);
font-weight: 900;
}
strong {
color: #f1fbff;
- font-size: 15px;
+ font-size: var(--student-fs-body);
line-height: 1.5;
}
}
@@ -1034,7 +1034,7 @@ function exportOutcome() {
border-radius: 20px;
color: #d7ecff;
background: rgba(1, 14, 26, 0.72);
- font-size: 14px;
+ font-size: var(--student-fs-body);
font-weight: 700;
line-height: 1.7;
}
@@ -1051,20 +1051,20 @@ function exportOutcome() {
h4 {
margin: 0 0 8px;
color: #ffffff;
- font-size: 18px;
+ font-size: var(--student-fs-h1);
}
p {
margin: 0;
color: #d7ecff;
- font-size: 15px;
+ font-size: var(--student-fs-body);
line-height: 1.8;
}
}
:deep(.el-form-item__label) {
color: #dff5ff;
- font-size: 15px;
+ font-size: var(--student-fs-body);
font-weight: 800;
line-height: 1.8;
}
@@ -1120,7 +1120,7 @@ function exportOutcome() {
color: #dff7ff;
background: rgba(13, 64, 88, 0.62);
box-shadow: none;
- font-size: 24px;
+ font-size: var(--student-fs-h1);
font-weight: 900;
line-height: 1;
letter-spacing: 0;
@@ -1166,21 +1166,21 @@ function exportOutcome() {
}
.workbench-head h3 {
- font-size: 26px !important;
+ font-size: var(--student-fs-h1) !important;
font-weight: 800 !important;
line-height: 1.3 !important;
}
.workbench-head .section-eyebrow {
color: #71dfff;
- font-size: 12px;
+ font-size: var(--student-fs-caption);
font-weight: 800;
line-height: 1.4;
}
.workbench-description {
color: #d7ecff !important;
- font-size: 15px !important;
+ font-size: var(--student-fs-body) !important;
font-weight: 400;
line-height: 1.8 !important;
}
@@ -1196,7 +1196,7 @@ function exportOutcome() {
color: #e9fbff !important;
background: rgba(17, 126, 178, 0.36) !important;
box-shadow: none !important;
- font-size: 14px !important;
+ font-size: var(--student-fs-button) !important;
font-weight: 800 !important;
line-height: 1 !important;
}
@@ -1218,7 +1218,7 @@ function exportOutcome() {
h3 {
margin: 4px 0 0;
color: #ffffff;
- font-size: 22px;
+ font-size: var(--student-fs-h2);
font-weight: 900;
line-height: 1.3;
}
@@ -1227,7 +1227,7 @@ function exportOutcome() {
.process-intro,
.upload-tip {
color: #d7ecff;
- font-size: 15px;
+ font-size: var(--student-fs-body);
line-height: 1.8;
}
@@ -1242,7 +1242,7 @@ function exportOutcome() {
padding: 12px;
border-right-color: rgba(77, 167, 220, 0.2);
background: rgba(8, 55, 82, 0.98);
- font-size: 14px;
+ font-size: var(--student-fs-body);
}
td {
@@ -1257,7 +1257,7 @@ function exportOutcome() {
.serial-cell,
.task-name-cell,
.desc-cell {
- font-size: 14px;
+ font-size: var(--student-fs-body);
}
.process-textarea {
@@ -1282,13 +1282,13 @@ function exportOutcome() {
border-radius: 999px !important;
background: linear-gradient(95deg, #0b84bd, #096491) !important;
box-shadow: none !important;
- font-size: 14px !important;
+ font-size: var(--student-fs-button) !important;
font-weight: 800 !important;
}
.upload-file-name {
color: #9fe8ff;
- font-size: 13px;
+ font-size: var(--student-fs-body-sm);
font-weight: 700;
}
}
diff --git a/vite.config.js b/vite.config.js
index 6311f5d..7e1d407 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -14,7 +14,8 @@ import createVitePlugins from "./vite/plugins";
export default defineConfig(({ mode, command }) => {
const env = loadEnv(mode, process.cwd());
const { VITE_APP_ENV } = env;
- const backendTarget = "http://127.0.0.1:7548";
+ // 开发环境后端地址:连本地用 http://127.0.0.1:7548,连线上用 http://120.79.161.177:8999
+ const backendTarget = "http://120.79.161.177:8999";
return {
// 部署生产环境和开发环境下的URL。
// 默认情况下,vite 会假设你的应用是被部署在一个域名的根路径上