From ea55fc721eae712a4e7d103ba9cc569518f096f1 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Fri, 14 Jun 2024 09:35:14 +0800
Subject: [PATCH] bug修改
---
src/views/safetyReview/projectManage/process.vue | 306 ++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 267 insertions(+), 39 deletions(-)
diff --git a/src/views/safetyReview/projectManage/process.vue b/src/views/safetyReview/projectManage/process.vue
index 970b2a2..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">
@@ -38,17 +40,26 @@
<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 === 2" @getNextStatus="getNextStatus"></rickAnalysis>
+ <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" :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>
@@ -65,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"
@@ -74,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";
@@ -82,7 +93,16 @@
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([
{
@@ -197,12 +217,23 @@
const evalPlanRef = ref()
const employNoticeRcdRef = ref()
const siteCheckRcdRef = ref()
-const isShowMenu = ref(false);
+const innerReviewRef = ref()
+const techReviewRef = ref()
+const uploadReviewRef = ref()
+const rateConRef = ref()
+const proCtrlRef = ref()
+const proArchRef = ref()
+const signConfirmRef = ref()
+const confirmEndRef = ref()
+
+const isShowMenu = ref(false)
const selectedObj = ref({})
-const middleHeight = ref(0);
-const middleContentHeight = ref(0);
-const projectId = ref();
-const projectStatus = ref();
+const middleHeight = ref(0)
+const middleContentHeight = ref(0)
+const projectId = ref()
+const projectStatus = ref()
+const toPath = ref();
+const reportProcess = ref();
onMounted(() => {
middleHeight.value = window.innerHeight - 250;
middleContentHeight.value = window.innerHeight - 385;
@@ -214,6 +245,8 @@
if(route.query.type !== 'add'){
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;
@@ -233,6 +266,11 @@
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){
@@ -260,6 +298,7 @@
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
@@ -282,6 +321,7 @@
menuList.value[0].status = 2;
menuList.value[1].status = 1;
console.log("menu22",menuList.value)
+
}
if(res.data >= 6 && res.data <= 9){
setMenuList(0);
@@ -349,6 +389,8 @@
if(res.data === 11){
menuList.value[3].subMenus[1].status = 3;
}
+ let twelveObj = {};
+ let thirteenObj = {};
menuList.value[4].subMenus.forEach(item => {
if(item.id <= res.data) {
item.status = 2
@@ -376,9 +418,22 @@
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)
+ }
}
+ if(toPath.value && toPath.value === 'toFive' && fiveObj){
+ chooseSubMenu(fiveObj,true)
+ }
+
}else{
ElMessage.warning(res.message)
}
@@ -396,6 +451,7 @@
link.click()
}
+const sixBtn = ref("");
const chooseSubMenu = (val,flag) => {
if(val.status === 0) {
setTimeout(() => {
@@ -409,6 +465,7 @@
setTimeout(() => {
isShowMenu.value = false;
selectedObj.value = val;
+
}, 10)
}else if(val.status === 2){
setTimeout(() => {
@@ -439,17 +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;
- // if(flag){
- // setTimeout(() => {
- // goRouter(selectedObj.value.id)
- // }, 10)
- // }
//跳转
}, 10)
}
@@ -467,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({
@@ -482,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);
@@ -520,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){
@@ -647,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:
@@ -695,36 +784,162 @@
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;
}
@@ -748,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;
@@ -771,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;
@@ -788,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;
@@ -819,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;
@@ -835,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{
@@ -855,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);
@@ -880,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;
@@ -902,6 +1129,7 @@
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
+ font-size: 16px;
}
--
Gitblit v1.9.2