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; };