代码拉取完成,页面将自动刷新
diff --git a/dist/starfish-editor.es.js b/dist/starfish-editor.es.js
index b1f204fe1244298c0f29835cf96206a1f2e75d75..3fb0461d922462da44d10b70d93e25332fd64b31 100644
--- a/dist/starfish-editor.es.js
+++ b/dist/starfish-editor.es.js
@@ -604,10 +604,10 @@ const _sfc_main$f = defineComponent({
(_a = treeRef.value) == null ? void 0 : _a.filter(val);
});
onMounted(() => {
- setTimeSave();
+ // setTimeSave();
});
onUnmounted(() => {
- clearInterval(timer);
+ // clearInterval(timer);
});
return {
extensions,
diff --git a/dist/starfish-editor.umd.js b/dist/starfish-editor.umd.js
index c0cc3954cbb32287c72501063aa4c2a478b52a0d..63b8055d23f93431e33f671234bdbb33fe311c80 100644
--- a/dist/starfish-editor.umd.js
+++ b/dist/starfish-editor.umd.js
@@ -1 +1 @@
-!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("element-plus"),require("element-plus/dist/index.css"),require("element-plus/es/locale/lang/zh-cn"),require("vue"),require("gesto"),require("@codemirror/lang-json"),require("starfish-form"),require("clipboard"),require("keycon"),require("jsoneditor/dist/jsoneditor.min.css"),require("jsoneditor"),require("mitt"),require("nanoid"),require("vuedraggable"),require("codemirror"),require("vue-codemirror"),require("@codemirror/lang-css"),require("starfish-form/dist/style.css"),require("@codemirror/lang-javascript")):"function"==typeof define&&define.amd?define(["element-plus","element-plus/dist/index.css","element-plus/es/locale/lang/zh-cn","vue","gesto","@codemirror/lang-json","starfish-form","clipboard","keycon","jsoneditor/dist/jsoneditor.min.css","jsoneditor","mitt","nanoid","vuedraggable","codemirror","vue-codemirror","@codemirror/lang-css","starfish-form/dist/style.css","@codemirror/lang-javascript"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).StarfishEditor=t(e.ElementPlus,null,e.zhCn,e.vue,e.Gesto,e.langJson,e.StarfishForm,e.Clipboard,e.KeyController,null,e.JSONEditor,e.mitt,e.nanoid,e.draggable,e.codemirror,e.VueCodemirror,e.langCss,null,e.langJavascript)}(this,(function(ElementPlus,index_css,zhCn,vue,Gesto,langJson,StarfishForm,Clipboard,KeyController,jsoneditor_min_css,JSONEditor,mitt,nanoid,draggable,codemirror,VueCodemirror,langCss,style_css,langJavascript){"use strict";function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var ElementPlus__default=_interopDefaultLegacy(ElementPlus),zhCn__default=_interopDefaultLegacy(zhCn),Gesto__default=_interopDefaultLegacy(Gesto),StarfishForm__default=_interopDefaultLegacy(StarfishForm),Clipboard__default=_interopDefaultLegacy(Clipboard),KeyController__default=_interopDefaultLegacy(KeyController),JSONEditor__default=_interopDefaultLegacy(JSONEditor),mitt__default=_interopDefaultLegacy(mitt),draggable__default=_interopDefaultLegacy(draggable),VueCodemirror__default=_interopDefaultLegacy(VueCodemirror),_export_sfc=(e,t)=>{const o=e.__vccOpts||e;for(const[l,a]of t)o[l]=a;return o};const _sfc_main$h=vue.defineComponent({props:{type:{type:String}},setup(e){const t=vue.ref(),{uiControl:o}=vue.inject("control")||{};let l;return vue.onMounted((()=>{t.value&&(l=new Gesto__default.default(t.value,{container:window,pinchOutside:!0}).on("drag",(l=>{if(!t.value||!o)return;let{right:a,left:n}={...vue.toRaw(null==o?void 0:o.get("columnWidth"))};"right"==e.type?a-=l.deltaX:n+=l.deltaX,null==o||o.set("columnWidth",{left:n,right:a})})))})),vue.onUnmounted((()=>{null==l||l.unset()})),{target:t}}}),_hoisted_1$f={class:"starfish-editor-resizer",ref:"target"};function _sfc_render$h(e,t,o,l,a,n){return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$f,null,512)}var Resizer=_export_sfc(_sfc_main$h,[["render",_sfc_render$h]]);const _sfc_main$g=vue.defineComponent({props:{headerShow:{type:Boolean,default:!0}},components:{Resizer:Resizer},setup(){const{uiControl:e}=vue.inject("control")||{};return{columnWidth:vue.computed((()=>(null==e?void 0:e.get("columnWidth"))||{}))}}}),_hoisted_1$e={class:"starfish-editor"},_hoisted_2$c={class:"starfish-editor-nav"};function _sfc_render$g(e,t,o,l,a,n){var r,i,s;const u=vue.resolveComponent("resizer");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$e,[vue.createElementVNode("div",_hoisted_2$c,[vue.renderSlot(e.$slots,"nav")]),vue.createElementVNode("div",{class:vue.normalizeClass(["starfish-editor-content",e.headerShow?"":"starfish-editor-content-page"])},[vue.createElementVNode("div",{class:"starfish-editor-framework-left",style:vue.normalizeStyle(`width:${null==(r=e.columnWidth)?void 0:r.left}px`)},[vue.renderSlot(e.$slots,"left")],4),vue.createVNode(u,{type:"left"}),vue.createElementVNode("div",{class:"starfish-editor-framework-center",style:vue.normalizeStyle(`width:${null==(i=e.columnWidth)?void 0:i.center}px`)},[vue.renderSlot(e.$slots,"navlist"),vue.renderSlot(e.$slots,"workspace")],4),vue.createVNode(u,{type:"right"}),vue.createElementVNode("div",{class:"starfish-editor-framework-right",style:vue.normalizeStyle(`width:${null==(s=e.columnWidth)?void 0:s.right}px`)},[vue.renderSlot(e.$slots,"propsPanel")],4)],2),vue.renderSlot(e.$slots,"other")])}var Framework=_export_sfc(_sfc_main$g,[["render",_sfc_render$g]]);const state$4=vue.reactive({historyList:[],index:-1,maxStep:20,historyFlag:!1});class History{setValue(e){state$4.historyList.push(e),state$4.historyList.length>state$4.maxStep&&(state$4.historyList=state$4.historyList.slice(state$4.historyList.length-state$4.maxStep)),state$4.index=state$4.historyList.length-1}back(){-1!=state$4.index&&(state$4.index-=1,state$4.index>-1?(state$4.historyFlag=!0,null==formStore||formStore.set("allFormList",state$4.historyList[state$4.index].allFormList),null==formStore||formStore.set("currentIndex",state$4.historyList[state$4.index].currentIndex),null==formStore||formStore.set("curControl",state$4.historyList[state$4.index].curControl),null==formStore||formStore.set("currentId",state$4.historyList[state$4.index].currentId)):(state$4.historyFlag=!0,null==formStore||formStore.set("allFormList",[]),null==formStore||formStore.set("currentIndex",-1),null==formStore||formStore.set("curControl",{}),null==formStore||formStore.set("currentId","")))}go(){state$4.index>=state$4.historyList.length-1||(state$4.index+=1,state$4.historyFlag=!0,null==formStore||formStore.set("allFormList",state$4.historyList[state$4.index].allFormList),null==formStore||formStore.set("currentIndex",state$4.historyList[state$4.index].currentIndex),null==formStore||formStore.set("curControl",state$4.historyList[state$4.index].curControl))}get(e){return state$4[e]}set(e,t){state$4[e]=t}}var hisContrl=new History;const state$3=vue.reactive({allFormList:[],curControl:{},currentIndex:-1,currentId:"",preview:!1,previewShow:!1,save:!1,saveTimetemp:(new Date).getTime(),formUpdate:!1,AllFormResult:[],formResult:{},globalDatas:{},globalFormList:[]});class Form{updateAllFormList(e){console.log("allForm",e),state$3.allFormList=e,-1!=state$3.currentIndex&&(state$3.curControl=e[state$3.currentIndex])}setHistory(){null==hisContrl||hisContrl.setValue({allFormList:window.VueContext.$Flex.deepClone(state$3.allFormList),currentIndex:state$3.currentIndex,currentId:state$3.currentId,curControl:window.VueContext.$Flex.deepClone(state$3.allFormList[state$3.currentIndex])})}setFormCurrentIndex(e){state$3.currentIndex=e}setFormCurrentId(e){if(state$3.currentId=e,e){const t=this.getCurrentItem(e);state$3.curControl=t||{}}else state$3.curControl={}}getCurrentItem(e){let t;return state$3.allFormList.find((o=>{if(o.id==e)return t=o,o;if(o.layout){const l=this.getLayoutCurCtrol(o,e);if(l)return t=l,o}})),t}getLayoutCurCtrol(e,t){let o;if("TableLayout"==e.ControlType){const l=e.data.trs;l&&l.length>0&&l.find((e=>e.tds.find((e=>e.list.find((e=>e.layout?(o=e.id==t?e:this.getLayoutCurCtrol(e,t),o):e.id==t?(o=e,o):void 0))))))}else if("Grid"==e.ControlType){const l=e.data.columns;l&&l.length>0&&l.find((e=>e.list.find((e=>e.layout?(o=e.id==t?e:this.getLayoutCurCtrol(e,t),o):e.id==t?(o=e,o):void 0))))}else if("Collapse"==e.ControlType||"Tabs"==e.ControlType){const l=e.data.items;l&&l.length>0&&l.find((e=>e.list.find((e=>e.layout?(o=e.id==t?e:this.getLayoutCurCtrol(e,t),o):e.id==t?(o=e,o):void 0))))}return o}handleDynamicForm(){state$3.formResult=this.getDynamicForm(state$3.AllFormResult),console.log("formResult",state$3.formResult)}getDynamicForm(e){const t={};return e.forEach((e=>{if(e.layout){if("Grid"==e.ControlType&&e.data.columns)e.data.columns.forEach((e=>{Object.assign(t,this.getDynamicForm(e.list))}));else if("TableLayout"==e.ControlType){const o=e.data.trs;o&&o.length>0&&o.forEach((e=>{e.tds.forEach((e=>{Object.assign(t,this.getDynamicForm(e.list))}))}))}else if("Collapse"==e.ControlType||"Tabs"==e.ControlType){const o=e.data.items;o&&o.forEach((e=>{Object.assign(t,this.getDynamicForm(e.list))}))}}else e.layout||(e.data.itemConfig?"string"==typeof e.data.itemConfig.value?t[e.data.fieldName]=e.data.itemConfig.value:t[e.data.fieldName]=[...e.data.itemConfig.value]:t[e.data.fieldName]=e.data.default)})),t}openPreview(e){state$3.preview=e}setSave(e){state$3.save=e}setFormUpdate(e){state$3.formUpdate=e}getControlItems(){return state$3.curControl&&state$3.curControl.controlItems}getAllFormList(){return state$3.allFormList}setAllFormList(e){state$3.allFormList.push(e)}set(e,t){state$3[e]=t}get(e){return state$3[e]}}var formStore=new Form;const state$2=vue.reactive({form:state$3,copyContent:{},curList:[]});class ShortCut{copy(e){state$2.form.currentIndex>-1&&(state$2.copyContent=e[state$2.form.currentIndex])}paste(e){if(state$2.copyContent){const t=window.VueContext.$Flex.deepClone(state$2.copyContent);t.data&&(t.data.fieldName=t.ControlType+"_"+window.VueContext.$Flex.generateMixed(),t.id=window.VueContext.$Flex.generateMixed(),e.push(t),state$2.form.formUpdate=!0)}}delete(e){e.splice(state$2.form.currentIndex,1),state$2.form.curControl={},state$2.form.formUpdate=!0,state$2.form.currentIndex=-1,state$2.form.currentId=""}onTop(e){if(state$2.form.currentIndex>0){const t=e.splice(state$2.form.currentIndex,1);state$2.form.currentIndex-=1,e.splice(state$2.form.currentIndex,0,...t)}}onBottom(e){if(state$2.form.currentIndex<e.length-1){const t=e.splice(state$2.form.currentIndex,1);state$2.form.currentIndex+=1,e.splice(state$2.form.currentIndex,0,...t)}}clear(){state$2.form.allFormList.length=0,state$2.form.formUpdate=!0}moveTop(){state$2.form.currentIndex>0&&(state$2.form.currentIndex-=1)}moveBottom(e){state$2.form.currentIndex<e.length-1&&(state$2.form.currentIndex+=1)}set(e,t){state$2[e]=t}get(e){return state$2[e]}commit(e){this[e](state$2.curList)}}var store=new ShortCut;function clearCanvas(){store.commit("clear")}function copy(){store.commit("copy")}function paste(){store.commit("paste")}function cut(){store.commit("copy"),store.commit("delete")}function onDelete(){store.commit("delete")}function onTop(){store.commit("onTop")}function onBottom(){store.commit("onBottom")}const result={copy:copy,paste:paste,cut:cut,delete:onDelete,onTop:onTop,onBottom:onBottom,clearCanvas:clearCanvas},_sfc_main$f=vue.defineComponent({props:{menu:{type:Object,default:()=>({left:[],right:[],column:!0})}},setup(e){const{proxy:t}=vue.getCurrentInstance(),{hisContrl:o,uiControl:l,formStore:a}=vue.inject("control")||{},n=vue.computed((()=>null==a?void 0:a.get("saveTimetemp"))),r=vue.computed((()=>{var e;return 0==(null==(e=null==a?void 0:a.get("allFormList"))?void 0:e.length)})),i=vue.computed((()=>null==o?void 0:o.get("index"))),s=vue.computed((()=>(null==o?void 0:o.get("historyList").length)||0)),u=vue.computed((()=>null==l?void 0:l.get("isFullscreen"))),d=vue.computed((()=>null==a?void 0:a.get("allFormList"))),c=vue.computed((()=>null==l?void 0:l.get("pageType"))),v=[langJson.json()],m=vue.ref(),p=vue.ref(),f=vue.ref(),h=vue.ref(),C=vue.ref(),g=vue.ref({value:"id",label:"label",children:"children"}),_=()=>{if(d.value&&d.value.length>0){return vue.toRaw(d.value).map((e=>y(e)))}return[]};function y(e){if(e.layout){let t;return"Grid"==e.ControlType?t=e.data.columns.map((e=>({id:"",label:"GridChild",children:e.list.map((e=>y(e)))}))):"TableLayout"==e.ControlType?t=e.data.trs.map((e=>({id:"",label:"table_Row",children:e.tds.map((e=>({id:"",label:"table_Column",children:e.list.map((e=>y(e)))})))}))):"Collapse"!=e.ControlType&&"Tabs"!=e.ControlType||(t=e.data.items.map((t=>{const o=t.list.map((e=>y(e)));return{id:"",label:e.ControlType+"_child",children:o}}))),{id:e.id,label:e.ControlType+"_"+e.data.fieldName,children:t}}return{id:e.id,label:e.ControlType+"_"+e.data.fieldName}}const w=vue.ref(!1);let x=null;const k=e=>{t.$EventBus.emit("setSave",e)};return vue.watch(h,(e=>{var t;null==(t=f.value)||t.filter(e)})),vue.onMounted((()=>{x=setInterval((()=>{(new Date).getTime()-n.value>3e5&&k("auto")}),2e4)})),vue.onUnmounted((()=>{clearInterval(x)})),{extensions:v,code:C,handleFormSave:k,handleFormPre:()=>{null==a||a.set("preview",!0),t.$EventBus.emit("openPreview")},jsonDialog:m,pageType:c,historyIndex:i,historyLen:s,fullscreen:u,clearIsDisable:r,filterText:h,propsData:g,dialog:w,tree:p,treeRef:f,filterNode:(e,t)=>!e||t.label.includes(e),btnIsShow:(t,o)=>0==e.menu[t].length||e.menu[t].includes(o),updatePageType(e){null==l||l.set("pageType",e)},handleClear:()=>{clearCanvas(),null==a||a.setFormCurrentId("")},handleBack:()=>{null==o||o.back()},handleForward:()=>{null==o||o.go()},handleFullScreen:()=>{null==l||l.set("isFullscreen",!(null==l?void 0:l.get("isFullscreen")))},handleTree(){w.value=!0,p.value=_()},handleClose(){w.value=!1},myClick(e){null==a||a.setFormCurrentId(e.id)},ImportJson(){m.value.show(),m.value.init("json导入","icon-biaodan")},handleChange(e){const t=new FileReader;t.readAsText(e.raw),t.onload=e=>{C.value=e.currentTarget.result,(()=>{try{const e=JSON.parse(C.value).map((e=>window.VueContext.$Flex.jsonToForm(e)));C.value=JSON.stringify(e,null,4)}catch(e){C.value=JSON.stringify({}),console.error(e),window.VApp.$message.error("导入失败,数据格式不对")}})()}},closeCodeDialog(){m.value.close()},saveJson(){null==a||a.updateAllFormList(JSON.parse(C.value)),m.value.close()},exportJson(e="demo.json"){let t="data:application/json;charset=utf-8,";try{t+=JSON.stringify(window.VueContext.$Flex.initFormToJson(d.value));const o=encodeURI(t),l=document.createElement("a");l.setAttribute("href",o),l.setAttribute("download",e),l.click(),window.VApp.$message.success("导出成功")}catch(o){window.VApp.$message.error("导出失败,数据格式不对")}}}}}),_hoisted_1$d={class:"nav_list"},_hoisted_2$b={class:"detailBtn"},_hoisted_3$8={class:"pageBtn"},_hoisted_4$7={key:0,class:"el-button-group"},_hoisted_5$4={class:"demo-drawer__content"},_hoisted_6$4={class:"custom_code"};function _sfc_render$f(e,t,o,l,a,n){const r=vue.resolveComponent("el-tooltip"),i=vue.resolveComponent("el-button"),s=vue.resolveComponent("el-input"),u=vue.resolveComponent("el-tree"),d=vue.resolveComponent("el-drawer"),c=vue.resolveComponent("codemirror"),v=vue.resolveComponent("el-upload"),m=vue.resolveComponent("el-footer"),p=vue.resolveComponent("custom-dialog");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$d,[vue.createElementVNode("div",_hoisted_2$b,[e.btnIsShow("left","save")?(vue.openBlock(),vue.createBlock(r,{key:0,class:"box-item",effect:"dark",content:"保存",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-baocun",e.clearIsDisable?"noactive":""]),onClick:t[0]||(t[0]=t=>e.handleFormSave())},null,2)])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","preview")?(vue.openBlock(),vue.createBlock(r,{key:1,class:"box-item",effect:"dark",content:"预览",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-icon_yulan",e.clearIsDisable?"noactive":""]),onClick:t[1]||(t[1]=t=>e.handleFormPre())},null,2)])),_:1})):vue.createCommentVNode("",!0),!e.fullscreen&&e.btnIsShow("left","fullscreen")?(vue.openBlock(),vue.createBlock(r,{key:2,class:"box-item",effect:"dark",content:"全屏",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:"iconfont icon-quanping",onClick:t[2]||(t[2]=t=>e.handleFullScreen())})])),_:1})):vue.createCommentVNode("",!0),e.fullscreen&&e.btnIsShow("left","fullscreen")?(vue.openBlock(),vue.createBlock(r,{key:3,class:"box-item",effect:"dark",content:"非全屏",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:"iconfont icon-suoxiao1",onClick:t[3]||(t[3]=t=>e.handleFullScreen())})])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","delete")?(vue.openBlock(),vue.createBlock(r,{key:4,class:"box-item",effect:"dark",content:"清空",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-shanchu1",e.clearIsDisable?"noactive":""]),onClick:t[4]||(t[4]=t=>e.handleClear())},null,2)])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","tree")?(vue.openBlock(),vue.createBlock(r,{key:5,class:"box-item",effect:"dark",content:"组件结构树",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:"iconfont icon-tree",onClick:t[5]||(t[5]=t=>e.handleTree())})])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","undo")?(vue.openBlock(),vue.createBlock(r,{key:6,class:"box-item",effect:"dark",content:"撤销",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-24gl-undo3",-1==e.historyIndex?"noactive":""]),onClick:t[6]||(t[6]=t=>e.handleBack())},null,2)])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","redo")?(vue.openBlock(),vue.createBlock(r,{key:7,class:"box-item",effect:"dark",content:"重做",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-24gl-redo3",e.historyIndex==e.historyLen-1?"noactive":""]),onClick:t[7]||(t[7]=t=>e.handleForward())},null,2)])),_:1})):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_3$8,[e.btnIsShow("right","viewport")?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$7,[vue.createVNode(i,{type:"PC"==e.pageType?"info":"",onClick:t[8]||(t[8]=t=>e.updatePageType("PC"))},{default:vue.withCtx((()=>[vue.createTextVNode("PC")])),_:1},8,["type"]),vue.createVNode(i,{type:"Pad"==e.pageType?"info":"",onClick:t[9]||(t[9]=t=>e.updatePageType("Pad"))},{default:vue.withCtx((()=>[vue.createTextVNode("Pad")])),_:1},8,["type"]),vue.createVNode(i,{type:"H5"==e.pageType?"info":"",onClick:t[10]||(t[10]=t=>e.updatePageType("H5"))},{default:vue.withCtx((()=>[vue.createTextVNode("H5")])),_:1},8,["type"])])):vue.createCommentVNode("",!0),e.btnIsShow("right","json-import")?(vue.openBlock(),vue.createBlock(i,{key:1,type:"text",plain:"",onClick:e.ImportJson},{default:vue.withCtx((()=>[vue.createTextVNode("导入json")])),_:1},8,["onClick"])):vue.createCommentVNode("",!0),e.btnIsShow("right","json-export")?(vue.openBlock(),vue.createBlock(i,{key:2,type:"text",plain:"",onClick:e.exportJson},{default:vue.withCtx((()=>[vue.createTextVNode("导出json")])),_:1},8,["onClick"])):vue.createCommentVNode("",!0)]),vue.createVNode(d,{ref:"drawerRef",modelValue:e.dialog,"onUpdate:modelValue":t[12]||(t[12]=t=>e.dialog=t),title:"表单结构树","before-close":e.handleClose,direction:"ltr","custom-class":"demo-drawer"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_5$4,[vue.createVNode(s,{modelValue:e.filterText,"onUpdate:modelValue":t[11]||(t[11]=t=>e.filterText=t),placeholder:"Filter keyword"},null,8,["modelValue"]),vue.createVNode(u,{data:e.tree,props:e.propsData,ref:"treeRef","default-expand-all":"","filter-node-method":e.filterNode,onNodeClick:e.myClick,style:{"margin-top":"20px"}},null,8,["data","props","filter-node-method","onNodeClick"])])])),_:1},8,["modelValue","before-close"]),vue.createVNode(p,{ref:"jsonDialog",width:800,dialogclass:"codeDialog"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_6$4,[vue.createVNode(c,{modelValue:e.code,"onUpdate:modelValue":t[13]||(t[13]=t=>e.code=t),placeholder:"json导入",mode:"text/json",style:{height:"400px"},extensions:e.extensions},null,8,["modelValue","extensions"]),vue.createVNode(v,{accept:"application/json",class:"upload-demo",action:"https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15","on-change":e.handleChange},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary"},{default:vue.withCtx((()=>[vue.createTextVNode("导入json文件")])),_:1})])),_:1},8,["on-change"])]),vue.createVNode(m,{class:"my-Footer",style:{"text-align":"center"}},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary",onClick:e.saveJson},{default:vue.withCtx((()=>[vue.createTextVNode("确定")])),_:1},8,["onClick"]),vue.createVNode(i,{onClick:e.closeCodeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1},512)])}var NavList=_export_sfc(_sfc_main$f,[["render",_sfc_render$f]]);const _sfc_main$e=vue.defineComponent({}),_hoisted_1$c={class:"header_nav"},_hoisted_2$a=vue.createElementVNode("div",{class:"logo"},[vue.createElementVNode("div",null,[vue.createElementVNode("span",null,"starfish"),vue.createTextVNode(" 表单设计器")])],-1),_hoisted_3$7=vue.createElementVNode("div",{class:"starfish-link"},[vue.createElementVNode("a",{href:"https://github.com/haixin-fang/starfish-vue3-lowcode",target:"_black"},"GitHub")],-1),_hoisted_4$6=[_hoisted_2$a,_hoisted_3$7];function _sfc_render$e(e,t,o,l,a,n){return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$c,_hoisted_4$6)}var Nav=_export_sfc(_sfc_main$e,[["render",_sfc_render$e]]);const _sfc_main$d=vue.defineComponent({props:{basicFields:{type:Array,default:()=>[]},layoutFields:{type:Array,default:()=>[]}},data(){const e=this.$formcomponents,t=[];for(const o in e){const l=e[o];if(l.isHide)continue;const a={};a.ControlType=l.ControlType,a.icon=l.icon,a.nameCn=l.nameCn,a.layout=!!l.layout,l.rule&&(a.rule=l.rule),t.push(a)}return{formcomponents:t,filterContent:""}},computed:{newcomponentlist(){return this.formcomponents.filter((e=>{if(e.nameCn&&-1!=e.nameCn.indexOf(this.filterContent)&&!e.layout){if(0==this.basicFields.length)return!0;if(this.basicFields.length>0){let t=!1;return this.basicFields.find((o=>{if(o.toLocaleLowerCase()==e.ControlType.toLocaleLowerCase())return t=!0,o})),t}}}))},layoutList(){return this.formcomponents.filter((e=>{if(e.nameCn&&-1!=e.nameCn.indexOf(this.filterContent)&&e.layout){if(0==this.layoutFields.length)return!0;if(this.layoutFields.length>0){let t=!1;return this.layoutFields.find((o=>{if(o.toLocaleLowerCase()==e.ControlType.toLocaleLowerCase())return t=!0,o})),t}}}))}},methods:{clickAddControl(e){formStore.setAllFormList(this.$Flex.jsonToForm(e))}}}),_hoisted_1$b=["alt","onClick"],_hoisted_2$9={class:"form-item"},_hoisted_3$6={class:"item-text"},_hoisted_4$5=["alt","onClick"],_hoisted_5$3={class:"form-item"},_hoisted_6$3={class:"item-text"};function _sfc_render$d(e,t,o,l,a,n){const r=vue.resolveComponent("el-input"),i=vue.resolveComponent("el-button"),s=vue.resolveComponent("draggable"),u=vue.resolveComponent("el-scrollbar");return vue.openBlock(),vue.createBlock(u,{class:"editor_pages_left"},{default:vue.withCtx((()=>[vue.createVNode(r,{placeholder:"请输入关键词进行过滤",size:"",modelValue:e.filterContent,"onUpdate:modelValue":t[0]||(t[0]=t=>e.filterContent=t)},null,8,["modelValue"]),e.newcomponentlist.length>0?(vue.openBlock(),vue.createBlock(i,{key:0,text:""},{default:vue.withCtx((()=>[vue.createTextVNode("基础控件")])),_:1})):vue.createCommentVNode("",!0),vue.createVNode(s,{class:"dragArea list-group",list:e.newcomponentlist,group:{name:"starfish-form",pull:"clone",put:!1},sort:!1,"item-key":"id"},{item:vue.withCtx((({element:t})=>[vue.createElementVNode("div",{class:"list-group-item",alt:t.nameCn,onClick:vue.withModifiers((o=>e.clickAddControl(t)),["stop"])},[vue.createElementVNode("div",_hoisted_2$9,[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont",t.icon])},null,2)]),vue.createElementVNode("div",_hoisted_3$6,vue.toDisplayString(t.nameCn),1)],8,_hoisted_1$b)])),_:1},8,["list"]),e.layoutList.length>0?(vue.openBlock(),vue.createBlock(i,{key:1,text:""},{default:vue.withCtx((()=>[vue.createTextVNode("布局控件")])),_:1})):vue.createCommentVNode("",!0),vue.createVNode(s,{class:"dragArea list-group",list:e.layoutList,group:{name:"starfish-form",pull:"clone",put:!1},sort:!1,"item-key":"id"},{item:vue.withCtx((({element:t})=>[vue.createElementVNode("div",{class:"list-group-item",alt:t.nameCn,onClick:vue.withModifiers((o=>e.clickAddControl(t)),["stop"])},[vue.createElementVNode("div",_hoisted_5$3,[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont",t.icon])},null,2)]),vue.createElementVNode("div",_hoisted_6$3,vue.toDisplayString(t.nameCn),1)],8,_hoisted_4$5)])),_:1},8,["list"])])),_:1})}var ComponentList=_export_sfc(_sfc_main$d,[["render",_sfc_render$d]]);const _sfc_main$c=vue.defineComponent({setup(){const{proxy:e}=vue.getCurrentInstance(),{uiControl:t,store:o,formStore:l}=vue.inject("control")||{},a=e.$formcomponents,n=vue.ref(),r=vue.ref(1),i=vue.ref(),s=vue.ref(!1),u=vue.ref(),d=vue.computed((()=>null==l?void 0:l.get("globalDatas"))),c=vue.computed((()=>null==t?void 0:t.get("isFullscreen"))),v=vue.computed((()=>null==t?void 0:t.get("pageType"))),m=vue.computed((()=>{var e;return null==(e=null==l?void 0:l.get("globalFormList"))?void 0:e.filter((e=>{if(e.dynamic)return e}))})),p=vue.computed({get:()=>null==l?void 0:l.get("allFormList"),set(t){t=t.map((t=>{if(console.log(a[t.ControlType]),!t.data&&!t.controlItems){t=e.$Flex.deepClone(t);const o=a[t.ControlType];t.formConfig=o.formConfig,t.data=t.formConfig.data(),t.data.fieldName||(t.data.fieldName=t.ControlType+"_"+e.$Flex.generateMixed()),t.id=e.$Flex.generateMixed();let l=t.formConfig.morenConfig().concat(m.value);o.actionType&&o.actionType.length>0?(console.log(l),l.find((e=>{"Action"==e.ControlType&&(e.data.formConfig={value:{},items:[]},o.actionType.forEach(((t,o)=>{e.data.formConfig.items.push({label:t,value:t,id:o+1})})))}))):l=l.filter((e=>{if("Action"!==e.ControlType)return e})),t.rules=e.$Flex.controlFormRule(l,t),t.controlItems=l}return t})),console.log("value",t),null==l||l.updateAllFormList(t)}}),f=vue.computed((()=>null==l?void 0:l.get("currentId")));return{scale:vue.computed((()=>null==t?void 0:t.get("scale"))),globalDatas:d,canvasBox:n,editForm:u,handleCanvasSize:t=>{e.$Flex.clickCountLimit()&&("add"===t&&r.value<1.5?r.value=Number((r.value+.1).toFixed(2)):"cut"===t&&r.value>.5?r.value=Number((r.value-.1).toFixed(2)):"restore"===t&&(r.value=1),n.value.style.transform=`scale(${r.value})`)},pageType:v,canvasSize:r,dragDom:i,chooseClick:e=>{var t;null==l||l.setFormCurrentId(null==(t=p.value[e.oldIndex])?void 0:t.id),null==l||l.setFormCurrentIndex(e.oldIndex),null==o||o.set("curList",p.value)},addControl:e=>{var t;null==l||l.setFormCurrentId(null==(t=p.value[e.newIndex])?void 0:t.id),null==l||l.setFormCurrentIndex(e.newIndex),null==o||o.set("curList",p.value)},changePos:e=>{var t;null==l||l.setFormCurrentId(null==(t=p.value[e.newIndex])?void 0:t.id),null==l||l.setFormCurrentIndex(e.newIndex),null==o||o.set("curList",p.value)},allmainList:p,currentId:f,handleNoDraggable:e=>{s.value&&(s.value=!1),e.preventDefault();const t=e.path;for(let a=0;a<t.length;a++)if(t[a].getAttribute&&t[a].getAttribute("class")&&t[a].getAttribute("class").indexOf("shape")>=0)return;const o=e.offsetX,l=e.offsetY;vue.nextTick((()=>{u.value.style.left=o+"px",u.value.style.top=l+"px",s.value=!0}))},handlePaste:()=>{s.value=!1,paste()},pasteShow:s,fullScreen:c,onEditorCenter:e=>{"editor_pages_center"==e.path[0].className&&(null==l||l.setFormCurrentId(""),s.value=!1)}}}}),_hoisted_1$a={class:"editForm",ref:"editForm"},_hoisted_2$8={key:0,class:"form-empty"};function _sfc_render$c(e,t,o,l,a,n){var r;const i=vue.resolveComponent("Shape"),s=vue.resolveComponent("draggable");return vue.openBlock(),vue.createElementBlock("div",{class:"editor_pages_center",onClick:t[3]||(t[3]=(...t)=>e.onEditorCenter&&e.onEditorCenter(...t)),tabindex:"1"},[vue.createElementVNode("div",{class:vue.normalizeClass(["canvasBox",[e.fullScreen?"fullScreenBox":"",e.pageType+"_layout",null==(r=e.globalDatas.csslist)?void 0:r.join(" ")]]),ref:"canvasBox",style:vue.normalizeStyle(`transform: translateX(-50%) scale(${e.scale})`)},[vue.createElementVNode("div",{class:"draggable_container",ref:"dragDom",onContextmenu:t[2]||(t[2]=(...t)=>e.handleNoDraggable&&e.handleNoDraggable(...t))},[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$a,[vue.createElementVNode("span",{onClick:t[0]||(t[0]=(...t)=>e.handlePaste&&e.handlePaste(...t))},"粘贴")],512),[[vue.vShow,e.pasteShow]]),vue.createVNode(s,{class:"dragArea",animation:"300",ghostClass:"itemGhost",modelValue:e.allmainList,"onUpdate:modelValue":t[1]||(t[1]=t=>e.allmainList=t),onAdd:e.addControl,group:"starfish-form",onChoose:e.chooseClick,"item-key":"id",onUpdate:e.changePos},{item:vue.withCtx((({element:t,index:o})=>[vue.createVNode(i,{active:e.currentId==t.id,currentIndex:o,currentId:t.id,item:t,len:e.allmainList.length},{default:vue.withCtx((()=>[(vue.openBlock(),vue.createBlock(vue.resolveDynamicComponent(t.ControlType),vue.mergeProps({drag:!0,item:t,data:{}},e.globalDatas),null,16,["item"]))])),_:2},1032,["active","currentIndex","currentId","item","len"])])),_:1},8,["modelValue","onAdd","onChoose","onUpdate"]),0==e.allmainList.length?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$8,"从左侧拖拽来添加字段")):vue.createCommentVNode("",!0)],544)],6)])}var Workspace=_export_sfc(_sfc_main$c,[["render",_sfc_render$c]]);const _sfc_main$b=vue.defineComponent({setup:()=>({keyList:vue.reactive([{key:"ctrl + C",value:"复制组件"},{key:"ctrl + V",value:"粘贴组件"},{key:"ctrl + X",value:"裁剪组件"},{key:"delete",value:"删除组件"},{key:"ctrl + E",value:"清空画布"},{key:"ctrl + ↑",value:"组件上移"},{key:"ctrl + ↓",value:"组件下移"},{key:"↑",value:"选中上移"},{key:"↓",value:"选中下移"}])})}),_hoisted_1$9={class:"shortCutKey"},_hoisted_2$7=vue.createElementVNode("div",{class:"title"},"快捷键",-1),_hoisted_3$5={class:"keyContent"},_hoisted_4$4=vue.createElementVNode("div",{class:"san"},null,-1);function _sfc_render$b(e,t,o,l,a,n){return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$9,[_hoisted_2$7,vue.createElementVNode("div",_hoisted_3$5,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.keyList,((e,t)=>(vue.openBlock(),vue.createElementBlock("div",{key:t},[vue.createElementVNode("span",null,vue.toDisplayString(e.key),1),vue.createElementVNode("span",null,vue.toDisplayString(e.value),1)])))),128))]),_hoisted_4$4])}var shortcutKey=_export_sfc(_sfc_main$b,[["render",_sfc_render$b]]);const _sfc_main$a=vue.defineComponent({components:{shortcutKey:shortcutKey},setup(){const{uiControl:e}=vue.inject("control")||{},t=vue.ref(),o=vue.ref(!1);return{size:vue.computed((()=>(null==e?void 0:e.get("scale"))||1)),handleCanvasSize:t=>{t?null==e||e.set("scale",((null==e?void 0:e.get("scale"))||1)+t):null==e||e.set("scale",1)},controllerSize:t,shortCutShow:o,handleShortCutHidden:()=>{o.value=!1},handleShortcutShow:()=>{o.value=!0}}}}),_hoisted_1$8={class:"controller_edit_size",ref:"controllerSize"},_hoisted_2$6=vue.createElementVNode("i",{class:"iconfont icon-jiahao"},null,-1),_hoisted_3$4=[_hoisted_2$6],_hoisted_4$3=vue.createElementVNode("i",{class:"iconfont icon-jianhao"},null,-1),_hoisted_5$2=[_hoisted_4$3],_hoisted_6$2=vue.createElementVNode("i",{class:"iconfont icon-jianpan_o"},null,-1),_hoisted_7$1=vue.createElementVNode("i",{class:"iconfont icon-huanyuan"},null,-1),_hoisted_8=[_hoisted_7$1];function _sfc_render$a(e,t,o,l,a,n){const r=vue.resolveComponent("shortcutKey");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$8,[vue.createElementVNode("span",{onClick:t[0]||(t[0]=t=>e.handleCanvasSize(.1))},_hoisted_3$4),vue.createElementVNode("span",null,vue.toDisplayString(parseInt(String(100*e.size)))+"%",1),vue.createElementVNode("span",{onClick:t[1]||(t[1]=t=>e.handleCanvasSize(-.1))},_hoisted_5$2),vue.createElementVNode("span",{onMouseover:t[2]||(t[2]=(...t)=>e.handleShortcutShow&&e.handleShortcutShow(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.handleShortCutHidden&&e.handleShortCutHidden(...t))},[_hoisted_6$2,vue.createVNode(vue.Transition,{name:"slide-fade"},{default:vue.withCtx((()=>[vue.withDirectives(vue.createVNode(r,null,null,512),[[vue.vShow,e.shortCutShow]])])),_:1})],32),vue.createElementVNode("span",{onClick:t[4]||(t[4]=t=>e.handleCanvasSize()),title:"复位"},_hoisted_8)],512)}var ControllEditSize=_export_sfc(_sfc_main$a,[["render",_sfc_render$a]]);const globalFormList=[{ControlType:"RadioGroup",nameCn:"选择器",data:{fieldName:"labelalign",label:"标签对齐方式",showRule:"{}",rule:"[]",itemConfig:{value:"right",items:[{label:"Top",value:"top",select:!0,id:1},{label:"Left",value:"left",id:2},{label:"Right",value:"right",select:!1,id:4}],id:4}}},{ControlType:"RadioGroup",nameCn:"选择器",data:{fieldName:"size",label:"组件尺寸",showRule:"{}",rule:"[]",itemConfig:{value:"small",items:[{label:"large",value:"large",select:!1,id:1},{label:"default",value:"default",select:!1,id:2},{label:"small",value:"small",select:!0,id:3}],id:3}}},{ControlType:"InputNumber",data:{fieldName:"labelWidth",label:"标签宽度",tip:"",showRule:"{}",required:!1,rule:"[]",default:100}},{ControlType:"Text",nameCn:"文本框",data:{fieldName:"suffix",label:"表单项后缀",tip:"",placeholder:"",showRule:"{}",required:!1,rule:"[]",default:":"}},{ControlType:"FormStyle",nameCn:"文本框",data:{fieldName:"styles",label:"表单样式表",tip:"",placeholder:"",showRule:"{}",required:!1,rule:"[]",default:""}},{ControlType:"Selecteds",nameCn:"文本框",dynamic:!0,data:{fieldName:"csslist",label:"自定义Class",tip:"",placeholder:"",showRule:"{}",required:!1,rule:"[]",itemConfig:{value:[],items:[]}}},{ControlType:"FormAction",nameCn:"文本框",data:{fieldName:"action",label:"动作面板",tip:"",placeholder:"",showRule:"{}",required:!1,rule:"[]",default:[]}}],_sfc_main$9=vue.defineComponent({props:{column:{type:Boolean,default:!0}},components:{ControllEditSize:ControllEditSize},setup(e,{emit:t}){const{proxy:o}=vue.getCurrentInstance(),{uiControl:l,hisContrl:a,formStore:n}=vue.inject("control")||{},r=vue.ref(!0),i=vue.ref(!0),s=vue.ref(),u=vue.ref(),d=vue.ref("form"),c=vue.ref();let v=null;const m=vue.ref(!0),p=vue.computed((()=>null==n?void 0:n.getControlItems())),f=vue.computed((()=>null==n?void 0:n.get("curControl"))),h=vue.computed((()=>o.$Flex.deepClone(null==n?void 0:n.get("curControl")))),C=vue.computed((()=>null==a?void 0:a.get("historyFlag"))),g=vue.computed((()=>null==n?void 0:n.get("save"))),_=vue.computed((()=>null==n?void 0:n.get("currentIndex"))),y=null==n?void 0:n.getDynamicForm(globalFormList);null==n||n.set("globalDatas",y),null==n||n.set("globalFormList",globalFormList);const w=vue.computed((()=>null==n?void 0:n.get("globalFormList"))),x=vue.computed((()=>null==n?void 0:n.get("globalDatas"))),k=vue.computed((()=>null==n?void 0:n.get("preview"))),b=vue.computed((()=>null==n?void 0:n.getAllFormList())),V=function(e){return new Promise((t=>{s.value.validate((o=>{o?t(!0):(window.VApp.$notify.error({title:e}),t(!1))}))}))};function N(e){if("TableLayout"==e.ControlType){const t=e.data.trs||[];for(let e=0;e<t.length;e++){const o=t[e].tds;for(let e=0;e<o.length;e++){const t=$(o[e].list);if(!t)return t}}}else if("Grid"==e.ControlType){const t=e.data.columns||[];for(let e=0;e<t.length;e++){const o=t[e].list,l=$(o);if(!l)return l}}return!0}const $=async e=>{var t;if(!e)return;const o=e.length;for(let l=0;l<o;++l){let o=!0;const a=e[l];if(null==(t=a.controlItems)||t.forEach((e=>{e.data.required&&(o=!!a.data[e.data.fieldName])})),o&&a.layout&&(o=N(a)),!o){null==n||n.setFormCurrentId(a.id),d.value="form",await vue.nextTick();if(!(await V("请检查动态表单输入格式问题")))return!1}}return!0},F=vue.computed((()=>null==n?void 0:n.get("formUpdate"))),T=vue.computed((()=>null==n?void 0:n.get("allFormList"))),S=vue.computed((()=>o.$Flex.deepClone(null==n?void 0:n.get("allFormList")))),E=async(e=!1,o)=>{const l=null==n?void 0:n.get("currentIndex");if(k.value||g.value||F.value){const a=await $(b.value);if(a&&(null==n||n.setFormCurrentIndex(l)),null==n||n.setSave(a),null==n||n.setFormUpdate(!1),a){const e=B(b.value);null==n||n.set("AllFormResult",e),null==n||n.handleDynamicForm(),t("save")}e?a&&window.VApp.$notify.success({title:o?"已自动保存":"保存成功"}):(null==n||n.set("previewShow",a),null==n||n.set("preview",!1))}},B=e=>window.VueContext.$Flex.initFormToJson(vue.toRaw(e));function L(){const e=c.value;if(v)null==v||v.set(B(T.value));else{const t={modes:["text","code","view"],mode:"code",search:!1};v=new window.JSONEditor(e,t),null==v||v.set(B(T.value))}}return o.$EventBus.on("openPreview",(async()=>{E()})),o.$EventBus.on("setSave",(async e=>{E(!0,e)})),vue.watch((()=>{var e;return[S.value,null==(e=h.value)?void 0:e.data]}),(([,e],[,t])=>{"json"==d.value&&L(),C.value?null==a||a.set("historyFlag",!1):function(e,t){if(e!==t)return!1;let o=!0;for(const l in e)e[l]!==t[l]&&(o=!1);return o}(e,t)||null==n||n.setHistory()}),{deep:!0}),vue.watch((()=>{var e;return null==(e=f.value)?void 0:e.data}),(async()=>{F.value||null==n||n.setFormUpdate(!0)}),{deep:!0}),{globalFormLists:w,globalDatas:x,jsonCenter:c,handleClick:function(e){if("json"==e.props.name)L();else if("form"==e.props.name&&v)try{const e=o.$Flex.tryParseJson(v.getText());let t=[];t=function(e){return vue.toRaw(e).map((e=>o.$Flex.jsonToForm(e)))}(e),null==n||n.updateAllFormList(t)}catch(t){console.error(t)}},activeName:d,handleMouseDown:async()=>{null==n||n.setFormCurrentId(""),null==n||n.setFormCurrentIndex(-1)},moduleIsHidden:r,handleEditBtn:()=>{r.value=!r.value,r.value?null==l||l.set("columnWidth",{right:void 0}):null==l||l.set("columnWidth",{right:0})},isTransition:m,editRight:u,controlItems:p,curControl:f,ruleForm:s,show:i,currentIndex:_}}}),_hoisted_1$7={class:"editor_pages_right editor_pages_right_visible",ref:"editRight"},_hoisted_2$5={class:"json"},_hoisted_3$3={ref:"jsonCenter"};function _sfc_render$9(e,t,o,l,a,n){const r=vue.resolveComponent("ControllEditSize"),i=vue.resolveComponent("el-form-item"),s=vue.resolveComponent("el-form"),u=vue.resolveComponent("el-empty"),d=vue.resolveComponent("el-scrollbar"),c=vue.resolveComponent("el-tab-pane"),v=vue.resolveComponent("el-tabs");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$7,[e.column?(vue.openBlock(),vue.createElementBlock("div",{key:0,class:"editor_container",onMousedown:t[0]||(t[0]=(...t)=>e.handleMouseDown&&e.handleMouseDown(...t))},[vue.createVNode(r)],32)):vue.createCommentVNode("",!0),vue.createVNode(v,{modelValue:e.activeName,"onUpdate:modelValue":t[1]||(t[1]=t=>e.activeName=t),class:"demo-tabs",onTabClick:e.handleClick,style:{height:"100%"}},{default:vue.withCtx((()=>[vue.createVNode(c,{label:"组件配置",name:"form"},{default:vue.withCtx((()=>[vue.createVNode(d,{class:"dynamic"},{default:vue.withCtx((()=>[vue.createVNode(s,{ref:"ruleForm",model:e.curControl&&(e.curControl.data||{}),rules:e.curControl&&e.curControl.rules,"label-width":"120px","status-icon":!0},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.controlItems,(t=>(vue.openBlock(),vue.createBlock(i,{key:t.id,control:t.ControlType,prop:t.data.fieldName},{default:vue.withCtx((()=>[e.show&&"JsonEditor"===t.ControlType||"JsonEditor"!==t.ControlType?(vue.openBlock(),vue.createBlock(vue.resolveDynamicComponent(t.ControlType),{key:0,drag:!1,data:e.curControl.data,item:t,size:e.globalDatas.size,labelWidth:e.globalDatas.labelWidth,labelalign:e.globalDatas.labelalign},null,8,["data","item","size","labelWidth","labelalign"])):vue.createCommentVNode("",!0)])),_:2},1032,["control","prop"])))),128))])),_:1},8,["model","rules"]),e.curControl&&e.curControl.data?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(u,{key:0,"image-size":200,description:"没有选中表单控件"}))])),_:1})])),_:1}),vue.createVNode(c,{label:"JSON配置",name:"json"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_2$5,[vue.createElementVNode("div",_hoisted_3$3,null,512)])])),_:1}),vue.createVNode(c,{label:"表单配置",name:"global"},{default:vue.withCtx((()=>[vue.createVNode(d,{class:"form_tab3"},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.globalFormLists,((t,o)=>(vue.openBlock(),vue.createElementBlock("div",{key:o,class:"form_tab3_list"},[(vue.openBlock(),vue.createBlock(vue.resolveDynamicComponent(t.ControlType),{item:t,data:e.globalDatas,controlItems:e.globalFormLists},null,8,["item","data","controlItems"]))])))),128))])),_:1})])),_:1})])),_:1},8,["modelValue","onTabClick"]),vue.createElementVNode("div",{class:"editor_right_accept",onClick:t[2]||(t[2]=(...t)=>e.handleEditBtn&&e.handleEditBtn(...t))},[vue.createElementVNode("i",{class:vue.normalizeClass(["iconfont icon-jiantou_xiangyouliangci",e.moduleIsHidden?"icon-jiantou_xiangyouliangci":"icon-jiantou_xiangzuoliangci"])},null,2)])],512)}var PropsPanel=_export_sfc(_sfc_main$9,[["render",_sfc_render$9]]);const DEFAUTL_LEFT_COLUMN_WIDTH=300,DEFAUTL_RIGHT_COLUMN_WIDTH=400,defaultColumnWidth={left:DEFAUTL_LEFT_COLUMN_WIDTH,center:window.document.body.clientWidth-DEFAUTL_LEFT_COLUMN_WIDTH-DEFAUTL_RIGHT_COLUMN_WIDTH,right:DEFAUTL_RIGHT_COLUMN_WIDTH},DIALOG_WIDTH=500,scale=1,state$1=vue.reactive({columnWidth:defaultColumnWidth,dialogWidth:DIALOG_WIDTH,scale:scale,isFullscreen:!0,pageType:"PC"});class Ui{get(e){return state$1[e]}set(e,t){"columnWidth"===e?this.setColumnWidth(t):"scale"===e?this.setScale(Number(t)):"isFullscreen"==e?(state$1[e]=t,state$1.pageType=""):"pageType"==e?(state$1[e]=t,state$1.isFullscreen=!0):state$1[e]=t}setScale(e){const t=[.2,1.5];e>=t[0]&&e<=t[1]&&(state$1.scale=e)}setColumnWidth({left:e,center:t,right:o}){const l={...vue.toRaw(this.get("columnWidth"))};if(l.left=e&&e>=0?e:defaultColumnWidth.left,l.right=null!=o&&o>=0?o:defaultColumnWidth.right,t&&"auto"!=t)l.center=t;else{const e=window.document.body.clientWidth;l.center=e-((null==l?void 0:l.left)||0)-((null==l?void 0:l.right)||0),l.center<=0&&(l.left=defaultColumnWidth.left,l.center=defaultColumnWidth.center,l.right=defaultColumnWidth.right)}state$1.columnWidth=l}}var uiControl=new Ui;const _sfc_main$8=vue.defineComponent({components:{Dynamicform:StarfishForm.Dynamicform},setup(){const e=vue.computed((()=>formStore.get("previewShow"))),t=vue.computed((()=>formStore.get("AllFormResult"))),o=vue.computed((()=>formStore.get("formResult"))),l=vue.computed((()=>null==formStore?void 0:formStore.get("globalDatas"))),a=vue.computed((()=>null==uiControl?void 0:uiControl.get("pageType"))),n=[langJson.json()],r=vue.ref(),i=vue.ref();let s;const u=vue.ref(),d=vue.ref();vue.watch(e,(async()=>{e.value?(d.value.init("表单预览","icon-biaodan"),d.value.isFullScreen=!0):d.value.close()}));const c=vue.ref();return{extensions:n,code:i,pageType:a,codeDialog:r,globalDatas:l,dialogWidth:vue.computed((()=>null==uiControl?void 0:uiControl.get("dialogWidth"))),previewShow:e,previewDialog:d,handlePreviewShow:()=>{formStore.set("previewShow",!1)},JsonViewerDialog:c,allFormList:t,formResult:o,dynamicform:u,resetForm(){u.value.reset()},closeDialog(){d.value.close()},getData(){var e;null==(e=u.value)||e.getValidate().then((e=>{e?(console.log("formResult",o.value),i.value=JSON.stringify((null==o?void 0:o.value)||{},null,4),r.value.show(),r.value.init("表单数据","icon-biaodan")):window.VApp.$message.error("校验失败")}))},closeCodeDialog(){r.value.close()},copyJson(){s||(s=new Clipboard__default.default(".copy_btn")),s.on("success",(()=>{window.VApp.$message.success("复制成功")})),s.on("error",(()=>{window.VApp.$message.error("复制失败")})),setTimeout((()=>{s.destroy()}),2e4)},saveFile(e="demo.json"){let t="data:application/json;charset=utf-8,";try{t+=i.value;const o=encodeURI(t),l=document.createElement("a");l.setAttribute("href",o),l.setAttribute("download",e),l.click(),window.VApp.$message.success("文件保存成功")}catch(o){window.VApp.$message.error("文件保存失败")}}}}}),_hoisted_1$6={class:"custom_code"};function _sfc_render$8(e,t,o,l,a,n){const r=vue.resolveComponent("dynamicform"),i=vue.resolveComponent("el-button"),s=vue.resolveComponent("el-footer"),u=vue.resolveComponent("codemirror"),d=vue.resolveComponent("custom-dialog"),c=vue.resolveComponent("CustomDialog");return vue.openBlock(),vue.createBlock(c,{ref:"previewDialog",showDialog:e.previewShow,onClose:e.handlePreviewShow,dialogclass:"previewDialog"},{default:vue.withCtx((()=>[vue.createElementVNode("div",{class:vue.normalizeClass(["page_box",e.pageType+"_layout"])},[vue.createVNode(r,{modelValue:e.formResult,"onUpdate:modelValue":t[0]||(t[0]=t=>e.formResult=t),allFormList:e.allFormList,globalConfig:e.globalDatas,ref:"dynamicform"},null,8,["modelValue","allFormList","globalConfig"])],2),vue.createVNode(s,{class:"my-Footer",style:{"text-align":"center"}},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary",onClick:e.resetForm},{default:vue.withCtx((()=>[vue.createTextVNode("重置表单")])),_:1},8,["onClick"]),vue.createVNode(i,{type:"primary",onClick:e.getData},{default:vue.withCtx((()=>[vue.createTextVNode("获取数据")])),_:1},8,["onClick"]),vue.createVNode(i,{onClick:e.closeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1}),vue.createVNode(d,{ref:"codeDialog",dialogclass:"codeDialog",width:"1000"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_1$6,[vue.createVNode(u,{modelValue:e.code,"onUpdate:modelValue":t[1]||(t[1]=t=>e.code=t),placeholder:"Code goes here...",mode:"text/json",style:{height:"400px"},extensions:e.extensions,autofocus:!0,"indent-with-tab":!0,"tab-size":2},null,8,["modelValue","extensions"])]),vue.createVNode(s,{class:"my-Footer",style:{"text-align":"center"}},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary",onClick:e.copyJson,class:"copy_btn","data-clipboard-action":"copy","data-clipboard-text":e.code},{default:vue.withCtx((()=>[vue.createTextVNode("复制json")])),_:1},8,["onClick","data-clipboard-text"]),vue.createVNode(i,{type:"primary",onClick:e.saveFile},{default:vue.withCtx((()=>[vue.createTextVNode("保存为文件")])),_:1},8,["onClick"]),vue.createVNode(i,{onClick:e.closeCodeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1},512)])),_:1},8,["showDialog","onClose"])}var FormPreview=_export_sfc(_sfc_main$8,[["render",_sfc_render$8]]);const state=vue.reactive({action:[{funcName:"mounted",type:"mounted",methods:"mounted",funcStr:"",disabled:!0},{funcName:"updated",type:"updated",methods:"updated",funcStr:"",disabled:!0}],currentAction:null});class Action{set(e,t){state[e]=t}get(e){return state[e]}}var actionContrl=new Action;function listenGlobalKeyDown(e,t){const o=new KeyController__default.default(t),l=/mac os x/.test(navigator.userAgent.toLowerCase())?"meta":"ctrl";return o.keyup("delete",(t=>{t.inputEvent.preventDefault(),e.delete()})).keyup("backspace",(t=>{t.inputEvent.preventDefault(),e.delete()})).keydown([l,"c"],(t=>{t.inputEvent.preventDefault(),e.copy()})).keydown([l,"e"],(t=>{t.inputEvent.preventDefault(),e.clearCanvas()})).keydown([l,"v"],(t=>{t.inputEvent.preventDefault(),e.paste()})).keydown([l,"z"],(e=>{e.inputEvent.preventDefault(),null==hisContrl||hisContrl.back()})).keydown([l,"x"],(t=>{t.inputEvent.preventDefault(),e.cut()})).keydown([l,"up"],(t=>{t.inputEvent.preventDefault(),e.onTop()})).keydown([l,"down"],(t=>{t.inputEvent.preventDefault(),e.onBottom()})),o}var starfishEditor_vue_vue_type_style_index_0_lang="";const _sfc_main$7=vue.defineComponent({name:"StarfishEditor",components:{Framework:Framework,NavList:NavList,ComponentList:ComponentList,Workspace:Workspace,PropsPanel:PropsPanel,FormPreview:FormPreview,Nav:Nav},props:{basicFields:{type:Array,default:()=>[]},layoutFields:{type:Array,default:()=>[]},shortcutDisabled:{type:Boolean,default:!1},headerShow:{type:Boolean,default:!0},menu:{type:Object,default:()=>({left:[],right:[],column:!0})}},setup(e,{emit:t}){const o=vue.ref();let l;const a=()=>{null==l||l.focus()},n=()=>{null==l||l.blur()},r={uiControl:uiControl,hisContrl:hisContrl,formStore:formStore,actionContrl:actionContrl,store:store};let i;return vue.onMounted((()=>{var t;l=null==(t=o.value)?void 0:t.$el,e.shortcutDisabled||(l.addEventListener("mouseenter",a),l.addEventListener("mouseleave",n),i=listenGlobalKeyDown(result,l))})),vue.onUnmounted((()=>{e.shortcutDisabled||(l.removeEventListener("mouseenter",a),l.removeEventListener("mouseleave",n),i.destroy())})),vue.provide("control",r),{workspace:o,onSave(){t("save",null==formStore?void 0:formStore.get("AllFormResult"))},getJson(){window.VApp.$EventBus.emit("setSave")},setJson(e){const t=e.map((e=>window.VApp.$Flex.jsonToForm(e)));formStore.updateAllFormList(t)}}}});function _sfc_render$7(e,t,o,l,a,n){const r=vue.resolveComponent("Nav"),i=vue.resolveComponent("nav-list"),s=vue.resolveComponent("component-list"),u=vue.resolveComponent("workspace"),d=vue.resolveComponent("props-panel"),c=vue.resolveComponent("form-preview"),v=vue.resolveComponent("framework");return vue.openBlock(),vue.createBlock(v,{headerShow:e.headerShow},vue.createSlots({navlist:vue.withCtx((()=>[vue.createVNode(i,{menu:e.menu},null,8,["menu"])])),left:vue.withCtx((()=>[vue.createVNode(s,{"basic-fields":e.basicFields,"layout-fields":e.layoutFields},null,8,["basic-fields","layout-fields"])])),workspace:vue.withCtx((()=>[vue.createVNode(u,{ref:"workspace"},null,512)])),propsPanel:vue.withCtx((()=>[vue.createVNode(d,{onSave:e.onSave,column:e.menu.column},null,8,["onSave","column"])])),other:vue.withCtx((()=>[vue.createVNode(c)])),_:2},[e.headerShow?{name:"nav",fn:vue.withCtx((()=>[vue.createVNode(r)])),key:"0"}:void 0]),1032,["headerShow"])}var Editor=_export_sfc(_sfc_main$7,[["render",_sfc_render$7]]),index="";const _sfc_main$6=vue.defineComponent({props:{dialogclass:String,showDialog:Boolean,width:Number},emits:["open","close"],setup(e,{emit:t}){const o=vue.ref(!1),l=vue.ref(""),a=vue.ref(""),n=vue.ref(!1),r=vue.computed((()=>"number"==typeof e.width?e.width+"px":e));return{isshow:o,title:l,icon:a,isFullScreen:n,newWidth:r,init(e,t){l.value=e,a.value=t},show(){o.value=!0,t("open")},close(){o.value=!1,t("close")}}}}),_hoisted_1$5={key:0,class:"MyDialogFrame"},_hoisted_2$4={class:"pageContent",style:{height:"100%",padding:"0",overflow:"hidden","background-color":"transparent"}},_hoisted_3$2={class:"my-icon"},_hoisted_4$2={class:"my-title"},_hoisted_5$1={class:"my-toolbar"},_hoisted_6$1=vue.createElementVNode("em",{class:"iconfont icon-guanbi"},null,-1),_hoisted_7=vue.createElementVNode("div",{class:"myDialogMask"},null,-1);function _sfc_render$6(e,t,o,l,a,n){const r=vue.resolveComponent("el-button"),i=vue.resolveComponent("el-header"),s=vue.resolveComponent("el-container");return vue.openBlock(),vue.createBlock(vue.Teleport,{to:"body"},[vue.createVNode(vue.Transition,{name:"fade"},{default:vue.withCtx((()=>[e.isshow||e.showDialog?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$5,[vue.createElementVNode("div",{class:vue.normalizeClass(["MyDialogBody",[{fullscreen:e.isFullScreen},e.dialogclass]]),style:vue.normalizeStyle(`width: ${e.newWidth}`)},[vue.createElementVNode("div",_hoisted_2$4,[vue.createVNode(s,{class:"my-pageContainer"},{default:vue.withCtx((()=>[vue.createVNode(i,{class:"my-pageHeader",style:{height:"45px"}},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_3$2,[vue.createElementVNode("em",{class:vue.normalizeClass(["iconfont",e.icon])},null,2)]),vue.createElementVNode("div",_hoisted_4$2,vue.toDisplayString(e.title),1),vue.createElementVNode("div",_hoisted_5$1,[vue.createVNode(r,{class:"my-toolbtn",onClick:t[0]||(t[0]=t=>e.isFullScreen=!e.isFullScreen)},{default:vue.withCtx((()=>[vue.createElementVNode("em",{class:vue.normalizeClass(["iconfont icon",{"icon-suoxiao1":e.isFullScreen,"icon-quanping":!e.isFullScreen}])},null,2)])),_:1}),vue.createVNode(r,{class:"my-toolbtn",onClick:e.close},{default:vue.withCtx((()=>[_hoisted_6$1])),_:1},8,["onClick"])])])),_:1}),vue.renderSlot(e.$slots,"default")])),_:3})])],6),_hoisted_7])):vue.createCommentVNode("",!0)])),_:3})])}var CustomDialog=_export_sfc(_sfc_main$6,[["render",_sfc_render$6]]);const _sfc_main$5=vue.defineComponent({props:{data:{type:Object,default:()=>({})},item:{type:Object,default:()=>({})}},emits:["change"],setup(e,{emit:t}){const o=vue.ref(),l=vue.ref(),a=vue.ref();const n=vue.reactive({andData:[[]],logicList:[{value:"=",label:"等于"},{value:"!=",label:"不等于"}],typeList:[{value:"常量",label:"常量"}]});return{...vue.toRefs(n),fieldList:a,maxJsonDialog:o,formList:l,handleType(e,t,o){"布尔"==o&&(n.andData[t][e].value=!0)},getLogic(e,t){const o=a.value.find((o=>{if(n.andData[t][e]&&o.value==n.andData[t][e].field)return o}));return o&&o.options&&o.multiple?[{value:"in",label:"包含"},{value:"not in",label:"不包含"}]:o&&o.switch?[{value:"=",label:"等于"}]:n.logicList},getFiled(e,t){if(!n.andData[t][e]||!n.andData[t][e].field)return[];return a.value.find((o=>{if(n.andData[t][e]&&o.value==n.andData[t][e].field)return o})).options||[]},show(){o.value.init("可用条件","icon-bianji"),o.value.show(),console.log(e.data),"string"!=typeof e.data.showRule&&Array.isArray(e.data.showRule)?n.andData=e.data.showRule:n.andData=[[]],function(){var t;const o=null==formStore?void 0:formStore.get("allFormList"),l=[];null==(t=vue.toRaw(o))||t.forEach((t=>{window.VueContext.$Flex.getFormDataList(t,l,e.data.fieldName)})),a.value=l}()},getMultiple:(e,t)=>!!a.value.find((o=>{if(n.andData[t][e]&&o.value==n.andData[t][e].field)return o})).multiple,getNewTypeList(e,t){const o=a.value.find((o=>{if(n.andData[t][e]&&o.value==n.andData[t][e].field)return o}));return o&&o.options?[{rule:[],value:"选项",label:"选项"}]:o&&o.switch?[{value:"布尔",label:"布尔"}]:n.typeList},deleteRow(e,t){n.andData[t].splice(e,1)},getTypeIsChange:(e,t)=>!!n.andData[t][e].type,getRules(e){var t;return{value:null==(t=n.typeList.find((t=>t.value==e)))?void 0:t.rule}},async onAddItem(e){n.andData[e].push({field:"",logic:"",type:"",value:""})},onOrItem(){n.andData.push([])},closeDialog(){o.value.close()},saveJson(){const e=vue.toRaw(n.andData).filter((e=>{if(e.length>0)return e})).map((e=>{const t=e.filter((e=>{if(e.field)return e}));if(t.length>0)return t})).filter((e=>!!e));t("change",e),o.value.close()}}}}),_hoisted_1$4=vue.createElementVNode("div",{class:"tipContent"},"满足以下所有条件时,此组件可用",-1);function _sfc_render$5(e,t,o,l,a,n){const r=vue.resolveComponent("el-option"),i=vue.resolveComponent("el-select"),s=vue.resolveComponent("el-table-column"),u=vue.resolveComponent("el-input"),d=vue.resolveComponent("el-form-item"),c=vue.resolveComponent("el-form"),v=vue.resolveComponent("el-switch"),m=vue.resolveComponent("el-button"),p=vue.resolveComponent("el-table"),f=vue.resolveComponent("el-main"),h=vue.resolveComponent("el-footer"),C=vue.resolveComponent("el-container"),g=vue.resolveComponent("CustomDialog");return vue.openBlock(),vue.createBlock(vue.Teleport,{to:"body"},[vue.createVNode(g,{ref:"maxJsonDialog",dialogclass:"conditionSelectNormal"},{default:vue.withCtx((()=>[vue.createVNode(f,{style:{padding:"0"}},{default:vue.withCtx((()=>[vue.createVNode(C,{style:{height:"100%"}},{default:vue.withCtx((()=>[vue.createVNode(f,{class:"my-pageMain"},{default:vue.withCtx((()=>[_hoisted_1$4,(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.andData,((t,o)=>(vue.openBlock(),vue.createElementBlock("div",{class:"tableContainer",key:o},[vue.createVNode(p,{data:t,style:{width:"100%"},border:""},{default:vue.withCtx((()=>[vue.createVNode(s,{prop:"field",label:"字段"},{default:vue.withCtx((t=>[vue.createVNode(i,{modelValue:t.row.field,"onUpdate:modelValue":e=>t.row.field=e,placeholder:"请选择"},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.fieldList,(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1}),vue.createVNode(s,{prop:"logic",label:"逻辑"},{default:vue.withCtx((t=>[vue.createVNode(i,{modelValue:t.row.logic,"onUpdate:modelValue":e=>t.row.logic=e,placeholder:"请选择"},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.getLogic(t.$index,o),(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:2},1024),vue.createVNode(s,{prop:"type",label:"值类型"},{default:vue.withCtx((t=>[vue.createVNode(i,{modelValue:t.row.type,"onUpdate:modelValue":e=>t.row.type=e,placeholder:"请选择",onChange:l=>e.handleType(t.$index,o,t.row.type)},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.getNewTypeList(t.$index,o),(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])),_:2},1024),vue.createVNode(s,{prop:"value",label:"值"},{default:vue.withCtx((t=>[e.getTypeIsChange(t.$index,o)&&"常量"==t.row.type?(vue.openBlock(),vue.createBlock(c,{key:0,model:t.row,rules:e.getRules(t.row.type),ref_for:!0,ref:"formList"},{default:vue.withCtx((()=>[vue.createVNode(d,{prop:"value"},{default:vue.withCtx((()=>[vue.createVNode(u,{text:"",modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e},null,8,["modelValue","onUpdate:modelValue"])])),_:2},1024)])),_:2},1032,["model","rules"])):vue.createCommentVNode("",!0),"选项"==t.row.type?(vue.openBlock(),vue.createBlock(i,{key:1,modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e,filterable:"",placeholder:"请选择",multiple:e.getMultiple(t.$index,o)},{default:vue.withCtx((()=>[vue.createVNode(r,{label:"未选择",value:""}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.getFiled(t.$index,o),((e,t)=>(vue.openBlock(),vue.createBlock(r,{key:t,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","multiple"])):vue.createCommentVNode("",!0),"布尔"==t.row.type?(vue.openBlock(),vue.createBlock(v,{key:2,modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e},null,8,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)])),_:2},1024),vue.createVNode(s,{fixed:"right",label:"操作",width:"100"},{default:vue.withCtx((t=>[vue.createVNode(m,{size:"small",type:"danger",onClick:vue.withModifiers((l=>e.deleteRow(t.$index,o)),["prevent"])},{default:vue.withCtx((()=>[vue.createTextVNode(" 删除 ")])),_:2},1032,["onClick"])])),_:2},1024)])),_:2},1032,["data"]),vue.createVNode(m,{class:"mt-4",style:{width:"100%"},text:"",onClick:t=>e.onAddItem(o)},{default:vue.withCtx((()=>[vue.createTextVNode("+并条件")])),_:2},1032,["onClick"])])))),128)),vue.createVNode(m,{class:"mt-4",text:"",onClick:e.onOrItem},{default:vue.withCtx((()=>[vue.createTextVNode("+或条件")])),_:1},8,["onClick"])])),_:1}),vue.createVNode(h,{class:"my-Footer",style:{height:"60px","padding-top":"10px","text-align":"right"}},{default:vue.withCtx((()=>[vue.createVNode(m,{type:"primary",onClick:e.saveJson},{default:vue.withCtx((()=>[vue.createTextVNode("保存")])),_:1},8,["onClick"]),vue.createVNode(m,{onClick:e.closeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1})])),_:1},512)])}var ConditionSelect=_export_sfc(_sfc_main$5,[["render",_sfc_render$5]]);const _sfc_main$4={props:{fieldList:{type:Object,default:()=>({})},data:{type:Object,default:()=>({})}},data:()=>({table:[],groupSelect:[{value:"andgroup",label:"+并组"},{value:"orgroup",label:"+或组"},{value:"data",label:"条件"}],logicList:[{value:"=",label:"等于"},{value:"!=",label:"不等于"}],typeList:[{rule:[],value:"常量",label:"常量"}]}),computed:{newtypeList(){const e=this.fieldList.find((e=>{if(this.table&&this.table.length>0&&e.value==this.table[0].field)return e}));return e&&e.options?[{rule:[],value:"选项",label:"选项"}]:e&&e.switch?[{value:"布尔",label:"布尔"}]:this.typeList}},methods:{handleType(e){"布尔"==e&&(this.table[0].value=!0)},getFiled(){if(!this.table[0]||!this.table[0].field)return[];return this.fieldList.find((e=>{if(this.table&&this.table.length>0&&e.value==this.table[0].field)return e})).options||[]},getMultiple(){return!!this.fieldList.find((e=>{if(this.table&&this.table.length>0&&e.value==this.table[0].field)return e})).multiple},getLogic(){const e=this.fieldList.find((e=>{if(this.table&&this.table.length>0&&e.value==this.table[0].field)return e}));return e&&e.options&&e.multiple?[{value:"in",label:"包含"},{value:"not in",label:"不包含"}]:e&&e.switch?[{value:"=",label:"等于"}]:this.logicList},show(e){this.$refs.maxJsonDialog.init("可用条件","icon-bianji"),this.$refs.maxJsonDialog.show(),Object.keys(e).length>0&&(this.table=[e])},onAddItem(){this.table.push({field:"",logic:"",type:"",value:""})},getTypeIsChange(e){const t=this.table[e];return!!t.type&&"常量"==t.type},getRules(e){var t;return{value:null==(t=this.typeList.find((t=>t.value==e)))?void 0:t.rule}},closeDialog(){this.$refs.maxJsonDialog.close()},deleteRow(){this.table=[]},async saveJson(){if(this.table.length>0){const e=this.table[0];if(!e.field)return void this.$message.error("字段不能为空!");if(!e.type)return void this.$message.error("请选择值类型!");if(e.type&&"选项"==e.type&&!e.value)return void this.$message.error("值类型为字段时值不能为空!");for(const t in this.table[0])this.data[t]=this.table[0][t]}else for(const e in this.data)delete this.data[e];this.$message({message:"保存成功",type:"success"}),this.closeDialog(),this.$emit("end")}}};function _sfc_render$4(e,t,o,l,a,n){const r=vue.resolveComponent("el-option"),i=vue.resolveComponent("el-select"),s=vue.resolveComponent("el-table-column"),u=vue.resolveComponent("el-input"),d=vue.resolveComponent("el-form-item"),c=vue.resolveComponent("el-form"),v=vue.resolveComponent("el-switch"),m=vue.resolveComponent("el-button"),p=vue.resolveComponent("el-table"),f=vue.resolveComponent("el-main"),h=vue.resolveComponent("el-footer"),C=vue.resolveComponent("el-container"),g=vue.resolveComponent("CustomDialog");return vue.openBlock(),vue.createBlock(vue.Teleport,{to:"body"},[vue.createVNode(g,{ref:"maxJsonDialog",dialogclass:"maxJsonDialog"},{default:vue.withCtx((()=>[vue.createVNode(f,{style:{padding:"0"}},{default:vue.withCtx((()=>[vue.createVNode(C,{style:{height:"100%"}},{default:vue.withCtx((()=>[vue.createVNode(f,{class:"my-pageMain"},{default:vue.withCtx((()=>[vue.createVNode(p,{data:a.table,style:{width:"100%"},border:""},{default:vue.withCtx((()=>[vue.createVNode(s,{prop:"field",label:"字段"},{default:vue.withCtx((e=>[vue.createVNode(i,{modelValue:e.row.field,"onUpdate:modelValue":t=>e.row.field=t,placeholder:"请选择"},{default:vue.withCtx((()=>[vue.createVNode(r,{label:"未选择",value:""}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(o.fieldList,((e,t)=>(vue.openBlock(),vue.createBlock(r,{key:t,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1}),vue.createVNode(s,{prop:"logic",label:"逻辑"},{default:vue.withCtx((e=>[vue.createVNode(i,{modelValue:e.row.logic,"onUpdate:modelValue":t=>e.row.logic=t,placeholder:"请选择"},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(n.getLogic(),(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1}),vue.createVNode(s,{prop:"type",label:"值类型"},{default:vue.withCtx((e=>[vue.createVNode(i,{modelValue:e.row.type,"onUpdate:modelValue":t=>e.row.type=t,placeholder:"请选择",onChange:n.handleType},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(n.newtypeList,(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),vue.createVNode(s,{prop:"value",label:"值"},{default:vue.withCtx((t=>[n.getTypeIsChange(t.$index,e.index)?(vue.openBlock(),vue.createBlock(c,{key:0,model:t.row,rules:n.getRules(t.row.type),ref:"formList"},{default:vue.withCtx((()=>[vue.createVNode(d,{prop:"value"},{default:vue.withCtx((()=>[vue.createVNode(u,{text:"",modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e},null,8,["modelValue","onUpdate:modelValue"])])),_:2},1024)])),_:2},1032,["model","rules"])):vue.createCommentVNode("",!0),"选项"==t.row.type?(vue.openBlock(),vue.createBlock(i,{key:1,modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e,filterable:"",placeholder:"请选择",multiple:n.getMultiple()},{default:vue.withCtx((()=>[vue.createVNode(r,{label:"未选择",value:""}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(n.getFiled(),((e,t)=>(vue.openBlock(),vue.createBlock(r,{key:t,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","multiple"])):vue.createCommentVNode("",!0),"布尔"==t.row.type?(vue.openBlock(),vue.createBlock(v,{key:2,modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e,"active-icon":e.Check,"inactive-icon":e.Close},null,8,["modelValue","onUpdate:modelValue","active-icon","inactive-icon"])):vue.createCommentVNode("",!0)])),_:1}),vue.createVNode(s,{fixed:"right",label:"操作",width:"200"},{default:vue.withCtx((t=>[vue.createVNode(m,{size:"small",type:"danger",onClick:vue.withModifiers((o=>n.deleteRow(t.$index,e.index)),["prevent"])},{default:vue.withCtx((()=>[vue.createTextVNode(" 删除 ")])),_:2},1032,["onClick"])])),_:1})])),_:1},8,["data"]),0==a.table.length?(vue.openBlock(),vue.createBlock(m,{key:0,class:"mt-4",text:"",onClick:n.onAddItem,style:{width:"100%"}},{default:vue.withCtx((()=>[vue.createTextVNode("+条件")])),_:1},8,["onClick"])):vue.createCommentVNode("",!0)])),_:1}),vue.createVNode(h,{class:"my-Footer",style:{height:"60px","padding-top":"10px"}},{default:vue.withCtx((()=>[vue.createVNode(m,{type:"primary",onClick:n.saveJson},{default:vue.withCtx((()=>[vue.createTextVNode("保存")])),_:1},8,["onClick"]),vue.createVNode(m,{onClick:n.closeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1})])),_:1},512)])}var ConditionTanc=_export_sfc(_sfc_main$4,[["render",_sfc_render$4]]);const _sfc_main$3={name:"ConditionGroup",components:{ConditionTanc:ConditionTanc},props:{result:{type:Object,default:()=>({})},index:{type:Number,default:0},fieldList:{type:Array,default:()=>[]},rightField:{type:Array,default:()=>[]},request:{type:Array,default:()=>[]}},data:()=>({groupSelect:[{value:"andgroup",label:"+并组"},{value:"orgroup",label:"+或组"},{value:"data",label:"条件"}]}),watch:{result:{handler(){this.$forceUpdate()},deep:!0}},methods:{onAddItem(){if(this.result.type){switch(this.result.result||"data"==this.result.type||(this.result.result=[]),"data"!=this.result.type||this.result.data||(this.result.data={}),this.result.control=!0,this.result.type){case"orgroup":this.result.result.push({type:"orgroup",result:[]});break;case"andgroup":this.result.result.push({type:"andgroup",result:[]});break;case"data":this.result.result.push({type:"data",data:{}})}this.handleUpdateForce()}},handleControl(e){this.result.control=e,this.handleUpdateForce()},onDeleteItem(){0==this.index?(delete this.result.data,delete this.result.result,delete this.result.type,this.handleUpdateForce()):this.$emit("delete",this.index)},handleDelete(e){this.result.result.splice(e,1),this.handleUpdateForce()},onChange(e){this.result.type=e,"andgroup"==e||"orgroup"==e?(this.result.result=[],this.result.data&&delete this.result.data):(this.result.data={},this.result.result&&delete this.result.result),this.handleUpdateForce()},handleUpdateForce(){this.$forceUpdate(),this.$emit("update")},onEditData(){this.$refs.ConditionTanc.show(this.result.data)}}},_hoisted_1$3={class:"control"},_hoisted_2$3={class:"moreCondition"};function _sfc_render$3(e,t,o,l,a,n){const r=vue.resolveComponent("el-option"),i=vue.resolveComponent("el-select"),s=vue.resolveComponent("el-button"),u=vue.resolveComponent("ConditionGroup",!0),d=vue.resolveComponent("ConditionTanc");return vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["conditionSelect",o.result.type])},[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$3,[o.result.control?(vue.openBlock(),vue.createElementBlock("span",{key:1,class:"iconfont icon-jianhao",onClick:t[1]||(t[1]=e=>n.handleControl(!1))})):(vue.openBlock(),vue.createElementBlock("span",{key:0,class:"iconfont icon-jiahao",onClick:t[0]||(t[0]=e=>n.handleControl(!0))}))],512),[[vue.vShow,o.result.result&&o.result.result.length>0&&"data"!==o.result.type]]),vue.createVNode(i,{modelValue:o.result.type,"onUpdate:modelValue":t[2]||(t[2]=e=>o.result.type=e),placeholder:"请选择",onChange:n.onChange},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(a.groupSelect,(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["modelValue","onChange"]),vue.createVNode(s,{type:"primary",onClick:n.onAddItem,size:"small",disabled:!o.result.type||"data"==o.result.type},{default:vue.withCtx((()=>[vue.createTextVNode("增加条件")])),_:1},8,["onClick","disabled"]),vue.createVNode(s,{type:"danger",onClick:n.onDeleteItem,size:"small"},{default:vue.withCtx((()=>[vue.createTextVNode("删除")])),_:1},8,["onClick"]),"data"==o.result.type?(vue.openBlock(),vue.createBlock(s,{key:0,type:"primary",onClick:n.onEditData,size:"small"},{default:vue.withCtx((()=>[vue.createTextVNode("编辑")])),_:1},8,["onClick"])):vue.createCommentVNode("",!0),vue.createVNode(vue.Transition,null,{default:vue.withCtx((()=>[vue.withDirectives(vue.createElementVNode("div",_hoisted_2$3,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(o.result.result,((e,t)=>(vue.openBlock(),vue.createElementBlock("div",{key:t,class:"selectList"},[vue.createVNode(u,{result:e,onUpdate:n.handleUpdateForce,onDelete:n.handleDelete,index:t,fieldList:o.fieldList},null,8,["result","onUpdate","onDelete","index","fieldList"])])))),128)),o.result.result&&o.result.result.length>=2?(vue.openBlock(),vue.createElementBlock("div",{key:0,class:vue.normalizeClass(["line",o.result.type])},null,2)):vue.createCommentVNode("",!0)],512),[[vue.vShow,o.result.type&&"data"!==o.result.type&&o.result.control]])])),_:1}),vue.withDirectives(vue.createElementVNode("div",null,[vue.createVNode(d,{ref:"ConditionTanc",data:o.result.data,fieldList:o.fieldList,onEnd:n.handleUpdateForce},null,8,["data","fieldList","onEnd"])],512),[[vue.vShow,o.result.type&&"data"==o.result.type]])],2)}var ConditionGroup=_export_sfc(_sfc_main$3,[["render",_sfc_render$3]]);const _sfc_main$2={components:{ConditionGroup:ConditionGroup},props:{data:{type:Object,default:()=>({})},item:{type:Object,default:()=>({})}},data:()=>({result:{},stringLink:"",leftField:[],rightField:[],condition:[],request:[]}),watch:{result:{handler(){console.log(this.result),this.$forceUpdate()},deep:!0}},emits:["change"],methods:{async show(){var e;this.$refs.maxJsonDialog.init("可用条件","icon-bianji"),this.$refs.maxJsonDialog.show(),await this.$nextTick();const t=null==formStore?void 0:formStore.get("allFormList"),o=[];null==(e=vue.toRaw(t))||e.forEach((e=>{window.VueContext.$Flex.getFormDataList(e,o,this.data.fieldName)})),this.result="string"==typeof this.data[this.item.data.fieldName]?JSON.parse(this.data[this.item.data.fieldName]):this.data[this.item.data.fieldName],console.log(o),this.leftField=o},handleUpdateForce(){this.$forceUpdate(),this.stringLink=this.filterCondition(this.result)},filterCondition(e){if("andgroup"==e.type||"orgroup"==e.type){const t=e.result.map((e=>this.filterCondition(e))).join("andgroup"==e.type?'<span class="and">and</span>':'<span class="or">or</span>');return`<span class='kh ${e.type}'>(${t})</span>`}return"data"==e.type?`<span class='data kh'>${this.getDataConditionRelate(e)}</span>`:""},getDataConditionRelate(e){if(0==Object.keys(e.data).length)return"空";const t=e.data,o=t.field;let l;if("选项"==t.type){const e=t.value;l=`${JSON.stringify(e)}`}else"常量"!=t.type&&"布尔"!=t.type||(l=t.value);return`${o} ${t.logic} ${l}`},closeDialog(){this.$refs.maxJsonDialog.close()},saveJson(){this.$emit("change",this.result),this.closeDialog()}}},_hoisted_1$2=vue.createElementVNode("div",{class:"tipContent"},"满足以下所有条件时,此组件可用",-1),_hoisted_2$2={class:"conditionContainer"},_hoisted_3$1={class:"stringlist"},_hoisted_4$1=["innerHTML"];function _sfc_render$2(e,t,o,l,a,n){const r=vue.resolveComponent("ConditionGroup"),i=vue.resolveComponent("el-main"),s=vue.resolveComponent("el-button"),u=vue.resolveComponent("el-footer"),d=vue.resolveComponent("el-container"),c=vue.resolveComponent("CustomDialog");return vue.openBlock(),vue.createBlock(c,{ref:"maxJsonDialog",dialogclass:"conditionModule"},{default:vue.withCtx((()=>[vue.createVNode(i,{style:{padding:"0"}},{default:vue.withCtx((()=>[vue.createVNode(d,{style:{height:"100%"}},{default:vue.withCtx((()=>[vue.createVNode(i,{class:"my-pageMain"},{default:vue.withCtx((()=>[_hoisted_1$2,vue.createElementVNode("div",_hoisted_2$2,[vue.createVNode(r,{result:a.result,onUpdate:n.handleUpdateForce,fieldList:a.leftField},null,8,["result","onUpdate","fieldList"]),vue.createElementVNode("div",_hoisted_3$1,[vue.createElementVNode("pre",{innerHTML:a.stringLink},null,8,_hoisted_4$1)])])])),_:1}),vue.createVNode(u,{class:"my-Footer",style:{height:"60px","padding-top":"10px"}},{default:vue.withCtx((()=>[vue.createVNode(s,{type:"primary",onClick:n.saveJson},{default:vue.withCtx((()=>[vue.createTextVNode("保存")])),_:1},8,["onClick"]),vue.createVNode(s,{onClick:n.closeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1})])),_:1},512)}var HighConditionSelect=_export_sfc(_sfc_main$2,[["render",_sfc_render$2]]);const _sfc_main$1=vue.defineComponent({props:{active:Boolean,currentIndex:Number,len:{type:Number,default:0},inline:Boolean,layout:Boolean,currentId:String,item:Object},setup(e,t){const o=vue.ref(!1),l=vue.ref(),{store:a}=vue.inject("control")||{},{emit:n}=t,r=vue.computed((()=>null==a?void 0:a.get("copyContent")));vue.watch((()=>e.active),(()=>{e.active||(o.value=e.active)}));document.addEventListener("click",(()=>{o.value=!1}));return{isShow:o,handleShortCut:t=>{if(e.active){t.preventDefault(),o.value=!0;const e=t.offsetX,a=t.offsetY;vue.nextTick((()=>{l.value.style.left=e+"px",l.value.style.top=a+"px"}))}},handleMenu:()=>{o.value=!1},editForm:l,handleActive:e=>{"copy"===e?copy():"paste"===e?(n("paste"),paste()):"cut"===e?cut():"delete"===e?onDelete():"top"===e?onTop():"bottom"===e&&onBottom()},handleCopyAndPaste:()=>{copy(),n("paste"),paste()},copyContent:r,handleColumn:()=>{var t;null==(t=e.item)||t.data.trs.push({tds:[{colspan:1,rowspan:1,list:[]},{colspan:1,rowspan:1,list:[]}]})},handleRow:()=>{var t;null==(t=e.item)||t.data.trs.forEach((e=>{e.tds.push({colspan:1,rowspan:1,list:[]})}))}}}}),_hoisted_1$1={class:"editForm",ref:"editForm"},_hoisted_2$1={key:0,class:"editbar"};function _sfc_render$1(e,t,o,l,a,n){return vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["shape",e.active?e.layout?"shape_border shape_border_layout":"shape_border":e.layout?"noactive_layout":""]),onContextmenu:t[12]||(t[12]=(...t)=>e.handleShortCut&&e.handleShortCut(...t)),onClick:t[13]||(t[13]=(...t)=>e.handleMenu&&e.handleMenu(...t)),style:vue.normalizeStyle({display:e.inline?"inline-block":"block"})},[vue.createVNode(vue.Transition,{name:"fade",mode:"out-in",appear:""},{default:vue.withCtx((()=>[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$1,[vue.createElementVNode("span",{onClick:t[0]||(t[0]=t=>e.handleActive("copy"))},"复制"),vue.createElementVNode("span",{onClick:t[1]||(t[1]=t=>e.handleActive("cut"))},"剪切"),vue.createElementVNode("span",{onClick:t[2]||(t[2]=t=>e.handleActive("delete"))},"删除"),e.copyContent?(vue.openBlock(),vue.createElementBlock("span",{key:0,onClick:t[3]||(t[3]=t=>e.handleActive("paste"))},"粘贴")):vue.createCommentVNode("",!0),0!=e.currentIndex?(vue.openBlock(),vue.createElementBlock("span",{key:1,onClick:t[4]||(t[4]=t=>e.handleActive("top"))},"上移")):vue.createCommentVNode("",!0),e.currentIndex!=e.len-1?(vue.openBlock(),vue.createElementBlock("span",{key:2,onClick:t[5]||(t[5]=t=>e.handleActive("bottom"))},"下移")):vue.createCommentVNode("",!0)],512),[[vue.vShow,e.isShow&&e.active]])])),_:1}),vue.renderSlot(e.$slots,"default"),e.active?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$1,[0!=e.currentIndex?(vue.openBlock(),vue.createElementBlock("span",{key:0,class:"iconfont icon-xiangshang1",onClick:t[6]||(t[6]=vue.withModifiers((t=>e.handleActive("top")),["stop"]))})):vue.createCommentVNode("",!0),e.currentIndex!=e.len-1?(vue.openBlock(),vue.createElementBlock("span",{key:1,class:"iconfont icon-xiangxia1",onClick:t[7]||(t[7]=vue.withModifiers((t=>e.handleActive("bottom")),["stop"]))})):vue.createCommentVNode("",!0),e.item&&"TableLayout"==e.item.ControlType?(vue.openBlock(),vue.createElementBlock("span",{key:2,class:"iconfont icon--charulie",onClick:t[8]||(t[8]=(...t)=>e.handleRow&&e.handleRow(...t))})):vue.createCommentVNode("",!0),e.item&&"TableLayout"==e.item.ControlType?(vue.openBlock(),vue.createElementBlock("span",{key:3,class:"iconfont icon--charuhang",onClick:t[9]||(t[9]=(...t)=>e.handleColumn&&e.handleColumn(...t))})):vue.createCommentVNode("",!0),vue.createElementVNode("span",{class:"iconfont icon-fuzhi",onClick:t[10]||(t[10]=vue.withModifiers(((...t)=>e.handleCopyAndPaste&&e.handleCopyAndPaste(...t)),["stop"]))}),vue.createElementVNode("span",{class:"iconfont icon-shanchu1",onClick:t[11]||(t[11]=vue.withModifiers((t=>e.handleActive("delete")),["stop"]))})])):vue.createCommentVNode("",!0)],38)}var Shape=_export_sfc(_sfc_main$1,[["render",_sfc_render$1]]),vm=mitt__default.default();const fieldlist=[];class Flex{constructor(){this.lastClickTime=0,this.openTanc=!1}clickCountLimit(){let e=!1;if(window.clickCountLimitMock)return!0;if(this.lastClickTime){const t=(new Date).getTime()-this.lastClickTime;this.lastClickTime=(new Date).getTime(),e=t>=1e3}else this.lastClickTime=(new Date).getTime(),e=!0;return e||console.log("手残党点击太快了"),e}generateMixed(e){return nanoid.nanoid(e)}controlFormRule(e){const t={};return e.forEach((e=>{const o=[];e.data.required&&(o.push({required:!0,message:"请输入"+e.data.label,trigger:"blur"}),t[e.data.fieldName]=o),"JsonEditor"===e.ControlType&&(t[e.data.fieldName]=this.getJsonValidate())})),t}deepClone(e){let t;if("object"==typeof e)if(Array.isArray(e)){t=[];for(let o=0;o<e.length;o++)Object.prototype.hasOwnProperty.call(e,o)&&t.push(this.deepClone(e[o]))}else if(null===e)t=null;else if(e.constructor===RegExp)t=e;else{t={};for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=this.deepClone(e[o]))}else t=e;return t}tryParseJson(e){try{return JSON.parse(e)}catch(t){return e&&e.startsWith&&e.startsWith('"[')?[]:{}}}open(e,t="Success",o="success"){ElementPlus.ElNotification({title:t||"Success",message:e,type:o})}getJsonValidate(){return this.deepClone([{validator:(e,t,o)=>{try{JSON.parse(t),o()}catch(l){return console.error(l),o(new Error("请输入正确的json格式"))}},trigger:"blur"}])}getDataType(e){return Object.prototype.toString.call(e).match(/\[object (.*)\]/)[1]}jsonToForm(e){var t,o;if(!e.data||!e.controlItems){e=this.deepClone(e);const l=window.VApp.$formcomponents[e.ControlType];e.formConfig=(null==(t=window.VApp.$formcomponents[e.ControlType])?void 0:t.formConfig)||{},e.data||(e.data=e.formConfig.data()),e.data.fieldName||(e.data.fieldName=e.ControlType+"_"+this.generateMixed()),fieldlist.includes(e.data.fieldName)?e.data.fieldName=e.ControlType+"_"+this.generateMixed():fieldlist.push(e.data.fieldName),e.layout&&("Grid"==e.ControlType&&e.data.columns&&e.data.columns.length>0?e.data.columns=e.data.columns.map((e=>(e.list&&e.list.length>0&&(e.list=this.jsonToForm(e.list)),e))):"TableLayout"==e.ControlType&&e.data.trs&&e.data.trs.length>0?e.data.trs=e.data.trs.map((e=>(e.tds.forEach((e=>(e.list&&e.list.length>0&&(e.list=this.jsonToForm(e.list)),e))),e))):("Collapse"==e.ControlType||"Tabs"==e.ControlType)&&e.data.items&&e.data.items.length>0&&(e.data.items=e.data.items.map((e=>(e.list&&e.list.length>0&&(e.list=this.jsonToForm(e.list)),e)))));const a=null==(o=null==formStore?void 0:formStore.get("globalFormList"))?void 0:o.filter((e=>{if(e.dynamic)return e}));e.id=this.generateMixed();let n=e.formConfig.morenConfig().concat(a);l.actionType&&l.actionType.length>0?(console.log(n),n.find((e=>{"Action"==e.ControlType&&(e.data.formConfig={value:{},items:[]},l.actionType.forEach(((t,o)=>{e.data.formConfig.items.push({label:t,value:t,id:o+1})})))}))):n=n.filter((e=>{if("Action"!==e.ControlType)return e})),e.rules=this.controlFormRule(n),e.controlItems=n}return e}initFormToJson(e){const t=[];return e.forEach((e=>{e.layout&&("Grid"==e.ControlType&&e.data.columns&&e.data.columns.length>0?e.data.columns=e.data.columns.map((e=>(e.list=this.initFormToJson(e.list),e))):"TableLayout"==e.ControlType&&e.data.trs&&e.data.trs.length>0?e.data.trs=e.data.trs.map((e=>(e.tds.forEach((e=>(e.list&&e.list.length>0&&(e.list=this.initFormToJson(e.list)),e))),e))):("Collapse"==e.ControlType||"Tabs"==e.ControlType)&&e.data.items&&e.data.items.length>0&&(e.data.items=e.data.items.map((e=>(e.list=this.initFormToJson(e.list),e)))));const o={ControlType:e.ControlType,nameCn:e.nameCn,id:e.id,layout:!!e.layout,data:e.data};t.push(o)})),t}funcExec(action,proxy,argus=[]){const actionObj=JSON.parse(action||"{}"),funcStr=actionObj.funcStr;eval(`(function(${this.getField(actionObj.methods)}){${funcStr}}).apply(proxy, argus)`)}getField(e){return"onChange"==e?"value, oldValue, subFormData":["onForce","onBlur","onClick"].includes(e)?"field":""}getFormDataList(e,t=[],o){var l,a,n,r,i,s,u,d,c,v,m,p;if(e.layout)e.data.fieldName!=o&&(t.push({value:null==(v=null==e?void 0:e.data)?void 0:v.fieldName,label:(null==(m=null==e?void 0:e.data)?void 0:m.label)+"-"+(null==(p=null==e?void 0:e.data)?void 0:p.fieldName)}),"Grid"==e.ControlType&&e.data.columns?e.data.columns.forEach((e=>{e.list.forEach((e=>{this.getFormDataList(e,t,o)}))})):"TableLayout"==e.ControlType&&e.data.trs?e.data.trs.forEach((e=>{e.tds.forEach((e=>{e.list.forEach((e=>{this.getFormDataList(e,t,o)}))}))})):"Collapse"!=e.ControlType&&"Tabs"!=e.ControlType||!e.data.items||e.data.items.forEach((e=>{e.list.forEach((e=>{this.getFormDataList(e,t,o)}))})));else if(e.data.fieldName!=o){if("开关"==e.nameCn)return void t.push({value:null==(l=null==e?void 0:e.data)?void 0:l.fieldName,label:(null==(a=null==e?void 0:e.data)?void 0:a.label)+"-"+(null==(n=null==e?void 0:e.data)?void 0:n.fieldName),switch:!0});if(e.data.itemConfig){let o=!1;Array.isArray(e.data.itemConfig.value)&&(o=!0);const l=e.data.itemConfig.items;return void t.push({value:null==(r=null==e?void 0:e.data)?void 0:r.fieldName,label:(null==(i=null==e?void 0:e.data)?void 0:i.label)+"-"+(null==(s=null==e?void 0:e.data)?void 0:s.fieldName),multiple:o,options:l})}t.push({value:null==(u=null==e?void 0:e.data)?void 0:u.fieldName,label:(null==(d=null==e?void 0:e.data)?void 0:d.label)+"-"+(null==(c=null==e?void 0:e.data)?void 0:c.fieldName)})}}}var flex=new Flex;const _sfc_main=vue.defineComponent({ControlType:"FormStyle",isHide:!0,props:{item:{type:Object,default:()=>({})},data:{type:Object,default:()=>({})},controlItems:{type:Array,default:()=>[]}},setup(e){const t=[langCss.css()],o=vue.ref(),l=vue.ref(),{proxy:a}=vue.getCurrentInstance();return{code:l,extensions:t,codeDialog:o,onStyleSet(){o.value.init("表单样式表","icon-biaodan"),o.value.show()},saveCssStyle(){e.data[e.item.data.fieldName]=l.value,a.extractCssClass(),a.insertCustomCssToHead(l.value),o.value.close()},closeCodeDialog(){o.value.close()},extractCssClass(){const t=l.value.match(/\..*{/g),o=[];t&&t.length>0&&t.forEach((e=>{const t=e.split(",");t.length>0&&t.forEach((e=>{const t=e.trim();if(-1!==t.indexOf(".",1)){const e=t.substring(t.indexOf(".")+1,t.indexOf(".",1));e&&o.push(e.trim())}else if(-1!==t.indexOf(" ")){const e=t.substring(t.indexOf(".")+1,t.indexOf(" "));e&&o.push(e.trim())}else if(-1!==t.indexOf("{")){const e=t.substring(t.indexOf(".")+1,t.indexOf("{"));o.push(e.trim())}else{const e=t.substring(t.indexOf(".")+1);o.push(e.trim())}}))})),e.controlItems.find((e=>{if("csslist"==e.data.fieldName)return e.data.itemConfig.items=[],o.forEach(((t,o)=>{e.data.itemConfig.items.push({label:t,value:t,select:!1,id:o+1})})),e}))},insertCustomCssToHead(e){const t=document.getElementsByTagName("head")[0],o=document.getElementById("starfish-custom-css");o&&t.removeChild(o);const l=document.createElement("style");l.type="text/css",l.rel="stylesheet",l.id="starfish-custom-css";try{l.appendChild(document.createTextNode(e))}catch(a){l.styleSheet.cssText=e}t.appendChild(l)}}}}),_hoisted_1={class:"starfish-formitem"},_hoisted_2={class:"label"},_hoisted_3={key:0,class:"item_require"},_hoisted_4=vue.createElementVNode("span",{class:"tip iconfont icon-tishi"},null,-1),_hoisted_5={class:"control"},_hoisted_6={class:"custom_code"};function _sfc_render(e,t,o,l,a,n){const r=vue.resolveComponent("el-tooltip"),i=vue.resolveComponent("el-button"),s=vue.resolveComponent("codemirror"),u=vue.resolveComponent("el-footer"),d=vue.resolveComponent("custom-dialog");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1,[vue.createElementVNode("div",_hoisted_2,[vue.createElementVNode("label",null,vue.toDisplayString(e.item.data.label),1),e.item.data.required?(vue.openBlock(),vue.createElementBlock("span",_hoisted_3,"*")):vue.createCommentVNode("",!0),e.item.data.tip?(vue.openBlock(),vue.createBlock(r,{key:1,class:"item",effect:"dark",content:e.item.data.tip,placement:"top"},{default:vue.withCtx((()=>[_hoisted_4])),_:1},8,["content"])):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_5,[vue.createVNode(i,{style:{width:"100%"},onClick:e.onStyleSet,type:e.code?"primary":""},{default:vue.withCtx((()=>[vue.createTextVNode(vue.toDisplayString(e.code?"已设置":"设置"),1)])),_:1},8,["onClick","type"]),vue.createVNode(d,{ref:"codeDialog",dialogclass:"codeDialog",width:"1000"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_6,[vue.createVNode(s,{modelValue:e.code,"onUpdate:modelValue":t[0]||(t[0]=t=>e.code=t),placeholder:".starfish-form-css{}",style:{height:"400px"},autofocus:!0,extensions:e.extensions,"indent-with-tab":!0,"tab-size":2},null,8,["modelValue","extensions"])]),vue.createVNode(u,{class:"my-Footer",style:{"text-align":"center"}},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary",onClick:e.saveCssStyle},{default:vue.withCtx((()=>[vue.createTextVNode("确定")])),_:1},8,["onClick"]),vue.createVNode(i,{onClick:e.closeCodeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1},512)])])}var FormStyle=_export_sfc(_sfc_main,[["render",_sfc_render]]),main={install:e=>{e.config.globalProperties.$EventBus=vm,e.config.globalProperties.$Flex=flex,window.VApp=e.config.globalProperties,window.VueContext={$Flex:flex},window.JSONEditor=JSONEditor__default.default,e.use(ElementPlus__default.default,{locale:zhCn__default.default}).use(StarfishForm__default.default),e.use(VueCodemirror__default.default,{autofocus:!0,disabled:!1,indentWithTab:!0,tabSize:2,placeholder:"Code goes here...",extensions:[codemirror.basicSetup,langJavascript.javascript()]}),e.component("CustomDialog",CustomDialog),e.component("ConditionSelect",ConditionSelect),e.component("HighConditionSelect",HighConditionSelect),e.component("draggable",draggable__default.default),e.component("Shape",Shape),e.component("FormStyle",FormStyle),e.component("StarfishEditor",Editor)}};return main}));
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("element-plus"),require("element-plus/dist/index.css"),require("element-plus/es/locale/lang/zh-cn"),require("vue"),require("gesto"),require("@codemirror/lang-json"),require("starfish-form"),require("clipboard"),require("keycon"),require("jsoneditor/dist/jsoneditor.min.css"),require("jsoneditor"),require("mitt"),require("nanoid"),require("vuedraggable"),require("codemirror"),require("vue-codemirror"),require("@codemirror/lang-css"),require("starfish-form/dist/style.css"),require("@codemirror/lang-javascript")):"function"==typeof define&&define.amd?define(["element-plus","element-plus/dist/index.css","element-plus/es/locale/lang/zh-cn","vue","gesto","@codemirror/lang-json","starfish-form","clipboard","keycon","jsoneditor/dist/jsoneditor.min.css","jsoneditor","mitt","nanoid","vuedraggable","codemirror","vue-codemirror","@codemirror/lang-css","starfish-form/dist/style.css","@codemirror/lang-javascript"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).StarfishEditor=t(e.ElementPlus,null,e.zhCn,e.vue,e.Gesto,e.langJson,e.StarfishForm,e.Clipboard,e.KeyController,null,e.JSONEditor,e.mitt,e.nanoid,e.draggable,e.codemirror,e.VueCodemirror,e.langCss,null,e.langJavascript)}(this,(function(ElementPlus,index_css,zhCn,vue,Gesto,langJson,StarfishForm,Clipboard,KeyController,jsoneditor_min_css,JSONEditor,mitt,nanoid,draggable,codemirror,VueCodemirror,langCss,style_css,langJavascript){"use strict";function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var ElementPlus__default=_interopDefaultLegacy(ElementPlus),zhCn__default=_interopDefaultLegacy(zhCn),Gesto__default=_interopDefaultLegacy(Gesto),StarfishForm__default=_interopDefaultLegacy(StarfishForm),Clipboard__default=_interopDefaultLegacy(Clipboard),KeyController__default=_interopDefaultLegacy(KeyController),JSONEditor__default=_interopDefaultLegacy(JSONEditor),mitt__default=_interopDefaultLegacy(mitt),draggable__default=_interopDefaultLegacy(draggable),VueCodemirror__default=_interopDefaultLegacy(VueCodemirror),_export_sfc=(e,t)=>{const o=e.__vccOpts||e;for(const[l,a]of t)o[l]=a;return o};const _sfc_main$h=vue.defineComponent({props:{type:{type:String}},setup(e){const t=vue.ref(),{uiControl:o}=vue.inject("control")||{};let l;return vue.onMounted((()=>{t.value&&(l=new Gesto__default.default(t.value,{container:window,pinchOutside:!0}).on("drag",(l=>{if(!t.value||!o)return;let{right:a,left:n}={...vue.toRaw(null==o?void 0:o.get("columnWidth"))};"right"==e.type?a-=l.deltaX:n+=l.deltaX,null==o||o.set("columnWidth",{left:n,right:a})})))})),vue.onUnmounted((()=>{null==l||l.unset()})),{target:t}}}),_hoisted_1$f={class:"starfish-editor-resizer",ref:"target"};function _sfc_render$h(e,t,o,l,a,n){return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$f,null,512)}var Resizer=_export_sfc(_sfc_main$h,[["render",_sfc_render$h]]);const _sfc_main$g=vue.defineComponent({props:{headerShow:{type:Boolean,default:!0}},components:{Resizer:Resizer},setup(){const{uiControl:e}=vue.inject("control")||{};return{columnWidth:vue.computed((()=>(null==e?void 0:e.get("columnWidth"))||{}))}}}),_hoisted_1$e={class:"starfish-editor"},_hoisted_2$c={class:"starfish-editor-nav"};function _sfc_render$g(e,t,o,l,a,n){var r,i,s;const u=vue.resolveComponent("resizer");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$e,[vue.createElementVNode("div",_hoisted_2$c,[vue.renderSlot(e.$slots,"nav")]),vue.createElementVNode("div",{class:vue.normalizeClass(["starfish-editor-content",e.headerShow?"":"starfish-editor-content-page"])},[vue.createElementVNode("div",{class:"starfish-editor-framework-left",style:vue.normalizeStyle(`width:${null==(r=e.columnWidth)?void 0:r.left}px`)},[vue.renderSlot(e.$slots,"left")],4),vue.createVNode(u,{type:"left"}),vue.createElementVNode("div",{class:"starfish-editor-framework-center",style:vue.normalizeStyle(`width:${null==(i=e.columnWidth)?void 0:i.center}px`)},[vue.renderSlot(e.$slots,"navlist"),vue.renderSlot(e.$slots,"workspace")],4),vue.createVNode(u,{type:"right"}),vue.createElementVNode("div",{class:"starfish-editor-framework-right",style:vue.normalizeStyle(`width:${null==(s=e.columnWidth)?void 0:s.right}px`)},[vue.renderSlot(e.$slots,"propsPanel")],4)],2),vue.renderSlot(e.$slots,"other")])}var Framework=_export_sfc(_sfc_main$g,[["render",_sfc_render$g]]);const state$4=vue.reactive({historyList:[],index:-1,maxStep:20,historyFlag:!1});class History{setValue(e){state$4.historyList.push(e),state$4.historyList.length>state$4.maxStep&&(state$4.historyList=state$4.historyList.slice(state$4.historyList.length-state$4.maxStep)),state$4.index=state$4.historyList.length-1}back(){-1!=state$4.index&&(state$4.index-=1,state$4.index>-1?(state$4.historyFlag=!0,null==formStore||formStore.set("allFormList",state$4.historyList[state$4.index].allFormList),null==formStore||formStore.set("currentIndex",state$4.historyList[state$4.index].currentIndex),null==formStore||formStore.set("curControl",state$4.historyList[state$4.index].curControl),null==formStore||formStore.set("currentId",state$4.historyList[state$4.index].currentId)):(state$4.historyFlag=!0,null==formStore||formStore.set("allFormList",[]),null==formStore||formStore.set("currentIndex",-1),null==formStore||formStore.set("curControl",{}),null==formStore||formStore.set("currentId","")))}go(){state$4.index>=state$4.historyList.length-1||(state$4.index+=1,state$4.historyFlag=!0,null==formStore||formStore.set("allFormList",state$4.historyList[state$4.index].allFormList),null==formStore||formStore.set("currentIndex",state$4.historyList[state$4.index].currentIndex),null==formStore||formStore.set("curControl",state$4.historyList[state$4.index].curControl))}get(e){return state$4[e]}set(e,t){state$4[e]=t}}var hisContrl=new History;const state$3=vue.reactive({allFormList:[],curControl:{},currentIndex:-1,currentId:"",preview:!1,previewShow:!1,save:!1,saveTimetemp:(new Date).getTime(),formUpdate:!1,AllFormResult:[],formResult:{},globalDatas:{},globalFormList:[]});class Form{updateAllFormList(e){console.log("allForm",e),state$3.allFormList=e,-1!=state$3.currentIndex&&(state$3.curControl=e[state$3.currentIndex])}setHistory(){null==hisContrl||hisContrl.setValue({allFormList:window.VueContext.$Flex.deepClone(state$3.allFormList),currentIndex:state$3.currentIndex,currentId:state$3.currentId,curControl:window.VueContext.$Flex.deepClone(state$3.allFormList[state$3.currentIndex])})}setFormCurrentIndex(e){state$3.currentIndex=e}setFormCurrentId(e){if(state$3.currentId=e,e){const t=this.getCurrentItem(e);state$3.curControl=t||{}}else state$3.curControl={}}getCurrentItem(e){let t;return state$3.allFormList.find((o=>{if(o.id==e)return t=o,o;if(o.layout){const l=this.getLayoutCurCtrol(o,e);if(l)return t=l,o}})),t}getLayoutCurCtrol(e,t){let o;if("TableLayout"==e.ControlType){const l=e.data.trs;l&&l.length>0&&l.find((e=>e.tds.find((e=>e.list.find((e=>e.layout?(o=e.id==t?e:this.getLayoutCurCtrol(e,t),o):e.id==t?(o=e,o):void 0))))))}else if("Grid"==e.ControlType){const l=e.data.columns;l&&l.length>0&&l.find((e=>e.list.find((e=>e.layout?(o=e.id==t?e:this.getLayoutCurCtrol(e,t),o):e.id==t?(o=e,o):void 0))))}else if("Collapse"==e.ControlType||"Tabs"==e.ControlType){const l=e.data.items;l&&l.length>0&&l.find((e=>e.list.find((e=>e.layout?(o=e.id==t?e:this.getLayoutCurCtrol(e,t),o):e.id==t?(o=e,o):void 0))))}return o}handleDynamicForm(){state$3.formResult=this.getDynamicForm(state$3.AllFormResult),console.log("formResult",state$3.formResult)}getDynamicForm(e){const t={};return e.forEach((e=>{if(e.layout){if("Grid"==e.ControlType&&e.data.columns)e.data.columns.forEach((e=>{Object.assign(t,this.getDynamicForm(e.list))}));else if("TableLayout"==e.ControlType){const o=e.data.trs;o&&o.length>0&&o.forEach((e=>{e.tds.forEach((e=>{Object.assign(t,this.getDynamicForm(e.list))}))}))}else if("Collapse"==e.ControlType||"Tabs"==e.ControlType){const o=e.data.items;o&&o.forEach((e=>{Object.assign(t,this.getDynamicForm(e.list))}))}}else e.layout||(e.data.itemConfig?"string"==typeof e.data.itemConfig.value?t[e.data.fieldName]=e.data.itemConfig.value:t[e.data.fieldName]=[...e.data.itemConfig.value]:t[e.data.fieldName]=e.data.default)})),t}openPreview(e){state$3.preview=e}setSave(e){state$3.save=e}setFormUpdate(e){state$3.formUpdate=e}getControlItems(){return state$3.curControl&&state$3.curControl.controlItems}getAllFormList(){return state$3.allFormList}setAllFormList(e){state$3.allFormList.push(e)}set(e,t){state$3[e]=t}get(e){return state$3[e]}}var formStore=new Form;const state$2=vue.reactive({form:state$3,copyContent:{},curList:[]});class ShortCut{copy(e){state$2.form.currentIndex>-1&&(state$2.copyContent=e[state$2.form.currentIndex])}paste(e){if(state$2.copyContent){const t=window.VueContext.$Flex.deepClone(state$2.copyContent);t.data&&(t.data.fieldName=t.ControlType+"_"+window.VueContext.$Flex.generateMixed(),t.id=window.VueContext.$Flex.generateMixed(),e.push(t),state$2.form.formUpdate=!0)}}delete(e){e.splice(state$2.form.currentIndex,1),state$2.form.curControl={},state$2.form.formUpdate=!0,state$2.form.currentIndex=-1,state$2.form.currentId=""}onTop(e){if(state$2.form.currentIndex>0){const t=e.splice(state$2.form.currentIndex,1);state$2.form.currentIndex-=1,e.splice(state$2.form.currentIndex,0,...t)}}onBottom(e){if(state$2.form.currentIndex<e.length-1){const t=e.splice(state$2.form.currentIndex,1);state$2.form.currentIndex+=1,e.splice(state$2.form.currentIndex,0,...t)}}clear(){state$2.form.allFormList.length=0,state$2.form.formUpdate=!0}moveTop(){state$2.form.currentIndex>0&&(state$2.form.currentIndex-=1)}moveBottom(e){state$2.form.currentIndex<e.length-1&&(state$2.form.currentIndex+=1)}set(e,t){state$2[e]=t}get(e){return state$2[e]}commit(e){this[e](state$2.curList)}}var store=new ShortCut;function clearCanvas(){store.commit("clear")}function copy(){store.commit("copy")}function paste(){store.commit("paste")}function cut(){store.commit("copy"),store.commit("delete")}function onDelete(){store.commit("delete")}function onTop(){store.commit("onTop")}function onBottom(){store.commit("onBottom")}const result={copy:copy,paste:paste,cut:cut,delete:onDelete,onTop:onTop,onBottom:onBottom,clearCanvas:clearCanvas},_sfc_main$f=vue.defineComponent({props:{menu:{type:Object,default:()=>({left:[],right:[],column:!0})}},setup(e){const{proxy:t}=vue.getCurrentInstance(),{hisContrl:o,uiControl:l,formStore:a}=vue.inject("control")||{},n=vue.computed((()=>null==a?void 0:a.get("saveTimetemp"))),r=vue.computed((()=>{var e;return 0==(null==(e=null==a?void 0:a.get("allFormList"))?void 0:e.length)})),i=vue.computed((()=>null==o?void 0:o.get("index"))),s=vue.computed((()=>(null==o?void 0:o.get("historyList").length)||0)),u=vue.computed((()=>null==l?void 0:l.get("isFullscreen"))),d=vue.computed((()=>null==a?void 0:a.get("allFormList"))),c=vue.computed((()=>null==l?void 0:l.get("pageType"))),v=[langJson.json()],m=vue.ref(),p=vue.ref(),f=vue.ref(),h=vue.ref(),C=vue.ref(),g=vue.ref({value:"id",label:"label",children:"children"}),_=()=>{if(d.value&&d.value.length>0){return vue.toRaw(d.value).map((e=>y(e)))}return[]};function y(e){if(e.layout){let t;return"Grid"==e.ControlType?t=e.data.columns.map((e=>({id:"",label:"GridChild",children:e.list.map((e=>y(e)))}))):"TableLayout"==e.ControlType?t=e.data.trs.map((e=>({id:"",label:"table_Row",children:e.tds.map((e=>({id:"",label:"table_Column",children:e.list.map((e=>y(e)))})))}))):"Collapse"!=e.ControlType&&"Tabs"!=e.ControlType||(t=e.data.items.map((t=>{const o=t.list.map((e=>y(e)));return{id:"",label:e.ControlType+"_child",children:o}}))),{id:e.id,label:e.ControlType+"_"+e.data.fieldName,children:t}}return{id:e.id,label:e.ControlType+"_"+e.data.fieldName}}const w=vue.ref(!1);let x=null;const k=e=>{t.$EventBus.emit("setSave",e)};return vue.watch(h,(e=>{var t;null==(t=f.value)||t.filter(e)})),vue.onMounted(),vue.onUnmounted((()=>{clearInterval(x)})),{extensions:v,code:C,handleFormSave:k,handleFormPre:()=>{null==a||a.set("preview",!0),t.$EventBus.emit("openPreview")},jsonDialog:m,pageType:c,historyIndex:i,historyLen:s,fullscreen:u,clearIsDisable:r,filterText:h,propsData:g,dialog:w,tree:p,treeRef:f,filterNode:(e,t)=>!e||t.label.includes(e),btnIsShow:(t,o)=>0==e.menu[t].length||e.menu[t].includes(o),updatePageType(e){null==l||l.set("pageType",e)},handleClear:()=>{clearCanvas(),null==a||a.setFormCurrentId("")},handleBack:()=>{null==o||o.back()},handleForward:()=>{null==o||o.go()},handleFullScreen:()=>{null==l||l.set("isFullscreen",!(null==l?void 0:l.get("isFullscreen")))},handleTree(){w.value=!0,p.value=_()},handleClose(){w.value=!1},myClick(e){null==a||a.setFormCurrentId(e.id)},ImportJson(){m.value.show(),m.value.init("json导入","icon-biaodan")},handleChange(e){const t=new FileReader;t.readAsText(e.raw),t.onload=e=>{C.value=e.currentTarget.result,(()=>{try{const e=JSON.parse(C.value).map((e=>window.VueContext.$Flex.jsonToForm(e)));C.value=JSON.stringify(e,null,4)}catch(e){C.value=JSON.stringify({}),console.error(e),window.VApp.$message.error("导入失败,数据格式不对")}})()}},closeCodeDialog(){m.value.close()},saveJson(){null==a||a.updateAllFormList(JSON.parse(C.value)),m.value.close()},exportJson(e="demo.json"){let t="data:application/json;charset=utf-8,";try{t+=JSON.stringify(window.VueContext.$Flex.initFormToJson(d.value));const o=encodeURI(t),l=document.createElement("a");l.setAttribute("href",o),l.setAttribute("download",e),l.click(),window.VApp.$message.success("导出成功")}catch(o){window.VApp.$message.error("导出失败,数据格式不对")}}}}}),_hoisted_1$d={class:"nav_list"},_hoisted_2$b={class:"detailBtn"},_hoisted_3$8={class:"pageBtn"},_hoisted_4$7={key:0,class:"el-button-group"},_hoisted_5$4={class:"demo-drawer__content"},_hoisted_6$4={class:"custom_code"};function _sfc_render$f(e,t,o,l,a,n){const r=vue.resolveComponent("el-tooltip"),i=vue.resolveComponent("el-button"),s=vue.resolveComponent("el-input"),u=vue.resolveComponent("el-tree"),d=vue.resolveComponent("el-drawer"),c=vue.resolveComponent("codemirror"),v=vue.resolveComponent("el-upload"),m=vue.resolveComponent("el-footer"),p=vue.resolveComponent("custom-dialog");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$d,[vue.createElementVNode("div",_hoisted_2$b,[e.btnIsShow("left","save")?(vue.openBlock(),vue.createBlock(r,{key:0,class:"box-item",effect:"dark",content:"保存",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-baocun",e.clearIsDisable?"noactive":""]),onClick:t[0]||(t[0]=t=>e.handleFormSave())},null,2)])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","preview")?(vue.openBlock(),vue.createBlock(r,{key:1,class:"box-item",effect:"dark",content:"预览",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-icon_yulan",e.clearIsDisable?"noactive":""]),onClick:t[1]||(t[1]=t=>e.handleFormPre())},null,2)])),_:1})):vue.createCommentVNode("",!0),!e.fullscreen&&e.btnIsShow("left","fullscreen")?(vue.openBlock(),vue.createBlock(r,{key:2,class:"box-item",effect:"dark",content:"全屏",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:"iconfont icon-quanping",onClick:t[2]||(t[2]=t=>e.handleFullScreen())})])),_:1})):vue.createCommentVNode("",!0),e.fullscreen&&e.btnIsShow("left","fullscreen")?(vue.openBlock(),vue.createBlock(r,{key:3,class:"box-item",effect:"dark",content:"非全屏",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:"iconfont icon-suoxiao1",onClick:t[3]||(t[3]=t=>e.handleFullScreen())})])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","delete")?(vue.openBlock(),vue.createBlock(r,{key:4,class:"box-item",effect:"dark",content:"清空",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-shanchu1",e.clearIsDisable?"noactive":""]),onClick:t[4]||(t[4]=t=>e.handleClear())},null,2)])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","tree")?(vue.openBlock(),vue.createBlock(r,{key:5,class:"box-item",effect:"dark",content:"组件结构树",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:"iconfont icon-tree",onClick:t[5]||(t[5]=t=>e.handleTree())})])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","undo")?(vue.openBlock(),vue.createBlock(r,{key:6,class:"box-item",effect:"dark",content:"撤销",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-24gl-undo3",-1==e.historyIndex?"noactive":""]),onClick:t[6]||(t[6]=t=>e.handleBack())},null,2)])),_:1})):vue.createCommentVNode("",!0),e.btnIsShow("left","redo")?(vue.openBlock(),vue.createBlock(r,{key:7,class:"box-item",effect:"dark",content:"重做",placement:"top"},{default:vue.withCtx((()=>[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont icon-24gl-redo3",e.historyIndex==e.historyLen-1?"noactive":""]),onClick:t[7]||(t[7]=t=>e.handleForward())},null,2)])),_:1})):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_3$8,[e.btnIsShow("right","viewport")?(vue.openBlock(),vue.createElementBlock("div",_hoisted_4$7,[vue.createVNode(i,{type:"PC"==e.pageType?"info":"",onClick:t[8]||(t[8]=t=>e.updatePageType("PC"))},{default:vue.withCtx((()=>[vue.createTextVNode("PC")])),_:1},8,["type"]),vue.createVNode(i,{type:"Pad"==e.pageType?"info":"",onClick:t[9]||(t[9]=t=>e.updatePageType("Pad"))},{default:vue.withCtx((()=>[vue.createTextVNode("Pad")])),_:1},8,["type"]),vue.createVNode(i,{type:"H5"==e.pageType?"info":"",onClick:t[10]||(t[10]=t=>e.updatePageType("H5"))},{default:vue.withCtx((()=>[vue.createTextVNode("H5")])),_:1},8,["type"])])):vue.createCommentVNode("",!0),e.btnIsShow("right","json-import")?(vue.openBlock(),vue.createBlock(i,{key:1,type:"text",plain:"",onClick:e.ImportJson},{default:vue.withCtx((()=>[vue.createTextVNode("导入json")])),_:1},8,["onClick"])):vue.createCommentVNode("",!0),e.btnIsShow("right","json-export")?(vue.openBlock(),vue.createBlock(i,{key:2,type:"text",plain:"",onClick:e.exportJson},{default:vue.withCtx((()=>[vue.createTextVNode("导出json")])),_:1},8,["onClick"])):vue.createCommentVNode("",!0)]),vue.createVNode(d,{ref:"drawerRef",modelValue:e.dialog,"onUpdate:modelValue":t[12]||(t[12]=t=>e.dialog=t),title:"表单结构树","before-close":e.handleClose,direction:"ltr","custom-class":"demo-drawer"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_5$4,[vue.createVNode(s,{modelValue:e.filterText,"onUpdate:modelValue":t[11]||(t[11]=t=>e.filterText=t),placeholder:"Filter keyword"},null,8,["modelValue"]),vue.createVNode(u,{data:e.tree,props:e.propsData,ref:"treeRef","default-expand-all":"","filter-node-method":e.filterNode,onNodeClick:e.myClick,style:{"margin-top":"20px"}},null,8,["data","props","filter-node-method","onNodeClick"])])])),_:1},8,["modelValue","before-close"]),vue.createVNode(p,{ref:"jsonDialog",width:800,dialogclass:"codeDialog"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_6$4,[vue.createVNode(c,{modelValue:e.code,"onUpdate:modelValue":t[13]||(t[13]=t=>e.code=t),placeholder:"json导入",mode:"text/json",style:{height:"400px"},extensions:e.extensions},null,8,["modelValue","extensions"]),vue.createVNode(v,{accept:"application/json",class:"upload-demo",action:"https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15","on-change":e.handleChange},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary"},{default:vue.withCtx((()=>[vue.createTextVNode("导入json文件")])),_:1})])),_:1},8,["on-change"])]),vue.createVNode(m,{class:"my-Footer",style:{"text-align":"center"}},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary",onClick:e.saveJson},{default:vue.withCtx((()=>[vue.createTextVNode("确定")])),_:1},8,["onClick"]),vue.createVNode(i,{onClick:e.closeCodeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1},512)])}var NavList=_export_sfc(_sfc_main$f,[["render",_sfc_render$f]]);const _sfc_main$e=vue.defineComponent({}),_hoisted_1$c={class:"header_nav"},_hoisted_2$a=vue.createElementVNode("div",{class:"logo"},[vue.createElementVNode("div",null,[vue.createElementVNode("span",null,"starfish"),vue.createTextVNode(" 表单设计器")])],-1),_hoisted_3$7=vue.createElementVNode("div",{class:"starfish-link"},[vue.createElementVNode("a",{href:"https://github.com/haixin-fang/starfish-vue3-lowcode",target:"_black"},"GitHub")],-1),_hoisted_4$6=[_hoisted_2$a,_hoisted_3$7];function _sfc_render$e(e,t,o,l,a,n){return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$c,_hoisted_4$6)}var Nav=_export_sfc(_sfc_main$e,[["render",_sfc_render$e]]);const _sfc_main$d=vue.defineComponent({props:{basicFields:{type:Array,default:()=>[]},layoutFields:{type:Array,default:()=>[]}},data(){const e=this.$formcomponents,t=[];for(const o in e){const l=e[o];if(l.isHide)continue;const a={};a.ControlType=l.ControlType,a.icon=l.icon,a.nameCn=l.nameCn,a.layout=!!l.layout,l.rule&&(a.rule=l.rule),t.push(a)}return{formcomponents:t,filterContent:""}},computed:{newcomponentlist(){return this.formcomponents.filter((e=>{if(e.nameCn&&-1!=e.nameCn.indexOf(this.filterContent)&&!e.layout){if(0==this.basicFields.length)return!0;if(this.basicFields.length>0){let t=!1;return this.basicFields.find((o=>{if(o.toLocaleLowerCase()==e.ControlType.toLocaleLowerCase())return t=!0,o})),t}}}))},layoutList(){return this.formcomponents.filter((e=>{if(e.nameCn&&-1!=e.nameCn.indexOf(this.filterContent)&&e.layout){if(0==this.layoutFields.length)return!0;if(this.layoutFields.length>0){let t=!1;return this.layoutFields.find((o=>{if(o.toLocaleLowerCase()==e.ControlType.toLocaleLowerCase())return t=!0,o})),t}}}))}},methods:{clickAddControl(e){formStore.setAllFormList(this.$Flex.jsonToForm(e))}}}),_hoisted_1$b=["alt","onClick"],_hoisted_2$9={class:"form-item"},_hoisted_3$6={class:"item-text"},_hoisted_4$5=["alt","onClick"],_hoisted_5$3={class:"form-item"},_hoisted_6$3={class:"item-text"};function _sfc_render$d(e,t,o,l,a,n){const r=vue.resolveComponent("el-input"),i=vue.resolveComponent("el-button"),s=vue.resolveComponent("draggable"),u=vue.resolveComponent("el-scrollbar");return vue.openBlock(),vue.createBlock(u,{class:"editor_pages_left"},{default:vue.withCtx((()=>[vue.createVNode(r,{placeholder:"请输入关键词进行过滤",size:"",modelValue:e.filterContent,"onUpdate:modelValue":t[0]||(t[0]=t=>e.filterContent=t)},null,8,["modelValue"]),e.newcomponentlist.length>0?(vue.openBlock(),vue.createBlock(i,{key:0,text:""},{default:vue.withCtx((()=>[vue.createTextVNode("基础控件")])),_:1})):vue.createCommentVNode("",!0),vue.createVNode(s,{class:"dragArea list-group",list:e.newcomponentlist,group:{name:"starfish-form",pull:"clone",put:!1},sort:!1,"item-key":"id"},{item:vue.withCtx((({element:t})=>[vue.createElementVNode("div",{class:"list-group-item",alt:t.nameCn,onClick:vue.withModifiers((o=>e.clickAddControl(t)),["stop"])},[vue.createElementVNode("div",_hoisted_2$9,[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont",t.icon])},null,2)]),vue.createElementVNode("div",_hoisted_3$6,vue.toDisplayString(t.nameCn),1)],8,_hoisted_1$b)])),_:1},8,["list"]),e.layoutList.length>0?(vue.openBlock(),vue.createBlock(i,{key:1,text:""},{default:vue.withCtx((()=>[vue.createTextVNode("布局控件")])),_:1})):vue.createCommentVNode("",!0),vue.createVNode(s,{class:"dragArea list-group",list:e.layoutList,group:{name:"starfish-form",pull:"clone",put:!1},sort:!1,"item-key":"id"},{item:vue.withCtx((({element:t})=>[vue.createElementVNode("div",{class:"list-group-item",alt:t.nameCn,onClick:vue.withModifiers((o=>e.clickAddControl(t)),["stop"])},[vue.createElementVNode("div",_hoisted_5$3,[vue.createElementVNode("span",{class:vue.normalizeClass(["iconfont",t.icon])},null,2)]),vue.createElementVNode("div",_hoisted_6$3,vue.toDisplayString(t.nameCn),1)],8,_hoisted_4$5)])),_:1},8,["list"])])),_:1})}var ComponentList=_export_sfc(_sfc_main$d,[["render",_sfc_render$d]]);const _sfc_main$c=vue.defineComponent({setup(){const{proxy:e}=vue.getCurrentInstance(),{uiControl:t,store:o,formStore:l}=vue.inject("control")||{},a=e.$formcomponents,n=vue.ref(),r=vue.ref(1),i=vue.ref(),s=vue.ref(!1),u=vue.ref(),d=vue.computed((()=>null==l?void 0:l.get("globalDatas"))),c=vue.computed((()=>null==t?void 0:t.get("isFullscreen"))),v=vue.computed((()=>null==t?void 0:t.get("pageType"))),m=vue.computed((()=>{var e;return null==(e=null==l?void 0:l.get("globalFormList"))?void 0:e.filter((e=>{if(e.dynamic)return e}))})),p=vue.computed({get:()=>null==l?void 0:l.get("allFormList"),set(t){t=t.map((t=>{if(console.log(a[t.ControlType]),!t.data&&!t.controlItems){t=e.$Flex.deepClone(t);const o=a[t.ControlType];t.formConfig=o.formConfig,t.data=t.formConfig.data(),t.data.fieldName||(t.data.fieldName=t.ControlType+"_"+e.$Flex.generateMixed()),t.id=e.$Flex.generateMixed();let l=t.formConfig.morenConfig().concat(m.value);o.actionType&&o.actionType.length>0?(console.log(l),l.find((e=>{"Action"==e.ControlType&&(e.data.formConfig={value:{},items:[]},o.actionType.forEach(((t,o)=>{e.data.formConfig.items.push({label:t,value:t,id:o+1})})))}))):l=l.filter((e=>{if("Action"!==e.ControlType)return e})),t.rules=e.$Flex.controlFormRule(l,t),t.controlItems=l}return t})),console.log("value",t),null==l||l.updateAllFormList(t)}}),f=vue.computed((()=>null==l?void 0:l.get("currentId")));return{scale:vue.computed((()=>null==t?void 0:t.get("scale"))),globalDatas:d,canvasBox:n,editForm:u,handleCanvasSize:t=>{e.$Flex.clickCountLimit()&&("add"===t&&r.value<1.5?r.value=Number((r.value+.1).toFixed(2)):"cut"===t&&r.value>.5?r.value=Number((r.value-.1).toFixed(2)):"restore"===t&&(r.value=1),n.value.style.transform=`scale(${r.value})`)},pageType:v,canvasSize:r,dragDom:i,chooseClick:e=>{var t;null==l||l.setFormCurrentId(null==(t=p.value[e.oldIndex])?void 0:t.id),null==l||l.setFormCurrentIndex(e.oldIndex),null==o||o.set("curList",p.value)},addControl:e=>{var t;null==l||l.setFormCurrentId(null==(t=p.value[e.newIndex])?void 0:t.id),null==l||l.setFormCurrentIndex(e.newIndex),null==o||o.set("curList",p.value)},changePos:e=>{var t;null==l||l.setFormCurrentId(null==(t=p.value[e.newIndex])?void 0:t.id),null==l||l.setFormCurrentIndex(e.newIndex),null==o||o.set("curList",p.value)},allmainList:p,currentId:f,handleNoDraggable:e=>{s.value&&(s.value=!1),e.preventDefault();const t=e.path;for(let a=0;a<t.length;a++)if(t[a].getAttribute&&t[a].getAttribute("class")&&t[a].getAttribute("class").indexOf("shape")>=0)return;const o=e.offsetX,l=e.offsetY;vue.nextTick((()=>{u.value.style.left=o+"px",u.value.style.top=l+"px",s.value=!0}))},handlePaste:()=>{s.value=!1,paste()},pasteShow:s,fullScreen:c,onEditorCenter:e=>{"editor_pages_center"==e.path[0].className&&(null==l||l.setFormCurrentId(""),s.value=!1)}}}}),_hoisted_1$a={class:"editForm",ref:"editForm"},_hoisted_2$8={key:0,class:"form-empty"};function _sfc_render$c(e,t,o,l,a,n){var r;const i=vue.resolveComponent("Shape"),s=vue.resolveComponent("draggable");return vue.openBlock(),vue.createElementBlock("div",{class:"editor_pages_center",onClick:t[3]||(t[3]=(...t)=>e.onEditorCenter&&e.onEditorCenter(...t)),tabindex:"1"},[vue.createElementVNode("div",{class:vue.normalizeClass(["canvasBox",[e.fullScreen?"fullScreenBox":"",e.pageType+"_layout",null==(r=e.globalDatas.csslist)?void 0:r.join(" ")]]),ref:"canvasBox",style:vue.normalizeStyle(`transform: translateX(-50%) scale(${e.scale})`)},[vue.createElementVNode("div",{class:"draggable_container",ref:"dragDom",onContextmenu:t[2]||(t[2]=(...t)=>e.handleNoDraggable&&e.handleNoDraggable(...t))},[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$a,[vue.createElementVNode("span",{onClick:t[0]||(t[0]=(...t)=>e.handlePaste&&e.handlePaste(...t))},"粘贴")],512),[[vue.vShow,e.pasteShow]]),vue.createVNode(s,{class:"dragArea",animation:"300",ghostClass:"itemGhost",modelValue:e.allmainList,"onUpdate:modelValue":t[1]||(t[1]=t=>e.allmainList=t),onAdd:e.addControl,group:"starfish-form",onChoose:e.chooseClick,"item-key":"id",onUpdate:e.changePos},{item:vue.withCtx((({element:t,index:o})=>[vue.createVNode(i,{active:e.currentId==t.id,currentIndex:o,currentId:t.id,item:t,len:e.allmainList.length},{default:vue.withCtx((()=>[(vue.openBlock(),vue.createBlock(vue.resolveDynamicComponent(t.ControlType),vue.mergeProps({drag:!0,item:t,data:{}},e.globalDatas),null,16,["item"]))])),_:2},1032,["active","currentIndex","currentId","item","len"])])),_:1},8,["modelValue","onAdd","onChoose","onUpdate"]),0==e.allmainList.length?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$8,"从左侧拖拽来添加字段")):vue.createCommentVNode("",!0)],544)],6)])}var Workspace=_export_sfc(_sfc_main$c,[["render",_sfc_render$c]]);const _sfc_main$b=vue.defineComponent({setup:()=>({keyList:vue.reactive([{key:"ctrl + C",value:"复制组件"},{key:"ctrl + V",value:"粘贴组件"},{key:"ctrl + X",value:"裁剪组件"},{key:"delete",value:"删除组件"},{key:"ctrl + E",value:"清空画布"},{key:"ctrl + ↑",value:"组件上移"},{key:"ctrl + ↓",value:"组件下移"},{key:"↑",value:"选中上移"},{key:"↓",value:"选中下移"}])})}),_hoisted_1$9={class:"shortCutKey"},_hoisted_2$7=vue.createElementVNode("div",{class:"title"},"快捷键",-1),_hoisted_3$5={class:"keyContent"},_hoisted_4$4=vue.createElementVNode("div",{class:"san"},null,-1);function _sfc_render$b(e,t,o,l,a,n){return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$9,[_hoisted_2$7,vue.createElementVNode("div",_hoisted_3$5,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.keyList,((e,t)=>(vue.openBlock(),vue.createElementBlock("div",{key:t},[vue.createElementVNode("span",null,vue.toDisplayString(e.key),1),vue.createElementVNode("span",null,vue.toDisplayString(e.value),1)])))),128))]),_hoisted_4$4])}var shortcutKey=_export_sfc(_sfc_main$b,[["render",_sfc_render$b]]);const _sfc_main$a=vue.defineComponent({components:{shortcutKey:shortcutKey},setup(){const{uiControl:e}=vue.inject("control")||{},t=vue.ref(),o=vue.ref(!1);return{size:vue.computed((()=>(null==e?void 0:e.get("scale"))||1)),handleCanvasSize:t=>{t?null==e||e.set("scale",((null==e?void 0:e.get("scale"))||1)+t):null==e||e.set("scale",1)},controllerSize:t,shortCutShow:o,handleShortCutHidden:()=>{o.value=!1},handleShortcutShow:()=>{o.value=!0}}}}),_hoisted_1$8={class:"controller_edit_size",ref:"controllerSize"},_hoisted_2$6=vue.createElementVNode("i",{class:"iconfont icon-jiahao"},null,-1),_hoisted_3$4=[_hoisted_2$6],_hoisted_4$3=vue.createElementVNode("i",{class:"iconfont icon-jianhao"},null,-1),_hoisted_5$2=[_hoisted_4$3],_hoisted_6$2=vue.createElementVNode("i",{class:"iconfont icon-jianpan_o"},null,-1),_hoisted_7$1=vue.createElementVNode("i",{class:"iconfont icon-huanyuan"},null,-1),_hoisted_8=[_hoisted_7$1];function _sfc_render$a(e,t,o,l,a,n){const r=vue.resolveComponent("shortcutKey");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$8,[vue.createElementVNode("span",{onClick:t[0]||(t[0]=t=>e.handleCanvasSize(.1))},_hoisted_3$4),vue.createElementVNode("span",null,vue.toDisplayString(parseInt(String(100*e.size)))+"%",1),vue.createElementVNode("span",{onClick:t[1]||(t[1]=t=>e.handleCanvasSize(-.1))},_hoisted_5$2),vue.createElementVNode("span",{onMouseover:t[2]||(t[2]=(...t)=>e.handleShortcutShow&&e.handleShortcutShow(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.handleShortCutHidden&&e.handleShortCutHidden(...t))},[_hoisted_6$2,vue.createVNode(vue.Transition,{name:"slide-fade"},{default:vue.withCtx((()=>[vue.withDirectives(vue.createVNode(r,null,null,512),[[vue.vShow,e.shortCutShow]])])),_:1})],32),vue.createElementVNode("span",{onClick:t[4]||(t[4]=t=>e.handleCanvasSize()),title:"复位"},_hoisted_8)],512)}var ControllEditSize=_export_sfc(_sfc_main$a,[["render",_sfc_render$a]]);const globalFormList=[{ControlType:"RadioGroup",nameCn:"选择器",data:{fieldName:"labelalign",label:"标签对齐方式",showRule:"{}",rule:"[]",itemConfig:{value:"right",items:[{label:"Top",value:"top",select:!0,id:1},{label:"Left",value:"left",id:2},{label:"Right",value:"right",select:!1,id:4}],id:4}}},{ControlType:"RadioGroup",nameCn:"选择器",data:{fieldName:"size",label:"组件尺寸",showRule:"{}",rule:"[]",itemConfig:{value:"small",items:[{label:"large",value:"large",select:!1,id:1},{label:"default",value:"default",select:!1,id:2},{label:"small",value:"small",select:!0,id:3}],id:3}}},{ControlType:"InputNumber",data:{fieldName:"labelWidth",label:"标签宽度",tip:"",showRule:"{}",required:!1,rule:"[]",default:100}},{ControlType:"Text",nameCn:"文本框",data:{fieldName:"suffix",label:"表单项后缀",tip:"",placeholder:"",showRule:"{}",required:!1,rule:"[]",default:":"}},{ControlType:"FormStyle",nameCn:"文本框",data:{fieldName:"styles",label:"表单样式表",tip:"",placeholder:"",showRule:"{}",required:!1,rule:"[]",default:""}},{ControlType:"Selecteds",nameCn:"文本框",dynamic:!0,data:{fieldName:"csslist",label:"自定义Class",tip:"",placeholder:"",showRule:"{}",required:!1,rule:"[]",itemConfig:{value:[],items:[]}}},{ControlType:"FormAction",nameCn:"文本框",data:{fieldName:"action",label:"动作面板",tip:"",placeholder:"",showRule:"{}",required:!1,rule:"[]",default:[]}}],_sfc_main$9=vue.defineComponent({props:{column:{type:Boolean,default:!0}},components:{ControllEditSize:ControllEditSize},setup(e,{emit:t}){const{proxy:o}=vue.getCurrentInstance(),{uiControl:l,hisContrl:a,formStore:n}=vue.inject("control")||{},r=vue.ref(!0),i=vue.ref(!0),s=vue.ref(),u=vue.ref(),d=vue.ref("form"),c=vue.ref();let v=null;const m=vue.ref(!0),p=vue.computed((()=>null==n?void 0:n.getControlItems())),f=vue.computed((()=>null==n?void 0:n.get("curControl"))),h=vue.computed((()=>o.$Flex.deepClone(null==n?void 0:n.get("curControl")))),C=vue.computed((()=>null==a?void 0:a.get("historyFlag"))),g=vue.computed((()=>null==n?void 0:n.get("save"))),_=vue.computed((()=>null==n?void 0:n.get("currentIndex"))),y=null==n?void 0:n.getDynamicForm(globalFormList);null==n||n.set("globalDatas",y),null==n||n.set("globalFormList",globalFormList);const w=vue.computed((()=>null==n?void 0:n.get("globalFormList"))),x=vue.computed((()=>null==n?void 0:n.get("globalDatas"))),k=vue.computed((()=>null==n?void 0:n.get("preview"))),b=vue.computed((()=>null==n?void 0:n.getAllFormList())),V=function(e){return new Promise((t=>{s.value.validate((o=>{o?t(!0):(window.VApp.$notify.error({title:e}),t(!1))}))}))};function N(e){if("TableLayout"==e.ControlType){const t=e.data.trs||[];for(let e=0;e<t.length;e++){const o=t[e].tds;for(let e=0;e<o.length;e++){const t=$(o[e].list);if(!t)return t}}}else if("Grid"==e.ControlType){const t=e.data.columns||[];for(let e=0;e<t.length;e++){const o=t[e].list,l=$(o);if(!l)return l}}return!0}const $=async e=>{var t;if(!e)return;const o=e.length;for(let l=0;l<o;++l){let o=!0;const a=e[l];if(null==(t=a.controlItems)||t.forEach((e=>{e.data.required&&(o=!!a.data[e.data.fieldName])})),o&&a.layout&&(o=N(a)),!o){null==n||n.setFormCurrentId(a.id),d.value="form",await vue.nextTick();if(!(await V("请检查动态表单输入格式问题")))return!1}}return!0},F=vue.computed((()=>null==n?void 0:n.get("formUpdate"))),T=vue.computed((()=>null==n?void 0:n.get("allFormList"))),S=vue.computed((()=>o.$Flex.deepClone(null==n?void 0:n.get("allFormList")))),E=async(e=!1,o)=>{const l=null==n?void 0:n.get("currentIndex");if(k.value||g.value||F.value){const a=await $(b.value);if(a&&(null==n||n.setFormCurrentIndex(l)),null==n||n.setSave(a),null==n||n.setFormUpdate(!1),a){const e=B(b.value);null==n||n.set("AllFormResult",e),null==n||n.handleDynamicForm(),t("save")}e?a&&window.VApp.$notify.success({title:o?"已自动保存":"保存成功"}):(null==n||n.set("previewShow",a),null==n||n.set("preview",!1))}},B=e=>window.VueContext.$Flex.initFormToJson(vue.toRaw(e));function L(){const e=c.value;if(v)null==v||v.set(B(T.value));else{const t={modes:["text","code","view"],mode:"code",search:!1};v=new window.JSONEditor(e,t),null==v||v.set(B(T.value))}}return o.$EventBus.on("openPreview",(async()=>{E()})),o.$EventBus.on("setSave",(async e=>{E(!0,e)})),vue.watch((()=>{var e;return[S.value,null==(e=h.value)?void 0:e.data]}),(([,e],[,t])=>{"json"==d.value&&L(),C.value?null==a||a.set("historyFlag",!1):function(e,t){if(e!==t)return!1;let o=!0;for(const l in e)e[l]!==t[l]&&(o=!1);return o}(e,t)||null==n||n.setHistory()}),{deep:!0}),vue.watch((()=>{var e;return null==(e=f.value)?void 0:e.data}),(async()=>{F.value||null==n||n.setFormUpdate(!0)}),{deep:!0}),{globalFormLists:w,globalDatas:x,jsonCenter:c,handleClick:function(e){if("json"==e.props.name)L();else if("form"==e.props.name&&v)try{const e=o.$Flex.tryParseJson(v.getText());let t=[];t=function(e){return vue.toRaw(e).map((e=>o.$Flex.jsonToForm(e)))}(e),null==n||n.updateAllFormList(t)}catch(t){console.error(t)}},activeName:d,handleMouseDown:async()=>{null==n||n.setFormCurrentId(""),null==n||n.setFormCurrentIndex(-1)},moduleIsHidden:r,handleEditBtn:()=>{r.value=!r.value,r.value?null==l||l.set("columnWidth",{right:void 0}):null==l||l.set("columnWidth",{right:0})},isTransition:m,editRight:u,controlItems:p,curControl:f,ruleForm:s,show:i,currentIndex:_}}}),_hoisted_1$7={class:"editor_pages_right editor_pages_right_visible",ref:"editRight"},_hoisted_2$5={class:"json"},_hoisted_3$3={ref:"jsonCenter"};function _sfc_render$9(e,t,o,l,a,n){const r=vue.resolveComponent("ControllEditSize"),i=vue.resolveComponent("el-form-item"),s=vue.resolveComponent("el-form"),u=vue.resolveComponent("el-empty"),d=vue.resolveComponent("el-scrollbar"),c=vue.resolveComponent("el-tab-pane"),v=vue.resolveComponent("el-tabs");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1$7,[e.column?(vue.openBlock(),vue.createElementBlock("div",{key:0,class:"editor_container",onMousedown:t[0]||(t[0]=(...t)=>e.handleMouseDown&&e.handleMouseDown(...t))},[vue.createVNode(r)],32)):vue.createCommentVNode("",!0),vue.createVNode(v,{modelValue:e.activeName,"onUpdate:modelValue":t[1]||(t[1]=t=>e.activeName=t),class:"demo-tabs",onTabClick:e.handleClick,style:{height:"100%"}},{default:vue.withCtx((()=>[vue.createVNode(c,{label:"组件配置",name:"form"},{default:vue.withCtx((()=>[vue.createVNode(d,{class:"dynamic"},{default:vue.withCtx((()=>[vue.createVNode(s,{ref:"ruleForm",model:e.curControl&&(e.curControl.data||{}),rules:e.curControl&&e.curControl.rules,"label-width":"120px","status-icon":!0},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.controlItems,(t=>(vue.openBlock(),vue.createBlock(i,{key:t.id,control:t.ControlType,prop:t.data.fieldName},{default:vue.withCtx((()=>[e.show&&"JsonEditor"===t.ControlType||"JsonEditor"!==t.ControlType?(vue.openBlock(),vue.createBlock(vue.resolveDynamicComponent(t.ControlType),{key:0,drag:!1,data:e.curControl.data,item:t,size:e.globalDatas.size,labelWidth:e.globalDatas.labelWidth,labelalign:e.globalDatas.labelalign},null,8,["data","item","size","labelWidth","labelalign"])):vue.createCommentVNode("",!0)])),_:2},1032,["control","prop"])))),128))])),_:1},8,["model","rules"]),e.curControl&&e.curControl.data?vue.createCommentVNode("",!0):(vue.openBlock(),vue.createBlock(u,{key:0,"image-size":200,description:"没有选中表单控件"}))])),_:1})])),_:1}),vue.createVNode(c,{label:"JSON配置",name:"json"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_2$5,[vue.createElementVNode("div",_hoisted_3$3,null,512)])])),_:1}),vue.createVNode(c,{label:"表单配置",name:"global"},{default:vue.withCtx((()=>[vue.createVNode(d,{class:"form_tab3"},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.globalFormLists,((t,o)=>(vue.openBlock(),vue.createElementBlock("div",{key:o,class:"form_tab3_list"},[(vue.openBlock(),vue.createBlock(vue.resolveDynamicComponent(t.ControlType),{item:t,data:e.globalDatas,controlItems:e.globalFormLists},null,8,["item","data","controlItems"]))])))),128))])),_:1})])),_:1})])),_:1},8,["modelValue","onTabClick"]),vue.createElementVNode("div",{class:"editor_right_accept",onClick:t[2]||(t[2]=(...t)=>e.handleEditBtn&&e.handleEditBtn(...t))},[vue.createElementVNode("i",{class:vue.normalizeClass(["iconfont icon-jiantou_xiangyouliangci",e.moduleIsHidden?"icon-jiantou_xiangyouliangci":"icon-jiantou_xiangzuoliangci"])},null,2)])],512)}var PropsPanel=_export_sfc(_sfc_main$9,[["render",_sfc_render$9]]);const DEFAUTL_LEFT_COLUMN_WIDTH=300,DEFAUTL_RIGHT_COLUMN_WIDTH=400,defaultColumnWidth={left:DEFAUTL_LEFT_COLUMN_WIDTH,center:window.document.body.clientWidth-DEFAUTL_LEFT_COLUMN_WIDTH-DEFAUTL_RIGHT_COLUMN_WIDTH,right:DEFAUTL_RIGHT_COLUMN_WIDTH},DIALOG_WIDTH=500,scale=1,state$1=vue.reactive({columnWidth:defaultColumnWidth,dialogWidth:DIALOG_WIDTH,scale:scale,isFullscreen:!0,pageType:"PC"});class Ui{get(e){return state$1[e]}set(e,t){"columnWidth"===e?this.setColumnWidth(t):"scale"===e?this.setScale(Number(t)):"isFullscreen"==e?(state$1[e]=t,state$1.pageType=""):"pageType"==e?(state$1[e]=t,state$1.isFullscreen=!0):state$1[e]=t}setScale(e){const t=[.2,1.5];e>=t[0]&&e<=t[1]&&(state$1.scale=e)}setColumnWidth({left:e,center:t,right:o}){const l={...vue.toRaw(this.get("columnWidth"))};if(l.left=e&&e>=0?e:defaultColumnWidth.left,l.right=null!=o&&o>=0?o:defaultColumnWidth.right,t&&"auto"!=t)l.center=t;else{const e=window.document.body.clientWidth;l.center=e-((null==l?void 0:l.left)||0)-((null==l?void 0:l.right)||0),l.center<=0&&(l.left=defaultColumnWidth.left,l.center=defaultColumnWidth.center,l.right=defaultColumnWidth.right)}state$1.columnWidth=l}}var uiControl=new Ui;const _sfc_main$8=vue.defineComponent({components:{Dynamicform:StarfishForm.Dynamicform},setup(){const e=vue.computed((()=>formStore.get("previewShow"))),t=vue.computed((()=>formStore.get("AllFormResult"))),o=vue.computed((()=>formStore.get("formResult"))),l=vue.computed((()=>null==formStore?void 0:formStore.get("globalDatas"))),a=vue.computed((()=>null==uiControl?void 0:uiControl.get("pageType"))),n=[langJson.json()],r=vue.ref(),i=vue.ref();let s;const u=vue.ref(),d=vue.ref();vue.watch(e,(async()=>{e.value?(d.value.init("表单预览","icon-biaodan"),d.value.isFullScreen=!0):d.value.close()}));const c=vue.ref();return{extensions:n,code:i,pageType:a,codeDialog:r,globalDatas:l,dialogWidth:vue.computed((()=>null==uiControl?void 0:uiControl.get("dialogWidth"))),previewShow:e,previewDialog:d,handlePreviewShow:()=>{formStore.set("previewShow",!1)},JsonViewerDialog:c,allFormList:t,formResult:o,dynamicform:u,resetForm(){u.value.reset()},closeDialog(){d.value.close()},getData(){var e;null==(e=u.value)||e.getValidate().then((e=>{e?(console.log("formResult",o.value),i.value=JSON.stringify((null==o?void 0:o.value)||{},null,4),r.value.show(),r.value.init("表单数据","icon-biaodan")):window.VApp.$message.error("校验失败")}))},closeCodeDialog(){r.value.close()},copyJson(){s||(s=new Clipboard__default.default(".copy_btn")),s.on("success",(()=>{window.VApp.$message.success("复制成功")})),s.on("error",(()=>{window.VApp.$message.error("复制失败")})),setTimeout((()=>{s.destroy()}),2e4)},saveFile(e="demo.json"){let t="data:application/json;charset=utf-8,";try{t+=i.value;const o=encodeURI(t),l=document.createElement("a");l.setAttribute("href",o),l.setAttribute("download",e),l.click(),window.VApp.$message.success("文件保存成功")}catch(o){window.VApp.$message.error("文件保存失败")}}}}}),_hoisted_1$6={class:"custom_code"};function _sfc_render$8(e,t,o,l,a,n){const r=vue.resolveComponent("dynamicform"),i=vue.resolveComponent("el-button"),s=vue.resolveComponent("el-footer"),u=vue.resolveComponent("codemirror"),d=vue.resolveComponent("custom-dialog"),c=vue.resolveComponent("CustomDialog");return vue.openBlock(),vue.createBlock(c,{ref:"previewDialog",showDialog:e.previewShow,onClose:e.handlePreviewShow,dialogclass:"previewDialog"},{default:vue.withCtx((()=>[vue.createElementVNode("div",{class:vue.normalizeClass(["page_box",e.pageType+"_layout"])},[vue.createVNode(r,{modelValue:e.formResult,"onUpdate:modelValue":t[0]||(t[0]=t=>e.formResult=t),allFormList:e.allFormList,globalConfig:e.globalDatas,ref:"dynamicform"},null,8,["modelValue","allFormList","globalConfig"])],2),vue.createVNode(s,{class:"my-Footer",style:{"text-align":"center"}},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary",onClick:e.resetForm},{default:vue.withCtx((()=>[vue.createTextVNode("重置表单")])),_:1},8,["onClick"]),vue.createVNode(i,{type:"primary",onClick:e.getData},{default:vue.withCtx((()=>[vue.createTextVNode("获取数据")])),_:1},8,["onClick"]),vue.createVNode(i,{onClick:e.closeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1}),vue.createVNode(d,{ref:"codeDialog",dialogclass:"codeDialog",width:"1000"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_1$6,[vue.createVNode(u,{modelValue:e.code,"onUpdate:modelValue":t[1]||(t[1]=t=>e.code=t),placeholder:"Code goes here...",mode:"text/json",style:{height:"400px"},extensions:e.extensions,autofocus:!0,"indent-with-tab":!0,"tab-size":2},null,8,["modelValue","extensions"])]),vue.createVNode(s,{class:"my-Footer",style:{"text-align":"center"}},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary",onClick:e.copyJson,class:"copy_btn","data-clipboard-action":"copy","data-clipboard-text":e.code},{default:vue.withCtx((()=>[vue.createTextVNode("复制json")])),_:1},8,["onClick","data-clipboard-text"]),vue.createVNode(i,{type:"primary",onClick:e.saveFile},{default:vue.withCtx((()=>[vue.createTextVNode("保存为文件")])),_:1},8,["onClick"]),vue.createVNode(i,{onClick:e.closeCodeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1},512)])),_:1},8,["showDialog","onClose"])}var FormPreview=_export_sfc(_sfc_main$8,[["render",_sfc_render$8]]);const state=vue.reactive({action:[{funcName:"mounted",type:"mounted",methods:"mounted",funcStr:"",disabled:!0},{funcName:"updated",type:"updated",methods:"updated",funcStr:"",disabled:!0}],currentAction:null});class Action{set(e,t){state[e]=t}get(e){return state[e]}}var actionContrl=new Action;function listenGlobalKeyDown(e,t){const o=new KeyController__default.default(t),l=/mac os x/.test(navigator.userAgent.toLowerCase())?"meta":"ctrl";return o.keyup("delete",(t=>{t.inputEvent.preventDefault(),e.delete()})).keyup("backspace",(t=>{t.inputEvent.preventDefault(),e.delete()})).keydown([l,"c"],(t=>{t.inputEvent.preventDefault(),e.copy()})).keydown([l,"e"],(t=>{t.inputEvent.preventDefault(),e.clearCanvas()})).keydown([l,"v"],(t=>{t.inputEvent.preventDefault(),e.paste()})).keydown([l,"z"],(e=>{e.inputEvent.preventDefault(),null==hisContrl||hisContrl.back()})).keydown([l,"x"],(t=>{t.inputEvent.preventDefault(),e.cut()})).keydown([l,"up"],(t=>{t.inputEvent.preventDefault(),e.onTop()})).keydown([l,"down"],(t=>{t.inputEvent.preventDefault(),e.onBottom()})),o}var starfishEditor_vue_vue_type_style_index_0_lang="";const _sfc_main$7=vue.defineComponent({name:"StarfishEditor",components:{Framework:Framework,NavList:NavList,ComponentList:ComponentList,Workspace:Workspace,PropsPanel:PropsPanel,FormPreview:FormPreview,Nav:Nav},props:{basicFields:{type:Array,default:()=>[]},layoutFields:{type:Array,default:()=>[]},shortcutDisabled:{type:Boolean,default:!1},headerShow:{type:Boolean,default:!0},menu:{type:Object,default:()=>({left:[],right:[],column:!0})}},setup(e,{emit:t}){const o=vue.ref();let l;const a=()=>{null==l||l.focus()},n=()=>{null==l||l.blur()},r={uiControl:uiControl,hisContrl:hisContrl,formStore:formStore,actionContrl:actionContrl,store:store};let i;return vue.onMounted((()=>{var t;l=null==(t=o.value)?void 0:t.$el,e.shortcutDisabled||(l.addEventListener("mouseenter",a),l.addEventListener("mouseleave",n),i=listenGlobalKeyDown(result,l))})),vue.onUnmounted((()=>{e.shortcutDisabled||(l.removeEventListener("mouseenter",a),l.removeEventListener("mouseleave",n),i.destroy())})),vue.provide("control",r),{workspace:o,onSave(){t("save",null==formStore?void 0:formStore.get("AllFormResult"))},getJson(){window.VApp.$EventBus.emit("setSave")},setJson(e){const t=e.map((e=>window.VApp.$Flex.jsonToForm(e)));formStore.updateAllFormList(t)}}}});function _sfc_render$7(e,t,o,l,a,n){const r=vue.resolveComponent("Nav"),i=vue.resolveComponent("nav-list"),s=vue.resolveComponent("component-list"),u=vue.resolveComponent("workspace"),d=vue.resolveComponent("props-panel"),c=vue.resolveComponent("form-preview"),v=vue.resolveComponent("framework");return vue.openBlock(),vue.createBlock(v,{headerShow:e.headerShow},vue.createSlots({navlist:vue.withCtx((()=>[vue.createVNode(i,{menu:e.menu},null,8,["menu"])])),left:vue.withCtx((()=>[vue.createVNode(s,{"basic-fields":e.basicFields,"layout-fields":e.layoutFields},null,8,["basic-fields","layout-fields"])])),workspace:vue.withCtx((()=>[vue.createVNode(u,{ref:"workspace"},null,512)])),propsPanel:vue.withCtx((()=>[vue.createVNode(d,{onSave:e.onSave,column:e.menu.column},null,8,["onSave","column"])])),other:vue.withCtx((()=>[vue.createVNode(c)])),_:2},[e.headerShow?{name:"nav",fn:vue.withCtx((()=>[vue.createVNode(r)])),key:"0"}:void 0]),1032,["headerShow"])}var Editor=_export_sfc(_sfc_main$7,[["render",_sfc_render$7]]),index="";const _sfc_main$6=vue.defineComponent({props:{dialogclass:String,showDialog:Boolean,width:Number},emits:["open","close"],setup(e,{emit:t}){const o=vue.ref(!1),l=vue.ref(""),a=vue.ref(""),n=vue.ref(!1),r=vue.computed((()=>"number"==typeof e.width?e.width+"px":e));return{isshow:o,title:l,icon:a,isFullScreen:n,newWidth:r,init(e,t){l.value=e,a.value=t},show(){o.value=!0,t("open")},close(){o.value=!1,t("close")}}}}),_hoisted_1$5={key:0,class:"MyDialogFrame"},_hoisted_2$4={class:"pageContent",style:{height:"100%",padding:"0",overflow:"hidden","background-color":"transparent"}},_hoisted_3$2={class:"my-icon"},_hoisted_4$2={class:"my-title"},_hoisted_5$1={class:"my-toolbar"},_hoisted_6$1=vue.createElementVNode("em",{class:"iconfont icon-guanbi"},null,-1),_hoisted_7=vue.createElementVNode("div",{class:"myDialogMask"},null,-1);function _sfc_render$6(e,t,o,l,a,n){const r=vue.resolveComponent("el-button"),i=vue.resolveComponent("el-header"),s=vue.resolveComponent("el-container");return vue.openBlock(),vue.createBlock(vue.Teleport,{to:"body"},[vue.createVNode(vue.Transition,{name:"fade"},{default:vue.withCtx((()=>[e.isshow||e.showDialog?(vue.openBlock(),vue.createElementBlock("div",_hoisted_1$5,[vue.createElementVNode("div",{class:vue.normalizeClass(["MyDialogBody",[{fullscreen:e.isFullScreen},e.dialogclass]]),style:vue.normalizeStyle(`width: ${e.newWidth}`)},[vue.createElementVNode("div",_hoisted_2$4,[vue.createVNode(s,{class:"my-pageContainer"},{default:vue.withCtx((()=>[vue.createVNode(i,{class:"my-pageHeader",style:{height:"45px"}},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_3$2,[vue.createElementVNode("em",{class:vue.normalizeClass(["iconfont",e.icon])},null,2)]),vue.createElementVNode("div",_hoisted_4$2,vue.toDisplayString(e.title),1),vue.createElementVNode("div",_hoisted_5$1,[vue.createVNode(r,{class:"my-toolbtn",onClick:t[0]||(t[0]=t=>e.isFullScreen=!e.isFullScreen)},{default:vue.withCtx((()=>[vue.createElementVNode("em",{class:vue.normalizeClass(["iconfont icon",{"icon-suoxiao1":e.isFullScreen,"icon-quanping":!e.isFullScreen}])},null,2)])),_:1}),vue.createVNode(r,{class:"my-toolbtn",onClick:e.close},{default:vue.withCtx((()=>[_hoisted_6$1])),_:1},8,["onClick"])])])),_:1}),vue.renderSlot(e.$slots,"default")])),_:3})])],6),_hoisted_7])):vue.createCommentVNode("",!0)])),_:3})])}var CustomDialog=_export_sfc(_sfc_main$6,[["render",_sfc_render$6]]);const _sfc_main$5=vue.defineComponent({props:{data:{type:Object,default:()=>({})},item:{type:Object,default:()=>({})}},emits:["change"],setup(e,{emit:t}){const o=vue.ref(),l=vue.ref(),a=vue.ref();const n=vue.reactive({andData:[[]],logicList:[{value:"=",label:"等于"},{value:"!=",label:"不等于"}],typeList:[{value:"常量",label:"常量"}]});return{...vue.toRefs(n),fieldList:a,maxJsonDialog:o,formList:l,handleType(e,t,o){"布尔"==o&&(n.andData[t][e].value=!0)},getLogic(e,t){const o=a.value.find((o=>{if(n.andData[t][e]&&o.value==n.andData[t][e].field)return o}));return o&&o.options&&o.multiple?[{value:"in",label:"包含"},{value:"not in",label:"不包含"}]:o&&o.switch?[{value:"=",label:"等于"}]:n.logicList},getFiled(e,t){if(!n.andData[t][e]||!n.andData[t][e].field)return[];return a.value.find((o=>{if(n.andData[t][e]&&o.value==n.andData[t][e].field)return o})).options||[]},show(){o.value.init("可用条件","icon-bianji"),o.value.show(),console.log(e.data),"string"!=typeof e.data.showRule&&Array.isArray(e.data.showRule)?n.andData=e.data.showRule:n.andData=[[]],function(){var t;const o=null==formStore?void 0:formStore.get("allFormList"),l=[];null==(t=vue.toRaw(o))||t.forEach((t=>{window.VueContext.$Flex.getFormDataList(t,l,e.data.fieldName)})),a.value=l}()},getMultiple:(e,t)=>!!a.value.find((o=>{if(n.andData[t][e]&&o.value==n.andData[t][e].field)return o})).multiple,getNewTypeList(e,t){const o=a.value.find((o=>{if(n.andData[t][e]&&o.value==n.andData[t][e].field)return o}));return o&&o.options?[{rule:[],value:"选项",label:"选项"}]:o&&o.switch?[{value:"布尔",label:"布尔"}]:n.typeList},deleteRow(e,t){n.andData[t].splice(e,1)},getTypeIsChange:(e,t)=>!!n.andData[t][e].type,getRules(e){var t;return{value:null==(t=n.typeList.find((t=>t.value==e)))?void 0:t.rule}},async onAddItem(e){n.andData[e].push({field:"",logic:"",type:"",value:""})},onOrItem(){n.andData.push([])},closeDialog(){o.value.close()},saveJson(){const e=vue.toRaw(n.andData).filter((e=>{if(e.length>0)return e})).map((e=>{const t=e.filter((e=>{if(e.field)return e}));if(t.length>0)return t})).filter((e=>!!e));t("change",e),o.value.close()}}}}),_hoisted_1$4=vue.createElementVNode("div",{class:"tipContent"},"满足以下所有条件时,此组件可用",-1);function _sfc_render$5(e,t,o,l,a,n){const r=vue.resolveComponent("el-option"),i=vue.resolveComponent("el-select"),s=vue.resolveComponent("el-table-column"),u=vue.resolveComponent("el-input"),d=vue.resolveComponent("el-form-item"),c=vue.resolveComponent("el-form"),v=vue.resolveComponent("el-switch"),m=vue.resolveComponent("el-button"),p=vue.resolveComponent("el-table"),f=vue.resolveComponent("el-main"),h=vue.resolveComponent("el-footer"),C=vue.resolveComponent("el-container"),g=vue.resolveComponent("CustomDialog");return vue.openBlock(),vue.createBlock(vue.Teleport,{to:"body"},[vue.createVNode(g,{ref:"maxJsonDialog",dialogclass:"conditionSelectNormal"},{default:vue.withCtx((()=>[vue.createVNode(f,{style:{padding:"0"}},{default:vue.withCtx((()=>[vue.createVNode(C,{style:{height:"100%"}},{default:vue.withCtx((()=>[vue.createVNode(f,{class:"my-pageMain"},{default:vue.withCtx((()=>[_hoisted_1$4,(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.andData,((t,o)=>(vue.openBlock(),vue.createElementBlock("div",{class:"tableContainer",key:o},[vue.createVNode(p,{data:t,style:{width:"100%"},border:""},{default:vue.withCtx((()=>[vue.createVNode(s,{prop:"field",label:"字段"},{default:vue.withCtx((t=>[vue.createVNode(i,{modelValue:t.row.field,"onUpdate:modelValue":e=>t.row.field=e,placeholder:"请选择"},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.fieldList,(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1}),vue.createVNode(s,{prop:"logic",label:"逻辑"},{default:vue.withCtx((t=>[vue.createVNode(i,{modelValue:t.row.logic,"onUpdate:modelValue":e=>t.row.logic=e,placeholder:"请选择"},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.getLogic(t.$index,o),(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:2},1024),vue.createVNode(s,{prop:"type",label:"值类型"},{default:vue.withCtx((t=>[vue.createVNode(i,{modelValue:t.row.type,"onUpdate:modelValue":e=>t.row.type=e,placeholder:"请选择",onChange:l=>e.handleType(t.$index,o,t.row.type)},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.getNewTypeList(t.$index,o),(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])),_:2},1024),vue.createVNode(s,{prop:"value",label:"值"},{default:vue.withCtx((t=>[e.getTypeIsChange(t.$index,o)&&"常量"==t.row.type?(vue.openBlock(),vue.createBlock(c,{key:0,model:t.row,rules:e.getRules(t.row.type),ref_for:!0,ref:"formList"},{default:vue.withCtx((()=>[vue.createVNode(d,{prop:"value"},{default:vue.withCtx((()=>[vue.createVNode(u,{text:"",modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e},null,8,["modelValue","onUpdate:modelValue"])])),_:2},1024)])),_:2},1032,["model","rules"])):vue.createCommentVNode("",!0),"选项"==t.row.type?(vue.openBlock(),vue.createBlock(i,{key:1,modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e,filterable:"",placeholder:"请选择",multiple:e.getMultiple(t.$index,o)},{default:vue.withCtx((()=>[vue.createVNode(r,{label:"未选择",value:""}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(e.getFiled(t.$index,o),((e,t)=>(vue.openBlock(),vue.createBlock(r,{key:t,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","multiple"])):vue.createCommentVNode("",!0),"布尔"==t.row.type?(vue.openBlock(),vue.createBlock(v,{key:2,modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e},null,8,["modelValue","onUpdate:modelValue"])):vue.createCommentVNode("",!0)])),_:2},1024),vue.createVNode(s,{fixed:"right",label:"操作",width:"100"},{default:vue.withCtx((t=>[vue.createVNode(m,{size:"small",type:"danger",onClick:vue.withModifiers((l=>e.deleteRow(t.$index,o)),["prevent"])},{default:vue.withCtx((()=>[vue.createTextVNode(" 删除 ")])),_:2},1032,["onClick"])])),_:2},1024)])),_:2},1032,["data"]),vue.createVNode(m,{class:"mt-4",style:{width:"100%"},text:"",onClick:t=>e.onAddItem(o)},{default:vue.withCtx((()=>[vue.createTextVNode("+并条件")])),_:2},1032,["onClick"])])))),128)),vue.createVNode(m,{class:"mt-4",text:"",onClick:e.onOrItem},{default:vue.withCtx((()=>[vue.createTextVNode("+或条件")])),_:1},8,["onClick"])])),_:1}),vue.createVNode(h,{class:"my-Footer",style:{height:"60px","padding-top":"10px","text-align":"right"}},{default:vue.withCtx((()=>[vue.createVNode(m,{type:"primary",onClick:e.saveJson},{default:vue.withCtx((()=>[vue.createTextVNode("保存")])),_:1},8,["onClick"]),vue.createVNode(m,{onClick:e.closeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1})])),_:1},512)])}var ConditionSelect=_export_sfc(_sfc_main$5,[["render",_sfc_render$5]]);const _sfc_main$4={props:{fieldList:{type:Object,default:()=>({})},data:{type:Object,default:()=>({})}},data:()=>({table:[],groupSelect:[{value:"andgroup",label:"+并组"},{value:"orgroup",label:"+或组"},{value:"data",label:"条件"}],logicList:[{value:"=",label:"等于"},{value:"!=",label:"不等于"}],typeList:[{rule:[],value:"常量",label:"常量"}]}),computed:{newtypeList(){const e=this.fieldList.find((e=>{if(this.table&&this.table.length>0&&e.value==this.table[0].field)return e}));return e&&e.options?[{rule:[],value:"选项",label:"选项"}]:e&&e.switch?[{value:"布尔",label:"布尔"}]:this.typeList}},methods:{handleType(e){"布尔"==e&&(this.table[0].value=!0)},getFiled(){if(!this.table[0]||!this.table[0].field)return[];return this.fieldList.find((e=>{if(this.table&&this.table.length>0&&e.value==this.table[0].field)return e})).options||[]},getMultiple(){return!!this.fieldList.find((e=>{if(this.table&&this.table.length>0&&e.value==this.table[0].field)return e})).multiple},getLogic(){const e=this.fieldList.find((e=>{if(this.table&&this.table.length>0&&e.value==this.table[0].field)return e}));return e&&e.options&&e.multiple?[{value:"in",label:"包含"},{value:"not in",label:"不包含"}]:e&&e.switch?[{value:"=",label:"等于"}]:this.logicList},show(e){this.$refs.maxJsonDialog.init("可用条件","icon-bianji"),this.$refs.maxJsonDialog.show(),Object.keys(e).length>0&&(this.table=[e])},onAddItem(){this.table.push({field:"",logic:"",type:"",value:""})},getTypeIsChange(e){const t=this.table[e];return!!t.type&&"常量"==t.type},getRules(e){var t;return{value:null==(t=this.typeList.find((t=>t.value==e)))?void 0:t.rule}},closeDialog(){this.$refs.maxJsonDialog.close()},deleteRow(){this.table=[]},async saveJson(){if(this.table.length>0){const e=this.table[0];if(!e.field)return void this.$message.error("字段不能为空!");if(!e.type)return void this.$message.error("请选择值类型!");if(e.type&&"选项"==e.type&&!e.value)return void this.$message.error("值类型为字段时值不能为空!");for(const t in this.table[0])this.data[t]=this.table[0][t]}else for(const e in this.data)delete this.data[e];this.$message({message:"保存成功",type:"success"}),this.closeDialog(),this.$emit("end")}}};function _sfc_render$4(e,t,o,l,a,n){const r=vue.resolveComponent("el-option"),i=vue.resolveComponent("el-select"),s=vue.resolveComponent("el-table-column"),u=vue.resolveComponent("el-input"),d=vue.resolveComponent("el-form-item"),c=vue.resolveComponent("el-form"),v=vue.resolveComponent("el-switch"),m=vue.resolveComponent("el-button"),p=vue.resolveComponent("el-table"),f=vue.resolveComponent("el-main"),h=vue.resolveComponent("el-footer"),C=vue.resolveComponent("el-container"),g=vue.resolveComponent("CustomDialog");return vue.openBlock(),vue.createBlock(vue.Teleport,{to:"body"},[vue.createVNode(g,{ref:"maxJsonDialog",dialogclass:"maxJsonDialog"},{default:vue.withCtx((()=>[vue.createVNode(f,{style:{padding:"0"}},{default:vue.withCtx((()=>[vue.createVNode(C,{style:{height:"100%"}},{default:vue.withCtx((()=>[vue.createVNode(f,{class:"my-pageMain"},{default:vue.withCtx((()=>[vue.createVNode(p,{data:a.table,style:{width:"100%"},border:""},{default:vue.withCtx((()=>[vue.createVNode(s,{prop:"field",label:"字段"},{default:vue.withCtx((e=>[vue.createVNode(i,{modelValue:e.row.field,"onUpdate:modelValue":t=>e.row.field=t,placeholder:"请选择"},{default:vue.withCtx((()=>[vue.createVNode(r,{label:"未选择",value:""}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(o.fieldList,((e,t)=>(vue.openBlock(),vue.createBlock(r,{key:t,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1}),vue.createVNode(s,{prop:"logic",label:"逻辑"},{default:vue.withCtx((e=>[vue.createVNode(i,{modelValue:e.row.logic,"onUpdate:modelValue":t=>e.row.logic=t,placeholder:"请选择"},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(n.getLogic(),(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue"])])),_:1}),vue.createVNode(s,{prop:"type",label:"值类型"},{default:vue.withCtx((e=>[vue.createVNode(i,{modelValue:e.row.type,"onUpdate:modelValue":t=>e.row.type=t,placeholder:"请选择",onChange:n.handleType},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(n.newtypeList,(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])])),_:1}),vue.createVNode(s,{prop:"value",label:"值"},{default:vue.withCtx((t=>[n.getTypeIsChange(t.$index,e.index)?(vue.openBlock(),vue.createBlock(c,{key:0,model:t.row,rules:n.getRules(t.row.type),ref:"formList"},{default:vue.withCtx((()=>[vue.createVNode(d,{prop:"value"},{default:vue.withCtx((()=>[vue.createVNode(u,{text:"",modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e},null,8,["modelValue","onUpdate:modelValue"])])),_:2},1024)])),_:2},1032,["model","rules"])):vue.createCommentVNode("",!0),"选项"==t.row.type?(vue.openBlock(),vue.createBlock(i,{key:1,modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e,filterable:"",placeholder:"请选择",multiple:n.getMultiple()},{default:vue.withCtx((()=>[vue.createVNode(r,{label:"未选择",value:""}),(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(n.getFiled(),((e,t)=>(vue.openBlock(),vue.createBlock(r,{key:t,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:2},1032,["modelValue","onUpdate:modelValue","multiple"])):vue.createCommentVNode("",!0),"布尔"==t.row.type?(vue.openBlock(),vue.createBlock(v,{key:2,modelValue:t.row.value,"onUpdate:modelValue":e=>t.row.value=e,"active-icon":e.Check,"inactive-icon":e.Close},null,8,["modelValue","onUpdate:modelValue","active-icon","inactive-icon"])):vue.createCommentVNode("",!0)])),_:1}),vue.createVNode(s,{fixed:"right",label:"操作",width:"200"},{default:vue.withCtx((t=>[vue.createVNode(m,{size:"small",type:"danger",onClick:vue.withModifiers((o=>n.deleteRow(t.$index,e.index)),["prevent"])},{default:vue.withCtx((()=>[vue.createTextVNode(" 删除 ")])),_:2},1032,["onClick"])])),_:1})])),_:1},8,["data"]),0==a.table.length?(vue.openBlock(),vue.createBlock(m,{key:0,class:"mt-4",text:"",onClick:n.onAddItem,style:{width:"100%"}},{default:vue.withCtx((()=>[vue.createTextVNode("+条件")])),_:1},8,["onClick"])):vue.createCommentVNode("",!0)])),_:1}),vue.createVNode(h,{class:"my-Footer",style:{height:"60px","padding-top":"10px"}},{default:vue.withCtx((()=>[vue.createVNode(m,{type:"primary",onClick:n.saveJson},{default:vue.withCtx((()=>[vue.createTextVNode("保存")])),_:1},8,["onClick"]),vue.createVNode(m,{onClick:n.closeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1})])),_:1},512)])}var ConditionTanc=_export_sfc(_sfc_main$4,[["render",_sfc_render$4]]);const _sfc_main$3={name:"ConditionGroup",components:{ConditionTanc:ConditionTanc},props:{result:{type:Object,default:()=>({})},index:{type:Number,default:0},fieldList:{type:Array,default:()=>[]},rightField:{type:Array,default:()=>[]},request:{type:Array,default:()=>[]}},data:()=>({groupSelect:[{value:"andgroup",label:"+并组"},{value:"orgroup",label:"+或组"},{value:"data",label:"条件"}]}),watch:{result:{handler(){this.$forceUpdate()},deep:!0}},methods:{onAddItem(){if(this.result.type){switch(this.result.result||"data"==this.result.type||(this.result.result=[]),"data"!=this.result.type||this.result.data||(this.result.data={}),this.result.control=!0,this.result.type){case"orgroup":this.result.result.push({type:"orgroup",result:[]});break;case"andgroup":this.result.result.push({type:"andgroup",result:[]});break;case"data":this.result.result.push({type:"data",data:{}})}this.handleUpdateForce()}},handleControl(e){this.result.control=e,this.handleUpdateForce()},onDeleteItem(){0==this.index?(delete this.result.data,delete this.result.result,delete this.result.type,this.handleUpdateForce()):this.$emit("delete",this.index)},handleDelete(e){this.result.result.splice(e,1),this.handleUpdateForce()},onChange(e){this.result.type=e,"andgroup"==e||"orgroup"==e?(this.result.result=[],this.result.data&&delete this.result.data):(this.result.data={},this.result.result&&delete this.result.result),this.handleUpdateForce()},handleUpdateForce(){this.$forceUpdate(),this.$emit("update")},onEditData(){this.$refs.ConditionTanc.show(this.result.data)}}},_hoisted_1$3={class:"control"},_hoisted_2$3={class:"moreCondition"};function _sfc_render$3(e,t,o,l,a,n){const r=vue.resolveComponent("el-option"),i=vue.resolveComponent("el-select"),s=vue.resolveComponent("el-button"),u=vue.resolveComponent("ConditionGroup",!0),d=vue.resolveComponent("ConditionTanc");return vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["conditionSelect",o.result.type])},[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$3,[o.result.control?(vue.openBlock(),vue.createElementBlock("span",{key:1,class:"iconfont icon-jianhao",onClick:t[1]||(t[1]=e=>n.handleControl(!1))})):(vue.openBlock(),vue.createElementBlock("span",{key:0,class:"iconfont icon-jiahao",onClick:t[0]||(t[0]=e=>n.handleControl(!0))}))],512),[[vue.vShow,o.result.result&&o.result.result.length>0&&"data"!==o.result.type]]),vue.createVNode(i,{modelValue:o.result.type,"onUpdate:modelValue":t[2]||(t[2]=e=>o.result.type=e),placeholder:"请选择",onChange:n.onChange},{default:vue.withCtx((()=>[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(a.groupSelect,(e=>(vue.openBlock(),vue.createBlock(r,{key:e.value,label:e.label,value:e.value},null,8,["label","value"])))),128))])),_:1},8,["modelValue","onChange"]),vue.createVNode(s,{type:"primary",onClick:n.onAddItem,size:"small",disabled:!o.result.type||"data"==o.result.type},{default:vue.withCtx((()=>[vue.createTextVNode("增加条件")])),_:1},8,["onClick","disabled"]),vue.createVNode(s,{type:"danger",onClick:n.onDeleteItem,size:"small"},{default:vue.withCtx((()=>[vue.createTextVNode("删除")])),_:1},8,["onClick"]),"data"==o.result.type?(vue.openBlock(),vue.createBlock(s,{key:0,type:"primary",onClick:n.onEditData,size:"small"},{default:vue.withCtx((()=>[vue.createTextVNode("编辑")])),_:1},8,["onClick"])):vue.createCommentVNode("",!0),vue.createVNode(vue.Transition,null,{default:vue.withCtx((()=>[vue.withDirectives(vue.createElementVNode("div",_hoisted_2$3,[(vue.openBlock(!0),vue.createElementBlock(vue.Fragment,null,vue.renderList(o.result.result,((e,t)=>(vue.openBlock(),vue.createElementBlock("div",{key:t,class:"selectList"},[vue.createVNode(u,{result:e,onUpdate:n.handleUpdateForce,onDelete:n.handleDelete,index:t,fieldList:o.fieldList},null,8,["result","onUpdate","onDelete","index","fieldList"])])))),128)),o.result.result&&o.result.result.length>=2?(vue.openBlock(),vue.createElementBlock("div",{key:0,class:vue.normalizeClass(["line",o.result.type])},null,2)):vue.createCommentVNode("",!0)],512),[[vue.vShow,o.result.type&&"data"!==o.result.type&&o.result.control]])])),_:1}),vue.withDirectives(vue.createElementVNode("div",null,[vue.createVNode(d,{ref:"ConditionTanc",data:o.result.data,fieldList:o.fieldList,onEnd:n.handleUpdateForce},null,8,["data","fieldList","onEnd"])],512),[[vue.vShow,o.result.type&&"data"==o.result.type]])],2)}var ConditionGroup=_export_sfc(_sfc_main$3,[["render",_sfc_render$3]]);const _sfc_main$2={components:{ConditionGroup:ConditionGroup},props:{data:{type:Object,default:()=>({})},item:{type:Object,default:()=>({})}},data:()=>({result:{},stringLink:"",leftField:[],rightField:[],condition:[],request:[]}),watch:{result:{handler(){console.log(this.result),this.$forceUpdate()},deep:!0}},emits:["change"],methods:{async show(){var e;this.$refs.maxJsonDialog.init("可用条件","icon-bianji"),this.$refs.maxJsonDialog.show(),await this.$nextTick();const t=null==formStore?void 0:formStore.get("allFormList"),o=[];null==(e=vue.toRaw(t))||e.forEach((e=>{window.VueContext.$Flex.getFormDataList(e,o,this.data.fieldName)})),this.result="string"==typeof this.data[this.item.data.fieldName]?JSON.parse(this.data[this.item.data.fieldName]):this.data[this.item.data.fieldName],console.log(o),this.leftField=o},handleUpdateForce(){this.$forceUpdate(),this.stringLink=this.filterCondition(this.result)},filterCondition(e){if("andgroup"==e.type||"orgroup"==e.type){const t=e.result.map((e=>this.filterCondition(e))).join("andgroup"==e.type?'<span class="and">and</span>':'<span class="or">or</span>');return`<span class='kh ${e.type}'>(${t})</span>`}return"data"==e.type?`<span class='data kh'>${this.getDataConditionRelate(e)}</span>`:""},getDataConditionRelate(e){if(0==Object.keys(e.data).length)return"空";const t=e.data,o=t.field;let l;if("选项"==t.type){const e=t.value;l=`${JSON.stringify(e)}`}else"常量"!=t.type&&"布尔"!=t.type||(l=t.value);return`${o} ${t.logic} ${l}`},closeDialog(){this.$refs.maxJsonDialog.close()},saveJson(){this.$emit("change",this.result),this.closeDialog()}}},_hoisted_1$2=vue.createElementVNode("div",{class:"tipContent"},"满足以下所有条件时,此组件可用",-1),_hoisted_2$2={class:"conditionContainer"},_hoisted_3$1={class:"stringlist"},_hoisted_4$1=["innerHTML"];function _sfc_render$2(e,t,o,l,a,n){const r=vue.resolveComponent("ConditionGroup"),i=vue.resolveComponent("el-main"),s=vue.resolveComponent("el-button"),u=vue.resolveComponent("el-footer"),d=vue.resolveComponent("el-container"),c=vue.resolveComponent("CustomDialog");return vue.openBlock(),vue.createBlock(c,{ref:"maxJsonDialog",dialogclass:"conditionModule"},{default:vue.withCtx((()=>[vue.createVNode(i,{style:{padding:"0"}},{default:vue.withCtx((()=>[vue.createVNode(d,{style:{height:"100%"}},{default:vue.withCtx((()=>[vue.createVNode(i,{class:"my-pageMain"},{default:vue.withCtx((()=>[_hoisted_1$2,vue.createElementVNode("div",_hoisted_2$2,[vue.createVNode(r,{result:a.result,onUpdate:n.handleUpdateForce,fieldList:a.leftField},null,8,["result","onUpdate","fieldList"]),vue.createElementVNode("div",_hoisted_3$1,[vue.createElementVNode("pre",{innerHTML:a.stringLink},null,8,_hoisted_4$1)])])])),_:1}),vue.createVNode(u,{class:"my-Footer",style:{height:"60px","padding-top":"10px"}},{default:vue.withCtx((()=>[vue.createVNode(s,{type:"primary",onClick:n.saveJson},{default:vue.withCtx((()=>[vue.createTextVNode("保存")])),_:1},8,["onClick"]),vue.createVNode(s,{onClick:n.closeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1})])),_:1})])),_:1},512)}var HighConditionSelect=_export_sfc(_sfc_main$2,[["render",_sfc_render$2]]);const _sfc_main$1=vue.defineComponent({props:{active:Boolean,currentIndex:Number,len:{type:Number,default:0},inline:Boolean,layout:Boolean,currentId:String,item:Object},setup(e,t){const o=vue.ref(!1),l=vue.ref(),{store:a}=vue.inject("control")||{},{emit:n}=t,r=vue.computed((()=>null==a?void 0:a.get("copyContent")));vue.watch((()=>e.active),(()=>{e.active||(o.value=e.active)}));document.addEventListener("click",(()=>{o.value=!1}));return{isShow:o,handleShortCut:t=>{if(e.active){t.preventDefault(),o.value=!0;const e=t.offsetX,a=t.offsetY;vue.nextTick((()=>{l.value.style.left=e+"px",l.value.style.top=a+"px"}))}},handleMenu:()=>{o.value=!1},editForm:l,handleActive:e=>{"copy"===e?copy():"paste"===e?(n("paste"),paste()):"cut"===e?cut():"delete"===e?onDelete():"top"===e?onTop():"bottom"===e&&onBottom()},handleCopyAndPaste:()=>{copy(),n("paste"),paste()},copyContent:r,handleColumn:()=>{var t;null==(t=e.item)||t.data.trs.push({tds:[{colspan:1,rowspan:1,list:[]},{colspan:1,rowspan:1,list:[]}]})},handleRow:()=>{var t;null==(t=e.item)||t.data.trs.forEach((e=>{e.tds.push({colspan:1,rowspan:1,list:[]})}))}}}}),_hoisted_1$1={class:"editForm",ref:"editForm"},_hoisted_2$1={key:0,class:"editbar"};function _sfc_render$1(e,t,o,l,a,n){return vue.openBlock(),vue.createElementBlock("div",{class:vue.normalizeClass(["shape",e.active?e.layout?"shape_border shape_border_layout":"shape_border":e.layout?"noactive_layout":""]),onContextmenu:t[12]||(t[12]=(...t)=>e.handleShortCut&&e.handleShortCut(...t)),onClick:t[13]||(t[13]=(...t)=>e.handleMenu&&e.handleMenu(...t)),style:vue.normalizeStyle({display:e.inline?"inline-block":"block"})},[vue.createVNode(vue.Transition,{name:"fade",mode:"out-in",appear:""},{default:vue.withCtx((()=>[vue.withDirectives(vue.createElementVNode("div",_hoisted_1$1,[vue.createElementVNode("span",{onClick:t[0]||(t[0]=t=>e.handleActive("copy"))},"复制"),vue.createElementVNode("span",{onClick:t[1]||(t[1]=t=>e.handleActive("cut"))},"剪切"),vue.createElementVNode("span",{onClick:t[2]||(t[2]=t=>e.handleActive("delete"))},"删除"),e.copyContent?(vue.openBlock(),vue.createElementBlock("span",{key:0,onClick:t[3]||(t[3]=t=>e.handleActive("paste"))},"粘贴")):vue.createCommentVNode("",!0),0!=e.currentIndex?(vue.openBlock(),vue.createElementBlock("span",{key:1,onClick:t[4]||(t[4]=t=>e.handleActive("top"))},"上移")):vue.createCommentVNode("",!0),e.currentIndex!=e.len-1?(vue.openBlock(),vue.createElementBlock("span",{key:2,onClick:t[5]||(t[5]=t=>e.handleActive("bottom"))},"下移")):vue.createCommentVNode("",!0)],512),[[vue.vShow,e.isShow&&e.active]])])),_:1}),vue.renderSlot(e.$slots,"default"),e.active?(vue.openBlock(),vue.createElementBlock("div",_hoisted_2$1,[0!=e.currentIndex?(vue.openBlock(),vue.createElementBlock("span",{key:0,class:"iconfont icon-xiangshang1",onClick:t[6]||(t[6]=vue.withModifiers((t=>e.handleActive("top")),["stop"]))})):vue.createCommentVNode("",!0),e.currentIndex!=e.len-1?(vue.openBlock(),vue.createElementBlock("span",{key:1,class:"iconfont icon-xiangxia1",onClick:t[7]||(t[7]=vue.withModifiers((t=>e.handleActive("bottom")),["stop"]))})):vue.createCommentVNode("",!0),e.item&&"TableLayout"==e.item.ControlType?(vue.openBlock(),vue.createElementBlock("span",{key:2,class:"iconfont icon--charulie",onClick:t[8]||(t[8]=(...t)=>e.handleRow&&e.handleRow(...t))})):vue.createCommentVNode("",!0),e.item&&"TableLayout"==e.item.ControlType?(vue.openBlock(),vue.createElementBlock("span",{key:3,class:"iconfont icon--charuhang",onClick:t[9]||(t[9]=(...t)=>e.handleColumn&&e.handleColumn(...t))})):vue.createCommentVNode("",!0),vue.createElementVNode("span",{class:"iconfont icon-fuzhi",onClick:t[10]||(t[10]=vue.withModifiers(((...t)=>e.handleCopyAndPaste&&e.handleCopyAndPaste(...t)),["stop"]))}),vue.createElementVNode("span",{class:"iconfont icon-shanchu1",onClick:t[11]||(t[11]=vue.withModifiers((t=>e.handleActive("delete")),["stop"]))})])):vue.createCommentVNode("",!0)],38)}var Shape=_export_sfc(_sfc_main$1,[["render",_sfc_render$1]]),vm=mitt__default.default();const fieldlist=[];class Flex{constructor(){this.lastClickTime=0,this.openTanc=!1}clickCountLimit(){let e=!1;if(window.clickCountLimitMock)return!0;if(this.lastClickTime){const t=(new Date).getTime()-this.lastClickTime;this.lastClickTime=(new Date).getTime(),e=t>=1e3}else this.lastClickTime=(new Date).getTime(),e=!0;return e||console.log("手残党点击太快了"),e}generateMixed(e){return nanoid.nanoid(e)}controlFormRule(e){const t={};return e.forEach((e=>{const o=[];e.data.required&&(o.push({required:!0,message:"请输入"+e.data.label,trigger:"blur"}),t[e.data.fieldName]=o),"JsonEditor"===e.ControlType&&(t[e.data.fieldName]=this.getJsonValidate())})),t}deepClone(e){let t;if("object"==typeof e)if(Array.isArray(e)){t=[];for(let o=0;o<e.length;o++)Object.prototype.hasOwnProperty.call(e,o)&&t.push(this.deepClone(e[o]))}else if(null===e)t=null;else if(e.constructor===RegExp)t=e;else{t={};for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=this.deepClone(e[o]))}else t=e;return t}tryParseJson(e){try{return JSON.parse(e)}catch(t){return e&&e.startsWith&&e.startsWith('"[')?[]:{}}}open(e,t="Success",o="success"){ElementPlus.ElNotification({title:t||"Success",message:e,type:o})}getJsonValidate(){return this.deepClone([{validator:(e,t,o)=>{try{JSON.parse(t),o()}catch(l){return console.error(l),o(new Error("请输入正确的json格式"))}},trigger:"blur"}])}getDataType(e){return Object.prototype.toString.call(e).match(/\[object (.*)\]/)[1]}jsonToForm(e){var t,o;if(!e.data||!e.controlItems){e=this.deepClone(e);const l=window.VApp.$formcomponents[e.ControlType];e.formConfig=(null==(t=window.VApp.$formcomponents[e.ControlType])?void 0:t.formConfig)||{},e.data||(e.data=e.formConfig.data()),e.data.fieldName||(e.data.fieldName=e.ControlType+"_"+this.generateMixed()),fieldlist.includes(e.data.fieldName)?e.data.fieldName=e.ControlType+"_"+this.generateMixed():fieldlist.push(e.data.fieldName),e.layout&&("Grid"==e.ControlType&&e.data.columns&&e.data.columns.length>0?e.data.columns=e.data.columns.map((e=>(e.list&&e.list.length>0&&(e.list=this.jsonToForm(e.list)),e))):"TableLayout"==e.ControlType&&e.data.trs&&e.data.trs.length>0?e.data.trs=e.data.trs.map((e=>(e.tds.forEach((e=>(e.list&&e.list.length>0&&(e.list=this.jsonToForm(e.list)),e))),e))):("Collapse"==e.ControlType||"Tabs"==e.ControlType)&&e.data.items&&e.data.items.length>0&&(e.data.items=e.data.items.map((e=>(e.list&&e.list.length>0&&(e.list=this.jsonToForm(e.list)),e)))));const a=null==(o=null==formStore?void 0:formStore.get("globalFormList"))?void 0:o.filter((e=>{if(e.dynamic)return e}));e.id=this.generateMixed();let n=e.formConfig.morenConfig().concat(a);l.actionType&&l.actionType.length>0?(console.log(n),n.find((e=>{"Action"==e.ControlType&&(e.data.formConfig={value:{},items:[]},l.actionType.forEach(((t,o)=>{e.data.formConfig.items.push({label:t,value:t,id:o+1})})))}))):n=n.filter((e=>{if("Action"!==e.ControlType)return e})),e.rules=this.controlFormRule(n),e.controlItems=n}return e}initFormToJson(e){const t=[];return e.forEach((e=>{e.layout&&("Grid"==e.ControlType&&e.data.columns&&e.data.columns.length>0?e.data.columns=e.data.columns.map((e=>(e.list=this.initFormToJson(e.list),e))):"TableLayout"==e.ControlType&&e.data.trs&&e.data.trs.length>0?e.data.trs=e.data.trs.map((e=>(e.tds.forEach((e=>(e.list&&e.list.length>0&&(e.list=this.initFormToJson(e.list)),e))),e))):("Collapse"==e.ControlType||"Tabs"==e.ControlType)&&e.data.items&&e.data.items.length>0&&(e.data.items=e.data.items.map((e=>(e.list=this.initFormToJson(e.list),e)))));const o={ControlType:e.ControlType,nameCn:e.nameCn,id:e.id,layout:!!e.layout,data:e.data};t.push(o)})),t}funcExec(action,proxy,argus=[]){const actionObj=JSON.parse(action||"{}"),funcStr=actionObj.funcStr;eval(`(function(${this.getField(actionObj.methods)}){${funcStr}}).apply(proxy, argus)`)}getField(e){return"onChange"==e?"value, oldValue, subFormData":["onForce","onBlur","onClick"].includes(e)?"field":""}getFormDataList(e,t=[],o){var l,a,n,r,i,s,u,d,c,v,m,p;if(e.layout)e.data.fieldName!=o&&(t.push({value:null==(v=null==e?void 0:e.data)?void 0:v.fieldName,label:(null==(m=null==e?void 0:e.data)?void 0:m.label)+"-"+(null==(p=null==e?void 0:e.data)?void 0:p.fieldName)}),"Grid"==e.ControlType&&e.data.columns?e.data.columns.forEach((e=>{e.list.forEach((e=>{this.getFormDataList(e,t,o)}))})):"TableLayout"==e.ControlType&&e.data.trs?e.data.trs.forEach((e=>{e.tds.forEach((e=>{e.list.forEach((e=>{this.getFormDataList(e,t,o)}))}))})):"Collapse"!=e.ControlType&&"Tabs"!=e.ControlType||!e.data.items||e.data.items.forEach((e=>{e.list.forEach((e=>{this.getFormDataList(e,t,o)}))})));else if(e.data.fieldName!=o){if("开关"==e.nameCn)return void t.push({value:null==(l=null==e?void 0:e.data)?void 0:l.fieldName,label:(null==(a=null==e?void 0:e.data)?void 0:a.label)+"-"+(null==(n=null==e?void 0:e.data)?void 0:n.fieldName),switch:!0});if(e.data.itemConfig){let o=!1;Array.isArray(e.data.itemConfig.value)&&(o=!0);const l=e.data.itemConfig.items;return void t.push({value:null==(r=null==e?void 0:e.data)?void 0:r.fieldName,label:(null==(i=null==e?void 0:e.data)?void 0:i.label)+"-"+(null==(s=null==e?void 0:e.data)?void 0:s.fieldName),multiple:o,options:l})}t.push({value:null==(u=null==e?void 0:e.data)?void 0:u.fieldName,label:(null==(d=null==e?void 0:e.data)?void 0:d.label)+"-"+(null==(c=null==e?void 0:e.data)?void 0:c.fieldName)})}}}var flex=new Flex;const _sfc_main=vue.defineComponent({ControlType:"FormStyle",isHide:!0,props:{item:{type:Object,default:()=>({})},data:{type:Object,default:()=>({})},controlItems:{type:Array,default:()=>[]}},setup(e){const t=[langCss.css()],o=vue.ref(),l=vue.ref(),{proxy:a}=vue.getCurrentInstance();return{code:l,extensions:t,codeDialog:o,onStyleSet(){o.value.init("表单样式表","icon-biaodan"),o.value.show()},saveCssStyle(){e.data[e.item.data.fieldName]=l.value,a.extractCssClass(),a.insertCustomCssToHead(l.value),o.value.close()},closeCodeDialog(){o.value.close()},extractCssClass(){const t=l.value.match(/\..*{/g),o=[];t&&t.length>0&&t.forEach((e=>{const t=e.split(",");t.length>0&&t.forEach((e=>{const t=e.trim();if(-1!==t.indexOf(".",1)){const e=t.substring(t.indexOf(".")+1,t.indexOf(".",1));e&&o.push(e.trim())}else if(-1!==t.indexOf(" ")){const e=t.substring(t.indexOf(".")+1,t.indexOf(" "));e&&o.push(e.trim())}else if(-1!==t.indexOf("{")){const e=t.substring(t.indexOf(".")+1,t.indexOf("{"));o.push(e.trim())}else{const e=t.substring(t.indexOf(".")+1);o.push(e.trim())}}))})),e.controlItems.find((e=>{if("csslist"==e.data.fieldName)return e.data.itemConfig.items=[],o.forEach(((t,o)=>{e.data.itemConfig.items.push({label:t,value:t,select:!1,id:o+1})})),e}))},insertCustomCssToHead(e){const t=document.getElementsByTagName("head")[0],o=document.getElementById("starfish-custom-css");o&&t.removeChild(o);const l=document.createElement("style");l.type="text/css",l.rel="stylesheet",l.id="starfish-custom-css";try{l.appendChild(document.createTextNode(e))}catch(a){l.styleSheet.cssText=e}t.appendChild(l)}}}}),_hoisted_1={class:"starfish-formitem"},_hoisted_2={class:"label"},_hoisted_3={key:0,class:"item_require"},_hoisted_4=vue.createElementVNode("span",{class:"tip iconfont icon-tishi"},null,-1),_hoisted_5={class:"control"},_hoisted_6={class:"custom_code"};function _sfc_render(e,t,o,l,a,n){const r=vue.resolveComponent("el-tooltip"),i=vue.resolveComponent("el-button"),s=vue.resolveComponent("codemirror"),u=vue.resolveComponent("el-footer"),d=vue.resolveComponent("custom-dialog");return vue.openBlock(),vue.createElementBlock("div",_hoisted_1,[vue.createElementVNode("div",_hoisted_2,[vue.createElementVNode("label",null,vue.toDisplayString(e.item.data.label),1),e.item.data.required?(vue.openBlock(),vue.createElementBlock("span",_hoisted_3,"*")):vue.createCommentVNode("",!0),e.item.data.tip?(vue.openBlock(),vue.createBlock(r,{key:1,class:"item",effect:"dark",content:e.item.data.tip,placement:"top"},{default:vue.withCtx((()=>[_hoisted_4])),_:1},8,["content"])):vue.createCommentVNode("",!0)]),vue.createElementVNode("div",_hoisted_5,[vue.createVNode(i,{style:{width:"100%"},onClick:e.onStyleSet,type:e.code?"primary":""},{default:vue.withCtx((()=>[vue.createTextVNode(vue.toDisplayString(e.code?"已设置":"设置"),1)])),_:1},8,["onClick","type"]),vue.createVNode(d,{ref:"codeDialog",dialogclass:"codeDialog",width:"1000"},{default:vue.withCtx((()=>[vue.createElementVNode("div",_hoisted_6,[vue.createVNode(s,{modelValue:e.code,"onUpdate:modelValue":t[0]||(t[0]=t=>e.code=t),placeholder:".starfish-form-css{}",style:{height:"400px"},autofocus:!0,extensions:e.extensions,"indent-with-tab":!0,"tab-size":2},null,8,["modelValue","extensions"])]),vue.createVNode(u,{class:"my-Footer",style:{"text-align":"center"}},{default:vue.withCtx((()=>[vue.createVNode(i,{type:"primary",onClick:e.saveCssStyle},{default:vue.withCtx((()=>[vue.createTextVNode("确定")])),_:1},8,["onClick"]),vue.createVNode(i,{onClick:e.closeCodeDialog},{default:vue.withCtx((()=>[vue.createTextVNode("关闭")])),_:1},8,["onClick"])])),_:1})])),_:1},512)])])}var FormStyle=_export_sfc(_sfc_main,[["render",_sfc_render]]),main={install:e=>{e.config.globalProperties.$EventBus=vm,e.config.globalProperties.$Flex=flex,window.VApp=e.config.globalProperties,window.VueContext={$Flex:flex},window.JSONEditor=JSONEditor__default.default,e.use(ElementPlus__default.default,{locale:zhCn__default.default}).use(StarfishForm__default.default),e.use(VueCodemirror__default.default,{autofocus:!0,disabled:!1,indentWithTab:!0,tabSize:2,placeholder:"Code goes here...",extensions:[codemirror.basicSetup,langJavascript.javascript()]}),e.component("CustomDialog",CustomDialog),e.component("ConditionSelect",ConditionSelect),e.component("HighConditionSelect",HighConditionSelect),e.component("draggable",draggable__default.default),e.component("Shape",Shape),e.component("FormStyle",FormStyle),e.component("StarfishEditor",Editor)}};return main}));
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。