Browse Source

feat(物流跟踪): 添加物流跟踪记录类型定义和表格配置

yz 3 weeks ago
parent
commit
76408348f7
1 changed files with 177 additions and 2 deletions
  1. 177 2
      src/views/shipment/status-query.vue

+ 177 - 2
src/views/shipment/status-query.vue

@@ -125,6 +125,28 @@ import {
 import { mapGetters } from 'vuex'
 
 /**
+ * 物流跟踪记录类型定义
+ * @typedef {Object} TrackingRecord
+ * @property {string} id - 记录ID
+ * @property {string} createUser - 创建用户ID
+ * @property {string} createDept - 创建部门ID
+ * @property {string} createTime - 创建时间
+ * @property {string} updateUser - 更新用户ID
+ * @property {string} updateTime - 更新时间
+ * @property {1} status - 状态(1正常)
+ * @property {0} isDeleted - 是否删除(0未删除)
+ * @property {number} shipmentId - 发货单ID
+ * @property {string} shipmentNo - 发货单号
+ * @property {string} trackingNo - 运单号
+ * @property {string} trackingStatus - 跟踪状态
+ * @property {string} location - 位置
+ * @property {string} eventTime - 事件时间
+ * @property {string} eventDesc - 事件描述
+ * @property {0|1} isException - 是否异常(0正常,1异常)
+ * @property {string|null} exceptionType - 异常类型
+ */
+
+/**
  * 发货状态查询组件
  * @description 提供发货单状态查询、明细查看、物流跟踪等功能
  */
@@ -169,7 +191,7 @@ export default {
       trackingDialogVisible: false,
       /** @type {boolean} 跟踪加载状态 */
       trackingLoading: false,
-      /** @type {Array<Record<string, any>>} 跟踪数据 */
+      /** @type {Array<TrackingRecord>} 跟踪数据 */
       trackingData: [],
       /** @type {{pageSize: number, currentPage: number, total: number}} 跟踪分页信息 */
       trackingPage: {
@@ -271,7 +293,159 @@ export default {
         ]
       },
 
-      // ... existing code ...
+      // 明细表配置
+      /** @type {Record<string, any>} 明细表配置 */
+      detailOption: {
+        height: 400,
+        tip: false,
+        border: true,
+        index: true,
+        menu: false,
+        addBtn: false,
+        column: [
+          {
+            label: '物料编码',
+            prop: 'itemCode',
+            width: 120
+          },
+          {
+            label: '物料名称',
+            prop: 'itemName',
+            width: 150
+          },
+          {
+            label: '规格',
+            prop: 'specs',
+            width: 120
+          },
+          {
+            label: '发货数量',
+            prop: 'shippedQuantity',
+            width: 100
+          },
+          {
+            label: '包装号',
+            prop: 'packageNo',
+            width: 120
+          },
+          {
+            label: '批次号',
+            prop: 'batchNo',
+            width: 120
+          }
+        ]
+      },
+
+      // 跟踪表配置
+      /** @type {Record<string, any>} 跟踪表配置 */
+      trackingOption: {
+        height: 400,
+        tip: false,
+        border: true,
+        index: true,
+        menu: false,
+        addBtn: false,
+        editBtn: false,
+        delBtn: false,
+        viewBtn: false,
+        selection: false,
+        column: [
+          {
+            label: 'ID',
+            prop: 'id',
+            width: 180,
+            hide: true
+          },
+          {
+            label: '发货单号',
+            prop: 'shipmentNo',
+            width: 140,
+            search: true
+          },
+          {
+            label: '运单号',
+            prop: 'trackingNo',
+            width: 150,
+            search: true
+          },
+          {
+            label: '跟踪状态',
+            prop: 'trackingStatus',
+            slot: true,
+            width: 100,
+            search: true,
+            type: 'select',
+            dicData: [
+              { label: '待发货', value: '待发货' },
+              { label: '已发货', value: '已发货' },
+              { label: '运输中', value: '运输中' },
+              { label: '派送中', value: '派送中' },
+              { label: '已送达', value: '已送达' },
+              { label: '已签收', value: '已签收' },
+              { label: '异常', value: '异常' }
+            ]
+          },
+          {
+            label: '当前位置',
+            prop: 'location',
+            width: 200,
+            search: true,
+            overHidden: true
+          },
+          {
+            label: '事件时间',
+            prop: 'eventTime',
+            type: 'datetime',
+            format: 'YYYY-MM-DD HH:mm:ss',
+            valueFormat: 'YYYY-MM-DD HH:mm:ss',
+            width: 160,
+            search: true,
+            searchRange: true
+          },
+          {
+            label: '事件描述',
+            prop: 'eventDesc',
+            width: 250,
+            search: true,
+            overHidden: true
+          },
+          {
+            label: '异常状态',
+            prop: 'isException',
+            slot: true,
+            width: 100,
+            search: true,
+            type: 'select',
+            dicData: [
+              { label: '正常', value: 0 },
+              { label: '异常', value: 1 }
+            ]
+          },
+          {
+            label: '异常类型',
+            prop: 'exceptionType',
+            width: 120,
+            search: true,
+            hide: false
+          },
+          {
+            label: '创建时间',
+            prop: 'createTime',
+            type: 'datetime',
+            format: 'YYYY-MM-DD HH:mm:ss',
+            width: 160,
+            hide: true
+          },
+          {
+            label: '更新时间',
+            prop: 'updateTime',
+            type: 'datetime',
+            format: 'YYYY-MM-DD HH:mm:ss',
+            width: 160,
+            hide: true
+          }
+        ]
+      }
     }
   },
 
@@ -436,6 +610,7 @@ export default {
           current: this.trackingPage.currentPage,
           size: this.trackingPage.pageSize
         })
+        
         const data = res.data.data
         this.trackingData = data.records
         this.trackingPage.total = data.total