|  | @@ -0,0 +1,292 @@
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单管理相关常量定义
 | 
	
		
			
				|  |  | + * @fileoverview 订单类型、订单状态、订单明细状态等枚举值和工具函数
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单类型枚举
 | 
	
		
			
				|  |  | + * @readonly
 | 
	
		
			
				|  |  | + * @enum {1}
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export const ORDER_TYPES = {
 | 
	
		
			
				|  |  | +  /** 普通订单 */
 | 
	
		
			
				|  |  | +  NORMAL: 1
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单状态枚举
 | 
	
		
			
				|  |  | + * @readonly
 | 
	
		
			
				|  |  | + * @enum {0 | 1 | 2 | 3 | 4 | 5}
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export const ORDER_STATUS = {
 | 
	
		
			
				|  |  | +  /** 草稿 */
 | 
	
		
			
				|  |  | +  DRAFT: 0,
 | 
	
		
			
				|  |  | +  /** 已提交 */
 | 
	
		
			
				|  |  | +  SUBMITTED: 1,
 | 
	
		
			
				|  |  | +  /** 已确认 */
 | 
	
		
			
				|  |  | +  CONFIRMED: 2,
 | 
	
		
			
				|  |  | +  /** 部分发货 */
 | 
	
		
			
				|  |  | +  PARTIAL_SHIPPED: 3,
 | 
	
		
			
				|  |  | +  /** 已完成 */
 | 
	
		
			
				|  |  | +  COMPLETED: 4,
 | 
	
		
			
				|  |  | +  /** 已取消 */
 | 
	
		
			
				|  |  | +  CANCELLED: 5
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单明细状态枚举
 | 
	
		
			
				|  |  | + * @readonly
 | 
	
		
			
				|  |  | + * @enum {0 | 1 | 2 | 3}
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export const ORDER_ITEM_STATUS = {
 | 
	
		
			
				|  |  | +  /** 未确认 */
 | 
	
		
			
				|  |  | +  UNCONFIRMED: 0,
 | 
	
		
			
				|  |  | +  /** 已确认 */
 | 
	
		
			
				|  |  | +  CONFIRMED: 1,
 | 
	
		
			
				|  |  | +  /** 部分发货 */
 | 
	
		
			
				|  |  | +  PARTIAL_SHIPPED: 2,
 | 
	
		
			
				|  |  | +  /** 已完成 */
 | 
	
		
			
				|  |  | +  COMPLETED: 3
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单类型配置映射
 | 
	
		
			
				|  |  | + * @readonly
 | 
	
		
			
				|  |  | + * @type {Record<1, {readonly label: '普通订单', readonly type: 'primary', readonly color: '#409EFF'}>}
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export const ORDER_TYPE_CONFIG = {
 | 
	
		
			
				|  |  | +  [ORDER_TYPES.NORMAL]: {
 | 
	
		
			
				|  |  | +    label: '普通订单',
 | 
	
		
			
				|  |  | +    type: 'primary',
 | 
	
		
			
				|  |  | +    color: '#409EFF'
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单状态配置映射
 | 
	
		
			
				|  |  | + * @readonly
 | 
	
		
			
				|  |  | + * @type {Record<0 | 1 | 2 | 3 | 4 | 5, {readonly label: string, readonly type: 'info' | 'warning' | 'primary' | 'success' | 'danger', readonly color: string}>}
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export const ORDER_STATUS_CONFIG = {
 | 
	
		
			
				|  |  | +  [ORDER_STATUS.DRAFT]: {
 | 
	
		
			
				|  |  | +    label: '草稿',
 | 
	
		
			
				|  |  | +    type: 'info',
 | 
	
		
			
				|  |  | +    color: '#909399'
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  [ORDER_STATUS.SUBMITTED]: {
 | 
	
		
			
				|  |  | +    label: '已提交',
 | 
	
		
			
				|  |  | +    type: 'warning',
 | 
	
		
			
				|  |  | +    color: '#E6A23C'
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  [ORDER_STATUS.CONFIRMED]: {
 | 
	
		
			
				|  |  | +    label: '已确认',
 | 
	
		
			
				|  |  | +    type: 'primary',
 | 
	
		
			
				|  |  | +    color: '#409EFF'
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  [ORDER_STATUS.PARTIAL_SHIPPED]: {
 | 
	
		
			
				|  |  | +    label: '部分发货',
 | 
	
		
			
				|  |  | +    type: 'warning',
 | 
	
		
			
				|  |  | +    color: '#E6A23C'
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  [ORDER_STATUS.COMPLETED]: {
 | 
	
		
			
				|  |  | +    label: '已完成',
 | 
	
		
			
				|  |  | +    type: 'success',
 | 
	
		
			
				|  |  | +    color: '#67C23A'
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  [ORDER_STATUS.CANCELLED]: {
 | 
	
		
			
				|  |  | +    label: '已取消',
 | 
	
		
			
				|  |  | +    type: 'danger',
 | 
	
		
			
				|  |  | +    color: '#F56C6C'
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单明细状态配置映射
 | 
	
		
			
				|  |  | + * @readonly
 | 
	
		
			
				|  |  | + * @type {Record<0 | 1 | 2 | 3, {readonly label: string, readonly type: 'warning' | 'primary' | 'success', readonly color: string}>}
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export const ORDER_ITEM_STATUS_CONFIG = {
 | 
	
		
			
				|  |  | +  [ORDER_ITEM_STATUS.UNCONFIRMED]: {
 | 
	
		
			
				|  |  | +    label: '未确认',
 | 
	
		
			
				|  |  | +    type: 'warning',
 | 
	
		
			
				|  |  | +    color: '#E6A23C'
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  [ORDER_ITEM_STATUS.CONFIRMED]: {
 | 
	
		
			
				|  |  | +    label: '已确认',
 | 
	
		
			
				|  |  | +    type: 'primary',
 | 
	
		
			
				|  |  | +    color: '#409EFF'
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  [ORDER_ITEM_STATUS.PARTIAL_SHIPPED]: {
 | 
	
		
			
				|  |  | +    label: '部分发货',
 | 
	
		
			
				|  |  | +    type: 'warning',
 | 
	
		
			
				|  |  | +    color: '#E6A23C'
 | 
	
		
			
				|  |  | +  },
 | 
	
		
			
				|  |  | +  [ORDER_ITEM_STATUS.COMPLETED]: {
 | 
	
		
			
				|  |  | +    label: '已完成',
 | 
	
		
			
				|  |  | +    type: 'success',
 | 
	
		
			
				|  |  | +    color: '#67C23A'
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单类型选项数据
 | 
	
		
			
				|  |  | + * @readonly
 | 
	
		
			
				|  |  | + * @type {ReadonlyArray<{readonly label: '普通订单', readonly value: 1}>}
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export const ORDER_TYPE_OPTIONS = [
 | 
	
		
			
				|  |  | +  { label: '普通订单', value: ORDER_TYPES.NORMAL }
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单状态选项数据
 | 
	
		
			
				|  |  | + * @readonly
 | 
	
		
			
				|  |  | + * @type {ReadonlyArray<{readonly label: string, readonly value: 0 | 1 | 2 | 3 | 4 | 5}>}
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export const ORDER_STATUS_OPTIONS = [
 | 
	
		
			
				|  |  | +  { label: '草稿', value: ORDER_STATUS.DRAFT },
 | 
	
		
			
				|  |  | +  { label: '已提交', value: ORDER_STATUS.SUBMITTED },
 | 
	
		
			
				|  |  | +  { label: '已确认', value: ORDER_STATUS.CONFIRMED },
 | 
	
		
			
				|  |  | +  { label: '部分发货', value: ORDER_STATUS.PARTIAL_SHIPPED },
 | 
	
		
			
				|  |  | +  { label: '已完成', value: ORDER_STATUS.COMPLETED },
 | 
	
		
			
				|  |  | +  { label: '已取消', value: ORDER_STATUS.CANCELLED }
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 订单明细状态选项数据
 | 
	
		
			
				|  |  | + * @readonly
 | 
	
		
			
				|  |  | + * @type {ReadonlyArray<{readonly label: string, readonly value: 0 | 1 | 2 | 3}>}
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export const ORDER_ITEM_STATUS_OPTIONS = [
 | 
	
		
			
				|  |  | +  { label: '未确认', value: ORDER_ITEM_STATUS.UNCONFIRMED },
 | 
	
		
			
				|  |  | +  { label: '已确认', value: ORDER_ITEM_STATUS.CONFIRMED },
 | 
	
		
			
				|  |  | +  { label: '部分发货', value: ORDER_ITEM_STATUS.PARTIAL_SHIPPED },
 | 
	
		
			
				|  |  | +  { label: '已完成', value: ORDER_ITEM_STATUS.COMPLETED }
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// ==================== 工具函数 ====================
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取订单类型标签
 | 
	
		
			
				|  |  | + * @param {1} orderType - 订单类型值
 | 
	
		
			
				|  |  | + * @returns {'普通订单' | '未知类型'} 订单类型标签
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function getOrderTypeLabel(orderType) {
 | 
	
		
			
				|  |  | +  const config = ORDER_TYPE_CONFIG[orderType]
 | 
	
		
			
				|  |  | +  return config ? config.label : '未知类型'
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取订单类型Element UI标签类型
 | 
	
		
			
				|  |  | + * @param {1} orderType - 订单类型值
 | 
	
		
			
				|  |  | + * @returns {'primary' | 'info'} Element UI标签类型
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function getOrderTypeTagType(orderType) {
 | 
	
		
			
				|  |  | +  const config = ORDER_TYPE_CONFIG[orderType]
 | 
	
		
			
				|  |  | +  return config ? config.type : 'info'
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取订单类型颜色
 | 
	
		
			
				|  |  | + * @param {1} orderType - 订单类型值
 | 
	
		
			
				|  |  | + * @returns {string} 十六进制颜色值
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function getOrderTypeColor(orderType) {
 | 
	
		
			
				|  |  | +  const config = ORDER_TYPE_CONFIG[orderType]
 | 
	
		
			
				|  |  | +  return config ? config.color : '#909399'
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取订单状态标签
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3 | 4 | 5} status - 订单状态值
 | 
	
		
			
				|  |  | + * @returns {string} 订单状态标签
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function getOrderStatusLabel(status) {
 | 
	
		
			
				|  |  | +  const config = ORDER_STATUS_CONFIG[status]
 | 
	
		
			
				|  |  | +  return config ? config.label : '未知状态'
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取订单状态Element UI标签类型
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3 | 4 | 5} status - 订单状态值
 | 
	
		
			
				|  |  | + * @returns {'info' | 'warning' | 'primary' | 'success' | 'danger'} Element UI标签类型
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function getOrderStatusTagType(status) {
 | 
	
		
			
				|  |  | +  const config = ORDER_STATUS_CONFIG[status]
 | 
	
		
			
				|  |  | +  return config ? config.type : 'info'
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取订单状态颜色
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3 | 4 | 5} status - 订单状态值
 | 
	
		
			
				|  |  | + * @returns {string} 十六进制颜色值
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function getOrderStatusColor(status) {
 | 
	
		
			
				|  |  | +  const config = ORDER_STATUS_CONFIG[status]
 | 
	
		
			
				|  |  | +  return config ? config.color : '#909399'
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取订单明细状态标签
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3} itemStatus - 订单明细状态值
 | 
	
		
			
				|  |  | + * @returns {string} 订单明细状态标签
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function getOrderItemStatusLabel(itemStatus) {
 | 
	
		
			
				|  |  | +  const config = ORDER_ITEM_STATUS_CONFIG[itemStatus]
 | 
	
		
			
				|  |  | +  return config ? config.label : '未知状态'
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取订单明细状态Element UI标签类型
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3} itemStatus - 订单明细状态值
 | 
	
		
			
				|  |  | + * @returns {'warning' | 'primary' | 'success' | 'info'} Element UI标签类型
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function getOrderItemStatusTagType(itemStatus) {
 | 
	
		
			
				|  |  | +  const config = ORDER_ITEM_STATUS_CONFIG[itemStatus]
 | 
	
		
			
				|  |  | +  return config ? config.type : 'info'
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 获取订单明细状态颜色
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3} itemStatus - 订单明细状态值
 | 
	
		
			
				|  |  | + * @returns {string} 十六进制颜色值
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function getOrderItemStatusColor(itemStatus) {
 | 
	
		
			
				|  |  | +  const config = ORDER_ITEM_STATUS_CONFIG[itemStatus]
 | 
	
		
			
				|  |  | +  return config ? config.color : '#909399'
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 检查订单是否可以编辑
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3 | 4 | 5} status - 订单状态值
 | 
	
		
			
				|  |  | + * @returns {boolean} 是否可以编辑
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function isOrderEditable(status) {
 | 
	
		
			
				|  |  | +  return status === ORDER_STATUS.DRAFT || status === ORDER_STATUS.SUBMITTED
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 检查订单是否可以取消
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3 | 4 | 5} status - 订单状态值
 | 
	
		
			
				|  |  | + * @returns {boolean} 是否可以取消
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function isOrderCancellable(status) {
 | 
	
		
			
				|  |  | +  return status !== ORDER_STATUS.COMPLETED && status !== ORDER_STATUS.CANCELLED
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 检查订单明细是否可以编辑
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3} itemStatus - 订单明细状态值
 | 
	
		
			
				|  |  | + * @returns {boolean} 是否可以编辑
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function isOrderItemEditable(itemStatus) {
 | 
	
		
			
				|  |  | +  return itemStatus === ORDER_ITEM_STATUS.UNCONFIRMED || itemStatus === ORDER_ITEM_STATUS.CONFIRMED
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/**
 | 
	
		
			
				|  |  | + * 检查订单明细是否可以取消
 | 
	
		
			
				|  |  | + * @param {0 | 1 | 2 | 3} itemStatus - 订单明细状态值
 | 
	
		
			
				|  |  | + * @returns {boolean} 是否可以取消
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +export function isOrderItemCancellable(itemStatus) {
 | 
	
		
			
				|  |  | +  return itemStatus !== ORDER_ITEM_STATUS.COMPLETED
 | 
	
		
			
				|  |  | +}
 |