vxe-pc-ui
Version:
A vue based PC component library
1 lines • 2.63 kB
JavaScript
;Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_core=require("@vxe-ui/core"),_vn=require("../../ui/src/vn"),_layoutViewItem=require("./layout-view-item"),_util=require("../src/util"),_form=_interopRequireDefault(require("../../form/src/form")),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_vue.defineComponent)({name:"FormDesignLayoutPreview",props:{},emits:[],setup(){const o=(0,_vue.inject)("$xeFormDesign",null);if(!o)return()=>[];const u=o["reactData"],e=e=>{const{widgetObjList:t,dragWidget:i}=u;i&&(e.preventDefault(),_xeUtils.default.findTree(t,e=>e&&e.id===i.id,{children:"children"})||(u.sortWidget=i,t.push(i),o.dispatchEvent("drag-widget",{widget:i},e)))},i=e=>{e.preventDefault()};let l=Date.now();const r=e=>{const{widgetObjList:t,sortWidget:i}=u;var r,n,d,s,a;e.stopPropagation(),l>Date.now()-300?e.preventDefault():i&&!(0,_util.hasFormDesignLayoutType)(i)&&(r=_xeUtils.default.findTree(t,e=>e.id===i.id,{children:"children"}))&&({item:n,index:d,items:s,parent:a}=r,a&&"row"===a.name?r.items[r.index]=o.createEmptyWidget():s.splice(d,1),t.unshift(n),l=Date.now(),o.dispatchEvent("drag-widget",{widget:n},e))},n=e=>{const{widgetObjList:t,sortWidget:i}=u;var r,n,d,s,a;e.stopPropagation(),l>Date.now()-300?e.preventDefault():i&&!(0,_util.hasFormDesignLayoutType)(i)&&(r=_xeUtils.default.findTree(t,e=>e.id===i.id,{children:"children"}))&&({item:n,index:d,items:s,parent:a}=r,a&&"row"===a.name?r.items[r.index]=o.createEmptyWidget():s.splice(d,1),t.push(n),l=Date.now(),o.dispatchEvent("drag-widget",{widget:n},e))};return()=>{const t=u["widgetObjList"];return(0,_vue.h)("div",{class:"vxe-form-design--preview",onDragenter:e,onDragover:i},[(0,_vue.h)("div",{class:"vxe-form-design--preview-wrapper"},[(0,_vue.h)("div",{class:"vxe-form-design--preview-place-widget",onDragenter:r}),(0,_vue.h)(_form.default,{customLayout:!0,span:24,vertical:!0},{default(){return(0,_vue.h)(_vue.TransitionGroup,{class:"vxe-form-design--preview-list",tag:"div",name:"vxe-form-design--preview-list"},{default:()=>t.map((r,e)=>(0,_vue.h)(_layoutViewItem.ViewItemComponent,{key:r.id,item:r,itemIndex:e,items:t},{default(){var e=r["name"],e=_core.renderer.get(e)||{},e=e.renderFormDesignWidgetEdit||e.renderFormDesignWidgetView,t=r,i={widget:r,readonly:!1,disabled:!1,isEditMode:!0,isViewMode:!1,$formDesign:o,$formView:null};return e?(0,_vn.getSlotVNs)(e(t,i)):[]}}))})}}),(0,_vue.h)("div",{class:"vxe-form-design--preview-place-widget",onDragenter:n})])])}}});