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

增加了职位管理与职称管理

上级 d34fae00
package org.sang.bean;
import java.sql.Timestamp;
/**
* Created by sang on 2018/1/11.
*/
public class JobLevel {
private Long id;
private String name;
private String titleLevel;
private Timestamp createDate;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTitleLevel() {
return titleLevel;
}
public void setTitleLevel(String titleLevel) {
this.titleLevel = titleLevel;
}
public Timestamp getCreateDate() {
return createDate;
}
public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}
}
package org.sang.bean;
import java.sql.Timestamp;
/**
* Created by sang on 2018/1/10.
*/
public class Position {
private Long id;
private String name;
private Timestamp createDate;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Timestamp getCreateDate() {
return createDate;
}
public void setCreateDate(Timestamp createDate) {
this.createDate = createDate;
}
}
package org.sang.controller.system; package org.sang.controller.system;
import org.sang.bean.Department; import org.sang.bean.*;
import org.sang.bean.Menu; import org.sang.service.*;
import org.sang.bean.RespBean;
import org.sang.bean.Role;
import org.sang.service.DepartmentService;
import org.sang.service.MenuRoleService;
import org.sang.service.MenuService;
import org.sang.service.RoleService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
...@@ -32,6 +26,10 @@ public class SystemBasicController { ...@@ -32,6 +26,10 @@ public class SystemBasicController {
MenuRoleService menuRoleService; MenuRoleService menuRoleService;
@Autowired @Autowired
DepartmentService departmentService; DepartmentService departmentService;
@Autowired
PositionService positionService;
@Autowired
JobLevelService jobLevelService;
@RequestMapping(value = "/role/{rid}", method = RequestMethod.DELETE) @RequestMapping(value = "/role/{rid}", method = RequestMethod.DELETE)
public RespBean deleteRole(@PathVariable Long rid) { public RespBean deleteRole(@PathVariable Long rid) {
...@@ -73,7 +71,7 @@ public class SystemBasicController { ...@@ -73,7 +71,7 @@ public class SystemBasicController {
} }
@RequestMapping(value = "/dep", method = RequestMethod.POST) @RequestMapping(value = "/dep", method = RequestMethod.POST)
public Map<String,Object> addDep(Department department) { public Map<String, Object> addDep(Department department) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
if (departmentService.addDep(department) == 1) { if (departmentService.addDep(department) == 1) {
map.put("status", "success"); map.put("status", "success");
...@@ -93,13 +91,77 @@ public class SystemBasicController { ...@@ -93,13 +91,77 @@ public class SystemBasicController {
return new RespBean("error", "删除失败!"); return new RespBean("error", "删除失败!");
} }
@RequestMapping(value = "/dep/{pid}",method = RequestMethod.GET) @RequestMapping(value = "/dep/{pid}", method = RequestMethod.GET)
public List<Department> getDepByPid(@PathVariable Long pid) { public List<Department> getDepByPid(@PathVariable Long pid) {
return departmentService.getDepByPid(pid); return departmentService.getDepByPid(pid);
} }
@RequestMapping(value = "/deps",method = RequestMethod.GET) @RequestMapping(value = "/deps", method = RequestMethod.GET)
public List<Department> getAllDeps() { public List<Department> getAllDeps() {
return departmentService.getAllDeps(); return departmentService.getAllDeps();
} }
@RequestMapping(value = "/position", method = RequestMethod.POST)
public RespBean addPos(Position pos) {
int result = positionService.addPos(pos);
if (result == 1) {
return new RespBean("success", "添加成功!");
} else if (result == -1) {
return new RespBean("error", "职位名重复,添加失败!");
}
return new RespBean("error", "添加失败!");
}
@RequestMapping(value = "/positions", method = RequestMethod.GET)
public List<Position> getAllPos() {
return positionService.getAllPos();
}
@RequestMapping("/position/{pids}")
public RespBean deletePosById(@PathVariable String pids) {
if (positionService.deletePosById(pids)) {
return new RespBean("success", "删除成功!");
}
return new RespBean("error", "删除失败!");
}
@RequestMapping(value = "/position", method = RequestMethod.PUT)
public RespBean updatePosById(Position position) {
if (positionService.updatePosById(position) == 1) {
return new RespBean("success", "修改成功!");
}
return new RespBean("error", "修改失败!");
}
@RequestMapping(value = "/joblevel",method = RequestMethod.POST)
public RespBean addJobLevel(JobLevel jobLevel) {
int result = jobLevelService.addJobLevel(jobLevel);
if (result == 1) {
return new RespBean("success", "添加成功!");
} else if (result == -1) {
return new RespBean("error", "职称名重复,添加失败!");
}
return new RespBean("error", "添加失败!");
}
@RequestMapping(value = "/joblevels",method = RequestMethod.GET)
public List<JobLevel> getAllJobLevels() {
return jobLevelService.getAllJobLevels();
}
@RequestMapping(value = "/joblevel/{ids}",method = RequestMethod.DELETE)
public RespBean deleteJobLevelById(@PathVariable String ids) {
if (jobLevelService.deleteJobLevelById(ids)) {
return new RespBean("success", "删除成功!");
}
return new RespBean("error", "删除失败!");
}
@RequestMapping(value = "/joblevel",method = RequestMethod.PUT)
public RespBean updateJobLevel(JobLevel jobLevel) {
if (jobLevelService.updateJobLevel(jobLevel) == 1) {
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.JobLevel;
import java.util.List;
/**
* Created by sang on 2018/1/11.
*/
@Mapper
public interface JobLevelMapper {
JobLevel getJobLevelByName(String name);
int addJobLevel(@Param("jobLevel") JobLevel jobLevel);
List<JobLevel> getAllJobLevels();
int deleteJobLevelById(@Param("ids") String[] ids);
int updateJobLevel(@Param("jobLevel") JobLevel jobLevel);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.sang.mapper.JobLevelMapper">
<select id="getJobLevelByName" parameterType="string" resultType="org.sang.bean.JobLevel">
select * from joblevel WHERE name=#{name};
</select>
<insert id="addJobLevel" parameterType="org.sang.bean.JobLevel">
INSERT INTO joblevel SET name=#{jobLevel.name},titleLevel=#{jobLevel.titleLevel}
</insert>
<select id="getAllJobLevels" resultType="org.sang.bean.JobLevel">
select * from joblevel WHERE enabled=true;
</select>
<delete id="deleteJobLevelById">
DELETE FROM joblevel WHERE id IN
<foreach collection="ids" item="id" close=")" open="(" separator=",">
#{id}
</foreach>
</delete>
<update id="updateJobLevel">
UPDATE joblevel
<set>
<if test="jobLevel.name!=null">
name=#{jobLevel.name},
</if>
<if test="jobLevel.titleLevel!=null">
titleLevel=#{jobLevel.titleLevel},
</if>
</set>
WHERE id=#{jobLevel.id}
</update>
</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.Position;
import java.util.List;
/**
* Created by sang on 2018/1/10.
*/
@Mapper
public interface PositionMapper {
int addPos(@Param("pos") Position pos);
Position getPosByName(String name);
List<Position> getAllPos();
int deletePosById(@Param("pids") String[] pids);
int updatePosById(@Param("pos") Position position);
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.sang.mapper.PositionMapper">
<insert id="addPos" parameterType="org.sang.bean.Position">
INSERT INTO position set name=#{pos.name}
</insert>
<select id="getPosByName" resultType="org.sang.bean.Position">
SELECT * FROM position WHERE name=#{name}
</select>
<select id="getAllPos" resultType="org.sang.bean.Position">
SELECT * FROM position WHERE enabled=true ORDER BY id;
</select>
<delete id="deletePosById">
DELETE FROM position WHERE id IN
<foreach collection="pids" item="pid" separator="," open="(" close=")">
#{pid}
</foreach>
</delete>
<update id="updatePosById">
UPDATE position set name=#{pos.name} WHERE id=#{pos.id}
</update>
</mapper>
\ No newline at end of file
package org.sang.service;
import org.sang.bean.JobLevel;
import org.sang.mapper.JobLevelMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* Created by sang on 2018/1/11.
*/
@Service
@Transactional
public class JobLevelService {
@Autowired
JobLevelMapper jobLevelMapper;
public int addJobLevel(JobLevel jobLevel) {
if (jobLevelMapper.getJobLevelByName(jobLevel.getName()) != null) {
return -1;
}
return jobLevelMapper.addJobLevel(jobLevel);
}
public List<JobLevel> getAllJobLevels() {
return jobLevelMapper.getAllJobLevels();
}
public boolean deleteJobLevelById(String ids) {
String[] split = ids.split(",");
return jobLevelMapper.deleteJobLevelById(split) == split.length;
}
public int updateJobLevel(JobLevel jobLevel) {
return jobLevelMapper.updateJobLevel(jobLevel);
}
}
package org.sang.service;
import org.sang.bean.JobLevel;
import org.sang.bean.Position;
import org.sang.mapper.PositionMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* Created by sang on 2018/1/10.
*/
@Service
@Transactional
public class PositionService {
@Autowired
PositionMapper positionMapper;
public int addPos(Position pos) {
if (positionMapper.getPosByName(pos.getName()) != null) {
return -1;
}
return positionMapper.addPos(pos);
}
public List<Position> getAllPos() {
return positionMapper.getAllPos();
}
public boolean deletePosById(String pids) {
String[] split = pids.split(",");
return positionMapper.deletePosById(split) == split.length;
}
public int updatePosById(Position position) {
return positionMapper.updatePosById(position);
}
}
<!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.363128df4d9f785782cc853515db018c.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.6a421ea0ecff5b05d027.js></script><script type=text/javascript src=/static/js/vendor.59f7a0d2e440c37c0dac.js></script><script type=text/javascript src=/static/js/app.59c317cd795b42477f9c.js></script></body></html> <!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.363128df4d9f785782cc853515db018c.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.36f620a93237261123f0.js></script><script type=text/javascript src=/static/js/vendor.59f7a0d2e440c37c0dac.js></script><script type=text/javascript src=/static/js/app.dfa620b6af45f973da76.js></script></body></html>
\ No newline at end of file \ No newline at end of file
webpackJsonp([1],{"/LNZ":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("h1",[this._v("职位管理")])])}]},a=n("VU/8")(null,s,!1,null,null,null);t.default=a.exports},"5xQo":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("h1",[this._v("奖惩规则")])])}]},a=n("VU/8")(null,s,!1,null,null,null);t.default=a.exports},"9bBU":function(e,t,n){n("mClu");var s=n("FeBl").Object;e.exports=function(e,t,n){return s.defineProperty(e,t,n)}},C4MV:function(e,t,n){e.exports={default:n("9bBU"),__esModule:!0}},FvOz:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=n("bOdI"),a=n.n(s),i={data:function(){return{keywords:"",depName:"",treeLoading:!1,dialogVisible:!1,allDeps:[],pDep:"",treeData:[],defaultProps:{label:"name",isLeaf:"leaf",children:"children"}}},mounted:function(){this.treeLoading=!0,this.loadTreeData()},watch:{keywords:function(e){this.$refs.tree.filter(e)}},methods:{filterNode:function(e,t){return!e||-1!==t.name.indexOf(e)},loadTreeData:function(){var e=this;this.getRequest("/system/basic/dep/-1").then(function(t){e.treeLoading=!1,t&&200==t.status&&(e.treeData=t.data)})},setDataToTree:function(e,t,n){for(var s=0;s<e.length;s++){var a=e[s];if(a.id==t)return void(e[s].children=e[s].children.concat(n));this.setDataToTree(a.children,t,n)}},addDep:function(){var e=this;this.dialogVisible=!1,this.treeLoading=!0,this.postRequest("/system/basic/dep",{name:this.depName,parentId:this.pDep}).then(function(t){if(e.treeLoading=!1,t&&200==t.status){var n=t.data;e.depName="",e.$message({type:n.status,message:"添加成功!"}),e.setDataToTree(e.treeData,e.pDep,n.msg)}})},loadAllDeps:function(){var e=this;this.getRequest("/system/basic/deps").then(function(t){t&&200==t.status&&(e.allDeps=t.data)})},showAddDepView:function(e,t){this.loadAllDeps(),this.dialogVisible=!0,this.pDep=e.id,t.stopPropagation()},deleteDep:function(e,t){var n=this;e.children.length>0?this.$message({message:"该部门下尚有其他部门,不能被删除!",type:"warning"}):this.$confirm("删除["+e.name+"]部门, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){n.treeLoading=!0,n.deleteRequest("/system/basic/dep/"+e.id).then(function(t){if(n.treeLoading=!1,t&&200==t.status){var s=t.data;n.$message({message:s.msg,type:s.status}),n.deleteLocalDep(n.treeData,e)}})}).catch(function(){n.$message({type:"info",message:"已取消删除"})}),t.stopPropagation()},deleteLocalDep:function(e,t){for(var n=0;n<e.length;n++){var s=e[n];if(s.id==t.id)return void e.splice(n,1);this.deleteLocalDep(s.children,t)}},renderContent:function(e,t){var n,s,i=this,l=t.node,r=t.data;t.store;return e("span",{style:"flex: 1; display: flex; align-items: center; justify-content: space-between; font-size: 14px; padding-right: 8px;"},[e("span",null,[e("span",null,[l.label])]),e("span",null,[e("el-button",(n={style:"font-size: 12px;",attrs:{type:"primary",size:"mini"}},a()(n,"style","padding:3px"),a()(n,"on",{click:function(){return i.showAddDepView(r,event)}}),n),["添加部门"]),e("el-button",(s={style:"font-size: 12px;",attrs:{type:"danger",size:"mini"}},a()(s,"style","padding:3px"),a()(s,"on",{click:function(){return i.deleteDep(r,event)}}),s),["删除部门"])])])}}},l={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{staticStyle:{"text-align":"left"}},[n("el-input",{staticStyle:{width:"500px",margin:"0px",padding:"0px"},attrs:{placeholder:"输入部门名称搜索部门...",size:"mini","prefix-icon":"el-icon-search"},model:{value:e.keywords,callback:function(t){e.keywords=t},expression:"keywords"}})],1),e._v(" "),n("div",[n("el-tree",{directives:[{name:"loading",rawName:"v-loading",value:e.treeLoading,expression:"treeLoading"}],ref:"tree",staticStyle:{width:"500px","margin-top":"10px"},attrs:{props:e.defaultProps,data:e.treeData,"filter-node-method":e.filterNode,"render-content":e.renderContent}}),e._v(" "),n("div",{staticStyle:{"text-align":"left"}},[n("el-dialog",{attrs:{title:"添加部门",visible:e.dialogVisible,width:"25%"},on:{"update:visible":function(t){e.dialogVisible=t}}},[n("div",[n("span",[e._v("上级部门")]),e._v(" "),n("el-select",{staticStyle:{width:"200px"},attrs:{placeholder:"请选择",size:"mini"},model:{value:e.pDep,callback:function(t){e.pDep=t},expression:"pDep"}},e._l(e.allDeps,function(e){return n("el-option",{key:e.id,attrs:{label:e.name,value:e.id}})}))],1),e._v(" "),n("div",{staticStyle:{"margin-top":"10px"}},[n("span",[e._v("部门名称")]),e._v(" "),n("el-input",{staticStyle:{width:"200px"},attrs:{size:"mini",placeholder:"请输入部门名称..."},model:{value:e.depName,callback:function(t){e.depName=t},expression:"depName"}})],1),e._v(" "),n("span",{staticClass:"dialog-footer",attrs:{slot:"footer"},slot:"footer"},[n("el-button",{attrs:{size:"small"},on:{click:function(t){e.dialogVisible=!1}}},[e._v("取消")]),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary"},on:{click:e.addDep}},[e._v("添加")])],1)])],1)],1)])},staticRenderFns:[]},r=n("VU/8")(i,l,!1,null,null,null);t.default=r.exports},LJAE:function(e,t,n){var s={"./SysBasic.vue":"fc7a","./SysCfg.vue":"ubks","./SysData.vue":"UK/j","./SysHr.vue":"ewEk","./SysInit.vue":"agXO","./SysLog.vue":"ZDkW","./basic/DepMana.vue":"FvOz","./basic/ECMana.vue":"5xQo","./basic/JobTitleMana.vue":"c98W","./basic/MenuRole.vue":"eLaH","./basic/PosMana.vue":"/LNZ"};function a(e){return n(i(e))}function i(e){var t=s[e];if(!(t+1))throw new Error("Cannot find module '"+e+"'.");return t}a.keys=function(){return Object.keys(s)},a.resolve=i,e.exports=a,a.id="LJAE"},NQUc:function(e,t){},"UK/j":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("h1",[this._v("\n 备份恢复数据库\n ")])])}]},a=n("VU/8")(null,s,!1,null,null,null);t.default=a.exports},ZDkW:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("h1",[this._v("\n 操作日志管理\n ")])])}]},a=n("VU/8")(null,s,!1,null,null,null);t.default=a.exports},agXO:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("h1",[this._v("\n 初始化数据库\n ")])])}]},a=n("VU/8")(null,s,!1,null,null,null);t.default=a.exports},bOdI:function(e,t,n){"use strict";t.__esModule=!0;var s,a=n("C4MV"),i=(s=a,s&&s.__esModule?s:{default:s});t.default=function(e,t,n){return t in e?(0,i.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},c98W:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("h1",[this._v("职称管理")])])}]},a=n("VU/8")(null,s,!1,null,null,null);t.default=a.exports},eLaH:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=n("oAV5"),a={mounted:function(){this.loading=!0,this.initRoles()},methods:{deleteRole:function(e,t){var n=this;this.$confirm("删除角色["+t+"], 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){n.loading=!0,n.deleteRequest("/system/basic/role/"+e).then(function(e){if(e&&200==e.status){var t=e.data;n.$message({type:t.status,message:t.msg}),n.initRoles()}else n.loading=!1})}).catch(function(){n.$message({type:"info",message:"已取消删除"})})},addNewRole:function(){if(Object(s.b)(this.newRole,this.newRoleZh)){this.loading=!0;var e=this;this.postRequest("/system/basic/addRole",{role:this.newRole,roleZh:this.newRoleZh}).then(function(t){if(t&&200==t.status){var n=t.data;e.$message({type:n.status,message:n.msg}),e.initRoles(),e.newRole="",e.newRoleZh=""}else e.loading=!1})}},updateRoleMenu:function(e){var t=this.$refs.tree[e].getCheckedKeys(!0),n=this;this.putRequest("/system/basic/updateMenuRole",{rid:this.activeColItem,mids:t}).then(function(e){if(e&&200==e.status){var t=e.data;n.$message({type:t.status,message:t.msg}),n.activeColItem=-1}})},collapseChange:function(e){if(""!=e){var t=this;this.getRequest("/system/basic/menuTree/"+e).then(function(e){if(e&&200==e.status){var n=e.data;t.treeData=n.menus,t.checkedKeys=n.mids}})}},handleCheckChange:function(e,t,n){},initRoles:function(){var e=this;this.getRequest("/system/basic/roles").then(function(t){e.loading=!1,t&&200==t.status&&(e.roles=t.data,e.activeColItem=-1)})},cancelUpdateRoleMenu:function(){this.activeColItem=-1}},data:function(){return{props:{label:"name",children:"children"},newRole:"",newRoleZh:"",roles:[],treeData:[],checkedKeys:[],loading:!1,activeColItem:-1}}},i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticStyle:{"text-align":"left"}},[n("el-input",{staticStyle:{width:"250px"},attrs:{placeholder:"请输入角色英文名称...",size:"mini"},model:{value:e.newRole,callback:function(t){e.newRole=t},expression:"newRole"}},[n("template",{slot:"prepend"},[e._v("ROLE_")])],2),e._v(" "),n("el-input",{staticStyle:{width:"250px"},attrs:{placeholder:"请输入角色中文名称...",size:"mini"},model:{value:e.newRoleZh,callback:function(t){e.newRoleZh=t},expression:"newRoleZh"}}),e._v(" "),n("el-button",{staticStyle:{"margin-left":"5px"},attrs:{type:"primary",size:"mini"},on:{click:e.addNewRole}},[e._v("添加角色")])],1),e._v(" "),n("div",{staticStyle:{"margin-top":"10px","text-align":"left"}},[n("el-collapse",{staticStyle:{width:"500px"},attrs:{accordion:""},on:{change:e.collapseChange},model:{value:e.activeColItem,callback:function(t){e.activeColItem=t},expression:"activeColItem"}},e._l(e.roles,function(t,s){return n("el-collapse-item",{key:t.name,attrs:{title:t.nameZh,name:t.id}},[n("el-card",{staticClass:"box-card"},[n("div",{attrs:{slot:"header"},slot:"header"},[n("span",[e._v("可访问的资源")]),e._v(" "),n("el-button",{staticStyle:{color:"#f6061b",margin:"0px",float:"right",padding:"3px 0",width:"15px",height:"15px"},attrs:{type:"text",icon:"el-icon-delete"},on:{click:function(n){e.deleteRole(t.id,t.nameZh)}}})],1),e._v(" "),n("div",[n("el-tree",{key:t.id,ref:"tree",refInFor:!0,attrs:{props:e.props,data:e.treeData,"default-checked-keys":e.checkedKeys,"node-key":"id","show-checkbox":"","highlight-current":""},on:{"check-change":e.handleCheckChange}})],1),e._v(" "),n("div",{staticStyle:{display:"flex","justify-content":"flex-end","margin-right":"10px"}},[n("el-button",{attrs:{size:"mini"},on:{click:e.cancelUpdateRoleMenu}},[e._v("取消修改")]),e._v(" "),n("el-button",{attrs:{type:"primary",size:"mini"},on:{click:function(t){e.updateRoleMenu(s)}}},[e._v("确认修改")])],1)])],1)}))],1)])},staticRenderFns:[]},l=n("VU/8")(a,i,!1,null,null,null);t.default=l.exports},ewEk:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={data:function(){return{keywords:"",fullloading:!1,hrs:[],cardLoading:[],eploading:[],allRoles:[],moreBtnState:!1,selRoles:[],selRolesBak:[]}},mounted:function(){this.initCards(),this.loadAllRoles()},methods:{searchClick:function(){this.initCards(),this.loadAllRoles()},updateHrRoles:function(e,t){this.moreBtnState=!1;var n=this;if(this.selRolesBak.length==this.selRoles.length){for(var s=0;s<this.selRoles.length;s++)for(var a=0;a<this.selRolesBak.length;a++)if(this.selRoles[s]==this.selRolesBak[a]){this.selRolesBak.splice(a,1);break}if(0==this.selRolesBak.length)return}this.eploading.splice(t,1,!0),this.putRequest("/system/hr/roles",{hrId:e,rids:this.selRoles}).then(function(s){if(n.eploading.splice(t,1,!1),s&&200==s.status){var a=s.data;n.$message({type:a.status,message:a.msg}),"success"==a.status&&n.refreshHr(e,t)}})},refreshHr:function(e,t){var n=this;n.cardLoading.splice(t,1,!0),this.putRequest("/system/hr/id/"+e).then(function(e){n.cardLoading.splice(t,1,!1),n.hrs.splice(t,1,e.data)})},loadSelRoles:function(e,t){var n=this;this.moreBtnState=!0,this.selRoles=[],this.selRolesBak=[],e.forEach(function(e){n.selRoles.push(e.id),n.selRolesBak.push(e.id)})},loadAllRoles:function(){var e=this;this.getRequest("/system/basic/roles").then(function(t){e.fullloading=!1,t&&200==t.status&&(e.allRoles=t.data)})},switchChange:function(e,t,n){var s=this;s.cardLoading.splice(n,1,!0),this.putRequest("/system/hr/",{enabled:e,id:t}).then(function(e){if(s.cardLoading.splice(n,1,!1),e&&200==e.status){var a=e.data;s.$message({type:a.status,message:a.msg}),"error"==a.status&&s.refreshHr(t,n)}else s.refreshHr(t,n)})},initCards:function(){this.fullloading=!0;var e,t=this;e=""===this.keywords?"all":this.keywords,this.getRequest("/system/hr/"+e).then(function(e){if(e&&200==e.status){t.hrs=e.data;var n=e.data.length;t.cardLoading=Array.apply(null,Array(n)).map(function(e,t){return!1}),t.eploading=Array.apply(null,Array(n)).map(function(e,t){return!1})}})},deleteHr:function(e){var t=this;this.fullloading=!0,this.deleteRequest("/system/hr/"+e).then(function(e){if(t.fullloading=!1,e&&200==e.status){var n=e.data;t.$message({type:n.status,message:n.msg}),"success"==n.status&&(t.initCards(),t.loadAllRoles())}})}}},a={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{directives:[{name:"loading",rawName:"v-loading",value:e.fullloading,expression:"fullloading"}],staticStyle:{"margin-top":"10px"}},[n("div",{staticStyle:{"margin-bottom":"10px",display:"flex","justify-content":"center","align-items":"center"}},[n("el-input",{staticStyle:{width:"400px","margin-right":"10px"},attrs:{placeholder:"默认展示部分用户,可以通过用户名搜索更多用户...","prefix-icon":"el-icon-search",size:"small"},model:{value:e.keywords,callback:function(t){e.keywords=t},expression:"keywords"}}),e._v(" "),n("el-button",{attrs:{size:"small",type:"primary",icon:"el-icon-search"},on:{click:e.searchClick}},[e._v("搜索")])],1),e._v(" "),n("div",{staticStyle:{display:"flex","justify-content":"space-around","flex-wrap":"wrap","text-align":"left"}},e._l(e.hrs,function(t,s){return n("el-card",{directives:[{name:"loading",rawName:"v-loading",value:e.cardLoading[s],expression:"cardLoading[index]"}],key:t.id,staticStyle:{width:"350px","margin-bottom":"20px"}},[n("div",{staticClass:"clearfix",attrs:{slot:"header"},slot:"header"},[n("span",[e._v(e._s(t.name))]),e._v(" "),n("el-button",{staticStyle:{color:"#f6061b",margin:"0px",float:"right",padding:"3px 0",width:"15px",height:"15px"},attrs:{type:"text",icon:"el-icon-delete"},on:{click:function(n){e.deleteHr(t.id)}}})],1),e._v(" "),n("div",[n("div",{staticStyle:{width:"100%",display:"flex","justify-content":"center"}},[n("img",{staticStyle:{width:"70px",height:"70px","border-radius":"70px"},attrs:{src:t.userface,alt:"item.name"}})]),e._v(" "),n("div",{staticStyle:{"margin-top":"20px"}},[n("div",[n("span",{staticClass:"user-info"},[e._v("用户名:"+e._s(t.name))])]),e._v(" "),n("div",[n("span",{staticClass:"user-info"},[e._v("手机号码:"+e._s(t.phone))])]),e._v(" "),n("div",[n("span",{staticClass:"user-info"},[e._v("电话号码:"+e._s(t.telephone))])]),e._v(" "),n("div",[n("span",{staticClass:"user-info"},[e._v("地址:"+e._s(t.address))])]),e._v(" "),n("div",{staticClass:"user-info",staticStyle:{display:"flex","align-items":"center","margin-bottom":"3px"}},[e._v("\n 用户状态:\n "),n("el-switch",{key:t.id,staticStyle:{display:"inline","margin-left":"5px"},attrs:{"active-color":"#13ce66","inactive-color":"#aaaaaa","active-text":"启用","inactive-text":"禁用"},on:{change:function(n){e.switchChange(t.enabled,t.id,s)}},model:{value:t.enabled,callback:function(n){e.$set(t,"enabled",n)},expression:"item.enabled"}})],1),e._v(" "),n("div",{staticClass:"user-info"},[e._v("\n 用户角色:\n "),e._l(t.roles,function(t){return n("el-tag",{key:t.id,staticStyle:{"margin-right":"5px"},attrs:{type:"success",size:"mini","disable-transitions":!1}},[e._v(e._s(t.nameZh)+"\n ")])}),e._v(" "),n("el-popover",{directives:[{name:"loading",rawName:"v-loading",value:e.eploading[s],expression:"eploading[index]"}],key:t.id,attrs:{placement:"right",title:"角色列表",width:"200",trigger:"click"},on:{hide:function(n){e.updateHrRoles(t.id,s)}}},[n("el-select",{attrs:{multiple:"",placeholder:"请选择角色"},model:{value:e.selRoles,callback:function(t){e.selRoles=t},expression:"selRoles"}},e._l(e.allRoles,function(e){return n("el-option",{key:e.id,attrs:{label:e.nameZh,value:e.id}})})),e._v(" "),n("el-button",{staticStyle:{color:"#09c0f6","padding-top":"0px"},attrs:{slot:"reference",type:"text",icon:"el-icon-more",disabled:e.moreBtnState},on:{click:function(n){e.loadSelRoles(t.roles,s)}},slot:"reference"})],1)],2),e._v(" "),n("div",[n("span",{staticClass:"user-info"},[e._v("备注:"+e._s(t.remark))])])])])])}))])},staticRenderFns:[]};var i=n("VU/8")(s,a,!1,function(e){n("NQUc")},null,null);t.default=i.exports},fc7a:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=n("eLaH"),a=n("FvOz"),i=n("5xQo"),l=n("c98W"),r=n("/LNZ"),o={data:function(){return{defaultTab:"depMana"}},methods:{},components:{"menu-role":s.default,"dep-mana":a.default,"ec-mana":i.default,"jobtitle-mana":l.default,"pos-mana":r.default}},c={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticStyle:{"margin-top":"10px"}},[n("el-tabs",{attrs:{type:"card"},model:{value:e.defaultTab,callback:function(t){e.defaultTab=t},expression:"defaultTab"}},[n("el-tab-pane",{attrs:{label:"部门管理",name:"depMana"}},[n("dep-mana")],1),e._v(" "),n("el-tab-pane",{attrs:{label:"职位管理",name:"positionMana"}},[n("pos-mana")],1),e._v(" "),n("el-tab-pane",{attrs:{label:"职称管理",name:"jobTitleMana"}},[n("jobtitle-mana")],1),e._v(" "),n("el-tab-pane",{attrs:{label:"奖惩规则",name:"ecCfg"}},[n("ec-mana")],1),e._v(" "),n("el-tab-pane",{attrs:{label:"权限组",name:"menuRole"}},[n("menu-role")],1)],1)],1)},staticRenderFns:[]},d=n("VU/8")(o,c,!1,null,null,null);t.default=d.exports},mClu:function(e,t,n){var s=n("kM2E");s(s.S+s.F*!n("+E39"),"Object",{defineProperty:n("evD5").f})},ubks:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s={render:function(){this.$createElement;this._self._c;return this._m(0)},staticRenderFns:[function(){var e=this.$createElement,t=this._self._c||e;return t("div",[t("h1",[this._v("\n 系统管理\n ")])])}]},a=n("VU/8")(null,s,!1,null,null,null);t.default=a.exports}});
//# sourceMappingURL=1.6baadbf583910ce36083.js.map
\ No newline at end of file
webpackJsonp([7],{Ad1w:function(e,t){},HP1N:function(e,t){},NHnr:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("7+uW"),o={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{attrs:{id:"app"}},[t("router-view")],1)},staticRenderFns:[]};var a=n("VU/8")({name:"app"},o,!1,function(e){n("Ad1w")},null,null).exports,s=n("/ocq"),i=n("xJsL"),u=n("lO7g");r.default.use(s.a);var l=new s.a({routes:[{path:"/",name:"Login",component:i.default,hidden:!0},{path:"/home",name:"主页",component:u.default,hidden:!0,meta:{requireAuth:!0}}]}),c=n("zL8q"),d=n.n(c),p=(n("tvR6"),n("mvHQ")),m=n.n(p),f=n("NYxO");r.default.use(f.a);var h=new f.a.Store({state:{user:{name:null==window.localStorage.getItem("user")?"未登录":JSON.parse(window.localStorage.getItem("user")).name,userface:null==window.localStorage.getItem("user")?"":JSON.parse(window.localStorage.getItem("user")).userface},routes:[]},mutations:{initMenu:function(e,t){e.routes=t},login:function(e,t){e.user=t,window.localStorage.setItem("user",m()(t))},logout:function(e){window.localStorage.removeItem("user"),e.routes=[]}},actions:{}}),v=n("VsUZ"),g=n("oAV5");r.default.config.productionTip=!1,r.default.use(d.a),r.default.prototype.getRequest=v.b,r.default.prototype.postRequest=v.c,r.default.prototype.deleteRequest=v.a,r.default.prototype.putRequest=v.d,l.beforeEach(function(e,t,n){if("Login"!=e.name){"未登录"==h.state.user.name?e.meta.requireAuth||null==e.name?n({path:"/",query:{redirect:e.path}}):n():(Object(g.a)(l,h),n())}else n()}),new r.default({el:"#app",router:l,store:h,template:"<App/>",components:{App:a}})},VsUZ:function(e,t,n){"use strict";n.d(t,"c",function(){return u}),n.d(t,"d",function(){return l}),n.d(t,"a",function(){return c}),n.d(t,"b",function(){return d});var r=n("//Fk"),o=n.n(r),a=n("mtWM"),s=n.n(a),i=n("zL8q");n.n(i);s.a.interceptors.request.use(function(e){return e},function(e){return i.Message.error({message:"请求超时!"}),o.a.resolve(e)}),s.a.interceptors.response.use(function(e){if(!e.status||200!=e.status||"error"!=e.data.status)return e;i.Message.error({message:e.data.msg})},function(e){return 504==e.response.status||404==e.response.status?i.Message.error({message:"服务器被吃了⊙﹏⊙∥"}):403==e.response.status?i.Message.error({message:"权限不足,请联系管理员!"}):i.Message.error({message:"未知错误!"}),o.a.resolve(e)});var u=function(e,t){return s()({method:"post",url:""+e,data:t,transformRequest:[function(e){var t="";for(var n in e)t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n])+"&";return t}],headers:{"Content-Type":"application/x-www-form-urlencoded"}})},l=function(e,t){return s()({method:"put",url:""+e,data:t,transformRequest:[function(e){var t="";for(var n in e)t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n])+"&";return t}],headers:{"Content-Type":"application/x-www-form-urlencoded"}})},c=function(e){return s()({method:"delete",url:""+e})},d=function(e){return s()({method:"get",url:""+e})}},lO7g:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-container",{staticClass:"home-container"},[n("el-header",{staticClass:"home-header"},[n("span",{staticClass:"home_title"},[e._v("微人事")]),e._v(" "),n("div",{staticStyle:{display:"flex","align-items":"center","margin-right":"7px"}},[n("el-dropdown",{on:{command:e.handleCommand}},[n("span",{staticClass:"el-dropdown-link home_userinfo",staticStyle:{display:"flex","align-items":"center"}},[e._v("\n "+e._s(e.user.name)+"\n "),n("i",[""!=e.user.userface?n("img",{staticStyle:{width:"40px",height:"40px","margin-right":"5px","margin-left":"5px","border-radius":"40px"},attrs:{src:e.user.userface}}):e._e()])]),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",[e._v("个人中心")]),e._v(" "),n("el-dropdown-item",[e._v("设置")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"logout",divided:""}},[e._v("注销")])],1)],1)],1)]),e._v(" "),n("el-container",[n("el-aside",{staticClass:"home-aside",attrs:{width:"180px"}},[n("div",{staticStyle:{display:"flex","justify-content":"flex-start",width:"180px","text-align":"left"}},[n("el-menu",{staticStyle:{background:"#ececec",width:"180px"},attrs:{"unique-opened":"",router:""}},[e._l(this.routes,function(t,r){return t.hidden?e._e():[n("el-submenu",{key:r,attrs:{index:r+""}},[n("template",{slot:"title"},[n("i",{class:t.iconCls,staticStyle:{color:"#20a0ff",width:"14px"}}),e._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(t.name))])]),e._v(" "),e._l(t.children,function(t){return n("el-menu-item",{key:t.path,staticStyle:{"padding-left":"30px","padding-right":"0px","margin-left":"0px",width:"170px","text-align":"left"},attrs:{width:"180px",index:t.path}},[e._v(e._s(t.name)+"\n ")])})],2)]})],2)],1)]),e._v(" "),n("el-container",[n("el-main",[n("el-breadcrumb",{attrs:{"separator-class":"el-icon-arrow-right"}},[n("el-breadcrumb-item",{attrs:{to:{path:"/home"}}},[e._v("首页")]),e._v(" "),n("el-breadcrumb-item",{domProps:{textContent:e._s(this.$router.currentRoute.name)}})],1),e._v(" "),n("keep-alive",[this.$route.meta.keepAlive?n("router-view"):e._e()],1),e._v(" "),this.$route.meta.keepAlive?e._e():n("router-view")],1)],1)],1)],1)],1)},staticRenderFns:[]};var o=n("VU/8")({mounted:function(){},methods:{devMsg:function(){var e=this;this.$alert("为了确保所有的小伙伴都能看到完整的数据演示,数据库只开放了查询权限和部分字段的更新权限,其他权限都不具备,完整权限的演示需要大家在自己本地部署后,换一个正常的数据库用户后即可查看,这点请大家悉知!","友情提示",{confirmButtonText:"确定",callback:function(t){e.$notify({title:"重要重要!",type:"warning",message:"小伙伴们需要注意的是,目前只有权限管理模块完工了,因此这个项目中你无法看到所有的功能,除了权限管理相关的模块。权限管理相关的模块主要有两个,分别是 [系统管理->基础信息设置->权限组] 可以管理角色和资源的关系, [系统管理->操作员管理] 可以管理用户和角色的关系。",duration:0})}})},handleCommand:function(e){var t=this;"logout"==e&&this.$confirm("注销登录, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){t.getRequest("/logout"),t.$store.commit("logout"),t.$router.replace({path:"/"})}).catch(function(){t.$message({type:"info",message:"取消"})})}},data:function(){return{}},computed:{user:function(){return this.$store.state.user},routes:function(){return this.$store.state.routes}}},r,!1,function(e){n("HP1N")},null,null);t.default=o.exports},oAV5:function(e,t,n){"use strict";n.d(t,"b",function(){return a}),n.d(t,"a",function(){return s});var r=n("VsUZ"),o=n("zL8q"),a=(n.n(o),function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0;r<t.length;r++){var a=t[r];if(null==a||""==a||void 0==a)return o.Message.warning({message:"数据不能为空!"}),!1}return!0}),s=function(e,t){t.state.routes.length>0||Object(r.b)("/config/sysmenu").then(function(n){if(n&&200==n.status){var r=i(n.data);e.addRoutes(r),t.commit("initMenu",r)}})},i=function e(t){var r=[];return t.forEach(function(t){var o=t.path,a=t.component,s=t.name,i=t.meta,u=t.iconCls,l=t.children;l&&l instanceof Array&&(l=e(l));var c={path:o,component:function(e){a.startsWith("Home")?n.e(0).then(function(){var t=[n("2eoi")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Emp")?n.e(5).then(function(){var t=[n("8cST")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Per")?n.e(3).then(function(){var t=[n("sALK")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Sal")?n.e(2).then(function(){var t=[n("9Acn")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Sta")?n.e(4).then(function(){var t=[n("nCU1")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Sys")&&n.e(1).then(function(){var t=[n("LJAE")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe)},name:s,iconCls:u,meta:i,children:l};r.push(c)}),r}},oWFQ:function(e,t){},tvR6:function(e,t){},xJsL:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={data:function(){return{rules:{account:[{required:!0,message:"请输入用户名",trigger:"blur"}],checkPass:[{required:!0,message:"请输入密码",trigger:"blur"}]},checked:!0,loginForm:{username:"admin",password:"123"},loading:!1}},methods:{submitClick:function(){var e=this;this.loading=!0,this.postRequest("/login",{username:this.loginForm.username,password:this.loginForm.password}).then(function(t){if(e.loading=!1,t&&200==t.status){var n=t.data;e.$store.commit("login",n.msg);var r=e.$route.query.redirect;e.$router.replace({path:"/"==r||void 0==r?"/home":r})}})}}},o={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-form",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"login-container",attrs:{rules:e.rules,"label-position":"left","label-width":"0px"}},[n("h3",{staticClass:"login_title"},[e._v("系统登录")]),e._v(" "),n("el-form-item",{attrs:{prop:"account"}},[n("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"账号"},model:{value:e.loginForm.username,callback:function(t){e.$set(e.loginForm,"username",t)},expression:"loginForm.username"}})],1),e._v(" "),n("el-form-item",{attrs:{prop:"checkPass"}},[n("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},model:{value:e.loginForm.password,callback:function(t){e.$set(e.loginForm,"password",t)},expression:"loginForm.password"}})],1),e._v(" "),n("el-checkbox",{staticClass:"login_remember",attrs:{"label-position":"left"},model:{value:e.checked,callback:function(t){e.checked=t},expression:"checked"}},[e._v("记住密码")]),e._v(" "),n("el-form-item",{staticStyle:{width:"100%"}},[n("el-button",{staticStyle:{width:"100%"},attrs:{type:"primary"},nativeOn:{click:function(t){t.preventDefault(),e.submitClick(t)}}},[e._v("登录")])],1)],1)},staticRenderFns:[]};var a=n("VU/8")(r,o,!1,function(e){n("oWFQ")},null,null);t.default=a.exports}},["NHnr"]);
//# sourceMappingURL=app.59c317cd795b42477f9c.js.map
\ No newline at end of file
webpackJsonp([7],{Ad1w:function(e,t){},HP1N:function(e,t){},NHnr:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("7+uW"),a={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{attrs:{id:"app"}},[t("router-view")],1)},staticRenderFns:[]};var o=n("VU/8")({name:"app"},a,!1,function(e){n("Ad1w")},null,null).exports,s=n("/ocq"),i=n("xJsL"),u=n("lO7g");r.default.use(s.a);var l=new s.a({routes:[{path:"/",name:"Login",component:i.default,hidden:!0},{path:"/home",name:"主页",component:u.default,hidden:!0,meta:{requireAuth:!0}}]}),c=n("zL8q"),d=n.n(c),m=(n("tvR6"),n("mvHQ")),p=n.n(m),f=n("NYxO");r.default.use(f.a);var h=new f.a.Store({state:{user:{name:null==window.localStorage.getItem("user")?"未登录":JSON.parse(window.localStorage.getItem("user")).name,userface:null==window.localStorage.getItem("user")?"":JSON.parse(window.localStorage.getItem("user")).userface},routes:[]},mutations:{initMenu:function(e,t){e.routes=t},login:function(e,t){e.user=t,window.localStorage.setItem("user",p()(t))},logout:function(e){window.localStorage.removeItem("user"),e.routes=[]}},actions:{}}),g=n("VsUZ"),v=n("oAV5");r.default.filter("formatDate",function(e){var t=new Date(e),n=t.getFullYear(),r=t.getMonth()+1,a=t.getDate();return r<10&&(r="0"+r),a<10&&(a="0"+a),n+"-"+r+"-"+a}),r.default.filter("formatDateTime",function(e){var t=new Date(e),n=t.getFullYear(),r=t.getMonth()+1,a=t.getDate(),o=t.getHours(),s=t.getMinutes();return r<10&&(r="0"+r),a<10&&(a="0"+a),n+"-"+r+"-"+a+" "+o+":"+s}),r.default.config.productionTip=!1,r.default.use(d.a),r.default.prototype.getRequest=g.b,r.default.prototype.postRequest=g.c,r.default.prototype.deleteRequest=g.a,r.default.prototype.putRequest=g.d,r.default.prototype.isNotNullORBlank=v.b,l.beforeEach(function(e,t,n){if("Login"!=e.name){"未登录"==h.state.user.name?e.meta.requireAuth||null==e.name?n({path:"/",query:{redirect:e.path}}):n():(Object(v.a)(l,h),n())}else n()}),new r.default({el:"#app",router:l,store:h,template:"<App/>",components:{App:o}})},VsUZ:function(e,t,n){"use strict";n.d(t,"c",function(){return u}),n.d(t,"d",function(){return l}),n.d(t,"a",function(){return c}),n.d(t,"b",function(){return d});var r=n("//Fk"),a=n.n(r),o=n("mtWM"),s=n.n(o),i=n("zL8q");n.n(i);s.a.interceptors.request.use(function(e){return e},function(e){return i.Message.error({message:"请求超时!"}),a.a.resolve(e)}),s.a.interceptors.response.use(function(e){if(!e.status||200!=e.status||"error"!=e.data.status)return e;i.Message.error({message:e.data.msg})},function(e){return 504==e.response.status||404==e.response.status?i.Message.error({message:"服务器被吃了⊙﹏⊙∥"}):403==e.response.status?i.Message.error({message:"权限不足,请联系管理员!"}):i.Message.error({message:"未知错误!"}),a.a.resolve(e)});var u=function(e,t){return s()({method:"post",url:""+e,data:t,transformRequest:[function(e){var t="";for(var n in e)t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n])+"&";return t}],headers:{"Content-Type":"application/x-www-form-urlencoded"}})},l=function(e,t){return s()({method:"put",url:""+e,data:t,transformRequest:[function(e){var t="";for(var n in e)t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n])+"&";return t}],headers:{"Content-Type":"application/x-www-form-urlencoded"}})},c=function(e){return s()({method:"delete",url:""+e})},d=function(e){return s()({method:"get",url:""+e})}},lO7g:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-container",{staticClass:"home-container"},[n("el-header",{staticClass:"home-header"},[n("span",{staticClass:"home_title"},[e._v("微人事")]),e._v(" "),n("div",{staticStyle:{display:"flex","align-items":"center","margin-right":"7px"}},[n("el-dropdown",{on:{command:e.handleCommand}},[n("span",{staticClass:"el-dropdown-link home_userinfo",staticStyle:{display:"flex","align-items":"center"}},[e._v("\n "+e._s(e.user.name)+"\n "),n("i",[""!=e.user.userface?n("img",{staticStyle:{width:"40px",height:"40px","margin-right":"5px","margin-left":"5px","border-radius":"40px"},attrs:{src:e.user.userface}}):e._e()])]),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",[e._v("个人中心")]),e._v(" "),n("el-dropdown-item",[e._v("设置")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"logout",divided:""}},[e._v("注销")])],1)],1)],1)]),e._v(" "),n("el-container",[n("el-aside",{staticClass:"home-aside",attrs:{width:"180px"}},[n("div",{staticStyle:{display:"flex","justify-content":"flex-start",width:"180px","text-align":"left"}},[n("el-menu",{staticStyle:{background:"#ececec",width:"180px"},attrs:{"unique-opened":"",router:""}},[e._l(this.routes,function(t,r){return t.hidden?e._e():[n("el-submenu",{key:r,attrs:{index:r+""}},[n("template",{slot:"title"},[n("i",{class:t.iconCls,staticStyle:{color:"#20a0ff",width:"14px"}}),e._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(t.name))])]),e._v(" "),e._l(t.children,function(t){return n("el-menu-item",{key:t.path,staticStyle:{"padding-left":"30px","padding-right":"0px","margin-left":"0px",width:"170px","text-align":"left"},attrs:{width:"180px",index:t.path}},[e._v(e._s(t.name)+"\n ")])})],2)]})],2)],1)]),e._v(" "),n("el-container",[n("el-main",[n("el-breadcrumb",{attrs:{"separator-class":"el-icon-arrow-right"}},[n("el-breadcrumb-item",{attrs:{to:{path:"/home"}}},[e._v("首页")]),e._v(" "),n("el-breadcrumb-item",{domProps:{textContent:e._s(this.$router.currentRoute.name)}})],1),e._v(" "),n("keep-alive",[this.$route.meta.keepAlive?n("router-view"):e._e()],1),e._v(" "),this.$route.meta.keepAlive?e._e():n("router-view")],1)],1)],1)],1)],1)},staticRenderFns:[]};var a=n("VU/8")({mounted:function(){},methods:{devMsg:function(){var e=this;this.$alert("为了确保所有的小伙伴都能看到完整的数据演示,数据库只开放了查询权限和部分字段的更新权限,其他权限都不具备,完整权限的演示需要大家在自己本地部署后,换一个正常的数据库用户后即可查看,这点请大家悉知!","友情提示",{confirmButtonText:"确定",callback:function(t){e.$notify({title:"重要重要!",type:"warning",message:"小伙伴们需要注意的是,目前只有权限管理模块完工了,因此这个项目中你无法看到所有的功能,除了权限管理相关的模块。权限管理相关的模块主要有两个,分别是 [系统管理->基础信息设置->权限组] 可以管理角色和资源的关系, [系统管理->操作员管理] 可以管理用户和角色的关系。",duration:0})}})},handleCommand:function(e){var t=this;"logout"==e&&this.$confirm("注销登录, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){t.getRequest("/logout"),t.$store.commit("logout"),t.$router.replace({path:"/"})}).catch(function(){t.$message({type:"info",message:"取消"})})}},data:function(){return{}},computed:{user:function(){return this.$store.state.user},routes:function(){return this.$store.state.routes}}},r,!1,function(e){n("HP1N")},null,null);t.default=a.exports},oAV5:function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"a",function(){return s});var r=n("VsUZ"),a=n("zL8q"),o=(n.n(a),function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0;r<t.length;r++){var o=t[r];if(null==o||""==o||void 0==o)return a.Message.warning({message:"数据不能为空!"}),!1}return!0}),s=function(e,t){t.state.routes.length>0||Object(r.b)("/config/sysmenu").then(function(n){if(n&&200==n.status){var r=i(n.data);e.addRoutes(r),t.commit("initMenu",r)}})},i=function e(t){var r=[];return t.forEach(function(t){var a=t.path,o=t.component,s=t.name,i=t.meta,u=t.iconCls,l=t.children;l&&l instanceof Array&&(l=e(l));var c={path:a,component:function(e){o.startsWith("Home")?n.e(0).then(function(){var t=[n("2eoi")("./"+o+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):o.startsWith("Emp")?n.e(5).then(function(){var t=[n("8cST")("./"+o+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):o.startsWith("Per")?n.e(3).then(function(){var t=[n("sALK")("./"+o+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):o.startsWith("Sal")?n.e(2).then(function(){var t=[n("9Acn")("./"+o+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):o.startsWith("Sta")?n.e(4).then(function(){var t=[n("nCU1")("./"+o+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):o.startsWith("Sys")&&n.e(1).then(function(){var t=[n("LJAE")("./"+o+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe)},name:s,iconCls:u,meta:i,children:l};r.push(c)}),r}},oWFQ:function(e,t){},tvR6:function(e,t){},xJsL:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={data:function(){return{rules:{account:[{required:!0,message:"请输入用户名",trigger:"blur"}],checkPass:[{required:!0,message:"请输入密码",trigger:"blur"}]},checked:!0,loginForm:{username:"admin",password:"123"},loading:!1}},methods:{submitClick:function(){var e=this;this.loading=!0,this.postRequest("/login",{username:this.loginForm.username,password:this.loginForm.password}).then(function(t){if(e.loading=!1,t&&200==t.status){var n=t.data;e.$store.commit("login",n.msg);var r=e.$route.query.redirect;e.$router.replace({path:"/"==r||void 0==r?"/home":r})}})}}},a={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-form",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"login-container",attrs:{rules:e.rules,"label-position":"left","label-width":"0px"}},[n("h3",{staticClass:"login_title"},[e._v("系统登录")]),e._v(" "),n("el-form-item",{attrs:{prop:"account"}},[n("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"账号"},model:{value:e.loginForm.username,callback:function(t){e.$set(e.loginForm,"username",t)},expression:"loginForm.username"}})],1),e._v(" "),n("el-form-item",{attrs:{prop:"checkPass"}},[n("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},model:{value:e.loginForm.password,callback:function(t){e.$set(e.loginForm,"password",t)},expression:"loginForm.password"}})],1),e._v(" "),n("el-checkbox",{staticClass:"login_remember",attrs:{"label-position":"left"},model:{value:e.checked,callback:function(t){e.checked=t},expression:"checked"}},[e._v("记住密码")]),e._v(" "),n("el-form-item",{staticStyle:{width:"100%"}},[n("el-button",{staticStyle:{width:"100%"},attrs:{type:"primary"},nativeOn:{click:function(t){t.preventDefault(),e.submitClick(t)}}},[e._v("登录")])],1)],1)},staticRenderFns:[]};var o=n("VU/8")(r,a,!1,function(e){n("oWFQ")},null,null);t.default=o.exports}},["NHnr"]);
//# sourceMappingURL=app.dfa620b6af45f973da76.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:"19a7106de03fc2a0ce38",1:"6baadbf583910ce36083",2:"9ff52b878e2c6af33db4",3:"f2af1e5f79c4750ed876",4:"b25d67ddc90d6ac44980",5:"6e7fafbe72070f259f42",6:"59f7a0d2e440c37c0dac",7:"59c317cd795b42477f9c"}[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}}([]); !function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,a,c){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 a)Object.prototype.hasOwnProperty.call(a,f)&&(e[f]=a[f]);for(n&&n(r,a,c);s.length;)s.shift()();if(c)for(d=0;d<c.length;d++)u=o(o.s=c[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 a=document.getElementsByTagName("head")[0],c=document.createElement("script");c.type="text/javascript",c.charset="utf-8",c.async=!0,c.timeout=12e4,o.nc&&c.setAttribute("nonce",o.nc),c.src=o.p+"static/js/"+e+"."+{0:"a3264ac089a735c69ff5",1:"85bff9c034d28d2184a5",2:"9ff52b878e2c6af33db4",3:"f2af1e5f79c4750ed876",4:"b25d67ddc90d6ac44980",5:"6e7fafbe72070f259f42",6:"59f7a0d2e440c37c0dac",7:"dfa620b6af45f973da76"}[e]+".js";var f=setTimeout(i,12e4);c.onerror=c.onload=i;function i(){c.onerror=c.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return a.appendChild(c),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.6a421ea0ecff5b05d027.js.map //# sourceMappingURL=manifest.36f620a93237261123f0.js.map
\ No newline at end of file \ No newline at end of file
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
<dep-mana></dep-mana> <dep-mana></dep-mana>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="职位管理" name="positionMana"> <el-tab-pane label="职位管理" name="positionMana">
<pos-mana></pos-mana> <pos-mana state="position"></pos-mana>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="职称管理" name="jobTitleMana"> <el-tab-pane label="职称管理" name="jobTitleMana">
<jobtitle-mana></jobtitle-mana> <pos-mana state="jobtitle"></pos-mana>
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="奖惩规则" name="ecCfg"> <el-tab-pane label="奖惩规则" name="ecCfg">
<ec-mana></ec-mana> <ec-mana></ec-mana>
......
<template>
<div>
<!-- <el-container>
&lt;!&ndash; <el-header style="padding: 0px;display:flex;justify-content:flex-start;align-items: flex-start;height: 28px;">
<el-button type="primary" size="mini" style="margin-left: 5px" icon="el-icon-plus">添加部门</el-button>
</el-header>&ndash;&gt;
<el-main style="padding: 0px;margin-top: 10px">-->
<div style="text-align: left">
<el-input
placeholder="输入部门名称搜索部门..."
style="width: 500px;margin: 0px;padding: 0px;"
size="mini"
prefix-icon="el-icon-search"
v-model="keywords">
</el-input>
</div>
<div>
<el-tree
:props="defaultProps"
:load="loadNode"
lazy
v-loading="treeLoading"
node-key="id"
style="width: 500px"
:render-content="renderContent">
</el-tree>
</div>
<!-- </el-main>
</el-container>-->
</div>
</template>
<script>
let id = 1000;
export default {
data() {
return {
keywords: '',
treeLoading:false,
defaultProps: {
label: 'name',
isLeaf: 'leaf'
}
}
},
methods: {
loadNode(node, resolve) {
var pid;
if (node.data == undefined) {
pid = -1;
}else{
pid = node.data.id;
}
this.getRequest("/system/basic/dep/"+pid).then(resp=> {
if (resp && resp.status == 200) {
resolve(resp.data);
}
})
},
append(data) {
const newChild = {id: id++, label: 'testtest', children: []};
if (!data.children) {
this.$set(data, 'children', []);
}
data.children.push(newChild);
},
remove(node, data) {
const parent = node.parent;
const children = parent.data.children || parent.data;
const index = children.findIndex(d => d.id === data.id);
children.splice(index, 1);
},
addDep(node,data,event){
event.stopPropagation()
},
deleteDep(node,data,event){
if(!data.leaf) {
this.$message({
message: '该部门下尚有其他部门,不能被删除!',
type: 'warning'
});
}else{
this.treeLoading = true;
this.deleteRequest("/system/basic/dep/" + data.id).then(resp=>{
this.treeLoading = false;
});
}
event.stopPropagation()
},
renderContent(h, {node, data, store}) {
return (
<span style="flex: 1; display: flex; align-items: center; justify-content: space-between; font-size: 14px; padding-right: 8px;">
<span>
<span>{node.label}</span>
</span>
<span>
<el-button style="font-size: 12px;" type="primary" size="mini" style="padding:3px" on-click={ () => this.addDep(node,data,event) }>添加部门</el-button>
<el-button style="font-size: 12px;" type="danger" size="mini" style="padding:3px" on-click={ () => this.deleteDep(node, data,event) }>删除部门</el-button>
</span>
</span>);
}
}
};
</script>
...@@ -3,3 +3,6 @@ ...@@ -3,3 +3,6 @@
<h1>职称管理</h1> <h1>职称管理</h1>
</div> </div>
</template> </template>
<script>
</script>
<template> <template>
<div> <div>
<h1>职位管理</h1> <div style="text-align: left">
<el-input
:placeholder="state=='position'?'添加职位...':'添加职称...'"
size="mini"
@keyup.enter.native="addPosition"
style="width: 300px;"
prefix-icon="el-icon-plus"
v-model="positionName">
</el-input>
<el-select v-model="titleLevel" v-if="state=='jobtitle'" size="mini" placeholder="职称等级">
<el-option
v-for="tl in titleLevels"
:key="tl"
:label="tl"
:value="tl">
</el-option>
</el-select>
<el-button type="primary" icon="el-icon-plus" size="mini" @click="addPosition">添加</el-button>
</div>
<div style="margin-top: 10px">
<el-table
v-loading="loading"
:data="posData"
size="mini"
stripe
border
@selection-change="handleSelectionChange"
style="width: 80%">
<el-table-column
type="selection"
width="55"
align="left">
</el-table-column>
<el-table-column
prop="id"
label="编号"
width="80"
align="left">
</el-table-column>
<el-table-column
prop="name"
:label="state=='position'?'职位名称':'职称名称'"
width="180"
align="left">
</el-table-column>
<el-table-column
prop="titleLevel"
label="职称级别"
width="180"
align="left" v-if="state=='jobtitle'">
</el-table-column>
<el-table-column
width="180"
label="创建时间"
align="left">
<template slot-scope="scope">{{ scope.row.createDate | formatDate}}</template>
</el-table-column>
<el-table-column label="操作" align="left">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleEdit(scope.$index, scope.row)">编辑
</el-button>
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.$index, scope.row)">删除
</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div style="text-align: left;margin-top: 10px">
<el-button type="danger" size="mini" v-if="posData.length>0" :disabled="multipleSelection.length==0"
@click="deleteMany">批量删除
</el-button>
</div>
<div style="text-align: left">
<el-dialog
:title="state=='position'?'编辑职位名称':'编辑职称'"
:visible.sync="dialogVisible"
width="25%">
<el-input v-model="updatePosName" size="mini" placeholder="请输入新的职位名称..."></el-input>
<el-select v-model="updateTitleLevel" v-if="state=='jobtitle'" style="margin-top: 10px" size="mini"
placeholder="职称等级">
<el-option
v-for="tl in titleLevels"
:key="tl"
:label="tl"
:value="tl">
</el-option>
</el-select>
<span slot="footer" class="dialog-footer">
<el-button size="mini" @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" size="mini" @click="updatePosNameExec">确 定</el-button>
</span>
</el-dialog>
</div>
</div> </div>
</template> </template>
<script>
export default{
mounted: function () {
this.loadTableData();
},
methods: {
updatePosNameExec(){
if (!this.isNotNullORBlank(this.updatePosName)) {
this.$message.warning(this.state == 'position' ? '职位名称不能为空!' : '职称名称不能为空!');
return;
}
this.loading = true;
var _this = this;
this.putRequest(this.state=='position'?"/system/basic/position":"/system/basic/joblevel", {name: this.updatePosName, id: this.updatePosId,titleLevel:this.updateTitleLevel}).then(resp=> {
_this.loading = false;
if (resp && resp.status == 200) {
this.dialogVisible = false;
var data = resp.data;
_this.$message({type: data.status, message: data.msg});
_this.loadTableData();
}
})
},
deleteMany(){
var _this = this;
this.$confirm('删除' + this.multipleSelection.length + '条数据, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
var multipleSelection = _this.multipleSelection;
var ids = '';
multipleSelection.forEach(row=> {
ids = ids + row.id + ',';
})
_this.doDelete(ids);
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
addPosition(){
if (!this.isNotNullORBlank(this.positionName)) {
this.$message.warning(this.state == 'position' ? '职位名称不能为空!' : '职称名称不能为空!');
return;
}
if (this.state == 'jobtitle') {
if (!this.isNotNullORBlank(this.titleLevel)) {
this.$message.warning('请选择职称级别!');
return;
}
}
var _this = this;
this.loading = true;
this.postRequest(this.state == 'position' ? "/system/basic/position" : "/system/basic/joblevel", {
name: this.positionName,
titleLevel: this.titleLevel
}).then(resp=> {
_this.loading = false;
if (resp && resp.status == 200) {
var data = resp.data;
_this.$message({type: data.status, message: data.msg});
_this.loadTableData();
_this.positionName = '';
_this.titleLevel = '';
}
});
},
handleSelectionChange(val) {
this.multipleSelection = val;
},
handleEdit(index, row){
this.updatePosName = row.name;
this.updatePosId = row.id;
this.updateTitleLevel=row.titleLevel;
this.dialogVisible = true;
},
handleDelete(index, row){
var _this = this;
this.$confirm('删除[' + row.name + '], 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
_this.doDelete(row.id);
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
doDelete(ids){
var _this = this;
_this.loading = true;
var url = this.state == 'position' ? '/system/basic/position/' : '/system/basic/joblevel/';
this.deleteRequest(url + ids).then(resp=> {
_this.loading = false;
if (resp && resp.status == 200) {
_this.loadTableData();
}
})
},
loadTableData(){
var _this = this;
this.loading = true;
this.getRequest(this.state == 'position' ? "/system/basic/positions" : "/system/basic/joblevels").then(resp=> {
_this.loading = false;
if (resp && resp.status == 200) {
_this.posData = resp.data;
}
})
}
},
data(){
return {
positionName: '',
updatePosName: '',
updateTitleLevel: '',
titleLevel: '',
updatePosId: -1,
loading: false,
dialogVisible: false,
multipleSelection: [],
type: [],
titleLevels: ['正高级', '副高级', '中级', '初级', '员级'],
nameLabelName: this.state == 'position' ? '职位名称' : '职称名称',
posData: []
}
},
props: ['state']
}
</script>
...@@ -11,6 +11,9 @@ import {postRequest} from './utils/api' ...@@ -11,6 +11,9 @@ import {postRequest} from './utils/api'
import {deleteRequest} from './utils/api' import {deleteRequest} from './utils/api'
import {putRequest} from './utils/api' import {putRequest} from './utils/api'
import {initMenu} from './utils/utils' import {initMenu} from './utils/utils'
import {isNotNullORBlank} from './utils/utils'
import './utils/filter_utils'
Vue.config.productionTip = false Vue.config.productionTip = false
Vue.use(ElementUI) Vue.use(ElementUI)
...@@ -18,6 +21,7 @@ Vue.prototype.getRequest = getRequest; ...@@ -18,6 +21,7 @@ Vue.prototype.getRequest = getRequest;
Vue.prototype.postRequest = postRequest; Vue.prototype.postRequest = postRequest;
Vue.prototype.deleteRequest = deleteRequest; Vue.prototype.deleteRequest = deleteRequest;
Vue.prototype.putRequest = putRequest; Vue.prototype.putRequest = putRequest;
Vue.prototype.isNotNullORBlank = isNotNullORBlank;
router.beforeEach((to, from, next)=> { router.beforeEach((to, from, next)=> {
if (to.name == 'Login') { if (to.name == 'Login') {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册