<!-- 管理评审工作详情页面 --> <script name="QualityReviewWorkHandler" lang="ts" setup> import type { FormInstance, FormRules, UploadUserFile } from 'element-plus' import { ElLoading, ElMessage, ElMessageBox } from 'element-plus' import dayjs from 'dayjs' import fileList from './fileList.vue' import addFileDialog from './addOtherDialog.vue' import { getDictByCode } from '@/api/system/dict' import useUserStore from '@/store/modules/user' import { getUserList } from '@/api/system/user' import { addReviewWork, detailReviewWork, updateReviewWork } from '@/api/quality/review/work' const $route = useRoute() const $router = useRouter() const userStore = useUserStore() const ruleFormRef = ref<FormInstance>() // from组件 const ruleForm = ref({ yearTime: '', yearNum: '', workName: '', bizLabCode: '', beginTime: '', endTime: '', commanderId: '', currentStageName: '', commanderName: '', currentStage: '0', reviewFileList: [] as any, }) // 表单 const rules = ref<FormRules>({ }) // 表单验证规则 const isShowHandler = ref(true) onMounted(() => { detailReviewWork({ id: $route.query.id }).then((res) => { console.log(res.data, '详情') ruleForm.value = res.data isShowHandler.value = new Date(dayjs(ruleForm.value.endTime).format()).getTime() - new Date().getTime() > 0 }) }) // const currentStageList = ref<{ id: string; value: string; name: string }[]>()// 归档状态+ // // 获取字典值 // const fetchDict = () => { // getDictByCode('managementReviewCurrentStage').then((res) => { // currentStageList.value = res.data // }) // } // fetchDict() // 编辑 const updateRow = () => { $router.push({ path: '/qreviewwork/update', query: { ...$route.query }, }) } const { proxy } = getCurrentInstance() as any const btnList = ref([ { name: '创建管理评审计划', url: '/qreviewplan/create?approvalStatusName=全部', }, { name: '创建质量管理体系运行报告', url: '/qreviewrun/create', }, { name: '创建质量目标评测报告', url: '/qreviewtarget/create', }, { name: '创建其他评审材料', url: 'other', }, { name: '创建有效性综合分析报告', url: '/qrevieweffectiveness/create', }, { name: '创建技术能力分析报告', url: '/qreviewtechnology/create', }, { name: '创建会议记录', url: '/meetinglist/create', }, { name: '创建管理审核报告', url: '/qreviewreport/create?approvalStatusName=全部', }, { name: '创建纠正措施处理单', url: '/correcthandle/create?approvalStatusName=全部', }, { name: '创建预防措施处理单', url: '/preventhandle/create', }, ]) // 创建其他评审材料 const fileRefD = ref() const shortcut = (url: string) => { if (url === 'other') { fileRefD.value?.initDialog({ handlerType: 'other' }) return } $router.push({ path: url, query: { data: JSON.stringify(ruleForm.value), }, }) } const confirm = () => { detailReviewWork({ id: $route.query.id }).then((res) => { console.log(res.data, '详情') ruleForm.value = res.data }) } </script> <template> <app-container style="overflow: hidden;"> <!-- 创建其他评审材料 --> <add-file-dialog ref="fileRefD" @confirm="confirm" /> <detail-page title="管理评审工作管理"> <template #btns> <el-button v-if="proxy.hasPerm('/quality/review/work/update')" type="primary" @click="updateRow"> 编辑 </el-button> <el-button v-if="proxy.hasPerm('/quality/review/work/download')" type="primary"> 下载 </el-button> <el-button type="info" @click="() => $router.go(-1)"> 关闭 </el-button> </template> </detail-page> <detail-block title=""> <el-form ref="ruleFormRef" :model="ruleForm" :class="$route.path.includes('detail') ? 'isDetail' : ''" :rules="rules" label-position="right" label-width="120px" class="form" :disabled="$route.path.includes('detail')"> <el-row :gutter="24" class="marg"> <el-col :span="6"> <el-form-item label="审核工作名称" prop="createName"> <el-input v-model="ruleForm.workName" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="开始时间" prop="beginTime"> <el-date-picker v-model="ruleForm.beginTime" type="date" placeholder="开始时间" style="width: 100%;" value-format="YYYY-MM-DD" format="YYYY-MM-DD" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="结束时间" prop="endTime"> <el-date-picker v-model="ruleForm.endTime" type="date" placeholder="结束时间" style="width: 100%;" value-format="YYYY-MM-DD" format="YYYY-MM-DD" /> </el-form-item> </el-col> </el-row> <el-row :gutter="24" class="marg"> <el-col :span="6"> <el-form-item label="质量负责人" prop="commanderId"> <el-input v-model="ruleForm.commanderName" /> </el-form-item> </el-col> <el-col :span="6"> <el-form-item label="归档状态" prop="currentStage"> <el-input v-model="ruleForm.currentStageName" /> </el-form-item> </el-col> </el-row> </el-form> </detail-block> <detail-block v-if="$route.path.includes('detail') && isShowHandler" title="快捷操作"> <el-form :model="{}" label-width="120px"> <el-row :gutter="24"> <el-col :span="24"> <el-form-item label=" "> <div class="btn-container"> <el-button v-for="item in btnList" :key="item.name" type="primary" @click="shortcut(item.url)"> {{ item.name }} </el-button> </div> </el-form-item> </el-col> </el-row> </el-form> </detail-block> <file-list ref="fileRef" :data="ruleForm.reviewFileList" /> </app-container> </template> <style lang="scss" scoped> .user-container { width: 100%; height: 120px; overflow-y: scroll; border: 1px solid #dcdfe6; border-radius: 5px; } .mx-1 { margin-top: 5px; margin-right: 5px; margin-left: 5px; } </style>