| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <FormDialog |
| | | v-model="dialogVisible" |
| | | :title="computedTitle" |
| | | :operation-type="operationType" |
| | | width="520px" |
| | | @close="emit('close')" |
| | | @cancel="handleCancel" |
| | | @confirm="handleConfirm" |
| | | > |
| | | <el-form |
| | | ref="formRef" |
| | | :model="form" |
| | | :rules="rules" |
| | | label-width="100px" |
| | | > |
| | | <el-form-item label="忰项" prop="parameterItem"> |
| | | <el-input v-model="form.parameterItem" placeholder="请è¾å
¥åæ°é¡¹" /> |
| | | </el-form-item> |
| | | <el-form-item label="åä½" prop="unit"> |
| | | <el-input v-model="form.unit" placeholder="请è¾å
¥åä½" /> |
| | | </el-form-item> |
| | | <el-form-item label="æ åå¼" prop="standardValue"> |
| | | <el-input v-model="form.standardValue" placeholder="请è¾å
¥æ åå¼" /> |
| | | </el-form-item> |
| | | <el-form-item label="å
æ§å¼" prop="controlValue"> |
| | | <el-input v-model="form.controlValue" placeholder="请è¾å
¥å
æ§å¼" /> |
| | | </el-form-item> |
| | | <el-form-item label="é»è®¤å¼" prop="defaultValue"> |
| | | <el-input v-model="form.defaultValue" 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' }, // add | edit |
| | | form: { type: Object, required: true } |
| | | }) |
| | | |
| | | 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 rules = { |
| | | parameterItem: [{ required: true, message: '请è¾å
¥åæ°é¡¹', trigger: 'blur' }], |
| | | unit: [{ required: true, message: '请è¾å
¥åä½', trigger: 'blur' }] |
| | | } |
| | | |
| | | const computedTitle = computed(() => (props.operationType === 'edit' ? 'ç¼è¾æ ååæ°' : 'æ°å¢æ ååæ°')) |
| | | |
| | | const handleConfirm = () => { |
| | | formRef.value?.validate?.((valid) => { |
| | | if (valid) emit('confirm') |
| | | }) |
| | | } |
| | | |
| | | const handleCancel = () => { |
| | | emit('cancel') |
| | | dialogVisible.value = false |
| | | } |
| | | |
| | | const resetFields = () => { |
| | | formRef.value?.resetFields?.() |
| | | } |
| | | |
| | | defineExpose({ resetFields }) |
| | | </script> |