Browse Source

feat(订单表单): 扩展订单模型字段并优化表单逻辑

yz 2 months ago
parent
commit
154f27a111

+ 20 - 0
src/components/order-form/form-option.js

@@ -323,6 +323,9 @@ export function getFormOption(isEdit = false) {
     if (isEdit) {
       // 编辑模式下的字段调整
       adjustFieldsForEditMode(option)
+    } else {
+      // 新增模式下的字段调整
+      adjustFieldsForCreateMode(option)
     }
     
     return option
@@ -355,4 +358,21 @@ function adjustFieldsForEditMode(option) {
       statusField.display = true
     }
   }
+}
+
+/**
+ * 调整新增模式下的字段配置
+ * @description 在新增模式下隐藏订单编码字段
+ * @param {AvueFormOption} option - 表单配置对象
+ * @private
+ */
+function adjustFieldsForCreateMode(option) {
+  // 新增模式下,隐藏订单编码字段
+  const basicGroup = option.group.find(group => group.prop === 'basic')
+  if (basicGroup) {
+    const orderCodeField = basicGroup.column.find(column => column.prop === 'orderCode')
+    if (orderCodeField) {
+      orderCodeField.display = false
+    }
+  }
 }

+ 15 - 3
src/components/order-form/order-form-mixin.js

@@ -584,7 +584,7 @@ export default {
         customerCode: String(orderData.customerCode || ''),
         customerName: String(orderData.customerName || ''),
         orderType: Number(orderData.orderType) || ORDER_TYPES.NORMAL,
-        orderQuantity: orderQuantityValidation.isValid ? parseInt(orderQuantityValidation.value) : null,
+        orderQuantity: orderQuantityValidation.isValid ? parseInt(orderQuantityValidation.value.toString()) : null,
         totalAmount: totalAmountValidation.isValid ? preciseRound(totalAmountValidation.value, 2) : null,
         totalQuantity: totalQuantityValidation.isValid ? preciseRound(totalQuantityValidation.value, 4) : null,
         addressId: String(orderData.addressId || ''),
@@ -716,8 +716,8 @@ export default {
         itemStatus: Number(material.itemStatus) || Number(material.status) || 0
       }))
 
-      // 组装销售订单数据
-      return {
+      // 创建销售订单数据对象,不包含orderCode字段
+      const salesOrderData = {
         ...formData,
         orgId: Number(formData.orgId) || 0,
         customerId: Number(formData.customerId) || 0,
@@ -728,6 +728,13 @@ export default {
         status: Number(formData.status) || 0,
         pcBladeOrderItemList
       }
+
+      // 新增模式下,移除orderCode字段
+      if (!this.isEdit && salesOrderData.orderCode) {
+        delete salesOrderData.orderCode
+      }
+
+      return salesOrderData
     },
 
     /**
@@ -796,6 +803,11 @@ export default {
       Object.keys(data).forEach(key => {
         const value = data[key]
 
+        // 新增模式下,移除orderCode字段
+        if (!this.isEdit && key === 'orderCode') {
+          return
+        }
+
         // 跳过null、undefined和空字符串,但保留备注字段
         if (value === null || value === undefined || (value === '' && key !== 'remark')) {
           return

+ 8 - 0
src/components/order-form/types.d.ts

@@ -69,6 +69,8 @@ export interface OrderFormModel {
   orgCode: string;
   /** 组织名称 */
   orgName: string;
+  /** 客户ID */
+  customerId: string | number | null;
   /** 客户编码 */
   customerCode: string;
   /** 客户名称 */
@@ -79,10 +81,16 @@ export interface OrderFormModel {
   totalAmount: number | null;
   /** 订单总数量 */
   totalQuantity: number | null;
+  /** 数量 **/
+  orderQuantity: number|null;
+  /** 地址ID */
+  addressId: string | number | null;
   /** 收货人姓名 */
   receiverName: string;
   /** 收货人电话 */
   receiverPhone: string;
+  /** 收货地区 */
+  receiverRegion: string;
   /** 收货地址 */
   receiverAddress: string;
   /** 订单状态 */