64 lines
1.2 KiB
Plaintext
64 lines
1.2 KiB
Plaintext
<template>
|
|
<view class="header">
|
|
<view class="header-left">
|
|
<text class="crumb">{{ breadcrumb }}</text>
|
|
</view>
|
|
|
|
<view class="header-right">
|
|
<view class="hbtn" @click="$emit('search')"><text>🔍</text></view>
|
|
<view class="hbtn" @click="$emit('refresh')"><text>⟳</text></view>
|
|
<view class="hbtn" @click="$emit('notify')">
|
|
<text>🔔</text>
|
|
<view class="dot" v-if="hasNotification"></view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup lang="uts">
|
|
defineProps<{
|
|
breadcrumb: string
|
|
hasNotification: boolean
|
|
}>()
|
|
|
|
defineEmits<{
|
|
(e:'search'): void
|
|
(e:'refresh'): void
|
|
(e:'notify'): void
|
|
}>()
|
|
</script>
|
|
|
|
<style>
|
|
.header{
|
|
height: 56px;
|
|
background:#fff;
|
|
border-bottom: 1px solid #eef2f7;
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content: space-between;
|
|
padding: 0 16px;
|
|
}
|
|
.crumb{ color:#374151; font-size:14px; }
|
|
|
|
.header-right{ display:flex; align-items:center; gap: 10px; }
|
|
.hbtn{
|
|
width: 34px;
|
|
height: 34px;
|
|
border-radius: 8px;
|
|
display:flex;
|
|
align-items:center;
|
|
justify-content:center;
|
|
background:#f6f7fb;
|
|
position: relative;
|
|
}
|
|
.dot{
|
|
width: 8px;
|
|
height: 8px;
|
|
border-radius: 50%;
|
|
background:#ff4d4f;
|
|
position:absolute;
|
|
top: 6px;
|
|
right: 6px;
|
|
}
|
|
</style>
|