You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<script setup lang="ts"> import { add, update } from 'apis/matrix' import FtDialog from 'components/common/FTDialog/index.vue' import { FtMessage } from 'libs/message' import { onMounted, ref } from 'vue'
const props = defineProps({ formData: { type: Object, default: () => ({}), }, }) const emits = defineEmits(['ok', 'cancel'])
onMounted(() => { if (props.formData.id) { form.value = { ...props.formData } } })
const form = ref({})
const rules = { name: [ { required: true, message: '请输入基质名称', trigger: 'blur' }, ], }
const formRef = ref()
const okLoading = ref(false) const okHandle = () => { formRef.value.validate(async (valid: any) => { if (!valid) { return } okLoading.value = true // TODO 调用保存接口
if (form.value.id) { await update(form.value) } else { await add(form.value) } setTimeout(() => { okLoading.value = false FtMessage.success('保存成功') emits('ok') }, 300) }) }
const cancel = () => { emits('cancel') } </script>
<template> <FtDialog visible :title="form.id ? '编辑工艺' : '新增工艺'" width="40%" @ok="okHandle" @cancel="cancel"> <el-form ref="formRef" label-width="120" :model="form" :rules="rules"> <el-form-item label="工艺名称"> <el-input v-model="form.name" placeholder="" /> </el-form-item> </el-form> </FtDialog> </template>
<style scoped lang="scss"> .el-select { width: 80%; } .el-input { width: 80%; } .unit-text { font-size: 40px; color: #0349A8; font-weight: 500; margin-left: 20px; } .select-box { display: flex; margin: 40px; } .route-img { display: flex; img { width: 70px; } } </style>
|