From 7a5c5250b66cc6faffbcac9e192073473c50f79f Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 28 八月 2026 17:02:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0
---
src/views/mes/workbench/index.vue | 34 ++++++++++++++++++++++++++++++----
1 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/src/views/mes/workbench/index.vue b/src/views/mes/workbench/index.vue
index 15c283a..a9d23c4 100644
--- a/src/views/mes/workbench/index.vue
+++ b/src/views/mes/workbench/index.vue
@@ -17,6 +17,7 @@
} from '#/api/mes/pro/workrecord';
import { getPendingFeedbackPage } from '#/api/mes/pro/task';
import { router } from '#/router';
+import { useAccess } from '@vben/access';
import TaskListPanel from './components/TaskListPanel.vue';
import WorkstationPanel from './components/WorkstationPanel.vue';
@@ -33,16 +34,36 @@
// --- Tab 閰嶇疆 ---
const tabItems: WorkbenchTabItem[] = [
{ key: 'detail', label: '宸ュ崟璇︽儏', icon: 'lucide:file-text' },
- { key: 'feedback', label: '鎶ュ伐', icon: 'lucide:edit-3' },
- { key: 'history', label: '鎶ュ伐璁板綍', icon: 'lucide:history' },
+ { key: 'feedback', label: '鎶ュ伐', icon: 'lucide:edit-3', auth: ['mes:pro-feedback:create'] },
+ { key: 'history', label: '鎶ュ伐璁板綍', icon: 'lucide:history' ,auth: ['mes:pro-feedback:query']},
{ key: 'record-param', label: '鐢熶骇璁板綍鍙傛暟', icon: 'lucide:file-cog' },
{ key: 'product-issue', label: '棰嗘枡', icon: 'lucide:clipboard-list' },
{ key: 'return-issue', label: '閫�鏂�', icon: 'lucide:rotate-ccw' },
];
+const { hasAccessByCodes } = useAccess();
+
+const availableTabs = computed(() => {
+ return tabItems.filter((tab) => {
+ if (!tab.auth || tab.auth.length === 0) return true;
+ return hasAccessByCodes(tab.auth);
+ });
+});
+
const activeTab = ref<WorkbenchTabKey>('detail');
const activeTabLabel = computed(
- () => tabItems.find((t) => t.key === activeTab.value)?.label ?? '',
+ () => availableTabs.value.find((t) => t.key === activeTab.value)?.label ?? '',
+);
+
+// 褰撳彲鐢� tab 鍙樺寲鏃讹紝濡傛灉褰撳墠閫変腑鐨� tab 涓嶅彲鐢紝鍒欒嚜鍔ㄩ�夋嫨绗竴涓彲鐢ㄧ殑 tab
+watch(
+ availableTabs,
+ (tabs) => {
+ if (tabs.length > 0 && !tabs.find((t) => t.key === activeTab.value)) {
+ activeTab.value = tabs[0]!.key;
+ }
+ },
+ { immediate: true },
);
// --- 宸ヤ綔绔� ---
@@ -176,7 +197,7 @@
<nav class="workbench-nav">
<button
- v-for="tab in tabItems"
+ v-for="tab in availableTabs"
:key="tab.key"
type="button"
class="workbench-nav__item"
@@ -215,6 +236,7 @@
:selected-id="selectedTask?.id"
:loading="taskLoading"
@select="handleSelectTask"
+ @refresh="loadTaskList"
/>
</aside>
@@ -245,18 +267,21 @@
<FeedbackHistoryTab
v-else-if="activeTab === 'history'"
:task-id="selectedTask?.id"
+ :task="selectedTask"
:refresh-key="reportRefreshKey"
@reported="onReported"
/>
<RecordParamTab
v-else-if="activeTab === 'record-param'"
:task-id="selectedTask?.id"
+ :task="selectedTask"
:work-order-id="selectedTask?.id"
:workstation-id="workstationId"
/>
<ProductIssueTab
v-else-if="activeTab === 'product-issue'"
:task-id="selectedTask?.id"
+ :task="selectedTask"
:task-code="selectedTask?.code"
:task-name="selectedTask?.name"
:work-order-id="selectedTask?.workOrderId"
@@ -266,6 +291,7 @@
<ReturnIssueTab
v-else-if="activeTab === 'return-issue'"
:task-id="selectedTask?.id"
+ :task="selectedTask"
:task-code="selectedTask?.code"
:task-name="selectedTask?.name"
:work-order-id="selectedTask?.workOrderId"
--
Gitblit v1.9.3