From 475a051b1cfc13ac90704d1aee9cd8f0837d6ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= Date: Mon, 13 Jul 2026 11:19:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A4=9A=E5=A4=84?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E4=B8=8E=E6=8E=A5=E5=8F=A3=E9=80=82=E9=85=8D?= =?UTF-8?q?=E9=97=AE=E9=A2=98=EF=BC=8C=E4=BC=98=E5=8C=96=E9=92=A2=E5=8D=B7?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E7=AD=9B=E9=80=89=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 修复SalaryPanel输入框边框缺失样式 2. 调整wms报表日期范围计算与视图类型默认值 3. 统一多页面钢卷状态筛选组件:替换为下拉选项新增历史卷,新增状态转换逻辑,修正接口传参格式 4. 同步crm合同、业务员页面的钢卷筛选适配改动 --- .../crm/contract/components/ContractTabs.vue | 52 +++++++++++++++---- klp-ui/src/views/crm/saleman/index.vue | 46 ++++++++++++++-- klp-ui/src/views/perf/index/SalaryPanel.vue | 2 +- klp-ui/src/views/wms/post/aps/orderTrack.vue | 28 +++++++--- .../src/views/wms/report/template/action.vue | 15 ++++-- 5 files changed, 117 insertions(+), 26 deletions(-) diff --git a/klp-ui/src/views/crm/contract/components/ContractTabs.vue b/klp-ui/src/views/crm/contract/components/ContractTabs.vue index bf337eb52..299866db7 100644 --- a/klp-ui/src/views/crm/contract/components/ContractTabs.vue +++ b/klp-ui/src/views/crm/contract/components/ContractTabs.vue @@ -75,10 +75,11 @@ - - - - + + + + + @@ -134,10 +135,11 @@ - - - - + + + + + @@ -417,7 +419,7 @@ export default { orderId: this.orderId, pageNum: this.productPagination.currentPage, pageSize: this.productPagination.pageSize, - ...this.productCoilBo + coilBo: this.productCoilBo }).then(res => { this.productCoilList = res.rows || []; this.productPagination.total = res.total || 0; @@ -431,7 +433,7 @@ export default { }); }, fetchProductCoilStatistics() { - getProductCoilsStatisticsByContract({ ...this.productCoilBo, orderId: this.orderId }).then(res => { + getProductCoilsStatisticsByContract({ orderId: this.orderId, coilBo: this.productCoilBo }).then(res => { this.productCoilStatistics = res.data || {}; }); }, @@ -445,6 +447,21 @@ export default { this.productCoilBo = {}; this.handleProductFilter(); }, + handleProductCoilStatusChange(val) { + if (val === 'in_stock') { + this.productCoilBo.status = 0; + this.productCoilBo.dataType = 1; + } else if (val === 'shipped') { + this.productCoilBo.status = 1; + this.productCoilBo.dataType = undefined; + } else if (val === 'history') { + this.productCoilBo.status = 0; + this.productCoilBo.dataType = 0; + } else { + this.productCoilBo.status = undefined; + this.productCoilBo.dataType = undefined; + } + }, handleDeliveryFilter() { this.deliveryCoilBo.selectType = this.deliveryCoilBo.itemType || ''; this.deliveryPagination.currentPage = 1; @@ -455,6 +472,21 @@ export default { this.deliveryCoilBo = {}; this.handleDeliveryFilter(); }, + handleDeliveryCoilStatusChange(val) { + if (val === 'in_stock') { + this.deliveryCoilBo.status = 0; + this.deliveryCoilBo.dataType = 1; + } else if (val === 'shipped') { + this.deliveryCoilBo.status = 1; + this.deliveryCoilBo.dataType = undefined; + } else if (val === 'history') { + this.deliveryCoilBo.status = 0; + this.deliveryCoilBo.dataType = 0; + } else { + this.deliveryCoilBo.status = undefined; + this.deliveryCoilBo.dataType = undefined; + } + }, handleProductPageChange({ currentPage, pageSize }) { this.productPagination.currentPage = currentPage; this.productPagination.pageSize = pageSize; diff --git a/klp-ui/src/views/crm/saleman/index.vue b/klp-ui/src/views/crm/saleman/index.vue index 7b8cc4738..7a63ea733 100644 --- a/klp-ui/src/views/crm/saleman/index.vue +++ b/klp-ui/src/views/crm/saleman/index.vue @@ -93,10 +93,11 @@ - - - - + + + + + @@ -144,6 +145,13 @@ + + + + + + + @@ -470,6 +478,36 @@ export default { this.productCoilBo = {}; this.handleProductFilter(); }, + handleCoilStatusChange(val) { + if (val === 'in_stock') { + this.productCoilBo.status = 0; + this.productCoilBo.dataType = 1; + } else if (val === 'shipped') { + this.productCoilBo.status = 1; + this.productCoilBo.dataType = undefined; + } else if (val === 'history') { + this.productCoilBo.status = 0; + this.productCoilBo.dataType = 0; + } else { + this.productCoilBo.status = undefined; + this.productCoilBo.dataType = undefined; + } + }, + handleDeliveryCoilStatusChange(val) { + if (val === 'in_stock') { + this.deliveryCoilBo.status = 0; + this.deliveryCoilBo.dataType = 1; + } else if (val === 'shipped') { + this.deliveryCoilBo.status = 1; + this.deliveryCoilBo.dataType = undefined; + } else if (val === 'history') { + this.deliveryCoilBo.status = 0; + this.deliveryCoilBo.dataType = 0; + } else { + this.deliveryCoilBo.status = undefined; + this.deliveryCoilBo.dataType = undefined; + } + }, fetchDeliveryCoils(principal) { this.deliveryCoilLoading = true; return listDeliveryCoilsByPrincipal({ diff --git a/klp-ui/src/views/perf/index/SalaryPanel.vue b/klp-ui/src/views/perf/index/SalaryPanel.vue index ca1d6a3f8..473387e31 100644 --- a/klp-ui/src/views/perf/index/SalaryPanel.vue +++ b/klp-ui/src/views/perf/index/SalaryPanel.vue @@ -751,7 +751,7 @@ export default { .cell-input { width: 100%; height: 28px; - border: none; + border: 1px solid #dcdfe6; outline: none; text-align: right; padding: 0 6px; diff --git a/klp-ui/src/views/wms/post/aps/orderTrack.vue b/klp-ui/src/views/wms/post/aps/orderTrack.vue index d6e6c0538..a72b9385d 100644 --- a/klp-ui/src/views/wms/post/aps/orderTrack.vue +++ b/klp-ui/src/views/wms/post/aps/orderTrack.vue @@ -142,10 +142,11 @@ - - - - + + + + + @@ -433,7 +434,7 @@ export default { orderId: this.currentOrder.orderId, pageNum: this.productPagination.currentPage, pageSize: this.productPagination.pageSize, - ...this.productCoilBo + coilBo: this.productCoilBo }).then(res => { this.productCoilList = res.rows || [] this.productPagination.total = res.total || 0 @@ -443,7 +444,7 @@ export default { }, fetchProductCoilStatistics() { if (!this.currentOrder || !this.currentOrder.orderId) return - getProductCoilsStatisticsByContract({ ...this.productCoilBo, orderId: this.currentOrder.orderId }).then(res => { + getProductCoilsStatisticsByContract({ orderId: this.currentOrder.orderId, coilBo: this.productCoilBo }).then(res => { this.productCoilStatistics = res.data || {} }) }, @@ -457,6 +458,21 @@ export default { this.productCoilBo = {} this.handleProductFilter() }, + handleCoilStatusChange(val) { + if (val === 'in_stock') { + this.productCoilBo.status = 0; + this.productCoilBo.dataType = 1; + } else if (val === 'shipped') { + this.productCoilBo.status = 1; + this.productCoilBo.dataType = undefined; + } else if (val === 'history') { + this.productCoilBo.status = 0; + this.productCoilBo.dataType = 0; + } else { + this.productCoilBo.status = undefined; + this.productCoilBo.dataType = undefined; + } + }, handleProductSelectionChange(selection) { this.selectedProductRows = selection }, diff --git a/klp-ui/src/views/wms/report/template/action.vue b/klp-ui/src/views/wms/report/template/action.vue index 333508d1d..3cb0be8a5 100644 --- a/klp-ui/src/views/wms/report/template/action.vue +++ b/klp-ui/src/views/wms/report/template/action.vue @@ -524,7 +524,12 @@ export default { endDate = `${dateStr}-${lastDayOfMonth.toString().padStart(2, '0')}`; } else if (dayPattern.test(dateStr)) { startDate = dateStr; - endDate = dateStr; + const nextDay = new Date(dateStr); + nextDay.setDate(nextDay.getDate() + 1); + const nextYear = nextDay.getFullYear(); + const nextMonth = String(nextDay.getMonth() + 1).padStart(2, '0'); + const nextDayNum = String(nextDay.getDate()).padStart(2, '0'); + endDate = `${nextYear}-${nextMonth}-${nextDayNum}`; } else { throw new Error('输入格式错误,请传入 yyyy、yyyy-MM 或 yyyy-MM-dd 格式的字符串'); } @@ -552,7 +557,7 @@ export default { defaultEndTime, getDayTimeRange, // all 类型专用 - viewType: 'custom', + viewType: 'day', yesterdaySummary: {}, monthChart: null, dayChart: null, @@ -734,9 +739,9 @@ export default { this.queryParams.byCreateTimeStart = start; this.queryParams.byCreateTimeEnd = end; } else if (this.reportType === 'all') { - // all 类型默认使用当前月份作为自定义时间范围 - this.viewType = 'custom'; - const { start, end } = this.getDayTimeRange(this.monthDate); + // all 类型默认使用日视图,选中今天,筛选今天07:00到明天07:00的数据 + this.viewType = 'day'; + const { start, end } = this.getDayTimeRange(this.dayDate); this.queryParams.startTime = start; this.queryParams.endTime = end; } else {