department.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import type { BusinessModel, TransformData } from '#/api';
  2. import { fromRow } from '#/api/model';
  3. export function fromDepartment(data?: TransformData): BusinessModel.Department {
  4. return {
  5. ...fromRow(data),
  6. id: data?.pid,
  7. name: data?.deptName,
  8. code: data?.deptCode,
  9. description: data?.introduce,
  10. organization: data?.hospitalName
  11. ? <any>{
  12. code: data?.hospitalCode,
  13. name: data?.hospitalName,
  14. }
  15. : void 0,
  16. parent: data?.parentDeptName
  17. ? <BusinessModel.Department>{
  18. code: data?.parentDeptCode,
  19. name: data?.parentDeptName,
  20. }
  21. : void 0,
  22. children:
  23. data?.children?.map((item: TransformData) => fromDepartment(item)) ?? [],
  24. registerLink: data?.registerUrl,
  25. };
  26. }
  27. export function toDepartment(
  28. data?: Partial<BusinessModel.Department>,
  29. ): TransformData {
  30. return {
  31. pid: data?.id,
  32. deptName: data?.name,
  33. deptCode: data?.code,
  34. introduce: data?.description,
  35. hospitalName: data?.organization?.name,
  36. parentDeptCode: data?.parent?.code,
  37. parentDeptName: data?.parent?.name,
  38. registerUrl: data?.registerLink,
  39. };
  40. }