From d352d853140ffdde9acea3cd867a8d4d76549c37 Mon Sep 17 00:00:00 2001 From: ren Date: Tue, 1 Apr 2025 21:59:10 +0800 Subject: [PATCH] =?UTF-8?q?pc=E6=94=B6=E9=93=B6=E5=8F=B0=E5=9F=BA=E6=9C=AC?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=BF=A1=E6=81=AF=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/images/{zfb_pay.png => alipay.png} | Bin .../images/{new_wx_pay.png => wechat.png} | Bin src/views/daxpay/h5/cashier/Cashier.vue | 4 +- src/views/daxpay/pc/cashier/Cashier.api.ts | 128 ++++++++++++++++++ src/views/daxpay/pc/cashier/Cashier.vue | 126 +++++++++-------- 5 files changed, 199 insertions(+), 59 deletions(-) rename src/assets/images/{zfb_pay.png => alipay.png} (100%) rename src/assets/images/{new_wx_pay.png => wechat.png} (100%) create mode 100644 src/views/daxpay/pc/cashier/Cashier.api.ts diff --git a/src/assets/images/zfb_pay.png b/src/assets/images/alipay.png similarity index 100% rename from src/assets/images/zfb_pay.png rename to src/assets/images/alipay.png diff --git a/src/assets/images/new_wx_pay.png b/src/assets/images/wechat.png similarity index 100% rename from src/assets/images/new_wx_pay.png rename to src/assets/images/wechat.png diff --git a/src/views/daxpay/h5/cashier/Cashier.vue b/src/views/daxpay/h5/cashier/Cashier.vue index 66d8d55..20276e0 100644 --- a/src/views/daxpay/h5/cashier/Cashier.vue +++ b/src/views/daxpay/h5/cashier/Cashier.vue @@ -38,8 +38,8 @@ @click="payTypeClick(item)" >
- - + +

{{ item.name }}

diff --git a/src/views/daxpay/pc/cashier/Cashier.api.ts b/src/views/daxpay/pc/cashier/Cashier.api.ts new file mode 100644 index 0000000..bc45976 --- /dev/null +++ b/src/views/daxpay/pc/cashier/Cashier.api.ts @@ -0,0 +1,128 @@ +import { http } from '@/utils/http/axios' +import type { Result } from '#/axios' + +/** + * 获取订单和收银台配置信息 + */ +export function getOrderAndConfig(orderNo) { + return http.request>({ + url: '/unipay/gateway/getOrderAndConfig', + method: 'GET', + params: { orderNo, cashierType: 'pc' }, + }) +} +/** + * 发起支付 + */ +export function payOrder(data: payParam) { + return http.request>({ + url: '/unipay/gateway/pay', + method: 'POST', + data, + }) +} + +/** + * 收银台配置 + */ +export interface OrderAndConfig { + /** 订单信息 */ + order: GatewayOrder + /** 收银台配置信息 */ + config: GatewayPayConfig + /** 收银台分类配置信息 */ + groupConfigs: CashierGroupConfig[] +} + +/** + * 订单信息 + */ +export interface GatewayOrder { + /** 商户订单号 */ + bizOrderNo?: string + /** 订单号 */ + orderNo?: string + /** 标题 */ + title?: string + /** 描述 */ + description?: string + /** 金额(元) */ + amount?: number + expiredTime?: string +} +/** + * 聚合支付配置信息 + */ +export interface GatewayPayConfig { + /** 收银台名称 */ + name?: string + /** PC收银台是否同时显示聚合收银码 */ + aggregateShow?: boolean + /** h5收银台自动升级聚合支付 */ + h5AutoUpgrade?: boolean +} + +/** + * 收银台分类配置 + */ +export interface CashierGroupConfig { + /** 主键 */ + id?: string + /** 名称 */ + name?: string + /** 配置项列表 */ + items?: CashierConfig[] + /** 图标 */ + icon?: string + /** 是否推荐 */ + recommend?: boolean +} + +/** + * 收银台配置项 + */ +export interface CashierConfig { + /** 主键 */ + id?: string + /** 发起调用的类型 */ + callType?: string + /** 名称 */ + name?: string + /** 支付通道 */ + channel?: string + /** 支付方式 */ + payMethod?: string + /** 其他支付方式 */ + otherMethod?: string + /** 图标 */ + icon?: string + /** 是否推荐 */ + recommend?: boolean +} + +/** + * 支付配置项参数 + */ +export interface payParam { + // 订单号 + orderNo?: string + // 支付配置项ID + itemId?: number + // 唯一标识 + openId?: string + // 付款码 + anthCode?: string +} +/** + * 支付配置项参数返回值 + */ +export interface payConfig { + // 商户订单号 + bizOrderNo?: string + // 订单号 + orderNo?: string + // 支付状态 + status?: string + // 支付参数体 + payBody?: string +} diff --git a/src/views/daxpay/pc/cashier/Cashier.vue b/src/views/daxpay/pc/cashier/Cashier.vue index ed01475..1a95c5f 100644 --- a/src/views/daxpay/pc/cashier/Cashier.vue +++ b/src/views/daxpay/pc/cashier/Cashier.vue @@ -11,7 +11,7 @@
- 0.02 + {{ orderObj?.order.amount }}
@@ -25,7 +25,7 @@ 订单编号:
- 207592561289848484 + {{ orderObj?.order.orderNo }}
@@ -33,11 +33,8 @@
{{ item.name }} @@ -47,9 +44,15 @@
-
- - 支付方式 +
+ + + {{ item.name }}
@@ -61,15 +64,22 @@ @@ -217,12 +217,14 @@ function init() { flex-direction: column; align-items: center; gap: 2.6042vw; + .orderBox { width: 100%; display: flex; justify-content: center; flex-direction: column; align-items: center; + .payPrice { font-size: 0.625vw; margin-bottom: 1.0417vw; @@ -256,18 +258,22 @@ function init() { padding: 0.1563vw; } } + .payMessItem { display: flex; gap: 0.4167vw; color: #9fa1a2; } } + .payMethodBox { width: 100%; + .methodBox { display: flex; justify-content: center; border-bottom: 0.0521vw solid #ccc; + .methodItem { box-sizing: border-box; min-width: 8.8542vw; @@ -279,6 +285,7 @@ function init() { gap: 0.325rem; align-items: center; position: relative; + .recommon { position: absolute; right: 30%; @@ -299,6 +306,7 @@ function init() { font-weight: 500; } } + .methodItemClick { border-radius: 0.5208vw 0.5208vw 0 0; background-color: #ffffff; @@ -308,11 +316,13 @@ function init() { border-bottom: none; } } + .payMethodChildBox { padding: 2.0833vw 0 2.0833vw 15.625vw; display: flex; flex-wrap: wrap; gap: 1.8417vw; + .payMethodChildItem { width: 13.0208vw; height: 5.6042vw; @@ -325,15 +335,17 @@ function init() { border-radius: 0.5208vw; // 添加圆角,使阴影更柔和 box-shadow: 0 0.2604vw 0.5208vw rgba(0, 0, 0, 0.1); // 添加四周阴影 transition: all 0.3s ease; // 添加过渡动画 - font-size: 0.9375vw; + font-size: 1.2375vw; letter-spacing: 0.0521vw; + &:hover { box-shadow: 0 0.5208vw 1.0417vw rgba(0, 0, 0, 0.15); // 鼠标悬停时增强阴影效果 transform: translateY(-0.2604vw); // 添加轻微上移效果 } + img { - width: 0.7813vw; - height: 0.7813vw; + width: 1.813vw; + height: 1.813vw; } } }