| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- /**
- * 页面公用逻辑函数
- */
- 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: '确定'
- });
- }
- };
|