merge: fix/swagger-proxy-dev into develop (local only, not pushed)
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
@@ -31,6 +31,11 @@ export default defineConfig({
|
|||||||
// 端口被占时直接报错退出,而不是静默换端口导致浏览器看到旧实例
|
// 端口被占时直接报错退出,而不是静默换端口导致浏览器看到旧实例
|
||||||
strictPort: true,
|
strictPort: true,
|
||||||
proxy: {
|
proxy: {
|
||||||
|
// Swagger 挂载在后端 /api/docs(不走去掉 /api 前缀的改写),需放在 '/api' 之前
|
||||||
|
'/api/docs': {
|
||||||
|
target: 'http://127.0.0.1:3001',
|
||||||
|
changeOrigin: true,
|
||||||
|
},
|
||||||
'/api': {
|
'/api': {
|
||||||
target: 'http://127.0.0.1:3001',
|
target: 'http://127.0.0.1:3001',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
|
|||||||
Reference in New Issue
Block a user