request.ts 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import { Get, Post } from "../../lib/request/method";
  2. import dayjs from "dayjs";
  3. const ref = ['province', 'city', 'area'] as const;
  4. const ref2 = ['womenSpecialPeriod', 'foodAllergy', 'hobbyFlavor', 'job'] as const;
  5. function to(params: App.Patient.Model) {
  6. const { address, ..._data } = params;
  7. const data: Record<string, any> = {}
  8. if (Array.isArray(address)) {
  9. address.forEach(({ name, code }, index) => {
  10. const key = ref[index];
  11. data[`${key}Name`] = name
  12. data[`${key}Code`] = code
  13. })
  14. }
  15. for (const key of ref2) {
  16. if (Array.isArray(_data[key])) _data[key] = _data[key]?.map(item => item?.value || item).join(',') as any;
  17. }
  18. return { ..._data, ...data, }
  19. }
  20. function from(params: Record<string, any>) {
  21. const address = [];
  22. for (const key of ref) {
  23. const name = params[`${key}Name`];
  24. const code = params[`${key}Code`];
  25. if (name && code) {
  26. address[address.length] = { name, code };
  27. delete params[`${key}Name`];
  28. delete params[`${key}Code`];
  29. } else {
  30. break;
  31. }
  32. }
  33. for (const key of ref2) {
  34. if (typeof params[key] === 'string' && params[key]) params[key] = params[key].split(',')
  35. }
  36. return { ...params, address } as App.Patient.Model
  37. }
  38. export function getUserInfoMethod() {
  39. return Post(`/patientInfoManage/getPatientInfoDetail`, {}, {
  40. transform({ data }) {
  41. return from(<any>data)
  42. }
  43. })
  44. }
  45. export function createUserInfoMethod(data: App.Patient.Model) {
  46. return Post(`/patientInfoManage/savePatientInfo`, { ...to(data), mobileAccountId: 0, }, {
  47. transform({ data }) { return { patientId: data } }
  48. });
  49. }
  50. // 手机号注册
  51. export function createPhoneRegister(data: App.Patient.Model) {
  52. return Get(`/mobileAccountManage/phoneRegister`, { params: { ...to(data) } })
  53. .then(res => ({ patientId: res.data }));
  54. }
  55. export async function updateUserInfoMethod(data: App.Patient.Model) {
  56. const result = await Post(`/patientInfoManage/updatePatientInfo`, to(data));
  57. }
  58. export function verifyCardnoMethod(value: string) {
  59. return Get(`/patientInfoManage/isExistCardno`, { params: { cardno: value }, transform({ data }) { return data } })
  60. }
  61. export async function getUserRecordMethod() {
  62. const { data: $dictionaries } = await Get(`/dict/getDicts`);
  63. const $is: AnyArray = $dictionaries.find((item: AnyObject) => item.dictType === 'sys_yes_no')?.items ?? [];
  64. const $w: AnyArray = $dictionaries.find((item: AnyObject) => item.dictType === 'women_special_period')?.items ?? [];
  65. const $f: AnyArray = $dictionaries.find((item: AnyObject) => item.dictType === 'food_allergy')?.items ?? [];
  66. const $h: AnyArray = $dictionaries.find((item: AnyObject) => item.dictType === 'hobby_flavor')?.items ?? [];
  67. const $j: AnyArray = $dictionaries.find((item: AnyObject) => item.dictType === 'job')?.items ?? [];
  68. const get = (value: string, $dictionaries: AnyArray) => {
  69. return value?.split(',')
  70. .map(value => {
  71. const [v, l] = value.split(':');
  72. return l ? l.trim() : $dictionaries.find(item => item.dictValue === v)?.dictLabel
  73. })
  74. .filter(Boolean)
  75. .join(', ')
  76. }
  77. return Post(`/patientInfoManage/pageChangeRecord`, {}, {
  78. transform({ data }: AnyObject) {
  79. return {
  80. total: data.total,
  81. data: data.data?.map((item: AnyObject) => {
  82. return {
  83. reportTime: dayjs(item.createTime).format('YY/MM/DD'),
  84. height: item.height ? `${item.height}cm` : '',
  85. weight: item.weight ? `${item.weight}kg` : '',
  86. smokeState: get(item.smokeState, $is),
  87. drinkState: get(item.drinkState, $is),
  88. foodAllergy: get(item.foodAllergy, $f),
  89. hobbyFlavor: get(item.hobbyFlavor, $h),
  90. job: get(item.job, $j),
  91. womenSpecialPeriod: get(item.womenSpecialPeriod, $w),
  92. }
  93. })
  94. };
  95. }
  96. })
  97. }