Ver código fonte

fix:上传组件支持粘贴上传和多选粘贴上传

ly 11 meses atrás
pai
commit
9ce633a87d

+ 10 - 2
src/api/business/production/onceWorkOrder.js

@@ -50,12 +50,20 @@ export function receive(data) {
     data: data
   })
 }
-export function updateRecordStatus(workOrderId,recordStatus,fileEntity){
+export function updateRecordStatus(workOrderId,recordStatus){
   request.defaults.baseURL = '/ezhizao-yzbh-production'
   return request({
     url: '/business/onceWorkOrder/updateRecordStatus',
     method: 'post',
-    data: {"workOrderId":workOrderId,"resultStatus":recordStatus,"sysFileStorage":fileEntity},
+    data: {"workOrderId":workOrderId,"resultStatus":recordStatus},
+  })
+}
+export function uploadFiles(workOrderId,fileEntity){
+  request.defaults.baseURL = '/ezhizao-yzbh-production'
+  return request({
+    url: '/business/onceWorkOrder/uploadFiles',
+    method: 'post',
+    data: {"workOrderId":workOrderId,"sysFileStorage":fileEntity},
   })
 }
 export function FileList(query){

+ 22 - 20
src/views/business/production/onWorkDetail/onWorkDetailDialog.vue

@@ -1,23 +1,25 @@
 <template>
   <el-dialog v-loading.fullscreen.lock="fullscreenLoading" :close-on-click-modal = "false"
               v-model="outerVisible" title="任务进度" width="765" height="800">
-    <el-form v-if="recordStatu === 1 &&handlerId === useUserStore().user.userId" :model="sumbitForm" label-width="auto" ref="workDetailForm" style="max-width: 700px;">
-      <el-form-item label="记录日期">
-        <el-date-picker v-model="sumbitForm.recordDate" type="date" clearable
-                        format="YYYY-MM-DD" value-format="YYYY-MM-DD"
-                        style="width: 100%;">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="进度描述">
-        <el-input class="no-scrollbar" type="textarea" v-model="sumbitForm.recordDetail" />
-      </el-form-item>
-      <div style="display: flex;
+    <div v-if="!falg">
+      <el-form v-if="recordStatu === 1 &&handlerId === useUserStore().user.userId" :model="sumbitForm" label-width="auto" ref="workDetailForm" style="max-width: 700px;">
+        <el-form-item label="记录日期">
+          <el-date-picker v-model="sumbitForm.recordDate" type="date" clearable
+                          format="YYYY-MM-DD" value-format="YYYY-MM-DD"
+                          style="width: 100%;">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="进度描述">
+          <el-input class="no-scrollbar" type="textarea" v-model="sumbitForm.recordDetail" />
+        </el-form-item>
+        <div style="display: flex;
     justify-content: flex-end;
     flex-direction: row;">
-        <el-button  @click="formclear">清空</el-button>
-        <el-button type="primary" @click="onSubmit">添加</el-button>
-      </div>
-    </el-form>
+          <el-button  @click="formclear">清空</el-button>
+          <el-button type="primary" @click="onSubmit">添加</el-button>
+        </div>
+      </el-form>
+    </div>
     <br>
     <el-table
         ref="singleTableRef"
@@ -52,10 +54,10 @@
       </el-table-column>
       <el-table-column label="操作" align="center" min-width="150" >
         <template #default="scope">
-          <el-button v-if="recordStatu === 1 && handlerId === useUserStore().user.userId" :disabled="scope.row.disabled" size="small" type="primary"  @click="handleClick(scope.$index, scope.row,this)">
+          <el-button v-if="!falg &&recordStatu === 1 && handlerId === useUserStore().user.userId" :disabled="scope.row.disabled" size="small" type="primary"  @click="handleClick(scope.$index, scope.row,this)">
            {{scope.row.buttonName}}
           </el-button>
-          <el-button v-if="recordStatu === 1 && handlerId === useUserStore().user.userId" :disabled="scope.row.disabled" size="small" type="danger"  @click="handleClickDel(scope.$index, scope.row,this)">
+          <el-button v-if="!falg &&recordStatu === 1 && handlerId === useUserStore().user.userId" :disabled="scope.row.disabled" size="small" type="danger"  @click="handleClickDel(scope.$index, scope.row,this)">
             删除
           </el-button>
         </template>
@@ -108,6 +110,7 @@ type TFrom = typeof form;
 const sumbitForm = reactive<TFrom>(form);
 const workDetailForm = ref();
 const workOrderId = ref();
+const falg = ref<boolean>(true);
 const singleTableRef = ref<InstanceType<typeof ElTable>>()
 const setCurrent = (row?: any) => {
   singleTableRef.value!.setCurrentRow(row)
@@ -172,15 +175,14 @@ const restDetail = () =>{
   })
 }
 //打开本弹窗的方法暴露给父组件
-const openView = (id,userId,recordStatus) => {
+const openView = (id,userId,recordStatus,view) => {
   sumbitForm.recordDate = null;
   sumbitForm.recordDetail = null;
   workOrderId.value = id;
   outerVisible.value = true;
   handlerId.value = userId;
   recordStatu.value = recordStatus;
- // console.log(recordStatus === 1,handlerId === useUserStore().user.userId)
-
+  falg.value = view;
   recordStatu.value = recordStatus;
   restDetail();
 }

+ 141 - 0
src/views/business/production/onceWork/dragUpload.vue

@@ -0,0 +1,141 @@
+<template>
+    <div tabindex="0" :class="['drag', { 'drag-active': active }]" ref="upload">
+        <el-icon size="52" color="#2260FF">
+            <UploadFilled />
+        </el-icon>
+        <p class="drag-subtile">
+            支持点击/粘贴/拖拽到此区域上传
+            <br />
+            单个文件夹最大支持10M
+        </p>
+        <input ref="fileIpt" class="filePaste-ipt" />
+        <input class="file-ipt" type="file" :accept="accept" multiple @change="changeFile" />
+    </div>
+</template>
+<script setup>
+import { ref, onMounted, onUnmounted } from 'vue'
+import { UploadFilled } from '@element-plus/icons-vue'
+const upload = ref(null)
+const active = ref(false)
+const fileIpt = ref(null)
+defineProps(['accept'])
+const handleMouseover = function (event) {
+    fileIpt.value.focus()
+    // 粘贴
+    fileIpt.value.addEventListener('paste', handlePaste)
+}
+const handleMouseout = function (event) {
+    fileIpt.value.blur()
+    fileIpt.value.removeEventListener('paste', handlePaste)
+}
+onMounted(() => {
+    // 拖拽
+    upload.value.addEventListener('drop', handleDrop)
+    upload.value.addEventListener('dragleave', handleDragleave)
+    upload.value.addEventListener('dragenter', handleDragenter)
+    upload.value.addEventListener('dragover', handleDragenter)
+    upload.value.addEventListener('mouseover', handleMouseover);
+    upload.value.addEventListener('mouseout', handleMouseout);
+})
+ 
+onUnmounted(() => {
+    // upload.value.removeEventListener('drop', handleDrop)
+    // upload.value.removeEventListener('dragleave', handleDragleave)
+    // upload.value.removeEventListener('dragenter', handleDragenter)
+    // upload.value.removeEventListener('dragover', handleDragenter)
+    // upload.value.removeEventListener('mouseover', handleMouseover);
+    // upload.value.removeEventListener('mouseout', handleMouseout);
+})
+ 
+const emit = defineEmits(["file"])
+const handleFileName = (fileList) => {
+    let files = Array.from(fileList)
+    let renameReportFile = []
+    for (let i in files) {
+        renameReportFile.push(new File([files[i]], new Date().getTime() + files[i].name, { type: files[0].type }))
+    }
+    emit("file", renameReportFile[0])
+
+}
+const changeFile = (e) => {
+    e.preventDefault()
+    handleFileName(e.target.files)
+}
+ 
+const handleDragleave = (e) => {
+    active.value = false
+    e.preventDefault()
+}
+const handleDragenter = (e) => {
+    active.value = true
+    e.preventDefault()
+}
+ 
+const handleDrop = (e) => {
+    e.preventDefault()
+    active.value = false
+    handleFileName(e.dataTransfer.files)
+}
+ 
+const handlePaste = (e) => {
+    e.preventDefault()
+    handleFileName(e.clipboardData.files)
+}
+</script>
+ 
+<style lang="scss" scoped>
+@mixin borderColor($color: #2260FF) {
+    border: 1px dashed $color;
+}
+ 
+.drag {
+    position: relative;
+    height: 160px;
+    @include borderColor(#DEDEDE);
+    border-radius: 4px;
+    display: flex;
+    align-items: center;
+    flex-direction: column;
+    justify-content: center;
+ 
+    &:active {
+        @include borderColor
+    }
+ 
+    &:hover {
+        @include borderColor
+    }
+ 
+    &-active {
+        @include borderColor
+    }
+ 
+    &-title {
+        font-size: 14px;
+    }
+ 
+    &-subtile {
+        width: 450px;
+        font-size: 12px;
+        color: #999999;
+        margin-top: 0;
+        text-align: center;
+    }
+}
+ 
+.file-ipt {
+    position: absolute;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    opacity: 0;
+    cursor: pointer;
+}
+ 
+.filePaste-ipt {
+    position: fixed;
+    right: -100vw;
+    opacity: 0;
+}
+</style>

+ 19 - 19
src/views/business/production/onceWork/index.vue

@@ -132,10 +132,10 @@
 
       <el-table-column label="任务进度" align="center" prop="onWorkDetail" min-width="250">
         <template #default="scope">
-          <el-button link type="primary" size="small" @click="viewOnWorkDetail(scope.row)"
+          <el-button link type="primary" size="small" @click="viewOnWorkDetail(scope.row,true)"
                      >{{textFormat(scope.row.onWorkDetail)}}</el-button>
-          <el-button v-if="scope.row.record != null&&scope.row.record.handlerId  ===  useUserStore().user.userId" style="margin: 0" link type="primary" icon="Edit"
-                     @click="viewOnWorkDetail(scope.row)" />
+          <el-button v-if="scope.row.record != null&&scope.row.record.status !== 3&&scope.row.record.handlerId  ===  useUserStore().user.userId" style="margin: 0" link type="primary" icon="Edit"
+                     @click="viewOnWorkDetail(scope.row,false)" />
         </template>
       </el-table-column>
 
@@ -163,10 +163,10 @@
             {{}}
           </div>
           <div v-else>
-            <el-button link type="primary" size="small" @click="viewResult(scope.row)"
+            <el-button link type="primary" size="small" @click="viewResult(scope.row,true)"
             >{{resultLable(scope.row)}}</el-button>
-            <el-button v-if="scope.row.record != null&&scope.row.record.handlerId  ===  useUserStore().user.userId"  link type="primary" icon="Edit" size="small" style="margin: 0"
-                       @click="viewResult(scope.row)" />
+            <el-button v-if="scope.row.record != null&&scope.row.record.status !== 3&&scope.row.record.handlerId  ===  useUserStore().user.userId"  link type="primary" icon="Edit" size="small" style="margin: 0"
+                       @click="viewResult(scope.row,false)" />
           </div>
 
         </template>
@@ -440,7 +440,7 @@
 
   function finishedHandle(row) {
     const id = row.id || ids.value;
-    resultDialogView.value.openView(id, row.record.status, row.record.handlerId,row.record.resultStatus);
+    resultDialogView.value.openView(id, row.record.status, row.record.handlerId,row.record.resultStatus,false);
   }
   function finishedHandle2(row) {
     proxy.$modal
@@ -487,20 +487,15 @@
       }).finally(() => loading.value = false);
   }
   getList();
-  const viewOnWorkDetail = (row) =>{
+  const viewOnWorkDetail = (row,falg) =>{
     const id = row.id || ids.value;
 
     if(row.record == null ||row.record.status === 0){
-      proxy.$alert(
-          "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
-          "请领取任务" +
-          "</div>"
-          ,
-          { dangerouslyUseHTMLString: true }
-      );
+      onWorkDetailView.value.openView(id,null, null,falg);
     }else{
-      onWorkDetailView.value.openView(id,row.record.handlerId, row.record.status);
+      onWorkDetailView.value.openView(id,row.record.handlerId, row.record.status,falg);
     }
+
   }
   const viewContract = (row) =>{
     const id = row.contractId || ids.value;
@@ -508,11 +503,16 @@
   }
   const textFormat = (text)=>{
     if(text){
-      return  text.slice(0,20)+'....'
+      if(text.length>20){
+        return  text.slice(0,20)+'....'
+      }else{
+        return  text.slice(0,20)
+      }
+
     }
     return '';
   }
-  const viewResult = (row) =>{
+  const viewResult = (row,falg) =>{
     const id = row.id || ids.value;
     if(row.record == null||row.record.status === 0 ){
       proxy.$alert(
@@ -523,7 +523,7 @@
           { dangerouslyUseHTMLString: true }
       );
     }else {
-      resultDialogView.value.openView(id, row.record.status, row.record.handlerId,row.record.resultStatus);
+      resultDialogView.value.openView(id, row.record.status, row.record.handlerId,row.record.resultStatus,falg);
     }
   }
   const  rowNum = (num)=> {

+ 177 - 97
src/views/business/production/onceWork/resultDialog.vue

@@ -1,72 +1,92 @@
 <template>
-  <el-dialog v-loading.fullscreen.lock="fullscreenLoading" :close-on-click-modal = "false"
+  <el-dialog class="resultDiv" @mouseenter="handleEnter" @paste="(e)=>handlePase(e)" v-loading.fullscreen.lock="fullscreenLoading" :close-on-click-modal = "false"
              v-model="outerVisible" title="任务结果" width="600">
     <el-form :model="sumbitForm" label-width="auto" ref="workDetailForm" style="max-width: 600px">
-      <div v-if="handlerId !== useUserStore().user.userId && (sumbitForm.recordStatus === 3 || sumbitForm.recordStatus === 4) ">
-          <el-form-item>
-            任务结果:{{sumbitForm.resultStatus === 2?'暂停办理':sumbitForm.resultStatus === 0?'终止任务':'完成任务'}}
-          </el-form-item>
-
+      <div v-if="falg">
+        <el-form-item>
+          任务结果:{{sumbitForm.resultStatus === 2?'暂停办理':sumbitForm.resultStatus === 0?'终止任务':'完成任务'}}
+        </el-form-item>
       </div>
-      <el-form-item v-if="handlerId === useUserStore().user.userId" prop="resultStatus" label="任务结果">
-        <div v-if="sumbitForm.recordStatus === 3 || sumbitForm.recordStatus === 4 ">
-          {{sumbitForm.resultStatus === 2?'暂停办理':sumbitForm.resultStatus === 0?'终止任务':'完成任务'}}
-        </div>
-        <div v-else>
-          <el-select
-              v-model="sumbitForm.resultStatus"
-              placeholder="任务结果"
-              size="large"
-              style="width: 240px"
-              :disabled ="formHidden ==3"
-          >
-            <el-option
-                v-for="item in selectStatus"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-            />
-          </el-select>
-        </div>
-      </el-form-item>
-      <el-form-item v-if=" handlerId === useUserStore().user.userId">
-        <el-upload
-            v-if="formHidden !==3 && formHidden !==4"
-            ref="upload"
-            class="upload-demo"
-            style="flex: auto;"
-            drag
-            action=""
-            v-model:file-list="fileList"
-            :multiple="false"
-            :auto-upload="false"
-            :before-upload="handleBeforeUpload"
-            :http-request="httpRequest"
-        >
-          <el-icon class="el-icon--upload"><upload-filled /></el-icon>
-          <div class="el-upload__text">
-            将文件拖入此处, <em>或点击上传</em>
+      <div v-else>
+        <el-form-item v-if="handlerId === useUserStore().user.userId" prop="resultStatus" label="任务结果">
+          <div>
+            <el-select
+                v-model="sumbitForm.resultStatus"
+                placeholder="任务结果"
+                size="large"
+                style="width: 240px"
+            >
+              <el-option
+                  v-for="item in selectStatus"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+              />
+            </el-select>
           </div>
+        </el-form-item>
+      </div>
+      <div class="imgClass" v-if="falg">
+        <el-col :span="24">
+          <el-row :gutter="10">
+            <el-col v-for="(o, index) in filesTable" :key="o.id" :span="8"
+                    style="margin-bottom: 10px; position: relative">
+              <el-card :body-style="{ padding: '0px' }">
+                <!-- <img :src="`${baseUrl}${o.fileUrl}`" class="image" style="max-width: 100%; height: 200px" @click="handleImageView(o.fileUrl)" /> -->
+                <el-image :src="`${baseUrl}${o.fileUrl}`" class="image" style="max-width: 100%; height: 200px"
+                          :preview-teleported="true" fit="contain" :preview-src-list="preList" :initial-index="index"
+                />
 
-        </el-upload>
-      </el-form-item>
-      <el-table v-if="(sumbitForm.recordStatus === 3 || sumbitForm.recordStatus === 4)" ref="Table" :data="filesTable" size="small" height="100%" border
-                header-row-class-name="list-header-row">
-        <el-table-column type="index" label="序号" width="47" align="center" />
-        <el-table-column label="文件名" prop="originalFileName" align="center">
-          <template #default="scope">
-            <el-link :href="`${baseUrl}${scope.row.fileUrl}`" :underline="false" target="_blank"
-                     type="primary">
-              {{ scope.row.originalFileName }}
-            </el-link>
-          </template>
-        </el-table-column>
-      </el-table>
+              </el-card>
+            </el-col>
+          </el-row>
+        </el-col>
+
+      </div>
+      <div ref="uploadDiv" v-else>
+        <el-form-item v-if="handlerId === useUserStore().user.userId">
+          <el-upload
+              v-if="formHidden !==3 "
+              v-show="uploadHidden"
+              ref="upload"
+              class="upload-demo"
+              style="flex: auto;"
+              drag
+              action=""
+              accept=".jpg,.jpeg,.png,.gif,.webp"
+              v-model:file-list="fileList"
+              :multiple="true"
+              :auto-upload="false"
+              :before-upload="handleBeforeUpload"
+              :http-request="httpRequest"
+          >
+            <el-icon class="el-icon--upload"><upload-filled /></el-icon>
+            <div class="el-upload__text">
+              将文件拖入此处, <em>或点击上传</em>(文件可以多选)
+            </div>
+          </el-upload>
+          <el-col v-show="!uploadHidden" :span="24">
+            <el-row :gutter="10">
+              <el-col v-for="(o, index) in fileEntityList" :key="o.id" :span="8"
+                      style="margin-bottom: 10px; position: relative">
+                <el-card :body-style="{ padding: '0px' }">
+                  <!-- <img :src="`${baseUrl}${o.fileUrl}`" class="image" style="max-width: 100%; height: 200px" @click="handleImageView(o.fileUrl)" /> -->
+                  <el-image :src="`${baseUrl}${o.fileUrl}`" class="image" style="max-width: 100%; height: 200px"
+                            :preview-teleported="true" fit="contain" :preview-src-list="viewList" :initial-index="index"
+                  />
+                  <Delete style="width: 130px; height: 20px;" />
+                </el-card>
+              </el-col>
+            </el-row>
+          </el-col>
+        </el-form-item>
+        <input type="text" style="opacity: 0" ref="fileIpt">
+      </div>
     </el-form>
     <template #footer>
       <div class="dialog-footer">
         <el-button @click="outerVisible = false">关闭</el-button>
-        <el-button type="primary" v-if="handlerId === useUserStore().user.userId && (formHidden !== 3 && formHidden !==4)" v-hasPermi="['business:production:onceWork:finished']" @click="onsumbit">提交</el-button>
+        <el-button type="primary" v-if="!falg && handlerId === useUserStore().user.userId" v-hasPermi="['business:production:onceWork:finished']" @click="onsumbit">提交</el-button>
       </div>
     </template>
   </el-dialog>
@@ -75,11 +95,11 @@
 import {ElButton, ElTable} from "element-plus";
 import {ref} from "@vue/reactivity";
 import { uploadFile } from "@/api/tool/file";
-import {defineProps, getCurrentInstance, reactive, toRefs} from "vue";
+import {defineProps, getCurrentInstance, onMounted, reactive, toRefs} from "vue";
 import useUserStore from "@/store/modules/user";
 import {
   updateRecordStatus,
-  FileList
+  FileList,uploadFiles
 } from "@/api/business/production/onceWorkOrder";
 const { proxy } = getCurrentInstance();
 const props = defineProps({
@@ -89,7 +109,8 @@ const props = defineProps({
   },
 });
 const { getList } = toRefs(props);
-
+const uploadDiv = ref(null);
+const fileIpt = ref(null);
 const fileList = ref([]);
 const outerVisible = ref(false);
 const currentRow = ref();
@@ -100,10 +121,18 @@ const filesTable = ref<Ifile[]>();
 const handlerId = ref();
 const tenantId = ref();
 const formHidden = ref();
+const preList = ref([]);
+const pasteList =ref([]);
+const uploadHidden = ref(true);
+const fileEntityList = ref([]);
+const viewList = ref([]);
+//真为查看,假为编辑
+const falg = ref(false);
 let refile = null;
 let fileEntity = {};
 
 interface Ifile{
+  id?:number;
   fileName?:string;
   url?:string;
   originalFileName?:string;
@@ -129,14 +158,15 @@ const data = reactive({
 
   ],
 });
-
+const count = ref(1);
+const sumbitCount = ref(1);
 const { selectStatus } = toRefs(data);
 
 
 const form = reactive({
-    recordStatus:0,
-    file:Blob,
-    resultStatus:-1
+  recordStatus:0,
+  file:Blob,
+  resultStatus:-1
 })
 type Tform = typeof form;
 const sumbitForm = reactive<Tform>({
@@ -145,6 +175,7 @@ const sumbitForm = reactive<Tform>({
   resultStatus:null
 });
 const httpRequest = (parm) => {
+  let fileEntity = {};
   const formData2 = new FormData();
   formData2.append("file", parm.file);
   // const formData = new FormData();
@@ -158,61 +189,58 @@ const httpRequest = (parm) => {
       fileEntity.originalFileName = res.originalFilename;
       fileEntity.fileUrl = res.fileName;
     }
-    updateRecordStatus(workOrderId.value,sumbitForm.resultStatus,fileEntity).then(response => {
-      proxy.$alert(
-          "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
-          "提交完成" +
-          "</div>",
-          { dangerouslyUseHTMLString: true }
-      );
-      fileEntity= {};
-      FileList({"masterTableName":"biz_work_order_record","masterId":workOrderId.value}).then((response) => {
-        filesTable.value = response.data
-      })
-      //outerVisible.value = false;
-      //getList.value();
-    })
+    fileEntityList.value.push(fileEntity);
   }).then((res) => {
     proxy.$refs['upload'].clearFiles();
   }).catch((err) => {
     proxy.$refs['upload'].clearFiles();
   })
 }
-function openView(id,status,userId,resultStatus){
+function openView(id,status,userId,resultStatus,view){
   outerVisible.value = true;
+  uploadHidden.value = true;
   workOrderId.value = id;
   sumbitForm.recordStatus = status;
   sumbitForm.resultStatus = resultStatus;
   sumbitForm.file = null;
   formHidden.value = status;
+  falg.value = view;
   fileEntity.fileName = null;
   fileEntity.url = null;
   fileEntity.originalFileName = null;
   fileEntity.fileUrl = null;
   handlerId.value = userId;
   filesTable.value = null;
+  pasteList.value =[];
+  fileEntityList.value = [];
   FileList({"masterTableName":"biz_work_order_record","masterId":id}).then((response) => {
     filesTable.value = response.data
+    filesTable.value.forEach((file)=>{
+      preList.value.push(baseUrl+file.fileUrl)
+    })
   })
 }
 const onsumbit = () => {
-  console.log(sumbitForm.resultStatus)
+
   if(sumbitForm.resultStatus != -1){
-    if(fileList.value.length===0){
-      updateRecordStatus(workOrderId.value,sumbitForm.resultStatus,fileEntity).then(response => {
-        proxy.$alert(
-            "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
-            "提交完成" +
-            "</div>",
-            { dangerouslyUseHTMLString: true }
-        );
-        outerVisible.value = false;
-        fileEntity= {};
-        FileList({"masterTableName":"biz_work_order_record","masterId":workOrderId.value}).then((response) => {
-          filesTable.value = response.data
+    updateRecordStatus(workOrderId.value,sumbitForm.resultStatus).then(response => {
+      proxy.$alert(
+          "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
+          "提交完成" +
+          "</div>",
+          { dangerouslyUseHTMLString: true }
+      );
+      outerVisible.value = false;
+      fileEntity= {};
+      console.log(fileEntityList.value);
+      uploadFiles(workOrderId.value,fileEntityList.value);
+      FileList({"masterTableName":"biz_work_order_record","masterId":workOrderId.value}).then((response) => {
+        filesTable.value = response.data
+        filesTable.value.forEach((file)=>{
+          preList.value.push(baseUrl+file.fileUrl)
         })
       })
-    }
+    })
   }else{
     proxy.$alert(
         "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
@@ -221,7 +249,11 @@ const onsumbit = () => {
         { dangerouslyUseHTMLString: true }
     );
   }
-  proxy.$refs['upload'].submit()
+  if(fileList.value.length > 0){
+    proxy.$refs['upload'].submit()
+  }if(pasteList.value.length > 0) {
+   //uploadFiles(workOrderId.value,fileEntityList)
+  }
   getList.value();
   outerVisible.value = false;
 }
@@ -231,11 +263,59 @@ function handleBeforeUpload(file) {
   // formData.append("file", file);
 
 }
+const handlePase = (e)=>{
+  pasteList.value = [];
+  for(let i =0 ;i<e.clipboardData.files.length;i++){
+    pasteList.value.push(e.clipboardData.files[i])
+
+  }
+  if(pasteList.value.length > 0) {
+    pasteList.value.forEach((file)=>{
+      const formData2 = new FormData();
+      formData2.append("file", file);
+      uploadFile(formData2).then((res) => {
+        let fileEntity = {};
+        if (res.code === 200) {
+          fileEntity.id = res.id;
+          fileEntity.fileName = res.newFileName;
+          fileEntity.url = res.url;
+          fileEntity.originalFileName = res.originalFilename;
+          fileEntity.fileUrl = res.fileName;
+        }
+        viewList.value.push(`${baseUrl}+${res.url}`);
+        fileEntityList.value.push(fileEntity);
+      })
+    })
+    // FileList({"masterTableName":"biz_work_order_record","masterId":workOrderId.value}).then((response) => {
+    //   filesTable.value = response.data
+    //   filesTable.value.forEach((file)=>{
+    //     preList.value.push(baseUrl+file.fileUrl)
+    //   })
+    // })
+  }
+  uploadHidden.value = false;
+}
+const handleEnter = ()=>{
+  fileIpt.value.focus();
+  //document.getElementsByClassName("resultDiv")[0].click();
+}
 defineExpose({
   openView,
 });
 </script>
 <style scoped>
-
+.imgClass{
+  display: flex;
+  .el-image{
+    background: #1f2d3d;
+    margin: 10px;
+  }
+}
+.inputClass{
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  opacity: 0;
+}
 
 </style>