You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
	
	
		
		
			
	
    
		
			
				
					
						                                                                                        | 
						 | 
						<!-- 装修基础组件:悬浮按钮 --><template>  <!-- 模态背景:展开时显示,点击后折叠 -->  <view class="modal-bg" v-if="fabRef?.isShow" @click="handleCollapseFab"></view>  <!-- 悬浮按钮 -->  <uni-fab    ref="fabRef"    horizontal="right"    vertical="bottom"    :direction="state.direction"    :pattern="state.pattern"    :content="state.content"    @trigger="handleOpenLink"  /></template><script setup>  /**   * 悬浮按钮   */
  import sheep from '@/sheep';  import { reactive, ref, unref } from 'vue';  import { onBackPress } from '@dcloudio/uni-app';
  // 定义属性
  const props = defineProps({    data: {      type: Object,      default() {},    }  })
  // 悬浮按钮配置: https://uniapp.dcloud.net.cn/component/uniui/uni-fab.html#fab-props
  const state = reactive({    // 可选样式配置项
    pattern: [],    // 展开菜单内容配置项
    content: [],    // 展开菜单显示方式:horizontal-水平显示,vertical-垂直显示
    direction: '',  });
  // 悬浮按钮引用
  const fabRef = ref(null);  // 按钮方向
  state.direction = props.data.direction;  props.data?.list.forEach((item) => {    // 按钮文字
    const text = props.data?.showText ? item.text : ''    // 生成内容配置项
    state.content.push({ iconPath: sheep.$url.cdn(item.imgUrl), url: item.url, text });    // 生成样式配置项
    state.pattern.push({ color: item.textColor });  });
  // 处理链接跳转
  function handleOpenLink(e) {    sheep.$router.go(e.item.url);  }
  // 折叠
  function handleCollapseFab() {    if (unref(fabRef)?.isShow) {      unref(fabRef)?.close();    }  }
  // 按返回值后,折叠悬浮按钮
  onBackPress(() => {    if (unref(fabRef)?.isShow) {      unref(fabRef)?.close();      return true;    }    return false;  });</script><style lang="scss" scoped>  /* 模态背景 */  .modal-bg {    position: fixed;    left: 0;    top: 0;    z-index: 11;    width: 100%;    height: 100%;    background-color: rgba(#000000, 0.4);  }</style>
  |