spring
2025-04-09 58be07dbde1f3375d86204cb215c8372b615a01b
src/views/structural/capabilityAndLaboratory/workshop/components/fileList.vue
@@ -4,23 +4,38 @@
      <el-upload ref='upload' :action="fileAction" :auto-upload="true" :before-upload="fileBeforeUpload"
        :data="{ id: currentId }" :headers="uploadHeader" :on-error="onError" :on-success="handleSuccessUp"
        :show-file-list="false" accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
        style="width: 80px !important;">
        style="width: 80px !important;" v-if="!isLook">
        <el-button size="small" style="height: 38px" type="primary">附件上传</el-button>
      </el-upload>
    </div>
    <lims-table :tableData="tableDataFile" :column="columnFile" height="500px" key="tableDataFile"
      :tableLoading="tableLoadingFile"></lims-table>
    <el-dialog title="查看附件" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen append-to-body>
      <filePreview v-if="lookDialogVisible" :fileUrl="currentInfo.fileMinioUrl" :currentFile="currentInfo"
        style="max-height: 90vh;overflow-y: auto;" />
    </el-dialog>
  </div>
</template>
<script>
import limsTable from "@/components/Table/lims-table.vue";
import { fileList, delFile } from "@/api/structural/workshop.js"
import filePreview from "@/components/Preview/filePreview.vue";
export default {
  components: {
    limsTable,
    filePreview,
  },
  props: ['currentId'],
  props: {
    currentId: {
      type: String,
      default: ''
    },
    isLook: {
      type: Boolean,
      default: false
    }
  },
  computed: {
    fileAction() {
      return this.javaApi + '/workShop/uploadFile'
@@ -73,6 +88,17 @@
              type: 'text',
              clickFun: (row) => {
                this.delete(row);
              },
              showHide: (row) => {
                return !this.isLook
              }
            },
            {
              name: '预览',
              type: 'text',
              clickFun: (row) => {
                this.currentInfo = row
                this.lookDialogVisible = true
              }
            },
          ]
@@ -80,6 +106,8 @@
      ],
      tableDataFile: [],
      tableLoadingFile: false,
      lookDialogVisible: false,
      currentInfo: {},
    }
  },
  mounted() {
@@ -93,6 +121,7 @@
        this.tableLoadingFile = false
        if (res.code === 200) {
          this.tableDataFile = res.data
          console.log('文件列表数据:', this.tableDataFile)
        }
      }).catch(err => {
        this.tableLoadingFile = false
@@ -119,13 +148,7 @@
    },
    // 下载附件的文件
    handleDown(row) {
      downFile({
        id: row.id,
      }).then(res => {
        this.$download.saveAs(res.data.fileUrl, row.fileName);
      }).catch(error => {
      })
      this.$download.saveAs(row.fileUrl, row.fileName);
    },
    // 删除附件文件
    delete(row) {