@RequestMapping(value = "/upload/uploadFileBankExcel", method = RequestMethod.POST) public String uploadExcel(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) throws ParseException { Map map=request.getParameterMap(); String dataStr = request.getParameter("dataStr"); //文件类型 String fileTypeReal = FilesUtils.GetFileType(file.getOriginalFilename()); //文件路径模版 String filePath = contractCodePath + "uploadFile"; //uuid文件名称 String fileUuid = FilesUtils.GetUUIDFileName(fileTypeReal); //上传文件名称 String fileName = file.getOriginalFilename(); Map dataMap = JsonPluginsUtil.jsonToMap(dataStr); //接受前台传过来的产品名称与产品代码 String productType = dataMap.get("productType").toString(); String productName = dataMap.get("name").toString(); Integer projetId=Integer.parseInt(productType); Object date1 = dataMap.get("minTimes"); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Date date = formatter.parse(date1.toString()); //通过文件名查询数据条数 int uploadFileBankCount = uploadFileBankService.selectUploadFileCount(fileName); if (uploadFileBankCount != 0) { uploadFileBankService.deleteUploadFileBankByFileName(fileName); logger.info(fileName + "重复,删除数据"); } //文件上传 boolean uploadFlag = FilesUtils.uploadFileByPathAndName(file, filePath, fileUuid); String res = null; //文件保存的数据库表 UploadFileBank uploadFile = new UploadFileBank(); uploadFile.setCreateTime(new Date()); uploadFile.setFileName(fileName); uploadFile.setFileUrl(fileUuid); uploadFile.setProjectId(projetId); uploadFile.setProjectName(productName); //根据产品代码 查询产品ID与产品名称 // 若上传成功 if (uploadFlag) { //上传文件的总路径 String path = filePath + "/" + fileUuid; String tempPath = contractCodePath; InputStream inputStream = null; Workbook workbook = null; try { inputStream = new FileInputStream(path); workbook = ExcelUtils.isXlsOrXlsx(inputStream, path); } catch (Exception e) { e.printStackTrace(); return failure(2, "上传失败,请检查上传内容"); } finally { try { inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } //uploadFile.setFileId(); //模板路径 tempPath += "bank.xls"; //上传表数据入库 res = getRepaymentPlan(workbook, path, tempPath, date); if ("成功".equals(res)) { uploadFile.setUploadState("上传成功"); } else { uploadFile.setUploadState("上传异常"); uploadFile.setRemark(res); } } else { uploadFile.setUploadState("上传失败"); uploadFile.setRemark("请核对上传模版"); } uploadFileBankService.addUploadFileBank(uploadFile); return success(); } /** * Title: getRepaymentPlan * Description: 银行还款计划表入库 * * @author: 席清宁 * @Date: 2019/07/11 17:22 */ public String getRepaymentPlan(Workbook workbook, String path, String tempPath,Date date) { try { if (workbook != null) { List<RepaymentBankModel> repaymentBankModels = new ArrayList<>(); //遍历上传Excel的sheet和模板的sheet1对比如果相同不进行处理 for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) { // boolean flag = ExcelUtils.judgeExcelModel(path, tempPath, numSheet, 0); //判断表头是否存在true存在 if(flag == false ){ return "银行还款计划表有错误,请检查是否是需要的文件,或者查看是否有多余的sheet,如果有删除多余的sheet删除后重新上传"; } repaymentBankModels = ExcelUtils.readExcelByRow(path, numSheet, 1, RepaymentBankModel.class, getMap()); //更新数据库表 String res=updateFileBank(repaymentBankModels,date); //判断是否有异常消息 if(StringUtils.isNotBlank(res)){ return res; } } } } catch (Exception e) { e.printStackTrace(); return "上传失败"; } return "成功"; } /** * */ private String updateFileBank(List<RepaymentBankModel> repaymentBankModels ,Date date) throws ParseException { //处理数据 List<Map> list = new ArrayList<>(); String res = null; StringBuilder news = new StringBuilder(); for(RepaymentBankModel repaymentBankModel :repaymentBankModels){ System.out.println("处理:" + repaymentBankModel.getName() + "身份证号为:"+ repaymentBankModel.getIdnumber()+" 还款信息"); Repayment repayment = new Repayment(); String id=repaymentBankModel.getIdnumber(); //跟据身份证号查询客户ID String customerId = customerService.selectCustomerByNo(id); if(customerId==null){ news.append("客户"+repaymentBankModel.getName() + "身份证号为:"+ repaymentBankModel.getIdnumber()+"信息不存在"); continue; } logger.info("客户ID"+customerId); repayment.setCustomerId(customerId); repayment.setPayDate(DateUtils.getDateFromString(repaymentBankModel.getRepaymentTime())); repayment.setCurrentPrincipal(new Double(repaymentBankModel.getPrincipal())); repayment.setCurrentTotalInterest(new Double(repaymentBankModel.getInterest())); repayment.setCurrentResidueAmount(new Double(repaymentBankModel.getRepaymentMonth())); if(repaymentBankModel.getDateStatus().equals("失败")){ repayment.setPayStatus(2); repayment.setPayStatusNote("扣款失败"); }else if(repaymentBankModel.getDateStatus().equals("成功")){ repayment.setPayStatus(1); repayment.setPayStatusNote("扣款成功"); }else { repayment.setPayStatus(99); repayment.setPayStatusNote("扣款异常"); } logger.info("开始更新数据库表repayment中客户id为"+repayment.getCustomerId()+"的客户信息"); int update=repaymentService.updatePayDateRepayment(repayment); //判断匹配条数 if(update==0){ news.append("客户:"+repaymentBankModel.getName() + "身份证号为:"+ repaymentBankModel.getIdnumber()+"信息不存在,请核对!"); continue; } logger.info(update+"条更新了"); } int update=repaymentService.updateStatus(date); logger.info(update+"条更新了"); res= news==null?null:news.toString(); return res; } /** * Title: getMap * Description: bean中字段与Excel中位置的对应关系 * * @author: xiqingning * @Date: 2019/07/12 18:50 */ public static Map<String, Integer> getMap() { Map<String, Integer> map = new HashMap<>(); map.put("name", 0); map.put("idnumber", 1); map.put("repaymentTime", 2); map.put("principal", 3); map.put("interest", 4); map.put("repaymentMonth", 5); map.put("dateStatus", 6); map.put("remark", 7); return map; } /** * Title: downloadExcel * Description: 下载 * * @author: xiqignning * @Date: 2019/7/15 17:35 */ @RequestMapping(value = "/file/fileBankDownLoad", method = RequestMethod.GET) public void fileBankDownLoad(HttpServletRequest request, HttpServletResponse response) { if (StringUtils.isEmpty(request.getParameter("id"))) { return; } String idStr = request.getParameter("id"); UploadFileBank uploadFile = uploadFileBankService.selectByPrimaryKey(Integer.parseInt(idStr)); String fileName = uploadFile.getFileName(); //拼接文件路径 String filePath = contractCodePath + "uploadFile/" + uploadFile.getFileUrl(); try { DownLoadFileUtils.downloanExcelForXlsx(filePath,response,fileName); } catch (Exception e) { e.printStackTrace(); } }
@RestController
public class UploadFileBankController extends BaseController
上边是文件controller
配置文件读取的地址
@Value("${contract.pathBank}")
private String contractCodePath;
实体类UpLoadFileBankData 用于接受前台参数 用于条件查询 /** * @program: postloan * @description: 接受前台参数,用于条件查询 * @author: 席清宁 * @create: 2019-07-16 11:17 **/ package com.cfam.entity; import com.cfam.base.BaseModel; import java.util.Date; public class UpLoadFileBankData extends BaseModel { private String productType; private String uploadState; private Date minTimes; private Date maxTimes; public String getProductType() { return productType; } public void setProductType(String productType) { this.productType = productType; } public String getUploadState() { return uploadState; } public void setUploadState(String uploadState) { this.uploadState = uploadState; } public Date getMinTimes() { return minTimes; } public void setMinTimes(Date minTimes) { this.minTimes = minTimes; } public Date getMaxTimes() { return maxTimes; } public void setMaxTimes(Date maxTimes) { this.maxTimes = maxTimes; } }
前台页面效果
工具类

/** * <p>Title: uploadFileByPathAndName</p> * <p>Description: 上传文件</p> * @author xiaogang * @param file * @param filePath * @param fileName * @return */ public static boolean uploadFileByPathAndName(MultipartFile file, String filePath, String fileName) { if (!file.isEmpty()) { try {//如果文件存在 File fileTempDir = new File(filePath); if (!fileTempDir.exists() && !fileTempDir.isDirectory()) { fileTempDir.mkdirs();//先创建对应模块的文件夹 } File fileTemp = new File(filePath + "/" + fileName);//建立对应的文件 System.out.println("生成文件地址 : "+filePath + "/" + fileName); BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(fileTemp)); out.write(((MultipartFile) file).getBytes());//将文件内容写到具体地址的新建文件中 out.flush(); out.close(); } catch (FileNotFoundException e) { e.printStackTrace(); return false; } catch (IOException e) { e.printStackTrace(); return false; } } else { return false; } return true; } /** * <p>Title: mkNewFileName</p> * <p>Description: 重命名重复文件名称 </p> * @author xiaogang * @param fileName * @return newFileName */ // public String mkNewFileName(String fileName){ // String newFileName = ""; // String simpleName = ""; // String fileTypeReal = ""; // int fileTypeIndex = fileName.indexOf("."); // if(fileTypeIndex>0){ // fileTypeReal = fileName.substring(fileTypeIndex+1, fileName.length()); // } // if(fileName.length()>0){ // simpleName = fileName.substring(0, fileTypeIndex); // if(")".equals(simpleName.substring(simpleName.length()-1,simpleName.length()-0))){ // if("(".equals(simpleName.substring(simpleName.length()-3,simpleName.length()-2))){ // int a = Integer.parseInt(simpleName.substring(simpleName.length()-2,simpleName.length()-1)); // a+=1; // simpleName = simpleName.substring(0,simpleName.length()-3) + a + ")"; // } // }else{ // simpleName = simpleName+"(1)"; // } // }else{ // simpleName = "fileNameisNull"; // } // newFileName = simpleName+"."+fileTypeReal; // return newFileName; // } /** * <p>Title: GetFileType</p> * <p>Description: 获取文件后缀</p> * @author xiaogang * @param fileName * @return */ public static String GetFileType(String fileName) { String fileTypeReal = ""; int fileTypeIndex = fileName.indexOf("."); if (fileTypeIndex > 0) { fileTypeReal = fileName.substring(fileTypeIndex + 1, fileName.length()); } return fileTypeReal; } /** * <p>Title: GetUUIDFileName</p> * <p>Description: 生成UUID文件名</p> * @author xiaogang * @param index 文件后缀 * @return */ public static String GetUUIDFileName(String index) { return FileUploadItems.getUUID() + "." + index; }
excele工具类

1 public class ExcelUtils { 2 /** 3 * Title: ExcelUtils 4 * Description: 判断上传的excel是xls还是xlsx结尾的。 5 * 6 * @author: likaichuan 7 * @Date: 2018/1/11 15:59 8 */ 9 public static Workbook isXlsOrXlsx(InputStream inputStream, String path) throws FileNotFoundException, IOException { 10 Workbook workbook = null; 11 if (path.endsWith(".xls")) { 12 workbook = new HSSFWorkbook(inputStream); 13 } else if (path.endsWith(".xlsx")){ 14 workbook = new XSSFWorkbook(inputStream); 15 } 16 return workbook; 17 } 18 19 /** 20 * <p>Title: readExcelByRow</p> 21 * <p>Description: 读取Excel的行</p> 22 * 23 * @param filePath 24 * @param readSheetNum 25 * @param readStartRowNum 26 * @param clazz 27 * @param beanExcelMap 28 * @return 29 * @author likaichuan 30 */ 31 public static <T> List<T> readExcelByRow(String filePath, int readSheetNum, int readStartRowNum, Class<T> clazz, Map<String, Integer> beanExcelMap) 32 throws Exception { 33 InputStream inputStream = null; 34 try { 35 inputStream = new FileInputStream(filePath); 36 Workbook workbook =isXlsOrXlsx(inputStream, filePath); 37 // HSSFWorkbook hssfWorkbook = new HSSFWorkbook(inputStream); 38 return listBeanFromExcel(workbook, readSheetNum, readStartRowNum, clazz, beanExcelMap); 39 } catch (FileNotFoundException e) { 40 // TODO Auto-generated catch block 41 e.printStackTrace(); 42 return new ArrayList<>(); 43 } catch (IOException e) { 44 // TODO Auto-generated catch block 45 e.printStackTrace(); 46 return new ArrayList<>(); 47 } finally { 48 try { 49 inputStream.close(); 50 } catch (IOException e) { 51 e.printStackTrace(); 52 } 53 } 54 55 56 } 57 58 /** 59 * <p>Title: judgeExcelModel</p> 60 * <p>Description: 对比上传的文件与模板是否一致</p> 61 * 62 * @param path 63 * @param templatePath 64 * @param sheetNum 65 * @param rowNum 66 * @return 67 * @author likaichuan 68 */ 69 public static Boolean judgeExcelModel(String path, String templatePath, int sheetNum, int rowNum) { 70 InputStream inputStream = null; 71 InputStream inputStreamServer = null; 72 try { 73 inputStream = new FileInputStream(path); 74 Workbook workbook = isXlsOrXlsx(inputStream, path); 75 inputStreamServer = new FileInputStream(templatePath); 76 Workbook workbookServer = isXlsOrXlsx(inputStreamServer, templatePath); 77 List<String> modelList = getListFromExcel(workbook, path, sheetNum, rowNum); 78 List<String> uploadModelList = getListFromExcel(workbookServer, templatePath, 0, rowNum); 79 if (modelList.equals(uploadModelList)) { 80 return true; 81 } else { 82 return false; 83 } 84 } catch (Exception e) { 85 e.printStackTrace(); 86 return false; 87 } finally { 88 try { 89 inputStream.close(); 90 inputStreamServer.close(); 91 } catch (IOException e) { 92 e.printStackTrace(); 93 } 94 } 95 } 96 97 /** 98 * <p>Title: getListFromExcel</p> 99 * <p>Description: 获取Excel的表头</p> 100 * 101 * @param workbook 102 * @param filePath 103 * @param sheetNum 104 * @param rowNum 105 * @return 106 * @author likaichuan 107 */ 108 private static List<String> getListFromExcel(Workbook workbook, String filePath, int sheetNum, int rowNum) { 109 Sheet sheet = workbook.getSheetAt(sheetNum); 110 List<String> list = new ArrayList<>(); 111 Row row = sheet.getRow(rowNum); 112 for (int i = 0; i < row.getLastCellNum(); i++) { 113 list.add(getValue(row.getCell(i))); 114 } 115 116 return list; 117 } 118 119 /** 120 * <p>Title: getBeanFromExcel</p> 121 * <p>Description: 将Excel读取到list中</p> 122 * 123 * @param workbook 124 * @param sheetNum 125 * @param dataStartRowNum 126 * @param clazz 127 * @param beanExcelMap 128 * @return 129 * @author likaichuan 130 */ 131 private static <T> List<T> listBeanFromExcel(Workbook workbook, int sheetNum, int dataStartRowNum, Class<T> clazz, Map<String, Integer> beanExcelMap) { 132 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 133 DecimalFormat df = new DecimalFormat("0.####"); 134 Sheet sheet = workbook.getSheetAt(sheetNum); 135 List<T> list = new ArrayList<>(); 136 for (int rowNum = dataStartRowNum; rowNum <= sheet.getLastRowNum(); rowNum++) { 137 Row row = sheet.getRow(rowNum); 138 Map<String, String> map = new HashMap<>(); 139 if (row != null) { 140 for (Map.Entry<String, Integer> entry : beanExcelMap.entrySet()) { 141 try { 142 String value = ""; 143 if (row.getCell(entry.getValue()) != null && getValue(row.getCell(entry.getValue())).trim().length() != 0 && row.getCell(entry.getValue()).getCellType() == Cell.CELL_TYPE_NUMERIC) { 144 if (org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(row.getCell(entry.getValue()))) { 145 value = sdf.format(row.getCell(entry.getValue()).getDateCellValue()); 146 } else { 147 value = df.format(row.getCell(entry.getValue()).getNumericCellValue()); 148 } 149 } else { 150 value = getValue(row.getCell(entry.getValue())); 151 } 152 // xssfRow.getCell(entry.getValue())!=null&&getValue(xssfRow.getCell(entry.getValue())).trim().length()!=0&&xssfRow.getCell(entry.getValue()).getCellType()==Cell.CELL_TYPE_NUMERIC? 153 // (org.apache.poi.ss.usermodel.DateUtil.isCellDateFormatted(xssfRow.getCell(entry.getValue())) ? sdf.format(xssfRow.getCell(entry.getValue()).getDateCellValue()):df.format(xssfRow.getCell(entry.getValue()).getNumericCellValue())) 154 // :getValue(xssfRow.getCell(entry.getValue())) 155 map.put(entry.getKey(), value); 156 } catch (Exception e) { 157 e.printStackTrace(); 158 } 159 } 160 list.add(getBean(clazz, map)); 161 } 162 } 163 164 return list; 165 } 166 167 /** 168 * <p>Title: getValue</p> 169 * <p>Description: 根据不同类型读取Excel中cell的值</p> 170 * 171 * @param cell 172 * @return 173 * @author likaichuan 174 */ 175 @SuppressWarnings("static-access") 176 private static String getValue(Cell cell) { 177 String res = ""; 178 if (cell == null) { 179 return ""; 180 } 181 if (cell.getCellType() == cell.CELL_TYPE_BOOLEAN) { 182 res = String.valueOf(cell.getBooleanCellValue()); 183 } else if (cell.getCellType() == cell.CELL_TYPE_NUMERIC) { 184 res = String.valueOf(cell.getNumericCellValue()); 185 } else if (cell.getCellType() == cell.CELL_TYPE_FORMULA) { 186 res = String.valueOf(cell.getNumericCellValue()); 187 } else { 188 try { 189 res = String.valueOf(cell.getStringCellValue()); 190 }catch (Exception e) { 191 System.out.print(cell); 192 e.printStackTrace(); 193 } 194 } 195 return res; 196 } 197 198 /** 199 * <p>Title: getBean</p> 200 * <p>Description: 将Excel的一行赋值给对应的bean</p> 201 * 202 * @param clazz 203 * @param map 204 * @return 205 * @author likaichuan 206 */ 207 private static <T> T getBean(Class<T> clazz, Map<String, String> map) { 208 T obj = null; 209 try { 210 obj = clazz.newInstance(); 211 Field[] fields = clazz.getDeclaredFields(); 212 for (Field field : fields) { 213 field.setAccessible(true); 214 field.set(obj, map.get(field.getName())); 215 field.setAccessible(false); 216 } 217 } catch (Exception e) { 218 e.printStackTrace(); 219 } 220 return obj; 221 }
模版
public class RepaymentBankModel extends BaseModel { //姓名 private String name; //身份证号 private String idnumber; //还款时间 private String repaymentTime; //当期剩余应还本金 private String principal; //当期剩余应还利息 private String interest; //当期剩余应还月供 private String repaymentMonth; //还款状态 private String dateStatus; //备注 private String remark;
前台代码
<template> <section style="padding:20px"> <el-row> <strong class="title">银行还款数据导入</strong> </el-row> <br /> <!-- 检索操作区域 --> <el-card> <el-form :model="searcher"> <el-row> <el-col :span="8"> <el-form-item label="起始时间"> <el-date-picker v-model="searcher.minTimes" type="date" value-format="yyyy-MM-dd"></el-date-picker> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="终止时间"> <el-date-picker v-model="searcher.maxTimes" type="date" value-format="yyyy-MM-dd"></el-date-picker> </el-form-item> </el-col> <el-col :span="8"> <el-form-item label="所属产品"> <el-select v-model="searcher.productType" placeholder="所属产品"> <el-option v-for="item in productList" :key="item.id" :value="item.id" :label="item.name" /> </el-select> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="8"> <el-form-item label="上传状态"> <el-select v-model="searcher.uploadState" placeholder="上传状态"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" /> </el-select> </el-form-item> </el-col> <el-col :span="8"> <el-button type="primary" v-on:click="search()" style="text-align: center">查询</el-button> <el-button type="primary" v-on:click="reset()" style="text-align: center">重置</el-button> <el-button type="primary" v-on:click="showDialog()" style="text-align: center">上传文件</el-button> </el-col> </el-row> </el-form> </el-card> <br /> <!-- 表格数据部分 --> <el-card class="dataimport-table"> <el-table :data="list" border> <el-table-column prop="dataNo" label="序号" align="center" type="index" width="120" fixed></el-table-column> <!-- <el-table-column label="文件名称" align="center" width="250" fixed> <template slot-scope="scope"> <el-button type="text" @click="viewDetailInfo(scope.row.fileName)" >{{ scope.row.fileName }}</el-button> </template> </el-table-column>--> <el-table-column prop="fileName" label="文件名" align="center"></el-table-column> <el-table-column prop="projectName" label="所属产品" align="center" width="300"></el-table-column> <el-table-column prop="uploadState" label="上传状态" align="center" width="300"></el-table-column> <el-table-column prop="createTime" label="上传时间" align="center" width="300"></el-table-column> <el-table-column prop="remark" label="备注" align="center" width="300"></el-table-column> <el-table-column label="操作" align="center"> <template slot-scope="scope"> <el-button size="small" type="primary" @click="download(scope.row.id)">下载</el-button> </template> </el-table-column> </el-table> </el-card> <el-dialog title="提示" width="30%" :before-close="handleClose" :visible.sync="dialogVisible"> <span> <el-form :model="dialog" :inline="true"> <el-form-item label="还款时间"> <el-date-picker v-model="dialog.minTimes" type="date" value-format="yyyy-MM-dd"></el-date-picker> </el-form-item> <el-form-item label="所属产品"> <el-select v-model="dialog.productType" filterable value-key="name" placeholder="所属产品"> <el-option v-for="item in productList" :key="item.id" :value="item" :label="item.name" /> </el-select> </el-form-item> <el-form-item> <el-upload class="upload-demo" ref="upload" :data="fileData" :action="fileUrlBank" :on-success="handleAvatarScucess" :before-upload="beforeAvatarUpload" :multiple="true" :auto-upload="true" > <el-button @click="dialogVisible = false">取 消</el-button> <el-button slot="trigger" size="medium" type="primary" @click="dialogVisible = false" >文件上传</el-button> <!-- <el-button type="primary" @click="dialogVisible = false">确 定</el-button> --> </el-upload> </el-form-item> </el-form> </span> </el-dialog> <!-- 分页部分 --> <el-pagination style="text-align:center;margin-top: 20px;" background layout="total, prev, pager, next" :page-size="10" @current-change="pageChange" :total="total" ></el-pagination> </section> </template> <script> // 需要调用到的后台api import { productList, getTableList, getLocalhost } from "../api/api"; import url from "../api/url"; import ElCol from "element-ui/packages/col/src/col"; import deductions_dialog from "@/components/reusable_template/deductions_dialog"; export default { components: { ElCol, "deductions-dialog": deductions_dialog }, data() { return { options: [ { value: "上传成功", label: "上传成功" }, { value: "上传失败", label: "上传失败" }, { value: "上传异常", label: "上传异常" } ], para: { minTimes: "", productType: "", name: "" }, versionTemp: { id: null, name: null }, dialogVisible: false, // 所属产品 productList: [], fileData: { dataStr: "" }, fileUrlBank: url.fileUrlBank, // 搜索输入框 dialog: { customerName: "", minTimes:null, productType:null, // 固定代理商名称 dealerName: this.$store.getters.dealerName, // isLate:"", // productType: { // name: "" // }, // minTimes:null, // maxTimes:null, page: 1, size: 12 }, searcher: { // 固定代理商名称 //dealerName: this.$store.getters.dealerName, // isLate:"", productType: null, minTimes: null, maxTimes: null, uploadState:null }, total: 0, queryButton: 1, list: [], //数据展示列表 rules: this.$validate.rules, customer: {} }; }, methods: { download(id) { getLocalhost({}).then(data => { var localhost = data.data; console.log("=================="); console.log(localhost); window.location.href = localhost + "/file/fileBankDownLoad?id=" + id; }); }, getTableList(type) { this.searcher={ productType: type.productType, minTimes: type.minTimes, maxTimes: type.maxTimes, uploadState: type.uploadState } getTableList(this.searcher).then(data => { this.total = data.data.total; this.list = data.data.list; }); }, getlist() { this.getTableList(this.searcher); }, handleClose(done) { this.$confirm("确认关闭?") .then(_ => { done(); }) .catch(_ => {}); }, //上传成功后 handleAvatarScucess(res, file) { // if (this.searcher == "") { // return; // } //清楚上传文件列表 this.$refs.upload.clearFiles(); if (res.code == 0) { //去查询已上传文件列表 this.getTableList(this.searcher); this.$message(res.data); } else { //给出提示信息 this.$notify.error({ title: "上传失败", message: "上传失败", duration: 2500, offset: 100 }); } }, //上传前对文件进行处理 beforeAvatarUpload(file) { let _this = this; if (_this.dialog.minTimes == null || _this.dialog.productType == null) { this.$message.error("请选择还款时间与所属产品"); return; } console.log(_this.dialog.minTimes); return new Promise((resolve, reject) => { //获取文件扩展名 var fileExtension = file.name.substring(file.name.lastIndexOf(".") + 1); if ( fileExtension == "xls" || fileExtension == "xlsx" || fileExtension == "csv" ) { //name id _this.para.productType = _this.dialog.productType.id; _this.para.minTimes = _this.dialog.minTimes; _this.para.name = _this.dialog.productType.name; console.log(_this.para); _this.fileData.dataStr = JSON.stringify(_this.para); resolve(file); } else { resolve(file); this.$message.error("上传文件错误"); return; } }); }, //分页 pageChange(val) { this.searcher.page = val; console.log("------------------------------------"); console.log("queryButton:" + this.queryButton); if (this.queryButton == 1) { this.getTableList(this.searcher); } else { this.getTableList(this.searcher); } }, //查詢 search() { //let map = this.searcher; this.searcher.page = 1 this.getTableList(this.searcher) //this.getTableList(map); }, /** * 重置按钮 */ reset() { this.searcher = { //搜索输入框 customerName: "", uploadState:null, //dealerName: this.$store.getters.dealerName, // isLate:"", minTimes: null, maxTimes: null, page: 1, size: 12 }; }, getAllProducts() { this.productList = this.$store.getters.productList; }, //文件上传 showDialog() { this.dialogVisible = true; } }, mounted() { this.getAllProducts(); this.getTableList(this.searcher); } }; </script>