模型管理v2:映射配置新增错误消息映射字段,重排映射配置分区为四列均分

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-08-20 16:48:16 +08:00
co-authored by Claude
parent 9f94f4a9ab
commit 28cc58bca0
2 changed files with 17 additions and 3 deletions
+2
View File
@@ -55,6 +55,7 @@ export interface ModelManageItem {
requestHeadMapping: Record<string, unknown>;
requestBodyMapping: Record<string, unknown>;
requestBusinessFieldMapping?: Record<string, string>;
error_message_mapping?: Record<string, unknown>;
responseMapping: Record<string, unknown>;
responseBodyMapping: Record<string, string>;
responseBusinessFieldMapping?: Record<string, string>;
@@ -170,6 +171,7 @@ export interface CreateModelManageParams {
tokenPredictPrice?: number;
requestHeadMapping?: Record<string, unknown>;
requestBodyMapping?: Record<string, unknown>;
error_message_mapping?: Record<string, unknown>;
responseMapping?: Record<string, unknown>;
responseBodyMapping?: Record<string, string>;
tokenMapping?: TokenMapping;
@@ -113,21 +113,28 @@
<KeyValueEditor v-model="formData.requestHeadMapping" />
</el-form-item>
</el-col>
<el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8" class="mb20">
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="请求体映射">
<el-button @click="openMappingEditor('requestBodyMapping')" style="width: 100%">
配置 ({{ Object.keys(formData.requestBodyMapping).length }})
</el-button>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8" class="mb20">
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="响应映射">
<el-button @click="openMappingEditor('responseMapping')" style="width: 100%">
配置 ({{ Object.keys(formData.responseMapping).length }})
</el-button>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="8" :md="8" :lg="8" :xl="8" class="mb20" v-if="formData.responseType !== 2">
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6" class="mb20">
<el-form-item label="错误消息映射">
<el-button @click="openMappingEditor('error_message_mapping')" style="width: 100%">
配置 ({{ Object.keys(formData.error_message_mapping || {}).length }})
</el-button>
</el-form-item>
</el-col>
<el-col :xs="24" :sm="6" :md="6" :lg="6" :xl="6" class="mb20" v-if="formData.responseType !== 2">
<el-form-item label="响应主体映射">
<el-select
v-model="formData.responseBodyMapping"
@@ -421,6 +428,7 @@ const formData = reactive({
// 映射
requestHeadMapping: {} as Record<string, unknown>,
requestBodyMapping: {} as Record<string, unknown>,
error_message_mapping: {} as Record<string, unknown>,
responseMapping: {} as Record<string, unknown>,
responseBodyMapping: [] as string[],
// Token 映射
@@ -563,6 +571,7 @@ const mappingFieldLabels: Record<string, string> = {
requestHeadMapping: '请求头映射',
requestBodyMapping: '请求体映射',
responseMapping: '响应映射',
error_message_mapping: '错误消息映射',
asyncResponseMapping: '异步-响应映射',
asyncRequestBodyMapping: '异步-请求体映射',
};
@@ -659,6 +668,7 @@ const resetForm = () => {
formData.tokenPredictPrice = 0;
formData.requestHeadMapping = {};
formData.requestBodyMapping = {};
formData.error_message_mapping = {};
formData.responseMapping = {};
formData.responseBodyMapping = [];
formData.tokenMapping = { ...defaultTokenMapping };
@@ -692,6 +702,7 @@ const openDialog = async (type: 'add' | 'edit', id?: string) => {
formData.tokenPredictPrice = row.tokenPredictPrice ?? 0;
formData.requestHeadMapping = row.requestHeadMapping || row.requestMapping || {};
formData.requestBodyMapping = row.requestBodyMapping || {};
formData.error_message_mapping = row.error_message_mapping || {};
formData.responseMapping = row.responseMapping || {};
formData.responseBodyMapping = row.responseBodyMapping
? (Array.isArray(row.responseBodyMapping) ? row.responseBodyMapping : Object.keys(row.responseBodyMapping))
@@ -742,6 +753,7 @@ const handleSubmit = async () => {
tokenPredictPrice: formData.tokenPredictPrice,
requestHeadMapping: Object.keys(formData.requestHeadMapping).length > 0 ? formData.requestHeadMapping : undefined,
requestBodyMapping: Object.keys(formData.requestBodyMapping).length > 0 ? formData.requestBodyMapping : undefined,
error_message_mapping: Object.keys(formData.error_message_mapping).length > 0 ? formData.error_message_mapping : undefined,
responseMapping: Object.keys(formData.responseMapping).length > 0 ? formData.responseMapping : undefined,
responseBodyMapping: formData.responseBodyMapping.length > 0
? Object.fromEntries(formData.responseBodyMapping.map(k => [k, '']))