diff --git a/app/models/schema.py b/app/models/schema.py
index 31665d0..26c67bf 100644
--- a/app/models/schema.py
+++ b/app/models/schema.py
@@ -788,7 +788,7 @@ class SettingUpdateIn(BaseModel):
class UpdateCheckIn(BaseModel):
current_version: str = Field(..., description="当前前端版本号")
- if_force: bool = Field(..., description="是否强制拉取更新信息")
+ if_force: bool = Field(default=False, description="是否强制拉取更新信息")
class UpdateCheckOut(OutBase):
diff --git a/frontend/src/views/Settings.vue b/frontend/src/views/Settings.vue
index 625c32c..2761e3d 100644
--- a/frontend/src/views/Settings.vue
+++ b/frontend/src/views/Settings.vue
@@ -906,6 +906,21 @@ onMounted(() => {
-
-
-
@@ -1393,6 +1389,47 @@ onMounted(() => {
text-decoration: none;
}
+/* section标题右侧检查更新按钮 */
+.section-update-button {
+ height: 32px;
+ padding: 0 12px;
+ font-size: 13px;
+ font-weight: 600;
+ border-radius: 6px;
+ box-shadow: 0 2px 6px rgba(22, 119, 255, 0.2);
+ transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+ display: flex;
+ align-items: center;
+ gap: 6px;
+ background: linear-gradient(135deg, var(--ant-color-primary), var(--ant-color-primary-hover)) !important;
+ border: none !important;
+ color: white !important;
+}
+
+.section-update-button:hover {
+ transform: translateY(-1px);
+ box-shadow: 0 4px 12px rgba(22, 119, 255, 0.3);
+ background: linear-gradient(135deg, #4096ff, #1677ff) !important;
+ color: white !important;
+}
+
+.section-update-button:active {
+ transform: translateY(0);
+ color: white !important;
+}
+
+.section-update-button:focus {
+ color: white !important;
+}
+
+.section-update-button svg {
+ transition: transform 0.3s ease;
+}
+
+.section-update-button:hover svg {
+ transform: rotate(180deg);
+}
+
/* 垂直排列的表单项 */
.form-item-vertical {
display: flex;
@@ -1528,78 +1565,4 @@ onMounted(() => {
color: var(--ant-color-text-secondary);
margin-left: 8px;
}
-
-/* 检查更新按钮样式 */
-.update-section {
- margin-top: 24px;
- padding: 20px;
- background: linear-gradient(
- 135deg,
- var(--ant-color-primary-bg) 0%,
- var(--ant-color-primary-bg-hover) 100%
- );
- border: 1px solid var(--ant-color-primary-border);
- border-radius: 12px;
- position: relative;
- overflow: hidden;
-}
-
-.update-section::before {
- content: '';
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- height: 3px;
- background: linear-gradient(90deg, var(--ant-color-primary), var(--ant-color-primary-hover));
-}
-
-.update-button-wrapper {
- display: flex;
- flex-direction: column;
- align-items: center;
- gap: 12px;
-}
-
-.update-button {
- height: 48px;
- padding: 0 32px;
- font-size: 16px;
- font-weight: 600;
- border-radius: 8px;
- box-shadow: 0 4px 12px rgba(22, 119, 255, 0.3);
- transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
- display: flex;
- align-items: center;
- gap: 8px;
- min-width: 160px;
- justify-content: center;
-}
-
-.update-button:hover {
- transform: translateY(-2px);
- box-shadow: 0 6px 20px rgba(22, 119, 255, 0.4);
-}
-
-.update-button:active {
- transform: translateY(0);
-}
-
-.update-button svg {
- transition: transform 0.3s ease;
-}
-
-.update-button:hover svg {
- transform: rotate(180deg);
-}
-
-.update-hint {
- text-align: center;
-}
-
-.update-hint span {
- font-size: 13px;
- color: var(--ant-color-text-tertiary);
- font-weight: 500;
-}