Zhangbw пре 2 месеци
родитељ
комит
284d94a481
2 измењених фајлова са 10 додато и 37 уклоњено
  1. 0 5
      src/api/talk/agent/types.ts
  2. 10 32
      src/views/talk/agent/index.vue

+ 0 - 5
src/api/talk/agent/types.ts

@@ -3,7 +3,6 @@ export interface AgentVO {
   name: string;
   name: string;
   gender: string;
   gender: string;
   avatarUrl?: string;
   avatarUrl?: string;
-  description?: string;
   greetingMessage?: string;
   greetingMessage?: string;
   status: string;
   status: string;
   ttsVcn: string;
   ttsVcn: string;
@@ -11,7 +10,6 @@ export interface AgentVO {
   ttsPitch: number;
   ttsPitch: number;
   ttsVolume: number;
   ttsVolume: number;
   ttsBgs: number;
   ttsBgs: number;
-  language: string;
   createTime?: string;
   createTime?: string;
   updateTime?: string;
   updateTime?: string;
 }
 }
@@ -21,7 +19,6 @@ export interface AgentForm {
   name?: string;
   name?: string;
   gender?: string;
   gender?: string;
   avatarUrl?: string;
   avatarUrl?: string;
-  description?: string;
   greetingMessage?: string;
   greetingMessage?: string;
   status?: string;
   status?: string;
   ttsVcn?: string;
   ttsVcn?: string;
@@ -29,12 +26,10 @@ export interface AgentForm {
   ttsPitch?: number;
   ttsPitch?: number;
   ttsVolume?: number;
   ttsVolume?: number;
   ttsBgs?: number;
   ttsBgs?: number;
-  language?: string;
 }
 }
 
 
 export interface AgentQuery extends PageQuery {
 export interface AgentQuery extends PageQuery {
   name?: string;
   name?: string;
   gender?: string;
   gender?: string;
   status?: string;
   status?: string;
-  language?: string;
 }
 }

+ 10 - 32
src/views/talk/agent/index.vue

@@ -62,11 +62,6 @@
         <el-table-column label="语速" align="center" prop="ttsSpeed" />
         <el-table-column label="语速" align="center" prop="ttsSpeed" />
         <el-table-column label="音调" align="center" prop="ttsPitch" />
         <el-table-column label="音调" align="center" prop="ttsPitch" />
         <el-table-column label="音量" align="center" prop="ttsVolume" />
         <el-table-column label="音量" align="center" prop="ttsVolume" />
-        <el-table-column label="回复语言" align="center" prop="language">
-          <template #default="scope">
-            <span>{{ getDictLabel(languageOptions, scope.row.language) }}</span>
-          </template>
-        </el-table-column>
         <el-table-column label="状态" align="center" prop="status">
         <el-table-column label="状态" align="center" prop="status">
           <template #default="scope">
           <template #default="scope">
             <el-tag :type="scope.row.status === '0' ? 'success' : 'danger'">
             <el-tag :type="scope.row.status === '0' ? 'success' : 'danger'">
@@ -105,6 +100,7 @@
           <el-upload
           <el-upload
             class="avatar-uploader"
             class="avatar-uploader"
             :action="uploadAction"
             :action="uploadAction"
+            :headers="uploadHeaders"
             :show-file-list="false"
             :show-file-list="false"
             :on-success="handleAvatarSuccess"
             :on-success="handleAvatarSuccess"
             :before-upload="beforeAvatarUpload"
             :before-upload="beforeAvatarUpload"
@@ -113,9 +109,6 @@
             <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
             <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
           </el-upload>
           </el-upload>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="客服描述" prop="description">
-          <el-input v-model="form.description" type="textarea" placeholder="请输入客服描述" />
-        </el-form-item>
         <el-form-item label="欢迎语" prop="greetingMessage">
         <el-form-item label="欢迎语" prop="greetingMessage">
           <el-input v-model="form.greetingMessage" type="textarea" placeholder="请输入欢迎语" />
           <el-input v-model="form.greetingMessage" type="textarea" placeholder="请输入欢迎语" />
         </el-form-item>
         </el-form-item>
@@ -144,16 +137,6 @@
             <el-radio :value="1">有背景音</el-radio>
             <el-radio :value="1">有背景音</el-radio>
           </el-radio-group>
           </el-radio-group>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="回复语言" prop="language">
-          <el-select v-model="form.language" placeholder="请选择回复语言">
-            <el-option
-              v-for="item in languageOptions"
-              :key="item.dictValue"
-              :label="item.dictLabel"
-              :value="item.dictValue"
-            />
-          </el-select>
-        </el-form-item>
         <el-form-item label="状态" prop="status">
         <el-form-item label="状态" prop="status">
           <el-radio-group v-model="form.status">
           <el-radio-group v-model="form.status">
             <el-radio value="0">正常</el-radio>
             <el-radio value="0">正常</el-radio>
@@ -172,10 +155,11 @@
 </template>
 </template>
 
 
 <script setup name="Agent" lang="ts">
 <script setup name="Agent" lang="ts">
-import { listAgent, getAgent, delAgent, addAgent, updateAgent, getTtsVcnDict, getLanguageDict } from '@/api/talk/agent';
+import { listAgent, getAgent, delAgent, addAgent, updateAgent, getTtsVcnDict } from '@/api/talk/agent';
 import { AgentVO, AgentQuery, AgentForm } from '@/api/talk/agent/types';
 import { AgentVO, AgentQuery, AgentForm } from '@/api/talk/agent/types';
 import { Plus } from '@element-plus/icons-vue';
 import { Plus } from '@element-plus/icons-vue';
 import type { UploadProps } from 'element-plus';
 import type { UploadProps } from 'element-plus';
+import { getToken } from '@/utils/auth';
 
 
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 const { proxy } = getCurrentInstance() as ComponentInternalInstance;
 
 
@@ -188,8 +172,8 @@ const single = ref(true);
 const multiple = ref(true);
 const multiple = ref(true);
 const total = ref(0);
 const total = ref(0);
 const ttsVcnOptions = ref<any[]>([]);
 const ttsVcnOptions = ref<any[]>([]);
-const languageOptions = ref<any[]>([]);
-const uploadAction = ref(import.meta.env.VITE_APP_BASE_API + '/talk/admin/agent/upload/avatar');
+const uploadAction = ref(import.meta.env.VITE_APP_BASE_API + '/talk/admin/agent/avatar');
+const uploadHeaders = ref({ Authorization: 'Bearer ' + getToken() });
 
 
 const queryFormRef = ref<ElFormInstance>();
 const queryFormRef = ref<ElFormInstance>();
 const agentFormRef = ref<ElFormInstance>();
 const agentFormRef = ref<ElFormInstance>();
@@ -204,15 +188,13 @@ const initFormData: AgentForm = {
   name: undefined,
   name: undefined,
   gender: '0',
   gender: '0',
   avatarUrl: undefined,
   avatarUrl: undefined,
-  description: undefined,
   greetingMessage: undefined,
   greetingMessage: undefined,
   status: '0',
   status: '0',
   ttsVcn: 'x4_yezi',
   ttsVcn: 'x4_yezi',
   ttsSpeed: 50,
   ttsSpeed: 50,
   ttsPitch: 50,
   ttsPitch: 50,
   ttsVolume: 50,
   ttsVolume: 50,
-  ttsBgs: 0,
-  language: 'zh'
+  ttsBgs: 0
 }
 }
 
 
 const data = reactive<PageData<AgentForm, AgentQuery>>({
 const data = reactive<PageData<AgentForm, AgentQuery>>({
@@ -222,8 +204,7 @@ const data = reactive<PageData<AgentForm, AgentQuery>>({
     pageSize: 10,
     pageSize: 10,
     name: undefined,
     name: undefined,
     gender: undefined,
     gender: undefined,
-    status: undefined,
-    language: undefined
+    status: undefined
   },
   },
   rules: {
   rules: {
     name: [
     name: [
@@ -241,10 +222,7 @@ const { queryParams, form, rules } = toRefs(data);
 const fetchDictData = async () => {
 const fetchDictData = async () => {
   try {
   try {
     const ttsVcnRes = await getTtsVcnDict();
     const ttsVcnRes = await getTtsVcnDict();
-    ttsVcnOptions.value = ttsVcnRes.data;
-
-    const languageRes = await getLanguageDict();
-    languageOptions.value = languageRes.data;
+    ttsVcnOptions.value = ttsVcnRes.data || [];
   } catch (error) {
   } catch (error) {
     console.error('获取字典数据失败:', error);
     console.error('获取字典数据失败:', error);
   }
   }
@@ -262,8 +240,8 @@ const getList = async () => {
 /** 头像上传成功回调 */
 /** 头像上传成功回调 */
 const handleAvatarSuccess: UploadProps['onSuccess'] = (response) => {
 const handleAvatarSuccess: UploadProps['onSuccess'] = (response) => {
   console.log('上传成功,response:', response);
   console.log('上传成功,response:', response);
-  console.log('response.data:', response.data);
-  form.value.avatarUrl = response.data;
+  console.log('response.msg:', response.msg);
+  form.value.avatarUrl = response.msg;
   console.log('设置后 form.avatarUrl:', form.value.avatarUrl);
   console.log('设置后 form.avatarUrl:', form.value.avatarUrl);
 }
 }