feat: add personal workbench view with todo and reimbursement tracking

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-05 18:22:47 +08:00
parent ad66067694
commit ab9f132192
8 changed files with 770 additions and 29 deletions

View File

@@ -21,6 +21,7 @@
:class="{
'chat-main': activeView === 'chat',
'overview-main': activeView === 'overview',
'workbench-main': activeView === 'workbench',
'requests-main': activeView === 'requests',
'approval-main': activeView === 'approval',
'policies-main': activeView === 'policies'
@@ -42,7 +43,7 @@
/>
<FilterBar
v-if="activeView !== 'chat' && activeView !== 'overview' && activeView !== 'requests' && activeView !== 'approval' && activeView !== 'policies'"
v-if="activeView !== 'chat' && activeView !== 'overview' && activeView !== 'workbench' && activeView !== 'requests' && activeView !== 'approval' && activeView !== 'policies'"
:compact="activeView === 'overview'"
:filters="filters"
:ranges="ranges"
@@ -67,6 +68,11 @@
@reject="handleReject"
/>
<PersonalWorkbenchView
v-else-if="activeView === 'workbench'"
@open-assistant="handleOpenChat"
/>
<TravelReimbursementCreateView
v-else-if="activeView === 'chat' && travelCreateMode"
@back-to-requests="backToRequests"
@@ -126,6 +132,7 @@ import FilterBar from './components/layout/FilterBar.vue'
import ToastNotification from './components/shared/ToastNotification.vue'
import LoginView from './views/LoginView.vue'
import OverviewView from './views/OverviewView.vue'
import PersonalWorkbenchView from './views/PersonalWorkbenchView.vue'
import ChatView from './views/ChatView.vue'
import TravelReimbursementCreateView from './views/TravelReimbursementCreateView.vue'
import RequestsView from './views/RequestsView.vue'
@@ -228,6 +235,9 @@ function backToRequests() {
.main.overview-main {
grid-template-rows: auto minmax(0, 1fr);
}
.main.workbench-main {
grid-template-rows: auto minmax(0, 1fr);
}
.main.chat-main {
height: 100dvh;
grid-template-rows: auto minmax(0, 1fr);