From d9814bbf52be53abd7b0f1980ff404204c51220f Mon Sep 17 00:00:00 2001 From: ChoChoX Date: Sun, 28 Jun 2026 19:50:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=80=E5=90=8E=E5=B0=8F=E4=BF=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/contract.vue | 16 ++++++++++++++-- src/components/service.vue | 13 +++++++++++-- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/components/contract.vue b/src/components/contract.vue index a925ba2..07e0572 100644 --- a/src/components/contract.vue +++ b/src/components/contract.vue @@ -38,6 +38,10 @@ const total = ref(0) // 采购经理只能操作采购合同,招商经理只能操作加盟合同(提前定义,供 form 初始化使用) const isProcurementManager = computed(() => getUserInfo()?.departmentName === 'procurement_manager') const isFranchiseManager = computed(() => getUserInfo()?.departmentName === 'franchise_manager') + +//是否是管理员 +const isAdmin = computed(() => getUserInfo()?.departmentName === 'admin') + const getDefaultType = () => { if (isProcurementManager.value) return 'supply' if (isFranchiseManager.value) return 'franchise' @@ -349,19 +353,27 @@ const canUpdate = computed(() => hasPermission('contract', 'update')) const canDelete = computed(() => hasPermission('contract', 'delete')) const canOperate = computed(() => canUpdate.value || canDelete.value) -// 招商经理只能编辑加盟合同,采购经理只能编辑采购合同 +//获取用户数据 +const userInfo = computed(() => getUserInfo()) + +// 招商经理只能编辑加盟合同,采购经理只能编辑采购合同,且每个员工只能操作自己的合同(管理员除外) const canEditRow = (row) => { + if (isAdmin.value) return true if (!canUpdate.value) return false if (isProcurementManager.value && row.type !== 'supply') return false if (isFranchiseManager.value && row.type !== 'franchise') return false + if (userInfo.value.employee_id !== row.employee_id) return false return true } const canDeleteRow = (row) => { + if (isAdmin.value) return true if (!canDelete.value) return false if (isProcurementManager.value && row.type !== 'supply') return false if (isFranchiseManager.value && row.type !== 'franchise') return false + if (userInfo.value.employee_id !== row.employee_id) return false return true } +