feat: 优化物料类型选择逻辑和表格配置

添加物料类型选择逻辑,根据原料或产品类型设置selectType
调整表格树形配置,无分组条件时禁用树形显示
移除调拨状态列和必填备注校验,自动生成调拨单号和时间
This commit is contained in:
砂糖
2026-04-03 16:26:39 +08:00
parent ba3d2c2b35
commit 31d79a6c53
3 changed files with 31 additions and 6 deletions

View File

@@ -1013,6 +1013,7 @@ export default {
if (this.showWaybill) { if (this.showWaybill) {
const { shipmentTime, ...query } = { const { shipmentTime, ...query } = {
...this.queryParams, ...this.queryParams,
selectType: this.querys.materialType === '原料' ? 'raw_material' : 'product',
startTime: this.queryParams.shipmentTime?.[0], startTime: this.queryParams.shipmentTime?.[0],
endTime: this.queryParams.shipmentTime?.[1], endTime: this.queryParams.shipmentTime?.[1],
} }

View File

@@ -77,7 +77,7 @@
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="调拨单号" align="center" prop="transferNo" /> <el-table-column label="调拨单号" align="center" prop="transferNo" />
<el-table-column label="调拨单名称" align="center" prop="transferName" /> <el-table-column label="调拨单名称" align="center" prop="transferName" />
<el-table-column label="调拨状态" align="center" prop="transferStatus" /> <!-- <el-table-column label="调拨状态" align="center" prop="transferStatus" /> -->
<el-table-column label="调拨时间" align="center" prop="transferTime" width="180"> <el-table-column label="调拨时间" align="center" prop="transferTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.transferTime, '{y}-{m}-{d}') }}</span> <span>{{ parseTime(scope.row.transferTime, '{y}-{m}-{d}') }}</span>
@@ -206,9 +206,9 @@ export default {
transferTime: [ transferTime: [
{ required: true, message: "实际调拨时间不能为空", trigger: "blur" } { required: true, message: "实际调拨时间不能为空", trigger: "blur" }
], ],
remark: [ // remark: [
{ required: true, message: "备注不能为空", trigger: "blur" } // { required: true, message: "备注不能为空", trigger: "blur" }
], // ],
}, },
// 详情弹窗loading // 详情弹窗loading
detailLoading: false, detailLoading: false,
@@ -305,6 +305,25 @@ export default {
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
// 生成当前时间
const currentDate = new Date();
// 生成调拨单号TR + 年月日时分秒
const transferNo = 'TR' + currentDate.getFullYear() +
String(currentDate.getMonth() + 1).padStart(2, '0') +
String(currentDate.getDate()).padStart(2, '0') +
String(currentDate.getHours()).padStart(2, '0') +
String(currentDate.getMinutes()).padStart(2, '0') +
String(currentDate.getSeconds()).padStart(2, '0');
// 生成调拨时间YYYY-MM-DD HH:mm:ss
const transferTime = currentDate.getFullYear() + '-' +
String(currentDate.getMonth() + 1).padStart(2, '0') + '-' +
String(currentDate.getDate()).padStart(2, '0') + ' ' +
String(currentDate.getHours()).padStart(2, '0') + ':' +
String(currentDate.getMinutes()).padStart(2, '0') + ':' +
String(currentDate.getSeconds()).padStart(2, '0');
// 填充表单
this.form.transferNo = transferNo;
this.form.transferTime = transferTime;
this.open = true; this.open = true;
this.title = "添加调拨单主"; this.title = "添加调拨单主";
}, },

View File

@@ -61,8 +61,8 @@
</vxe-toolbar> </vxe-toolbar>
<div style="height: calc(100vh - 260px);"> <div style="height: calc(100vh - 260px);">
<vxe-table ref="xTree" :loading="loading" :data="list" size="mini" :tree-config="tableTreeConfig" <vxe-table ref="xTree" :loading="loading" :data="list" size="mini" :tree-config="effectiveTreeConfig"
max-height="100%" @row-click="handleTableRowClick" :export-config="{}"> max-height="100%" @row-click="handleTableRowClick" :export-config="{}" :scroll-y="{ enabled: true }">
<vxe-table-column field="itemType" title="物料类型" align="center" :formatter="formatterItemType" tree-node sortable :filters="[{label: '产品', value: 'product'}, {label: '原料', value: 'raw_material'}]" :filter-method="filterItemTypeMethod"> <vxe-table-column field="itemType" title="物料类型" align="center" :formatter="formatterItemType" tree-node sortable :filters="[{label: '产品', value: 'product'}, {label: '原料', value: 'raw_material'}]" :filter-method="filterItemTypeMethod">
<template v-slot="{ row }"> <template v-slot="{ row }">
<span v-if="row.itemType">{{ formatterItemType(row.itemType) }}</span> <span v-if="row.itemType">{{ formatterItemType(row.itemType) }}</span>
@@ -226,6 +226,11 @@ export default {
}; };
return filterData([...this.stockList]); return filterData([...this.stockList]);
},
// 控制是否启用树形数据配置
effectiveTreeConfig() {
// 当没有分组条件时,不启用树形数据
return this.groupForm.groupingCriteria && this.groupForm.groupingCriteria.length > 0 ? this.tableTreeConfig : undefined;
} }
}, },
created() { created() {