| | |
| | | <template> |
| | | <div class="process-container"> |
| | | <div class="flow"> |
| | | <div class="content" :class="{show: isShowMenu}" > |
| | | <div class="content-middle" @click="clickMenu(true)"> |
| | | <div class="content" > |
| | | <div class="content-middle"> |
| | | <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"> |
| | | <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"> |
| | |
| | | <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" :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> |
| | | <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"></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: -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 && 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> |
| | | <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.status ===1 && selectedObj.id !==4 && newProgress !== 4" @click="save">保存</el-button> |
| | | <el-button type="warning" style="width: 80px" v-if="(projectStatus === 'add' || projectStatus === 'edit') && selectedObj.status !==1 && 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> |
| | | <el-button type="primary" v-if="selectedObj.id === 13" plain @click="downloadCommitFile"> |
| | | 承诺书<el-icon class="el-icon--right"><Download /></el-icon> |
| | | </el-button> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script setup> |
| | | |
| | | import {onMounted, ref} from "vue"; |
| | | import {ElMessage, ElMessageBox} 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-1.png" |
| | | 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" |
| | | import {delMonitor} from "@/api/sysUsers"; |
| | | 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"; |
| | | |
| | | 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 reportProcess = 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; |
| | |
| | | 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; |
| | | reportProcess.value = route.query.process; |
| | | 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){ |
| | | 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){ |
| | | 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; |
| | | } |
| | | |
| | | menuList.value[1].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 = 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; |
| | | 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); |
| | | } |
| | | menuList.value[2].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 = 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; |
| | | break; |
| | | case 2: |
| | | if(type === 'add' || type === 'clickEdit'){ |
| | | expertRef.value.riskOpen(type,projectId.value); |
| | | }else if(projectStatus.value === 'view' || projectStatus.value === 'edit' || projectStatus.value === 'add'){ |
| | | expertRef.value.riskOpen('detail',projectId.value); |
| | | } |
| | | 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; |
| | | break; |
| | | case 3: |
| | | if(type === 'add' || type === 'clickEdit'){ |
| | | approvalRef.value.riskOpen(type,projectId.value); |
| | | }else if(projectStatus.value === 'view' || projectStatus.value === 'edit' || projectStatus.value === 'add'){ |
| | | approvalRef.value.riskOpen('detail',projectId.value); |
| | | } |
| | | 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) |
| | | 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'){ |
| | | archiveRef.value.riskOpen('detail',projectId.value); |
| | | } |
| | | } |
| | | if(toPath.value && toPath.value === 'toFive' && fiveObj){ |
| | | chooseSubMenu(fiveObj,true) |
| | | } |
| | | |
| | | }else{ |
| | | ElMessage.warning(res.message) |
| | | break; |
| | | } |
| | | } |
| | | |
| | | 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 downloadCommitFile = () => { |
| | | const link = document.createElement('a') |
| | | link.href = 'files/commitLetter.doc' |
| | | link.target = '_blank' |
| | | link.download = '承诺书.doc' |
| | | link.click() |
| | | } |
| | | |
| | | |
| | | const sixBtn = ref(""); |
| | | 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; |
| | | const getStatus = (id) => { |
| | | //projectId 项目id,根据id获取当前状态 |
| | | projectId.value = Number(id) |
| | | //调接口 |
| | | const res = projectId.value |
| | | //当前项目状态,编辑、查看的时候定位到最新状态 |
| | | newProgress.value = res |
| | | menuList.value.forEach(item => { |
| | | if(projectStatus.value === 'edit'){ |
| | | if(item.id <= res){ |
| | | item.status = 2 |
| | | } |
| | | if(nextObj.value !== val) { |
| | | selectedObj.value.status = 2 |
| | | if(item.id == res){ |
| | | selectedObj.value =item |
| | | setTimeout(() => { |
| | | goRouter(selectedObj.value.id) |
| | | }, 10) |
| | | } |
| | | |
| | | selectedObj.value = val; |
| | | selectedObj.value.status = 3; |
| | | nextObj.value.status = 4; |
| | | //跳转 |
| | | }, 10) |
| | | if(flag){ |
| | | if(item.id == res +1){ |
| | | item.status = 1 |
| | | } |
| | | }else if(projectStatus.value === 'view'){ |
| | | if(item.id <= res){ |
| | | item.status = 2 |
| | | } |
| | | if(item.id == res){ |
| | | selectedObj.value =item |
| | | setTimeout(() => { |
| | | goRouter(selectedObj.value.id) |
| | | }, 10) |
| | | } |
| | | } |
| | | if(res == 4 && item.id == 4){ |
| | | item.status = 2 |
| | | selectedObj.value =item |
| | | setTimeout(() => { |
| | | goRouter(selectedObj.value.id) |
| | | }, 10) |
| | | } |
| | | }) |
| | | console.log('menuList.value',menuList.value) |
| | | } |
| | | const getNextStatus = (id) => { |
| | | //projectId 项目id,根据id获取当前状态 |
| | | projectId.value = Number(id) |
| | | //调接口 |
| | | const res = projectId.value |
| | | newProgress.value = res |
| | | //定位到下一步状态 |
| | | menuList.value.forEach(item => { |
| | | if(item.id <= res){ |
| | | item.status = 2 |
| | | }else if(item.id == res + 1){ |
| | | item.status = 1 |
| | | selectedObj.value =item |
| | | } |
| | | |
| | | }else if (val.status === 3) { |
| | | setTimeout(() => { |
| | | isShowMenu.value = false; |
| | | selectedObj.value = val; |
| | | //跳转 |
| | | }, 10) |
| | | }else if (val.status === 4) { |
| | | setTimeout(() => { |
| | | if(val.id === 6){ |
| | | sixBtn.value = Cookies.get('btn') |
| | | if(res == 4 && item.id == 4){ |
| | | item.status = 2 |
| | | selectedObj.value =item |
| | | } |
| | | }) |
| | | } |
| | | |
| | | 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 |
| | | } |
| | | 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(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) |
| | | } |
| | | } |
| | | 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) |
| | | } |
| | | }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 { |
| | | const clickEdit = () => { |
| | | goRouter(selectedObj.value.id,'clickEdit') |
| | | } |
| | | const clickMenu = (item) => { |
| | | if(item.status == 0){ |
| | | setTimeout(() => { |
| | | isShowMenu.value = false; |
| | | ElMessage({ |
| | | type: 'warning', |
| | | message: '请按顺序操作,未完成步骤无法查看!' |
| | | }); |
| | | }, 10) |
| | | } |
| | | // |
| | | // setTimeout( () => { |
| | | // goRouter(selectedObj.value.id) |
| | | // }, 100) |
| | | } |
| | | } else { |
| | | chooseSubMenu(item) |
| | | |
| | | 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 |
| | | 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){ |
| | | 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 = () => { |
| | | // 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: |
| | | 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: |
| | | 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; |
| | | } |
| | | } |
| | | |
| | |
| | | display: none; |
| | | } |
| | | } |
| | | .bottom{ |
| | | height: 60px; |
| | | background: rgb(255, 255, 255); |
| | | padding: 9px 10px; |
| | | } |
| | | .text-eclipse{ |
| | | overflow: hidden; |
| | | white-space: nowrap; |
| | | text-overflow: ellipsis; |
| | | font-size: 16px; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | </style> |