@robot-admin/naive-ui-components 0.3.3 → 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/{C_Form-Cr9oX037.css.map → C_Form-BoMQ3VH9.css.map} +1 -1
  2. package/dist/C_Form2.js +120 -57
  3. package/dist/C_Form2.js.map +1 -1
  4. package/dist/constants.d.ts +3 -3
  5. package/dist/constants2.d.ts +4 -4
  6. package/dist/constants3.d.ts +2 -2
  7. package/dist/constants4.d.ts +3 -3
  8. package/dist/constants5.d.ts +2 -2
  9. package/dist/data.d.ts +1 -1
  10. package/dist/index10.vue.d.ts +5 -5
  11. package/dist/index11.vue.d.ts +2 -2
  12. package/dist/index12.vue.d.ts +4 -4
  13. package/dist/index13.vue.d.ts +2 -2
  14. package/dist/index14.vue.d.ts +1 -1
  15. package/dist/index16.vue.d.ts +2 -2
  16. package/dist/index16.vue.d.ts.map +1 -1
  17. package/dist/index2.vue.d.ts +6 -6
  18. package/dist/index3.vue.d.ts +2 -2
  19. package/dist/index4.vue.d.ts +2 -2
  20. package/dist/index5.vue.d.ts +2 -2
  21. package/dist/index6.vue.d.ts +3 -3
  22. package/dist/index8.vue.d.ts +2 -2
  23. package/dist/style.css +76 -76
  24. package/dist/useCalendarEvents.d.ts +1 -1
  25. package/dist/useCollapsePanel.d.ts +3 -3
  26. package/dist/useCollapsePanel.d.ts.map +1 -1
  27. package/dist/useCropperCore.d.ts +7 -7
  28. package/dist/useDraggableLayout.d.ts +3 -3
  29. package/dist/useDynamicFormState.d.ts +8 -8
  30. package/dist/useDynamicFormState.d.ts.map +1 -1
  31. package/dist/useEdgeInteraction.d.ts +2 -2
  32. package/dist/useFullscreen.d.ts +2 -2
  33. package/dist/useInfiniteScroll.d.ts +1 -1
  34. package/dist/useModalEdit.d.ts +2 -2
  35. package/dist/useQRCode.d.ts +4 -4
  36. package/dist/useQRCode.d.ts.map +1 -1
  37. package/dist/useSearchState.d.ts +2 -2
  38. package/dist/useSignatureHistory.d.ts +3 -3
  39. package/dist/useSplitResize.d.ts +6 -6
  40. package/dist/useTimeSelection.d.ts +2 -2
  41. package/dist/useTreeOperations.d.ts +3 -3
  42. package/dist/useWorkflowValidation.d.ts +7 -7
  43. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"C_Form-Cr9oX037.css","names":[],"sources":["../src/components/C_Form/layouts/Default/index.vue?vue&type=style&index=0&scoped=a0e973bb&lang.css","../src/components/C_Form/layouts/Inline/index.vue?vue&type=style&index=0&scoped=ca3767dc&lang.scss","../src/components/C_Form/layouts/Grid/index.vue?vue&type=style&index=0&scoped=feb1a2b2&lang.scss","../src/components/C_Form/layouts/Card/index.vue?vue&type=style&index=0&scoped=c9b312a4&lang.scss","../src/components/C_Form/layouts/Tabs/index.vue?vue&type=style&index=0&scoped=68d1ce03&lang.scss","../src/components/C_Form/layouts/Steps/index.vue?vue&type=style&index=0&scoped=7249a960&lang.scss","../src/components/C_Form/layouts/Dynamic/index.vue?vue&type=style&index=0&scoped=12a3673e&lang.scss","../src/components/C_Form/layouts/Custom/index.vue?vue&type=style&index=0&scoped=ff9bdb76&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */\n.c-form-default[data-v-a0e973bb] {\r\n width: 100%;\n}\r\n","/* unplugin-vue-components disabled *//* Inline 布局样式 */\n.c-form-inline[data-v-ca3767dc] {\n width: 100%;\n min-height: 0;\n transition: all 0.3s ease;\n}\n.c-form-inline-item[data-v-ca3767dc] {\n min-width: 0;\n transition: all 0.3s ease;\n}\n\n/* 确保内部所有表单组件都占满容器宽度 */\n.c-form-inline-item[data-v-ca3767dc] .n-form-item {\n width: 100%;\n margin-bottom: 0;\n}\n.c-form-inline-item[data-v-ca3767dc] .n-form-item-blank {\n width: 100%;\n}\n.c-form-inline-item[data-v-ca3767dc] .n-input,\n.c-form-inline-item[data-v-ca3767dc] .n-select,\n.c-form-inline-item[data-v-ca3767dc] .n-date-picker,\n.c-form-inline-item[data-v-ca3767dc] .n-time-picker,\n.c-form-inline-item[data-v-ca3767dc] .n-input-number,\n.c-form-inline-item[data-v-ca3767dc] .n-cascader,\n.c-form-inline-item[data-v-ca3767dc] .n-color-picker,\n.c-form-inline-item[data-v-ca3767dc] .n-auto-complete,\n.c-form-inline-item[data-v-ca3767dc] .n-tree-select {\n width: 100% !important;\n}\n\n/* 单选框和复选框组保持自然宽度 */\n.c-form-inline-item[data-v-ca3767dc] .n-radio-group,\n.c-form-inline-item[data-v-ca3767dc] .n-checkbox-group {\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n/* 开关组件居左对齐 */\n.c-form-inline-item[data-v-ca3767dc] .n-switch {\n width: auto;\n}\n\n/* ================= 对齐方式样式增强 ================= */\n/* 当容器使用 center 对齐时,确保表单项也居中 */\n.c-form-inline[style*=\"justify-content: center\"] .c-form-inline-item[data-v-ca3767dc] {\n text-align: center;\n}\n\n/* 当容器使用 end 对齐时,确保表单项也右对齐 */\n.c-form-inline[style*=\"justify-content: flex-end\"] .c-form-inline-item[data-v-ca3767dc] {\n text-align: right;\n}\n\n/* 当容器使用 start 对齐时,确保表单项左对齐 */\n.c-form-inline[style*=\"justify-content: flex-start\"] .c-form-inline-item[data-v-ca3767dc] {\n text-align: left;\n}\n\n/* ================= 响应式设计 ================= */\n/* 移动设备 - 改为垂直布局 */\n@media (max-width: 768px) {\n.c-form-inline[data-v-ca3767dc] {\n flex-direction: column !important;\n gap: 12px !important;\n justify-content: flex-start !important;\n}\n.c-form-inline-item[data-v-ca3767dc] {\n width: 100% !important;\n text-align: left !important;\n}\n}\n/* 小屏手机 */\n@media (max-width: 480px) {\n.c-form-inline[data-v-ca3767dc] {\n gap: 8px !important;\n}\n}","/* unplugin-vue-components disabled *//* Grid 布局样式 */\n/* 变量定义 */\n.c-grid-layout[data-v-feb1a2b2] {\n width: 100%;\n /* 配置面板 */\n /* 网格容器 */\n /* 统计信息 */\n}\n.c-grid-layout .config-panel[data-v-feb1a2b2] {\n margin-bottom: 1rem;\n}\n.c-grid-layout .config-panel .config-header[data-v-feb1a2b2] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n margin-bottom: 8px;\n}\n.c-grid-layout .config-panel .config-controls[data-v-feb1a2b2] {\n display: flex;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.c-grid-layout .config-panel .config-controls .config-item[data-v-feb1a2b2] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.c-grid-layout .config-panel .config-controls .config-item .config-label[data-v-feb1a2b2] {\n font-size: 0.875rem;\n white-space: nowrap;\n min-width: 3rem;\n}\n.c-grid-layout .grid-container[data-v-feb1a2b2] {\n width: 100%;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2] {\n /* 进场动画 */\n animation: fadeInUp-feb1a2b2 0.3s ease-out both;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(1) {\n animation-delay: 0.05s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(2) {\n animation-delay: 0.1s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(3) {\n animation-delay: 0.15s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(4) {\n animation-delay: 0.2s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(5) {\n animation-delay: 0.25s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(6) {\n animation-delay: 0.3s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(7) {\n animation-delay: 0.35s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(8) {\n animation-delay: 0.4s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(9) {\n animation-delay: 0.45s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(10) {\n animation-delay: 0.5s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(11) {\n animation-delay: 0.55s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(12) {\n animation-delay: 0.6s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(13) {\n animation-delay: 0.65s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(14) {\n animation-delay: 0.7s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(15) {\n animation-delay: 0.75s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(16) {\n animation-delay: 0.8s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(17) {\n animation-delay: 0.85s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(18) {\n animation-delay: 0.9s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(19) {\n animation-delay: 0.95s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(20) {\n animation-delay: 1s;\n}\n.c-grid-layout .grid-stats[data-v-feb1a2b2] {\n margin-top: 1rem;\n font-size: 0.875rem;\n opacity: 0.8;\n}\n\n/* 动画定义 */\n@keyframes fadeInUp-feb1a2b2 {\nfrom {\n opacity: 0;\n transform: translateY(10px) scale(0.95);\n}\nto {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n}\n/* 表单控件统一宽度 */\n[data-v-feb1a2b2] .n-form-item .n-form-item-blank {\n /* 统一所有表单控件的宽度 */\n}\n[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-input,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-input-number,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-select,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-date-picker,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-time-picker,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-cascader,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-tree-select,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-auto-complete,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-dynamic-tags {\n width: 100% !important;\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n.c-grid-layout .config-panel .config-controls[data-v-feb1a2b2] {\n flex-direction: column;\n gap: 0.75rem;\n}\n.c-grid-layout .config-panel .config-controls .config-item[data-v-feb1a2b2] {\n justify-content: space-between;\n}\n.c-grid-layout .grid-container[data-v-feb1a2b2] .n-grid {\n gap: 0.5rem !important;\n}\n.c-grid-layout .grid-container .grid-item .item-wrapper[data-v-feb1a2b2] {\n padding: 0.125rem;\n}\n.c-grid-layout .grid-stats[data-v-feb1a2b2] {\n margin-top: 0.75rem;\n font-size: 0.875rem;\n}\n}\n@media (max-width: 480px) {\n.c-grid-layout .config-panel[data-v-feb1a2b2] {\n margin-bottom: 0.75rem;\n}\n}\n/* 主题适配 */\n[data-v-feb1a2b2] .n-card {\n --n-border-radius: 8px;\n}\n[data-v-feb1a2b2] .n-input-number {\n --n-width: 100%;\n}\n\n/* 暗色主题 */\n@media (prefers-color-scheme: dark) {\n.c-grid-layout .grid-container .grid-item .item-wrapper[data-v-feb1a2b2]:hover {\n background-color: rgba(255, 255, 255, 0.05);\n}\n}","/* unplugin-vue-components disabled *//* Card 布局样式 */\n.c-form-card[data-v-c9b312a4] {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n/* ================= 配置面板 ================= */\n.layout-config-panel[data-v-c9b312a4] {\n margin-bottom: 0;\n}\n.config-controls[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 1.5rem;\n flex-wrap: wrap;\n}\n@media (max-width: 768px) {\n.config-controls[data-v-c9b312a4] {\n flex-direction: column;\n align-items: stretch;\n gap: 1rem;\n}\n}\n.config-item[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n}\n@media (max-width: 768px) {\n.config-item[data-v-c9b312a4] {\n justify-content: space-between;\n}\n}\n\n/* ================= 表单内容区域 ================= */\n.form-content[data-v-c9b312a4] {\n display: flex;\n}\n.layout-single[data-v-c9b312a4],\n.layout-vertical[data-v-c9b312a4] {\n flex-direction: column;\n}\n.layout-horizontal[data-v-c9b312a4] {\n flex-direction: row;\n flex-wrap: wrap;\n}\n.layout-horizontal .group-card[data-v-c9b312a4] {\n flex: 1;\n min-width: 0;\n}\n@media (max-width: 1200px) {\n.layout-horizontal[data-v-c9b312a4] {\n flex-direction: column;\n}\n}\n\n/* ================= 卡片样式 ================= */\n.single-card[data-v-c9b312a4],\n.group-card[data-v-c9b312a4] {\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);\n border-left-width: 4px;\n}\n.single-card[data-v-c9b312a4],\n.basic-card[data-v-c9b312a4] {\n border-left-color: #3b82f6;\n}\n.contact-card[data-v-c9b312a4] {\n border-left-color: #22c55e;\n}\n.preferences-card[data-v-c9b312a4] {\n border-left-color: #a855f7;\n}\n.group-card.collapsed .card-content[data-v-c9b312a4] {\n display: none;\n}\n\n/* ================= 卡片头部 ================= */\n.card-header[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n.header-info[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.card-icon[data-v-c9b312a4] {\n width: 2.5rem;\n height: 2.5rem;\n padding: 0.5rem;\n border-radius: 0.5rem;\n background: linear-gradient(to bottom right, #3b82f6, #9333ea);\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.125rem;\n}\n.header-text h3[data-v-c9b312a4] {\n font-size: 1.125rem;\n font-weight: 600;\n margin: 0 0 0.25rem;\n}\n.header-text p[data-v-c9b312a4] {\n font-size: 0.875rem;\n color: #6b7280;\n margin: 0;\n}\n.header-actions[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.field-stats[data-v-c9b312a4] {\n display: flex;\n gap: 0.5rem;\n}\n\n/* ================= 卡片内容 ================= */\n.card-content[data-v-c9b312a4] {\n padding-top: 1rem;\n}\n.progress-section[data-v-c9b312a4] {\n padding-bottom: 1rem;\n}\n\n/* ================= 操作面板 ================= */\n.action-content[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1.5rem;\n}\n@media (max-width: 768px) {\n.action-content[data-v-c9b312a4] {\n flex-direction: column;\n align-items: stretch;\n gap: 1rem;\n}\n}\n.status-summary[data-v-c9b312a4] {\n display: flex;\n gap: 1.5rem;\n align-items: center;\n flex-wrap: wrap;\n}\n.status-item[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.status-item .label[data-v-c9b312a4] {\n font-size: 0.875rem;\n}\n.progress-display[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n min-width: 8rem;\n}\n.action-buttons[data-v-c9b312a4] {\n display: flex;\n gap: 0.75rem;\n}","/* unplugin-vue-components disabled *//* Tabs 布局样式 */\n.c-form-tabs[data-v-68d1ce03] {\n width: 100%;\n}\n.single-panel[data-v-68d1ce03] {\n width: 100%;\n}\n.tabs-container[data-v-68d1ce03] {\n width: 100%;\n}\n.form-tabs[data-v-68d1ce03] {\n width: 100%;\n}\n.tab-icon[data-v-68d1ce03] {\n font-size: 16px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n.tab-header[data-v-68d1ce03] {\n margin-bottom: 16px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--n-border-color);\n}\n.tab-description[data-v-68d1ce03] {\n margin: 0;\n font-size: 14px;\n line-height: 1.5;\n opacity: 0.8;\n}\n.tab-form-items[data-v-68d1ce03] {\n width: 100%;\n}\n.tab-empty[data-v-68d1ce03] {\n padding: 40px 0;\n}\n.tabs-actions[data-v-68d1ce03] {\n margin-top: 16px;\n padding-top: 12px;\n border-top: 1px solid var(--n-border-color);\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n.tabs-actions[data-v-68d1ce03] {\n margin-top: 12px;\n padding-top: 8px;\n}\n.tabs-actions[data-v-68d1ce03] .n-space {\n flex-wrap: wrap;\n}\n}","/* unplugin-vue-components disabled *//* Steps 布局样式 */\n.c-form-steps[data-v-7249a960] {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n.single-panel[data-v-7249a960] {\n width: 100%;\n}\n.steps-container[data-v-7249a960] {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n.steps-indicator[data-v-7249a960] {\n padding: 24px;\n border-radius: 8px;\n}\n.steps-content[data-v-7249a960] {\n min-height: 400px;\n}\n.step-panel[data-v-7249a960] {\n animation: fadeIn-7249a960 0.3s ease-in-out;\n}\n.step-header[data-v-7249a960] {\n margin-bottom: 24px;\n padding-bottom: 16px;\n border-bottom: 1px solid var(--n-border-color);\n}\n.step-title[data-v-7249a960] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n}\n.step-description[data-v-7249a960] {\n margin: 0;\n font-size: 14px;\n line-height: 1.5;\n}\n.step-form-items[data-v-7249a960] {\n width: 100%;\n}\n.steps-actions[data-v-7249a960] {\n margin-top: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--n-border-color);\n}\n@keyframes fadeIn-7249a960 {\nfrom {\n opacity: 0;\n transform: translateY(8px);\n}\nto {\n opacity: 1;\n transform: translateY(0);\n}\n}\n/* 垂直步骤样式 */\n.steps-container[data-v-7249a960]:has(.steps-indicator:deep(.n-steps--vertical)) {\n flex-direction: row;\n align-items: flex-start;\n}\n.steps-container:has(.steps-indicator:deep(.n-steps--vertical)) .steps-indicator[data-v-7249a960] {\n flex-shrink: 0;\n width: 250px;\n margin-right: 24px;\n}\n.steps-container:has(.steps-indicator:deep(.n-steps--vertical)) .steps-content[data-v-7249a960] {\n flex: 1;\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n.steps-container[data-v-7249a960]:has(.steps-indicator:deep(.n-steps--vertical)) {\n flex-direction: column !important;\n}\n.steps-container:has(.steps-indicator:deep(.n-steps--vertical)) .steps-indicator[data-v-7249a960] {\n width: 100% !important;\n margin-right: 0 !important;\n margin-bottom: 16px;\n}\n}\n@media (prefers-reduced-motion: reduce) {\n.step-panel[data-v-7249a960] {\n animation: none !important;\n}\n}","/* unplugin-vue-components disabled *//* Dynamic 布局样式 */\n.c-form-dynamic[data-v-12a3673e] {\n width: 100%;\n}\n.dynamic-controls[data-v-12a3673e],\n.dynamic-controls-fallback[data-v-12a3673e] {\n margin-bottom: 16px;\n}\n.dynamic-stats[data-v-12a3673e] {\n margin-top: 16px;\n padding-top: 12px;\n border-top: 1px solid var(--n-divider-color);\n}\n.dynamic-item-wrapper[data-v-12a3673e] {\n position: relative;\n transition: all 0.3s ease;\n animation: fadeInUp-12a3673e 0.3s ease-out;\n}\n.dynamic-item-wrapper.is-dynamic-field[data-v-12a3673e] {\n border: 1px dashed var(--n-color-primary);\n border-radius: 6px;\n padding: 8px;\n background-color: var(--n-color-primary-suppl);\n}\n.max-fields-config[data-v-12a3673e] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n}\n.max-fields-config span[data-v-12a3673e] {\n font-weight: 500;\n white-space: nowrap;\n color: var(--n-text-color-2);\n}\n@keyframes fadeInUp-12a3673e {\nfrom {\n opacity: 0;\n transform: translateY(10px);\n}\nto {\n opacity: 1;\n transform: translateY(0);\n}\n}\n/* 响应式设计 */\n@media (max-width: 768px) {\n.dynamic-controls[data-v-12a3673e],\n .dynamic-controls-fallback[data-v-12a3673e] {\n margin-bottom: 12px;\n}\n.dynamic-stats[data-v-12a3673e] {\n margin-top: 12px;\n}\n.dynamic-item-wrapper.is-dynamic-field[data-v-12a3673e] {\n padding: 6px;\n}\n.max-fields-config[data-v-12a3673e] {\n margin-top: 8px;\n}\n}\n/* 辅助功能 */\n@media (prefers-reduced-motion: reduce) {\n.dynamic-item-wrapper[data-v-12a3673e] {\n animation: none !important;\n transition: none !important;\n}\n}\n@media (prefers-contrast: high) {\n.dynamic-item-wrapper.is-dynamic-field[data-v-12a3673e] {\n border-width: 2px;\n border-color: currentColor;\n}\n}","/* unplugin-vue-components disabled *//* Custom 布局样式 */\n.custom-layout .toolbar-card[data-v-ff9bdb76] {\n margin-bottom: 16px;\n}\n.custom-layout .toolbar-card .toolbar-content[data-v-ff9bdb76] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n}\n.custom-layout .toolbar-card .toolbar-content .mode-section[data-v-ff9bdb76],\n.custom-layout .toolbar-card .toolbar-content .stats-section[data-v-ff9bdb76],\n.custom-layout .toolbar-card .toolbar-content .actions-section[data-v-ff9bdb76] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.custom-layout .toolbar-card .toolbar-content .section-label[data-v-ff9bdb76] {\n font-size: 14px;\n font-weight: 500;\n}\n.custom-layout .toolbar-card .toolbar-content .stat-item[data-v-ff9bdb76] {\n text-align: center;\n min-width: 60px;\n}\n.custom-layout .toolbar-card .toolbar-content .stat-item .stat-value[data-v-ff9bdb76] {\n display: block;\n font-size: 18px;\n font-weight: 600;\n color: var(--n-primary-color);\n}\n.custom-layout .toolbar-card .toolbar-content .stat-item .stat-label[data-v-ff9bdb76] {\n font-size: 12px;\n opacity: 0.7;\n margin-top: 4px;\n}\n.custom-layout .design-panel[data-v-ff9bdb76] {\n margin-bottom: 16px;\n}\n.custom-layout .design-panel .design-tools[data-v-ff9bdb76] {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n.custom-layout .design-panel .design-tools .tool-group[data-v-ff9bdb76] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.custom-layout .design-panel .design-tools .tool-group .group-label[data-v-ff9bdb76] {\n font-size: 14px;\n font-weight: 500;\n margin-right: 4px;\n}\n.custom-layout .layout-canvas[data-v-ff9bdb76] {\n min-height: 200px;\n}\n.custom-layout .layout-canvas.design-mode[data-v-ff9bdb76] {\n border: 2px dashed var(--n-border-color);\n border-radius: 8px;\n padding: 16px;\n background: var(--n-body-color);\n}\n.custom-layout .layout-canvas .canvas-hint[data-v-ff9bdb76] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 120px;\n text-align: center;\n}\n.custom-layout .layout-canvas .canvas-hint .hint-content h3[data-v-ff9bdb76] {\n margin: 0 0 8px 0;\n font-size: 18px;\n}\n.custom-layout .layout-canvas .canvas-hint .hint-content p[data-v-ff9bdb76] {\n margin: 0;\n opacity: 0.7;\n font-size: 14px;\n}\n.custom-layout .layout-canvas .areas-container[data-v-ff9bdb76] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n}\n.custom-layout .layout-canvas .custom-area[data-v-ff9bdb76] {\n border: 1px solid var(--n-border-color);\n border-radius: 8px;\n background: var(--n-card-color);\n padding: 16px;\n min-height: 120px;\n flex: 1;\n min-width: 250px;\n}\n.custom-layout .layout-canvas .custom-area .area-header[data-v-ff9bdb76] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--n-divider-color);\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-info[data-v-ff9bdb76] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-info .area-title[data-v-ff9bdb76] {\n font-weight: 600;\n font-size: 14px;\n cursor: pointer;\n padding: 2px 6px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-info .area-title[data-v-ff9bdb76]:hover {\n background: var(--n-button-color-hover);\n color: var(--n-primary-color);\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-info .title-input[data-v-ff9bdb76] {\n min-width: 120px;\n max-width: 200px;\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-controls[data-v-ff9bdb76] {\n display: flex;\n gap: 4px;\n}\n.custom-layout .layout-canvas .custom-area .area-fields[data-v-ff9bdb76] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-height: 60px;\n}\n.custom-layout .layout-canvas .custom-area .area-drop-zone[data-v-ff9bdb76] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 60px;\n border: 2px dashed var(--n-border-color);\n border-radius: 6px;\n font-size: 14px;\n opacity: 0.6;\n transition: all 0.2s ease;\n background: var(--n-body-color);\n margin-top: 8px;\n}\n.custom-layout .layout-canvas .custom-area .area-drop-zone[data-v-ff9bdb76]:hover {\n border-color: var(--n-primary-color);\n opacity: 1;\n}\n.custom-layout .layout-canvas .custom-area.area-horizontal .area-fields[data-v-ff9bdb76] {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 12px;\n}\n.custom-layout .layout-canvas .custom-area.area-grid .area-fields[data-v-ff9bdb76] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n}\n.custom-layout .layout-canvas .field-item[data-v-ff9bdb76] {\n border: 1px solid var(--n-border-color);\n border-radius: 6px;\n background: var(--n-body-color);\n padding: 12px;\n min-height: 40px;\n cursor: move;\n transition: all 0.2s ease;\n}\n.custom-layout .layout-canvas .field-item[data-v-ff9bdb76]:hover {\n border-color: var(--n-primary-color);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n.custom-layout .layout-canvas .field-item .field-preview[data-v-ff9bdb76] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n}\n.custom-layout .layout-canvas .field-item .field-preview .field-label[data-v-ff9bdb76] {\n font-size: 13px;\n font-weight: 500;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.custom-layout .layout-canvas .field-item .field-preview .field-type[data-v-ff9bdb76] {\n font-size: 11px;\n opacity: 0.6;\n background: var(--n-tag-color);\n padding: 2px 6px;\n border-radius: 4px;\n flex-shrink: 0;\n}\n.custom-layout .layout-canvas .field-pool[data-v-ff9bdb76] {\n margin-top: 16px;\n}\n.custom-layout .layout-canvas .field-pool .pool-fields-grid[data-v-ff9bdb76] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n}\n.custom-layout .layout-canvas .field-pool .pool-field[data-v-ff9bdb76] {\n border: 1px solid var(--n-border-color);\n border-radius: 6px;\n background: var(--n-card-color);\n padding: 12px;\n min-height: 40px;\n cursor: move;\n transition: all 0.2s ease;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.custom-layout .layout-canvas .field-pool .pool-field[data-v-ff9bdb76]:hover {\n border-color: var(--n-primary-color);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n.custom-layout .layout-canvas .field-pool .pool-field .field-name[data-v-ff9bdb76] {\n font-size: 13px;\n font-weight: 500;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.custom-layout .layout-canvas .field-pool .pool-field .field-type-tag[data-v-ff9bdb76] {\n font-size: 11px;\n padding: 2px 8px;\n border-radius: 4px;\n background: var(--n-tag-color);\n flex-shrink: 0;\n}\n.custom-layout .layout-canvas .empty-layout[data-v-ff9bdb76] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 120px;\n padding: 16px;\n}\n.custom-layout .layout-canvas .form-areas[data-v-ff9bdb76] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n align-items: flex-start;\n}\n.custom-layout .layout-canvas .form-areas .form-area[data-v-ff9bdb76] {\n flex: 1;\n min-width: 250px;\n}\n.custom-layout .layout-canvas .form-areas .form-area.area-vertical[data-v-ff9bdb76] {\n width: 100%;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n /* 统一表单项宽度 */\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item {\n width: 100%;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank {\n width: 100%;\n /* 统一输入控件宽度 */\n /* 特殊控件的额外处理 */\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-input,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-select,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-date-picker,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-input-number,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-textarea,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-radio-group,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-checkbox-group,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-cascader,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-tree-select,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-time-picker,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-color-picker {\n width: 100% !important;\n max-width: 100% !important;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-radio-group,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-ff9bdb76] .n-form-item .n-form-item-blank .n-checkbox-group {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items.layout-horizontal[data-v-ff9bdb76] {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 12px;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items.layout-horizontal[data-v-ff9bdb76] .n-form-item {\n flex: 1;\n min-width: 200px;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items.layout-grid[data-v-ff9bdb76] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items.layout-grid[data-v-ff9bdb76] .n-form-item {\n width: 100%;\n}\n\n/* 拖拽状态 */\n.area-ghost[data-v-ff9bdb76],\n.field-ghost[data-v-ff9bdb76] {\n opacity: 0.5;\n background: var(--n-primary-color-suppl);\n border: 2px dashed var(--n-primary-color);\n transform: rotate(2deg);\n}\n\n/* 响应式 */\n@media (max-width: 1024px) {\n.custom-layout .toolbar-content[data-v-ff9bdb76] {\n flex-direction: column;\n gap: 12px;\n}\n.custom-layout .layout-canvas .areas-container[data-v-ff9bdb76] {\n flex-direction: column;\n}\n}\n@media (max-width: 768px) {\n.custom-layout .design-tools[data-v-ff9bdb76] {\n flex-direction: column;\n gap: 12px;\n}\n.custom-layout .layout-canvas.design-mode[data-v-ff9bdb76] {\n padding: 12px;\n}\n.custom-layout .custom-area[data-v-ff9bdb76] {\n padding: 12px;\n min-height: 100px;\n}\n.custom-layout .layout-canvas .field-pool .pool-fields-grid[data-v-ff9bdb76] {\n grid-template-columns: repeat(2, 1fr);\n}\n}"],"mappings":"AAAA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"C_Form-BoMQ3VH9.css","names":[],"sources":["../src/components/C_Form/layouts/Default/index.vue?vue&type=style&index=0&scoped=a0e973bb&lang.css","../src/components/C_Form/layouts/Inline/index.vue?vue&type=style&index=0&scoped=ca3767dc&lang.scss","../src/components/C_Form/layouts/Grid/index.vue?vue&type=style&index=0&scoped=feb1a2b2&lang.scss","../src/components/C_Form/layouts/Card/index.vue?vue&type=style&index=0&scoped=c9b312a4&lang.scss","../src/components/C_Form/layouts/Tabs/index.vue?vue&type=style&index=0&scoped=68d1ce03&lang.scss","../src/components/C_Form/layouts/Steps/index.vue?vue&type=style&index=0&scoped=7249a960&lang.scss","../src/components/C_Form/layouts/Dynamic/index.vue?vue&type=style&index=0&scoped=12a3673e&lang.scss","../src/components/C_Form/layouts/Custom/index.vue?vue&type=style&index=0&scoped=7cb397b8&lang.scss"],"sourcesContent":["/* unplugin-vue-components disabled */\n.c-form-default[data-v-a0e973bb] {\r\n width: 100%;\n}\r\n","/* unplugin-vue-components disabled *//* Inline 布局样式 */\n.c-form-inline[data-v-ca3767dc] {\n width: 100%;\n min-height: 0;\n transition: all 0.3s ease;\n}\n.c-form-inline-item[data-v-ca3767dc] {\n min-width: 0;\n transition: all 0.3s ease;\n}\n\n/* 确保内部所有表单组件都占满容器宽度 */\n.c-form-inline-item[data-v-ca3767dc] .n-form-item {\n width: 100%;\n margin-bottom: 0;\n}\n.c-form-inline-item[data-v-ca3767dc] .n-form-item-blank {\n width: 100%;\n}\n.c-form-inline-item[data-v-ca3767dc] .n-input,\n.c-form-inline-item[data-v-ca3767dc] .n-select,\n.c-form-inline-item[data-v-ca3767dc] .n-date-picker,\n.c-form-inline-item[data-v-ca3767dc] .n-time-picker,\n.c-form-inline-item[data-v-ca3767dc] .n-input-number,\n.c-form-inline-item[data-v-ca3767dc] .n-cascader,\n.c-form-inline-item[data-v-ca3767dc] .n-color-picker,\n.c-form-inline-item[data-v-ca3767dc] .n-auto-complete,\n.c-form-inline-item[data-v-ca3767dc] .n-tree-select {\n width: 100% !important;\n}\n\n/* 单选框和复选框组保持自然宽度 */\n.c-form-inline-item[data-v-ca3767dc] .n-radio-group,\n.c-form-inline-item[data-v-ca3767dc] .n-checkbox-group {\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n/* 开关组件居左对齐 */\n.c-form-inline-item[data-v-ca3767dc] .n-switch {\n width: auto;\n}\n\n/* ================= 对齐方式样式增强 ================= */\n/* 当容器使用 center 对齐时,确保表单项也居中 */\n.c-form-inline[style*=\"justify-content: center\"] .c-form-inline-item[data-v-ca3767dc] {\n text-align: center;\n}\n\n/* 当容器使用 end 对齐时,确保表单项也右对齐 */\n.c-form-inline[style*=\"justify-content: flex-end\"] .c-form-inline-item[data-v-ca3767dc] {\n text-align: right;\n}\n\n/* 当容器使用 start 对齐时,确保表单项左对齐 */\n.c-form-inline[style*=\"justify-content: flex-start\"] .c-form-inline-item[data-v-ca3767dc] {\n text-align: left;\n}\n\n/* ================= 响应式设计 ================= */\n/* 移动设备 - 改为垂直布局 */\n@media (max-width: 768px) {\n.c-form-inline[data-v-ca3767dc] {\n flex-direction: column !important;\n gap: 12px !important;\n justify-content: flex-start !important;\n}\n.c-form-inline-item[data-v-ca3767dc] {\n width: 100% !important;\n text-align: left !important;\n}\n}\n/* 小屏手机 */\n@media (max-width: 480px) {\n.c-form-inline[data-v-ca3767dc] {\n gap: 8px !important;\n}\n}","/* unplugin-vue-components disabled *//* Grid 布局样式 */\n/* 变量定义 */\n.c-grid-layout[data-v-feb1a2b2] {\n width: 100%;\n /* 配置面板 */\n /* 网格容器 */\n /* 统计信息 */\n}\n.c-grid-layout .config-panel[data-v-feb1a2b2] {\n margin-bottom: 1rem;\n}\n.c-grid-layout .config-panel .config-header[data-v-feb1a2b2] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n font-weight: 500;\n margin-bottom: 8px;\n}\n.c-grid-layout .config-panel .config-controls[data-v-feb1a2b2] {\n display: flex;\n gap: 1rem;\n flex-wrap: wrap;\n}\n.c-grid-layout .config-panel .config-controls .config-item[data-v-feb1a2b2] {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n.c-grid-layout .config-panel .config-controls .config-item .config-label[data-v-feb1a2b2] {\n font-size: 0.875rem;\n white-space: nowrap;\n min-width: 3rem;\n}\n.c-grid-layout .grid-container[data-v-feb1a2b2] {\n width: 100%;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2] {\n /* 进场动画 */\n animation: fadeInUp-feb1a2b2 0.3s ease-out both;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(1) {\n animation-delay: 0.05s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(2) {\n animation-delay: 0.1s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(3) {\n animation-delay: 0.15s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(4) {\n animation-delay: 0.2s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(5) {\n animation-delay: 0.25s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(6) {\n animation-delay: 0.3s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(7) {\n animation-delay: 0.35s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(8) {\n animation-delay: 0.4s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(9) {\n animation-delay: 0.45s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(10) {\n animation-delay: 0.5s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(11) {\n animation-delay: 0.55s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(12) {\n animation-delay: 0.6s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(13) {\n animation-delay: 0.65s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(14) {\n animation-delay: 0.7s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(15) {\n animation-delay: 0.75s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(16) {\n animation-delay: 0.8s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(17) {\n animation-delay: 0.85s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(18) {\n animation-delay: 0.9s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(19) {\n animation-delay: 0.95s;\n}\n.c-grid-layout .grid-container .grid-item[data-v-feb1a2b2]:nth-child(20) {\n animation-delay: 1s;\n}\n.c-grid-layout .grid-stats[data-v-feb1a2b2] {\n margin-top: 1rem;\n font-size: 0.875rem;\n opacity: 0.8;\n}\n\n/* 动画定义 */\n@keyframes fadeInUp-feb1a2b2 {\nfrom {\n opacity: 0;\n transform: translateY(10px) scale(0.95);\n}\nto {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n}\n/* 表单控件统一宽度 */\n[data-v-feb1a2b2] .n-form-item .n-form-item-blank {\n /* 统一所有表单控件的宽度 */\n}\n[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-input,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-input-number,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-select,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-date-picker,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-time-picker,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-cascader,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-tree-select,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-auto-complete,[data-v-feb1a2b2] .n-form-item .n-form-item-blank .n-dynamic-tags {\n width: 100% !important;\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n.c-grid-layout .config-panel .config-controls[data-v-feb1a2b2] {\n flex-direction: column;\n gap: 0.75rem;\n}\n.c-grid-layout .config-panel .config-controls .config-item[data-v-feb1a2b2] {\n justify-content: space-between;\n}\n.c-grid-layout .grid-container[data-v-feb1a2b2] .n-grid {\n gap: 0.5rem !important;\n}\n.c-grid-layout .grid-container .grid-item .item-wrapper[data-v-feb1a2b2] {\n padding: 0.125rem;\n}\n.c-grid-layout .grid-stats[data-v-feb1a2b2] {\n margin-top: 0.75rem;\n font-size: 0.875rem;\n}\n}\n@media (max-width: 480px) {\n.c-grid-layout .config-panel[data-v-feb1a2b2] {\n margin-bottom: 0.75rem;\n}\n}\n/* 主题适配 */\n[data-v-feb1a2b2] .n-card {\n --n-border-radius: 8px;\n}\n[data-v-feb1a2b2] .n-input-number {\n --n-width: 100%;\n}\n\n/* 暗色主题 */\n@media (prefers-color-scheme: dark) {\n.c-grid-layout .grid-container .grid-item .item-wrapper[data-v-feb1a2b2]:hover {\n background-color: rgba(255, 255, 255, 0.05);\n}\n}","/* unplugin-vue-components disabled *//* Card 布局样式 */\n.c-form-card[data-v-c9b312a4] {\n width: 100%;\n display: flex;\n flex-direction: column;\n gap: 1.5rem;\n}\n\n/* ================= 配置面板 ================= */\n.layout-config-panel[data-v-c9b312a4] {\n margin-bottom: 0;\n}\n.config-controls[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 1.5rem;\n flex-wrap: wrap;\n}\n@media (max-width: 768px) {\n.config-controls[data-v-c9b312a4] {\n flex-direction: column;\n align-items: stretch;\n gap: 1rem;\n}\n}\n.config-item[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n font-size: 0.875rem;\n}\n@media (max-width: 768px) {\n.config-item[data-v-c9b312a4] {\n justify-content: space-between;\n}\n}\n\n/* ================= 表单内容区域 ================= */\n.form-content[data-v-c9b312a4] {\n display: flex;\n}\n.layout-single[data-v-c9b312a4],\n.layout-vertical[data-v-c9b312a4] {\n flex-direction: column;\n}\n.layout-horizontal[data-v-c9b312a4] {\n flex-direction: row;\n flex-wrap: wrap;\n}\n.layout-horizontal .group-card[data-v-c9b312a4] {\n flex: 1;\n min-width: 0;\n}\n@media (max-width: 1200px) {\n.layout-horizontal[data-v-c9b312a4] {\n flex-direction: column;\n}\n}\n\n/* ================= 卡片样式 ================= */\n.single-card[data-v-c9b312a4],\n.group-card[data-v-c9b312a4] {\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);\n border-left-width: 4px;\n}\n.single-card[data-v-c9b312a4],\n.basic-card[data-v-c9b312a4] {\n border-left-color: #3b82f6;\n}\n.contact-card[data-v-c9b312a4] {\n border-left-color: #22c55e;\n}\n.preferences-card[data-v-c9b312a4] {\n border-left-color: #a855f7;\n}\n.group-card.collapsed .card-content[data-v-c9b312a4] {\n display: none;\n}\n\n/* ================= 卡片头部 ================= */\n.card-header[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n width: 100%;\n}\n.header-info[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 1rem;\n}\n.card-icon[data-v-c9b312a4] {\n width: 2.5rem;\n height: 2.5rem;\n padding: 0.5rem;\n border-radius: 0.5rem;\n background: linear-gradient(to bottom right, #3b82f6, #9333ea);\n color: white;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 1.125rem;\n}\n.header-text h3[data-v-c9b312a4] {\n font-size: 1.125rem;\n font-weight: 600;\n margin: 0 0 0.25rem;\n}\n.header-text p[data-v-c9b312a4] {\n font-size: 0.875rem;\n color: #6b7280;\n margin: 0;\n}\n.header-actions[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.field-stats[data-v-c9b312a4] {\n display: flex;\n gap: 0.5rem;\n}\n\n/* ================= 卡片内容 ================= */\n.card-content[data-v-c9b312a4] {\n padding-top: 1rem;\n}\n.progress-section[data-v-c9b312a4] {\n padding-bottom: 1rem;\n}\n\n/* ================= 操作面板 ================= */\n.action-content[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 1.5rem;\n}\n@media (max-width: 768px) {\n.action-content[data-v-c9b312a4] {\n flex-direction: column;\n align-items: stretch;\n gap: 1rem;\n}\n}\n.status-summary[data-v-c9b312a4] {\n display: flex;\n gap: 1.5rem;\n align-items: center;\n flex-wrap: wrap;\n}\n.status-item[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n}\n.status-item .label[data-v-c9b312a4] {\n font-size: 0.875rem;\n}\n.progress-display[data-v-c9b312a4] {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n min-width: 8rem;\n}\n.action-buttons[data-v-c9b312a4] {\n display: flex;\n gap: 0.75rem;\n}","/* unplugin-vue-components disabled *//* Tabs 布局样式 */\n.c-form-tabs[data-v-68d1ce03] {\n width: 100%;\n}\n.single-panel[data-v-68d1ce03] {\n width: 100%;\n}\n.tabs-container[data-v-68d1ce03] {\n width: 100%;\n}\n.form-tabs[data-v-68d1ce03] {\n width: 100%;\n}\n.tab-icon[data-v-68d1ce03] {\n font-size: 16px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n.tab-header[data-v-68d1ce03] {\n margin-bottom: 16px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--n-border-color);\n}\n.tab-description[data-v-68d1ce03] {\n margin: 0;\n font-size: 14px;\n line-height: 1.5;\n opacity: 0.8;\n}\n.tab-form-items[data-v-68d1ce03] {\n width: 100%;\n}\n.tab-empty[data-v-68d1ce03] {\n padding: 40px 0;\n}\n.tabs-actions[data-v-68d1ce03] {\n margin-top: 16px;\n padding-top: 12px;\n border-top: 1px solid var(--n-border-color);\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n.tabs-actions[data-v-68d1ce03] {\n margin-top: 12px;\n padding-top: 8px;\n}\n.tabs-actions[data-v-68d1ce03] .n-space {\n flex-wrap: wrap;\n}\n}","/* unplugin-vue-components disabled *//* Steps 布局样式 */\n.c-form-steps[data-v-7249a960] {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n.single-panel[data-v-7249a960] {\n width: 100%;\n}\n.steps-container[data-v-7249a960] {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n.steps-indicator[data-v-7249a960] {\n padding: 24px;\n border-radius: 8px;\n}\n.steps-content[data-v-7249a960] {\n min-height: 400px;\n}\n.step-panel[data-v-7249a960] {\n animation: fadeIn-7249a960 0.3s ease-in-out;\n}\n.step-header[data-v-7249a960] {\n margin-bottom: 24px;\n padding-bottom: 16px;\n border-bottom: 1px solid var(--n-border-color);\n}\n.step-title[data-v-7249a960] {\n margin: 0 0 8px 0;\n font-size: 18px;\n font-weight: 600;\n}\n.step-description[data-v-7249a960] {\n margin: 0;\n font-size: 14px;\n line-height: 1.5;\n}\n.step-form-items[data-v-7249a960] {\n width: 100%;\n}\n.steps-actions[data-v-7249a960] {\n margin-top: 24px;\n padding-top: 16px;\n border-top: 1px solid var(--n-border-color);\n}\n@keyframes fadeIn-7249a960 {\nfrom {\n opacity: 0;\n transform: translateY(8px);\n}\nto {\n opacity: 1;\n transform: translateY(0);\n}\n}\n/* 垂直步骤样式 */\n.steps-container[data-v-7249a960]:has(.steps-indicator:deep(.n-steps--vertical)) {\n flex-direction: row;\n align-items: flex-start;\n}\n.steps-container:has(.steps-indicator:deep(.n-steps--vertical)) .steps-indicator[data-v-7249a960] {\n flex-shrink: 0;\n width: 250px;\n margin-right: 24px;\n}\n.steps-container:has(.steps-indicator:deep(.n-steps--vertical)) .steps-content[data-v-7249a960] {\n flex: 1;\n}\n\n/* 响应式设计 */\n@media (max-width: 768px) {\n.steps-container[data-v-7249a960]:has(.steps-indicator:deep(.n-steps--vertical)) {\n flex-direction: column !important;\n}\n.steps-container:has(.steps-indicator:deep(.n-steps--vertical)) .steps-indicator[data-v-7249a960] {\n width: 100% !important;\n margin-right: 0 !important;\n margin-bottom: 16px;\n}\n}\n@media (prefers-reduced-motion: reduce) {\n.step-panel[data-v-7249a960] {\n animation: none !important;\n}\n}","/* unplugin-vue-components disabled *//* Dynamic 布局样式 */\n.c-form-dynamic[data-v-12a3673e] {\n width: 100%;\n}\n.dynamic-controls[data-v-12a3673e],\n.dynamic-controls-fallback[data-v-12a3673e] {\n margin-bottom: 16px;\n}\n.dynamic-stats[data-v-12a3673e] {\n margin-top: 16px;\n padding-top: 12px;\n border-top: 1px solid var(--n-divider-color);\n}\n.dynamic-item-wrapper[data-v-12a3673e] {\n position: relative;\n transition: all 0.3s ease;\n animation: fadeInUp-12a3673e 0.3s ease-out;\n}\n.dynamic-item-wrapper.is-dynamic-field[data-v-12a3673e] {\n border: 1px dashed var(--n-color-primary);\n border-radius: 6px;\n padding: 8px;\n background-color: var(--n-color-primary-suppl);\n}\n.max-fields-config[data-v-12a3673e] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n}\n.max-fields-config span[data-v-12a3673e] {\n font-weight: 500;\n white-space: nowrap;\n color: var(--n-text-color-2);\n}\n@keyframes fadeInUp-12a3673e {\nfrom {\n opacity: 0;\n transform: translateY(10px);\n}\nto {\n opacity: 1;\n transform: translateY(0);\n}\n}\n/* 响应式设计 */\n@media (max-width: 768px) {\n.dynamic-controls[data-v-12a3673e],\n .dynamic-controls-fallback[data-v-12a3673e] {\n margin-bottom: 12px;\n}\n.dynamic-stats[data-v-12a3673e] {\n margin-top: 12px;\n}\n.dynamic-item-wrapper.is-dynamic-field[data-v-12a3673e] {\n padding: 6px;\n}\n.max-fields-config[data-v-12a3673e] {\n margin-top: 8px;\n}\n}\n/* 辅助功能 */\n@media (prefers-reduced-motion: reduce) {\n.dynamic-item-wrapper[data-v-12a3673e] {\n animation: none !important;\n transition: none !important;\n}\n}\n@media (prefers-contrast: high) {\n.dynamic-item-wrapper.is-dynamic-field[data-v-12a3673e] {\n border-width: 2px;\n border-color: currentColor;\n}\n}","/* unplugin-vue-components disabled *//* Custom 布局样式 */\n.custom-layout .toolbar-card[data-v-7cb397b8] {\n margin-bottom: 16px;\n}\n.custom-layout .toolbar-card .toolbar-content[data-v-7cb397b8] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n flex-wrap: wrap;\n gap: 16px;\n}\n.custom-layout .toolbar-card .toolbar-content .mode-section[data-v-7cb397b8],\n.custom-layout .toolbar-card .toolbar-content .stats-section[data-v-7cb397b8],\n.custom-layout .toolbar-card .toolbar-content .actions-section[data-v-7cb397b8] {\n display: flex;\n align-items: center;\n gap: 12px;\n}\n.custom-layout .toolbar-card .toolbar-content .section-label[data-v-7cb397b8] {\n font-size: 14px;\n font-weight: 500;\n}\n.custom-layout .toolbar-card .toolbar-content .stat-item[data-v-7cb397b8] {\n text-align: center;\n min-width: 60px;\n}\n.custom-layout .toolbar-card .toolbar-content .stat-item .stat-value[data-v-7cb397b8] {\n display: block;\n font-size: 18px;\n font-weight: 600;\n color: var(--n-primary-color);\n}\n.custom-layout .toolbar-card .toolbar-content .stat-item .stat-label[data-v-7cb397b8] {\n font-size: 12px;\n opacity: 0.7;\n margin-top: 4px;\n}\n.custom-layout .design-panel[data-v-7cb397b8] {\n margin-bottom: 16px;\n}\n.custom-layout .design-panel .design-tools[data-v-7cb397b8] {\n display: flex;\n gap: 24px;\n flex-wrap: wrap;\n}\n.custom-layout .design-panel .design-tools .tool-group[data-v-7cb397b8] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.custom-layout .design-panel .design-tools .tool-group .group-label[data-v-7cb397b8] {\n font-size: 14px;\n font-weight: 500;\n margin-right: 4px;\n}\n.custom-layout .layout-canvas[data-v-7cb397b8] {\n min-height: 200px;\n}\n.custom-layout .layout-canvas.design-mode[data-v-7cb397b8] {\n border: 2px dashed var(--n-border-color);\n border-radius: 8px;\n padding: 16px;\n background: var(--n-body-color);\n}\n.custom-layout .layout-canvas .canvas-hint[data-v-7cb397b8] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 120px;\n text-align: center;\n}\n.custom-layout .layout-canvas .canvas-hint .hint-content h3[data-v-7cb397b8] {\n margin: 0 0 8px 0;\n font-size: 18px;\n}\n.custom-layout .layout-canvas .canvas-hint .hint-content p[data-v-7cb397b8] {\n margin: 0;\n opacity: 0.7;\n font-size: 14px;\n}\n.custom-layout .layout-canvas .areas-container[data-v-7cb397b8] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n}\n.custom-layout .layout-canvas .custom-area[data-v-7cb397b8] {\n border: 1px solid var(--n-border-color);\n border-radius: 8px;\n background: var(--n-card-color);\n padding: 16px;\n min-height: 120px;\n flex: 1;\n min-width: 250px;\n}\n.custom-layout .layout-canvas .custom-area .area-header[data-v-7cb397b8] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding-bottom: 8px;\n border-bottom: 1px solid var(--n-divider-color);\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-info[data-v-7cb397b8] {\n display: flex;\n align-items: center;\n gap: 8px;\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-info .area-title[data-v-7cb397b8] {\n font-weight: 600;\n font-size: 14px;\n cursor: pointer;\n padding: 2px 6px;\n border-radius: 4px;\n transition: all 0.2s ease;\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-info .area-title[data-v-7cb397b8]:hover {\n background: var(--n-button-color-hover);\n color: var(--n-primary-color);\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-info .title-input[data-v-7cb397b8] {\n min-width: 120px;\n max-width: 200px;\n}\n.custom-layout .layout-canvas .custom-area .area-header .area-controls[data-v-7cb397b8] {\n display: flex;\n gap: 4px;\n}\n.custom-layout .layout-canvas .custom-area .area-fields[data-v-7cb397b8] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n min-height: 60px;\n}\n.custom-layout .layout-canvas .custom-area .area-drop-zone[data-v-7cb397b8] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 60px;\n border: 2px dashed var(--n-border-color);\n border-radius: 6px;\n font-size: 14px;\n opacity: 0.6;\n transition: all 0.2s ease;\n background: var(--n-body-color);\n margin-top: 8px;\n}\n.custom-layout .layout-canvas .custom-area .area-drop-zone[data-v-7cb397b8]:hover {\n border-color: var(--n-primary-color);\n opacity: 1;\n}\n.custom-layout .layout-canvas .custom-area.area-horizontal .area-fields[data-v-7cb397b8] {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 12px;\n}\n.custom-layout .layout-canvas .custom-area.area-grid .area-fields[data-v-7cb397b8] {\n display: grid;\n grid-template-columns: repeat(2, 1fr);\n gap: 8px;\n}\n.custom-layout .layout-canvas .field-item[data-v-7cb397b8] {\n border: 1px solid var(--n-border-color);\n border-radius: 6px;\n background: var(--n-body-color);\n padding: 12px;\n min-height: 40px;\n cursor: move;\n transition: all 0.2s ease;\n}\n.custom-layout .layout-canvas .field-item[data-v-7cb397b8]:hover {\n border-color: var(--n-primary-color);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n.custom-layout .layout-canvas .field-item .field-preview[data-v-7cb397b8] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 8px;\n}\n.custom-layout .layout-canvas .field-item .field-preview .field-label[data-v-7cb397b8] {\n font-size: 13px;\n font-weight: 500;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.custom-layout .layout-canvas .field-item .field-preview .field-type[data-v-7cb397b8] {\n font-size: 11px;\n opacity: 0.6;\n background: var(--n-tag-color);\n padding: 2px 6px;\n border-radius: 4px;\n flex-shrink: 0;\n}\n.custom-layout .layout-canvas .field-pool[data-v-7cb397b8] {\n margin-top: 16px;\n}\n.custom-layout .layout-canvas .field-pool .pool-fields-grid[data-v-7cb397b8] {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n}\n.custom-layout .layout-canvas .field-pool .pool-field[data-v-7cb397b8] {\n border: 1px solid var(--n-border-color);\n border-radius: 6px;\n background: var(--n-card-color);\n padding: 12px;\n min-height: 40px;\n cursor: move;\n transition: all 0.2s ease;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n.custom-layout .layout-canvas .field-pool .pool-field[data-v-7cb397b8]:hover {\n border-color: var(--n-primary-color);\n transform: translateY(-1px);\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n}\n.custom-layout .layout-canvas .field-pool .pool-field .field-name[data-v-7cb397b8] {\n font-size: 13px;\n font-weight: 500;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.custom-layout .layout-canvas .field-pool .pool-field .field-type-tag[data-v-7cb397b8] {\n font-size: 11px;\n padding: 2px 8px;\n border-radius: 4px;\n background: var(--n-tag-color);\n flex-shrink: 0;\n}\n.custom-layout .layout-canvas .empty-layout[data-v-7cb397b8] {\n display: flex;\n align-items: center;\n justify-content: center;\n height: 120px;\n padding: 16px;\n}\n.custom-layout .layout-canvas .form-areas[data-v-7cb397b8] {\n display: flex;\n flex-wrap: wrap;\n gap: 16px;\n align-items: flex-start;\n}\n.custom-layout .layout-canvas .form-areas .form-area[data-v-7cb397b8] {\n flex: 1;\n min-width: 250px;\n}\n.custom-layout .layout-canvas .form-areas .form-area.area-vertical[data-v-7cb397b8] {\n width: 100%;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] {\n display: flex;\n flex-direction: column;\n gap: 16px;\n /* 统一表单项宽度 */\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item {\n width: 100%;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank {\n width: 100%;\n /* 统一输入控件宽度 */\n /* 特殊控件的额外处理 */\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-input,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-select,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-date-picker,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-input-number,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-textarea,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-radio-group,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-checkbox-group,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-cascader,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-tree-select,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-time-picker,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-color-picker {\n width: 100% !important;\n max-width: 100% !important;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-radio-group,\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items[data-v-7cb397b8] .n-form-item .n-form-item-blank .n-checkbox-group {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items.layout-horizontal[data-v-7cb397b8] {\n flex-direction: row;\n flex-wrap: wrap;\n gap: 12px;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items.layout-horizontal[data-v-7cb397b8] .n-form-item {\n flex: 1;\n min-width: 200px;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items.layout-grid[data-v-7cb397b8] {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 16px;\n}\n.custom-layout .layout-canvas .form-areas .form-area .area-form-items.layout-grid[data-v-7cb397b8] .n-form-item {\n width: 100%;\n}\n\n/* 拖拽状态 */\n.area-ghost[data-v-7cb397b8],\n.field-ghost[data-v-7cb397b8] {\n opacity: 0.5;\n background: var(--n-primary-color-suppl);\n border: 2px dashed var(--n-primary-color);\n transform: rotate(2deg);\n}\n\n/* 响应式 */\n@media (max-width: 1024px) {\n.custom-layout .toolbar-content[data-v-7cb397b8] {\n flex-direction: column;\n gap: 12px;\n}\n.custom-layout .layout-canvas .areas-container[data-v-7cb397b8] {\n flex-direction: column;\n}\n}\n@media (max-width: 768px) {\n.custom-layout .design-tools[data-v-7cb397b8] {\n flex-direction: column;\n gap: 12px;\n}\n.custom-layout .layout-canvas.design-mode[data-v-7cb397b8] {\n padding: 12px;\n}\n.custom-layout .custom-area[data-v-7cb397b8] {\n padding: 12px;\n min-height: 100px;\n}\n.custom-layout .layout-canvas .field-pool .pool-fields-grid[data-v-7cb397b8] {\n grid-template-columns: repeat(2, 1fr);\n}\n}"],"mappings":"AAAA;AACA;AACA;AACA;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AC/EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;ACnKA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACxKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
package/dist/C_Form2.js CHANGED
@@ -3,6 +3,7 @@ import { t as export_helper_default } from "./export-helper.js";
3
3
  import { t as C_Editor_default } from "./C_Editor2.js";
4
4
  import { NAlert, NBadge, NButton, NButtonGroup, NCard, NCascader, NCheckbox, NCheckboxGroup, NColorPicker, NDatePicker, NEmpty, NForm, NFormItem, NGrid, NGridItem, NInput, NInputNumber, NProgress, NRadio, NRadioGroup, NRate, NSelect, NSlider, NSpace, NStep, NSteps, NSwitch, NTabPane, NTabs, NTag, NTimePicker, NUpload } from "naive-ui";
5
5
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, getCurrentInstance, h, inject, mergeProps, nextTick, normalizeClass, normalizeStyle, onMounted, openBlock, reactive, readonly, ref, renderList, renderSlot, resolveDynamicComponent, toDisplayString, toRaw, unref, vShow, watch, watchEffect, withCtx, withDirectives, withKeys } from "vue";
6
+ import { VueDraggable } from "vue-draggable-plus";
6
7
  import { mergeRules } from "@robot-admin/form-validate";
7
8
 
8
9
  //#region src/components/C_Form/composables/useFormConfig.ts
@@ -1969,26 +1970,24 @@ const _hoisted_14 = { class: "area-header" };
1969
1970
  const _hoisted_15 = { class: "area-info" };
1970
1971
  const _hoisted_16 = ["onClick"];
1971
1972
  const _hoisted_17 = { class: "area-controls" };
1972
- const _hoisted_18 = { class: "area-fields" };
1973
- const _hoisted_19 = { class: "field-preview" };
1974
- const _hoisted_20 = { class: "field-label" };
1975
- const _hoisted_21 = { class: "field-type" };
1976
- const _hoisted_22 = {
1973
+ const _hoisted_18 = { class: "field-preview" };
1974
+ const _hoisted_19 = { class: "field-label" };
1975
+ const _hoisted_20 = { class: "field-type" };
1976
+ const _hoisted_21 = {
1977
1977
  key: 0,
1978
1978
  class: "area-drop-zone"
1979
1979
  };
1980
- const _hoisted_23 = { class: "pool-fields-grid" };
1981
- const _hoisted_24 = { class: "field-name" };
1982
- const _hoisted_25 = { class: "field-type-tag" };
1983
- const _hoisted_26 = {
1980
+ const _hoisted_22 = { class: "field-name" };
1981
+ const _hoisted_23 = { class: "field-type-tag" };
1982
+ const _hoisted_24 = {
1984
1983
  key: 0,
1985
1984
  class: "empty-layout"
1986
1985
  };
1987
- const _hoisted_27 = {
1986
+ const _hoisted_25 = {
1988
1987
  key: 1,
1989
1988
  class: "form-container"
1990
1989
  };
1991
- const _hoisted_28 = { class: "form-areas" };
1990
+ const _hoisted_26 = { class: "form-areas" };
1992
1991
  var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ defineComponent({
1993
1992
  __name: "index",
1994
1993
  props: {
@@ -2047,6 +2046,19 @@ var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ define
2047
2046
  const index = customAreas.value.findIndex((area) => area.id === areaId);
2048
2047
  if (index !== -1) customAreas.value.splice(index, 1);
2049
2048
  };
2049
+ /** 克隆字段(从字段池拖出时使用副本,保证字段池不丢数据) */
2050
+ const cloneField = (field) => ({
2051
+ ...field,
2052
+ id: `${field.prop}-${generateId()}`
2053
+ });
2054
+ /** 从指定区域移除字段 */
2055
+ const removeFieldFromArea = (areaId, fieldId) => {
2056
+ const area = customAreas.value.find((a) => a.id === areaId);
2057
+ if (area) {
2058
+ const idx = area.fields.findIndex((f) => f.id === fieldId);
2059
+ if (idx !== -1) area.fields.splice(idx, 1);
2060
+ }
2061
+ };
2050
2062
  const handleSaveLayout = () => {
2051
2063
  const config = JSON.stringify(customAreas.value, null, 2);
2052
2064
  const blob = new Blob([config], { type: "application/json" });
@@ -2097,54 +2109,54 @@ var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ define
2097
2109
  }, {
2098
2110
  default: withCtx(() => [createElementVNode("div", _hoisted_2, [
2099
2111
  createCommentVNode(" 模式切换 "),
2100
- createElementVNode("div", _hoisted_3, [_cache[11] || (_cache[11] = createElementVNode("span", { class: "section-label" }, "自定义模式:", -1)), createVNode(_component_NButtonGroup, null, {
2112
+ createElementVNode("div", _hoisted_3, [_cache[12] || (_cache[12] = createElementVNode("span", { class: "section-label" }, "自定义模式:", -1)), createVNode(_component_NButtonGroup, null, {
2101
2113
  default: withCtx(() => [createVNode(_component_NButton, {
2102
2114
  type: isDesignMode.value ? "primary" : "default",
2103
2115
  onClick: _cache[0] || (_cache[0] = ($event) => isDesignMode.value = true),
2104
2116
  size: "small"
2105
2117
  }, {
2106
- default: withCtx(() => _cache[9] || (_cache[9] = [createTextVNode(" 🎨 设计模式 ", -1)])),
2118
+ default: withCtx(() => _cache[10] || (_cache[10] = [createTextVNode(" 🎨 设计模式 ", -1)])),
2107
2119
  _: 1,
2108
- __: [9]
2120
+ __: [10]
2109
2121
  }, 8, ["type"]), createVNode(_component_NButton, {
2110
2122
  type: !isDesignMode.value ? "primary" : "default",
2111
2123
  onClick: _cache[1] || (_cache[1] = ($event) => isDesignMode.value = false),
2112
2124
  size: "small"
2113
2125
  }, {
2114
- default: withCtx(() => _cache[10] || (_cache[10] = [createTextVNode(" 📝 填写模式 ", -1)])),
2126
+ default: withCtx(() => _cache[11] || (_cache[11] = [createTextVNode(" 📝 填写模式 ", -1)])),
2115
2127
  _: 1,
2116
- __: [10]
2128
+ __: [11]
2117
2129
  }, 8, ["type"])]),
2118
2130
  _: 1
2119
2131
  })]),
2120
2132
  createCommentVNode(" 统计信息 "),
2121
- createElementVNode("div", _hoisted_4, [createElementVNode("div", _hoisted_5, [createElementVNode("div", _hoisted_6, toDisplayString(customAreas.value.length), 1), _cache[12] || (_cache[12] = createElementVNode("div", { class: "stat-label" }, "自定义区域", -1))]), createElementVNode("div", _hoisted_7, [createElementVNode("div", _hoisted_8, toDisplayString(totalFieldsCount.value), 1), _cache[13] || (_cache[13] = createElementVNode("div", { class: "stat-label" }, "字段总数", -1))])]),
2133
+ createElementVNode("div", _hoisted_4, [createElementVNode("div", _hoisted_5, [createElementVNode("div", _hoisted_6, toDisplayString(customAreas.value.length), 1), _cache[13] || (_cache[13] = createElementVNode("div", { class: "stat-label" }, "自定义区域", -1))]), createElementVNode("div", _hoisted_7, [createElementVNode("div", _hoisted_8, toDisplayString(totalFieldsCount.value), 1), _cache[14] || (_cache[14] = createElementVNode("div", { class: "stat-label" }, "字段总数", -1))])]),
2122
2134
  createCommentVNode(" 操作按钮 "),
2123
2135
  createElementVNode("div", _hoisted_9, [isDesignMode.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createVNode(_component_NButton, {
2124
2136
  secondary: "",
2125
2137
  onClick: handleSaveLayout,
2126
2138
  size: "small"
2127
2139
  }, {
2128
- default: withCtx(() => _cache[14] || (_cache[14] = [createTextVNode(" 💾 保存布局 ", -1)])),
2140
+ default: withCtx(() => _cache[15] || (_cache[15] = [createTextVNode(" 💾 保存布局 ", -1)])),
2129
2141
  _: 1,
2130
- __: [14]
2142
+ __: [15]
2131
2143
  }), createVNode(_component_NButton, {
2132
2144
  secondary: "",
2133
2145
  onClick: handleResetLayout,
2134
2146
  size: "small"
2135
2147
  }, {
2136
- default: withCtx(() => _cache[15] || (_cache[15] = [createTextVNode(" 🔄 重置布局 ", -1)])),
2148
+ default: withCtx(() => _cache[16] || (_cache[16] = [createTextVNode(" 🔄 重置布局 ", -1)])),
2137
2149
  _: 1,
2138
- __: [15]
2150
+ __: [16]
2139
2151
  })], 64)) : (openBlock(), createBlock(_component_NButton, {
2140
2152
  key: 1,
2141
2153
  secondary: "",
2142
2154
  onClick: handleExportData,
2143
2155
  size: "small"
2144
2156
  }, {
2145
- default: withCtx(() => _cache[16] || (_cache[16] = [createTextVNode(" 📊 导出数据 ", -1)])),
2157
+ default: withCtx(() => _cache[17] || (_cache[17] = [createTextVNode(" 📊 导出数据 ", -1)])),
2146
2158
  _: 1,
2147
- __: [16]
2159
+ __: [17]
2148
2160
  }))])
2149
2161
  ])]),
2150
2162
  _: 1
@@ -2156,37 +2168,37 @@ var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ define
2156
2168
  title: "🎨 设计工具"
2157
2169
  }, {
2158
2170
  default: withCtx(() => [createElementVNode("div", _hoisted_10, [createElementVNode("div", _hoisted_11, [
2159
- _cache[20] || (_cache[20] = createElementVNode("span", { class: "group-label" }, "添加区域:", -1)),
2171
+ _cache[21] || (_cache[21] = createElementVNode("span", { class: "group-label" }, "添加区域:", -1)),
2160
2172
  createVNode(_component_NButton, {
2161
2173
  onClick: _cache[2] || (_cache[2] = ($event) => addArea("horizontal")),
2162
2174
  size: "small"
2163
2175
  }, {
2164
- default: withCtx(() => _cache[17] || (_cache[17] = [createTextVNode(" ➡️ 水平区域 ", -1)])),
2176
+ default: withCtx(() => _cache[18] || (_cache[18] = [createTextVNode(" ➡️ 水平区域 ", -1)])),
2165
2177
  _: 1,
2166
- __: [17]
2178
+ __: [18]
2167
2179
  }),
2168
2180
  createVNode(_component_NButton, {
2169
2181
  onClick: _cache[3] || (_cache[3] = ($event) => addArea("vertical")),
2170
2182
  size: "small"
2171
2183
  }, {
2172
- default: withCtx(() => _cache[18] || (_cache[18] = [createTextVNode(" ⬇️ 垂直区域 ", -1)])),
2184
+ default: withCtx(() => _cache[19] || (_cache[19] = [createTextVNode(" ⬇️ 垂直区域 ", -1)])),
2173
2185
  _: 1,
2174
- __: [18]
2186
+ __: [19]
2175
2187
  }),
2176
2188
  createVNode(_component_NButton, {
2177
2189
  onClick: _cache[4] || (_cache[4] = ($event) => addArea("grid")),
2178
2190
  size: "small"
2179
2191
  }, {
2180
- default: withCtx(() => _cache[19] || (_cache[19] = [createTextVNode(" ⚏ 网格区域 ", -1)])),
2192
+ default: withCtx(() => _cache[20] || (_cache[20] = [createTextVNode(" ⚏ 网格区域 ", -1)])),
2181
2193
  _: 1,
2182
- __: [19]
2194
+ __: [20]
2183
2195
  })
2184
2196
  ])])]),
2185
2197
  _: 1
2186
2198
  })) : createCommentVNode("v-if", true),
2187
2199
  createCommentVNode(" 主画布区域 "),
2188
2200
  createElementVNode("div", { class: normalizeClass(["layout-canvas", { "design-mode": isDesignMode.value }]) }, [createCommentVNode(" 设计模式 "), isDesignMode.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
2189
- customAreas.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_12, _cache[21] || (_cache[21] = [createElementVNode("div", { class: "hint-content" }, [createElementVNode("h3", null, "🎨 开始自定义你的布局"), createElementVNode("p", null, "点击上方按钮添加区域")], -1)]))) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createCommentVNode(" 区域列表 "), createElementVNode("div", _hoisted_13, [(openBlock(true), createElementBlock(Fragment, null, renderList(customAreas.value, (area) => {
2201
+ customAreas.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_12, _cache[22] || (_cache[22] = [createElementVNode("div", { class: "hint-content" }, [createElementVNode("h3", null, "🎨 开始自定义你的布局"), createElementVNode("p", null, "点击上方按钮添加区域")], -1)]))) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createCommentVNode(" 区域列表 "), createElementVNode("div", _hoisted_13, [(openBlock(true), createElementBlock(Fragment, null, renderList(customAreas.value, (area) => {
2190
2202
  return openBlock(), createElementBlock("div", {
2191
2203
  key: area.id,
2192
2204
  class: normalizeClass(["custom-area", `area-${area.type}`])
@@ -2213,44 +2225,95 @@ var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ define
2213
2225
  type: "error",
2214
2226
  title: "删除区域"
2215
2227
  }, {
2216
- default: withCtx(() => _cache[22] || (_cache[22] = [createTextVNode(" 🗑️ ", -1)])),
2228
+ default: withCtx(() => _cache[23] || (_cache[23] = [createTextVNode(" 🗑️ ", -1)])),
2217
2229
  _: 2,
2218
- __: [22]
2230
+ __: [23]
2219
2231
  }, 1032, ["onClick"])])]),
2220
- createCommentVNode(" 字段容器 "),
2221
- createElementVNode("div", _hoisted_18, [(openBlock(true), createElementBlock(Fragment, null, renderList(area.fields, (field) => {
2222
- return openBlock(), createElementBlock("div", {
2223
- key: field.id,
2224
- class: "field-item"
2225
- }, [createElementVNode("div", _hoisted_19, [createElementVNode("span", _hoisted_20, toDisplayString(field.label || field.prop), 1), createElementVNode("span", _hoisted_21, toDisplayString(getFieldTypeName(field.type)), 1)])]);
2226
- }), 128))]),
2227
- area.fields.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_22, " 拖拽字段到这里 ")) : createCommentVNode("v-if", true)
2232
+ createCommentVNode(" 字段容器(可拖入) "),
2233
+ createVNode(unref(VueDraggable), {
2234
+ modelValue: area.fields,
2235
+ "onUpdate:modelValue": ($event) => area.fields = $event,
2236
+ class: "area-fields",
2237
+ group: {
2238
+ name: "form-fields",
2239
+ pull: true,
2240
+ put: true
2241
+ },
2242
+ animation: 200,
2243
+ "ghost-class": "field-ghost",
2244
+ "item-key": "id"
2245
+ }, {
2246
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(area.fields, (field) => {
2247
+ return openBlock(), createElementBlock("div", {
2248
+ key: field.id,
2249
+ class: "field-item"
2250
+ }, [createElementVNode("div", _hoisted_18, [
2251
+ _cache[25] || (_cache[25] = createElementVNode("span", { class: "drag-handle" }, "⠿", -1)),
2252
+ createElementVNode("span", _hoisted_19, toDisplayString(field.label || field.prop), 1),
2253
+ createElementVNode("span", _hoisted_20, toDisplayString(getFieldTypeName(field.type)), 1),
2254
+ createVNode(_component_NButton, {
2255
+ text: "",
2256
+ size: "tiny",
2257
+ type: "error",
2258
+ onClick: ($event) => removeFieldFromArea(area.id, field.id),
2259
+ title: "移出字段"
2260
+ }, {
2261
+ default: withCtx(() => _cache[24] || (_cache[24] = [createTextVNode(" ✕ ", -1)])),
2262
+ _: 2,
2263
+ __: [24]
2264
+ }, 1032, ["onClick"])
2265
+ ])]);
2266
+ }), 128))]),
2267
+ _: 2
2268
+ }, 1032, ["modelValue", "onUpdate:modelValue"]),
2269
+ area.fields.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_21, " 从下方字段池拖拽字段到这里 ")) : createCommentVNode("v-if", true)
2228
2270
  ], 2);
2229
2271
  }), 128))])], 2112)),
2230
- createCommentVNode(" 字段池 "),
2272
+ createCommentVNode(" 字段池(可拖出) "),
2231
2273
  createVNode(_component_NCard, {
2232
2274
  class: "field-pool",
2233
2275
  title: "📦 可用字段"
2234
2276
  }, {
2235
- default: withCtx(() => [createElementVNode("div", _hoisted_23, [(openBlock(true), createElementBlock(Fragment, null, renderList(availableFields.value, (field) => {
2236
- return openBlock(), createElementBlock("div", {
2237
- key: field.id,
2238
- class: "pool-field"
2239
- }, [createElementVNode("span", _hoisted_24, toDisplayString(field.label || field.prop), 1), createElementVNode("span", _hoisted_25, toDisplayString(getFieldTypeName(field.type)), 1)]);
2240
- }), 128))])]),
2277
+ default: withCtx(() => [createVNode(unref(VueDraggable), {
2278
+ modelValue: availableFields.value,
2279
+ "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => availableFields.value = $event),
2280
+ class: "pool-fields-grid",
2281
+ group: {
2282
+ name: "form-fields",
2283
+ pull: "clone",
2284
+ put: true
2285
+ },
2286
+ animation: 200,
2287
+ sort: false,
2288
+ "ghost-class": "field-ghost",
2289
+ "item-key": "id",
2290
+ clone: cloneField
2291
+ }, {
2292
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(availableFields.value, (field) => {
2293
+ return openBlock(), createElementBlock("div", {
2294
+ key: field.id,
2295
+ class: "pool-field"
2296
+ }, [
2297
+ _cache[26] || (_cache[26] = createElementVNode("span", { class: "drag-handle" }, "⠿", -1)),
2298
+ createElementVNode("span", _hoisted_22, toDisplayString(field.label || field.prop), 1),
2299
+ createElementVNode("span", _hoisted_23, toDisplayString(getFieldTypeName(field.type)), 1)
2300
+ ]);
2301
+ }), 128))]),
2302
+ _: 1
2303
+ }, 8, ["modelValue"])]),
2241
2304
  _: 1
2242
2305
  })
2243
- ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createCommentVNode(" 填写模式 "), customAreas.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_26, [createVNode(_component_NEmpty, { description: "尚未设计布局" }, {
2306
+ ], 64)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createCommentVNode(" 填写模式 "), customAreas.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_24, [createVNode(_component_NEmpty, { description: "尚未设计布局" }, {
2244
2307
  extra: withCtx(() => [createVNode(_component_NButton, {
2245
- onClick: _cache[7] || (_cache[7] = ($event) => isDesignMode.value = true),
2308
+ onClick: _cache[8] || (_cache[8] = ($event) => isDesignMode.value = true),
2246
2309
  type: "primary"
2247
2310
  }, {
2248
- default: withCtx(() => _cache[23] || (_cache[23] = [createTextVNode(" 🎨 开始设计 ", -1)])),
2311
+ default: withCtx(() => _cache[27] || (_cache[27] = [createTextVNode(" 🎨 开始设计 ", -1)])),
2249
2312
  _: 1,
2250
- __: [23]
2313
+ __: [27]
2251
2314
  })]),
2252
2315
  _: 1
2253
- })])) : (openBlock(), createElementBlock("div", _hoisted_27, [createElementVNode("div", _hoisted_28, [(openBlock(true), createElementBlock(Fragment, null, renderList(customAreas.value, (area) => {
2316
+ })])) : (openBlock(), createElementBlock("div", _hoisted_25, [createElementVNode("div", _hoisted_26, [(openBlock(true), createElementBlock(Fragment, null, renderList(customAreas.value, (area) => {
2254
2317
  return openBlock(), createElementBlock("div", {
2255
2318
  key: area.id,
2256
2319
  class: normalizeClass(["form-area", `area-${area.type}`])
@@ -2268,13 +2331,13 @@ var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ define
2268
2331
  size: "small"
2269
2332
  }, {
2270
2333
  extra: withCtx(() => [createVNode(_component_NButton, {
2271
- onClick: _cache[8] || (_cache[8] = ($event) => isDesignMode.value = true),
2334
+ onClick: _cache[9] || (_cache[9] = ($event) => isDesignMode.value = true),
2272
2335
  size: "small",
2273
2336
  secondary: ""
2274
2337
  }, {
2275
- default: withCtx(() => _cache[24] || (_cache[24] = [createTextVNode(" 🎨 添加字段 ", -1)])),
2338
+ default: withCtx(() => _cache[28] || (_cache[28] = [createTextVNode(" 🎨 添加字段 ", -1)])),
2276
2339
  _: 1,
2277
- __: [24]
2340
+ __: [28]
2278
2341
  })]),
2279
2342
  _: 1
2280
2343
  }))], 2);
@@ -2286,7 +2349,7 @@ var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ define
2286
2349
 
2287
2350
  //#endregion
2288
2351
  //#region src/components/C_Form/layouts/Custom/index.vue
2289
- var Custom_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$1, [["__scopeId", "data-v-ff9bdb76"]]);
2352
+ var Custom_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$1, [["__scopeId", "data-v-7cb397b8"]]);
2290
2353
 
2291
2354
  //#endregion
2292
2355
  //#region src/components/C_Form/index.vue?vue&type=script&setup=true&lang.ts