chore(旧头部组件): 删除无用组件

This commit is contained in:
hzj 2025-12-12 18:01:54 +08:00
parent 8655fb317a
commit a6a1c5369e

View File

@ -1,261 +0,0 @@
<template>
<div class="mobile-header" :class="{ 'in-app': isInAppEnvironment }">
<!-- 状态栏占位区域仅在APP中显示 -->
<div v-if="isInAppEnvironment" class="status-bar-spacer"></div>
<!-- header内容 -->
<div class="header-content">
<button v-if="showBack" class="back-btn" @click="handleBack">
<svg class="back-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M15 18L9 12L15 6"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</button>
<div v-if="!showBack && showHelp" class="placeholder"></div>
<h1 class="title">{{ title }}</h1>
<button v-if="showHelp" class="help-btn" @click="$emit('help')">
<svg class="help-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2" />
<path
d="M9.09 9A3 3 0 0 1 12 6a3 3 0 0 1 3 3c0 2-3 3-3 3"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
<path
d="M12 17h.01"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
/>
</svg>
</button>
<div v-if="showBack && !showHelp" class="placeholder"></div>
<slot name="extraFunction"></slot>
</div>
</div>
</template>
<script setup>
import { useRouter, useRoute } from 'vue-router'
import { computed, ref, onMounted } from 'vue'
import { closePage, isInApp } from '@/utils/appBridge.js'
// props
const props = defineProps({
title: {
type: String,
required: true,
},
showBack: {
type: Boolean,
default: true,
},
showHelp: {
type: Boolean,
default: false,
},
isHomePage: {
type: Boolean,
default: false,
},
})
// emits
defineEmits(['help'])
const router = useRouter()
const route = useRoute()
// APP
const isInAppEnvironment = ref(false)
//
const homeRoutes = ['/host-center', '/agency-center', '/coin-seller', '/']
//
const isCurrentlyHomePage = computed(() => {
// 1. props
const propsHomePage = props.isHomePage === true || props.isHomePage === 'true'
// 2.
const routeHomePage = homeRoutes.includes(route.path)
// 3. true
return propsHomePage || routeHomePage
})
const handleBack = () => {
if (isCurrentlyHomePage.value && isInApp()) {
// APP
console.log('home back')
closePage()
} else {
//
router.go(-1)
}
}
//
onMounted(() => {
isInAppEnvironment.value = isInApp()
})
</script>
<style scoped>
.mobile-header {
background: white !important;
border-bottom: 1px solid #f0f0f0;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}
/* 状态栏占位区域 - 固定30px */
.status-bar-spacer {
height: 30px;
background: white !important;
}
/* header内容区域 - 固定60px */
.header-content {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px 16px;
height: 60px;
background: white !important;
}
.back-btn,
.help-btn {
width: 36px;
height: 36px;
border: none;
background: #f8f9fa !important;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #495057 !important;
cursor: pointer;
transition: all 0.2s ease;
border: 1px solid #e9ecef;
}
.back-btn:hover,
.help-btn:hover {
background: #e9ecef !important;
color: #343a40 !important;
transform: scale(1.05);
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.back-btn:active,
.help-btn:active {
transform: scale(0.95);
background: #dee2e6 !important;
}
.back-icon,
.help-icon {
width: 20px;
height: 20px;
color: inherit;
stroke-width: 2.5;
}
.title {
font-size: 18px;
font-weight: 600;
margin: 0;
color: #212529 !important;
text-align: center;
flex: 1;
letter-spacing: 0.3px;
}
.placeholder {
width: 36px;
height: 36px;
}
/* 强制覆盖任何暗黑模式样式 */
@media (prefers-color-scheme: dark) {
.mobile-header {
background: white !important;
border-bottom-color: #f0f0f0 !important;
}
.status-bar-spacer {
background: white !important;
}
.header-content {
background: white !important;
}
.back-btn,
.help-btn {
background: #f8f9fa !important;
border-color: #e9ecef !important;
color: #495057 !important;
}
.back-btn:hover,
.help-btn:hover {
background: #e9ecef !important;
color: #343a40 !important;
}
.title {
color: #212529 !important;
}
}
/* 强制针对移动设备的样式 */
@media screen and (max-width: 768px) {
.mobile-header {
background: white !important;
color: #212529 !important;
}
.mobile-header * {
color: inherit !important;
}
.title {
color: #212529 !important;
}
.back-btn,
.help-btn {
background: #f8f9fa !important;
color: #495057 !important;
border-color: #e9ecef !important;
}
}
/* 针对特定手机浏览器的修复 */
@supports (-webkit-touch-callout: none) {
.mobile-header {
background: white !important;
}
.title {
color: #212529 !important;
}
.back-btn,
.help-btn {
background: #f8f9fa !important;
color: #495057 !important;
}
}
</style>