import request from '@/utils/request';
import {download } from '@/utils/file';

/**
 * 上传文件
 * @param file 文件
 */
export async function uploadFile (data) {
  const formData = new FormData();
  formData.append('multiPartFile', data.multiPartFile);
  formData.append('module', data.module);
  const res = await request.post('/main/file/upload', formData);
  if (res.data.code === '0') {
    return res.data;
  }
  return Promise.reject(new Error(res.data.message));
}
/**
 * 上传文件 批量
 * @param file 文件
 */
export async function uploadBatch (data) {
  const formData = new FormData();
  data.multiPartFiles.forEach((item, index) => {
    formData.append(`multiPartFiles`, item);
  });
  const res = await request.post(
    `/main/file/uploadBatch?module=${data.module}`,
    formData
  );
  if (res.data.code === '0') {
    return res.data;
  }
  return Promise.reject(new Error(res.data.message));
}

/**
 * 获取文件路径
 */
export async function getPathAddress () {
  const res = await request.post('/main/file/getPathAddress');
  if (res.data.code === '0') {
    return res.data.data;
  }
  return Promise.reject();
}
/**
 * 获取文件
 */
export async function getFile (params, fileName) {
  const res = await request.get('/main/file/getFile', {
    params,
    responseType: 'blob'
  });
  const arr = params.objectName.split('/');
  download(res.data, fileName || arr[arr.length - 1]);
  // if (res.data.code === '0') {
  //   return res.data.data;
  // }
  // return Promise.reject();
}
/**
 * 删除文件
 */
export async function removeFile (data) {
  const res = await request.post(
    `/main/file/delete?fileId=${data.fileId}`,
    data
  );
  if (res.data.code === '0') {
    return res.data.message;
  }
  return Promise.reject(new Error(res.data.message));
}
/**
 * 文件列表
 */
export async function getFileList (data) {
  const res = await request.post(`/main/file/list`, data);
  if (res.data.code === '0') {
    return res.data.data;
  }
  return Promise.reject(new Error(res.data.message));
}
