up: false,
fileList: [
],
uploadheaders: {
Authorization: "",
},
upLoadText: {},
<el-button size="small" type="primary" @click="upload">上传</el-button>
<el-dialog title="上传" :visible.sync="up" width="30%" class="dialog">
<el-form class="upload" label-width="90px">
<el-form-item label="备注:">
<el-input
type="textarea"
:rows="2"
placeholder="请输入备注"
v-model="textarea"
>
</el-input>
</el-form-item>
</el-form>
<el-button @click="select" size="small" type="primary">选取上传文件</el-button>
<el-upload
style="display: inline"
class="upload-demo"
ref="upload"
:auto-upload="false"
:action="upLoadUrl"
accept=".docx,.pdf"
:show-file-list="true"
:file-list="fileList"
:headers="uploadheaders"
:before-upload="beforeUpload"
:on-success="handle_success"
:data="upLoadText"
:limit="1"
:on-exceed="handleExceed"
:http-request="httpRequest"
>
</el-upload>
<!-- <el-upload
style="display: inline"
class="upload-demo"
ref="upload"
:action="upLoadUrl"
accept=".docx,.pdf"
:limit="1"
:on-exceed="handleExceed"
:file-list="fileList"
:show-file-list="true"
:headers="uploadheaders"
:before-upload="beforeUpload"
:on-success="handle_success"
:data="upLoadText"
>
</el-upload> -->
<span slot="footer" class="dialog-footer">
<el-button @click="cancel">取 消</el-button>
<el-button type="primary" @click="sure">确 定</el-button>
</span>
</el-dialog>
computed: {
upLoadUrl() {
return process.env.VUE_APP_BASE_API + "XXX接口";
},
},
import { getToken } from "@/utils/auth";
sure() {
this.$refs.upload.submit();
this.up = false;
},
cancel() {
this.up = false;
},
httpRequest(params) {
console.log("拿到上传文件:", params);
console.log("dd:", this.addForm);
var formdata = new FormData();
formdata.append("requirement",this.addForm.requirement);
formdata.append("fileName", this.addForm.fileName);
formdata.append("file", this.addForm.file);
formdata.append("creator",this.addForm.creator);
formdata.append("remark", this.textarea);
formdata.append("type", this.valueTextPop);
let config = {
headers: { "XZ-Authorization": "Bearer " + getToken() },
};
console.log(config);
axios
.post(
process.env.VUE_APP_BASE_API + "XXX接口",
formdata,
config
)
.then((res) => {
console.log("res:", res);
this.up = false;
this.search();
});
},
handleExceed(files, fileList) {
this.$message.warning(
`当前限制选择 1 个文件,本次选择了 ${files.length} 个文件,共选择了 ${
files.length + fileList.length
} 个文件`
);
},
beforeUpload(file) {
console.log("上传之前调用方法:", this.uploadheaders);
this.uploadheaders["XZ-Authorization"] = "Bearer " + getToken();
this.addForm.file = file;
this.addForm.fileName = file.name;
const extension2 = file.name.split(".").slice(-1);
if (extension2 == "docx" || extension2 == "pdf") {
let reader = new FileReader();
reader.readAsDataURL(file);
let that = this;
reader.onload = function () {
that.addForm.fileData = reader.result;
};
return true;
} else {
this.$message.warning("上传模板只能是word或者pdf格式!");
return false;
}
},
handle_success(res) {
console.log("上传成功:", res);
this.search();
},
upload() {
this.fileList = [];
this.textarea = "";
this.valueTextPop = "";
this.up = true;
},
select() {
this.toSelectFile();
},
toSelectFile() {
this.upLoadText = {
creator: window.sessionStorage.getItem("accountName"),
fileName: this.addForm.fileName,
requirement: this.addForm.selectedRequirement,
};
this.$refs["upload"].$refs["upload-inner"].handleClick();
console.log("this.addForm:", this.upLoadText);
},