refactor: 提取移动端公共底部导航栏并优化全面屏安全区域与接口报错机制

This commit is contained in:
yml
2026-05-25 09:00:39 +08:00
parent d16469aae3
commit 8a241a5cbc
11 changed files with 147 additions and 481 deletions
@@ -1,11 +1,9 @@
<script setup lang="ts">
import { useRoute } from 'vue-router'
import { showDialog, showToast } from 'vant'
import MobileBottomNav from '@/components/MobileBottomNav.vue'
import { usePublishForm } from '@/composables/usePublishForm'
const route = useRoute()
const {
commonOnlineTimes,
dailyLossOptions,
@@ -81,10 +79,7 @@ const {
notifyError: (message) => showToast({ message, icon: 'cross' }),
})
function isNavActive(path: string) {
if (path === '/m') return route.path === '/m'
return route.path.startsWith(path)
}
function selectRadio<T extends string>(value: T, setter: (value: T) => void) {
setter(value)
@@ -596,44 +591,7 @@ function selectRadio<T extends string>(value: T, setter: (value: T) => void) {
</div>
</section>
<nav class="bottom-nav">
<RouterLink
to="/m"
class="nav-item"
:class="{ active: isNavActive('/m') }"
>
<van-icon name="home-o" :size="22" />
<span>首页</span>
</RouterLink>
<RouterLink
to="/m/messages"
class="nav-item"
:class="{ active: isNavActive('/m/messages') }"
>
<van-icon name="chat-o" :size="22" />
<span>消息</span>
</RouterLink>
<RouterLink to="/m/seller/listings/create" class="nav-item nav-publish">
<div class="publish-pill">+</div>
<span>发布</span>
</RouterLink>
<RouterLink
to="/m/orders"
class="nav-item"
:class="{ active: isNavActive('/m/orders') }"
>
<van-icon name="orders-o" :size="22" />
<span>订单</span>
</RouterLink>
<RouterLink
to="/m/profile"
class="nav-item"
:class="{ active: isNavActive('/m/profile') }"
>
<van-icon name="manager-o" :size="22" />
<span>我的</span>
</RouterLink>
</nav>
<MobileBottomNav />
</main>
</template>