82 lines
2.2 KiB
JavaScript
82 lines
2.2 KiB
JavaScript
import storage from '@/utils/storage'
|
|
import constant from '@/utils/constant'
|
|
import { getInfo } from '@/api/login'
|
|
import { listEmployee } from '@/api/basic/employee'
|
|
import { getDepartment } from '@/api/basic/department'
|
|
|
|
const employee = {
|
|
state: {
|
|
empId: storage.get(constant.empId),
|
|
empCode: storage.get(constant.code),
|
|
empName: storage.get(constant.empName),
|
|
deptId: storage.get(constant.empDeptId),
|
|
deptName: storage.get(constant.empDeptName)
|
|
},
|
|
mutations: {
|
|
SET_ID: (state, empId) => {
|
|
state.empId = empId
|
|
storage.set(constant.empId, empId)
|
|
},
|
|
SET_EMP_NAME: (state, empName) => {
|
|
state.empName = empName
|
|
storage.set(constant.empName, empName)
|
|
},
|
|
SET_CODE: (state, empCode) => {
|
|
state.empCode = empCode
|
|
storage.set(constant.code, empCode)
|
|
storage.set(constant.empCode, empCode)
|
|
},
|
|
SET_DEPT_ID: (state, deptId) => {
|
|
state.deptId = deptId
|
|
storage.set(constant.empDeptId, deptId)
|
|
},
|
|
SET_DEPT_NAME: (state, deptName) => {
|
|
state.deptName = deptName
|
|
storage.set(constant.empDeptName, deptName)
|
|
}
|
|
},
|
|
actions: {
|
|
// 获取用户信息
|
|
async GetEmpInfo({ commit, state }) {
|
|
try {
|
|
// 1. 获取登录用户信息
|
|
const res = await getInfo()
|
|
const user = res.user
|
|
const empCode = (!user || !user.employeeCode) ? "" : user.employeeCode
|
|
commit('SET_CODE', empCode)
|
|
|
|
// 2. 根据 empCode 查询员工
|
|
const empRes = await listEmployee({ empCode })
|
|
if (empRes.total !== 1) {
|
|
console.warn('未找到员工信息')
|
|
return
|
|
}
|
|
|
|
const { id, name, deptId } = empRes.rows[0]
|
|
commit('SET_ID', id)
|
|
commit('SET_EMP_NAME', name)
|
|
commit('SET_DEPT_ID', deptId)
|
|
|
|
if (!deptId) {
|
|
console.warn('该人员未绑定部门')
|
|
return
|
|
}
|
|
|
|
// 3. 获取部门信息
|
|
const deptRes = await getDepartment(deptId)
|
|
if (deptRes.data) {
|
|
commit('SET_DEPT_NAME', deptRes.data.departmentTitle)
|
|
} else {
|
|
console.warn(`未查询到该人员所属部门: ${deptId}`)
|
|
}
|
|
|
|
return deptRes
|
|
} catch (error) {
|
|
console.error('获取员工信息失败:', error)
|
|
throw error
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
export default employee |