<template>
|
<el-dialog v-model="upload.open" :title="upload.title" :width="500">
|
<FileUpload
|
ref="fileUploadRef"
|
accept=".xlsx, .xls, .pdf"
|
:headers="upload.headers"
|
:autoUpload="true"
|
:action="upload.url"
|
:disabled="upload.isUploading"
|
:showTip="false"
|
:limit="10"
|
@success="handleFileSuccess"
|
@remove="removeFile"
|
/>
|
<template #footer>
|
<div class="dialog-footer">
|
<el-button type="primary" @click="submitFileForm">确 定</el-button>
|
<el-button @click="upload.open = false">取 消</el-button>
|
</div>
|
</template>
|
</el-dialog>
|
</template>
|
|
<script setup>
|
import { reactive } from "vue";
|
import { getToken } from "@/utils/auth.js";
|
import { FileUpload } from "@/components/Upload";
|
import { ElMessage } from "element-plus";
|
import { ref } from "vue";
|
import useFormData from "@/hooks/useFormData";
|
|
defineOptions({
|
name: "来票台账附件补充",
|
});
|
|
const { form, resetForm } = useFormData({
|
id: undefined,
|
tempFileIds: [],
|
});
|
const emits = defineEmits(["uploadSuccess"]);
|
const fileUploadRef = ref();
|
const upload = reactive({
|
// 是否显示弹出层(供应商导入)
|
open: false,
|
// 弹出层标题(供应商导入)
|
title: "",
|
// 是否禁用上传
|
isUploading: false,
|
// 设置上传的请求头部
|
headers: { Authorization: "Bearer " + getToken() },
|
// 上传的地址
|
url: import.meta.env.VITE_APP_BASE_API + "/file/upload",
|
});
|
// 点击导入
|
const handleImport = (id) => {
|
form.id = id;
|
upload.open = true;
|
upload.title = "来票台账附件补充";
|
};
|
|
const submitFileForm = () => {
|
upload.open = false;
|
resetForm();
|
emits("uploadSuccess", form);
|
};
|
|
const handleFileSuccess = (response) => {
|
const { code, msg } = response;
|
form.tempFileIds.push(response.data.tempId);
|
if (code == 200) {
|
ElMessage({ message: "导入成功", type: "success" });
|
} else {
|
ElMessage({ message: msg, type: "error" });
|
}
|
};
|
|
const removeFile = (file) => {
|
const { tempId } = file.response.data;
|
form.tempFileIds = form.tempFileIds.filter((item) => item !== tempId);
|
};
|
|
defineExpose({
|
handleImport,
|
});
|
</script>
|