2 lines
13 KiB
JavaScript
2 lines
13 KiB
JavaScript
import{v as t,aR as s,b1 as e,b4 as i,b5 as o,aH as a,o as n,j as l,w as r,a0 as h,B as p,aX as c,C as u,D as d,m,y as f,E as g,h as y,z as k,aY as b,t as w,a as C,O as x,b6 as S,e as T,i as $,I as _,l as P,F as v,a2 as B,G as A,H as D}from"./index-90c12cc1.js";import{_ as z}from"./_plugin-vue_export-helper.1b428a4d.js";import{_ as M}from"./u-icon.ec8b667f.js";const R=z({name:"PageMeta",setup(e,{emit:i}){t((()=>{s((t=>{i("resize",t)}))}))},props:{backgroundTextStyle:{type:String,default:"dark",validator:t=>-1!==["dark","light"].indexOf(t)},backgroundColor:{type:String,default:"#ffffff"},backgroundColorTop:{type:String,default:"#ffffff"},backgroundColorBottom:{type:String,default:"#ffffff"},scrollTop:{type:String,default:""},scrollDuration:{type:Number,default:300},pageStyle:{type:String,default:""},enablePullDownRefresh:{type:[Boolean,String],default:!1},rootFontSize:{type:String,default:""}},created(){const t=e()[0];this.$pageVm=t.$vm||t,this.$watch("backgroundTextStyle",(()=>{this.setBackgroundTextStyle()})),this.$watch((()=>[this.rootFontSize,this.pageStyle]),(()=>{this.setPageMeta()})),this.$watch((()=>[this.backgroundColor,this.backgroundColorTop,this.backgroundColorBottom]),(()=>{this.setBackgroundColor()})),this.$watch((()=>[this.scrollTop,this.scrollDuration]),(()=>{this.pageScrollTo()}))},beforeMount(){this.setBackgroundColor(),(this.rootFontSize||this.pageStyle)&&this.setPageMeta(),this.backgroundTextStyle&&this.setBackgroundTextStyle()},mounted(){this.scrollTop&&this.pageScrollTo()},methods:{setPullDownRefresh(t,s){t.setStyle({pullToRefresh:{support:s,style:"Android"===plus.os.name?"circle":"default"}})},setPageMeta(){i({pageStyle:this.pageStyle,rootFontSize:this.rootFontSize})},setBackgroundTextStyle(){},setBackgroundColor(){},pageScrollTo(){let t=String(this.scrollTop);-1!==t.indexOf("rpx")&&(t=o(t.replace("rpx",""))),t=parseFloat(t),isNaN(t)||a({scrollTop:t,duration:this.scrollDuration,success:()=>{}})}}},[["render",function(t,s,e,i,o,a){const c=p;return n(),l(c,{style:{display:"none"}},{default:r((()=>[h(t.$slots,"default")])),_:3})}]]),E={name:"Keypress",props:{disable:{type:Boolean,default:!1}},mounted(){const t={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]};document.addEventListener("keyup",(s=>{if(this.disable)return;const e=Object.keys(t).find((e=>{const i=s.key,o=t[e];return o===i||Array.isArray(o)&&o.includes(i)}));e&&setTimeout((()=>{this.$emit(e,{})}),0)}))},render:()=>{}};class I{constructor(t,s){this.options=t,this.animation=c({...t}),this.currentStepAnimates={},this.next=0,this.$=s}_nvuePushAnimates(t,s){let e=this.currentStepAnimates[this.next],i={};if(i=e||{styles:{},config:{}},O.includes(t)){i.styles.transform||(i.styles.transform="");let e="";"rotate"===t&&(e="deg"),i.styles.transform+=`${t}(${s+e}) `}else i.styles[t]=`${s}`;this.currentStepAnimates[this.next]=i}_animateRun(t={},s={}){let e=this.$.$refs.ani.ref;if(e)return new Promise(((i,o)=>{nvueAnimation.transition(e,{styles:t,...s},(t=>{i()}))}))}_nvueNextAnimate(t,s=0,e){let i=t[s];if(i){let{styles:o,config:a}=i;this._animateRun(o,a).then((()=>{s+=1,this._nvueNextAnimate(t,s,e)}))}else this.currentStepAnimates={},"function"==typeof e&&e(),this.isEnd=!0}step(t={}){return this.animation.step(t),this}run(t){this.$.animationData=this.animation.export(),this.$.timer=setTimeout((()=>{"function"==typeof t&&t()}),this.$.durationTime)}}const O=["matrix","matrix3d","rotate","rotate3d","rotateX","rotateY","rotateZ","scale","scale3d","scaleX","scaleY","scaleZ","skew","skewX","skewY","translate","translate3d","translateX","translateY","translateZ"];function j(t,s){if(s)return clearTimeout(s.timer),new I(t,s)}O.concat(["opacity","backgroundColor"],["width","height","left","right","top","bottom"]).forEach((t=>{I.prototype[t]=function(...s){return this.animation[t](...s),this}}));const X=z({name:"uniPopup",components:{UTransition:z({name:"uniTransition",emits:["click","change"],props:{show:{type:Boolean,default:!1},modeClass:{type:[Array,String],default:()=>"fade"},duration:{type:Number,default:300},styles:{type:Object,default:()=>({})},customClass:{type:String,default:""},onceRender:{type:Boolean,default:!1}},data:()=>({isShow:!1,transform:"",opacity:1,animationData:{},durationTime:300,config:{}}),watch:{show:{handler(t){t?this.open():this.isShow&&this.close()},immediate:!0}},computed:{stylesObject(){let t={...this.styles,"transition-duration":this.duration/1e3+"s"},s="";for(let e in t){s+=this.toLine(e)+":"+t[e]+";"}return s},transformStyles(){return"transform:"+this.transform+";opacity:"+this.opacity+";"+this.stylesObject}},created(){this.config={duration:this.duration,timingFunction:"ease",transformOrigin:"50% 50%",delay:0},this.durationTime=this.duration},methods:{init(t={}){t.duration&&(this.durationTime=t.duration),this.animation=j(Object.assign(this.config,t),this)},onClick(){this.$emit("click",{detail:this.isShow})},step(t,s={}){if(this.animation){for(let s in t)try{"object"==typeof t[s]?this.animation[s](...t[s]):this.animation[s](t[s])}catch(e){console.error(`方法 ${s} 不存在`)}return this.animation.step(s),this}},run(t){this.animation&&this.animation.run(t)},open(){clearTimeout(this.timer),this.transform="",this.isShow=!0;let{opacity:t,transform:s}=this.styleInit(!1);void 0!==t&&(this.opacity=t),this.transform=s,this.$nextTick((()=>{this.timer=setTimeout((()=>{this.animation=j(this.config,this),this.tranfromInit(!1).step(),this.animation.run(),this.$emit("change",{detail:this.isShow})}),20)}))},close(t){this.animation&&this.tranfromInit(!0).step().run((()=>{this.isShow=!1,this.animationData=null,this.animation=null;let{opacity:t,transform:s}=this.styleInit(!1);this.opacity=t||1,this.transform=s,this.$emit("change",{detail:this.isShow})}))},styleInit(t){let s={transform:""},e=(t,e)=>{"fade"===e?s.opacity=this.animationType(t)[e]:s.transform+=this.animationType(t)[e]+" "};return"string"==typeof this.modeClass?e(t,this.modeClass):this.modeClass.forEach((s=>{e(t,s)})),s},tranfromInit(t){let s=(t,s)=>{let e=null;"fade"===s?e=t?0:1:(e=t?"-100%":"0","zoom-in"===s&&(e=t?.8:1),"zoom-out"===s&&(e=t?1.2:1),"slide-right"===s&&(e=t?"100%":"0"),"slide-bottom"===s&&(e=t?"100%":"0")),this.animation[this.animationMode()[s]](e)};return"string"==typeof this.modeClass?s(t,this.modeClass):this.modeClass.forEach((e=>{s(t,e)})),this.animation},animationType:t=>({fade:t?1:0,"slide-top":`translateY(${t?"0":"-100%"})`,"slide-right":`translateX(${t?"0":"100%"})`,"slide-bottom":`translateY(${t?"0":"100%"})`,"slide-left":`translateX(${t?"0":"-100%"})`,"zoom-in":`scaleX(${t?1:.8}) scaleY(${t?1:.8})`,"zoom-out":`scaleX(${t?1:1.2}) scaleY(${t?1:1.2})`}),animationMode:()=>({fade:"opacity","slide-top":"translateY","slide-right":"translateX","slide-bottom":"translateY","slide-left":"translateX","zoom-in":"scale","zoom-out":"scale"}),toLine:t=>t.replace(/([A-Z])/g,"-$1").toLowerCase()}},[["render",function(t,s,e,i,o,a){const c=p;return u((n(),l(c,{ref:"ani",animation:o.animationData,class:m(e.customClass),style:f(a.transformStyles),onClick:a.onClick},{default:r((()=>[h(t.$slots,"default")])),_:3},8,["animation","class","style","onClick"])),[[d,o.isShow]])}]]),keypress:E},emits:["change","maskClick"],props:{animation:{type:Boolean,default:!0},type:{type:String,default:"center"},isMaskClick:{type:Boolean,default:null},maskClick:{type:Boolean,default:null},backgroundColor:{type:String,default:"none"},safeArea:{type:Boolean,default:!0},maskBackgroundColor:{type:String,default:"rgba(0, 0, 0, 0.4)"}},watch:{type:{handler:function(t){this.config[t]&&this[this.config[t]](!0)},immediate:!0},isDesktop:{handler:function(t){this.config[t]&&this[this.config[this.type]](!0)},immediate:!0},maskClick:{handler:function(t){this.mkclick=t},immediate:!0},isMaskClick:{handler:function(t){this.mkclick=t},immediate:!0},showPopup(t){document.getElementsByTagName("body")[0].style.overflow=t?"hidden":"visible"}},data(){return{duration:300,ani:[],showPopup:!1,showTrans:!1,popupWidth:0,popupHeight:0,config:{top:"top",bottom:"bottom",center:"center",left:"left",right:"right",message:"top",dialog:"center",share:"bottom"},maskClass:{position:"fixed",bottom:0,top:0,left:0,right:0,backgroundColor:"rgba(0, 0, 0, 0.4)"},transClass:{position:"fixed",left:0,right:0},maskShow:!0,mkclick:!0,popupstyle:this.isDesktop?"fixforpc-top":"top"}},computed:{isDesktop(){return this.popupWidth>=500&&this.popupHeight>=500},bg(){return""===this.backgroundColor||"none"===this.backgroundColor?"transparent":this.backgroundColor}},mounted(){(()=>{const{windowWidth:t,windowHeight:s,windowTop:e,safeArea:i,screenHeight:o,safeAreaInsets:a}=b();this.popupWidth=t,this.popupHeight=s+(e||0),i&&this.safeArea?this.safeAreaInsets=a.bottom:this.safeAreaInsets=0})()},unmounted(){this.setH5Visible()},created(){null===this.isMaskClick&&null===this.maskClick?this.mkclick=!0:this.mkclick=null!==this.isMaskClick?this.isMaskClick:this.maskClick,this.animation?this.duration=300:this.duration=0,this.messageChild=null,this.clearPropagation=!1,this.maskClass.backgroundColor=this.maskBackgroundColor},methods:{setH5Visible(){document.getElementsByTagName("body")[0].style.overflow="visible"},closeMask(){this.maskShow=!1},disableMask(){this.mkclick=!1},clear(t){t.stopPropagation(),this.clearPropagation=!0},open(t){if(this.showPopup)return;t&&-1!==["top","center","bottom","left","right","message","dialog","share"].indexOf(t)||(t=this.type),this.config[t]?(this[this.config[t]](),this.$emit("change",{show:!0,type:t})):console.error("缺少类型:",t)},close(t){this.showTrans=!1,this.$emit("change",{show:!1,type:this.type}),clearTimeout(this.timer),this.timer=setTimeout((()=>{this.showPopup=!1}),300)},touchstart(){this.clearPropagation=!1},onTap(){this.clearPropagation?this.clearPropagation=!1:(this.$emit("maskClick"),this.mkclick&&this.close())},top(t){this.popupstyle=this.isDesktop?"fixforpc-top":"top",this.ani=["slide-top"],this.transClass={position:"fixed",left:0,right:0,backgroundColor:this.bg,borderRadius:"15px 15px 0 0"},t||(this.showPopup=!0,this.showTrans=!0,this.$nextTick((()=>{this.messageChild&&"message"===this.type&&this.messageChild.timerClose()})))},bottom(t){this.popupstyle="bottom",this.ani=["slide-bottom"],this.transClass={position:"fixed",left:0,right:0,bottom:0,paddingBottom:"0px",backgroundColor:this.bg,borderRadius:"15px 15px 0 0"},t||(this.showPopup=!0,this.showTrans=!0)},center(t){this.popupstyle="center",this.ani=["zoom-out","fade"],this.transClass={position:"fixed",display:"flex",flexDirection:"column",bottom:0,left:0,right:0,top:0,justifyContent:"center",alignItems:"center",borderRadius:"15px 15px 0 0"},t||(this.showPopup=!0,this.showTrans=!0)},left(t){this.popupstyle="left",this.ani=["slide-left"],this.transClass={position:"fixed",left:0,bottom:0,top:0,backgroundColor:this.bg,borderRadius:"15px 15px 0 0",display:"flex",flexDirection:"column"},t||(this.showPopup=!0,this.showTrans=!0)},right(t){this.popupstyle="right",this.ani=["slide-right"],this.transClass={position:"fixed",bottom:0,right:0,top:0,backgroundColor:this.bg,borderRadius:"15px 15px 0 0",display:"flex",flexDirection:"column"},t||(this.showPopup=!0,this.showTrans=!0)}}},[["render",function(t,s,e,i,o,a){const c=g("UTransition"),u=p,d=g("keypress");return o.showPopup?(n(),l(u,{key:0,class:m(["uni-popup",[o.popupstyle,a.isDesktop?"fixforpc-z-index":""]])},{default:r((()=>[y(u,{onTouchstart:a.touchstart},{default:r((()=>[o.maskShow?(n(),l(c,{key:"1",name:"mask","mode-class":"fade",styles:o.maskClass,duration:o.duration,show:o.showTrans,onClick:a.onTap},null,8,["styles","duration","show","onClick"])):k("",!0),y(c,{key:"2","mode-class":o.ani,name:"content",styles:o.transClass,duration:o.duration,show:o.showTrans,onClick:a.onTap},{default:r((()=>[y(u,{class:m(["uni-popup__wrapper",[o.popupstyle]]),style:f({backgroundColor:a.bg}),onClick:a.clear},{default:r((()=>[h(t.$slots,"default",{},void 0,!0)])),_:3},8,["style","class","onClick"])])),_:3},8,["mode-class","styles","duration","show","onClick"])])),_:3},8,["onTouchstart"]),o.maskShow?(n(),l(d,{key:0,onEsc:a.onTap},null,8,["onEsc"])):k("",!0)])),_:3},8,["class"])):k("",!0)}],["__scopeId","data-v-1a608e09"]]),Y=z({__name:"Popup",props:{title:{type:String,default:()=>""},mode:{type:String,default:()=>"bottom"},showCloseable:{type:Boolean,default:()=>!0},isMaskClick:{type:Boolean,default:()=>!0}},emits:["open","close"],setup(t,{expose:s,emit:e}){const i=t,{title:o,mode:a,showCloseable:c,isMaskClick:u}=w(i),d=C(),m=C(!1),f=()=>{m.value=!1,d.value.close()},g=t=>{t.show||e("close")};return C(5),x((()=>{})),S((()=>{})),s({show:()=>{B((()=>{m.value=!0,d.value.open(),e("open")}))},close:f}),(t,s)=>{const e=A(D("page-meta"),R),o=p,c=A(D("u-icon"),M);return n(),T(v,null,[y(e,{"page-style":"overflow:"+(m.value?"hidden":"visible")},null,8,["page-style"]),y(o,null,{default:r((()=>[y(X,{ref_key:"popup",ref:d,"is-mask-click":$(u),type:$(a),"background-color":"#fff",onChange:g},{default:r((()=>[y(o,{class:"popup_inner"},{default:r((()=>[i.title||i.showCloseable?(n(),l(o,{key:0,class:"head flex flex-lr__center"},{default:r((()=>[h(t.$slots,"leftOption",{},(()=>[y(o)]),!0),h(t.$slots,"title",{},(()=>[y(o,null,{default:r((()=>[_(P(i.title),1)])),_:1})]),!0),h(t.$slots,"rightOption",{},(()=>[y(o,null,{default:r((()=>[i.showCloseable?(n(),l(c,{key:0,color:"#000",name:"close",size:"16",onClick:f})):k("",!0)])),_:1})]),!0)])),_:3})):k("",!0),h(t.$slots,"default",{},void 0,!0)])),_:3})])),_:3},8,["is-mask-click","type"])])),_:3})],64)}}},[["__scopeId","data-v-631a0739"]]);export{Y as P};
|