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 |  175 ++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 116 insertions(+), 59 deletions(-)

diff --git a/src/views/safetyReview/projectManage/process.vue b/src/views/safetyReview/projectManage/process.vue
index 83c6b5c..255e7b0 100644
--- a/src/views/safetyReview/projectManage/process.vue
+++ b/src/views/safetyReview/projectManage/process.vue
@@ -27,16 +27,19 @@
           <div :style="'height:' + middleContentHeight + 'px'" style="overflow-y: scroll;">
             <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>
+            <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: -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' || 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="(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>
@@ -46,7 +49,7 @@
 
 
 <script setup>
-import {onMounted, ref} from "vue";
+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'
@@ -57,6 +60,7 @@
 import archive from  './components/projectArchive.vue'
 import {ElMessage} from "element-plus";
 import {get} from "@vueuse/core";
+import {getProjectInfo} from "@/api/projectManage";
 
 const selectedObj = ref({})
 const nextObj = ref({})
@@ -125,6 +129,10 @@
 const save = () => {
   goRouter(selectedObj.value.id,'add')
 }
+const confirmApproval = () => {
+  goRouter(selectedObj.value.id,'confirmApproval')
+}
+
 
 const goRouter = (selectId,type) => {
   switch (selectId){
@@ -136,91 +144,135 @@
       }
       break;
     case 2:
-      if(type === 'add' || type === 'clickEdit'){
-        expertRef.value.riskOpen(type,projectId.value);
+      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'){
-        approvalRef.value.riskOpen(type,projectId.value);
+      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'){
-        approvalRef.value.riskOpen('detail',projectId.value);
+        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'){
-        archiveRef.value.riskOpen('detail',projectId.value);
+        if(projectStatus.value === 'view'){
+          archiveRef.value.riskOpen('view',projectId.value);
+        }else{
+          archiveRef.value.riskOpen('detail',projectId.value);
+        }
       }
       break;
   }
 }
 
-const getStatus = (id) => {
+const getStatus = async (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
+  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(item.id ==  newProgress.value){
+          selectedObj.value =item
+          setTimeout(() => {
+            goRouter(selectedObj.value.id)
+          }, 10)
+        }
+        if(item.id ==  newProgress.value +1){
+          item.status = 1
+        }
+      }else if(projectStatus.value === 'view'){
+        if(item.id <=  newProgress.value){
+          item.status = 2
+        }
+        if(item.id ==  newProgress.value){
+          selectedObj.value =item
+          setTimeout(() => {
+            goRouter(selectedObj.value.id)
+          }, 10)
+        }
       }
-      if(item.id == res){
+      if( newProgress.value == 4 && item.id == 4){
+        item.status = 2
         selectedObj.value =item
         setTimeout(() => {
           goRouter(selectedObj.value.id)
         }, 10)
       }
-      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)
-    }
-  })
+    })
+  }
+  else {
+    ElMessage.warning(res.message)
+  }
   console.log('menuList.value',menuList.value)
 }
-const getNextStatus = (id) => {
-  //projectId 项目id,根据id获取当前状态
+const getNextStatus = async (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
-    }
+  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
+      }
 
-    if(res == 4 && item.id == 4){
-      item.status = 2
-      selectedObj.value =item
-    }
-  })
+      if( newProgress.value == 4 && item.id == 4){
+        item.status = 2
+        selectedObj.value =item
+      }
+    })
+  }else {
+    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 = () => {
@@ -277,6 +329,11 @@
 const clickEdit = () => {
   goRouter(selectedObj.value.id,'clickEdit')
 }
+
+const viewWord = () => {
+  goRouter(selectedObj.value.id,'viewWord')
+}
+
 const clickMenu = (item) => {
   if(item.status == 0){
     setTimeout(() => {

--
Gitblit v1.9.2