From 58c6417603cc9e4c1012ba4fc4c6306dcb0e2324 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期一, 24 二月 2025 09:34:53 +0800
Subject: [PATCH] fix: 对接

---
 packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue |   64 ++++++++++++++++++++++++++++++-
 1 files changed, 61 insertions(+), 3 deletions(-)

diff --git a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
index 818faa5..9561582 100644
--- a/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
+++ b/packages/components/src/views/SelectPayTypeView/SelectPayTypeView.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="select-pay-type-view">
-    <div class="select-pay-type-view-item">
+    <div class="select-pay-type-view-item" @click="handleAliPay">
       <img class="select-pay-type-view-item-icon" :src="IconAliPay" />
       <div class="select-pay-type-view-item-text">鏀粯瀹濇敮浠�</div>
     </div>
@@ -14,12 +14,70 @@
 <script setup lang="ts">
 import IconWeixin from '../../../assets/icon-weixin-pay.png';
 import IconAliPay from '../../../assets/icon-alipay.png';
+import {
+  useLifeRechargeContext,
+  SetLifePayOrderPayTypeInput,
+  LifeRechargeConstants,
+} from '../../utils';
+import { useQuery } from '@tanstack/vue-query';
 
 defineOptions({
   name: 'SelectPayTypeView',
 });
 
-// type Props = {};
+type Props = {
+  orderNo?: string;
+  lifePayOrderType?: LifeRechargeConstants.LifePayOrderTypeEnum;
+};
 
-// const props = withDefaults(defineProps<Props>(), {});
+const props = withDefaults(defineProps<Props>(), {});
+
+const emit = defineEmits<{
+  (
+    e: 'paySuccess',
+    orderNo: string,
+    lifePayOrderType: LifeRechargeConstants.LifePayOrderTypeEnum
+  ): void;
+}>();
+
+const { blLifeRecharge } = useLifeRechargeContext();
+
+async function handleAliPay() {
+  try {
+    let res = await setLifePayOrderPayType(blLifeRecharge.constants.LifePayTypeEnum.AliPay);
+    if (res) {
+      location.href = res;
+    }
+  } catch (error) {}
+}
+
+async function setLifePayOrderPayType(lifePayType: LifeRechargeConstants.LifePayTypeEnum) {
+  try {
+    let params: SetLifePayOrderPayTypeInput = {
+      orderNo: props.orderNo,
+      lifePayType: lifePayType,
+    };
+    return await blLifeRecharge.services.setLifePayOrderPayType(params);
+  } catch (error) {}
+}
+
+useQuery({
+  queryKey: ['platformServicePayServices/getPayStatusByOrderNo', props.orderNo],
+  queryFn: async () => {
+    return await blLifeRecharge.services.getPayStatusByOrderNo(
+      {
+        orderNo: props.orderNo,
+      },
+      {
+        showLoading: false,
+      }
+    );
+  },
+  onSuccess(data) {
+    if (data === blLifeRecharge.constants.LifePayStatusEnum.宸叉敮浠�) {
+      emit('paySuccess', props.orderNo, props.lifePayOrderType);
+    }
+  },
+  refetchInterval: 1000 * 3,
+});
 </script>

--
Gitblit v1.9.1