<template>
|
<FormDialog
|
v-model="dialogVisible"
|
:title="computedTitle"
|
:operation-type="operationType"
|
:width="width"
|
@close="emit('close')"
|
@cancel="handleCancel"
|
@confirm="handleConfirm"
|
>
|
<el-form
|
ref="formRef"
|
:model="form"
|
:rules="rules"
|
label-width="100px"
|
>
|
<el-form-item label="标准编号" prop="standardNo">
|
<el-input v-model="form.standardNo" placeholder="请输入标准编号" />
|
</el-form-item>
|
<el-form-item label="标准名称" prop="standardName">
|
<el-input v-model="form.standardName" placeholder="请输入标准名称" />
|
</el-form-item>
|
<el-form-item label="类别" prop="inspectType">
|
<el-select v-model="form.inspectType" placeholder="请选择类别" style="width: 100%">
|
<el-option label="原材料检验" value="0" />
|
<el-option label="过程检验" value="1" />
|
<el-option label="出厂检验" value="2" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="工序" prop="processId">
|
<el-select v-model="form.processId" placeholder="请选择工序" style="width: 100%">
|
<el-option
|
v-for="item in processOptions"
|
:key="item.value"
|
:label="item.label"
|
:value="item.value"
|
/>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="状态" prop="state">
|
<el-select v-model="form.state" placeholder="请选择状态" style="width: 100%">
|
<el-option label="草稿" value="0" />
|
<el-option label="通过" value="1" />
|
<el-option label="撤销" value="2" />
|
</el-select>
|
</el-form-item>
|
<el-form-item label="备注" prop="remark">
|
<el-input
|
v-model="form.remark"
|
type="textarea"
|
:rows="3"
|
placeholder="请输入备注"
|
/>
|
</el-form-item>
|
</el-form>
|
</FormDialog>
|
</template>
|
|
<script setup>
|
import { computed, ref } from 'vue'
|
import FormDialog from '@/components/Dialog/FormDialog.vue'
|
|
const props = defineProps({
|
modelValue: {
|
type: Boolean,
|
default: false
|
},
|
operationType: {
|
type: String,
|
default: 'add'
|
},
|
form: {
|
type: Object,
|
required: true
|
},
|
rules: {
|
type: Object,
|
default: () => ({})
|
},
|
processOptions: {
|
type: Array,
|
default: () => []
|
},
|
width: {
|
type: String,
|
default: '500px'
|
}
|
})
|
|
const emit = defineEmits(['update:modelValue', 'close', 'cancel', 'confirm'])
|
|
const dialogVisible = computed({
|
get: () => props.modelValue,
|
set: (val) => emit('update:modelValue', val)
|
})
|
|
const formRef = ref(null)
|
|
const computedTitle = computed(() => {
|
if (props.operationType === 'edit') return '编辑检测标准'
|
if (props.operationType === 'copy') return '复制检测标准'
|
return '新增检测标准'
|
})
|
|
const handleConfirm = () => {
|
if (!formRef.value) {
|
emit('confirm')
|
return
|
}
|
formRef.value.validate((valid) => {
|
if (valid) {
|
emit('confirm')
|
}
|
})
|
}
|
|
const handleCancel = () => {
|
emit('cancel')
|
dialogVisible.value = false
|
}
|
|
const resetFields = () => {
|
formRef.value?.resetFields?.()
|
}
|
|
defineExpose({
|
resetFields
|
})
|
</script>
|