From 358ef2f69f3c6fac1065b38f4f25710c82125326 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期二, 26 十一月 2024 16:06:51 +0800
Subject: [PATCH] 项目管理

---
 src/views/safetyReview/projectManage/components/basicInfo.vue       |    8 +++++++-
 src/views/safetyReview/projectManage/components/chooseExpert.vue    |   20 ++++++++++++++------
 src/views/safetyReview/projectManage/components/projectArchive.vue  |   11 ++++++++++-
 src/views/safetyReview/projectManage/components/expertsList.vue     |    5 +++++
 src/views/safetyReview/projectManage/components/projectApproval.vue |   15 ++++++++++++---
 5 files changed, 48 insertions(+), 11 deletions(-)

diff --git a/src/views/safetyReview/projectManage/components/basicInfo.vue b/src/views/safetyReview/projectManage/components/basicInfo.vue
index ae1400d..e26a50e 100644
--- a/src/views/safetyReview/projectManage/components/basicInfo.vue
+++ b/src/views/safetyReview/projectManage/components/basicInfo.vue
@@ -113,7 +113,8 @@
     projectAddress: [{ required: true, message: "项目地点不能为空", trigger: "blur" }],
     deptUserName: [{ required: true, message: "处室带队人员不能为空", trigger: "blur" }],
     remark: [{ required: true, message: "概况描述不能为空", trigger: "blur" }],
-  }
+  },
+  isAdmin: false
 })
 const formRef = ref();
 const userInfo = ref()
@@ -121,6 +122,7 @@
   userInfo.value = JSON.parse(Cookies.get('userInfo'))
   state.formData.deptName = userInfo.value.dept.deptName
   state.formData.deptId = userInfo.value.deptId
+  state.isAdmin = userInfo.value.admin
 })
 
 
@@ -129,6 +131,10 @@
   let valid = null
   if(type === 'add' || type === 'clickEdit'){
     valid = await formRef.value.validate();
+    if (state.isAdmin) {
+      ElMessage.warning("当前用户暂无权限");
+      return;
+    }
   }
   if(type === 'add'){
     if(valid){
diff --git a/src/views/safetyReview/projectManage/components/chooseExpert.vue b/src/views/safetyReview/projectManage/components/chooseExpert.vue
index 3fd836d..495fbf7 100644
--- a/src/views/safetyReview/projectManage/components/chooseExpert.vue
+++ b/src/views/safetyReview/projectManage/components/chooseExpert.vue
@@ -3,7 +3,7 @@
     <div style="margin-bottom: 50px">
       <div class="fTop">
         <span style="font-weight: 600">固定选用部分</span>
-        <el-button type="primary" :disabled="state.info.step == 4" style="width: 100px" @click="chooseExpert('选取专家')">选取专家</el-button>
+        <el-button type="primary" :disabled="state.info.step == 4 || state.isAdmin" style="width: 100px" @click="chooseExpert('选取专家')">选取专家</el-button>
       </div>
       <el-table v-loading="fLoading"  :data="fixedDataList" :border="true" ref="fTableRef" style="width: 100%;">
         <el-table-column label="姓名" prop="name" align="center" />
@@ -21,7 +21,7 @@
         <el-table-column label="专业领域" prop="domain" align="center" />
         <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="180">
           <template #default="scope">
-            <el-button link type="primary" @click="delF(scope.row)" :disabled="state.info.step == 4">删除</el-button>
+            <el-button link type="primary" @click="delF(scope.row)" :disabled="state.info.step == 4 || state.isAdmin">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -54,7 +54,7 @@
           </el-col>
           <el-col :span="8">
             <el-form-item style="float: right;">
-              <el-button style="width: 100px;margin-right: -32px;" :disabled="state.info.step == 4" type="primary" @click="random">随机抽取</el-button>
+              <el-button style="width: 100px;margin-right: -32px;" :disabled="state.info.step == 4 || state.isAdmin" type="primary" @click="random">随机抽取</el-button>
             </el-form-item>
           </el-col>
         </el-row>
@@ -88,7 +88,7 @@
         <el-table-column label="专业领域" prop="domain" align="center" />
         <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="180">
           <template #default="scope">
-            <el-button link type="primary" @click="delR(scope.row)" :disabled="state.info.step == 4">删除</el-button>
+            <el-button link type="primary" @click="delR(scope.row)" :disabled="state.info.step == 4 || state.isAdmin">删除</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -103,6 +103,7 @@
 import {getExpertTypes} from "@/api/form";
 import {ElMessage} from "element-plus";
 import {addProject, choose, expertRound, getCheckInfo} from "@/api/projectManage";
+import Cookies from "js-cookie";
 
 const emit = defineEmits(["getNextStatus"]);
 const fTableRef  = ref(null);
@@ -139,17 +140,24 @@
       id: 3,
       name: '三级'
     },
-  ]
+  ],
+  isAdmin: false
 })
 
 
-
+const userInfo = ref()
 onMounted(() =>{
+  userInfo.value = JSON.parse(Cookies.get('userInfo'))
+  state.isAdmin = userInfo.value.admin
   getDomain()
 })
 const riskOpen = async (type,val) => {
   console.log("type",type,val)
   if(type === 'add' || type === 'clickEdit'){
+    if (state.isAdmin) {
+      ElMessage.warning("当前用户暂无权限");
+      return;
+    }
     if(fixedDataList.value.length === 0 && randomDataList.value.length === 0){
       ElMessage.warning('请选择专家')
       return;
diff --git a/src/views/safetyReview/projectManage/components/expertsList.vue b/src/views/safetyReview/projectManage/components/expertsList.vue
index 84be597..cf258f0 100644
--- a/src/views/safetyReview/projectManage/components/expertsList.vue
+++ b/src/views/safetyReview/projectManage/components/expertsList.vue
@@ -139,6 +139,9 @@
 
 const openDialog = (type,choosedData,domainList) => {
   research()
+  nextTick(() => {
+    tableRef.value.clearSelection()
+  })
   data.dialogVisible = true
   data.choosed = choosedData.map(item => {
     return{
@@ -166,6 +169,8 @@
     emit('getName',data.title,data.choosed)
     tableRef.value.clearSelection()
     data.dialogVisible = false
+  }else{
+    ElMessage.warning('请选择专家')
   }
 }
 
diff --git a/src/views/safetyReview/projectManage/components/projectApproval.vue b/src/views/safetyReview/projectManage/components/projectApproval.vue
index 48674bf..863986d 100644
--- a/src/views/safetyReview/projectManage/components/projectApproval.vue
+++ b/src/views/safetyReview/projectManage/components/projectApproval.vue
@@ -60,8 +60,8 @@
       </el-table-column>
       <el-table-column fixed="right" label="操作" align="center" class-name="small-padding fixed-width" width="180">
         <template #default="scope">
-          <el-button link type="primary" :disabled="state.dataForm.state >= 2  " v-if="scope.row.teamLeader === 1" @click="scope.row.teamLeader = 0">取消组长</el-button>
-          <el-button link type="primary" :disabled="state.dataForm.state >= 2" v-else @click="scope.row.teamLeader = 1">设为组长</el-button>
+          <el-button link type="primary" :disabled="state.dataForm.state >= 2 || state.isAdmin" v-if="scope.row.teamLeader === 1" @click="scope.row.teamLeader = 0">取消组长</el-button>
+          <el-button link type="primary" :disabled="state.dataForm.state >= 2 || state.isAdmin" v-else @click="scope.row.teamLeader = 1">设为组长</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -107,6 +107,7 @@
 import axios from "axios";
 import {generateWordDocument} from "@/views/safetyReview/projectManage/components/exportWord";
 import {addProject, checkProject, choose, getCheckInfo, getFileInfo, getProjectList} from "@/api/projectManage";
+import Cookies from "js-cookie";
 const emit = defineEmits(["getNextStatus","backStatus"]);
 const prop = defineProps(['projectId'])
 const tableRef = ref()
@@ -135,15 +136,19 @@
     Authorization: getToken()
   },
   fileList: [],
-  projectId: null
+  projectId: null,
+  isAdmin: false
 });
 const projectType = ref('')
+const userInfo = ref()
 onMounted(async () => {
   if(prop.projectId){
     state.projectId = prop.projectId
     await getList()
 
   }
+  userInfo.value = JSON.parse(Cookies.get('userInfo'))
+  state.isAdmin = userInfo.value.admin
 
 })
 const isView = ref(false)
@@ -153,6 +158,10 @@
   console.log("type",type,val)
   //生成审批按钮
   if(type === 'confirmApproval'){
+    if (state.isAdmin) {
+      ElMessage.warning("当前用户暂无权限");
+      return;
+    }
     isView.value = false
     if(state.dataForm.state == 2){
       dialogVisible.value = true
diff --git a/src/views/safetyReview/projectManage/components/projectArchive.vue b/src/views/safetyReview/projectManage/components/projectArchive.vue
index 18af4ec..ee47574 100644
--- a/src/views/safetyReview/projectManage/components/projectArchive.vue
+++ b/src/views/safetyReview/projectManage/components/projectArchive.vue
@@ -49,6 +49,7 @@
 import {ElMessage, ElMessageBox} from "element-plus";
 import axios from "axios";
 import {archiveProject, checkProject, getFileInfo, getProjectInfo} from "@/api/projectManage";
+import Cookies from "js-cookie";
 
 const emit = defineEmits(["getNextStatus"]);
 const prop = defineProps(['projectId'])
@@ -68,13 +69,17 @@
     Authorization: getToken()
   },
   fileList: [],
-  projectId: null
+  projectId: null,
+  isAdmin: false
 });
 
+const userInfo = ref()
 onMounted(async () => {
   if(prop.projectId){
     state.projectId = prop.projectId
   }
+  userInfo.value = JSON.parse(Cookies.get('userInfo'))
+  state.isAdmin = userInfo.value.admin
 })
 
 const formRef = ref()
@@ -84,6 +89,10 @@
   let valid = null
   if(type === 'confirm'){
     valid = await formRef.value.validate();
+    if (state.isAdmin) {
+      ElMessage.warning("当前用户暂无权限");
+      return;
+    }
   }
   if(type === 'confirm'){
     if(valid){

--
Gitblit v1.9.2