index.ts 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. import { common } from '../../../utils';
  2. import store from '../../../store';
  3. import { usePreserMember } from '../use-preser-member';
  4. import { queryMemberCardList_V3 } from '../common';
  5. // cardType (type为获取默认操作人,才有效果,1:获取默认人下默认就诊卡;14:取默认人下默认住院号)
  6. const getMember = async (type = 'memberList', cardType = 1) => {
  7. // type 值
  8. // memberList: 查询就诊人列表,仅返回就诊人列表
  9. // cardList: 查询就诊人列表并循环查询卡列表,返回所有就诊人下的所有卡
  10. // defaultList: 查询就诊人列表,返回所有人列表,如果有默认就诊人就返回默认就诊人的就诊卡,如果没有就选第0条
  11. // defaultInfo: 获取默认人下的所有卡,搭配cardType并过滤不是默认卡,仅返回默认cardTyp类型组合的一个对象
  12. return new Promise(async (resolve, reject) => {
  13. let resp = store.state.memberList || [];
  14. let memberList = [];
  15. let currentUser = {} as any;
  16. if (!resp.length && getApp().globalData.userAccount) {
  17. await usePreserMember();
  18. resp = store.state.memberList;
  19. }
  20. if (common.isNotEmpty(resp)) {
  21. memberList = resp;
  22. // 判断为获取默认就诊人
  23. if (type == 'defaultInfo') {
  24. let memberLists = memberList.filter((item) => item.userMemberList[0].isDefaultMember == 1);
  25. // 判断过滤默认操作人
  26. if (common.isNotEmpty(memberLists)) {
  27. currentUser = memberLists[0];
  28. } else {
  29. // 没有默认操作人查询人列表第一条
  30. currentUser = memberList[0];
  31. }
  32. if (common.isNotEmpty(cardType)) {
  33. let resp = await queryMemberCardList_V3(currentUser.memberId);
  34. if (common.isNotEmpty(resp)) {
  35. currentUser.data_1 = resp;
  36. }
  37. }
  38. resolve(currentUser);
  39. }
  40. // 判断为获取默认列表 返回所有人列表,如果有默认就诊人就返回默认就诊人的就诊卡,如果没有就选第0条
  41. if (type == 'defaultList') {
  42. let memberListIndex = 0;
  43. let userInfo = memberList[memberListIndex];
  44. memberList.forEach((item, index) => {
  45. if (item.userMemberList[0].isDefaultMember == 1) {
  46. userInfo = item;
  47. memberListIndex = index;
  48. }
  49. });
  50. let resp = await queryMemberCardList_V3(userInfo.memberId);
  51. if (common.isNotEmpty(resp)) {
  52. memberList[memberListIndex].data_1 = resp;
  53. }
  54. resolve(memberList);
  55. }
  56. // 判断为获取所有人下所有卡列数据
  57. if (type == 'cardList') {
  58. for (var item of memberList) {
  59. let resp = await queryMemberCardList_V3(item.memberId);
  60. if (common.isNotEmpty(resp)) {
  61. item.Data_1 = resp;
  62. } else {
  63. item.Data_1 = [];
  64. }
  65. }
  66. }
  67. resolve(memberList);
  68. } else {
  69. resolve([]);
  70. }
  71. });
  72. };
  73. const currentUsersFilter = async (currentUsers, cardType) => {
  74. return new Promise(async (resolve, reject) => {
  75. let currentUser = {};
  76. let cardUser = {};
  77. // 判断存在数据进行过滤
  78. if (currentUsers.data_1) {
  79. let cardDataList = [];
  80. for (var item of currentUsers.data_1) {
  81. if (item.cardType == cardType) {
  82. cardDataList.push(item);
  83. }
  84. if (item.isDefault == 1 && item.cardType == cardType) {
  85. cardUser = item;
  86. }
  87. }
  88. if (common.isEmpty(cardUser)) {
  89. cardUser = cardDataList[0];
  90. }
  91. if (common.isNotEmpty(cardUser)) {
  92. currentUser = common.mergeObject(currentUsers, cardUser);
  93. // {
  94. // ...currentUsers,
  95. // ...cardUser,
  96. // // cardNo:cardUser.cardNo,
  97. // // cardType:cardUser.cardType,
  98. // // encryptionStore:cardUser.encryptionStore
  99. // }
  100. } else {
  101. if (common.isEmpty(cardType)) {
  102. currentUser = currentUsers;
  103. }
  104. }
  105. } else if (common.isNotEmpty(currentUsers)) {
  106. currentUser = currentUsers;
  107. }
  108. resolve(currentUser);
  109. });
  110. };
  111. export const useGetDefaultMember = async (data: any = {}) => {
  112. getApp().globalData.cardType = null;
  113. let member = {} as any;
  114. let defaultInfo = await getMember('defaultInfo', data.cardType);
  115. if (!common.isEmpty(defaultInfo)) {
  116. member = await currentUsersFilter(defaultInfo, data.cardType);
  117. // 判断返回为空 或者 要查询到的是有卡类型的,当时过滤时返回的是没有的卡号的
  118. if (
  119. common.isEmpty(member) ||
  120. (common.isNotEmpty(data.cardType) && common.isEmpty(member.cardNo))
  121. ) {
  122. if (common.isNotEmpty(data.url)) {
  123. getApp().globalData.toUrl = data.url;
  124. }
  125. let type = data.cardType == 1 ? 'card' : data.cardType == 14 ? 'hospital' : 'member';
  126. let skipWay = data.isKeepPage ? 'navigateTo' : 'redirectTo';
  127. common.goToUrl(
  128. `/pagesPersonal${
  129. uni.getStorageSync('wx_Slb') ? 'Slb' : ''
  130. }/st1/business/patientManagement/selecteCardOrHos/selecteCardOrHos?type=${type}`,
  131. {
  132. skipWay: skipWay,
  133. }
  134. );
  135. return null;
  136. }
  137. }
  138. store.commit('setCurrentUse', member);
  139. return member;
  140. };