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