|
@@ -1,263 +1,40 @@
|
|
|
/**
|
|
|
- * @fileoverview 订单表单相关常量定义和类型定义
|
|
|
- * @description 定义订单表单组件使用的枚举值、常量和TypeScript类型注释
|
|
|
+ * 订单表单相关常量定义
|
|
|
+ * @fileoverview 从统一的常量文件导入订单相关枚举和配置
|
|
|
*/
|
|
|
|
|
|
-// 导入明细管理中的状态定义和工具函数
|
|
|
-import {
|
|
|
- ORDER_ITEM_STATUS,
|
|
|
- getOrderItemStatusLabel,
|
|
|
- getOrderItemStatusTagType,
|
|
|
- getOrderItemStatusColor
|
|
|
-} from '@/constants/order'
|
|
|
-
|
|
|
-/**
|
|
|
- * 订单类型枚举
|
|
|
- * @readonly
|
|
|
- * @enum {number}
|
|
|
- */
|
|
|
-export const OrderType = {
|
|
|
- /** 普通订单 */
|
|
|
- NORMAL: 1,
|
|
|
- /** 紧急订单 */
|
|
|
- URGENT: 2,
|
|
|
- /** 预订订单 */
|
|
|
- RESERVATION: 3
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * 订单状态枚举
|
|
|
- * @readonly
|
|
|
- * @enum {number}
|
|
|
- */
|
|
|
-export const OrderStatus = {
|
|
|
- /** 草稿 */
|
|
|
- DRAFT: 0,
|
|
|
- /** 待审核 */
|
|
|
- PENDING: 1,
|
|
|
- /** 已审核 */
|
|
|
- APPROVED: 2,
|
|
|
- /** 已发货 */
|
|
|
- SHIPPED: 3,
|
|
|
- /** 已完成 */
|
|
|
- COMPLETED: 4,
|
|
|
- /** 已取消 */
|
|
|
- CANCELLED: 5
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * 物料明细数据来源枚举
|
|
|
- * @readonly
|
|
|
- * @enum {string}
|
|
|
- */
|
|
|
-export const MaterialDetailDataSource = {
|
|
|
- /** 远程加载的数据(从订单获取) */
|
|
|
- REMOTE: 'REMOTE',
|
|
|
- /** 用户导入的数据 */
|
|
|
- IMPORTED: 'IMPORTED'
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * 物料明细状态枚举
|
|
|
- * @description 对应数据库item_status字段:0未确认 1已确认 2部分发货 3已完成
|
|
|
- * @readonly
|
|
|
- * @enum {0|1|2|3}
|
|
|
- */
|
|
|
-export const MaterialDetailStatus = {
|
|
|
- /** 未确认 */
|
|
|
- UNCONFIRMED: 0,
|
|
|
- /** 已确认 */
|
|
|
- CONFIRMED: 1,
|
|
|
- /** 部分发货 */
|
|
|
- PARTIAL_SHIPPED: 2,
|
|
|
- /** 已完成 */
|
|
|
- COMPLETED: 3
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * 订单类型选项列表
|
|
|
- * @type {ReadonlyArray<{readonly label: string, readonly value: 1|2|3}>}
|
|
|
- */
|
|
|
-export const ORDER_TYPE_OPTIONS = [
|
|
|
- { label: '普通订单', value: OrderType.NORMAL },
|
|
|
- { label: '紧急订单', value: OrderType.URGENT },
|
|
|
- { label: '预订订单', value: OrderType.RESERVATION }
|
|
|
-]
|
|
|
-
|
|
|
-/**
|
|
|
- * 订单状态选项列表
|
|
|
- * @type {ReadonlyArray<{readonly label: string, readonly value: 0|1|2|3|4|5}>}
|
|
|
- */
|
|
|
-export const ORDER_STATUS_OPTIONS = [
|
|
|
- { label: '草稿', value: OrderStatus.DRAFT },
|
|
|
- { label: '待审核', value: OrderStatus.PENDING },
|
|
|
- { label: '已审核', value: OrderStatus.APPROVED },
|
|
|
- { label: '已发货', value: OrderStatus.SHIPPED },
|
|
|
- { label: '已完成', value: OrderStatus.COMPLETED },
|
|
|
- { label: '已取消', value: OrderStatus.CANCELLED }
|
|
|
-]
|
|
|
-
|
|
|
-/**
|
|
|
- * 默认分页配置
|
|
|
- * @description 通用的AvueJS分页配置,可在多个组件中复用
|
|
|
- * @type {Readonly<{pageSize: 10, pageSizes: ReadonlyArray<5|10|20|50>, layout: string}>}
|
|
|
- */
|
|
|
-export const DEFAULT_PAGINATION_CONFIG = {
|
|
|
- pageSize: 10,
|
|
|
- pageSizes: [5, 10, 20, 50],
|
|
|
- layout: 'total, sizes, prev, pager, next, jumper'
|
|
|
-}
|
|
|
-
|
|
|
-/**
|
|
|
- * 物料明细状态选项列表
|
|
|
- * @type {ReadonlyArray<{readonly label: string, readonly value: 0|1|2|3}>}
|
|
|
- */
|
|
|
-export const MATERIAL_DETAIL_STATUS_OPTIONS = [
|
|
|
- { label: '未确认', value: MaterialDetailStatus.UNCONFIRMED },
|
|
|
- { label: '已确认', value: MaterialDetailStatus.CONFIRMED },
|
|
|
- { label: '部分发货', value: MaterialDetailStatus.PARTIAL_SHIPPED },
|
|
|
- { label: '已完成', value: MaterialDetailStatus.COMPLETED }
|
|
|
-]
|
|
|
+// ==================== 导入常量 ====================
|
|
|
|
|
|
-// 导出明细状态工具函数供其他组件使用
|
|
|
+// 从统一的订单常量文件导入
|
|
|
export {
|
|
|
+ // 枚举定义
|
|
|
+ OrderType,
|
|
|
+ OrderStatus,
|
|
|
+ MaterialDetailDataSource,
|
|
|
+ MaterialDetailStatus,
|
|
|
+
|
|
|
+ // 选项列表
|
|
|
+ ORDER_TYPE_OPTIONS,
|
|
|
+ ORDER_STATUS_OPTIONS,
|
|
|
+ MATERIAL_DETAIL_STATUS_OPTIONS,
|
|
|
+
|
|
|
+ // 默认配置
|
|
|
+ DEFAULT_PAGINATION_CONFIG,
|
|
|
+
|
|
|
+ // 工具函数
|
|
|
+ getOrderTypeLabel,
|
|
|
+ getOrderTypeTagType,
|
|
|
+ getOrderTypeColor,
|
|
|
+ getOrderStatusLabel,
|
|
|
+ getOrderStatusTagType,
|
|
|
+ getOrderStatusColor,
|
|
|
getOrderItemStatusLabel as getMaterialDetailStatusLabel,
|
|
|
getOrderItemStatusTagType as getMaterialDetailStatusTagType,
|
|
|
getOrderItemStatusColor as getMaterialDetailStatusColor
|
|
|
-}
|
|
|
-
|
|
|
-// ==================== JSDoc 类型定义 ====================
|
|
|
-
|
|
|
-/**
|
|
|
- * 物料明细记录
|
|
|
- * @typedef {Object} MaterialDetailRecord
|
|
|
- * @property {string} id - 记录ID
|
|
|
- * @property {string} itemId - 物料ID
|
|
|
- * @property {string} itemCode - 物料编码
|
|
|
- * @property {string} itemName - 物料名称
|
|
|
- * @property {string} specs - 规格型号
|
|
|
- * @property {string} unit - 单位
|
|
|
- * @property {number} availableQuantity - 可用数量(4位浮点型)
|
|
|
- * @property {number} orderQuantity - 订单数量(整数)
|
|
|
- * @property {number} confirmQuantity - 确认数量(整数)
|
|
|
- * @property {number} unitPrice - 单价(4位浮点型)
|
|
|
- * @property {number} taxRate - 税率百分比(4位浮点型)(%)
|
|
|
- * @property {number} taxAmount - 税额(2位小数)
|
|
|
- * @property {number} totalAmount - 总金额(2位小数)
|
|
|
- * @property {string} remark - 备注
|
|
|
- * @property {0|1|2|3} status - 明细状态(0未确认 1已确认 2部分发货 3已完成)
|
|
|
- * @property {keyof typeof MaterialDetailDataSource} dataSource - 数据来源 (REMOTE|IMPORTED)
|
|
|
- * @property {boolean} isDeletable - 是否可删除
|
|
|
- * @property {string} mainCategoryId - 主物料分类ID
|
|
|
- * @property {string} mainItemCategoryName - 主物料分类名称
|
|
|
- * @property {string} warehouseId - 仓库ID
|
|
|
- * @property {string} warehouseName - 仓库名称
|
|
|
- * @property {Date} createTime - 创建时间(ISO字符串)
|
|
|
- * @property {Date} updateTime - 更新时间(ISO字符串)
|
|
|
- */
|
|
|
-
|
|
|
-/**
|
|
|
- * 订单表单模型
|
|
|
- * @typedef {Object} OrderFormModel
|
|
|
- * @property {string} id - 订单ID
|
|
|
- * @property {string} orderNumber - 订单编号
|
|
|
- * @property {keyof typeof OrderType} orderType - 订单类型
|
|
|
- * @property {keyof typeof OrderStatus} status - 订单状态
|
|
|
- * @property {string} customerCode - 客户编码
|
|
|
- * @property {string} customerName - 客户名称
|
|
|
- * @property {string} customerContact - 客户联系人
|
|
|
- * @property {string} contactPhone - 联系电话
|
|
|
- * @property {string} deliveryAddress - 交货地址
|
|
|
- * @property {Date} orderDate - 订单日期
|
|
|
- * @property {Date} deliveryDate - 预期交货日期
|
|
|
- * @property {number} totalQuantity - 总数量
|
|
|
- * @property {number} totalAmount - 订单总金额
|
|
|
- * @property {string} remark - 备注
|
|
|
- * @property {MaterialDetailRecord[]} materialDetails - 物料明细列表
|
|
|
- * @property {Date} createTime - 创建时间
|
|
|
- * @property {Date} updateTime - 更新时间
|
|
|
- * @property {string} createdBy - 创建人
|
|
|
- * @property {string} updatedBy - 更新人
|
|
|
- */
|
|
|
-
|
|
|
-/**
|
|
|
- * 物料查询参数
|
|
|
- * @typedef {Object} MaterialQueryParams
|
|
|
- * @property {string} [itemCode] - 物料编码
|
|
|
- * @property {string} [itemName] - 物料名称
|
|
|
- * @property {string} [mainItemCategoryId] - 主物料分类ID
|
|
|
- * @property {string} [subItemCategoryId] - 子物料分类ID
|
|
|
- * @property {string} [brandId] - 品牌ID
|
|
|
- * @property {string} [warehouseId] - 仓库ID
|
|
|
- * @property {number} [pageNum] - 页码
|
|
|
- * @property {number} [pageSize] - 每页大小
|
|
|
- */
|
|
|
-
|
|
|
-/**
|
|
|
- * 物料删除事件数据
|
|
|
- * @typedef {Object} MaterialDeleteEventData
|
|
|
- * @property {MaterialDetailRecord} row - 要删除的物料明细记录
|
|
|
- * @property {number} index - 在列表中的索引
|
|
|
- */
|
|
|
-
|
|
|
-/**
|
|
|
- * 验证规则
|
|
|
- * @typedef {Object} ValidationRule
|
|
|
- * @property {boolean} required - 是否必填
|
|
|
- * @property {string} message - 验证失败消息
|
|
|
- * @property {string} [trigger] - 触发方式
|
|
|
- * @property {string} [type] - 验证类型
|
|
|
- * @property {number} [min] - 最小值
|
|
|
- * @property {number} [max] - 最大值
|
|
|
- * @property {Function} [validator] - 自定义验证函数
|
|
|
- */
|
|
|
-
|
|
|
-/**
|
|
|
- * API响应数据结构
|
|
|
- * @template T
|
|
|
- * @typedef {Object} ApiResponse
|
|
|
- * @property {number} code - 响应状态码
|
|
|
- * @property {string} message - 响应消息
|
|
|
- * @property {T} data - 响应数据
|
|
|
- * @property {boolean} success - 是否成功
|
|
|
- * @property {number} timestamp - 时间戳
|
|
|
- */
|
|
|
-
|
|
|
-/**
|
|
|
- * 分页响应数据结构
|
|
|
- * @template T
|
|
|
- * @typedef {Object} PaginatedResponse
|
|
|
- * @property {T[]} records - 数据记录列表
|
|
|
- * @property {number} total - 总记录数
|
|
|
- * @property {number} size - 每页大小
|
|
|
- * @property {number} current - 当前页码
|
|
|
- * @property {number} pages - 总页数
|
|
|
- * @property {boolean} hasNext - 是否有下一页
|
|
|
- * @property {boolean} hasPrevious - 是否有上一页
|
|
|
- */
|
|
|
-
|
|
|
-/**
|
|
|
- * 数字验证结果
|
|
|
- * @typedef {Object} NumberValidationResult
|
|
|
- * @property {boolean} isValid - 是否为有效数字
|
|
|
- * @property {number} value - 转换后的数字值
|
|
|
- * @property {string} [error] - 错误信息(验证失败时)
|
|
|
- */
|
|
|
+} from '@/constants/order'
|
|
|
|
|
|
-/**
|
|
|
- * 数字格式化配置
|
|
|
- * @typedef {Object} NumberFormatConfig
|
|
|
- * @property {number} decimalPlaces - 小数位数
|
|
|
- * @property {boolean} [showThousandsSeparator] - 是否显示千分位分隔符
|
|
|
- * @property {string} [prefix] - 前缀(如货币符号)
|
|
|
- * @property {string} [suffix] - 后缀(如百分号)
|
|
|
- */
|
|
|
+// ==================== 类型定义导入 ====================
|
|
|
|
|
|
-/**
|
|
|
- * 订单表单混入数据
|
|
|
- * @typedef {Object} OrderFormMixinData
|
|
|
- * @property {OrderFormModel} formData - 表单数据
|
|
|
- * @property {boolean} saveLoading - 保存加载状态
|
|
|
- * @property {MaterialDetailRecord[]} materialDetails - 物料明细列表
|
|
|
- */
|
|
|
+// 从物料常量文件导入类型定义
|
|
|
+import '@/constants/material'
|
|
|
|