1 |
- import{A as e,B as t,C as a,d as l,D as s,E as n,G as o,H as r,o as u,c as i,w as c,e as d,F as p,f as y,q as h,p as g,u as f,i as m,x as _,b as x,j as v,I as b,t as w,m as k}from"./index-Ac3InObO.js";import{g as T}from"./DanMu.vue_vue_type_style_index_0_scoped_c7ad8377_lang.BNnk-u-I.js";import{_ as A}from"./_plugin-vue_export-helper.BCo6x5W8.js";import{a as j,b as C,r as B}from"./uni-app.es.ZMNBSlAW.js";import{H as D}from"./http.C3nklufx.js";const S={useCanvas:Boolean,pause:Boolean,touchPause:Boolean,showArea:{type:String,default:"all"},trackHeight:{type:Number,default:20},speed:{type:Number,default:5},defer:{type:Number,default:.5},data:{type:Array,default:[]},lStyle:{type:String,default:""},loopCount:{type:[Number,String],default:1}};function F(t,a,l=!1){return null==a?Promise.reject("context is null"):(a.context&&(a=a.context),new Promise(((s,n)=>{const o=e().in(a).select(t),r=e=>{e?s(e):n("no rect")};l?o.fields({node:!0,size:!0,rect:!0},r).exec():o.boundingClientRect(r).exec()})))}const I="--l-barrage-play-state",P="--l-barrage-loop-count",E="animation-play-state";const H=A(t({props:S,emits:["end","progress"],setup(e,{emit:t}){const u=r();let i=null;const c=a({[I]:"running",[P]:e.loopCount});let d=null;let p=null,y=null,h=null,g=l([]);const f=e=>{g.value.push(e)};return s((()=>{F(".l-barrage",{context:u.proxy}).then((t=>{if(t){i=new T({config:Object.assign({},e),container:t,reactive:a,getBoundingClientRect:e=>F("#"+e,{context:u.proxy})},f),p=n((()=>e.pause),(e=>{e?i.pause():i.start(),c[I]=i.playState}));let l=0;y=n(e.data,(e=>{if(i&&e&&e.length&&e.length>l){const t=e.slice(l,e.length);i.setBullet(t),l=e.length}}),{immediate:!0}),h=n((()=>e.showArea),(e=>{i.showTracks(e)}))}}))})),o((()=>{p&&p(),y&&y(),h&&h(),i&&(i=null)})),{styles:c,touchend:t=>{e.touchPause&&(t.style[E]="")},touchstart:t=>{e.touchPause&&(t.style[E]="paused",t.style["z-index"]="1")},animationend:a=>{if(!a)return;+new Date-a.time>100&&(a.style.opacity=0,clearTimeout(d),d=setTimeout((()=>{let a=0;const l=g.value.every((e=>!(!e.style||e.style.opacity)&&(a++,!0)));t("progress",a/e.data.length*100),l&&(g.value=[],t("end"))}),200))},animationstart:e=>{e&&(e.time=+new Date)},props:e,list:g}}}),[["render",function(e,t,a,l,s,n){const o=m;return u(),i(o,{class:"l-barrage",style:f([e.styles,e.props.lStyle])},{default:c((()=>[(u(!0),d(p,null,y(e.list,(t=>(u(),d(p,{key:t.id},[t&&t.style.opacity&&!t.style["--l-barrage-offset"]?(u(),i(o,{key:0,class:"l-barrage-item",id:t.id},{default:c((()=>[h(e.$slots,"default",{content:t.content},void 0,!0)])),_:2},1032,["id"])):g("",!0),t&&t.style.opacity&&t.style["--l-barrage-offset"]?(u(),i(o,{key:1,class:"l-barrage-item",id:t.id,count:t.count,style:f([t.style]),onAnimationend:a=>e.animationend(t),onAnimationstart:a=>e.animationstart(t),onTouchcancel:a=>e.touchend(t),onTouchstart:a=>e.touchstart(t),onTouchend:a=>e.touchend(t)},{default:c((()=>[h(e.$slots,"default",{content:t.content},void 0,!0)])),_:2},1032,["id","count","style","onAnimationend","onAnimationstart","onTouchcancel","onTouchstart","onTouchend"])):g("",!0)],64)))),128))])),_:3},8,["style"])}],["__scopeId","data-v-64388d25"]]),N=A({__name:"DanMu",setup(e){let t=!0;l("");const a=l([]);let s=0;const n=l([]);let o=200;const r=()=>{let e=setTimeout((()=>{0!=t&&0!=n.value.length&&(a.value.push(n.value[s]),s++,s>=n.value.length-1?(s=0,o=d(),r()):(o=d(),r())),clearInterval(e)}),o)};function d(e,t){let a=1500,l=200;n.value.length<10&&(a=15e3,l=9e3),n.value.length>=10&&n.value.length<20&&(a=11e3,l=7e3),n.value.length>=20&&n.value.length<70&&(a=3e3,l=700),n.value.length>=70&&n.value.length<100&&(a=2e3,l=300);const s=a-l+1,o=new Uint32Array(1);return window.crypto.getRandomValues(o),l+o[0]%s}return j((()=>{(async()=>{let e=await D.SY.BroadcastIndex({});200==e.code&&(n.value=e.data,r())})()})),C((()=>{t=!1})),(e,t)=>{const l=k,s=m,n=B(_("l-barrage"),H);return u(),i(s,{style:{position:"relative",width:"750rpx",height:"360rpx","padding-top":"20rpx"}},{default:c((()=>[x(s,{style:{height:"350rpx"}},{default:c((()=>[x(n,{data:a.value},{default:c((({content:e})=>[x(s,{class:"",style:{height:"60rpx"}},{default:c((()=>[x(s,{style:{display:"flex",background:"rgba(0,0,0,0.2)",height:"36rpx",padding:"0 10rpx","line-height":"36rpx","border-radius":"4rpx"}},{default:c((()=>[1==e.scene?(u(),i(s,{key:0,class:"",style:{overflow:"hidden",color:"aliceblue",display:"flex"}},{default:c((()=>[v(" 感恩 "),x(s,{class:""},{default:c((()=>[x(l,{style:{width:"32rpx",height:"32rpx","border-radius":"50%","margin-top":"4rpx"},src:e.user_avatar,mode:""},null,8,["src"])])),_:2},1024),b("span",{style:{color:"red"}},w(e.user_name),1),v("祝福 "),b("span",{style:{color:"#FFC690"}},w(e.receive_user_name),1),x(s,{class:""},{default:c((()=>[x(l,{style:{width:"32rpx",height:"32rpx","border-radius":"50%","margin-top":"4rpx"},src:e.icon_url,mode:""},null,8,["src"])])),_:2},1024),v("x"+w(e.pay_num),1)])),_:2},1024)):g("",!0),3==e.scene?(u(),i(s,{key:1,class:"",style:{overflow:"hidden",color:"aliceblue"}},{default:c((()=>[v(" 感恩 "),b("span",{style:{color:"red"}},w(e.user_name),1),v("送出 🌹x"+w(e.pay_num),1)])),_:2},1024)):g("",!0)])),_:2},1024)])),_:2},1024),x(s,{class:"",style:{height:"80rpx","font-size":"36rpx"}},{default:c((()=>[2==e.scene?(u(),i(s,{key:0,class:"",style:{overflow:"hidden",color:"#FFE21D",display:"flex",background:"rgba(0,0,0,0.2)",height:"66rpx",padding:"0 10rpx","line-height":"66rpx","border-radius":"4rpx","font-weight":"600"}},{default:c((()=>[v(" 恭喜阳光少年 "),b("span",{style:{color:"#E45050"}},w(e.receive_user_name),1),v(" 成为阳光CHO ,感恩所有为"),b("span",{style:{color:"#E45050"}},w(e.receive_user_name),1),v("送出的祝福👏🎉 ")])),_:2},1024)):g("",!0)])),_:2},1024)])),_:1},8,["data"])])),_:1})])),_:1})}}},[["__scopeId","data-v-c7ad8377"]]);export{N as D};
|