瀏覽代碼

feat(订单模块): 添加订单类型和状态常量并重构相关代码

yz 4 周之前
父節點
當前提交
fe5ab9d6cc
共有 2 個文件被更改,包括 184 次插入46 次删除
  1. 128 0
      src/views/order/order/constants.js
  2. 56 46
      src/views/order/order/index.js

+ 128 - 0
src/views/order/order/constants.js

@@ -0,0 +1,128 @@
+/**
+ * 订单类型枚举
+ * @readonly
+ * @enum {number}
+ */
+export const ORDER_TYPES = {
+    NORMAL: 1  // 普通订单
+};
+
+/**
+ * 订单状态枚举
+ * @readonly
+ * @enum {number}
+ */
+export const ORDER_STATUS = {
+    DRAFT: 0,           // 草稿
+    SUBMITTED: 1,       // 已提交
+    CONFIRMED: 2,       // 已确认
+    PARTIAL_SHIPPED: 3, // 部分发货
+    COMPLETED: 4,       // 已完成
+    CANCELLED: 5        // 已取消
+};
+
+/**
+ * 订单类型标签映射
+ * @readonly
+ * @type {Record<number, string>}
+ */
+export const ORDER_TYPE_LABELS = {
+    [ORDER_TYPES.NORMAL]: '普通订单'
+};
+
+/**
+ * 订单状态标签映射
+ * @readonly
+ * @type {Record<number, string>}
+ */
+export const ORDER_STATUS_LABELS = {
+    [ORDER_STATUS.DRAFT]: '草稿',
+    [ORDER_STATUS.SUBMITTED]: '已提交',
+    [ORDER_STATUS.CONFIRMED]: '已确认',
+    [ORDER_STATUS.PARTIAL_SHIPPED]: '部分发货',
+    [ORDER_STATUS.COMPLETED]: '已完成',
+    [ORDER_STATUS.CANCELLED]: '已取消'
+};
+
+/**
+ * 订单类型标签类型映射(用于Element UI的tag组件)
+ * @readonly
+ * @type {Record<number, string>}
+ */
+export const ORDER_TYPE_TAG_TYPES = {
+    [ORDER_TYPES.NORMAL]: 'success'
+};
+
+/**
+ * 订单状态标签类型映射(用于Element UI的tag组件)
+ * @readonly
+ * @type {Record<number, string>}
+ */
+export const ORDER_STATUS_TAG_TYPES = {
+    [ORDER_STATUS.DRAFT]: 'info',
+    [ORDER_STATUS.SUBMITTED]: 'warning',
+    [ORDER_STATUS.CONFIRMED]: 'primary',
+    [ORDER_STATUS.PARTIAL_SHIPPED]: '',
+    [ORDER_STATUS.COMPLETED]: 'success',
+    [ORDER_STATUS.CANCELLED]: 'danger'
+};
+
+/**
+ * 订单类型选项数组(用于下拉选择)
+ * @readonly
+ * @type {Array<{label: string, value: number}>}
+ */
+export const ORDER_TYPE_OPTIONS = [
+    { label: ORDER_TYPE_LABELS[ORDER_TYPES.NORMAL], value: ORDER_TYPES.NORMAL }
+];
+
+/**
+ * 订单状态选项数组(用于下拉选择)
+ * @readonly
+ * @type {Array<{label: string, value: number}>}
+ */
+export const ORDER_STATUS_OPTIONS = [
+    { label: ORDER_STATUS_LABELS[ORDER_STATUS.DRAFT], value: ORDER_STATUS.DRAFT },
+    { label: ORDER_STATUS_LABELS[ORDER_STATUS.SUBMITTED], value: ORDER_STATUS.SUBMITTED },
+    { label: ORDER_STATUS_LABELS[ORDER_STATUS.CONFIRMED], value: ORDER_STATUS.CONFIRMED },
+    { label: ORDER_STATUS_LABELS[ORDER_STATUS.PARTIAL_SHIPPED], value: ORDER_STATUS.PARTIAL_SHIPPED },
+    { label: ORDER_STATUS_LABELS[ORDER_STATUS.COMPLETED], value: ORDER_STATUS.COMPLETED },
+    { label: ORDER_STATUS_LABELS[ORDER_STATUS.CANCELLED], value: ORDER_STATUS.CANCELLED }
+];
+
+/**
+ * 获取订单类型标签
+ * @param {number} orderType - 订单类型值
+ * @returns {string} 订单类型标签
+ */
+export const getOrderTypeLabel = (orderType) => {
+    console.log(orderType)
+    return ORDER_TYPE_LABELS[orderType] || '未知类型';
+};
+
+/**
+ * 获取订单类型标签类型
+ * @param {number} orderType - 订单类型值
+ * @returns {string} 标签类型
+ */
+export const getOrderTypeTagType = (orderType) => {
+    return ORDER_TYPE_TAG_TYPES[orderType] || '';
+};
+
+/**
+ * 获取订单状态标签
+ * @param {number} status - 订单状态值
+ * @returns {string} 订单状态标签
+ */
+export const getOrderStatusLabel = (status) => {
+    return ORDER_STATUS_LABELS[status] || '未知状态';
+};
+
+/**
+ * 获取订单状态标签类型
+ * @param {number} status - 订单状态值
+ * @returns {string} 标签类型
+ */
+export const getOrderStatusTagType = (status) => {
+    return ORDER_STATUS_TAG_TYPES[status] || 'info';
+};

+ 56 - 46
src/views/order/order/index.js

@@ -2,6 +2,26 @@ import { getList, add, update, remove, getDetail, getCustomerAddressList } from
 import { getCustomerList } from '@/api/common/index'
 import OrderItemManagement from '@/components/order-item-management'
 import { mapGetters } from 'vuex'
+import {
+    ORDER_TYPES,
+    ORDER_STATUS,
+    ORDER_TYPE_OPTIONS,
+    ORDER_STATUS_OPTIONS,
+    getOrderTypeLabel,
+    getOrderTypeTagType,
+    getOrderStatusLabel,
+    getOrderStatusTagType
+} from '@/views/order/order/constants'
+
+/**
+ * 订单类型枚举
+ * @typedef {1} OrderType - 1普通订单
+ */
+
+/**
+ * 订单状态枚举
+ * @typedef {0|1|2|3|4|5} OrderStatus - 0草稿 1已提交 2已确认 3部分发货 4已完成 5已取消
+ */
 
 /**
  * 订单查询参数类型定义
@@ -11,8 +31,8 @@ import { mapGetters } from 'vuex'
  * @property {string} [orgName] - 组织名称
  * @property {string} [customerCode] - 客户编码
  * @property {string} [customerName] - 客户名称
- * @property {number} [orderType] - 订单类型 0-采购订单 1-销售订单
- * @property {number} [status] - 订单状态 0-草稿 1-已提交 2-已确认 3-已完成 4-已取消
+ * @property {OrderType} [orderType] - 订单类型
+ * @property {OrderStatus} [status] - 订单状态
  * @property {string} [receiverName] - 收货人姓名
  * @property {string} [receiverPhone] - 收货人电话
  * @property {string} [createTimeStart] - 创建时间开始
@@ -30,7 +50,7 @@ import { mapGetters } from 'vuex'
  * @property {string|number} customerId - 客户ID
  * @property {string} customerCode - 客户编码
  * @property {string} customerName - 客户名称
- * @property {number} orderType - 订单类型 0-采购订单 1-销售订单
+ * @property {OrderType} orderType - 订单类型
  * @property {number|string} totalAmount - 订单总金额
  * @property {number|string} totalQuantity - 订单总数量
  * @property {string|number} addressId - 收货地址ID
@@ -38,7 +58,7 @@ import { mapGetters } from 'vuex'
  * @property {string} receiverPhone - 收货人电话
  * @property {string} receiverAddress - 收货详细地址
  * @property {string} receiverRegion - 收货地区
- * @property {number} status - 订单状态 0-草稿 1-已提交 2-已确认 3-已完成 4-已取消
+ * @property {OrderStatus} status - 订单状态
  */
 
 /**
@@ -312,10 +332,7 @@ export default {
             label: '订单类型',
             prop: 'orderType',
             type: 'select',
-            dicData: [
-              { label: '采购订单', value: 0 },
-              { label: '销售订单', value: 1 }
-            ],
+            dicData: ORDER_STATUS_OPTIONS,
             search: true,
             slot: true,
             width: 100,
@@ -459,13 +476,7 @@ export default {
             label: '订单状态',
             prop: 'status',
             type: 'select',
-            dicData: [
-              { label: '草稿', value: 0 },
-              { label: '已提交', value: 1 },
-              { label: '已确认', value: 2 },
-              { label: '已完成', value: 3 },
-              { label: '已取消', value: 4 }
-            ],
+            dicData: ORDER_STATUS_OPTIONS,
             search: true,
             slot: true,
             width: 100,
@@ -588,6 +599,36 @@ export default {
   },
   methods: {
 
+    // 在methods中更新这些方法:
+
+    /**
+     * 获取订单类型标签
+     * @param {OrderType} orderType - 订单类型值
+     * @returns {string} 订单类型标签
+     */
+    getOrderTypeLabel,
+
+    /**
+     * 获取订单类型标签类型
+     * @param {OrderType} orderType - 订单类型值
+     * @returns {string} 标签类型
+     */
+    getOrderTypeTagType,
+
+    /**
+     * 获取状态标签
+     * @param {OrderStatus} status - 状态值
+     * @returns {string} 状态标签
+     */
+    getStatusText: getOrderStatusLabel,
+
+    /**
+     * 获取状态标签类型
+     * @param {OrderStatus} status - 状态值
+     * @returns {string} 状态标签类型
+     */
+    getStatusType: getOrderStatusTagType,
+
     /**
      * 加载客户选项列表
      * @param {string} [keyword=''] - 搜索关键词
@@ -886,37 +927,6 @@ export default {
       }
     },
 
-    /**
-     * 获取状态类型
-     * @param {number} status - 状态值
-     * @returns {string} 状态类型
-     */
-    getStatusType(status) {
-      const statusMap = {
-        0: 'info',     // 草稿
-        1: 'warning',  // 已提交
-        2: 'primary',  // 已确认
-        3: 'success',  // 已完成
-        4: 'danger'    // 已取消
-      }
-      return statusMap[status] || 'info'
-    },
-
-    /**
-     * 获取状态文本
-     * @param {number} status - 状态值
-     * @returns {string} 状态文本
-     */
-    getStatusText(status) {
-      const statusMap = {
-        0: '草稿',
-        1: '已提交',
-        2: '已确认',
-        3: '已完成',
-        4: '已取消'
-      }
-      return statusMap[status] || '未知'
-    },
 
     /**
      * 搜索回调