Forráskód Böngészése

记录被替换的资源文件,保存时删除被遗弃的文件资源,清理实体文件和数据

liyanbo 1 hónapja
szülő
commit
bdc6a9adf2

+ 5 - 0
src/api/infra/file/index.ts

@@ -22,6 +22,11 @@ export const deleteFile = (id: number) => {
   return request.delete({ url: '/infra/file/delete?id=' + id })
 }
 
+// 删除文件(根据 URL 删除)
+export const deleteFileByUrl = (url: string) => {
+  return request.delete({ url: '/infra/file/delete-by-url?url=' + url })
+}
+
 // 获取文件预签名地址
 export const getFilePresignedUrl = (name: string, directory?: string) => {
   return request.get<FilePresignedUrlRespVO>({

+ 17 - 1
src/views/bjdx/course/CourseForm.vue

@@ -282,6 +282,7 @@ import { getStrDictOptions, DICT_TYPE } from '@/utils/dict'
 import { CourseApi, CourseVO } from '@/api/bjdx/course'
 import { defaultProps, handleTree } from '@/utils/tree'
 import { CourseTypeApi } from '@/api/bjdx/coursetype'
+import { deleteFileByUrl } from '@/api/infra/file'
 import AiGengrate from './aiGenerate/aiGengrate.vue'
 
 /** 课程 表单 */
@@ -341,6 +342,7 @@ const formData = ref({
   courseOrder: undefined,
   courseStatus: "0",
   tenantId: undefined,
+  replacedUrls: [],
 })
 
 // 添加上传进度相关的状态
@@ -393,6 +395,18 @@ const submitForm = async () => {
   // 提交请求
   formLoading.value = true
   try {
+    // 删除所有被替换的URL链接
+    if (formData.value.replacedUrls && formData.value.replacedUrls.length > 0) {
+      for (const url of formData.value.replacedUrls) {
+        try {
+          console.log('删除文件:', url)
+          await deleteFileByUrl(url)
+        } catch (error) {
+          console.error('删除文件失败:', error)
+        }
+      }
+    }
+
     const data = { ...formData.value } as unknown as CourseVO
     if (data.courseContentType === 'image') {
       data.courseImagePath = data.courseImagePath?.join(',')
@@ -430,9 +444,10 @@ const handleUploadComplete = () => {
 }
 
 // 处理 AI 生成课程保存
-const handleAiSave = (scriptData) => {
+const handleAiSave = (scriptData, replacedUrls) => {
   formData.value.courseContent = JSON.stringify(scriptData)
   formData.value.courseContentType = 'ailab'
+  formData.value.replacedUrls = replacedUrls
   showAiGengrate.value = false
 }
 
@@ -483,6 +498,7 @@ const resetForm = () => {
     courseOrder: undefined,
     courseStatus: "0",
     tenantId: undefined,
+    replacedUrls: [],
   }
   formRef.value?.resetFields()
 }

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 528 - 378
src/views/bjdx/course/aiGenerate/aiGengrate.vue


Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott