From f430f8ecd4e0c0a22fffd92ff7fadc780d8d3770 Mon Sep 17 00:00:00 2001 From: Timi Date: Wed, 2 Sep 2026 00:57:35 +0800 Subject: [PATCH] fix CustomerPackageDetail.vue style --- src/assets/styles/tdesign-custom.css | 2 + src/pages/package/CustomerPackageCancel.vue | 94 ---- src/pages/package/CustomerPackageDelivery.vue | 28 +- src/pages/package/CustomerPackageDetail.vue | 421 ++++++++++++++---- src/pages/package/FundRecordList.vue | 4 +- src/pages/package/PackageDeliveryDetail.vue | 13 +- src/router/routes/packageRoutes.ts | 7 - src/utils/package.ts | 15 + 8 files changed, 381 insertions(+), 203 deletions(-) delete mode 100644 src/pages/package/CustomerPackageCancel.vue diff --git a/src/assets/styles/tdesign-custom.css b/src/assets/styles/tdesign-custom.css index c97e448..e3ec93c 100644 --- a/src/assets/styles/tdesign-custom.css +++ b/src/assets/styles/tdesign-custom.css @@ -78,6 +78,7 @@ --td-error-color-focus: var(--td-error-color-2); --td-error-color-active: var(--td-error-color-7); --td-error-color-disabled: var(--td-error-color-3); + --td-button-danger-text-disabled-color: var(--td-error-color-disabled); --td-error-color-light: var(--td-error-color-1); --td-error-color-light-active: var(--td-error-color-2); --td-success-color-focus: var(--td-success-color-2); @@ -203,6 +204,7 @@ --td-error-color-focus: var(--td-error-color-2); --td-error-color-active: var(--td-error-color-5); --td-error-color-disabled: var(--td-error-color-3); + --td-button-danger-text-disabled-color: var(--td-error-color-disabled); --td-error-color-light: var(--td-error-color-1); --td-error-color-light-active: var(--td-error-color-2); --td-success-color-focus: var(--td-success-color-2); diff --git a/src/pages/package/CustomerPackageCancel.vue b/src/pages/package/CustomerPackageCancel.vue deleted file mode 100644 index cf6a136..0000000 --- a/src/pages/package/CustomerPackageCancel.vue +++ /dev/null @@ -1,94 +0,0 @@ - - - - - diff --git a/src/pages/package/CustomerPackageDelivery.vue b/src/pages/package/CustomerPackageDelivery.vue index 5eae656..67b92e2 100644 --- a/src/pages/package/CustomerPackageDelivery.vue +++ b/src/pages/package/CustomerPackageDelivery.vue @@ -34,10 +34,18 @@ import PackagePhotoField from "@/components/PackagePhotoField.vue"; import { useNavBarStore } from "@/store/navBarStore"; import type { GaoCustomerPackage, PackageAttachment } from "@/types/Package"; import type { PhotoItem } from "@/types/Photo"; -import { comparePackageQuantity, createPackageRequestNo, getPackageQuantityText, getPaymentStatusText, normalizePackageQuantity } from "@/utils/package"; +import { + canCreatePackageDelivery, + comparePackageQuantity, + createPackageRequestNo, + getPackageQuantityText, + getPaymentStatusText, + isStoreManagerRequiredForPackageDelivery, + normalizePackageQuantity +} from "@/utils/package"; import { getErrorMessage } from "@/utils/error"; import { Message } from "@/utils/message"; -import { permissionCodes } from "@/utils/permission"; +import { gaoRoleCodes, permissionCodes } from "@/utils/permission"; defineOptions({ name: "CustomerPackageDelivery" }); @@ -54,6 +62,10 @@ const deliveredDraft = ref(""); const deliveredPickerVisible = ref(false); const isLoading = ref(false); const isSaving = ref(false); +const isStoreManager = computed(() => userStore.hasRoles(gaoRoleCodes.storeManager) && !userStore.hasRoles(gaoRoleCodes.globalManager)); +const canCreateDelivery = computed(() => canCreatePackageDelivery(customerPackage.value) + && (!isStoreManagerRequiredForPackageDelivery(customerPackage.value) || isStoreManager.value) + && userStore.hasPermissions(permissionCodes.packageDelivery.create)); function confirmDeliveredAt(value: string | number): void { deliveredAtText.value = String(value); @@ -129,8 +141,12 @@ async function save(): Promise { if (!customerPackageId || !itemList) { return; } - if (customerPackage.value?.paymentStatus !== "PAID") { - Message.warning("套餐未付清,不能提交发放"); + if (!canCreatePackageDelivery(customerPackage.value)) { + Message.warning("套餐未有已核销收款,不能提交发放"); + return; + } + if (isStoreManagerRequiredForPackageDelivery(customerPackage.value) && !isStoreManager.value) { + Message.warning("部分收款套餐仅店长可发放"); return; } if (!photoItems.value.some(item => item.tempFileId)) { @@ -162,10 +178,10 @@ async function save(): Promise { } onMounted(async () => { - if (userStore.hasPermissions(permissionCodes.packageDelivery.create)) { + await loadData(); + if (canCreateDelivery.value) { navBarStore.setRightText("提交发放", "var(--td-brand-color)", save); } - await loadData(); }); onUnmounted(() => navBarStore.clearRight()); diff --git a/src/pages/package/CustomerPackageDetail.vue b/src/pages/package/CustomerPackageDetail.vue index 816dc38..411072e 100644 --- a/src/pages/package/CustomerPackageDetail.vue +++ b/src/pages/package/CustomerPackageDetail.vue @@ -2,44 +2,100 @@
+ + + + + + + +