feat: adjust manual and automatic order matching

This commit is contained in:
richjohnrambo
2026-10-18 20:17:17 +08:00
parent 48f304212e
commit ac152d2f10
7 changed files with 220 additions and 23 deletions
+2 -3
View File
@@ -59,7 +59,6 @@
<n-form-item label="账户余额" path="availableAmountYuan"
><n-input-number
v-model:value="editForm.availableAmountYuan"
:min="0"
:precision="2"
class="form-number"
placeholder="请输入账户余额"
@@ -488,9 +487,9 @@
},
availableAmountYuan: {
validator: (_rule, value) =>
value !== null && Number.isFinite(Number(value)) && Number(value) >= 0
value !== null && Number.isFinite(Number(value))
? true
: new Error('账户余额不能为空或小于0'),
: new Error('账户余额不能为空'),
trigger: ['input', 'blur'],
},
password: {
+2 -2
View File
@@ -1,6 +1,6 @@
<template>
<div>
<div class="n-layout-page-header"><n-card :bordered="false" title="订单列表">手动派单模式由客服匹配订单,会员确认时校验余额;自动派单模式仅匹配余额内订单并直接完成。</n-card></div>
<div class="n-layout-page-header"><n-card :bordered="false" title="订单列表">手动单匹配后立即完成并允许余额为负;自动单可在预约时间前人工匹配,逾期未处理则由系统自动匹配。</n-card></div>
<n-card :bordered="false" class="proCard">
<BasicForm ref="searchFormRef" @register="register" @submit="reloadTable" @reset="reloadTable" />
<BasicTable ref="actionRef" :columns="columns" :request="loadDataTable" :row-key="(row)=>row.id" :action-column="actionColumn" :scroll-x="scrollX" :resize-height-offset="-10000">
@@ -123,7 +123,7 @@ function clearProductFilter(){Object.assign(productFilter,{name:'',priceMin:null
function selectProduct(row){selectedProduct.value=row;matchForm.productId=row.id}
async function confirmMatch(){
if(!matchForm.productId){message.error('请先选择商品');return}
matchSubmitting.value=true;try{await TradeOrderMatch(matchForm);message.success('订单匹配成功');showMatch.value=false;reloadTable()}finally{matchSubmitting.value=false}
matchSubmitting.value=true;try{await TradeOrderMatch(matchForm);message.success('订单已匹配并完成');showMatch.value=false;reloadTable()}finally{matchSubmitting.value=false}
}
async function view(row){detail.value=await TradeOrderView({id:row.id});showDetail.value=true}
function openAmount(row){Object.assign(amountMember,{username:row.username,availableAmount:row.availableAmount});Object.assign(amountForm,{id:row.id,amount:Number(row.totalAmount||0)/100,quantity:row.quantity||1});showAmount.value=true}