mirror of
https://github.com/XiaoDaiGua-Ray/ray-template.git
synced 2025-04-06 03:57:49 +08:00
2 lines
1.5 KiB
JavaScript
2 lines
1.5 KiB
JavaScript
import{g as l,o as u,i as m,j as c}from"./index-8b362559.js";import{k as g,A as S,f as b,t as w,b as n,E as d}from"./@vue_runtime-core@3.3.4-073fad6e.js";import{k as p}from"./@vue_reactivity@3.3.4-2b3a1c4e.js";import{c as R}from"./naive-ui@2.34.4_vue@3.3.4-eacf875e.js";const E=g({name:"RayIframe",props:{src:{type:String,required:!0},iframeWrapperClass:{type:String,default:null},frameborder:{type:Number,default:0},width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:"100%"},allow:{type:String,default:null},name:{type:String,default:null},title:{type:String,default:null},success:{type:[Function,Array],default:null},error:{type:[Function,Array],default:null},customSpinProps:{type:Object,default:()=>({})},lazy:{type:Boolean,default:!0}},setup(e,{expose:y}){const h=S(()=>({"--ray-iframe-frameborder":l(e.frameborder),"--ray-iframe-width":l(e.width),"--ray-iframe-height":l(e.height)})),a=p(),i=p(!0),o=r=>{i.value=!1;const{success:t}=e;t&&c(t,a.value,r)},f=r=>{i.value=!1;const{error:t}=e;t&&c(t,r)},s=()=>a.value;return y({iframeInst:a}),b(()=>{u(s(),"load",o.bind(this)),u(s(),"error",f)}),w(()=>{m(s(),"load",o),m(s(),"error",f)}),{cssVars:h,iframeRef:a,spinShow:i}},render(){return n("div",{class:["ray-iframe",this.iframeWrapperClass],style:[this.cssVars]},[n(R,d(this.customSpinProps,{show:this.spinShow}),{...this.$slots,default:()=>n("iframe",d({class:"ray-iframe__container",ref:"iframeRef",src:this.src,allow:this.allow,name:this.name,title:this.title},{loading:this.lazy?"lazy":null}),null)})])}});export{E as R};
|