|
- import { fetchApi } from '@/utils/request';
- import { firstCharToLowerCase, firstCharToUpperCase } from '@/utils/tool';
- import { propertyOf } from 'lodash';
- import dayjs from 'dayjs';
-
- export async function fetchAddressBook(companyId) {
-
- const res = await fetchApi('company/queryCompanyById', { id: companyId });
- const { company: unfixedCompany = {} } = res.Data || {};
- const company = firstCharToLowerCase(unfixedCompany);
- const firnode = node('company', company.id, company.companyName, company);
- firnode.children = await fetchNodes(companyId);
- return [firnode];
- }
-
-
- /**
- * 查询单个节点下的节点列表
- * @param {string} parentNodeId 若为空,则表示查询根节点
- */
- async function fetchNodes(parentNodeId) {
- const resData = await fetchApi('dept/queryDeptsByDeptId', { superId: parentNodeId });
- const nodes = (resData.Data || []).map(d => {
- const data = firstCharToLowerCase(d);
- data.arraySuper = data.levelId.split('-');
- return node('dept', data.id, data.deptName, data);
- });
- if (nodes.length) {
- const childNodesList = await Promise.all(nodes.map(node => fetchNodes(node.id)))
- childNodesList.forEach((childNodes, idx) => {
- const node = nodes[idx];
- if (childNodes.length) {
- node.children = childNodes;
- } else {
- node.isLeaf = true;
- }
- })
- }
- return nodes;
- }
-
- /**
- *
- * @param {string} nodeType 节点类型 company | other
- * @param {*} id
- * @param {*} label
- * @param {*} data
- * @param {*} topNodeId
- * @param {*} isLeaf
- * @param {*} disabled
- */
- function node(nodeType, id, label, data = {}, topNodeId, isLeaf = false, disabled = false) {
- return {
- id,
- label,
- // topNodeId,
- nodeType,
- isLeaf,
- disabled,
- data,
- }
- }
-
- /**
- * 添加部门
- */
- export async function createDepartment(lowercaseParams) {
- const params = firstCharToUpperCase(lowercaseParams);
- return await fetchApi('dept/addDept', params);
- }
-
-
- /**
- * 查询指定 部门/企业 下的通讯录
- * @param {} node
- * @param {*} page
- * @param {*} pageSize
- */
- export async function getUserListByNode(node, page, pageSize, keywords) {
- const res = await (keywords
- ? fetchApi('user/fuzzyQueryUserOnOneCompany', { companyId: node.id, fuzzy: keywords /* pageIndex: page, pageSize */ })
- : fetchApi('user/queryUsersByDeptId', { deptId: node.id, idType: node.nodeType === 'company' ? 0 : 1, pageIndex: page, pageSize }));
- const { data: list, total } = res.Data || {};
- return {
- list: list.map(firstCharToLowerCase),
- page,
- pageSize,
- total,
- }
- }
-
-
- export async function getUserInfo(userId) {
- const res = await fetchApi('user/queryUserByUserId', { id: userId });
- const data = firstCharToLowerCase(Object.assign({}, propertyOf(res)('Data.UserExt', {}), res.Data || {}));
- data.roleName = roleMap[data.permission] || '';
- data.backgroundRoleName = consoleRoleMap[data.backgroundPermission] || '';
- data.userState = stateMap[data.staffStatus] || '';
- data.isDeparture = data.staffStatus;
- return data;
- }
-
- export const roleOptions = [
- { value: 99, label: "无权限" },
- { value: 0, label: "普通职员" },
- { value: 1, label: "项目负责人" },
- ];
- export const roleMap = roleOptions.reduce((h, { value, label }) => (h[value] = label, h), {});
-
- export const consoleRoleOptions = [
- { value: 99, label: "无权限" },
- { value: 2, label: "企业管理员" },
- ];
-
- export const consoleRoleMap = consoleRoleOptions.reduce((h, { value, label }) => (h[value] = label, h), {});
-
- export const stateOptions = [
- { value: 0, label: "在职" },
- { value: 1, label: "离职" },
- ];
-
- export const stateMap = stateOptions.reduce((h, { value, label }) => (h[value] = label, h), {});
-
-
- /* 员工接口 */
- export async function addUser(lowerCaseParams) {
- const params = firstCharToUpperCase({ ...lowerCaseParams });
- // 字段传值修正
- params.Birthday && (params.Birthday = dayjs(params.Birthday).toISOString());
- params.DepartureDate && (params.DepartureDate = dayjs(params.DepartureDate).toISOString());
- params.GradutionDate && (params.GradutionDate = dayjs(params.GradutionDate).toISOString());
- params.HireDate && (params.HireDate = dayjs(params.HireDate).toISOString());
- const userExt = {
- Address: params.Address,
- Birthday: params.Birthday,
- DepartureDate: params.DepartureDate,
- Education: params.Education,
- GradutionDate: params.GradutionDate,
- GradutionSchool: params.GradutionSchool,
- HireDate: params.HireDate,
- // Id: params.Id,
- MaritalStatus: params.MaritalStatus,
- National: params.National,
- NativePlace: params.NativePlace,
- PoliticalLandscape: params.PoliticalLandscape,
- Specialty: params.Specialty,
- StaffStatus: params.IsDeparture,
- };
- params.UserExt = userExt;
- const res = await fetchApi('user/addUser', params);
- return res;
- }
-
- /* 员工接口 */
- export async function updateUser(lowerCaseParams) {
- const params = firstCharToUpperCase({ ...lowerCaseParams });
- // 字段传值修正
- params.Birthday && (params.Birthday = dayjs(params.Birthday).toISOString());
- params.DepartureDate && (params.DepartureDate = dayjs(params.DepartureDate).toISOString());
- params.GradutionDate && (params.GradutionDate = dayjs(params.GradutionDate).toISOString());
- params.HireDate && (params.HireDate = dayjs(params.HireDate).toISOString());
- const userExt = {
- Address: params.Address,
- Birthday: params.Birthday,
- DepartureDate: params.DepartureDate,
- Education: params.Education,
- GradutionDate: params.GradutionDate,
- GradutionSchool: params.GradutionSchool,
- HireDate: params.HireDate,
- Id: params.Id,
- MaritalStatus: params.MaritalStatus,
- National: params.National,
- NativePlace: params.NativePlace,
- PoliticalLandscape: params.PoliticalLandscape,
- Specialty: params.Specialty,
- StaffStatus: params.IsDeparture,
- };
- params.UserExt = userExt;
- console.log(params);
-
- const res = await fetchApi('user/updateUser', params);
- return res;
- }
-
-
- export async function updateUserAvator(userInfo, avatorServerPath) {
- const userInfoCopy = Object.assign({}, userInfo,{ headImgUrl: avatorServerPath });
- return await updateUser(userInfoCopy);
- }
|