diff --git a/apps/web-antd/src/api/order/query.ts b/apps/web-antd/src/api/order/query.ts index 8eb39a1..295cfbf 100644 --- a/apps/web-antd/src/api/order/query.ts +++ b/apps/web-antd/src/api/order/query.ts @@ -113,6 +113,17 @@ export namespace OrderQueryApi { export interface UpdateQueryCleanupConfigResponse { success: boolean; } + + // 运维补删接口:按 QueryId+FeatureApiId 删除单条查询中的指定模块数据 + export interface AdminDeleteQueryFeatureDataRequest { + query_id: string; + feature_api_id: string; + } + + export interface AdminDeleteQueryFeatureDataResponse { + success: boolean; + message: string; + } } /** @@ -175,10 +186,23 @@ async function updateQueryCleanupConfig( ); } +/** + * 运维补删:按 QueryId + FeatureApiId 删除单条查询中的指定模块数据 + */ +async function adminDeleteQueryFeatureData( + data: OrderQueryApi.AdminDeleteQueryFeatureDataRequest, +) { + return requestClient.post( + '/query/cleanup/delete/feature', + data, + ); +} + export { getOrderQueryDetail, getQueryCleanupConfigList, getQueryCleanupDetailList, getQueryCleanupLogList, updateQueryCleanupConfig, + adminDeleteQueryFeatureData, }; diff --git a/apps/web-antd/src/views/order/query/query-details.vue b/apps/web-antd/src/views/order/query/query-details.vue index df1b8ea..8c6fdb8 100644 --- a/apps/web-antd/src/views/order/query/query-details.vue +++ b/apps/web-antd/src/views/order/query/query-details.vue @@ -14,17 +14,25 @@ import { Card, Collapse, Descriptions, + Input, message, + Modal, Tag, } from 'ant-design-vue'; -import { getOrderQueryDetail } from '#/api/order/query'; +import { + adminDeleteQueryFeatureData, + getOrderQueryDetail, +} from '#/api/order/query'; const route = useRoute(); const router = useRouter(); const orderId = route.params.id as string; const loading = ref(false); const queryDetail = ref(); +const deleteModalVisible = ref(false); +const deleteFeatureApiId = ref(''); +const deleting = ref(false); // 查询状态配置 const queryStateConfig = [ @@ -104,6 +112,39 @@ function handleCopied(_event: JsonViewerAction) { onMounted(() => { fetchQueryDetail(); }); + +async function handleOpenDeleteModal(apiId?: string) { + deleteFeatureApiId.value = apiId || ''; + deleteModalVisible.value = true; +} + +async function handleConfirmDelete() { + if (!queryDetail.value) return; + if (!deleteFeatureApiId.value) { + message.warning('请填写要删除的模块 API 标识'); + return; + } + deleting.value = true; + try { + const res = await adminDeleteQueryFeatureData({ + query_id: queryDetail.value.id, + feature_api_id: deleteFeatureApiId.value, + }); + if (res.success) { + message.success(res.message || '删除成功'); + deleteModalVisible.value = false; + deleteFeatureApiId.value = ''; + // 重新拉取详情,刷新前端数据 + await fetchQueryDetail(); + } else { + message.error(res.message || '删除失败'); + } + } catch { + message.error('删除失败'); + } finally { + deleting.value = false; + } +}
+
+ +
查询结果:
@@ -219,6 +274,33 @@ onMounted(() => {
+ + + +
+

+ 该操作仅用于运维场景,按照 QueryId + FeatureApiId 精确删除单条查询中的某个模块数据,请谨慎使用。 +

+
+
Query ID
+ +
+
+
模块 API 标识(feature_api_id)
+ +
+
+
diff --git a/apps/web-antd/vite.config.mts b/apps/web-antd/vite.config.mts index b923a47..2ddb088 100644 --- a/apps/web-antd/vite.config.mts +++ b/apps/web-antd/vite.config.mts @@ -10,8 +10,8 @@ export default defineConfig(async () => { changeOrigin: true, rewrite: (path) => path.replace(/^\/api/, ''), // mock代理目标地址 - target: 'http://localhost:8888/api', - // target: 'https://www.onecha.cn/api', + // target: 'http://localhost:8888/api', + target: 'https://www.onecha.cn/api', ws: true, }, },