fix(orders): 将parentNumber的值从'StyleQuality'和'QualityType'更改为'ProductQuality'
修复了多个组件中parentNumber的值,确保一致性并避免潜在的错误。同时,在订单编辑页面添加了重置明细的功能,允许用户根据样式明细重新生成订单明细。
This commit is contained in:
parent
58d0e84e75
commit
336cfbee92
@ -247,7 +247,7 @@ export default defineComponent({
|
||||
number: { name: '' },
|
||||
name: { name: '' },
|
||||
property: { name: '' },
|
||||
parentNumber: { op: '=', value: 'QualityType' },
|
||||
parentNumber: { op: '=', value: 'ProductQuality' },
|
||||
status: { op: '=', value: '1' },
|
||||
},
|
||||
}),
|
||||
@ -587,6 +587,96 @@ export default defineComponent({
|
||||
return true; // 允许标签页切换
|
||||
};
|
||||
|
||||
const resetDtlEvent = async () => {
|
||||
if (!order.value.styleNo) {
|
||||
alertService.showError($t('jewpmsApp.order.styleNo.required'));
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// 1. 删除原有的orderdtl记录
|
||||
if (order.value.number && order.value.quality) {
|
||||
// 根据当前活动的tab页决定处理哪种类型的明细
|
||||
let params;
|
||||
if (activeTab.value === 'setting') {
|
||||
// 处理setting明细
|
||||
params = getParamsFromColumns(settingColumns.value, {}, false, {
|
||||
number: { op: '=', value: order.value.number },
|
||||
quality: { op: '=', value: order.value.quality },
|
||||
material: { op: '<>', value: processMaterial.value },
|
||||
status: { op: '=', value: '1' },
|
||||
});
|
||||
} else {
|
||||
// 处理process明细
|
||||
params = getParamsFromColumns(processColumns.value, {}, false, {
|
||||
number: { op: '=', value: order.value.number },
|
||||
quality: { op: '=', value: order.value.quality },
|
||||
material: { op: '=', value: processMaterial.value },
|
||||
status: { op: '=', value: '1' },
|
||||
});
|
||||
}
|
||||
|
||||
// 获取当前tab页的明细
|
||||
const dtlsRes = await axios.get(`api/orderdtls?${buildPaginationQuery({ sort: sort() })}`, {
|
||||
params: params,
|
||||
});
|
||||
|
||||
// 删除当前tab页的明细
|
||||
for (const dtl of dtlsRes.data) {
|
||||
await axios.delete(`api/orderdtls/${dtl.id}`);
|
||||
}
|
||||
|
||||
// 2. 从jhi_styledtl表中获取相应的明细信息
|
||||
let styleDtlParams = {
|
||||
number: { op: '=', value: order.value.styleNo },
|
||||
quality: { op: '=', value: order.value.quality },
|
||||
status: { op: '=', value: '1' },
|
||||
};
|
||||
|
||||
// 根据当前tab页添加material条件
|
||||
if (activeTab.value === 'setting') {
|
||||
styleDtlParams['material'] = { op: '<>', value: processMaterial.value };
|
||||
} else {
|
||||
styleDtlParams['material'] = { op: '=', value: processMaterial.value };
|
||||
}
|
||||
|
||||
const styleDtlsRes = await axios.get('api/styledtls', {
|
||||
params: styleDtlParams,
|
||||
});
|
||||
|
||||
// 3. 将样式明细转换为订单明细并保存
|
||||
for (const styleDtl of styleDtlsRes.data) {
|
||||
const newOrderDtl = {
|
||||
number: order.value.number,
|
||||
name: styleDtl.name || '',
|
||||
quality: order.value.quality,
|
||||
process: styleDtl.process,
|
||||
material: styleDtl.material,
|
||||
subgroup: activeTab.value === 'setting' ? 'S' : 'M',
|
||||
quantity: styleDtl.quantity || 0,
|
||||
weight: styleDtl.weight || 0,
|
||||
custPrice: styleDtl.custPrice || 0,
|
||||
costPrice: styleDtl.costPrice || 0,
|
||||
custLabor: styleDtl.custLabor || 0,
|
||||
costLabor: styleDtl.costLabor || 0,
|
||||
unitHour: styleDtl.unitHour || 0,
|
||||
remark: styleDtl.remark || '',
|
||||
sortNo: styleDtl.sortNo,
|
||||
status: '1',
|
||||
};
|
||||
|
||||
await axios.post('api/orderdtls', newOrderDtl);
|
||||
}
|
||||
|
||||
// 4. 刷新订单明细
|
||||
await loadOrderDtls();
|
||||
alertService.showSuccess($t('jewpmsApp.order.detail.reset.success'));
|
||||
}
|
||||
} catch (e) {
|
||||
alertService.showHttpError(e);
|
||||
}
|
||||
};
|
||||
|
||||
onMounted(() => {
|
||||
loadData();
|
||||
});
|
||||
@ -630,6 +720,7 @@ export default defineComponent({
|
||||
settingColumns,
|
||||
companies,
|
||||
searchCompanies,
|
||||
resetDtlEvent,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
@ -274,8 +274,8 @@
|
||||
:edit-render="column.editRender"
|
||||
>
|
||||
<template #header="{ column }" v-if="column.title === 'entity.action.actions'">
|
||||
<span class="vxe-button">{{ $t(column.title) }}</span>
|
||||
<vxe-button class="btn-circle" icon="vxe-icon-square-plus-square" status="primary" @click="addDtlEvent"></vxe-button>
|
||||
<vxe-button class="btn-circle" icon="vxe-icon-refresh" status="warning" @click="resetDtlEvent"></vxe-button>
|
||||
</template>
|
||||
<template #default="{ row }" v-if="column.title === 'entity.action.actions'">
|
||||
<div class="vxe-group">
|
||||
@ -312,8 +312,8 @@
|
||||
:edit-render="column.editRender"
|
||||
>
|
||||
<template #header="{ column }" v-if="column.title === 'entity.action.actions'">
|
||||
<span class="vxe-button">{{ $t(column.title) }}</span>
|
||||
<vxe-button class="btn-circle" icon="vxe-icon-square-plus-square" status="primary" @click="addDtlEvent"></vxe-button>
|
||||
<vxe-button class="btn-circle" icon="vxe-icon-refresh" status="warning" @click="resetDtlEvent"></vxe-button>
|
||||
</template>
|
||||
<template #default="{ row }" v-if="column.title === 'entity.action.actions'">
|
||||
<div class="vxe-group">
|
||||
|
||||
@ -223,7 +223,7 @@ export default defineComponent({
|
||||
params: {
|
||||
number: { name: '' },
|
||||
name: { name: '' },
|
||||
parentNumber: { op: '=', value: 'StyleQuality' },
|
||||
parentNumber: { op: '=', value: 'ProductQuality' },
|
||||
status: { op: '=', value: '1' },
|
||||
},
|
||||
}),
|
||||
|
||||
@ -200,7 +200,7 @@ export default defineComponent({
|
||||
number: { name: '' },
|
||||
name: { name: '' },
|
||||
property: { name: '' },
|
||||
parentNumber: { op: '=', value: 'StyleQuality' },
|
||||
parentNumber: { op: '=', value: 'ProductQuality' },
|
||||
status: { op: '=', value: '1' },
|
||||
},
|
||||
}),
|
||||
|
||||
Loading…
Reference in New Issue
Block a user