|
@@ -3,238 +3,246 @@ import history from "../../utils/history";
|
|
|
import { tradePay } from "../../utils/tradePay";
|
|
|
import { reportCmPV_YL } from "../../utils/cloudMonitorHelper";
|
|
|
import { getSubscribeAuth } from "../../../../core/utils/ywtService";
|
|
|
-Component({
|
|
|
- props: {},
|
|
|
- data: {
|
|
|
- empty: true,
|
|
|
- clinicCard: {},
|
|
|
- filterParams: {
|
|
|
- type: "9",
|
|
|
- cardNum: "",
|
|
|
- endTime: "",
|
|
|
- startTime: "",
|
|
|
- medicCards: [],
|
|
|
- timeShow: false,
|
|
|
- },
|
|
|
-
|
|
|
- /* 赛选项目 */
|
|
|
- typeOptions: [],
|
|
|
- statusOptions: [
|
|
|
- {
|
|
|
- value: "0",
|
|
|
- label: "待支付",
|
|
|
- },
|
|
|
- {
|
|
|
- value: "1",
|
|
|
- label: "已支付",
|
|
|
- },
|
|
|
- ],
|
|
|
- showAll: false,
|
|
|
- showTimeSelector: true,
|
|
|
- showCardSelector: false,
|
|
|
- defaultLabel: "待支付",
|
|
|
- defaultName: "待支付",
|
|
|
- defaultStatus: "待支付",
|
|
|
- },
|
|
|
-
|
|
|
- didMount() {
|
|
|
- /* 服务预警,缴费记录查询 */
|
|
|
- reportCmPV_YL({
|
|
|
- title: "门诊缴费",
|
|
|
- });
|
|
|
- },
|
|
|
- onInit() {},
|
|
|
-
|
|
|
- methods: {
|
|
|
- onFilterHandel(filters) {
|
|
|
- const { status: prevStatus } = this.filters || {};
|
|
|
- const { status: curStatus } = filters || {};
|
|
|
- console.log("status ===>", prevStatus, curStatus);
|
|
|
- if (!this.hisPatientId) return;
|
|
|
- this.filters = filters;
|
|
|
- const { status, startTime, endTime } = this.filters || {};
|
|
|
-
|
|
|
- // 当状态未改变时,做时间筛选校验,拦截请求;当状态被改变时,做时间校验的同时,不拦截请求
|
|
|
-
|
|
|
- // 状态:已支付
|
|
|
- if (status && status === "1") {
|
|
|
- if (!startTime || this.getTimeChange(startTime, endTime, 15)) {
|
|
|
- my.showToast({
|
|
|
- type: "fail",
|
|
|
- content: "请选择15天以内的时间",
|
|
|
- duration: 1500,
|
|
|
- });
|
|
|
- if (prevStatus === curStatus) return;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // 状态:未支付
|
|
|
- if (!status || status === "0") {
|
|
|
- if (!startTime || this.getTimeChange(startTime, endTime, 3)) {
|
|
|
- my.showToast({
|
|
|
- type: "fail",
|
|
|
- content: "请选择3天以内的时间",
|
|
|
- duration: 1500,
|
|
|
- });
|
|
|
- if (prevStatus === curStatus) return;
|
|
|
- }
|
|
|
- }
|
|
|
+import { createSubscribe } from "applet-page-component";
|
|
|
|
|
|
+Component(
|
|
|
+ createSubscribe({
|
|
|
+ async onShow() {
|
|
|
this.scrollRef.refresh();
|
|
|
},
|
|
|
+ })({
|
|
|
+ props: {},
|
|
|
+ data: {
|
|
|
+ empty: true,
|
|
|
+ clinicCard: {},
|
|
|
+ filterParams: {
|
|
|
+ type: "9",
|
|
|
+ cardNum: "",
|
|
|
+ endTime: "",
|
|
|
+ startTime: "",
|
|
|
+ medicCards: [],
|
|
|
+ timeShow: false,
|
|
|
+ },
|
|
|
|
|
|
- saveRef(ref) {
|
|
|
- this.scrollRef = ref;
|
|
|
+ /* 赛选项目 */
|
|
|
+ typeOptions: [],
|
|
|
+ statusOptions: [
|
|
|
+ {
|
|
|
+ value: "0",
|
|
|
+ label: "待支付",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ value: "1",
|
|
|
+ label: "已支付",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ showAll: false,
|
|
|
+ showTimeSelector: true,
|
|
|
+ showCardSelector: false,
|
|
|
+ defaultLabel: "待支付",
|
|
|
+ defaultName: "待支付",
|
|
|
+ defaultStatus: "待支付",
|
|
|
},
|
|
|
|
|
|
- saveSubscribe(ref) {
|
|
|
- this.subscribe = ref;
|
|
|
+ didMount() {
|
|
|
+ /* 服务预警,缴费记录查询 */
|
|
|
+ reportCmPV_YL({
|
|
|
+ title: "门诊缴费",
|
|
|
+ });
|
|
|
},
|
|
|
+ onInit() {},
|
|
|
|
|
|
- getTimeChange(startTime, endTime, len) {
|
|
|
- if (!startTime || !endTime) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- const time1 = Date.parse(startTime);
|
|
|
- const time2 = Date.parse(endTime);
|
|
|
- const timeDiff = time2 - time1;
|
|
|
- const duration = len * 24 * 60 * 60 * 1000;
|
|
|
- return timeDiff < 0 || timeDiff > duration;
|
|
|
- },
|
|
|
+ methods: {
|
|
|
+ onFilterHandel(filters) {
|
|
|
+ const { status: prevStatus } = this.filters || {};
|
|
|
+ const { status: curStatus } = filters || {};
|
|
|
+ if (!this.hisPatientId) return;
|
|
|
+ this.filters = filters;
|
|
|
+ const { status, startTime, endTime } = this.filters || {};
|
|
|
|
|
|
- onService(page) {
|
|
|
- const { status, startTime, endTime } = this.filters || {};
|
|
|
- if (!this.hisPatientId) return;
|
|
|
- return payHistory({
|
|
|
- ...this.filters,
|
|
|
- status: status || "0",
|
|
|
- ...page,
|
|
|
- hisPatientId: this.hisPatientId,
|
|
|
- });
|
|
|
- },
|
|
|
+ // 当状态未改变时,做时间筛选校验,拦截请求;当状态被改变时,做时间校验的同时,不拦截请求
|
|
|
+
|
|
|
+ // 状态:已支付
|
|
|
+ if (status && status === "1") {
|
|
|
+ if (!startTime || this.getTimeChange(startTime, endTime, 15)) {
|
|
|
+ my.showToast({
|
|
|
+ type: "fail",
|
|
|
+ content: "请选择15天以内的时间",
|
|
|
+ duration: 1500,
|
|
|
+ });
|
|
|
+ if (prevStatus === curStatus) return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 状态:未支付
|
|
|
+ if (!status || status === "0") {
|
|
|
+ if (!startTime || this.getTimeChange(startTime, endTime, 3)) {
|
|
|
+ my.showToast({
|
|
|
+ type: "fail",
|
|
|
+ content: "请选择3天以内的时间",
|
|
|
+ duration: 1500,
|
|
|
+ });
|
|
|
+ if (prevStatus === curStatus) return;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- onAutoFilter(patient) {
|
|
|
- if (patient) {
|
|
|
- this.hisPatientId = patient.hisPatientId;
|
|
|
this.scrollRef.refresh();
|
|
|
- }
|
|
|
- },
|
|
|
+ },
|
|
|
|
|
|
- // 进入详情
|
|
|
- toDetail(e) {
|
|
|
- const {
|
|
|
- item: {
|
|
|
- type,
|
|
|
- outTradeNo,
|
|
|
- status,
|
|
|
- tradeNo,
|
|
|
- invoiceNo,
|
|
|
- hisPatientId,
|
|
|
- date,
|
|
|
- depName,
|
|
|
- amount,
|
|
|
- name,
|
|
|
- age,
|
|
|
- sex,
|
|
|
- prescribeDate,
|
|
|
- hisOrderNo,
|
|
|
- doctorName,
|
|
|
- doctorCode,
|
|
|
- total,
|
|
|
- hisClinicCode,
|
|
|
- deptName,
|
|
|
- orderItems,
|
|
|
- },
|
|
|
- } = e.target.dataset;
|
|
|
- history.push({
|
|
|
- title: "缴费详情",
|
|
|
- query: {
|
|
|
- type: type || 0,
|
|
|
- outTradeNo,
|
|
|
- status,
|
|
|
- tradeNo,
|
|
|
- invoiceNo,
|
|
|
- hisPatientId,
|
|
|
- date,
|
|
|
- depName,
|
|
|
- amount,
|
|
|
- name,
|
|
|
- age,
|
|
|
- sex,
|
|
|
- prescribeDate,
|
|
|
- hisOrderNo,
|
|
|
- doctorName,
|
|
|
- doctorCode,
|
|
|
- total,
|
|
|
- hisClinicCode,
|
|
|
- deptName,
|
|
|
- orderItems: encodeURIComponent(JSON.stringify(orderItems || "")),
|
|
|
- },
|
|
|
- pageType: "hospital-payment-detail",
|
|
|
- });
|
|
|
- },
|
|
|
+ saveRef(ref) {
|
|
|
+ this.scrollRef = ref;
|
|
|
+ },
|
|
|
|
|
|
- // 付款
|
|
|
- async onPayment(e) {
|
|
|
- const { medicareBinded = false, item } = e.target.dataset; // 同意订阅消息后发起支付
|
|
|
- try {
|
|
|
- my.showLoading();
|
|
|
- // 获取智能消息推送授权
|
|
|
- await getSubscribeAuth();
|
|
|
- // 挂号
|
|
|
- if (item.type === 1) {
|
|
|
- await tradePay(
|
|
|
- {
|
|
|
- type: item.type,
|
|
|
- idNum: item.outTradeNo,
|
|
|
- depName: item.depName,
|
|
|
- },
|
|
|
- {
|
|
|
- tradeType: "Appointment",
|
|
|
- }
|
|
|
- );
|
|
|
- } else if (item.type === 2) {
|
|
|
- // 充值
|
|
|
- await tradePay(
|
|
|
- {
|
|
|
- type: item.type,
|
|
|
- idNum: item.outTradeNo,
|
|
|
- amount: item.amount,
|
|
|
- },
|
|
|
- {
|
|
|
- tradeType: "Appointment",
|
|
|
- }
|
|
|
- );
|
|
|
- } else {
|
|
|
- // 门诊订单
|
|
|
- await tradePay(
|
|
|
- {
|
|
|
- useBalance: !medicareBinded,
|
|
|
- useMedicare: medicareBinded,
|
|
|
+ saveSubscribe(ref) {
|
|
|
+ this.subscribe = ref;
|
|
|
+ },
|
|
|
+
|
|
|
+ getTimeChange(startTime, endTime, len) {
|
|
|
+ if (!startTime || !endTime) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ const time1 = Date.parse(startTime);
|
|
|
+ const time2 = Date.parse(endTime);
|
|
|
+ const timeDiff = time2 - time1;
|
|
|
+ const duration = len * 24 * 60 * 60 * 1000;
|
|
|
+ return timeDiff < 0 || timeDiff > duration;
|
|
|
+ },
|
|
|
+
|
|
|
+ onService(page) {
|
|
|
+ const { status, startTime, endTime } = this.filters || {};
|
|
|
+ if (!this.hisPatientId) return;
|
|
|
+ return payHistory({
|
|
|
+ ...this.filters,
|
|
|
+ status: status || "0",
|
|
|
+ ...page,
|
|
|
+ hisPatientId: this.hisPatientId,
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ onAutoFilter(patient) {
|
|
|
+ if (patient) {
|
|
|
+ this.hisPatientId = patient.hisPatientId;
|
|
|
+ this.scrollRef.refresh();
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 进入详情
|
|
|
+ toDetail(e) {
|
|
|
+ const {
|
|
|
+ item: {
|
|
|
+ type,
|
|
|
+ outTradeNo,
|
|
|
+ status,
|
|
|
+ tradeNo,
|
|
|
+ invoiceNo,
|
|
|
+ hisPatientId,
|
|
|
+ date,
|
|
|
+ depName,
|
|
|
+ amount,
|
|
|
+ name,
|
|
|
+ age,
|
|
|
+ sex,
|
|
|
+ prescribeDate,
|
|
|
+ hisOrderNo,
|
|
|
+ doctorName,
|
|
|
+ doctorCode,
|
|
|
+ total,
|
|
|
+ hisClinicCode,
|
|
|
+ deptName,
|
|
|
+ orderItems,
|
|
|
+ },
|
|
|
+ } = e.target.dataset;
|
|
|
+ history.push({
|
|
|
+ title: "缴费详情",
|
|
|
+ query: {
|
|
|
+ type: type || 0,
|
|
|
+ outTradeNo,
|
|
|
+ status,
|
|
|
+ tradeNo,
|
|
|
+ invoiceNo,
|
|
|
+ hisPatientId,
|
|
|
+ date,
|
|
|
+ depName,
|
|
|
+ amount,
|
|
|
+ name,
|
|
|
+ age,
|
|
|
+ sex,
|
|
|
+ prescribeDate,
|
|
|
+ hisOrderNo,
|
|
|
+ doctorName,
|
|
|
+ doctorCode,
|
|
|
+ total,
|
|
|
+ hisClinicCode,
|
|
|
+ deptName,
|
|
|
+ orderItems: encodeURIComponent(JSON.stringify(orderItems || "")),
|
|
|
+ },
|
|
|
+ pageType: "hospital-payment-detail",
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ // 付款
|
|
|
+ async onPayment(e) {
|
|
|
+ const { medicareBinded = false, item } = e.target.dataset; // 同意订阅消息后发起支付
|
|
|
+ try {
|
|
|
+ my.showLoading();
|
|
|
+ // 获取智能消息推送授权
|
|
|
+ await getSubscribeAuth();
|
|
|
+ // 挂号
|
|
|
+ if (item.type === 1) {
|
|
|
+ await tradePay(
|
|
|
+ {
|
|
|
+ type: item.type,
|
|
|
+ idNum: item.outTradeNo,
|
|
|
+ depName: item.depName,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tradeType: "Appointment",
|
|
|
+ }
|
|
|
+ );
|
|
|
+ } else if (item.type === 2) {
|
|
|
+ // 充值
|
|
|
+ await tradePay(
|
|
|
+ {
|
|
|
+ type: item.type,
|
|
|
+ idNum: item.outTradeNo,
|
|
|
+ amount: item.amount,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tradeType: "Appointment",
|
|
|
+ }
|
|
|
+ );
|
|
|
+ } else {
|
|
|
+ // 门诊订单
|
|
|
+ await tradePay(
|
|
|
+ {
|
|
|
+ useBalance: !medicareBinded,
|
|
|
+ useMedicare: medicareBinded,
|
|
|
+ outTradeNo: item.outTradeNo,
|
|
|
+ ...item,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ tradeType: "Outpatient",
|
|
|
+ }
|
|
|
+ );
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ } finally {
|
|
|
+ my.hideLoading();
|
|
|
+ }
|
|
|
+ this.scrollRef.refresh();
|
|
|
+ // 支付成功去订单详情页
|
|
|
+ this.toDetail({
|
|
|
+ target: {
|
|
|
+ dataset: {
|
|
|
outTradeNo: item.outTradeNo,
|
|
|
+ type: item.type ? item.type : 0,
|
|
|
...item,
|
|
|
},
|
|
|
- {
|
|
|
- tradeType: "Outpatient",
|
|
|
- }
|
|
|
- );
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- } finally {
|
|
|
- my.hideLoading();
|
|
|
- }
|
|
|
- // 支付成功去订单详情页
|
|
|
- this.toDetail({
|
|
|
- target: {
|
|
|
- dataset: {
|
|
|
- outTradeNo: item.outTradeNo,
|
|
|
- type: item.type ? item.type : 0,
|
|
|
- ...item,
|
|
|
},
|
|
|
- },
|
|
|
- }); // 发起消息订阅
|
|
|
+ }); // 发起消息订阅
|
|
|
|
|
|
- // this.subscribe.subscribeMessage();
|
|
|
+ // this.subscribe.subscribeMessage();
|
|
|
+ },
|
|
|
},
|
|
|
- },
|
|
|
-});
|
|
|
+ })
|
|
|
+);
|