html      <el-upload
        action="https://up-z0.qiniup.com"
        :data="fileData"
        v-model="fileList"
        class="upload-demo"
        drag
        :before-upload="selectNewFile"
        multiple
      >
        <el-icon class="el-icon--upload"><upload-filled /></el-icon>
        <div class="el-upload__text">
          拖拽文件到此处,或 <em>点击</em> 开始上传文件
        </div>
        <template #tip>
          <div class="el-upload__tip">
            jpg/png files with a size less than 500kb
          </div>
        </template>
      </el-upload>
ts
import { UploadFilled } from "@element-plus/icons-vue";
import type { UploadUserFile, UploadRawFile } from "element-plus";
const fileData = ref<any>({});
const fileList = ref<UploadUserFile[]>([]);
const selectNewFile = async (rawFile: UploadRawFile) => {
  console.log(rawFile);
  // 调用自己的后端,获取七牛云token
  const res = await doApi.get<{ token: string }>("file/getUploadToken");
  console.log(res);
  if (res.c == 200) {
    // 封装七牛云特殊字段参数
    fileData.value = {
      token: res.d?.token,
    };
    console.log(fileData.value);
    return true;
  }
  return false;
};
fileData 是封装七牛云特定参数使用的变量,但注意,改变其值时,要使用 .value 完全重置其内容,否则调用七牛云接口时,使用的时默认变量值,很怪很奇葩,垃圾 Element !。
本文作者:DingDangDog
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!