admin_new P0+P1 全批次合并 (84 commits) #2
@ -112,6 +112,9 @@ const selection = ref<Good[]>([])
|
|||||||
// 状态统计 (与 tab 解耦, 只跟搜索条件关联 - 跨 tab 一致)
|
// 状态统计 (与 tab 解耦, 只跟搜索条件关联 - 跨 tab 一致)
|
||||||
const checkStats = reactive({ pending: 0, approved: 0, rejected: 0 })
|
const checkStats = reactive({ pending: 0, approved: 0, rejected: 0 })
|
||||||
|
|
||||||
|
// W17.6: 商品总数 + SKU 总数 (实物商品下, 全量, 不分 checkStatus)
|
||||||
|
const counts = reactive({ goodCount: 0, skuCount: 0 })
|
||||||
|
|
||||||
const filters = reactive({
|
const filters = reactive({
|
||||||
title: '',
|
title: '',
|
||||||
enterpriseName: '',
|
enterpriseName: '',
|
||||||
@ -169,6 +172,18 @@ async function loadStats() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// W17.6: 全量商品数 + 全量 SKU 数 (实物, type=1, 不分 checkStatus / 搜索)
|
||||||
|
async function loadCounts() {
|
||||||
|
try {
|
||||||
|
const r: any = await httpGet('/supplier/good/sku-count', { type: 1 })
|
||||||
|
counts.goodCount = Number(r?.goodCount ?? 0)
|
||||||
|
counts.skuCount = Number(r?.skuCount ?? 0)
|
||||||
|
} catch {
|
||||||
|
counts.goodCount = 0
|
||||||
|
counts.skuCount = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async function load() {
|
async function load() {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
error.value = null
|
error.value = null
|
||||||
@ -210,8 +225,8 @@ async function load() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function onSearch() { page.value = 1; Promise.all([load(), loadStats()]) }
|
function onSearch() { page.value = 1; Promise.all([load(), loadStats(), loadCounts()]) }
|
||||||
function onReset() { filters.title = ''; filters.enterpriseName = ''; filters.checkStatus = ''; page.value = 1; Promise.all([load(), loadStats()]) }
|
function onReset() { filters.title = ''; filters.enterpriseName = ''; filters.checkStatus = ''; page.value = 1; Promise.all([load(), loadStats(), loadCounts()]) }
|
||||||
function onPageChange(p: number) { page.value = p; load() }
|
function onPageChange(p: number) { page.value = p; load() }
|
||||||
function onLimitChange(l: number) { limit.value = l; page.value = 1; load() }
|
function onLimitChange(l: number) { limit.value = l; page.value = 1; load() }
|
||||||
function onSelectionChange(rows: Good[]) { selection.value = rows }
|
function onSelectionChange(rows: Good[]) { selection.value = rows }
|
||||||
@ -317,12 +332,12 @@ function onDeleteBatch() {
|
|||||||
function onExport() { ElMessage.success('导出商品 (mock)') }
|
function onExport() { ElMessage.success('导出商品 (mock)') }
|
||||||
function onAdd() { ElMessage.info('新增商品 (mock)') }
|
function onAdd() { ElMessage.info('新增商品 (mock)') }
|
||||||
|
|
||||||
onMounted(() => Promise.all([load(), loadStats()]))
|
onMounted(() => Promise.all([load(), loadStats(), loadCounts()]))
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="rr-page">
|
<div class="rr-page">
|
||||||
<PageHeader title="商品管理" :sub="`共 ${checkStats.pending + checkStats.approved + checkStats.rejected} 个商品`">
|
<PageHeader title="商品管理" :sub="`共 ${counts.goodCount} 个商品,${counts.skuCount} 个SKU`">
|
||||||
<el-button @click="onExport">导出</el-button>
|
<el-button @click="onExport">导出</el-button>
|
||||||
<el-button type="primary" @click="onAdd">新增商品</el-button>
|
<el-button type="primary" @click="onAdd">新增商品</el-button>
|
||||||
</PageHeader>
|
</PageHeader>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user