From 7446bd01fb7eb8ee4dd80176cd0dd5b049edee99 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: Thu, 18 Jan 2024 16:24:49 +0800
Subject: [PATCH] 新增
---
src/views/safetyReview/projectManage/process.vue | 455 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 267 insertions(+), 188 deletions(-)
diff --git a/src/views/safetyReview/projectManage/process.vue b/src/views/safetyReview/projectManage/process.vue
index 6c50762..2c3a2c9 100644
--- a/src/views/safetyReview/projectManage/process.vue
+++ b/src/views/safetyReview/projectManage/process.vue
@@ -38,20 +38,32 @@
<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>
-
-
+ <rickAnalysis ref="riskRef" v-if="selectedObj.id === 2" @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>
+ <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 === 1" @getNextStatus="getNextStatus"></process-ctrl-review>
</div>
<div style="display: flex;align-items: center;justify-content: center;margin-bottom: -20px">
<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 === 'edit' && selectedObj.status !== 1" @click="clickEdit">变更</el-button>
-<!-- <el-button type="warning" style="width: 80px" v-if="selectedObj.status === 1" @click="save">暂存</el-button>-->
- <el-button type="primary" style="width: 80px" @click="next">下一步</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="primary" style="width: 80px" v-if="selectedObj.id !== 14" @click="next">下一步</el-button>
</div>
</div>
</el-card>
</div>
- <div class="bottom"></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>
+ </div>
</div>
</template>
@@ -60,13 +72,26 @@
import {onMounted, ref} from "vue";
import {ElMessage} 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.png"
import { useRoute } from 'vue-router'
-import {getProjectStatus} from "@/api/projectManage/project";
+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"
const route = useRoute()
const menuList = ref([
@@ -150,8 +175,7 @@
id: 11,
name: '过程控制负责人审核',
status: 0
- },
-
+ }
]
},
{
@@ -178,12 +202,22 @@
},
])
const riskRef = ref();
-const isShowMenu = ref(false);
+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 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()
onMounted(() => {
middleHeight.value = window.innerHeight - 250;
middleContentHeight.value = window.innerHeight - 385;
@@ -219,17 +253,18 @@
if(item.id <= res.data){
item.status = 2
}
- if(item.id === res.data + 1){
- item.status = 4;
- nextObj.value = item;
+ 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)
-
+ setTimeout(() => {
+ goRouter(selectedObj.value.id)
+ }, 10)
}
})
menuList.value[0].status = 1;
@@ -244,13 +279,16 @@
if(item.id <= res.data) {
item.status = 2
}
- if(item.id === res.data + 1){
- item.status = 4;
- nextObj.value = item;
+ 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)
@@ -270,9 +308,11 @@
if(item.id <= res.data) {
item.status = 2
}
- if(item.id === res.data + 1){
- item.status = 4;
- nextObj.value = item;
+ if(projectStatus.value !== 'view'){
+ if(item.id === res.data + 1){
+ item.status = 4;
+ nextObj.value = item;
+ }
}
if(item.id === res.data){
item.status = 3;
@@ -297,9 +337,11 @@
if(item.id <= res.data) {
item.status = 2
}
- if(item.id === res.data + 1){
- item.status = 4;
- nextObj.value = item;
+ if(projectStatus.value !== 'view'){
+ if(item.id === res.data + 1){
+ item.status = 4;
+ nextObj.value = item;
+ }
}
if(item.id === res.data){
item.status = 3;
@@ -326,9 +368,11 @@
if(item.id <= res.data) {
item.status = 2
}
- if(item.id === res.data + 1){
- item.status = 4;
- nextObj.value = item;
+ if(projectStatus.value !== 'view'){
+ if(item.id === res.data + 1){
+ item.status = 4;
+ nextObj.value = item;
+ }
}
if(item.id === res.data){
item.status = 3;
@@ -356,8 +400,17 @@
}
const clickMenu = (val) => {
- isShowMenu.value = 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 chooseSubMenu = (val,flag) => {
if(val.status === 0) {
setTimeout(() => {
@@ -385,7 +438,6 @@
selectedObj.value = val;
selectedObj.value.status = 3;
nextObj.value.status = 4;
- console.log('selectedObj.valu',selectedObj.value)
//跳转
}, 10)
if(flag){
@@ -408,6 +460,11 @@
selectedObj.value.status = 1;
nextObj.value.status = 2;
nextObj.value = val;
+ // if(flag){
+ // setTimeout(() => {
+ // goRouter(selectedObj.value.id)
+ // }, 10)
+ // }
//跳转
}, 10)
}
@@ -425,63 +482,25 @@
}else if (selectedObj.value.id+ 1 >11){
nextMenu(4)
}
- } else {
- //下一步——保存
- goRouter(selectedObj.value.id,'add')
- // switch (selectedObj.value.id){
- // case 1:
- // riskRef.value.riskOpen('add','');
- // break;
- // case 2:
- //
- // break;
- // case 3:
- //
- // break;
- // case 4:
- //
- // break;
- // case 5:
- //
- // break;
- // case 6:
- //
- // break;
- // case 7:
- //
- // break;
- // case 8:
- //
- // break;
- // case 9:
- //
- // break;
- // case 10:
- //
- // break;
- // case 11:
- //
- // break;
- // case 12:
- //
- // break;
- // case 13:
- //
- // break;
- // case 14:
- //
- // break;
- // }
+ }else {
+ setTimeout(() => {
+ isShowMenu.value = false;
+ ElMessage({
+ type: 'warning',
+ message: '请按顺序操作,未完成步骤无法查看!'
+ });
+ }, 10)
}
- setTimeout( () => {
- goRouter(selectedObj.value.id)
- }, 100)
+ //
+ // setTimeout( () => {
+ // goRouter(selectedObj.value.id)
+ // }, 100)
}
const nextMenu = (id) => {
menuList.value[id].subMenus.forEach( item => {
if(item.id === selectedObj.value.id + 1){
- chooseSubMenu(item,false);
+ chooseSubMenu(item,true);
}
})
}
@@ -489,8 +508,7 @@
const backMenu = (id) => {
menuList.value[id].subMenus.forEach(async item => {
if(item.id === selectedObj.value.id - 1){
- await chooseSubMenu(item,false);
- console.log("ssssss",selectedObj.value)
+ await chooseSubMenu(item,true);
}
})
}
@@ -508,110 +526,145 @@
}else if (selectedObj.value.id-1 >11){
backMenu(4)
}
- setTimeout( () => {
- goRouter(selectedObj.value.id)
- // switch (selectedObj.value.id){
- // case 1:
- // if(projectStatus.value === 'view'){
- // riskRef.value.riskOpen('detail',projectId.value);
- // }else {
- // riskRef.value.riskOpen('edit',projectId.value);
- // }
- // break;
- // case 2:
- //
- // break;
- // case 3:
- //
- // break;
- // case 4:
- //
- // break;
- // case 5:
- //
- // break;
- // case 6:
- //
- // break;
- // case 7:
- //
- // break;
- // case 8:
- //
- // break;
- // case 9:
- //
- // break;
- // case 10:
- //
- // break;
- // case 11:
- //
- // break;
- // case 12:
- //
- // break;
- // case 13:
- //
- // break;
- // case 14:
- //
- // break;
- // }
- }, 100)
+ // setTimeout( () => {
+ // goRouter(selectedObj.value.id)
+ // }, 100)
}
const clickEdit = () => {
goRouter(selectedObj.value.id,'clickEdit')
- // switch (selectedObj.value.id){
- // case 1:
- // riskRef.value.riskOpen('clickEdit',projectId.value);
- // break;
- // case 2:
- //
- // break;
- // case 3:
- //
- // break;
- // case 4:
- //
- // break;
- // case 5:
- //
- // break;
- // case 6:
- //
- // break;
- // case 7:
- //
- // break;
- // case 8:
- //
- // break;
- // case 9:
- //
- // break;
- // case 10:
- //
- // break;
- // case 11:
- //
- // break;
- // case 12:
- //
- // break;
- // case 13:
- //
- // break;
- // case 14:
- //
- // break;
- // }
}
-const getNextStatus = (val) => {
- getStatus(val);
+const getNextStatus = async (val) => {
+ projectId.value = val;
+ console.log("val",val)
+ const res = await getProjectStatus(val);
+ if(res.code == 200){
+ 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 = () => {
+ goRouter(selectedObj.value.id,'add')
+
+}
const goRouter = (val,type) => {
switch (val){
case 1:
@@ -620,18 +673,40 @@
}else if (type === 'clickEdit'){
riskRef.value.riskOpen('clickEdit',projectId.value);
}else {
- if(projectStatus.value === 'view'){
+ if(projectStatus.value === 'view' || projectStatus.value === 'add'){
riskRef.value.riskOpen('detail',projectId.value);
- }else {
+ }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:
@@ -741,6 +816,7 @@
background-repeat: no-repeat;
background-size: 100% 100%;
background-image: url(../../../assets/images/header.png);
+ cursor: pointer;
.item-content{
width: 80%;
padding: 0 20px;
@@ -765,6 +841,7 @@
width: 70%;
padding-left: 20px;
padding-right: 15px;
+ cursor: pointer;
.item-icon-status0{
width: 21px;
height: 21px;
@@ -775,6 +852,8 @@
border-radius: 50%;
background: #b9c2d5;
margin-right: 10px;
+ min-width: 21px;
+ min-height: 21px;
}
.item-icon-status1{
color: #3b75ff;
--
Gitblit v1.9.2