From a6a8e49af8c8172f4209dd94e65f53f17825cc44 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期四, 21 十一月 2024 17:30:12 +0800 Subject: [PATCH] 项目管理 --- src/views/safetyReview/projectManage/process.vue | 175 ++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 116 insertions(+), 59 deletions(-) diff --git a/src/views/safetyReview/projectManage/process.vue b/src/views/safetyReview/projectManage/process.vue index 83c6b5c..255e7b0 100644 --- a/src/views/safetyReview/projectManage/process.vue +++ b/src/views/safetyReview/projectManage/process.vue @@ -27,16 +27,19 @@ <div :style="'height:' + middleContentHeight + 'px'" style="overflow-y: scroll;"> <basic-info ref="basicRef" v-if="selectedObj.id === 1" :projectId="projectId" @getNextStatus="getNextStatus"></basic-info> <expert ref="expertRef" v-if="selectedObj.id === 2" :projectId="projectId" @getNextStatus="getNextStatus"></expert> - <approval ref="approvalRef" v-if="selectedObj.id === 3" :projectId="projectId" @getNextStatus="getNextStatus"></approval> + <approval ref="approvalRef" v-if="selectedObj.id === 3" :projectId="projectId" @getNextStatus="getNextStatus" @back-status="backStatus" ></approval> <archive ref="archiveRef" v-if="selectedObj.id === 4" :projectId="projectId" @getNextStatus="getNextStatus"></archive> </div> <div style="display: flex;align-items: center;justify-content: center;margin-bottom: -30px;margin-top: 10px"> <el-button type="primary" v-if="selectedObj.id !== 1" style="width: 80px" @click="back">上一步</el-button> - <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.status ===1 && selectedObj.id !==4 && newProgress !== 4" @click="save">保存</el-button> - <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.status !==1 && newProgress !== 4 " @click="clickEdit">变更</el-button> + <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.status ===1 && selectedObj.id !==4 && selectedObj.id !==3 && newProgress !== 4" @click="save">保存</el-button> + <el-button type="warning" style="width: 110px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.id !==4 && (selectedObj.id ===3 && selectedObj.status !==2) && newProgress !== 4" @click="confirmApproval">确认生成审批单</el-button> + <el-button type="warning" style="width: 80px" v-if="projectStatus === 'view' || selectedObj.id ===3 && selectedObj.status === 2" @click="viewWord">查看审批单</el-button> + <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.status !==1 && selectedObj.id !==3 && newProgress !== 4 " @click="clickEdit">变更</el-button> <el-button type="warning" style="width: 80px" v-if="selectedObj.id === 4 && selectedObj.status === 1 && newProgress !== 4" @click="confirm">确认完结</el-button> <el-button type="primary" style="width: 80px" v-if="selectedObj.id !== 4" @click="next">下一步</el-button> + </div> </div> </el-card> @@ -46,7 +49,7 @@ <script setup> -import {onMounted, ref} from "vue"; +import {nextTick, onMounted, ref} from "vue"; import status0Png from '@/assets/images/status0.png' import status1Png from '@/assets/images/status1.png' import status2Png from '@/assets/images/status2.png' @@ -57,6 +60,7 @@ import archive from './components/projectArchive.vue' import {ElMessage} from "element-plus"; import {get} from "@vueuse/core"; +import {getProjectInfo} from "@/api/projectManage"; const selectedObj = ref({}) const nextObj = ref({}) @@ -125,6 +129,10 @@ const save = () => { goRouter(selectedObj.value.id,'add') } +const confirmApproval = () => { + goRouter(selectedObj.value.id,'confirmApproval') +} + const goRouter = (selectId,type) => { switch (selectId){ @@ -136,91 +144,135 @@ } break; case 2: - if(type === 'add' || type === 'clickEdit'){ - expertRef.value.riskOpen(type,projectId.value); + if(type === 'add' || type === 'clickEdit' || type === 'backTwo'){ + if(type === 'backTwo'){ + expertRef.value.riskOpen('detail',projectId.value); + }else { + expertRef.value.riskOpen(type,projectId.value); + } }else if(projectStatus.value === 'view' || projectStatus.value === 'edit' || projectStatus.value === 'add'){ expertRef.value.riskOpen('detail',projectId.value); } break; case 3: - if(type === 'add' || type === 'clickEdit'){ - approvalRef.value.riskOpen(type,projectId.value); + if(type === 'add' || type === 'clickEdit' || type === 'confirmApproval' || type === 'viewWord'){ + approvalRef.value.riskOpen(type,projectId.value); }else if(projectStatus.value === 'view' || projectStatus.value === 'edit' || projectStatus.value === 'add'){ - approvalRef.value.riskOpen('detail',projectId.value); + if(projectStatus.value === 'view'){ + approvalRef.value.riskOpen('view',projectId.value); + }else{ + approvalRef.value.riskOpen('detail',projectId.value); + } } break; case 4: if(type === 'add' || type === 'clickEdit' || type === 'confirm'){ archiveRef.value.riskOpen(type,projectId.value); } else if(projectStatus.value === 'view' || projectStatus.value === 'edit' || projectStatus.value === 'add'){ - archiveRef.value.riskOpen('detail',projectId.value); + if(projectStatus.value === 'view'){ + archiveRef.value.riskOpen('view',projectId.value); + }else{ + archiveRef.value.riskOpen('detail',projectId.value); + } } break; } } -const getStatus = (id) => { +const getStatus = async (id) => { //projectId 项目id,根据id获取当前状态 projectId.value = Number(id) - //调接口 - const res = projectId.value - //当前项目状态,编辑、查看的时候定位到最新状态 - newProgress.value = res - menuList.value.forEach(item => { - if(projectStatus.value === 'edit'){ - if(item.id <= res){ - item.status = 2 + const res = await getProjectInfo(projectId.value) + if(res.code === 200) { + //当前项目状态,编辑、查看的时候定位到最新状态 + newProgress.value = res.data.step + menuList.value.forEach(item => { + if(projectStatus.value === 'edit'){ + if(item.id <= newProgress.value){ + item.status = 2 + } + if(item.id == newProgress.value){ + selectedObj.value =item + setTimeout(() => { + goRouter(selectedObj.value.id) + }, 10) + } + if(item.id == newProgress.value +1){ + item.status = 1 + } + }else if(projectStatus.value === 'view'){ + if(item.id <= newProgress.value){ + item.status = 2 + } + if(item.id == newProgress.value){ + selectedObj.value =item + setTimeout(() => { + goRouter(selectedObj.value.id) + }, 10) + } } - if(item.id == res){ + if( newProgress.value == 4 && item.id == 4){ + item.status = 2 selectedObj.value =item setTimeout(() => { goRouter(selectedObj.value.id) }, 10) } - if(item.id == res +1){ - item.status = 1 - } - }else if(projectStatus.value === 'view'){ - if(item.id <= res){ - item.status = 2 - } - if(item.id == res){ - selectedObj.value =item - setTimeout(() => { - goRouter(selectedObj.value.id) - }, 10) - } - } - if(res == 4 && item.id == 4){ - item.status = 2 - selectedObj.value =item - setTimeout(() => { - goRouter(selectedObj.value.id) - }, 10) - } - }) + }) + } + else { + ElMessage.warning(res.message) + } console.log('menuList.value',menuList.value) } -const getNextStatus = (id) => { - //projectId 项目id,根据id获取当前状态 +const getNextStatus = async (id) => { projectId.value = Number(id) //调接口 - const res = projectId.value - newProgress.value = res - //定位到下一步状态 - menuList.value.forEach(item => { - if(item.id <= res){ - item.status = 2 - }else if(item.id == res + 1){ - item.status = 1 - selectedObj.value =item - } + const res = await getProjectInfo(projectId.value) + if(res.code === 200) { + newProgress.value = res.data.step + //定位到下一步状态 + menuList.value.forEach(item => { + if(item.id <= newProgress.value){ + item.status = 2 + }else if(item.id == newProgress.value + 1){ + item.status = 1 + selectedObj.value =item + } - if(res == 4 && item.id == 4){ - item.status = 2 - selectedObj.value =item - } - }) + if( newProgress.value == 4 && item.id == 4){ + item.status = 2 + selectedObj.value =item + } + }) + }else { + ElMessage.warning(res.message) + } + +} + +const backStatus = async (id) => { + projectId.value = Number(id) + const res = await getProjectInfo(projectId.value) + if(res.code === 200) { + newProgress.value = res.data.step + //审核不通过状态回到第二步定位到2 + menuList.value.forEach(item => { + if(item.id == newProgress.value){ + selectedObj.value =item + } + if(item.id <= newProgress.value){ + item.status = 2 + }else if(item.id == newProgress.value + 1){ + item.status = 1 + }else if(item.id > newProgress.value + 1){ + item.status = 0 + } + }) + await nextTick(() => { + goRouter(selectedObj.value.id,'backTwo') + }) + } } const confirm = () => { @@ -277,6 +329,11 @@ const clickEdit = () => { goRouter(selectedObj.value.id,'clickEdit') } + +const viewWord = () => { + goRouter(selectedObj.value.id,'viewWord') +} + const clickMenu = (item) => { if(item.status == 0){ setTimeout(() => { -- Gitblit v1.9.2