<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 v-if="needProcess"
|
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",
|
},
|
inspectType: {
|
type: String,
|
default: null,
|
},
|
});
|
|
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 needProcess = computed(() =>
|
["1", "2"].includes(String(props.inspectType ?? ""))
|
);
|
|
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>
|