user.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. import type { SystemModel, TransformData } from '#/api';
  2. import { fromRole, fromRow } from '#/api/model';
  3. export function fromUser(data?: TransformData): SystemModel.User {
  4. const userId = data?.userId ?? data?.pid ?? data?.id;
  5. const id = userId === undefined || userId === null ? '' : String(userId);
  6. return {
  7. ...fromRow({
  8. ...data,
  9. id,
  10. createUser: data?.createBy ?? data?.createUser,
  11. createTime: data?.createTime,
  12. }),
  13. id,
  14. access: data?.userName ?? data?.userid,
  15. name: data?.nickName ?? data?.username,
  16. worker: data?.jobnumber,
  17. mobile: data?.phonenumber ?? data?.mobile,
  18. phone: data?.phonenumber ?? data?.mobile ?? data?.phone,
  19. pid: id,
  20. roles: data?.roles?.map((item: TransformData) => fromRole(item)) ?? [],
  21. sititutionId:
  22. data?.deptId === undefined || data?.deptId === null
  23. ? data?.sititutionId
  24. : String(data.deptId),
  25. status:
  26. data?.status === 0 ||
  27. data?.status === '0' ||
  28. data?.stateSel === 0 ||
  29. data?.stateSel === '0'
  30. ? 0
  31. : 1,
  32. hospitalName: data?.dept?.deptName ?? data?.hospitalName,
  33. roleNames:
  34. data?.roles
  35. ?.map(
  36. (item: TransformData) => item.roleName ?? item.rolename ?? item.name,
  37. )
  38. .filter(Boolean)
  39. .join(',') ?? '',
  40. userType: data?.userType,
  41. remark: data?.remark,
  42. createUser: data?.createBy ?? data?.createUser,
  43. };
  44. }
  45. export function toUser(data?: Partial<SystemModel.User>): TransformData {
  46. const roleIds =
  47. data?.roles
  48. ?.map((item) => {
  49. if (typeof item === 'string' || typeof item === 'number') return item;
  50. return item.id ?? item.pid;
  51. })
  52. .filter((item) => item !== undefined && item !== '') ?? [];
  53. const userId = data?.pid ?? data?.id;
  54. const status =
  55. data?.status === 0 || data?.status === 1
  56. ? String(data.status)
  57. : undefined;
  58. return {
  59. userId: userId || void 0,
  60. userName: data?.access,
  61. nickName: data?.name,
  62. password: data?.password,
  63. jobnumber: data?.worker,
  64. phonenumber: data?.phone ?? data?.mobile,
  65. deptId: data?.sititutionId,
  66. roleIds: roleIds.length > 0 ? roleIds : void 0,
  67. status,
  68. userType: data?.userType,
  69. remark: data?.remark,
  70. // 兼容旧接口查询
  71. pid: userId || void 0,
  72. userid: data?.access,
  73. username: data?.name,
  74. mobile: data?.phone ?? data?.mobile,
  75. sititutionId: data?.sititutionId,
  76. stateSel: status === undefined ? null : (Number(status) as 0 | 1),
  77. };
  78. }