提交 0622e752 编写于 作者: 江南一点雨

完成了Excel导入导出功能

上级 3ab68b7e
......@@ -47,6 +47,11 @@
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
</dependencies>
<build>
......
package org.sang;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("org.sang.mapper")
public class HrserverApplication {
public static void main(String[] args) {
......
......@@ -16,6 +16,28 @@ public class Department {
private boolean enabled;
private boolean isParent;
public Department() {
}
public Department(String name) {
this.name = name;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Department that = (Department) o;
return name != null ? name.equals(that.name) : that.name == null;
}
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
//存储过程执行结果
private Integer result;
private List<Department> children = new ArrayList<>();
......
......@@ -24,6 +24,7 @@ public class Employee {
private Long jobLevelId;
private String jobLevelName;
private Long posId;
private String posName;
private String engageForm;
private String tiptopDegree;
private String specialty;
......@@ -43,6 +44,14 @@ public class Employee {
private Position position;
private PoliticsStatus politicsStatus;
public String getPosName() {
return posName;
}
public void setPosName(String posName) {
this.posName = posName;
}
public Department getDepartment() {
return department;
}
......
......@@ -11,6 +11,30 @@ public class JobLevel {
private String titleLevel;
private Timestamp createDate;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
JobLevel jobLevel = (JobLevel) o;
return name != null ? name.equals(jobLevel.name) : jobLevel.name == null;
}
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
public JobLevel() {
}
public JobLevel(String name) {
this.name = name;
}
public Long getId() {
return id;
}
......
......@@ -7,6 +7,28 @@ public class Nation {
private Long id;
private String name;
public Nation(String name) {
this.name = name;
}
public Nation() {
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Nation nation = (Nation) o;
return name != null ? name.equals(nation.name) : nation.name == null;
}
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
public Long getId() {
return id;
}
......
......@@ -7,6 +7,30 @@ public class PoliticsStatus {
private Long id;
private String name;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
PoliticsStatus that = (PoliticsStatus) o;
return name != null ? name.equals(that.name) : that.name == null;
}
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
public PoliticsStatus(String name) {
this.name = name;
}
public PoliticsStatus() {
}
public Long getId() {
return id;
}
......
......@@ -10,6 +10,29 @@ public class Position {
private String name;
private Timestamp createDate;
public Position() {
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Position position = (Position) o;
return name != null ? name.equals(position.name) : position.name == null;
}
@Override
public int hashCode() {
return name != null ? name.hashCode() : 0;
}
public Position(String name) {
this.name = name;
}
public Long getId() {
return id;
}
......
package org.sang.common.poi;
import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.sang.bean.*;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.multipart.MultipartFile;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/**
* Created by sang on 2018/1/16.
*/
public class PoiUtils {
public static ResponseEntity<byte[]> exportEmp2Excel(List<Employee> emps) {
HttpHeaders headers = null;
ByteArrayOutputStream baos = null;
try {
//1.创建Excel文档
HSSFWorkbook workbook = new HSSFWorkbook();
//2.创建文档摘要
workbook.createInformationProperties();
//3.获取文档信息,并配置
DocumentSummaryInformation dsi = workbook.getDocumentSummaryInformation();
//3.1文档类别
dsi.setCategory("员工信息");
//3.2设置文档管理员
dsi.setManager("江南一点雨");
//3.3设置组织机构
dsi.setCompany("XXX集团");
//4.获取摘要信息并配置
SummaryInformation si = workbook.getSummaryInformation();
//4.1设置文档主题
si.setSubject("员工信息表");
//4.2.设置文档标题
si.setTitle("员工信息");
//4.3 设置文档作者
si.setAuthor("XXX集团");
//4.4设置文档备注
si.setComments("备注信息暂无");
//创建Excel表单
HSSFSheet sheet = workbook.createSheet("XXX集团员工信息表");
//创建日期显示格式
HSSFCellStyle dateCellStyle = workbook.createCellStyle();
dateCellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy"));
//创建标题的显示样式
HSSFCellStyle headerStyle = workbook.createCellStyle();
headerStyle.setFillForegroundColor(IndexedColors.YELLOW.index);
headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//定义列的宽度
sheet.setColumnWidth(0, 5 * 256);
sheet.setColumnWidth(1, 12 * 256);
sheet.setColumnWidth(2, 10 * 256);
sheet.setColumnWidth(3, 5 * 256);
sheet.setColumnWidth(4, 12 * 256);//第四列(出生日期那一列)的宽度为10个字符的宽度
sheet.setColumnWidth(5, 20 * 256);
sheet.setColumnWidth(6, 10 * 256);
sheet.setColumnWidth(7, 10 * 256);
sheet.setColumnWidth(8, 16 * 256);
sheet.setColumnWidth(9, 12 * 256);
sheet.setColumnWidth(10, 15 * 256);
sheet.setColumnWidth(11, 20 * 256);
sheet.setColumnWidth(12, 16 * 256);
sheet.setColumnWidth(13, 14 * 256);
sheet.setColumnWidth(14, 14 * 256);
sheet.setColumnWidth(15, 12 * 256);
sheet.setColumnWidth(16, 8 * 256);
sheet.setColumnWidth(17, 16 * 256);
sheet.setColumnWidth(18, 20 * 256);
sheet.setColumnWidth(19, 12 * 256);
sheet.setColumnWidth(20, 8 * 256);
sheet.setColumnWidth(21, 25 * 256);
sheet.setColumnWidth(22, 14 * 256);
sheet.setColumnWidth(23, 12 * 256);
sheet.setColumnWidth(24, 12 * 256);
//5.设置表头
HSSFRow headerRow = sheet.createRow(0);
HSSFCell cell0 = headerRow.createCell(0);
cell0.setCellValue("编号");
cell0.setCellStyle(headerStyle);
HSSFCell cell1 = headerRow.createCell(1);
cell1.setCellValue("姓名");
cell1.setCellStyle(headerStyle);
HSSFCell cell2 = headerRow.createCell(2);
cell2.setCellValue("工号");
cell2.setCellStyle(headerStyle);
HSSFCell cell3 = headerRow.createCell(3);
cell3.setCellValue("性别");
cell3.setCellStyle(headerStyle);
HSSFCell cell4 = headerRow.createCell(4);
cell4.setCellValue("出生日期");
cell4.setCellStyle(headerStyle);
HSSFCell cell5 = headerRow.createCell(5);
cell5.setCellValue("身份证号码");
cell5.setCellStyle(headerStyle);
HSSFCell cell6 = headerRow.createCell(6);
cell6.setCellValue("婚姻状况");
cell6.setCellStyle(headerStyle);
HSSFCell cell7 = headerRow.createCell(7);
cell7.setCellValue("民族");
cell7.setCellStyle(headerStyle);
HSSFCell cell8 = headerRow.createCell(8);
cell8.setCellValue("籍贯");
cell8.setCellStyle(headerStyle);
HSSFCell cell9 = headerRow.createCell(9);
cell9.setCellValue("政治面貌");
cell9.setCellStyle(headerStyle);
HSSFCell cell10 = headerRow.createCell(10);
cell10.setCellValue("电话号码");
cell10.setCellStyle(headerStyle);
HSSFCell cell11 = headerRow.createCell(11);
cell11.setCellValue("联系地址");
cell11.setCellStyle(headerStyle);
HSSFCell cell12 = headerRow.createCell(12);
cell12.setCellValue("所属部门");
cell12.setCellStyle(headerStyle);
HSSFCell cell13 = headerRow.createCell(13);
cell13.setCellValue("职称");
cell13.setCellStyle(headerStyle);
HSSFCell cell14 = headerRow.createCell(14);
cell14.setCellValue("职位");
cell14.setCellStyle(headerStyle);
HSSFCell cell15 = headerRow.createCell(15);
cell15.setCellValue("聘用形式");
cell15.setCellStyle(headerStyle);
HSSFCell cell16 = headerRow.createCell(16);
cell16.setCellValue("最高学历");
cell16.setCellStyle(headerStyle);
HSSFCell cell17 = headerRow.createCell(17);
cell17.setCellValue("专业");
cell17.setCellStyle(headerStyle);
HSSFCell cell18 = headerRow.createCell(18);
cell18.setCellValue("毕业院校");
cell18.setCellStyle(headerStyle);
HSSFCell cell19 = headerRow.createCell(19);
cell19.setCellValue("入职日期");
cell19.setCellStyle(headerStyle);
HSSFCell cell20 = headerRow.createCell(20);
cell20.setCellValue("在职状态");
cell20.setCellStyle(headerStyle);
HSSFCell cell21 = headerRow.createCell(21);
cell21.setCellValue("邮箱");
cell21.setCellStyle(headerStyle);
HSSFCell cell22 = headerRow.createCell(22);
cell22.setCellValue("合同期限(年)");
cell22.setCellStyle(headerStyle);
HSSFCell cell23 = headerRow.createCell(23);
cell23.setCellValue("合同起始日期");
cell23.setCellStyle(headerStyle);
HSSFCell cell24 = headerRow.createCell(24);
cell24.setCellValue("合同终止日期");
cell24.setCellStyle(headerStyle);
//6.装数据
for (int i = 0; i < emps.size(); i++) {
HSSFRow row = sheet.createRow(i + 1);
Employee emp = emps.get(i);
row.createCell(0).setCellValue(emp.getId());
row.createCell(1).setCellValue(emp.getName());
row.createCell(2).setCellValue(emp.getWorkID());
row.createCell(3).setCellValue(emp.getGender());
HSSFCell birthdayCell = row.createCell(4);
birthdayCell.setCellValue(emp.getBirthday());
birthdayCell.setCellStyle(dateCellStyle);
row.createCell(5).setCellValue(emp.getIdCard());
row.createCell(6).setCellValue(emp.getWedlock());
row.createCell(7).setCellValue(emp.getNation().getName());
row.createCell(8).setCellValue(emp.getNativePlace());
row.createCell(9).setCellValue(emp.getPoliticsStatus().getName());
row.createCell(10).setCellValue(emp.getPhone());
row.createCell(11).setCellValue(emp.getAddress());
row.createCell(12).setCellValue(emp.getDepartment().getName());
row.createCell(13).setCellValue(emp.getJobLevel().getName());
row.createCell(14).setCellValue(emp.getPosition().getName());
row.createCell(15).setCellValue(emp.getEngageForm());
row.createCell(16).setCellValue(emp.getTiptopDegree());
row.createCell(17).setCellValue(emp.getSpecialty());
row.createCell(18).setCellValue(emp.getSchool());
HSSFCell beginDateCell = row.createCell(19);
beginDateCell.setCellValue(emp.getBeginDate());
beginDateCell.setCellStyle(dateCellStyle);
row.createCell(20).setCellValue(emp.getWorkState());
row.createCell(21).setCellValue(emp.getEmail());
row.createCell(22).setCellValue(emp.getContractTerm());
HSSFCell beginContractCell = row.createCell(23);
beginContractCell.setCellValue(emp.getBeginContract());
beginContractCell.setCellStyle(dateCellStyle);
HSSFCell endContractCell = row.createCell(24);
endContractCell.setCellValue(emp.getEndContract());
endContractCell.setCellStyle(dateCellStyle);
}
headers = new HttpHeaders();
headers.setContentDispositionFormData("attachment", new String("员工表.xls".getBytes("UTF-8"), "iso-8859-1"));
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
baos = new ByteArrayOutputStream();
workbook.write(baos);
} catch (IOException e) {
e.printStackTrace();
}
return new ResponseEntity<byte[]>(baos.toByteArray(), headers, HttpStatus.CREATED);
}
public static List<Employee> importEmp2List(MultipartFile file, List<Nation> allNations, List<PoliticsStatus> allPolitics, List<Department> allDeps, List<Position> allPos, List<JobLevel> allJobLevels) {
List<Employee> emps = new ArrayList<>();
try {
HSSFWorkbook workbook = new HSSFWorkbook(new POIFSFileSystem(file.getInputStream()));
int numberOfSheets = workbook.getNumberOfSheets();
for (int i = 0; i < numberOfSheets; i++) {
HSSFSheet sheet = workbook.getSheetAt(i);
int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
Employee employee;
for (int j = 0; j < physicalNumberOfRows; j++) {
if (j == 0) {
continue;//标题行
}
HSSFRow row = sheet.getRow(j);
if (row == null) {
continue;//没数据
}
int physicalNumberOfCells = row.getPhysicalNumberOfCells();
employee = new Employee();
for (int k = 0; k < physicalNumberOfCells; k++) {
HSSFCell cell = row.getCell(k);
switch (cell.getCellTypeEnum()) {
case STRING: {
String cellValue = cell.getStringCellValue();
if (cellValue == null) {
cellValue = "";
}
switch (k) {
case 1:
employee.setName(cellValue);
break;
case 2:
employee.setWorkID(cellValue);
break;
case 3:
employee.setGender(cellValue);
break;
case 5:
employee.setIdCard(cellValue);
break;
case 6:
employee.setWedlock(cellValue);
break;
case 7:
int nationIndex = allNations.indexOf(new Nation(cellValue));
employee.setNationId(allNations.get(nationIndex).getId());
break;
case 8:
employee.setNativePlace(cellValue);
break;
case 9:
int psIndex = allPolitics.indexOf(new PoliticsStatus(cellValue));
employee.setPoliticId(allPolitics.get(psIndex).getId());
break;
case 10:
employee.setPhone(cellValue);
break;
case 11:
employee.setAddress(cellValue);
break;
case 12:
int depIndex = allDeps.indexOf(new Department(cellValue));
employee.setDepartmentId(allDeps.get(depIndex).getId());
break;
case 13:
int jlIndex = allJobLevels.indexOf(new JobLevel(cellValue));
employee.setJobLevelId(allJobLevels.get(jlIndex).getId());
break;
case 14:
int posIndex = allPos.indexOf(new Position(cellValue));
employee.setPosId(allPos.get(posIndex).getId());
break;
case 15:
employee.setEngageForm(cellValue);
break;
case 16:
employee.setTiptopDegree(cellValue);
break;
case 17:
employee.setSpecialty(cellValue);
break;
case 18:
employee.setSchool(cellValue);
break;
case 19:
case 20:
employee.setWorkState(cellValue);
break;
case 21:
employee.setEmail(cellValue);
break;
}
}
break;
default: {
switch (k) {
case 4:
employee.setBirthday(cell.getDateCellValue());
break;
case 19:
employee.setBeginDate(cell.getDateCellValue());
break;
case 22:
employee.setContractTerm(cell.getNumericCellValue());
break;
case 23:
employee.setBeginContract(cell.getDateCellValue());
break;
case 24:
employee.setEndContract(cell.getDateCellValue());
break;
}
}
break;
}
}
emps.add(employee);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return emps;
}
}
......@@ -2,12 +2,15 @@ package org.sang.controller.emp;
import org.sang.bean.Employee;
import org.sang.bean.RespBean;
import org.sang.common.poi.PoiUtils;
import org.sang.service.DepartmentService;
import org.sang.service.EmpService;
import org.sang.service.JobLevelService;
import org.sang.service.PositionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.HashMap;
import java.util.List;
......@@ -72,10 +75,24 @@ public class EmpBasicController {
@RequestMapping(value = "/emp", method = RequestMethod.GET)
public Map<String, Object> getEmployeeByPage(@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "10") Integer size, @RequestParam(defaultValue = "") String keywords, Long politicId, Long nationId, Long posId, Long jobLevelId, String engageForm, Long departmentId, String beginDateScope) {
Map<String, Object> map = new HashMap<>();
List<Employee> employeeByPage = empService.getEmployeeByPage(page, size, keywords,politicId,nationId,posId,jobLevelId,engageForm,departmentId,beginDateScope);
Long count = empService.getCountByKeywords(keywords,politicId,nationId,posId,jobLevelId,engageForm,departmentId,beginDateScope);
List<Employee> employeeByPage = empService.getEmployeeByPage(page, size, keywords, politicId, nationId, posId, jobLevelId, engageForm, departmentId, beginDateScope);
Long count = empService.getCountByKeywords(keywords, politicId, nationId, posId, jobLevelId, engageForm, departmentId, beginDateScope);
map.put("emps", employeeByPage);
map.put("count", count);
return map;
}
@RequestMapping(value = "/exportEmp", method = RequestMethod.GET)
public ResponseEntity<byte[]> exportEmp() {
return PoiUtils.exportEmp2Excel(empService.getAllEmployees());
}
@RequestMapping(value = "/importEmp", method = RequestMethod.POST)
public RespBean importEmp(MultipartFile file) {
List<Employee> emps = PoiUtils.importEmp2List(file,empService.getAllNations(),empService.getAllPolitics(),departmentService.getAllDeps(),positionService.getAllPos(),jobLevelService.getAllJobLevels());
if (empService.addEmps(emps) == emps.size()) {
return new RespBean("success", "导入成功!");
}
return new RespBean("error", "导入失败!");
}
}
package org.sang.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.sang.bean.Department;
......@@ -9,7 +8,6 @@ import java.util.List;
/**
* Created by sang on 2018/1/7.
*/
@Mapper
public interface DepartmentMapper {
void addDep(@Param("dep") Department department);
......
package org.sang.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.sang.bean.Employee;
import org.sang.bean.Nation;
......@@ -12,7 +11,6 @@ import java.util.List;
/**
* Created by sang on 2018/1/12.
*/
@Mapper
public interface EmpMapper {
List<Nation> getAllNations();
......@@ -22,11 +20,13 @@ public interface EmpMapper {
Long getMaxId();
List<Employee> getEmployeeByPage(@Param("start") int start, @Param("size") Integer size, @Param("keywords") String keywords, @Param("politicId") Long politicId, @Param("nationId") Long nationId, @Param("posId") Long posId, @Param("jobLevelId") Long jobLevelId, @Param("engageForm") String engageForm, @Param("departmentId")Long departmentId, @Param("startBeginDate") Date startBeginDate, @Param("endBeginDate") Date endBeginDate);
List<Employee> getEmployeeByPage(@Param("start") Integer start, @Param("size") Integer size, @Param("keywords") String keywords, @Param("politicId") Long politicId, @Param("nationId") Long nationId, @Param("posId") Long posId, @Param("jobLevelId") Long jobLevelId, @Param("engageForm") String engageForm, @Param("departmentId")Long departmentId, @Param("startBeginDate") Date startBeginDate, @Param("endBeginDate") Date endBeginDate);
Long getCountByKeywords(@Param("keywords") String keywords, @Param("politicId") Long politicId, @Param("nationId") Long nationId, @Param("posId") Long posId, @Param("jobLevelId") Long jobLevelId, @Param("engageForm") String engageForm, @Param("departmentId")Long departmentId, @Param("startBeginDate") Date startBeginDate, @Param("endBeginDate") Date endBeginDate);
int updateEmp(@Param("emp") Employee employee);
int deleteEmpById(@Param("ids") String[] ids);
int addEmps(@Param("emps") List<Employee> emps);
}
......@@ -112,7 +112,9 @@
<if test="startBeginDate!=null and endBeginDate!=null">
AND e.beginDate BETWEEN #{startBeginDate} AND #{endBeginDate}
</if>
order by e.id limit #{start},#{size}
<if test="start!=null and size!=null">
order by e.id limit #{start},#{size}
</if>
</select>
<select id="getCountByKeywords" resultType="Long">
SELECT count(*) FROM employee e WHERE e.name LIKE concat('%',#{keywords},'%')
......@@ -225,4 +227,30 @@
#{id}
</foreach>
</delete>
<insert id="addEmps">
insert into employee (name, gender,
birthday, idCard, wedlock, nationId,
nativePlace, politicId, email,
phone, address, departmentId,
jobLevelId, posId, engageForm,
tiptopDegree, specialty, school,
beginDate,workID,
contractTerm, conversionTime,
beginContract, endContract, workAge
)
values
<foreach collection="emps" item="emp" separator=",">
(#{emp.name,jdbcType=VARCHAR}, #{emp.gender,jdbcType=CHAR},
#{emp.birthday,jdbcType=DATE}, #{emp.idCard,jdbcType=CHAR}, #{emp.wedlock,jdbcType=CHAR}, #{emp.nationId,jdbcType=BIGINT},
#{emp.nativePlace,jdbcType=VARCHAR}, #{emp.politicId,jdbcType=BIGINT}, #{emp.email,jdbcType=VARCHAR},
#{emp.phone,jdbcType=VARCHAR}, #{emp.address,jdbcType=VARCHAR}, #{emp.departmentId,jdbcType=BIGINT},
#{emp.jobLevelId,jdbcType=BIGINT}, #{emp.posId,jdbcType=BIGINT}, #{emp.engageForm,jdbcType=VARCHAR},
#{emp.tiptopDegree,jdbcType=VARCHAR}, #{emp.specialty,jdbcType=VARCHAR}, #{emp.school,jdbcType=VARCHAR},
#{emp.beginDate,jdbcType=DATE},#{emp.workID,jdbcType=BIGINT},
#{emp.contractTerm,jdbcType=BIGINT}, #{emp.conversionTime,jdbcType=DATE},
#{emp.beginContract,jdbcType=DATE}, #{emp.endContract,jdbcType=DATE}, #{emp.workAge,jdbcType=INTEGER}
)
</foreach>
</insert>
</mapper>
\ No newline at end of file
package org.sang.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.sang.bean.Hr;
import org.sang.bean.Role;
......@@ -10,7 +9,6 @@ import java.util.List;
/**
* Created by sang on 2017/12/28.
*/
@Mapper
public interface HrMapper {
Hr loadUserByUsername(String username);
......
package org.sang.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.sang.bean.JobLevel;
......@@ -9,7 +8,6 @@ import java.util.List;
/**
* Created by sang on 2018/1/11.
*/
@Mapper
public interface JobLevelMapper {
JobLevel getJobLevelByName(String name);
......
package org.sang.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.sang.bean.Menu;
import java.util.List;
......@@ -8,7 +7,6 @@ import java.util.List;
/**
* Created by sang on 2017/12/28.
*/
@Mapper
public interface MenuMapper {
List<Menu> getAllMenu();
......
package org.sang.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* Created by sang on 2018/1/2.
*/
@Mapper
public interface MenuRoleMapper {
int deleteMenuByRid(@Param("rid") Long rid);
......
package org.sang.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.sang.bean.Position;
......@@ -9,7 +8,6 @@ import java.util.List;
/**
* Created by sang on 2018/1/10.
*/
@Mapper
public interface PositionMapper {
int addPos(@Param("pos") Position pos);
......
package org.sang.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.sang.bean.Role;
......@@ -9,7 +8,6 @@ import java.util.List;
/**
* Created by sang on 2018/1/1.
*/
@Mapper
public interface RoleMapper {
List<Role> roles();
......
package org.sang.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* Created by sang on 2017/12/29.
*/
@Mapper
public interface SystemMapper {
}
......@@ -74,7 +74,7 @@ public class EmpService {
} catch (ParseException e) {
}
}
return empMapper.getCountByKeywords(keywords,politicId, nationId, posId, jobLevelId, engageForm, departmentId, startBeginDate, endBeginDate);
return empMapper.getCountByKeywords(keywords, politicId, nationId, posId, jobLevelId, engageForm, departmentId, startBeginDate, endBeginDate);
}
public int updateEmp(Employee employee) {
......@@ -89,4 +89,12 @@ public class EmpService {
String[] split = ids.split(",");
return empMapper.deleteEmpById(split) == split.length;
}
public List<Employee> getAllEmployees() {
return empMapper.getEmployeeByPage(null, null, "", null, null, null, null, null, null, null, null);
}
public int addEmps(List<Employee> emps) {
return empMapper.addEmps(emps);
}
}
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>微人事</title><link href=/static/css/app.f2615d5e193d755da4ecf8e1fb3dab07.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.fe6408fbd2caed888c83.js></script><script type=text/javascript src=/static/js/vendor.59f7a0d2e440c37c0dac.js></script><script type=text/javascript src=/static/js/app.c9854a01d31fe48e8754.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>微人事</title><link href=/static/css/app.f2615d5e193d755da4ecf8e1fb3dab07.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.be68f676a39fdca2f847.js></script><script type=text/javascript src=/static/js/vendor.59f7a0d2e440c37c0dac.js></script><script type=text/javascript src=/static/js/app.c9854a01d31fe48e8754.js></script></body></html>
\ No newline at end of file
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var f,i,u,d=0,s=[];d<r.length;d++)i=r[d],t[i]&&s.push(t[i][0]),t[i]=0;for(f in c)Object.prototype.hasOwnProperty.call(c,f)&&(e[f]=c[f]);for(n&&n(r,c,a);s.length;)s.shift()();if(a)for(d=0;d<a.length;d++)u=o(o.s=a[d]);return u};var r={},t={8:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"640867a38d24e068d708",1:"86ac68dee683d077f76d",2:"9ff52b878e2c6af33db4",3:"f2af1e5f79c4750ed876",4:"b25d67ddc90d6ac44980",5:"0ee19f289a67c8d0f095",6:"59f7a0d2e440c37c0dac",7:"c9854a01d31fe48e8754"}[e]+".js";var f=setTimeout(i,12e4);a.onerror=a.onload=i;function i(){a.onerror=a.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="/",o.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.fe6408fbd2caed888c83.js.map
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var f,i,u,d=0,s=[];d<r.length;d++)i=r[d],t[i]&&s.push(t[i][0]),t[i]=0;for(f in c)Object.prototype.hasOwnProperty.call(c,f)&&(e[f]=c[f]);for(n&&n(r,c,a);s.length;)s.shift()();if(a)for(d=0;d<a.length;d++)u=o(o.s=a[d]);return u};var r={},t={8:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"6e1eaf951e3884240641",1:"86ac68dee683d077f76d",2:"9ff52b878e2c6af33db4",3:"f2af1e5f79c4750ed876",4:"b25d67ddc90d6ac44980",5:"6839c3dc451135a281ba",6:"59f7a0d2e440c37c0dac",7:"c9854a01d31fe48e8754"}[e]+".js";var f=setTimeout(i,12e4);a.onerror=a.onload=i;function i(){a.onerror=a.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="/",o.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.be68f676a39fdca2f847.js.map
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap 25a511294d1acc9aeef7"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","8","exports","module","l","e","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","script","createElement","type","charset","async","timeout","nc","setAttribute","src","p","0","1","2","3","4","5","6","7","setTimeout","onScriptComplete","onerror","onload","clearTimeout","chunk","Error","undefined","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAA,SAAApB,GACA,IAAAqB,EAAAhB,EAAAL,GACA,OAAAqB,EACA,WAAAC,QAAA,SAAAC,GAA0CA,MAI1C,GAAAF,EACA,OAAAA,EAAA,GAIA,IAAAG,EAAA,IAAAF,QAAA,SAAAC,EAAAE,GACAJ,EAAAhB,EAAAL,IAAAuB,EAAAE,KAEAJ,EAAA,GAAAG,EAGA,IAAAE,EAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,UACAD,EAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EACAJ,EAAAK,QAAA,KAEArB,EAAAsB,IACAN,EAAAO,aAAA,QAAAvB,EAAAsB,IAEAN,EAAAQ,IAAAxB,EAAAyB,EAAA,aAAAtC,EAAA,KAAwEuC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,wBAAwN9C,GAAA,MAChS,IAAAkC,EAAAa,WAAAC,EAAA,MACAnB,EAAAoB,QAAApB,EAAAqB,OAAAF,EACA,SAAAA,IAEAnB,EAAAoB,QAAApB,EAAAqB,OAAA,KACAC,aAAAjB,GACA,IAAAkB,EAAA/C,EAAAL,GACA,IAAAoD,IACAA,GACAA,EAAA,OAAAC,MAAA,iBAAArD,EAAA,aAEAK,EAAAL,QAAAsD,GAKA,OAFA5B,EAAA6B,YAAA1B,GAEAL,GAIAX,EAAA2C,EAAA7C,EAGAE,EAAA4C,EAAA1C,EAGAF,EAAA6C,EAAA,SAAAzC,EAAA0C,EAAAC,GACA/C,EAAAgD,EAAA5C,EAAA0C,IACApD,OAAAuD,eAAA7C,EAAA0C,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMA/C,EAAAqD,EAAA,SAAAhD,GACA,IAAA0C,EAAA1C,KAAAiD,WACA,WAA2B,OAAAjD,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAA6C,EAAAE,EAAA,IAAAA,GACAA,GAIA/C,EAAAgD,EAAA,SAAAO,EAAAC,GAAsD,OAAA9D,OAAAC,UAAAC,eAAAC,KAAA0D,EAAAC,IAGtDxD,EAAAyB,EAAA,IAGAzB,EAAAyD,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.fe6408fbd2caed888c83.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t8: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"640867a38d24e068d708\",\"1\":\"86ac68dee683d077f76d\",\"2\":\"9ff52b878e2c6af33db4\",\"3\":\"f2af1e5f79c4750ed876\",\"4\":\"b25d67ddc90d6ac44980\",\"5\":\"0ee19f289a67c8d0f095\",\"6\":\"59f7a0d2e440c37c0dac\",\"7\":\"c9854a01d31fe48e8754\"}[chunkId] + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 25a511294d1acc9aeef7"],"sourceRoot":""}
\ No newline at end of file
{"version":3,"sources":["webpack:///webpack/bootstrap 8d82b403e8dc34969c27"],"names":["parentJsonpFunction","window","chunkIds","moreModules","executeModules","moduleId","chunkId","result","i","resolves","length","installedChunks","push","Object","prototype","hasOwnProperty","call","modules","shift","__webpack_require__","s","installedModules","8","exports","module","l","e","installedChunkData","Promise","resolve","promise","reject","head","document","getElementsByTagName","script","createElement","type","charset","async","timeout","nc","setAttribute","src","p","0","1","2","3","4","5","6","7","setTimeout","onScriptComplete","onerror","onload","clearTimeout","chunk","Error","undefined","appendChild","m","c","d","name","getter","o","defineProperty","configurable","enumerable","get","n","__esModule","object","property","oe","err","console","error"],"mappings":"aACA,IAAAA,EAAAC,OAAA,aACAA,OAAA,sBAAAC,EAAAC,EAAAC,GAIA,IADA,IAAAC,EAAAC,EAAAC,EAAAC,EAAA,EAAAC,KACQD,EAAAN,EAAAQ,OAAoBF,IAC5BF,EAAAJ,EAAAM,GACAG,EAAAL,IACAG,EAAAG,KAAAD,EAAAL,GAAA,IAEAK,EAAAL,GAAA,EAEA,IAAAD,KAAAF,EACAU,OAAAC,UAAAC,eAAAC,KAAAb,EAAAE,KACAY,EAAAZ,GAAAF,EAAAE,IAIA,IADAL,KAAAE,EAAAC,EAAAC,GACAK,EAAAC,QACAD,EAAAS,OAAAT,GAEA,GAAAL,EACA,IAAAI,EAAA,EAAYA,EAAAJ,EAAAM,OAA2BF,IACvCD,EAAAY,IAAAC,EAAAhB,EAAAI,IAGA,OAAAD,GAIA,IAAAc,KAGAV,GACAW,EAAA,GAIA,SAAAH,EAAAd,GAGA,GAAAgB,EAAAhB,GACA,OAAAgB,EAAAhB,GAAAkB,QAGA,IAAAC,EAAAH,EAAAhB,IACAG,EAAAH,EACAoB,GAAA,EACAF,YAUA,OANAN,EAAAZ,GAAAW,KAAAQ,EAAAD,QAAAC,IAAAD,QAAAJ,GAGAK,EAAAC,GAAA,EAGAD,EAAAD,QAKAJ,EAAAO,EAAA,SAAApB,GACA,IAAAqB,EAAAhB,EAAAL,GACA,OAAAqB,EACA,WAAAC,QAAA,SAAAC,GAA0CA,MAI1C,GAAAF,EACA,OAAAA,EAAA,GAIA,IAAAG,EAAA,IAAAF,QAAA,SAAAC,EAAAE,GACAJ,EAAAhB,EAAAL,IAAAuB,EAAAE,KAEAJ,EAAA,GAAAG,EAGA,IAAAE,EAAAC,SAAAC,qBAAA,WACAC,EAAAF,SAAAG,cAAA,UACAD,EAAAE,KAAA,kBACAF,EAAAG,QAAA,QACAH,EAAAI,OAAA,EACAJ,EAAAK,QAAA,KAEArB,EAAAsB,IACAN,EAAAO,aAAA,QAAAvB,EAAAsB,IAEAN,EAAAQ,IAAAxB,EAAAyB,EAAA,aAAAtC,EAAA,KAAwEuC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,uBAAAC,EAAA,wBAAwN9C,GAAA,MAChS,IAAAkC,EAAAa,WAAAC,EAAA,MACAnB,EAAAoB,QAAApB,EAAAqB,OAAAF,EACA,SAAAA,IAEAnB,EAAAoB,QAAApB,EAAAqB,OAAA,KACAC,aAAAjB,GACA,IAAAkB,EAAA/C,EAAAL,GACA,IAAAoD,IACAA,GACAA,EAAA,OAAAC,MAAA,iBAAArD,EAAA,aAEAK,EAAAL,QAAAsD,GAKA,OAFA5B,EAAA6B,YAAA1B,GAEAL,GAIAX,EAAA2C,EAAA7C,EAGAE,EAAA4C,EAAA1C,EAGAF,EAAA6C,EAAA,SAAAzC,EAAA0C,EAAAC,GACA/C,EAAAgD,EAAA5C,EAAA0C,IACApD,OAAAuD,eAAA7C,EAAA0C,GACAI,cAAA,EACAC,YAAA,EACAC,IAAAL,KAMA/C,EAAAqD,EAAA,SAAAhD,GACA,IAAA0C,EAAA1C,KAAAiD,WACA,WAA2B,OAAAjD,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAL,EAAA6C,EAAAE,EAAA,IAAAA,GACAA,GAIA/C,EAAAgD,EAAA,SAAAO,EAAAC,GAAsD,OAAA9D,OAAAC,UAAAC,eAAAC,KAAA0D,EAAAC,IAGtDxD,EAAAyB,EAAA,IAGAzB,EAAAyD,GAAA,SAAAC,GAA8D,MAApBC,QAAAC,MAAAF,GAAoBA","file":"static/js/manifest.be68f676a39fdca2f847.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t8: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData === 0) {\n \t\t\treturn new Promise(function(resolve) { resolve(); });\n \t\t}\n\n \t\t// a Promise means \"currently loading\".\n \t\tif(installedChunkData) {\n \t\t\treturn installedChunkData[2];\n \t\t}\n\n \t\t// setup Promise in chunk cache\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\tinstalledChunkData[2] = promise;\n\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tif (__webpack_require__.nc) {\n \t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t}\n \t\tscript.src = __webpack_require__.p + \"static/js/\" + chunkId + \".\" + {\"0\":\"6e1eaf951e3884240641\",\"1\":\"86ac68dee683d077f76d\",\"2\":\"9ff52b878e2c6af33db4\",\"3\":\"f2af1e5f79c4750ed876\",\"4\":\"b25d67ddc90d6ac44980\",\"5\":\"6839c3dc451135a281ba\",\"6\":\"59f7a0d2e440c37c0dac\",\"7\":\"c9854a01d31fe48e8754\"}[chunkId] + \".js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) {\n \t\t\t\t\tchunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\t}\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\treturn promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 8d82b403e8dc34969c27"],"sourceRoot":""}
\ No newline at end of file
......@@ -22,10 +22,26 @@
style="margin-right: 5px"></i>高级搜索
</el-button>
</div>
<el-button type="primary" size="mini" style="margin-left: 5px;margin-right: 20px" icon="el-icon-plus"
@click="showAddEmpView">
添加员工
</el-button>
<div style="margin-left: 5px;margin-right: 20px;display: inline">
<el-upload
:show-file-list="false"
accept="application/vnd.ms-excel"
action="/emp/basic/importEmp"
:on-success="fileUploadSuccess"
:on-error="fileUploadError" :disabled="fileUploadBtnText=='正在导入'"
:before-upload="beforeFileUpload" style="display: inline">
<el-button size="mini" type="success" :loading="fileUploadBtnText=='正在导入'"><i class="fa fa-lg fa-level-up"
style="margin-right: 5px"></i>{{fileUploadBtnText}}
</el-button>
</el-upload>
<el-button type="success" size="mini" @click="exportEmps"><i class="fa fa-lg fa-level-down"
style="margin-right: 5px"></i>导出数据
</el-button>
<el-button type="primary" size="mini" icon="el-icon-plus"
@click="showAddEmpView">
添加员工
</el-button>
</div>
</el-header>
<el-main style="padding-left: 0px;padding-top: 0px">
<div>
......@@ -586,6 +602,7 @@
return {
emps: [],
keywords: '',
fileUploadBtnText: '导入数据',
beginDateScope: '',
faangledoubleup: 'fa-angle-double-up',
faangledoubledown: 'fa-angle-double-down',
......@@ -687,6 +704,30 @@
this.loadEmps();
},
methods: {
fileUploadSuccess(response, file, fileList){
if (response) {
this.$message({type: response.status, message: response.msg});
}
this.loadEmps();
this.fileUploadBtnText = '导入数据';
},
fileUploadError(err, file, fileList){
this.$message({type: 'error', message: "导入失败!"});
this.fileUploadBtnText = '导入数据';
},
beforeFileUpload(file){
this.fileUploadBtnText = '正在导入';
},
exportEmps(){
// var iframe = document.createElement("iframe");
// iframe.style.display = 'none';
// iframe.src = "/emp/basic/exportEmp";
// iframe.onload=function () {
// document.body.removeChild(iframe);
// }
// document.body.appendChild(iframe);
window.open("/emp/basic/exportEmp", "_parent");
},
cancelSearch(){
this.advanceSearchViewVisible = false;
this.emptyEmpData();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册