diff --git a/Service/TransactionPeriodicService.cs b/Service/TransactionPeriodicService.cs index 81daa62..00de993 100644 --- a/Service/TransactionPeriodicService.cs +++ b/Service/TransactionPeriodicService.cs @@ -163,6 +163,13 @@ public class TransactionPeriodicService( .Where(d => d >= 1 && d <= 31) .ToList(); + // 如果当前为月末,且配置中有大于当月天数的日期,则也执行 + var daysInMonth = DateTime.DaysInMonth(today.Year, today.Month); + if (today.Day == daysInMonth && executeDays.Any(d => d > daysInMonth)) + { + return true; + } + return executeDays.Contains(today.Day); } @@ -175,7 +182,7 @@ public class TransactionPeriodicService( return false; // 计算当前是本季度的第几天 - var quarterStartMonth = ((today.Month - 1) / 3) * 3 + 1; + var quarterStartMonth = (today.Month - 1) / 3 * 3 + 1; var quarterStart = new DateTime(today.Year, quarterStartMonth, 1); var daysSinceQuarterStart = (today - quarterStart).Days + 1; diff --git a/Web/src/styles/common.css b/Web/src/styles/common.css index 66f00f3..03538f6 100644 --- a/Web/src/styles/common.css +++ b/Web/src/styles/common.css @@ -247,14 +247,27 @@ color: #51cf66; } +/* 底部操作栏 */ .bottom-button { position: fixed; - bottom: calc(16px + env(safe-area-inset-bottom, 0px)); - left: 16px; - right: 16px; + bottom: 0; + left: 0; + right: 0; + display: flex; + gap: 12px; + padding: 12px; + background-color: var(--van-background-2, #fff); + 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 { diff --git a/Web/src/views/ClassificationEdit.vue b/Web/src/views/ClassificationEdit.vue index 5c656a4..61a45c5 100644 --- a/Web/src/views/ClassificationEdit.vue +++ b/Web/src/views/ClassificationEdit.vue @@ -58,12 +58,14 @@ + +
+
diff --git a/Web/src/views/ClassificationSmart.vue b/Web/src/views/ClassificationSmart.vue index 7f66b7c..ccca9e2 100644 --- a/Web/src/views/ClassificationSmart.vue +++ b/Web/src/views/ClassificationSmart.vue @@ -27,7 +27,7 @@
-
+
{ font-weight: 500; } -/* 底部操作栏 */ -.action-bar { - position: fixed; - bottom: 0; - left: 0; - right: 0; - display: flex; - gap: 12px; - padding: 12px; - background-color: var(--van-background-2, #fff); - box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08); - z-index: 100; -} - -@media (prefers-color-scheme: dark) { - .action-bar { - background-color: var(--van-background-2, #2c2c2c); - box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.3); - } -} - .action-btn { flex: 1; height: 44px; diff --git a/launch.bat b/launch.bat index a9e3170..6a2e698 100644 --- a/launch.bat +++ b/launch.bat @@ -1,3 +1,2 @@ -cd Web; pnpm i ;pnpm dev; - -cd ../WebApi; dotnet watch run; \ No newline at end of file +start cd ./Web/; pnpm i ;pnpm dev; +start cd ./WebApi/; dotnet watch run; \ No newline at end of file