mirror of
https://github.com/talktao/Vue3-Vite-Vant-TS-H5.git
synced 2025-04-06 03:57:55 +08:00
add:顶部标题组件封装
This commit is contained in:
parent
56bae1408e
commit
a19322b34b
55
src/components/CustomHeader.vue
Normal file
55
src/components/CustomHeader.vue
Normal 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>
|
Loading…
x
Reference in New Issue
Block a user