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