refactor: 整理组件目录结构
Some checks failed
Docker Build & Deploy / Build Docker Image (push) Failing after 4m47s
Docker Build & Deploy / Deploy to Production (push) Has been skipped
Docker Build & Deploy / Cleanup Dangling Images (push) Successful in 2s
Docker Build & Deploy / WeChat Notification (push) Successful in 2s

- TransactionDetail, CategoryBillPopup 移入 Transaction/
- BudgetTypeTabs 移入 Budget/
- GlassBottomNav, ModernEmpty 移入 Global/
- Icon, IconSelector, ClassifySelector 等 8 个通用组件移入 Common/
- 更新所有相关引用路径
This commit is contained in:
SunCheng
2026-02-21 10:10:16 +08:00
parent b173c83134
commit 045158730f
38 changed files with 40 additions and 40 deletions

View File

@@ -45,7 +45,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 GlassBottomNav from '@/components/Global/GlassBottomNav.vue'
import '@/styles/common.css'
import { needRefresh, updateServiceWorker } from './registerServiceWorker'

View File

@@ -132,7 +132,7 @@
import { ref, onMounted, watch, nextTick } from 'vue'
import { showToast } from 'vant'
import dayjs from 'dayjs'
import ClassifySelector from '@/components/ClassifySelector.vue'
import ClassifySelector from '@/components/Common/ClassifySelector.vue'
const props = defineProps({
initialData: {

View File

@@ -232,7 +232,7 @@ import { ref, computed, watch, onMounted } from 'vue'
import { showConfirmDialog, showToast } from 'vant'
import { getTransactionList, deleteTransaction } from '@/api/transactionRecord'
import { getCategoryList } from '@/api/transactionCategory'
import Icon from '@/components/Icon.vue'
import Icon from '@/components/Common/Icon.vue'
/**
* @typedef {Object} Transaction

View File

@@ -429,7 +429,7 @@
<script setup>
import { computed, ref } from 'vue'
import { BudgetPeriodType } from '@/constants/enums'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import BillListComponent from '@/components/Bill/BillListComponent.vue'
import { getTransactionList } from '@/api/transactionRecord'

View File

@@ -210,7 +210,7 @@
import { ref, computed } from 'vue'
import { BudgetCategory, BudgetPeriodType } from '@/constants/enums'
import { getCssVar } from '@/utils/theme'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import BaseChart from '@/components/Charts/BaseChart.vue'
import { useChartTheme } from '@/composables/useChartTheme'
import { chartjsGaugePlugin } from '@/plugins/chartjs-gauge-plugin'

View File

@@ -122,8 +122,8 @@ import { ref, reactive, computed } from 'vue'
import { showToast } from 'vant'
import { createBudget, updateBudget } from '@/api/budget'
import { BudgetPeriodType, BudgetCategory } from '@/constants/enums'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import ClassifySelector from '@/components/ClassifySelector.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import ClassifySelector from '@/components/Common/ClassifySelector.vue'
const emit = defineEmits(['success'])

View File

@@ -42,8 +42,8 @@
import { ref } from 'vue'
import { showToast, showLoadingToast, closeToast } from 'vant'
import { getConfig, setConfig } from '@/api/config'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import ClassifySelector from '@/components/ClassifySelector.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import ClassifySelector from '@/components/Common/ClassifySelector.vue'
const emit = defineEmits(['success'])

View File

@@ -45,7 +45,7 @@
<script setup>
import { ref, defineEmits } from 'vue'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import OneLineBillAdd from '@/components/Bill/OneLineBillAdd.vue'
import ManualBillAdd from '@/components/Bill/ManualBillAdd.vue'

View File

@@ -38,7 +38,7 @@
import { ref, computed, watch } from 'vue'
import { showToast } from 'vant'
import TransactionDetailSheet from '@/components/Transaction/TransactionDetailSheet.vue'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import BillListComponent from '@/components/Bill/BillListComponent.vue'
import { getTransactionList, getTransactionDetail } from '@/api/transactionRecord'

View File

@@ -179,8 +179,8 @@
import { ref, reactive, watch, defineProps, defineEmits, computed, nextTick } from 'vue'
import { showToast } from 'vant'
import dayjs from 'dayjs'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import ClassifySelector from '@/components/ClassifySelector.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import ClassifySelector from '@/components/Common/ClassifySelector.vue'
import { updateTransaction } from '@/api/transactionRecord'
const props = defineProps({

View File

@@ -171,8 +171,8 @@
import { ref, reactive, watch } from 'vue'
import { showToast, showDialog } from 'vant'
import dayjs from 'dayjs'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import ClassifySelector from '@/components/ClassifySelector.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import ClassifySelector from '@/components/Common/ClassifySelector.vue'
import { updateTransaction, deleteTransaction } from '@/api/transactionRecord'
const props = defineProps({

View File

@@ -137,7 +137,7 @@ import { ref, nextTick } from 'vue'
import { useRouter } from 'vue-router'
import { showToast, showLoadingToast, closeToast } from 'vant'
import { getConfig, setConfig } from '@/api/config'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
const router = useRouter()
const userInput = ref('')

View File

@@ -42,7 +42,7 @@
import { ref, onMounted } from 'vue'
import { useRouter } from 'vue-router'
import { getUnclassifiedCount } from '@/api/transactionRecord'
import ReasonGroupList from '@/components/ReasonGroupList.vue'
import ReasonGroupList from '@/components/Common/ReasonGroupList.vue'
const router = useRouter()
const groupListRef = ref(null)

View File

@@ -230,9 +230,9 @@
import { ref, computed } from 'vue'
import { useRouter } from 'vue-router'
import { showSuccessToast, showToast, showLoadingToast, closeToast } from 'vant'
import Icon from '@/components/Icon.vue'
import IconSelector from '@/components/IconSelector.vue'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import Icon from '@/components/Common/Icon.vue'
import IconSelector from '@/components/Common/IconSelector.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import {
getCategoryList,
createCategory,

View File

@@ -132,8 +132,8 @@ import { useRouter } from 'vue-router'
import { showToast, showConfirmDialog } from 'vant'
import { nlpAnalysis, batchUpdateClassify } from '@/api/transactionRecord'
import BillListComponent from '@/components/Bill/BillListComponent.vue'
import TransactionDetail from '@/components/TransactionDetail.vue'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import TransactionDetail from '@/components/Transaction/TransactionDetail.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
const router = useRouter()
const userInput = ref('')

View File

@@ -60,7 +60,7 @@ import { ref, computed, onMounted, nextTick } from 'vue'
import { useRouter } from 'vue-router'
import { showToast, showLoadingToast, closeToast, showConfirmDialog } from 'vant'
import { getUnclassifiedCount, smartClassify, batchUpdateClassify } from '@/api/transactionRecord'
import ReasonGroupList from '@/components/ReasonGroupList.vue'
import ReasonGroupList from '@/components/Common/ReasonGroupList.vue'
const router = useRouter()
const groupListRef = ref(null)

View File

@@ -184,8 +184,8 @@ import {
} from '@/api/emailRecord'
import { getTransactionDetail } from '@/api/transactionRecord'
import BillListComponent from '@/components/Bill/BillListComponent.vue'
import TransactionDetail from '@/components/TransactionDetail.vue'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import TransactionDetail from '@/components/Transaction/TransactionDetail.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
const emailList = ref([])
const loading = ref(false)

View File

@@ -116,7 +116,7 @@ import { useRouter } from 'vue-router'
import { showToast, showDialog } from 'vant'
import { getMessageList, markAsRead, deleteMessage, markAllAsRead } from '@/api/message'
import { useMessageStore } from '@/stores/message'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
const messageStore = useMessageStore()
const router = useRouter()

View File

@@ -312,8 +312,8 @@ import {
createPeriodic,
updatePeriodic
} from '@/api/transactionPeriodic'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import ClassifySelector from '@/components/ClassifySelector.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import ClassifySelector from '@/components/Common/ClassifySelector.vue'
import dayjs from 'dayjs'
const router = useRouter()

View File

@@ -56,7 +56,7 @@ import { ref, onMounted, onBeforeUnmount } from 'vue'
import { showToast } from 'vant'
import { getTransactionList, getTransactionDetail } from '@/api/transactionRecord'
import BillListComponent from '@/components/Bill/BillListComponent.vue'
import TransactionDetail from '@/components/TransactionDetail.vue'
import TransactionDetail from '@/components/Transaction/TransactionDetail.vue'
const transactionList = ref([])
const loading = ref(false)

View File

@@ -104,7 +104,7 @@ import { ref, onMounted, computed } from 'vue'
import { useRouter } from 'vue-router'
import { showToast, showConfirmDialog } from 'vant'
import { getUnconfirmedTransactionList, confirmAllUnconfirmed } from '@/api/transactionRecord'
import TransactionDetail from '@/components/TransactionDetail.vue'
import TransactionDetail from '@/components/Transaction/TransactionDetail.vue'
import BillListComponent from '@/components/Bill/BillListComponent.vue'
const router = useRouter()

View File

@@ -264,12 +264,12 @@ import {
getSavingsBudget
} from '@/api/budget'
import { BudgetPeriodType, BudgetCategory } from '@/constants/enums'
import DateSelectHeader from '@/components/DateSelectHeader.vue'
import BudgetTypeTabs from '@/components/BudgetTypeTabs.vue'
import DateSelectHeader from '@/components/Common/DateSelectHeader.vue'
import BudgetTypeTabs from '@/components/Budget/BudgetTypeTabs.vue'
import BudgetCard from '@/components/Budget/BudgetCard.vue'
import BudgetEditPopup from '@/components/Budget/BudgetEditPopup.vue'
import SavingsConfigPopup from '@/components/Budget/SavingsConfigPopup.vue'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
import ExpenseBudgetContent from './modules/ExpenseBudgetContent.vue'
import IncomeBudgetContent from './modules/IncomeBudgetContent.vue'
import SavingsBudgetContent from './modules/SavingsBudgetContent.vue'

View File

@@ -362,7 +362,7 @@
import { ref, computed } from 'vue'
import BudgetCard from '@/components/Budget/BudgetCard.vue'
import { BudgetPeriodType } from '@/constants/enums'
import PopupContainerV2 from '@/components/PopupContainerV2.vue'
import PopupContainerV2 from '@/components/Common/PopupContainerV2.vue'
// Props
const props = defineProps({

View File

@@ -75,7 +75,7 @@
import { ref, onMounted, onBeforeUnmount, onActivated, onDeactivated } from 'vue'
import { useRouter } from 'vue-router'
import { showToast } from 'vant'
import CalendarHeader from '@/components/DateSelectHeader.vue'
import CalendarHeader from '@/components/Common/DateSelectHeader.vue'
import CalendarModule from './modules/Calendar.vue'
import StatsModule from './modules/Stats.vue'
import TransactionListModule from './modules/TransactionList.vue'

View File

@@ -124,12 +124,12 @@
<script setup>
import { ref, computed, onMounted, watch } from 'vue'
import { useRouter } from 'vue-router'
import CalendarHeader from '@/components/DateSelectHeader.vue'
import TimePeriodTabs from '@/components/TimePeriodTabs.vue'
import CalendarHeader from '@/components/Common/DateSelectHeader.vue'
import TimePeriodTabs from '@/components/Common/TimePeriodTabs.vue'
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 CategoryBillPopup from '@/components/Transaction/CategoryBillPopup.vue'
import {
// 新统一接口
getDailyStatisticsByRange,

View File

@@ -85,7 +85,7 @@
<script setup>
import { ref, computed } from 'vue'
import { getCssVar } from '@/utils/theme'
import ModernEmpty from '@/components/ModernEmpty.vue'
import ModernEmpty from '@/components/Global/ModernEmpty.vue'
import BaseChart from '@/components/Charts/BaseChart.vue'
import { useChartTheme } from '@/composables/useChartTheme'
import { pieCenterTextPlugin } from '@/plugins/chartjs-pie-center-plugin'

View File

@@ -99,7 +99,7 @@
<script setup>
import { computed } from 'vue'
import ModernEmpty from '@/components/ModernEmpty.vue'
import ModernEmpty from '@/components/Global/ModernEmpty.vue'
const props = defineProps({
incomeCategories: {