From e8cc27265ac9b23449ef06054573c0e1f9dfea44 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 6 Nov 2025 14:06:17 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=BF=BD=E7=95=A5=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .env.development diff --git a/.env.development b/.env.development deleted file mode 100644 index 2ccc7eb..0000000 --- a/.env.development +++ /dev/null @@ -1,20 +0,0 @@ -# VITE_API_BASE='https://hwjb.homilychart.com/dev/admin' -# 测试环境 -# VITE_API_BASE='http://54.255.212.181:10704/' -# 正式环境 -# VITE_API_BASE='http://54.255.212.181:10705/' -VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload -# VITE_API_BASE='http://192.168.9.28:8081/' -# sunjiabei -# VITE_API_BASE='http://192.168.9.28:8081/' -# VITE_API_BASE='http://192.168.5.92:8081/' -# 张勇 -# VITE_API_BASE='http://192.168.3.83:8081/' -# 本地 -# VITE_API_BASE='http://localhost:8081/' -# 孙加倍 -VITE_API_BASE='http://192.168.40.12:8081' - -# Lijianlin -# VITE_API_BASE='http://192.168.9.41:8081/' -# VITE_API_BASE='http://localhost:8081/' From 44f89aee6ddf851551904d534671e65f0f6f9a70 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 6 Nov 2025 14:06:37 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=BA=BF=E4=B8=8A=E9=80=80=E6=AC=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../moneyManage/receiveDetail/receiveFinance.vue | 282 ++++++++++++++++++++- src/views/moneyManage/receiveDetail/utils/util.js | 13 + 2 files changed, 294 insertions(+), 1 deletion(-) create mode 100644 src/views/moneyManage/receiveDetail/utils/util.js diff --git a/src/views/moneyManage/receiveDetail/receiveFinance.vue b/src/views/moneyManage/receiveDetail/receiveFinance.vue index f9b9bd2..9cf22a2 100644 --- a/src/views/moneyManage/receiveDetail/receiveFinance.vue +++ b/src/views/moneyManage/receiveDetail/receiveFinance.vue @@ -200,6 +200,10 @@ v-else-if="activeTab == 'pass' && !(scope.row.status == 6 || scope.row.status == 4)" style="color: #2741DE;" @click="openEditForm(scope.row)">编辑 + 退款 + @@ -212,6 +216,21 @@ + +
+
+ +
+
+ {{ textContent }} +
+
+ +
+
+ +
+
@@ -406,6 +425,110 @@ + + + +
+
+
+ 精网号 + +
+
+ 客户姓名 + +
+
+ 所属地区 + +
+
+ 活动名称 + +
+
+ 产品名称 + +
+
+ 产品数量 + + {{ productUnit }} +
+
+
+ 永久金币: + +
+
+ 免费金币: + +
+
+
+ 付款币种 + +
+
+ 付款金额 + +
+
+ 支付方式 + +
+
+ 付款时间 + +
+
+ 转账凭证 + + + + + +
+
+ 备注 + +
+
+
+
+ 退款模式 + + 全部退款 + 部分退款 + +
+
+ 退款理由 + +
+
ps:请在退款理由表明用户的退款需求。
+
+ 重置 + 提交 +
+
+
+
@@ -419,6 +542,7 @@ import request from '@/util/http.js'; import moment from 'moment'; import _ from 'lodash'; import { Plus } from '@element-plus/icons-vue'; +import { startsWith } from './utils/util.js' // 地区财务专属组件 import CurrencySelect from '@/components/MoneyManage/CurrencySelect.vue'; @@ -474,7 +598,26 @@ const tooltipContent = ref(''); const tooltipLeft = ref(0); const tooltipTop = ref(0); -// 基础数据(地区财务专用) +// 退款确认弹窗 +const refundConfirmDialog = ref(false) +const textContent = ref('') + + +//退款弹窗 +const refundDialog = ref(false) + +const openRefundDialog = () => { + refundDialog.value = true + closeConfirmRefund() +} +const closeRefundForm = () => { + refundDialog.value = false + refundFormData.value = {} +} + + + +// 基础数据 const adminData = ref({}); const activityList = ref([]); const customOptions = ref(['美元(USD)', '港币(HKD)', '新币(SGD)', '马币(MYR)', '泰铢(THB)', '加币(CAD)', '越南盾(VDN)', '韩元(KRW)']); @@ -482,6 +625,19 @@ const paytypeList = ["Stripe-链接收款", "PaymentAsia-链接收款", "Ipay88- const paytypeOptions = ref([...paytypeList]); // ===================== 2. 核心功能函数(仅地区财务) ===================== + +//确认退款弹窗 +const openRefundConfirm = () => { + textContent.value = '将要对该订单退款!' + refundConfirmDialog.value = true +} + +const closeConfirmRefund = () => { + refundConfirmDialog.value = false + textContent.value = '' +} + + // 2.1 数据加载:获取地区财务订单列表 const getlist = async () => { try { @@ -544,6 +700,54 @@ const getlist = async () => { } }; +//提交退款 +const submitRefund = async () => { + try { + const result = await request({ + url: '/Money/add', + data: { + jwcode: refundFormData.value.jwcode, // 精网号(必填) + name: refundFormData.value.name, // 姓名(必填) + market: refundFormData.value.marketName, // 所属地区(必填) + activity: refundFormData.value.activity, // 活动名称(可选) + bankCode: refundFormData.value.bankCode, // 银行流水订单号(必填) + goodsName: refundFormData.value.goodsName, // 商品名称(必填) + goodNum: refundFormData.value.goodNum, // 商品数量(必填,默认0) + paymentCurrency: refundFormData.value.paymentCurrency, // 付款币种(必填) + paymentAmount: (refundFormData.value.paymentAmount) * 100, // 付款金额(必填) + receivedCurrency: refundFormData.value.receivedCurrency, // 到账币种(必填) + receivedAmount: (refundFormData.value.receivedAmount) * 100, // 到账金额(必填) + handlingCharge: (refundFormData.value.handlingCharge) * 100, // 手续费(可选) + receivedMarket: refundFormData.value.receivedMarket, // 到账地区(可选) + payType: refundFormData.value.payType, // 支付方式(必填) + payTime: refundFormData.value.payTime, // 付款时间,格式:yyyy-MM-dd HH:mm:ss(可选) + receivedTime: refundFormData.value.receivedTime, // 到账时间,格式:yyyy-MM-dd HH:mm:ss(可选) + areaServise: adminData.value.adminName, // 提交人(可选) + submitterId: adminData.value.id, + voucher: refundFormData.value.voucher, // 转账凭证URL(可选) + remark: refundFormData.value.remark, // 备注信息(可选) + refundReason: refundFormData.value.refundReason, // 退款备注-客服填写(可选) + refundModel: refundFormData.value.refundModel, // 退款方式:0-全额,1-部分(可选) + id: refundFormData.value.id, //订单id + orderCode: refundFormData.value.orderCode, + permanentGold: (refundFormData.value.permanentGold) * 100 || 0, + freeGold: (refundFormData.value.freeGold) * 100 || 0 + } + }) + if (result.code == 200) { + ElMessage.success('新增退款成功') + getlist() + closeRefundForm() + } else { + ElMessage.error(result.msg) + getlist() + } + console.log('返回参数:', result); + } catch (error) { + console.log(error); + } +} + // 2.2 搜索与重置 const search = () => { getlist(); @@ -1128,4 +1332,80 @@ const handlePagination = (type, val) => { overflow-y: auto; white-space: pre-wrap; } + +.recallDialog { + //撤回弹窗提示 + height: 392px; + width: 700px; + background-image: url('/src/assets/收款明细撤回背景.png'); + position: fixed; // 固定定位,相对于浏览器窗口 + top: 50%; // 距离顶部50% + left: 50%; // 距离左侧50% + transform: translate(-50%, -50%); // 向左、向上平移自身宽高的50%,实现居中 + z-index: 1000; // 确保在其他元素上层显示 + + .close { + position: absolute; + left: 625px; + top: 20px; + height: 38px; + width: 38px; + opacity: 0; + + .Btn { + height: 100%; + width: 100%; + border-radius: 10px; + } + } + + .text { + position: absolute; + left: 185px; + top: 190px; + height: 67px; + width: 500px; + + .txt { + height: 100%; + width: 100%; + color: #001a42; + font-family: "PingFang SC"; + font-size: 48px; + font-style: normal; + font-weight: 900; + line-height: normal; + } + } + + .cancle { + position: absolute; + left: 185px; + top: 304px; + height: 55px; + width: 150px; + opacity: 0; + + .Btn { + height: 100%; + width: 100%; + border-radius: 20px; + } + } + + .confirm { + position: absolute; + left: 375px; + top: 304px; + height: 55px; + width: 150px; + opacity: 0; + + .Btn { + height: 100%; + width: 100%; + border-radius: 20px; + } + } +} \ No newline at end of file diff --git a/src/views/moneyManage/receiveDetail/utils/util.js b/src/views/moneyManage/receiveDetail/utils/util.js new file mode 100644 index 0000000..0419a75 --- /dev/null +++ b/src/views/moneyManage/receiveDetail/utils/util.js @@ -0,0 +1,13 @@ +//判断是否为线上订单 +export const startsWith = (mainStr, prefix) => { + // 处理前缀为空字符串的情况(空字符串是所有字符串的前缀) + if (prefix === '') { + return true; + } + // 处理主字符串长度小于前缀长度的情况 + if (mainStr.length < prefix.length) { + return false; + } + // 比较主字符串开头与前缀相同长度的部分 + return mainStr.substring(0, prefix.length) === prefix; +} \ No newline at end of file