1
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 21s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
Docker Build & Deploy / Deploy to Production (push) Successful in 6s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
All checks were successful
Docker Build & Deploy / Build Docker Image (push) Successful in 21s
Docker Build & Deploy / WeChat Notification (push) Successful in 1s
Docker Build & Deploy / Deploy to Production (push) Successful in 6s
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 1s
This commit is contained in:
@@ -16,6 +16,10 @@
|
||||
/>
|
||||
</keep-alive>
|
||||
</router-view>
|
||||
|
||||
<!-- 底部导航栏(全局统一) -->
|
||||
<GlassBottomNav v-if="showNav" />
|
||||
|
||||
<GlobalAddBill
|
||||
v-if="isShowAddBill"
|
||||
@success="handleAddTransactionSuccess"
|
||||
@@ -152,6 +156,7 @@ import { RouterView, useRoute } from 'vue-router'
|
||||
import { ref, onMounted, onUnmounted, computed, watch } from 'vue'
|
||||
import { useMessageStore } from '@/stores/message'
|
||||
import GlobalAddBill from '@/components/Global/GlobalAddBill.vue'
|
||||
import GlassBottomNav from '@/components/GlassBottomNav.vue'
|
||||
import '@/styles/common.css'
|
||||
import { needRefresh, updateServiceWorker } from './registerServiceWorker'
|
||||
|
||||
@@ -256,6 +261,16 @@ const isShowAddBill = computed(() => {
|
||||
return route.path === '/' || route.path === '/balance' || route.path === '/message' || route.path === '/calendar' || route.path === '/calendar-v2'
|
||||
})
|
||||
|
||||
// 需要显示底部导航栏的路由
|
||||
const showNav = computed(() => {
|
||||
return [
|
||||
'/', '/statistics-v2',
|
||||
'/calendar', '/calendar-v2',
|
||||
'/balance', '/message',
|
||||
'/budget', '/setting'
|
||||
].includes(route.path)
|
||||
})
|
||||
|
||||
onUnmounted(() => {
|
||||
if (mediaQuery) {
|
||||
mediaQuery.removeEventListener('change', updateTheme)
|
||||
|
||||
@@ -55,12 +55,6 @@
|
||||
ref="messageViewRef"
|
||||
:is-component="true"
|
||||
/>
|
||||
|
||||
<!-- 液态玻璃底部导航栏 -->
|
||||
<GlassBottomNav
|
||||
v-model="activeNavTab"
|
||||
@tab-click="handleNavTabClick"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -70,17 +64,9 @@ import { useRoute } from 'vue-router'
|
||||
import TransactionsRecord from './TransactionsRecord.vue'
|
||||
import EmailRecord from './EmailRecord.vue'
|
||||
import MessageView from './MessageView.vue'
|
||||
import GlassBottomNav from '@/components/GlassBottomNav.vue'
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
// 底部导航栏
|
||||
const activeNavTab = ref('balance')
|
||||
const handleNavTabClick = (item, index) => {
|
||||
console.log('Tab clicked:', item.name, index)
|
||||
// 导航逻辑已在组件内部处理
|
||||
}
|
||||
|
||||
const tabActive = ref(route.query.tab || 'balance')
|
||||
|
||||
// 监听路由参数变化,用于从 tabbar 点击时切换 tab
|
||||
|
||||
@@ -497,12 +497,6 @@
|
||||
@cancel="showDatePicker = false"
|
||||
/>
|
||||
</van-popup>
|
||||
|
||||
<!-- 液态玻璃底部导航栏 -->
|
||||
<GlassBottomNav
|
||||
v-model="navActiveTab"
|
||||
@tab-click="handleNavTabClick"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -524,15 +518,8 @@ import BudgetEditPopup from '@/components/Budget/BudgetEditPopup.vue'
|
||||
import SavingsConfigPopup from '@/components/Budget/SavingsConfigPopup.vue'
|
||||
import BudgetChartAnalysis from '@/components/Budget/BudgetChartAnalysis.vue'
|
||||
import PopupContainer from '@/components/PopupContainer.vue'
|
||||
import GlassBottomNav from '@/components/GlassBottomNav.vue'
|
||||
|
||||
// 底部导航栏
|
||||
const navActiveTab = ref('budget')
|
||||
const handleNavTabClick = (item, index) => {
|
||||
console.log('Tab clicked:', item.name, index)
|
||||
// 导航逻辑已在组件内部处理
|
||||
}
|
||||
|
||||
const activeTab = ref(BudgetCategory.Expense)
|
||||
const selectedDate = ref(new Date())
|
||||
const showDatePicker = ref(false)
|
||||
|
||||
@@ -44,12 +44,6 @@
|
||||
:transaction="currentTransaction"
|
||||
@save="onDetailSave"
|
||||
/>
|
||||
|
||||
<!-- 液态玻璃底部导航栏 -->
|
||||
<GlassBottomNav
|
||||
v-model="activeTab"
|
||||
@tab-click="handleTabClick"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -62,14 +56,6 @@ import TransactionList from '@/components/TransactionList.vue'
|
||||
import TransactionDetail from '@/components/TransactionDetail.vue'
|
||||
import SmartClassifyButton from '@/components/SmartClassifyButton.vue'
|
||||
import PopupContainer from '@/components/PopupContainer.vue'
|
||||
import GlassBottomNav from '@/components/GlassBottomNav.vue'
|
||||
|
||||
// 底部导航栏
|
||||
const activeTab = ref('calendar')
|
||||
const handleTabClick = (item, index) => {
|
||||
console.log('Tab clicked:', item.name, index)
|
||||
// 导航逻辑已在组件内部处理
|
||||
}
|
||||
|
||||
const dailyStatistics = ref({})
|
||||
const listVisible = ref(false)
|
||||
|
||||
@@ -139,12 +139,6 @@
|
||||
<!-- 底部安全距离 -->
|
||||
<div style="height: calc(95px + env(safe-area-inset-bottom, 0px))" />
|
||||
</div>
|
||||
|
||||
<!-- 液态玻璃底部导航栏 -->
|
||||
<GlassBottomNav
|
||||
v-model="activeTab"
|
||||
@tab-click="handleTabClick"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -157,19 +151,11 @@ import { useAuthStore } from '@/stores/auth'
|
||||
import { useVersionStore } from '@/stores/version'
|
||||
import { getVapidPublicKey, subscribe, testNotification } from '@/api/notification'
|
||||
import { updateServiceWorker } from '@/registerServiceWorker'
|
||||
import GlassBottomNav from '@/components/GlassBottomNav.vue'
|
||||
|
||||
const router = useRouter()
|
||||
const authStore = useAuthStore()
|
||||
const versionStore = useVersionStore()
|
||||
|
||||
// 底部导航栏
|
||||
const activeTab = ref('setting')
|
||||
const handleTabClick = (item, index) => {
|
||||
console.log('Tab clicked:', item.name, index)
|
||||
// 导航逻辑已在组件内部处理
|
||||
}
|
||||
|
||||
const fileInputRef = ref(null)
|
||||
const currentType = ref('')
|
||||
const notificationEnabled = ref(false)
|
||||
|
||||
@@ -70,12 +70,6 @@
|
||||
@cancel="onDatePickerCancel"
|
||||
/>
|
||||
</van-popup>
|
||||
|
||||
<!-- 液态玻璃底部导航栏 -->
|
||||
<GlassBottomNav
|
||||
v-model="activeTab"
|
||||
@tab-click="handleTabClick"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -88,7 +82,6 @@ import CalendarModule from './modules/Calendar.vue'
|
||||
import StatsModule from './modules/Stats.vue'
|
||||
import TransactionListModule from './modules/TransactionList.vue'
|
||||
import TransactionDetailSheet from '@/components/Transaction/TransactionDetailSheet.vue'
|
||||
import GlassBottomNav from '@/components/GlassBottomNav.vue'
|
||||
import { getTransactionDetail } from '@/api/transactionRecord'
|
||||
|
||||
// 定义组件名称(keep-alive 需要通过 name 识别)
|
||||
@@ -99,12 +92,6 @@ defineOptions({
|
||||
// 路由
|
||||
const router = useRouter()
|
||||
|
||||
// 底部导航栏
|
||||
const activeTab = ref('calendar')
|
||||
const handleTabClick = () => {
|
||||
// 导航逻辑已在组件内部处理
|
||||
}
|
||||
|
||||
// 下拉刷新状态
|
||||
const refreshing = ref(false)
|
||||
|
||||
|
||||
@@ -318,12 +318,6 @@
|
||||
:transaction="currentTransaction"
|
||||
@save="onBillSave"
|
||||
/>
|
||||
|
||||
<!-- 液态玻璃底部导航栏 -->
|
||||
<GlassBottomNav
|
||||
v-model="activeTab"
|
||||
@tab-click="handleTabClick"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -339,18 +333,10 @@ import TransactionList from '@/components/TransactionList.vue'
|
||||
import TransactionDetail from '@/components/TransactionDetail.vue'
|
||||
import SmartClassifyButton from '@/components/SmartClassifyButton.vue'
|
||||
import PopupContainer from '@/components/PopupContainer.vue'
|
||||
import GlassBottomNav from '@/components/GlassBottomNav.vue'
|
||||
import { getCssVar } from '@/utils/theme'
|
||||
|
||||
const router = useRouter()
|
||||
|
||||
// 底部导航栏
|
||||
const activeTab = ref('statistics')
|
||||
const handleTabClick = (item, index) => {
|
||||
console.log('Tab clicked:', item.name, index)
|
||||
// 导航逻辑已在组件内部处理
|
||||
}
|
||||
|
||||
// 响应式数据
|
||||
const loading = ref(true)
|
||||
const firstLoading = ref(true)
|
||||
|
||||
@@ -108,12 +108,6 @@
|
||||
/>
|
||||
</van-popup>
|
||||
|
||||
<!-- 液态玻璃底部导航栏 -->
|
||||
<GlassBottomNav
|
||||
v-model="activeTab"
|
||||
@tab-click="handleTabClick"
|
||||
/>
|
||||
|
||||
<!-- 分类账单弹窗 -->
|
||||
<CategoryBillPopup
|
||||
v-model="billPopupVisible"
|
||||
@@ -136,7 +130,6 @@ import MonthlyExpenseCard from './modules/MonthlyExpenseCard.vue'
|
||||
import ExpenseCategoryCard from './modules/ExpenseCategoryCard.vue'
|
||||
import IncomeNoneCategoryCard from './modules/IncomeNoneCategoryCard.vue'
|
||||
import CategoryBillPopup from '@/components/CategoryBillPopup.vue'
|
||||
import GlassBottomNav from '@/components/GlassBottomNav.vue'
|
||||
import {
|
||||
// 新统一接口
|
||||
getDailyStatisticsByRange,
|
||||
@@ -162,12 +155,6 @@ const messageStore = useMessageStore()
|
||||
// 主题
|
||||
const theme = computed(() => messageStore.isDarkMode ? 'dark' : 'light')
|
||||
|
||||
// 底部导航栏
|
||||
const activeTab = ref('statistics')
|
||||
const handleTabClick = (_item, _index) => {
|
||||
// 导航逻辑已在组件内部处理
|
||||
}
|
||||
|
||||
// 状态管理
|
||||
const loading = ref(false)
|
||||
const refreshing = ref(false)
|
||||
|
||||
Reference in New Issue
Block a user