From 7df64634d3d7b292713eebfa008c40b3f5f9f65f Mon Sep 17 00:00:00 2001 From: shj <1790240199@qq.com> Date: 星期二, 20 九月 2022 15:57:03 +0800 Subject: [PATCH] 修改 --- src/views/facilityManagement/deviceType/component/Dailog.vue | 135 +++++++++++++++++++++++++-------------------- 1 files changed, 75 insertions(+), 60 deletions(-) diff --git a/src/views/facilityManagement/deviceType/component/Dailog.vue b/src/views/facilityManagement/deviceType/component/Dailog.vue index 4859882..ce4d7af 100644 --- a/src/views/facilityManagement/deviceType/component/Dailog.vue +++ b/src/views/facilityManagement/deviceType/component/Dailog.vue @@ -1,64 +1,68 @@ <template> - <el-dialog v-model="dialogVisible" :fullscreen="full" :title="titles" width="50%" draggable> + <el-dialog v-model="dialogVisible" :fullscreen="full" @close="resetForm(ruleFormRef)" :title="titles" width="50%" draggable> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> - <el-form :model="form" :disabled="disabled" label-width="120px"> + <el-form :model="form" :disabled="disabled" ref="ruleFormRef" :rules="rules" label-width="120px"> <el-row> <el-col :span="11"> - <el-form-item label="是否为设备内容" size="default"> + <el-form-item label="是否为设备内容" size="default" prop="isContent"> <el-select v-model="form.isContent" placeholder="请选择" style="width: 100%"> - <el-option label="是" value="1" /> - <el-option label="否" value="2" /> + <el-option label="是" :value="1" /> + <el-option label="否" :value="2" /> </el-select> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="父级编号" size="default"> - <el-tree-select v-model="form.parentId" :data="data" :props="propse" class="w100" placeholder="请选择" /> + <el-form-item label="父级编号" size="default" prop="parentId"> + <el-tree-select clearable check-strictly="true" v-model="form.parentId" :data="data" :props="propst" class="w100" placeholder="请选择" /> </el-form-item> </el-col> </el-row> <el-row> <el-col :span="11"> - <el-form-item label="类别名称" size="default"> + <el-form-item label="类别名称" size="default" prop="typeName"> <el-input v-model="form.typeName" /> </el-form-item> </el-col> <el-col :span="11" :offset="2"> - <el-form-item label="排列序列" size="default"> - <el-input v-model="form.sortNum" /> + <el-form-item label="排列序列" size="default" prop="sortNum"> + <el-input v-model.number="form.sortNum" /> </el-form-item> </el-col> </el-row> </el-form> <template #footer> <span class="dialog-footer"> - <el-button @click="resetForm">关闭</el-button> - <el-button type="primary" @click="submitForm">确定</el-button> + <el-button @click="resetForm(ruleFormRef)">关闭</el-button> + <el-button type="primary" @click="submitForm(ruleFormRef)">确定</el-button> </span> </template> </el-dialog> </template> <script lang="ts"> -import { defineComponent, ref } from 'vue'; +import { defineComponent, ref, reactive } from 'vue'; +import type { FormInstance, FormRules } from 'element-plus'; import { FullScreen } from '@element-plus/icons-vue'; import { facilityManagementApi } from '/@/api/facilityManagement'; import { ElMessage } from 'element-plus'; +import { type } from 'os'; export default defineComponent({ setup(prpos, { emit }) { const dialogVisible = ref(false); const form = ref({ isContent: '', ////是否为设备内容 1:是 2:否 typeName: '', ////类别名称 - parentId: 0, ////父级ID,如果没有父级,为0 - isCheck: 1, ////是否检测 1:是 2:否 - isVisit: 1, ////是否巡检 1:是 2:否 + parentId: '', ////父级ID,如果没有父级,为0 + isCheck: 0, ////是否检测 1:是 2:否 + isVisit: 0, ////是否巡检 1:是 2:否 sortNum: '', //排列序列 - id: '', //设备类型ID ,更新时必填 + // id: '', //设备类型ID ,更新时必填 }); const titles = ref(); + const titleT = ref(); const disabled = ref(false); const openDailog = (title: string, id: number) => { listApi(); + titleT.value = title; dialogVisible.value = true; titles.value = `${title}设备设施类型管理`; if (title == '查看') { @@ -67,7 +71,7 @@ } else if (title == '修改') { detail(id); } else if (title == '添加') { - // detail(id); + form.value.parentId = id; } }; const detail = (id: number) => { @@ -101,52 +105,60 @@ } }); }; - const data = ref(); - const propse = { - lable: 'typeName', + const data = ref([]); + const propst = { + label: 'typeName', children: 'childList', value: 'id', }; - const submitForm = () => { - facilityManagementApi() - .getequipmentTypeMngAddOrUpdate(form.value) - .then((res) => { - if (res.data.code == 200) { - dialogVisible.value = false; - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'success', - }); - emit('onAdd'); - } else { - ElMessage({ - showClose: true, - message: res.data.msg, - type: 'error', - }); + const ruleFormRef = ref<FormInstance>(); + const rules = reactive<FormRules>({ + isContent: [{ required: true, message: '是否为设备内容不能为空', trigger: 'change' }], + parentId: [], + typeName: [{ required: true, message: '类别名称不能为空', trigger: 'change' }], + sortNum: [ + { required: true, message: '排列序列不能为空', trigger: 'change' }, + { type: 'number', message: '请输入数字!', trigger: 'change' }, + ], + }); + const submitForm = async (formEl: FormInstance | undefined) => { + if (!formEl) return; + await formEl.validate((valid, fields) => { + if (valid) { + if (titleT.value == '新建') { + delete form.value.id; } - }); - form.value = { - isContent: '', ////是否为设备内容 1:是 2:否 - typeName: '', ////类别名称 - parentId: 0, ////父级ID,如果没有父级,为0 - isCheck: 0, ////是否检测 1:是 2:否 - isVisit: 0, ////是否巡检 1:是 2:否 - sortNum: '', //排列序列 - id: '', //设备类型ID ,更新时必填 - }; + facilityManagementApi() + .getequipmentTypeMngAddOrUpdate(form.value) + .then((res) => { + if (res.data.code == 200) { + dialogVisible.value = false; + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'success', + }); + emit('onAdd'); + formEl.resetFields(); + } else { + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'error', + }); + } + }); + } else { + console.log('error submit!', fields); + } + }); + disabled.value=false }; - const resetForm = () => { - form.value = { - isContent: '', ////是否为设备内容 1:是 2:否 - typeName: '', ////类别名称 - parentId: 0, ////父级ID,如果没有父级,为0 - isCheck: 0, ////是否检测 1:是 2:否 - isVisit: 0, ////是否巡检 1:是 2:否 - sortNum: '', //排列序列 - id: '', //设备类型ID ,更新时必填 - }; + const resetForm = (formEl: FormInstance | undefined) => { + if (!formEl) return; + formEl.resetFields(); + dialogVisible.value = false; + disabled.value=false }; //全屏 const full = ref(false); @@ -158,9 +170,12 @@ } }; return { + titleT, detail, + rules, + ruleFormRef, listApi, - propse, + propst, submitForm, resetForm, data, -- Gitblit v1.9.2