Quellcode durchsuchen

新增文件上传自动重命名开关

zhontai vor 2 Jahren
Ursprung
Commit
d466f0655e

+ 4 - 0
src/api/admin/File.ts

@@ -74,6 +74,8 @@ export class FileApi<SecurityDataType = unknown> extends HttpClient<SecurityData
     query?: {
       /** @default "" */
       fileDirectory?: string
+      /** @default true */
+      fileReName?: boolean
     },
     params: RequestParams = {}
   ) =>
@@ -103,6 +105,8 @@ export class FileApi<SecurityDataType = unknown> extends HttpClient<SecurityData
     query?: {
       /** @default "" */
       fileDirectory?: string
+      /** @default true */
+      fileReName?: boolean
     },
     params: RequestParams = {}
   ) =>

+ 2 - 0
src/api/admin/data-contracts.ts

@@ -724,6 +724,8 @@ export interface FileEntity {
    * @format uuid
    */
   fileGuid?: string
+  /** 保存文件名 */
+  saveFileName?: string | null
   /** 文件名 */
   fileName?: string | null
   /** 文件扩展名 */

+ 17 - 3
src/views/admin/file/components/file-upload.vue

@@ -2,9 +2,16 @@
   <div>
     <el-dialog v-model="state.showDialog" :title="title" draggable width="600px">
       <div class="mb15">
-        <el-input v-model="state.fileDirectory" placeholder="文件目录" clearable />
+        <el-row :gutter="35">
+          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+            <el-input v-model="state.fileDirectory" placeholder="文件目录" clearable />
+          </el-col>
+          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12">
+            <el-switch v-model="state.fileReName" active-text="文件自动重命名" />
+          </el-col>
+        </el-row>
         <div class="mt5">
-          <el-alert class="my-el-alert" title="目录不填则默认使用本地上传格式:upload/yyyy/MM/dd" type="info" :closable="false" />
+          <el-alert class="my-el-alert" title="文件目录不填则默认使用本地上传格式:upload/yyyy/MM/dd" type="info" :closable="false" />
         </div>
       </div>
       <div>
@@ -12,7 +19,7 @@
           ref="uploadRef"
           :action="uploadAction"
           :headers="uploadHeaders"
-          :data="{ fileDirectory: state.fileDirectory }"
+          :data="{ fileDirectory: state.fileDirectory, fileReName: state.fileReName }"
           drag
           multiple
           :auto-upload="false"
@@ -27,6 +34,7 @@
       </div>
       <template #footer>
         <span class="dialog-footer">
+          <el-button @click="onClear" size="default">清空已上传</el-button>
           <el-button @click="onCancel" size="default">取 消</el-button>
           <el-button type="primary" @click="onSure" size="default" :loading="state.sureLoading">确 定</el-button>
         </span>
@@ -55,6 +63,7 @@ const state = reactive({
   showDialog: false,
   sureLoading: false,
   fileDirectory: '',
+  fileReName: true,
   fileList: [] as UploadFile[],
 })
 
@@ -78,6 +87,11 @@ const onSuccess = (response: any, uploadFile: UploadFile, uploadFiles: UploadFil
   }
 }
 
+// 清空已上传
+const onClear = async () => {
+  uploadRef.value!.clearFiles(['success', 'fail'])
+}
+
 // 取消
 const onCancel = () => {
   state.showDialog = false

+ 1 - 1
src/views/admin/file/index.vue

@@ -52,7 +52,7 @@
           <template #default="{ row }">
             <el-popover :width="220">
               <p>{{ row.linkUrl }}</p>
-              <div style="text-align: right; margin: 0">
+              <div class="mt10" style="text-align: right; margin: 0">
                 <el-button icon="ele-CopyDocument" size="small" type="primary" @click="copyText(row.linkUrl)">复制地址</el-button>
               </div>
               <template #reference>