import { request } from '@eciol/request'; import { ResultEnum } from '@eciol/shared'; import type { RequestOptions } from '@eciol/types'; import { DictionaryService } from './typing'; enum Api { GetDatadicts = '/system-admin/openapi/datadicts', GetLanguageCountryList = '/system-admin/dict/base/language', DictTableSearch = '/system-admin/api/comm-dict-table-search', GetSystemMenu = '/system-admin/common/application-menus', GetAllOrganOptions = '/system-admin/common/all-companys', SearchOrganOptions = '/system-admin/common/getCanseeCompanys', } enum MenuTypeEnum { SYSTEM = '1', DIRECTORY = '2', MENU = '3', BUTTON = '4', } class DictionaryApi { /** * @description 获取数据字典数据(开放api) * @returns { DictionaryService.GetDatadictsResult } 字典列表,包含中英文 */ getDatadicts = () => { return request.post( { url: Api.GetDatadicts, }, { showLoading: false, joinPrefix: false, getResultEnum: () => ResultEnum as any, }, ); }; /** * @description 获取语种和国家字典列表 * @returns { DictionaryService.GetLanguageCountryListResult } 语种和国家列表 */ getLanguageCountryList = () => { return request.get( { url: Api.GetLanguageCountryList, }, { showLoading: false, joinPrefix: false, getResultEnum: () => ResultEnum as any, }, ); }; /** * @description 通用数据字典类的表数据查询 * @returns { DictionaryService.DictTableSearchResult } 查询结果 */ dictTableSearch = (data: DictionaryService.DictTableSearchParams) => { return request.post( { url: Api.DictTableSearch, data, }, { showLoading: false, joinPrefix: false, getResultEnum: () => ResultEnum as any, }, ); }; /** * @description 获取当前人在指定应用系统里的菜单权限列表(请求内容须包含:applicationCode) * @returns { DictionaryService.GetSystemMenuResult } 后端路由菜单,包含中英文 */ getSystemMenu = (data: { applicationCode: string }, config: RequestOptions = {}) => { return request.post( { url: Api.GetSystemMenu, data, }, { showLoading: false, joinPrefix: false, getResultEnum: () => ResultEnum as any, ...config, }, ); }; /** * @description 获取所有公司下拉列表数据 * @returns { DictionaryService.GetAllOrganOptionsResult } 所有公司下拉列表数据 */ getAllOrganOptions = () => { return request.post( { url: Api.GetAllOrganOptions, }, { showLoading: false, joinPrefix: false, getResultEnum: () => ResultEnum as any, }, ); }; /** * @description 根据条件筛选出能看到的公司列表 * @returns { DictionaryService.GetAllOrganOptionsResult } 公司列表数据 */ searchOrganOptions = (data: DictionaryService.SearchOrganOptionsParams) => { return request.post( { url: Api.SearchOrganOptions, data, }, { showLoading: false, joinPrefix: false, getResultEnum: () => ResultEnum as any, }, ); }; } const dictionaryApi = new DictionaryApi(); export { DictionaryApi, dictionaryApi, MenuTypeEnum }; export type { DictionaryService };