From bcc1ce55aa699450905c68f957198428ed251c48 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期三, 12 六月 2024 17:17:35 +0800 Subject: [PATCH] 项目补录 --- src/views/safetyReview/projectManage/process.vue | 227 ++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 194 insertions(+), 33 deletions(-) diff --git a/src/views/safetyReview/projectManage/process.vue b/src/views/safetyReview/projectManage/process.vue index 3cba04f..5f0f05e 100644 --- a/src/views/safetyReview/projectManage/process.vue +++ b/src/views/safetyReview/projectManage/process.vue @@ -3,8 +3,10 @@ <div class="flow"> <div class="content" :class="{show: isShowMenu}" > <div class="content-middle" @click="clickMenu(true)"> - <div style="margin-right:20px;height: 85px;display: flex;align-items: center;flex-shrink: 1;"> - <img :src="projectPng"> + <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"> @@ -41,22 +43,23 @@ <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"></evaluate-plan> - <employ-notice-record ref="employNoticeRcdRef" v-if="selectedObj.id === 5" @getNextStatus="getNextStatus"></employ-notice-record> - <site-check-rcd ref="siteCheckRcdRef" v-if="selectedObj.id === 6" @getNextStatus="getNextStatus"></site-check-rcd> + <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"></upload-review-rcd> - <rate-conclusion ref="rateConRef" v-if="selectedObj.id === 10" @getNextStatus="getNextStatus"></rate-conclusion> - <process-ctrl-review ref="proCtrlRef" v-if="selectedObj.id === 11" @getNextStatus="getNextStatus"></process-ctrl-review> - <project-archive ref="proArchRef" v-if="selectedObj.id === 12" @getNextStatus="getNextStatus"></project-archive> - <sign-confirm ref="signConfirmRef" v-if="selectedObj.id === 13" @getNextStatus="getNextStatus"></sign-confirm> - <confirm-end ref="confirmEndRef" v-if="selectedObj.id === 14" @getNextStatus="getNextStatus"></confirm-end> + <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> </div> - <div style="display: flex;align-items: center;justify-content: center;margin-bottom: -20px"> + <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)||(projectStatus === 'edit' && selectedObj.status === 1) " @click="save">保存</el-button> - <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'edit' && selectedObj.status !== 1) || (projectStatus === 'add' && selectedObj.status !== 1) " @click="clickEdit">变更</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> </div> </div> @@ -73,7 +76,7 @@ <script setup> import {onMounted, ref} from "vue"; -import {ElMessage} from "element-plus"; +import {ElMessage, ElMessageBox} from "element-plus"; import rickAnalysis from "./components/riskAnalysis.vue" import contractManage from "./components/contractManage.vue" import evaluateTaskNotice from "./components/evaluateTaskNotice.vue" @@ -82,7 +85,7 @@ 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.png" +import itemStatus2Png from "@/assets/images/itemStatus2-1.png" import { useRoute } from 'vue-router' import {getProjectStatus} from "@/api/projectManage/project" import ContractManage from "./components/contractManage"; @@ -99,6 +102,7 @@ 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([ { @@ -229,6 +233,7 @@ const projectId = ref() const projectStatus = ref() const toPath = ref(); +const reportProcess = ref(); onMounted(() => { middleHeight.value = window.innerHeight - 250; middleContentHeight.value = window.innerHeight - 385; @@ -241,6 +246,7 @@ projectStatus.value = route.query.type; projectId.value = route.query.id; toPath.value = route.query.toPath; + reportProcess.value = route.query.process; getStatus(projectId.value); }else { projectStatus.value = route.query.type; @@ -260,6 +266,7 @@ 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] @@ -444,6 +451,7 @@ link.click() } +const sixBtn = ref(""); const chooseSubMenu = (val,flag) => { if(val.status === 0) { setTimeout(() => { @@ -488,13 +496,16 @@ }, 10) }else if (val.status === 4) { setTimeout(() => { + if(val.id === 6){ + sixBtn.value = Cookies.get('btn') + } + 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; - Cookies.set('projectId',projectId.value); //跳转 }, 10) } @@ -512,7 +523,21 @@ }else if (selectedObj.value.id+ 1 >11){ nextMenu(4) } - }else { + }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 { setTimeout(() => { isShowMenu.value = false; ElMessage({ @@ -527,7 +552,7 @@ // }, 100) } -const nextMenu = (id) => { +const nextMenu = (id) => { menuList.value[id].subMenus.forEach( item => { if(item.id === selectedObj.value.id + 1){ chooseSubMenu(item,true); @@ -565,10 +590,10 @@ goRouter(selectedObj.value.id,'clickEdit') } const getNextStatus = async (val) => { - projectId.value = val; - console.log("val",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){ @@ -692,9 +717,28 @@ } const save = () => { - goRouter(selectedObj.value.id,'add') + // 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: @@ -740,21 +784,89 @@ 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: @@ -786,12 +898,48 @@ 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; } @@ -815,7 +963,7 @@ max-height: 85px; cursor: pointer; background-color: hsla(0,0%,100%,.97); - background-image: url(../../../assets/images/bg.png); + //background-image: url(../../../assets/images/bg2.png); background-repeat: no-repeat; background-size: 100% 84px; overflow: hidden; @@ -838,7 +986,7 @@ pointer-events: auto; transform: translateX(-50%); width: 118px; - background-image: url(../../../assets/images/back.png); + background-image: url(../../../assets/images/back1.png); } .choose .header-item{ color: #fff; @@ -855,6 +1003,18 @@ display: flex; flex-direction: row; box-shadow: 0 0 18px 3px rgba(145,146,171,.2); + .project-title{ + margin-right: 20px; + height: 85px; + display: flex; + align-items: center; + flex-shrink: 1; + flex-direction: column; + justify-content: center; + font-size: 20px; + font-weight: 700; + color: rgb(255, 140, 138); + } } .header-item{ position: relative; @@ -886,11 +1046,11 @@ font-size: 19px; color: #626c8b; border: 1px solid #fff; - background: rgba(198,230,255,.2); + background: rgba(233 223 211 / 20%); border-radius: 8px; display: flex; align-items: center; - width: 70%; + width: 80%; padding-left: 20px; padding-right: 15px; cursor: pointer; @@ -902,13 +1062,13 @@ line-height: 20px; text-align: center; border-radius: 50%; - background: #b9c2d5; + background: #f3ccb0; margin-right: 10px; min-width: 21px; min-height: 21px; } .item-icon-status1{ - color: #3b75ff; + color: #f17235; background: #fff; } .item-icon-status2{ @@ -922,13 +1082,13 @@ cursor: pointer; color: #fff; border: 1px solid #c6e6ff; - background: linear-gradient(90deg,#57b6ff,#3b75ff); + background: linear-gradient(90deg,rgb(239, 186, 141),rgb(255, 140, 138)); } .itemPrev{ cursor: pointer; - color: #3b75ff; - border: 1px solid #c6e6ff; - background: rgba(198,230,255,.4); + color: #f38323; + border: 1px solid #f5e4cf; + background: rgb(249 210 170 / 40%); } .itemPrev:hover{ transform: scale(1.1); @@ -947,7 +1107,7 @@ padding: 12px 56px; font-size: 18px; color: #fff; - background-image: url(../../../assets/images/cardHeader.png); + background-image: url(../../../assets/images/cardHeader2.png); background-size: 100% 100%; background-repeat: no-repeat; margin: -20px; @@ -969,6 +1129,7 @@ overflow: hidden; white-space: nowrap; text-overflow: ellipsis; + font-size: 16px; } -- Gitblit v1.9.2