| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- import { defHttp } from '@jeesite/core/utils/http/axios';
- import { useGlobSetting } from '@jeesite/core/hooks/setting';
- import {
- AddPersonGroupDTO,
- IntimacyConfigDTO,
- PersonBasicInfo,
- PersonBasicInfoDTO,
- PersonGroup,
- PersonGroupRel,
- } from './types/dto';
- const { adminPath } = useGlobSetting();
- const normalizeHasMainValue = (value?: PersonGroupRel['hasMain']) => value === true || value === 'Y';
- const normalizePersonGroup = (group: PersonGroup): PersonGroup => ({
- ...group,
- personList: (group.personList || []).map((item) => ({
- ...item,
- hasMain: normalizeHasMainValue(item.hasMain),
- })),
- });
- const normalizePersonGroupRequest = (group: PersonGroup) => ({
- ...group,
- personList: (group.personList || []).map((item) => ({
- ...item,
- hasMain: normalizeHasMainValue(item.hasMain) ? 'Y' : 'N',
- })),
- });
- // ==================== 亲密度管理 ====================
- /**
- * 获取亲密度配置列表
- */
- export const listIntimacy = () => defHttp.get<IntimacyConfigDTO[]>({ url: adminPath + '/intimacy/list' });
- /**
- * 批量修改亲密度配置
- */
- export const modifyIntimacy = (data: IntimacyConfigDTO[]) =>
- defHttp.postJson<void>(
- { url: adminPath + '/intimacy/modify', data },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 获取特殊日期列表
- */
- export const listSpecialDateConfig = () =>
- defHttp.get<Record<string, any>>(
- { url: adminPath + '/sdc/list' },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 新增特殊日期
- */
- export const createSpecialDateConfig = (data: Record<string, any>) =>
- defHttp.postJson<void>(
- { url: adminPath + '/sdc/create', data },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 更新特殊日期
- */
- export const updateSpecialDateConfig = (data: Record<string, any>) =>
- defHttp.postJson<void>(
- { url: adminPath + '/sdc/update', data },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 删除特殊日期
- */
- export const deleteSpecialDateConfig = (id: string | number) =>
- defHttp.get<void>(
- { url: adminPath + '/sdc/delete', params: { id } },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- // ==================== 人员基本信息管理 ====================
- /**
- * 创建或更新人员信息
- */
- export const createPersonBasicInfo = (data: PersonBasicInfoDTO) =>
- defHttp.postJson<void>(
- { url: adminPath + '/pbi/create', data },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 删除人员信息
- */
- export const deletePersonBasicInfo = (personName: string) =>
- defHttp.delete<void>(
- { url: adminPath + '/pbi/delete', params: { personName } },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 更新人员信息
- */
- export const updatePersonBasicInfo = (data: PersonBasicInfoDTO) =>
- defHttp.postJson<void>(
- { url: adminPath + '/pbi/update', data },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 获取所有人员信息
- */
- export const getPersons = () =>
- defHttp.get<PersonBasicInfo[]>(
- { url: adminPath + '/pbi/getPersons', timeout: 8000 },
- { isShowLoading: false, errorMessageMode: 'none' },
- );
- /**
- * 获取人员下拉选项
- */
- export const getPersonOptions = async (withAll = true) => {
- const list = await getPersons();
- const options = (Array.isArray(list) ? list : []).map((item) => ({
- label: item.personName || '-',
- value: item.personName || '',
- }));
- if (withAll) {
- options.unshift({ label: '全部', value: 'all' });
- }
- return options;
- };
- /**
- * 设置人员排序
- */
- export const personOrder = (data: PersonBasicInfo[]) =>
- defHttp.postJson<void>(
- { url: adminPath + '/pbi/personOrder', data },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- // ==================== 人员分组管理 ====================
- /**
- * 获取分组列表
- */
- export const listPersonGroups = () =>
- defHttp
- .get<PersonGroup[]>({ url: adminPath + '/pg/list' }, { skipErrorMessage: true })
- .then((list) => (Array.isArray(list) ? list.map(normalizePersonGroup) : []));
- /**
- * 创建分组
- */
- export const createPersonGroup = (data: PersonGroup) =>
- defHttp.postJson<void>(
- { url: adminPath + '/pg/create', data: normalizePersonGroupRequest(data) },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 更新分组信息
- */
- export const updatePersonGroup = (data: PersonGroup) =>
- defHttp.postJson<void>(
- { url: adminPath + '/pg/update', data: normalizePersonGroupRequest(data) },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 删除分组
- */
- export const deletePersonGroup = (id: string) =>
- defHttp.postJson<void>(
- { url: adminPath + '/pg/delete', data: { id } },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 添加人员到分组
- */
- export const addPersonToGroup = (data: AddPersonGroupDTO) =>
- defHttp.postJson<void>(
- { url: adminPath + '/pg/addPerson', data },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 从分组删除人员
- */
- export const remPersonFromGroup = (relId: string) =>
- defHttp.delete<void>(
- { url: adminPath + '/pg/remPerson', params: { relId } },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
- /**
- * 变更主要人员
- */
- export const changeMainPerson = (relId: string, groupId: string) =>
- defHttp.get<void>(
- { url: adminPath + '/pg/changeMain', params: { relId, groupId } },
- { skipSuccessMessage: true, skipErrorMessage: true },
- );
|