Files
cheflinkuser/src/components/navbar/navbar.vue
T
2026-03-17 12:03:54 +08:00

51 lines
1.1 KiB
Vue

<script setup lang="ts">
const props = withDefaults(defineProps<{
title?: string;
fixed?: boolean
showLeft?: boolean
customClass?: string
}>(), {
fixed: true,
showLeft: true
});
function handleClickLeft() {
// 页面栈不足时,navigateBack 会失败;兜底回首页
const pages = getCurrentPages?.() || []
if (pages.length <= 1) {
uni.switchTab({ url: '/pages/home/index' })
return
}
uni.navigateBack()
}
</script>
<template>
<wd-navbar
:title="props.title"
safeAreaInsetTop
:fixed="props.fixed"
:placeholder="props.fixed"
:bordered="false"
:custom-class="props.customClass"
@click-left="handleClickLeft">
<template #left>
<view class="shrink-0" v-if="showLeft">
<view class="i-carbon:chevron-left text-50rpx text-primary ml-[-10rpx]"></view>
</view>
</template>
<template #right>
<slot name="right"></slot>
</template>
</wd-navbar>
</template>
<style scoped lang="scss">
:deep(.wd-navbar) {
z-index: 2 !important;
.wd-navbar__title {
font-weight: 500 !important;
}
}
</style>