form-design-v3 1.0.0 → 1.0.1
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/{CodeEditor-B7PzbdP9.js → CodeEditor-CJeYvarM.js} +1 -2
- package/form-design-v3.css +1 -0
- package/form-design-v3.es.js +13 -0
- package/form-design-v3.umd.cjs +4 -0
- package/index-BNitnTdB.js +3578 -0
- package/index.d.ts +83 -19
- package/package.json +2 -2
- package/CodeEditor-B7PzbdP9.js.map +0 -1
- package/CodeEditor-d-AMHZfA.js +0 -56
- package/CodeEditor-d-AMHZfA.js.map +0 -1
- package/form-designer.css +0 -1
- package/index-DCHlgXXr.js +0 -3033
- package/index-DCHlgXXr.js.map +0 -1
- package/index-oUADtA5r.js +0 -3016
- package/index-oUADtA5r.js.map +0 -1
- package/mt-form-designer.es.js +0 -12
- package/mt-form-designer.es.js.map +0 -1
- package/mt-form-designer.umd.cjs +0 -5
- package/mt-form-designer.umd.cjs.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent as c, ref as d, onMounted as m, watch as n, onBeforeUnmount as f, openBlock as p, createElementBlock as g } from "vue";
|
|
2
2
|
import * as r from "monaco-editor";
|
|
3
3
|
import { javascriptDefaults as _ } from "monaco-editor/language/typescript/monaco.contribution";
|
|
4
|
-
import { _ as V } from "./index-
|
|
4
|
+
import { _ as V } from "./index-BNitnTdB.js";
|
|
5
5
|
const S = /* @__PURE__ */ c({
|
|
6
6
|
__name: "CodeEditor",
|
|
7
7
|
props: {
|
|
@@ -53,4 +53,3 @@ const S = /* @__PURE__ */ c({
|
|
|
53
53
|
export {
|
|
54
54
|
C as default
|
|
55
55
|
};
|
|
56
|
-
//# sourceMappingURL=CodeEditor-B7PzbdP9.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.fd-label-design[data-v-b6dcc499]{display:flex;align-items:stretch;font-size:1.4rem;line-height:1.5;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);overflow:hidden}.fd-label-name[data-v-b6dcc499]{width:16rem;flex-shrink:0;padding:1.1rem 1.2rem;background:var(--fd-color-bg-hover);border-right:1px solid var(--fd-color-border);color:var(--fd-color-text-secondary);text-align:right;font-weight:500}.fd-label-design.is-mobile .fd-label-name[data-v-b6dcc499]{width:12rem}.fd-label-value[data-v-b6dcc499]{flex:1;min-width:0;padding:1.1rem 1.2rem;background:var(--fd-color-bg-panel);color:var(--fd-color-text);white-space:pre-wrap;word-break:break-all}.fd-label-value--link[data-v-b6dcc499]{color:var(--fd-color-primary)}.fd-label-render[data-v-7fe92042]{display:flex;align-items:stretch;font-size:1.4rem;line-height:1.5;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);overflow:hidden}.fd-label-name[data-v-7fe92042]{width:16rem;flex-shrink:0;padding:1.1rem 1.2rem;background:var(--fd-color-bg-hover);border-right:1px solid var(--fd-color-border);color:var(--fd-color-text-secondary);text-align:right;font-weight:500}.fd-label-render.is-mobile .fd-label-name[data-v-7fe92042]{width:12rem}.fd-label-value[data-v-7fe92042]{flex:1;min-width:0;padding:1.1rem 1.2rem;background:var(--fd-color-bg-panel);color:var(--fd-color-text);white-space:pre-wrap;word-break:break-all}.fd-label-value--link[data-v-7fe92042]{color:var(--fd-color-primary)}.fd-label-link[data-v-7fe92042]{color:inherit;text-decoration:none;cursor:pointer;word-break:break-all}.fd-label-link[data-v-7fe92042]:hover{text-decoration:underline}.fd-panel[data-v-d1d2c609]{display:flex;flex-direction:column;gap:1.2rem}.fd-panel-item[data-v-d1d2c609]{display:flex;flex-direction:column;gap:.4rem}.fd-panel-item label[data-v-d1d2c609]{font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-panel-item input[data-v-d1d2c609],.fd-panel-item select[data-v-d1d2c609]{height:3.2rem;padding:0 1rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);font-size:1.4rem;background:var(--fd-color-bg-panel)}.fd-color-row[data-v-d1d2c609]{display:flex;gap:.6rem;align-items:center}.fd-panel .fd-panel-item .fd-color-row input[type=color][data-v-d1d2c609]{width:3.6rem;height:3.2rem;padding:.2rem;flex-shrink:0;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);background:var(--fd-color-bg-panel);cursor:pointer}.fd-color-row input[data-v-d1d2c609]:not([type=color]){flex:1;min-width:0}.fd-card-design[data-v-6a46ee95]{border:1px solid var(--fd-color-border);border-radius:14px;background:var(--fd-color-bg-panel);box-shadow:0 2px 10px #19375f0f;overflow:hidden}.fd-card-head[data-v-6a46ee95]{display:flex;align-items:center;gap:10px;height:64px;padding:0 22px;background:transparent}.fd-card-icon[data-v-6a46ee95]{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--fd-color-primary);background:var(--fd-color-primary-light);border-radius:9px}.fd-card-title[data-v-6a46ee95]{flex:1;font-size:17px;font-weight:700;color:var(--fd-color-text)}.fd-card-arrow[data-v-6a46ee95]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;color:var(--fd-color-text-tertiary);cursor:pointer;transition:transform .3s,background .2s}.fd-card-arrow[data-v-6a46ee95]:hover{background:var(--fd-color-bg-hover)}.fd-card-arrow svg[data-v-6a46ee95]{width:16px;height:16px;display:block}.fd-card-arrow.is-open[data-v-6a46ee95]{transform:rotate(180deg)}.fd-card-body[data-v-6a46ee95]{padding:0 22px 22px;min-height:6rem;background:var(--fd-color-bg-panel)}.fd-card-empty[data-v-6a46ee95]{border:1px dashed var(--fd-color-border);border-radius:var(--fd-radius-base);padding:1.6rem;text-align:center;color:var(--fd-color-text-tertiary);font-size:1.3rem}.fd-card-render[data-v-bc2f6273]{border:1px solid var(--fd-color-border);border-radius:14px;background:var(--fd-color-bg-panel);box-shadow:0 2px 10px #19375f0f;overflow:hidden}.fd-card-head[data-v-bc2f6273]{display:flex;align-items:center;gap:10px;height:64px;padding:0 22px;background:transparent;cursor:pointer;-webkit-user-select:none;user-select:none}.fd-card-icon[data-v-bc2f6273]{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--fd-color-primary);background:var(--fd-color-primary-light);border-radius:9px}.fd-card-title[data-v-bc2f6273]{flex:1;font-size:17px;font-weight:700;color:var(--fd-color-text)}.fd-card-arrow[data-v-bc2f6273]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:28px;height:28px;border-radius:8px;color:var(--fd-color-text-tertiary);transition:transform .3s}.fd-card-arrow svg[data-v-bc2f6273]{width:16px;height:16px;display:block}.fd-card-arrow.is-open[data-v-bc2f6273]{transform:rotate(180deg)}.fd-card-body[data-v-bc2f6273]{padding:0 22px 22px;min-height:6rem;background:var(--fd-color-bg-panel)}.fd-switch[data-v-eac909bd]{position:relative;width:3.6rem;height:2rem;padding:0;border:none;border-radius:1rem;background:var(--fd-color-border-hover);cursor:pointer;flex-shrink:0;transition:background var(--fd-transition)}.fd-switch.is-on[data-v-eac909bd]{background:var(--fd-color-primary)}.fd-switch[data-v-eac909bd]:disabled{opacity:.5;cursor:not-allowed}.fd-switch-dot[data-v-eac909bd]{position:absolute;top:.2rem;left:.2rem;width:1.6rem;height:1.6rem;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0003;transition:transform var(--fd-transition)}.fd-switch.is-on .fd-switch-dot[data-v-eac909bd]{transform:translate(1.6rem)}.fd-panel[data-v-4585a5b8]{display:flex;flex-direction:column;gap:1.2rem}.fd-panel-item[data-v-4585a5b8]{display:flex;flex-direction:column;gap:.4rem}.fd-panel-item--row[data-v-4585a5b8]{flex-direction:row;align-items:center;justify-content:space-between}.fd-panel-item label[data-v-4585a5b8]{font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-panel-item input[data-v-4585a5b8],.fd-panel-item select[data-v-4585a5b8]{height:3.2rem;padding:0 1rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);font-size:1.4rem;background:var(--fd-color-bg-panel)}.fd-panel-item select[data-v-4585a5b8]{color:var(--fd-color-text);cursor:pointer}.fd-icon-picker[data-v-4585a5b8]{position:relative}.fd-icon-trigger[data-v-4585a5b8]{width:100%;height:3.2rem;padding:0 .8rem;display:flex;align-items:center;gap:.6rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);background:var(--fd-color-bg-panel);color:var(--fd-color-text);cursor:pointer}.fd-icon-trigger[data-v-4585a5b8]:hover{border-color:var(--fd-color-border-hover)}.fd-icon-placeholder[data-v-4585a5b8]{flex:1;text-align:left;font-size:1.4rem;color:var(--fd-color-text-tertiary)}.fd-icon-caret[data-v-4585a5b8]{width:1.4rem;height:1.4rem;margin-left:auto;color:var(--fd-color-text-tertiary)}.fd-icon-popover[data-v-4585a5b8]{position:absolute;z-index:20;top:calc(100% + .4rem);left:0;right:0;padding:.8rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);background:var(--fd-color-bg-panel);box-shadow:var(--fd-shadow-pop);max-height:26rem;overflow-y:auto}.fd-icon-grid[data-v-4585a5b8]{display:grid;grid-template-columns:repeat(6,1fr);gap:.4rem}.fd-icon-option[data-v-4585a5b8]{display:inline-flex;align-items:center;justify-content:center;height:3.2rem;border:1px solid transparent;border-radius:var(--fd-radius-base);background:transparent;color:var(--fd-color-text);cursor:pointer}.fd-icon-option[data-v-4585a5b8]:hover{background:var(--fd-color-bg-hover)}.fd-icon-option.active[data-v-4585a5b8]{border-color:var(--fd-color-primary);background:var(--fd-color-bg-active);color:var(--fd-color-primary)}.fd-icon-none[data-v-4585a5b8]{font-size:1.2rem}.fd-slot-design[data-v-d3fbc11d]{display:flex;align-items:center;gap:.8rem;padding:1.2rem 1.6rem;border:1px dashed var(--fd-color-border-hover);border-radius:var(--fd-radius-base);background:var(--fd-color-bg-hover)}.fd-slot-tag[data-v-d3fbc11d]{padding:.2rem .8rem;border-radius:var(--fd-radius-base);background:var(--fd-color-primary-light);color:var(--fd-color-primary);font-size:1.2rem}.fd-slot-name[data-v-d3fbc11d]{font-weight:600;color:var(--fd-color-text)}.fd-slot-hint[data-v-d3fbc11d]{margin-left:auto;color:var(--fd-color-text-tertiary);font-size:1.2rem}.fd-slot-render[data-v-10795159]{margin:0}.fd-slot-missing[data-v-10795159]{padding:1.2rem 1.6rem;border:1px dashed var(--fd-color-border-hover);border-radius:var(--fd-radius-base);background:var(--fd-color-bg-hover);color:var(--fd-color-text-tertiary);font-size:1.3rem}.fd-panel[data-v-dfae47c6]{display:flex;flex-direction:column;gap:1.2rem}.fd-panel-item[data-v-dfae47c6]{display:flex;flex-direction:column;gap:.4rem}.fd-panel-item label[data-v-dfae47c6]{font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-panel-item input[data-v-dfae47c6],.fd-panel-item select[data-v-dfae47c6]{height:3.2rem;padding:0 1rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);font-size:1.4rem;background:var(--fd-color-bg-panel)}.fd-panel-item select[data-v-dfae47c6]{color:var(--fd-color-text);cursor:pointer}.fd-st-design[data-v-aba8caec]{border-radius:var(--fd-radius-base);background:var(--fd-color-bg-panel);overflow:hidden}.fd-st-table-wrap[data-v-aba8caec]{overflow-x:auto}.fd-st-table[data-v-aba8caec]{width:max-content;min-width:100%;border-collapse:collapse}.fd-st-table th[data-v-aba8caec]{background:var(--fd-color-bg-hover);color:var(--fd-color-text-secondary);font-weight:600}.fd-st-table th[data-v-aba8caec],.fd-st-table td[data-v-aba8caec]{border:1px solid var(--fd-color-border);padding:.8rem 1rem;font-size:1.3rem;text-align:left}.fd-st-seq[data-v-aba8caec]{width:5rem;text-align:center!important}.fd-st-cell[data-v-aba8caec]{color:var(--fd-color-text-secondary)}.fd-st-cell--link[data-v-aba8caec]{color:var(--fd-color-primary);cursor:pointer}.fd-st-cards[data-v-aba8caec]{display:flex;flex-direction:column;gap:.8rem}.fd-st-card[data-v-aba8caec]{display:flex;flex-direction:column;gap:.6rem;background:var(--fd-color-bg-panel);border-radius:var(--fd-radius-base);box-shadow:0 1px 2px #0000000f;border:1px solid var(--fd-color-border)}.fd-st-card-row[data-v-aba8caec]{display:flex;align-items:flex-start;padding:1rem 1.4rem;border-bottom:1px solid var(--fd-color-border)}.fd-st-card-row[data-v-aba8caec]:last-child{border-bottom:none}.fd-st-card-label[data-v-aba8caec]{flex:0 0 11.5rem;max-width:11.5rem;color:var(--fd-color-text-secondary);font-size:1.3rem}.fd-st-card-value[data-v-aba8caec]{flex:1 1 auto;min-width:0;color:var(--fd-color-text);font-size:1.3rem;word-break:break-all;display:flex;align-items:center}.fd-st-card-value--link[data-v-aba8caec]{color:var(--fd-color-primary);cursor:pointer}.fd-st-cards-empty[data-v-aba8caec]{text-align:center;font-size:1.3rem;color:var(--fd-color-text-tertiary);padding:2rem 1rem}.fd-st-render[data-v-a650847e]{background:var(--fd-color-bg-panel)}.fd-st-table-wrap[data-v-a650847e]{overflow-x:auto}.fd-st-table[data-v-a650847e]{width:max-content;min-width:100%;border-spacing:0;border-collapse:separate;border:1px solid #e4eaf2;border-radius:1rem;overflow:hidden;background:#fff}.fd-st-table th[data-v-a650847e],.fd-st-table td[data-v-a650847e]{border:0;border-right:1px solid #e4eaf2;border-bottom:1px solid #e4eaf2;padding:1.1rem 1.2rem;line-height:1.45;font-size:1.3rem}.fd-st-table tr[data-v-a650847e]>*:last-child{border-right:0}.fd-st-table th[data-v-a650847e]{color:#667085;background:#f8fafc;font-weight:500}.fd-st-table thead th[data-v-a650847e]{color:#475467;background:#f6f8fb;font-weight:600}.fd-st-seq[data-v-a650847e]{width:5rem;text-align:center!important}.fd-st-op[data-v-a650847e]{width:8rem;text-align:center}.fd-st-empty[data-v-a650847e]{text-align:center;color:var(--fd-color-text-secondary);padding:1.6rem}.fd-st-link[data-v-a650847e]{color:var(--fd-color-primary);cursor:pointer;text-decoration:none;word-break:break-all}.fd-st-link[data-v-a650847e]:hover{text-decoration:underline}.fd-st-add[data-v-a650847e]{margin:1rem 1.2rem}.fd-st-cards[data-v-a650847e]{display:flex;flex-direction:column;gap:.8rem}.fd-st-card[data-v-a650847e]{display:flex;flex-direction:column;background:var(--fd-color-bg-panel);border-radius:var(--fd-radius-base);box-shadow:0 .1rem .2rem #0000000f;border:1px solid var(--fd-color-border)}.fd-st-card-row[data-v-a650847e]{display:flex;align-items:flex-start;padding:1rem 1.4rem;border-bottom:1px solid var(--fd-color-border)}.fd-st-card-row[data-v-a650847e]:last-child{border-bottom:none}.fd-st-card-label[data-v-a650847e]{flex:0 0 11.5rem;max-width:11.5rem;color:var(--fd-color-text-secondary);font-size:1.3rem}.fd-st-card-value[data-v-a650847e]{flex:1 1 auto;min-width:0;color:var(--fd-color-text);font-size:1.3rem;word-break:break-all}.fd-st-card-actions[data-v-a650847e]{display:flex;justify-content:flex-end;padding:.8rem 1.4rem;border-top:1px solid var(--fd-color-border)}.fd-st-cards-empty[data-v-a650847e]{text-align:center;font-size:1.3rem;color:var(--fd-color-text-secondary);padding:2rem 1rem}.fd-panel[data-v-e1fd519d]{display:flex;flex-direction:column;gap:1.2rem}.fd-panel-item[data-v-e1fd519d]{display:flex;flex-direction:column;gap:.4rem}.fd-panel-item--row[data-v-e1fd519d]{flex-direction:row;align-items:center;justify-content:space-between}.fd-panel-item label[data-v-e1fd519d]{font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-cols-head[data-v-e1fd519d]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem;font-weight:600}.fd-cols-empty[data-v-e1fd519d]{font-size:1.3rem;color:var(--fd-color-text-placeholder);text-align:center;padding:1.6rem;border:1px dashed var(--fd-color-border);border-radius:var(--fd-radius-base)}.fd-col-card[data-v-e1fd519d]{display:flex;flex-direction:column;gap:.8rem;padding:1rem 1.2rem;margin-bottom:.8rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);background:var(--fd-color-bg-panel);transition:border-color var(--fd-transition)}.fd-col-card[data-v-e1fd519d]:hover{border-color:var(--fd-color-primary)}.fd-col-card-top[data-v-e1fd519d]{display:flex;align-items:center;gap:.8rem}.fd-col-order[data-v-e1fd519d]{flex-shrink:0;width:2.2rem;height:2.2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:600;color:var(--fd-color-primary);background:var(--fd-color-primary-light)}.fd-col-meta[data-v-e1fd519d]{flex:1;display:flex;flex-direction:column;gap:.1rem;min-width:0}.fd-col-title[data-v-e1fd519d]{font-size:1.4rem;font-weight:600;color:var(--fd-color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-col-name-sub[data-v-e1fd519d]{font-size:1.1rem;color:var(--fd-color-text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-col-tag[data-v-e1fd519d]{flex-shrink:0;font-size:1.1rem;color:var(--fd-color-text-secondary);background:var(--fd-color-bg);border:1px solid var(--fd-color-border);padding:.2rem .6rem;border-radius:var(--fd-radius-base)}.fd-col-card-bottom[data-v-e1fd519d]{display:flex;align-items:center;justify-content:space-between}.fd-col-switch[data-v-e1fd519d]{display:flex;align-items:center;gap:.6rem;font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-col-actions[data-v-e1fd519d]{display:flex;gap:.6rem}.fd-form-section[data-v-e1fd519d]{margin-bottom:1.6rem}.fd-form-section[data-v-e1fd519d]:last-child{margin-bottom:0}.fd-form-section-h[data-v-e1fd519d]{margin:0 0 .8rem;font-size:1.3rem;font-weight:600;color:var(--fd-color-text-secondary)}.fd-form-grid[data-v-e1fd519d]{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem 1.6rem}.fd-form-item[data-v-e1fd519d]{display:flex;flex-direction:column;gap:.4rem}.fd-form-item label[data-v-e1fd519d]{font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-color-row[data-v-e1fd519d]{display:flex;gap:.6rem;align-items:center}.fd-form-section .fd-form-item .fd-color-row input[type=color][data-v-e1fd519d]{width:3.6rem;height:3.2rem;padding:.2rem;flex-shrink:0;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);background:var(--fd-color-bg-panel);cursor:pointer}.fd-form-section .fd-form-item .fd-switch[data-v-e1fd519d]{margin-top:.6rem}.fd-color-row input[type=text][data-v-e1fd519d]{flex:1;min-width:0}.fd-btn--sm[data-v-e1fd519d]{height:2.6rem;padding:0 1rem;font-size:1.2rem}.fd-btn--ghost[data-v-e1fd519d]{background:transparent;color:var(--fd-color-primary);border:1px solid var(--fd-color-primary)}.fd-btn--ghost[data-v-e1fd519d]:hover{background:var(--fd-color-primary-light)}.fd-dialog-mask[data-v-e1fd519d]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000073;display:flex;align-items:center;justify-content:center}.fd-dialog[data-v-e1fd519d]{width:min(56rem,92vw);max-height:82vh;display:flex;flex-direction:column;background:var(--fd-color-bg-panel);border-radius:var(--fd-radius-lg);box-shadow:var(--fd-shadow-pop);overflow:hidden}.fd-dialog-head[data-v-e1fd519d]{display:flex;align-items:center;gap:1.2rem;padding:1.2rem 1.6rem;border-bottom:1px solid var(--fd-color-border);font-weight:600;font-size:1.5rem}.fd-dialog-head span[data-v-e1fd519d]{margin-right:auto}.fd-dialog-close[data-v-e1fd519d]{width:3rem;height:3rem;padding:0;font-size:2rem;line-height:1;border:none;border-radius:var(--fd-radius-base);background:transparent;color:var(--fd-color-text-secondary);cursor:pointer}.fd-dialog-close[data-v-e1fd519d]:hover{background:var(--fd-color-bg);color:var(--fd-color-text)}.fd-dialog-body[data-v-e1fd519d]{padding:1.6rem;overflow:auto}.fd-dialog-foot[data-v-e1fd519d]{display:flex;justify-content:flex-end;gap:1rem;padding:1.2rem 1.6rem;border-top:1px solid var(--fd-color-border)}.fd-grid-design[data-v-25511a77]{display:grid;grid-template-columns:repeat(24,1fr);align-items:start}.fd-grid-design.is-mobile[data-v-25511a77]{grid-template-columns:1fr}.fd-grid-render[data-v-417035f9]{display:grid;grid-template-columns:repeat(24,1fr);align-items:start}.fd-grid-render.is-mobile[data-v-417035f9]{grid-template-columns:1fr}.fd-grid-cell[data-v-417035f9]{min-width:0}.fd-grid-cell[data-v-417035f9]>*{margin-bottom:0}.fd-panel[data-v-a333d2ea]{display:flex;flex-direction:column;gap:1.2rem}.fd-panel-item[data-v-a333d2ea]{display:flex;flex-direction:column;gap:.4rem}.fd-panel-item label[data-v-a333d2ea]{font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-panel-item select[data-v-a333d2ea]{height:3.2rem;padding:0 1rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);font-size:1.4rem;background:var(--fd-color-bg-panel)}.fd-grid-apply[data-v-a333d2ea]{width:100%}.fd-text-design[data-v-ba382e6c],.fd-text-render[data-v-3ed7b0f0]{display:inline-block;padding:.4rem 0;font-size:1.4rem;line-height:1.5;color:var(--fd-color-text);white-space:pre-wrap;word-break:break-word}.fd-panel[data-v-3201879c]{display:flex;flex-direction:column;gap:1.2rem}.fd-panel-item[data-v-3201879c]{display:flex;flex-direction:column;gap:.4rem}.fd-panel-item label[data-v-3201879c]{font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-panel-item textarea[data-v-3201879c],.fd-panel-item select[data-v-3201879c]{padding:.8rem 1rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);font-size:1.4rem;font-family:inherit;line-height:1.5;background:var(--fd-color-bg-panel)}.fd-panel-item textarea[data-v-3201879c]{resize:vertical}.fd-panel-item select[data-v-3201879c]{height:3.2rem}.fd-renderer[data-v-82088c12]{display:block;padding:1.6rem}.fd-tree[data-v-e38c14ec]{padding:1.2rem;height:100%;overflow:auto;display:flex;flex-direction:column}.fd-tree-head[data-v-e38c14ec]{display:flex;align-items:center;gap:.8rem;padding:0 .4rem .8rem;margin-bottom:.8rem;border-bottom:1px solid var(--fd-color-border);flex-shrink:0}.fd-tree-head-icon[data-v-e38c14ec]{width:1.6rem;height:1.6rem;color:var(--fd-color-primary);flex-shrink:0}.fd-tree-title[data-v-e38c14ec]{font-weight:600;font-size:1.5rem}.fd-tree-count[data-v-e38c14ec]{margin-left:auto;padding:.1rem .7rem;border-radius:1rem;font-size:1.2rem;color:var(--fd-color-text-tertiary);background:var(--fd-color-info-light)}.fd-tree-empty[data-v-e38c14ec]{display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:4rem 2rem;color:var(--fd-color-text-tertiary);font-size:1.3rem;text-align:center}.fd-tree-empty svg[data-v-e38c14ec]{width:3.2rem;height:3.2rem;opacity:.6}.fd-tree-el[data-v-e38c14ec]{background:transparent;--el-tree-node-hover-bg-color: transparent}.fd-tree-el[data-v-e38c14ec] .el-tree-node__content{height:auto;min-height:2.8rem;border-radius:var(--fd-radius-base);padding-left:.4rem}.fd-tree-el[data-v-e38c14ec] .el-tree-node__content:hover{background:var(--fd-color-info-light)}.fd-tree-el[data-v-e38c14ec] .el-tree-node.is-current>.el-tree-node__content{background:var(--fd-color-primary-light);color:var(--fd-color-primary)}.fd-tree-el[data-v-e38c14ec] .el-tree-node__expand-icon{color:var(--fd-color-text-tertiary)}.fd-tree-el[data-v-e38c14ec] .el-tree-node.is-current>.el-tree-node__content .el-tree-node__expand-icon{color:var(--fd-color-primary)}.fd-tree-name[data-v-e38c14ec]{font-size:1.3rem}.fd-tree-sub[data-v-e38c14ec]{margin-left:.6rem;color:var(--fd-color-text-tertiary);font-size:1.2rem;max-width:12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.el-tree-node.is-current>.el-tree-node__content .fd-tree-sub[data-v-e38c14ec]{color:var(--fd-color-primary);opacity:.75}.fd-publish-tip[data-v-6fdc08dc]{display:flex;align-items:flex-start;gap:.8rem;padding:1rem 1.2rem;margin-bottom:1.6rem;border-radius:var(--fd-radius-base);background:var(--fd-color-warning-light)}.fd-publish-tip-icon[data-v-6fdc08dc]{flex-shrink:0;width:1.8rem;height:1.8rem;margin-top:.1rem;line-height:1.8rem;text-align:center;border-radius:50%;background:var(--fd-color-warning);color:#fff;font-size:1.2rem;font-weight:700}.fd-publish-tip-text[data-v-6fdc08dc]{color:var(--fd-color-text);font-size:1.4rem;line-height:1.6}.fd-publish-tip-text b[data-v-6fdc08dc]{color:var(--fd-color-danger);font-weight:600}.fd-publish-toolbar[data-v-6fdc08dc]{margin-bottom:1.2rem}.fd-publish-search[data-v-6fdc08dc]{width:26rem}.fd-publish-table-wrap[data-v-6fdc08dc]{max-height:32rem;overflow-y:auto;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base)}.fd-publish-table-wrap[data-v-6fdc08dc] .el-empty{padding:2.4rem 0}.fd-publish-table[data-v-6fdc08dc]{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:1.3rem}.fd-publish-table th[data-v-6fdc08dc],.fd-publish-table td[data-v-6fdc08dc]{padding:.9rem 1.2rem;text-align:left;border-bottom:1px solid var(--fd-color-border);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-publish-table th[data-v-6fdc08dc]{position:sticky;top:0;z-index:1;background:var(--fd-color-bg);color:var(--fd-color-text);font-weight:600}.fd-publish-table td[data-v-6fdc08dc]{color:var(--fd-color-text);transition:background var(--fd-transition)}.fd-publish-table tbody tr:hover td[data-v-6fdc08dc]{background:var(--fd-color-bg-hover)}.fd-publish-table tbody tr:last-child td[data-v-6fdc08dc]{border-bottom:none}.fd-publish-id[data-v-6fdc08dc]{color:var(--fd-color-text-secondary);font-size:1.2rem}.fd-publish-link[data-v-6fdc08dc]{color:var(--fd-color-primary);cursor:pointer;text-decoration:none;transition:color var(--fd-transition)}.fd-publish-link[data-v-6fdc08dc]:hover{color:var(--fd-color-primary-hover);text-decoration:underline}.fd-publish-pager[data-v-6fdc08dc]{display:flex;justify-content:flex-end;margin-top:1.2rem}.fd-publish-error[data-v-6fdc08dc]{padding:2.4rem 1.2rem;color:var(--fd-color-danger);font-size:1.3rem;text-align:center}.fd-toolbar[data-v-eae12460]{display:flex;align-items:center;justify-content:space-between;gap:1.2rem;height:var(--fd-header-height);padding:0 2rem;background:var(--fd-color-bg-panel);border-bottom:1px solid var(--fd-color-border);flex-shrink:0}.fd-toolbar-title[data-v-eae12460]{font-weight:600;font-size:1.8rem;color:var(--fd-color-text);white-space:nowrap}.fd-toolbar-left[data-v-eae12460]{gap:1.6rem}.fd-toolbar-divider[data-v-eae12460]{width:1px;height:2rem;background:var(--fd-color-border);flex-shrink:0}.fd-toolbar-name[data-v-eae12460]{height:3.2rem;width:16rem;padding:0 1.2rem;border:1px solid transparent;border-radius:var(--fd-radius-base);background:var(--fd-color-info-light);color:var(--fd-color-text-secondary);font-size:1.4rem;transition:all var(--fd-transition)}.fd-toolbar-name[data-v-eae12460]:hover{background:var(--fd-color-bg-panel);border-color:var(--fd-color-primary)}.fd-toolbar-name[data-v-eae12460]:focus{outline:none;background:var(--fd-color-bg-panel);border-color:var(--fd-color-primary);box-shadow:0 0 0 .2rem #4c8eff33}.fd-device[data-v-eae12460]{display:inline-flex;background:var(--fd-color-info-light);border-radius:.6rem;padding:.2rem}.fd-device button[data-v-eae12460]{height:2.8rem;display:inline-flex;align-items:center;gap:.4rem;padding:0 1rem;border:none;background:transparent;border-radius:var(--fd-radius-base);color:var(--fd-color-text-secondary);font-size:1.3rem;cursor:default;white-space:nowrap;transition:all var(--fd-transition)}.fd-device button.is-active[data-v-eae12460]{background:var(--fd-color-bg-panel);color:var(--fd-color-primary);box-shadow:var(--fd-shadow-card);font-weight:600}.fd-toolbar-right[data-v-eae12460]{gap:.8rem;flex-wrap:nowrap;overflow-x:auto}.fd-tool-btn[data-v-eae12460]{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;height:3.4rem;padding:0 1rem;border:none;border-radius:var(--fd-radius-base);background:var(--fd-color-info-light);color:#4a4f59;font-size:1.3rem;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:all var(--fd-transition)}.fd-tool-btn-icon[data-v-eae12460]{width:1.4rem;height:1.4rem;flex-shrink:0;display:block}.fd-tool-btn[data-v-eae12460]:hover{background:#e8e9eb}.fd-tool-btn[data-v-eae12460]:disabled{opacity:.45;cursor:not-allowed}.fd-tool-btn--primary[data-v-eae12460]{background:var(--fd-color-primary);color:#fff}.fd-tool-btn--primary[data-v-eae12460]:hover{background:var(--fd-color-primary-hover);color:#fff}.fd-tool-icon-btn[data-v-eae12460]{width:3.4rem;padding:0}.fd-tool-icon[data-v-eae12460]{width:1.8rem;height:1.8rem;display:block}.fd-dialog-mask[data-v-eae12460]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000073;display:flex;align-items:center;justify-content:center}.fd-dialog[data-v-eae12460]{width:min(86rem,90vw);max-height:82vh;display:flex;flex-direction:column;background:var(--fd-color-bg-panel);border-radius:var(--fd-radius-lg);box-shadow:var(--fd-shadow-pop);overflow:hidden}.fd-dialog--preview[data-v-eae12460]{width:min(128rem,94vw)}.fd-preview-width[data-v-eae12460]{display:inline-flex;align-items:center;gap:.6rem;font-size:1.3rem;font-weight:400;color:var(--fd-color-text-secondary)}.fd-preview-width[data-v-eae12460] .el-input-number{width:11rem}.fd-preview-width[data-v-eae12460] .el-input-number .el-input__wrapper{background:var(--fd-color-bg);box-shadow:0 0 0 1px var(--fd-color-border) inset}.fd-preview-width[data-v-eae12460] .el-input-number .el-input__wrapper:hover{box-shadow:0 0 0 1px var(--fd-color-border-hover) inset}.fd-preview-width[data-v-eae12460] .el-input-number .el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--fd-color-primary) inset}.fd-preview-width label[data-v-eae12460]{white-space:nowrap}.fd-preview-width-unit[data-v-eae12460]{color:var(--fd-color-text-tertiary)}.fd-preview-stage[data-v-eae12460]{min-width:27rem;max-width:120rem;margin:0 auto}.fd-dialog-head[data-v-eae12460]{display:flex;align-items:center;gap:1.2rem;padding:1.2rem 1.6rem;border-bottom:1px solid var(--fd-color-border);font-weight:600;font-size:1.5rem}.fd-dialog-head span[data-v-eae12460]{margin-right:auto}.fd-dialog-body[data-v-eae12460]{padding:1.6rem;overflow:auto}.fd-dialog-code[data-v-eae12460]{margin:0;padding:1.6rem;overflow:auto;font-size:1.2rem;line-height:1.6;color:var(--fd-color-text)}.fd-dialog-import-text[data-v-eae12460]{width:100%;min-height:32rem;padding:1.2rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);font-size:1.2rem;line-height:1.6;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;background:var(--fd-color-bg);color:var(--fd-color-text);resize:vertical}.fd-tree-drawer[data-v-eae12460]{position:fixed;top:5.6rem;right:0;bottom:0;width:30rem;z-index:90;background:var(--fd-color-bg-panel);border-left:1px solid var(--fd-color-border);box-shadow:var(--fd-shadow-pop)}.fd-palette[data-v-6a2bab90]{padding:1.2rem;display:flex;flex-direction:column;gap:1.2rem;overflow:auto;height:100%}.fd-palette-title[data-v-6a2bab90]{font-weight:600;font-size:1.4rem;color:var(--fd-color-text);padding:0 .4rem}.fd-palette-group[data-v-6a2bab90]{display:flex;flex-direction:column;gap:.8rem}.fd-palette-group-title[data-v-6a2bab90]{font-size:1.2rem;color:var(--fd-color-text-tertiary);margin-bottom:.2rem;padding-left:.4rem}.fd-palette-item[data-v-6a2bab90]{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;border:1px solid transparent;border-radius:var(--fd-radius-base);background:var(--fd-color-bg-hover);font-size:1.3rem;color:var(--fd-color-text);cursor:grab;-webkit-user-select:none;user-select:none;transition:all var(--fd-transition)}.fd-palette-item[data-v-6a2bab90]:hover{background:var(--fd-color-primary-bg);border-color:var(--fd-color-primary)}.fd-palette-item[data-v-6a2bab90]:active{cursor:grabbing}.fd-palette-icon[data-v-6a2bab90]{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:var(--fd-radius-base);background:var(--fd-color-icon-bg);color:var(--fd-color-icon);font-size:1.3rem;font-weight:600}.fd-form-events[data-v-7e5a3f15]{display:flex;flex-direction:column;gap:1.6rem}.fd-form-meta[data-v-7e5a3f15]{display:flex;flex-direction:column;gap:.4rem;font-size:1.2rem;color:var(--fd-color-text-secondary);padding:.8rem 1rem;background:var(--fd-color-bg);border-radius:var(--fd-radius-base)}.fd-events-section[data-v-7e5a3f15]{display:flex;flex-direction:column;gap:1rem}.fd-events-head[data-v-7e5a3f15]{display:flex;align-items:center;justify-content:space-between}.fd-events-h[data-v-7e5a3f15]{margin:0;font-size:1.4rem;font-weight:600}.fd-events-tip[data-v-7e5a3f15]{margin:0;font-size:1.2rem;color:var(--fd-color-text-tertiary)}.fd-events-empty[data-v-7e5a3f15]{font-size:1.3rem;color:var(--fd-color-text-placeholder);text-align:center;padding:1.2rem;border:1px dashed var(--fd-color-border);border-radius:var(--fd-radius-base)}.fd-event-row[data-v-7e5a3f15]{display:flex;flex-direction:column;gap:.4rem}.fd-event-head[data-v-7e5a3f15]{display:flex;align-items:center;gap:.8rem}.fd-event-row label[data-v-7e5a3f15]{font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-event-key[data-v-7e5a3f15]{font-size:1.1rem;color:var(--fd-color-primary);background:var(--fd-color-primary-light);padding:.1rem .6rem;border-radius:var(--fd-radius-base)}.fd-event-trigger[data-v-7e5a3f15]{display:flex;align-items:center;gap:.6rem;width:100%;min-height:3.2rem;padding:0 1rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);font-size:1.3rem;background:var(--fd-color-bg-panel);cursor:pointer;transition:border-color var(--fd-transition),background-color var(--fd-transition);overflow:hidden}.fd-event-trigger[data-v-7e5a3f15]:hover{border-color:var(--fd-color-primary);background:var(--fd-color-primary-light)}.fd-event-trigger-text[data-v-7e5a3f15]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fd-color-text);font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.fd-event-trigger-placeholder[data-v-7e5a3f15]{flex:1;color:var(--fd-color-text-placeholder)}.fd-event-trigger-arrow[data-v-7e5a3f15]{flex-shrink:0;color:var(--fd-color-text-tertiary);font-size:1.8rem;line-height:1}.fd-custom-card[data-v-7e5a3f15]{display:flex;flex-direction:column;gap:.8rem;padding:1.2rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);background:var(--fd-color-bg)}.fd-custom-head[data-v-7e5a3f15]{display:flex;align-items:center;justify-content:space-between}.fd-custom-index[data-v-7e5a3f15]{font-size:1.3rem;font-weight:600;color:var(--fd-color-text-secondary)}.fd-event-row input[data-v-7e5a3f15]{width:100%;height:3.2rem;font-size:1.4rem;padding:0 1rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);background:var(--fd-color-bg-panel);color:var(--fd-color-text)}.fd-event-row input[data-v-7e5a3f15]:focus{border-color:var(--fd-color-primary);outline:none}.fd-btn[data-v-7e5a3f15]{height:3.2rem;padding:0 1.4rem;border:none;border-radius:var(--fd-radius-base);font-size:1.3rem;cursor:pointer}.fd-btn--sm[data-v-7e5a3f15]{height:2.6rem;padding:0 1rem;font-size:1.2rem}.fd-btn--primary[data-v-7e5a3f15]{background:var(--fd-color-primary);color:#fff}.fd-btn--danger[data-v-7e5a3f15]{background:var(--fd-color-danger-light);color:var(--fd-color-danger)}.fd-dialog-mask[data-v-7e5a3f15]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000073;display:flex;align-items:center;justify-content:center}.fd-dialog[data-v-7e5a3f15]{width:min(60rem,92vw);max-height:82vh;display:flex;flex-direction:column;background:var(--fd-color-bg-panel);border-radius:var(--fd-radius-lg);box-shadow:var(--fd-shadow-pop);overflow:hidden}.fd-dialog-head[data-v-7e5a3f15]{display:flex;align-items:center;gap:1.2rem;padding:1.2rem 1.6rem;border-bottom:1px solid var(--fd-color-border);font-weight:600;font-size:1.5rem}.fd-dialog-head span[data-v-7e5a3f15]{margin-right:auto}.fd-dialog-close[data-v-7e5a3f15]{width:3rem;height:3rem;padding:0;font-size:2rem;line-height:1;border:none;border-radius:var(--fd-radius-base);background:transparent;color:var(--fd-color-text-secondary);cursor:pointer}.fd-dialog-close[data-v-7e5a3f15]:hover{background:var(--fd-color-bg);color:var(--fd-color-text)}.fd-dialog-body[data-v-7e5a3f15]{padding:1.6rem;overflow:auto}.fd-dialog-foot[data-v-7e5a3f15]{display:flex;justify-content:flex-end;gap:1rem;padding:1.2rem 1.6rem;border-top:1px solid var(--fd-color-border)}.fd-property[data-v-e89617c7]{padding:1.2rem;display:flex;flex-direction:column;gap:1.2rem;height:100%;overflow:auto}.fd-property-title[data-v-e89617c7]{font-weight:600;font-size:1.4rem}.fd-property-empty[data-v-e89617c7]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;color:var(--fd-color-text-secondary);font-size:1.3rem;text-align:center}.fd-property-empty-icon[data-v-e89617c7]{font-size:3.6rem;color:var(--fd-color-border)}.fd-property-foot[data-v-e89617c7]{display:flex;align-items:center;justify-content:space-between;margin-top:1.2rem;padding-top:1.2rem;border-top:1px solid var(--fd-color-border)}.fd-property-type[data-v-e89617c7]{font-size:1.2rem;color:var(--fd-color-text-secondary)}.fd-property-item[data-v-e89617c7]{display:flex;flex-direction:column;gap:.4rem}.fd-property-item label[data-v-e89617c7]{font-size:1.3rem;color:var(--fd-color-text-secondary)}.fd-property-item input[data-v-e89617c7],.fd-property-item select[data-v-e89617c7]{height:3.2rem;padding:0 1rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);font-size:1.4rem;background:var(--fd-color-bg-panel)}.fd-btn[data-v-e89617c7]{height:3.2rem;padding:0 1.4rem;border:none;border-radius:var(--fd-radius-base);font-size:1.3rem;cursor:pointer}.fd-btn--danger[data-v-e89617c7]{background:var(--fd-color-danger-light);color:var(--fd-color-danger)}.fd-canvas-node[data-v-3f3a43d3]{position:relative;border-radius:var(--fd-radius-base);cursor:pointer;transition:background-color var(--fd-transition),box-shadow var(--fd-transition),opacity var(--fd-transition)}.fd-canvas-node[data-v-3f3a43d3]:hover{background:var(--fd-color-bg-hover)}.fd-canvas-node.is-selected[data-v-3f3a43d3]{background:var(--fd-color-primary-bg);outline:1px solid var(--fd-color-primary);z-index:1}.fd-canvas-node.drop-before[data-v-3f3a43d3]:before{content:"";position:absolute;left:0;right:0;top:-.15rem;height:.3rem;border-radius:.15rem;background:var(--fd-color-primary);z-index:2}.fd-canvas-node.drop-target[data-v-3f3a43d3]{background:#4c8eff14!important;box-shadow:0 0 0 1px var(--fd-color-primary),0 0 .6rem #4c8eff40}.fd-canvas-node.dragging-source[data-v-3f3a43d3]{opacity:.4}.fd-canvas-node-actions[data-v-3f3a43d3]{position:absolute;top:.6rem;right:.6rem;display:none;gap:.4rem;z-index:5}.fd-canvas-node:hover>.fd-canvas-node-actions[data-v-3f3a43d3]{display:flex}.fd-canvas-node:hover:has(.fd-canvas-node:hover)>.fd-canvas-node-actions[data-v-3f3a43d3]{display:none}.fd-node-action[data-v-3f3a43d3]{width:2.6rem;height:2.6rem;display:flex;align-items:center;justify-content:center;background:var(--fd-color-bg-panel);border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);cursor:pointer;color:var(--fd-color-text-tertiary);transition:all var(--fd-transition)}.fd-node-icon[data-v-3f3a43d3]{width:1.4rem;height:1.4rem;display:block}.fd-node-action[data-v-3f3a43d3]:hover{background:var(--fd-color-bg-hover);border-color:var(--fd-color-border-hover);color:var(--fd-color-primary)}.fd-node-action.delete[data-v-3f3a43d3]:hover{color:var(--fd-color-danger)}.fd-canvas-dropzone[data-v-3f3a43d3]{grid-column:1 / -1;border:1px dashed var(--fd-color-border);border-radius:var(--fd-radius-base);padding:.8rem;text-align:center;color:var(--fd-color-text-tertiary);font-size:1.2rem;margin-top:.6rem}.fd-designer[data-v-86f01272]{display:flex;flex-direction:column;height:100vh}.fd-designer-body[data-v-86f01272]{flex:1;display:flex;min-height:0}.fd-designer-left[data-v-86f01272]{width:var(--fd-sidebar-width);border-right:1px solid var(--fd-color-border);background:var(--fd-color-bg-panel);overflow:hidden}.fd-designer-center[data-v-86f01272]{flex:1;padding:2.4rem;overflow:auto;background:var(--fd-color-bg)}.fd-canvas[data-v-86f01272]{width:100%;max-width:var(--fd-canvas-max);min-height:calc(100vh - 16rem);margin:0 auto;padding:1.6rem;background:var(--fd-color-bg-panel);border-radius:var(--fd-radius-lg);box-shadow:var(--fd-shadow-card)}.fd-canvas.is-mobile[data-v-86f01272]{max-width:37.5rem}.fd-canvas.is-selected[data-v-86f01272]{outline:2px solid var(--fd-color-primary);outline-offset:-2px}.fd-canvas-empty[data-v-86f01272]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8rem 2.4rem;color:var(--fd-color-text-tertiary)}.fd-canvas-empty-icon[data-v-86f01272]{font-size:4.8rem;margin-bottom:1.6rem;color:var(--fd-color-text-placeholder)}.fd-canvas-state[data-v-86f01272]{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 16rem);padding:4rem 2.4rem;border-radius:var(--fd-radius-lg);background:var(--fd-color-bg-panel);box-shadow:var(--fd-shadow-card);color:var(--fd-color-text-secondary);font-size:1.4rem;text-align:center}.fd-canvas-state--error[data-v-86f01272]{color:var(--fd-color-danger, #f5523a);white-space:pre-wrap}.fd-canvas-notice[data-v-86f01272]{margin-bottom:1.2rem;padding:.9rem 1.4rem;border:1px solid var(--fd-color-warning-border, #fde68a);border-radius:var(--fd-radius-base);background:var(--fd-color-warning-bg, #fffbeb);color:var(--fd-color-warning, #b45309);font-size:1.3rem;line-height:1.5}.fd-canvas-empty span[data-v-86f01272]:last-child{font-size:1.4rem}.fd-designer-right[data-v-86f01272]{width:var(--fd-property-width);border-left:1px solid var(--fd-color-border);background:var(--fd-color-bg-panel)}:root{--fd-color-primary: #4c8eff;--fd-color-primary-hover: #3a7de8;--fd-color-primary-active: #2a6bd6;--fd-color-primary-light: #e8f1ff;--fd-color-primary-bg: #f0f6ff;--fd-color-danger: #f5523a;--fd-color-danger-light: #fef0ed;--fd-color-warning: #ff9900;--fd-color-warning-light: #fff8eb;--fd-color-info: #646a78;--fd-color-info-light: #f2f3f5;--fd-color-text: #344054;--fd-color-text-secondary: #667085;--fd-color-text-tertiary: #8a8f99;--fd-color-text-placeholder: #c9cdd4;--fd-color-border: #e5e6e8;--fd-color-border-hover: #c9cdd4;--fd-color-bg: #f5f6f7;--fd-color-bg-panel: #ffffff;--fd-color-bg-hover: #f8fafc;--fd-color-bg-active: #e8f1ff;--fd-color-bg-mask: rgba(0, 0, 0, .5);--fd-color-icon-bg: #e8f1ff;--fd-color-icon: #4c8eff;--fd-color-required: #f5523a;--fd-radius-base: .4rem;--fd-radius-lg: .8rem;--fd-shadow-card: 0 1px 3px rgba(0, 0, 0, .08);--fd-shadow-pop: 0 8px 24px rgba(0, 0, 0, .16);--fd-gap-base: 1.2rem;--fd-transition: .2s ease-in-out;--fd-header-height: 5.6rem;--fd-sidebar-width: 24rem;--fd-property-width: 30rem;--fd-canvas-max: 120rem}[data-theme=dark]{--fd-color-primary: #4c8eff;--fd-color-primary-hover: #5e9eff;--fd-color-primary-active: #3a7be8;--fd-color-primary-light: #1a3a5e;--fd-color-primary-bg: #1a2a4e;--fd-color-danger: #f5523a;--fd-color-danger-light: #3a1a1a;--fd-color-warning: #ff9900;--fd-color-warning-light: #3a2a0a;--fd-color-info: #b0b0b0;--fd-color-info-light: #333333;--fd-color-text: #344054;--fd-color-text-secondary: #667085;--fd-color-text-tertiary: #8a8a8a;--fd-color-text-placeholder: #6a6a6a;--fd-color-border: #3a3a3a;--fd-color-border-hover: #5a5a5a;--fd-color-bg: #1a1a1a;--fd-color-bg-panel: #2a2a2a;--fd-color-bg-hover: #333333;--fd-color-bg-active: #1a3a5e;--fd-color-bg-mask: rgba(0, 0, 0, .7);--fd-color-icon-bg: #1e293b;--fd-color-icon: #93c5fd;--fd-color-required: #f5523a;--fd-shadow-card: 0 1px 3px rgba(0, 0, 0, .4);--fd-shadow-pop: 0 8px 24px rgba(0, 0, 0, .6)}html{font-size:10px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:1.4rem;color:var(--fd-color-text);background:var(--fd-color-bg)}*,*:before,*:after{box-sizing:border-box}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-align-center{display:flex;align-items:center}.flex-justify-between{display:flex;align-items:center;justify-content:space-between}.flex-1{flex:1}.fd-form-row{display:flex;flex-wrap:wrap;gap:var(--fd-gap-base)}.fd-form-col{display:flex;flex-direction:column;gap:var(--fd-gap-base)}.fd-btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;height:3.4rem;padding:0 2rem;border:none;border-radius:var(--fd-radius-base);font-size:1.4rem;cursor:pointer;color:#fff;background:var(--fd-color-primary);transition:background var(--fd-transition)}.fd-btn--primary{background:var(--fd-color-primary)}.fd-btn--primary:hover{background:var(--fd-color-primary-hover)}.fd-btn--danger{background:var(--fd-color-danger-light);color:var(--fd-color-danger)}.fd-btn--warning{background:var(--fd-color-warning-light);color:var(--fd-color-warning)}.fd-btn--info{background:var(--fd-color-info-light);color:var(--fd-color-info)}.fd-btn:disabled{opacity:.5;cursor:not-allowed}input:not([type=file]):not(.fd-toolbar-name):not(.el-select__input):not(.el-input__inner),select,textarea{display:block;width:100%;height:3.4rem;padding:0 1rem;font-family:inherit;font-size:1.4rem;line-height:1.4;color:var(--fd-color-text);background:var(--fd-color-bg-panel);border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);outline:none;transition:border-color var(--fd-transition),box-shadow var(--fd-transition)}textarea{height:auto;min-height:8rem;padding:.8rem 1rem;resize:vertical}input:not([type=file]):not(.fd-toolbar-name):not(.el-select__input):not(.el-input__inner):hover,select:hover,textarea:hover{border-color:var(--fd-color-border-hover)}input:not([type=file]):not(.fd-toolbar-name):not(.el-select__input):not(.el-input__inner):focus,select:focus,textarea:focus{border-color:var(--fd-color-primary);box-shadow:0 0 0 2px var(--fd-color-primary-light)}input::placeholder,textarea::placeholder{color:var(--fd-color-text-placeholder)}select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' fill='none' stroke='%238a8f99' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.8rem}.monaco-editor textarea,.monaco-editor input{display:inline;width:auto;height:auto;min-height:0;padding:0;border:none;border-radius:0;box-shadow:none;background:transparent;outline:none;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.fd-canvas>*+*,.fd-card-body>*+*,.fd-renderer>*+*{margin-top:var(--fd-gap-base)}.fd-canvas>.fd-canvas-node--label+.fd-canvas-node--label,.fd-card-body>.fd-canvas-node--label+.fd-canvas-node--label,.fd-renderer>.fd-label-render+.fd-label-render,.fd-card-body>.fd-label-render+.fd-label-render{margin-top:-1px}.fd-canvas>.fd-canvas-node--label+.fd-canvas-node--label>.fd-label-design,.fd-card-body>.fd-canvas-node--label+.fd-canvas-node--label>.fd-label-design,.fd-renderer>.fd-label-render+.fd-label-render,.fd-card-body>.fd-label-render+.fd-label-render{border-top-left-radius:0;border-top-right-radius:0}.fd-canvas>.fd-canvas-node--label:not(:last-child)>.fd-label-design,.fd-card-body>.fd-canvas-node--label:not(:last-child)>.fd-label-design,.fd-renderer>.fd-label-render:not(:last-child),.fd-card-body>.fd-label-render:not(:last-child){border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-grid-design>*,.fd-grid-render>*{margin-top:0;margin-bottom:0}.fd-grid-design>.fd-canvas-node--label,.fd-grid-render>.fd-grid-cell:has(.fd-label-render){margin-left:-1px;margin-top:-1px}.fd-grid-design.is-mobile>.fd-canvas-node--label+.fd-canvas-node--label,.fd-grid-render.is-mobile>.fd-grid-cell:has(.fd-label-render)+.fd-grid-cell:has(.fd-label-render){margin-left:0}.fd-grid-design>.fd-canvas-node--label>.fd-label-design,.fd-grid-render>.fd-grid-cell>.fd-label-render{border-radius:0}.fd-grid-design>.fd-canvas-node--label.is-g-corner-tl>.fd-label-design,.fd-grid-render>.fd-grid-cell.is-g-corner-tl>.fd-label-render{border-top-left-radius:1rem}.fd-grid-design>.fd-canvas-node--label.is-g-corner-tr>.fd-label-design,.fd-grid-render>.fd-grid-cell.is-g-corner-tr>.fd-label-render{border-top-right-radius:1rem}.fd-grid-design>.fd-canvas-node--label.is-g-corner-bl>.fd-label-design,.fd-grid-render>.fd-grid-cell.is-g-corner-bl>.fd-label-render{border-bottom-left-radius:1rem}.fd-grid-design>.fd-canvas-node--label.is-g-corner-br>.fd-label-design,.fd-grid-render>.fd-grid-cell.is-g-corner-br>.fd-label-render{border-bottom-right-radius:1rem}.fd-grid-design>.fd-canvas-node--label,.fd-grid-render>.fd-grid-cell:has(>.fd-label-render){align-self:stretch}.fd-grid-design>.fd-canvas-node--label>.fd-label-design,.fd-grid-render>.fd-grid-cell:has(>.fd-label-render)>.fd-label-render{height:100%}.fd-grid-design.is-mobile>.fd-canvas-node--label+.fd-canvas-node--label,.fd-grid-render.is-mobile>.fd-grid-cell:has(.fd-label-render)+.fd-grid-cell:has(.fd-label-render){margin-top:-1px}.fd-grid-design.is-mobile>.fd-canvas-node--label+.fd-canvas-node--label>.fd-label-design,.fd-grid-render.is-mobile>.fd-grid-cell:has(.fd-label-render)+.fd-grid-cell:has(.fd-label-render)>.fd-label-render{border-top-left-radius:0;border-top-right-radius:0}.fd-grid-design.is-mobile>.fd-canvas-node--label:not(:last-child)>.fd-label-design,.fd-grid-render.is-mobile>.fd-grid-cell:has(.fd-label-render):not(:last-child)>.fd-label-render{border-bottom-left-radius:0;border-bottom-right-radius:0}.fd-code-editor[data-v-aeb9c1ee]{width:100%;height:32rem;border:1px solid var(--fd-color-border);border-radius:var(--fd-radius-base);overflow:hidden}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { D as a, L as r, R as o, c as d, a as l, l as n, r as t, b as i, s as m, d as p } from "./index-BNitnTdB.js";
|
|
2
|
+
export {
|
|
3
|
+
a as Designer,
|
|
4
|
+
r as LIFECYCLE_HOOKS,
|
|
5
|
+
o as Renderer,
|
|
6
|
+
d as configureApi,
|
|
7
|
+
l as default,
|
|
8
|
+
n as loadFormFromLocal,
|
|
9
|
+
t as registerComponent,
|
|
10
|
+
i as renderForm,
|
|
11
|
+
m as setApiModule,
|
|
12
|
+
p as setBaseModule
|
|
13
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(function($,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("pinia"),require("element-plus"),require("element-plus/es/components/select/style/css"),require("lucide-vue-next"),require("element-plus/es/components/input-number/style/css"),require("element-plus/es/components/tree/style/css"),require("element-plus/es/components/dialog/style/css"),require("element-plus/es/components/input/style/css"),require("element-plus/es/components/pagination/style/css"),require("element-plus/es/components/button/style/css"),require("element-plus/es/components/empty/style/css"),require("element-plus/es/components/loading/style/css"),require("element-plus/es/components/config-provider/style/css"),require("monaco-editor"),require("monaco-editor/language/typescript/monaco.contribution")):typeof define=="function"&&define.amd?define(["exports","vue","pinia","element-plus","element-plus/es/components/select/style/css","lucide-vue-next","element-plus/es/components/input-number/style/css","element-plus/es/components/tree/style/css","element-plus/es/components/dialog/style/css","element-plus/es/components/input/style/css","element-plus/es/components/pagination/style/css","element-plus/es/components/button/style/css","element-plus/es/components/empty/style/css","element-plus/es/components/loading/style/css","element-plus/es/components/config-provider/style/css","monaco-editor","monaco-editor/language/typescript/monaco.contribution"],e):($=typeof globalThis<"u"?globalThis:$||self,e($.FormDesignV3={},$.Vue,$.Pinia,$.ElementPlus,null,$.LucideVueNext,null,null,null,null,null,null,null,null,null,$.monaco,$.monaco))})(this,(function($,e,de,_,ya,ie,Ea,Na,Va,wa,Ba,Ca,$a,_a,xa,ce,me){"use strict";function fe(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const l=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(o,n,l.get?l:{enumerable:!0,get:()=>t[n]})}}return o.default=t,Object.freeze(o)}const Q=fe(ce),J=new Map;function z(t){J.set(t.type,t)}function L(t){return J.get(t)}function pe(){return Array.from(J.values())}function ge(t){const o=L(t);if(!o)throw new Error(`未注册的控件类型: ${t}`);return{...o.createDefaultProps(),id:`${t}_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,7)}`}}const ke={class:"fd-label-name"},ue=e.defineComponent({__name:"LabelDesign",props:{node:{}},setup(t){const o=I();return(n,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["fd-label-design",{"is-mobile":e.unref(o).device==="mobile"}])},[e.createElementVNode("span",ke,e.toDisplayString(t.node.label||"标题"),1),e.createElementVNode("span",{class:e.normalizeClass(["fd-label-value",{"fd-label-value--link":!!t.node.bindLink}]),style:e.normalizeStyle(t.node.color?{color:t.node.color}:void 0)},[t.node.bindLink?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(t.node.bindField||t.node.bindLink),1)],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.node.bindField||"未绑定字段"),1)],64))],6)],2))}}),B=(t,o)=>{const n=t.__vccOpts||t;for(const[l,r]of o)n[l]=r;return n},be=B(ue,[["__scopeId","data-v-b6dcc499"]]),he={class:"fd-label-name"},ye=["data-key"],Ee=["href"],Ne=B(e.defineComponent({__name:"LabelRender",props:{node:{},value:{},formData:{}},setup(t){const o=t,n=e.computed(()=>!!o.node.bindLink),l=e.computed(()=>{var p;const c=o.node.bindLink?(p=o.formData)==null?void 0:p[o.node.bindLink]:void 0;return c==null?"":String(c)}),r=e.computed(()=>o.value!==void 0&&o.value!==null&&o.value!==""?String(o.value):l.value?l.value:""),s=I(),d=e.ref(!1);let i=null;e.onMounted(()=>{i=window.matchMedia("(max-width: 768px)"),d.value=i.matches,i.addEventListener("change",c=>{d.value=c.matches})}),e.onUnmounted(()=>{i&&i.removeEventListener("change",()=>{})});const a=e.computed(()=>s.device==="mobile"||d.value);return(c,p)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["fd-label-render",{"is-mobile":a.value}])},[e.createElementVNode("span",he,e.toDisplayString(t.node.label||"标题"),1),e.createElementVNode("span",{class:e.normalizeClass(["fd-label-value",{"fd-label-value--link":n.value}]),"data-key":t.node.bindField,style:e.normalizeStyle(t.node.color?{color:t.node.color}:void 0)},[l.value?(e.openBlock(),e.createElementBlock("a",{key:0,class:"fd-label-link",href:l.value,target:"_blank",rel:"noopener noreferrer"},e.toDisplayString(r.value),9,Ee)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(r.value),1)],64))],14,ye)],2))}}),[["__scopeId","data-v-7fe92042"]]),Ve={class:"fd-panel"},we={class:"fd-panel-item"},Be=["value"],Ce={class:"fd-panel-item"},$e={class:"fd-panel-item"},_e=["value"],xe={class:"fd-panel-item"},Se={class:"fd-color-row"},De=["value"],Ie=["value"],Fe="#344054",Te={type:"label",title:"Label 文本",design:be,render:Ne,panel:B(e.defineComponent({__name:"LabelPanel",props:{node:{},fields:{}},emits:["update"],setup(t,{emit:o}){const n=t,l=o;function r(i){return i&&/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(i)?i:Fe}function s(i){l("update",{color:i.target.value})}const d=i=>{const a=i??"",c=n.fields.find(p=>p.name===a);l("update",{bindField:a,bindLink:(c==null?void 0:c.dataType)==="link"?a:""})};return(i,a)=>(e.openBlock(),e.createElementBlock("div",Ve,[e.createElementVNode("div",we,[a[2]||(a[2]=e.createElementVNode("label",null,"标题",-1)),e.createElementVNode("input",{value:t.node.label,onInput:a[0]||(a[0]=c=>l("update",{label:c.target.value}))},null,40,Be)]),e.createElementVNode("div",Ce,[a[3]||(a[3]=e.createElementVNode("label",null,"绑定字段",-1)),e.createVNode(e.unref(_.ElSelect),{"model-value":t.node.bindField,filterable:"",clearable:"",placeholder:"搜索并选择字段(链接字段自动作为链接)",style:{width:"100%"},"onUpdate:modelValue":d},{default:e.withCtx(()=>[e.createVNode(e.unref(_.ElOption),{label:"不绑定",value:""}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields,c=>(e.openBlock(),e.createBlock(e.unref(_.ElOption),{key:c.name,label:`${c.label}(${c.name})`,value:c.name},null,8,["label","value"]))),128))]),_:1},8,["model-value"])]),e.createElementVNode("div",$e,[a[4]||(a[4]=e.createElementVNode("label",null,"链接",-1)),e.createElementVNode("input",{value:t.node.bindLink?`${t.node.bindLink}(链接字段自动绑定)`:"非链接字段",readonly:""},null,8,_e)]),e.createElementVNode("div",xe,[a[5]||(a[5]=e.createElementVNode("label",null,"字体颜色",-1)),e.createElementVNode("div",Se,[e.createElementVNode("input",{type:"color",value:r(t.node.color),onInput:s},null,40,De),e.createElementVNode("input",{type:"text",value:t.node.color,onInput:a[1]||(a[1]=c=>l("update",{color:c.target.value})),placeholder:"默认 #344054"},null,40,Ie)])])]))}}),[["__scopeId","data-v-d1d2c609"]]),isContainer:!1,createDefaultProps:()=>({id:"",type:"label",label:"Label 文本",bindField:"",bindLink:"",color:"#344054"}),serialize:t=>t},R=e.defineComponent({__name:"LucideIcon",props:{name:{},size:{default:18},strokeWidth:{default:2}},setup(t){const o=t,n=e.computed(()=>o.name&&ie.icons[o.name]||null);return(l,r)=>n.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(n.value),{key:0,size:t.size,"stroke-width":t.strokeWidth},null,8,["size","stroke-width"])):e.createCommentVNode("",!0)}}),Le={class:"fd-card-design"},Me={class:"fd-card-head"},Oe={class:"fd-card-title"},Pe=["title"],ze={class:"fd-card-body"},Ue=B(e.defineComponent({__name:"CardDesign",props:{node:{}},setup(t){const o=t,n=I();function l(){n.setExpanded(o.node.id,!o.node.expanded)}return(r,s)=>(e.openBlock(),e.createElementBlock("div",Le,[e.createElementVNode("div",Me,[t.node.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"fd-card-icon",style:e.normalizeStyle({background:t.node.iconBgColor||void 0})},[e.createVNode(R,{name:t.node.icon,size:18},null,8,["name"])],4)):e.createCommentVNode("",!0),e.createElementVNode("span",Oe,e.toDisplayString(t.node.label||"卡片标题"),1),e.createElementVNode("span",{class:e.normalizeClass(["fd-card-arrow",{"is-open":t.node.expanded}]),title:t.node.expanded?"收起":"展开",onClick:e.withModifiers(l,["stop"])},[...s[0]||(s[0]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("polyline",{points:"6 9 12 15 18 9"})],-1)])],10,Pe)]),e.withDirectives(e.createElementVNode("div",ze,[e.renderSlot(r.$slots,"children",{},()=>[s[1]||(s[1]=e.createElementVNode("div",{class:"fd-card-empty"},"拖拽子控件到此处",-1))],!0)],512),[[e.vShow,t.node.expanded]])]))}}),[["__scopeId","data-v-6a46ee95"]]);function X(t,o){if(!t||t==="none")return!1;const n=Number(o);return t==="start"?n===10:t==="not-start"?n!==10:t==="not-approval"?n!==20:!1}const je={key:0,class:"fd-card-render"},Ae={class:"fd-card-title"},Re={class:"fd-card-body"},Je=B(e.defineComponent({__name:"CardRender",props:{node:{},formData:{}},setup(t){const o=t,n=e.ref(o.node.expanded);return(l,r)=>{var s;return e.unref(X)(t.node.hiddenMode,(s=t.formData)==null?void 0:s.status)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",je,[e.createElementVNode("div",{class:"fd-card-head",onClick:r[0]||(r[0]=d=>n.value=!n.value)},[t.node.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:"fd-card-icon",style:e.normalizeStyle({background:t.node.iconBgColor||void 0})},[e.createVNode(R,{name:t.node.icon,size:18},null,8,["name"])],4)):e.createCommentVNode("",!0),e.createElementVNode("span",Ae,e.toDisplayString(t.node.label||"卡片标题"),1),e.createElementVNode("span",{class:e.normalizeClass(["fd-card-arrow",{"is-open":n.value}])},[...r[1]||(r[1]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("polyline",{points:"6 9 12 15 18 9"})],-1)])],2)]),e.withDirectives(e.createElementVNode("div",Re,[e.renderSlot(l.$slots,"children",{},void 0,!0)],512),[[e.vShow,n.value]])]))}}}),[["__scopeId","data-v-bc2f6273"]]),qe=["disabled","aria-checked"],A=B(e.defineComponent({__name:"FdSwitch",props:{modelValue:{type:Boolean},disabled:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:o}){const n=o;return(l,r)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(["fd-switch",{"is-on":t.modelValue}]),disabled:t.disabled,role:"switch","aria-checked":t.modelValue,onClick:r[0]||(r[0]=s=>n("update:modelValue",!t.modelValue))},[...r[1]||(r[1]=[e.createElementVNode("span",{class:"fd-switch-dot"},null,-1)])],10,qe))}}),[["__scopeId","data-v-eac909bd"]]),We=["LayoutGrid","PanelTop","Folder","FolderOpen","FileText","ClipboardList","ClipboardCheck","MapPin","Store","Building2","Badge","Tag","CalendarDays","TrendingUp","Clock","Calculator","Receipt","Target","ChartPie","ChartLine","CircleDollarSign","Briefcase","Scale","ShieldCheck","Sparkles","ScanSearch","MessageSquareText","GitBranch","Paperclip","Download","Upload","Network","Printer","CircleCheck","CircleAlert","Info","Bell","Settings","User","Users","Heart","Star","Lightbulb","Award","BookOpen","Coins","Wallet"],He={class:"fd-panel"},Ge={class:"fd-panel-item"},Ye=["value"],Ke={class:"fd-panel-item"},Qe={class:"fd-icon-picker"},Xe={key:1,class:"fd-icon-placeholder"},Ze={class:"fd-icon-grid"},ve=["title","onClick"],et={class:"fd-panel-item"},tt=["value"],nt={class:"fd-panel-item fd-panel-item--row"},ot={class:"fd-panel-item"},lt=["value"],at={class:"fd-panel-item"},st=["value"],rt={type:"card",title:"卡片容器",design:Ue,render:Je,panel:B(e.defineComponent({__name:"CardPanel",props:{node:{},fields:{}},emits:["update"],setup(t,{emit:o}){const n=o,l=e.ref(!1);function r(s){n("update",{icon:s}),l.value=!1}return(s,d)=>(e.openBlock(),e.createElementBlock("div",He,[e.createElementVNode("div",Ge,[d[8]||(d[8]=e.createElementVNode("label",null,"标题",-1)),e.createElementVNode("input",{value:t.node.label,onInput:d[0]||(d[0]=i=>n("update",{label:i.target.value}))},null,40,Ye)]),e.createElementVNode("div",Ke,[d[11]||(d[11]=e.createElementVNode("label",null,"图标",-1)),e.createElementVNode("div",Qe,[e.createElementVNode("button",{type:"button",class:"fd-icon-trigger",onClick:d[1]||(d[1]=i=>l.value=!l.value)},[t.node.icon?(e.openBlock(),e.createBlock(R,{key:0,name:t.node.icon,size:16},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Xe,"无图标")),d[9]||(d[9]=e.createElementVNode("svg",{class:"fd-icon-caret",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("polyline",{points:"6 9 12 15 18 9"})],-1))]),l.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fd-icon-popover",onClick:d[3]||(d[3]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",Ze,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(["fd-icon-option",{active:!t.node.icon}]),title:"无图标",onClick:d[2]||(d[2]=i=>r(""))},[...d[10]||(d[10]=[e.createElementVNode("span",{class:"fd-icon-none"},"无",-1)])],2),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(We),i=>(e.openBlock(),e.createElementBlock("button",{key:i,type:"button",class:e.normalizeClass(["fd-icon-option",{active:t.node.icon===i}]),title:i,onClick:a=>r(i)},[e.createVNode(R,{name:i,size:18},null,8,["name"])],10,ve))),128))])])):e.createCommentVNode("",!0)])]),e.createElementVNode("div",et,[d[12]||(d[12]=e.createElementVNode("label",null,"图标底色",-1)),e.createElementVNode("input",{value:t.node.iconBgColor,onInput:d[4]||(d[4]=i=>n("update",{iconBgColor:i.target.value}))},null,40,tt)]),e.createElementVNode("div",nt,[d[13]||(d[13]=e.createElementVNode("label",null,"初始展开",-1)),e.createVNode(A,{"model-value":t.node.expanded,"onUpdate:modelValue":d[5]||(d[5]=i=>n("update",{expanded:i}))},null,8,["model-value"])]),e.createElementVNode("div",ot,[d[14]||(d[14]=e.createElementVNode("label",null,"宽度",-1)),e.createElementVNode("input",{value:t.node.width,onInput:d[6]||(d[6]=i=>n("update",{width:i.target.value}))},null,40,lt)]),e.createElementVNode("div",at,[d[16]||(d[16]=e.createElementVNode("label",null,"是否隐藏",-1)),e.createElementVNode("select",{value:t.node.hiddenMode||"none",onChange:d[7]||(d[7]=i=>n("update",{hiddenMode:i.target.value}))},[...d[15]||(d[15]=[e.createElementVNode("option",{value:"none"},"不隐藏",-1),e.createElementVNode("option",{value:"start"},"发起时隐藏",-1),e.createElementVNode("option",{value:"not-start"},"非发起时隐藏",-1),e.createElementVNode("option",{value:"not-approval"},"非审批时隐藏",-1)])],40,st)])]))}}),[["__scopeId","data-v-4585a5b8"]]),isContainer:!0,createDefaultProps:()=>({id:"",type:"card",label:"卡片标题",bindField:"",icon:"",iconBgColor:"",expanded:!0,width:"",hiddenMode:"none",children:[]}),serialize:t=>t},dt={class:"fd-slot-design"},it={class:"fd-slot-name"},ct={class:"fd-slot-hint"},mt=B(e.defineComponent({__name:"SlotDesign",props:{node:{}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",dt,[n[0]||(n[0]=e.createElementVNode("span",{class:"fd-slot-tag"},"插槽",-1)),e.createElementVNode("span",it,e.toDisplayString(t.node.slotName||"未命名插槽"),1),e.createElementVNode("span",ct,"宿主注入:"+e.toDisplayString(t.node.slotName),1)]))}}),[["__scopeId","data-v-d3fbc11d"]]),ft={key:0,class:"fd-slot-render"},pt={class:"fd-slot-missing"},gt=B(e.defineComponent({__name:"SlotRender",props:{node:{},mode:{},formId:{},formData:{}},setup(t){return(o,n)=>{var l;return e.unref(X)(t.node.hiddenMode,(l=t.formData)==null?void 0:l.status)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",ft,[e.renderSlot(o.$slots,t.node.slotName,{node:t.node,formData:t.formData,mode:t.mode,formId:t.formId},()=>[e.createElementVNode("div",pt,"未注入插槽:"+e.toDisplayString(t.node.slotName),1)],!0)]))}}}),[["__scopeId","data-v-10795159"]]),kt={class:"fd-panel"},ut={class:"fd-panel-item"},bt=["value"],ht={class:"fd-panel-item"},yt={class:"fd-panel-item"},Et=["value"],Nt={type:"slot",title:"插槽",design:mt,render:gt,panel:B(e.defineComponent({__name:"SlotPanel",props:{node:{},fields:{}},emits:["update"],setup(t,{emit:o}){const n=o,l=I(),r=["header","base-info","shop-tuning","contract-links","contract-list","handover-records","attachments","ai-risk","initiator-opinion","approval-flow","return-records","approval-records","approval-opinion","footer"],s=e.ref([]);function d(c,p){c.forEach(u=>{var C;u.type==="slot"&&u.slotName&&p.add(u.slotName),(C=u.children)!=null&&C.length&&d(u.children,p)})}const i=e.computed(()=>{const c=new Set(r);return d(l.widgets,c),s.value.forEach(p=>p&&c.add(p)),[...c]});function a(c){const p=c??"";p&&!i.value.includes(p)&&s.value.push(p),n("update",{slotName:p})}return(c,p)=>(e.openBlock(),e.createElementBlock("div",kt,[e.createElementVNode("div",ut,[p[2]||(p[2]=e.createElementVNode("label",null,"标题",-1)),e.createElementVNode("input",{value:t.node.label,onInput:p[0]||(p[0]=u=>n("update",{label:u.target.value}))},null,40,bt)]),e.createElementVNode("div",ht,[p[3]||(p[3]=e.createElementVNode("label",null,"插槽名",-1)),e.createVNode(e.unref(_.ElSelect),{"model-value":t.node.slotName,filterable:"","allow-create":"",clearable:"","default-first-option":"",placeholder:"选择已有插槽名,或输入新名称创建",style:{width:"100%"},"onUpdate:modelValue":a},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.value,u=>(e.openBlock(),e.createBlock(e.unref(_.ElOption),{key:u,label:u,value:u},null,8,["label","value"]))),128))]),_:1},8,["model-value"])]),e.createElementVNode("div",yt,[p[5]||(p[5]=e.createElementVNode("label",null,"是否隐藏",-1)),e.createElementVNode("select",{value:t.node.hiddenMode||"none",onChange:p[1]||(p[1]=u=>n("update",{hiddenMode:u.target.value}))},[...p[4]||(p[4]=[e.createElementVNode("option",{value:"none"},"不隐藏",-1),e.createElementVNode("option",{value:"start"},"发起时隐藏",-1),e.createElementVNode("option",{value:"not-start"},"非发起时隐藏",-1),e.createElementVNode("option",{value:"not-approval"},"非审批时隐藏",-1)])],40,Et)])]))}}),[["__scopeId","data-v-dfae47c6"]]),isContainer:!1,createDefaultProps:()=>({id:"",type:"slot",label:"插槽",bindField:"",slotName:"",slotProps:{},hiddenMode:"none"}),serialize:t=>t},Vt={class:"fd-st-design"},wt={key:0,class:"fd-st-table-wrap"},Bt={class:"fd-st-table"},Ct={key:0,class:"fd-st-seq"},$t={key:0,class:"fd-st-seq"},_t={key:1,class:"fd-st-cards"},xt={class:"fd-st-card"},St={class:"fd-st-card-label"},Dt={key:0,class:"fd-st-cards-empty"},It=B(e.defineComponent({__name:"SubtableDesign",props:{node:{}},setup(t){const o=t,n=e.computed(()=>o.node.tablestyle!=="cards");return(l,r)=>(e.openBlock(),e.createElementBlock("div",Vt,[n.value?(e.openBlock(),e.createElementBlock("div",wt,[e.createElementVNode("table",Bt,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[t.node.secondtableindex==="1"?(e.openBlock(),e.createElementBlock("th",Ct,"序号")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.colnums.filter(s=>s.isshow===1),s=>(e.openBlock(),e.createElementBlock("th",{key:s.name,style:e.normalizeStyle({width:s.showwidth||void 0})},e.toDisplayString(s.showname||s.major||s.name),5))),128))])]),e.createElementVNode("tbody",null,[e.createElementVNode("tr",null,[t.node.secondtableindex==="1"?(e.openBlock(),e.createElementBlock("td",$t,"1")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.colnums.filter(s=>s.isshow===1),s=>(e.openBlock(),e.createElementBlock("td",{key:s.name,class:e.normalizeClass(["fd-st-cell",{"fd-st-cell--link":!!s.bindLink}])},e.toDisplayString(s.name),3))),128))])])])])):(e.openBlock(),e.createElementBlock("div",_t,[e.createElementVNode("div",xt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.colnums.filter(s=>s.isshow===1),s=>(e.openBlock(),e.createElementBlock("div",{key:s.name,class:"fd-st-card-row"},[e.createElementVNode("span",St,e.toDisplayString(s.showname||s.major),1),e.createElementVNode("span",{class:e.normalizeClass(["fd-st-card-value",{"fd-st-card-value--link":!!s.bindLink}])},e.toDisplayString(s.name),3)]))),128))]),t.node.colnums.filter(s=>s.isshow===1).length===0?(e.openBlock(),e.createElementBlock("div",Dt," 暂无列配置 ")):e.createCommentVNode("",!0)]))]))}}),[["__scopeId","data-v-aba8caec"]]),Ft=["subtable-key"],Tt={key:0,class:"fd-st-table-wrap"},Lt={class:"fd-st-table"},Mt={key:0,class:"fd-st-seq"},Ot=["subtable-val"],Pt={key:1,class:"fd-st-op"},zt={key:0,class:"fd-st-seq"},Ut=["rowspan","subtable-val"],jt=["href"],At={key:1,class:"fd-st-op"},Rt=["onClick"],Jt={key:0},qt=["colspan"],Wt={key:1,class:"fd-st-cards"},Ht={class:"fd-st-card-label"},Gt=["subtable-val"],Yt=["href"],Kt={key:0,class:"fd-st-card-actions"},Qt=["onClick"],Xt={key:0,class:"fd-st-cards-empty"},Zt=B(e.defineComponent({__name:"SubtableRender",props:{node:{},formData:{}},setup(t){const o=t,n=e.computed(()=>o.node.colnums.filter(N=>N.isshow===1)),l=e.computed(()=>o.node.isreadonly==="1"),r=e.computed(()=>{var V;const N=(V=o.formData)==null?void 0:V[o.node.secondtable];return Array.isArray(N)?N:[]}),s=e.computed(()=>!(o.node.nodatahidetable==="1"&&r.value.length===0)),d=e.computed(()=>o.node.tablestyle!=="cards");function i(){if(l.value)return;const N={};n.value.forEach(V=>N[V.name]=""),o.formData&&Array.isArray(o.formData[o.node.secondtable])&&o.formData[o.node.secondtable].push(N)}function a(N){l.value||o.formData&&Array.isArray(o.formData[o.node.secondtable])&&o.formData[o.node.secondtable].splice(N,1)}function c(N,V){const m=N[V];return m==null?"":String(m)}function p(N,V){return N.bindLink?c(V,N.bindLink):""}const u=e.computed(()=>{const N=r.value,V=[],m=[];return n.value.forEach((k,h)=>{V[h]=[],m[h]=[];const x=k.issamecolmerge===1;let T=0;for(let y=0;y<N.length;y++){const f=c(N[y],k.name);x&&f!==""&&y>0&&f===c(N[y-1],k.name)?(m[h][y]=!0,V[h][T]+=1):(m[h][y]=!1,V[h][y]=1,T=y)}}),{spans:V,skipped:m}});function C(N,V){var m;return((m=u.value.skipped[N])==null?void 0:m[V])===!0}function S(N,V){var k;const m=(k=u.value.spans[N])==null?void 0:k[V];return m&&m>1?m:void 0}return(N,V)=>s.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fd-st-render","subtable-key":t.node.secondtable},[d.value?(e.openBlock(),e.createElementBlock("div",Tt,[e.createElementVNode("table",Lt,[e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[t.node.secondtableindex==="1"?(e.openBlock(),e.createElementBlock("th",Mt,"序号")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,m=>(e.openBlock(),e.createElementBlock("th",{key:m.name,"subtable-val":m.name,style:e.normalizeStyle({width:m.showwidth||void 0,textAlign:m.align||"left"})},e.toDisplayString(m.showname||m.major||m.name),13,Ot))),128)),l.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("th",Pt,"操作"))])]),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(m,k)=>(e.openBlock(),e.createElementBlock("tr",{key:k},[t.node.secondtableindex==="1"?(e.openBlock(),e.createElementBlock("td",zt,e.toDisplayString(k+1),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,(h,x)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:h.name},[C(x,k)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("td",{key:0,rowspan:S(x,k),"subtable-val":h.name,style:e.normalizeStyle({textAlign:h.align||"left",color:h.prospect||void 0,background:h.background||void 0})},[p(h,m)?(e.openBlock(),e.createElementBlock("a",{key:0,class:"fd-st-link",href:p(h,m),target:"_blank",rel:"noopener noreferrer"},e.toDisplayString(c(m,h.name)),9,jt)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c(m,h.name)),1)],64))],12,Ut))],64))),128)),l.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("td",At,[e.createElementVNode("button",{class:"fd-btn fd-btn--danger",onClick:h=>a(k)},"删除",8,Rt)]))]))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("tr",Jt,[e.createElementVNode("td",{colspan:n.value.length+(t.node.secondtableindex==="1"?1:0)+(l.value?0:1),class:"fd-st-empty"},e.toDisplayString(t.node.nodatatitle==="1"?"暂无数据":""),9,qt)])):e.createCommentVNode("",!0)])])])):(e.openBlock(),e.createElementBlock("div",Wt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(m,k)=>(e.openBlock(),e.createElementBlock("div",{key:k,class:"fd-st-card"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value,h=>(e.openBlock(),e.createElementBlock("div",{key:h.name,class:"fd-st-card-row"},[e.createElementVNode("span",Ht,e.toDisplayString(h.showname||h.major||h.name),1),e.createElementVNode("span",{class:"fd-st-card-value","subtable-val":h.name},[p(h,m)?(e.openBlock(),e.createElementBlock("a",{key:0,class:"fd-st-link",href:p(h,m),target:"_blank",rel:"noopener noreferrer"},e.toDisplayString(c(m,h.name)),9,Yt)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(c(m,h.name)),1)],64))],8,Gt)]))),128)),l.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Kt,[e.createElementVNode("button",{class:"fd-btn fd-btn--danger fd-btn--sm",onClick:h=>a(k)},"删除",8,Qt)]))]))),128)),r.value.length===0?(e.openBlock(),e.createElementBlock("div",Xt,e.toDisplayString(t.node.nodatatitle==="1"?"暂无数据":""),1)):e.createCommentVNode("",!0)])),l.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:2,class:"fd-btn fd-btn--primary fd-st-add",onClick:i},"新增一行"))],8,Ft)):e.createCommentVNode("",!0)}}),[["__scopeId","data-v-a650847e"]]);function vt(t){return t.fields.map((o,n)=>{const l=o.dataType==="file",r=o.dataType==="link";return{name:o.name,isshow:1,major:"",showname:o.label,showwidth:"",background:"",prospect:"",issum:0,index:n+1,align:"",iscompletehide:0,iscompletehidecode:"",issamecolmerge:0,bindLink:r?o.name:"",editmode:{editmode:l?"files":"text",title:l?"文件":"文本"},events:[]}})}const en={class:"fd-panel"},tn={class:"fd-panel-item"},nn={class:"fd-panel-item fd-panel-item--row"},on={class:"fd-panel-item fd-panel-item--row"},ln={class:"fd-panel-item"},an={class:"fd-panel-item"},sn={class:"fd-cols-head"},rn={key:0,class:"fd-cols-empty"},dn={class:"fd-col-card-top"},cn={class:"fd-col-order"},mn={class:"fd-col-meta"},fn={class:"fd-col-title"},pn={class:"fd-col-name-sub"},gn={class:"fd-col-tag"},kn={class:"fd-col-card-bottom"},un={class:"fd-col-switch"},bn={class:"fd-col-actions"},hn=["onClick"],yn=["onClick"],En={class:"fd-dialog",style:{"max-width":"560px"}},Nn={class:"fd-dialog-head"},Vn={class:"fd-dialog-body"},wn={class:"fd-form-section"},Bn={class:"fd-form-grid"},Cn={class:"fd-form-item"},$n=["value"],_n=["value"],xn={class:"fd-form-item"},Sn=["value"],Dn={class:"fd-form-item"},In=["value"],Fn={class:"fd-form-item"},Tn=["value"],Ln={class:"fd-form-section"},Mn={class:"fd-form-grid"},On={class:"fd-form-item"},Pn=["value"],zn={class:"fd-form-item"},Un=["value"],jn={class:"fd-form-item"},An={class:"fd-color-row"},Rn=["value"],Jn=["value"],qn={class:"fd-form-item"},Wn={class:"fd-color-row"},Hn=["value"],Gn=["value"],Yn={class:"fd-form-section"},Kn={class:"fd-form-grid"},Qn={class:"fd-form-item"},Xn={class:"fd-form-item"},Zn=["value"],vn=B(e.defineComponent({__name:"SubtablePanel",props:{node:{},fields:{}},emits:["update"],setup(t,{emit:o}){const n=t,l=o,r=I(),s=e.computed(()=>r.subTables);function d(y,f){l("update",{[y]:f})}function i(y){const f=y??"",b=r.subTables.find(g=>g.name===f),E={secondtable:f};b&&(E.displaytitle=b.label,E.colnums=vt(b)),l("update",E)}const a=e.reactive({open:!1,index:-1,draft:null});function c(y){return JSON.parse(JSON.stringify(y))}function p(y){a.index=y,a.draft=c(n.node.colnums[y]),a.open=!0}function u(){a.open=!1,a.draft=null,a.index=-1}function C(){if(a.draft&&a.index>=0){const y=[...n.node.colnums];y[a.index]=a.draft,l("update",{colnums:y})}u()}function S(y,f){y.isshow=f?1:0,l("update",{colnums:[...n.node.colnums]})}async function N(){const y={name:`col_${Date.now().toString(36)}`,isshow:1,major:"",showname:"新列",showwidth:"",background:"",prospect:"",issum:0,index:n.node.colnums.length+1,align:"",iscompletehide:0,iscompletehidecode:"",issamecolmerge:0,bindLink:"",editmode:{editmode:"text",title:"文本"},events:[]};l("update",{colnums:[...n.node.colnums,y]}),await e.nextTick(),p(n.node.colnums.length-1)}function V(y){const f=n.node.colnums.slice();f.splice(y,1),l("update",{colnums:f})}function m(y){return/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(y)?y:"#ffffff"}function k(y,f){a.draft&&(a.draft[y]=f.target.value)}const h=e.computed(()=>{var y;return((y=r.subTables.find(f=>f.name===n.node.secondtable))==null?void 0:y.fields)??[]});function x(y){if(!a.draft)return;const f=y.target.value;a.draft.name=f;const b=h.value.find(E=>E.name===f);if(b){a.draft.showname=b.label;const E=b.dataType==="file";a.draft.editmode.editmode=E?"files":"text",a.draft.editmode.title=E?"文件":"文本",a.draft.bindLink=b.dataType==="link"?f:""}}function T(y){d("tablestyle",y||"table")}return(y,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",en,[e.createElementVNode("div",tn,[f[13]||(f[13]=e.createElementVNode("label",null,"选择子表",-1)),e.createVNode(e.unref(_.ElSelect),{"model-value":t.node.secondtable,filterable:"",clearable:"",placeholder:"请选择子表",style:{width:"100%"},"onUpdate:modelValue":i},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.value,b=>(e.openBlock(),e.createBlock(e.unref(_.ElOption),{key:b.name,label:`${b.label}(${b.name})`,value:b.name},null,8,["label","value"]))),128))]),_:1},8,["model-value"])]),e.createElementVNode("div",nn,[f[14]||(f[14]=e.createElementVNode("label",null,"只读",-1)),e.createVNode(A,{"model-value":t.node.isreadonly==="1","onUpdate:modelValue":f[0]||(f[0]=b=>d("isreadonly",b?"1":"0"))},null,8,["model-value"])]),e.createElementVNode("div",on,[f[15]||(f[15]=e.createElementVNode("label",null,"序号列",-1)),e.createVNode(A,{"model-value":t.node.secondtableindex==="1","onUpdate:modelValue":f[1]||(f[1]=b=>d("secondtableindex",b?"1":"0"))},null,8,["model-value"])]),e.createElementVNode("div",ln,[f[16]||(f[16]=e.createElementVNode("label",null,"表格样式",-1)),e.createVNode(e.unref(_.ElSelect),{"model-value":t.node.tablestyle||"table",style:{width:"100%"},"onUpdate:modelValue":T},{default:e.withCtx(()=>[e.createVNode(e.unref(_.ElOption),{label:"表格",value:"table"}),e.createVNode(e.unref(_.ElOption),{label:"卡片列表",value:"cards"})]),_:1},8,["model-value"])]),e.createElementVNode("div",an,[e.createElementVNode("div",sn,[e.createElementVNode("span",null,"列配置("+e.toDisplayString(t.node.colnums.length)+")",1),e.createElementVNode("button",{class:"fd-btn fd-btn--primary fd-btn--sm",onClick:N},"+ 新增列")]),t.node.colnums.length===0?(e.openBlock(),e.createElementBlock("div",rn," 暂无列,点击「新增列」添加 ")):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.colnums,(b,E)=>(e.openBlock(),e.createElementBlock("div",{key:b.name,class:"fd-col-card"},[e.createElementVNode("div",dn,[e.createElementVNode("span",cn,e.toDisplayString(E+1),1),e.createElementVNode("div",mn,[e.createElementVNode("span",fn,e.toDisplayString(b.showname||"未命名列"),1),e.createElementVNode("span",pn,e.toDisplayString(b.name),1)]),e.createElementVNode("span",gn,e.toDisplayString(b.bindLink?"链接":"文本"),1)]),e.createElementVNode("div",kn,[e.createElementVNode("label",un,[f[17]||(f[17]=e.createElementVNode("span",null,"显示",-1)),e.createVNode(A,{"model-value":b.isshow===1,"onUpdate:modelValue":g=>S(b,g)},null,8,["model-value","onUpdate:modelValue"])]),e.createElementVNode("div",bn,[e.createElementVNode("button",{class:"fd-btn fd-btn--ghost fd-btn--sm",onClick:g=>p(E)},"设置",8,hn),e.createElementVNode("button",{class:"fd-btn fd-btn--danger fd-btn--sm",onClick:g=>V(E)},"删除",8,yn)])])]))),128))])]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[a.open&&a.draft?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fd-dialog-mask",onClick:e.withModifiers(u,["self"])},[e.createElementVNode("div",En,[e.createElementVNode("div",Nn,[e.createElementVNode("span",null,"列设置 · "+e.toDisplayString(a.draft.showname||a.draft.name||"新列"),1),e.createElementVNode("button",{class:"fd-dialog-close",onClick:u,title:"关闭"},"×")]),e.createElementVNode("div",Vn,[e.createElementVNode("section",wn,[f[23]||(f[23]=e.createElementVNode("h5",{class:"fd-form-section-h"},"基本信息",-1)),e.createElementVNode("div",Bn,[e.createElementVNode("div",Cn,[f[19]||(f[19]=e.createElementVNode("label",null,"列字段",-1)),e.createElementVNode("select",{value:a.draft.name,onChange:f[2]||(f[2]=b=>x(b))},[f[18]||(f[18]=e.createElementVNode("option",{value:""},"请选择字段",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,b=>(e.openBlock(),e.createElementBlock("option",{key:b.name,value:b.name},e.toDisplayString(b.label)+"("+e.toDisplayString(b.name)+")",9,_n))),128))],40,$n)]),e.createElementVNode("div",xn,[f[20]||(f[20]=e.createElementVNode("label",null,"显示标题",-1)),e.createElementVNode("input",{value:a.draft.showname,onInput:f[3]||(f[3]=b=>a.draft.showname=b.target.value),placeholder:"如 姓名"},null,40,Sn)]),e.createElementVNode("div",Dn,[f[21]||(f[21]=e.createElementVNode("label",null,"主表头分组",-1)),e.createElementVNode("input",{value:a.draft.major,onInput:f[4]||(f[4]=b=>a.draft.major=b.target.value),placeholder:"可合并表头分组名"},null,40,In)]),e.createElementVNode("div",Fn,[f[22]||(f[22]=e.createElementVNode("label",null,"列序号",-1)),e.createElementVNode("input",{type:"number",min:"1",value:a.draft.index,onInput:f[5]||(f[5]=b=>a.draft.index=Number(b.target.value))},null,40,Tn)])])]),e.createElementVNode("section",Ln,[f[29]||(f[29]=e.createElementVNode("h5",{class:"fd-form-section-h"},"显示与样式",-1)),e.createElementVNode("div",Mn,[e.createElementVNode("div",On,[f[24]||(f[24]=e.createElementVNode("label",null,"列宽",-1)),e.createElementVNode("input",{value:a.draft.showwidth,onInput:f[6]||(f[6]=b=>a.draft.showwidth=b.target.value),placeholder:"如 120px 或 20%"},null,40,Pn)]),e.createElementVNode("div",zn,[f[26]||(f[26]=e.createElementVNode("label",null,"对齐方式",-1)),e.createElementVNode("select",{value:a.draft.align,onChange:f[7]||(f[7]=b=>a.draft.align=b.target.value)},[...f[25]||(f[25]=[e.createElementVNode("option",{value:""},"默认(左)",-1),e.createElementVNode("option",{value:"left"},"左对齐",-1),e.createElementVNode("option",{value:"center"},"居中",-1),e.createElementVNode("option",{value:"right"},"右对齐",-1)])],40,Un)]),e.createElementVNode("div",jn,[f[27]||(f[27]=e.createElementVNode("label",null,"背景色",-1)),e.createElementVNode("div",An,[e.createElementVNode("input",{type:"color",value:m(a.draft.background),onInput:f[8]||(f[8]=b=>k("background",b))},null,40,Rn),e.createElementVNode("input",{value:a.draft.background,onInput:f[9]||(f[9]=b=>a.draft.background=b.target.value),placeholder:"如 #f5f7fa 或空"},null,40,Jn)])]),e.createElementVNode("div",qn,[f[28]||(f[28]=e.createElementVNode("label",null,"字体色",-1)),e.createElementVNode("div",Wn,[e.createElementVNode("input",{type:"color",value:m(a.draft.prospect),onInput:f[10]||(f[10]=b=>k("prospect",b))},null,40,Hn),e.createElementVNode("input",{value:a.draft.prospect,onInput:f[11]||(f[11]=b=>a.draft.prospect=b.target.value),placeholder:"如 #f5523a 或空"},null,40,Gn)])])])]),e.createElementVNode("section",Yn,[f[32]||(f[32]=e.createElementVNode("h5",{class:"fd-form-section-h"},"编辑模式",-1)),e.createElementVNode("div",Kn,[e.createElementVNode("div",Qn,[f[30]||(f[30]=e.createElementVNode("label",null,"同内容合并",-1)),e.createVNode(A,{"model-value":a.draft.issamecolmerge===1,"onUpdate:modelValue":f[12]||(f[12]=b=>a.draft.issamecolmerge=b?1:0)},null,8,["model-value"])]),e.createElementVNode("div",Xn,[f[31]||(f[31]=e.createElementVNode("label",null,"链接",-1)),e.createElementVNode("input",{value:a.draft.bindLink?`${a.draft.bindLink}(链接字段自动绑定)`:"非链接字段",readonly:""},null,8,Zn)])])])]),e.createElementVNode("div",{class:"fd-dialog-foot"},[e.createElementVNode("button",{class:"fd-btn fd-btn--ghost",onClick:u},"取消"),e.createElementVNode("button",{class:"fd-btn fd-btn--primary",onClick:C},"确定")])])])):e.createCommentVNode("",!0)]))],64))}}),[["__scopeId","data-v-e1fd519d"]]);function eo(){return[{name:"field1",isshow:1,major:"",showname:"字段一",showwidth:"",background:"",prospect:"",issum:0,index:1,align:"",iscompletehide:0,iscompletehidecode:"",issamecolmerge:0,bindLink:"",editmode:{editmode:"text",title:"文本"},events:[]},{name:"field2",isshow:1,major:"",showname:"字段二",showwidth:"",background:"",prospect:"",issum:0,index:2,align:"",iscompletehide:0,iscompletehidecode:"",issamecolmerge:0,bindLink:"",editmode:{editmode:"text",title:"文本"},events:[]}]}const to={type:"subtable",title:"子表",design:It,render:Zt,panel:vn,isContainer:!1,createDefaultProps:()=>({id:"",type:"subtable",label:"子表",bindField:"",firsttable:"",secondtable:"",primarytablefiled:"",secondtableprimarykey:"",secondtablerelationfield:"",tabletype:"subtable",displaytitle:"",tablestyle:"table",isreadonly:"1",isnull:"0",issave:"0",secondtableindex:"0",nodatahidetable:"0",nodatatitle:"1",fixedcolumn:0,tablewidth:0,tableheight:0,iscompletehide:"0",iscompletehidecode:"",colnums:eo(),events:[]}),serialize:t=>t},no=B(e.defineComponent({__name:"GridDesign",props:{node:{}},setup(t){const o=I();return(n,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["fd-grid-design",{"is-mobile":e.unref(o).device==="mobile"}])},[e.renderSlot(n.$slots,"children",{},void 0,!0)],2))}}),[["__scopeId","data-v-25511a77"]]),q=e.defineComponent({__name:"WidgetHost",props:{node:{},mode:{},formMode:{},formData:{},formId:{}},setup(t){const o=t,n=e.computed(()=>L(o.node.type)),l=e.computed(()=>n.value?o.mode==="design"?n.value.design:n.value.render:null),r=s=>s&&o.formData?o.formData[s]:void 0;return(s,d)=>{var a;const i=e.resolveComponent("WidgetHost",!0);return l.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),e.mergeProps({key:0,node:t.node,value:r(t.node.bindField),"form-data":t.formData},t.mode==="render"?{formMode:t.formMode,formId:t.formId}:null),e.createSlots({_:2},[e.renderList(s.$slots,(c,p)=>({name:p,fn:e.withCtx(u=>[e.renderSlot(s.$slots,p,e.normalizeProps(e.guardReactiveProps(u||{})))])})),(a=n.value)!=null&&a.isContainer&&!s.$slots.children?{name:"children",fn:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.children,c=>(e.openBlock(),e.createBlock(i,{key:c.id,node:c,mode:t.mode,"form-mode":t.formMode,"form-data":t.formData,"form-id":t.formId},e.createSlots({_:2},[e.renderList(s.$slots,(p,u)=>({name:u,fn:e.withCtx(C=>[e.renderSlot(s.$slots,u,e.mergeProps({ref_for:!0},C||{}))])}))]),1032,["node","mode","form-mode","form-data","form-id"]))),128))]),key:"0"}:void 0]),1040,["node","value","form-data"])):e.createCommentVNode("",!0)}}}),oo=24;function Z(t,o,n,l,r=!1){if(t.type!=="label"||!n.length)return"";const s=r?1:oo,d=V=>Math.min(Math.max(V.gridSpan||l||s,1),s),i=[];let a=0,c=0;for(const V of n){const m=d(V);a+m>s&&(a=0,c++);const k=a===0;a+=m;const h=a>=s;i.push({row:c,rowFirst:k,rowLast:h}),a>=s&&(a=0,c++)}const p=i[o];if(!p)return"";const u=i[i.length-1].row,C=p.row===0,S=p.row===u,N=[];return p.rowFirst&&C&&N.push("is-g-corner-tl"),p.rowLast&&C&&N.push("is-g-corner-tr"),p.rowFirst&&S&&N.push("is-g-corner-bl"),p.rowLast&&S&&N.push("is-g-corner-br"),N.join(" ")}const lo=B(e.defineComponent({__name:"GridRender",props:{node:{},formMode:{},formData:{},formId:{}},setup(t){const o=I(),n=e.ref(!1);let l=null;e.onMounted(()=>{l=window.matchMedia("(max-width: 768px)"),n.value=l.matches,l.addEventListener("change",s=>{n.value=s.matches})}),e.onUnmounted(()=>{l&&l.removeEventListener("change",()=>{})});const r=e.computed(()=>o.device==="mobile"||n.value);return(s,d)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["fd-grid-render",{"is-mobile":r.value}])},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.children,(i,a)=>(e.openBlock(),e.createElementBlock("div",{key:i.id,class:e.normalizeClass(["fd-grid-cell",e.unref(Z)(i,a,t.node.children||[],t.node.layout||24,r.value)]),style:e.normalizeStyle({gridColumn:`span ${i.gridSpan||t.node.layout}`})},[e.createVNode(q,{node:i,mode:"render","form-mode":t.formMode,"form-data":t.formData,"form-id":t.formId},e.createSlots({_:2},[e.renderList(s.$slots,(c,p)=>({name:p,fn:e.withCtx(u=>[e.renderSlot(s.$slots,p,e.mergeProps({ref_for:!0},u||{}),void 0,!0)])}))]),1032,["node","form-mode","form-data","form-id"])],6))),128))],2))}}),[["__scopeId","data-v-417035f9"]]),ao={class:"fd-panel"},so={class:"fd-panel-item"},ro=["value"],io=["value"],co={class:"fd-panel-item"},mo={type:"grid",title:"栅栏格",design:no,render:lo,panel:B(e.defineComponent({__name:"GridPanel",props:{node:{},fields:{}},emits:["update"],setup(t,{emit:o}){const n=t,l=o,r=[{label:"2列布局",value:24},{label:"4列布局",value:12},{label:"6列布局",value:8},{label:"8列布局",value:6}];function s(){const d=n.node.layout||24,i=(n.node.children??[]).map(a=>({...a,gridSpan:d}));l("update",{children:i})}return(d,i)=>(e.openBlock(),e.createElementBlock("div",ao,[e.createElementVNode("div",so,[i[1]||(i[1]=e.createElementVNode("label",null,"布局",-1)),e.createElementVNode("select",{value:t.node.layout,onChange:i[0]||(i[0]=a=>l("update",{layout:Number(a.target.value)}))},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(r,a=>e.createElementVNode("option",{key:a.value,value:a.value},e.toDisplayString(a.label),9,io)),64))],40,ro)]),e.createElementVNode("div",co,[i[2]||(i[2]=e.createElementVNode("label",null,"一键布局",-1)),e.createElementVNode("button",{class:"fd-btn fd-btn--primary fd-btn--sm fd-grid-apply",onClick:s}," 应用到全部子组件(每项占比 "+e.toDisplayString(t.node.layout||24)+"/24) ",1)])]))}}),[["__scopeId","data-v-a333d2ea"]]),isContainer:!0,createDefaultProps:()=>({id:"",type:"grid",label:"栅栏格",bindField:"",layout:8,children:[]}),serialize:t=>t},fo=B(e.defineComponent({__name:"TextDesign",props:{node:{}},setup(t){return(o,n)=>(e.openBlock(),e.createElementBlock("div",{class:"fd-text-design",style:e.normalizeStyle({display:t.node.display})},e.toDisplayString(t.node.text||"文本内容"),5))}}),[["__scopeId","data-v-ba382e6c"]]),po=B(e.defineComponent({__name:"TextRender",props:{node:{},value:{}},setup(t){const o=t,n=e.computed(()=>{if(!o.node.bindField)return o.node.text;const l=o.value;return l==null?"":String(l)});return(l,r)=>(e.openBlock(),e.createElementBlock("div",{class:"fd-text-render",style:e.normalizeStyle({display:t.node.display})},e.toDisplayString(n.value),5))}}),[["__scopeId","data-v-3ed7b0f0"]]),go={class:"fd-panel"},ko={class:"fd-panel-item"},uo=["value"],bo={class:"fd-panel-item"},ho=["value"],yo=["value"],Eo={class:"fd-panel-item"},No=["value"],Vo={type:"text",title:"文本",design:fo,render:po,panel:B(e.defineComponent({__name:"TextPanel",props:{node:{},fields:{}},emits:["update"],setup(t,{emit:o}){const n=o;return(l,r)=>(e.openBlock(),e.createElementBlock("div",go,[e.createElementVNode("div",ko,[r[3]||(r[3]=e.createElementVNode("label",null,"文本",-1)),e.createElementVNode("textarea",{rows:"4",value:t.node.text,onInput:r[0]||(r[0]=s=>n("update",{text:s.target.value}))},null,40,uo)]),e.createElementVNode("div",bo,[r[5]||(r[5]=e.createElementVNode("label",null,"绑定字段",-1)),e.createElementVNode("select",{value:t.node.bindField,onChange:r[1]||(r[1]=s=>n("update",{bindField:s.target.value}))},[r[4]||(r[4]=e.createElementVNode("option",{value:""},"不绑定",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.fields,s=>(e.openBlock(),e.createElementBlock("option",{key:s.name,value:s.name},e.toDisplayString(s.label)+"("+e.toDisplayString(s.name)+")",9,yo))),128))],40,ho)]),e.createElementVNode("div",Eo,[r[7]||(r[7]=e.createElementVNode("label",null,"对齐方式",-1)),e.createElementVNode("select",{value:t.node.display,onChange:r[2]||(r[2]=s=>n("update",{display:s.target.value}))},[...r[6]||(r[6]=[e.createElementVNode("option",{value:"inline-block"},"对齐",-1),e.createElementVNode("option",{value:"block"},"换行",-1)])],40,No)])]))}}),[["__scopeId","data-v-3201879c"]]),isContainer:!1,createDefaultProps:()=>({id:"",type:"text",label:"文本",bindField:"",text:"文本内容",display:"inline-block"}),serialize:t=>t};let v=!1;function W(){v||(v=!0,z(Te),z(rt),z(Nt),z(to),z(mo),z(Vo))}W();const wo={baseUrl:"/bpmapi-uat"};let H={},G={},Bo={};const Co="api/formdesigner/v1";function Y(t){G={...G,...t}}function $o(t){H.baseUrl=t}function _o(t){H.baseUrl=t?t.startsWith("/")?t:`/${t}`:""}function xo(t){}function So(){return{baseUrl:Bo.baseUrl??H.baseUrl??G.baseUrl??wo.baseUrl}}function O(t,o){const{baseUrl:n}=So(),l=new URLSearchParams;Object.entries(o??{}).forEach(([s,d])=>{d!=null&&d!==""&&l.append(s,d)});const r=l.toString();return`${n}/${Co}/${t}${r?`?${r}`:""}`}class ee extends Error{constructor(o,n){super(n),this.status=o,this.name="ApiError"}}function Do(t){if(!t)return"";try{const o=JSON.parse(t),n=o.error??o.message??o.title??o.detail;if(typeof n=="string"&&n)return n}catch{}return t}async function P(t,o){const n=await fetch(t,{...o,headers:{"Content-Type":"application/json",...(o==null?void 0:o.headers)??{}}}),l=await n.text();if(!n.ok)throw new ee(n.status,Do(l)||`请求失败(${n.status})`);if((n.headers.get("content-type")??"").includes("text/plain"))return l;if(!l)return null;try{return JSON.parse(l)}catch{return l}}function Io(t){if(t==null)return null;if(typeof t!="string")return t;try{return JSON.parse(t)}catch{return null}}function te(t){return t==null?{success:!1,message:"无响应"}:typeof t=="string"?{success:t.includes("成功"),message:t}:t}async function Fo(t,o){return P(O("opendesigner"),{method:"POST",body:JSON.stringify(t)})}async function To(t,o){return P(O("formconfig",{id:t}))}async function Lo(t,o,n){return P(O("fieldbinding/allfields",{dbtable:t,formid:o}))}async function Mo(t,o){return te(await P(O("save"),{method:"POST",body:JSON.stringify(t)}))}async function Oo(t,o){return te(await P(O("publish"),{method:"POST",body:JSON.stringify(t)}))}async function Po(t,o){return P(O("saveas"),{method:"POST",body:JSON.stringify(t)})}async function zo(t,o){return P(O("effectcount",{formId:t}))}async function Uo(t,o){return P(O("effectprocesses",{id:t.id,processName:t.processName,page:String(t.page??1),pageSize:String(t.pageSize??10)}))}function jo(t){return{name:t.name,label:t.label,dataType:t.dataType}}function Ao(t){return{name:t.name,label:t.label,dataType:t.dataType||"string"}}function Ro(t,o){return(t??[]).filter(n=>n.name&&n.name!==o).map(n=>({name:n.name,label:n.name,fields:(n.fields??[]).map(Ao)}))}function Jo(t){return Io(t)}function U(t){return t instanceof ee||t instanceof Error?t.message:String(t)}const j=t=>JSON.parse(JSON.stringify(t));function M(t,o){for(const n of t){if(n.id===o)return n;if(n.children){const l=M(n.children,o);if(l)return l}}return null}function ne(t,o){const n=t.findIndex(l=>l.id===o);if(n>=0)return t.splice(n,1),!0;for(const l of t)if(l.children&&ne(l.children,o))return!0;return!1}const I=de.defineStore("designer",{state:()=>({workFormId:"",originFormId:"",formId:"",formVersion:"",formName:"",dbtable:"",attribute:{},fields:[],subTables:[],widgets:[],selectedId:null,past:[],future:[],draggingId:null,device:"pc",dragOverId:null,dragBefore:!1,dropContainerId:null,selectedForm:!1,events:{lifecycle:{},custom:[]},loading:!1,errorMsg:"",noticeMsg:""}),getters:{selectedNode:t=>t.selectedId?M(t.widgets,t.selectedId):null,canUndo:t=>t.past.length>0,canRedo:t=>t.future.length>0,customEventOptions:t=>t.events.custom,attJson:t=>JSON.stringify({...t.attribute,id:t.attribute.id||t.workFormId})},actions:{commit(){this.past.push(j(this.widgets)),this.past.length>50&&this.past.shift(),this.future=[]},undo(){const t=this.past.pop();t&&(this.future.push(j(this.widgets)),this.widgets=t,this.selectedId&&!M(this.widgets,this.selectedId)&&(this.selectedId=null))},redo(){const t=this.future.pop();t&&(this.past.push(j(this.widgets)),this.widgets=t)},select(t){this.selectedId=t,this.selectedForm=!1},selectForm(){this.selectedId=null,this.selectedForm=!0},setLifecycleHook(t,o){this.events.lifecycle[t]=o},addCustomEvent(){const t=this.events.custom.length+1;this.events.custom.push({name:`event_${t}`,title:`自定义事件${t}`,handler:""})},updateCustomEvent(t,o){const n=this.events.custom[t];n&&Object.assign(n,o)},removeCustomEvent(t){this.events.custom.splice(t,1)},addWidget(t,o,n){var s;const l=ge(t);this.commit();const r=o?M(this.widgets,o):null;r&&((s=L(r.type))!=null&&s.isContainer)?(r.children=r.children||[],r.type==="grid"&&l.gridSpan==null&&(l.gridSpan=r.layout||24),n==null||n>r.children.length?r.children.push(l):r.children.splice(Math.max(0,n),0,l)):n==null||n>this.widgets.length?this.widgets.push(l):this.widgets.splice(Math.max(0,n),0,l),this.selectedId=l.id},isDescendant(t,o){if(!t.children)return!1;for(const n of t.children)if(n.id===o||this.isDescendant(n,o))return!0;return!1},moveNode(t,o,n){var p;if(t===o)return;const l=M(this.widgets,t);if(!l||o&&this.isDescendant(l,o))return;const r=o?M(this.widgets,o):null,s=u=>{const C=u.findIndex(S=>S.id===t);if(C>=0)return{list:u,index:C};for(const S of u)if(S.children){const N=s(S.children);if(N)return N}return null},d=s(this.widgets);if(!d)return;let i;r&&((p=L(r.type))!=null&&p.isContainer)?(r.children=r.children||[],i=r.children):i=this.widgets,this.commit();let a=n;i===d.list&&d.index<n&&(a=n-1);const[c]=d.list.splice(d.index,1);if(a=Math.max(0,Math.min(a,i.length)),i.splice(a,0,c),r&&r.type==="grid"){const u=r.layout||24;(d.list!==i||c.gridSpan==null)&&(c.gridSpan=u)}else delete c.gridSpan;this.selectedId=c.id},removeWidget(t){this.commit(),ne(this.widgets,t),this.selectedId===t&&(this.selectedId=null)},moveSibling(t,o){const n=i=>{if(i.findIndex(c=>c.id===t)>=0)return i;for(const c of i)if(c.children){const p=n(c.children);if(p)return p}return null},l=n(this.widgets);if(!l)return;const r=l.findIndex(i=>i.id===t),s=r+o;if(s<0||s>=l.length)return;this.commit();const[d]=l.splice(r,1);l.splice(s,0,d)},updateNode(t,o){const n=M(this.widgets,t);n&&(Object.assign(n,o),this.commit())},setDragging(t){this.draggingId=t},setExpanded(t,o){const n=M(this.widgets,t);n&&"expanded"in n&&(n.expanded=o)},dropTo(t){var r;const o=this.draggingId;if(!o||o===t)return;this.commit();const n=s=>{const d=s.findIndex(i=>i.id===o);if(d>=0){const[i]=s.splice(d,1);return i}for(const i of s)if(i.children){const a=n(i.children);if(a)return a}return null},l=n(this.widgets);if(!l){this.draggingId=null;return}if(t){const s=M(this.widgets,t);s&&((r=L(s.type))!=null&&r.isContainer)?(s.children=s.children||[],s.children.push(l)):this.widgets.push(l)}else this.widgets.push(l);this.draggingId=null,this.selectedId=l.id},loadSchema(t){this.formId=t.formId,this.dbtable=t.dbtable,this.fields=t.fields,this.widgets=j(t.widgets),this.events=t.events?j(t.events):{lifecycle:{},custom:[]},this.selectedId=null,this.selectedForm=!1,this.past=[],this.future=[]},toSchema(){return{formId:this.formId,dbtable:this.dbtable,fields:this.fields,widgets:this.widgets,events:j(this.events)}},toSaveJson(){const{formId:t,dbtable:o,widgets:n,events:l}=this.toSchema();return JSON.stringify({formId:t,dbtable:o,widgets:n,events:l})},setFields(t){this.fields=t},setSubTables(t){this.subTables=t},async openForm(t,o="",n=""){this.loading=!0,this.errorMsg="",this.noticeMsg="";try{if(!t){this.errorMsg="缺少表单 ID:请通过 URL 参数 ?id=<GUID> 打开已有表单";return}this.originFormId=t;const l=await Fo({openType:n,id:t,formVersion:o});this.workFormId=l.newFormID,this.formId=l.newFormID;const r=await To(l.newFormID);this.attribute=r.attribute??{},this.formName=this.attribute.name??"",this.device=r.templateType==="App"?"mobile":"pc";const s=this.attribute.dbtable||"",d=await Lo(s,l.newFormID);this.dbtable=s||d.dbtable;const i=this.enrichFields((d.fields??[]).map(jo));this.setFields(i),this.setSubTables(Ro(d.subtables,this.dbtable));const a=Jo(r.json);a&&Array.isArray(a.widgets)?this.loadSchema({...a,formId:l.newFormID,templateType:r.templateType,dbtable:this.dbtable,fields:i,widgets:a.widgets,events:a.events??{lifecycle:{},custom:[]}}):(this.noticeMsg="未能解析表单模板(老设计器 HTML 模板或空模板),已加载为空表单:字段与子表可正常绑定,请手动设计后保存",this.loadSchema({formId:l.newFormID,templateType:r.templateType,dbtable:this.dbtable,fields:i,widgets:[],events:{lifecycle:{},custom:[]}}))}catch(l){this.errorMsg=`加载失败:${U(l)}`}finally{this.loading=!1}},enrichFields(t){const o=this.attribute.settings??{},n=l=>l===!0||l==="true"||l==="1";return t.map(l=>{const r=o[l.name];return r?n(r.isdatetime)?{...l,dataType:"date"}:n(r.ismoney)?{...l,dataType:"money"}:l:l})},async save(){this.errorMsg="";try{return await Mo({id:this.workFormId,name:this.formName,att:this.attJson,json:this.toSaveJson(),formNature:"1",dataObject:this.attribute.isentity==="0"?JSON.stringify({table:""}):void 0})}catch(t){throw this.errorMsg=`保存失败:${U(t)}`,t}},async saveAs(t,o,n="start"){this.errorMsg="";try{return await Po({id:this.workFormId,name:t,code:o,saveSelect:n})}catch(l){throw this.errorMsg=`另存为失败:${U(l)}`,l}},async publish(t=""){this.errorMsg="";try{return await Oo({id:this.workFormId,name:this.formName,att:this.attJson,json:this.toSaveJson(),text:t})}catch(o){throw this.errorMsg=`发布失败:${U(o)}`,o}},async checkPublish(){this.errorMsg="";try{const t=await zo(this.originFormId);return{needConfirm:t.result||t.count>0,count:t.count}}catch(t){throw this.errorMsg=`发布检查失败:${U(t)}`,t}}}}),oe="fd:form:";function qo(t,o){localStorage.setItem(oe+t,JSON.stringify(o))}function Wo(t){const o=localStorage.getItem(oe+t);if(!o)return null;try{return JSON.parse(o)}catch{return null}}const Ho="fdFireEvent";function le(t,o={}){if(!(!t||!t.trim()))try{return new Function("ctx",`"use strict";
|
|
2
|
+
${t}`)(o)}catch(n){console.error("[form-designer] 事件处理函数执行失败:",n);return}}function Go(t){if(!(!t||!t.trim()||typeof document>"u"))try{const o=document.createElement("script");o.text=t,document.head.appendChild(o),o.remove()}catch(o){console.error("[form-designer] 自定义方法挂载失败:",o)}}const Yo={class:"fd-renderer"},K=B(e.defineComponent({__name:"Renderer",props:{widgets:{},formMode:{},formData:{},events:{},formId:{}},setup(t,{expose:o}){const n=t,l=e.computed(()=>n.widgets.filter(d=>{var a;const i=(a=L(d.type))==null?void 0:a.visibleModes;return!i||i.length===0?!0:n.formMode?i.includes(n.formMode):!0}));function r(d){var a;const i=(a=n.events)==null?void 0:a.lifecycle[d];le(i,{formData:n.formData,event:d})}function s(d,i){var c;const a=(c=n.events)==null?void 0:c.custom.find(p=>p.name===d);a&&le(a.handler,{formData:n.formData,event:d,payload:i})}return e.provide(Ho,s),e.onMounted(()=>{var d;r("onLoad"),r("onMounted"),Go((d=n.events)==null?void 0:d.lifecycle.custom)}),e.watch(()=>n.formData,()=>r("onValueChange"),{deep:!0}),o({fireEvent:s,runLifecycle:r}),(d,i)=>(e.openBlock(),e.createElementBlock("div",Yo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,a=>(e.openBlock(),e.createBlock(q,{key:a.id,node:a,mode:"render","form-mode":t.formMode,"form-data":t.formData,"form-id":t.formId},e.createSlots({_:2},[e.renderList(d.$slots,(c,p)=>({name:p,fn:e.withCtx(u=>[e.renderSlot(d.$slots,p,e.mergeProps({ref_for:!0},u||{}),void 0,!0)])}))]),1032,["node","form-mode","form-data","form-id"]))),128))]))}}),[["__scopeId","data-v-82088c12"]]),Ko={class:"fd-tree"},Qo={class:"fd-tree-head"},Xo={key:0,class:"fd-tree-count"},Zo={key:0,class:"fd-tree-empty"},vo={class:"fd-tree-name"},el=["title"],tl=B(e.defineComponent({__name:"ComponentTree",setup(t){const o=I();function n(d){var p;const i=L(d.type),a=d.label,c=(i==null?void 0:i.title)??d.type;return{id:d.id,label:a?`${c} · ${a}`:c,name:c,sub:a??"",children:(p=d.children)==null?void 0:p.map(n)}}const l=e.computed(()=>o.widgets.map(n)),r=e.computed(()=>{const d=i=>i.reduce((a,c)=>a+1+d(c.children??[]),0);return d(o.widgets)});function s(d){o.select(d.id),e.nextTick(()=>{var i;(i=document.querySelector(".fd-canvas-node.is-selected"))==null||i.scrollIntoView({block:"nearest"})})}return(d,i)=>(e.openBlock(),e.createElementBlock("div",Ko,[e.createElementVNode("div",Qo,[i[0]||(i[0]=e.createStaticVNode('<svg class="fd-tree-head-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" data-v-e38c14ec><rect x="3" y="3" width="7" height="7" rx="1" data-v-e38c14ec></rect><rect x="14" y="3" width="7" height="7" rx="1" data-v-e38c14ec></rect><rect x="3" y="14" width="7" height="7" rx="1" data-v-e38c14ec></rect><rect x="14" y="14" width="7" height="7" rx="1" data-v-e38c14ec></rect></svg><span class="fd-tree-title" data-v-e38c14ec>组件树</span>',2)),r.value?(e.openBlock(),e.createElementBlock("span",Xo,e.toDisplayString(r.value),1)):e.createCommentVNode("",!0)]),r.value?(e.openBlock(),e.createBlock(e.unref(_.ElTree),{key:1,class:"fd-tree-el",data:l.value,"node-key":"id","current-node-key":e.unref(o).selectedId||"","highlight-current":"","default-expand-all":"","show-line":"","expand-on-click-node":!1,onNodeClick:s},{default:e.withCtx(({data:a})=>[e.createElementVNode("span",vo,e.toDisplayString(a.name),1),a.sub?(e.openBlock(),e.createElementBlock("span",{key:0,class:"fd-tree-sub",title:a.sub},e.toDisplayString(a.sub),9,el)):e.createCommentVNode("",!0)]),_:1},8,["data","current-node-key"])):(e.openBlock(),e.createElementBlock("div",Zo,[...i[1]||(i[1]=[e.createElementVNode("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),e.createElementVNode("polyline",{points:"17 8 12 3 7 8"}),e.createElementVNode("line",{x1:"12",y1:"3",x2:"12",y2:"15"})],-1),e.createElementVNode("span",null,"暂无组件,从左侧拖拽控件到画布",-1)])]))]))}}),[["__scopeId","data-v-e38c14ec"]]);var nl={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值",alphaDescription:"透明度 {alpha}, 当前颜色 {color}",hueLabel:"选择色相值",hueDescription:"色相 {hue}, 当前颜色 {color}",svLabel:"选择饱和度与明度的值",svDescription:"饱和度 {saturation}, 明度 {brightness}, 当前颜色 {color}",predefineDescription:"选择 {value} 作为颜色"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",quarterTablePrompt:"使用方向键与 Enter 键可选择季度",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},input:{characters:"{count} / {max} 个字符"},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},mention:{loading:"加载中"},dropdown:{toggleDropdown:"切换下拉选项"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 Delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计",selectAllLabel:"选择所有行",selectRowLabel:"选择当前行",expandRowLabel:"展开当前行",collapseRowLabel:"收起当前行",sortLabel:"按 {column} 排序",filterLabel:"按 {column} 过滤"},tag:{close:"关闭此标签"},tour:{next:"下一步",previous:"上一步",finish:"结束导览",close:"关闭此对话框"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"},inputOTP:{groupLabel:"一次性密码输入框",defaultLabel:"请输入第 {index} 位 OTP 字符"}}};const ol={class:"fd-publish-tip"},ll={class:"fd-publish-tip-text"},al={class:"fd-publish-toolbar"},sl={class:"fd-publish-table-wrap"},rl={class:"fd-publish-table"},dl=["title"],il=["href","title"],cl=["title"],ml=["title"],fl={key:1,class:"fd-publish-error"},pl={class:"fd-publish-pager"},gl=B(e.defineComponent({__name:"PublishConfirmDialog",props:{modelValue:{type:Boolean},formId:{},count:{}},emits:["update:modelValue","confirm"],setup(t,{emit:o}){const n=_.ElLoading.directive,l=t,r=o,s=e.ref(!1),d=e.ref(""),i=e.ref(""),a=e.ref(1),c=e.ref(10),p=e.ref(0),u=e.ref([]);async function C(){if(l.formId){s.value=!0,d.value="";try{const V=await Uo({id:l.formId,processName:i.value,page:a.value,pageSize:c.value});u.value=V.items??[],p.value=V.total??0}catch(V){u.value=[],p.value=0,d.value=U(V)}finally{s.value=!1}}}e.watch(()=>l.modelValue,V=>{V&&(i.value="",a.value=1,C())}),e.watch(i,()=>{a.value=1,C()}),e.watch(a,()=>C());function S(){r("update:modelValue",!1)}function N(){r("confirm")}return(V,m)=>(e.openBlock(),e.createBlock(e.unref(_.ElConfigProvider),{locale:e.unref(nl)},{default:e.withCtx(()=>[e.createVNode(e.unref(_.ElDialog),{"model-value":t.modelValue,title:"发布确认",width:"70rem","close-on-click-modal":!1,"onUpdate:modelValue":m[3]||(m[3]=k=>r("update:modelValue",k))},{footer:e.withCtx(()=>[e.createVNode(e.unref(_.ElButton),{onClick:S},{default:e.withCtx(()=>[...m[9]||(m[9]=[e.createTextVNode("取消",-1)])]),_:1}),e.createVNode(e.unref(_.ElButton),{type:"primary",disabled:s.value,onClick:N},{default:e.withCtx(()=>[...m[10]||(m[10]=[e.createTextVNode("确认发布",-1)])]),_:1},8,["disabled"])]),default:e.withCtx(()=>[e.createElementVNode("div",ol,[m[6]||(m[6]=e.createElementVNode("span",{class:"fd-publish-tip-icon"},"!",-1)),e.createElementVNode("span",ll,[m[4]||(m[4]=e.createTextVNode(" 该表单正在被 ",-1)),e.createElementVNode("b",null,e.toDisplayString(t.count),1),m[5]||(m[5]=e.createTextVNode(" 个流程使用,发布后将影响以下流程,确定发布? ",-1))])]),e.createElementVNode("div",al,[e.createVNode(e.unref(_.ElInput),{modelValue:i.value,"onUpdate:modelValue":m[0]||(m[0]=k=>i.value=k),placeholder:"输入流程名搜索",clearable:"",class:"fd-publish-search"},null,8,["modelValue"])]),e.withDirectives((e.openBlock(),e.createElementBlock("div",sl,[e.createElementVNode("table",rl,[m[7]||(m[7]=e.createElementVNode("colgroup",null,[e.createElementVNode("col",{style:{width:"24%"}}),e.createElementVNode("col",{style:{width:"40%"}}),e.createElementVNode("col",{style:{width:"36%"}})],-1)),m[8]||(m[8]=e.createElementVNode("thead",null,[e.createElementVNode("tr",null,[e.createElementVNode("th",null,"表单名称"),e.createElementVNode("th",null,"流程模板"),e.createElementVNode("th",null,"模板ID")])],-1)),e.createElementVNode("tbody",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,k=>(e.openBlock(),e.createElementBlock("tr",{key:k.templateId||k.formId},[e.createElementVNode("td",{title:k.formNameCN||k.formCode},e.toDisplayString(k.formNameCN||k.formCode),9,dl),e.createElementVNode("td",null,[k.templateUrl?(e.openBlock(),e.createElementBlock("a",{key:0,class:"fd-publish-link",href:k.templateUrl,target:"_blank",rel:"noopener noreferrer",title:k.templateName},e.toDisplayString(k.templateName),9,il)):(e.openBlock(),e.createElementBlock("span",{key:1,title:k.templateName},e.toDisplayString(k.templateName),9,cl))]),e.createElementVNode("td",{class:"fd-publish-id",title:k.templateId},e.toDisplayString(k.templateId),9,ml)]))),128))])]),!u.value.length&&!d.value&&!s.value?(e.openBlock(),e.createBlock(e.unref(_.ElEmpty),{key:0,description:"暂无可用流程模板","image-size":60})):e.createCommentVNode("",!0),!u.value.length&&d.value?(e.openBlock(),e.createElementBlock("div",fl,e.toDisplayString(d.value),1)):e.createCommentVNode("",!0)])),[[e.unref(n),s.value]]),e.createElementVNode("div",pl,[e.createVNode(e.unref(_.ElPagination),{"current-page":a.value,"onUpdate:currentPage":m[1]||(m[1]=k=>a.value=k),"page-size":c.value,"onUpdate:pageSize":m[2]||(m[2]=k=>c.value=k),total:p.value,"page-sizes":[10,20,50],layout:"total, sizes, prev, pager, next",background:""},null,8,["current-page","page-size","total"])])]),_:1},8,["model-value"])]),_:1},8,["locale"]))}}),[["__scopeId","data-v-6fdc08dc"]]),kl={class:"fd-toolbar"},ul={class:"fd-toolbar-left flex-align-center"},bl=["value"],hl={class:"fd-device"},yl={key:0,class:"is-active",title:"移动端比例(由 URL 参数 templateType 决定)"},El={key:1,class:"is-active",title:"电脑端比例(由 URL 参数 templateType 决定)"},Nl={class:"fd-toolbar-right flex-align-center"},Vl=["disabled"],wl=["disabled"],Bl={class:"fd-dialog fd-dialog--preview"},Cl={class:"fd-dialog-head"},$l={class:"fd-preview-width"},_l={class:"fd-dialog-body"},xl={class:"fd-dialog"},Sl={class:"fd-dialog-head"},Dl={class:"fd-dialog-code"},Il={class:"fd-dialog"},Fl={class:"fd-dialog-head"},Tl={class:"fd-dialog-body"},Ll=B(e.defineComponent({__name:"Toolbar",setup(t){const o=I(),n=e.ref(!1),l=e.ref(!1),r=e.ref(!1),s=e.ref(!1),d=e.ref(!1),i=e.ref(0);function a(){const E=new URLSearchParams(window.location.search).get("templateType")||"";return E==="mobile"||E==="2"}const c=e.ref(a()?375:1200);function p(){const E=Number(c.value);c.value=Math.min(1200,Math.max(270,Number.isFinite(E)?E:1200))}e.watch(()=>o.device,E=>{c.value=E==="mobile"?375:1200});const u=e.ref("");function C(){const E=u.value.trim();if(!E){window.alert("请先粘贴表单 JSON");return}try{o.loadSchema(JSON.parse(E))}catch{window.alert("JSON 解析失败");return}u.value="",s.value=!1}const S=e.computed(()=>JSON.stringify(o.toSchema(),null,2)),N=e.computed(()=>{const E={};o.fields.forEach(w=>{E[w.name]=w.name});const g=(w,F)=>(w.forEach(D=>{var re;D.type==="subtable"&&F.push(D),(re=D.children)!=null&&re.length&&g(D.children,F)}),F);return g(o.widgets,[]).forEach(w=>{if(w.type!=="subtable"||!w.secondtable)return;const F={};(w.colnums??[]).forEach(D=>{F[D.name]=D.name,D.bindLink&&(F[D.bindLink]=D.bindLink)}),E[w.secondtable]=[F]}),E});async function V(){if(!o.workFormId){window.alert("尚未打开表单,无法保存");return}if(!o.formName.trim()){window.alert("请先填写表单名称(保存必填)");return}try{const E=await o.save();E.success?(qo(o.formId,o.toSchema()),window.alert(`${E.message}
|
|
3
|
+
工作表单 ID:${o.workFormId}`)):window.alert(`保存失败:${E.message}`)}catch{window.alert(o.errorMsg||"保存失败")}}async function m(){var w,F;if(!o.workFormId){window.alert("尚未打开表单,无法另存为");return}const E=(w=window.prompt("新表单名称",`${o.formName||"表单"} 副本`))==null?void 0:w.trim();if(!E)return;const g=(F=window.prompt("新表单编码(如 SG_ZL_YYQHTSP,_M 结尾为移动端模板)",""))==null?void 0:F.trim();if(g)try{const D=await o.saveAs(E,g);D.success?window.alert(`${D.message}
|
|
4
|
+
新表单 ID:${D.newFormID}`):window.alert(`另存为失败:${D.message}`)}catch{window.alert(o.errorMsg||"另存为失败")}}function k(){location.reload()}async function h(){if(!o.workFormId){window.alert("尚未打开表单,无法发布");return}if(!o.formName.trim()){window.alert("请先填写表单名称(发布必填)");return}try{const{needConfirm:E,count:g}=await o.checkPublish();if(E){i.value=g,d.value=!0;return}await x()}catch{window.alert(o.errorMsg||"发布检查失败")}}async function x(){try{const E=await o.publish();window.alert(E.success?E.message:`发布失败:${E.message}`)}catch{window.alert(o.errorMsg||"发布失败")}}async function T(){d.value=!1,await x()}const y=e.ref(null),f=e.ref(null);function b(E){var w,F;if(!r.value)return;const g=E.target;(w=y.value)!=null&&w.contains(g)||(F=f.value)!=null&&F.contains(g)||(r.value=!1)}return e.onMounted(()=>document.addEventListener("click",b)),e.onBeforeUnmount(()=>document.removeEventListener("click",b)),(E,g)=>(e.openBlock(),e.createElementBlock("div",kl,[e.createElementVNode("div",ul,[g[18]||(g[18]=e.createElementVNode("span",{class:"fd-toolbar-title"},"表单设计器",-1)),e.createElementVNode("input",{class:"fd-toolbar-name",value:e.unref(o).formName,placeholder:"表单名称(保存必填)",onInput:g[0]||(g[0]=w=>e.unref(o).formName=w.target.value)},null,40,bl),e.createElementVNode("div",hl,[e.unref(o).device==="mobile"?(e.openBlock(),e.createElementBlock("button",yl,[...g[16]||(g[16]=[e.createElementVNode("svg",{class:"fd-tool-btn-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("rect",{x:"5",y:"2",width:"14",height:"20",rx:"2"}),e.createElementVNode("line",{x1:"12",y1:"18",x2:"12.01",y2:"18"})],-1),e.createTextVNode(" 移动端 ",-1)])])):(e.openBlock(),e.createElementBlock("button",El,[...g[17]||(g[17]=[e.createElementVNode("svg",{class:"fd-tool-btn-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("rect",{x:"2",y:"3",width:"20",height:"14",rx:"2"}),e.createElementVNode("line",{x1:"8",y1:"21",x2:"16",y2:"21"}),e.createElementVNode("line",{x1:"12",y1:"17",x2:"12",y2:"21"})],-1),e.createTextVNode(" 电脑端 ",-1)])]))])]),e.createElementVNode("div",Nl,[e.createElementVNode("button",{class:"fd-tool-btn",onClick:g[1]||(g[1]=w=>n.value=!0)},[...g[19]||(g[19]=[e.createElementVNode("svg",{class:"fd-tool-btn-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),e.createElementVNode("circle",{cx:"12",cy:"12",r:"3"})],-1),e.createTextVNode(" 预览 ",-1)])]),e.createElementVNode("button",{class:"fd-tool-btn",onClick:g[2]||(g[2]=w=>l.value=!0)},[...g[20]||(g[20]=[e.createElementVNode("svg",{class:"fd-tool-btn-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("polyline",{points:"16 18 22 12 16 6"}),e.createElementVNode("polyline",{points:"8 6 2 12 8 18"})],-1),e.createTextVNode(" 查看代码 ",-1)])]),e.createElementVNode("button",{class:"fd-tool-btn",onClick:g[3]||(g[3]=w=>s.value=!0)},[...g[21]||(g[21]=[e.createElementVNode("svg",{class:"fd-tool-btn-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),e.createElementVNode("polyline",{points:"17 8 12 3 7 8"}),e.createElementVNode("line",{x1:"12",y1:"3",x2:"12",y2:"15"})],-1),e.createTextVNode(" 导入 ",-1)])]),e.createElementVNode("button",{class:"fd-tool-btn",onClick:k},[...g[22]||(g[22]=[e.createElementVNode("svg",{class:"fd-tool-btn-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("polyline",{points:"23 4 23 10 17 10"}),e.createElementVNode("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})],-1),e.createTextVNode(" 加载 ",-1)])]),e.createElementVNode("button",{class:"fd-tool-btn",onClick:V},[...g[23]||(g[23]=[e.createElementVNode("svg",{class:"fd-tool-btn-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),e.createElementVNode("polyline",{points:"17 21 17 13 7 13 7 21"}),e.createElementVNode("polyline",{points:"7 3 7 8 15 8"})],-1),e.createTextVNode(" 保存 ",-1)])]),e.createElementVNode("button",{class:"fd-tool-btn",onClick:m},[...g[24]||(g[24]=[e.createElementVNode("svg",{class:"fd-tool-btn-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2"}),e.createElementVNode("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})],-1),e.createTextVNode(" 另存为 ",-1)])]),e.createElementVNode("button",{class:"fd-tool-btn fd-tool-btn--primary",onClick:h},[...g[25]||(g[25]=[e.createElementVNode("svg",{class:"fd-tool-btn-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("line",{x1:"22",y1:"2",x2:"11",y2:"13"}),e.createElementVNode("polygon",{points:"22 2 15 22 11 13 2 9 22 2"})],-1),e.createTextVNode(" 发布 ",-1)])]),g[29]||(g[29]=e.createElementVNode("span",{class:"fd-toolbar-divider"},null,-1)),e.createElementVNode("button",{class:"fd-tool-btn fd-tool-icon-btn",disabled:!e.unref(o).canUndo,title:"撤销",onClick:g[4]||(g[4]=w=>e.unref(o).undo())},[...g[26]||(g[26]=[e.createElementVNode("svg",{class:"fd-tool-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("polyline",{points:"9 14 4 9 9 4"}),e.createElementVNode("path",{d:"M20 20v-7a4 4 0 0 0-4-4H4"})],-1)])],8,Vl),e.createElementVNode("button",{class:"fd-tool-btn fd-tool-icon-btn",disabled:!e.unref(o).canRedo,title:"重做",onClick:g[5]||(g[5]=w=>e.unref(o).redo())},[...g[27]||(g[27]=[e.createElementVNode("svg",{class:"fd-tool-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("polyline",{points:"15 14 20 9 15 4"}),e.createElementVNode("path",{d:"M4 20v-7a4 4 0 0 1 4-4h12"})],-1)])],8,wl),e.createElementVNode("button",{ref_key:"treeBtnRef",ref:f,class:"fd-tool-btn",onClick:g[6]||(g[6]=w=>r.value=!r.value)},[...g[28]||(g[28]=[e.createStaticVNode('<svg class="fd-tool-btn-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" data-v-eae12460><line x1="8" y1="6" x2="21" y2="6" data-v-eae12460></line><line x1="8" y1="12" x2="21" y2="12" data-v-eae12460></line><line x1="8" y1="18" x2="21" y2="18" data-v-eae12460></line><line x1="3" y1="6" x2="3.01" y2="6" data-v-eae12460></line><line x1="3" y1="12" x2="3.01" y2="12" data-v-eae12460></line><line x1="3" y1="18" x2="3.01" y2="18" data-v-eae12460></line></svg> 组件树 ',2)])],512)]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[n.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fd-dialog-mask",onClick:g[9]||(g[9]=e.withModifiers(w=>n.value=!1,["self"]))},[e.createElementVNode("div",Bl,[e.createElementVNode("div",Cl,[g[32]||(g[32]=e.createElementVNode("span",null,"预览",-1)),e.createElementVNode("div",$l,[g[30]||(g[30]=e.createElementVNode("label",{for:"fd-preview-width-input"},"宽度",-1)),e.createVNode(e.unref(_.ElInputNumber),{id:"fd-preview-width-input",modelValue:c.value,"onUpdate:modelValue":g[7]||(g[7]=w=>c.value=w),min:270,max:1200,step:10,size:"small","controls-position":"right",onChange:p},null,8,["modelValue"]),g[31]||(g[31]=e.createElementVNode("span",{class:"fd-preview-width-unit"},"px",-1))]),e.createElementVNode("button",{class:"fd-tool-btn",onClick:g[8]||(g[8]=w=>n.value=!1)},"关闭")]),e.createElementVNode("div",_l,[e.createElementVNode("div",{class:"fd-preview-stage",style:e.normalizeStyle({width:c.value+"px"})},[e.createVNode(K,{widgets:e.unref(o).widgets,"form-data":N.value},null,8,["widgets","form-data"])],4)])])])):e.createCommentVNode("",!0),l.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:"fd-dialog-mask",onClick:g[11]||(g[11]=e.withModifiers(w=>l.value=!1,["self"]))},[e.createElementVNode("div",xl,[e.createElementVNode("div",Sl,[g[33]||(g[33]=e.createElementVNode("span",null,"JSON Schema",-1)),e.createElementVNode("button",{class:"fd-tool-btn",onClick:g[10]||(g[10]=w=>l.value=!1)},"关闭")]),e.createElementVNode("pre",Dl,e.toDisplayString(S.value),1)])])):e.createCommentVNode("",!0),s.value?(e.openBlock(),e.createElementBlock("div",{key:2,class:"fd-dialog-mask",onClick:g[14]||(g[14]=e.withModifiers(w=>s.value=!1,["self"]))},[e.createElementVNode("div",Il,[e.createElementVNode("div",Fl,[g[34]||(g[34]=e.createElementVNode("span",null,"导入(粘贴 JSON)",-1)),e.createElementVNode("button",{class:"fd-tool-btn",onClick:g[12]||(g[12]=w=>s.value=!1)},"取消"),e.createElementVNode("button",{class:"fd-tool-btn fd-tool-btn--primary",onClick:C},"确认")]),e.createElementVNode("div",Tl,[e.withDirectives(e.createElementVNode("textarea",{"onUpdate:modelValue":g[13]||(g[13]=w=>u.value=w),class:"fd-dialog-import-text",placeholder:"请粘贴表单 JSON(可从「查看代码」复制),确认后将覆盖当前表单"},null,512),[[e.vModelText,u.value]])])])])):e.createCommentVNode("",!0),r.value?(e.openBlock(),e.createElementBlock("div",{key:3,ref_key:"treeDrawerRef",ref:y,class:"fd-tree-drawer"},[e.createVNode(tl)],512)):e.createCommentVNode("",!0),e.createVNode(gl,{modelValue:d.value,"onUpdate:modelValue":g[15]||(g[15]=w=>d.value=w),"form-id":e.unref(o).originFormId,count:i.value,onConfirm:T},null,8,["modelValue","form-id","count"])]))]))}}),[["__scopeId","data-v-eae12460"]]),Ml={class:"fd-palette"},Ol={class:"fd-palette-group-title"},Pl=["onDragstart","onClick"],zl={class:"fd-palette-icon"},Ul=B(e.defineComponent({__name:"WidgetPalette",setup(t){const o=I(),n=pe(),l=[{title:"基础控件",types:["label","text"]},{title:"高级控件",types:["subtable"]},{title:"布局控件",types:["grid","card","slot"]}],r={grid:"▦",card:"▤",slot:"⧉",label:"T",text:"¶",subtable:"☰"};function s(a){return n.find(c=>c.type===a)}function d(a,c){var p;(p=a.dataTransfer)==null||p.setData("application/x-fd-new",c),a.dataTransfer&&(a.dataTransfer.effectAllowed="copy")}function i(a){o.addWidget(a)}return(a,c)=>(e.openBlock(),e.createElementBlock("div",Ml,[c[0]||(c[0]=e.createElementVNode("div",{class:"fd-palette-title"},"控件库",-1)),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(l,p=>e.createElementVNode("div",{key:p.title,class:"fd-palette-group"},[e.createElementVNode("div",Ol,e.toDisplayString(p.title),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.types,u=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u},[s(u)?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fd-palette-item",draggable:"true",onDragstart:C=>d(C,u),onClick:C=>i(u)},[e.createElementVNode("span",zl,e.toDisplayString(r[u]),1),e.createElementVNode("span",null,e.toDisplayString(s(u).title),1)],40,Pl)):e.createCommentVNode("",!0)],64))),128))])),64))]))}}),[["__scopeId","data-v-6a2bab90"]]),ae=[{key:"onLoad",label:"加载完成",desc:"表单数据就绪后触发"},{key:"onMounted",label:"渲染挂载",desc:"渲染完成并挂载到 DOM 后触发"},{key:"onValueChange",label:"值变化",desc:"任意字段值变化时触发"},{key:"custom",label:"自定义方法",desc:"写入的方法将挂载至全局 window,可在其他事件处理中调用"}],jl={class:"fd-form-events"},Al={class:"fd-form-meta"},Rl={class:"fd-events-section"},Jl={class:"fd-event-head"},ql=["title"],Wl={class:"fd-event-key"},Hl=["onClick","title"],Gl={key:0,class:"fd-event-trigger-text"},Yl={key:1,class:"fd-event-trigger-placeholder"},Kl={class:"fd-dialog",style:{"max-width":"600px"}},Ql={class:"fd-dialog-head"},Xl={class:"fd-dialog-body"},Zl=B(e.defineComponent({__name:"FormEventsPanel",setup(t){const o=e.defineAsyncComponent(()=>Promise.resolve().then(()=>ha)),n=I(),l=e.reactive({open:!1,type:"",hookKey:"",index:-1,title:"",draft:""});function r(i){l.open=!0,l.type="lifecycle",l.hookKey=i.key,l.title=`${i.label}(${i.key})`,l.draft=n.events.lifecycle[i.key]??""}function s(){l.type==="lifecycle"&&l.hookKey?n.setLifecycleHook(l.hookKey,l.draft):l.type==="custom"&&l.index>=0&&n.updateCustomEvent(l.index,{handler:l.draft}),l.open=!1}function d(){l.open=!1}return(i,a)=>(e.openBlock(),e.createElementBlock("div",jl,[a[4]||(a[4]=e.createElementVNode("div",{class:"fd-property-title"},"表单属性",-1)),e.createElementVNode("div",Al,[e.createElementVNode("span",null,"表单:"+e.toDisplayString(e.unref(n).formId),1),e.createElementVNode("span",null,"主表:"+e.toDisplayString(e.unref(n).dbtable),1)]),e.createElementVNode("section",Rl,[a[2]||(a[2]=e.createElementVNode("h4",{class:"fd-events-h"},"全局事件 · 生命周期",-1)),a[3]||(a[3]=e.createElementVNode("p",{class:"fd-events-tip"},"渲染时绑定至对应钩子函数中执行",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(ae),c=>(e.openBlock(),e.createElementBlock("div",{key:c.key,class:"fd-event-row"},[e.createElementVNode("div",Jl,[e.createElementVNode("label",{title:c.desc},e.toDisplayString(c.label),9,ql),e.createElementVNode("code",Wl,e.toDisplayString(c.key),1)]),e.createElementVNode("div",{class:"fd-event-trigger",onClick:p=>r(c),title:e.unref(n).events.lifecycle[c.key]||"点击编写处理函数"},[e.unref(n).events.lifecycle[c.key]?(e.openBlock(),e.createElementBlock("span",Gl,e.toDisplayString(e.unref(n).events.lifecycle[c.key]),1)):(e.openBlock(),e.createElementBlock("span",Yl,"点击编写")),a[1]||(a[1]=e.createElementVNode("span",{class:"fd-event-trigger-arrow"},"›",-1))],8,Hl)]))),128))]),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[l.open?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fd-dialog-mask",onClick:e.withModifiers(d,["self"])},[e.createElementVNode("div",Kl,[e.createElementVNode("div",Ql,[e.createElementVNode("span",null,"编写处理函数 - "+e.toDisplayString(l.title),1),e.createElementVNode("button",{class:"fd-dialog-close",onClick:d,title:"关闭"},"×")]),e.createElementVNode("div",Xl,[e.createVNode(e.unref(o),{modelValue:l.draft,"onUpdate:modelValue":a[0]||(a[0]=c=>l.draft=c),language:"javascript"},null,8,["modelValue"])]),e.createElementVNode("div",{class:"fd-dialog-foot"},[e.createElementVNode("button",{class:"fd-btn fd-btn--primary",onClick:s},"确定")])])])):e.createCommentVNode("",!0)]))]))}}),[["__scopeId","data-v-7e5a3f15"]]),vl={class:"fd-property"},ea={key:1,class:"fd-property-empty"},ta={key:1,class:"fd-property-item"},na=["value"],oa={class:"fd-property-foot"},la={class:"fd-property-type"},aa=B(e.defineComponent({__name:"PropertyPanel",setup(t){const o=I(),n=e.computed(()=>o.selectedNode),l=e.computed(()=>n.value?L(n.value.type):void 0),r=e.computed(()=>{var a;return(a=l.value)==null?void 0:a.panel});function s(a){n.value&&o.updateNode(n.value.id,a)}const d=e.computed(()=>n.value!=null&&n.value.gridSpan!=null);function i(a){if(!n.value)return;const c=Number(a.target.value),p=Math.min(24,Math.max(1,Number.isFinite(c)?Math.round(c):24));o.updateNode(n.value.id,{gridSpan:p})}return(a,c)=>{var p;return e.openBlock(),e.createElementBlock("div",vl,[c[2]||(c[2]=e.createElementVNode("div",{class:"fd-property-title"},"属性",-1)),e.unref(o).selectedForm?(e.openBlock(),e.createBlock(Zl,{key:0})):n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[r.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.value),{key:0,node:n.value,fields:e.unref(o).fields,onUpdate:s},null,40,["node","fields"])):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("div",ta,[c[1]||(c[1]=e.createElementVNode("label",null,"占比",-1)),e.createElementVNode("input",{type:"number",min:"1",max:"24",value:n.value.gridSpan,onChange:i},null,40,na)])):e.createCommentVNode("",!0),e.createElementVNode("div",oa,[e.createElementVNode("span",la,"类型:"+e.toDisplayString((p=l.value)==null?void 0:p.title),1)])],64)):(e.openBlock(),e.createElementBlock("div",ea,[...c[0]||(c[0]=[e.createElementVNode("span",{class:"fd-property-empty-icon"},"⚙",-1),e.createElementVNode("span",null,[e.createTextVNode("请选择左侧控件"),e.createElementVNode("br"),e.createTextVNode("或点击画板空白处设置表单属性")],-1)])]))])}}}),[["__scopeId","data-v-e89617c7"]]),sa={key:0,class:"fd-canvas-dropzone"},ra=B(e.defineComponent({__name:"CanvasNode",props:{node:{},parentId:{},index:{}},setup(t){const o=t,n=I(),l=e.ref(null),r=e.computed(()=>{const m={};return o.node.gridSpan!=null&&(m.gridColumn=`span ${o.node.gridSpan}`),o.node.type==="text"&&(m.display=o.node.display||"inline-block"),Object.keys(m).length?m:void 0}),s=()=>{var m;return(m=L(o.node.type))==null?void 0:m.isContainer};function d(m,k){if(o.node.type!=="grid")return"";const h=o.node.layout||24;return Z(m,k,o.node.children||[],h,n.device==="mobile")}function i(m){const k=m.dataTransfer;return!!k&&(k.types.includes("application/x-fd-new")||k.types.includes("application/x-fd-move"))}function a(){n.select(o.node.id)}function c(m){var k;m.stopPropagation(),n.setDragging(o.node.id),(k=m.dataTransfer)==null||k.setData("application/x-fd-move",o.node.id),m.dataTransfer&&(m.dataTransfer.effectAllowed="move")}function p(){n.dragOverId=null,n.dropContainerId=null,n.dragBefore=!1,n.setDragging(null)}function u(m){m.stopPropagation(),p()}function C(){n.dragOverId===o.node.id&&(n.dragOverId=null),n.dropContainerId===o.node.id&&(n.dropContainerId=null)}function S(m){if(i(m))if(m.preventDefault(),m.stopPropagation(),s())n.dragOverId=null,n.dragBefore=!1,n.dropContainerId=o.node.id;else{n.dropContainerId=null,n.dragOverId=o.node.id;const k=l.value;if(k){const h=k.getBoundingClientRect();n.dragBefore=m.clientY-h.top<h.height/2}}}function N(){C()}function V(m){var x,T,y;if(!i(m))return;m.preventDefault(),m.stopPropagation();const k=(x=m.dataTransfer)==null?void 0:x.getData("application/x-fd-new"),h=(T=m.dataTransfer)==null?void 0:T.getData("application/x-fd-move");if(s())k?n.addWidget(k,o.node.id):h&&n.moveNode(h,o.node.id,((y=o.node.children)==null?void 0:y.length)??0);else{const f=n.dragBefore?o.index:o.index+1;k?n.addWidget(k,o.parentId,f):h&&n.moveNode(h,o.parentId,f)}n.dragOverId=null,n.dragBefore=!1,n.dropContainerId=null}return(m,k)=>{const h=e.resolveComponent("CanvasNode",!0);return e.openBlock(),e.createElementBlock("div",{ref_key:"rootEl",ref:l,class:e.normalizeClass(["fd-canvas-node",[`fd-canvas-node--${t.node.type}`,{"is-selected":e.unref(n).selectedId===t.node.id,"drop-before":e.unref(n).dragOverId===t.node.id&&e.unref(n).dragBefore,"drop-target":e.unref(n).dropContainerId===t.node.id,"dragging-source":e.unref(n).draggingId===t.node.id}]]),style:e.normalizeStyle(r.value),draggable:"true",onMousedown:e.withModifiers(a,["stop"]),onClick:k[4]||(k[4]=e.withModifiers(()=>{},["stop"])),onDragstart:c,onDragend:u,onDragover:S,onDragleave:N,onDrop:V},[e.createElementVNode("div",{class:"fd-canvas-node-actions",onMousedown:k[3]||(k[3]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("span",{class:"fd-node-action",title:"上移",onClick:k[0]||(k[0]=e.withModifiers(x=>e.unref(n).moveSibling(t.node.id,-1),["stop"]))},[...k[5]||(k[5]=[e.createElementVNode("svg",{class:"fd-node-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("line",{x1:"12",y1:"20",x2:"12",y2:"5"}),e.createElementVNode("polyline",{points:"6 11 12 5 18 11"})],-1)])]),e.createElementVNode("span",{class:"fd-node-action",title:"下移",onClick:k[1]||(k[1]=e.withModifiers(x=>e.unref(n).moveSibling(t.node.id,1),["stop"]))},[...k[6]||(k[6]=[e.createElementVNode("svg",{class:"fd-node-icon",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.8","stroke-linecap":"round","stroke-linejoin":"round"},[e.createElementVNode("line",{x1:"12",y1:"4",x2:"12",y2:"19"}),e.createElementVNode("polyline",{points:"6 13 12 19 18 13"})],-1)])]),e.createElementVNode("span",{class:"fd-node-action delete",title:"删除",onClick:k[2]||(k[2]=e.withModifiers(x=>e.unref(n).removeWidget(t.node.id),["stop"]))},[...k[7]||(k[7]=[e.createStaticVNode('<svg class="fd-node-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" data-v-3f3a43d3><path d="M4 7h16" data-v-3f3a43d3></path><path d="M9 7V5.5a1.5 1.5 0 0 1 1.5-1.5h3A1.5 1.5 0 0 1 15 5.5V7" data-v-3f3a43d3></path><path d="M6.5 7l1 12.5h9l1-12.5" data-v-3f3a43d3></path><line x1="10" y1="11" x2="10" y2="16.5" data-v-3f3a43d3></line><line x1="14" y1="11" x2="14" y2="16.5" data-v-3f3a43d3></line></svg>',1)])])],32),e.createVNode(q,{node:t.node,mode:"design"},e.createSlots({_:2},[s()&&t.node.children?{name:"children",fn:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.children,(x,T)=>(e.openBlock(),e.createBlock(h,{key:x.id,node:x,"parent-id":t.node.id,index:T,class:e.normalizeClass(d(x,T))},null,8,["node","parent-id","index","class"]))),128)),!t.node.children||t.node.children.length===0?(e.openBlock(),e.createElementBlock("div",sa,"拖拽控件到此容器")):e.createCommentVNode("",!0)]),key:"0"}:void 0]),1032,["node"])],38)}}}),[["__scopeId","data-v-3f3a43d3"]]),da={class:"fd-designer"},ia={class:"fd-designer-body"},ca={class:"fd-designer-left"},ma={key:0,class:"fd-canvas-notice"},fa={key:1,class:"fd-canvas-state"},pa={key:2,class:"fd-canvas-state fd-canvas-state--error"},ga={key:0,class:"fd-canvas-empty"},ka={class:"fd-designer-right"},se=B(e.defineComponent({__name:"Designer",props:{formId:{}},setup(t){const o=t,n=I();e.onMounted(async()=>{const r=new URLSearchParams(window.location.search),s=r.get("baseUrl");s&&$o(s);const d=o.formId||r.get("id")||"",i=r.get("formVersion")||r.get("FormVersion")||"",a=r.get("openType")||r.get("OpenType")||"";await n.openForm(d,i,a)});function l(r){var i,a;r.preventDefault();const s=(i=r.dataTransfer)==null?void 0:i.getData("application/x-fd-new"),d=(a=r.dataTransfer)==null?void 0:a.getData("application/x-fd-move");s?n.addWidget(s,null,n.widgets.length):d&&n.moveNode(d,null,n.widgets.length)}return(r,s)=>(e.openBlock(),e.createElementBlock("div",da,[e.createVNode(Ll),e.createElementVNode("div",ia,[e.createElementVNode("aside",ca,[e.createVNode(Ul)]),e.createElementVNode("main",{class:"fd-designer-center",onDragover:s[1]||(s[1]=e.withModifiers(()=>{},["prevent"])),onDrop:l},[e.unref(n).noticeMsg?(e.openBlock(),e.createElementBlock("div",ma,e.toDisplayString(e.unref(n).noticeMsg),1)):e.createCommentVNode("",!0),e.unref(n).loading?(e.openBlock(),e.createElementBlock("div",fa,"正在加载表单…")):e.unref(n).errorMsg?(e.openBlock(),e.createElementBlock("div",pa,e.toDisplayString(e.unref(n).errorMsg),1)):(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["fd-canvas",{"is-mobile":e.unref(n).device==="mobile","is-selected":e.unref(n).selectedForm}]),onClick:s[0]||(s[0]=d=>e.unref(n).selectForm())},[e.unref(n).widgets.length===0?(e.openBlock(),e.createElementBlock("div",ga,[...s[2]||(s[2]=[e.createElementVNode("span",{class:"fd-canvas-empty-icon"},"▦",-1),e.createElementVNode("span",null,"从左侧拖拽控件到此处",-1)])])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(n).widgets,(d,i)=>(e.openBlock(),e.createBlock(ra,{key:d.id,node:d,"parent-id":null,index:i},null,8,["node","index"]))),128))],2))],32),e.createElementVNode("aside",ka,[e.createVNode(aa)])])]))}}),[["__scopeId","data-v-86f01272"]]);function ua(t){W(),t.baseUrl&&Y({baseUrl:t.baseUrl});let o=null;const n={render:()=>e.h(K,{widgets:t.widgets,formMode:t.formMode,formData:t.formData,events:t.events,formId:t.formId,ref:r=>{o=r}})},l=e.createApp(n);return l.mount(t.container),{fireEvent:(r,s)=>{var d;return(d=o==null?void 0:o.fireEvent)==null?void 0:d.call(o,r,s)},unmount:()=>l.unmount()}}const ba={install(t,o={}){W(),o.baseUrl&&Y({baseUrl:o.baseUrl}),t.component("FdDesigner",se)}},ha=Object.freeze(Object.defineProperty({__proto__:null,default:B(e.defineComponent({__name:"CodeEditor",props:{modelValue:{default:""},language:{default:"javascript"}},emits:["update:modelValue"],setup(t,{emit:o}){const n=t,l=o,r=e.ref(null);let s=null;return e.onMounted(()=>{r.value&&(me.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!0,noSyntaxValidation:!1}),s=Q.editor.create(r.value,{value:n.modelValue,language:n.language,theme:"vs-dark",automaticLayout:!0,fontSize:14,tabSize:2,minimap:{enabled:!1},scrollBeyondLastLine:!1,fontFamily:"'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace",scrollbar:{verticalScrollbarSize:8,horizontalScrollbarSize:8}}),s.onDidChangeModelContent(()=>{l("update:modelValue",(s==null?void 0:s.getValue())??"")}))}),e.watch(()=>n.modelValue,d=>{s&&d!==s.getValue()&&s.setValue(d??"")}),e.watch(()=>n.language,d=>{const i=s==null?void 0:s.getModel();i&&Q.editor.setModelLanguage(i,d)}),e.onBeforeUnmount(()=>{s==null||s.dispose(),s=null}),(d,i)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"container",ref:r,class:"fd-code-editor"},null,512))}}),[["__scopeId","data-v-aeb9c1ee"]])},Symbol.toStringTag,{value:"Module"}));$.Designer=se,$.LIFECYCLE_HOOKS=ae,$.Renderer=K,$.configureApi=Y,$.default=ba,$.loadFormFromLocal=Wo,$.registerComponent=z,$.renderForm=ua,$.setApiModule=xo,$.setBaseModule=_o,Object.defineProperties($,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
|