From b609f77709c4646daf155341475ae14fc0c7943d Mon Sep 17 00:00:00 2001
From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com>
Date: 星期五, 27 六月 2025 13:25:30 +0800
Subject: [PATCH] 修改
---
src/views/safetyReview/projectManage/process.vue | 1005 ++++++++++++++++------------------------------------------
1 files changed, 278 insertions(+), 727 deletions(-)
diff --git a/src/views/safetyReview/projectManage/process.vue b/src/views/safetyReview/projectManage/process.vue
index 3cba04f..72b6b3d 100644
--- a/src/views/safetyReview/projectManage/process.vue
+++ b/src/views/safetyReview/projectManage/process.vue
@@ -1,13 +1,14 @@
<template>
<div class="process-container">
<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="content" >
+ <div class="content-middle">
+ <div class="project-title">
+ <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">
@@ -15,220 +16,66 @@
<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"></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 === 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>
+ <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" :newProgress="newProgress" @getNextStatus="getNextStatus"></expert>
+ <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: -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="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 && 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.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>
</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>
+
<script setup>
-
-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 {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'
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"
-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, ElMessageBox} from "element-plus";
+import {get} from "@vueuse/core";
+import {delProject, getProjectInfo} from "@/api/projectManage";
-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 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;
@@ -238,562 +85,267 @@
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;
- 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){
- 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;
+const confirmApproval = () => {
+
+ goRouter(selectedObj.value.id,'confirmApproval')
+}
+
+
+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);
}
+ break;
+ case 2:
+ 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' || type === 'confirmApproval' || type === 'viewWord'){
+ approvalRef.value.riskOpen(type,projectId.value);
+ }else if(projectStatus.value === 'view' || projectStatus.value === 'edit' || projectStatus.value === 'add'){
+ 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'){
+ if(projectStatus.value === 'view'){
+ archiveRef.value.riskOpen('view',projectId.value);
+ }else{
+ archiveRef.value.riskOpen('detail',projectId.value);
+ }
+ }
+ break;
+ }
+}
- menuList.value[1].subMenus.forEach(item => {
- if(item.id <= res.data) {
+const getStatus = async (id) => {
+ //projectId 项目id,根据id获取当前状态
+ projectId.value = Number(id)
+ 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(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;
-
+ if(item.id == newProgress.value){
+ 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;
- }
- menuList.value[2].subMenus.forEach(item => {
- if(item.id <= res.data) {
+ if(item.id == newProgress.value +1){
+ item.status = 1
+ }
+ }else if(projectStatus.value === 'view'){
+ if(item.id <= newProgress.value){
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;
+ if(item.id == newProgress.value){
+ 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;
}
- 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;
+ if( newProgress.value == 4 && item.id == 4){
+ item.status = 2
+ selectedObj.value =item
+ setTimeout(() => {
+ goRouter(selectedObj.value.id)
+ }, 10)
}
- 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)
- }
- }
- if(toPath.value && toPath.value === 'toFive' && fiveObj){
- chooseSubMenu(fiveObj,true)
- }
-
- }else{
+ })
+ }
+ else {
ElMessage.warning(res.message)
}
+ console.log('menuList.value',menuList.value)
}
-
-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 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;
- }
- if(nextObj.value !== val) {
- selectedObj.value.status = 2
+const getNextStatus = async (id) => {
+ projectId.value = Number(id)
+ //调接口
+ 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
}
- selectedObj.value = val;
- selectedObj.value.status = 3;
- nextObj.value.status = 4;
- //跳转
- }, 10)
- if(flag){
- setTimeout(() => {
- goRouter(selectedObj.value.id)
- }, 10)
- }
-
- }else if (val.status === 3) {
- setTimeout(() => {
- isShowMenu.value = false;
- selectedObj.value = val;
- //跳转
- }, 10)
- }else if (val.status === 4) {
- setTimeout(() => {
- 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)
- }
-}
-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)
- }
+ if( newProgress.value == 4 && item.id == 4){
+ item.status = 2
+ selectedObj.value =item
+ }
+ })
}else {
- setTimeout(() => {
- isShowMenu.value = false;
+ 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 = () => {
+ 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
+ }
+ })
+ }
+ 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)
}
- //
- // setTimeout( () => {
- // goRouter(selectedObj.value.id)
- // }, 100)
-}
-
-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;
- 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 viewWord = () => {
+ goRouter(selectedObj.value.id,'viewWord')
}
-const save = () => {
- goRouter(selectedObj.value.id,'add')
+const clickMenu = (item) => {
+ if(item.status == 0){
+ setTimeout(() => {
+ ElMessage({
+ type: 'warning',
+ message: '请按顺序操作,未完成步骤无法查看!'
+ });
+ }, 10)
+ } else {
+ chooseSubMenu(item)
-}
-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:
- console.log("4")
- break;
- case 5:
- console.log("5")
- break;
- case 6:
- console.log("6")
- break;
- case 7:
- console.log("7")
- break;
- case 8:
- console.log("8")
- break;
- case 9:
- 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:
- console.log("12")
- break;
- case 13:
- console.log("13")
- break;
- case 14:
- console.log("14")
- break;
}
}
@@ -815,7 +367,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 +390,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 +407,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 +450,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 +466,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 +486,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 +511,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;
@@ -960,18 +524,5 @@
display: none;
}
}
- .bottom{
- height: 60px;
- background: rgb(255, 255, 255);
- padding: 9px 10px;
- }
- .text-eclipse{
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
-
-
}
-
</style>
--
Gitblit v1.9.2