导入模板功能整了一下

master
lenovo 2 years ago
parent 38ff379095
commit e9a83048c4

@ -3,14 +3,14 @@
<el-card class="box-card bottom-10"> <el-card class="box-card bottom-10">
<el-steps :active="active" finish-status="success"> <el-steps :active="active" finish-status="success">
<el-step title="导入名单"></el-step> <el-step title="导入名单"></el-step>
<el-step title="填充模板"></el-step> <el-step title="导入模板"></el-step>
<el-step title="步骤 3"></el-step> <el-step title="完成"></el-step>
</el-steps> </el-steps>
<!-- <el-button style="margin-top: 12px;" @click="next"></el-button> --> <!-- <el-button style="margin-top: 12px;" @click="next"></el-button> -->
</el-card> </el-card>
<el-card> <el-card>
<el-form ref="$form" :model="model" label-position="left" label-width="100px" size="small"> <el-form ref="$form" :model="model" label-position="right" label-width="100px" size="small">
<el-form-item :rules="rules.upload" prop="upload" label="名单上传" v-if="active==0"> <el-form-item :rules="rules.upload" prop="upload" label="名单上传" v-if="active==0">
<el-upload <el-upload
action="/api/excel/readData" action="/api/excel/readData"
@ -24,38 +24,72 @@
:before-upload="uploadBefore" :before-upload="uploadBefore"
:before-remove="uploadBeforeRemove" :before-remove="uploadBeforeRemove"
:on-exceed="uploadOnExceed" :on-exceed="uploadOnExceed"
:file-list="nameFileList"
> >
<el-button type="primary" size="small">点击上传</el-button> <el-button type="primary" size="small">点击上传</el-button>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item :rules="rules.uploadTemplate" prop="uploadTemplate" label="模板上传" v-if="active==1"> <el-form-item
:rules="rules.uploadTemplate"
prop="uploadTemplate"
label="模板上传"
v-if="active==1"
>
<el-upload <el-upload
action="/api/excel/template" action="/api/excel/template"
:multiple="false" :multiple="false"
:on-success="uploadSuccess" :on-success="uploadSuccess"
:file-list="templateFileList"
> >
<el-button type="primary" size="small">点击上传</el-button> <el-button type="primary" size="small">点击上传</el-button>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item prop="cellNum" label="指定单元格" v-if="active==1">
<el-input v-model="model.cellNum" style="width=200px">
<el-button slot="append" icon="el-icon-search"></el-button>
</el-input>
</el-form-item>
<el-form-item prop="cellData" label="原始数据" v-if="active==1">
<el-input type="textarea" v-model="model.cellData" disabled></el-input>
</el-form-item>
<el-form-item prop="newCellData" label="替换后的数据" v-if="active==1">
<el-input type="textarea" v-model="model.newCellData" disabled></el-input>
</el-form-item>
</el-form> </el-form>
</el-card> </el-card>
<el-dialog :visible.sync="dialogVisible" width="60%"> <el-dialog :visible.sync="dialogVisible" width="40%">
<el-tabs type="card" v-model="activeName" @tab-click="handleClick"> <el-tabs type="card" v-model="activeName" @tab-click="handleClick">
<el-tab-pane v-for="(val, key, index) in namePreview" :key="index" :label="key" :name="key"> <el-tab-pane
v-for="(item, index) in namePreview"
:key="index"
:label="item.sheetName"
:name="item.index"
>
<div class="table-s"> <div class="table-s">
<el-table :data="val" stripe style="width: 100%"> <el-table :data="item.nameList" stripe style="width: 100%">
<el-table-column type="index" label="序号" min-width="80%"></el-table-column> <el-table-column type="index" label="序号" min-width="20%" align="center"></el-table-column>
<el-table-column prop="name" label="姓名" min-width="50%"></el-table-column> <el-table-column prop="name" label="姓名" min-width="50%" align="center"></el-table-column>
<el-table-column fixed="right" label="操作" min-width="30%" align="center">
<template slot-scope="scope">
<el-button type="primary" icon="el-icon-edit" circle size="small"></el-button>
<el-button type="danger" icon="el-icon-delete" circle size="small"></el-button>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<div class="top-10">
<span>{{item.sheetName}} 一共有{{item.nameList.length}}个人请检查一下对不对</span>
<span v-if="item.hasRepeat" class="f-right">{{item.repeatCount}}</span>
</div>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false"> </el-button> <el-button @click="dialogVisible = false"> </el-button>
<el-button type="primary" @click="next"></el-button> <el-button type="primary" @click="nameListNext"></el-button>
</span> </span>
</el-dialog> </el-dialog>
</div> </div>
@ -68,7 +102,10 @@ export default {
forms: ["$form"], forms: ["$form"],
model: { model: {
upload: "", upload: "",
uploadTemplate: "" uploadTemplate: "",
cellNum: "",
cellData: "",
newCellData: ""
}, },
rules: { rules: {
upload: [], upload: [],
@ -76,8 +113,10 @@ export default {
}, },
active: 0, active: 0,
dialogVisible: false, dialogVisible: false,
namePreview: {}, namePreview: [],
activeName: "" activeName: 0,
nameFileList: [],
templateFileList: []
}; };
}, },
created() { created() {
@ -95,15 +134,33 @@ export default {
console.log(err); console.log(err);
}); });
}, },
next() { nameListNext() {
this.dialogVisible = false; this.$confirm("请确认名单是否正确?", "提示", {
if (this.active++ > 2) this.active = 0; confirmButtonText: "没毛病",
cancelButtonText: "有问题",
type: "warning"
})
.then(() => {
this.dialogVisible = false;
if (this.active++ > 2) this.active = 0;
})
.catch(() => {
this.$message({
type: "info",
message: "有问题就改"
});
});
}, },
uploadPreview(file) {}, uploadPreview(file) {},
uploadRemove(file, fileList) {}, uploadRemove(file, fileList) {},
uploadSuccess(response, file, fileList) { uploadSuccess(response, file, fileList) {
this.namePreview = response.data; if (response.success) {
this.dialogVisible = true; this.namePreview = response.data;
this.dialogVisible = true;
this.$message.success("姓名导入成功");
} else {
this.$message.success("姓名导入出现了错误,请联系陈达解决");
}
}, },
uploadError(err, file, fileList) {}, uploadError(err, file, fileList) {},
uploadProgress(event, file, fileList) {}, uploadProgress(event, file, fileList) {},
@ -121,10 +178,19 @@ export default {
<style> <style>
.table-s { .table-s {
height: 500px; height: 400px;
overflow: auto; overflow: auto;
} }
.bottom-10 { .bottom-10 {
margin-bottom: 10px; margin-bottom: 10px;
}
.top-10 {
margin-top: 10px;
}
.left-10 {
margin-left: 10px;
}
.f-right {
float: right;
} }
</style> </style>
Loading…
Cancel
Save