diff --git a/src/pages/salesOrder/SalesOrderCancel.vue b/src/pages/salesOrder/SalesOrderCancel.vue
index 819d161..3567b0d 100644
--- a/src/pages/salesOrder/SalesOrderCancel.vue
+++ b/src/pages/salesOrder/SalesOrderCancel.vue
@@ -22,10 +22,34 @@
v-entrance-transition="70"
>
-
+
+
+ 选择
+
+
+
+
@@ -49,7 +73,30 @@ const order = ref();
const loading = ref(false);
const saving = ref(false);
const reason = ref("");
+const cancelReasonPickerDraft = ref([]);
+const cancelReasonPickerVisible = ref(false);
const hasPendingFulfillment = ref(false);
+const cancelReasonOptions = [
+ "客户主动取消订单",
+ "客户重复下单",
+ "商品缺货,无法履约",
+ "订单信息有误",
+ "价格或优惠配置错误",
+ "客户需求变更",
+ "其他原因"
+];
+const cancelReasonPickerColumns = cancelReasonOptions.map(item => ({ label: item, value: item }));
+
+function openCancelReasonPicker(): void {
+ const currentReason = cancelReasonOptions.includes(reason.value) ? reason.value : cancelReasonOptions[0];
+ cancelReasonPickerDraft.value = [currentReason];
+ cancelReasonPickerVisible.value = true;
+}
+
+function confirmCancelReason(value: Array): void {
+ reason.value = String(value[0] || cancelReasonPickerDraft.value[0] || "");
+ cancelReasonPickerVisible.value = false;
+}
async function loadData(): Promise {
const id = String(route.params.id || "");
@@ -107,5 +154,13 @@ onUnmounted(() => navBarStore.clearRight());
padding: var(--app-nav-height) 0 2rem;
display: flex;
flex-direction: column;
+
+ .form {
+
+ .reason {
+ gap: .5rem;
+ display: flex;
+ }
+ }
}