Kaynağa Gözat

fix: 菜单权限问题

wuwenyi 2 hafta önce
ebeveyn
işleme
dc8bbb10ea
2 değiştirilmiş dosya ile 14 ekleme ve 6 silme
  1. 7 3
      src/views/flow/task/todo.vue
  2. 7 3
      src/views/workbench/index.vue

+ 7 - 3
src/views/flow/task/todo.vue

@@ -223,10 +223,12 @@ import { uploadFile } from '@/api/file'
 import { getInstanceAttachments } from '@/api/flow/instance'
 import { beforeFileUpload, getUploadUrl, getFileName } from '@/utils/file'
 import type { FlowTask, ApprovalAction, Attachment } from '@/types/flow'
+import { useUserStore } from '@/stores/user-store'
 import type { User } from '@/types/system'
 import InstanceDetail from '@/views/flow/execute/InstanceDetail.vue'
 import FilePreview from '@/components/FilePreview/index.vue'
 
+const userStore = useUserStore()
 const loading = ref(false)
 const tableData = ref<FlowTask[]>([])
 const total = ref(0)
@@ -344,7 +346,7 @@ function buildActionData(): ApprovalAction {
     comment: form.comment
   }
   if (form.action === 'transfer' && form.transferTo) {
-    data.transferTo = Number(form.transferTo)
+    data.transferToUserId = Number(form.transferTo)
   }
   if (attachmentList.value.length > 0) {
     data.attachmentUrls = JSON.stringify(attachmentList.value.map((f: any) => f.response || f.url).filter(Boolean))
@@ -378,15 +380,17 @@ async function openTransfer(row: FlowTask) {
   currentTask.value = row
   form.action = 'transfer'
   batchMode.value = false
-  // 转办选人:ROLE 任务查同角色用户,USER 任务查全部用户
+  // 转办选人:ROLE 任务查同角色用户,USER 任务查全部用户,过滤掉自己
   if (row.assigneeType === 'ROLE' && row.assigneeId) {
     try {
-      userList.value = await listUsersByRole(row.assigneeId)
+      const users = await listUsersByRole(row.assigneeId)
+      userList.value = users.filter(u => u.id !== userStore.userInfo?.id)
     } catch {
       userList.value = []
     }
   } else {
     await loadUsers()
+    userList.value = userList.value.filter(u => u.id !== userStore.userInfo?.id)
   }
   await loadPreviousAttachments(row.instanceId)
   approveDrawerVisible.value = true

+ 7 - 3
src/views/workbench/index.vue

@@ -267,7 +267,9 @@ import { instanceStatusText, instanceStatusTagType } from '@/utils/flow'
 import InstanceDetail from '@/views/flow/execute/InstanceDetail.vue'
 import TaskCard from './components/TaskCard.vue'
 import FilePreview from '@/components/FilePreview/index.vue'
+import { useUserStore } from '@/stores/user-store'
 
+const userStore = useUserStore()
 const router = useRouter()
 const activeTab = ref<'todo' | 'overdue' | 'warning' | 'handled' | 'cc' | 'mine'>('todo')
 const loading = ref(false)
@@ -380,7 +382,7 @@ function resetApproveForm() {
 function buildActionData(): ApprovalAction {
   const data: ApprovalAction = { action: form.action, comment: form.comment }
   if (form.action === 'transfer' && form.transferTo) {
-    data.transferTo = Number(form.transferTo)
+    data.transferToUserId = Number(form.transferTo)
   }
   if (attachmentList.value.length > 0) {
     data.attachmentUrls = JSON.stringify(attachmentList.value.map((f: any) => f.response || f.url).filter(Boolean))
@@ -400,15 +402,17 @@ async function openTransfer(row: FlowTask) {
   resetApproveForm()
   currentTask.value = row
   form.action = 'transfer'
-  // 转办选人:ROLE 任务查同角色用户,USER 任务查全部用户
+  // 转办选人:ROLE 任务查同角色用户,USER 任务查全部用户,过滤掉自己
   if (row.assigneeType === 'ROLE' && row.assigneeId) {
     try {
-      userList.value = await listUsersByRole(row.assigneeId)
+      const users = await listUsersByRole(row.assigneeId)
+      userList.value = users.filter(u => u.id !== userStore.userInfo?.id)
     } catch {
       userList.value = []
     }
   } else {
     await loadUsers()
+    userList.value = userList.value.filter(u => u.id !== userStore.userInfo?.id)
   }
   await loadPreviousAttachments(row.instanceId)
   approveDrawerVisible.value = true