fix: 优化工艺路线参数明细和物料分类路线选择

main
zhongwenkai 2 days ago
parent b5a5f6e4c3
commit 06bfe6c071

@ -247,7 +247,8 @@ const processRouteQueryParams = reactive({
pageNo: 1,
pageSize: 10,
code: undefined,
name: undefined
name: undefined,
isEnable: 'true'
})
const selectedProcessRouteId = ref<string | number | undefined>()
const selectedProcessRouteRow = ref<ProcessRouteVO | undefined>()
@ -257,6 +258,12 @@ const processRouteDisplayName = computed(() => {
return formData.value.processRouteName || String(formData.value.processRouteId)
})
const isEnabledProcessRoute = (row?: ProcessRouteVO) => {
if (!row) return false
if (row.isEnable === undefined || row.isEnable === null) return true
return ['true', '1'].includes(String(row.isEnable))
}
/** 打开弹窗 */
const open = async (type: string, id?: number, defaultData?: any) => {
dialogVisible.value = true
@ -348,7 +355,7 @@ const getProcessRouteList = async () => {
processRouteLoading.value = true
try {
const data = await ProcessRouteApi.getProcessRoutePage(processRouteQueryParams)
processRouteList.value = data.list || []
processRouteList.value = Array.isArray(data.list) ? data.list.filter(isEnabledProcessRoute) : []
processRouteTotal.value = data.total || 0
if (selectedProcessRouteId.value) {
selectedProcessRouteRow.value =
@ -361,19 +368,24 @@ const getProcessRouteList = async () => {
}
const openProcessRouteDialog = async () => {
selectedProcessRouteId.value = formData.value.processRouteId
selectedProcessRouteRow.value = formData.value.processRouteId
? {
id: formData.value.processRouteId,
name: formData.value.processRouteName
selectedProcessRouteId.value = undefined
selectedProcessRouteRow.value = undefined
if (formData.value.processRouteId) {
try {
const data = await ProcessRouteApi.getProcessRoute(Number(formData.value.processRouteId))
if (isEnabledProcessRoute(data)) {
selectedProcessRouteId.value = formData.value.processRouteId
selectedProcessRouteRow.value = data
}
: undefined
} catch {}
}
processRouteQueryParams.pageNo = 1
processRouteDialogVisible.value = true
await getProcessRouteList()
}
const handleProcessRouteRowClick = (row: ProcessRouteVO) => {
if (!isEnabledProcessRoute(row)) return
selectedProcessRouteId.value = row.id
selectedProcessRouteRow.value = row
}
@ -386,6 +398,10 @@ const confirmProcessRoute = () => {
const row =
selectedProcessRouteRow.value ||
processRouteList.value.find((item) => String(item.id) === String(selectedProcessRouteId.value))
if (!isEnabledProcessRoute(row)) {
message.warning(t('FactoryModeling.ProductCategory.processRouteSelectRequired'))
return
}
formData.value.processRouteId = selectedProcessRouteId.value
formData.value.processRouteName = row?.name || String(selectedProcessRouteId.value)
processRouteDialogVisible.value = false
@ -405,6 +421,7 @@ const handleProcessRouteQuery = () => {
const resetProcessRouteQuery = () => {
processRouteQueryFormRef.value?.resetFields()
processRouteQueryParams.isEnable = 'true'
handleProcessRouteQuery()
}
</script>

@ -42,7 +42,7 @@
</el-form-item>
<el-form-item :label="t('ProcessRoute.fields.items')" prop="items">
<div class="process-route-items">
<el-table :data="formData.items" border size="small" row-key="id">
<el-table :data="formData.items" border size="small" row-key="id" :show-header="false">
<el-table-column :label="t('ProcessRoute.fields.processParameter')" min-width="260" align="center">
<template #default="scope">
<div class="flex items-center gap-1">
@ -70,11 +70,10 @@
<Icon icon="ep:minus" />
</el-button>
<el-button
v-if="scope.$index === (formData.items?.length || 1) - 1"
circle
size="small"
type="primary"
@click="addItem"
@click="addItem(scope.$index)"
>
<Icon icon="ep:plus" />
</el-button>
@ -137,9 +136,15 @@ const formRules = reactive({
items: [{ validator: (_: any, __: any, callback: any) => validateItems(callback), trigger: 'change' }]
})
const isEnabledParameter = (item: ProcessParameterVO) => {
if (item.isEnable === undefined || item.isEnable === null) return true
return ['true', '1'].includes(String(item.isEnable))
}
const loadParameterList = async () => {
try {
parameterOptions.value = await ProcessParameterApi.getProcessParameterList()
const data = await ProcessParameterApi.getProcessParameterList({ isEnable: 'true' })
parameterOptions.value = Array.isArray(data) ? data.filter(isEnabledParameter) : []
} catch {
parameterOptions.value = []
}
@ -215,21 +220,30 @@ const resetForm = () => {
formRef.value?.resetFields()
}
const addItem = () => {
const nextSort = (formData.value.items?.length || 0) + 1
formData.value.items = [
...(formData.value.items || []),
{
sort: nextSort,
processParameterId: undefined,
remark: undefined
}
]
const createEmptyItem = (): ProcessRouteItemVO => ({
processParameterId: undefined,
remark: undefined
})
const refreshItemSort = () => {
formData.value.items = (formData.value.items || []).map((item, index) => ({
...item,
sort: index + 1
}))
}
const addItem = (index?: number) => {
const items = [...(formData.value.items || [])]
const insertIndex = index === undefined ? items.length : index + 1
items.splice(insertIndex, 0, createEmptyItem())
formData.value.items = items
refreshItemSort()
formRef.value?.clearValidate?.('items')
}
const removeItem = (index: number) => {
formData.value.items?.splice(index, 1)
refreshItemSort()
formRef.value?.clearValidate?.('items')
}

Loading…
Cancel
Save