wangting
2024-04-15 7a29d8642c4b168d3861340b8f8bff28ba7d3af3
Source/ProjectWeb/src/components/PLT-basic-component/Upload-files.vue
@@ -1,10 +1,10 @@
<template>
  <el-dialog
    title="上传文件"
    :visible.sync="dialogVisible"
    append-to-body
    title="上传文件"
  >
    <Divider text="导入提示" left="30px"></Divider>
    <Divider left="30px" text="导入提示"></Divider>
    <ul>
      <li>
        1.红色字体表示必输项
@@ -13,26 +13,27 @@
        2.每次仅能最多导入10000条数据
      </li>
    </ul>
    <Divider text="excel文件,选择文件后会自动上传" left="30px"></Divider>
    <Divider left="30px" text="excel文件,选择文件后会自动上传"></Divider>
    <el-upload
      :before-upload="beforeUpload"
      :headers="uploadHeaders"
      :on-change="uploadChange"
      :on-error="onError"
      :on-success="onSuccess"
      :show-file-list="false"
      accept=".xlsx, .xls"
      action="/api/ubcs-code/codeClassify/importClassify"
      :on-success="onSuccess"
      :on-error="onError"
      :headers="uploadHeaders"
      :show-file-list="false"
      :before-upload="beforeUpload"
      :on-change="uploadChange"
      class="upload-demo">
      <el-button size="small" type="primary" style="margin: 15px 35px">浏览文件</el-button>
      <el-button size="small" style="margin: 15px 35px" type="primary">浏览文件</el-button>
    </el-upload>
    <template #footer>
      <el-button
        type="primary"
        size="small"
        @click="downloadTemplateFun"
        :loading="downloadLoading"
      >下载导入模板</el-button
        size="small"
        type="primary"
        @click="downloadTemplateFun"
      >下载导入模板
      </el-button
      >
      <el-button size="small" @click="dialogVisible = false">关闭</el-button>
    </template>
@@ -43,6 +44,7 @@
// import {downloadErrorFile,downloadBatchImportApplyTemplate} from '@/api/template/templateAttr'
import {getToken} from "@/util/auth";
import func from "@/util/func";
export default {
  name: "Upload-files",
  props: {
@@ -55,21 +57,21 @@
      default: "",
    },
  },
  data(){
    return{
      flga:true,
  data() {
    return {
      flga: true,
      pageLoading: null,
      downloadLoading: false,
    }
  },
  watch:{
    visible:{
      handler(newval,oldval){
  watch: {
    visible: {
      handler(newval, oldval) {
        // console.log('newval',newval)
      }
    }
  },
  computed:{
  computed: {
    uploadHeaders() {
      return {
        "Blade-Auth": "bearer " + getToken(),
@@ -84,7 +86,7 @@
      },
    },
  },
  methods:{
  methods: {
    //文件上传前
    async beforeUpload(file) {
      const fileType = file.name.split(".").pop();
@@ -102,37 +104,37 @@
      return true;
    },
    // 文件上传成功
    onSuccess(resbonse){
    onSuccess(resbonse) {
      if (Object.keys(resbonse.data).length === 0) {
        this.$message.success( "上传成功!");
        this.$message.success("上传成功!");
        this.dialogVisible = false;
        return;
      }
      if (resbonse.data.fileOid) {
        const fileName = resbonse.data.filePath.split("/").pop();
        this.$message.error("请下载错误信息文件进行查看!");
        downloadErrorFile({ uuid: resbonse.data.fileOid }).then((res) => {
        downloadErrorFile({uuid: resbonse.data.fileOid}).then((res) => {
          func.downloadFileByBlobHandler(res);
        });
      }
    },
    //点击下载模板
    downloadTemplateFun(){
    downloadTemplateFun() {
      this.downloadLoading = true;
      downloadBatchImportApplyTemplate({codeClassifyOid: this.codeClassifyOid}).then(res=>{
        this.$utilFunc.downloadFileByBlob(res.data,  "模板文件.xls");
      downloadBatchImportApplyTemplate({codeClassifyOid: this.codeClassifyOid}).then(res => {
        this.$utilFunc.downloadFileByBlob(res.data, "模板文件.xls");
        this.downloadLoading = false;
      }).catch((res)=>{
      }).catch((res) => {
        this.$message.warning(res)
        this.downloadLoading = false;
      })
    },
    //文件上传失败
    onError(res){
    onError(res) {
      this.pageLoading.close();
    },
    //文件状态改变
    uploadChange(file){
    uploadChange(file) {
      if (file.status === "success" || file.status === "error") {
        this.pageLoading.close();
      }
@@ -141,12 +143,13 @@
}
</script>
<style scoped lang="scss">
<style lang="scss" scoped>
ul {
  color: rgb(188, 188, 188);
  margin: 20px 0 20px 0;
  padding: 0 0 0 30px;
  list-style: none;
  li {
    margin-bottom: 5px;
    font-size: 13px;