From c5c3b562004151fbb1abacb89ee3e2c6010f88ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E8=AF=9A?= Date: Tue, 13 Jan 2026 17:00:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=89=B2=E5=BD=A9=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Service/BudgetService.cs | 7 +- Web/src/assets/base.css | 61 +++--------- Web/src/components/Bill/BillForm.vue | 2 +- Web/src/components/Bill/OneLineBillAdd.vue | 2 +- Web/src/components/Budget/BudgetCard.vue | 42 ++++---- Web/src/components/Budget/BudgetEditPopup.vue | 6 +- Web/src/components/Budget/BudgetSummary.vue | 34 +++---- .../components/Budget/SavingsConfigPopup.vue | 4 +- Web/src/components/Global/GlobalAddBill.vue | 2 +- Web/src/components/PopupContainer.vue | 12 +-- Web/src/components/ReasonGroupList.vue | 4 +- Web/src/components/TransactionDetail.vue | 26 ++--- Web/src/components/TransactionList.vue | 14 +-- Web/src/styles/common.css | 98 +++---------------- Web/src/styles/rich-content.css | 14 +-- Web/src/views/BillAnalysisView.vue | 13 +-- Web/src/views/BudgetView.vue | 20 ++-- Web/src/views/ClassificationEdit.vue | 6 +- Web/src/views/ClassificationNLP.vue | 4 +- Web/src/views/ClassificationSmart.vue | 2 +- Web/src/views/EmailRecord.vue | 12 +-- Web/src/views/LogView.vue | 46 ++++----- Web/src/views/PeriodicRecord.vue | 2 +- Web/src/views/SettingView.vue | 19 +--- Web/src/views/StatisticsView.vue | 69 ++++--------- 25 files changed, 182 insertions(+), 339 deletions(-) diff --git a/Service/BudgetService.cs b/Service/BudgetService.cs index bb28431..6cbac23 100644 --- a/Service/BudgetService.cs +++ b/Service/BudgetService.cs @@ -354,15 +354,14 @@ public class BudgetService( var dataPrompt = $""" 报告周期:{year}年{month}月 - 账单数据说明:支出金额已取绝对值(TotalAmount 为正数表示支出/收入的总量)。 1. 预算执行数据(JSON): {JsonSerializer.Serialize(archiveData)} - 2. 本月消费明细(按分类, JSON): + 2. 本月账单类目明细(按分类, JSON): {JsonSerializer.Serialize(monthTransactions)} - 3. 全年累计消费概况(按分类, JSON): + 3. 全年累计账单类目明细(按分类, JSON): {JsonSerializer.Serialize(yearTransactions)} 4. 未被任何预算覆盖的支出分类(JSON): @@ -377,7 +376,7 @@ public class BudgetService( 4. 消费透视:针对“未被预算覆盖的支出”提供分析建议。分析这些账单产生的合理性,并评估是否需要为其中的大额或频发分类建立新预算。 5. 改进建议:根据当前时间进度和预算完成进度,基于本月整体收入支出情况,给出下月预算调整或消费改进的专业化建议。 6. 语言风格:专业、清晰、简洁,适合财务报告阅读。 - 7. + 7. 如果报告月份是12月,需要报告年度预算的执行情况。 【格式要求】 1. 使用HTML格式(移动端H5页面风格) diff --git a/Web/src/assets/base.css b/Web/src/assets/base.css index 8816868..f31f5f3 100644 --- a/Web/src/assets/base.css +++ b/Web/src/assets/base.css @@ -1,54 +1,25 @@ /* color palette from */ +/* + Most variables are replaced by Vant CSS variables. + Keeping only what's necessary or mapping to Vant. +*/ + :root { - --vt-c-white: #ffffff; - --vt-c-white-soft: #f8f8f8; - --vt-c-white-mute: #f2f2f2; + --van-danger-color: rgb(255, 107, 107) !important; /* 覆盖默认的深红色 #ee0a24 */ + --color-background: var(--van-background); + --color-background-soft: var(--van-background-2); + --color-background-mute: var(--van-gray-1); - --vt-c-black: #181818; - --vt-c-black-soft: #222222; - --vt-c-black-mute: #282828; + --color-border: var(--van-border-color); + --color-border-hover: var(--van-gray-5); - --vt-c-indigo: #2c3e50; - - --vt-c-divider-light-1: rgba(60, 60, 60, 0.29); - --vt-c-divider-light-2: rgba(60, 60, 60, 0.12); - --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65); - --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48); - - --vt-c-text-light-1: var(--vt-c-indigo); - --vt-c-text-light-2: rgba(60, 60, 60, 0.66); - --vt-c-text-dark-1: var(--vt-c-white); - --vt-c-text-dark-2: rgba(235, 235, 235, 0.64); -} - -/* semantic color variables for this project */ -:root { - --color-background: var(--vt-c-white); - --color-background-soft: var(--vt-c-white-soft); - --color-background-mute: var(--vt-c-white-mute); - - --color-border: var(--vt-c-divider-light-2); - --color-border-hover: var(--vt-c-divider-light-1); - - --color-heading: var(--vt-c-text-light-1); - --color-text: var(--vt-c-text-light-1); + --color-heading: var(--van-text-color); + --color-text: var(--van-text-color); --section-gap: 160px; } -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--vt-c-black); - --color-background-soft: var(--vt-c-black-soft); - --color-background-mute: var(--vt-c-black-mute); - - --color-border: var(--vt-c-divider-dark-2); - --color-border-hover: var(--vt-c-divider-dark-1); - - --color-heading: var(--vt-c-text-dark-1); - --color-text: var(--vt-c-text-dark-2); - } -} +/* Removed manual dark mode media query as Vant handles it */ *, *::before, @@ -60,8 +31,8 @@ body { min-height: 100vh; - color: var(--color-text); - background: var(--color-background); + color: var(--van-text-color); + background: var(--van-background); transition: color 0.5s, background-color 0.5s; diff --git a/Web/src/components/Bill/BillForm.vue b/Web/src/components/Bill/BillForm.vue index a8870ad..9941951 100644 --- a/Web/src/components/Bill/BillForm.vue +++ b/Web/src/components/Bill/BillForm.vue @@ -47,7 +47,7 @@ diff --git a/Web/src/components/Bill/OneLineBillAdd.vue b/Web/src/components/Bill/OneLineBillAdd.vue index e1e1fe4..fd45951 100644 --- a/Web/src/components/Bill/OneLineBillAdd.vue +++ b/Web/src/components/Bill/OneLineBillAdd.vue @@ -121,6 +121,6 @@ const handleSave = async (payload) => { margin-bottom: 16px; border-radius: 8px; overflow: hidden; - border: 1px solid #ebedf0; + border: 1px solid var(--van-border-color); } diff --git a/Web/src/components/Budget/BudgetCard.vue b/Web/src/components/Budget/BudgetCard.vue index c4da0cc..8a48572 100644 --- a/Web/src/components/Budget/BudgetCard.vue +++ b/Web/src/components/Budget/BudgetCard.vue @@ -120,7 +120,7 @@ {{ timePercentage }}% @@ -168,7 +168,7 @@ const props = defineProps({ }, progressColor: { type: String, - default: '#1989fa' + default: 'var(--van-primary-color)' }, percentClass: { type: [String, Object], @@ -332,7 +332,7 @@ const timePercentage = computed(() => { .compact-label { font-size: 12px; - color: #969799; + color: var(--van-text-color-2); line-height: 1.2; } @@ -346,22 +346,22 @@ const timePercentage = computed(() => { } .compact-value.warning { - color: #ff976a; + color: var(--van-warning-color); } .compact-value.income { - color: #07c160; + color: var(--van-success-color); } .expand-icon { - color: #1989fa; + color: var(--van-primary-color); font-size: 14px; transition: transform 0.3s ease; flex-shrink: 0; } .collapse-icon { - color: #1989fa; + color: var(--van-primary-color); font-size: 16px; cursor: pointer; } @@ -386,7 +386,7 @@ const timePercentage = computed(() => { .card-subtitle { font-size: 12px; - color: #969799; + color: var(--van-text-color-2); font-weight: normal; white-space: nowrap; overflow: hidden; @@ -420,7 +420,7 @@ const timePercentage = computed(() => { :deep(.info-item) .label { font-size: 12px; - color: #969799; + color: var(--van-text-color-2); margin-bottom: 2px; } @@ -430,11 +430,11 @@ const timePercentage = computed(() => { } :deep(.value.expense) { - color: #ee0a24; + color: var(--van-danger-color); } :deep(.value.income) { - color: #07c160; + color: var(--van-success-color); } .progress-section { @@ -443,7 +443,7 @@ const timePercentage = computed(() => { gap: 12px; margin-bottom: 12px; font-size: 13px; - color: #646566; + color: var(--van-gray-6); } .progress-section :deep(.van-progress) { @@ -462,12 +462,12 @@ const timePercentage = computed(() => { } .percent.warning { - color: #ff976a; + color: var(--van-warning-color); font-weight: bold; } .percent.income { - color: #07c160; + color: var(--van-success-color); font-weight: bold; } @@ -483,26 +483,26 @@ const timePercentage = computed(() => { .budget-description { margin-top: 8px; - background-color: #f7f8fa; + background-color: var(--van-background); border-radius: 4px; padding: 8px; } .description-content { font-size: 11px; - color: #646566; + color: var(--van-gray-6); line-height: 1.4; } -@media (prefers-color-scheme: dark) { +/* @media (prefers-color-scheme: dark) { .budget-description { - background-color: #2c2c2c; + background-color: var(--van-background-2); } .description-content { - color: #969799; + color: var(--van-text-color-2); } .collapsed-row .value { - color: #f5f5f5; + color: var(--van-text-color); } -} +} */ diff --git a/Web/src/components/Budget/BudgetEditPopup.vue b/Web/src/components/Budget/BudgetEditPopup.vue index e76ed0f..297d053 100644 --- a/Web/src/components/Budget/BudgetEditPopup.vue +++ b/Web/src/components/Budget/BudgetEditPopup.vue @@ -40,7 +40,7 @@ @@ -377,17 +377,18 @@ const handleCandidateSelect = (candidate) => { display: flex; align-items: center; padding: 6px 10px; - background: #ecf9ff; - color: #1989fa; + background: var(--van-active-color); + color: var(--van-primary-color); border-radius: 8px; cursor: pointer; transition: opacity 0.2s; - border: 1px solid rgba(25, 137, 250, 0.1); + border: 1px solid var(--van-primary-color); width: fit-content; + opacity: 0.1; } .suggestion-tip:active { - opacity: 0.7; + opacity: 0.2; } .suggestion-icon { @@ -402,23 +403,12 @@ const handleCandidateSelect = (candidate) => { .suggestion-apply { margin-left: 8px; padding: 0 6px; - background: #1989fa; - color: #fff; + background: var(--van-primary-color); + color: var(--van-white); border-radius: 4px; font-size: 10px; height: 18px; line-height: 18px; font-weight: bold; } - -@media (prefers-color-scheme: dark) { - .suggestion-tip { - background: rgba(25, 137, 250, 0.15); - border-color: rgba(25, 137, 250, 0.2); - color: #58a6ff; - } - .suggestion-apply { - background: #58a6ff; - } -} diff --git a/Web/src/components/TransactionList.vue b/Web/src/components/TransactionList.vue index cdbcad7..0e20226 100644 --- a/Web/src/components/TransactionList.vue +++ b/Web/src/components/TransactionList.vue @@ -33,7 +33,7 @@ 分类: {{ transaction.classify }} - + → {{ transaction.upsetedClassify }} @@ -74,7 +74,7 @@ 退款: {{ formatMoney(transaction.refundAmount) }} - + @@ -315,12 +315,12 @@ const formatDate = (dateString) => { .transaction-info { font-size: 12px; - color: #969799; + color: var(--van-text-color-2); line-height: 1.6; } .original-info { - color: #ff976a; + color: var(--van-orange); font-style: italic; display: flex; align-items: center; @@ -343,16 +343,16 @@ const formatDate = (dateString) => { } .amount.expense { - color: #ee0a24; + color: var(--van-danger-color); } .amount.income { - color: #07c160; + color: var(--van-success-color); } .balance { font-size: 12px; - color: #969799; + color: var(--van-text-color-2); white-space: nowrap; } diff --git a/Web/src/styles/common.css b/Web/src/styles/common.css index 03538f6..67d8a96 100644 --- a/Web/src/styles/common.css +++ b/Web/src/styles/common.css @@ -4,16 +4,10 @@ overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; /* 防止滚动链传播到 body */ - background: #f7f8fa; + background: var(--van-background); padding-bottom: env(safe-area-inset-bottom, 0px); } -@media (prefers-color-scheme: dark) { - .page-container { - background: #141414; - } -} - /* 页面内容区域 */ .page-content { padding: 16px 0 0 0; @@ -26,20 +20,12 @@ /* 统一卡片样式 */ .common-card { - background: #ffffff; + background: var(--van-background-2); margin: 0 12px 16px; padding: 16px; border-radius: 16px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); - border: 1px solid #ebedf0; -} - -@media (prefers-color-scheme: dark) { - .common-card { - background: #1f1f1f; - border-color: #2c2c2c; - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3); - } + border: 1px solid var(--van-border-color); } /* 卡片头部 */ @@ -60,31 +46,16 @@ /* 增加卡片组的对比度 */ :deep(.van-cell-group--inset) { margin: 10px 16px; - background: #ffffff; + background: var(--van-background-2); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); - border: 1px solid #ebedf0; + border: 1px solid var(--van-border-color); border-radius: 16px; } -@media (prefers-color-scheme: dark) { - :deep(.van-cell-group--inset) { - background: #1f1f1f; - border-color: #2c2c2c; - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3); - } -} - /* 单元格样式 */ :deep(.van-cell) { - background: #ffffff; - border-bottom: 1px solid #ebedf0; -} - -@media (prefers-color-scheme: dark) { - :deep(.van-cell) { - background: #1f1f1f; - border-bottom: 1px solid #2c2c2c; - } + background: var(--van-background-2); + border-bottom: 1px solid var(--van-border-color); } :deep(.van-cell:last-child) { @@ -96,31 +67,17 @@ padding: 16px; height: 100%; overflow-y: auto; - background: #f7f8fa; -} - -@media (prefers-color-scheme: dark) { - .detail-popup { - background: #141414; - } + background: var(--van-background); } /* 弹出层内的卡片组样式 */ .detail-popup :deep(.van-cell-group--inset) { - background: #ffffff; + background: var(--van-background-2); box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); - border: 1px solid #ebedf0; + border: 1px solid var(--van-border-color); border-radius: 16px; } -@media (prefers-color-scheme: dark) { - .detail-popup :deep(.van-cell-group--inset) { - background: #1f1f1f; - border-color: #2c2c2c; - box-shadow: 0 2px 12px rgba(0, 0, 0, 0.3); - } -} - /* 详情头部样式 */ .detail-header { margin-bottom: 16px; @@ -136,7 +93,7 @@ .detail-header p { margin: 0; font-size: 14px; - color: #969799; + color: var(--van-text-color-2); font-weight: normal; } @@ -216,17 +173,11 @@ padding: 12px 16px; margin: 0 12px; margin-top: 12px; - background: #ffffff; + background: var(--van-background-2); border-radius: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); } -@media (prefers-color-scheme: dark) { - .sticky-header { - background: #1f1f1f; - } -} - .sticky-header-text { font-size: 16px; font-weight: 600; @@ -240,11 +191,11 @@ /* ===== 颜色工具类 ===== */ .text-expense { - color: #ff6b6b; + color: var(--van-danger-color); } .text-income { - color: #51cf66; + color: var(--van-success-color); } /* 底部操作栏 */ @@ -256,18 +207,11 @@ display: flex; gap: 12px; padding: 12px; - background-color: var(--van-background-2, #fff); + background-color: var(--van-background-2); box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08); z-index: 100; } -@media (prefers-color-scheme: dark) { - .bottom-button { - background-color: var(--van-background-2, #2c2c2c); - box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.3); - } -} - /* ===== 统一弹窗样式 ===== */ /* 弹窗容器 - 使用 flex 布局,确保标题固定,内容可滚动 */ .popup-container { @@ -304,15 +248,5 @@ overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; + background: var(--van-background); } - -/* 深色模式适配 */ -@media (prefers-color-scheme: dark) { - .popup-header-fixed { - background: #1f1f1f; - } - - .popup-scroll-content { - background: #141414; - } -} \ No newline at end of file diff --git a/Web/src/styles/rich-content.css b/Web/src/styles/rich-content.css index fe09869..285b101 100644 --- a/Web/src/styles/rich-content.css +++ b/Web/src/styles/rich-content.css @@ -108,27 +108,27 @@ /* 业务特定样式:收入、支出、高亮 */ .rich-html-content .income-value { - color: #07c160 !important; + color: var(--van-success-color) !important; font-weight: 600; } .rich-html-content .expense-value { - color: #ee0a24 !important; + color: var(--van-danger-color) !important; font-weight: 600; } .rich-html-content .highlight { - background-color: #fffbe6; - color: #ed6a0c; + background-color: var(--van-orange-light); + color: var(--van-orange-dark); padding: 2px 6px; border-radius: 4px; font-weight: bold; - border: 1px solid #ffe58f; + border: 1px solid var(--van-orange); margin: 0 2px; } /* 暗色模式适配 */ -@media (prefers-color-scheme: dark) { +/* @media (prefers-color-scheme: dark) { .rich-html-content .highlight { background-color: rgba(255, 243, 205, 0.2); color: #ffc107; @@ -156,4 +156,4 @@ .rich-html-content td { border-bottom: 1px solid #2c2c2c; } -} +} */ diff --git a/Web/src/views/BillAnalysisView.vue b/Web/src/views/BillAnalysisView.vue index d3330ad..b8fcc1d 100644 --- a/Web/src/views/BillAnalysisView.vue +++ b/Web/src/views/BillAnalysisView.vue @@ -274,21 +274,14 @@ const startAnalysis = async () => { /* 输入区域 */ .input-section { - background: #ffffff; + background: var(--van-background-2); padding: 20px; border-radius: 16px; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); - border: 1px solid #ebedf0; + border: 1px solid var(--van-border-color); margin-bottom: 16px; } -@media (prefers-color-scheme: dark) { - .input-section { - background: #1f1f1f; - border-color: #2c2c2c; - } -} - .input-header h3 { font-size: 18px; font-weight: 600; @@ -355,7 +348,7 @@ const startAnalysis = async () => { } .error-message { - color: #ff6b6b; + color: var(--van-danger-color); text-align: center; padding: 20px; } diff --git a/Web/src/views/BudgetView.vue b/Web/src/views/BudgetView.vue index 2e1fead..135dc41 100644 --- a/Web/src/views/BudgetView.vue +++ b/Web/src/views/BudgetView.vue @@ -8,7 +8,7 @@ && !isArchive" name="warning-o" size="20" - color="#ee0a24" + color="var(--van-danger-color)" style="margin-right: 12px" title="查看未覆盖预算的分类" @click="showUncoveredDetails = true" @@ -149,7 +149,7 @@ v-for="budget in savingsBudgets" :key="budget.id" :budget="budget" - progress-color="#07c160" + progress-color="var(--van-success-color)" :percent-class="{ 'income': (budget.current / budget.limit) >= 1 }" :period-label="getPeriodLabel(budget.type)" style="margin: 0 12px 12px;" @@ -418,15 +418,15 @@ const getPeriodLabel = (type) => { const getProgressColor = (budget) => { const ratio = budget.current / budget.limit - if (ratio >= 1) return '#ee0a24' - if (ratio > 0.8) return '#ff976a' - return '#1989fa' + if (ratio >= 1) return 'var(--van-danger-color)' + if (ratio > 0.8) return 'var(--van-warning-color)' + return 'var(--van-primary-color)' } const getIncomeProgressColor = (budget) => { const ratio = budget.current / budget.limit - if (ratio >= 1) return '#07c160' - return '#1989fa' + if (ratio >= 1) return 'var(--van-success-color)' + return 'var(--van-primary-color)' } const handleDelete = (budget) => { @@ -535,7 +535,7 @@ const handleSaveSummary = async () => { justify-content: space-between; align-items: center; padding: 16px; - background-color: var(--van-background-2, #ffffff); + background-color: var(--van-background-2); border-radius: 12px; margin-bottom: 12px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); @@ -549,13 +549,13 @@ const handleSaveSummary = async () => { .category-name { font-size: 16px; font-weight: 500; - color: var(--van-text-color, #323233); + color: var(--van-text-color); margin-bottom: 4px; } .transaction-count { font-size: 12px; - color: var(--van-text-color-2, #969799); + color: var(--van-text-color-2); } .item-right { diff --git a/Web/src/views/ClassificationEdit.vue b/Web/src/views/ClassificationEdit.vue index 20ad254..4908a97 100644 --- a/Web/src/views/ClassificationEdit.vue +++ b/Web/src/views/ClassificationEdit.vue @@ -398,11 +398,11 @@ onMounted(() => { } /* 深色模式 */ -@media (prefers-color-scheme: dark) { +/* @media (prefers-color-scheme: dark) { .level-container { - background: #1a1a1a; + background: var(--van-background); } -} +} */ /* 设置页面容器背景色 */ :deep(.van-nav-bar) { diff --git a/Web/src/views/ClassificationNLP.vue b/Web/src/views/ClassificationNLP.vue index 7e98a63..c4a1539 100644 --- a/Web/src/views/ClassificationNLP.vue +++ b/Web/src/views/ClassificationNLP.vue @@ -64,7 +64,7 @@ title="交易记录列表" height="75%" > -
+
{ display: flex; gap: 8px; padding: 12px 16px; - background-color: var(--van-background-2, #fff); + background-color: var(--van-background-2); margin-bottom: 8px; } diff --git a/Web/src/views/ClassificationSmart.vue b/Web/src/views/ClassificationSmart.vue index 3b1d271..645a3c7 100644 --- a/Web/src/views/ClassificationSmart.vue +++ b/Web/src/views/ClassificationSmart.vue @@ -346,7 +346,7 @@ onMounted(async () => { .stats-info { padding: 12px 12px 0 16px; font-size: 14px; - color: #969799; + color: var(--van-text-color-2); } .stats-value { diff --git a/Web/src/views/EmailRecord.vue b/Web/src/views/EmailRecord.vue index 65bd223..f59ace7 100644 --- a/Web/src/views/EmailRecord.vue +++ b/Web/src/views/EmailRecord.vue @@ -102,7 +102,7 @@
暂无邮件内容 -
+
Debug: {{ Object.keys(currentEmail).join(', ') }}
@@ -487,7 +487,7 @@ defineExpose({ .email-date { font-size: 12px; - color: #969799; + color: var(--van-text-color-2); padding-right: 10px; } @@ -513,12 +513,12 @@ defineExpose({ margin: 0 20px; } -@media (prefers-color-scheme: dark) { +/* @media (prefers-color-scheme: dark) { .content-body { - background-color: #2c2c2c; - border: 1px solid #3a3a3a; + background-color: var(--van-background-2); + border: 1px solid var(--van-border-color); } -} +} */ .delete-button { height: 100%; diff --git a/Web/src/views/LogView.vue b/Web/src/views/LogView.vue index 0a320f5..a213103 100644 --- a/Web/src/views/LogView.vue +++ b/Web/src/views/LogView.vue @@ -292,27 +292,27 @@ onMounted(() => { diff --git a/Web/src/views/PeriodicRecord.vue b/Web/src/views/PeriodicRecord.vue index e3c9570..ca32815 100644 --- a/Web/src/views/PeriodicRecord.vue +++ b/Web/src/views/PeriodicRecord.vue @@ -188,7 +188,7 @@ diff --git a/Web/src/views/SettingView.vue b/Web/src/views/SettingView.vue index 71be799..2fb79f5 100644 --- a/Web/src/views/SettingView.vue +++ b/Web/src/views/SettingView.vue @@ -306,28 +306,15 @@ const handleScheduledTasks = () => {