From a6a8e49af8c8172f4209dd94e65f53f17825cc44 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期四, 21 十一月 2024 17:30:12 +0800 Subject: [PATCH] 项目管理 --- src/views/safetyReview/projectManage/process.vue | 1004 ++++++++++++++++------------------------------------------ 1 files changed, 277 insertions(+), 727 deletions(-) diff --git a/src/views/safetyReview/projectManage/process.vue b/src/views/safetyReview/projectManage/process.vue index 3cba04f..255e7b0 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" @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.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} from "element-plus"; +import {get} from "@vueuse/core"; +import {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,266 @@ 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 +366,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 +389,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 +406,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 +449,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 +465,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 +485,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 +510,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 +523,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