<!-- 设备分组信息-编辑 --> <script lang="ts" setup name="addNotice"> import type { FormInstance, FormRules, UploadUserFile } from 'element-plus' import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import dayjs from 'dayjs' import tableList from './tableList.vue' import { getDictByCode } from '@/api/system/dict' import useUserStore from '@/store/modules/user' const $route = useRoute() const $router = useRouter() const userStore = useUserStore() const ruleFormRef = ref<FormInstance>() // from组件 const statusName = $route.query.statusName as string const title = ref('') // 显示标题 const textMap: { [key: string]: string } = { update: '编辑', create: '新增', detail: '详情', } // 对话框类型:create,update const dialogStatus = ref('create') const ruleForm = ref({ }) // 表单 const rules = ref<FormRules>({ fileName: [{ required: true, message: '名称必填', trigger: 'blur' }], }) // 表单验证规则 // 弹窗初始化 const initDialog = () => { dialogStatus.value = $route.params.type as string ruleFormRef.value?.resetFields() if ($route.params.type === 'create') { // ruleForm.value.createTime = dayjs().format('YYYY-MM-DD HH:mm:ss') // 创建时间 } else { ruleForm.value = JSON.parse($route.query.row as string) // getInfoDetail({ equipmentId: $route.query.id as string }).then(res => { // ruleForm.value = res.data // }) } } onMounted(() => { initDialog() }) // 关闭弹窗 const close = () => { $router.back() } // 保存 const saveForm = async (formEl: FormInstance | undefined) => { if (!formEl) { return } await formEl.validate((valid, fields) => { if (valid) { ElMessageBox.confirm( '确认保存吗?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning', }, ).then((res) => { ruleForm.value.attachments = tableRef.value.list ruleForm.value.technicalTargetList = technologyRef.value.list editInfo(ruleForm.value).then((res) => { console.log(res.data, '123') ElMessage.success('保存成功') submitId.value = res.data }) }) } }) } // 提交 const submitForm = () => { if (!submitId.value) { ElMessage.warning('请先保存') return false } ElMessageBox.confirm( '确认提交吗?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning', }, ).then((res) => { submitInfo({ id: submitId.value, formId: SCHEDULE.DEVICE_INFO_APPROVAL }).then((res) => { ElMessage.success('已提交') close() }) }) } // 取消 const resetForm = (formEl: FormInstance | undefined) => { formEl?.resetFields() close() } </script> <template> <app-container style="overflow: hidden;"> <approval-dialog ref="approvalDialogRef" @on-success="() => { $router.back() }" /> <detail-page title="部门送检通知"> <template #btns> <el-button v-if="statusName !== 'detail'" type="primary" @click="saveForm(ruleFormRef)"> 保存 </el-button> <el-button type="info" @click="resetForm(ruleFormRef)"> 关闭 </el-button> </template> </detail-page> <detail-block-com> <div class="tips"> 您部门负责的设备已到检定/校准期,为了保证我单位设备的合格率,请于接到本通知之日起,在检定的年/季/月内将设备及时送检。若有提前/延迟送检需求,请及时提交申请。谢谢您的合作! </div> <div class="tips" style="height: 15px;line-height: 15px;" /> </detail-block-com> <detail-block-com> <el-form label-position="right" label-width="110px" class="form"> <el-row :gutter="24" class="marg"> <el-col :span="6"> <el-form-item label="通知编号"> <el-input v-model.trim="ruleForm.approvalTypeName" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="通知名称"> <el-input v-model.trim="ruleForm.createUserName" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="计划分类"> <el-input v-model.trim="ruleForm.createTime" /> </el-form-item> </el-col> </el-row> <el-row :gutter="24" class="marg"> <el-col :span="6"> <el-form-item label="创建单位"> <el-input v-model.trim="ruleForm.createUserName" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="创建人"> <el-input v-model.trim="ruleForm.createTime" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="创建时间"> <el-input v-model.trim="ruleForm.createUserName" /> </el-form-item> </el-col> </el-row> <el-row :gutter="24" class="marg"> <el-col :span="18"> <el-form-item label="备注"> <el-input v-model.trim="ruleForm.createUserName" /> </el-form-item> </el-col> </el-row> </el-form> </detail-block-com> <detail-block-com> <table-list /> </detail-block-com> </app-container> </template> <style lang="scss" scoped> // 样式 .tips { height: 25px; line-height: 25px; padding: 10px; padding-top: 0; padding-bottom: 0; } </style>