UNPKG

@jecloud/ui

Version:

JECloud UI库,基于ant-design-vue封装

1 lines 3.68 kB
import{defineComponent as e,ref as t,reactive as n,nextTick as o,watch as r,onMounted as i}from"vue";import{uniqueId as u}from"@jecloud/utils";import{useMethods as l}from"./hooks/use-methods";import{useRender as a}from"./hooks/use-render";import{useProvideModal as c}from"./context";import f from"./hooks/config";export var allActivedModals=[];export var msgQueue=[];export default e({name:"JeModal",inheritAttrs:!1,props:{visible:Boolean,id:String,type:{type:String,default:"modal",validator:function(e){return["modal","dialog","prompt","message"].includes(e)}},loading:{type:Boolean,default:null},bodyStyle:[String,Object],headerStyle:[String,Object],footerStyle:[String,Object],title:String,status:String,icon:String,message:[Number,String,Function],content:[Number,String,Function],tools:{type:Array},buttonAlign:{type:String,default:function(){return f.buttonAlign},validator:function(e){return["right","center","left"].includes(e)}},buttonFocus:Boolean,buttons:{type:Array},okButton:{type:[Boolean,String,Function,Object],default:function(){return!1}},cancelButton:{type:[Boolean,String,Function,Object],default:function(){return!1}},className:String,top:{type:[Number,String],default:function(){return f.top}},position:[String,Object],duration:{type:[Number,String],default:function(){return f.duration}},lockView:{type:Boolean,default:function(){return f.lockView}},lockScroll:Boolean,mask:{type:Boolean,default:function(){return f.mask}},maskClosable:{type:Boolean,default:function(){return f.maskClosable}},escClosable:{type:Boolean,default:function(){return f.escClosable}},resize:{type:Boolean,default:function(){return f.resize}},showHeader:{type:Boolean,default:function(){return f.showHeader}},showFooter:{type:Boolean,default:function(){return f.showFooter}},maximizable:{type:Boolean,default:function(){return f.maximizable}},maximized:Boolean,dblclickMaximized:{type:Boolean,default:function(){return f.dblclickMaximized}},closable:{type:Boolean,default:function(){return f.closable}},closeAction:{type:String,default:function(){return"hide"},validator:function(e){return["destroy","hide"].includes(e)}},width:[Number,String],height:[Number,String],minWidth:{type:[Number,String],default:function(){return f.minWidth}},minHeight:{type:[Number,String],default:function(){return f.minHeight}},zIndex:Number,marginSize:{type:[Number,String],default:function(){return f.marginSize}},draggable:{type:Boolean,default:function(){return f.draggable}},destroyOnClose:{type:Boolean,default:function(){return f.destroyOnClose}},showTitleOverflow:{type:Boolean,default:function(){return f.showTitleOverflow}},transfer:{type:Boolean,default:function(){return f.transfer}},animat:{type:Boolean,default:function(){return f.animat}},size:{type:String,default:function(){return f.size||f.size}},slots:Object,teleport:{type:Boolean,default:function(){return f.teleport}},onBeforeshow:Function,onShow:Function,onBeforeclose:Function,onClose:Function},emits:["update:visible","beforeshow","show","beforeclose","close"],setup:function(e,f){var s=f.expose,d=n({inited:!1,active:!1,contentVisible:!1,modalTop:0,modalZindex:0,zoomLocat:null,firstOpen:!1}),m={el:t(),box:t(),body:t(),header:t(),footer:t(),buttons:t([]),tools:t([])},p={modalId:u(),props:e,context:f,reactData:d,getRef:function(e,t){var n=m[e];return n?t?n.value:n:null},title:t(e.title)},b=l(p),g=b.recalculate,y=b.show,h=b.close;Object.assign(p,b);var S=a(p).renderVN;return Object.assign(p,{renderVN:S}),s(p),c(p),r((function(){return e.width}),g),r((function(){return e.height}),g),r((function(){return e.visible}),(function(e){e?y():h()})),i((function(){o((function(){e.visible&&y()}))})),function(){return S()}}});