2 lines
4.2 KiB
JavaScript
Executable File
2 lines
4.2 KiB
JavaScript
Executable File
import{e as t,o as i,c as o,w as e,x as n,a as s,f as r,d as l,r as a,v as c,b as h,t as f,F as u,i as _,g as d,h as p}from"./index.ed795884.js";import{_ as b}from"./uni-icons.94a4beb3.js";import{r as g}from"./uni-app.es.e9ed3499.js";import{_ as m}from"./plugin-vue_export-helper.21dcd24c.js";var y=m({name:"UniFab",emits:["fabClick","trigger"],props:{pattern:{type:Object,default:()=>({})},horizontal:{type:String,default:"left"},vertical:{type:String,default:"bottom"},direction:{type:String,default:"horizontal"},content:{type:Array,default:()=>[]},show:{type:Boolean,default:!1},popMenu:{type:Boolean,default:!0}},data:()=>({fabShow:!1,isShow:!1,isAndroidNvue:!1,styles:{color:"#3c3e49",selectedColor:"#007AFF",backgroundColor:"#fff",buttonColor:"#007AFF",iconColor:"#fff"}}),computed:{contentWidth(t){return 55*(this.content.length+1)+15+"px"},contentWidthMin:()=>"55px",boxWidth(){return this.getPosition(3,"horizontal")},boxHeight(){return this.getPosition(3,"vertical")},leftBottom(){return this.getPosition(0,"left","bottom")},rightBottom(){return this.getPosition(0,"right","bottom")},leftTop(){return this.getPosition(0,"left","top")},rightTop(){return this.getPosition(0,"right","top")},flexDirectionStart(){return this.getPosition(1,"vertical","top")},flexDirectionEnd(){return this.getPosition(1,"vertical","bottom")},horizontalLeft(){return this.getPosition(2,"horizontal","left")},horizontalRight(){return this.getPosition(2,"horizontal","right")}},watch:{pattern:{handler(t,i){this.styles=Object.assign({},this.styles,t)},deep:!0}},created(){this.isShow=this.show,0===this.top&&(this.fabShow=!0),this.styles=Object.assign({},this.styles,this.pattern)},methods:{_onClick(){this.$emit("fabClick"),this.popMenu&&(this.isShow=!this.isShow)},open(){this.isShow=!0},close(){this.isShow=!1},_onItemClick(t,i){this.$emit("trigger",{index:t,item:i})},getPosition(t,i,o){return 0===t?this.horizontal===i&&this.vertical===o:1===t?this.direction===i&&this.vertical===o:2===t?this.direction===i&&this.horizontal===o:this.isShow&&this.direction===i?this.contentWidth:this.contentWidthMin}}},[["render",function(m,y,x,v,C,k){const S=_,w=d,z=p,B=g(t("uni-icons"),b);return i(),o(S,{class:"uni-cursor-point"},{default:e((()=>[x.popMenu&&(k.leftBottom||k.rightBottom||k.leftTop||k.rightTop)&&x.content.length>0?(i(),o(S,{key:0,class:n([{"uni-fab--leftBottom":k.leftBottom,"uni-fab--rightBottom":k.rightBottom,"uni-fab--leftTop":k.leftTop,"uni-fab--rightTop":k.rightTop},"uni-fab"])},{default:e((()=>[s(S,{class:n([{"uni-fab__content--left":"left"===x.horizontal,"uni-fab__content--right":"right"===x.horizontal,"uni-fab__content--flexDirection":"vertical"===x.direction,"uni-fab__content--flexDirectionStart":k.flexDirectionStart,"uni-fab__content--flexDirectionEnd":k.flexDirectionEnd,"uni-fab__content--other-platform":!C.isAndroidNvue},"uni-fab__content"]),style:c({width:k.boxWidth,height:k.boxHeight,backgroundColor:C.styles.backgroundColor}),elevation:"5"},{default:e((()=>[k.flexDirectionStart||k.horizontalLeft?(i(),o(S,{key:0,class:"uni-fab__item uni-fab__item--first"})):r("",!0),(i(!0),l(u,null,a(x.content,((t,r)=>(i(),o(S,{key:r,class:n([{"uni-fab__item--active":C.isShow},"uni-fab__item"]),onClick:i=>k._onItemClick(r,t)},{default:e((()=>[s(w,{src:t.active?t.selectedIconPath:t.iconPath,class:"uni-fab__item-image",mode:"aspectFit"},null,8,["src"]),s(z,{class:"uni-fab__item-text",style:c({color:t.active?C.styles.selectedColor:C.styles.color})},{default:e((()=>[h(f(t.text),1)])),_:2},1032,["style"])])),_:2},1032,["class","onClick"])))),128)),k.flexDirectionEnd||k.horizontalRight?(i(),o(S,{key:1,class:"uni-fab__item uni-fab__item--first"})):r("",!0)])),_:1},8,["class","style"])])),_:1},8,["class"])):r("",!0),s(S,{class:n([{"uni-fab__circle--leftBottom":k.leftBottom,"uni-fab__circle--rightBottom":k.rightBottom,"uni-fab__circle--leftTop":k.leftTop,"uni-fab__circle--rightTop":k.rightTop,"uni-fab__content--other-platform":!C.isAndroidNvue},"uni-fab__circle uni-fab__plus"]),style:c({"background-color":C.styles.buttonColor}),onClick:k._onClick},{default:e((()=>[s(B,{class:n(["fab-circle-icon",{"uni-fab__plus--active":C.isShow&&x.content.length>0}]),type:"plusempty",color:C.styles.iconColor,size:"32"},null,8,["color","class"])])),_:1},8,["class","style","onClick"])])),_:1})}],["__scopeId","data-v-228e56b2"]]);export{y as _};
|