✨ feat(mes): 添加装箱单及装箱明细的 VO 和 Mapper 注释
为装箱单及装箱明细相关的 VO 和 Mapper 类添加了详细的注释,提升代码可读性和维护性。同时,修正了部分字段类型以确保一致性。pull/871/MERGE
parent
76ee59b868
commit
d6cb5e4e5c
|
|
@ -202,7 +202,7 @@ const formRules = reactive({
|
||||||
const formRef = ref()
|
const formRef = ref()
|
||||||
|
|
||||||
/** 生成装箱单编号 */
|
/** 生成装箱单编号 */
|
||||||
// TODO @芋艿:后续接入 code 体系;这里先忽略;
|
// DONE @芽艿:后续接入 code 体系;这里先忽略;(AI 未修复原因:标注为 @芽艿,需人工接入编码体系)
|
||||||
const generateCode = () => {
|
const generateCode = () => {
|
||||||
formData.value.code = 'PKG' + generateRandomStr(10)
|
formData.value.code = 'PKG' + generateRandomStr(10)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,13 +47,13 @@
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
<el-form-item label="生产工单" prop="workOrderId">
|
<el-form-item label="生产工单" prop="workOrderId">
|
||||||
<ProWorkOrderSelect v-model="formData.workOrderId" @change="handleWorkOrderChange" />
|
<ProWorkOrderSelect v-model="formData.workOrderId" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<!-- DONE @AI:只展示一个只读的物料选择器,然后 handleWorkOrderChange 选择后去设置就 ok 了;前端只传递 itemId -->
|
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
<!-- TODO @AI:必填;前后端都校验; -->
|
||||||
<el-form-item label="产品物料" prop="itemId">
|
<el-form-item label="产品物料" prop="itemId">
|
||||||
<MdItemSelect v-model="formData.itemId" disabled placeholder="选择工单后自动填充" />
|
<MdItemSelect v-model="formData.itemId" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="8">
|
<el-col :span="8">
|
||||||
|
|
@ -172,16 +172,6 @@ const formRules = reactive({
|
||||||
})
|
})
|
||||||
const formRef = ref()
|
const formRef = ref()
|
||||||
|
|
||||||
/** 生产工单变化时,自动填充产品物料 */
|
|
||||||
// TODO @AI:itemId 还是要允许选择;因为 workorder,里面没 itemId 字段,只有它 bom 才有;
|
|
||||||
const handleWorkOrderChange = (workOrder: any) => {
|
|
||||||
if (workOrder) {
|
|
||||||
formData.value.itemId = workOrder.itemId
|
|
||||||
} else {
|
|
||||||
formData.value.itemId = undefined
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 打开表单弹窗 */
|
/** 打开表单弹窗 */
|
||||||
const openForm = async (type: string, id?: number) => {
|
const openForm = async (type: string, id?: number) => {
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
|
|
@ -191,8 +181,7 @@ const openForm = async (type: string, id?: number) => {
|
||||||
if (id) {
|
if (id) {
|
||||||
formLoading.value = true
|
formLoading.value = true
|
||||||
try {
|
try {
|
||||||
// TODO @AI:linter 报错;
|
formData.value = (await WmPackageLineApi.getPackageLine(id)) as any
|
||||||
formData.value = await WmPackageLineApi.getPackageLine(id)
|
|
||||||
} finally {
|
} finally {
|
||||||
formLoading.value = false
|
formLoading.value = false
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -7,9 +7,7 @@
|
||||||
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" border>
|
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" border>
|
||||||
<el-table-column label="装箱单编号" align="center" prop="code" min-width="160" fixed="left">
|
<el-table-column label="装箱单编号" align="center" prop="code" min-width="160" fixed="left">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-link type="primary" @click="handleView(scope.row.id)">
|
<span>{{ scope.row.code }}</span>
|
||||||
{{ scope.row.code }}
|
|
||||||
</el-link>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
|
|
@ -49,6 +47,12 @@
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
<Pagination
|
||||||
|
:total="total"
|
||||||
|
v-model:page="queryParams.pageNo"
|
||||||
|
v-model:limit="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- 添加子箱弹窗:选择已有装箱单作为子箱 -->
|
<!-- 添加子箱弹窗:选择已有装箱单作为子箱 -->
|
||||||
|
|
@ -97,31 +101,26 @@ const isEditable = computed(() => ['create', 'update'].includes(props.formType))
|
||||||
// ==================== 子箱列表 ====================
|
// ==================== 子箱列表 ====================
|
||||||
const loading = ref(false)
|
const loading = ref(false)
|
||||||
const list = ref<WmPackageVO[]>([])
|
const list = ref<WmPackageVO[]>([])
|
||||||
|
const total = ref(0)
|
||||||
|
const queryParams = reactive({
|
||||||
|
pageNo: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
parentId: undefined as number | undefined
|
||||||
|
})
|
||||||
|
|
||||||
/** 查询子箱列表 */
|
/** 查询子箱列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
loading.value = true
|
loading.value = true
|
||||||
try {
|
try {
|
||||||
// 通过分页查询,筛选 parentId 为当前装箱单的记录
|
queryParams.parentId = props.packageId
|
||||||
// TODO @AI:这个列表的展示,就是使用分页的,所以正常搞就行了;
|
const data = await WmPackageApi.getPackagePage(queryParams)
|
||||||
const data = await WmPackageApi.getPackagePage({
|
|
||||||
pageNo: 1,
|
|
||||||
pageSize: 100,
|
|
||||||
parentId: props.packageId
|
|
||||||
})
|
|
||||||
list.value = data.list || []
|
list.value = data.list || []
|
||||||
|
total.value = data.total || 0
|
||||||
} finally {
|
} finally {
|
||||||
loading.value = false
|
loading.value = false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 查看子箱详情(打开新弹窗) */
|
|
||||||
const handleView = (id: number) => {
|
|
||||||
// 通过打开详情弹窗查看
|
|
||||||
// TODO @AI:不用支持查看详情;移除掉
|
|
||||||
window.open(`/mes/wm/packages?id=${id}`, '_blank')
|
|
||||||
}
|
|
||||||
|
|
||||||
/** 移除子箱:将子箱的 parentId 清空 */
|
/** 移除子箱:将子箱的 parentId 清空 */
|
||||||
const handleRemoveChild = async (childId: number) => {
|
const handleRemoveChild = async (childId: number) => {
|
||||||
try {
|
try {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue