devject-design 0.1.1 → 0.1.2
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/README.md +35 -0
- package/dist/index.es.js +1275 -1242
- package/dist/index.umd.js +1 -1
- package/dist/pages/FormDesigner.d.ts +6 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(K,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("xlsx")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","xlsx"],e):(K=typeof globalThis<"u"?globalThis:K||self,e(K.DevjectDesign={},K.Vue,K.ElementPlus,K.XLSX))})(this,(function(K,e,ee,Oe){"use strict";function Ae(t){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const d=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(l,o,d.get?d:{enumerable:!0,get:()=>t[o]})}}return l.default=t,Object.freeze(l)}const re=Ae(Oe);function D(t){if(typeof crypto<"u"&&"randomUUID"in crypto)return`${t}_${crypto.randomUUID()}`;const l=Math.random().toString(16).slice(2),o=Date.now().toString(16);return`${t}_${o}_${l}`}function Ye(){return{version:1,root:{children:[]}}}function de(){const t=new Date().toISOString();return{createdAt:t,updatedAt:t,style:{}}}function M(t){return JSON.parse(JSON.stringify(t))}function Pe(t){if(t==="flexRow"){const o=D("row"),d=2;return{id:o,type:"flexRow",meta:de(),props:{cols:d,gap:12},columns:new Array(d).fill(0).map((s,x)=>({id:D(`col${x+1}`),children:[]}))}}if(t==="collapse")return{id:D("collapse"),type:"collapse",meta:de(),props:{accordion:!1},items:[{id:D("item"),title:"面板 1",name:D("val"),children:[]},{id:D("item"),title:"面板 2",name:D("val"),children:[]}]};if(t==="tabs")return{id:D("tabs"),type:"tabs",meta:de(),props:{type:"card"},tabs:[{id:D("tab"),label:"标签页 1",children:[]},{id:D("tab"),label:"标签页 2",children:[]}]};const l={id:D(t),type:t,meta:de(),props:{label:"字段",field:D("field"),placeholder:"请输入",required:!1}};return t==="select"||t==="radio"||t==="checkbox"?{...l,props:{...l.props,placeholder:"请选择",options:[{label:"选项 A",value:"A"},{label:"选项 B",value:"B"}],multiple:!1}}:t==="textarea"?{...l,props:{...l.props,placeholder:"请输入",label:"多行文本"}}:t==="switch"?{...l,props:{...l.props,label:"开关",activeText:"开启",inactiveText:"关闭",activeValue:!0,inactiveValue:!1}}:t==="title"?{...l,props:{...l.props,label:"标题",fontSize:16,bold:!0,align:"left"}}:t==="image-upload"||t==="file-upload"?{...l,props:{...l.props,label:t==="image-upload"?"图片上传":"文件上传",accept:t==="image-upload"?"image/*":"*",limit:3}}:t==="table"?{id:D("table"),type:"table",meta:de(),props:{label:"表格",field:D("table-field"),columns:[{id:D("col"),label:"列1",prop:"col1",type:"text"},{id:D("col"),label:"列2",prop:"col2",type:"number"}],pagination:!0,pageSize:10,enableExcelImport:!0}}:{...l,props:{...l.props,label:"文本框",inputType:"text"}}}function oe(t,l){function o(d,s){const x=d.findIndex(u=>u.id===l);if(x>=0)return{node:d[x],loc:{...s,index:x}};for(const u of d)if(u.type==="flexRow")for(let a=0;a<u.columns.length;a+=1){const f=o(u.columns[a].children,{kind:"flexCol",rowId:u.id,colIndex:a,index:0});if(f)return f}else if(u.type==="collapse")for(const a of u.items){const f=o(a.children,{kind:"collapse",collapseId:u.id,itemId:a.id,index:0});if(f)return f}else if(u.type==="tabs")for(const a of u.tabs){const f=o(a.children,{kind:"tab",tabsId:u.id,tabId:a.id,index:0});if(f)return f}return null}return o(t.root.children,{kind:"root",index:0})}function Ee(t,l){const o=oe(t,l);if(!o)return null;const d=je(t,o.loc),[s]=d.splice(o.loc.index,1);return s??null}function Se(t,l,o){const d=qe(t,l),s=Math.max(0,Math.min(l.insertIndex,d.length));d.splice(s,0,o)}function Je(t,l,o){const d=Ee(t,l);d&&(d.meta.updatedAt=new Date().toISOString(),Se(t,o,d))}function qe(t,l){var s,x,u,a;if(l.kind==="root")return t.root.children;if(l.kind==="flexCol"){const f=(s=oe(t,l.rowId))==null?void 0:s.node;return!f||f.type!=="flexRow"?t.root.children:((x=f.columns[l.colIndex])==null?void 0:x.children)??f.columns[0].children}if(l.kind==="collapse"){const f=(u=oe(t,l.collapseId))==null?void 0:u.node;return!f||f.type!=="collapse"?t.root.children:(f.items.find(B=>B.id===l.itemId)??f.items[0]).children}const o=(a=oe(t,l.tabsId))==null?void 0:a.node;return!o||o.type!=="tabs"?t.root.children:(o.tabs.find(f=>f.id===l.tabId)??o.tabs[0]).children}function je(t,l){var s,x,u,a;if(l.kind==="root")return t.root.children;if(l.kind==="flexCol"){const f=(s=oe(t,l.rowId))==null?void 0:s.node;return!f||f.type!=="flexRow"?t.root.children:((x=f.columns[l.colIndex])==null?void 0:x.children)??f.columns[0].children}if(l.kind==="collapse"){const f=(u=oe(t,l.collapseId))==null?void 0:u.node;return!f||f.type!=="collapse"?t.root.children:(f.items.find(B=>B.id===l.itemId)??f.items[0]).children}const o=(a=oe(t,l.tabsId))==null?void 0:a.node;return!o||o.type!=="tabs"?t.root.children:(o.tabs.find(f=>f.id===l.tabId)??o.tabs[0]).children}function we(t,l,o,d){const s=o==="input"||o==="textarea"||o==="select"||o==="radio"||o==="checkbox"||o==="switch"||o==="image-upload"||o==="file-upload"||o==="table"||o==="title",x=o==="collapse"||o==="tabs",u=o==="flexRow",a=Xe(t,d);return d.kind==="root"||a==="flexRow"?u||x||s:a==="collapse"||a==="tabs"?s||u:!1}function Xe(t,l){return l.kind==="root"?"root":l.kind==="flexCol"?"flexRow":l.kind==="collapse"?"collapse":"tabs"}function Ke(t){const l=t;if(!l||typeof l!="object")throw new Error("invalid");if(l.version!==1)throw new Error("invalid");if(!l.root||!Array.isArray(l.root.children))throw new Error("invalid");for(const o of l.root.children)fe(o);return l}function fe(t){if(!t||typeof t!="object")throw new Error("invalid");if((!t.meta||typeof t.meta!="object")&&(t.meta=de()),typeof t.meta.createdAt!="string"&&(t.meta.createdAt=new Date().toISOString()),typeof t.meta.updatedAt!="string"&&(t.meta.updatedAt=t.meta.createdAt),(!t.meta.style||typeof t.meta.style!="object")&&(t.meta.style={}),t.type==="flexRow"){Array.isArray(t.columns)||(t.columns=[]);for(const l of t.columns)if(!(!l||typeof l!="object")){Array.isArray(l.children)||(l.children=[]);for(const o of l.children)fe(o)}return}if(t.type==="collapse"){Array.isArray(t.items)||(t.items=[]);for(const l of t.items)if(!(!l||typeof l!="object")){Array.isArray(l.children)||(l.children=[]);for(const o of l.children)fe(o)}return}if(t.type==="tabs"){Array.isArray(t.tabs)||(t.tabs=[]);for(const l of t.tabs)if(!(!l||typeof l!="object")){Array.isArray(l.children)||(l.children=[]);for(const o of l.children)fe(o)}}}function We(t){return{version:t.version,root:{children:t.root.children.map(l=>M(l))}}}function Ge(t){const l=e.ref([]),o=e.ref(M(t)),d=e.ref([]),s=e.computed(()=>l.value.length>0),x=e.computed(()=>d.value.length>0);function u(w){l.value.push(M(o.value)),o.value=M(w),d.value=[]}function a(w){o.value=M(w)}function f(){if(!l.value.length)return;const w=l.value.pop();d.value.unshift(M(o.value)),o.value=M(w)}function h(){if(!d.value.length)return;const w=d.value.shift();l.value.push(M(o.value)),o.value=M(w)}function B(w){l.value=[],d.value=[],o.value=M(w)}return{past:l,present:o,future:d,canUndo:s,canRedo:x,push:u,replace:a,undo:f,redo:h,reset:B}}function Ze(){const t=e.ref(null),l=e.ref(null),o=e.reactive({x:0,y:0}),d=e.computed(()=>!!t.value);function s(f,h){t.value=f,o.x=h.clientX,o.y=h.clientY}function x(f){o.x=f.clientX,o.y=f.clientY}function u(f){l.value=f}function a(){t.value=null,l.value=null}return{dragging:t,hoverTarget:l,pointer:o,isDragging:d,begin:s,move:x,setHover:u,end:a}}const L=Ge(Ye()),ne=e.ref(null),A=Ze(),se=e.ref({});function ue(){return new Date().toISOString()}function ae(t){L.push(t)}function Qe(t){const l=Ke(t);ne.value=null,L.reset(M(l))}function ve(t){ne.value=t}function De(){const t=ne.value;if(!t)return;const l=M(L.present.value);Ee(l,t)&&(ae(l),ne.value=null)}function et(t,l){const o={kind:"palette",nodeType:t};A.begin(o,l),Ue()}function tt(t,l){const o={kind:"node",nodeId:t};A.begin(o,l),Ue()}function lt(t){const l=A.dragging.value;if(!l)return{accepted:!1,message:"拖拽已结束"};const o=Date.now(),d=M(L.present.value);if(l.kind==="palette"){const s=Pe(l.nodeType);return we(d,"palette",l.nodeType,t)?(Se(d,t,s),ae(d),ne.value=s.id,{accepted:!0,durationMs:Date.now()-o}):(ee.ElMessage.warning("该位置不允许放置此组件"),{accepted:!1,message:"该位置不允许放置此组件",durationMs:Date.now()-o})}else{const s=pe(d,l.nodeId);return s?we(d,"node",s.type,t)?(Je(d,l.nodeId,t),ae(d),ne.value=l.nodeId,{accepted:!0,durationMs:Date.now()-o}):(ee.ElMessage.warning("该位置不允许放置此组件"),{accepted:!1,message:"该位置不允许放置此组件",durationMs:Date.now()-o}):{accepted:!1,message:"未找到被移动的组件",durationMs:Date.now()-o}}}function pe(t,l){const o=[...t.root.children];for(;o.length;){const d=o.shift();if(d.id===l)return d;if(d.type==="flexRow")for(const s of d.columns)o.push(...s.children);else if(d.type==="collapse")for(const s of d.items)o.push(...s.children);else if(d.type==="tabs")for(const s of d.tabs)o.push(...s.children)}return null}let Ve=!1;function Ue(){Ve||(Ve=!0,window.addEventListener("pointermove",ze),window.addEventListener("pointerup",ot,{once:!0}))}function be(){Ve&&(Ve=!1,window.removeEventListener("pointermove",ze))}function ze(t){A.move(t);const l=Te(t.clientX,t.clientY),o=A.hoverTarget.value;JSON.stringify(o)!==JSON.stringify(l)&&Ie(l)}function ot(){if(!A.dragging.value){A.end(),be();return}const l=A.hoverTarget.value??Te(A.pointer.x,A.pointer.y);if(!l){A.end(),be();return}lt(l),A.end(),be()}const nt=e.computed(()=>L.present.value),at={canUndo:L.canUndo,canRedo:L.canRedo,undo:()=>L.undo(),redo:()=>L.redo()},rt={selectedNodeId:ne};function dt(t,l){const o=M(L.present.value),d=pe(o,t);d&&(d.props={...d.props,...l},d.meta.updatedAt=ue(),ae(o))}function it(t,l){const o=M(L.present.value),d=pe(o,t);if(!d||d.type!=="flexRow")return;const s=d.columns.length;if(d.props.cols=l,d.meta.updatedAt=ue(),l>s)for(let x=s;x<l;x+=1)d.columns.push({id:D(`col${x+1}`),children:[]});else l<s&&(d.columns=d.columns.slice(0,l));ae(o)}function ct(t,l){const o=M(L.present.value),d=pe(o,t);if(!(!d||d.type!=="collapse")){if(l.accordion!==void 0&&(d.props.accordion=l.accordion),l.items){const s=d.items;d.items=l.items.map(x=>{const u=s.find(a=>a.id===x.id);return{id:x.id,title:x.title,name:x.name,children:(u==null?void 0:u.children)??[]}})}d.meta.updatedAt=ue(),ae(o)}}function st(t,l){const o=M(L.present.value),d=pe(o,t);if(!(!d||d.type!=="tabs")){if(l.type&&(d.props.type=l.type),l.tabs){const s=d.tabs;d.tabs=l.tabs.map(x=>{const u=s.find(a=>a.id===x.id);return{id:x.id,label:x.label,children:(u==null?void 0:u.children)??[]}})}d.meta.updatedAt=ue(),ae(o)}}function Ie(t){const l=A.hoverTarget.value;JSON.stringify(l)!==JSON.stringify(t)&&A.setHover(t)}function Te(t,l){var x;const o=document.elementFromPoint(t,l);if(!o)return null;const d=(x=o.closest)==null?void 0:x.call(o,"[data-drop-target]"),s=d==null?void 0:d.getAttribute("data-drop-target");if(!s)return null;try{return JSON.parse(s)}catch{return null}}function pt(){window.addEventListener("keydown",t=>{if(t.ctrlKey&&(t.key==="z"||t.key==="Z")){t.preventDefault(),L.undo();return}if(t.ctrlKey&&(t.key==="y"||t.key==="Y")){t.preventDefault(),L.redo();return}t.key==="Delete"&&De()})}let he=null;e.watch(()=>L.present.value,t=>{he&&window.clearTimeout(he),he=window.setTimeout(()=>{},800)},{deep:!0}),e.watch(()=>se.value,t=>{},{deep:!0});function mt(){}function ft(t){se.value=t}function ut(){return M(se.value)}function Vt(t){if(!t||typeof t!="object")throw new Error("invalid");se.value=t}function te(){return{schema:nt,history:at,selection:rt,drag:A,formData:se,select:ve,beginPaletteDrag:et,beginNodeDrag:tt,setHover:Ie,applySchema:Qe,removeSelected:De,updateNodeProps:dt,updateFlexCols:it,updateCollapse:ct,updateTabs:st,bindHotkeys:pt,loadAutoSave:mt,setFormData:ft,exportFormData:ut,importFormData:Vt}}const kt=["data-drop-target"],yt=e.defineComponent({__name:"DropLine",props:{target:{}},setup(t){const l=t,{drag:o,schema:d,setHover:s}=te(),x=e.computed(()=>JSON.stringify(l.target)),u=e.computed(()=>{const w=o.hoverTarget.value;return w?JSON.stringify(w)===JSON.stringify(l.target):!1}),a=e.computed(()=>{const w=o.dragging.value;if(!w)return!1;const N=w.kind==="palette"?w.nodeType:f(w.nodeId);return N?!we(d.value,w.kind,N,l.target):!1});function f(w){const N=[...d.value.root.children];for(;N.length;){const g=N.shift();if(g.id===w)return g.type;if(g.type==="flexRow")for(const z of g.columns)N.push(...z.children);else if(g.type==="collapse")for(const z of g.items)N.push(...z.children);else if(g.type==="tabs")for(const z of g.tabs)N.push(...z.children)}return null}function h(){o.isDragging.value&&s(l.target)}function B(){o.isDragging.value&&s(null)}return(w,N)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["line",{active:u.value,forbidden:a.value}]),"data-drop-target":x.value,onMouseenter:h,onMouseleave:B,onPointerenter:h,onPointerleave:B},null,42,kt))}}),W=(t,l)=>{const o=t.__vccOpts||t;for(const[d,s]of l)o[d]=s;return o},le=W(yt,[["__scopeId","data-v-677f5a96"]]),xt={class:"head"},wt={class:"left"},bt={class:"name"},ht={class:"right"},gt={class:"body"},Nt={class:"colTitle"},_t={class:"colBody"},Ct={key:0,class:"colEmpty"},Bt={key:1,class:"containerBox"},Et={key:0,class:"colEmpty"},St={key:2,class:"containerBox"},Dt={key:0,class:"colEmpty"},Ut={key:3,class:"tablePreview"},zt={key:4,class:"fieldLine"},It={class:"fieldLabel"},Tt={class:"fieldMeta"},$t=W(e.defineComponent({__name:"NodeCard",props:{node:{}},setup(t){const l=t,{selection:o,select:d,beginNodeDrag:s}=te(),x=e.computed(()=>o.selectedNodeId.value===l.node.id),u=e.computed(()=>l.node.type==="flexRow"?"布局":l.node.type==="collapse"||l.node.type==="tabs"?"容器":"组件"),a=e.computed(()=>{if(l.node.type==="flexRow")return`Flex ${l.node.columns.length} 列`;if(l.node.type==="collapse")return"折叠面板";if(l.node.type==="tabs")return"标签页";if(l.node.type==="input"){const w={text:"文本",number:"数字",date:"日期",time:"时间",datetime:"日期时间"},N=l.node.props.inputType??"text";return`${l.node.props.label} (${w[N]??N})`}return l.node.props.label}),f=e.computed(()=>l.node.type!=="flexRow"?{}:{display:"grid",gap:`${l.node.props.gap??12}px`,gridTemplateColumns:`repeat(${l.node.columns.length}, minmax(0, 1fr))`});function h(){d(l.node.id)}function B(w){w.button===0&&s(l.node.id,w)}return(w,N)=>{const g=e.resolveComponent("el-tag"),z=e.resolveComponent("el-button"),F=e.resolveComponent("NodeCard",!0),R=e.resolveComponent("el-collapse-item"),$=e.resolveComponent("el-collapse"),Y=e.resolveComponent("el-tab-pane"),O=e.resolveComponent("el-tabs"),X=e.resolveComponent("el-table-column"),y=e.resolveComponent("el-table");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["card",{selected:x.value}]),onClick:e.withModifiers(h,["stop"])},[e.createElementVNode("div",xt,[e.createElementVNode("div",wt,[e.createVNode(g,{size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.value),1)]),_:1}),e.createElementVNode("span",bt,e.toDisplayString(a.value),1)]),e.createElementVNode("div",ht,[e.createVNode(z,{size:"small",text:"",onPointerdown:e.withModifiers(B,["stop"])},{default:e.withCtx(()=>[...N[0]||(N[0]=[e.createTextVNode(" 拖拽 ",-1)])]),_:1})])]),e.createElementVNode("div",gt,[t.node.type==="flexRow"?(e.openBlock(),e.createElementBlock("div",{key:0,class:"flexRow",style:e.normalizeStyle(f.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.columns,(r,p)=>(e.openBlock(),e.createElementBlock("div",{key:r.id,class:"col"},[e.createElementVNode("div",Nt," 第 "+e.toDisplayString(Number(p)+1)+" 列 ",1),e.createElementVNode("div",_t,[e.createVNode(le,{target:{kind:"flexCol",rowId:t.node.id,colIndex:p,insertIndex:0}},null,8,["target"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.children,(V,S)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:V.id},[e.createVNode(F,{node:V},null,8,["node"]),e.createVNode(le,{target:{kind:"flexCol",rowId:t.node.id,colIndex:Number(p),insertIndex:Number(S)+1}},null,8,["target"])],64))),128)),r.children.length===0?(e.openBlock(),e.createElementBlock("div",Ct," 拖拽到此列 ")):e.createCommentVNode("",!0)])]))),128))],4)):t.node.type==="collapse"?(e.openBlock(),e.createElementBlock("div",Bt,[e.createVNode($,{accordion:t.node.props.accordion,class:"tabsPreview"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.items,r=>(e.openBlock(),e.createBlock(R,{key:r.id,title:r.title,name:r.name},{default:e.withCtx(()=>[e.createVNode(le,{target:{kind:"collapse",collapseId:t.node.id,itemId:r.id,insertIndex:0}},null,8,["target"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.children,(p,V)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:p.id},[e.createVNode(F,{node:p},null,8,["node"]),e.createVNode(le,{target:{kind:"collapse",collapseId:t.node.id,itemId:r.id,insertIndex:V+1}},null,8,["target"])],64))),128)),r.children.length===0?(e.openBlock(),e.createElementBlock("div",Et," 拖拽到 "+e.toDisplayString(r.title),1)):e.createCommentVNode("",!0)]),_:2},1032,["title","name"]))),128))]),_:1},8,["accordion"])])):t.node.type==="tabs"?(e.openBlock(),e.createElementBlock("div",St,[e.createVNode(O,{type:t.node.props.type,class:"tabsPreview"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.tabs,r=>(e.openBlock(),e.createBlock(Y,{key:r.id,label:r.label},{default:e.withCtx(()=>[e.createVNode(le,{target:{kind:"tab",tabsId:t.node.id,tabId:r.id,insertIndex:0}},null,8,["target"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.children,(p,V)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:p.id},[e.createVNode(F,{node:p},null,8,["node"]),e.createVNode(le,{target:{kind:"tab",tabsId:t.node.id,tabId:r.id,insertIndex:V+1}},null,8,["target"])],64))),128)),r.children.length===0?(e.openBlock(),e.createElementBlock("div",Dt," 拖拽到 "+e.toDisplayString(r.label),1)):e.createCommentVNode("",!0)]),_:2},1032,["label"]))),128))]),_:1},8,["type"])])):t.node.type==="table"?(e.openBlock(),e.createElementBlock("div",Ut,[e.createVNode(y,{data:[],border:"",size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.columns,r=>(e.openBlock(),e.createBlock(X,{key:r.id,prop:r.prop,label:r.label,width:r.width},null,8,["prop","label","width"]))),128))]),_:1})])):(e.openBlock(),e.createElementBlock("div",zt,[e.createElementVNode("span",It,e.toDisplayString(t.node.props.label),1),e.createElementVNode("span",Tt,"("+e.toDisplayString(t.node.type)+")",1)]))])],2)}}}),[["__scopeId","data-v-7c887642"]]),Mt={class:"root"},Ft={class:"panel"},Ht=W(e.defineComponent({__name:"Canvas",setup(t){const{schema:l}=te(),o=e.computed(()=>l.value);return(d,s)=>{const x=e.resolveComponent("el-empty");return e.openBlock(),e.createElementBlock("div",Mt,[s[0]||(s[0]=e.createElementVNode("div",{class:"title"}," 画布 ",-1)),e.createElementVNode("div",Ft,[e.createVNode(le,{target:{kind:"root",insertIndex:0}}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value.root.children,(u,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:u.id},[e.createVNode($t,{node:u},null,8,["node"]),e.createVNode(le,{target:{kind:"root",insertIndex:Number(a)+1}},null,8,["target"])],64))),128)),o.value.root.children.length===0?(e.openBlock(),e.createBlock(x,{key:0,description:"从左侧拖拽组件到此处"})):e.createCommentVNode("",!0)])])}}}),[["__scopeId","data-v-e6a28470"]]);/*! Element Plus Icons Vue v2.3.2 */var Lt=e.defineComponent({name:"ArrowDown",__name:"arrow-down",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}}),Rt=Lt,Ot=e.defineComponent({name:"CircleCheck",__name:"circle-check",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),e.createElementVNode("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}}),At=Ot,Yt=e.defineComponent({name:"Delete",__name:"delete",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}}),$e=Yt,Pt=e.defineComponent({name:"Document",__name:"document",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z"})]))}}),Jt=Pt,qt=e.defineComponent({name:"Download",__name:"download",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"})]))}}),jt=qt,Xt=e.defineComponent({name:"Edit",__name:"edit",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640z"}),e.createElementVNode("path",{fill:"currentColor",d:"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z"})]))}}),Me=Xt,Kt=e.defineComponent({name:"Files",__name:"files",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M128 384v448h768V384zm-32-64h832a32 32 0 0 1 32 32v512a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32m64-128h704v64H160zm96-128h512v64H256z"})]))}}),Wt=Kt,Gt=e.defineComponent({name:"Fold",__name:"fold",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M896 192H128v128h768zm0 256H384v128h512zm0 256H128v128h768zM320 384 128 512l192 128z"})]))}}),Zt=Gt,Qt=e.defineComponent({name:"Grid",__name:"grid",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M640 384v256H384V384zm64 0h192v256H704zm-64 512H384V704h256zm64 0V704h192v192zm-64-768v192H384V128zm64 0h192v192H704zM320 384v256H128V384zm0 512H128V704h192zm0-768v192H128V128z"})]))}}),vt=Qt,el=e.defineComponent({name:"Menu",__name:"menu",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 448a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32zm448 0a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32zM160 896a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32zm448 0a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32z"})]))}}),tl=el,ll=e.defineComponent({name:"Picture",__name:"picture",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 160v704h704V160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32"}),e.createElementVNode("path",{fill:"currentColor",d:"M384 288q64 0 64 64t-64 64-64-64 64-64M185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952z"})]))}}),ol=ll,nl=e.defineComponent({name:"Plus",__name:"plus",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),Fe=nl,al=e.defineComponent({name:"Postcard",__name:"postcard",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 224a32 32 0 0 0-32 32v512a32 32 0 0 0 32 32h704a32 32 0 0 0 32-32V256a32 32 0 0 0-32-32zm0-64h704a96 96 0 0 1 96 96v512a96 96 0 0 1-96 96H160a96 96 0 0 1-96-96V256a96 96 0 0 1 96-96"}),e.createElementVNode("path",{fill:"currentColor",d:"M704 320a64 64 0 1 1 0 128 64 64 0 0 1 0-128M288 448h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32m0 128h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32"})]))}}),rl=al,dl=e.defineComponent({name:"SetUp",__name:"set-up",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M224 160a64 64 0 0 0-64 64v576a64 64 0 0 0 64 64h576a64 64 0 0 0 64-64V224a64 64 0 0 0-64-64zm0-64h576a128 128 0 0 1 128 128v576a128 128 0 0 1-128 128H224A128 128 0 0 1 96 800V224A128 128 0 0 1 224 96"}),e.createElementVNode("path",{fill:"currentColor",d:"M384 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128m0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256"}),e.createElementVNode("path",{fill:"currentColor",d:"M480 320h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32m160 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128m0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256"}),e.createElementVNode("path",{fill:"currentColor",d:"M288 640h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32"})]))}}),il=dl,cl=e.defineComponent({name:"SwitchButton",__name:"switch-button",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M352 159.872V230.4a352 352 0 1 0 320 0v-70.528A416.128 416.128 0 0 1 512 960a416 416 0 0 1-160-800.128"}),e.createElementVNode("path",{fill:"currentColor",d:"M512 64q32 0 32 32v320q0 32-32 32t-32-32V96q0-32 32-32"})]))}}),sl=cl,pl=e.defineComponent({name:"Upload",__name:"upload",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z"})]))}}),He=pl;const ml={class:"content"},fl={class:"label"},J=W(e.defineComponent({__name:"PaletteItem",props:{label:{},nodeType:{}},setup(t){const l=t,{beginPaletteDrag:o}=te(),d={flexRow:tl,collapse:Zt,tabs:Wt,table:vt,input:Me,textarea:Jt,select:Rt,radio:At,checkbox:il,switch:sl,"image-upload":ol,"file-upload":He,title:rl},s=e.computed(()=>d[l.nodeType]||Me);function x(u){u.button===0&&o(l.nodeType,u)}return(u,a)=>{const f=e.resolveComponent("el-icon"),h=e.resolveComponent("el-card");return e.openBlock(),e.createBlock(h,{shadow:"hover",class:"item",onPointerdown:x},{default:e.withCtx(()=>[e.createElementVNode("div",ml,[e.createVNode(f,{class:"icon",size:16},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(s.value)))]),_:1}),e.createElementVNode("div",fl,e.toDisplayString(t.label),1)])]),_:1})}}}),[["__scopeId","data-v-7d576d24"]]),ul={class:"wrap"},Vl={class:"grid"},kl={class:"grid"},yl=W(e.defineComponent({__name:"Palette",setup(t){const l=e.ref(["container","field"]),{drag:o}=te(),d=e.computed(()=>o.isDragging.value),s=e.computed(()=>({left:`${o.pointer.x+12}px`,top:`${o.pointer.y+12}px`})),x=e.computed(()=>{const u=o.dragging.value;return u?u.kind==="palette"?u.nodeType:"移动组件":""});return(u,a)=>{const f=e.resolveComponent("el-collapse-item"),h=e.resolveComponent("el-collapse");return e.openBlock(),e.createElementBlock("div",ul,[e.createVNode(h,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=B=>l.value=B)},{default:e.withCtx(()=>[e.createVNode(f,{name:"container"},{title:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode(" 容器组件 ",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Vl,[e.createVNode(J,{label:"横向布局","node-type":"flexRow"}),e.createVNode(J,{label:"折叠面板","node-type":"collapse"}),e.createVNode(J,{label:"标签页","node-type":"tabs"})])]),_:1}),e.createVNode(f,{name:"field"},{title:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode(" 普通组件 ",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",kl,[e.createVNode(J,{label:"文本框","node-type":"input"}),e.createVNode(J,{label:"文本域","node-type":"textarea"}),e.createVNode(J,{label:"单选框","node-type":"radio"}),e.createVNode(J,{label:"多选框","node-type":"checkbox"}),e.createVNode(J,{label:"下拉框","node-type":"select"}),e.createVNode(J,{label:"开关","node-type":"switch"}),e.createVNode(J,{label:"图片上传","node-type":"image-upload"}),e.createVNode(J,{label:"文件上传","node-type":"file-upload"}),e.createVNode(J,{label:"标题","node-type":"title"}),e.createVNode(J,{label:"表格","node-type":"table"})])]),_:1})]),_:1},8,["modelValue"]),d.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"ghost",style:e.normalizeStyle(s.value)},e.toDisplayString(x.value),5)):e.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-1a00cdb7"]]),xl={key:3,class:"tableWrap"},wl={class:"tableHeader"},bl={class:"title"},hl={class:"actions"},gl={key:0,class:"pagination"},Nl=W(e.defineComponent({__name:"RenderNode",props:{node:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:l}){const o=t,d=l,s=e.computed({get:()=>o.modelValue,set:y=>d("update:modelValue",y)});e.onMounted(()=>{if(o.node.type==="switch"){const y=o.node;s.value[y.props.field]===void 0&&d("update:modelValue",{...s.value,[y.props.field]:y.props.inactiveValue??!1})}});const x="/api/upload",u=e.computed({get:()=>{if(!["image-upload","file-upload"].includes(o.node.type))return[];const y=o.node,r=s.value[y.props.field];return Array.isArray(r)?r:[]},set:y=>{if(!["image-upload","file-upload"].includes(o.node.type))return;const r=o.node;d("update:modelValue",{...s.value,[r.props.field]:y})}});function a(y){y.url&&window.open(y.url,"_blank")}const f=e.computed(()=>o.node.type!=="flexRow"?{}:{display:"grid",gap:`${o.node.props.gap??12}px`,gridTemplateColumns:`repeat(${o.node.columns.length}, minmax(0, 1fr))`}),h=e.computed({get:()=>{const y=o.node;if(y.props.field)return s.value[y.props.field]},set:y=>{const r=o.node;r.props.field&&d("update:modelValue",{...s.value,[r.props.field]:y})}}),B=e.computed({get:()=>{const y=h.value,r=o.node;return y===void 0?r.props.inactiveValue:y},set:y=>{h.value=y}}),w=e.computed({get:()=>{if(o.node.type!=="checkbox")return[];const y=o.node,r=s.value[y.props.field];return Array.isArray(r)?r:[]},set:y=>{if(o.node.type!=="checkbox")return;const r=o.node;d("update:modelValue",{...s.value,[r.props.field]:y})}}),N=e.ref(1),g=e.computed({get:()=>{if(o.node.type!=="table")return[];const y=o.node,r=s.value[y.props.field];return Array.isArray(r)?r:[]},set:y=>{if(o.node.type!=="table")return;const r=o.node;d("update:modelValue",{...s.value,[r.props.field]:y})}}),z=e.computed(()=>{if(o.node.type!=="table")return[];if(!o.node.props.pagination)return g.value;const y=o.node.props.pageSize??10,r=(N.value-1)*y;return g.value.slice(r,r+y)});function F(){if(o.node.type!=="table")return;const y=o.node,r={};for(const p of y.props.columns)r[p.prop]="";g.value=[...g.value,r]}function R(y){if(o.node.type!=="table")return;const r=o.node,p=r.props.pagination?(N.value-1)*(r.props.pageSize??10)+y:y,V=[...g.value];V.splice(p,1),g.value=V}function $(y){N.value=y}function Y(y){if(o.node.type!=="table")return;const r=new FileReader;r.onload=p=>{var H;const V=(H=p.target)==null?void 0:H.result;if(!V)return;const S=re.read(V,{type:"binary"}),I=S.Sheets[S.SheetNames[0]],T=re.utils.sheet_to_json(I).map(q=>{const k={},ie=o.node;for(const j of ie.props.columns)q[j.prop]!==void 0?k[j.prop]=q[j.prop]:q[j.label]!==void 0?k[j.prop]=q[j.label]:k[j.prop]="";return k});g.value=[...g.value,...T]},r.readAsBinaryString(y.raw)}function O(){if(o.node.type!=="table")return;const y=g.value;if(!y.length)return;const r=o.node,p=r.props.columns,V=y.map(G=>{const T={};return p.forEach(H=>{T[H.label]=G[H.prop]}),T}),S=re.utils.json_to_sheet(V),I=re.utils.book_new();re.utils.book_append_sheet(I,S,"Sheet1"),re.writeFile(I,`${r.props.label||"data"}.xlsx`)}function X(){o.node.type==="table"&&(g.value=[])}return(y,r)=>{const p=e.resolveComponent("RenderNode",!0),V=e.resolveComponent("el-collapse-item"),S=e.resolveComponent("el-collapse"),I=e.resolveComponent("el-tab-pane"),G=e.resolveComponent("el-tabs"),T=e.resolveComponent("el-button"),H=e.resolveComponent("el-upload"),q=e.resolveComponent("el-option"),k=e.resolveComponent("el-select"),ie=e.resolveComponent("el-input-number"),j=e.resolveComponent("el-date-picker"),ke=e.resolveComponent("el-time-picker"),me=e.resolveComponent("el-input"),ye=e.resolveComponent("el-table-column"),ge=e.resolveComponent("el-table"),Ne=e.resolveComponent("el-pagination"),_e=e.resolveComponent("el-radio"),Ce=e.resolveComponent("el-radio-group"),Be=e.resolveComponent("el-checkbox"),i=e.resolveComponent("el-checkbox-group"),n=e.resolveComponent("el-switch"),_=e.resolveComponent("el-icon"),C=e.resolveComponent("el-form-item");return t.node.type==="flexRow"?(e.openBlock(),e.createElementBlock("div",{key:0,class:"row",style:e.normalizeStyle(f.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.columns,c=>(e.openBlock(),e.createElementBlock("div",{key:c.id,class:"col"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.children,b=>(e.openBlock(),e.createBlock(p,{key:b.id,node:b,modelValue:s.value,"onUpdate:modelValue":r[0]||(r[0]=U=>s.value=U)},null,8,["node","modelValue"]))),128))]))),128))],4)):t.node.type==="collapse"?(e.openBlock(),e.createBlock(S,{key:1,accordion:t.node.props.accordion},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.items,c=>(e.openBlock(),e.createBlock(V,{key:c.id,title:c.title,name:c.name},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.children,b=>(e.openBlock(),e.createBlock(p,{key:b.id,node:b,modelValue:s.value,"onUpdate:modelValue":r[1]||(r[1]=U=>s.value=U)},null,8,["node","modelValue"]))),128))]),_:2},1032,["title","name"]))),128))]),_:1},8,["accordion"])):t.node.type==="tabs"?(e.openBlock(),e.createBlock(G,{key:2,type:t.node.props.type},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.tabs,c=>(e.openBlock(),e.createBlock(I,{key:c.id,label:c.label},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.children,b=>(e.openBlock(),e.createBlock(p,{key:b.id,node:b,modelValue:s.value,"onUpdate:modelValue":r[2]||(r[2]=U=>s.value=U)},null,8,["node","modelValue"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["type"])):t.node.type==="table"?(e.openBlock(),e.createElementBlock("div",xl,[e.createElementVNode("div",wl,[e.createElementVNode("div",bl,e.toDisplayString(t.node.props.label),1),e.createElementVNode("div",hl,[e.createVNode(T,{icon:e.unref($e),size:"small",type:"danger",plain:"",onClick:X},{default:e.withCtx(()=>[...r[16]||(r[16]=[e.createTextVNode("清空数据",-1)])]),_:1},8,["icon"]),t.node.props.enableExcelImport?(e.openBlock(),e.createBlock(H,{key:0,action:"#","auto-upload":!1,"show-file-list":!1,accept:".xlsx, .xls","on-change":Y},{default:e.withCtx(()=>[e.createVNode(T,{icon:e.unref(He),size:"small"},{default:e.withCtx(()=>[...r[17]||(r[17]=[e.createTextVNode("导入Excel",-1)])]),_:1},8,["icon"])]),_:1})):e.createCommentVNode("",!0),e.createVNode(T,{icon:e.unref(jt),size:"small",onClick:O},{default:e.withCtx(()=>[...r[18]||(r[18]=[e.createTextVNode("导出Excel",-1)])]),_:1},8,["icon"]),e.createVNode(T,{type:"primary",icon:e.unref(Fe),size:"small",onClick:F},{default:e.withCtx(()=>[...r[19]||(r[19]=[e.createTextVNode("添加",-1)])]),_:1},8,["icon"])])]),e.createVNode(ge,{data:z.value,border:"",style:{width:"100%"},size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.columns,c=>(e.openBlock(),e.createBlock(ye,{key:c.id,prop:c.prop,label:c.label,width:c.width,sortable:!!c.sortable},{default:e.withCtx(({row:b})=>[c.type==="select"?(e.openBlock(),e.createBlock(k,{key:0,modelValue:b[c.prop],"onUpdate:modelValue":U=>b[c.prop]=U,size:"small",multiple:!!c.multiple,filterable:!!c.filterable,placeholder:c.placeholder||"请选择",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.options??[],U=>(e.openBlock(),e.createBlock(q,{key:U.value,label:U.label,value:U.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","multiple","filterable","placeholder"])):c.type==="number"?(e.openBlock(),e.createBlock(ie,{key:1,modelValue:b[c.prop],"onUpdate:modelValue":U=>b[c.prop]=U,"controls-position":"right",size:"small",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue"])):["date","datetime","month"].includes(c.type)?(e.openBlock(),e.createBlock(j,{key:2,modelValue:b[c.prop],"onUpdate:modelValue":U=>b[c.prop]=U,type:c.type,format:c.type==="datetime"?"YYYY-MM-DD HH:mm:ss":c.type==="month"?"YYYY-MM":"YYYY-MM-DD","value-format":c.type==="datetime"?"YYYY-MM-DD HH:mm:ss":c.type==="month"?"YYYY-MM":"YYYY-MM-DD",placeholder:c.placeholder||"请选择",size:"small",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue","type","format","value-format","placeholder"])):c.type==="time"?(e.openBlock(),e.createBlock(ke,{key:3,modelValue:b[c.prop],"onUpdate:modelValue":U=>b[c.prop]=U,format:"HH:mm:ss","value-format":"HH:mm:ss",placeholder:c.placeholder||"请选择时间",size:"small",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue","placeholder"])):(e.openBlock(),e.createBlock(me,{key:4,modelValue:b[c.prop],"onUpdate:modelValue":U=>b[c.prop]=U,size:"small"},null,8,["modelValue","onUpdate:modelValue"]))]),_:2},1032,["prop","label","width","sortable"]))),128)),e.createVNode(ye,{label:"操作",width:"100",fixed:"right"},{header:e.withCtx(()=>[...r[20]||(r[20]=[e.createElementVNode("div",{style:{display:"flex","justify-content":"space-between","align-items":"center"}},[e.createElementVNode("span",null,"操作")],-1)])]),default:e.withCtx(({$index:c})=>[e.createVNode(T,{type:"danger",icon:e.unref($e),circle:"",size:"small",onClick:b=>R(c)},null,8,["icon","onClick"])]),_:1})]),_:1},8,["data"]),t.node.props.pagination?(e.openBlock(),e.createElementBlock("div",gl,[e.createVNode(Ne,{"current-page":N.value,"onUpdate:currentPage":r[3]||(r[3]=c=>N.value=c),"page-size":t.node.props.pageSize,total:g.value.length,layout:"prev, pager, next",onCurrentChange:$},null,8,["current-page","page-size","total"])])):e.createCommentVNode("",!0)])):t.node.type==="title"?(e.openBlock(),e.createElementBlock("div",{key:4,style:e.normalizeStyle({fontSize:(t.node.props.fontSize||16)+"px",fontWeight:t.node.props.bold?"bold":"normal",textAlign:t.node.props.align||"left",margin:"10px 0"})},e.toDisplayString(t.node.props.label),5)):(e.openBlock(),e.createBlock(C,{key:5,label:t.node.props.label,required:!!t.node.props.required},{default:e.withCtx(()=>[t.node.type==="input"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.node.props.inputType==="number"?(e.openBlock(),e.createBlock(ie,{key:0,modelValue:h.value,"onUpdate:modelValue":r[4]||(r[4]=c=>h.value=c),placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):t.node.props.inputType==="date"?(e.openBlock(),e.createBlock(j,{key:1,modelValue:h.value,"onUpdate:modelValue":r[5]||(r[5]=c=>h.value=c),type:"date","value-format":"YYYY-MM-DD",placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):t.node.props.inputType==="time"?(e.openBlock(),e.createBlock(ke,{key:2,modelValue:h.value,"onUpdate:modelValue":r[6]||(r[6]=c=>h.value=c),"value-format":"HH:mm:ss",placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):t.node.props.inputType==="datetime"?(e.openBlock(),e.createBlock(j,{key:3,modelValue:h.value,"onUpdate:modelValue":r[7]||(r[7]=c=>h.value=c),type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):(e.openBlock(),e.createBlock(me,{key:4,modelValue:h.value,"onUpdate:modelValue":r[8]||(r[8]=c=>h.value=c),placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"]))],64)):t.node.type==="textarea"?(e.openBlock(),e.createBlock(me,{key:1,modelValue:h.value,"onUpdate:modelValue":r[9]||(r[9]=c=>h.value=c),type:"textarea",autosize:{minRows:3,maxRows:8},placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):t.node.type==="select"?(e.openBlock(),e.createBlock(k,{key:2,modelValue:h.value,"onUpdate:modelValue":r[10]||(r[10]=c=>h.value=c),style:{width:"100%"},placeholder:t.node.props.placeholder??"",multiple:!!t.node.props.multiple},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.options??[],c=>(e.openBlock(),e.createBlock(q,{key:c.value,label:c.label,value:c.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","multiple"])):t.node.type==="radio"?(e.openBlock(),e.createBlock(Ce,{key:3,modelValue:h.value,"onUpdate:modelValue":r[11]||(r[11]=c=>h.value=c)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.options??[],c=>(e.openBlock(),e.createBlock(_e,{key:c.value,value:c.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])):t.node.type==="checkbox"?(e.openBlock(),e.createBlock(i,{key:4,modelValue:w.value,"onUpdate:modelValue":r[12]||(r[12]=c=>w.value=c)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.options??[],c=>(e.openBlock(),e.createBlock(Be,{key:c.value,value:c.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(c.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])):t.node.type==="switch"?(e.openBlock(),e.createBlock(n,{key:5,modelValue:B.value,"onUpdate:modelValue":r[13]||(r[13]=c=>B.value=c),"active-text":t.node.props.activeText,"inactive-text":t.node.props.inactiveText,"active-value":t.node.props.activeValue,"inactive-value":t.node.props.inactiveValue},null,8,["modelValue","active-text","inactive-text","active-value","inactive-value"])):t.node.type==="image-upload"?(e.openBlock(),e.createBlock(H,{key:6,action:e.unref(x),"list-type":"picture-card",limit:t.node.props.limit,"file-list":u.value,"onUpdate:fileList":r[14]||(r[14]=c=>u.value=c),"on-preview":a},{default:e.withCtx(()=>[e.createVNode(_,null,{default:e.withCtx(()=>[e.createVNode(e.unref(Fe))]),_:1})]),_:1},8,["action","limit","file-list"])):t.node.type==="file-upload"?(e.openBlock(),e.createBlock(H,{key:7,action:e.unref(x),limit:t.node.props.limit,accept:t.node.props.accept,"file-list":u.value,"onUpdate:fileList":r[15]||(r[15]=c=>u.value=c),"on-preview":a},{default:e.withCtx(()=>[e.createVNode(T,{type:"primary"},{default:e.withCtx(()=>[...r[21]||(r[21]=[e.createTextVNode("点击上传",-1)])]),_:1})]),_:1},8,["action","limit","accept","file-list"])):e.createCommentVNode("",!0)]),_:1},8,["label","required"]))}}}),[["__scopeId","data-v-7a292d3e"]]),_l={class:"root"},Le=W(e.defineComponent({__name:"FormRenderer",props:{schema:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:l}){const o=t,d=l,s=e.computed({get:()=>o.modelValue,set:x=>d("update:modelValue",x)});return(x,u)=>(e.openBlock(),e.createElementBlock("div",_l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.schema.root.children,a=>(e.openBlock(),e.createBlock(Nl,{key:a.id,node:a,modelValue:s.value,"onUpdate:modelValue":u[0]||(u[0]=f=>s.value=f)},null,8,["node","modelValue"]))),128))]))}}),[["__scopeId","data-v-a20c32c5"]]),Cl={class:"bar"},Bl={class:"surface"},El=W(e.defineComponent({__name:"PreviewDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:l}){const o=t,d=l,s=e.computed({get:()=>o.modelValue,set:r=>d("update:modelValue",r)}),{schema:x,formData:u,setFormData:a,exportFormData:f,importFormData:h}=te(),B=e.computed(()=>x.value),w=e.ref("pc"),N=e.ref(!1);e.ref(!1);const g=e.ref({});Object.keys(g.value).length===0&&Object.keys(u.value).length>0&&(g.value={...u.value});const z=e.ref(!1),F=e.ref(""),R=e.ref(!1),$=e.ref("");e.watch(()=>s.value,r=>{r&&(g.value=f())},{immediate:!0}),e.watch(()=>g.value,r=>{a(r)},{deep:!0});function Y(){F.value=JSON.stringify(g.value,null,2),z.value=!0}function O(){navigator.clipboard.writeText(F.value).then(()=>{ee.ElMessage.success("已复制")})}function X(){$.value="",R.value=!0}function y(){try{const r=JSON.parse($.value);h(r),g.value=f(),R.value=!1,ee.ElMessage.success("已导入数据")}catch{ee.ElMessage.error("JSON 解析失败")}}return(r,p)=>{const V=e.resolveComponent("el-radio-button"),S=e.resolveComponent("el-radio-group"),I=e.resolveComponent("el-button"),G=e.resolveComponent("el-form"),T=e.resolveComponent("el-dialog"),H=e.resolveComponent("el-input"),q=e.resolveComponent("el-alert");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(T,{modelValue:s.value,"onUpdate:modelValue":p[4]||(p[4]=k=>s.value=k),width:"980px",title:"预览",top:"4vh",fullscreen:N.value},{footer:e.withCtx(()=>[e.createVNode(I,{onClick:p[3]||(p[3]=k=>s.value=!1)},{default:e.withCtx(()=>[...p[16]||(p[16]=[e.createTextVNode(" 关闭 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Cl,[e.createVNode(S,{modelValue:w.value,"onUpdate:modelValue":p[0]||(p[0]=k=>w.value=k),size:"small"},{default:e.withCtx(()=>[e.createVNode(V,{label:"pc"},{default:e.withCtx(()=>[...p[11]||(p[11]=[e.createTextVNode(" PC ",-1)])]),_:1}),e.createVNode(V,{label:"mobile"},{default:e.withCtx(()=>[...p[12]||(p[12]=[e.createTextVNode(" 移动端 ",-1)])]),_:1})]),_:1},8,["modelValue"]),e.createVNode(I,{onClick:p[1]||(p[1]=k=>N.value=!N.value),size:"small",style:{"margin-left":"12px"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(N.value?"退出全屏":"全屏"),1)]),_:1}),p[15]||(p[15]=e.createElementVNode("div",{class:"spacer"},null,-1)),e.createVNode(I,{onClick:Y},{default:e.withCtx(()=>[...p[13]||(p[13]=[e.createTextVNode(" 导出数据 JSON ",-1)])]),_:1}),e.createVNode(I,{onClick:X},{default:e.withCtx(()=>[...p[14]||(p[14]=[e.createTextVNode(" 导入数据 JSON ",-1)])]),_:1})]),e.createElementVNode("div",{class:e.normalizeClass(["viewport",{mobile:w.value==="mobile"}])},[e.createElementVNode("div",Bl,[e.createVNode(G,{"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(Le,{schema:B.value,modelValue:g.value,"onUpdate:modelValue":p[2]||(p[2]=k=>g.value=k)},null,8,["schema","modelValue"])]),_:1})])],2)]),_:1},8,["modelValue","fullscreen"]),e.createVNode(T,{modelValue:z.value,"onUpdate:modelValue":p[7]||(p[7]=k=>z.value=k),width:"860px",title:"导出数据 JSON"},{footer:e.withCtx(()=>[e.createVNode(I,{onClick:p[6]||(p[6]=k=>z.value=!1)},{default:e.withCtx(()=>[...p[17]||(p[17]=[e.createTextVNode(" 关闭 ",-1)])]),_:1}),e.createVNode(I,{type:"primary",onClick:O},{default:e.withCtx(()=>[...p[18]||(p[18]=[e.createTextVNode(" 复制 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(H,{modelValue:F.value,"onUpdate:modelValue":p[5]||(p[5]=k=>F.value=k),type:"textarea",rows:22,readonly:""},null,8,["modelValue"])]),_:1},8,["modelValue"]),e.createVNode(T,{modelValue:R.value,"onUpdate:modelValue":p[10]||(p[10]=k=>R.value=k),width:"860px",title:"导入数据 JSON"},{footer:e.withCtx(()=>[e.createVNode(I,{onClick:p[9]||(p[9]=k=>R.value=!1)},{default:e.withCtx(()=>[...p[19]||(p[19]=[e.createTextVNode(" 取消 ",-1)])]),_:1}),e.createVNode(I,{type:"primary",onClick:y},{default:e.withCtx(()=>[...p[20]||(p[20]=[e.createTextVNode(" 确定 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(q,{title:"请粘贴数据 JSON,确定后将覆盖当前表单数据。",type:"warning","show-icon":"",closable:!1}),p[21]||(p[21]=e.createElementVNode("div",{style:{height:"10px"}},null,-1)),e.createVNode(H,{modelValue:$.value,"onUpdate:modelValue":p[8]||(p[8]=k=>$.value=k),type:"textarea",rows:22,placeholder:"在此粘贴 JSON"},null,8,["modelValue"])]),_:1},8,["modelValue"])],64)}}}),[["__scopeId","data-v-2e5f57e6"]]),Sl={class:"wrap"},Dl={key:1,class:"panel"},Ul={class:"tabsEditor"},zl={class:"tabsEditor"},Il={class:"options"},Tl={class:"colHeader",style:{display:"flex","justify-content":"space-between","align-items":"center",width:"100%","padding-right":"10px"}},$l={class:"options-list"},Ml={class:"options"},Fl=W(e.defineComponent({__name:"PropertiesPanel",setup(t){const{schema:l,selection:o,updateNodeProps:d,updateFlexCols:s,updateTabs:x,updateCollapse:u}=te(),a=e.computed(()=>{const i=o.selectedNodeId.value;if(!i)return null;const n=[...l.value.root.children];for(;n.length;){const _=n.shift();if(_.id===i)return _;if(_.type==="flexRow")for(const C of _.columns)n.push(...C.children);else if(_.type==="collapse")for(const C of _.items)n.push(...C.children);else if(_.type==="tabs")for(const C of _.tabs)n.push(...C.children)}return null}),f=e.ref(2),h=e.ref(12),B=e.ref(!1),w=e.ref([]),N=e.ref("card"),g=e.ref([]),z=e.ref(!0),F=e.ref(10),R=e.ref(!0),$=e.ref([]),Y=e.ref(""),O=e.ref(""),X=e.ref(""),y=e.ref(!1),r=e.ref([]),p=e.ref(!1),V=e.ref("text"),S=e.ref("开启"),I=e.ref("关闭"),G=e.computed(()=>{var i,n,_;return((i=a.value)==null?void 0:i.type)==="select"||((n=a.value)==null?void 0:n.type)==="radio"||((_=a.value)==null?void 0:_.type)==="checkbox"}),T=e.computed(()=>{var i;return((i=a.value)==null?void 0:i.type)==="input"}),H=e.computed(()=>{var i;return((i=a.value)==null?void 0:i.type)==="select"}),q=e.computed(()=>{var i;return((i=a.value)==null?void 0:i.type)==="switch"}),k=e.ref(!1);e.watch(()=>a.value,i=>{if(i){if(k.value=!0,i.type==="flexRow")f.value=i.props.cols,h.value=i.props.gap??12;else if(i.type==="collapse")B.value=i.props.accordion,w.value=i.items.map(n=>({id:n.id,title:n.title,name:n.name}));else if(i.type==="tabs")N.value=i.props.type,g.value=i.tabs.map(n=>({id:n.id,label:n.label}));else if(i.type==="table"){Y.value=i.props.field,O.value=i.props.label,z.value=i.props.pagination,F.value=i.props.pageSize??10,R.value=i.props.enableExcelImport;const n=(i.props.columns??[]).map(_=>({..._}));JSON.stringify(n)!==JSON.stringify($.value)&&($.value=n)}else if(i.type==="title")O.value=i.props.label;else{const n=i;Y.value=n.props.field,O.value=n.props.label,X.value=n.props.placeholder??"",y.value=!!n.props.required,i.type==="switch"&&(S.value=n.props.activeText??"开启",I.value=n.props.inactiveText??"关闭");const _=(n.props.options??[]).map(C=>({...C}));JSON.stringify(_)!==JSON.stringify(r.value)&&(r.value=_),p.value=!!n.props.multiple,V.value=n.props.inputType??"text"}setTimeout(()=>{k.value=!1},0)}},{immediate:!0}),e.watch(f,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="flexRow"&&s(a.value.id,i)}),e.watch(h,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="flexRow"&&d(a.value.id,{gap:i})}),e.watch(B,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="collapse"&&u(a.value.id,{accordion:i})}),e.watch(()=>w.value,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="collapse"&&u(a.value.id,{items:i.map(_=>({id:_.id,title:_.title,name:_.name}))})},{deep:!0}),e.watch(N,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="tabs"&&x(a.value.id,{type:i})}),e.watch(()=>g.value,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="tabs"&&x(a.value.id,{tabs:i.map(_=>({id:_.id,label:_.label}))})},{deep:!0}),e.watch(Y,i=>{k.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||d(a.value.id,{field:i})}),e.watch(O,i=>{k.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||d(a.value.id,{label:i})}),e.watch(X,i=>{k.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||d(a.value.id,{placeholder:i})}),e.watch(y,i=>{k.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||d(a.value.id,{required:i})}),e.watch(p,i=>{k.value||!a.value||a.value.type!=="select"||d(a.value.id,{multiple:i})}),e.watch(V,i=>{k.value||!a.value||a.value.type!=="input"||d(a.value.id,{inputType:i})}),e.watch(S,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="switch"&&d(a.value.id,{activeText:i})}),e.watch(I,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="switch"&&d(a.value.id,{inactiveText:i})}),e.watch(z,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="table"&&d(a.value.id,{pagination:i})}),e.watch(F,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="table"&&d(a.value.id,{pageSize:i})}),e.watch(R,i=>{var n;k.value||((n=a.value)==null?void 0:n.type)==="table"&&d(a.value.id,{enableExcelImport:i})}),e.watch(()=>$.value,i=>{var _;if(k.value||((_=a.value)==null?void 0:_.type)!=="table")return;const n=i.map(C=>{const c={...C};return c.options&&(c.options=c.options.map(b=>({...b}))),c});d(a.value.id,{columns:n})},{deep:!0}),e.watch(()=>r.value,i=>{k.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||d(a.value.id,{options:i.map(n=>({...n}))})},{deep:!0});function ie(){r.value.push({label:"新选项",value:D("opt")})}function j(i){r.value.splice(i,1)}function ke(){w.value.push({id:D("item"),title:`面板 ${w.value.length+1}`,name:D("val")})}function me(i){w.value=w.value.filter(n=>n.id!==i)}function ye(){g.value.push({id:D("tab"),label:`标签页 ${g.value.length+1}`})}function ge(i){g.value=g.value.filter(n=>n.id!==i)}function Ne(){const i=$.value.length+1;$.value.push({id:D("col"),label:`列${i}`,prop:`col${i}`,type:"text"})}function _e(i){$.value.splice(i,1)}function Ce(i){i.options||(i.options=[]),i.options.push({label:"新选项",value:D("opt")})}function Be(i,n){i.options&&i.options.splice(n,1)}return(i,n)=>{const _=e.resolveComponent("el-empty"),C=e.resolveComponent("el-option"),c=e.resolveComponent("el-select"),b=e.resolveComponent("el-form-item"),U=e.resolveComponent("el-input-number"),ce=e.resolveComponent("el-form"),v=e.resolveComponent("el-switch"),P=e.resolveComponent("el-input"),Z=e.resolveComponent("el-button"),ql=e.resolveComponent("el-collapse-item"),jl=e.resolveComponent("el-collapse");return e.openBlock(),e.createElementBlock("div",Sl,[n[32]||(n[32]=e.createElementVNode("div",{class:"title"}," 属性 ",-1)),a.value?(e.openBlock(),e.createElementBlock("div",Dl,[a.value.type==="flexRow"?(e.openBlock(),e.createBlock(ce,{key:0,"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(b,{label:"列数"},{default:e.withCtx(()=>[e.createVNode(c,{modelValue:f.value,"onUpdate:modelValue":n[0]||(n[0]=m=>f.value=m),style:{width:"200px"}},{default:e.withCtx(()=>[e.createVNode(C,{value:1,label:"1"}),e.createVNode(C,{value:2,label:"2"}),e.createVNode(C,{value:3,label:"3"}),e.createVNode(C,{value:4,label:"4"})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(b,{label:"间距"},{default:e.withCtx(()=>[e.createVNode(U,{modelValue:h.value,"onUpdate:modelValue":n[1]||(n[1]=m=>h.value=m),min:0,max:48},null,8,["modelValue"])]),_:1})]),_:1})):a.value.type==="collapse"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createVNode(ce,{"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(b,{label:"手风琴"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:B.value,"onUpdate:modelValue":n[2]||(n[2]=m=>B.value=m)},null,8,["modelValue"])]),_:1})]),_:1}),n[19]||(n[19]=e.createElementVNode("div",{class:"subTitle"}," 面板 ",-1)),e.createElementVNode("div",Ul,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m.id,class:"tabRow"},[e.createVNode(P,{modelValue:m.title,"onUpdate:modelValue":Q=>m.title=Q},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(Z,{disabled:w.value.length<=1,type:"danger",onClick:Q=>me(m.id)},{default:e.withCtx(()=>[...n[17]||(n[17]=[e.createTextVNode(" 删除 ",-1)])]),_:1},8,["disabled","onClick"])]))),128)),e.createVNode(Z,{onClick:ke},{default:e.withCtx(()=>[...n[18]||(n[18]=[e.createTextVNode(" 新增面板 ",-1)])]),_:1})])],64)):a.value.type==="tabs"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createVNode(ce,{"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(b,{label:"样式"},{default:e.withCtx(()=>[e.createVNode(c,{modelValue:N.value,"onUpdate:modelValue":n[3]||(n[3]=m=>N.value=m),style:{width:"200px"}},{default:e.withCtx(()=>[e.createVNode(C,{value:"card",label:"card"}),e.createVNode(C,{value:"border-card",label:"border-card"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),n[22]||(n[22]=e.createElementVNode("div",{class:"subTitle"}," 标签 ",-1)),e.createElementVNode("div",zl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m.id,class:"tabRow"},[e.createVNode(P,{modelValue:m.label,"onUpdate:modelValue":Q=>m.label=Q},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(Z,{disabled:g.value.length<=1,type:"danger",onClick:Q=>ge(m.id)},{default:e.withCtx(()=>[...n[20]||(n[20]=[e.createTextVNode(" 删除 ",-1)])]),_:1},8,["disabled","onClick"])]))),128)),e.createVNode(Z,{onClick:ye},{default:e.withCtx(()=>[...n[21]||(n[21]=[e.createTextVNode(" 新增标签页 ",-1)])]),_:1})])],64)):a.value.type==="table"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createVNode(ce,{"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(b,{label:"字段名"},{default:e.withCtx(()=>[e.createVNode(P,{modelValue:Y.value,"onUpdate:modelValue":n[4]||(n[4]=m=>Y.value=m)},null,8,["modelValue"])]),_:1}),e.createVNode(b,{label:"标题"},{default:e.withCtx(()=>[e.createVNode(P,{modelValue:O.value,"onUpdate:modelValue":n[5]||(n[5]=m=>O.value=m)},null,8,["modelValue"])]),_:1}),e.createVNode(b,{label:"分页"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:z.value,"onUpdate:modelValue":n[6]||(n[6]=m=>z.value=m)},null,8,["modelValue"])]),_:1}),z.value?(e.openBlock(),e.createBlock(b,{key:0,label:"每页条数"},{default:e.withCtx(()=>[e.createVNode(U,{modelValue:F.value,"onUpdate:modelValue":n[7]||(n[7]=m=>F.value=m),min:1},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.createVNode(b,{label:"Excel导入"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:R.value,"onUpdate:modelValue":n[8]||(n[8]=m=>R.value=m)},null,8,["modelValue"])]),_:1})]),_:1}),n[28]||(n[28]=e.createElementVNode("div",{class:"subTitle"}," 列配置 ",-1)),e.createElementVNode("div",Il,[$.value.length>0?(e.openBlock(),e.createBlock(jl,{key:0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,(m,Q)=>(e.openBlock(),e.createBlock(ql,{key:m.id,name:m.id},{title:e.withCtx(()=>[e.createElementVNode("div",Tl,[e.createElementVNode("span",null,e.toDisplayString(m.label||"未命名列")+" ("+e.toDisplayString(m.prop)+")",1),e.createVNode(Z,{type:"danger",link:"",size:"small",onClick:e.withModifiers(E=>_e(Q),["stop"])},{default:e.withCtx(()=>[...n[23]||(n[23]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"])])]),default:e.withCtx(()=>[e.createVNode(ce,{"label-width":"80px",size:"small"},{default:e.withCtx(()=>[e.createVNode(b,{label:"标题"},{default:e.withCtx(()=>[e.createVNode(P,{modelValue:m.label,"onUpdate:modelValue":E=>m.label=E},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(b,{label:"字段名"},{default:e.withCtx(()=>[e.createVNode(P,{modelValue:m.prop,"onUpdate:modelValue":E=>m.prop=E},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(b,{label:"类型"},{default:e.withCtx(()=>[e.createVNode(c,{modelValue:m.type,"onUpdate:modelValue":E=>m.type=E,style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(C,{label:"文本",value:"text"}),e.createVNode(C,{label:"数字",value:"number"}),e.createVNode(C,{label:"下拉",value:"select"}),e.createVNode(C,{label:"日期",value:"date"}),e.createVNode(C,{label:"时间",value:"time"}),e.createVNode(C,{label:"日期时间",value:"datetime"}),e.createVNode(C,{label:"年月",value:"month"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(b,{label:"宽度"},{default:e.withCtx(()=>[e.createVNode(U,{modelValue:m.width,"onUpdate:modelValue":E=>m.width=E,min:0,step:10,"controls-position":"right"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(b,{label:"必填"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:m.required,"onUpdate:modelValue":E=>m.required=E},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(b,{label:"排序"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:m.sortable,"onUpdate:modelValue":E=>m.sortable=E},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),m.type==="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(b,{label:"多选"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:m.multiple,"onUpdate:modelValue":E=>m.multiple=E},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(b,{label:"可搜索"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:m.filterable,"onUpdate:modelValue":E=>m.filterable=E},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),n[26]||(n[26]=e.createElementVNode("div",{class:"subTitle",style:{"font-size":"12px","margin-left":"10px"}},"选项配置",-1)),e.createElementVNode("div",$l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.options||[],(E,Re)=>(e.openBlock(),e.createElementBlock("div",{key:Re,class:"optRow"},[e.createVNode(P,{modelValue:E.label,"onUpdate:modelValue":xe=>E.label=xe,placeholder:"Label",size:"small"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(P,{modelValue:E.value,"onUpdate:modelValue":xe=>E.value=xe,placeholder:"Value",size:"small"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(Z,{type:"danger",size:"small",onClick:xe=>Be(m,Re)},{default:e.withCtx(()=>[...n[24]||(n[24]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"])]))),128)),e.createVNode(Z,{size:"small",style:{width:"100%"},onClick:E=>Ce(m)},{default:e.withCtx(()=>[...n[25]||(n[25]=[e.createTextVNode("添加选项",-1)])]),_:1},8,["onClick"])])],64)):e.createCommentVNode("",!0)]),_:2},1024)]),_:2},1032,["name"]))),128))]),_:1})):(e.openBlock(),e.createBlock(_,{key:1,description:"暂无列配置","image-size":60})),e.createVNode(Z,{type:"primary",plain:"",style:{width:"100%","margin-top":"10px"},onClick:Ne},{default:e.withCtx(()=>[...n[27]||(n[27]=[e.createTextVNode(" 新增列 ",-1)])]),_:1})])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createVNode(ce,{"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(b,{label:"标签"},{default:e.withCtx(()=>[e.createVNode(P,{modelValue:O.value,"onUpdate:modelValue":n[9]||(n[9]=m=>O.value=m)},null,8,["modelValue"])]),_:1}),["title"].includes(a.value.type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(b,{key:0,label:"字段名"},{default:e.withCtx(()=>[e.createVNode(P,{modelValue:Y.value,"onUpdate:modelValue":n[10]||(n[10]=m=>Y.value=m)},null,8,["modelValue"])]),_:1})),["input","textarea","select"].includes(a.value.type)?(e.openBlock(),e.createBlock(b,{key:1,label:"占位符"},{default:e.withCtx(()=>[e.createVNode(P,{modelValue:X.value,"onUpdate:modelValue":n[11]||(n[11]=m=>X.value=m)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),["switch","title"].includes(a.value.type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(b,{key:2,label:"必填"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:y.value,"onUpdate:modelValue":n[12]||(n[12]=m=>y.value=m)},null,8,["modelValue"])]),_:1})),H.value?(e.openBlock(),e.createBlock(b,{key:3,label:"多选"},{default:e.withCtx(()=>[e.createVNode(v,{modelValue:p.value,"onUpdate:modelValue":n[13]||(n[13]=m=>p.value=m)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),T.value?(e.openBlock(),e.createBlock(b,{key:4,label:"类型"},{default:e.withCtx(()=>[e.createVNode(c,{modelValue:V.value,"onUpdate:modelValue":n[14]||(n[14]=m=>V.value=m)},{default:e.withCtx(()=>[e.createVNode(C,{label:"文本",value:"text"}),e.createVNode(C,{label:"数字",value:"number"}),e.createVNode(C,{label:"日期",value:"date"}),e.createVNode(C,{label:"时间",value:"time"}),e.createVNode(C,{label:"日期时间",value:"datetime"})]),_:1},8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),q.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.createVNode(b,{label:"开启文案"},{default:e.withCtx(()=>[e.createVNode(P,{modelValue:S.value,"onUpdate:modelValue":n[15]||(n[15]=m=>S.value=m)},null,8,["modelValue"])]),_:1}),e.createVNode(b,{label:"关闭文案"},{default:e.withCtx(()=>[e.createVNode(P,{modelValue:I.value,"onUpdate:modelValue":n[16]||(n[16]=m=>I.value=m)},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0)]),_:1}),G.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[31]||(n[31]=e.createElementVNode("div",{class:"subTitle"}," 选项 ",-1)),e.createElementVNode("div",Ml,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,(m,Q)=>(e.openBlock(),e.createElementBlock("div",{key:Q,class:"optRow"},[e.createVNode(P,{modelValue:m.label,"onUpdate:modelValue":E=>m.label=E,placeholder:"label"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(P,{modelValue:m.value,"onUpdate:modelValue":E=>m.value=E,placeholder:"value"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(Z,{type:"danger",onClick:E=>j(Q)},{default:e.withCtx(()=>[...n[29]||(n[29]=[e.createTextVNode(" 删除 ",-1)])]),_:1},8,["onClick"])]))),128)),e.createVNode(Z,{onClick:ie},{default:e.withCtx(()=>[...n[30]||(n[30]=[e.createTextVNode(" 新增选项 ",-1)])]),_:1})])],64)):e.createCommentVNode("",!0)],64))])):(e.openBlock(),e.createBlock(_,{key:0,description:"请选择一个组件"}))])}}}),[["__scopeId","data-v-fbaf4bac"]]),Hl={class:"designer"},Ll={class:"palette"},Rl={class:"main"},Ol={class:"toolbar"},Al={class:"body"},Yl={class:"canvas"},Pl={class:"props"},Jl=W(e.defineComponent({__name:"FormDesigner",setup(t){const{history:l,schema:o,selection:d,applySchema:s,removeSelected:x,bindHotkeys:u}=te(),a=e.ref(!1),f=e.ref(!1),h=e.ref(!1);e.ref(!1);const B=e.ref(""),w=e.ref("");e.ref("");const N=e.computed(()=>d.selectedNodeId.value),g=e.computed(()=>l.canUndo.value),z=e.computed(()=>l.canRedo.value);function F(){l.undo()}function R(){l.redo()}function $(){a.value=!0}function Y(){B.value=JSON.stringify(We(o.value),null,2),f.value=!0}function O(){navigator.clipboard.writeText(B.value).then(()=>{ee.ElMessage.success("已复制")})}function X(){w.value="",h.value=!0}function y(){try{const p=JSON.parse(w.value);s(p),h.value=!1,ee.ElMessage.success("已导入布局")}catch{ee.ElMessage.error("JSON 解析失败")}}function r(){N.value&&x()}return e.onMounted(()=>{u()}),(p,V)=>{const S=e.resolveComponent("el-button"),I=e.resolveComponent("el-button-group"),G=e.resolveComponent("el-divider"),T=e.resolveComponent("el-input"),H=e.resolveComponent("el-dialog"),q=e.resolveComponent("el-alert");return e.openBlock(),e.createElementBlock("div",Hl,[e.createElementVNode("div",Ll,[e.createVNode(yl)]),e.createElementVNode("div",Rl,[e.createElementVNode("div",Ol,[e.createVNode(I,null,{default:e.withCtx(()=>[e.createVNode(S,{disabled:!g.value,onClick:F},{default:e.withCtx(()=>[...V[7]||(V[7]=[e.createTextVNode(" 撤销 ",-1)])]),_:1},8,["disabled"]),e.createVNode(S,{disabled:!z.value,onClick:R},{default:e.withCtx(()=>[...V[8]||(V[8]=[e.createTextVNode(" 重做 ",-1)])]),_:1},8,["disabled"])]),_:1}),e.createVNode(G,{direction:"vertical"}),e.createVNode(S,{onClick:X},{default:e.withCtx(()=>[...V[9]||(V[9]=[e.createTextVNode(" 导入布局 ",-1)])]),_:1}),e.createVNode(S,{onClick:Y},{default:e.withCtx(()=>[...V[10]||(V[10]=[e.createTextVNode(" 导出布局 ",-1)])]),_:1}),e.createVNode(S,{type:"primary",onClick:$},{default:e.withCtx(()=>[...V[11]||(V[11]=[e.createTextVNode(" 预览 ",-1)])]),_:1}),V[13]||(V[13]=e.createElementVNode("div",{class:"spacer"},null,-1)),e.createVNode(S,{disabled:!N.value,type:"danger",onClick:r},{default:e.withCtx(()=>[...V[12]||(V[12]=[e.createTextVNode(" 删除组件 ",-1)])]),_:1},8,["disabled"])]),e.createElementVNode("div",Al,[e.createElementVNode("div",Yl,[e.createVNode(Ht)]),e.createElementVNode("div",Pl,[e.createVNode(Fl)])])]),e.createVNode(El,{modelValue:a.value,"onUpdate:modelValue":V[0]||(V[0]=k=>a.value=k)},null,8,["modelValue"]),e.createVNode(H,{modelValue:f.value,"onUpdate:modelValue":V[3]||(V[3]=k=>f.value=k),width:"860px",title:"导出布局 JSON"},{footer:e.withCtx(()=>[e.createVNode(S,{onClick:V[2]||(V[2]=k=>f.value=!1)},{default:e.withCtx(()=>[...V[14]||(V[14]=[e.createTextVNode(" 关闭 ",-1)])]),_:1}),e.createVNode(S,{type:"primary",onClick:O},{default:e.withCtx(()=>[...V[15]||(V[15]=[e.createTextVNode(" 复制 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(T,{modelValue:B.value,"onUpdate:modelValue":V[1]||(V[1]=k=>B.value=k),type:"textarea",rows:22,readonly:""},null,8,["modelValue"])]),_:1},8,["modelValue"]),e.createVNode(H,{modelValue:h.value,"onUpdate:modelValue":V[6]||(V[6]=k=>h.value=k),width:"860px",title:"导入布局 JSON"},{footer:e.withCtx(()=>[e.createVNode(S,{onClick:V[5]||(V[5]=k=>h.value=!1)},{default:e.withCtx(()=>[...V[16]||(V[16]=[e.createTextVNode(" 取消 ",-1)])]),_:1}),e.createVNode(S,{type:"primary",onClick:y},{default:e.withCtx(()=>[...V[17]||(V[17]=[e.createTextVNode(" 确定 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(q,{title:"请粘贴布局 JSON,确定后将覆盖当前画布内容。",type:"warning","show-icon":"",closable:!1}),V[18]||(V[18]=e.createElementVNode("div",{style:{height:"10px"}},null,-1)),e.createVNode(T,{modelValue:w.value,"onUpdate:modelValue":V[4]||(V[4]=k=>w.value=k),type:"textarea",rows:22,placeholder:"在此粘贴 JSON"},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-aed585f1"]]);K.FormDesigner=Jl,K.FormRenderer=Le,Object.defineProperty(K,Symbol.toStringTag,{value:"Module"})}));
|
|
1
|
+
(function(Q,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("element-plus"),require("xlsx")):typeof define=="function"&&define.amd?define(["exports","vue","element-plus","xlsx"],e):(Q=typeof globalThis<"u"?globalThis:Q||self,e(Q.DevjectDesign={},Q.Vue,Q.ElementPlus,Q.XLSX))})(this,(function(Q,e,oe,He){"use strict";function Ae(t){const l=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const o in t)if(o!=="default"){const r=Object.getOwnPropertyDescriptor(t,o);Object.defineProperty(l,o,r.get?r:{enumerable:!0,get:()=>t[o]})}}return l.default=t,Object.freeze(l)}const ce=Ae(He);function z(t){if(typeof crypto<"u"&&"randomUUID"in crypto)return`${t}_${crypto.randomUUID()}`;const l=Math.random().toString(16).slice(2),o=Date.now().toString(16);return`${t}_${o}_${l}`}function Pe(){return{version:1,root:{children:[]}}}function se(){const t=new Date().toISOString();return{createdAt:t,updatedAt:t,style:{}}}function R(t){return JSON.parse(JSON.stringify(t))}function Ye(t){if(t==="flexRow"){const o=z("row"),r=2;return{id:o,type:"flexRow",meta:se(),props:{cols:r,gap:12},columns:new Array(r).fill(0).map((p,y)=>({id:z(`col${y+1}`),children:[]}))}}if(t==="collapse")return{id:z("collapse"),type:"collapse",meta:se(),props:{accordion:!1},items:[{id:z("item"),title:"面板 1",name:z("val"),children:[]},{id:z("item"),title:"面板 2",name:z("val"),children:[]}]};if(t==="tabs")return{id:z("tabs"),type:"tabs",meta:se(),props:{type:"card"},tabs:[{id:z("tab"),label:"标签页 1",children:[]},{id:z("tab"),label:"标签页 2",children:[]}]};const l={id:z(t),type:t,meta:se(),props:{label:"字段",field:z("field"),placeholder:"请输入",required:!1}};return t==="select"||t==="radio"||t==="checkbox"?{...l,props:{...l.props,placeholder:"请选择",options:[{label:"选项 A",value:"A"},{label:"选项 B",value:"B"}],multiple:!1}}:t==="textarea"?{...l,props:{...l.props,placeholder:"请输入",label:"多行文本"}}:t==="switch"?{...l,props:{...l.props,label:"开关",activeText:"开启",inactiveText:"关闭",activeValue:!0,inactiveValue:!1}}:t==="title"?{...l,props:{...l.props,label:"标题",fontSize:16,bold:!0,align:"left"}}:t==="image-upload"||t==="file-upload"?{...l,props:{...l.props,label:t==="image-upload"?"图片上传":"文件上传",accept:t==="image-upload"?"image/*":"*",limit:3}}:t==="table"?{id:z("table"),type:"table",meta:se(),props:{label:"表格",field:z("table-field"),columns:[{id:z("col"),label:"列1",prop:"col1",type:"text"},{id:z("col"),label:"列2",prop:"col2",type:"number"}],pagination:!0,pageSize:10,enableExcelImport:!0}}:{...l,props:{...l.props,label:"文本框",inputType:"text"}}}function re(t,l){function o(r,p){const y=r.findIndex(k=>k.id===l);if(y>=0)return{node:r[y],loc:{...p,index:y}};for(const k of r)if(k.type==="flexRow")for(let a=0;a<k.columns.length;a+=1){const f=o(k.columns[a].children,{kind:"flexCol",rowId:k.id,colIndex:a,index:0});if(f)return f}else if(k.type==="collapse")for(const a of k.items){const f=o(a.children,{kind:"collapse",collapseId:k.id,itemId:a.id,index:0});if(f)return f}else if(k.type==="tabs")for(const a of k.tabs){const f=o(a.children,{kind:"tab",tabsId:k.id,tabId:a.id,index:0});if(f)return f}return null}return o(t.root.children,{kind:"root",index:0})}function Ee(t,l){const o=re(t,l);if(!o)return null;const r=qe(t,o.loc),[p]=r.splice(o.loc.index,1);return p??null}function Ue(t,l,o){const r=je(t,l),p=Math.max(0,Math.min(l.insertIndex,r.length));r.splice(p,0,o)}function Je(t,l,o){const r=Ee(t,l);r&&(r.meta.updatedAt=new Date().toISOString(),Ue(t,o,r))}function je(t,l){var p,y,k,a;if(l.kind==="root")return t.root.children;if(l.kind==="flexCol"){const f=(p=re(t,l.rowId))==null?void 0:p.node;return!f||f.type!=="flexRow"?t.root.children:((y=f.columns[l.colIndex])==null?void 0:y.children)??f.columns[0].children}if(l.kind==="collapse"){const f=(k=re(t,l.collapseId))==null?void 0:k.node;return!f||f.type!=="collapse"?t.root.children:(f.items.find(D=>D.id===l.itemId)??f.items[0]).children}const o=(a=re(t,l.tabsId))==null?void 0:a.node;return!o||o.type!=="tabs"?t.root.children:(o.tabs.find(f=>f.id===l.tabId)??o.tabs[0]).children}function qe(t,l){var p,y,k,a;if(l.kind==="root")return t.root.children;if(l.kind==="flexCol"){const f=(p=re(t,l.rowId))==null?void 0:p.node;return!f||f.type!=="flexRow"?t.root.children:((y=f.columns[l.colIndex])==null?void 0:y.children)??f.columns[0].children}if(l.kind==="collapse"){const f=(k=re(t,l.collapseId))==null?void 0:k.node;return!f||f.type!=="collapse"?t.root.children:(f.items.find(D=>D.id===l.itemId)??f.items[0]).children}const o=(a=re(t,l.tabsId))==null?void 0:a.node;return!o||o.type!=="tabs"?t.root.children:(o.tabs.find(f=>f.id===l.tabId)??o.tabs[0]).children}function ge(t,l,o,r){const p=o==="input"||o==="textarea"||o==="select"||o==="radio"||o==="checkbox"||o==="switch"||o==="image-upload"||o==="file-upload"||o==="table"||o==="title",y=o==="collapse"||o==="tabs",k=o==="flexRow",a=Xe(t,r);return r.kind==="root"||a==="flexRow"?k||y||p:a==="collapse"||a==="tabs"?p||k:!1}function Xe(t,l){return l.kind==="root"?"root":l.kind==="flexCol"?"flexRow":l.kind==="collapse"?"collapse":"tabs"}function We(t){const l=t;if(!l||typeof l!="object")throw new Error("invalid");if(l.version!==1)throw new Error("invalid");if(!l.root||!Array.isArray(l.root.children))throw new Error("invalid");for(const o of l.root.children)ke(o);return l}function ke(t){if(!t||typeof t!="object")throw new Error("invalid");if((!t.meta||typeof t.meta!="object")&&(t.meta=se()),typeof t.meta.createdAt!="string"&&(t.meta.createdAt=new Date().toISOString()),typeof t.meta.updatedAt!="string"&&(t.meta.updatedAt=t.meta.createdAt),(!t.meta.style||typeof t.meta.style!="object")&&(t.meta.style={}),t.type==="flexRow"){Array.isArray(t.columns)||(t.columns=[]);for(const l of t.columns)if(!(!l||typeof l!="object")){Array.isArray(l.children)||(l.children=[]);for(const o of l.children)ke(o)}return}if(t.type==="collapse"){Array.isArray(t.items)||(t.items=[]);for(const l of t.items)if(!(!l||typeof l!="object")){Array.isArray(l.children)||(l.children=[]);for(const o of l.children)ke(o)}return}if(t.type==="tabs"){Array.isArray(t.tabs)||(t.tabs=[]);for(const l of t.tabs)if(!(!l||typeof l!="object")){Array.isArray(l.children)||(l.children=[]);for(const o of l.children)ke(o)}}}function Ke(t){return{version:t.version,root:{children:t.root.children.map(l=>R(l))}}}function Ge(t){const l=e.ref([]),o=e.ref(R(t)),r=e.ref([]),p=e.computed(()=>l.value.length>0),y=e.computed(()=>r.value.length>0);function k(x){l.value.push(R(o.value)),o.value=R(x),r.value=[]}function a(x){o.value=R(x)}function f(){if(!l.value.length)return;const x=l.value.pop();r.value.unshift(R(o.value)),o.value=R(x)}function N(){if(!r.value.length)return;const x=r.value.shift();l.value.push(R(o.value)),o.value=R(x)}function D(x){l.value=[],r.value=[],o.value=R(x)}return{past:l,present:o,future:r,canUndo:p,canRedo:y,push:k,replace:a,undo:f,redo:N,reset:D}}function Ze(){const t=e.ref(null),l=e.ref(null),o=e.reactive({x:0,y:0}),r=e.computed(()=>!!t.value);function p(f,N){t.value=f,o.x=N.clientX,o.y=N.clientY}function y(f){o.x=f.clientX,o.y=f.clientY}function k(f){l.value=f}function a(){t.value=null,l.value=null}return{dragging:t,hoverTarget:l,pointer:o,isDragging:r,begin:p,move:y,setHover:k,end:a}}const H=Ge(Pe()),de=e.ref(null),Y=Ze(),me=e.ref({});function ye(){return new Date().toISOString()}function ie(t){H.push(t)}function Qe(t){const l=We(t);de.value=null,H.reset(R(l))}function ve(t){de.value=t}function De(){const t=de.value;if(!t)return;const l=R(H.present.value);Ee(l,t)&&(ie(l),de.value=null)}function et(t,l){const o={kind:"palette",nodeType:t};Y.begin(o,l),Se()}function tt(t,l){const o={kind:"node",nodeId:t};Y.begin(o,l),Se()}function lt(t){const l=Y.dragging.value;if(!l)return{accepted:!1,message:"拖拽已结束"};const o=Date.now(),r=R(H.present.value);if(l.kind==="palette"){const p=Ye(l.nodeType);return ge(r,"palette",l.nodeType,t)?(Ue(r,t,p),ie(r),de.value=p.id,{accepted:!0,durationMs:Date.now()-o}):(oe.ElMessage.warning("该位置不允许放置此组件"),{accepted:!1,message:"该位置不允许放置此组件",durationMs:Date.now()-o})}else{const p=fe(r,l.nodeId);return p?ge(r,"node",p.type,t)?(Je(r,l.nodeId,t),ie(r),de.value=l.nodeId,{accepted:!0,durationMs:Date.now()-o}):(oe.ElMessage.warning("该位置不允许放置此组件"),{accepted:!1,message:"该位置不允许放置此组件",durationMs:Date.now()-o}):{accepted:!1,message:"未找到被移动的组件",durationMs:Date.now()-o}}}function fe(t,l){const o=[...t.root.children];for(;o.length;){const r=o.shift();if(r.id===l)return r;if(r.type==="flexRow")for(const p of r.columns)o.push(...p.children);else if(r.type==="collapse")for(const p of r.items)o.push(...p.children);else if(r.type==="tabs")for(const p of r.tabs)o.push(...p.children)}return null}let xe=!1;function Se(){xe||(xe=!0,window.addEventListener("pointermove",Te),window.addEventListener("pointerup",ot,{once:!0}))}function Ne(){xe&&(xe=!1,window.removeEventListener("pointermove",Te))}function Te(t){Y.move(t);const l=ze(t.clientX,t.clientY),o=Y.hoverTarget.value;JSON.stringify(o)!==JSON.stringify(l)&&Ie(l)}function ot(){if(!Y.dragging.value){Y.end(),Ne();return}const l=Y.hoverTarget.value??ze(Y.pointer.x,Y.pointer.y);if(!l){Y.end(),Ne();return}lt(l),Y.end(),Ne()}const nt=e.computed(()=>H.present.value),at={canUndo:H.canUndo,canRedo:H.canRedo,undo:()=>H.undo(),redo:()=>H.redo()},rt={selectedNodeId:de};function dt(t,l){const o=R(H.present.value),r=fe(o,t);r&&(r.props={...r.props,...l},r.meta.updatedAt=ye(),ie(o))}function it(t,l){const o=R(H.present.value),r=fe(o,t);if(!r||r.type!=="flexRow")return;const p=r.columns.length;if(r.props.cols=l,r.meta.updatedAt=ye(),l>p)for(let y=p;y<l;y+=1)r.columns.push({id:z(`col${y+1}`),children:[]});else l<p&&(r.columns=r.columns.slice(0,l));ie(o)}function ct(t,l){const o=R(H.present.value),r=fe(o,t);if(!(!r||r.type!=="collapse")){if(l.accordion!==void 0&&(r.props.accordion=l.accordion),l.items){const p=r.items;r.items=l.items.map(y=>{const k=p.find(a=>a.id===y.id);return{id:y.id,title:y.title,name:y.name,children:(k==null?void 0:k.children)??[]}})}r.meta.updatedAt=ye(),ie(o)}}function st(t,l){const o=R(H.present.value),r=fe(o,t);if(!(!r||r.type!=="tabs")){if(l.type&&(r.props.type=l.type),l.tabs){const p=r.tabs;r.tabs=l.tabs.map(y=>{const k=p.find(a=>a.id===y.id);return{id:y.id,label:y.label,children:(k==null?void 0:k.children)??[]}})}r.meta.updatedAt=ye(),ie(o)}}function Ie(t){const l=Y.hoverTarget.value;JSON.stringify(l)!==JSON.stringify(t)&&Y.setHover(t)}function ze(t,l){var y;const o=document.elementFromPoint(t,l);if(!o)return null;const r=(y=o.closest)==null?void 0:y.call(o,"[data-drop-target]"),p=r==null?void 0:r.getAttribute("data-drop-target");if(!p)return null;try{return JSON.parse(p)}catch{return null}}function pt(){window.addEventListener("keydown",t=>{if(t.ctrlKey&&(t.key==="z"||t.key==="Z")){t.preventDefault(),H.undo();return}if(t.ctrlKey&&(t.key==="y"||t.key==="Y")){t.preventDefault(),H.redo();return}t.key==="Delete"&&De()})}let _e=null;e.watch(()=>H.present.value,t=>{_e&&window.clearTimeout(_e),_e=window.setTimeout(()=>{},800)},{deep:!0}),e.watch(()=>me.value,t=>{},{deep:!0});function mt(){}function ft(t){me.value=t}function ut(){return R(me.value)}function Vt(t){if(!t||typeof t!="object")throw new Error("invalid");me.value=t}function ne(){return{schema:nt,history:at,selection:rt,drag:Y,formData:me,select:ve,beginPaletteDrag:et,beginNodeDrag:tt,setHover:Ie,applySchema:Qe,removeSelected:De,updateNodeProps:dt,updateFlexCols:it,updateCollapse:ct,updateTabs:st,bindHotkeys:pt,loadAutoSave:mt,setFormData:ft,exportFormData:ut,importFormData:Vt}}const kt=["data-drop-target"],yt=e.defineComponent({__name:"DropLine",props:{target:{}},setup(t){const l=t,{drag:o,schema:r,setHover:p}=ne(),y=e.computed(()=>JSON.stringify(l.target)),k=e.computed(()=>{const x=o.hoverTarget.value;return x?JSON.stringify(x)===JSON.stringify(l.target):!1}),a=e.computed(()=>{const x=o.dragging.value;if(!x)return!1;const w=x.kind==="palette"?x.nodeType:f(x.nodeId);return w?!ge(r.value,x.kind,w,l.target):!1});function f(x){const w=[...r.value.root.children];for(;w.length;){const g=w.shift();if(g.id===x)return g.type;if(g.type==="flexRow")for(const $ of g.columns)w.push(...$.children);else if(g.type==="collapse")for(const $ of g.items)w.push(...$.children);else if(g.type==="tabs")for(const $ of g.tabs)w.push(...$.children)}return null}function N(){o.isDragging.value&&p(l.target)}function D(){o.isDragging.value&&p(null)}return(x,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["line",{active:k.value,forbidden:a.value}]),"data-drop-target":y.value,onMouseenter:N,onMouseleave:D,onPointerenter:N,onPointerleave:D},null,42,kt))}}),v=(t,l)=>{const o=t.__vccOpts||t;for(const[r,p]of l)o[r]=p;return o},ae=v(yt,[["__scopeId","data-v-677f5a96"]]),xt={class:"head"},wt={class:"left"},bt={class:"name"},ht={class:"right"},gt={class:"body"},Nt={class:"colTitle"},_t={class:"colBody"},Ct={key:0,class:"colEmpty"},Bt={key:1,class:"containerBox"},Et={key:0,class:"colEmpty"},Ut={key:2,class:"containerBox"},Dt={key:0,class:"colEmpty"},St={key:3,class:"tablePreview"},Tt={key:4,class:"fieldLine"},It={class:"fieldLabel"},zt={class:"fieldMeta"},$t=v(e.defineComponent({__name:"NodeCard",props:{node:{}},setup(t){const l=t,{selection:o,select:r,beginNodeDrag:p}=ne(),y=e.computed(()=>o.selectedNodeId.value===l.node.id),k=e.computed(()=>l.node.type==="flexRow"?"布局":l.node.type==="collapse"||l.node.type==="tabs"?"容器":"组件"),a=e.computed(()=>{if(l.node.type==="flexRow")return`Flex ${l.node.columns.length} 列`;if(l.node.type==="collapse")return"折叠面板";if(l.node.type==="tabs")return"标签页";if(l.node.type==="input"){const x={text:"文本",number:"数字",date:"日期",time:"时间",datetime:"日期时间"},w=l.node.props.inputType??"text";return`${l.node.props.label} (${x[w]??w})`}return l.node.props.label}),f=e.computed(()=>l.node.type!=="flexRow"?{}:{display:"grid",gap:`${l.node.props.gap??12}px`,gridTemplateColumns:`repeat(${l.node.columns.length}, minmax(0, 1fr))`});function N(){r(l.node.id)}function D(x){x.button===0&&p(l.node.id,x)}return(x,w)=>{const g=e.resolveComponent("el-tag"),$=e.resolveComponent("el-button"),M=e.resolveComponent("NodeCard",!0),T=e.resolveComponent("el-collapse-item"),L=e.resolveComponent("el-collapse"),J=e.resolveComponent("el-tab-pane"),A=e.resolveComponent("el-tabs"),W=e.resolveComponent("el-table-column"),K=e.resolveComponent("el-table");return e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["card",{selected:y.value}]),onClick:e.withModifiers(N,["stop"])},[e.createElementVNode("div",xt,[e.createElementVNode("div",wt,[e.createVNode(g,{size:"small"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(k.value),1)]),_:1}),e.createElementVNode("span",bt,e.toDisplayString(a.value),1)]),e.createElementVNode("div",ht,[e.createVNode($,{size:"small",text:"",onPointerdown:e.withModifiers(D,["stop"])},{default:e.withCtx(()=>[...w[0]||(w[0]=[e.createTextVNode(" 拖拽 ",-1)])]),_:1})])]),e.createElementVNode("div",gt,[t.node.type==="flexRow"?(e.openBlock(),e.createElementBlock("div",{key:0,class:"flexRow",style:e.normalizeStyle(f.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.columns,(b,V)=>(e.openBlock(),e.createElementBlock("div",{key:b.id,class:"col"},[e.createElementVNode("div",Nt," 第 "+e.toDisplayString(Number(V)+1)+" 列 ",1),e.createElementVNode("div",_t,[e.createVNode(ae,{target:{kind:"flexCol",rowId:t.node.id,colIndex:V,insertIndex:0}},null,8,["target"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.children,(d,i)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:d.id},[e.createVNode(M,{node:d},null,8,["node"]),e.createVNode(ae,{target:{kind:"flexCol",rowId:t.node.id,colIndex:Number(V),insertIndex:Number(i)+1}},null,8,["target"])],64))),128)),b.children.length===0?(e.openBlock(),e.createElementBlock("div",Ct," 拖拽到此列 ")):e.createCommentVNode("",!0)])]))),128))],4)):t.node.type==="collapse"?(e.openBlock(),e.createElementBlock("div",Bt,[e.createVNode(L,{accordion:t.node.props.accordion,class:"tabsPreview"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.items,b=>(e.openBlock(),e.createBlock(T,{key:b.id,title:b.title,name:b.name},{default:e.withCtx(()=>[e.createVNode(ae,{target:{kind:"collapse",collapseId:t.node.id,itemId:b.id,insertIndex:0}},null,8,["target"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.children,(V,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:V.id},[e.createVNode(M,{node:V},null,8,["node"]),e.createVNode(ae,{target:{kind:"collapse",collapseId:t.node.id,itemId:b.id,insertIndex:d+1}},null,8,["target"])],64))),128)),b.children.length===0?(e.openBlock(),e.createElementBlock("div",Et," 拖拽到 "+e.toDisplayString(b.title),1)):e.createCommentVNode("",!0)]),_:2},1032,["title","name"]))),128))]),_:1},8,["accordion"])])):t.node.type==="tabs"?(e.openBlock(),e.createElementBlock("div",Ut,[e.createVNode(A,{type:t.node.props.type,class:"tabsPreview"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.tabs,b=>(e.openBlock(),e.createBlock(J,{key:b.id,label:b.label},{default:e.withCtx(()=>[e.createVNode(ae,{target:{kind:"tab",tabsId:t.node.id,tabId:b.id,insertIndex:0}},null,8,["target"]),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.children,(V,d)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:V.id},[e.createVNode(M,{node:V},null,8,["node"]),e.createVNode(ae,{target:{kind:"tab",tabsId:t.node.id,tabId:b.id,insertIndex:d+1}},null,8,["target"])],64))),128)),b.children.length===0?(e.openBlock(),e.createElementBlock("div",Dt," 拖拽到 "+e.toDisplayString(b.label),1)):e.createCommentVNode("",!0)]),_:2},1032,["label"]))),128))]),_:1},8,["type"])])):t.node.type==="table"?(e.openBlock(),e.createElementBlock("div",St,[e.createVNode(K,{data:[],border:"",size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.columns,b=>(e.openBlock(),e.createBlock(W,{key:b.id,prop:b.prop,label:b.label,width:b.width},null,8,["prop","label","width"]))),128))]),_:1})])):(e.openBlock(),e.createElementBlock("div",Tt,[e.createElementVNode("span",It,e.toDisplayString(t.node.props.label),1),e.createElementVNode("span",zt,"("+e.toDisplayString(t.node.type)+")",1)]))])],2)}}}),[["__scopeId","data-v-7c887642"]]),Mt={class:"root"},Lt={class:"panel"},Rt=v(e.defineComponent({__name:"Canvas",setup(t){const{schema:l}=ne(),o=e.computed(()=>l.value);return(r,p)=>{const y=e.resolveComponent("el-empty");return e.openBlock(),e.createElementBlock("div",Mt,[p[0]||(p[0]=e.createElementVNode("div",{class:"title"}," 画布 ",-1)),e.createElementVNode("div",Lt,[e.createVNode(ae,{target:{kind:"root",insertIndex:0}}),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.value.root.children,(k,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k.id},[e.createVNode($t,{node:k},null,8,["node"]),e.createVNode(ae,{target:{kind:"root",insertIndex:Number(a)+1}},null,8,["target"])],64))),128)),o.value.root.children.length===0?(e.openBlock(),e.createBlock(y,{key:0,description:"从左侧拖拽组件到此处"})):e.createCommentVNode("",!0)])])}}}),[["__scopeId","data-v-e6a28470"]]);/*! Element Plus Icons Vue v2.3.2 */var Ft=e.defineComponent({name:"ArrowDown",__name:"arrow-down",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}}),Ot=Ft,Ht=e.defineComponent({name:"CircleCheck",__name:"circle-check",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),e.createElementVNode("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}}),At=Ht,Pt=e.defineComponent({name:"Delete",__name:"delete",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}}),$e=Pt,Yt=e.defineComponent({name:"Document",__name:"document",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z"})]))}}),Jt=Yt,jt=e.defineComponent({name:"Download",__name:"download",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-253.696 236.288-236.352 45.248 45.248L508.8 704 192 387.2l45.248-45.248L480 584.704V128h64z"})]))}}),qt=jt,Xt=e.defineComponent({name:"Edit",__name:"edit",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M832 512a32 32 0 1 1 64 0v352a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h352a32 32 0 0 1 0 64H192v640h640z"}),e.createElementVNode("path",{fill:"currentColor",d:"m469.952 554.24 52.8-7.552L847.104 222.4a32 32 0 1 0-45.248-45.248L477.44 501.44l-7.552 52.8zm422.4-422.4a96 96 0 0 1 0 135.808l-331.84 331.84a32 32 0 0 1-18.112 9.088L436.8 623.68a32 32 0 0 1-36.224-36.224l15.104-105.6a32 32 0 0 1 9.024-18.112l331.904-331.84a96 96 0 0 1 135.744 0z"})]))}}),Me=Xt,Wt=e.defineComponent({name:"Files",__name:"files",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M128 384v448h768V384zm-32-64h832a32 32 0 0 1 32 32v512a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V352a32 32 0 0 1 32-32m64-128h704v64H160zm96-128h512v64H256z"})]))}}),Kt=Wt,Gt=e.defineComponent({name:"Fold",__name:"fold",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M896 192H128v128h768zm0 256H384v128h512zm0 256H128v128h768zM320 384 128 512l192 128z"})]))}}),Zt=Gt,Qt=e.defineComponent({name:"Grid",__name:"grid",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M640 384v256H384V384zm64 0h192v256H704zm-64 512H384V704h256zm64 0V704h192v192zm-64-768v192H384V128zm64 0h192v192H704zM320 384v256H128V384zm0 512H128V704h192zm0-768v192H128V128z"})]))}}),vt=Qt,el=e.defineComponent({name:"Menu",__name:"menu",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 448a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32zm448 0a32 32 0 0 1-32-32V160.064a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32V416a32 32 0 0 1-32 32zM160 896a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32zm448 0a32 32 0 0 1-32-32V608a32 32 0 0 1 32-32h255.936a32 32 0 0 1 32 32v256a32 32 0 0 1-32 32z"})]))}}),tl=el,ll=e.defineComponent({name:"Picture",__name:"picture",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 160v704h704V160zm-32-64h768a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H128a32 32 0 0 1-32-32V128a32 32 0 0 1 32-32"}),e.createElementVNode("path",{fill:"currentColor",d:"M384 288q64 0 64 64t-64 64-64-64 64-64M185.408 876.992l-50.816-38.912L350.72 556.032a96 96 0 0 1 134.592-17.856l1.856 1.472 122.88 99.136a32 32 0 0 0 44.992-4.864l216-269.888 49.92 39.936-215.808 269.824-.256.32a96 96 0 0 1-135.04 14.464l-122.88-99.072-.64-.512a32 32 0 0 0-44.8 5.952z"})]))}}),ol=ll,nl=e.defineComponent({name:"Plus",__name:"plus",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),Le=nl,al=e.defineComponent({name:"Postcard",__name:"postcard",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 224a32 32 0 0 0-32 32v512a32 32 0 0 0 32 32h704a32 32 0 0 0 32-32V256a32 32 0 0 0-32-32zm0-64h704a96 96 0 0 1 96 96v512a96 96 0 0 1-96 96H160a96 96 0 0 1-96-96V256a96 96 0 0 1 96-96"}),e.createElementVNode("path",{fill:"currentColor",d:"M704 320a64 64 0 1 1 0 128 64 64 0 0 1 0-128M288 448h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32m0 128h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32"})]))}}),rl=al,dl=e.defineComponent({name:"SetUp",__name:"set-up",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M224 160a64 64 0 0 0-64 64v576a64 64 0 0 0 64 64h576a64 64 0 0 0 64-64V224a64 64 0 0 0-64-64zm0-64h576a128 128 0 0 1 128 128v576a128 128 0 0 1-128 128H224A128 128 0 0 1 96 800V224A128 128 0 0 1 224 96"}),e.createElementVNode("path",{fill:"currentColor",d:"M384 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128m0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256"}),e.createElementVNode("path",{fill:"currentColor",d:"M480 320h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32m160 416a64 64 0 1 0 0-128 64 64 0 0 0 0 128m0 64a128 128 0 1 1 0-256 128 128 0 0 1 0 256"}),e.createElementVNode("path",{fill:"currentColor",d:"M288 640h256q32 0 32 32t-32 32H288q-32 0-32-32t32-32"})]))}}),il=dl,cl=e.defineComponent({name:"SwitchButton",__name:"switch-button",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M352 159.872V230.4a352 352 0 1 0 320 0v-70.528A416.128 416.128 0 0 1 512 960a416 416 0 0 1-160-800.128"}),e.createElementVNode("path",{fill:"currentColor",d:"M512 64q32 0 32 32v320q0 32-32 32t-32-32V96q0-32 32-32"})]))}}),sl=cl,pl=e.defineComponent({name:"Upload",__name:"upload",setup(t){return(l,o)=>(e.openBlock(),e.createElementBlock("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[e.createElementVNode("path",{fill:"currentColor",d:"M160 832h704a32 32 0 1 1 0 64H160a32 32 0 1 1 0-64m384-578.304V704h-64V247.296L237.248 490.048 192 444.8 508.8 128l316.8 316.8-45.312 45.248z"})]))}}),Re=pl;const ml={class:"content"},fl={class:"label"},j=v(e.defineComponent({__name:"PaletteItem",props:{label:{},nodeType:{}},setup(t){const l=t,{beginPaletteDrag:o}=ne(),r={flexRow:tl,collapse:Zt,tabs:Kt,table:vt,input:Me,textarea:Jt,select:Ot,radio:At,checkbox:il,switch:sl,"image-upload":ol,"file-upload":Re,title:rl},p=e.computed(()=>r[l.nodeType]||Me);function y(k){k.button===0&&o(l.nodeType,k)}return(k,a)=>{const f=e.resolveComponent("el-icon"),N=e.resolveComponent("el-card");return e.openBlock(),e.createBlock(N,{shadow:"hover",class:"item",onPointerdown:y},{default:e.withCtx(()=>[e.createElementVNode("div",ml,[e.createVNode(f,{class:"icon",size:16},{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(p.value)))]),_:1}),e.createElementVNode("div",fl,e.toDisplayString(t.label),1)])]),_:1})}}}),[["__scopeId","data-v-7d576d24"]]),ul={class:"wrap"},Vl={class:"grid"},kl={class:"grid"},yl=v(e.defineComponent({__name:"Palette",setup(t){const l=e.ref(["container","field"]),{drag:o}=ne(),r=e.computed(()=>o.isDragging.value),p=e.computed(()=>({left:`${o.pointer.x+12}px`,top:`${o.pointer.y+12}px`})),y=e.computed(()=>{const k=o.dragging.value;return k?k.kind==="palette"?k.nodeType:"移动组件":""});return(k,a)=>{const f=e.resolveComponent("el-collapse-item"),N=e.resolveComponent("el-collapse");return e.openBlock(),e.createElementBlock("div",ul,[e.createVNode(N,{modelValue:l.value,"onUpdate:modelValue":a[0]||(a[0]=D=>l.value=D)},{default:e.withCtx(()=>[e.createVNode(f,{name:"container"},{title:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode(" 容器组件 ",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",Vl,[e.createVNode(j,{label:"横向布局","node-type":"flexRow"}),e.createVNode(j,{label:"折叠面板","node-type":"collapse"}),e.createVNode(j,{label:"标签页","node-type":"tabs"})])]),_:1}),e.createVNode(f,{name:"field"},{title:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode(" 普通组件 ",-1)])]),default:e.withCtx(()=>[e.createElementVNode("div",kl,[e.createVNode(j,{label:"文本框","node-type":"input"}),e.createVNode(j,{label:"文本域","node-type":"textarea"}),e.createVNode(j,{label:"单选框","node-type":"radio"}),e.createVNode(j,{label:"多选框","node-type":"checkbox"}),e.createVNode(j,{label:"下拉框","node-type":"select"}),e.createVNode(j,{label:"开关","node-type":"switch"}),e.createVNode(j,{label:"图片上传","node-type":"image-upload"}),e.createVNode(j,{label:"文件上传","node-type":"file-upload"}),e.createVNode(j,{label:"标题","node-type":"title"}),e.createVNode(j,{label:"表格","node-type":"table"})])]),_:1})]),_:1},8,["modelValue"]),r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:"ghost",style:e.normalizeStyle(p.value)},e.toDisplayString(y.value),5)):e.createCommentVNode("",!0)])}}}),[["__scopeId","data-v-1a00cdb7"]]),xl={key:3,class:"tableWrap"},wl={class:"tableHeader"},bl={class:"title"},hl={class:"actions"},gl={key:0,class:"pagination"},Nl=v(e.defineComponent({__name:"RenderNode",props:{node:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:l}){const o=t,r=l,p=e.computed({get:()=>o.modelValue,set:d=>r("update:modelValue",d)});e.onMounted(()=>{if(o.node.type==="switch"){const d=o.node;p.value[d.props.field]===void 0&&r("update:modelValue",{...p.value,[d.props.field]:d.props.inactiveValue??!1})}});const y=process.env.VITE_DEVJECT_UPLOAD_URL,k=process.env.VITE_DEVJECT_DOWNLOAD_URL,a=process.env.VITE_DEVJECT_UPLOAD_PARSE,f=e.computed({get:()=>{if(!["image-upload","file-upload"].includes(o.node.type))return[];const d=o.node,i=p.value[d.props.field];return Array.isArray(i)?i:[]},set:d=>{if(!["image-upload","file-upload"].includes(o.node.type))return;const i=o.node;r("update:modelValue",{...p.value,[i.props.field]:d})}});function N(d,i,E){const F=(a||"data").split(".");let I=d;for(const O of F)if(I&&typeof I=="object"&&O in I)I=I[O];else{I=null;break}if(I){let O;if(I.startsWith("http"))O=I;else{const q=k||"",G=I.startsWith("/")?"":"/";O=q+G+I}i.url=O;const u=o.node;r("update:modelValue",{...p.value,[u.props.field]:[...E]})}}function D(d){d.url&&window.open(d.url,"_blank")}const x=e.computed(()=>o.node.type!=="flexRow"?{}:{display:"grid",gap:`${o.node.props.gap??12}px`,gridTemplateColumns:`repeat(${o.node.columns.length}, minmax(0, 1fr))`}),w=e.computed({get:()=>{const d=o.node;if(d.props.field)return p.value[d.props.field]},set:d=>{const i=o.node;i.props.field&&r("update:modelValue",{...p.value,[i.props.field]:d})}}),g=e.computed({get:()=>{const d=w.value,i=o.node;return d===void 0?i.props.inactiveValue:d},set:d=>{w.value=d}}),$=e.computed({get:()=>{if(o.node.type!=="checkbox")return[];const d=o.node,i=p.value[d.props.field];return Array.isArray(i)?i:[]},set:d=>{if(o.node.type!=="checkbox")return;const i=o.node;r("update:modelValue",{...p.value,[i.props.field]:d})}}),M=e.ref(1),T=e.computed({get:()=>{if(o.node.type!=="table")return[];const d=o.node,i=p.value[d.props.field];return Array.isArray(i)?i:[]},set:d=>{if(o.node.type!=="table")return;const i=o.node;r("update:modelValue",{...p.value,[i.props.field]:d})}}),L=e.computed(()=>{if(o.node.type!=="table")return[];if(!o.node.props.pagination)return T.value;const d=o.node.props.pageSize??10,i=(M.value-1)*d;return T.value.slice(i,i+d)});function J(){if(o.node.type!=="table")return;const d=o.node,i={};for(const E of d.props.columns)i[E.prop]="";T.value=[...T.value,i]}function A(d){if(o.node.type!=="table")return;const i=o.node,E=i.props.pagination?(M.value-1)*(i.props.pageSize??10)+d:d,P=[...T.value];P.splice(E,1),T.value=P}function W(d){M.value=d}function K(d){if(o.node.type!=="table")return;const i=new FileReader;i.onload=E=>{var q;const P=(q=E.target)==null?void 0:q.result;if(!P)return;const F=ce.read(P,{type:"binary"}),I=F.Sheets[F.SheetNames[0]],u=ce.utils.sheet_to_json(I).map(G=>{const le={},pe=o.node;for(const X of pe.props.columns)G[X.prop]!==void 0?le[X.prop]=G[X.prop]:G[X.label]!==void 0?le[X.prop]=G[X.label]:le[X.prop]="";return le});T.value=[...T.value,...u]},i.readAsBinaryString(d.raw)}function b(){if(o.node.type!=="table")return;const d=T.value;if(!d.length)return;const i=o.node,E=i.props.columns,P=d.map(O=>{const u={};return E.forEach(q=>{u[q.label]=O[q.prop]}),u}),F=ce.utils.json_to_sheet(P),I=ce.utils.book_new();ce.utils.book_append_sheet(I,F,"Sheet1"),ce.writeFile(I,`${i.props.label||"data"}.xlsx`)}function V(){o.node.type==="table"&&(T.value=[])}return(d,i)=>{const E=e.resolveComponent("RenderNode",!0),P=e.resolveComponent("el-collapse-item"),F=e.resolveComponent("el-collapse"),I=e.resolveComponent("el-tab-pane"),O=e.resolveComponent("el-tabs"),u=e.resolveComponent("el-button"),q=e.resolveComponent("el-upload"),G=e.resolveComponent("el-option"),le=e.resolveComponent("el-select"),pe=e.resolveComponent("el-input-number"),X=e.resolveComponent("el-date-picker"),we=e.resolveComponent("el-time-picker"),ue=e.resolveComponent("el-input"),be=e.resolveComponent("el-table-column"),Ce=e.resolveComponent("el-table"),Be=e.resolveComponent("el-pagination"),c=e.resolveComponent("el-radio"),n=e.resolveComponent("el-radio-group"),_=e.resolveComponent("el-checkbox"),C=e.resolveComponent("el-checkbox-group"),Z=e.resolveComponent("el-switch"),U=e.resolveComponent("el-icon"),Ve=e.resolveComponent("el-form-item");return t.node.type==="flexRow"?(e.openBlock(),e.createElementBlock("div",{key:0,class:"row",style:e.normalizeStyle(x.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.columns,s=>(e.openBlock(),e.createElementBlock("div",{key:s.id,class:"col"},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.children,B=>(e.openBlock(),e.createBlock(E,{key:B.id,node:B,modelValue:p.value,"onUpdate:modelValue":i[0]||(i[0]=h=>p.value=h)},null,8,["node","modelValue"]))),128))]))),128))],4)):t.node.type==="collapse"?(e.openBlock(),e.createBlock(F,{key:1,accordion:t.node.props.accordion},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.items,s=>(e.openBlock(),e.createBlock(P,{key:s.id,title:s.title,name:s.name},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.children,B=>(e.openBlock(),e.createBlock(E,{key:B.id,node:B,modelValue:p.value,"onUpdate:modelValue":i[1]||(i[1]=h=>p.value=h)},null,8,["node","modelValue"]))),128))]),_:2},1032,["title","name"]))),128))]),_:1},8,["accordion"])):t.node.type==="tabs"?(e.openBlock(),e.createBlock(O,{key:2,type:t.node.props.type},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.tabs,s=>(e.openBlock(),e.createBlock(I,{key:s.id,label:s.label},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.children,B=>(e.openBlock(),e.createBlock(E,{key:B.id,node:B,modelValue:p.value,"onUpdate:modelValue":i[2]||(i[2]=h=>p.value=h)},null,8,["node","modelValue"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["type"])):t.node.type==="table"?(e.openBlock(),e.createElementBlock("div",xl,[e.createElementVNode("div",wl,[e.createElementVNode("div",bl,e.toDisplayString(t.node.props.label),1),e.createElementVNode("div",hl,[e.createVNode(u,{icon:e.unref($e),size:"small",type:"danger",plain:"",onClick:V},{default:e.withCtx(()=>[...i[16]||(i[16]=[e.createTextVNode("清空数据",-1)])]),_:1},8,["icon"]),t.node.props.enableExcelImport?(e.openBlock(),e.createBlock(q,{key:0,action:"#","auto-upload":!1,"show-file-list":!1,accept:".xlsx, .xls","on-change":K},{default:e.withCtx(()=>[e.createVNode(u,{icon:e.unref(Re),size:"small"},{default:e.withCtx(()=>[...i[17]||(i[17]=[e.createTextVNode("导入Excel",-1)])]),_:1},8,["icon"])]),_:1})):e.createCommentVNode("",!0),e.createVNode(u,{icon:e.unref(qt),size:"small",onClick:b},{default:e.withCtx(()=>[...i[18]||(i[18]=[e.createTextVNode("导出Excel",-1)])]),_:1},8,["icon"]),e.createVNode(u,{type:"primary",icon:e.unref(Le),size:"small",onClick:J},{default:e.withCtx(()=>[...i[19]||(i[19]=[e.createTextVNode("添加",-1)])]),_:1},8,["icon"])])]),e.createVNode(Ce,{data:L.value,border:"",style:{width:"100%"},size:"small"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.columns,s=>(e.openBlock(),e.createBlock(be,{key:s.id,prop:s.prop,label:s.label,width:s.width,sortable:!!s.sortable},{default:e.withCtx(({row:B})=>[s.type==="select"?(e.openBlock(),e.createBlock(le,{key:0,modelValue:B[s.prop],"onUpdate:modelValue":h=>B[s.prop]=h,size:"small",multiple:!!s.multiple,filterable:!!s.filterable,placeholder:s.placeholder||"请选择",style:{width:"100%"}},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.options??[],h=>(e.openBlock(),e.createBlock(G,{key:h.value,label:h.label,value:h.value},null,8,["label","value"]))),128))]),_:2},1032,["modelValue","onUpdate:modelValue","multiple","filterable","placeholder"])):s.type==="number"?(e.openBlock(),e.createBlock(pe,{key:1,modelValue:B[s.prop],"onUpdate:modelValue":h=>B[s.prop]=h,"controls-position":"right",size:"small",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue"])):["date","datetime","month"].includes(s.type)?(e.openBlock(),e.createBlock(X,{key:2,modelValue:B[s.prop],"onUpdate:modelValue":h=>B[s.prop]=h,type:s.type,format:s.type==="datetime"?"YYYY-MM-DD HH:mm:ss":s.type==="month"?"YYYY-MM":"YYYY-MM-DD","value-format":s.type==="datetime"?"YYYY-MM-DD HH:mm:ss":s.type==="month"?"YYYY-MM":"YYYY-MM-DD",placeholder:s.placeholder||"请选择",size:"small",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue","type","format","value-format","placeholder"])):s.type==="time"?(e.openBlock(),e.createBlock(we,{key:3,modelValue:B[s.prop],"onUpdate:modelValue":h=>B[s.prop]=h,format:"HH:mm:ss","value-format":"HH:mm:ss",placeholder:s.placeholder||"请选择时间",size:"small",style:{width:"100%"}},null,8,["modelValue","onUpdate:modelValue","placeholder"])):(e.openBlock(),e.createBlock(ue,{key:4,modelValue:B[s.prop],"onUpdate:modelValue":h=>B[s.prop]=h,size:"small"},null,8,["modelValue","onUpdate:modelValue"]))]),_:2},1032,["prop","label","width","sortable"]))),128)),e.createVNode(be,{label:"操作",width:"100",fixed:"right"},{header:e.withCtx(()=>[...i[20]||(i[20]=[e.createElementVNode("div",{style:{display:"flex","justify-content":"space-between","align-items":"center"}},[e.createElementVNode("span",null,"操作")],-1)])]),default:e.withCtx(({$index:s})=>[e.createVNode(u,{type:"danger",icon:e.unref($e),circle:"",size:"small",onClick:B=>A(s)},null,8,["icon","onClick"])]),_:1})]),_:1},8,["data"]),t.node.props.pagination?(e.openBlock(),e.createElementBlock("div",gl,[e.createVNode(Be,{"current-page":M.value,"onUpdate:currentPage":i[3]||(i[3]=s=>M.value=s),"page-size":t.node.props.pageSize,total:T.value.length,layout:"prev, pager, next",onCurrentChange:W},null,8,["current-page","page-size","total"])])):e.createCommentVNode("",!0)])):t.node.type==="title"?(e.openBlock(),e.createElementBlock("div",{key:4,style:e.normalizeStyle({fontSize:(t.node.props.fontSize||16)+"px",fontWeight:t.node.props.bold?"bold":"normal",textAlign:t.node.props.align||"left",margin:"10px 0"})},e.toDisplayString(t.node.props.label),5)):(e.openBlock(),e.createBlock(Ve,{key:5,label:t.node.props.label,required:!!t.node.props.required},{default:e.withCtx(()=>[t.node.type==="input"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.node.props.inputType==="number"?(e.openBlock(),e.createBlock(pe,{key:0,modelValue:w.value,"onUpdate:modelValue":i[4]||(i[4]=s=>w.value=s),placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):t.node.props.inputType==="date"?(e.openBlock(),e.createBlock(X,{key:1,modelValue:w.value,"onUpdate:modelValue":i[5]||(i[5]=s=>w.value=s),type:"date","value-format":"YYYY-MM-DD",placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):t.node.props.inputType==="time"?(e.openBlock(),e.createBlock(we,{key:2,modelValue:w.value,"onUpdate:modelValue":i[6]||(i[6]=s=>w.value=s),"value-format":"HH:mm:ss",placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):t.node.props.inputType==="datetime"?(e.openBlock(),e.createBlock(X,{key:3,modelValue:w.value,"onUpdate:modelValue":i[7]||(i[7]=s=>w.value=s),type:"datetime","value-format":"YYYY-MM-DD HH:mm:ss",placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):(e.openBlock(),e.createBlock(ue,{key:4,modelValue:w.value,"onUpdate:modelValue":i[8]||(i[8]=s=>w.value=s),placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"]))],64)):t.node.type==="textarea"?(e.openBlock(),e.createBlock(ue,{key:1,modelValue:w.value,"onUpdate:modelValue":i[9]||(i[9]=s=>w.value=s),type:"textarea",autosize:{minRows:3,maxRows:8},placeholder:t.node.props.placeholder??""},null,8,["modelValue","placeholder"])):t.node.type==="select"?(e.openBlock(),e.createBlock(le,{key:2,modelValue:w.value,"onUpdate:modelValue":i[10]||(i[10]=s=>w.value=s),style:{width:"100%"},placeholder:t.node.props.placeholder??"",multiple:!!t.node.props.multiple},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.options??[],s=>(e.openBlock(),e.createBlock(G,{key:s.value,label:s.label,value:s.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue","placeholder","multiple"])):t.node.type==="radio"?(e.openBlock(),e.createBlock(n,{key:3,modelValue:w.value,"onUpdate:modelValue":i[11]||(i[11]=s=>w.value=s)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.options??[],s=>(e.openBlock(),e.createBlock(c,{key:s.value,value:s.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])):t.node.type==="checkbox"?(e.openBlock(),e.createBlock(C,{key:4,modelValue:$.value,"onUpdate:modelValue":i[12]||(i[12]=s=>$.value=s)},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.node.props.options??[],s=>(e.openBlock(),e.createBlock(_,{key:s.value,value:s.value},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])):t.node.type==="switch"?(e.openBlock(),e.createBlock(Z,{key:5,modelValue:g.value,"onUpdate:modelValue":i[13]||(i[13]=s=>g.value=s),"active-text":t.node.props.activeText,"inactive-text":t.node.props.inactiveText,"active-value":t.node.props.activeValue,"inactive-value":t.node.props.inactiveValue},null,8,["modelValue","active-text","inactive-text","active-value","inactive-value"])):t.node.type==="image-upload"?(e.openBlock(),e.createBlock(q,{key:6,action:e.unref(y),name:"file","list-type":"picture-card",limit:t.node.props.limit,"file-list":f.value,"onUpdate:fileList":i[14]||(i[14]=s=>f.value=s),"on-preview":D,"on-success":N},{default:e.withCtx(()=>[e.createVNode(U,null,{default:e.withCtx(()=>[e.createVNode(e.unref(Le))]),_:1})]),_:1},8,["action","limit","file-list"])):t.node.type==="file-upload"?(e.openBlock(),e.createBlock(q,{key:7,style:{width:"100%"},action:e.unref(y),name:"file",limit:t.node.props.limit,accept:t.node.props.accept,"file-list":f.value,"onUpdate:fileList":i[15]||(i[15]=s=>f.value=s),"on-preview":D,"on-success":N},{default:e.withCtx(()=>[e.createVNode(u,{type:"primary"},{default:e.withCtx(()=>[...i[21]||(i[21]=[e.createTextVNode("点击上传",-1)])]),_:1})]),_:1},8,["action","limit","accept","file-list"])):e.createCommentVNode("",!0)]),_:1},8,["label","required"]))}}}),[["__scopeId","data-v-c41bec75"]]),_l={class:"root"},Fe=v(e.defineComponent({__name:"FormRenderer",props:{schema:{},modelValue:{}},emits:["update:modelValue"],setup(t,{emit:l}){const o=t,r=l,p=e.computed({get:()=>o.modelValue,set:y=>r("update:modelValue",y)});return(y,k)=>(e.openBlock(),e.createElementBlock("div",_l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.schema.root.children,a=>(e.openBlock(),e.createBlock(Nl,{key:a.id,node:a,modelValue:p.value,"onUpdate:modelValue":k[0]||(k[0]=f=>p.value=f)},null,8,["node","modelValue"]))),128))]))}}),[["__scopeId","data-v-a20c32c5"]]),Cl={class:"bar"},Bl={class:"surface"},El=v(e.defineComponent({__name:"PreviewDialog",props:{modelValue:{type:Boolean}},emits:["update:modelValue"],setup(t,{emit:l}){const o=t,r=l,p=e.computed({get:()=>o.modelValue,set:b=>r("update:modelValue",b)}),{schema:y,formData:k,setFormData:a,exportFormData:f,importFormData:N}=ne(),D=e.computed(()=>y.value),x=e.ref("pc"),w=e.ref(!1);e.ref(!1);const g=e.ref({});Object.keys(g.value).length===0&&Object.keys(k.value).length>0&&(g.value={...k.value});const $=e.ref(!1),M=e.ref(""),T=e.ref(!1),L=e.ref("");e.watch(()=>p.value,b=>{b&&(g.value=f())},{immediate:!0}),e.watch(()=>g.value,b=>{a(b)},{deep:!0});function J(){M.value=JSON.stringify(g.value,null,2),$.value=!0}function A(){navigator.clipboard.writeText(M.value).then(()=>{oe.ElMessage.success("已复制")})}function W(){L.value="",T.value=!0}function K(){try{const b=JSON.parse(L.value);N(b),g.value=f(),T.value=!1,oe.ElMessage.success("已导入数据")}catch{oe.ElMessage.error("JSON 解析失败")}}return(b,V)=>{const d=e.resolveComponent("el-radio-button"),i=e.resolveComponent("el-radio-group"),E=e.resolveComponent("el-button"),P=e.resolveComponent("el-form"),F=e.resolveComponent("el-dialog"),I=e.resolveComponent("el-input"),O=e.resolveComponent("el-alert");return e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(F,{modelValue:p.value,"onUpdate:modelValue":V[4]||(V[4]=u=>p.value=u),width:"980px",title:"预览",top:"4vh",fullscreen:w.value},{footer:e.withCtx(()=>[e.createVNode(E,{onClick:V[3]||(V[3]=u=>p.value=!1)},{default:e.withCtx(()=>[...V[16]||(V[16]=[e.createTextVNode(" 关闭 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createElementVNode("div",Cl,[e.createVNode(i,{modelValue:x.value,"onUpdate:modelValue":V[0]||(V[0]=u=>x.value=u),size:"small"},{default:e.withCtx(()=>[e.createVNode(d,{label:"pc"},{default:e.withCtx(()=>[...V[11]||(V[11]=[e.createTextVNode(" PC ",-1)])]),_:1}),e.createVNode(d,{label:"mobile"},{default:e.withCtx(()=>[...V[12]||(V[12]=[e.createTextVNode(" 移动端 ",-1)])]),_:1})]),_:1},8,["modelValue"]),e.createVNode(E,{onClick:V[1]||(V[1]=u=>w.value=!w.value),size:"small",style:{"margin-left":"12px"}},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(w.value?"退出全屏":"全屏"),1)]),_:1}),V[15]||(V[15]=e.createElementVNode("div",{class:"spacer"},null,-1)),e.createVNode(E,{onClick:J},{default:e.withCtx(()=>[...V[13]||(V[13]=[e.createTextVNode(" 导出数据 JSON ",-1)])]),_:1}),e.createVNode(E,{onClick:W},{default:e.withCtx(()=>[...V[14]||(V[14]=[e.createTextVNode(" 导入数据 JSON ",-1)])]),_:1})]),e.createElementVNode("div",{class:e.normalizeClass(["viewport",{mobile:x.value==="mobile"}])},[e.createElementVNode("div",Bl,[e.createVNode(P,{"label-position":"top"},{default:e.withCtx(()=>[e.createVNode(Fe,{schema:D.value,modelValue:g.value,"onUpdate:modelValue":V[2]||(V[2]=u=>g.value=u)},null,8,["schema","modelValue"])]),_:1})])],2)]),_:1},8,["modelValue","fullscreen"]),e.createVNode(F,{modelValue:$.value,"onUpdate:modelValue":V[7]||(V[7]=u=>$.value=u),width:"860px",title:"导出数据 JSON"},{footer:e.withCtx(()=>[e.createVNode(E,{onClick:V[6]||(V[6]=u=>$.value=!1)},{default:e.withCtx(()=>[...V[17]||(V[17]=[e.createTextVNode(" 关闭 ",-1)])]),_:1}),e.createVNode(E,{type:"primary",onClick:A},{default:e.withCtx(()=>[...V[18]||(V[18]=[e.createTextVNode(" 复制 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(I,{modelValue:M.value,"onUpdate:modelValue":V[5]||(V[5]=u=>M.value=u),type:"textarea",rows:22,readonly:""},null,8,["modelValue"])]),_:1},8,["modelValue"]),e.createVNode(F,{modelValue:T.value,"onUpdate:modelValue":V[10]||(V[10]=u=>T.value=u),width:"860px",title:"导入数据 JSON"},{footer:e.withCtx(()=>[e.createVNode(E,{onClick:V[9]||(V[9]=u=>T.value=!1)},{default:e.withCtx(()=>[...V[19]||(V[19]=[e.createTextVNode(" 取消 ",-1)])]),_:1}),e.createVNode(E,{type:"primary",onClick:K},{default:e.withCtx(()=>[...V[20]||(V[20]=[e.createTextVNode(" 确定 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(O,{title:"请粘贴数据 JSON,确定后将覆盖当前表单数据。",type:"warning","show-icon":"",closable:!1}),V[21]||(V[21]=e.createElementVNode("div",{style:{height:"10px"}},null,-1)),e.createVNode(I,{modelValue:L.value,"onUpdate:modelValue":V[8]||(V[8]=u=>L.value=u),type:"textarea",rows:22,placeholder:"在此粘贴 JSON"},null,8,["modelValue"])]),_:1},8,["modelValue"])],64)}}}),[["__scopeId","data-v-2e5f57e6"]]),Ul={class:"wrap"},Dl={key:1,class:"panel"},Sl={class:"tabsEditor"},Tl={class:"tabsEditor"},Il={class:"options"},zl={class:"colHeader",style:{display:"flex","justify-content":"space-between","align-items":"center",width:"100%","padding-right":"10px"}},$l={class:"options-list"},Ml={class:"options"},Ll=v(e.defineComponent({__name:"PropertiesPanel",setup(t){const{schema:l,selection:o,updateNodeProps:r,updateFlexCols:p,updateTabs:y,updateCollapse:k}=ne(),a=e.computed(()=>{const c=o.selectedNodeId.value;if(!c)return null;const n=[...l.value.root.children];for(;n.length;){const _=n.shift();if(_.id===c)return _;if(_.type==="flexRow")for(const C of _.columns)n.push(...C.children);else if(_.type==="collapse")for(const C of _.items)n.push(...C.children);else if(_.type==="tabs")for(const C of _.tabs)n.push(...C.children)}return null}),f=e.ref(2),N=e.ref(12),D=e.ref(!1),x=e.ref([]),w=e.ref("card"),g=e.ref([]),$=e.ref(!0),M=e.ref(10),T=e.ref(!0),L=e.ref([]),J=e.ref(""),A=e.ref(""),W=e.ref(""),K=e.ref(!1),b=e.ref([]),V=e.ref(!1),d=e.ref("text"),i=e.ref("开启"),E=e.ref("关闭"),P=e.computed(()=>{var c,n,_;return((c=a.value)==null?void 0:c.type)==="select"||((n=a.value)==null?void 0:n.type)==="radio"||((_=a.value)==null?void 0:_.type)==="checkbox"}),F=e.computed(()=>{var c;return((c=a.value)==null?void 0:c.type)==="input"}),I=e.computed(()=>{var c;return((c=a.value)==null?void 0:c.type)==="select"}),O=e.computed(()=>{var c;return((c=a.value)==null?void 0:c.type)==="switch"}),u=e.ref(!1);e.watch(()=>a.value,c=>{if(c){if(u.value=!0,c.type==="flexRow")f.value=c.props.cols,N.value=c.props.gap??12;else if(c.type==="collapse")D.value=c.props.accordion,x.value=c.items.map(n=>({id:n.id,title:n.title,name:n.name}));else if(c.type==="tabs")w.value=c.props.type,g.value=c.tabs.map(n=>({id:n.id,label:n.label}));else if(c.type==="table"){J.value=c.props.field,A.value=c.props.label,$.value=c.props.pagination,M.value=c.props.pageSize??10,T.value=c.props.enableExcelImport;const n=(c.props.columns??[]).map(_=>({..._}));JSON.stringify(n)!==JSON.stringify(L.value)&&(L.value=n)}else if(c.type==="title")A.value=c.props.label;else{const n=c;J.value=n.props.field,A.value=n.props.label,W.value=n.props.placeholder??"",K.value=!!n.props.required,c.type==="switch"&&(i.value=n.props.activeText??"开启",E.value=n.props.inactiveText??"关闭");const _=(n.props.options??[]).map(C=>({...C}));JSON.stringify(_)!==JSON.stringify(b.value)&&(b.value=_),V.value=!!n.props.multiple,d.value=n.props.inputType??"text"}setTimeout(()=>{u.value=!1},0)}},{immediate:!0}),e.watch(f,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="flexRow"&&p(a.value.id,c)}),e.watch(N,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="flexRow"&&r(a.value.id,{gap:c})}),e.watch(D,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="collapse"&&k(a.value.id,{accordion:c})}),e.watch(()=>x.value,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="collapse"&&k(a.value.id,{items:c.map(_=>({id:_.id,title:_.title,name:_.name}))})},{deep:!0}),e.watch(w,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="tabs"&&y(a.value.id,{type:c})}),e.watch(()=>g.value,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="tabs"&&y(a.value.id,{tabs:c.map(_=>({id:_.id,label:_.label}))})},{deep:!0}),e.watch(J,c=>{u.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||r(a.value.id,{field:c})}),e.watch(A,c=>{u.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||r(a.value.id,{label:c})}),e.watch(W,c=>{u.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||r(a.value.id,{placeholder:c})}),e.watch(K,c=>{u.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||r(a.value.id,{required:c})}),e.watch(V,c=>{u.value||!a.value||a.value.type!=="select"||r(a.value.id,{multiple:c})}),e.watch(d,c=>{u.value||!a.value||a.value.type!=="input"||r(a.value.id,{inputType:c})}),e.watch(i,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="switch"&&r(a.value.id,{activeText:c})}),e.watch(E,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="switch"&&r(a.value.id,{inactiveText:c})}),e.watch($,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="table"&&r(a.value.id,{pagination:c})}),e.watch(M,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="table"&&r(a.value.id,{pageSize:c})}),e.watch(T,c=>{var n;u.value||((n=a.value)==null?void 0:n.type)==="table"&&r(a.value.id,{enableExcelImport:c})}),e.watch(()=>L.value,c=>{var _;if(u.value||((_=a.value)==null?void 0:_.type)!=="table")return;const n=c.map(C=>{const Z={...C};return Z.options&&(Z.options=Z.options.map(U=>({...U}))),Z});r(a.value.id,{columns:n})},{deep:!0}),e.watch(()=>b.value,c=>{u.value||!a.value||a.value.type==="flexRow"||a.value.type==="collapse"||a.value.type==="tabs"||r(a.value.id,{options:c.map(n=>({...n}))})},{deep:!0});function q(){b.value.push({label:"新选项",value:z("opt")})}function G(c){b.value.splice(c,1)}function le(){x.value.push({id:z("item"),title:`面板 ${x.value.length+1}`,name:z("val")})}function pe(c){x.value=x.value.filter(n=>n.id!==c)}function X(){g.value.push({id:z("tab"),label:`标签页 ${g.value.length+1}`})}function we(c){g.value=g.value.filter(n=>n.id!==c)}function ue(){const c=L.value.length+1;L.value.push({id:z("col"),label:`列${c}`,prop:`col${c}`,type:"text"})}function be(c){L.value.splice(c,1)}function Ce(c){c.options||(c.options=[]),c.options.push({label:"新选项",value:z("opt")})}function Be(c,n){c.options&&c.options.splice(n,1)}return(c,n)=>{const _=e.resolveComponent("el-empty"),C=e.resolveComponent("el-option"),Z=e.resolveComponent("el-select"),U=e.resolveComponent("el-form-item"),Ve=e.resolveComponent("el-input-number"),s=e.resolveComponent("el-form"),B=e.resolveComponent("el-switch"),h=e.resolveComponent("el-input"),ee=e.resolveComponent("el-button"),jl=e.resolveComponent("el-collapse-item"),ql=e.resolveComponent("el-collapse");return e.openBlock(),e.createElementBlock("div",Ul,[n[32]||(n[32]=e.createElementVNode("div",{class:"title"}," 属性 ",-1)),a.value?(e.openBlock(),e.createElementBlock("div",Dl,[a.value.type==="flexRow"?(e.openBlock(),e.createBlock(s,{key:0,"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(U,{label:"列数"},{default:e.withCtx(()=>[e.createVNode(Z,{modelValue:f.value,"onUpdate:modelValue":n[0]||(n[0]=m=>f.value=m),style:{width:"200px"}},{default:e.withCtx(()=>[e.createVNode(C,{value:1,label:"1"}),e.createVNode(C,{value:2,label:"2"}),e.createVNode(C,{value:3,label:"3"}),e.createVNode(C,{value:4,label:"4"})]),_:1},8,["modelValue"])]),_:1}),e.createVNode(U,{label:"间距"},{default:e.withCtx(()=>[e.createVNode(Ve,{modelValue:N.value,"onUpdate:modelValue":n[1]||(n[1]=m=>N.value=m),min:0,max:48},null,8,["modelValue"])]),_:1})]),_:1})):a.value.type==="collapse"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createVNode(s,{"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(U,{label:"手风琴"},{default:e.withCtx(()=>[e.createVNode(B,{modelValue:D.value,"onUpdate:modelValue":n[2]||(n[2]=m=>D.value=m)},null,8,["modelValue"])]),_:1})]),_:1}),n[19]||(n[19]=e.createElementVNode("div",{class:"subTitle"}," 面板 ",-1)),e.createElementVNode("div",Sl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m.id,class:"tabRow"},[e.createVNode(h,{modelValue:m.title,"onUpdate:modelValue":te=>m.title=te},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(ee,{disabled:x.value.length<=1,type:"danger",onClick:te=>pe(m.id)},{default:e.withCtx(()=>[...n[17]||(n[17]=[e.createTextVNode(" 删除 ",-1)])]),_:1},8,["disabled","onClick"])]))),128)),e.createVNode(ee,{onClick:le},{default:e.withCtx(()=>[...n[18]||(n[18]=[e.createTextVNode(" 新增面板 ",-1)])]),_:1})])],64)):a.value.type==="tabs"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createVNode(s,{"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(U,{label:"样式"},{default:e.withCtx(()=>[e.createVNode(Z,{modelValue:w.value,"onUpdate:modelValue":n[3]||(n[3]=m=>w.value=m),style:{width:"200px"}},{default:e.withCtx(()=>[e.createVNode(C,{value:"card",label:"card"}),e.createVNode(C,{value:"border-card",label:"border-card"})]),_:1},8,["modelValue"])]),_:1})]),_:1}),n[22]||(n[22]=e.createElementVNode("div",{class:"subTitle"}," 标签 ",-1)),e.createElementVNode("div",Tl,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(g.value,m=>(e.openBlock(),e.createElementBlock("div",{key:m.id,class:"tabRow"},[e.createVNode(h,{modelValue:m.label,"onUpdate:modelValue":te=>m.label=te},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(ee,{disabled:g.value.length<=1,type:"danger",onClick:te=>we(m.id)},{default:e.withCtx(()=>[...n[20]||(n[20]=[e.createTextVNode(" 删除 ",-1)])]),_:1},8,["disabled","onClick"])]))),128)),e.createVNode(ee,{onClick:X},{default:e.withCtx(()=>[...n[21]||(n[21]=[e.createTextVNode(" 新增标签页 ",-1)])]),_:1})])],64)):a.value.type==="table"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:3},[e.createVNode(s,{"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(U,{label:"字段名"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:J.value,"onUpdate:modelValue":n[4]||(n[4]=m=>J.value=m)},null,8,["modelValue"])]),_:1}),e.createVNode(U,{label:"标题"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:A.value,"onUpdate:modelValue":n[5]||(n[5]=m=>A.value=m)},null,8,["modelValue"])]),_:1}),e.createVNode(U,{label:"分页"},{default:e.withCtx(()=>[e.createVNode(B,{modelValue:$.value,"onUpdate:modelValue":n[6]||(n[6]=m=>$.value=m)},null,8,["modelValue"])]),_:1}),$.value?(e.openBlock(),e.createBlock(U,{key:0,label:"每页条数"},{default:e.withCtx(()=>[e.createVNode(Ve,{modelValue:M.value,"onUpdate:modelValue":n[7]||(n[7]=m=>M.value=m),min:1},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),e.createVNode(U,{label:"Excel导入"},{default:e.withCtx(()=>[e.createVNode(B,{modelValue:T.value,"onUpdate:modelValue":n[8]||(n[8]=m=>T.value=m)},null,8,["modelValue"])]),_:1})]),_:1}),n[28]||(n[28]=e.createElementVNode("div",{class:"subTitle"}," 列配置 ",-1)),e.createElementVNode("div",Il,[L.value.length>0?(e.openBlock(),e.createBlock(ql,{key:0},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(L.value,(m,te)=>(e.openBlock(),e.createBlock(jl,{key:m.id,name:m.id},{title:e.withCtx(()=>[e.createElementVNode("div",zl,[e.createElementVNode("span",null,e.toDisplayString(m.label||"未命名列")+" ("+e.toDisplayString(m.prop)+")",1),e.createVNode(ee,{type:"danger",link:"",size:"small",onClick:e.withModifiers(S=>be(te),["stop"])},{default:e.withCtx(()=>[...n[23]||(n[23]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"])])]),default:e.withCtx(()=>[e.createVNode(s,{"label-width":"80px",size:"small"},{default:e.withCtx(()=>[e.createVNode(U,{label:"标题"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:m.label,"onUpdate:modelValue":S=>m.label=S},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(U,{label:"字段名"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:m.prop,"onUpdate:modelValue":S=>m.prop=S},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(U,{label:"类型"},{default:e.withCtx(()=>[e.createVNode(Z,{modelValue:m.type,"onUpdate:modelValue":S=>m.type=S,style:{width:"100%"}},{default:e.withCtx(()=>[e.createVNode(C,{label:"文本",value:"text"}),e.createVNode(C,{label:"数字",value:"number"}),e.createVNode(C,{label:"下拉",value:"select"}),e.createVNode(C,{label:"日期",value:"date"}),e.createVNode(C,{label:"时间",value:"time"}),e.createVNode(C,{label:"日期时间",value:"datetime"}),e.createVNode(C,{label:"年月",value:"month"})]),_:1},8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(U,{label:"宽度"},{default:e.withCtx(()=>[e.createVNode(Ve,{modelValue:m.width,"onUpdate:modelValue":S=>m.width=S,min:0,step:10,"controls-position":"right"},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(U,{label:"必填"},{default:e.withCtx(()=>[e.createVNode(B,{modelValue:m.required,"onUpdate:modelValue":S=>m.required=S},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(U,{label:"排序"},{default:e.withCtx(()=>[e.createVNode(B,{modelValue:m.sortable,"onUpdate:modelValue":S=>m.sortable=S},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),m.type==="select"?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(U,{label:"多选"},{default:e.withCtx(()=>[e.createVNode(B,{modelValue:m.multiple,"onUpdate:modelValue":S=>m.multiple=S},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),e.createVNode(U,{label:"可搜索"},{default:e.withCtx(()=>[e.createVNode(B,{modelValue:m.filterable,"onUpdate:modelValue":S=>m.filterable=S},null,8,["modelValue","onUpdate:modelValue"])]),_:2},1024),n[26]||(n[26]=e.createElementVNode("div",{class:"subTitle",style:{"font-size":"12px","margin-left":"10px"}},"选项配置",-1)),e.createElementVNode("div",$l,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(m.options||[],(S,Oe)=>(e.openBlock(),e.createElementBlock("div",{key:Oe,class:"optRow"},[e.createVNode(h,{modelValue:S.label,"onUpdate:modelValue":he=>S.label=he,placeholder:"Label",size:"small"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(h,{modelValue:S.value,"onUpdate:modelValue":he=>S.value=he,placeholder:"Value",size:"small"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(ee,{type:"danger",size:"small",onClick:he=>Be(m,Oe)},{default:e.withCtx(()=>[...n[24]||(n[24]=[e.createTextVNode("删除",-1)])]),_:1},8,["onClick"])]))),128)),e.createVNode(ee,{size:"small",style:{width:"100%"},onClick:S=>Ce(m)},{default:e.withCtx(()=>[...n[25]||(n[25]=[e.createTextVNode("添加选项",-1)])]),_:1},8,["onClick"])])],64)):e.createCommentVNode("",!0)]),_:2},1024)]),_:2},1032,["name"]))),128))]),_:1})):(e.openBlock(),e.createBlock(_,{key:1,description:"暂无列配置","image-size":60})),e.createVNode(ee,{type:"primary",plain:"",style:{width:"100%","margin-top":"10px"},onClick:ue},{default:e.withCtx(()=>[...n[27]||(n[27]=[e.createTextVNode(" 新增列 ",-1)])]),_:1})])],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createVNode(s,{"label-width":"92px"},{default:e.withCtx(()=>[e.createVNode(U,{label:"标签"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:A.value,"onUpdate:modelValue":n[9]||(n[9]=m=>A.value=m)},null,8,["modelValue"])]),_:1}),["title"].includes(a.value.type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(U,{key:0,label:"字段名"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:J.value,"onUpdate:modelValue":n[10]||(n[10]=m=>J.value=m)},null,8,["modelValue"])]),_:1})),["input","textarea","select"].includes(a.value.type)?(e.openBlock(),e.createBlock(U,{key:1,label:"占位符"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:W.value,"onUpdate:modelValue":n[11]||(n[11]=m=>W.value=m)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),["switch","title"].includes(a.value.type)?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(U,{key:2,label:"必填"},{default:e.withCtx(()=>[e.createVNode(B,{modelValue:K.value,"onUpdate:modelValue":n[12]||(n[12]=m=>K.value=m)},null,8,["modelValue"])]),_:1})),I.value?(e.openBlock(),e.createBlock(U,{key:3,label:"多选"},{default:e.withCtx(()=>[e.createVNode(B,{modelValue:V.value,"onUpdate:modelValue":n[13]||(n[13]=m=>V.value=m)},null,8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),F.value?(e.openBlock(),e.createBlock(U,{key:4,label:"类型"},{default:e.withCtx(()=>[e.createVNode(Z,{modelValue:d.value,"onUpdate:modelValue":n[14]||(n[14]=m=>d.value=m)},{default:e.withCtx(()=>[e.createVNode(C,{label:"文本",value:"text"}),e.createVNode(C,{label:"数字",value:"number"}),e.createVNode(C,{label:"日期",value:"date"}),e.createVNode(C,{label:"时间",value:"time"}),e.createVNode(C,{label:"日期时间",value:"datetime"})]),_:1},8,["modelValue"])]),_:1})):e.createCommentVNode("",!0),O.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:5},[e.createVNode(U,{label:"开启文案"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:i.value,"onUpdate:modelValue":n[15]||(n[15]=m=>i.value=m)},null,8,["modelValue"])]),_:1}),e.createVNode(U,{label:"关闭文案"},{default:e.withCtx(()=>[e.createVNode(h,{modelValue:E.value,"onUpdate:modelValue":n[16]||(n[16]=m=>E.value=m)},null,8,["modelValue"])]),_:1})],64)):e.createCommentVNode("",!0)]),_:1}),P.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[n[31]||(n[31]=e.createElementVNode("div",{class:"subTitle"}," 选项 ",-1)),e.createElementVNode("div",Ml,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,(m,te)=>(e.openBlock(),e.createElementBlock("div",{key:te,class:"optRow"},[e.createVNode(h,{modelValue:m.label,"onUpdate:modelValue":S=>m.label=S,placeholder:"label"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(h,{modelValue:m.value,"onUpdate:modelValue":S=>m.value=S,placeholder:"value"},null,8,["modelValue","onUpdate:modelValue"]),e.createVNode(ee,{type:"danger",onClick:S=>G(te)},{default:e.withCtx(()=>[...n[29]||(n[29]=[e.createTextVNode(" 删除 ",-1)])]),_:1},8,["onClick"])]))),128)),e.createVNode(ee,{onClick:q},{default:e.withCtx(()=>[...n[30]||(n[30]=[e.createTextVNode(" 新增选项 ",-1)])]),_:1})])],64)):e.createCommentVNode("",!0)],64))])):(e.openBlock(),e.createBlock(_,{key:0,description:"请选择一个组件"}))])}}}),[["__scopeId","data-v-fbaf4bac"]]),Rl={class:"designer"},Fl={class:"palette"},Ol={class:"main"},Hl={class:"toolbar"},Al={class:"body"},Pl={class:"canvas"},Yl={class:"props"},Jl=v(e.defineComponent({__name:"FormDesigner",props:{uploadUrl:{},downloadUrl:{},uploadParse:{}},setup(t){const{history:l,schema:o,selection:r,applySchema:p,removeSelected:y,bindHotkeys:k}=ne(),a=e.ref(!1),f=e.ref(!1),N=e.ref(!1);e.ref(!1);const D=e.ref(""),x=e.ref("");e.ref("");const w=e.computed(()=>r.selectedNodeId.value),g=e.computed(()=>l.canUndo.value),$=e.computed(()=>l.canRedo.value);function M(){l.undo()}function T(){l.redo()}function L(){a.value=!0}function J(){D.value=JSON.stringify(Ke(o.value),null,2),f.value=!0}function A(){navigator.clipboard.writeText(D.value).then(()=>{oe.ElMessage.success("已复制")})}function W(){x.value="",N.value=!0}function K(){try{const V=JSON.parse(x.value);p(V),N.value=!1,oe.ElMessage.success("已导入布局")}catch{oe.ElMessage.error("JSON 解析失败")}}function b(){w.value&&y()}return e.onMounted(()=>{k()}),(V,d)=>{const i=e.resolveComponent("el-button"),E=e.resolveComponent("el-button-group"),P=e.resolveComponent("el-divider"),F=e.resolveComponent("el-input"),I=e.resolveComponent("el-dialog"),O=e.resolveComponent("el-alert");return e.openBlock(),e.createElementBlock("div",Rl,[e.createElementVNode("div",Fl,[e.createVNode(yl)]),e.createElementVNode("div",Ol,[e.createElementVNode("div",Hl,[e.createVNode(E,null,{default:e.withCtx(()=>[e.createVNode(i,{disabled:!g.value,onClick:M},{default:e.withCtx(()=>[...d[7]||(d[7]=[e.createTextVNode(" 撤销 ",-1)])]),_:1},8,["disabled"]),e.createVNode(i,{disabled:!$.value,onClick:T},{default:e.withCtx(()=>[...d[8]||(d[8]=[e.createTextVNode(" 重做 ",-1)])]),_:1},8,["disabled"])]),_:1}),e.createVNode(P,{direction:"vertical"}),e.createVNode(i,{onClick:W},{default:e.withCtx(()=>[...d[9]||(d[9]=[e.createTextVNode(" 导入布局 ",-1)])]),_:1}),e.createVNode(i,{onClick:J},{default:e.withCtx(()=>[...d[10]||(d[10]=[e.createTextVNode(" 导出布局 ",-1)])]),_:1}),e.createVNode(i,{type:"primary",onClick:L},{default:e.withCtx(()=>[...d[11]||(d[11]=[e.createTextVNode(" 预览 ",-1)])]),_:1}),d[13]||(d[13]=e.createElementVNode("div",{class:"spacer"},null,-1)),e.createVNode(i,{disabled:!w.value,type:"danger",onClick:b},{default:e.withCtx(()=>[...d[12]||(d[12]=[e.createTextVNode(" 删除组件 ",-1)])]),_:1},8,["disabled"])]),e.createElementVNode("div",Al,[e.createElementVNode("div",Pl,[e.createVNode(Rt)]),e.createElementVNode("div",Yl,[e.createVNode(Ll)])])]),e.createVNode(El,{modelValue:a.value,"onUpdate:modelValue":d[0]||(d[0]=u=>a.value=u)},null,8,["modelValue"]),e.createVNode(I,{modelValue:f.value,"onUpdate:modelValue":d[3]||(d[3]=u=>f.value=u),width:"860px",title:"导出布局 JSON"},{footer:e.withCtx(()=>[e.createVNode(i,{onClick:d[2]||(d[2]=u=>f.value=!1)},{default:e.withCtx(()=>[...d[14]||(d[14]=[e.createTextVNode(" 关闭 ",-1)])]),_:1}),e.createVNode(i,{type:"primary",onClick:A},{default:e.withCtx(()=>[...d[15]||(d[15]=[e.createTextVNode(" 复制 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(F,{modelValue:D.value,"onUpdate:modelValue":d[1]||(d[1]=u=>D.value=u),type:"textarea",rows:22,readonly:""},null,8,["modelValue"])]),_:1},8,["modelValue"]),e.createVNode(I,{modelValue:N.value,"onUpdate:modelValue":d[6]||(d[6]=u=>N.value=u),width:"860px",title:"导入布局 JSON"},{footer:e.withCtx(()=>[e.createVNode(i,{onClick:d[5]||(d[5]=u=>N.value=!1)},{default:e.withCtx(()=>[...d[16]||(d[16]=[e.createTextVNode(" 取消 ",-1)])]),_:1}),e.createVNode(i,{type:"primary",onClick:K},{default:e.withCtx(()=>[...d[17]||(d[17]=[e.createTextVNode(" 确定 ",-1)])]),_:1})]),default:e.withCtx(()=>[e.createVNode(O,{title:"请粘贴布局 JSON,确定后将覆盖当前画布内容。",type:"warning","show-icon":"",closable:!1}),d[18]||(d[18]=e.createElementVNode("div",{style:{height:"10px"}},null,-1)),e.createVNode(F,{modelValue:x.value,"onUpdate:modelValue":d[4]||(d[4]=u=>x.value=u),type:"textarea",rows:22,placeholder:"在此粘贴 JSON"},null,8,["modelValue"])]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-02e9bc29"]]);Q.FormDesigner=Jl,Q.FormRenderer=Fe,Object.defineProperty(Q,Symbol.toStringTag,{value:"Module"})}));
|
|
@@ -1,2 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
uploadUrl?: string;
|
|
3
|
+
downloadUrl?: string;
|
|
4
|
+
uploadParse?: string;
|
|
5
|
+
};
|
|
6
|
+
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
|
|
2
7
|
export default _default;
|
package/dist/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.line[data-v-677f5a96]{height:10px;border-radius:6px;border:1px dashed transparent;background:transparent}.line.active[data-v-677f5a96]{background:#409eff24;border-color:#409eff99}.line.forbidden.active[data-v-677f5a96]{background:#f56c6c1f;border-color:#f56c6c99}.card[data-v-7c887642]{border:1px solid var(--el-border-color);background:#fff;border-radius:10px;margin:10px 0;overflow:hidden}.card.selected[data-v-7c887642]{border-color:#409effe6;box-shadow:0 0 0 2px #409eff1f}.head[data-v-7c887642]{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 8px;border-bottom:1px dashed var(--el-border-color);gap:10px}.left[data-v-7c887642]{display:flex;align-items:center;gap:8px;min-width:0}.name[data-v-7c887642]{font-weight:600;font-size:13px;color:var(--el-text-color-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body[data-v-7c887642]{padding:10px}.flexRow[data-v-7c887642]{width:100%}.col[data-v-7c887642]{border:1px dashed var(--el-border-color);border-radius:10px;background:#fafafa;padding:8px;min-height:90px}.colTitle[data-v-7c887642]{font-size:12px;color:var(--el-text-color-secondary);margin-bottom:6px}.colBody[data-v-7c887642]{display:flex;flex-direction:column;gap:8px}.colEmpty[data-v-7c887642]{font-size:12px;color:var(--el-text-color-secondary);padding:10px 0;text-align:center}.containerBox[data-v-7c887642]{border:1px dashed var(--el-border-color);border-radius:10px;background:#fafafa;padding:10px}.containerTitle[data-v-7c887642]{font-size:12px;color:var(--el-text-color-secondary);margin-bottom:10px}.containerBody[data-v-7c887642]{display:flex;flex-direction:column;gap:8px}.fieldLine[data-v-7c887642]{display:flex;align-items:center;gap:6px}.fieldLabel[data-v-7c887642]{font-weight:600;font-size:13px}.fieldMeta[data-v-7c887642]{font-size:12px;color:var(--el-text-color-secondary)}.tabsPreview[data-v-7c887642] .el-tabs__content{padding:10px 0 0}.root[data-v-e6a28470]{display:flex;flex-direction:column;gap:10px}.title[data-v-e6a28470]{font-weight:700;color:var(--el-text-color-regular)}.panel[data-v-e6a28470]{background:#fff;border:1px solid var(--el-border-color);border-radius:10px;padding:12px;min-height:480px}.item[data-v-7d576d24]{cursor:grab;-webkit-user-select:none;user-select:none}.content[data-v-7d576d24]{display:flex;align-items:center;gap:8px}.icon[data-v-7d576d24]{color:var(--el-text-color-secondary)}.label[data-v-7d576d24]{font-weight:600;font-size:13px}.wrap[data-v-1a00cdb7]{padding:10px;position:relative}.grid[data-v-1a00cdb7]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:8px 0}.ghost[data-v-1a00cdb7]{position:fixed;z-index:9999;pointer-events:none;background:#409eff1f;border:1px solid rgba(64,158,255,.6);padding:6px 10px;border-radius:6px;color:#409eff;font-size:12px;white-space:nowrap}.row[data-v-
|
|
1
|
+
.line[data-v-677f5a96]{height:10px;border-radius:6px;border:1px dashed transparent;background:transparent}.line.active[data-v-677f5a96]{background:#409eff24;border-color:#409eff99}.line.forbidden.active[data-v-677f5a96]{background:#f56c6c1f;border-color:#f56c6c99}.card[data-v-7c887642]{border:1px solid var(--el-border-color);background:#fff;border-radius:10px;margin:10px 0;overflow:hidden}.card.selected[data-v-7c887642]{border-color:#409effe6;box-shadow:0 0 0 2px #409eff1f}.head[data-v-7c887642]{display:flex;align-items:center;justify-content:space-between;padding:10px 10px 8px;border-bottom:1px dashed var(--el-border-color);gap:10px}.left[data-v-7c887642]{display:flex;align-items:center;gap:8px;min-width:0}.name[data-v-7c887642]{font-weight:600;font-size:13px;color:var(--el-text-color-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.body[data-v-7c887642]{padding:10px}.flexRow[data-v-7c887642]{width:100%}.col[data-v-7c887642]{border:1px dashed var(--el-border-color);border-radius:10px;background:#fafafa;padding:8px;min-height:90px}.colTitle[data-v-7c887642]{font-size:12px;color:var(--el-text-color-secondary);margin-bottom:6px}.colBody[data-v-7c887642]{display:flex;flex-direction:column;gap:8px}.colEmpty[data-v-7c887642]{font-size:12px;color:var(--el-text-color-secondary);padding:10px 0;text-align:center}.containerBox[data-v-7c887642]{border:1px dashed var(--el-border-color);border-radius:10px;background:#fafafa;padding:10px}.containerTitle[data-v-7c887642]{font-size:12px;color:var(--el-text-color-secondary);margin-bottom:10px}.containerBody[data-v-7c887642]{display:flex;flex-direction:column;gap:8px}.fieldLine[data-v-7c887642]{display:flex;align-items:center;gap:6px}.fieldLabel[data-v-7c887642]{font-weight:600;font-size:13px}.fieldMeta[data-v-7c887642]{font-size:12px;color:var(--el-text-color-secondary)}.tabsPreview[data-v-7c887642] .el-tabs__content{padding:10px 0 0}.root[data-v-e6a28470]{display:flex;flex-direction:column;gap:10px}.title[data-v-e6a28470]{font-weight:700;color:var(--el-text-color-regular)}.panel[data-v-e6a28470]{background:#fff;border:1px solid var(--el-border-color);border-radius:10px;padding:12px;min-height:480px}.item[data-v-7d576d24]{cursor:grab;-webkit-user-select:none;user-select:none}.content[data-v-7d576d24]{display:flex;align-items:center;gap:8px}.icon[data-v-7d576d24]{color:var(--el-text-color-secondary)}.label[data-v-7d576d24]{font-weight:600;font-size:13px}.wrap[data-v-1a00cdb7]{padding:10px;position:relative}.grid[data-v-1a00cdb7]{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding:8px 0}.ghost[data-v-1a00cdb7]{position:fixed;z-index:9999;pointer-events:none;background:#409eff1f;border:1px solid rgba(64,158,255,.6);padding:6px 10px;border-radius:6px;color:#409eff;font-size:12px;white-space:nowrap}.row[data-v-c41bec75]{width:100%}.col[data-v-c41bec75]{display:flex;flex-direction:column;gap:12px}.tableWrap[data-v-c41bec75]{border:1px solid var(--el-border-color);border-radius:4px;padding:10px;background:#fff}.tableHeader[data-v-c41bec75]{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.tableHeader .title[data-v-c41bec75]{font-weight:700}.tableHeader .actions[data-v-c41bec75]{display:flex;gap:8px}.pagination[data-v-c41bec75]{margin-top:10px;display:flex;justify-content:flex-end}.root[data-v-a20c32c5]{display:flex;flex-direction:column;gap:12px}.bar[data-v-2e5f57e6]{display:flex;align-items:center;gap:10px;margin-bottom:12px}.spacer[data-v-2e5f57e6]{flex:1}.viewport[data-v-2e5f57e6]{display:flex;justify-content:center;background:#f6f7fb;border:1px solid var(--el-border-color);border-radius:10px;padding:12px;min-height:520px}.surface[data-v-2e5f57e6]{width:100%;background:#fff;border-radius:10px;padding:12px}.viewport.mobile .surface[data-v-2e5f57e6]{width:390px;border:1px solid var(--el-border-color)}.wrap[data-v-fbaf4bac]{display:flex;flex-direction:column;gap:10px}.title[data-v-fbaf4bac]{font-weight:700;color:var(--el-text-color-regular)}.panel[data-v-fbaf4bac]{padding:10px;border:1px solid var(--el-border-color);border-radius:10px}.subTitle[data-v-fbaf4bac]{margin:10px 0;font-weight:700}.options[data-v-fbaf4bac],.tabsEditor[data-v-fbaf4bac]{display:flex;flex-direction:column;gap:10px}.optRow[data-v-fbaf4bac],.tabRow[data-v-fbaf4bac]{display:grid;grid-template-columns:1fr 1fr 70px;gap:10px;align-items:center}.designer[data-v-02e9bc29]{height:100%;display:flex;overflow:hidden}.palette[data-v-02e9bc29]{width:290px;border-right:1px solid var(--el-border-color);overflow:auto}.main[data-v-02e9bc29]{flex:1;display:flex;flex-direction:column;overflow:hidden}.toolbar[data-v-02e9bc29]{padding:10px;border-bottom:1px solid var(--el-border-color);display:flex;align-items:center;gap:10px}.spacer[data-v-02e9bc29]{flex:1}.body[data-v-02e9bc29]{flex:1;display:flex;overflow:hidden}.canvas[data-v-02e9bc29]{flex:1;overflow:auto;padding:12px;background:#f6f7fb}.props[data-v-02e9bc29]{width:360px;border-left:1px solid var(--el-border-color);overflow:auto;padding:12px;background:#fff}
|