|
|
@@ -0,0 +1,143 @@
|
|
|
+import { common } from '../../../utils';
|
|
|
+import store from '../../../store';
|
|
|
+import { usePreserMember } from '../use-preser-member';
|
|
|
+import { queryMemberCardList_V3 } from '../common';
|
|
|
+
|
|
|
+// cardType (type为获取默认操作人,才有效果,1:获取默认人下默认就诊卡;14:取默认人下默认住院号)
|
|
|
+const getMember = async (type = 'memberList', cardType = 1) => {
|
|
|
+ // type 值
|
|
|
+ // memberList: 查询就诊人列表,仅返回就诊人列表
|
|
|
+ // cardList: 查询就诊人列表并循环查询卡列表,返回所有就诊人下的所有卡
|
|
|
+ // defaultList: 查询就诊人列表,返回所有人列表,如果有默认就诊人就返回默认就诊人的就诊卡,如果没有就选第0条
|
|
|
+ // defaultInfo: 获取默认人下的所有卡,搭配cardType并过滤不是默认卡,仅返回默认cardTyp类型组合的一个对象
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ let resp = store.state.memberList || [];
|
|
|
+ let memberList = [];
|
|
|
+ let currentUser = {} as any;
|
|
|
+ if (!resp.length && getApp().globalData.userAccount) {
|
|
|
+ await usePreserMember();
|
|
|
+ resp = store.state.memberList;
|
|
|
+ }
|
|
|
+ if (common.isNotEmpty(resp)) {
|
|
|
+ memberList = resp;
|
|
|
+ // 判断为获取默认就诊人
|
|
|
+ if (type == 'defaultInfo') {
|
|
|
+ let memberLists = memberList.filter((item) => item.userMemberList[0].isDefaultMember == 1);
|
|
|
+ // 判断过滤默认操作人
|
|
|
+ if (common.isNotEmpty(memberLists)) {
|
|
|
+ currentUser = memberLists[0];
|
|
|
+ } else {
|
|
|
+ // 没有默认操作人查询人列表第一条
|
|
|
+ currentUser = memberList[0];
|
|
|
+ }
|
|
|
+ if (common.isNotEmpty(cardType)) {
|
|
|
+ let resp = await queryMemberCardList_V3(currentUser.memberId);
|
|
|
+ if (common.isNotEmpty(resp)) {
|
|
|
+ currentUser.data_1 = resp;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resolve(currentUser);
|
|
|
+ }
|
|
|
+ // 判断为获取默认列表 返回所有人列表,如果有默认就诊人就返回默认就诊人的就诊卡,如果没有就选第0条
|
|
|
+ if (type == 'defaultList') {
|
|
|
+ let memberListIndex = 0;
|
|
|
+ let userInfo = memberList[memberListIndex];
|
|
|
+ memberList.forEach((item, index) => {
|
|
|
+ if (item.userMemberList[0].isDefaultMember == 1) {
|
|
|
+ userInfo = item;
|
|
|
+ memberListIndex = index;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ let resp = await queryMemberCardList_V3(userInfo.memberId);
|
|
|
+ if (common.isNotEmpty(resp)) {
|
|
|
+ memberList[memberListIndex].data_1 = resp;
|
|
|
+ }
|
|
|
+ resolve(memberList);
|
|
|
+ }
|
|
|
+ // 判断为获取所有人下所有卡列数据
|
|
|
+ if (type == 'cardList') {
|
|
|
+ for (var item of memberList) {
|
|
|
+ let resp = await queryMemberCardList_V3(item.memberId);
|
|
|
+ if (common.isNotEmpty(resp)) {
|
|
|
+ item.Data_1 = resp;
|
|
|
+ } else {
|
|
|
+ item.Data_1 = [];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ resolve(memberList);
|
|
|
+ } else {
|
|
|
+ resolve([]);
|
|
|
+ }
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+const currentUsersFilter = async (currentUsers, cardType) => {
|
|
|
+ return new Promise(async (resolve, reject) => {
|
|
|
+ let currentUser = {};
|
|
|
+ let cardUser = {};
|
|
|
+ // 判断存在数据进行过滤
|
|
|
+ if (currentUsers.data_1) {
|
|
|
+ let cardDataList = [];
|
|
|
+ for (var item of currentUsers.data_1) {
|
|
|
+ if (item.cardType == cardType) {
|
|
|
+ cardDataList.push(item);
|
|
|
+ }
|
|
|
+ if (item.isDefault == 1 && item.cardType == cardType) {
|
|
|
+ cardUser = item;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (common.isEmpty(cardUser)) {
|
|
|
+ cardUser = cardDataList[0];
|
|
|
+ }
|
|
|
+ if (common.isNotEmpty(cardUser)) {
|
|
|
+ currentUser = common.mergeObject(currentUsers, cardUser);
|
|
|
+ // {
|
|
|
+ // ...currentUsers,
|
|
|
+ // ...cardUser,
|
|
|
+ // // cardNo:cardUser.cardNo,
|
|
|
+ // // cardType:cardUser.cardType,
|
|
|
+ // // encryptionStore:cardUser.encryptionStore
|
|
|
+ // }
|
|
|
+ } else {
|
|
|
+ if (common.isEmpty(cardType)) {
|
|
|
+ currentUser = currentUsers;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (common.isNotEmpty(currentUsers)) {
|
|
|
+ currentUser = currentUsers;
|
|
|
+ }
|
|
|
+ resolve(currentUser);
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+export const useGetDefaultMember = async (data: any = {}) => {
|
|
|
+ getApp().globalData.cardType = null;
|
|
|
+ let member = {} as any;
|
|
|
+ let defaultInfo = await getMember('defaultInfo', data.cardType);
|
|
|
+ if (!common.isEmpty(defaultInfo)) {
|
|
|
+ member = await currentUsersFilter(defaultInfo, data.cardType);
|
|
|
+ // 判断返回为空 或者 要查询到的是有卡类型的,当时过滤时返回的是没有的卡号的
|
|
|
+ if (
|
|
|
+ common.isEmpty(member) ||
|
|
|
+ (common.isNotEmpty(data.cardType) && common.isEmpty(member.cardNo))
|
|
|
+ ) {
|
|
|
+ if (common.isNotEmpty(data.url)) {
|
|
|
+ getApp().globalData.toUrl = data.url;
|
|
|
+ }
|
|
|
+ let type = data.cardType == 1 ? 'card' : data.cardType == 14 ? 'hospital' : 'member';
|
|
|
+ let skipWay = data.isKeepPage ? 'navigateTo' : 'redirectTo';
|
|
|
+ common.goToUrl(
|
|
|
+ `/pagesPersonal${
|
|
|
+ uni.getStorageSync('wx_Slb') ? 'Slb' : ''
|
|
|
+ }/st1/business/patientManagement/selecteCardOrHos/selecteCardOrHos?type=${type}`,
|
|
|
+ {
|
|
|
+ skipWay: skipWay,
|
|
|
+ }
|
|
|
+ );
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ store.commit('setCurrentUse', member);
|
|
|
+ return member;
|
|
|
+};
|