chore: 批量更新导入路径到 features 架构

- 更新所有 admin API 文件导入路径
- 更新所有 features 中 Vue 文件的导入路径
- 修复 ChatAttachmentImage 组件导入
- 修复 auth 模块部分导入路径

剩余 ~190 个类型错误待修复(主要是缺失的模块)
This commit is contained in:
yml2213
2026-06-04 09:23:15 +08:00
parent 5e878585ad
commit e010f2ce7e
50 changed files with 79 additions and 85 deletions
@@ -1,6 +1,6 @@
import { apiClient } from './client'
import { apiClient } from '@/shared/api/client'
import type { ApiResponse, PaginatedResult } from './types'
import type { ApiResponse, PaginatedResult } from '@/shared/types/types'
export interface AdminAuditLog {
id: number
+3 -3
View File
@@ -1,9 +1,9 @@
import axios from 'axios'
import { apiClient } from './client'
import type { ApiResponse } from './types'
import { apiClient } from '@/shared/api/client'
import type { ApiResponse } from '@/shared/types/types'
import { getRefreshToken, setAuthTokens } from '@/utils/authStorage'
import type { UserStatus } from '@/types/status'
import type { UserStatus } from '@/shared/types/status'
export interface AdminRole {
id: number
@@ -1,6 +1,6 @@
import { apiClient } from './client'
import type { ApiResponse } from './types'
import type { DisputeStatus, OrderStatus } from '@/types/status'
import { apiClient } from '@/shared/api/client'
import type { ApiResponse } from '@/shared/types/types'
import type { DisputeStatus, OrderStatus } from '@/shared/types/status'
export interface DashboardMetrics {
total_users: number
+2 -2
View File
@@ -1,6 +1,6 @@
import { apiClient } from './client'
import { apiClient } from '@/shared/api/client'
import type { ApiResponse, PaginatedResult } from './types'
import type { ApiResponse, PaginatedResult } from '@/shared/types/types'
export interface AdminRole {
id: number
@@ -1,6 +1,6 @@
import { apiClient } from './client'
import { apiClient } from '@/shared/api/client'
import type { ApiResponse } from './types'
import type { ApiResponse } from '@/shared/types/types'
export interface Permission {
id: number
@@ -1,7 +1,7 @@
import { apiClient } from './client'
import { apiClient } from '@/shared/api/client'
import type { ApiResponse, PaginatedResult } from './types'
import type { RealnameStatusValue, RiskStatus, UserStatus } from '@/types/status'
import type { ApiResponse, PaginatedResult } from '@/shared/types/types'
import type { RealnameStatusValue, RiskStatus, UserStatus } from '@/shared/types/status'
export interface AdminUserItem {
id: number
@@ -1,7 +1,7 @@
import { apiClient } from './client'
import { apiClient } from '@/shared/api/client'
import type { ApiResponse, PaginatedResult } from './types'
import type { BalanceType, LedgerDirection } from '@/types/status'
import type { ApiResponse, PaginatedResult } from '@/shared/types/types'
import type { BalanceType, LedgerDirection } from '@/shared/types/status'
export interface AdminWalletLedger {
id: number
@@ -1,5 +1,5 @@
import { apiClient } from './client'
import type { ApiResponse } from './types'
import { apiClient } from '@/shared/api/client'
import type { ApiResponse } from '@/shared/types/types'
export interface SystemConfig {
id: number
@@ -2,7 +2,7 @@
import { ElMessage } from 'element-plus'
import { ref, watch } from 'vue'
import { createAdminMgrUser, updateAdminMgrUser, type AdminMgrUser, type CreateAdminRequest, type UpdateAdminRequest } from '@/api/adminMgr'
import { createAdminMgrUser, updateAdminMgrUser, type AdminMgrUser, type CreateAdminRequest, type UpdateAdminRequest } from '@/features/admin/api/adminMgr'
const props = defineProps<{
modelValue: boolean
@@ -2,7 +2,7 @@
import { ElMessage } from 'element-plus'
import { ref, watch } from 'vue'
import { fetchPermissions, fetchRole, assignRolePermissions, type Permission, type Role } from '@/api/adminRoles'
import { fetchPermissions, fetchRole, assignRolePermissions, type Permission, type Role } from '@/features/admin/api/adminRoles'
const props = defineProps<{
modelValue: boolean
@@ -2,8 +2,8 @@
import { ElMessage } from 'element-plus'
import { ref, watch } from 'vue'
import { fetchRoles, type Role } from '@/api/adminRoles'
import { assignAdminRoles, type AdminMgrUser } from '@/api/adminMgr'
import { fetchRoles, type Role } from '@/features/admin/api/adminRoles'
import { assignAdminRoles, type AdminMgrUser } from '@/features/admin/api/adminMgr'
const props = defineProps<{
modelValue: boolean
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { ref, onMounted } from 'vue'
import { ElMessage } from 'element-plus'
import { fetchAutoWelcomeMessage, updateAutoWelcomeMessage } from '@/api/chats'
import { fetchAutoWelcomeMessage, updateAutoWelcomeMessage } from '@/features/chats'
const loading = ref(false)
const saving = ref(false)
@@ -2,7 +2,7 @@
import { ElMessage } from 'element-plus'
import { computed, ref, watch } from 'vue'
import { updateSystemConfig, type SystemConfig } from '@/api/systemConfigs'
import { updateSystemConfig, type SystemConfig } from '@/features/admin/api/systemConfigs'
import { getSystemConfigSelectOptions, type SystemConfigOption } from '@/utils/systemConfigOptions'
const props = defineProps<{
@@ -2,8 +2,8 @@
import { ElMessage } from 'element-plus'
import { ref, watch } from 'vue'
import { defaultHomeAnnouncements, mergeHomeConfig } from '@/api/homeConfig'
import { updateSystemConfig, type SystemConfig } from '@/api/systemConfigs'
import { defaultHomeAnnouncements, mergeHomeConfig } from '@/features/listings/api/homeConfig'
import { updateSystemConfig, type SystemConfig } from '@/features/admin/api/systemConfigs'
import { safeParseJSON } from '@/utils/json'
const props = defineProps<{
@@ -2,9 +2,9 @@
import { ElMessage } from 'element-plus'
import { ref, watch } from 'vue'
import { uploadAdminFile } from '@/api/files'
import { defaultHomeBanners, mergeHomeConfig, type HomeBannerSlide } from '@/api/homeConfig'
import { updateSystemConfig, type SystemConfig } from '@/api/systemConfigs'
import { uploadAdminFile } from '@/shared/api/files'
import { defaultHomeBanners, mergeHomeConfig, type HomeBannerSlide } from '@/features/listings/api/homeConfig'
import { updateSystemConfig, type SystemConfig } from '@/features/admin/api/systemConfigs'
import { safeParseJSON } from '@/utils/json'
const props = defineProps<{
@@ -6,8 +6,8 @@ import {
emptyListingPublishOptions,
mergeListingPublishOptions,
type ListingPublishOptions,
} from '@/api/listingOptions'
import { updateSystemConfig, type SystemConfig } from '@/api/systemConfigs'
} from '@/features/listings/api/listingOptions'
import { updateSystemConfig, type SystemConfig } from '@/features/admin/api/systemConfigs'
import { safeParseJSON } from '@/utils/json'
const props = defineProps<{
@@ -7,7 +7,7 @@ import {
updateQuickReply,
deleteQuickReply,
type QuickReply,
} from '@/api/chats'
} from '@/features/chats'
const props = defineProps<{
modelValue: boolean
@@ -2,7 +2,7 @@
import { ElMessage } from 'element-plus'
import { ref, watch } from 'vue'
import { createRole, updateRole, type Role, type CreateRoleRequest, type UpdateRoleRequest } from '@/api/adminRoles'
import { createRole, updateRole, type Role, type CreateRoleRequest, type UpdateRoleRequest } from '@/features/admin/api/adminRoles'
const props = defineProps<{
modelValue: boolean
@@ -6,8 +6,8 @@ import {
emptyListingSalePriceConfig,
mergeListingSalePriceConfig,
type PublishSalePriceConfig,
} from '@/api/listingOptions'
import { updateSystemConfig, type SystemConfig } from '@/api/systemConfigs'
} from '@/features/listings/api/listingOptions'
import { updateSystemConfig, type SystemConfig } from '@/features/admin/api/systemConfigs'
import { safeParseJSON } from '@/utils/json'
const props = defineProps<{
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { ref, watch, computed } from 'vue'
import { ElMessage } from 'element-plus'
import { fetchSupportAdmins, transferChat, type SupportAdmin } from '@/api/chats'
import { fetchSupportAdmins, transferChat, type SupportAdmin } from '@/features/chats'
import { User } from '@element-plus/icons-vue'
const props = defineProps<{
@@ -2,7 +2,7 @@
import { Search } from '@element-plus/icons-vue'
import { computed, onMounted, reactive, ref } from 'vue'
import { fetchAdminAuditLogs, type AdminAuditLog } from '@/api/adminAudit'
import { fetchAdminAuditLogs, type AdminAuditLog } from '@/features/admin/api/adminAudit'
import { formatDateTime } from '@/utils/time'
const loading = ref(false)
@@ -13,10 +13,10 @@ import {
type ChatConversation,
type ChatMessage,
type QuickReply,
} from '@/api/chats'
import { uploadAdminFile } from '@/api/files'
} from '@/features/chats'
import { uploadAdminFile } from '@/shared/api/files'
import ChatAttachmentImage from '@/components/ChatAttachmentImage.vue'
import { useChatSSE, type ChatEvent } from '@/composables/useChatSSE'
import { useChatSSE, type ChatEvent } from '@/features/chats/composables/useChatSSE'
import { formatDateMinute } from '@/utils/time'
import TransferDialog from './components/TransferDialog.vue'
import QuickReplyDialog from './components/QuickReplyDialog.vue'
@@ -15,7 +15,7 @@ import {
Wallet,
Warning
} from '@element-plus/icons-vue'
import { fetchAdminDashboard, type AdminDashboard } from '@/api/adminDashboard'
import { fetchAdminDashboard, type AdminDashboard } from '@/features/admin/api/adminDashboard'
import { useAdminTable } from '@/composables/useAdminTable'
import { useMoney } from '@/composables/useMoney'
import { disputeStatusLabel, orderStatusLabel } from '@/utils/statusLabels'
@@ -2,8 +2,8 @@
import { ElMessage } from 'element-plus'
import { onMounted, ref } from 'vue'
import { arbitrateDispute, fetchAdminDisputes, type Dispute } from '@/api/disputes'
import { fetchAdminFileBlob } from '@/api/files'
import { arbitrateDispute, fetchAdminDisputes, type Dispute } from '@/features/disputes'
import { fetchAdminFileBlob } from '@/shared/api/files'
import { disputeStatusLabel } from '@/utils/statusLabels'
import { formatDateTime } from '@/utils/time'
@@ -3,8 +3,8 @@ import { ElMessage } from 'element-plus'
import { computed, onMounted, ref } from 'vue'
import { useRoute } from 'vue-router'
import { fetchAdminFileBlob } from '@/api/files'
import { adminMarkListingAbnormal, adminOfflineListing, fetchAdminListing, type Listing } from '@/api/listings'
import { fetchAdminFileBlob } from '@/shared/api/files'
import { adminMarkListingAbnormal, adminOfflineListing, fetchAdminListing, type Listing } from '@/features/listings'
import { listingReviewStatusLabel, listingStatusLabel } from '@/utils/statusLabels'
import { formatDateTime } from '@/utils/time'
@@ -3,8 +3,8 @@ import { Check, Close, Picture, Refresh, Search, WarningFilled } from '@element-
import { ElMessage, ElMessageBox } from 'element-plus'
import { computed, nextTick, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue'
import { fetchAdminFileBlob } from '@/api/files'
import { approveListing, fetchPendingReviewListings, rejectListing, type Listing } from '@/api/listings'
import { fetchAdminFileBlob } from '@/shared/api/files'
import { approveListing, fetchPendingReviewListings, rejectListing, type Listing } from '@/features/listings'
import {
assetRegions,
formatHafCoinM,
@@ -3,7 +3,7 @@ import { Search } from '@element-plus/icons-vue'
import { ElMessage } from 'element-plus'
import { computed, reactive, ref } from 'vue'
import { fetchAdminListings, type AdminListingPage, type AdminListingQuery, type Listing } from '@/api/listings'
import { fetchAdminListings, type AdminListingPage, type AdminListingQuery, type Listing } from '@/features/listings'
import { useAdminTable } from '@/composables/useAdminTable'
import { useMoney } from '@/composables/useMoney'
import {
@@ -2,7 +2,7 @@
import { ElMessage, ElMessageBox } from 'element-plus'
import { ref } from 'vue'
import { fetchAdminMgrUsers, deleteAdminMgrUser, changeAdminPassword, type AdminMgrUser } from '@/api/adminMgr'
import { fetchAdminMgrUsers, deleteAdminMgrUser, changeAdminPassword, type AdminMgrUser } from '@/features/admin/api/adminMgr'
import { useAdminPaginatedTable } from '@/composables/useAdminPaginatedTable'
import { formatDateTime } from '@/utils/time'
@@ -3,7 +3,7 @@ import { ElMessage } from 'element-plus'
import { computed, onMounted, ref } from 'vue'
import { useRoute } from 'vue-router'
import { adminCloseOrder, adminMarkOrderAbnormal, adminRefundOrder, adminRefundStatus, fetchAdminHandoffRecords, fetchAdminOrder, type HandoffRecord, type Order, type RefundStatus } from '@/api/orders'
import { adminCloseOrder, adminMarkOrderAbnormal, adminRefundOrder, adminRefundStatus, fetchAdminHandoffRecords, fetchAdminOrder, type HandoffRecord, type Order, type RefundStatus } from '@/features/orders'
import { handoffStatusLabel, orderStatusLabel } from '@/utils/statusLabels'
import { formatDateTime } from '@/utils/time'
@@ -1,7 +1,7 @@
<script setup lang="ts">
import { computed, ref } from 'vue'
import { fetchAdminOrders, type Order } from '@/api/orders'
import { fetchAdminOrders, type Order } from '@/features/orders'
import { useAdminTable } from '@/composables/useAdminTable'
import { handoffStatusLabel, orderStatusLabel, settlementStatusLabel } from '@/utils/statusLabels'
import { formatDateTime } from '@/utils/time'
@@ -2,7 +2,7 @@
import { ElMessage, ElMessageBox } from 'element-plus'
import { ref } from 'vue'
import { fetchRoles, deleteRole, type Role } from '@/api/adminRoles'
import { fetchRoles, deleteRole, type Role } from '@/features/admin/api/adminRoles'
import { useAdminTable } from '@/composables/useAdminTable'
import AssignPermissionsDialog from './components/AssignPermissionsDialog.vue'
@@ -8,14 +8,14 @@ import {
mergeListingPublishOptions,
type ListingPublishOptions,
type PublishSalePriceConfig,
} from '@/api/listingOptions'
} from '@/features/listings/api/listingOptions'
import {
defaultHomeAnnouncements,
defaultHomeBanners,
mergeHomeConfig,
type HomeBannerSlide,
} from '@/api/homeConfig'
import { fetchSystemConfigs, type SystemConfig } from '@/api/systemConfigs'
} from '@/features/listings/api/homeConfig'
import { fetchSystemConfigs, type SystemConfig } from '@/features/admin/api/systemConfigs'
import { formatDateTime } from '@/utils/time'
import { safeParseJSON } from '@/utils/json'
import { formatSystemConfigSelectValue } from '@/utils/systemConfigOptions'
@@ -2,7 +2,7 @@
import { ElMessage } from 'element-plus'
import { ref } from 'vue'
import { fetchAdminUsers, freezeAdminUser, unfreezeAdminUser, type AdminUserItem } from '@/api/adminUsers'
import { fetchAdminUsers, freezeAdminUser, unfreezeAdminUser, type AdminUserItem } from '@/features/admin/api/adminUsers'
import { useAdminPaginatedTable } from '@/composables/useAdminPaginatedTable'
import { userStatusLabel } from '@/utils/statusLabels'
import { formatDateTime } from '@/utils/time'
@@ -2,7 +2,7 @@
import { Search } from '@element-plus/icons-vue'
import { computed, onMounted, reactive, ref } from 'vue'
import { fetchAdminWalletLedger, type AdminWalletLedger } from '@/api/adminWallet'
import { fetchAdminWalletLedger, type AdminWalletLedger } from '@/features/admin/api/adminWallet'
import { balanceTypeLabel, ledgerDirectionLabel } from '@/utils/statusLabels'
import { formatDateTime } from '@/utils/time'