diff --git a/apps/jingrow/frontend/src/core/pagetype/default.vue b/apps/jingrow/frontend/src/core/pagetype/default.vue index b1154e1..da0bbf9 100644 --- a/apps/jingrow/frontend/src/core/pagetype/default.vue +++ b/apps/jingrow/frontend/src/core/pagetype/default.vue @@ -7,83 +7,34 @@

{{ pageTitle }}

{{ pageDescription }}

- - - - - - - - - - - - - - - - - - - - {{ t('Back') }} - - - - {{ t('Save') }} - - + + @@ -321,6 +272,7 @@ import { updateRecord, getRecord, getRecordAttachments, deleteAttachment, upload import { downloadImageToLocal } from '@/shared/api/common' import { usePageTypeSlug } from '@/shared/utils/slug' import { resolvePagetypeToolbarOverride } from '@/core/registry/pagetypeOverride' +import DefaultToolbar from './default_toolbar.vue' const route = useRoute() const router = useRouter() @@ -1618,98 +1570,6 @@ watch(() => route.params.entity, async (newEntity, oldEntity) => { background: #d1d5db !important; } -/* 头部操作按钮统一样式 */ -.header-action-btn { - display: inline-flex; - align-items: center; - justify-content: center; -} - -/* 删除按钮悬浮时使用红色 */ -.header-action-btn.delete-btn:hover:not(:disabled) { - background: #ef4444 !important; - border-color: #ef4444 !important; - color: white !important; -} - -.header-action-btn.delete-btn:hover:not(:disabled) :deep(.n-button__border), -.header-action-btn.delete-btn:hover:not(:disabled) :deep(.n-button__state-border) { - border-color: #ef4444 !important; -} - -/* 保存按钮 - 使用柔和的品牌色系,与列表页创建按钮一致 */ -.save-btn-brand { - background: #e6f8f0 !important; - border: 1px solid #1fc76f !important; - color: #0d684b !important; -} - -.save-btn-brand :deep(.n-button__border) { - border: none !important; - border-color: transparent !important; -} - -.save-btn-brand :deep(.n-button__state-border) { - border: none !important; - border-color: transparent !important; -} - -.save-btn-brand:hover { - background: #dcfce7 !important; - border-color: #1fc76f !important; - border: 1px solid #1fc76f !important; - color: #166534 !important; - box-shadow: 0 2px 8px rgba(31, 199, 111, 0.15) !important; -} - -.save-btn-brand:hover :deep(.n-button__border), -.save-btn-brand:hover :deep(.n-button__state-border) { - border: none !important; - border-color: transparent !important; -} - -.save-btn-brand:focus { - background: #dcfce7 !important; - border-color: #1fc76f !important; - border: 1px solid #1fc76f !important; - color: #166534 !important; - box-shadow: 0 0 0 2px rgba(31, 199, 111, 0.2) !important; -} - -.save-btn-brand:focus :deep(.n-button__border), -.save-btn-brand:focus :deep(.n-button__state-border) { - border: none !important; - border-color: transparent !important; -} - -.save-btn-brand:active { - background: #1fc76f !important; - border-color: #1fc76f !important; - border: 1px solid #1fc76f !important; - color: white !important; - box-shadow: 0 1px 4px rgba(31, 199, 111, 0.2) !important; -} - -.save-btn-brand:active :deep(.n-button__border), -.save-btn-brand:active :deep(.n-button__state-border) { - border: none !important; - border-color: transparent !important; -} - -.save-btn-brand:disabled { - background: #f1f5f9 !important; - border: 1px solid #e2e8f0 !important; - border-color: #e2e8f0 !important; - color: #94a3b8 !important; - opacity: 0.6 !important; - cursor: not-allowed !important; -} - -.save-btn-brand:disabled :deep(.n-button__border), -.save-btn-brand:disabled :deep(.n-button__state-border) { - border: none !important; - border-color: transparent !important; -} /* 响应式设计 - Naive UI Layout 自动处理 */ @media (max-width: 768px) { diff --git a/apps/jingrow/frontend/src/core/pagetype/default_toolbar.vue b/apps/jingrow/frontend/src/core/pagetype/default_toolbar.vue new file mode 100644 index 0000000..15172e4 --- /dev/null +++ b/apps/jingrow/frontend/src/core/pagetype/default_toolbar.vue @@ -0,0 +1,228 @@ + + + + + +