user.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import type { SystemModel, TransformData } from '#/api';
  2. import { fromRole, fromRow, toRole } from '#/api/model';
  3. export function fromUser(data?: TransformData): SystemModel.User {
  4. return {
  5. ...fromRow(data),
  6. id: data?.id,
  7. access: data?.userid,
  8. name: data?.username,
  9. worker: data?.jobnumber,
  10. mobile: data?.mobile,
  11. pid: data?.pid,
  12. roles: data?.roles?.map((item: TransformData) => fromRole(item)) ?? [],
  13. sititutionId: data?.sititutionId,
  14. status: data?.stateSel === 0 || data?.stateSel === '0' ? 0 : 1,
  15. hospitalName: data?.hospitalName,
  16. roleNames:
  17. data?.roles?.map((item: TransformData) => item.rolename).join(',') ?? '',
  18. createUser: data?.createUser,
  19. };
  20. }
  21. export function toUser(data?: Partial<SystemModel.User>): TransformData {
  22. const roles =
  23. data?.roles?.map((item) =>
  24. typeof item === 'string' ? { pid: item } : toRole(item),
  25. ) ?? [];
  26. return {
  27. pid: data?.pid,
  28. userid: data?.access,
  29. username: data?.name,
  30. password: data?.password,
  31. jobnumber: data?.worker,
  32. mobile: data?.mobile,
  33. hospitalName: data?.hospitalName,
  34. roles: roles.length > 0 ? roles : void 0,
  35. roleIds: roles.map((item) => item.pid).join(',') || void 0,
  36. sititutionId: data?.sititutionId,
  37. // 查询时:当 status 为空/undefined 时传 null;创建/编辑时为 0/1 则直传
  38. stateSel:
  39. data?.status === 0 || data?.status === 1 ? (data.status as 0 | 1) : null,
  40. };
  41. }