@jecloud/ui
Version:
JECloud UI库,基于ant-design-vue封装
1 lines • 4.42 kB
JavaScript
import{mergeProps as e,createVNode as o}from"vue";import{Teleport as t}from"vue";import l from"./config";import{useEvents as n}from"./use-events";import{renderModalContainer as s}from"./use-methods";import a from"../../../button";import{isArray as i,isFunction as r,isPlainObject as c,isString as d,omit as u}from"@jecloud/utils";export function useRender(m){var v=m.props,f=m.reactData,p=m.getRef,b=m.isMessage,h=m.title,x=m.context,y=x.slots,g=x.attrs,j=n(m),k=j.toggleZoomEvent,z=j.closeEvent,w=j.dragEvent,O=j.resizeEvent,M=j.resizeDirection,E=j.clickMaskCloseEvent,C=j.boxMousedownEvent,D=j.keydownEvent,L=function(){return!f.inited||v.destroyOnClose&&!f.active},$=function(){var e,t=v.slots,n=void 0===t?{}:t,s=v.closable,a=v.maximizable,r=v.status,c=v.tools,d=f.zoomLocation,u=[];(r||v.icon)&&u.push(o("div",{class:"je-modal--status-wrapper"},[o("i",{class:["je-modal--status-icon",v.icon||l.icon[("MODAL_"+r).toLocaleUpperCase()]]},null)]));var p=y.title||n.title;u=u.concat(p?p({$modal:m}):[o("span",{class:"je-modal--title"},[null!==(e=h.value)&&void 0!==e?e:l.i18n("title")])]);var b=[];return c&&i(c)&&c.forEach((function(e){b.push(o("i",{class:["tool--btn","tool--"+e.type,e.icon],title:e.text,onClick:function(){var o;null===(o=e.handler)||void 0===o||o.call(e,m)}},null))})),a&&b.push(o("i",{class:["tool--btn","tool--maximize",d?l.icon.MODAL_ZOOM_OUT:l.icon.MODAL_ZOOM_IN],title:l.i18n("zoom"+(d?"Out":"In")),onClick:k},null)),s&&b.push(o("i",{class:["tool--btn","tool--close",l.icon.MODAL_CLOSE],title:l.i18n("close"),onClick:z},null)),u.push(o("div",{class:"je-modal--title-tools"},[b])),u},_=function(){var t=v.slots,l=void 0===t?{}:t,n=v.maximizable,s=v.draggable,a=v.headerStyle,i=b(),r=y.header||l.header,c=[];if(v.showHeader){var d={style:a};s&&(d.onMousedown=w),n&&v.dblclickMaximized&&"modal"===v.type&&(d.onDblclick=k),c.push(o("div",e({ref:p("header"),class:["je-modal--header",{"is--drag":s,"is--ellipsis":!i&&v.showTitleOverflow}]},d),[r?L()?[]:r({$modal:m}):$()]))}return c},A=function(){var e=v.slots,t=void 0===e?{}:e,l=v.message,n=v.content||l,s=b(),a=y.default||t.default,i=[];return i.push(o("div",{class:"je-modal--content"},[a?L()?[]:a({$modal:m}):r(n)?n({$modal:m}):n])),s||i.push(o("div",{class:["vxe-loading",{"is--visible":v.loading}]},[o("div",{class:"vxe-loading--spinner"},null)])),[o("div",{class:"je-modal--body",ref:p("body"),style:v.bodyStyle},[i])]},S=function(){var t=[],n=[];if(v.buttons&&i(v.buttons))n=v.buttons;else{var s={okButton:{type:"primary",text:l.i18n("okText")},cancelButton:{text:l.i18n("cancelText")}};Object.keys(s).forEach((function(e){var o=v[e];if(o){var t=s[e];c(o)?Object.assign(t,o):d(o)?t.text=o:r(o)&&(t.handler=o),n.push(t)}}))}var f=[];n.forEach((function(l,n){l.closable=!1!==l.closable,t.push(o(a,e({class:"je-modal--button"},u(l,["text","handler"]),{ref:function(e){f.push(e)},onClick:function(){var e,o=f[n];o.disabled||o.loading?event.preventDefault():l.handler?!1!==(null===(e=l.handler)||void 0===e?void 0:e.call(l,{button:o,$modal:m}))&&l.closable&&z():l.closable&&z()}}),{default:function(){return[l.text]}}))}));var p=y.buttons;return t.length||p?o("div",{class:"je-modal--footer-buttons",style:{justifyContent:{right:"flex-end",center:"center",left:"flex-start"}[v.buttonAlign]}},[p?p(m):t]):[]},T=function(){var e=v.slots,t=void 0===e?{}:e,l=v.footerStyle,n=y.footer||t.footer,s=[];return v.showFooter&&s.push(o("div",{class:"je-modal--footer",ref:p("footer"),style:l},[n?L()?[]:n({$modal:m}):S()])),s};return{renderVN:function(){var l=v.className,n=v.type,a=v.animat,i=v.loading,r=v.status,c=v.lockScroll,d=v.lockView,u=v.mask,m=v.resize,h=v.teleport,x=f.zoomLocation,y=f.modalTop,j=f.contentVisible,k=f.active;return s(),o(t,{to:".je-modal--container",disabled:!h},{default:function(){var t,s;return[o("div",{ref:p("el"),class:["je-modal--wrapper","type--"+n,l||"",(t={},t["status--"+r]=r,t["is--animat"]=a,t["lock--scroll"]=c,t["lock--view"]=d,t["is--resize"]=m,t["is--mask"]=u,t["is--maximize"]=x,t["is--visible"]=j,t["is--active"]=k,t["is--loading"]=i,t)],style:{zIndex:f.modalZindex,top:y?y+"px":null},onMousedown:E,tabindex:-1,onKeydown:D},[o("div",e({ref:p("box"),class:"je-modal--box",onMousedown:C},g),[_().concat(A(),T(),(s=[],!b()&&v.resize&&s.push(o("span",{class:"je-modal--resize"},[M.map((function(e){return o("span",{class:e+"-resize",type:e,onMousedown:O},null)}))])),s))])])]}})},renderHeaders:_,renderBodys:A}}