shanyunduo.cheng

excel导入和基本校验

import service from "../utils/request";
import request from '@/utils/request'
// 查询航班种类
......@@ -14,4 +15,15 @@ export function downLoadTemplate(templateResourceName) {
method:'get',
responseType:'blob',
})
}
export function importFlight(file, type){
let formData = new FormData();
formData.append("file", file);
formData.append("type", type);
return request({
url:'/flightInfoImport/importFlight',
method:'post',
data:formData
})
}
\ No newline at end of file
......
......@@ -13,7 +13,9 @@
</el-form-item>
<el-form-item>
<el-upload
action="https://jsonplaceholder.typicode.com/posts/"
action="/flightInfoImport/importFlight"
name="file"
:http-request="uploadExcel"
:on-remove="handleRemove"
:limit="1"
:on-exceed="handleExceed"
......@@ -31,8 +33,6 @@
</el-form-item>
</el-form>
<el-button @click="clearFilter" size="small">清除所有过滤器</el-button>
<el-table
ref="filterTable"
:data="tableData"
......@@ -40,12 +40,18 @@
size="small"
border
>
<el-table-column label="行号" prop="line" fixed> </el-table-column>
<el-table-column label="行号" prop="line" fixed width="50" align="center">
</el-table-column>
<el-table-column label="错误信息" prop="errorMessage" fixed>
<el-table-column label="错误信息" prop="errorMessage" fixed width="200">
<template slot-scope="scope">
<div v-for="(m,key) in scope.row.errorMessage" :key="key">{{ m }}</div>
</template>
</el-table-column>
<el-table-column label="index"></el-table-column>
<el-table-column v-if="tableData.length == 0" ></el-table-column>
<el-table-column v-for="(value,key) in this.tableData[0]" :key="key" v-if="key != 'errorMessage' && key != 'line'" :label="key" :prop="key" width="120"></el-table-column>
</el-table>
</div>
</template>
......@@ -53,7 +59,11 @@
</template>
<script>
import { filghtKindData, downLoadTemplate } from "@/api/flightInfoImport";
import {
filghtKindData,
downLoadTemplate,
importFlight,
} from "@/api/flightInfoImport";
export default {
data() {
......@@ -64,26 +74,7 @@ export default {
region: "",
},
fileList: [],
tableData: [
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
{ line: "1", errorMessage: "error" },
],
tableData: [],
};
},
methods: {
......@@ -119,33 +110,37 @@ export default {
URL.revokeObjectURL(link.href); //释放url
document.body.removeChild(link); //释放标签
} else {
this.$message.error('下载失败');
this.$message.error("下载失败");
}
});
}
},
uploadExcel(option) {
//上传excel
const file = option.file;
console.log(option);
importFlight(file, this.form.type).then((res) => {
if (res.code != 200) {
this.$message.error(res.msg);
} else {
this.tableData = res.data;
}
});
},
handleRemove(file, fileList) {
//清掉上传的文件
this.tableData = [];
this.fileList = [];
},
handleExceed(files) {
//重复上传文件
let file = {};
file.file = files[0];
file.name = files[0].name;
this.fileList = [];
this.fileList.push(file);
},
clearFilter() {
this.$refs.filterTable.clearFilter();
},
formatter(row, column) {
return row.address;
},
filterTag(value, row) {
return row.tag === value;
},
filterHandler(value, row, column) {
const property = column["property"];
return row[property] === value;
this.uploadExcel(file);
},
},
created() {
......