| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <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="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> |