import { ElMessage as e } from "element-plus";
import { useUpload as c } from "./useUpload.js";
function h(s, t, n) {
  const { customHttpRequest: u } = c();
  return {
    retryUpload: async (r) => {
      try {
        const a = {
          file: r.raw,
          // 原始 File 对象（注意！必须使用 file.raw，不能用包裹后的 file）
          filename: r.name,
          // 字段名，上传时 formData.append 的 key，通常是 'file'
          action: n.action,
          // 上传接口地址（从 props 中传入）
          // 上传进度回调：实时更新进度条 + 状态
          onProgress: (o) => {
            r.status = "uploading", r.percentage = Math.round(o.loaded / o.total * 100);
          },
          // 上传成功回调：设置状态为成功，补全 response，并通知父组件更新
          onSuccess: (o) => {
            r.status = "success", r.response = o, r.percentage = 100, t("update:fileList", [...s.value]), t("onSuccess", r, s.value), e.success("重新上传文件成功");
          },
          // 上传失败回调：标记为失败状态，重置进度为 0，并更新 UI
          onError: (o) => {
            r.status = "fail", r.percentage = 0, t("update:fileList", [...s.value]), t("onError", r, s.value), e.error("重新上传文件失败");
          },
          // 可附带额外参数（你后端若支持可扩展使用）
          data: {},
          // 默认 POST 请求
          method: "post",
          // 是否携带 Cookie（跨域时按需设置）
          withCredentials: !1,
          // 自定义请求头（你也可以使用 props.headers 合并）
          headers: {}
        };
        await u(a);
      } catch (a) {
        console.error("重新上传文件异常：", a);
      }
    }
  };
}
export {
  h as useUploadRetry
};
