user.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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. remark: data?.remark,
  41. createUser: data?.createBy ?? data?.createUser,
  42. };
  43. }
  44. export function toUser(data?: Partial<SystemModel.User>): TransformData {
  45. const roleIds =
  46. data?.roles
  47. ?.map((item) => {
  48. if (typeof item === 'string' || typeof item === 'number') return item;
  49. return item.id ?? item.pid;
  50. })
  51. .filter((item) => item !== undefined && item !== '') ?? [];
  52. const userId = data?.pid ?? data?.id;
  53. const status =
  54. data?.status === 0 || data?.status === 1
  55. ? String(data.status)
  56. : undefined;
  57. return {
  58. userId: userId || void 0,
  59. userName: data?.access,
  60. nickName: data?.name,
  61. password: data?.password,
  62. jobnumber: data?.worker,
  63. phonenumber: data?.phone ?? data?.mobile,
  64. deptId: data?.sititutionId,
  65. roleIds: roleIds.length > 0 ? roleIds : void 0,
  66. status,
  67. remark: data?.remark,
  68. // 兼容旧接口查询
  69. pid: userId || void 0,
  70. userid: data?.access,
  71. username: data?.name,
  72. mobile: data?.phone ?? data?.mobile,
  73. sititutionId: data?.sititutionId,
  74. stateSel: status === undefined ? null : (Number(status) as 0 | 1),
  75. };
  76. }