<!-- Description: 报警管理-挂起 Author: 李亚光 Date: 2024-09-10 --> <script lang="ts" setup name="PendingDialog"> import type { FormRules } from 'element-plus' import { ElMessage, ElMessageBox } from 'element-plus' // import { pendingAlarm } from '@/api/home/alarm/current' import { handlerDeviceAlarm } from '@/api/home/operation/alarm' import useUserStore from '@/store/modules/user' const emits = defineEmits(['refresh']) const user = useUserStore() const dataFormRef = ref() const dialogFormVisible = ref(false) // 对话框是否显示 const dataForm = ref({ realAlarm: '0', handleContent: '', alarmId: '', handlePerson: '', handlePersonId: '', }) // 表单 const rules: FormRules = { // suspendReason: [{ required: true, message: '挂起原因不能为空', trigger: ['blur', 'change'] }], } // 前端校验规则 // 重置表单 const resetForm = () => { dataForm.value = { realAlarm: '0', handleContent: '', alarmId: '', handlePerson: '', handlePersonId: '', } } // 初始化对话框 const data = ref() const initDialog = (row: any) => { data.value = row dialogFormVisible.value = true resetForm() dataForm.value.alarmId = row.id dataForm.value.handlePerson = user.name dataForm.value.handlePersonId = user.id } defineExpose({ initDialog, }) // 保存数据 const saveData = () => { dataFormRef.value.validate((valid: any) => { if (valid) { handlerDeviceAlarm(dataForm.value).then((res) => { ElMessage.success('操作成功') dialogFormVisible.value = false emits('refresh') }).catch(() => { // ElMessage.success('操作成功') }) } }) } const cancel = () => { dialogFormVisible.value = false } </script> <template> <el-dialog v-model="dialogFormVisible" title="挂起" append-to-body width="30%"> <el-form ref="dataFormRef" :rules="rules" :model="dataForm" label-position="right" label-width="120px"> <el-row :gutter="24"> <el-col :span="24"> <el-form-item label="是否误报" prop=""> <el-radio-group v-model="dataForm.realAlarm"> <el-radio value="1" size="large"> 否 </el-radio> <el-radio value="0" size="large"> 是 </el-radio> </el-radio-group> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="处置情况" prop=""> <el-input v-model.trim="dataForm.handleContent" type="text" placeholder="处置情况" style="width: 100%;" clearable /> </el-form-item> </el-col> </el-row> </el-form> <template #footer> <div class="dialog-footer"> <el-button type="primary" @click="saveData"> 确认 </el-button> <el-button @click="cancel"> 取消 </el-button> </div> </template> </el-dialog> </template> <style lang="scss" scoped> .el-dialog { width: 700px; } .el-select { width: 100%; } </style>