index.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. import { payHistory } from "./service";
  2. import history from "../../utils/history";
  3. import { tradePay } from "../../utils/tradePay";
  4. import { reportCmPV_YL } from "../../utils/cloudMonitorHelper";
  5. Component({
  6. props: {},
  7. data: {
  8. empty: true,
  9. clinicCard: {},
  10. filterParams: {
  11. type: "9",
  12. cardNum: "",
  13. endTime: "",
  14. startTime: "",
  15. medicCards: [],
  16. },
  17. /* 赛选项目 */
  18. typeOptions: [],
  19. statusOptions: [
  20. {
  21. value: "0",
  22. label: "待支付",
  23. },
  24. {
  25. value: "1",
  26. label: "已支付",
  27. },
  28. ],
  29. showAll: false,
  30. showTimeSelector: false,
  31. defaultLabel: "待支付",
  32. defaultName: "待支付",
  33. defaultStatus: "待支付",
  34. },
  35. didMount() {
  36. /* 服务预警,缴费记录查询 */
  37. reportCmPV_YL({
  38. title: "缴费记录查询",
  39. });
  40. },
  41. methods: {
  42. onFilterHandel(filters) {
  43. this.filters = filters;
  44. this.scrollRef.refresh();
  45. },
  46. saveRef(ref) {
  47. this.scrollRef = ref;
  48. },
  49. saveSubscribe(ref) {
  50. this.subscribe = ref;
  51. },
  52. onService(page) {
  53. const { type, status } = this.filters || {};
  54. return payHistory({
  55. ...this.filters,
  56. type: type || "9",
  57. status: status || "0",
  58. ...page,
  59. });
  60. },
  61. // 进入详情
  62. toDetail(e) {
  63. history.push({
  64. title: "缴费详情",
  65. query: e.target.dataset,
  66. pageType: "hospital-payment-detail",
  67. });
  68. },
  69. // 付款
  70. async onPayment(e) {
  71. const { medicareBinded = false, item } = e.target.dataset; // 同意订阅消息后发起支付
  72. // 挂号
  73. if (item.type === 1) {
  74. await tradePay(
  75. {
  76. type: item.type,
  77. idNum: item.outTradeNo,
  78. depName: item.depName,
  79. },
  80. {
  81. tradeType: "Appointment",
  82. }
  83. );
  84. } else if (item.type === 2) {
  85. // 充值
  86. await tradePay(
  87. {
  88. type: item.type,
  89. idNum: item.outTradeNo,
  90. amount: item.amount,
  91. },
  92. {
  93. tradeType: "Appointment",
  94. }
  95. );
  96. } else {
  97. // 门诊订单
  98. await tradePay(
  99. {
  100. useBalance: !medicareBinded,
  101. useMedicare: medicareBinded,
  102. outTradeNo: item.outTradeNo,
  103. },
  104. {
  105. tradeType: "Outpatient",
  106. }
  107. );
  108. } // 支付成功去订单详情页
  109. this.toDetail({
  110. target: {
  111. dataset: {
  112. outTradeNo: item.outTradeNo,
  113. type: item.type,
  114. },
  115. },
  116. }); // 发起消息订阅
  117. this.subscribe.subscribeMessage();
  118. },
  119. },
  120. });