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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ 购买于
+
+
-
-
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 总数
+
+
+
+ 可发
+
+
+
+ 待核销
+
+
+
+ 已核销
+
+
+
+
+
+
+
- 登记收款
- 创建发放单
- 取消套餐
- 处理退款
+ 登记收款
+ 创建发放单
@@ -58,45 +114,67 @@
-
-
-
-
-
+ 取消套餐
+ 处理退款
+
+
+ 确认取消
+
+
+
+
+
+
+