|
|
@@ -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
|
|
|
+}
|