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{i as l,o as u,j as m,l as c}from"./index-6cc317bd.js";import{k as S,A as g,f as b,t as w,b as o,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{A as R}from"./naive-ui@2.34.4_vue@3.3.4-eb250861.js";const A=S({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=g(()=>({"--ray-iframe-frameborder":l(e.frameborder),"--ray-iframe-width":l(e.width),"--ray-iframe-height":l(e.height)})),s=p(),i=p(!0),n=r=>{i.value=!1;const{success:t}=e;t&&c(t,s.value,r)},f=r=>{i.value=!1;const{error:t}=e;t&&c(t,r)},a=()=>s.value;return y(),b(()=>{u(a(),"load",n.bind(this)),u(a(),"error",f)}),w(()=>{m(a(),"load",n),m(a(),"error",f)}),{cssVars:h,iframeRef:s,spinShow:i}},render(){return o("div",{class:["ray-iframe",this.iframeWrapperClass],style:[this.cssVars]},[o(R,d(this.customSpinProps,{show:this.spinShow}),{...this.$slots,default:()=>o("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{A as R};
|