admin_new P0+P1 全批次合并 (84 commits) #2
@ -137,6 +137,21 @@ async function load() {
|
||||
}
|
||||
|
||||
function onSearch() { page.value = 1; load() }
|
||||
function fmtDate(ts?: string | number | null) {
|
||||
if (!ts) return '--'
|
||||
let n: number
|
||||
if (typeof ts === 'string') {
|
||||
n = /^\d+$/.test(ts) ? Number(ts) : Date.parse(ts)
|
||||
} else {
|
||||
n = ts
|
||||
}
|
||||
if (!n || isNaN(n)) return String(ts)
|
||||
const d = new Date(n)
|
||||
if (isNaN(d.getTime())) return String(ts)
|
||||
const pad = (x: number) => String(x).padStart(2, '0')
|
||||
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`
|
||||
}
|
||||
|
||||
function onReset() {
|
||||
filters.orderNo = ''
|
||||
filters.contractCode = ''
|
||||
@ -208,13 +223,13 @@ onMounted(load)
|
||||
{ type: 'selection', label: '', width: 50 },
|
||||
{ prop: 'orderNo', label: '订单号', width: 180 },
|
||||
{ prop: 'contractCode', label: '合同号', width: 160, slot: 'contractCode' },
|
||||
{ prop: 'enterpriseName', label: '供应商', minWidth: 180 },
|
||||
{ prop: 'orderUserName', label: '采购方', minWidth: 160 },
|
||||
{ prop: 'enterpriseName', label: '供应商', minWidth: 180, slot: 'enterpriseName' },
|
||||
{ prop: 'orderUserName', label: '采购方', minWidth: 160, slot: 'orderUserName' },
|
||||
{ prop: 'totalAmount', label: '金额', width: 130, align: 'right', slot: 'amount' },
|
||||
{ prop: 'totalNum', label: '数量', width: 80, align: 'center' },
|
||||
{ prop: 'shippedNum', label: '已发', width: 80, align: 'center' },
|
||||
{ prop: 'status', label: '状态', width: 110, align: 'center', slot: 'status' },
|
||||
{ prop: 'createDate', label: '下单时间', width: 170 },
|
||||
{ prop: 'createDate', label: '下单时间', width: 170, slot: 'time' },
|
||||
{ label: '操作', width: 280, align: 'center', slot: 'action' }
|
||||
]"
|
||||
:data="list"
|
||||
@ -235,6 +250,17 @@ onMounted(load)
|
||||
<span v-if="row.contractCode">{{ row.contractCode }}</span>
|
||||
<span v-else class="rr-muted">--</span>
|
||||
</template>
|
||||
<template #enterpriseName="{ row }">
|
||||
<span v-if="row.enterpriseName">{{ row.enterpriseName }}</span>
|
||||
<span v-else class="rr-muted">--</span>
|
||||
</template>
|
||||
<template #orderUserName="{ row }">
|
||||
<span v-if="row.orderUserName">{{ row.orderUserName }}</span>
|
||||
<span v-else class="rr-muted">--</span>
|
||||
</template>
|
||||
<template #time="{ row }">
|
||||
<span class="rr-time">{{ fmtDate(row.createDate) }}</span>
|
||||
</template>
|
||||
<template #amount="{ row }">
|
||||
<span class="rr-amount">¥ {{ row.totalAmount.toLocaleString() }}</span>
|
||||
</template>
|
||||
@ -271,4 +297,5 @@ onMounted(load)
|
||||
.rr-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; }
|
||||
.rr-muted { color: var(--ink-3); }
|
||||
.rr-amount { font-weight: 600; color: var(--primary); }
|
||||
.rr-time { font-family: 'SF Mono', Menlo, Monaco, Consolas, monospace; font-size: 12px; color: var(--ink-2); }
|
||||
</style>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user