@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.
- package/dist/{C_Form-Cr9oX037.css.map → C_Form-BoMQ3VH9.css.map} +1 -1
- package/dist/C_Form2.js +120 -57
- package/dist/C_Form2.js.map +1 -1
- package/dist/constants.d.ts +3 -3
- package/dist/constants2.d.ts +4 -4
- package/dist/constants3.d.ts +2 -2
- package/dist/constants4.d.ts +3 -3
- package/dist/constants5.d.ts +2 -2
- package/dist/data.d.ts +1 -1
- package/dist/index10.vue.d.ts +5 -5
- package/dist/index11.vue.d.ts +2 -2
- package/dist/index12.vue.d.ts +4 -4
- package/dist/index13.vue.d.ts +2 -2
- package/dist/index14.vue.d.ts +1 -1
- package/dist/index16.vue.d.ts +2 -2
- package/dist/index16.vue.d.ts.map +1 -1
- package/dist/index2.vue.d.ts +6 -6
- package/dist/index3.vue.d.ts +2 -2
- package/dist/index4.vue.d.ts +2 -2
- package/dist/index5.vue.d.ts +2 -2
- package/dist/index6.vue.d.ts +3 -3
- package/dist/index8.vue.d.ts +2 -2
- package/dist/style.css +76 -76
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.ts +3 -3
- package/dist/useCollapsePanel.d.ts.map +1 -1
- package/dist/useCropperCore.d.ts +7 -7
- package/dist/useDraggableLayout.d.ts +3 -3
- package/dist/useDynamicFormState.d.ts +8 -8
- package/dist/useDynamicFormState.d.ts.map +1 -1
- package/dist/useEdgeInteraction.d.ts +2 -2
- package/dist/useFullscreen.d.ts +2 -2
- package/dist/useInfiniteScroll.d.ts +1 -1
- package/dist/useModalEdit.d.ts +2 -2
- package/dist/useQRCode.d.ts +4 -4
- package/dist/useQRCode.d.ts.map +1 -1
- package/dist/useSearchState.d.ts +2 -2
- package/dist/useSignatureHistory.d.ts +3 -3
- package/dist/useSplitResize.d.ts +6 -6
- package/dist/useTimeSelection.d.ts +2 -2
- package/dist/useTreeOperations.d.ts +3 -3
- package/dist/useWorkflowValidation.d.ts +7 -7
- 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: "
|
|
1973
|
-
const _hoisted_19 = { class: "field-
|
|
1974
|
-
const _hoisted_20 = { class: "field-
|
|
1975
|
-
const _hoisted_21 = {
|
|
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
|
|
1981
|
-
const
|
|
1982
|
-
const
|
|
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
|
|
1986
|
+
const _hoisted_25 = {
|
|
1988
1987
|
key: 1,
|
|
1989
1988
|
class: "form-container"
|
|
1990
1989
|
};
|
|
1991
|
-
const
|
|
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[
|
|
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[
|
|
2118
|
+
default: withCtx(() => _cache[10] || (_cache[10] = [createTextVNode(" 🎨 设计模式 ", -1)])),
|
|
2107
2119
|
_: 1,
|
|
2108
|
-
__: [
|
|
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[
|
|
2126
|
+
default: withCtx(() => _cache[11] || (_cache[11] = [createTextVNode(" 📝 填写模式 ", -1)])),
|
|
2115
2127
|
_: 1,
|
|
2116
|
-
__: [
|
|
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[
|
|
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[
|
|
2140
|
+
default: withCtx(() => _cache[15] || (_cache[15] = [createTextVNode(" 💾 保存布局 ", -1)])),
|
|
2129
2141
|
_: 1,
|
|
2130
|
-
__: [
|
|
2142
|
+
__: [15]
|
|
2131
2143
|
}), createVNode(_component_NButton, {
|
|
2132
2144
|
secondary: "",
|
|
2133
2145
|
onClick: handleResetLayout,
|
|
2134
2146
|
size: "small"
|
|
2135
2147
|
}, {
|
|
2136
|
-
default: withCtx(() => _cache[
|
|
2148
|
+
default: withCtx(() => _cache[16] || (_cache[16] = [createTextVNode(" 🔄 重置布局 ", -1)])),
|
|
2137
2149
|
_: 1,
|
|
2138
|
-
__: [
|
|
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[
|
|
2157
|
+
default: withCtx(() => _cache[17] || (_cache[17] = [createTextVNode(" 📊 导出数据 ", -1)])),
|
|
2146
2158
|
_: 1,
|
|
2147
|
-
__: [
|
|
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[
|
|
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[
|
|
2176
|
+
default: withCtx(() => _cache[18] || (_cache[18] = [createTextVNode(" ➡️ 水平区域 ", -1)])),
|
|
2165
2177
|
_: 1,
|
|
2166
|
-
__: [
|
|
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[
|
|
2184
|
+
default: withCtx(() => _cache[19] || (_cache[19] = [createTextVNode(" ⬇️ 垂直区域 ", -1)])),
|
|
2173
2185
|
_: 1,
|
|
2174
|
-
__: [
|
|
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[
|
|
2192
|
+
default: withCtx(() => _cache[20] || (_cache[20] = [createTextVNode(" ⚏ 网格区域 ", -1)])),
|
|
2181
2193
|
_: 1,
|
|
2182
|
-
__: [
|
|
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[
|
|
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[
|
|
2228
|
+
default: withCtx(() => _cache[23] || (_cache[23] = [createTextVNode(" 🗑️ ", -1)])),
|
|
2217
2229
|
_: 2,
|
|
2218
|
-
__: [
|
|
2230
|
+
__: [23]
|
|
2219
2231
|
}, 1032, ["onClick"])])]),
|
|
2220
|
-
createCommentVNode("
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2224
|
-
|
|
2225
|
-
|
|
2226
|
-
|
|
2227
|
-
|
|
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(() => [
|
|
2236
|
-
|
|
2237
|
-
|
|
2238
|
-
|
|
2239
|
-
|
|
2240
|
-
|
|
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",
|
|
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[
|
|
2308
|
+
onClick: _cache[8] || (_cache[8] = ($event) => isDesignMode.value = true),
|
|
2246
2309
|
type: "primary"
|
|
2247
2310
|
}, {
|
|
2248
|
-
default: withCtx(() => _cache[
|
|
2311
|
+
default: withCtx(() => _cache[27] || (_cache[27] = [createTextVNode(" 🎨 开始设计 ", -1)])),
|
|
2249
2312
|
_: 1,
|
|
2250
|
-
__: [
|
|
2313
|
+
__: [27]
|
|
2251
2314
|
})]),
|
|
2252
2315
|
_: 1
|
|
2253
|
-
})])) : (openBlock(), createElementBlock("div",
|
|
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[
|
|
2334
|
+
onClick: _cache[9] || (_cache[9] = ($event) => isDesignMode.value = true),
|
|
2272
2335
|
size: "small",
|
|
2273
2336
|
secondary: ""
|
|
2274
2337
|
}, {
|
|
2275
|
-
default: withCtx(() => _cache[
|
|
2338
|
+
default: withCtx(() => _cache[28] || (_cache[28] = [createTextVNode(" 🎨 添加字段 ", -1)])),
|
|
2276
2339
|
_: 1,
|
|
2277
|
-
__: [
|
|
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-
|
|
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
|