优化了各个界面

This commit is contained in:
CGD
2025-03-22 00:22:12 +08:00
parent 5648ee974a
commit a5444b11b3
4 changed files with 71 additions and 34 deletions
@@ -1,5 +1,5 @@
<template> <template>
<el-dialog :visible.sync="dialogVisible" width="700px" @close="handleClose" class="compact-dialog" :append-to-body="true"> <el-dialog :visible.sync="dialogVisible" width="900px" @close="handleClose" class="compact-dialog" :append-to-body="true">
<el-form :model="voiceForm" :rules="rules" ref="voiceForm" label-width="80px"> <el-form :model="voiceForm" :rules="rules" ref="voiceForm" label-width="80px">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
@@ -30,7 +30,14 @@
<el-input v-model="voiceForm.remark" type="textarea" :rows="2" placeholder="请输入内容" class="compact-textarea" <el-input v-model="voiceForm.remark" type="textarea" :rows="2" placeholder="请输入内容" class="compact-textarea"
></el-input> ></el-input>
<div class="audio-controls"> <div class="audio-controls">
<span class="counter">000 / 001</span> <div class="audio-player">
<audio
:src="audioUrl"
controls
preload="metadata"
class="custom-audio"
></audio>
</div>
<el-button type="primary" size="mini" class="preview-btn">生成试听</el-button> <el-button type="primary" size="mini" class="preview-btn">生成试听</el-button>
</div> </div>
</el-form-item> </el-form-item>
@@ -62,6 +69,8 @@ export default {
return { return {
dialogVisible: this.showDialog, dialogVisible: this.showDialog,
voiceForm: { ...this.voiceData }, voiceForm: { ...this.voiceData },
audioUrl: 'http://music.163.com/song/media/outer/url?id=447925558.mp3',
generatedAudio: null,
rules: { rules: {
voiceCode: [{ required: true, message: '请输入音色编码', trigger: 'blur' }], voiceCode: [{ required: true, message: '请输入音色编码', trigger: 'blur' }],
voiceName: [{ required: true, message: '请输入音色名称', trigger: 'blur' }] voiceName: [{ required: true, message: '请输入音色名称', trigger: 'blur' }]
@@ -83,7 +92,7 @@ export default {
this.$refs.voiceForm.validate(valid => { this.$refs.voiceForm.validate(valid => {
if (valid) this.$emit('save', this.voiceForm) if (valid) this.$emit('save', this.voiceForm)
}) })
} },
} }
} }
</script> </script>
@@ -117,13 +126,10 @@ export default {
.audio-controls { .audio-controls {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: flex-start;
gap: 16px;
margin-top: 8px; margin-top: 8px;
.counter {
color: #909399;
font-size: 12px;
}
.preview-btn { .preview-btn {
padding: 7px 15px; padding: 7px 15px;
@@ -8,10 +8,10 @@
<img src="@/assets/home/equipment.png" alt="" style="width: 12px;height: 10px;" /> <img src="@/assets/home/equipment.png" alt="" style="width: 12px;height: 10px;" />
智能体管理 智能体管理
</div> </div>
<div class="equipment-management2" @click="goUserManagement"> <div class="equipment-management2" :class="{ 'active-tab': $route.path === '/user-management' }" @click="goUserManagement">
用户管理 用户管理
</div> </div>
<div class="equipment-management2" @click="goModelConfig"> <div class="equipment-management2" :class="{ 'active-tab': $route.path === '/model-config' }" @click="goModelConfig">
模型配置 模型配置
</div> </div>
</div> </div>
@@ -124,6 +124,12 @@ export default {
color: #3d4566; color: #3d4566;
margin-left: 1px; margin-left: 1px;
align-items: center; align-items: center;
transition: all 0.3s ease;
}
.equipment-management2.active-tab {
background: #5778ff !important;
color: #fff !important;
} }
.header { .header {
@@ -1,7 +1,7 @@
<template> <template>
<el-dialog :visible.sync="dialogVisible" width="800px" center> <el-dialog :visible.sync="dialogVisible" width="800px" center>
<el-form :model="form" ref="form" label-width="120px"> <el-form :model="form" ref="form" label-width="70px">
<el-row :gutter="20"> <el-row :gutter="20" class="form-row">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="模型编码"> <el-form-item label="模型编码">
<el-input v-model="form.code" placeholder="请输入内容" /> <el-input v-model="form.code" placeholder="请输入内容" />
@@ -15,9 +15,9 @@
</el-row> </el-row>
<!-- 供应商 --> <!-- 供应商 -->
<el-row :gutter="20"> <el-row :gutter="20" class="form-row">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="供应"> <el-form-item label="供应">
<el-select v-model="form.supplier" placeholder="请选择"> <el-select v-model="form.supplier" placeholder="请选择">
<el-option label="openai" value="openai" /> <el-option label="openai" value="openai" />
<el-option label="dify" value="dify" /> <el-option label="dify" value="dify" />
@@ -27,9 +27,9 @@
<el-col :span="12"> <el-col :span="12">
<el-form-item> <el-form-item>
<div style="display: flex; align-items: center;"> <div style="display: flex; align-items: center;">
<span class="el-form-item__label" style="width: 120px;">设成默认</span> <span class="el-form-item__label" style="width: 70px;">设成默认</span>
<el-switch v-model="form.isDefault" style="margin-right: 20px;" /> <el-switch v-model="form.isDefault" style="margin-right: 20px;" />
<span class="el-form-item__label" style="width: 120px;">是否启用</span> <span class="el-form-item__label" style="width: 70px;">是否启用</span>
<el-switch v-model="form.isEnable" /> <el-switch v-model="form.isEnable" />
</div> </div>
</el-form-item> </el-form-item>
@@ -37,7 +37,7 @@
</el-row> </el-row>
<!-- 文档 --> <!-- 文档 -->
<el-row :gutter="20"> <el-row :gutter="20" class="form-row">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="文档地址"> <el-form-item label="文档地址">
<el-input v-model="form.docUrl" placeholder="请输入内容" /> <el-input v-model="form.docUrl" placeholder="请输入内容" />
@@ -52,25 +52,22 @@
</el-row> </el-row>
<!-- 备注 --> <!-- 备注 -->
<el-form-item label="备注"> <el-form-item label="备注" class="form-row">
<el-input type="textarea" v-model="form.remark" :rows="2" placeholder="请输入" <el-input type="textarea" v-model="form.remark" :rows="2" placeholder="请输入"
/> />
</el-form-item> </el-form-item>
<el-form-item label="接口地址"> <div class="vertical-fields">
<el-input v-model="form.apiUrl" placeholder="请输入base_url" /> <el-form-item label="接口地址">
</el-form-item> <el-input v-model="form.apiUrl" placeholder="请输入base_url" />
<el-form-item label="模型名称"> </el-form-item>
<el-input v-model="form.modelName" placeholder="请输入model_name" /> <el-form-item label="模型名称">
</el-form-item> <el-input v-model="form.modelName" placeholder="请输入model_name" />
<el-form-item label="密钥信息"> </el-form-item>
<el-input <el-form-item label="密钥信息">
v-model="form.apiKey" <el-input v-model="form.apiKey" placeholder="请输入api_key" show-password/>
placeholder="请输入api_key" </el-form-item>
show-password </div>
/>
</el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
@@ -94,7 +91,7 @@ export default {
code: "", code: "",
name: "", name: "",
supplier: "", supplier: "",
isDefault: false, isDefault: true,
isEnable: true, isEnable: true,
docUrl: "", docUrl: "",
sort: 123, sort: 123,
@@ -106,6 +103,9 @@ export default {
}; };
}, },
watch: { watch: {
dialogVisible(val) {
this.$emit('update:visible', val);
},
visible(val) { visible(val) {
this.dialogVisible = val; this.dialogVisible = val;
if (val) this.form = { ...this.form, ...this.configData }; if (val) this.form = { ...this.form, ...this.configData };
@@ -131,4 +131,29 @@ export default {
.el-input-number { .el-input-number {
width: 100%; width: 100%;
} }
.form-row {
margin-bottom: 12px;
}
.vertical-fields {
margin-top: 8px;
}
.dialog-footer {
margin-top: -10px;
text-align: center;
}
.el-input-number {
width: 100%;
}
.el-input__inner {
height: 36px;
line-height: 36px;
}
.el-form-item__label {
text-align: left;
padding-right: 10px;
}
</style> </style>
+1 -1
View File
@@ -60,7 +60,7 @@
<div style="font-size: 12px; font-weight: 400; margin-top: auto; padding-top: 30px; color: #979db1;"> <div style="font-size: 12px; font-weight: 400; margin-top: auto; padding-top: 30px; color: #979db1;">
©2025 xiaozhi-esp32-server ©2025 xiaozhi-esp32-server
</div> </div>
<ModelEditDialog :visible="editDialogVisible" :modelData="editModelData" @save="handleModelSave"/> <ModelEditDialog :visible.sync="editDialogVisible" :modelData="editModelData" @save="handleModelSave"/>
<TtsModel :visible.sync="ttsDialogVisible" /> <TtsModel :visible.sync="ttsDialogVisible" />
</el-main> </el-main>
</div> </div>