feat(任务队列): 添加创建时间范围筛选并优化物料条码处理

1. 新增创建时间范围筛选组件,支持按时间段查询任务队列
2. 物料条码改为只读并随物料选择自动填充,防止手动修改导致数据不一致
3. 重构提交逻辑,提取buildSubmitData方法提高代码可维护性
4. 调整创建时间显示格式为完整日期时间格式
main
zch 2 months ago
parent 03a8a162ba
commit 44b4df864f

@ -28,6 +28,18 @@
<el-option v-for="dict in wcs_is_flag" :key="dict.value" :label="dict.label" :value="parseInt(dict.value)" />
</el-select>
</el-form-item>
<el-form-item label="创建时间" style="width: 410px">
<el-date-picker
v-model="dateRange"
:format="CREATED_TIME_PICKER_FORMAT"
:value-format="CREATED_TIME_VALUE_FORMAT"
type="datetimerange"
range-separator="-"
start-placeholder="开始时间"
end-placeholder="结束时间"
:default-time="[new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="Search" @click="handleQuery"></el-button>
<el-button icon="Refresh" @click="resetQuery"></el-button>
@ -90,9 +102,9 @@
<dict-tag :options="wcs_is_flag" :value="scope.row.isFlag" />
</template>
</el-table-column>
<el-table-column label="创建时间" align="center" prop="createdTime" width="100">
<el-table-column label="创建时间" align="center" prop="createdTime" width="180">
<template #default="scope">
<span>{{ parseTime(scope.row.createdTime, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.createdTime, CREATED_TIME_DISPLAY_FORMAT) }}</span>
</template>
</el-table-column>
<el-table-column label="创建人" align="center" prop="createdByName" width="100" />
@ -137,7 +149,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="物料条码" prop="materialBarcode">
<el-input v-model="form.materialBarcode" placeholder="请输入物料条码" />
<el-input v-model="form.materialBarcode" placeholder="物料条码" disabled />
</el-form-item>
</el-col>
<el-col :span="12">
@ -222,7 +234,7 @@
</el-table-column>
<el-table-column label="物料条码" align="center" prop="materialBarcode" min-width="130">
<template #default="scope">
<el-input v-model="scope.row.materialBarcode" placeholder="物料条码" size="small" />
<el-input v-model="scope.row.materialBarcode" placeholder="物料条码" size="small" disabled />
</template>
</el-table-column>
<el-table-column label="数量" align="center" prop="materialCount" width="120">
@ -313,6 +325,12 @@ import { getMaterialInfoList } from '@/api/wcs/materialInfo';
import { MaterialInfoVO } from '@/api/wcs/materialInfo/types';
import { getPathInfoList } from '@/api/wcs/pathInfo';
import { PathInfoVO } from '@/api/wcs/pathInfo/types';
import {
CREATED_TIME_DISPLAY_FORMAT,
CREATED_TIME_PICKER_FORMAT,
CREATED_TIME_VALUE_FORMAT,
getTodayCreatedTimeRange
} from '../utils/createdTimeRange';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { wcs_is_flag, wcs_task_category, wcs_task_type, wcs_task_status } = toRefs<any>(
@ -332,6 +350,9 @@ const single = ref(true);
const multiple = ref(true);
const total = ref(0);
// SysUser addDateRange params.beginTime/endTime
const dateRange = ref<[string, string]>(getTodayCreatedTimeRange());
const queryFormRef = ref<ElFormInstance>();
const taskQueueFormRef = ref<ElFormInstance>();
@ -391,7 +412,8 @@ const { queryParams, form, rules } = toRefs(data);
const getList = async () => {
loading.value = true;
try {
const res = await listTaskQueue(queryParams.value);
// addDateRange params.beginTime/endTime SysUser
const res = await listTaskQueue(proxy?.addDateRange(queryParams.value, dateRange.value));
taskQueueList.value = res.rows;
total.value = res.total;
} finally {
@ -417,14 +439,14 @@ const loadFormOptions = async () => {
const handleMaterialChange = (materialCode?: string) => {
const material = materialList.value.find(item => item.materialCode === materialCode);
//
form.value.materialBarcode = material?.materialBarcode || form.value.materialBarcode;
//
form.value.materialBarcode = material?.materialBarcode;
}
const handleDetailMaterialChange = (row: TaskDetailForm) => {
const material = materialList.value.find(item => item.materialCode === row.materialCode);
//
row.materialBarcode = material?.materialBarcode || row.materialBarcode;
//
row.materialBarcode = material?.materialBarcode;
}
const cancel = () => {
@ -446,6 +468,8 @@ const handleQuery = () => {
const resetQuery = () => {
queryFormRef.value?.resetFields();
//
dateRange.value = getTodayCreatedTimeRange();
handleQuery();
}
@ -513,32 +537,51 @@ const handleDelDetail = (index: number) => {
detailList.value.splice(index, 1);
}
const buildSubmitData = (): TaskQueueForm => ({
objId: form.value.objId,
taskCode: form.value.taskCode,
materialCode: form.value.materialCode,
palletBarcode: form.value.palletBarcode,
materialBarcode: form.value.materialBarcode,
materialCount: form.value.materialCount,
taskType: form.value.taskType,
taskCategory: form.value.taskCategory,
startPoint: form.value.startPoint,
endPoint: form.value.endPoint,
pathCode: form.value.pathCode,
taskStatus: form.value.taskStatus,
taskSteps: form.value.taskSteps,
isFlag: form.value.isFlag,
remark: form.value.remark,
//
details: detailList.value.map(item => ({
objId: item.objId,
taskCode: form.value.taskCode || '',
materialCode: item.materialCode,
palletBarcode: item.palletBarcode,
materialBarcode: item.materialBarcode,
materialCount: item.materialCount,
taskType: item.taskType,
taskCategory: item.taskCategory,
startPoint: item.startPoint,
endPoint: item.endPoint,
isValidate: item.isValidate,
pathCode: item.pathCode,
taskStatus: item.taskStatus,
isFlag: item.isFlag,
remark: item.remark
}))
});
const submitForm = () => {
taskQueueFormRef.value?.validate(async (valid: boolean) => {
if (valid) {
buttonLoading.value = true;
//
form.value.details = detailList.value.map(item => ({
objId: item.objId,
taskCode: form.value.taskCode || '',
materialCode: item.materialCode,
palletBarcode: item.palletBarcode,
materialBarcode: item.materialBarcode,
materialCount: item.materialCount,
taskType: item.taskType,
taskCategory: item.taskCategory,
startPoint: item.startPoint,
endPoint: item.endPoint,
isValidate: item.isValidate,
pathCode: item.pathCode,
taskStatus: item.taskStatus,
isFlag: item.isFlag,
remark: item.remark
}));
if (form.value.objId) {
await updateTaskQueue(form.value).finally(() => buttonLoading.value = false);
const submitData = buildSubmitData();
if (submitData.objId) {
await updateTaskQueue(submitData).finally(() => buttonLoading.value = false);
} else {
await addTaskQueue(form.value).finally(() => buttonLoading.value = false);
await addTaskQueue(submitData).finally(() => buttonLoading.value = false);
}
proxy?.$modal.msgSuccess("操作成功");
dialog.visible = false;

Loading…
Cancel
Save