fix(admin): move family union tabs to the bottom of edit dialog

This commit is contained in:
yeuimu
2026-08-28 17:37:58 +08:00
parent 6054cb556a
commit f07e843130
@@ -692,58 +692,6 @@ async function handleDeleteGood() {
<el-option v-for="c in editFamilyCandidates" :key="c.id" :label="c.goodName" :value="String(c.id)" <el-option v-for="c in editFamilyCandidates" :key="c.id" :label="c.goodName" :value="String(c.id)"
@click="addFamilyMember(c)" /> @click="addFamilyMember(c)" />
</el-select> </el-select>
<el-tabs v-if="editFamilyId && editFamilyLoaded" class="family-detail-tabs">
<el-tab-pane :label="`尺码表 (${familySizeRows.length})`">
<el-table :data="familySizeRows" border size="small" max-height="260">
<el-table-column prop="sizeName" label="尺码" width="100" fixed />
<el-table-column
v-for="column in familySizeColumns"
:key="column.key"
:prop="column.key"
:label="`${column.name} (cm)`"
min-width="110"
/>
</el-table>
</el-tab-pane>
<el-tab-pane :label="`包装规格 (${familyPackageRows.length})`">
<el-table :data="familyPackageRows" border size="small" max-height="260">
<el-table-column prop="sizeName" label="尺码" width="90" fixed />
<el-table-column label="包装尺寸 (cm)" min-width="150">
<template #default="{ row }">
{{ row.dimensionsCm ? `${row.dimensionsCm.length}×${row.dimensionsCm.width}×${row.dimensionsCm.height}` : '-' }}
</template>
</el-table-column>
<el-table-column prop="volumeCm3" label="体积 (cm³)" width="110" />
<el-table-column prop="grossWeightG" label="含包装重量 (g)" width="140" />
</el-table>
</el-tab-pane>
<el-tab-pane :label="`SKU (${familySkuRows.length})`">
<el-table :data="familySkuRows" border size="small" max-height="260">
<el-table-column label="物流" width="110">
<template #default="{ row }">{{ row.logistics || '-' }}</template>
</el-table-column>
<el-table-column label="工艺" width="100">
<template #default="{ row }">{{ row.craft || '-' }}</template>
</el-table-column>
<el-table-column label="印花数量" width="100">
<template #default="{ row }">{{ row.craft?.includes('双面印花') ? '双面印花' : row.craft?.includes('单面印花') ? '单面印花' : '-' }}</template>
</el-table-column>
<el-table-column prop="sizeName" label="尺码" width="90" />
<el-table-column prop="colorName" label="颜色" min-width="110" />
<el-table-column label="价格" width="100">
<template #default="{ row }">{{ row.price }}</template>
</el-table-column>
<el-table-column label="链接数" width="80">
<template #default="{ row }">{{ row.sourceCount || 1 }}</template>
</el-table-column>
<el-table-column label="状态" width="90">
<template #default="{ row }">
<el-tag :type="row.manual ? 'warning' : 'success'" size="small">{{ row.manual ? '人工价' : '推导价' }}</el-tag>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
</div> </div>
<el-form v-loading="editDetailLoading" label-width="80px" style="margin-top: 16px"> <el-form v-loading="editDetailLoading" label-width="80px" style="margin-top: 16px">
<el-form-item label="名称"><el-input v-model="editForm.goodName" /></el-form-item> <el-form-item label="名称"><el-input v-model="editForm.goodName" /></el-form-item>
@@ -819,6 +767,60 @@ async function handleDeleteGood() {
</el-table> </el-table>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
<!-- 族级并集视图弹窗最底部尺码表/包装规格为族并集SKU 为价格矩阵动态合并 -->
<el-tabs v-if="!editIsCustom && editFamilyId && editFamilyLoaded" class="detail-tabs">
<el-tab-pane :label="`尺码表 (${familySizeRows.length})`">
<el-table :data="familySizeRows" border size="small" max-height="260">
<el-table-column prop="sizeName" label="尺码" width="100" fixed />
<el-table-column
v-for="column in familySizeColumns"
:key="column.key"
:prop="column.key"
:label="`${column.name} (cm)`"
min-width="110"
/>
</el-table>
</el-tab-pane>
<el-tab-pane :label="`包装规格 (${familyPackageRows.length})`">
<el-table :data="familyPackageRows" border size="small" max-height="260">
<el-table-column prop="sizeName" label="尺码" width="90" fixed />
<el-table-column label="包装尺寸 (cm)" min-width="150">
<template #default="{ row }">
{{ row.dimensionsCm ? `${row.dimensionsCm.length}×${row.dimensionsCm.width}×${row.dimensionsCm.height}` : '-' }}
</template>
</el-table-column>
<el-table-column prop="volumeCm3" label="体积 (cm³)" width="110" />
<el-table-column prop="grossWeightG" label="含包装重量 (g)" width="140" />
</el-table>
</el-tab-pane>
<el-tab-pane :label="`SKU (${familySkuRows.length})`">
<el-table :data="familySkuRows" border size="small" max-height="260">
<el-table-column label="物流" width="110">
<template #default="{ row }">{{ row.logistics || '-' }}</template>
</el-table-column>
<el-table-column label="工艺" width="100">
<template #default="{ row }">{{ row.craft || '-' }}</template>
</el-table-column>
<el-table-column label="印花数量" width="100">
<template #default="{ row }">{{ row.craft?.includes('双面印花') ? '双面印花' : row.craft?.includes('单面印花') ? '单面印花' : '-' }}</template>
</el-table-column>
<el-table-column prop="sizeName" label="尺码" width="90" />
<el-table-column prop="colorName" label="颜色" min-width="110" />
<el-table-column label="价格" width="100">
<template #default="{ row }">{{ row.price }}</template>
</el-table-column>
<el-table-column label="链接数" width="80">
<template #default="{ row }">{{ row.sourceCount || 1 }}</template>
</el-table-column>
<el-table-column label="状态" width="90">
<template #default="{ row }">
<el-tag :type="row.manual ? 'warning' : 'success'" size="small">{{ row.manual ? '人工价' : '推导价' }}</el-tag>
</template>
</el-table-column>
</el-table>
</el-tab-pane>
</el-tabs>
<template #footer> <template #footer>
<el-button type="danger" @click="handleDeleteGood">删除</el-button> <el-button type="danger" @click="handleDeleteGood">删除</el-button>
<el-button @click="emit('update:visible', false)">取消</el-button> <el-button @click="emit('update:visible', false)">取消</el-button>