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