From 14368e8a09c4b5793d0975f85e36a4c1d410ca36 Mon Sep 17 00:00:00 2001
From: wupengfei <834520024@qq.com>
Date: 星期五, 16 五月 2025 17:27:24 +0800
Subject: [PATCH] feat: UI

---
 packages/components/src/components/Card/OrderCard.vue |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 52 insertions(+), 5 deletions(-)

diff --git a/packages/components/src/components/Card/OrderCard.vue b/packages/components/src/components/Card/OrderCard.vue
index d8a2e32..d8f2a47 100644
--- a/packages/components/src/components/Card/OrderCard.vue
+++ b/packages/components/src/components/Card/OrderCard.vue
@@ -1,30 +1,77 @@
 <template>
   <div class="order-card">
     <div class="order-card-title">
-      <div class="order-card-title-top">
+      <div class="order-card-title-left">
         <div class="order-card-title-text">{{ title }}</div>
-        <div class="order-card-title-status">{{ status }}</div>
+        <div class="order-card-title-ordernum">
+          {{ `璁㈠崟缂栧彿锛�${orderNo}` }}
+        </div>
       </div>
-      <div class="order-card-title-ordernum">
-        {{ `璁㈠崟缂栧彿锛�${orderNo}` }}
+      <div class="order-card-title-status">
+        <img :src="LifePayOrderStatusEnumImg[status]" alt="" />
       </div>
     </div>
     <div class="order-card-content">
       <slot></slot>
     </div>
+    <slot name="actions">
+      <div class="order-card-footer" v-if="shoeFooter">
+        <div
+          v-if="status === LifeRechargeConstants.LifePayOrderStatusEnum.鍏呭�间腑"
+          class="order-card-action"
+          @click="emit('goApplyRefund', id)"
+        >
+          鐢宠閫�娆�
+        </div>
+        <div
+          class="order-card-action"
+          v-if="status === LifeRechargeConstants.LifePayOrderStatusEnum.閫�娆惧け璐�"
+          @click="emit('goRefundDetail', orderNo)"
+        >
+          璇︽儏
+        </div>
+      </div>
+    </slot>
   </div>
 </template>
 
 <script setup lang="ts">
+import { LifeRechargeConstants } from '@life-payment/core-vue';
+import { OssAssets } from '../../constants';
+import { computed } from 'vue';
+
 defineOptions({
   name: 'OrderCard',
 });
 
 type Props = {
   title: string;
-  status: string;
+  status?: LifeRechargeConstants.LifePayOrderStatusEnum;
   orderNo: string;
+  id: string;
 };
 
 const props = withDefaults(defineProps<Props>(), {});
+
+const emit = defineEmits<{
+  (e: 'goApplyRefund', id: string): void;
+  (e: 'goRefundDetail', orderNo: string): void;
+}>();
+
+const LifePayOrderStatusEnumImg = {
+  [LifeRechargeConstants.LifePayOrderStatusEnum.鍏呭�间腑]: OssAssets.card.Recharge,
+  [LifeRechargeConstants.LifePayOrderStatusEnum.宸插け璐: OssAssets.card.Failed,
+  [LifeRechargeConstants.LifePayOrderStatusEnum.宸插畬鎴怾: OssAssets.card.Success,
+  [LifeRechargeConstants.LifePayOrderStatusEnum.寰呴��娆綸: OssAssets.card.WaitRefund,
+  [LifeRechargeConstants.LifePayOrderStatusEnum.宸查��娆綸: OssAssets.card.Refunded,
+  [LifeRechargeConstants.LifePayOrderStatusEnum.閫�娆惧け璐: OssAssets.card.RefundFail,
+  [LifeRechargeConstants.LifePayOrderStatusEnum.閫�娆句腑]: OssAssets.card.Refund,
+};
+
+const shoeFooter = computed(() => {
+  return (
+    props.status === LifeRechargeConstants.LifePayOrderStatusEnum.鍏呭�间腑 ||
+    props.status === LifeRechargeConstants.LifePayOrderStatusEnum.閫�娆惧け璐�
+  );
+});
 </script>

--
Gitblit v1.9.1