From ca8599450a9f85cebc3e69594c6044f6cf62a0fd Mon Sep 17 00:00:00 2001 From: Timi Date: Sat, 5 Sep 2026 01:38:03 +0800 Subject: [PATCH] fix SalesOrderDetail.vue style --- src/components/CustomerProfileCard.vue | 1 - .../fulfillment/OrderFulfillmentList.vue | 19 +- src/pages/package/FundRecordList.vue | 16 +- src/pages/salesOrder/SalesOrderDetail.vue | 401 +++++++++++++++--- src/pages/salesOrder/SalesOrderList.vue | 2 + .../components/SalesOrderFinancePanel.vue | 54 --- .../components/SalesOrderListCell.vue | 6 +- 7 files changed, 382 insertions(+), 117 deletions(-) delete mode 100644 src/pages/salesOrder/components/SalesOrderFinancePanel.vue diff --git a/src/components/CustomerProfileCard.vue b/src/components/CustomerProfileCard.vue index 6836275..bab4349 100644 --- a/src/components/CustomerProfileCard.vue +++ b/src/components/CustomerProfileCard.vue @@ -97,7 +97,6 @@ function openPhotoViewer(): void { .header { display: flex; align-items: center; - padding-right: .5rem; justify-content: space-between; .name { diff --git a/src/pages/fulfillment/OrderFulfillmentList.vue b/src/pages/fulfillment/OrderFulfillmentList.vue index b17222b..f65f0cf 100644 --- a/src/pages/fulfillment/OrderFulfillmentList.vue +++ b/src/pages/fulfillment/OrderFulfillmentList.vue @@ -94,8 +94,25 @@ async function refresh(): Promise { try { await fetchList(true); } catch ( async function loadMore(): Promise { try { await fetchList(false); } catch (error) { Message.error(getErrorMessage(error, "履约单加载失败")); } } async function selectType(value: DropdownValue): Promise { if (!Array.isArray(value)) { type.value = String(value); await fetchList(true); } } async function selectStatus(value: DropdownValue): Promise { if (!Array.isArray(value)) { status.value = String(value); await fetchList(true); } } -async function toDetail(item: OrderFulfillment): Promise { if (item.id) await router.push(`/management/order-fulfillments/${item.id}`); } +async function toDetail(item: OrderFulfillment): Promise { + if (item.id) await router.push({ + path: `/management/order-fulfillments/${item.id}`, + query: { transitionDepth: String(getCurrentRouteDepth() + 1) } + }); +} async function toCreate(): Promise { await router.push("/management/order-fulfillments/create"); } + +function getCurrentRouteDepth(): number { + const transitionDepth = Array.isArray(route.query.transitionDepth) + ? route.query.transitionDepth[0] + : route.query.transitionDepth; + const depth = Number(transitionDepth); + if (transitionDepth && Number.isInteger(depth) && 0 <= depth && depth <= 20) { + return depth; + } + return Number(route.meta.depth ?? 0); +} + onMounted(async () => { navBarStore.clearRight(); navBarStore.setCustomRightVisible(canCreate.value); try { await fetchList(true); } catch (error) { Message.error(getErrorMessage(error, "履约单加载失败")); } }); onUnmounted(() => navBarStore.clearRight()); diff --git a/src/pages/package/FundRecordList.vue b/src/pages/package/FundRecordList.vue index eb65d6b..5617675 100644 --- a/src/pages/package/FundRecordList.vue +++ b/src/pages/package/FundRecordList.vue @@ -132,10 +132,24 @@ function getStatusTheme(statusValue?: FundRecordStatus): "success" | "warning" | async function toDetail(item: FundRecord): Promise { if (item.id) { - await router.push(`/management/fund-records/${item.id}`); + await router.push({ + path: `/management/fund-records/${item.id}`, + query: { transitionDepth: String(getCurrentRouteDepth() + 1) } + }); } } +function getCurrentRouteDepth(): number { + const transitionDepth = Array.isArray(route.query.transitionDepth) + ? route.query.transitionDepth[0] + : route.query.transitionDepth; + const depth = Number(transitionDepth); + if (transitionDepth && Number.isInteger(depth) && 0 <= depth && depth <= 20) { + return depth; + } + return Number(route.meta.depth ?? 0); +} + onMounted(async () => { navBarStore.clearRight(); try { diff --git a/src/pages/salesOrder/SalesOrderDetail.vue b/src/pages/salesOrder/SalesOrderDetail.vue index 97ce8a6..b99814a 100644 --- a/src/pages/salesOrder/SalesOrderDetail.vue +++ b/src/pages/salesOrder/SalesOrderDetail.vue @@ -3,45 +3,121 @@ @@ -49,16 +125,23 @@ diff --git a/src/pages/salesOrder/SalesOrderList.vue b/src/pages/salesOrder/SalesOrderList.vue index 32765a5..b4930df 100644 --- a/src/pages/salesOrder/SalesOrderList.vue +++ b/src/pages/salesOrder/SalesOrderList.vue @@ -43,6 +43,7 @@ :order="item" :can-receive="canReceive" :can-fulfill="canCreateFulfillment" + :can-operate-stock="canOperateStock" v-entrance-transition="index * 30" @click="toDetail(item)" @receive="toPayment(item)" @@ -77,6 +78,7 @@ const userStore = useUserStore(); const canCreate = computed(() => userStore.hasPermissions(permissionCodes.salesOrder.create)); const canReceive = computed(() => userStore.hasPermissions(permissionCodes.fundReceive.create)); const canCreateFulfillment = computed(() => userStore.hasPermissions(permissionCodes.orderFulfillment.create)); +const canOperateStock = computed(() => userStore.hasPermissions(permissionCodes.productStock.create)); const actions = computed(() => canCreate.value ? [{ key: "create", text: "直接产品下单", diff --git a/src/pages/salesOrder/components/SalesOrderFinancePanel.vue b/src/pages/salesOrder/components/SalesOrderFinancePanel.vue deleted file mode 100644 index 7e81b45..0000000 --- a/src/pages/salesOrder/components/SalesOrderFinancePanel.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - - - diff --git a/src/pages/salesOrder/components/SalesOrderListCell.vue b/src/pages/salesOrder/components/SalesOrderListCell.vue index ca767d5..dee8dca 100644 --- a/src/pages/salesOrder/components/SalesOrderListCell.vue +++ b/src/pages/salesOrder/components/SalesOrderListCell.vue @@ -81,7 +81,7 @@