mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-25 00:23:53 +08:00
Merge branch 'main' into yinseyemian
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user