fix: resolve admin acceptance defects

This commit is contained in:
richjohnrambo
2026-10-16 10:14:41 +08:00
parent c6ec45cccf
commit 2b3d855bcc
39 changed files with 1079 additions and 204 deletions
+15 -1
View File
@@ -68,8 +68,19 @@
<n-descriptions-item label="订单号">{{ detail.orderNo }}</n-descriptions-item><n-descriptions-item label="会员">{{ detail.username }} / {{ detail.mobile }}</n-descriptions-item>
<n-descriptions-item label="商品/任务">{{ detail.productName || '-' }}</n-descriptions-item><n-descriptions-item label="规则等级ID">{{ detail.memberLevelId }}</n-descriptions-item>
<n-descriptions-item label="订单金额">{{ yuan(detail.totalAmount) }}</n-descriptions-item><n-descriptions-item label="佣金">{{ yuan(detail.commissionAmount) }}</n-descriptions-item>
<n-descriptions-item label="订单状态">{{ dict.getLabel('tradeOrderStatus', detail.orderStatus) || '-' }}</n-descriptions-item><n-descriptions-item label="冻结状态">{{ dict.getLabel('tradeFreezeStatus', detail.freezeStatus) || '-' }}</n-descriptions-item>
<n-descriptions-item label="创建时间">{{ detail.createdAt || '-' }}</n-descriptions-item><n-descriptions-item label="更新时间">{{ detail.updatedAt || '-' }}</n-descriptions-item>
<n-descriptions-item label="规则快照" :span="2"><n-code :code="JSON.stringify(detail.ruleSnapshot || {}, null, 2)" language="json" word-wrap /></n-descriptions-item>
</n-descriptions>
<n-divider title-placement="left">状态时间线</n-divider>
<n-timeline v-if="detail?.timeline?.length"><n-timeline-item v-for="item in detail.timeline" :key="`${item.title}-${item.time}`" :title="item.title" :time="item.time" /></n-timeline>
<n-empty v-else description="暂无状态时间线" />
<n-divider title-placement="left">资金流水</n-divider>
<n-data-table :columns="ledgerColumns" :data="detail?.ledgers || []" :bordered="false" />
<n-empty v-if="!detail?.ledgers?.length" description="暂无关联资金流水" />
<n-divider title-placement="left">审批记录</n-divider>
<n-data-table :columns="approvalColumns" :data="detail?.approvalActions || []" :bordered="false" />
<n-empty v-if="!detail?.approvalActions?.length" description="暂无关联审批记录" />
</n-modal>
</div>
</template>
@@ -77,11 +88,14 @@
import { computed, h, onBeforeUnmount, onMounted, reactive, ref, watch } from 'vue';
import { useRouter } from 'vue-router';
import { NButton, NImage, NTag, useDialog, useMessage } from 'naive-ui';
import { useDictStore } from '@/store/modules/dict';
import { BasicTable, TableAction } from '@/components/Table';import { BasicForm,useForm } from '@/components/Form';import { adaTableScrollX } from '@/utils/hotgo';
import { TradeOrderForcePay,TradeOrderFreeze,TradeOrderList,TradeOrderMatch,TradeOrderMatchProducts,TradeOrderUpdateAmount,TradeOrderView } from '@/api/trade';import { columns,schemas,loadOptions } from './model';
const message=useMessage();const dialog=useDialog();const router=useRouter();const actionRef=ref(),searchFormRef=ref<any>({}),showDetail=ref(false),showMatch=ref(false),showAmount=ref(false),detail=ref<any>(),current=ref<any>(),autoRefresh=ref(false),refreshCountdown=ref(10);let timer:any;
const message=useMessage();const dialog=useDialog();const router=useRouter();const dict=useDictStore();const actionRef=ref(),searchFormRef=ref<any>({}),showDetail=ref(false),showMatch=ref(false),showAmount=ref(false),detail=ref<any>(),current=ref<any>(),autoRefresh=ref(false),refreshCountdown=ref(10);let timer:any;
const [register]=useForm({gridProps:{cols:'1 s:1 m:2 l:3 xl:5'},labelWidth:80,schemas});const loadDataTable=(res)=>TradeOrderList({...searchFormRef.value?.formModel,...res});const reloadTable=()=>actionRef.value?.reload();const yuan=(v)=>`¥${((v||0)/100).toFixed(2)}`;
const yuanPlain=(v)=>((v||0)/100).toFixed(2);
const ledgerColumns=[{title:'流水号',key:'ledgerNo',width:180},{title:'业务',key:'bizType',width:120},{title:'方向',key:'direction',width:80,render:(row)=>row.direction===1?'收入':'支出'},{title:'金额',key:'amount',width:110,render:(row)=>yuan(row.amount)},{title:'变动前',key:'beforeAmount',width:110,render:(row)=>yuan(row.beforeAmount)},{title:'变动后',key:'afterAmount',width:110,render:(row)=>yuan(row.afterAmount)},{title:'说明',key:'remark',minWidth:180},{title:'发生时间',key:'occurredAt',width:180}];
const approvalColumns=[{title:'节点',key:'stepNo',width:70},{title:'操作人ID',key:'actorId',width:100},{title:'动作',key:'action',width:90},{title:'意见',key:'comment',minWidth:220},{title:'操作时间',key:'createdAt',width:180}];
const matchLoading=ref(false),productLoading=ref(false),matchSubmitting=ref(false),products=ref<any[]>([]),selectedProduct=ref<any>();
const matchMember=reactive({id:0,username:'',availableAmount:0,frozenAmount:0});
const matchForm=reactive({id:0,productId:0,quantity:1});
+1
View File
@@ -9,6 +9,7 @@ export const schemas = ref<FormSchema[]>([
{ field: 'orderNo', component: 'NInput', label: '订单号', componentProps: { placeholder: '请输入订单号', clearable: true } },
{ field: 'username', component: 'NInput', label: '用户名', componentProps: { clearable: true } },
{ field: 'mobile', component: 'NInput', label: '手机号', componentProps: { placeholder: '精确查询', clearable: true } },
{ field: 'autoDispatch', component: 'NSelect', label: '派单模式', componentProps: { options: computed(() => dict.getOptionUnRef('tradeAutoDispatch')), clearable: true } },
{ field: 'orderStatus', component: 'NSelect', label: '订单状态', componentProps: { options: computed(() => dict.getOptionUnRef('tradeOrderStatus')), clearable: true } },
{ field: 'createdAt', component: 'NDatePicker', label: '下单时间', componentProps: { type: 'datetimerange', clearable: true, shortcuts: defRangeShortcuts() } },
]);