import { payDetail } from "./service"; import { tradePay } from "../../utils/tradePay"; import history from "../../utils/history"; import { reportApi, reportCmPV_YL } from "../../utils/cloudMonitorHelper"; Component({ props: {}, data: { order: { orderItems: [ // { // itemName: '项目名称', // itemNum: 2, // amount: 999.99, // }, ], depName: "", outTradeNo: "", tradeNo: "", type: null, // 1-挂号费订单 2-充值订单 3-诊间缴费订单 userName: "", cardNum: "", amount: 0, createTime: "", payTime: "", payType: null, // 1-自费 2-医保 3-其他 status: null, // 0-待支付 1-已支付 9-已取消 medicareBinded: false, idNum: "", customInfo: "", payDetails: "", payDate: "", doctorName: "", reportRemind: "", checkRemind: "", medicineRemind: "", refundRemind: "", receiptRemind: "", }, // 订单项 fromItem: [ { label: "就诊人", key: "name", }, { label: "就诊卡号", key: "cardNum", }, { label: "就诊科室", key: "depName", }, { label: "医生", key: "doctorName", }, { label: "费用日期", key: "payDate", }, { label: "支付单号", key: "outTradeNo", }, { label: "创建时间", key: "createTime", }, { label: "付款时间", key: "payTime", }, ], medicareExpand: false, expand: false, medicare: { total: 0, own: 0, detail: {}, }, checkRemind: {}, }, didMount() { this.payDetail(this.$page.data.query); /* 服务办结,门诊缴费 */ reportApi("门诊缴费"); /* 服务预警,门诊缴费 */ reportCmPV_YL({ title: "门诊缴费", }); }, methods: { saveSubscribe(ref) { this.subscribe = ref; }, payDetail(send) { payDetail(send).then((data) => { const payDetails = JSON.parse(data.payDetails || "{}"); const detail = payDetails["医保支付"] || {}; let total = 0; Object.entries(detail).forEach(([k, v]) => { detail[k] = numFix(v); total += v * 1; }); this.setData({ order: Object.assign({}, this.data.order, data), medicare: { total: numFix(total), own: numFix(payDetails["自费支付金额"]), detail, }, checkRemind: JSON.parse(data.checkRemind || "{}"), }); }); }, // 查看更多 openForm() { this.setData({ expand: !this.data.expand, }); }, medicareExpand() { this.setData({ medicareExpand: !this.data.medicareExpand, }); }, // 发起支付 async onPay(e) { const { medicareBinded = false } = e.target.dataset; const { order: oreder } = this.data; if (oreder.type === 1) { await tradePay( { type: oreder.type, idNum: oreder.outTradeNo, depName: oreder.depName, }, { tradeType: "Appointment", } ); } else if (oreder.type === 2) { // 充值 await tradePay( { type: oreder.type, idNum: oreder.outTradeNo, amount: oreder.amount, }, { tradeType: "Appointment", } ); } else { // 门诊订单 await tradePay( { useBalance: !medicareBinded, useMedicare: medicareBinded, outTradeNo: oreder.outTradeNo, }, { tradeType: "Outpatient", } ); } // 支付成功刷新页面 this.payDetail(this.$page.data.query); // 支付成功以后,发起消息订阅 this.subscribe.subscribeMessage(); }, hrefTo() { my.ap.navigateToAlipayPage({ path: "alipays://platformapi/startapp?appId=77700284&page=pages/medical/index?chInfo=YY_xiaochengxu", }); }, toH5(e) { const { url } = e.target.dataset; history.toH5(url); }, }, }); function numFix(val) { const num = val * 1; return num.toFixed(2); }