Procházet zdrojové kódy

组件中的接口请求移入js中

Long před 2 týdny
rodič
revize
1b2bd37731

+ 11 - 0
src/api/company/companyUser.js

@@ -1,5 +1,16 @@
 import request from '@/utils/request'
 
+// 上传OSS文件(用户二维码)
+export function uploadUserQrCode(formData, onUploadProgress) {
+  return request({
+    url: '/company/user/common/uploadOSS',
+    method: 'post',
+    data: formData,
+    headers: { 'Content-Type': 'multipart/form-data' },
+    onUploadProgress
+  })
+}
+
 // 查询企业员工信息列表
 export function listCompanyUser(query) {
   return request({

+ 7 - 0
src/api/company/workflowLobster.js

@@ -14,6 +14,13 @@ export function getActiveExternalApisLegacy() {
   })
 }
 
+export function listAllWorkflowTemplates() {
+  return request({
+    url: '/workflowLobster/template/list',
+    method: 'get'
+  })
+}
+
 export function listWorkflowTemplate(query) {
   return request({
     url: '/workflow/template/list',

+ 21 - 0
src/api/workflow/lobster.js

@@ -83,6 +83,27 @@ export function getAvailableChannels() {
   return request({ url: '/workflow/lobster/engine/channels', method: 'get' })
 }
 
+// ======== AI生成工作流 ========
+export function aiGenerate(data) {
+  return request({ url: '/workflow/lobster/ai-generator/generate', method: 'post', data })
+}
+
+export function getGenerateResult(recordId) {
+  return request({ url: `/workflow/lobster/ai-generator/result/${recordId}/detail`, method: 'get' })
+}
+
+export function confirmGenerate(recordId, data) {
+  return request({ url: `/workflow/lobster/ai-generator/confirm/${recordId}`, method: 'post', data })
+}
+
+export function confirmGenerateEdited(recordId, data) {
+  return request({ url: `/workflow/lobster/ai-generator/confirm/${recordId}/edited`, method: 'post', data })
+}
+
+export function regenerateWorkflow(recordId, data) {
+  return request({ url: `/workflow/lobster/ai-generator/regenerate/${recordId}`, method: 'post', data })
+}
+
 // ======== 提示词管理 ========
 export function listPrompts(params) {
   return request({ url: '/workflow/lobster/prompt/list', method: 'get', params })

+ 12 - 21
src/views/company/companyUser/index.vue

@@ -736,8 +736,7 @@ import { syncDept } from '@/api/qw/qwDept';
 import { getMyQwUserList,getMyQwCompanyList } from "@/api/qw/user";
 import  selectUser  from "@/views/company/components/selectQwUser.vue";
 import { getConfigByKey } from "@/api/company/companyConfig";
-import axios from "axios";
-import {addCodeUrl} from "../../../api/company/companyUser";
+import {uploadUserQrCode, addCodeUrl} from "../../../api/company/companyUser";
 import selectDoctor from "@/views/qw/user/selectDoctor.vue";
 import AiSipCallUser from "../../aiSipCall/aiSipCallUser.vue";
 export default {
@@ -753,7 +752,6 @@ export default {
         userId: null,
         doctorId: null
       },
-      uploadUrl: process.env.VUE_APP_BASE_API+"/company/user/common/uploadOSS",
       // 遮罩层
       loading: false,
       qwUserList:[],
@@ -1624,37 +1622,30 @@ export default {
       this.$set(row, 'uploading', true);
       this.$set(row, 'uploadError', '');
       try {
-        const response = await axios.post(this.uploadUrl, formData, {
-          headers: {
-            'Content-Type': 'multipart/form-data',
-          },
-          onUploadProgress: progressEvent => {
-            const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
-            console.log(`上传进度: ${percentCompleted}%`);
-          }
+        const response = await uploadUserQrCode(formData, progressEvent => {
+          const percentCompleted = Math.round((progressEvent.loaded * 100) / progressEvent.total);
+          console.log(`上传进度: ${percentCompleted}%`);
         });
-        if (response.data && (response.data.url || (response.data.data && response.data.data.url))) {
-          const imageUrl = response.data.url || response.data.data.url;
-          this.$set(row, 'qrCodeWeixin', imageUrl); // 更新行数据中的图片URL
+        if (response && (response.url || (response.data && response.data.url))) {
+          const imageUrl = response.url || response.data.url;
+          this.$set(row, 'qrCodeWeixin', imageUrl);
           this.$message.success('图片上传成功!');
-          options.onSuccess(response.data, file); // 通知el-upload上传成功 (虽然我们自定义了,但调用一下也无妨)
+          options.onSuccess(response, file);
         } else {
-          const errorMsg = response.data.message || '图片上传失败,服务器未返回有效URL';
+          const errorMsg = response.message || '图片上传失败,服务器未返回有效URL';
           this.$message.error(errorMsg);
           this.$set(row, 'uploadError', errorMsg);
-          options.onError(new Error(errorMsg), file); // 通知el-upload上传失败
+          options.onError(new Error(errorMsg), file);
         }
       } catch (error) {
         console.error('上传失败:', error);
         let errorMsg = '图片上传失败';
-        if (error.response && error.response.data && error.response.data.message) {
-          errorMsg = error.response.data.message;
-        } else if (error.message) {
+        if (error.message) {
           errorMsg = error.message;
         }
         this.$message.error(errorMsg);
         this.$set(row, 'uploadError', errorMsg);
-        options.onError(error, file); // 通知el-upload上传失败
+        options.onError(error, file);
       } finally {
         this.$set(row, 'uploading', false); // 无论成功失败,结束上传状态
       }

+ 2 - 2
src/views/company/moduleUsage/index.vue

@@ -51,7 +51,7 @@
 </template>
 
 <script>
-import request from '@/utils/request'
+import { listModuleUsage } from '@/api/company/moduleUsage'
 
 export default {
   name: 'CompanyModuleUsage',
@@ -71,7 +71,7 @@ export default {
   methods: {
     getList() {
       this.loading = true
-      request({ url: '/company/module-usage/list', method: 'get', params: this.queryParams }).then(res => {
+      listModuleUsage(this.queryParams).then(res => {
         this.list = res.rows || []
         this.total = res.total || 0
         this.updateOverview(this.list)

+ 2 - 2
src/views/company/workflowLobster/execMonitor.vue

@@ -82,7 +82,7 @@
 
 <script>
 import { workflowExecApi } from '@/api/company/workflowExec'
-import request from '@/utils/request'
+import { listAllWorkflowTemplates } from '@/api/company/workflowLobster'
 
 export default {
   name: 'WorkflowExecMonitor',
@@ -103,7 +103,7 @@ export default {
   methods: {
     async getWorkflowList() {
       try {
-        const res = await request({ url: '/workflowLobster/template/list', method: 'get' })
+        const res = await listAllWorkflowTemplates()
         this.workflowList = res.data || []
       } catch (e) {
         this.workflowList = []

+ 0 - 1
src/views/course/userVideo/index.vue

@@ -389,7 +389,6 @@ import TcVod from 'vod-js-sdk-v6'
 import userVideoDetails from '../../components/course/userVideoDetails.vue';
 import { BasicCredentials } from '@huaweicloud/huaweicloud-sdk-core';
 import { VodClient, VodRegion, CreateAssetByFileUploadRequest,ShowAssetTempAuthorityRequest } from '@huaweicloud/huaweicloud-sdk-vod';
-import axios from 'axios';
 import { Loading } from 'element-ui';
 import { uploadObject } from '@/utils/cos.js';
 import { uploadToOBS } from '@/utils/obs.js';

+ 4 - 5
src/views/lobster/workflow-canvas/index.vue

@@ -172,7 +172,7 @@
 </template>
 
 <script>
-import { getPrompt, listPrompts } from '@/api/workflow/lobster'
+import { getPrompt, listPrompts, updatePrompt } from '@/api/workflow/lobster'
 
 export default {
   name: 'LobsterCanvas',
@@ -287,14 +287,13 @@ export default {
         const { x, y, ...rest } = n
         return rest
       }) })
-      this.$axios.put(`/workflow/lobster/prompt/${this.templateId}`, {
+      updatePrompt(this.templateId, {
         promptContent: content
       }).then(res => {
-        let data = res.data || res
-        if (data.code === 200) {
+        if (res.code === 200) {
           this.$message.success('保存成功')
         } else {
-          this.$message.error(data.msg || '保存失败')
+          this.$message.error(res.msg || '保存失败')
         }
       }).catch(err => {
         this.$message.error('保存失败:' + (err.message || ''))

+ 20 - 24
src/views/lobster/workflow-generate/index.vue

@@ -131,7 +131,7 @@
 </template>
 
 <script>
-import { listApiRegistry, getAvailableChannels } from '@/api/workflow/lobster'
+import { listApiRegistry, getAvailableChannels, aiGenerate, getGenerateResult, confirmGenerate, confirmGenerateEdited, regenerateWorkflow } from '@/api/workflow/lobster'
 
 export default {
   name: 'LobsterGenerate',
@@ -165,16 +165,15 @@ export default {
         return
       }
       this.generating = true
-      this.$axios.post('/workflow/lobster/ai-generator/generate', {
+      aiGenerate({
         requirement: this.userRequirement,
         selectedApiIds: this.selectedApiIds.length > 0 ? this.selectedApiIds : undefined
       }).then(res => {
-        let data = res.data || res
-        if (data.code === 200) {
-          this.currentRecordId = data.data.recordId
-          this.pollGenerationResult(data.data.recordId)
+        if (res.code === 200) {
+          this.currentRecordId = res.data.recordId
+          this.pollGenerationResult(res.data.recordId)
         } else {
-          this.$message.error(data.msg || '生成失败')
+          this.$message.error(res.msg || '生成失败')
           this.generating = false
         }
       }).catch(err => {
@@ -191,10 +190,9 @@ export default {
           this.generating = false
           return
         }
-        this.$axios.get(`/workflow/lobster/ai-generator/result/${recordId}/detail`).then(res => {
-          let data = res.data || res
-          if (data.code === 200) {
-            const result = data.data
+        getGenerateResult(recordId).then(res => {
+          if (res.code === 200) {
+            const result = res.data
             if (result.status === 1) {
               this.generationResult = {
                 templateName: result.templateName,
@@ -229,19 +227,18 @@ export default {
         variables: this.generationResult.variables || [],
         nodes: this.generationResult.nodes || []
       }
-      const url = this.editingResult
-        ? `/workflow/lobster/ai-generator/confirm/${this.currentRecordId}/edited`
-        : `/workflow/lobster/ai-generator/confirm/${this.currentRecordId}`
-      this.$axios.post(url, solutionData).then(res => {
-        let data = res.data || res
-        if (data.code === 200) {
+      const apiCall = this.editingResult
+        ? confirmGenerateEdited(this.currentRecordId, solutionData)
+        : confirmGenerate(this.currentRecordId, solutionData)
+      apiCall.then(res => {
+        if (res.code === 200) {
           this.$message.success('方案保存成功,可在模板库中查看和编辑')
           this.generationResult = null
           this.editingResult = false
           this.userRequirement = ''
           this.selectedApiIds = []
         } else {
-          this.$message.error(data.msg || '保存失败')
+          this.$message.error(res.msg || '保存失败')
         }
       }).catch(err => {
         this.$message.error('保存失败:' + (err.message || ''))
@@ -259,16 +256,15 @@ export default {
         return
       }
       this.regenerating = true
-      this.$axios.post(`/workflow/lobster/ai-generator/regenerate/${this.currentRecordId}`, {
+      regenerateWorkflow(this.currentRecordId, {
         feedback: this.regenerateForm.feedback
       }).then(res => {
-        let data = res.data || res
-        if (data.code === 200) {
-          this.currentRecordId = data.data.recordId
-          this.pollGenerationResult(data.data.recordId)
+        if (res.code === 200) {
+          this.currentRecordId = res.data.recordId
+          this.pollGenerationResult(res.data.recordId)
           this.regenerateDialogVisible = false
         } else {
-          this.$message.error(data.msg || '重新生成失败')
+          this.$message.error(res.msg || '重新生成失败')
         }
       }).catch(err => {
         this.$message.error('重新生成失败:' + (err.message || ''))