import uc from "@/api/uc.js"; import store from '@/store/login'; import utils from "@/utils.js"; const state = { currentUserDetail: null, currentOrgDetail: null, dimensions: null, currentDimension: null, orgs: null, users: [],//列表数据 orgData: null, pagination: {}, //分页参数 total: 0, //列表数据总条数 postData: null, roleData: null, jobData: null, postCharge: {}, postMap: {}, demData: null, orgTotal: 0, postTotal: 0, roleTotal: 0, jobTotal: 0, demTotal: 0, pwdStrategy: {}, //默认密码策略 } const getters = {} const actions = { // 加载当前用户详情 loadCurrentUserDetail({ commit, state }) { // if (Object.keys(state.currentUserDetail).length == 0) { if (!state.currentUserDetail) { const currentUser = store.state.currentUser; if (currentUser && currentUser.account) { return new Promise((resolve, reject) => { uc.getUserByAccount(currentUser.account, resp => { resolve(resp); sessionStorage.setItem("currentUserDetail", JSON.stringify(resp)); commit('setCurrentUserDetail', resp); commit('setPostCharge', resp.post); commit("setCurrentUserOrg", resp.org); }); }); } } }, //修改密码 modifyPwd({ commit, state }, data) { return new Promise((resolve, reject) => { uc.modifyPwd(data, resp => { resolve(resp); }) }) }, // 获取用户信息 getCurrent({ commit, state }) { return new Promise((resolve, reject) => { uc.getCurrent(rep => { resolve(rep.data); }); }); }, // 加载组织维度 loadDimension({ commit, state }) { uc.getAllDimension(rep => { commit("setDimensions", rep) }); }, // 通过维度获取组织 loadOrgsByDimension({ commit, state }, dimensionId) { commit("setCurrentDimension", dimensionId); commit("clearOrgs"); uc.getOrgsByDemension(dimensionId, rep => { let result = utils.tile2nest(rep); commit("setOrgs", result); }); }, // 通过父组织ID查询组织 loadOrgsByParentId({ commit, state }, parentId) { return new Promise((resolve, reject) => { uc.getOrgsByParentIdAndDemension(parentId, state.currentDimension, rep => { resolve(rep); }, err => { reject(err); }); }); }, // 更新每页下拉显示数据 setPaginationSize({ commit, state }, size) { commit("setPaginationSize", size); }, // 更新第几页 setPaginationPageNum({ commit, state }, currentPage) { commit("setPaginationPageNum", currentPage); }, // 通过组织ID获取用户 loadUsersByOrgId({ commit, state }, pagination) { uc.getUsersByOrgId(pagination, response => { commit("setUsers", response.data.rows);//用户数据 commit("setTotal", response.data.total);//总数据条数 let pageBean = { "page": response.data.page, "pageSize": response.data.pageSize, "showTotal": "true" };//接口方法返回的pageBean commit("setPagination", pageBean);//显示第几页,每页显示多少条 }); }, // 查询组织 queryOrg({ commit, state }, pagination) { uc.queryOrgByFilter(pagination, rep => { commit("setOrgData", rep.data); commit("setOrgTotal", rep.data.total);//总数据条数 let pageBean = { "page": rep.data.page, "pageSize": rep.data.pageSize, "showTotal": "true" };//接口方法返回的pageBean commit("setPagination", pageBean);//显示第几页,每页显示多少条 }); }, // 查询岗位 queryPost({ commit, state }, pagination) { uc.getOrgPostPage(pagination, rep => { commit("setPostData", rep.data); commit("setPostTotal", rep.data.total);//总数据条数 let pageBean = { "page": rep.data.page, "pageSize": rep.data.pageSize, "showTotal": "true" };//接口方法返回的pageBean commit("setPagination", pageBean);//显示第几页,每页显示多少条 }); }, // 查询角色 queryRole({ commit, state }, pagination) { uc.getRolePage(pagination, rep => { commit("setRoleData", rep.data); commit("setRoleTotal", rep.data.total);//总数据条数 let pageBean = { "page": rep.data.page, "pageSize": rep.data.pageSize, "showTotal": "true" };//接口方法返回的pageBean commit("setPagination", pageBean);//显示第几页,每页显示多少条 }); }, // 查询职务 queryJob({ commit, state }, pagination) { uc.getJobPage(pagination, rep => { commit("setJobData", rep.data); commit("setJobTotal", rep.data.total);//总数据条数 let pageBean = { "page": rep.data.page, "pageSize": rep.data.pageSize, "showTotal": "true" };//接口方法返回的pageBean commit("setPagination", pageBean);//显示第几页,每页显示多少条 }); }, setpostMap({ commit, state }, data) { commit("setpostMap", data); }, // 查询维度列表 getDemPage({ commit, state }, pageBean) { uc.getDemPage(pageBean, rep => { commit("setDemData", rep.data); commit("setDemTotal", rep.data.total);//总数据条数 let pageBean = { "page": rep.data.page, "pageSize": rep.data.pageSize, "showTotal": "true" };//接口方法返回的pageBean commit("setPagination", pageBean);//显示第几页,每页显示多少条 }); }, setcurrentOrg({ commit, state }, data) { commit("setcurrentOrg", data); }, //获取默认密码策略 getDefPwdStrategy({ commit, state }) { return new Promise((resolve, reject) => { uc.getDefPwdStrategy(response => { commit("setPwdStrategy", response); resolve(response); }); }); }, clearUser({ commit, state }) { commit("clearUser"); } } const mutations = { clearUser(state) { state.currentUserDetail = null state.currentOrgDetail = null }, setcurrentOrg(state, data) { state.currentOrgDetail = data; }, setpostMap(state, data) { sessionStorage.setItem(state.currentUserDetail.user.id + "-CurPostId", data.postCharge.postId); state.postMap = data.postMap; state.postCharge = { post: { id: data.postCharge.postId, name: data.postCharge.postName }, org: { id: data.postCharge.orgId, name: data.postCharge.orgName } }; }, setCurrentUserDetail(state, data) { if (data && data.role && data.role.roleName) { data.role = data.role.roleName.split("|"); } state.currentUserDetail = data; },//获取当前主岗位 没有则取第一个岗位 setPostCharge(state, data) { if (data && JSON.stringify(data) != "{}") { let setMasterPostId = sessionStorage.getItem(state.currentUserDetail.user.id + "-CurPostId"); for (let item in data) { if (setMasterPostId) { if (item == setMasterPostId) { state.postCharge = { post: { id: data[item].postId, name: data[item].postName, code: data[item].postCode }, org: { id: data[item].orgId, name: data[item].orgName, code: data[item].orgCode } }; data[item].disabled = true; break; } } else { for (let org in state.currentUserDetail.org) { if (data[item].orgName == state.currentUserDetail.org[org].orgName && data[item].isMaster == "1") { state.postCharge = { post: { id: data[item].postId, name: data[item].postName, code: data[item].postCode }, org: { id: data[item].orgId, name: data[item].orgName, code: data[item].orgCode } }; data[item].disabled = true; } else { data[item].disabled = false; } } } } //如果没有主岗位取第一个 if (!state.postCharge.post) { for (let item in data) { state.postCharge = { post: { id: data[item].postId, name: data[item].postName, code: data[item].postCode }, org: { id: data[item].orgId, name: data[item].orgName, code: data[item].orgCode } }; data[item].disabled = true; break; } } state.postMap = data; } else { state.postCharge = {}; } }, //获取当前主部门 没有则取第一个部门 setCurrentUserOrg(state, data) { if (data) { for (let item in data) { if (data[item].isMaster == "1") { state.currentOrgDetail = { id: data[item].orgId, name: data[item].orgName, code: data[item].orgCode }; break; } } //如果没有主岗位取第一个 if (!state.postCharge.id) { for (let item in data) { state.currentOrgDetail = { id: data[item].orgId, name: data[item].orgName, code: data[item].orgCode }; break; } } } }, setDimensions(state, data) { state.dimensions = data; }, setCurrentDimension(state, dimensionId) { state.currentDimension = dimensionId; }, setOrgs(state, data) { state.orgs = data; }, clearOrgs(state) { state.orgs = null; }, setUsers(state, users) { state.users = users; }, setOrgData(state, data) { state.orgData = data.rows; }, setPostData(state, data) { state.postData = data.rows; }, setRoleData(state, data) { state.roleData = data.rows; }, setJobData(state, data) { state.jobData = data.rows; }, setDemData(state, data) { state.demData = data.rows; }, setPagination(state, pagination) { state.pagination = pagination; }, setOrgPagination(state, pagination) { state.orgpagination = pagination; }, setPaginationSize(state, size) { state.pagination.pageSize = size; }, setPaginationPageNum(state, currentPage) { state.pagination.page = currentPage; }, setTotal(state, total) { state.total = total; }, setOrgTotal(state, total) { state.orgTotal = total; }, setPostTotal(state, total) { state.postTotal = total; }, setRoleTotal(state, total) { state.roleTotal = total; }, setJobTotal(state, total) { state.jobTotal = total; }, setDemTotal(state, total) { state.demTotal = total; }, setPwdStrategy(state, pwdStrategy) { state.pwdStrategy = pwdStrategy; }, } export default { namespaced: true, state, getters, actions, mutations }