<!-- 到期提醒详情 --> <script lang="ts" setup name="RemingDetailDialog"> import { ElMessage } from 'element-plus' import type { Ref } from 'vue' import { ref } from 'vue' import dayjs from 'dayjs' import type { DateModelType } from 'element-plus' import { getStandardList } from '@/api/equipment/standard/book' import type { TableColumn } from '@/components/NormalTable/table_interface' import { SCHEDULE } from '@/utils/scheduleDict' import { getDeptTreeList } from '@/api/system/dept' import { getStaffList } from '@/api/resource/register' import { toTreeList } from '@/utils/structure' import type { deptType } from '@/global' import { getDictByCode } from '@/api/system/dict' import useUserStore from '@/store/modules/user' // 用户信息 const emits = defineEmits(['confirm']) const user = useUserStore() const dialogFormVisible = ref(false) const textMap: { [key: string]: string } = { edit: '编辑', add: '新建', detail: '详情', }// 字典 const form = ref({ name: '', // 提醒名称 time: 30, // 提醒时间 }) const pageType = ref('detail') // 页面类型 const rules = { name: [{ required: true, message: '提醒名称不能为空', trigger: ['blur', 'change'] }], time: [{ required: true, message: '提醒时间不能为空', trigger: ['blur', 'change'] }], } // 点击确定 const confirmSelect = () => { dialogFormVisible.value = false } // 取消 const resetForm = () => { dialogFormVisible.value = false } // 初始化 const initDialog = async (type: string, row: any) => { pageType.value = type // 页面类型 dialogFormVisible.value = true } defineExpose({ initDialog }) </script> <template> <el-dialog v-if="dialogFormVisible" v-model="dialogFormVisible" :title="`${textMap[pageType]}`"> <el-form ref="dataForm" :rules="rules" :model="form" label-well-code="right" label-width="200px"> <el-form-item label="提醒名称" prop="name"> <el-input v-model="form.name" class="full-width-input" type="text" placeholder="请输入提醒名称" :disabled="pageType === 'detail'" /> </el-form-item> <el-form-item label="提醒时间(按到期前提示)" prop="time"> <el-input-number v-model="form.time" :placeholder="pageType === 'detail' ? '' : '到期前XX天'" :disabled="pageType === 'detail'" class="full-width-input" /> </el-form-item> </el-form> <template #footer> <span class="dialog-footer"> <el-button type="primary" @click="confirmSelect">确认</el-button> <el-button @click="resetForm"> 取消 </el-button> </span> </template> </el-dialog> </template> <style lang="scss" scoped> :deep(.el-radio__label) { display: none; } </style>