fix order/fulfillment unit

This commit is contained in:
Timi
2026-09-09 14:23:35 +08:00
parent e154fd6186
commit ce4a45fb65
6 changed files with 99 additions and 23 deletions
@@ -31,7 +31,6 @@
v-for="item in fulfillment.itemList || []"
:key="item.id"
:title="item.productNameSnapshot || '未命名产品'"
:note="`待履约(基础单位)${item.reservedBaseBefore || 0} → ${item.reservedBaseAfter || 0}`"
>
<template #description>
<div class="item-description">
@@ -41,7 +40,7 @@
:fallback="item.specSummarySnapshot || item.skuNameSnapshot || '默认 SKU'"
:unit="item.unitSnapshot"
/>
<span v-text="`履约数量 ${item.quantity || 0}`" />
<span v-text="getFulfillmentQuantityText(item)" />
</div>
</template>
<template #leftIcon>
@@ -94,7 +93,9 @@
<t-dialog
v-model:visible="reasonVisible"
:title="reasonAction === 'reject' ? '拒绝履约' : '撤销履约'"
cancel-btn="取消"
:confirm-btn="reasonAction === 'reject' ? '拒绝' : '撤销'"
@cancel="reasonVisible = false"
@confirm="submitReason"
>
<t-textarea v-model.trim="reason" borderless autosize placeholder="请输入原因" />
@@ -102,24 +103,33 @@
<bottom-popup
v-model="revokeVisible"
title="履约冲正"
height="min(55vh, 32rem)"
left-button-text="取消"
right-button-text="提交"
@left-button-click="revokeVisible = false"
@right-button-click="submitRevoke"
>
<t-form label-align="top">
<t-form-item label="冲正原因" required-mark><t-textarea v-model.trim="revokeReason" borderless autosize /></t-form-item>
<t-form-item label="库存是否退回门店"><t-switch v-model="returnedToStore" /></t-form-item>
<t-form class="revoke-form">
<t-form-item label="冲正原因" required-mark>
<t-textarea
v-model="revokeReason"
borderless
autosize
/>
</t-form-item>
<t-form-item label="库存退回门店" content-align="right">
<t-switch v-model="returnedToStore" />
</t-form-item>
<t-form-item label-width="0">
<photo-scroller
:model-value="photoUrlList"
v-model:photo-items="photoItems"
:upload="uploadPhotoList"
:edit-mode="true"
required
title="冲正凭证照片"
/>
</t-form-item>
</t-form>
<photo-scroller
:model-value="photoUrlList"
v-model:photo-items="photoItems"
:upload="uploadPhotoList"
:edit-mode="true"
required
title="冲正凭证照片"
/>
</bottom-popup>
</div>
</template>
@@ -133,11 +143,11 @@ import SalesOrderAPI from "@/api/SalesOrderAPI";
import PhotoScroller from "@/components/PhotoScroller.vue";
import ProductSkuSnapshotTags from "@/components/ProductSkuSnapshotTags.vue";
import { useNavBarStore } from "@/store/navBarStore";
import type { OrderFulfillment } from "@/types/Fulfillment";
import type { OrderFulfillment, OrderFulfillmentItem } from "@/types/Fulfillment";
import type { GaoSalesOrderItemType, SalesOrder } from "@/types/SalesOrder";
import type { PhotoItem } from "@/types/Photo";
import type { Attachment } from "timi-web-api";
import { createPackageRequestNo } from "@/utils/package";
import { createPackageRequestNo, getPackageQuantityText } from "@/utils/package";
import { getAttachmentReadURL } from "@/utils/attachment";
import { getErrorMessage } from "@/utils/error";
import { getProductPhotoURL } from "@/utils/product";
@@ -186,6 +196,10 @@ const sourceItemType = computed<GaoSalesOrderItemType | undefined>(() => {
return order.value?.itemList?.find(item => item.id === sourceOrderItemId)?.itemType;
});
function getFulfillmentQuantityText(item: OrderFulfillmentItem): string {
return `履约数量 ${getPackageQuantityText(item.quantity)} ${item.unitSnapshot || "单位"}`;
}
async function loadData(): Promise<void> {
const id = String(route.params.id || "");
if (!id) return;
@@ -339,4 +353,8 @@ onUnmounted(() => navBarStore.clearRight());
}
}
}
.revoke-form {
margin: 0;
}
</style>