清空
This commit is contained in:
@@ -1,81 +0,0 @@
|
||||
<template>
|
||||
<!-- TODO-jj: 点击遮罩关闭 -->
|
||||
<view>
|
||||
<view v-if="data?.show === 1">
|
||||
<uni-fab
|
||||
ref="fabRef"
|
||||
:pattern="state.pattern"
|
||||
:content="state.content"
|
||||
horizontal="right"
|
||||
vertical="bottom"
|
||||
:direction="state.direction"
|
||||
@trigger="trigger"
|
||||
@fabClick="fabClick"
|
||||
:popMenu="true"
|
||||
></uni-fab>
|
||||
</view>
|
||||
<view :class="state.show ? 'float-bg' : ''" @click="onTap"></view>
|
||||
</view>
|
||||
</template>
|
||||
<script setup>
|
||||
import sheep from '@/sheep';
|
||||
import { computed, reactive, ref, unref, getCurrentInstance } from 'vue';
|
||||
import { onBackPress } from '@dcloudio/uni-app';
|
||||
const data = computed(() => sheep.$store('app').template.basic?.floatMenu);
|
||||
const state = reactive({
|
||||
pattern: [],
|
||||
content: [],
|
||||
direction: '',
|
||||
show: false,
|
||||
});
|
||||
|
||||
const fabRef = ref(null);
|
||||
const vm = getCurrentInstance();
|
||||
if (data.value?.mode === 1) {
|
||||
state.direction = 'vertical';
|
||||
} else {
|
||||
state.direction = 'horizontal';
|
||||
}
|
||||
data.value?.list.forEach((i) => {
|
||||
if (data.value?.isText === 0) {
|
||||
state.content.push({ iconPath: sheep.$url.cdn(i.src), url: i.url });
|
||||
} else {
|
||||
state.content.push({ iconPath: sheep.$url.cdn(i.src), text: i.title.text + '', url: i.url });
|
||||
}
|
||||
state.pattern.push({ color: i.title.color });
|
||||
});
|
||||
function trigger(e) {
|
||||
sheep.$router.go(e.item.url);
|
||||
}
|
||||
function onTap() {
|
||||
if (state.show) {
|
||||
state.show = false;
|
||||
vm.refs.fabRef.close();
|
||||
} else {
|
||||
state.show = true;
|
||||
vm.refs.fabRef.open();
|
||||
}
|
||||
}
|
||||
function fabClick() {
|
||||
state.show = !state.show;
|
||||
}
|
||||
onBackPress(() => {
|
||||
if (unref(fabRef).isShow) {
|
||||
unref(fabRef).close();
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.float-bg {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 11;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(#000000, 0.4);
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user