feat(shopOrder): 新增确认线下收款上传支付凭证功能
- 重构确认线下收款为独立组件 OfflinePaymentModal.vue - 新增支付凭证字段 paymentVoucher,支持图片上传与预览 - 上传限制为 jpg/png 格式,单张图片最大 10MB - API confirmOfflinePayment 新增 paymentVoucher 参数 - 页面移除原 Modal.confirm 逻辑,改为调用新组件弹窗 - 修复 buyerRemarks 和 merchantRemarks 类型错误 - 后端 shop_order 表待新增 payment_voucher 字段和接口支持 - 同步更新相关接口模型与视图交互逻辑 feat(shopGoodsBrowse): 新增用户商品浏览记录管理功能 - 新增 ShopGoodsBrowse 接口模型及分页查询、删除接口 - 前端新增浏览记录管理页面,实现列表展示和删除 - 支持基于用户ID、商品ID、浏览来源和日期范围搜索 - 列表显示商品图片、名称、价格、浏览次数及时间等信息 - 添加图片预览和操作确认弹窗,保障操作体验和安全
This commit is contained in:
@@ -369,6 +369,13 @@
|
||||
:data="current"
|
||||
@done="reload"
|
||||
/>
|
||||
|
||||
<!-- 确认线下收款弹窗 -->
|
||||
<OfflinePaymentModal
|
||||
v-model:visible="showOfflinePayment"
|
||||
:data="current"
|
||||
@done="reload"
|
||||
/>
|
||||
</a-page-header>
|
||||
</template>
|
||||
|
||||
@@ -399,14 +406,14 @@
|
||||
import { toDateString } from 'ele-admin-pro';
|
||||
import OrderInfo from './components/orderInfo.vue';
|
||||
import DeliveryModal from './components/deliveryModal.vue';
|
||||
import OfflinePaymentModal from './components/OfflinePaymentModal.vue';
|
||||
import { ShopOrder, ShopOrderParam } from '@/api/shop/shopOrder/model';
|
||||
import {
|
||||
pageShopOrder,
|
||||
repairOrder,
|
||||
removeShopOrder,
|
||||
removeBatchShopOrder,
|
||||
updateShopOrder, refundShopOrder,
|
||||
confirmOfflinePayment
|
||||
updateShopOrder, refundShopOrder
|
||||
} from '@/api/shop/shopOrder';
|
||||
import { updateUser } from '@/api/system/user';
|
||||
import { getPayType } from '@/utils/shop';
|
||||
@@ -427,6 +434,8 @@
|
||||
const showMove = ref(false);
|
||||
// 是否显示发货弹窗
|
||||
const showDelivery = ref(false);
|
||||
// 是否显示确认线下收款弹窗
|
||||
const showOfflinePayment = ref(false);
|
||||
// 加载状态
|
||||
const loading = ref(true);
|
||||
// 激活的标签(支持从路由参数初始化,如 /shop/shopOrder?tab=all)
|
||||
@@ -647,31 +656,8 @@
|
||||
|
||||
// 确认线下付款收款
|
||||
const handleConfirmOfflinePayment = (record: ShopOrder) => {
|
||||
let remarksValue = '';
|
||||
Modal.confirm({
|
||||
title: '确认线下收款',
|
||||
content: createVNode('div', null, [
|
||||
createVNode('p', { style: 'margin-bottom: 8px' }, '确认已收到该订单的线下付款(微信转账/银行汇款等)?'),
|
||||
createVNode('p', { style: 'margin-bottom: 8px; color: #999; font-size: 12px' }, `订单号:${record.orderNo}`),
|
||||
createVNode('input', {
|
||||
id: 'offline-remarks-input',
|
||||
placeholder: '可填写备注(如:微信转账已收到)',
|
||||
style: 'width: 100%; padding: 4px 8px; border: 1px solid #d9d9d9; border-radius: 4px;',
|
||||
onInput: (e: any) => { remarksValue = e.target.value; }
|
||||
})
|
||||
]),
|
||||
okText: '确认收款',
|
||||
okType: 'success',
|
||||
onOk: async () => {
|
||||
try {
|
||||
await confirmOfflinePayment(record.orderId!, remarksValue || undefined);
|
||||
message.success('确认收款成功,订单已进入待发货状态');
|
||||
reload();
|
||||
} catch (error: any) {
|
||||
message.error(error.message || '确认收款失败');
|
||||
}
|
||||
}
|
||||
});
|
||||
current.value = record;
|
||||
showOfflinePayment.value = true;
|
||||
};
|
||||
|
||||
// 发货处理
|
||||
|
||||
Reference in New Issue
Block a user