fix CustomerPackageDetail.vue style

This commit is contained in:
Timi
2026-09-02 00:57:35 +08:00
parent 3713539c85
commit f430f8ecd4
8 changed files with 381 additions and 203 deletions
+22 -6
View File
@@ -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<void> {
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<void> {
}
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());