2025/2/8第一次更新

This commit is contained in:
爱吃咸鱼小猫咪
2025-02-08 18:50:38 +08:00
commit d7af560866
26519 changed files with 5046029 additions and 0 deletions
@@ -0,0 +1 @@
"use strict";exports.bindingx={};
@@ -0,0 +1 @@
"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);
@@ -0,0 +1,6 @@
{
"component": true,
"usingComponents": {
"fui-icon": "../fui-icon/fui-icon"
}
}
@@ -0,0 +1,2 @@
<wxs src="./index.wxs" module="handler"/>
<view catchtouchmove="{{P}}" class="{{['data-v-94cd6d89', virtualHostClass]}}" style="{{virtualHostStyle}}"><view wx:if="{{a}}" class="{{['fui-fab__mask', 'data-v-94cd6d89', b && 'fui-fab__mask-show']}}" style="{{c}}" ref="fui_mask_ani" catchtap="{{d}}"></view><view data-disabled="{{G}}" data-width="{{H}}" data-height="{{I}}" data-left="{{J}}" data-top="{{K}}" data-app="{{L}}" prop="{{M}}" change:prop="{{handler.fabreset}}" bindtouchstart="{{handler.touchstart}}" bindtouchmove="{{handler.touchmove}}" bindmousedown="{{handler.mousedown}}" class="{{['fui-fab__btn-wrap', 'data-v-94cd6d89', N]}}" style="{{O}}"><view class="{{['fui-fab__btn-list', 'data-v-94cd6d89', i && 'fui-fab__btn-hidden', j && 'fui-fab__list-ani', k && 'fui-fab__list-left', l && 'fui-fab__list-right']}}" ref="fui_fab_ani"><view wx:for="{{e}}" wx:for-item="btn" wx:key="H" class="{{['fui-fab__button-box', 'data-v-94cd6d89', h]}}" catchtap="{{btn.I}}"><text wx:if="{{btn.a}}" class="fui-fab__btn-text data-v-94cd6d89" style="{{'font-size:' + btn.c + ';' + ('color:' + btn.d) + ';' + ('text-align:' + btn.e)}}">{{btn.b}}</text><view class="{{['fui-fab__button', 'data-v-94cd6d89', btn.s && 'fui-fab__btn-color']}}" style="{{'width:' + f + ';' + ('height:' + g) + ';' + ('background:' + btn.t)}}"><fui-icon wx:if="{{btn.f}}" class="data-v-94cd6d89" virtualHostClass="data-v-94cd6d89" u-i="{{btn.g}}" bind:__l="__l" u-p="{{btn.h}}"></fui-icon><image wx:if="{{btn.i}}" class="data-v-94cd6d89" src="{{btn.j}}" style="{{'width:' + btn.k + ';' + ('height:' + btn.l) + ';' + ('border-radius:' + btn.m)}}" mode="widthFix"></image><text wx:if="{{btn.n}}" class="fui-fab__btn-abbr data-v-94cd6d89" style="{{'font-size:' + btn.p + ';' + ('line-height:' + btn.q) + ';' + ('color:' + btn.r)}}">{{btn.o}}</text></view><button wx:if="{{btn.v}}" class="fui-fab__opentype-btn data-v-94cd6d89" open-type="{{btn.w}}" app-parameter="{{btn.x}}" lang="{{btn.y}}" sessionFrom="{{btn.z}}" sendMessageTitle="{{btn.A}}" sendMessagePath="{{btn.B}}" sendMessageImg="{{btn.C}}" showMessageCard="{{btn.D}}" bindcontact="{{btn.E}}" bindopensetting="{{btn.F}}" bindlaunchapp="{{btn.G}}"></button></view></view><view class="{{['fui-fab__btn-main', 'data-v-94cd6d89', B && 'fui-fab__btn-color']}}" style="{{'width:' + C + ';' + ('height:' + D) + ';' + ('background:' + E)}}" catchtap="{{F}}"><view class="{{['fui-fab__btn-inner', 'data-v-94cd6d89', n && 'fui-fab__btn-ani']}}" ref="fui_fm_ani"><block wx:if="{{$slots.d}}"><slot></slot></block><block wx:else><fui-icon wx:if="{{m}}" class="data-v-94cd6d89" virtualHostClass="data-v-94cd6d89" u-i="94cd6d89-1" bind:__l="__l" u-p="{{m}}"></fui-icon></block></view><button wx:if="{{o}}" class="fui-fab__opentype-btn data-v-94cd6d89" open-type="{{p}}" app-parameter="{{q}}" lang="{{r}}" sessionFrom="{{s}}" sendMessageTitle="{{t}}" sendMessagePath="{{v}}" sendMessageImg="{{w}}" showMessageCard="{{x}}" bindcontact="{{y}}" bindopensetting="{{z}}" bindlaunchapp="{{A}}"></button></view></view></view>
@@ -0,0 +1 @@
.fui-fab__mask.data-v-94cd6d89{position:fixed;left:0;right:0;top:0;bottom:0;opacity:0;visibility:hidden;transition-property:visibility,opacity;transition-duration:.25s}.fui-fab__mask-show.data-v-94cd6d89{opacity:1;visibility:visible}.fui-fab__btn-wrap.data-v-94cd6d89{display:flex;flex-direction:column;justify-content:center;position:fixed;bottom:120rpx}.fui-fab__wrap-left.data-v-94cd6d89{align-items:flex-start;left:80rpx}.fui-fab__wrap-right.data-v-94cd6d89{align-items:flex-end;right:80rpx}.fui-fab__btn-list.data-v-94cd6d89{display:flex;visibility:hidden;transition:all .25s ease-in-out;transform:scale3d(0,0,1);opacity:0;flex-direction:column}.fui-fab__list-left.data-v-94cd6d89{transform-origin:0 100%;align-items:flex-start}.fui-fab__list-right.data-v-94cd6d89{transform-origin:100% 100%;align-items:flex-end}.fui-fab__btn-hidden.data-v-94cd6d89{width:0;height:0}.fui-fab__list-ani.data-v-94cd6d89{opacity:1;transform:scaleZ(1);visibility:visible}.fui-fab__button-box.data-v-94cd6d89{display:flex;flex-direction:row;justify-content:flex-end;align-items:center;margin-bottom:32rpx;position:relative}.fui-fab__button-left.data-v-94cd6d89{flex-direction:row-reverse;justify-content:flex-start}.fui-fab__button-right.data-v-94cd6d89{flex-direction:row;justify-content:flex-end}.fui-fab__btn-text.data-v-94cd6d89{box-sizing:border-box;padding-left:24rpx;padding-right:24rpx;font-weight:400}.fui-fab__button.data-v-94cd6d89{display:flex;border-radius:50%;flex-direction:row;align-items:center;justify-content:center}.fui-fab__btn-abbr.data-v-94cd6d89{text-align:center;font-weight:400}.fui-fab__btn-main.data-v-94cd6d89{display:flex;border-radius:50%;box-shadow:0 10rpx 14rpx rgba(0,0,0,.1);align-items:center;justify-content:center;transform:rotate(0);overflow:hidden;position:relative}.fui-fab__btn-inner.data-v-94cd6d89{display:flex;transform:rotate(0);transition:transform .25s;align-items:center;justify-content:center}.fui-fab__btn-ani.data-v-94cd6d89{transform:rotate(135deg)}.fui-fab__btn-color.data-v-94cd6d89{background:var(--fui-color-primary, #465CFF)!important}.fui-fab__opentype-btn.data-v-94cd6d89{position:absolute;left:0;right:0;top:0;bottom:0;border-width:0;background-color:rgba(0,0,0,0);opacity:0;z-index:1}.fui-fab__opentype-btn.data-v-94cd6d89:after{border-width:0}
@@ -0,0 +1,126 @@
// 本文件由FirstUI授权予佛山市航电梦联网络科技有限公司(会员ID:112 7,营业执照号:91 4 4 0 605 MA 556H1KX H)专用,请尊重知识产权,勿私下传播,违者追究法律责任。
var movable = {
width: 100,
height: 100,
disabled: false,
left: 0,
top: 0,
app: false
}
function isPC() {
if (typeof navigator !== 'object') return false;
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length - 1; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
}
var isH5 = false
if (typeof window === 'object') isH5 = true
function setInitValue(dataset) {
movable.width = +dataset.width
movable.height = +dataset.height
movable.top = +dataset.top
movable.left = +dataset.left
//H5获取bool值为undefined
movable.disabled = (+dataset.disabled) == 1 ? true : false
movable.app = (+dataset.app) == 1 ? true : false
}
function touchstart(e, ins) {
var state = e.instance.getState()
var touch = e.touches[0] || e.changedTouches[0];
if (isH5 && isPC()) {
touch = e;
}
var dataset = e.instance.getDataset()
state.startX = touch.clientX
state.startY = touch.clientY
setInitValue(dataset)
}
function styleChange(left, top, ins) {
if (!ins) return;
var mview = ins.selectComponent('.fui-fab__btn-wrap');
if (!mview) return;
mview.setStyle({
transform: 'translate3d(' + left + 'px,' + top + 'px,0)'
})
}
function touchmove(e, ins, events) {
if (movable.disabled) return;
if (e.preventDefault) {
e.preventDefault()
}
if (movable.app && event && event.preventDefault && event.cancelable) {
event.preventDefault()
}
var state = {}
var touch = {}
if (isH5 && isPC()) {
touch = e;
if (events && events.instance) {
state = events.instance.getState()
}
} else {
touch = e.touches[0] || e.changedTouches[0]
state = e.instance.getState()
}
var pageX = touch.clientX;
var pageY = touch.clientY;
var left = pageX - state.startX + (state.lastLeft || 0);
left = left < -movable.left ? -movable.left : left;
left = left > movable.width ? movable.width : left;
state.startX = pageX
var top = pageY - state.startY + (state.lastTop || 0);
top = top < -movable.top ? -movable.top : top;
top = top > movable.height ? movable.height : top;
state.startY = pageY
state.lastLeft = left
state.lastTop = top
styleChange(left, top, ins)
}
var _movable = false;
function mousedown(e, ins) {
if (!isH5 || !isPC()) return
touchstart(e, ins)
_movable = true
window.onmousemove = function(event) {
if (!isH5 || !isPC() || !_movable) return
touchmove(event, ins, e)
}
window.onmouseup = function(event) {
if (!isH5 || !isPC() || !_movable) return
_movable = false
}
}
function fabreset(reset, oldreset, owner, ins) {
if (reset > 0) {
var state = ins.getState()
state.startY = 0;
state.startX = 0;
state.lastLeft = 0;
state.lastTop = 0;
styleChange(0, 0, owner)
}
}
module.exports = {
touchstart: touchstart,
touchmove: touchmove,
mousedown: mousedown,
fabreset: fabreset
}
@@ -0,0 +1 @@
"use strict";exports.mpjs={};