✨ 业务数量单位改走计量单位,并放开运输计划日期必填
发货模板、运输计划、运单与总单调度从计量单位取 unitName;修复调度提交顶层单位为空,并取消计划开始/结束日期必填。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -585,6 +585,10 @@ export default {
|
||||
this.$message.warning(`第${index + 1}条调度明细缺少车牌号`);
|
||||
return;
|
||||
}
|
||||
if (!this.resolveDispatchQuantityUnit(row)) {
|
||||
this.$message.warning(`第${index + 1}条调度明细缺少数量单位`);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
this.$confirm(
|
||||
@@ -600,32 +604,57 @@ export default {
|
||||
this.submitDispatch();
|
||||
});
|
||||
},
|
||||
resolveDispatchQuantityUnit(row = {}) {
|
||||
const topUnit = String(row.quantityUnit || '').trim();
|
||||
if (topUnit) return topUnit;
|
||||
const goodsList = this.parseGoodsList(row.goodsJson);
|
||||
for (const goods of goodsList) {
|
||||
const unit = String(
|
||||
goods?.quantityUnit || goods?.goodsQuantityUnit || goods?.unit || ''
|
||||
).trim();
|
||||
if (unit) return unit;
|
||||
}
|
||||
return TRANSPORT_PLAN_QUANTITY_UNIT;
|
||||
},
|
||||
enrichDispatchGoodsJson(row = {}, quantityUnit) {
|
||||
const goodsList = this.parseGoodsList(row.goodsJson);
|
||||
if (goodsList.length) {
|
||||
const nextGoods = goodsList.map(goods => ({
|
||||
...goods,
|
||||
quantityUnit: String(goods.quantityUnit || quantityUnit || '').trim() || quantityUnit,
|
||||
}));
|
||||
return JSON.stringify(nextGoods);
|
||||
}
|
||||
return JSON.stringify([
|
||||
{
|
||||
cargoName: row.cargoName,
|
||||
cargoType: row.cargoType,
|
||||
quantity: row.quantity,
|
||||
quantityUnit,
|
||||
specification: row.specification,
|
||||
model: row.model,
|
||||
packageType: row.packageType,
|
||||
brand: row.brand,
|
||||
},
|
||||
]);
|
||||
},
|
||||
submitDispatch() {
|
||||
this.saving = true;
|
||||
const payload = {
|
||||
id: this.planId,
|
||||
mode: 'submit',
|
||||
waybills: this.dispatchList.map(row => ({
|
||||
...row,
|
||||
taskEntryMode: row.taskEntryMode || 'simple',
|
||||
taskRemark: row.remark || '',
|
||||
estimatedStartTime: row.estimatedStartTime || this.planData.planStartDate || '',
|
||||
estimatedEndTime: row.estimatedEndTime || this.planData.planEndDate || '',
|
||||
goodsJson:
|
||||
row.goodsJson ||
|
||||
JSON.stringify([
|
||||
{
|
||||
cargoName: row.cargoName,
|
||||
cargoType: row.cargoType,
|
||||
quantity: row.quantity,
|
||||
quantityUnit: row.quantityUnit,
|
||||
specification: row.specification,
|
||||
model: row.model,
|
||||
packageType: row.packageType,
|
||||
brand: row.brand,
|
||||
},
|
||||
]),
|
||||
})),
|
||||
waybills: this.dispatchList.map(row => {
|
||||
const quantityUnit = this.resolveDispatchQuantityUnit(row);
|
||||
return {
|
||||
...row,
|
||||
quantityUnit,
|
||||
taskEntryMode: row.taskEntryMode || 'simple',
|
||||
taskRemark: row.remark || '',
|
||||
estimatedStartTime: row.estimatedStartTime || this.planData.planStartDate || '',
|
||||
estimatedEndTime: row.estimatedEndTime || this.planData.planEndDate || '',
|
||||
goodsJson: this.enrichDispatchGoodsJson(row, quantityUnit),
|
||||
};
|
||||
}),
|
||||
};
|
||||
|
||||
dispatch(payload)
|
||||
@@ -639,7 +668,7 @@ export default {
|
||||
})
|
||||
.catch(err => {
|
||||
console.error('调度失败:', err);
|
||||
this.$message.error('调度失败');
|
||||
this.$message.error(err?.response?.data?.msg || err?.message || '调度失败');
|
||||
})
|
||||
.finally(() => {
|
||||
this.saving = false;
|
||||
|
||||
Reference in New Issue
Block a user