Răsfoiți Sursa

新增图片上传

WangRuiLin 1 an în urmă
părinte
comite
0a362015d3

+ 6 - 4
src/api/modules/upload.ts

@@ -1,5 +1,5 @@
-import { Upload } from '@/api/interface/index'
-import { PORT1 } from '@/api/config/servicePort'
+// import { Upload } from '@/api/interface/index'
+// import { PORT1 } from '@/api/config/servicePort'
 import http from '@/api'
 
 /**
@@ -7,10 +7,12 @@ import http from '@/api'
  */
 // 图片上传
 export const uploadImg = (params: FormData) => {
-  return http.post<Upload.ResFileUrl>(PORT1 + `/file/upload/img`, params, { cancel: false })
+  // return http.post<Upload.ResFileUrl>(PORT1 + `/file/upload/img`, params, { cancel: false })
+  return http.post<any>('/common/upload', params, { cancel: false })
 }
 
 // 视频上传
 export const uploadVideo = (params: FormData) => {
-  return http.post<Upload.ResFileUrl>(PORT1 + `/file/upload/video`, params, { cancel: false })
+  // return http.post<any>(PORT1 + `/file/upload/video`, params, { cancel: false })
+  return http.post<any>('/common/uploads', params, { cancel: false })
 }

+ 5 - 0
src/components/FormDialog/index.vue

@@ -82,8 +82,13 @@ const handleSubmit = () => {
 
 // 取消按钮,重置表单,关闭弹框
 const handleCancel = () => {
+  console.log(parameter.value.model)
   const formEl = proFormRef.value?.proFormRef
   if (!formEl) return
+  if (parameter.value.model?.url) {
+    ElMessage.info('请先删除已经上传的图片')
+    return
+  }
   proFormRef.value?.resetForm(formEl)
   butLoading.value = false
   dialogVisible.value = false

+ 5 - 2
src/components/Upload/Img.vue

@@ -104,8 +104,11 @@ const handleHttpUpload = async (options: UploadRequestOptions) => {
   formData.append('file', options.file)
   try {
     const api = props.api ?? uploadImg
-    const { data } = await api(formData)
-    emit('update:imageUrl', data.fileUrl)
+    const res = await api(formData)
+
+    console.log(res)
+
+    emit('update:imageUrl', res.data.url)
     // 调用 el-form 内部的校验方法(可自动校验)
     formItemContext?.prop && formContext?.validateField([formItemContext.prop as string])
   } catch (error) {

+ 11 - 0
src/views/demo/data/index.vue

@@ -24,6 +24,7 @@
         <el-button type="primary" link :icon="Delete" v-auth="['demo:data:remove']" @click="deleteData(scope.row)"> 删除 </el-button>
       </template>
     </ProTable>
+
     <FormDialog ref="formDialogRef" />
     <ImportExcel ref="dialogRef" />
   </div>
@@ -37,6 +38,8 @@ import { ElMessageBox } from 'element-plus'
 import ProTable from '@/components/ProTable/index.vue'
 import ImportExcel from '@/components/ImportExcel/index.vue'
 import FormDialog from '@/components/FormDialog/index.vue'
+// import uploadImgs from '@/components/Upload/Imgs.vue'
+// import uploadImg from '@/components/Upload/Img.vue'
 import { ProTableInstance, ColumnProps } from '@/components/ProTable/interface'
 import { Delete, EditPen, Download, Upload, View, CirclePlus } from '@element-plus/icons-vue'
 import {
@@ -214,6 +217,14 @@ const columns = reactive<ColumnProps<any>[]>([
 let formItems: ProForm.ItemsOptions[] = []
 const setFormItems = () => {
   formItems = [
+    {
+      label: '图片',
+      prop: 'url',
+      compOptions: {
+        elTagName: 'img-upload',
+        placeholder: '请选择上传图片'
+      }
+    },
     {
       label: '名称',
       prop: 'name',

+ 188 - 190
src/views/taais/homePage/createTask.vue

@@ -36,9 +36,7 @@
       </div>
       <el-button class="btn back" v-if="pageIndex === 1" @click="onReturn()"> 返回 </el-button>
       <el-button class="btn back" v-else @click="onBack()"> 上一步 </el-button>
-      <el-button class="btn add" style="margin-left: -15px" v-if="pageIndex === 4 || pageIndex === 7" @click="onAdd()">
-        增加
-      </el-button>
+      <el-button class="btn add" style="margin-left: -15px" v-if="pageIndex === 4 || pageIndex === 7" @click="onAdd()"> 增加 </el-button>
       <el-button class="btn next" type="success" @click="onNext()"> {{ nextBtnText }} </el-button>
     </dv-border-box1>
   </div>
@@ -138,14 +136,14 @@ const _options: ComputedRef<ProForm.FormOptions> = computed(() => {
 
 let items: ProForm.ItemsOptions[] = [
   {
-    formItemOptions: {
-      label: '任务名称',
-      prop: 'taskName',
-      span: 12,
-      show: () => {
-        return pageIndex.value === 1 ? true : false
-      }
+    // formItemOptions: {
+    label: '任务名称',
+    prop: 'taskName',
+    span: 12,
+    show: () => {
+      return pageIndex.value === 1 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -153,13 +151,13 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '任务选择',
-      prop: 'treeName',
-      show: () => {
-        return pageIndex.value === 1 ? true : false
-      }
+    // formItemOptions: {
+    label: '任务选择',
+    prop: 'treeName',
+    show: () => {
+      return pageIndex.value === 1 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'tree',
       enum: data1,
@@ -170,27 +168,27 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '选择训练数据',
-      prop: 'transfer1',
-      show: () => {
-        return pageIndex.value === 2 ? true : false
-      }
+    // formItemOptions: {
+    label: '选择训练数据',
+    prop: 'transfer1',
+    show: () => {
+      return pageIndex.value === 2 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'slot',
       filterable: true
     }
   },
   {
-    formItemOptions: {
-      label: '增强算法',
-      prop: 'enhanceAlgo',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 3 ? true : false
-      }
+    // formItemOptions: {
+    label: '增强算法',
+    prop: 'enhanceAlgo',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 3 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'select',
       enum: enumData,
@@ -200,28 +198,28 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '增强模型',
-      prop: 'enhanceModel',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 3 ? true : false
-      }
+    // formItemOptions: {
+    label: '增强模型',
+    prop: 'enhanceModel',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 3 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'select',
       enum: enumDataModel
     }
   },
   {
-    formItemOptions: {
-      label: '参数1',
-      prop: 'threeParameter1',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 3 ? true : false
-      }
+    // formItemOptions: {
+    label: '参数1',
+    prop: 'threeParameter1',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 3 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -229,14 +227,14 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '参数2',
-      prop: 'threeParameter2',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 3 ? true : false
-      }
+    // formItemOptions: {
+    label: '参数2',
+    prop: 'threeParameter2',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 3 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -244,14 +242,14 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '参数3',
-      prop: 'threeParameter3',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 3 ? true : false
-      }
+    // formItemOptions: {
+    label: '参数3',
+    prop: 'threeParameter3',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 3 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -259,14 +257,14 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '参数4',
-      prop: 'threeParameter4',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 3 ? true : false
-      }
+    // formItemOptions: {
+    label: '参数4',
+    prop: 'threeParameter4',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 3 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -274,29 +272,29 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '训练算法',
-      prop: 'trainAlgo',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 4 ? true : false
-      }
+    // formItemOptions: {
+    label: '训练算法',
+    prop: 'trainAlgo',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 4 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'select',
       enum: enumData
     }
   },
   {
-    formItemOptions: {
-      label: '预训练模型权重文件路径',
-      prop: 'fourParameter1',
-      labelWidth: 180,
-      span: 14,
-      show: () => {
-        return pageIndex.value === 4 ? true : false
-      }
+    // formItemOptions: {
+    label: '预训练模型权重文件路径',
+    prop: 'fourParameter1',
+    labelWidth: 180,
+    span: 14,
+    show: () => {
+      return pageIndex.value === 4 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -304,15 +302,15 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '模型结构配置文件路径',
-      prop: 'fourParameter2',
-      labelWidth: 180,
-      span: 14,
-      show: () => {
-        return pageIndex.value === 4 ? true : false
-      }
+    // formItemOptions: {
+    label: '模型结构配置文件路径',
+    prop: 'fourParameter2',
+    labelWidth: 180,
+    span: 14,
+    show: () => {
+      return pageIndex.value === 4 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -320,15 +318,15 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '训练轮数',
-      prop: 'fourParameter3',
-      labelWidth: 180,
-      span: 14,
-      show: () => {
-        return pageIndex.value === 4 ? true : false
-      }
+    // formItemOptions: {
+    label: '训练轮数',
+    prop: 'fourParameter3',
+    labelWidth: 180,
+    span: 14,
+    show: () => {
+      return pageIndex.value === 4 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -336,15 +334,15 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '余弦学习率调度器',
-      prop: 'fourParameter4',
-      labelWidth: 180,
-      span: 14,
-      show: () => {
-        return pageIndex.value === 4 ? true : false
-      }
+    // formItemOptions: {
+    label: '余弦学习率调度器',
+    prop: 'fourParameter4',
+    labelWidth: 180,
+    span: 14,
+    show: () => {
+      return pageIndex.value === 4 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -352,27 +350,27 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '选择推理数据',
-      prop: 'transfer2',
-      show: () => {
-        return pageIndex.value === 5 ? true : false
-      }
+    // formItemOptions: {
+    label: '选择推理数据',
+    prop: 'transfer2',
+    show: () => {
+      return pageIndex.value === 5 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'slot',
       filterable: true
     }
   },
   {
-    formItemOptions: {
-      label: '预处理算法',
-      prop: 'pretreatmentAlgo',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 6 ? true : false
-      }
+    // formItemOptions: {
+    label: '预处理算法',
+    prop: 'pretreatmentAlgo',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 6 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'select',
       enum: enumData,
@@ -382,28 +380,28 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '预处理模型',
-      prop: 'pretreatmentModel',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 6 ? true : false
-      }
+    // formItemOptions: {
+    label: '预处理模型',
+    prop: 'pretreatmentModel',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 6 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'select',
       enum: enumDataModel
     }
   },
   {
-    formItemOptions: {
-      label: '参数1',
-      prop: 'sixParameter1',
-      span: 12,
-      show: () => {
-        return pageIndex.value === 6 ? true : false
-      }
+    // formItemOptions: {
+    label: '参数1',
+    prop: 'sixParameter1',
+    span: 12,
+    show: () => {
+      return pageIndex.value === 6 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -411,14 +409,14 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '参数2',
-      prop: 'sixParameter2',
-      span: 12,
-      show: () => {
-        return pageIndex.value === 6 ? true : false
-      }
+    // formItemOptions: {
+    label: '参数2',
+    prop: 'sixParameter2',
+    span: 12,
+    show: () => {
+      return pageIndex.value === 6 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -426,14 +424,14 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '参数3',
-      prop: 'sixParameter3',
-      span: 12,
-      show: () => {
-        return pageIndex.value === 6 ? true : false
-      }
+    // formItemOptions: {
+    label: '参数3',
+    prop: 'sixParameter3',
+    span: 12,
+    show: () => {
+      return pageIndex.value === 6 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -441,14 +439,14 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '参数4',
-      prop: 'sixParameter4',
-      span: 12,
-      show: () => {
-        return pageIndex.value === 6 ? true : false
-      }
+    // formItemOptions: {
+    label: '参数4',
+    prop: 'sixParameter4',
+    span: 12,
+    show: () => {
+      return pageIndex.value === 6 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -456,29 +454,29 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '推理算法',
-      prop: 'inferAlgo',
-      span: 14,
-      show: () => {
-        return pageIndex.value === 7 ? true : false
-      }
+    // formItemOptions: {
+    label: '推理算法',
+    prop: 'inferAlgo',
+    span: 14,
+    show: () => {
+      return pageIndex.value === 7 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'select',
       enum: enumData
     }
   },
   {
-    formItemOptions: {
-      label: '目标置信度阈值',
-      prop: 'sevenParameter1',
-      labelWidth: 180,
-      span: 14,
-      show: () => {
-        return pageIndex.value === 7 ? true : false
-      }
+    // formItemOptions: {
+    label: '目标置信度阈值',
+    prop: 'sevenParameter1',
+    labelWidth: 180,
+    span: 14,
+    show: () => {
+      return pageIndex.value === 7 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -486,15 +484,15 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '非极大值抑制的IoU阈值',
-      prop: 'sevenParameter2',
-      labelWidth: 180,
-      span: 14,
-      show: () => {
-        return pageIndex.value === 7 ? true : false
-      }
+    // formItemOptions: {
+    label: '非极大值抑制的IoU阈值',
+    prop: 'sevenParameter2',
+    labelWidth: 180,
+    span: 14,
+    show: () => {
+      return pageIndex.value === 7 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -502,15 +500,15 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '测试图片最大检测器数',
-      prop: 'sevenParameter3',
-      labelWidth: 180,
-      span: 14,
-      show: () => {
-        return pageIndex.value === 7 ? true : false
-      }
+    // formItemOptions: {
+    label: '测试图片最大检测器数',
+    prop: 'sevenParameter3',
+    labelWidth: 180,
+    span: 14,
+    show: () => {
+      return pageIndex.value === 7 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,
@@ -518,15 +516,15 @@ let items: ProForm.ItemsOptions[] = [
     }
   },
   {
-    formItemOptions: {
-      label: '使用半精度推理(FP16)',
-      prop: 'sevenParameter4',
-      labelWidth: 180,
-      span: 14,
-      show: () => {
-        return pageIndex.value === 7 ? true : false
-      }
+    // formItemOptions: {
+    label: '使用半精度推理(FP16)',
+    prop: 'sevenParameter4',
+    labelWidth: 180,
+    span: 14,
+    show: () => {
+      return pageIndex.value === 7 ? true : false
     },
+    // },
     compOptions: {
       elTagName: 'input',
       clearable: true,