From ae7eec6950473ce1eb8334ffbd598ac5b08b3734 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 13 十一月 2024 17:28:26 +0800 Subject: [PATCH] 项目管理 --- src/views/safetyReview/projectManage/process.vue | 1083 ++++++++++---------------------------------------------- 1 files changed, 202 insertions(+), 881 deletions(-) diff --git a/src/views/safetyReview/projectManage/process.vue b/src/views/safetyReview/projectManage/process.vue index d0a9785..83c6b5c 100644 --- a/src/views/safetyReview/projectManage/process.vue +++ b/src/views/safetyReview/projectManage/process.vue @@ -1,15 +1,14 @@ <template> <div class="process-container"> <div class="flow"> - <div class="content" :class="{show: isShowMenu}" > - <div class="content-middle" @click="clickMenu(true)"> + <div class="content" > + <div class="content-middle"> <div class="project-title"> -<!-- <img :src="projectPng">--> <span>项目</span> <span>阶段</span> </div> <div v-for="item in menuList" :key="item.id" style="flex: 1" :class="{choose: item.status === 1 || item.status === 2}"> - <div class="header-item"> + <div class="header-item" @click="clickMenu(item)"> <div class="item-content"> <img v-if="item.status === 0" :src="status0Png"> <img v-else-if="item.status === 1" :src="status1Png"> @@ -17,226 +16,62 @@ <span class="text-eclipse" style="margin-left: 5px">{{item.name}}</span> </div> </div> - <div v-for="child in item.subMenus" :key="child.id" @click="chooseSubMenu(child,true)"> - <div class="down-item" :class="{itemActive: child.status === 1 || child.status === 3, itemPrev: child.status === 2}"> - <div class="item-icon-status0" v-if="child.status === 0">{{child.id}}</div> - <div class="item-icon-status0 item-icon-status1" v-else-if="child.status === 1 || (selectedObj.status === 3 && child.id === selectedObj.id)">{{child.id}}</div> - <div class="item-icon-status0 item-icon-status2" v-else-if="child.status === 2 "><img :src="itemStatus2Png"></div> - <div class="item-icon-status0 item-icon-status4 " v-else-if="nextObj.status === 4 && child.id === nextObj.id">{{child.id}}</div> - <div class="text-eclipse" style="margin-right: 15%">{{child.name}}</div> - <div v-if="child.status === 1 || (selectedObj.status === 1 && child.id ===selectedObj.id)" class="item-icon-status0 item-icon-status2"><img :src="status1Png"></div> - <div v-if="nextObj.status === 4 && child.id === nextObj.id" class="item-icon-status0 item-icon-status4" ><img :src="status1Png"></div> - </div> - <div></div> - </div> </div> </div> - <div class="content-bottom" @click="clickMenu(false)"></div> </div> </div> - <div class="middle" :style="'height:' + middleHeight + 'px'"> <el-card> <div class="card-header">{{selectedObj.id}}- {{selectedObj.name}}</div> <div class="card-content"> <div :style="'height:' + middleContentHeight + 'px'" style="overflow-y: scroll;"> - <rickAnalysis ref="riskRef" v-if="selectedObj.id === 1" @getNextStatus="getNextStatus"></rickAnalysis> - <contract-manage ref="contractMngRef" v-if="selectedObj.id === 2" @getNextStatus="getNextStatus"></contract-manage> - <evaluate-task-notice ref="evaluteRef" v-if="selectedObj.id === 3" @getNextStatus="getNextStatus"></evaluate-task-notice> - <evaluate-plan ref="evalPlanRef" v-if="selectedObj.id === 4" @getNextStatus="getNextStatus" :projectId="projectId"></evaluate-plan> - <employ-notice-record ref="employNoticeRcdRef" v-if="selectedObj.id === 5" @getNextStatus="getNextStatus" :projectId="projectId"></employ-notice-record> - <site-check-rcd ref="siteCheckRcdRef" v-if="selectedObj.id === 6" @getNextStatus="getNextStatus" :projectId="projectId"></site-check-rcd> - <inner-review ref="innerReviewRef" v-if="selectedObj.id === 7" @getNextStatus="getNextStatus"></inner-review> - <tech-leader-review ref="techReviewRef" v-if="selectedObj.id === 8" @getNextStatus="getNextStatus"></tech-leader-review> - <upload-review-rcd ref="uploadReviewRef" v-if="selectedObj.id === 9" @getNextStatus="getNextStatus" :projectId="projectId"></upload-review-rcd> - <rate-conclusion ref="rateConRef" v-if="selectedObj.id === 10" @getNextStatus="getNextStatus" :projectId="projectId"></rate-conclusion> - <process-ctrl-review ref="proCtrlRef" v-if="selectedObj.id === 11" @getNextStatus="getNextStatus" :projectId="projectId"></process-ctrl-review> - <project-archive ref="proArchRef" v-if="selectedObj.id === 12" @getNextStatus="getNextStatus" :projectId="projectId"></project-archive> - <sign-confirm ref="signConfirmRef" v-if="selectedObj.id === 13" @getNextStatus="getNextStatus" :projectId="projectId"></sign-confirm> - <confirm-end ref="confirmEndRef" v-if="selectedObj.id === 14" @getNextStatus="getNextStatus" :projectId="projectId"></confirm-end> + <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> + <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' && selectedObj.status === 1 && selectedObj.id !== 14)||(projectStatus === 'edit' && selectedObj.status === 1 && selectedObj.id !== 14) " @click="save">保存</el-button> - <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'edit' && selectedObj.status !== 1 && selectedObj.id !== 13 && selectedObj.id !== 14 && reportProcess != 14) || (projectStatus === 'add' && selectedObj.status !== 1 && selectedObj.id !== 14 && reportProcess != 14) " @click="clickEdit">变更</el-button> - <el-button type="warning" style="width: 80px" v-if="selectedObj.id === 14 && selectedObj.status === 1 && reportProcess != 14" @click="confirm">确认完结</el-button> - <el-button type="primary" style="width: 80px" v-if="selectedObj.id !== 14" @click="next">下一步</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="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> </div> - <div class="bottom"> - <el-button type="primary" v-if="selectedObj.id === 3" plain @click="downloadFile"> - 评价任务通知书<el-icon class="el-icon--right"><Download /></el-icon> - </el-button> - <el-button type="primary" v-if="selectedObj.id === 13" plain @click="downloadCommitFile"> - 承诺书<el-icon class="el-icon--right"><Download /></el-icon> - </el-button> - </div> </div> </template> + <script setup> - import {onMounted, ref} from "vue"; -import {ElMessage, ElMessageBox} from "element-plus"; -import rickAnalysis from "./components/riskAnalysis.vue" -import contractManage from "./components/contractManage.vue" -import evaluateTaskNotice from "./components/evaluateTaskNotice.vue" -import {Download} from '@element-plus/icons-vue' -import projectPng from "@/assets/images/project.png" -import status0Png from "@/assets/images/status0.png" -import status1Png from "@/assets/images/status1.png" -import status2Png from "@/assets/images/status2.png" -import itemStatus2Png from "@/assets/images/itemStatus2-1.png" +import status0Png from '@/assets/images/status0.png' +import status1Png from '@/assets/images/status1.png' +import status2Png from '@/assets/images/status2.png' import { useRoute } from 'vue-router' -import {getProjectStatus} from "@/api/projectManage/project" -import ContractManage from "./components/contractManage"; -import EvaluateTaskNotice from "./components/evaluateTaskNotice" -import EvaluatePlan from "./components/evaluatePlan"; -import EmployNoticeRecord from "./components/employNoticeRecord" -import SiteCheckRcd from "./components/siteCheckRcd" -import InnerReview from "./components/innerReview" -import TechLeaderReview from "./components/techLeaderReview" -import UploadReviewRcd from "./components/uploadReviewRcd" -import RateConclusion from "./components/rateConclusion" -import ProcessCtrlReview from "./components/processCtrlReview" -import ProjectArchive from "./components/projectArchive" -import SignConfirm from "./components/signConfirm" -import ConfirmEnd from "./components/confirmEnd" -import Cookies from "js-cookie" -import {delMonitor} from "@/api/sysUsers"; -const route = useRoute() -const menuList = ref([ - { - id: 'a', - name: '风险分析及计划评价', - status: 1 , - subMenus: [ - { - id: 1, - name: '项目风险分析', - status: 1 // 0:未完成,1:选中待完成,2:已完成 ,3:选中已完成,4:未选中待完成 - }, - { - id: 2, - name: '合同管理', - status: 0 - }, - { - id: 3, - name: '评价任务通知', - status: 0 - }, - { - id: 4, - name: '评价项目计划', - status: 0 - }, - ] - }, - { - id: 'b', - name: '现场勘验', - status: 0, - subMenus: [ - { - id: 5, - name: '从业告知', - status: 0 - }, - { - id: 6, - name: '现场勘验', - status: 0 - }, - ] - }, - { - id: 'c', - name: '项目审核', - status: 0, - subMenus: [ - { - id: 7, - name: '内部审核', - status: 0 - }, - { - id: 8, - name: '技术负责人审核', - status: 0 - }, - { - id: 9, - name: '审核记录', - status: 0 - }, - ] - }, - { - id: 'd', - name: '出具报告', - status: 0, - subMenus: [ - { - id: 10, - name: '评价结论', - status: 0 - }, - { - id: 11, - name: '过程控制负责人审核', - status: 0 - } - ] - }, - { - id: 'e', - name: '项目归档', - status: 0, - subMenus: [ - { - id: 12, - name: '项目归档', - status: 0 - }, - { - id: 13, - name: '签字确认', - status: 0 - }, - { - id: 14, - name: '确认完结', - status: 0 - }, - ] - }, -]) -const riskRef = ref(); -const contractMngRef = ref() -const evaluteRef = ref() -const evalPlanRef = ref() -const employNoticeRcdRef = ref() -const siteCheckRcdRef = ref() -const innerReviewRef = ref() -const techReviewRef = ref() -const uploadReviewRef = ref() -const rateConRef = ref() -const proCtrlRef = ref() -const proArchRef = ref() -const signConfirmRef = ref() -const confirmEndRef = ref() +import basicInfo from './components/basicInfo.vue' +import expert from './components/chooseExpert.vue' +import approval from './components/projectApproval.vue' +import archive from './components/projectArchive.vue' +import {ElMessage} from "element-plus"; +import {get} from "@vueuse/core"; -const isShowMenu = ref(false) const selectedObj = ref({}) +const nextObj = ref({}) const middleHeight = ref(0) const middleContentHeight = ref(0) -const projectId = ref() const projectStatus = ref() -const toPath = ref(); -const reportProcess = ref(); +const projectId = ref() +const route = useRoute() +const basicRef = ref() +const expertRef = ref() +const approvalRef = ref() +const archiveRef = ref() +const newProgress = ref() + + onMounted(() => { middleHeight.value = window.innerHeight - 250; middleContentHeight.value = window.innerHeight - 385; @@ -246,713 +81,213 @@ middleContentHeight.value = window.innerHeight - 385; }; if(route.query.type !== 'add'){ + //编辑or查看 projectStatus.value = route.query.type; projectId.value = route.query.id; - toPath.value = route.query.toPath; - reportProcess.value = route.query.process; - getStatus(projectId.value); + console.log('projectId.valu',projectId.value) + // toPath.value = route.query.toPath; + newProgress.value = route.query.process; + getStatus(projectId.value) }else { + //新增 projectStatus.value = route.query.type; selectedObj.value = { id: 1, - name: '项目风险分析', + name: '基本信息', status: 1 } } }); -const nextObj = ref({}) -const setMenuList = (id) => { - menuList.value[id].subMenus.forEach(item => { - item.status = 2; - }) + +const menuList = ref([ + { + id: 1, + name: '基本信息', + status: 1 , + }, + { + id: 2, + name: '专家选用', + status: 0 , + }, + { + id: 3, + name: '项目审批', + status: 0 , + }, + { + id: 4, + name: '项目归档', + status: 0 , + }, +]) + +const save = () => { + goRouter(selectedObj.value.id,'add') } -const getStatus = async (projectId) => { - const res = await getProjectStatus(projectId); - if(res.code == 200){ - reportProcess.value = res.data - let fiveObj = {} - if(toPath.value && toPath.value === 'toFive' ){ - fiveObj = menuList.value[1].subMenus[0] - } - if(res.data <= 4 ){ - menuList.value[0].subMenus.forEach(item => { - if(item.id <= res.data){ - item.status = 2 - } - if(projectStatus.value !== 'view'){ - if(item.id === res.data + 1){ - item.status = 4; - nextObj.value = item; - } - } - if(item.id === res.data){ - item.status = 3; - selectedObj.value =item; - setTimeout(() => { - goRouter(selectedObj.value.id) - }, 10) - } - }) - menuList.value[0].status = 1; - console.log("menu11",menuList.value) - } - if(res.data >=4 && res.data <=6){ - setMenuList(0) - if(res.data === 4){ - menuList.value[0].subMenus[3].status = 3; - } - menuList.value[1].subMenus.forEach(item => { - if(item.id <= res.data) { - item.status = 2 - } - if(projectStatus.value !== 'view'){ - if(item.id === res.data + 1){ - item.status = 4; - nextObj.value = item; - } - } - if(item.id === res.data){ - item.status = 3; - selectedObj.value =item; - - setTimeout(() => { - goRouter(selectedObj.value.id) - }, 10) - } - }) - menuList.value[0].status = 2; - menuList.value[1].status = 1; - console.log("menu22",menuList.value) - - } - if(res.data >= 6 && res.data <= 9){ - setMenuList(0); - setMenuList(1); - if(res.data === 6){ - menuList.value[1].subMenus[1].status = 3; +const goRouter = (selectId,type) => { + switch (selectId){ + case 1: + if(type === 'add' || type === 'clickEdit'){ + basicRef.value.riskOpen(type,projectId.value); + }else if(projectStatus.value === 'view' || projectStatus.value === 'edit' || projectStatus.value === 'add'){ + basicRef.value.riskOpen('detail',projectId.value); } - menuList.value[2].subMenus.forEach(item => { - if(item.id <= res.data) { - item.status = 2 - } - if(projectStatus.value !== 'view'){ - if(item.id === res.data + 1){ - item.status = 4; - nextObj.value = item; - } - } - if(item.id === res.data){ - item.status = 3; - selectedObj.value =item; - setTimeout(() => { - goRouter(selectedObj.value.id) - }, 10) - } - }) - menuList.value[0].status = 2; - menuList.value[1].status = 2; - menuList.value[2].status = 1; - } - if(res.data >= 9 && res.data <=11){ - setMenuList(0); - setMenuList(1); - setMenuList(2); - if(res.data === 9){ - menuList.value[2].subMenus[2].status = 3; + break; + case 2: + if(type === 'add' || type === 'clickEdit'){ + expertRef.value.riskOpen(type,projectId.value); + }else if(projectStatus.value === 'view' || projectStatus.value === 'edit' || projectStatus.value === 'add'){ + expertRef.value.riskOpen('detail',projectId.value); } - menuList.value[3].subMenus.forEach(item => { - if(item.id <= res.data) { - item.status = 2 - } - if(projectStatus.value !== 'view'){ - if(item.id === res.data + 1){ - item.status = 4; - nextObj.value = item; - } - } - if(item.id === res.data){ - item.status = 3; - selectedObj.value =item; - setTimeout(() => { - goRouter(selectedObj.value.id) - }, 10) - } - }) - menuList.value[0].status = 2; - menuList.value[1].status = 2; - menuList.value[2].status = 2; - menuList.value[3].status = 1; - } - if(res.data >= 11){ - setMenuList(0); - setMenuList(1); - setMenuList(2); - setMenuList(3); - if(res.data === 11){ - menuList.value[3].subMenus[1].status = 3; + break; + case 3: + if(type === 'add' || type === 'clickEdit'){ + approvalRef.value.riskOpen(type,projectId.value); + }else if(projectStatus.value === 'view' || projectStatus.value === 'edit' || projectStatus.value === 'add'){ + approvalRef.value.riskOpen('detail',projectId.value); } - let twelveObj = {}; - let thirteenObj = {}; - menuList.value[4].subMenus.forEach(item => { - if(item.id <= res.data) { - item.status = 2 - } - if(projectStatus.value !== 'view'){ - if(item.id === res.data + 1){ - item.status = 4; - nextObj.value = item; - } - } - if(item.id === res.data){ - item.status = 3; - selectedObj.value =item; - setTimeout(() => { - goRouter(selectedObj.value.id) - }, 10) - } - menuList.value[0].status = 2; - menuList.value[1].status = 2; - menuList.value[2].status = 2; - menuList.value[3].status = 2; - menuList.value[4].status = 1; - if(res.data === 14 && res.data === item.id){ - item.status = 3; - menuList.value[4].status = 2; - selectedObj.value =item; - } - if(toPath.value && toPath.value === 'toTwelve' && item.id === 12){ - twelveObj = item; - }else if(toPath.value && toPath.value === 'toThirteen' && item.id === 13){ - thirteenObj = item; - } - }) - if(toPath.value && toPath.value === 'toTwelve' && twelveObj){ - chooseSubMenu(twelveObj,true) - }else if(toPath.value && toPath.value === 'toThirteen' && thirteenObj){ - chooseSubMenu(thirteenObj,true) + 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(toPath.value && toPath.value === 'toFive' && fiveObj){ - chooseSubMenu(fiveObj,true) - } - - }else{ - ElMessage.warning(res.message) + break; } } -const clickMenu = (val) => { - isShowMenu.value = !isShowMenu.value -} - -const downloadFile = () => { - const link = document.createElement('a') - link.href = 'files/evaluateNotice.doc' - link.target = '_blank' - link.download = '评价任务通知书.doc' - link.click() -} -const downloadCommitFile = () => { - const link = document.createElement('a') - link.href = 'files/commitLetter.doc' - link.target = '_blank' - link.download = '承诺书.doc' - link.click() -} - - -const sixBtn = ref(""); -const chooseSubMenu = (val,flag) => { - if(val.status === 0) { - setTimeout(() => { - isShowMenu.value = false; - ElMessage({ - type: 'warning', - message: '请按顺序操作,未完成步骤无法查看!' - }); - }, 10) - }else if(val.status === 1){ - setTimeout(() => { - isShowMenu.value = false; - selectedObj.value = val; - - }, 10) - }else if(val.status === 2){ - setTimeout(() => { - isShowMenu.value = false; - if((val !== selectedObj.value && nextObj.value === selectedObj.value) || nextObj.value === selectedObj.value){ - nextObj.value = selectedObj.value; +const getStatus = (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 } - if(nextObj.value !== val) { - selectedObj.value.status = 2 + if(item.id == res){ + selectedObj.value =item + setTimeout(() => { + goRouter(selectedObj.value.id) + }, 10) } - - selectedObj.value = val; - selectedObj.value.status = 3; - nextObj.value.status = 4; - //跳转 - }, 10) - if(flag){ + 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) } + }) + console.log('menuList.value',menuList.value) +} +const getNextStatus = (id) => { + //projectId 项目id,根据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 + } - }else if (val.status === 3) { - setTimeout(() => { - isShowMenu.value = false; - selectedObj.value = val; - //跳转 - }, 10) - }else if (val.status === 4) { - setTimeout(() => { - if(val.id === 6){ - sixBtn.value = Cookies.get('btn') + if(res == 4 && item.id == 4){ + item.status = 2 + selectedObj.value =item + } + }) +} + +const confirm = () => { + goRouter(selectedObj.value.id,'confirm') +} +const back = () => { + backMenu() +} +const backMenu = () => { + let nextItem = {} + menuList.value.forEach(item => { + if(item.id === selectedObj.value.id - 1){ + nextItem = item + } + }) + chooseSubMenu(nextItem); +} + +const next = () => { + let nextObj = {} + if(projectStatus.value == 'view'){ + menuList.value.forEach(item => { + if(item.id == selectedObj.value.id +1){ + nextObj = item } - console.log('sixBtn.value',sixBtn.value) - isShowMenu.value = false; - nextObj.value = selectedObj.value; - selectedObj.value = val; - selectedObj.value.status = 1; - nextObj.value.status = 2; - nextObj.value = val; - //跳转 + }) + } + if(selectedObj.value.status != 2 || (projectStatus.value == 'view' && nextObj.status == 0) ){ + ElMessage({ + type: 'warning', + message: '请按顺序操作,未完成步骤无法查看!' + }); + } else { + nextMenu() + } +} +const nextMenu = () => { + let nextItem = {} + menuList.value.forEach(item => { + if(item.id === selectedObj.value.id + 1){ + nextItem = item + } + }) + chooseSubMenu(nextItem); +} +const chooseSubMenu = (val) => { + selectedObj.value = val; + if(val.status == 2){ + setTimeout(() => { + goRouter(selectedObj.value.id) }, 10) } } -const next = () => { - if(selectedObj.value.status === 3){ - if(selectedObj.value.id + 1 <= 4){ - nextMenu(0) - }else if (selectedObj.value.id+ 1 >4 && selectedObj.value.id+ 1 <= 6){ - nextMenu(1) - }else if (selectedObj.value.id+ 1 >6 && selectedObj.value.id+ 1 <= 9){ - nextMenu(2) - }else if (selectedObj.value.id+ 1 >9 && selectedObj.value.id+ 1 <= 11){ - nextMenu(3) - }else if (selectedObj.value.id+ 1 >11){ - nextMenu(4) - } - }else if(selectedObj.value.id === 6){ - if(selectedObj.value.id === 6) { - ElMessageBox.confirm( - '确定结束现场勘验?', - '提示', - { - confirmButtonText: '确定', - cancelButtonText: '取消', - type: 'warning', - }) - .then( async() => { - goRouter(selectedObj.value.id,'sixEnd') - }) - } - } else { +const clickEdit = () => { + goRouter(selectedObj.value.id,'clickEdit') +} +const clickMenu = (item) => { + if(item.status == 0){ setTimeout(() => { - isShowMenu.value = false; ElMessage({ type: 'warning', message: '请按顺序操作,未完成步骤无法查看!' }); }, 10) - } - // - // setTimeout( () => { - // goRouter(selectedObj.value.id) - // }, 100) -} + } else { + chooseSubMenu(item) -const nextMenu = (id) => { - menuList.value[id].subMenus.forEach( item => { - if(item.id === selectedObj.value.id + 1){ - chooseSubMenu(item,true); - } - }) -} - -const backMenu = (id) => { - menuList.value[id].subMenus.forEach(async item => { - if(item.id === selectedObj.value.id - 1){ - await chooseSubMenu(item,true); - } - }) -} - -//上一步——回退(查看详情) -const back = () => { - if(selectedObj.value.id-1 <= 4){ - backMenu(0) - }else if (selectedObj.value.id-1 >4 && selectedObj.value.id-1 <= 6){ - backMenu(1) - }else if (selectedObj.value.id-1 >6 && selectedObj.value.id-1 <= 9){ - backMenu(2) - }else if (selectedObj.value.id-1 >9 && selectedObj.value.id-1 <= 11){ - backMenu(3) - }else if (selectedObj.value.id-1 >11){ - backMenu(4) - } - // setTimeout( () => { - // goRouter(selectedObj.value.id) - // }, 100) - -} -const clickEdit = () => { - goRouter(selectedObj.value.id,'clickEdit') -} -const getNextStatus = async (val) => { - projectId.value = val - const res = await getProjectStatus(val); - if(res.code == 200){ - reportProcess.value = res.data - if(res.data <=4){ - menuList.value[0].subMenus.forEach(item => { - if(item.id <= res.data){ - item.status = 2 - } - if(item.id === res.data + 1){ - item.status = 1; - selectedObj.value =item; - nextObj.value = item; - } - // else if(item.id === res.data ){ - // item.status = 3; - // selectedObj.value =item; - // }else if(item.id === res.data + 1){ - // item.status = 4; - // nextObj.value = item; - // } - }) - menuList.value[0].status = 1; - console.log("menu11",menuList.value) - } - if(res.data >=4 && res.data<=6){ - setMenuList(0) - menuList.value[1].subMenus.forEach(item => { - if(item.id <= res.data) { - item.status = 2 - } - if(item.id === res.data + 1){ - item.status = 1; - selectedObj.value =item; - nextObj.value = item; - } - // if(item.id === res.data){ - // item.status = 3; - // selectedObj.value =item; - // } - }) - menuList.value[0].status = 2; - menuList.value[1].status = 1; - console.log("menu22",menuList.value) - } - if(res.data >= 6 && res.data <= 9){ - setMenuList(0); - setMenuList(1); - menuList.value[2].subMenus.forEach(item => { - if(item.id <= res.data) { - item.status = 2 - } - if(item.id === res.data + 1){ - item.status = 1; - selectedObj.value =item; - nextObj.value = item; - } - // if(item.id === res.data){ - // item.status = 3; - // selectedObj.value =item; - // } - }) - menuList.value[0].status = 2; - menuList.value[1].status = 2; - menuList.value[2].status = 1; - } - if(res.data >= 9 && res.data <=11){ - setMenuList(0); - setMenuList(1); - setMenuList(2); - menuList.value[3].subMenus.forEach(item => { - if(item.id <= res.data) { - item.status = 2 - } - if(item.id === res.data + 1){ - item.status = 1; - selectedObj.value =item; - nextObj.value = item; - } - // if(item.id === res.data){ - // item.status = 3; - // selectedObj.value =item; - // } - }) - menuList.value[0].status = 2; - menuList.value[1].status = 2; - menuList.value[2].status = 2; - menuList.value[3].status = 1; - } - if(res.data >= 11){ - setMenuList(0); - setMenuList(1); - setMenuList(2); - setMenuList(3); - // if(res.data === 11){ - // menuList.value[3].subMenus[1].status = 3; - // } - menuList.value[4].subMenus.forEach(item => { - if(item.id <= res.data) { - item.status = 2 - } - if(item.id === res.data + 1){ - item.status = 1; - selectedObj.value =item; - nextObj.value = item; - } - // if(item.id === res.data){ - // item.status = 3; - // selectedObj.value =item; - // } - menuList.value[0].status = 2; - menuList.value[1].status = 2; - menuList.value[2].status = 2; - menuList.value[3].status = 2; - menuList.value[4].status = 1; - if(res.data === 14 && res.data === item.id){ - item.status = 3; - menuList.value[4].status = 2; - selectedObj.value =item; - } - }) - - } - } -} - -const save = () => { - // if(selectedObj.value.id === 6) { - // ElMessageBox.confirm( - // '确定结束现场勘验?', - // '提示', - // { - // confirmButtonText: '确定', - // cancelButtonText: '取消', - // type: 'warning', - // }) - // .then( async() => { - // goRouter(selectedObj.value.id,'add') - // }) - // }else { - goRouter(selectedObj.value.id,'add') - // } - - -} -const confirm = () => { - goRouter(selectedObj.value.id,'confirm') -} - -const goRouter = (val,type) => { - switch (val){ - case 1: - if(type === 'add'){ - riskRef.value.riskOpen('add',''); - }else if (type === 'clickEdit'){ - riskRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - riskRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - riskRef.value.riskOpen('edit',projectId.value); - } - } - console.log("1") - break; - case 2: - if(type === 'add'){ - contractMngRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - contractMngRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - contractMngRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - contractMngRef.value.riskOpen('edit',projectId.value); - } - } - console.log("2") - break; - case 3: - if(type === 'add'){ - evaluteRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - evaluteRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - evaluteRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - evaluteRef.value.riskOpen('edit',projectId.value); - } - } - console.log("3") - break; - case 4: - if(type === 'add'){ - evalPlanRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - evalPlanRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - evalPlanRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - evalPlanRef.value.riskOpen('edit',projectId.value); - } - } - console.log("4") - break; - case 5: - if(type === 'add'){ - employNoticeRcdRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - employNoticeRcdRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - employNoticeRcdRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - employNoticeRcdRef.value.riskOpen('edit',projectId.value); - } - } - console.log("5") - break; - case 6: - if(type === 'add'){ - siteCheckRcdRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - siteCheckRcdRef.value.riskOpen('clickEdit',projectId.value); - }else if (type === 'sixEnd'){ - siteCheckRcdRef.value.riskOpen('sixEnd',projectId.value); - } else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - siteCheckRcdRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - siteCheckRcdRef.value.riskOpen('edit',projectId.value); - } - } - console.log("6") - break; - case 7: - if(type === 'add'){ - innerReviewRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - innerReviewRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - innerReviewRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - innerReviewRef.value.riskOpen('edit',projectId.value); - } - } - console.log("7") - break; - case 8: - if(type === 'add'){ - techReviewRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - techReviewRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - techReviewRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - techReviewRef.value.riskOpen('edit',projectId.value); - } - } - console.log("8") - break; - case 9: - if(type === 'add'){ - uploadReviewRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - uploadReviewRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - uploadReviewRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - uploadReviewRef.value.riskOpen('edit',projectId.value); - } - } - console.log("9") - break; - case 10: - if(type === 'add'){ - rateConRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - rateConRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - rateConRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - rateConRef.value.riskOpen('edit',projectId.value); - } - } - console.log("10") - break; - case 11: - if(type === 'add'){ - proCtrlRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - proCtrlRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - proCtrlRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - proCtrlRef.value.riskOpen('edit',projectId.value); - } - } - console.log("11") - break; - case 12: - if(type === 'add'){ - proArchRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - proArchRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - proArchRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - proArchRef.value.riskOpen('edit',projectId.value); - } - } - console.log("12") - break; - case 13: - if(type === 'add'){ - signConfirmRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - signConfirmRef.value.riskOpen('clickEdit',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - signConfirmRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - signConfirmRef.value.riskOpen('edit',projectId.value); - } - } - console.log("13") - break; - case 14: - if(type === 'add'){ - confirmEndRef.value.riskOpen('add',projectId.value); - }else if (type === 'clickEdit'){ - confirmEndRef.value.riskOpen('clickEdit',projectId.value); - } - else if (type === 'confirm'){ - confirmEndRef.value.riskOpen('confirm',projectId.value); - }else { - if(projectStatus.value === 'view' || projectStatus.value === 'add'){ - confirmEndRef.value.riskOpen('detail',projectId.value); - }else if(projectStatus.value === 'edit'){ - confirmEndRef.value.riskOpen('edit',projectId.value); - } - } - console.log("14") - break; } } @@ -1131,19 +466,5 @@ display: none; } } - .bottom{ - height: 60px; - background: rgb(255, 255, 255); - padding: 9px 10px; - } - .text-eclipse{ - overflow: hidden; - white-space: nowrap; - text-overflow: ellipsis; - font-size: 16px; - } - - } - </style> -- Gitblit v1.9.2