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