feat(web): update views

- AppShellRouteView.vue: update app shell route view
- AuditView.vue: update audit view
- EmployeeManagementView.vue: update employee management view
- PoliciesView.vue: update policies view
- RequestsView.vue: update requests view
- TravelReimbursementCreateView.vue: update travel form view
- TravelRequestDetailView.vue: update travel detail view
This commit is contained in:
caoxiaozhu
2026-05-13 03:33:11 +00:00
parent 473198c669
commit 8b72f4e962
7 changed files with 456 additions and 398 deletions

View File

@@ -31,12 +31,13 @@
:search="search"
:active-view="activeView"
:ranges="ranges"
:active-range="activeRange"
:employee-summary="employeeSummary"
:knowledge-summary="knowledgeSummary"
:custom-range="customRange"
@update:search="search = $event"
@update:active-range="activeRange = $event"
:active-range="activeRange"
:employee-summary="employeeSummary"
:knowledge-summary="knowledgeSummary"
:request-summary="requestSummary"
:custom-range="customRange"
@update:search="search = $event"
@update:active-range="activeRange = $event"
@update:custom-range="customRange = $event"
@batch-approve="toast('已批量通过 23 条审批任务')"
@open-chat="handleOpenChat"
@@ -96,21 +97,27 @@
@reject-case="toast(`${activeCase?.id || '当前单据'} 已标记为驳回`)"
/>
<TravelRequestDetailView
v-else-if="activeView === 'requests' && detailMode && selectedTravelRequest"
:request="selectedTravelRequest"
@back-to-requests="closeRequestDetail"
@open-assistant="openSmartEntry"
/>
<TravelRequestDetailView
v-else-if="activeView === 'requests' && detailMode && selectedRequest"
:request="selectedRequest"
@back-to-requests="closeRequestDetail"
@open-assistant="openSmartEntry"
@request-updated="handleRequestUpdated"
@request-deleted="handleRequestDeleted"
/>
<RequestsView
v-else-if="activeView === 'requests'"
:filtered-requests="filteredRequests"
@ask="openRequestDetail"
@approve="handleApprove"
@reject="handleReject"
@create-request="openTravelCreate"
/>
<RequestsView
v-else-if="activeView === 'requests'"
:filtered-requests="filteredRequests"
:has-data="requests.length > 0"
:loading="requestsLoading"
:error="requestsError"
@ask="openRequestDetail"
@approve="handleApprove"
@reject="handleReject"
@reload="reloadRequests"
@create-request="openTravelCreate"
/>
<ApprovalCenterView v-else-if="activeView === 'approval'" />
<PoliciesView v-else-if="activeView === 'policies'" @summary-change="knowledgeSummary = $event" />
@@ -129,9 +136,10 @@
:entry-source="smartEntryContext.source"
:request-context="smartEntryContext.request"
@close="closeSmartEntry"
@draft-saved="handleDraftSaved"
/>
</div>
</template>
</div>
</template>
<script setup>
import { computed, ref } from 'vue'
@@ -170,22 +178,30 @@ const {
docSearch,
draft,
filteredDocuments,
filteredRequests,
filters,
handleApprove,
handleNavigate,
handleOpenChat,
handleReject,
handleUpload,
filteredRequests,
filters,
handleApprove,
handleDraftSaved,
handleNavigate,
handleOpenChat,
handleReject,
handleRequestDeleted,
handleRequestUpdated,
handleUpload,
messageList,
messages,
navItems,
openRequestDetail,
openSmartEntry,
openTravelCreate,
ranges,
openTravelCreate,
ranges,
requestSummary,
requestsError,
requestsLoading,
reloadRequests,
requests,
search,
selectedTravelRequest,
selectedRequest,
sendMessage,
sending,
smartEntryContext,