Compare commits
3 Commits
2fc8cf02d1
...
96b49e71f4
| Author | SHA1 | Date | |
|---|---|---|---|
| 96b49e71f4 | |||
| 75954a3a9c | |||
| 1cbc8da78c |
@@ -163,6 +163,10 @@ export default {
|
||||
filters: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
defaultQueryParams: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -235,6 +239,9 @@ export default {
|
||||
this.getList();
|
||||
this.listRecentlySelected();
|
||||
}
|
||||
},
|
||||
defaultQueryParams(val) {
|
||||
this.queryParams = { ...this.queryParams, ...val };
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -151,6 +151,10 @@ export default {
|
||||
filters: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
defaultQueryParams: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
}
|
||||
},
|
||||
data() {
|
||||
@@ -234,6 +238,9 @@ export default {
|
||||
this.listRecentlySelected();
|
||||
this.getList();
|
||||
}
|
||||
},
|
||||
defaultQueryParams(val) {
|
||||
this.queryParams = { ...this.queryParams, ...val };
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -1,13 +1,10 @@
|
||||
<template>
|
||||
<div class="app-container" v-loading="loading">
|
||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="90px">
|
||||
<el-form-item label="开始时间" prop="startTime">
|
||||
<el-date-picker v-model="queryParams.startTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="选择开始时间" />
|
||||
</el-form-item>
|
||||
<el-form-item label="结束时间" prop="endTime">
|
||||
<el-date-picker v-model="queryParams.endTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
||||
placeholder="选择结束时间" />
|
||||
<el-form-item label="时间">
|
||||
<time-range-picker v-model="timeRangeParams" start-key="startTime" end-key="endTime"
|
||||
:default-start-time="queryParams.startTime" :default-end-time="queryParams.endTime"
|
||||
@quick-select="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="目标炉" prop="targetFurnaceId">
|
||||
<el-select v-model="queryParams.targetFurnaceId" placeholder="请选择" clearable filterable>
|
||||
@@ -74,15 +71,35 @@ import ProductInfo from "@/components/KLPService/Renderer/ProductInfo";
|
||||
import RawMaterialInfo from "@/components/KLPService/Renderer/RawMaterialInfo";
|
||||
import CoilNo from "@/components/KLPService/Renderer/CoilNo.vue";
|
||||
import WarehouseSelect from "@/components/KLPService/WarehouseSelect/index.vue";
|
||||
import TimeRangePicker from "@/views/wms/report/components/timeRangePicker.vue";
|
||||
|
||||
export default {
|
||||
name: "AnnealPerformance",
|
||||
components: {
|
||||
ProductInfo,
|
||||
RawMaterialInfo,
|
||||
CoilNo,
|
||||
WarehouseSelect,
|
||||
TimeRangePicker,
|
||||
},
|
||||
data() {
|
||||
const startTime = (() => {
|
||||
const d = new Date(); d.setDate(d.getDate() - 1);
|
||||
return `${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,'0')}-${String(d.getDate()).padStart(2,'0')} 00:00:00`;
|
||||
})()
|
||||
const endTime = (() => {
|
||||
const d = new Date();
|
||||
return `${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,'0')}-${String(d.getDate()).padStart(2,'0')} 00:00:00`;
|
||||
})()
|
||||
return {
|
||||
loading: false,
|
||||
timeRangeParams: {
|
||||
startTime,
|
||||
endTime,
|
||||
},
|
||||
queryParams: {
|
||||
startTime: undefined,
|
||||
endTime: undefined,
|
||||
startTime,
|
||||
endTime,
|
||||
targetFurnaceId: undefined,
|
||||
planNo: undefined,
|
||||
enterCoilNo: undefined,
|
||||
@@ -92,11 +109,15 @@ export default {
|
||||
furnaceOptions: [],
|
||||
};
|
||||
},
|
||||
components: {
|
||||
ProductInfo,
|
||||
RawMaterialInfo,
|
||||
CoilNo,
|
||||
WarehouseSelect,
|
||||
watch: {
|
||||
timeRangeParams: {
|
||||
handler(newVal) {
|
||||
this.queryParams.startTime = newVal.startTime
|
||||
this.queryParams.endTime = newVal.endTime
|
||||
},
|
||||
deep: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.loadFurnaces();
|
||||
|
||||
@@ -1,16 +1,5 @@
|
||||
<template>
|
||||
<div class="typing-coil-container">
|
||||
<!-- 顶部操作栏 -->
|
||||
<!-- <div class="header-bar">
|
||||
<div class="header-title">
|
||||
<i class="el-icon-edit"></i>
|
||||
<span>钢卷信息更新</span>
|
||||
</div>
|
||||
<div class="header-actions">
|
||||
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div>
|
||||
<CoilInfoRender title="原料信息" :coilInfo="currentInfo" border>
|
||||
<template slot="extra">
|
||||
@@ -65,8 +54,6 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
|
||||
|
||||
<el-row>
|
||||
<el-col :span="8">
|
||||
<el-form-item label="材料类型" prop="materialType">
|
||||
@@ -80,9 +67,11 @@
|
||||
<el-col :span="8">
|
||||
<el-form-item :label="getItemLabel" prop="itemId" :rules="rules.itemId">
|
||||
<RawMaterialSelect v-if="updateForm.materialType === '原料'" v-model="updateForm.itemId"
|
||||
placeholder="请选择原料" style="width: 100%" clearable :disabled="!updateForm.materialType" />
|
||||
placeholder="请选择原料" style="width: 100%" clearable :disabled="!updateForm.materialType"
|
||||
:default-query-params="itemSelectorQueryParams" />
|
||||
<ProductSelect v-else-if="updateForm.materialType === '成品'" v-model="updateForm.itemId"
|
||||
placeholder="请选择成品" style="width: 100%" clearable :disabled="!updateForm.materialType" />
|
||||
placeholder="请选择成品" style="width: 100%" clearable :disabled="!updateForm.materialType"
|
||||
:default-query-params="itemSelectorQueryParams" />
|
||||
<div v-else>请先选择物料类型</div>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@@ -371,8 +360,8 @@ export default {
|
||||
updateForm: {
|
||||
currentCoilNo: '',
|
||||
team: '',
|
||||
materialType: null,
|
||||
itemType: null,
|
||||
materialType: '成品',
|
||||
itemType: 'product',
|
||||
itemId: null,
|
||||
grossWeight: undefined,
|
||||
netWeight: undefined,
|
||||
@@ -460,6 +449,7 @@ export default {
|
||||
cacheDialogVisible: false,
|
||||
currentCache: null,
|
||||
parsedCacheData: null,
|
||||
itemSelectorQueryParams: {},
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -567,6 +557,14 @@ export default {
|
||||
}
|
||||
if (data.exit_thick != null) this.$set(this.updateForm, 'actualThickness', parseFloat(data.exit_thick))
|
||||
if (data.exit_width != null) this.$set(this.updateForm, 'actualWidth', parseFloat(data.exit_width))
|
||||
|
||||
const query = {
|
||||
specification: data.exit_thick ? `${data.exit_thick}*${data.exit_width}` : '',
|
||||
material: data.grade,
|
||||
}
|
||||
|
||||
this.itemSelectorQueryParams = query
|
||||
|
||||
// 包装要求
|
||||
if (data.park_type != null && data.park_type !== '') {
|
||||
this.$set(this.updateForm, 'packagingRequirement', data.park_type)
|
||||
@@ -633,7 +631,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
// 复制当前信息到更新表单
|
||||
copyFromCurrent() {
|
||||
// 复制除了指定字段之外的其他字段
|
||||
|
||||
@@ -155,52 +155,14 @@ export default {
|
||||
},
|
||||
dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer', 'coil_quality_status'],
|
||||
data() {
|
||||
// 工具函数:个位数补零
|
||||
const addZero = (num) => num.toString().padStart(2, '0')
|
||||
|
||||
// 获取当前日期(默认选中当天)
|
||||
const now = new Date()
|
||||
const currentDate = `${now.getFullYear()}-${addZero(now.getMonth() + 1)}`
|
||||
const yesterday = new Date(now)
|
||||
yesterday.setDate(yesterday.getDate() - 1)
|
||||
|
||||
/**
|
||||
* 生成指定日期/月份的时间范围字符串
|
||||
* @param {string} dateStr - 支持格式:yyyy-MM(月份) 或 yyyy-MM-dd(具体日期)
|
||||
* @returns {object} 包含start(开始时间)和end(结束时间)的对象
|
||||
*/
|
||||
const getDayTimeRange = (dateStr) => {
|
||||
// 先校验输入格式是否合法
|
||||
const monthPattern = /^\d{4}-\d{2}$/; // yyyy-MM 正则
|
||||
const dayPattern = /^\d{4}-\d{2}-\d{2}$/; // yyyy-MM-dd 正则
|
||||
|
||||
if (!monthPattern.test(dateStr) && !dayPattern.test(dateStr)) {
|
||||
throw new Error('输入格式错误,请传入 yyyy-MM 或 yyyy-MM-dd 格式的字符串');
|
||||
}
|
||||
|
||||
let startDate, endDate;
|
||||
|
||||
if (monthPattern.test(dateStr)) {
|
||||
// 处理 yyyy-MM 格式:获取本月第一天和最后一天
|
||||
const [year, month] = dateStr.split('-').map(Number);
|
||||
// 月份是0基的(0=1月,1=2月...),所以要减1
|
||||
// 第一天:yyyy-MM-01
|
||||
startDate = `${dateStr}-01`;
|
||||
// 最后一天:通过 new Date(year, month, 0) 计算(month是原始月份,比如2代表2月,传2则取3月0日=2月最后一天)
|
||||
const lastDayOfMonth = new Date(year, month, 0).getDate();
|
||||
endDate = `${dateStr}-${lastDayOfMonth.toString().padStart(2, '0')}`;
|
||||
} else {
|
||||
// 处理 yyyy-MM-dd 格式:直接使用传入的日期
|
||||
startDate = dateStr;
|
||||
endDate = dateStr;
|
||||
}
|
||||
|
||||
// 拼接时间部分
|
||||
return {
|
||||
start: `${startDate} 00:00:00`,
|
||||
end: `${endDate} 23:59:59`
|
||||
};
|
||||
};
|
||||
|
||||
const { start, end } = getDayTimeRange(currentDate)
|
||||
const start = `${yesterday.getFullYear()}-${addZero(yesterday.getMonth() + 1)}-${addZero(yesterday.getDate())} 00:00:00`
|
||||
const end = `${now.getFullYear()}-${addZero(now.getMonth() + 1)}-${addZero(now.getDate())} 00:00:00`
|
||||
return {
|
||||
lossList: [],
|
||||
outList: [],
|
||||
|
||||
Reference in New Issue
Block a user