mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-22 15:13:55 +08:00
完成修改模型页面的”获取模型供应器列表“功能;”删除模型配置“出现”服务器内部异常“错误。
This commit is contained in:
@@ -74,5 +74,23 @@ export default {
|
||||
})
|
||||
}).send()
|
||||
},
|
||||
// 删除模型配置
|
||||
deleteModel(modelType, provideCode, id, callback) {
|
||||
RequestService.sendRequest()
|
||||
.url(`${getServiceUrl()}/api/v1/models/models/${modelType}/${provideCode}/${id}`)
|
||||
.method('DELETE')
|
||||
.success((res) => {
|
||||
RequestService.clearRequestTime()
|
||||
callback(res)
|
||||
})
|
||||
.fail((err) => {
|
||||
console.error('删除模型失败:', err)
|
||||
this.$message.error(err.msg || '删除模型失败')
|
||||
RequestService.reAjaxFun(() => {
|
||||
this.deleteModel(modelType, provideCode, id, callback)
|
||||
})
|
||||
}).send()
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -37,10 +37,9 @@
|
||||
|
||||
<div style="display: flex; gap: 20px; margin-bottom: 0;">
|
||||
<el-form-item label="供应器" prop="supplier" style="flex: 1;">
|
||||
<el-select v-model="form.supplier" placeholder="请选择" class="custom-select custom-input-bg" style="width: 100%;">
|
||||
<el-option label="openai" value="openai"></el-option>
|
||||
<el-option label="dify" value="dify"></el-option>
|
||||
</el-select>
|
||||
<el-select v-model="form.supplier" placeholder="请选择" class="custom-select custom-input-bg" style="width: 100%;" @focus="loadProviders" filterable>
|
||||
<el-option v-for="item in providers" :key="item.value" :label="item.label" :value="item.value"/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="排序号" prop="sort" style="flex: 1;">
|
||||
<el-input v-model="form.sort" placeholder="请输入排序号" class="custom-input-bg"></el-input>
|
||||
@@ -84,15 +83,19 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import model from '@/apis/module/model'
|
||||
export default {
|
||||
name: "ModelConfigDialog",
|
||||
props: {
|
||||
visible: { type: Boolean, default: false },
|
||||
configData: { type: Object, default: () => ({}) }
|
||||
configData: { type: Object, default: () => ({}) },
|
||||
modelType: { type: String, required: true }
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
dialogVisible: this.visible,
|
||||
providers: [],
|
||||
providersLoaded: false,
|
||||
form: {
|
||||
code: "",
|
||||
name: "",
|
||||
@@ -109,19 +112,51 @@ export default {
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
modelType() {
|
||||
this.resetProviders()
|
||||
},
|
||||
dialogVisible(val) {
|
||||
this.$emit('update:visible', val);
|
||||
if (!val) {
|
||||
this.form = {
|
||||
code: "",
|
||||
name: "",
|
||||
supplier: "",
|
||||
};
|
||||
}
|
||||
},
|
||||
visible(val) {
|
||||
this.dialogVisible = val;
|
||||
if (val) this.form = { ...this.form, ...this.configData };
|
||||
}
|
||||
if (val) {
|
||||
this.form = JSON.parse(JSON.stringify({
|
||||
...this.form,
|
||||
...this.configData
|
||||
}));
|
||||
this.resetProviders();
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
resetProviders() {
|
||||
this.providers = []
|
||||
this.providersLoaded = false
|
||||
},
|
||||
handleSave() {
|
||||
this.$emit("submit", this.form);
|
||||
this.dialogVisible = false;
|
||||
}
|
||||
},
|
||||
|
||||
loadProviders() {
|
||||
if (this.providersLoaded) return
|
||||
|
||||
model.getModelProviders(this.modelType, (data) => {
|
||||
this.providers = data.map(item => ({
|
||||
label: item.name,
|
||||
value: item.providerCode
|
||||
}))
|
||||
this.providersLoaded = true
|
||||
})
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ModelEditDialog :visible.sync="editDialogVisible" :modelData="editModelData" @save="handleModelSave"/>
|
||||
<ModelEditDialog :modelType="activeTab" :visible.sync="editDialogVisible" :modelData="editModelData" @save="handleModelSave"/>
|
||||
<TtsModel :visible.sync="ttsDialogVisible" />
|
||||
<AddModelDialog :modelType="activeTab" :visible.sync="addDialogVisible" @confirm="handleAddConfirm"/>
|
||||
</div>
|
||||
@@ -209,48 +209,71 @@ export default {
|
||||
handleSearch() {
|
||||
console.log('查询:', this.search);
|
||||
},
|
||||
// 批量删除
|
||||
batchDelete() {
|
||||
if (this.selectedModels.length === 0) {
|
||||
this.$message.warning('请先选择要删除的模型');
|
||||
return;
|
||||
this.$message.warning('请先选择要删除的模型')
|
||||
return
|
||||
}
|
||||
|
||||
this.$confirm('确定要删除选中的模型吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
const selectedIds = this.selectedModels.map(model => model.code);
|
||||
this.modelList = this.modelList.filter(model => !selectedIds.includes(model.code));
|
||||
this.$message.success('删除成功');
|
||||
this.selectedModels = [];
|
||||
this.isAllSelected = false;
|
||||
const deletePromises = this.selectedModels.map(model =>
|
||||
new Promise(resolve => {
|
||||
ModelApi.deleteModel(
|
||||
this.activeTab,
|
||||
model.configJson?.provider || '',
|
||||
model.id,
|
||||
({data}) => resolve(data.code === 0)
|
||||
)
|
||||
})
|
||||
)
|
||||
|
||||
Promise.all(deletePromises).then(results => {
|
||||
if (results.every(Boolean)) {
|
||||
this.$message.success('批量删除成功')
|
||||
this.loadData()
|
||||
} else {
|
||||
this.$message.error('部分删除失败')
|
||||
}
|
||||
})
|
||||
}).catch(() => {
|
||||
this.$message.info('已取消删除');
|
||||
});
|
||||
},
|
||||
this.$message.info('已取消删除')
|
||||
})
|
||||
},
|
||||
addModel() {
|
||||
this.addDialogVisible = true;
|
||||
},
|
||||
editModel(model) {
|
||||
this.editModelData = {
|
||||
code: model.code,
|
||||
name: model.candidateName,
|
||||
supplier: model.supplier,
|
||||
};
|
||||
this.editModelData = JSON.parse(JSON.stringify(model));
|
||||
this.editDialogVisible = true;
|
||||
},
|
||||
// 删除模型配置
|
||||
// 删除单个模型
|
||||
deleteModel(model) {
|
||||
this.$confirm(`确定要删除模型 ${model.candidateName} 吗?`, '提示', {
|
||||
this.$confirm('确定要删除该模型吗?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning'
|
||||
}).then(() => {
|
||||
this.modelList = this.modelList.filter(item => item.code !== model.code);
|
||||
this.$message.success('删除成功');
|
||||
ModelApi.deleteModel(
|
||||
this.activeTab,
|
||||
model.configJson?.provider || '', // 从configJson获取provider
|
||||
model.id,
|
||||
({data}) => {
|
||||
if (data.code === 0) {
|
||||
this.$message.success('删除成功')
|
||||
this.loadData()
|
||||
} else {
|
||||
this.$message.error(data.msg || '删除失败')
|
||||
}
|
||||
}
|
||||
)
|
||||
}).catch(() => {
|
||||
this.$message.info('已取消删除');
|
||||
});
|
||||
this.$message.info('已取消删除')
|
||||
})
|
||||
},
|
||||
handleCurrentChange(page) {
|
||||
this.currentPage = page;
|
||||
|
||||
Reference in New Issue
Block a user