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({ url: adminPath + '/intimacy/list' }); /** * 批量修改亲密度配置 */ export const modifyIntimacy = (data: IntimacyConfigDTO[]) => defHttp.postJson( { url: adminPath + '/intimacy/modify', data }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 获取特殊日期列表 */ export const listSpecialDateConfig = () => defHttp.get>( { url: adminPath + '/sdc/list' }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 新增特殊日期 */ export const createSpecialDateConfig = (data: Record) => defHttp.postJson( { url: adminPath + '/sdc/create', data }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 更新特殊日期 */ export const updateSpecialDateConfig = (data: Record) => defHttp.postJson( { url: adminPath + '/sdc/update', data }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 删除特殊日期 */ export const deleteSpecialDateConfig = (id: string | number) => defHttp.get( { url: adminPath + '/sdc/delete', params: { id } }, { skipSuccessMessage: true, skipErrorMessage: true }, ); // ==================== 人员基本信息管理 ==================== /** * 创建或更新人员信息 */ export const createPersonBasicInfo = (data: PersonBasicInfoDTO) => defHttp.postJson( { url: adminPath + '/pbi/create', data }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 删除人员信息 */ export const deletePersonBasicInfo = (personName: string) => defHttp.delete( { url: adminPath + '/pbi/delete', params: { personName } }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 更新人员信息 */ export const updatePersonBasicInfo = (data: PersonBasicInfoDTO) => defHttp.postJson( { url: adminPath + '/pbi/update', data }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 获取所有人员信息 */ export const getPersons = () => defHttp.get( { 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( { url: adminPath + '/pbi/personOrder', data }, { skipSuccessMessage: true, skipErrorMessage: true }, ); // ==================== 人员分组管理 ==================== /** * 获取分组列表 */ export const listPersonGroups = () => defHttp .get({ url: adminPath + '/pg/list' }, { skipErrorMessage: true }) .then((list) => (Array.isArray(list) ? list.map(normalizePersonGroup) : [])); /** * 创建分组 */ export const createPersonGroup = (data: PersonGroup) => defHttp.postJson( { url: adminPath + '/pg/create', data: normalizePersonGroupRequest(data) }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 更新分组信息 */ export const updatePersonGroup = (data: PersonGroup) => defHttp.postJson( { url: adminPath + '/pg/update', data: normalizePersonGroupRequest(data) }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 删除分组 */ export const deletePersonGroup = (id: string) => defHttp.postJson( { url: adminPath + '/pg/delete', data: { id } }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 添加人员到分组 */ export const addPersonToGroup = (data: AddPersonGroupDTO) => defHttp.postJson( { url: adminPath + '/pg/addPerson', data }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 从分组删除人员 */ export const remPersonFromGroup = (relId: string) => defHttp.delete( { url: adminPath + '/pg/remPerson', params: { relId } }, { skipSuccessMessage: true, skipErrorMessage: true }, ); /** * 变更主要人员 */ export const changeMainPerson = (relId: string, groupId: string) => defHttp.get( { url: adminPath + '/pg/changeMain', params: { relId, groupId } }, { skipSuccessMessage: true, skipErrorMessage: true }, );