Compare commits
3 Commits
2fc8cf02d1
...
96b49e71f4
| Author | SHA1 | Date | |
|---|---|---|---|
| 96b49e71f4 | |||
| 75954a3a9c | |||
| 1cbc8da78c |
@@ -163,6 +163,10 @@ export default {
|
|||||||
filters: {
|
filters: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => ({})
|
default: () => ({})
|
||||||
|
},
|
||||||
|
defaultQueryParams: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -235,6 +239,9 @@ export default {
|
|||||||
this.getList();
|
this.getList();
|
||||||
this.listRecentlySelected();
|
this.listRecentlySelected();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
defaultQueryParams(val) {
|
||||||
|
this.queryParams = { ...this.queryParams, ...val };
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -151,6 +151,10 @@ export default {
|
|||||||
filters: {
|
filters: {
|
||||||
type: Object,
|
type: Object,
|
||||||
default: () => ({})
|
default: () => ({})
|
||||||
|
},
|
||||||
|
defaultQueryParams: {
|
||||||
|
type: Object,
|
||||||
|
default: () => ({})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@@ -234,6 +238,9 @@ export default {
|
|||||||
this.listRecentlySelected();
|
this.listRecentlySelected();
|
||||||
this.getList();
|
this.getList();
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
defaultQueryParams(val) {
|
||||||
|
this.queryParams = { ...this.queryParams, ...val };
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@@ -1,13 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container" v-loading="loading">
|
<div class="app-container" v-loading="loading">
|
||||||
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="90px">
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="90px">
|
||||||
<el-form-item label="开始时间" prop="startTime">
|
<el-form-item label="时间">
|
||||||
<el-date-picker v-model="queryParams.startTime" type="datetime" value-format="yyyy-MM-dd HH:mm:ss"
|
<time-range-picker v-model="timeRangeParams" start-key="startTime" end-key="endTime"
|
||||||
placeholder="选择开始时间" />
|
:default-start-time="queryParams.startTime" :default-end-time="queryParams.endTime"
|
||||||
</el-form-item>
|
@quick-select="handleQuery" />
|
||||||
<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>
|
</el-form-item>
|
||||||
<el-form-item label="目标炉" prop="targetFurnaceId">
|
<el-form-item label="目标炉" prop="targetFurnaceId">
|
||||||
<el-select v-model="queryParams.targetFurnaceId" placeholder="请选择" clearable filterable>
|
<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 RawMaterialInfo from "@/components/KLPService/Renderer/RawMaterialInfo";
|
||||||
import CoilNo from "@/components/KLPService/Renderer/CoilNo.vue";
|
import CoilNo from "@/components/KLPService/Renderer/CoilNo.vue";
|
||||||
import WarehouseSelect from "@/components/KLPService/WarehouseSelect/index.vue";
|
import WarehouseSelect from "@/components/KLPService/WarehouseSelect/index.vue";
|
||||||
|
import TimeRangePicker from "@/views/wms/report/components/timeRangePicker.vue";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "AnnealPerformance",
|
name: "AnnealPerformance",
|
||||||
|
components: {
|
||||||
|
ProductInfo,
|
||||||
|
RawMaterialInfo,
|
||||||
|
CoilNo,
|
||||||
|
WarehouseSelect,
|
||||||
|
TimeRangePicker,
|
||||||
|
},
|
||||||
data() {
|
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 {
|
return {
|
||||||
loading: false,
|
loading: false,
|
||||||
|
timeRangeParams: {
|
||||||
|
startTime,
|
||||||
|
endTime,
|
||||||
|
},
|
||||||
queryParams: {
|
queryParams: {
|
||||||
startTime: undefined,
|
startTime,
|
||||||
endTime: undefined,
|
endTime,
|
||||||
targetFurnaceId: undefined,
|
targetFurnaceId: undefined,
|
||||||
planNo: undefined,
|
planNo: undefined,
|
||||||
enterCoilNo: undefined,
|
enterCoilNo: undefined,
|
||||||
@@ -92,11 +109,15 @@ export default {
|
|||||||
furnaceOptions: [],
|
furnaceOptions: [],
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
components: {
|
watch: {
|
||||||
ProductInfo,
|
timeRangeParams: {
|
||||||
RawMaterialInfo,
|
handler(newVal) {
|
||||||
CoilNo,
|
this.queryParams.startTime = newVal.startTime
|
||||||
WarehouseSelect,
|
this.queryParams.endTime = newVal.endTime
|
||||||
|
},
|
||||||
|
deep: true,
|
||||||
|
immediate: true
|
||||||
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.loadFurnaces();
|
this.loadFurnaces();
|
||||||
|
|||||||
@@ -1,16 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="typing-coil-container">
|
<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>
|
<div>
|
||||||
<CoilInfoRender title="原料信息" :coilInfo="currentInfo" border>
|
<CoilInfoRender title="原料信息" :coilInfo="currentInfo" border>
|
||||||
<template slot="extra">
|
<template slot="extra">
|
||||||
@@ -65,8 +54,6 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="材料类型" prop="materialType">
|
<el-form-item label="材料类型" prop="materialType">
|
||||||
@@ -80,9 +67,11 @@
|
|||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item :label="getItemLabel" prop="itemId" :rules="rules.itemId">
|
<el-form-item :label="getItemLabel" prop="itemId" :rules="rules.itemId">
|
||||||
<RawMaterialSelect v-if="updateForm.materialType === '原料'" v-model="updateForm.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"
|
<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>
|
<div v-else>请先选择物料类型</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@@ -371,8 +360,8 @@ export default {
|
|||||||
updateForm: {
|
updateForm: {
|
||||||
currentCoilNo: '',
|
currentCoilNo: '',
|
||||||
team: '',
|
team: '',
|
||||||
materialType: null,
|
materialType: '成品',
|
||||||
itemType: null,
|
itemType: 'product',
|
||||||
itemId: null,
|
itemId: null,
|
||||||
grossWeight: undefined,
|
grossWeight: undefined,
|
||||||
netWeight: undefined,
|
netWeight: undefined,
|
||||||
@@ -460,6 +449,7 @@ export default {
|
|||||||
cacheDialogVisible: false,
|
cacheDialogVisible: false,
|
||||||
currentCache: null,
|
currentCache: null,
|
||||||
parsedCacheData: null,
|
parsedCacheData: null,
|
||||||
|
itemSelectorQueryParams: {},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
@@ -567,6 +557,14 @@ export default {
|
|||||||
}
|
}
|
||||||
if (data.exit_thick != null) this.$set(this.updateForm, 'actualThickness', parseFloat(data.exit_thick))
|
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))
|
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 !== '') {
|
if (data.park_type != null && data.park_type !== '') {
|
||||||
this.$set(this.updateForm, 'packagingRequirement', data.park_type)
|
this.$set(this.updateForm, 'packagingRequirement', data.park_type)
|
||||||
@@ -633,7 +631,6 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
// 复制当前信息到更新表单
|
// 复制当前信息到更新表单
|
||||||
copyFromCurrent() {
|
copyFromCurrent() {
|
||||||
// 复制除了指定字段之外的其他字段
|
// 复制除了指定字段之外的其他字段
|
||||||
|
|||||||
@@ -155,52 +155,14 @@ export default {
|
|||||||
},
|
},
|
||||||
dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer', 'coil_quality_status'],
|
dicts: ['product_coil_status', 'coil_material', 'coil_itemname', 'coil_manufacturer', 'coil_quality_status'],
|
||||||
data() {
|
data() {
|
||||||
// 工具函数:个位数补零
|
|
||||||
const addZero = (num) => num.toString().padStart(2, '0')
|
const addZero = (num) => num.toString().padStart(2, '0')
|
||||||
|
|
||||||
// 获取当前日期(默认选中当天)
|
|
||||||
const now = new Date()
|
const now = new Date()
|
||||||
const currentDate = `${now.getFullYear()}-${addZero(now.getMonth() + 1)}`
|
const yesterday = new Date(now)
|
||||||
|
yesterday.setDate(yesterday.getDate() - 1)
|
||||||
|
|
||||||
/**
|
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`
|
||||||
* @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)
|
|
||||||
return {
|
return {
|
||||||
lossList: [],
|
lossList: [],
|
||||||
outList: [],
|
outList: [],
|
||||||
|
|||||||
Reference in New Issue
Block a user