模型类型修复

This commit is contained in:
2026-07-23 17:57:28 +08:00
parent be51ac40e0
commit ace80efd63
@@ -52,7 +52,7 @@
<el-row :gutter="20">
<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
<el-form-item label="返回类型" prop="responseType">
<el-select v-model="formData.responseType" placeholder="请选择返回类型" clearable style="width: 100%">
<el-select v-model="formData.responseType" placeholder="请选择返回类型" clearable style="width: 100%" @change="handleResponseTypeChange">
<el-option label="同步" :value="1" />
<el-option label="异步" :value="2" />
<el-option label="流式" :value="3" />
@@ -428,6 +428,18 @@ function getSelectedModelLabels(): string[] {
return labels;
}
/** 从模型类型树中查找叶子值对应的完整路径(el-cascader 需要路径而非叶子值) */
function findModelTypePath(value: number, tree: ModelTypeTreeNode[]): number[] {
for (const node of tree) {
if (node.value === value) return [value];
if (node.children) {
const found = node.children.find((c) => c.value === value);
if (found) return [node.value, value];
}
}
return [value];
}
/** 判断是否是视频模型类型 */
const isVideoModel = computed(() => {
return getSelectedModelLabels().some((l) => l.includes('视频') || l.toLowerCase().includes('video'));
@@ -514,12 +526,11 @@ const taskStatusOptions = computed(() => {
/** 是否有任务状态映射配置 */
const hasTaskStatusConfig = computed(() => taskStatusOptions.value.length > 0);
/** 切换返回类型时清空 token mapping(初始加载时跳过 */
let _skipTokenClear = false;
watch(() => formData.responseType, () => {
if (_skipTokenClear) { _skipTokenClear = false; return; }
/** 用户手动切换返回类型时清空 token 映射(编程赋值不触发 */
function handleResponseTypeChange() {
formData.tokenMapping = { ...defaultTokenMapping };
});
}
/** JSON 编辑器弹窗状态 */
const jsonEditorVisible = ref(false);
@@ -640,12 +651,11 @@ const openDialog = async (type: 'add' | 'edit', id?: string) => {
if (type === 'edit' && id) {
editId.value = id;
_skipTokenClear = true;
try {
const res = await getModelManage(id);
const row = res.data.modelManage;
formData.modelName = row.modelName;
formData.modelType = [row.modelType];
formData.modelType = findModelTypePath(row.modelType, props.modelTypes);
formData.modelSupplier = Number(row.modelSupplier) || undefined;
formData.baseUrl = row.baseUrl;
formData.apiKey = row.apiKey || '';