2 lines
4.8 KiB
JavaScript
2 lines
4.8 KiB
JavaScript
"use strict";const e=require("../../../common/vendor.js"),t=require("./mpjs.js"),i=require("./bindingx.js"),n={},s={name:"fui-fab",mixins:[t.mpjs,i.bindingx],emits:["click","change","opensetting","launchapp","contact"],props:{fabs:{type:Array,default:()=>[]},nameKey:{type:String,default:"name"},srcKey:{type:String,default:"src"},textKey:{type:String,default:"text"},position:{type:String,default:"right"},distance:{type:[Number,String],default:80},bottom:{type:[Number,String],default:120},width:{type:[Number,String],default:108},background:{type:String,default:""},color:{type:String,default:"#fff"},mask:{type:Boolean,default:!0},maskBackground:{type:String,default:"rgba(0,0,0,.6)"},maskClosable:{type:Boolean,default:!1},zIndex:{type:[Number,String],default:99},isDrag:{type:Boolean,default:!1},openType:{type:String,default:""},appParameter:{type:String,default:""},lang:{type:String,default:"en"},sessionFrom:{type:String,default:""},sendMessageTitle:{type:String,default:""},sendMessagePath:{type:String,default:""},sendMessageImg:{type:String,default:""},showMessageCard:{type:Boolean,default:!1}},computed:{getStyles(){let e=`bottom:${this.bottom}rpx;z-index:${this.zIndex};`;return"left"===this.position?e+=`left:${this.distance}rpx;`:e+=`right:${this.distance}rpx;`,e},getStyle(){return`background:${this.maskBackground};z-index:${Number(this.zIndex)-10};`},getBgColor(){return this.background}},watch:{isShow(e){this.$emit("change",{isShow:e})},position(e){this.resetNum++,this.$nextTick((()=>{setTimeout((()=>{this._getSize()}),80)}))}},data:()=>({isApp:0,isShow:!1,isHidden:!0,timer:null,maxWidth:0,maxHeight:0,eLeft:0,eTop:0,resetNum:0}),beforeUnmount(){clearTimeout(this.timer),this.timer=null},mounted(){this.$nextTick((()=>{setTimeout((()=>{this._getSize()}),50)}))},methods:{stop(){},_getSize(){if(!this.isDrag)return;const t=e.index.getSystemInfoSync();e.index.createSelectorQuery().in(this).select(".fui-fab__btn-wrap").boundingClientRect().exec((e=>{e&&(this.maxWidth=t.windowWidth-e[0].width-e[0].left,this.maxHeight=t.windowHeight-e[0].height-e[0].top,this.eLeft=e[0].left||0,this.eTop=e[0].top||0)}))},handleClick:function(e,t){this.isHidden=!1,clearTimeout(this.timer),this.$nextTick((()=>{-1===t&&this.fabs.length>0?this.isShow=!this.isShow:(this.$emit("click",{index:t}),this.isShow=!1),this.isShow||(this.timer=setTimeout((()=>{this.isHidden=!0}),250))}))},maskClick(e){this.maskClosable&&(this.isShow=!1,this.timer=setTimeout((()=>{this.isHidden=!0}),250))},bindopensetting({detail:e={}}={}){this.$emit("opensetting",e)},bindlaunchapp({detail:e={}}={}){this.$emit("launchapp",e)},bindcontact({detail:e={}}={}){this.$emit("contact",e)}}};if(!Array){e.resolveComponent("fui-icon")()}Math,"function"==typeof n&&n(s);const a=e._export_sfc(s,[["render",function(t,i,n,s,a,o){return e.e({a:n.mask},n.mask?{b:a.isShow?1:"",c:e.s(o.getStyle),d:e.o(((...e)=>o.maskClick&&o.maskClick(...e)))}:{},{e:e.f(n.fabs,((t,i,s)=>e.e({a:t[n.textKey]},t[n.textKey]?{b:e.t(t[n.textKey]),c:(t.size||32)+"rpx",d:t.color||"#fff",e:"left"===n.position?"left":"right"}:{},{f:t[n.nameKey]},t[n.nameKey]?{g:"94cd6d89-0-"+s,h:e.p({name:t[n.nameKey],color:t.abbrColor||"#fff",size:t.abbrSize||64})}:{},{i:!t[n.nameKey]&&t[n.srcKey]},!t[n.nameKey]&&t[n.srcKey]?{j:t[n.srcKey],k:(t.width||56)+"rpx",l:(t.height||56)+"rpx",m:(t.radius||0)+"rpx"}:{},{n:!t[n.nameKey]&&!t[n.srcKey]&&t.abbr},t[n.nameKey]||t[n.srcKey]||!t.abbr?{}:{o:e.t(t.abbr),p:(t.abbrSize||36)+"rpx",q:(t.abbrSize||36)+"rpx",r:t.abbrColor||"#fff"},{s:o.getBgColor||t.background?"":1,t:t.background||o.getBgColor,v:t.openType},t.openType?{w:t.openType,x:t.appParameter,y:t.lang,z:t.sessionFrom,A:t.sendMessageTitle,B:t.sendMessagePath,C:t.sendMessageImg,D:t.showMessageCard,E:e.o(((...e)=>o.bindcontact&&o.bindcontact(...e)),i),F:e.o(((...e)=>o.bindopensetting&&o.bindopensetting(...e)),i),G:e.o(((...e)=>o.bindlaunchapp&&o.bindlaunchapp(...e)),i)}:{},{H:i,I:e.o((e=>o.handleClick(e,i)),i)}))),f:n.width+"rpx",g:n.width+"rpx",h:e.n("left"===n.position?"fui-fab__button-left":"fui-fab__button-right"),i:a.isHidden?1:"",j:a.isShow?1:"",k:"left"===n.position?1:"",l:"right"===n.position?1:"",m:e.p({name:"plus",color:n.color,size:80}),n:a.isShow?1:"",o:n.openType},n.openType?{p:n.openType,q:n.appParameter,r:n.lang,s:n.sessionFrom,t:n.sendMessageTitle,v:n.sendMessagePath,w:n.sendMessageImg,x:n.showMessageCard,y:e.o(((...e)=>o.bindcontact&&o.bindcontact(...e))),z:e.o(((...e)=>o.bindopensetting&&o.bindopensetting(...e))),A:e.o(((...e)=>o.bindlaunchapp&&o.bindlaunchapp(...e)))}:{},{B:o.getBgColor?"":1,C:n.width+"rpx",D:n.width+"rpx",E:o.getBgColor,F:e.o((e=>o.handleClick(e,-1))),G:n.isDrag?0:1,H:a.maxWidth,I:a.maxHeight,J:a.eLeft,K:a.eTop,L:a.isApp,M:a.resetNum,N:e.n("left"===n.position?"fui-fab__wrap-left":"fui-fab__wrap-right"),O:e.s(o.getStyles),P:e.o(((...e)=>o.stop&&o.stop(...e)))})}],["__scopeId","data-v-94cd6d89"]]);wx.createComponent(a);
|