@robot-admin/naive-ui-components 0.3.2 → 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_ActionBar-nnfbZCea.css.map +1 -0
- package/dist/C_ActionBar2.js +2 -2
- package/dist/C_ActionBar2.js.map +1 -1
- package/dist/C_AntV-DGjscTWa.css.map +1 -0
- package/dist/C_AntV2.js +6 -6
- package/dist/C_AntV2.js.map +1 -1
- package/dist/C_Barcode-DjTmDkbQ.css.map +1 -0
- package/dist/C_Barcode2.js +1 -1
- package/dist/C_Barcode2.js.map +1 -1
- package/dist/C_Captcha-Ccq3DMrR.css.map +1 -0
- package/dist/C_Captcha2.js +1 -1
- package/dist/C_Captcha2.js.map +1 -1
- package/dist/C_Cascade-IUUHIh7r.css.map +1 -0
- package/dist/C_Cascade2.js +2 -2
- package/dist/C_Cascade2.js.map +1 -1
- package/dist/C_City-Cv5BESaN.css.map +1 -0
- package/dist/C_City2.js +2 -2
- package/dist/C_City2.js.map +1 -1
- package/dist/C_Code-DPZlNSxL.css.map +1 -0
- package/dist/C_Code2.js +8 -7
- package/dist/C_Code2.js.map +1 -1
- package/dist/C_CollapsePanel-Fap-lv_5.css.map +1 -0
- package/dist/C_CollapsePanel2.js +1 -1
- package/dist/C_CollapsePanel2.js.map +1 -1
- package/dist/C_Cron-C0-8b5af.css.map +1 -0
- package/dist/C_Cron2.js +15 -14
- package/dist/C_Cron2.js.map +1 -1
- package/dist/C_Date2.js +1 -1
- package/dist/C_Date2.js.map +1 -1
- package/dist/C_Draggable-Bq6o0qXn.css.map +1 -0
- package/dist/C_Draggable2.js +1 -1
- package/dist/C_Draggable2.js.map +1 -1
- package/dist/C_Editor-OlxIF9-5.css.map +1 -0
- package/dist/C_Editor2.js +1 -1
- package/dist/C_Editor2.js.map +1 -1
- package/dist/C_FilePreview-B4XgTv-h.css.map +1 -0
- package/dist/C_FilePreview.cjs +1 -0
- package/dist/C_FilePreview.js +1 -0
- package/dist/C_FilePreview2.js +10 -9
- package/dist/C_FilePreview2.js.map +1 -1
- package/dist/C_Form-BoMQ3VH9.css.map +1 -0
- package/dist/C_Form2.js +167 -104
- package/dist/C_Form2.js.map +1 -1
- package/dist/C_FormSearch-DlIEoh7X.css.map +1 -0
- package/dist/C_FormSearch2.js +2 -2
- package/dist/C_FormSearch2.js.map +1 -1
- package/dist/C_FormulaEditor-Cm0CokN5.css.map +1 -0
- package/dist/C_FormulaEditor2.js +6 -6
- package/dist/C_FormulaEditor2.js.map +1 -1
- package/dist/C_FullCalendar-BULCIlVK.css.map +1 -0
- package/dist/C_FullCalendar2.js +2 -2
- package/dist/C_FullCalendar2.js.map +1 -1
- package/dist/C_Guide2.js +1 -1
- package/dist/C_Guide2.js.map +1 -1
- package/dist/C_Icon2.js.map +1 -1
- package/dist/C_ImageCropper-DrmUlaLi.css.map +1 -0
- package/dist/C_ImageCropper2.js +4 -4
- package/dist/C_ImageCropper2.js.map +1 -1
- package/dist/C_Language2.js +1 -1
- package/dist/C_Language2.js.map +1 -1
- package/dist/C_Map-WUMXSAfy.css.map +1 -0
- package/dist/C_Map2.js +2 -2
- package/dist/C_Map2.js.map +1 -1
- package/dist/C_Markdown-Dmv8yaM4.css.map +1 -0
- package/dist/C_Markdown2.js +4 -4
- package/dist/C_Markdown2.js.map +1 -1
- package/dist/C_NotificationCenter-DbgBiyqB.css.map +1 -0
- package/dist/C_NotificationCenter2.js +21 -20
- package/dist/C_NotificationCenter2.js.map +1 -1
- package/dist/C_Progress2.js +1 -1
- package/dist/C_Progress2.js.map +1 -1
- package/dist/C_QRCode-G7fiAkm4.css.map +1 -0
- package/dist/C_QRCode2.js +1 -1
- package/dist/C_QRCode2.js.map +1 -1
- package/dist/C_Signature-es-ZNPzr.css.map +1 -0
- package/dist/C_Signature2.js +2 -2
- package/dist/C_Signature2.js.map +1 -1
- package/dist/C_SplitPane-Br2eK8IG.css.map +1 -0
- package/dist/C_SplitPane2.js +1 -1
- package/dist/C_SplitPane2.js.map +1 -1
- package/dist/C_Steps-P9Qj9iDd.css.map +1 -0
- package/dist/C_Steps2.js +1 -1
- package/dist/C_Steps2.js.map +1 -1
- package/dist/C_Table-DAwAxr72.css.map +1 -0
- package/dist/C_Table2.js +3 -3
- package/dist/C_Table2.js.map +1 -1
- package/dist/C_Theme2.js +1 -1
- package/dist/C_Theme2.js.map +1 -1
- package/dist/C_Time-Bd_e1YDN.css.map +1 -0
- package/dist/C_Time2.js +2 -2
- package/dist/C_Time2.js.map +1 -1
- package/dist/C_Tree-DnGc_MPb.css.map +1 -0
- package/dist/C_Tree2.js +2 -2
- package/dist/C_Tree2.js.map +1 -1
- package/dist/C_Upload-i8LB_29U.css.map +1 -0
- package/dist/C_Upload2.js +5 -5
- package/dist/C_Upload2.js.map +1 -1
- package/dist/C_VideoPlayer-rm0MODUv.css.map +1 -0
- package/dist/C_VideoPlayer2.js +21 -20
- package/dist/C_VideoPlayer2.js.map +1 -1
- package/dist/C_VtableGantt-BpY-Rng3.css.map +1 -0
- package/dist/C_VtableGantt2.js +2 -2
- package/dist/C_VtableGantt2.js.map +1 -1
- package/dist/C_WaterFall-HWB-gPON.css.map +1 -0
- package/dist/C_WaterFall2.js +2 -2
- package/dist/C_WaterFall2.js.map +1 -1
- package/dist/C_WorkFlow-CSO86Cuc.css.map +1 -0
- package/dist/C_WorkFlow2.js +6 -6
- package/dist/C_WorkFlow2.js.map +1 -1
- package/dist/constants.d.ts +3 -3
- package/dist/constants2.d.ts +4 -4
- package/dist/constants4.d.ts +4 -4
- package/dist/index.vue.d.ts +1 -1
- package/dist/index10.vue.d.ts +2 -2
- package/dist/index11.vue.d.ts +2 -2
- package/dist/index12.vue.d.ts +5 -5
- package/dist/index12.vue.d.ts.map +1 -1
- package/dist/index13.vue.d.ts +2 -2
- package/dist/index14.vue.d.ts +1 -1
- package/dist/index16.vue.d.ts +3 -3
- package/dist/index16.vue.d.ts.map +1 -1
- package/dist/index2.vue.d.ts +3 -3
- 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/index8.vue.d.ts +2 -2
- package/dist/style.css +1555 -1555
- package/dist/useCalendarEvents.d.ts +1 -1
- package/dist/useCollapsePanel.d.ts +3 -3
- package/dist/useCollapsePanel.d.ts.map +1 -1
- package/dist/useDraggableLayout.d.ts +9 -9
- package/dist/useDynamicFormState.d.ts +9 -9
- package/dist/useDynamicFormState.d.ts.map +1 -1
- package/dist/useFullscreen.d.ts +2 -2
- package/dist/useInfiniteScroll.d.ts +2 -2
- package/dist/useModalEdit.d.ts +4 -4
- package/dist/useModalEdit.d.ts.map +1 -1
- package/dist/useQRCode.d.ts +3 -3
- package/dist/useQRCode.d.ts.map +1 -1
- package/dist/useSplitResize.d.ts +5 -5
- package/dist/useSplitResize.d.ts.map +1 -1
- package/dist/useTimeSelection.d.ts +2 -2
- package/dist/useTreeOperations.d.ts +1 -1
- package/dist/useWorkflowValidation.d.ts +6 -6
- package/package.json +2 -1
- package/dist/C_ActionBar-DWN-woTc.css.map +0 -1
- package/dist/C_AntV-AFKyK6hH.css.map +0 -1
- package/dist/C_Barcode-P_EFj8dC.css.map +0 -1
- package/dist/C_Captcha-C-ef41xw.css.map +0 -1
- package/dist/C_Cascade-D9kNsjsV.css.map +0 -1
- package/dist/C_City-BCQ4ipiK.css.map +0 -1
- package/dist/C_Code-C9kvvEmO.css.map +0 -1
- package/dist/C_CollapsePanel-BUJHuYcU.css.map +0 -1
- package/dist/C_Cron-yx2Ob4Jl.css.map +0 -1
- package/dist/C_Draggable-C483syRC.css.map +0 -1
- package/dist/C_Editor-Bp0SyIEw.css.map +0 -1
- package/dist/C_FilePreview-CPqvhoCy.css.map +0 -1
- package/dist/C_Form-Jx7PY3sT.css.map +0 -1
- package/dist/C_FormSearch-DvRgxlRn.css.map +0 -1
- package/dist/C_FormulaEditor-DtGkt4T_.css.map +0 -1
- package/dist/C_FullCalendar-BF7H0YIx.css.map +0 -1
- package/dist/C_ImageCropper-BVJfUufl.css.map +0 -1
- package/dist/C_Map-DpzeuWdX.css.map +0 -1
- package/dist/C_Markdown-BEjxknqd.css.map +0 -1
- package/dist/C_NotificationCenter-0l3TY2Gn.css.map +0 -1
- package/dist/C_QRCode-DbdiAIPg.css.map +0 -1
- package/dist/C_Signature-zhHCbra9.css.map +0 -1
- package/dist/C_SplitPane-C6sBsfKY.css.map +0 -1
- package/dist/C_Steps-CODHN5Hs.css.map +0 -1
- package/dist/C_Table-DSNsntmT.css.map +0 -1
- package/dist/C_Time-BvZLYraL.css.map +0 -1
- package/dist/C_Tree-0GDv--jX.css.map +0 -1
- package/dist/C_Upload-BXd3YYLx.css.map +0 -1
- package/dist/C_VideoPlayer-DYG3RL0Q.css.map +0 -1
- package/dist/C_VtableGantt-fhItIiHE.css.map +0 -1
- package/dist/C_WaterFall-8sQDFXKg.css.map +0 -1
- package/dist/C_WorkFlow-J-dyIuh9.css.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
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
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { t as C_Icon_default } from "./C_Icon2.js";
|
|
2
2
|
import { t as export_helper_default } from "./export-helper.js";
|
|
3
3
|
import { t as C_Editor_default } from "./C_Editor2.js";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
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
|
+
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
|
|
@@ -369,7 +370,7 @@ var index_vue_vue_type_script_setup_true_lang_default$8 = /* @__PURE__ */ define
|
|
|
369
370
|
|
|
370
371
|
//#endregion
|
|
371
372
|
//#region src/components/C_Form/layouts/Default/index.vue
|
|
372
|
-
var Default_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$8, [["__scopeId", "data-v-
|
|
373
|
+
var Default_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$8, [["__scopeId", "data-v-a0e973bb"]]);
|
|
373
374
|
|
|
374
375
|
//#endregion
|
|
375
376
|
//#region src/components/C_Form/layouts/Inline/index.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -478,7 +479,7 @@ var index_vue_vue_type_script_setup_true_lang_default$7 = /* @__PURE__ */ define
|
|
|
478
479
|
|
|
479
480
|
//#endregion
|
|
480
481
|
//#region src/components/C_Form/layouts/Inline/index.vue
|
|
481
|
-
var Inline_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$7, [["__scopeId", "data-v-
|
|
482
|
+
var Inline_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$7, [["__scopeId", "data-v-ca3767dc"]]);
|
|
482
483
|
|
|
483
484
|
//#endregion
|
|
484
485
|
//#region src/components/C_Form/layouts/Grid/index.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -613,10 +614,10 @@ var index_vue_vue_type_script_setup_true_lang_default$6 = /* @__PURE__ */ define
|
|
|
613
614
|
})
|
|
614
615
|
});
|
|
615
616
|
return (_ctx, _cache) => {
|
|
616
|
-
const _component_NCard =
|
|
617
|
-
const _component_NGridItem =
|
|
618
|
-
const _component_NGrid =
|
|
619
|
-
const _component_NAlert =
|
|
617
|
+
const _component_NCard = NCard;
|
|
618
|
+
const _component_NGridItem = NGridItem;
|
|
619
|
+
const _component_NGrid = NGrid;
|
|
620
|
+
const _component_NAlert = NAlert;
|
|
620
621
|
return openBlock(), createElementBlock("div", _hoisted_1$5, [
|
|
621
622
|
createCommentVNode(" 配置面板 "),
|
|
622
623
|
showConfigPanel.value ? (openBlock(), createBlock(_component_NCard, {
|
|
@@ -672,7 +673,7 @@ var index_vue_vue_type_script_setup_true_lang_default$6 = /* @__PURE__ */ define
|
|
|
672
673
|
|
|
673
674
|
//#endregion
|
|
674
675
|
//#region src/components/C_Form/layouts/Grid/index.vue
|
|
675
|
-
var Grid_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$6, [["__scopeId", "data-v-
|
|
676
|
+
var Grid_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$6, [["__scopeId", "data-v-feb1a2b2"]]);
|
|
676
677
|
|
|
677
678
|
//#endregion
|
|
678
679
|
//#region src/components/C_Form/layouts/Card/index.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -810,14 +811,14 @@ var index_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ define
|
|
|
810
811
|
});
|
|
811
812
|
});
|
|
812
813
|
return (_ctx, _cache) => {
|
|
813
|
-
const _component_NSlider =
|
|
814
|
-
const _component_NSwitch =
|
|
815
|
-
const _component_NRadio =
|
|
816
|
-
const _component_NRadioGroup =
|
|
817
|
-
const _component_NCard =
|
|
818
|
-
const _component_NBadge =
|
|
819
|
-
const _component_NButton =
|
|
820
|
-
const _component_NProgress =
|
|
814
|
+
const _component_NSlider = NSlider;
|
|
815
|
+
const _component_NSwitch = NSwitch;
|
|
816
|
+
const _component_NRadio = NRadio;
|
|
817
|
+
const _component_NRadioGroup = NRadioGroup;
|
|
818
|
+
const _component_NCard = NCard;
|
|
819
|
+
const _component_NBadge = NBadge;
|
|
820
|
+
const _component_NButton = NButton;
|
|
821
|
+
const _component_NProgress = NProgress;
|
|
821
822
|
return openBlock(), createElementBlock("div", _hoisted_1$4, [
|
|
822
823
|
createCommentVNode(" 布局配置面板 "),
|
|
823
824
|
hasGroups.value && showLayoutConfig.value ? (openBlock(), createBlock(_component_NCard, {
|
|
@@ -974,7 +975,7 @@ var index_vue_vue_type_script_setup_true_lang_default$5 = /* @__PURE__ */ define
|
|
|
974
975
|
|
|
975
976
|
//#endregion
|
|
976
977
|
//#region src/components/C_Form/layouts/Card/index.vue
|
|
977
|
-
var Card_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$5, [["__scopeId", "data-v-
|
|
978
|
+
var Card_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$5, [["__scopeId", "data-v-c9b312a4"]]);
|
|
978
979
|
|
|
979
980
|
//#endregion
|
|
980
981
|
//#region src/components/C_Form/layouts/Tabs/index.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -1127,12 +1128,12 @@ var index_vue_vue_type_script_setup_true_lang_default$4 = /* @__PURE__ */ define
|
|
|
1127
1128
|
tabsWithItems: readonly(tabsWithItems)
|
|
1128
1129
|
});
|
|
1129
1130
|
return (_ctx, _cache) => {
|
|
1130
|
-
const _component_NBadge =
|
|
1131
|
-
const _component_NSpace =
|
|
1132
|
-
const _component_NEmpty =
|
|
1133
|
-
const _component_NTabPane =
|
|
1134
|
-
const _component_NTabs =
|
|
1135
|
-
const _component_NButton =
|
|
1131
|
+
const _component_NBadge = NBadge;
|
|
1132
|
+
const _component_NSpace = NSpace;
|
|
1133
|
+
const _component_NEmpty = NEmpty;
|
|
1134
|
+
const _component_NTabPane = NTabPane;
|
|
1135
|
+
const _component_NTabs = NTabs;
|
|
1136
|
+
const _component_NButton = NButton;
|
|
1136
1137
|
return openBlock(), createElementBlock("div", _hoisted_1$3, [createCommentVNode(" 无标签配置时的单一面板模式 "), !hasTabs.value ? (openBlock(), createElementBlock("div", _hoisted_2$3, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.formItems, (item, index) => {
|
|
1137
1138
|
return openBlock(), createBlock(resolveDynamicComponent(item), { key: getItemKey(item, index) });
|
|
1138
1139
|
}), 128))])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createCommentVNode(" 有标签配置时的分标签模式 "), createElementVNode("div", _hoisted_3$3, [
|
|
@@ -1244,7 +1245,7 @@ var index_vue_vue_type_script_setup_true_lang_default$4 = /* @__PURE__ */ define
|
|
|
1244
1245
|
|
|
1245
1246
|
//#endregion
|
|
1246
1247
|
//#region src/components/C_Form/layouts/Tabs/index.vue
|
|
1247
|
-
var Tabs_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$4, [["__scopeId", "data-v-
|
|
1248
|
+
var Tabs_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$4, [["__scopeId", "data-v-68d1ce03"]]);
|
|
1248
1249
|
|
|
1249
1250
|
//#endregion
|
|
1250
1251
|
//#region src/components/C_Form/layouts/Steps/index.vue?vue&type=script&setup=true&lang.ts
|
|
@@ -1391,11 +1392,11 @@ var index_vue_vue_type_script_setup_true_lang_default$3 = /* @__PURE__ */ define
|
|
|
1391
1392
|
totalSteps: computed(() => stepsWithItems.value.length)
|
|
1392
1393
|
});
|
|
1393
1394
|
return (_ctx, _cache) => {
|
|
1394
|
-
const _component_NStep =
|
|
1395
|
-
const _component_NSteps =
|
|
1396
|
-
const _component_NCard =
|
|
1397
|
-
const _component_NButton =
|
|
1398
|
-
const _component_NSpace =
|
|
1395
|
+
const _component_NStep = NStep;
|
|
1396
|
+
const _component_NSteps = NSteps;
|
|
1397
|
+
const _component_NCard = NCard;
|
|
1398
|
+
const _component_NButton = NButton;
|
|
1399
|
+
const _component_NSpace = NSpace;
|
|
1399
1400
|
return openBlock(), createElementBlock("div", _hoisted_1$2, [createCommentVNode(" 无步骤配置时的单一面板模式 "), !hasSteps.value ? (openBlock(), createElementBlock("div", _hoisted_2$2, [(openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.formItems, (item, index) => {
|
|
1400
1401
|
return openBlock(), createBlock(resolveDynamicComponent(item), { key: getItemKey(item, index) });
|
|
1401
1402
|
}), 128))])) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createCommentVNode(" 有步骤配置时的分步骤模式 "), createElementVNode("div", _hoisted_3$2, [
|
|
@@ -1497,7 +1498,7 @@ var index_vue_vue_type_script_setup_true_lang_default$3 = /* @__PURE__ */ define
|
|
|
1497
1498
|
|
|
1498
1499
|
//#endregion
|
|
1499
1500
|
//#region src/components/C_Form/layouts/Steps/index.vue
|
|
1500
|
-
var Steps_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$3, [["__scopeId", "data-v-
|
|
1501
|
+
var Steps_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$3, [["__scopeId", "data-v-7249a960"]]);
|
|
1501
1502
|
|
|
1502
1503
|
//#endregion
|
|
1503
1504
|
//#region src/components/C_Form/composables/useDynamicFormState.ts
|
|
@@ -1799,15 +1800,15 @@ var index_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ define
|
|
|
1799
1800
|
});
|
|
1800
1801
|
});
|
|
1801
1802
|
return (_ctx, _cache) => {
|
|
1802
|
-
const _component_NBadge =
|
|
1803
|
-
const _component_NButton =
|
|
1804
|
-
const _component_NSpace =
|
|
1805
|
-
const _component_NInputNumber =
|
|
1806
|
-
const _component_NTag =
|
|
1807
|
-
const _component_NCard =
|
|
1808
|
-
const _component_NAlert =
|
|
1809
|
-
const _component_NGridItem =
|
|
1810
|
-
const _component_NGrid =
|
|
1803
|
+
const _component_NBadge = NBadge;
|
|
1804
|
+
const _component_NButton = NButton;
|
|
1805
|
+
const _component_NSpace = NSpace;
|
|
1806
|
+
const _component_NInputNumber = NInputNumber;
|
|
1807
|
+
const _component_NTag = NTag;
|
|
1808
|
+
const _component_NCard = NCard;
|
|
1809
|
+
const _component_NAlert = NAlert;
|
|
1810
|
+
const _component_NGridItem = NGridItem;
|
|
1811
|
+
const _component_NGrid = NGrid;
|
|
1811
1812
|
return openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
1812
1813
|
createCommentVNode(" 动态控制面板 "),
|
|
1813
1814
|
showControls.value && isDynamicStateAvailable.value ? (openBlock(), createElementBlock("div", _hoisted_2$1, [createVNode(_component_NCard, {
|
|
@@ -1945,7 +1946,7 @@ var index_vue_vue_type_script_setup_true_lang_default$2 = /* @__PURE__ */ define
|
|
|
1945
1946
|
|
|
1946
1947
|
//#endregion
|
|
1947
1948
|
//#region src/components/C_Form/layouts/Dynamic/index.vue
|
|
1948
|
-
var Dynamic_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$2, [["__scopeId", "data-v-
|
|
1949
|
+
var Dynamic_default = /* @__PURE__ */ export_helper_default(index_vue_vue_type_script_setup_true_lang_default$2, [["__scopeId", "data-v-12a3673e"]]);
|
|
1949
1950
|
|
|
1950
1951
|
//#endregion
|
|
1951
1952
|
//#region src/components/C_Form/layouts/Custom/index.vue?vue&type=script&setup=true&lang.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" });
|
|
@@ -2083,12 +2095,12 @@ var index_vue_vue_type_script_setup_true_lang_default$1 = /* @__PURE__ */ define
|
|
|
2083
2095
|
}))));
|
|
2084
2096
|
}, { deep: true });
|
|
2085
2097
|
return (_ctx, _cache) => {
|
|
2086
|
-
const _component_NButton =
|
|
2087
|
-
const _component_NButtonGroup =
|
|
2088
|
-
const _component_NCard =
|
|
2089
|
-
const _component_NInput =
|
|
2090
|
-
const _component_NTag =
|
|
2091
|
-
const _component_NEmpty =
|
|
2098
|
+
const _component_NButton = NButton;
|
|
2099
|
+
const _component_NButtonGroup = NButtonGroup;
|
|
2100
|
+
const _component_NCard = NCard;
|
|
2101
|
+
const _component_NInput = NInput;
|
|
2102
|
+
const _component_NTag = NTag;
|
|
2103
|
+
const _component_NEmpty = NEmpty;
|
|
2092
2104
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
2093
2105
|
createCommentVNode(" 顶部工具栏 "),
|
|
2094
2106
|
createVNode(_component_NCard, {
|
|
@@ -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
|