refactor: 将多处Drawer组件替换为Modal组件

统一页面弹窗组件命名,将所有Drawer类型的弹窗组件替换为Modal命名规范,修正了注释中的抽屉描述为弹窗,调整了对应组件导入路径和名称
This commit is contained in:
Kris 2026-07-09 04:22:06 +08:00
parent b7ceeb11f3
commit eb6858e8a8
10 changed files with 38 additions and 38 deletions

View File

@ -318,8 +318,8 @@
@close="handleQrLoginClose"
/>
<!-- Webhook 测试抽屉 -->
<WebhookTestDrawer
<!-- Webhook 测试弹窗 -->
<WebhookTestModal
v-model:open="webhookDrawerVisible"
:channel-type="channelType"
:account-id="accountId"
@ -375,7 +375,7 @@ import LoadingState from '@/components/external-systems/common/LoadingState.vue'
import EmptyState from '@/components/external-systems/common/EmptyState.vue'
import StatusTag from '@/components/external-systems/common/StatusTag.vue'
import QrLoginModal from '@/components/channels/access-ops/QrLoginModal.vue'
import WebhookTestDrawer from '@/components/channels/access-ops/WebhookTestDrawer.vue'
import WebhookTestModal from '@/components/channels/access-ops/WebhookTestModal.vue'
import CloneAccountModal from '@/components/channels/access-ops/CloneAccountModal.vue'
import DeleteAccountModal from '@/components/channels/access-ops/DeleteAccountModal.vue'
import BasicInfoTab from './account-detail/BasicInfoTab.vue'

View File

@ -423,8 +423,8 @@
<p>该操作不可逆确认继续</p>
</a-modal>
<!-- Webhook 测试抽屉原型 §20 复用 -->
<WebhookTestDrawer
<!-- Webhook 测试弹窗原型 §20 复用 -->
<WebhookTestModal
:open="webhookTestVisible"
:channel-type="wizard.channelType.value || ''"
@update:open="webhookTestVisible = $event"
@ -441,7 +441,7 @@ import { X, Info, ShieldCheck, CheckCircle2, Webhook } from 'lucide-vue-next'
import { useChannelWizard } from '@/composables/channels/useChannelWizard'
import { useAgentStore } from '@/stores/agent'
import { MATCH_SOURCE_OPTIONS, MATCH_SOURCE_META } from '@/composables/channels/constants'
import WebhookTestDrawer from './WebhookTestDrawer.vue'
import WebhookTestModal from './WebhookTestModal.vue'
import WizardQrLogin from './WizardQrLogin.vue'
const matchSourceOptions = MATCH_SOURCE_OPTIONS

View File

@ -207,8 +207,8 @@
@success="fetchList"
/>
<!-- 测试解析抽屉 -->
<RouteBindingResolveDrawer
<!-- 测试解析弹窗 -->
<RouteBindingResolveModal
v-model:open="detailVisible"
:initial-record="resolveRecord"
/>
@ -232,7 +232,7 @@ import {
import PageContainer from '@/components/channels/layout/PageContainer.vue'
import ErrorRetryAlert from '@/components/channels/common/ErrorRetryAlert.vue'
import RouteBindingFormModal from './RouteBindingFormModal.vue'
import RouteBindingResolveDrawer from './RouteBindingResolveDrawer.vue'
import RouteBindingResolveModal from './RouteBindingResolveModal.vue'
import { useRouteBinding } from '@/composables/channels/useRouteBinding'
import { useChannelTypes } from '@/composables/channels/useChannelTypes'
import {

View File

@ -385,7 +385,7 @@
/>
<!-- 重发消息抽屉 -->
<MessageResendDrawer
<MessageResendModal
:open="resendVisible"
:message="resendContext"
:loading="resending"
@ -406,7 +406,7 @@ import PageContainer from '@/components/channels/layout/PageContainer.vue'
import ErrorRetryAlert from '@/components/channels/common/ErrorRetryAlert.vue'
import PaginationBar from '@/components/external-systems/common/PaginationBar.vue'
import MessageDetailDrawer from './MessageDetailDrawer.vue'
import MessageResendDrawer from './MessageResendDrawer.vue'
import MessageResendModal from './MessageResendModal.vue'
import { useMessage } from '@/composables/channels/useMessage'
import { formatTime } from '@/composables/channels/utils'
import { useChannelTypes } from '@/composables/channels/useChannelTypes'
@ -467,7 +467,7 @@ const hasSearched = ref(false) // 是否已发起过搜索(用于空状态文
//
const detailVisible = ref(false)
const detailMessageId = ref('')
//
//
const resendVisible = ref(false)
const resendContext = ref(null) // { message_id, channel_type, conversation_id, content }
//
@ -732,7 +732,7 @@ function handleDetailResend() {
resendVisible.value = true
}
// ===== =====
// ===== =====
async function handleResendSubmit(payload) {
const ctx = resendContext.value
if (!ctx?.channel_type || !ctx?.message_id) {

View File

@ -625,8 +625,8 @@
@reload="reloadDetail"
/>
<!-- 重试策略抽屉 -->
<OutboxRetryPolicyDrawer
<!-- 重试策略弹窗 -->
<OutboxRetryPolicyModal
:visible="policyVisible"
:policy="policy"
:loading="policyLoading"
@ -728,7 +728,7 @@ import {
import PageContainer from '@/components/channels/layout/PageContainer.vue'
import ErrorRetryAlert from '@/components/channels/common/ErrorRetryAlert.vue'
import OutboxMessageDetailDrawer from './OutboxMessageDetailDrawer.vue'
import OutboxRetryPolicyDrawer from './OutboxRetryPolicyDrawer.vue'
import OutboxRetryPolicyModal from './OutboxRetryPolicyModal.vue'
import { useOutbox } from '@/composables/channels/useOutbox'
import { useThemeStore } from '@/stores/theme'
import { useChannelTypes } from '@/composables/channels/useChannelTypes'
@ -1514,7 +1514,7 @@ function downloadExport(res) {
URL.revokeObjectURL(url)
}
// ===== =====
// ===== =====
const policyVisible = ref(false)
function openPolicyDrawer() {

View File

@ -124,7 +124,7 @@
/>
<!-- 重发 Drawer -->
<MessageResendDrawer
<MessageResendModal
v-model:open="resendVisible"
:message="resendMessageData"
:loading="operationLoading"
@ -179,7 +179,7 @@ import SessionTransferModal from './SessionTransferModal.vue'
import SessionMergeModal from './SessionMergeModal.vue'
import SessionBatchCloseModal from './SessionBatchCloseModal.vue'
import SessionBindUserModal from './SessionBindUserModal.vue'
import MessageResendDrawer from './MessageResendDrawer.vue'
import MessageResendModal from './MessageResendModal.vue'
import MessageSendModal from './MessageSendModal.vue'
import { useChannelSessions } from '@/composables/channels/useChannelSessions'
import { useChannelEvents } from '@/composables/channels/useChannelEvents'

View File

@ -229,7 +229,7 @@ export const BATCH_LIMIT = 100
/>
<!-- 统计抽屉 -->
<ContentReviewStatsDrawer
<ContentReviewStatsModal
:visible="statsDrawerVisible"
:stats="stats"
:loading="statsLoading"
@ -293,7 +293,7 @@ import ErrorRetryAlert from '@/components/channels/common/ErrorRetryAlert.vue'
import ContentReviewPreviewModal from './ContentReviewPreviewModal.vue'
import ContentReviewBatchDecisionModal from './ContentReviewBatchDecisionModal.vue'
import ContentReviewDetailDrawer from './ContentReviewDetailDrawer.vue'
import ContentReviewStatsDrawer from './ContentReviewStatsDrawer.vue'
import ContentReviewStatsModal from './ContentReviewStatsModal.vue'
import { useContentReview } from '@/composables/channels/useContentReview'
import { listReviewHistoryApi } from '@/apis/channels/content_review_api'
import { unwrap } from '@/composables/channels/utils'
@ -716,7 +716,7 @@ function downloadErrorLog() {
URL.revokeObjectURL(url)
}
// ===== =====
// ===== =====
function openStatsDrawer() {
statsDrawerVisible.value = true
loadStats({ granularity: 'day' })

View File

@ -272,8 +272,8 @@
@add-to-allowlist="handleAddToAllowlist"
/>
<!-- 统计抽屉 -->
<PairingStatsDrawer
<!-- 统计弹窗 -->
<PairingStatsModal
:visible="statsDrawerVisible"
:stats="stats"
:loading="statsLoading"
@ -351,7 +351,7 @@ import ErrorRetryAlert from '@/components/channels/common/ErrorRetryAlert.vue'
import PairingCreateModal from './PairingCreateModal.vue'
import PairingCleanExpiredModal from './PairingCleanExpiredModal.vue'
import PairingDetailDrawer from './PairingDetailDrawer.vue'
import PairingStatsDrawer from './PairingStatsDrawer.vue'
import PairingStatsModal from './PairingStatsModal.vue'
import PairingReasonModal from './PairingReasonModal.vue'
import { usePairingApproval } from '@/composables/channels/usePairingApproval'
import { countPairingsApi } from '@/apis/channels/pairing_api'
@ -918,7 +918,7 @@ function downloadErrorLog() {
URL.revokeObjectURL(url)
}
// ===== =====
// ===== =====
let statsGranularity = 'day'
function openStatsDrawer() {

View File

@ -158,8 +158,8 @@
@submit="handleExportSubmit"
/>
<!-- 统计抽屉 -->
<AuditLogStatsDrawer
<!-- 统计弹窗 -->
<AuditLogStatsModal
:visible="statsVisible"
:stats="stats"
:loading="statsLoading"
@ -201,7 +201,7 @@ import PageContainer from '@/components/channels/layout/PageContainer.vue'
import ErrorRetryAlert from '@/components/channels/common/ErrorRetryAlert.vue'
import AuditLogDetailDrawer from './AuditLogDetailDrawer.vue'
import AuditLogExportModal from './AuditLogExportModal.vue'
import AuditLogStatsDrawer from './AuditLogStatsDrawer.vue'
import AuditLogStatsModal from './AuditLogStatsModal.vue'
import RetentionPolicyModal from './RetentionPolicyModal.vue'
import OperationTypesModal from './OperationTypesModal.vue'
import { useAuditLog } from '@/composables/channels/useAuditLog'
@ -323,7 +323,7 @@ function handleOpenStats() {
statsVisible.value = true
//
fetchStats({}).catch(() => {
//
//
})
}

View File

@ -191,7 +191,7 @@
</div>
<!-- Schema 预览抽屉§4.1 -->
<ConfigSchemaDrawer
<ConfigSchemaModal
:open="schemaDrawerVisible"
:loading="schemaLoading"
:schema="schema"
@ -209,8 +209,8 @@
@cancel="handleEditCancel"
/>
<!-- 批量更新抽屉§4.3 -->
<ConfigBatchUpdateDrawer
<!-- 批量更新弹窗§4.3 -->
<ConfigBatchUpdateModal
:open="batchVisible"
:submitting="batchSubmitting"
:scope="scope"
@ -221,8 +221,8 @@
@close="handleBatchClose"
/>
<!-- 导入配置抽屉§4.4 -->
<ConfigImportDrawer
<!-- 导入配置弹窗§4.4 -->
<ConfigImportModal
:open="importVisible"
:submitting="importSubmitting"
:scope="scope"
@ -266,10 +266,10 @@ import { RefreshCw, Eye, Download, Upload, ListChecks, Copy, ChevronDown } from
import PageContainer from '@/components/channels/layout/PageContainer.vue'
import PermissionButton from '@/components/channels/common/PermissionButton.vue'
import ErrorRetryAlert from '@/components/channels/common/ErrorRetryAlert.vue'
import ConfigSchemaDrawer from './ConfigSchemaDrawer.vue'
import ConfigSchemaModal from './ConfigSchemaModal.vue'
import ConfigEditModal from './ConfigEditModal.vue'
import ConfigBatchUpdateDrawer from './ConfigBatchUpdateDrawer.vue'
import ConfigImportDrawer from './ConfigImportDrawer.vue'
import ConfigBatchUpdateModal from './ConfigBatchUpdateModal.vue'
import ConfigImportModal from './ConfigImportModal.vue'
import ConfigRollbackModal from './ConfigRollbackModal.vue'
import ConfigHistoryPanel from './ConfigHistoryPanel.vue'
import { useUserStore } from '@/stores/user'