/** * 页面公用逻辑函数 */ import { common } from '@/utils'; import * as record from '@/pagesPatient/service/record/index'; import getState from './getState'; import { useIsToAuthPage, useGetDefaultMember } from '@/uni-app-base/hook'; const app = getApp(); export default { /** * 搜索科室、医生 历史医生 科室医生列表点击 进入clinic页面时的路径处理 * page为 yyghClinicMsg 跳转到挂号页(需要判断有无就诊人) * page为 yyghDoctorList 跳转到医生列表页 (点击搜索科室时) * 从医生列表进入时 selectedIndex参数有值 需要带入挂号页 * selectedIndex有值时必须传serviceId */ async handleRouter(e: any, page: string, serviceId: string, selectedIndex?: any) { let item = e.currentTarget ? e.currentTarget.dataset.item : e; app.globalData.queryBean = item; let url = `/pagesPatient/st1/business/yygh/${page}/${page}?serviceId=${serviceId || 0}`; if (selectedIndex != undefined) { url = url + `&selectedIndex=${selectedIndex}`; } if (page == 'yyghClinicMsg') { /**跳转到挂号页面 需要判断就诊人 和公众号授权*/ if (useIsToAuthPage()) { return; } // 获取当前设置的患者信息 判断是否可以无卡预约 取不同的值允许无卡预约或者默认就诊人信息 否者获取就诊卡信息,如当前默认就诊人无就诊卡,跳转选卡界面 let lastOperatorResp = await useGetDefaultMember({ cardType: app.globalData.withoutCard ? '' : '1', url: url, isKeepPage: true, }); // 判断返回的操作人为null 代表跳转选择界面了 if (lastOperatorResp === null) return; if (common.isEmpty(lastOperatorResp)) { app.globalData.toUrl = url; //保存添加成功后跳转地址 app.globalData.cardType = app.globalData.withoutCard ? '' : '1'; //保存添加成功,要查询的默认人信息 url = `/pagesPersonal/st1/business/patientManagement/addMember/addMember`; } } common.goToUrl(url); }, /** * 判断是否有待支付订单 */ async hasOrderToBePaid(serviceId: string) { let queryData = { BeginDate: common.dateFormat(new Date(Date.now() - (30 * 24 * 60 * 60 * 1000))).formatYear, //开始时间 EndDate: common.dateFormat(new Date(Date.now() + (24 * 60 * 60 * 1000))).formatYear, //结束时间加一天 MemberId: app.globalData.currentUser && app.globalData.currentUser.memberId, Store: { cardEncryptionStore: app.globalData.currentUser.encryptionStore || '', baseMemberEncryptionStore: app.globalData.currentUser.baseMemberEncryptionStore }, BizState: '0', OverState: '0', PayState: '0', ServiceId: serviceId, CardNo: '', CardType: '', Page: { PIndex: 0, PSize: 10 } }; let listResp = await record.orderListLocal(queryData); listResp = (listResp || []).filter((item: any) => item.IsOnlinePay == '1'); if (!common.isEmpty(listResp)) { /**默认跳转预约挂号 预约挂号查询时传入0和009 与case判断不符 默认为预约记录路径*/ let url = `/pagesPatient/st1/business/pay/payMent/payMent?orderId=${listResp[0].OrderId}`; switch (serviceId) { /**门诊住院充值 */ case '006': case '007': url = `/pagesPatient/st1/business/record/topUpRecord/topUpRecord?serviceId=${serviceId}`; break; /**门诊结算 */ case '011': case '008': url = `/pagesPatient/st1/business/record/settlementRecord/settlementRecord`; break; } common.showModal(`您当前存在待支付订单,请前往订单管理中进行处理,谢谢您的合作!`, () => { common.goToUrl(url); }, { cancelText: '取消' }); return true; } return false; }, /** * 获取订单列表 * serviceId * pIndex 默认查询第0页 */ async orderListLocal(queryData: any) { let listResp = await record.orderListLocal(queryData); let showNoData = true; let list: any[] = []; if (!common.isEmpty(listResp)) { listResp.map((item: any) => { // 获取转换后转态 item.StateObj = getState.getOrderStateName(item.ServiceId, item.IsOnlinePay, item.PayState, item.BizState, item.OverState); if (!common.isEmpty(item.OrderMemo)) { item.OrderMemo = JSON.parse(item.OrderMemo); item.OrderMemo.formatWeek = common.dateFormat(new Date(item.OrderMemo.RegDate)).week; } }); } // 预约记录过滤已锁号 listResp = (listResp || []).filter((item: any) => item && item.StateObj.stateName != '已锁号'); if (!common.isEmpty(listResp)) { list = listResp; showNoData = false; } return { list, showNoData }; }, /** * 取消订单 */ cancelOrder(item: any, callback: any) { /**取消订单 */ common.showModal('是否确定取消该订单?', async () => { let orderCancelData = { OperatorName: item.OperatorName, OperatorId: item.OperatorId, OrderId: item.OrderId }; let resp = await record.orderCancel(orderCancelData, item.ServiceId); if (!common.isEmpty(resp)) { /**取消成功 */ common.showModal('订单已取消', callback, { confirmText: '好的' }); } }, { cancelText: '取消', confirmText: '确定' }); } };