| | |
| | | <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="请输入标准编号" /> |
| | | <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 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-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-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 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' |
| | | 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 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 emit = defineEmits(["update:modelValue", "close", "cancel", "confirm"]); |
| | | |
| | | const dialogVisible = computed({ |
| | | get: () => props.modelValue, |
| | | set: (val) => emit('update:modelValue', val) |
| | | }) |
| | | const dialogVisible = computed({ |
| | | get: () => props.modelValue, |
| | | set: val => emit("update:modelValue", val), |
| | | }); |
| | | |
| | | const formRef = ref(null) |
| | | const formRef = ref(null); |
| | | |
| | | const needProcess = computed(() => String(props.inspectType ?? '') === '1') |
| | | const needProcess = computed(() => |
| | | ["1", "2"].includes(String(props.inspectType ?? "")) |
| | | ); |
| | | |
| | | const computedTitle = computed(() => { |
| | | if (props.operationType === 'edit') return '编辑检测标准' |
| | | if (props.operationType === 'copy') return '复制检测标准' |
| | | return '新增检测标准' |
| | | }) |
| | | 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 handleConfirm = () => { |
| | | if (!formRef.value) { |
| | | emit("confirm"); |
| | | return; |
| | | } |
| | | }) |
| | | } |
| | | formRef.value.validate(valid => { |
| | | if (valid) { |
| | | emit("confirm"); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | const handleCancel = () => { |
| | | emit('cancel') |
| | | dialogVisible.value = false |
| | | } |
| | | const handleCancel = () => { |
| | | emit("cancel"); |
| | | dialogVisible.value = false; |
| | | }; |
| | | |
| | | const resetFields = () => { |
| | | formRef.value?.resetFields?.() |
| | | } |
| | | const resetFields = () => { |
| | | formRef.value?.resetFields?.(); |
| | | }; |
| | | |
| | | defineExpose({ |
| | | resetFields |
| | | }) |
| | | defineExpose({ |
| | | resetFields, |
| | | }); |
| | | </script> |