| | |
| | | <template> |
| | | <div class="app-container metric-maintenance"> |
| | | <el-tabs v-model="activeTab" @tab-change="handleTabChange" class="metric-tabs"> |
| | | <el-tab-pane label="原材料检验" name="0" /> |
| | | <el-tab-pane label="过程检验" name="1" /> |
| | | <el-tab-pane label="出厂检验" name="2" /> |
| | | </el-tabs> |
| | | <el-row :gutter="16" class="metric-maintenance-row"> |
| | | <!-- 左侧:检测标准列表 --> |
| | | <el-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12" class="left-col"> |
| | |
| | | @change="handleQuery" |
| | | @clear="handleQuery" |
| | | /> |
| | | </template> |
| | | <template #inspectTypeHeader> |
| | | <el-select |
| | | v-model="searchForm.inspectType" |
| | | placeholder="类别" |
| | | clearable |
| | | size="small" |
| | | style="width: 120px" |
| | | @change="handleQuery" |
| | | @clear="handleQuery" |
| | | > |
| | | <el-option label="原材料检验" value="0" /> |
| | | <el-option label="过程检验" value="1" /> |
| | | <el-option label="出厂检验" value="2" /> |
| | | </el-select> |
| | | </template> |
| | | <template #stateHeader> |
| | | <el-select |
| | |
| | | :operation-type="standardOperationType" |
| | | :form="standardForm" |
| | | :rules="standardRules" |
| | | :inspect-type="activeTab" |
| | | :process-options="processOptions" |
| | | @confirm="submitStandardForm" |
| | | @close="closeStandardDialog" |
| | |
| | | ref="paramFormDialogRef" |
| | | v-model="paramDialogVisible" |
| | | :operation-type="paramOperationType" |
| | | :inspectType="activeTab.value" |
| | | :form="paramForm" |
| | | @confirm="submitParamForm" |
| | | @close="closeParamDialog" |
| | |
| | | import ParamFormDialog from './ParamFormDialog.vue' |
| | | |
| | | const { proxy } = getCurrentInstance() |
| | | |
| | | // 类别 Tab(0=原材料,1=过程,2=出厂) |
| | | const activeTab = ref('0') |
| | | |
| | | // 左侧标准列表:整行内容居中(配合样式) |
| | | const rowClassNameCenter = () => 'row-center' |
| | |
| | | standardRules: { |
| | | standardNo: [{ required: true, message: '请输入标准编号', trigger: 'blur' }], |
| | | standardName: [{ required: true, message: '请输入标准名称', trigger: 'blur' }], |
| | | inspectType: [{ required: true, message: '请选择检测类型', trigger: 'change' }], |
| | | processId: [{ required: false, message: '请选择工序', trigger: 'change' }] |
| | | processId: [{ |
| | | validator: (_rule, value, callback) => { |
| | | const inspectType = String(standardForm.value.inspectType ?? activeTab.value ?? '') |
| | | if (inspectType === '1' && (value === '' || value === null || value === undefined)) { |
| | | callback(new Error('请选择工序')) |
| | | return |
| | | } |
| | | callback() |
| | | }, |
| | | trigger: 'change' |
| | | }] |
| | | } |
| | | }) |
| | | |
| | |
| | | { |
| | | label: '类别', |
| | | prop: 'inspectType', |
| | | headerSlot: 'inspectTypeHeader', |
| | | align: 'center', |
| | | dataType: 'tag', |
| | | formatData: (val) => { |
| | |
| | | ] |
| | | } |
| | | ]) |
| | | |
| | | const handleTabChange = () => { |
| | | searchForm.value.standardNo = '' |
| | | searchForm.value.standardName = '' |
| | | searchForm.value.remark = '' |
| | | searchForm.value.state = '' |
| | | searchForm.value.processId = '' |
| | | searchForm.value.inspectType = activeTab.value |
| | | page.current = 1 |
| | | currentStandard.value = null |
| | | detailTableData.value = [] |
| | | paramSelectedRows.value = [] |
| | | getStandardList() |
| | | } |
| | | |
| | | // 查询列表 |
| | | const getStandardList = () => { |
| | |
| | | standardName: '', |
| | | remark: '', |
| | | state: '0', |
| | | inspectType: '', |
| | | processId: '' |
| | | inspectType: activeTab.value, |
| | | processId: activeTab.value === '1' ? '' : null |
| | | }) |
| | | } else if (type === 'edit' && row) { |
| | | Object.assign(standardForm.value, { |
| | |
| | | inspectType: row.inspectType !== null && row.inspectType !== undefined ? String(row.inspectType) : '', |
| | | state: row.state !== null && row.state !== undefined ? String(row.state) : '0', |
| | | // 确保 processId 转换为字符串或数字(根据实际需要) |
| | | processId: row.processId !== null && row.processId !== undefined ? row.processId : '' |
| | | processId: String(row.inspectType) === '1' && row.processId !== null && row.processId !== undefined ? row.processId : null |
| | | }) |
| | | } else if (type === 'copy' && row) { |
| | | const { id, ...rest } = row |
| | |
| | | standardNo: '', |
| | | state: '0', |
| | | // 确保 inspectType 转换为字符串 |
| | | inspectType: rest.inspectType !== null && rest.inspectType !== undefined ? String(rest.inspectType) : '' |
| | | inspectType: activeTab.value, |
| | | processId: activeTab.value === '1' ? (rest.processId ?? '') : null |
| | | }) |
| | | } |
| | | standardDialogVisible.value = true |
| | |
| | | |
| | | const submitStandardForm = () => { |
| | | const payload = { ...standardForm.value } |
| | | payload.inspectType = activeTab.value |
| | | if (String(payload.inspectType) !== '1') { |
| | | payload.processId = null |
| | | } |
| | | const isEdit = standardOperationType.value === 'edit' |
| | | if (isEdit) { |
| | | qualityTestStandardUpdate(payload).then(() => { |
| | |
| | | } |
| | | |
| | | onMounted(() => { |
| | | searchForm.value.inspectType = activeTab.value |
| | | getProcessList() |
| | | getStandardList() |
| | | }) |
| | |
| | | .metric-maintenance { |
| | | padding: 0; |
| | | min-width: 0; |
| | | } |
| | | |
| | | .metric-tabs { |
| | | margin: 10px; |
| | | } |
| | | |
| | | .metric-maintenance-row { |
| | |
| | | width: 100%; |
| | | margin-top: 4px; |
| | | } |
| | | </style> |
| | | </style> |