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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('Back') }}
+
+
+
+
+
+
+
+
+
+ {{ t('Save') }}
+
+
+
+
+
+
+
+