模型类型修复
This commit is contained in:
@@ -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 || '';
|
||||
|
||||
Reference in New Issue
Block a user