Merge branch 'main' into yinseyemian

This commit is contained in:
hrz
2025-11-17 17:09:53 +08:00
committed by GitHub
89 changed files with 8922 additions and 6013 deletions
@@ -273,11 +273,9 @@ export default {
handleSubmit: function(form) {
console.log('handleSubmit called with form:', form);
if (form.id) {
// 编辑 - 使用dataset_id作为路径参数,form作为请求体
console.log('Editing knowledge base:', form.datasetId);
Api.knowledgeBase.updateKnowledgeBase(form.datasetId, form, (res) => {
console.log('Update response:', res);
// 修复:检查 res.data.code 而不是 res.code
if (res.data && res.data.code === 0) {
this.dialogVisible = false;
this.fetchKnowledgeBaseList();
@@ -285,8 +283,15 @@ export default {
} else {
this.$message.error(res.data?.msg || this.$t('knowledgeBaseManagement.updateFailed'));
}
}, () => {
this.$message.error(this.$t('knowledgeBaseManagement.updateFailed'));
}, (err) => {
console.log('Error callback received:', err);
// 错误回调处理后端返回的错误信息
if (err && err.data) {
console.log('后端返回错误消息:', err.data.msg || err.msg);
this.$message.error(err.data.msg || err.msg || this.$t('knowledgeBaseManagement.updateFailed'));
} else {
this.$message.error(this.$t('knowledgeBaseManagement.updateFailed'));
}
});
} else {
// 新增 - 只传递必要的字段,不传递id
@@ -303,6 +308,8 @@ export default {
this.dialogVisible = false;
this.fetchKnowledgeBaseList();
this.$message.success(this.$t('knowledgeBaseManagement.addSuccess'));
} else {
this.$message.error(res.data?.msg || this.$t('knowledgeBaseManagement.addFailed'));
}
}, (err) => {
console.log('Error callback received:', err);
@@ -338,8 +345,15 @@ export default {
} else {
this.$message.error(res.data?.msg || this.$t('knowledgeBaseManagement.deleteFailed'));
}
}, () => {
this.$message.error(this.$t('knowledgeBaseManagement.deleteFailed'));
}, (err) => {
console.log('Error callback received:', err);
// 错误回调处理后端返回的错误信息
if (err && err.data) {
console.log('后端返回错误消息:', err.data.msg || err.msg);
this.$message.error(err.data.msg || err.msg || this.$t('knowledgeBaseManagement.deleteFailed'));
} else {
this.$message.error(this.$t('knowledgeBaseManagement.deleteFailed'));
}
});
}).catch(() => {
this.$message({
@@ -365,8 +379,15 @@ export default {
} else {
this.$message.error(res.data?.msg || this.$t('knowledgeBaseManagement.deleteFailed'));
}
}, () => {
this.$message.error(this.$t('knowledgeBaseManagement.deleteFailed'));
}, (err) => {
console.log('Error callback received:', err);
// 错误回调处理后端返回的错误信息
if (err && err.data) {
console.log('后端返回错误消息:', err.data.msg || err.msg);
this.$message.error(err.data.msg || err.msg || this.$t('knowledgeBaseManagement.deleteFailed'));
} else {
this.$message.error(this.$t('knowledgeBaseManagement.deleteFailed'));
}
});
}).catch(() => {
this.$message({
@@ -401,7 +401,13 @@ export default {
},
(err) => {
this.loading = false;
this.$message.error(this.$t('knowledgeFileUpload.getListFailed'));
console.log('Error callback received:', err);
if (err && err.data) {
console.log('后端返回错误消息:', err.data.msg || err.msg);
this.$message.error(err.data.msg || err.msg || this.$t('knowledgeFileUpload.getListFailed'));
} else {
this.$message.error(this.$t('knowledgeFileUpload.getListFailed'));
}
console.error('获取文档列表失败:', err);
this.fileList = [];
this.total = 0;
@@ -657,7 +663,12 @@ export default {
}
},
(err) => {
reject({ success: false, fileName: file.name, error: this.$t('knowledgeFileUpload.uploadFailed') });
// 错误回调处理后端返回的错误信息
if (err && err.data) {
reject({ success: false, fileName: file.name, error: err.data.msg || err.msg || this.$t('knowledgeFileUpload.uploadFailed') });
} else {
reject({ success: false, fileName: file.name, error: this.$t('knowledgeFileUpload.uploadFailed') });
}
console.error('上传文档失败:', err);
}
);
@@ -718,7 +729,12 @@ export default {
},
(err) => {
this.uploading = false;
this.$message.error(this.$t('knowledgeFileUpload.uploadFailed'));
// 错误回调处理后端返回的错误信息
if (err && err.data) {
this.$message.error(err.data.msg || err.msg || this.$t('knowledgeFileUpload.uploadFailed'));
} else {
this.$message.error(this.$t('knowledgeFileUpload.uploadFailed'));
}
console.error('上传文档失败:', err);
}
);
@@ -751,7 +767,12 @@ export default {
}
},
(err) => {
this.$message.error(this.$t('knowledgeFileUpload.parseFailed'));
// 错误回调处理后端返回的错误信息
if (err && err.data) {
this.$message.error(err.data.msg || err.msg || this.$t('knowledgeFileUpload.parseFailed'));
} else {
this.$message.error(this.$t('knowledgeFileUpload.parseFailed'));
}
console.error('解析文档失败:', err);
}
);
@@ -784,7 +805,12 @@ export default {
}
},
(err) => {
this.$message.error(this.$t('knowledgeFileUpload.deleteFailed'));
// 错误回调处理后端返回的错误信息
if (err && err.data) {
this.$message.error(err.data.msg || err.msg || this.$t('knowledgeFileUpload.deleteFailed'));
} else {
this.$message.error(this.$t('knowledgeFileUpload.deleteFailed'));
}
console.error('删除文档失败:', err);
}
);
@@ -829,7 +855,12 @@ export default {
}
},
(err) => {
reject(this.$t('knowledgeFileUpload.deleteFailed'));
// 错误回调处理后端返回的错误信息
if (err && err.data) {
reject(err.data.msg || err.msg || this.$t('knowledgeFileUpload.deleteFailed'));
} else {
reject(this.$t('knowledgeFileUpload.deleteFailed'));
}
console.error('删除文档失败:', err);
}
);
@@ -938,7 +969,12 @@ export default {
},
(err) => {
this.sliceLoading = false;
this.$message.error('获取切片列表失败');
// 错误回调处理后端返回的错误信息
if (err && err.data) {
this.$message.error(err.data.msg || err.msg || '获取切片列表失败');
} else {
this.$message.error('获取切片列表失败');
}
console.error('获取切片列表失败:', err);
this.sliceList = [];
this.sliceTotal = 0;
@@ -1055,7 +1091,12 @@ export default {
},
(err) => {
this.retrievalTestLoading = false;
this.$message.error('召回测试失败');
// 错误回调处理后端返回的错误信息
if (err && err.data) {
this.$message.error(err.data.msg || err.msg || '召回测试失败');
} else {
this.$message.error('召回测试失败');
}
console.error('召回测试失败:', err);
}
);
@@ -42,7 +42,7 @@
</template>
</el-table-column>
<el-table-column :label="$t('voiceClone.Details')" align="center" width="80">
<el-table-column :label="$t('voiceClone.Details')" align="center" width="120">
<template slot-scope="scope">
<el-tooltip :content="getTooltipContent(scope.row)" placement="top">
<el-button size="mini" type="text" icon="el-icon-info"
+4 -2
View File
@@ -21,6 +21,8 @@
font-size: 25px;
text-align: left;
color: #3d4566;
white-space: nowrap;
flex-shrink: 0;
}
.login-welcome {
@@ -36,11 +38,11 @@
position: absolute;
top: 50%;
transform: translateY(-50%);
right: 18%;
right: 15%;
background-color: #fff;
border-radius: 20px;
padding: 35px 0;
width: 450px;
width: 550px;
box-sizing: border-box;
}
+10
View File
@@ -49,6 +49,12 @@
<el-dropdown-item @click.native="changeLanguage('en')">
{{ $t("language.en") }}
</el-dropdown-item>
<el-dropdown-item @click.native="changeLanguage('de')">
{{ $t("language.de") }}
</el-dropdown-item>
<el-dropdown-item @click.native="changeLanguage('vi')">
{{ $t("language.vi") }}
</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
@@ -177,6 +183,10 @@ export default {
return this.$t("language.zhTW");
case "en":
return this.$t("language.en");
case "de":
return this.$t("language.de");
case "vi":
return this.$t("language.vi");
default:
return this.$t("language.zhCN");
}
+16 -18
View File
@@ -177,11 +177,8 @@
<div slot="content">
<div><strong>功能名称:</strong> {{ func.name }}</div>
</div>
<div
class="icon-dot"
:style="{ backgroundColor: getFunctionColor(func.name) }"
>
{{ func.name.charAt(0) }}
<div class="icon-dot">
{{ getFunctionDisplayChar(func.name) }}
</div>
</el-tooltip>
<el-button
@@ -323,15 +320,6 @@ export default {
voiceDetails: {}, // 保存完整的音色信息
showFunctionDialog: false,
currentFunctions: [],
functionColorMap: [
"#FF6B6B",
"#4ECDC4",
"#45B7D1",
"#96CEB4",
"#FFEEAD",
"#D4A5A5",
"#A2836E",
],
allFunctions: [],
originalFunctions: [],
playingVoice: false,
@@ -596,9 +584,18 @@ export default {
}
});
},
getFunctionColor(name) {
const hash = [...name].reduce((acc, char) => acc + char.charCodeAt(0), 0);
return this.functionColorMap[hash % this.functionColorMap.length];
getFunctionDisplayChar(name) {
if (!name || name.length === 0) return '';
for (let i = 0; i < name.length; i++) {
const char = name[i];
if (/[\u4e00-\u9fa5a-zA-Z0-9]/.test(char)) {
return char;
}
}
// 如果没有找到有效字符,返回第一个字符
return name.charAt(0);
},
showFunctionIcons(type) {
return type === "Intent" && this.form.model.intentModelId !== "Intent_nointent";
@@ -1228,11 +1225,12 @@ export default {
display: inline-flex;
align-items: center;
justify-content: center;
color: white;
color: #5778ff;
font-weight: bold;
font-size: 12px;
margin-right: 8px;
position: relative;
background-color: #e6ebff;
}
::v-deep .el-form-item__label {