add:顶部标题组件封装

This commit is contained in:
talktao 2022-03-18 22:35:49 +08:00
parent 56bae1408e
commit a19322b34b

View File

@ -0,0 +1,55 @@
<script setup lang="ts">
import { ref } from 'vue'
import { useRoute, useRouter } from 'vue-router'
interface topTitleProps {
title?: string,
leftIcon?: string,
leftText?: string,
rightText?: string,
color?: string
}
// props
withDefaults(defineProps<topTitleProps>(), {
title: '',
leftIcon: 'arrow-left',
leftText: '',
rightText: '',
color: '#333'
})
const emit = defineEmits(['clickLeft', 'clickRight'])
const route = useRoute()
const router = useRouter()
const active = ref(0)
const clickLeft = () => {
if (window.history.length > 1) {
router.back();
} else {
router.push("/");
}
}
const clickRight = () => {
emit("clickRight")
}
</script>
<template>
<van-sticky>
<van-nav-bar :title="title" @click-left="clickLeft" @click-right="clickRight" left-arrow>
<template #left> <van-icon :color="color" size="20" :name="leftIcon" /><span :style="{color}">{{ leftText }}</span> </template>
<template @click-right="onClickRight" #right>
<span :style="{color}">{{ rightText }}</span>
</template>
</van-nav-bar>
</van-sticky>
</template>
<style lang="scss" scoped>
</style>