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