12 KiB
Graph Report - bx-mobile (2026-08-09)
Corpus Check
- 59 files · ~49,502 words
- Verdict: corpus is large enough that graph structure adds value.
Summary
- 938 nodes · 1418 edges · 43 communities (35 shown, 8 thin omitted)
- Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 11 edges (avg confidence: 0.53)
- Token cost: 0 input · 0 output
Graph Freshness
- Built from commit:
47a56e40 - Run
git rev-parse HEADand compare to check if the graph is stale. - Run
graphify update .after code changes (no API cost).
Community Hubs (Navigation)
- _COMMUNITY_HomePage.vue
- _COMMUNITY_ApprovalPage.vue
- _COMMUNITY_PaymentPage.vue
- _COMMUNITY_RoleManagePage.vue
- _COMMUNITY_InvoiceWalletAdminPage.vue
- _COMMUNITY_InvoiceWalletMinePage.vue
- _COMMUNITY_format.ts
- _COMMUNITY_MinePage.vue
- _COMMUNITY_ReimburseApplyPage.vue
- _COMMUNITY_AdvanceApprovePage.vue
- _COMMUNITY_AdvanceIssuePage.vue
- _COMMUNITY_ReimburseApprovePage.vue
- _COMMUNITY_MenuManagePage.vue
- _COMMUNITY_UserManagePage.vue
- _COMMUNITY_AllPage.vue
- _COMMUNITY_ReimburseDetailPage.vue
- _COMMUNITY_ExpenseProjectPage.vue
- _COMMUNITY_dependencies
- _COMMUNITY_WfReimbursePage.vue
- _COMMUNITY_ReimburseListPage.vue
- _COMMUNITY_WfAdvancePage.vue
- _COMMUNITY_ApprovalDetailPage.vue
- _COMMUNITY_AdvanceDetailPage.vue
- _COMMUNITY_compilerOptions
- _COMMUNITY_LoginPage.vue
- _COMMUNITY_AdvanceApplyPage.vue
- _COMMUNITY_useExpenseItemTree.ts
- _COMMUNITY_index.ts
- _COMMUNITY_compilerOptions
- _COMMUNITY_BizError
- _COMMUNITY_fetchPage
- _COMMUNITY_loadEditData
- _COMMUNITY_AdminIndexPage.vue
- _COMMUNITY_onSubmit
- _COMMUNITY_components.d.ts
- _COMMUNITY_MenuEntryCard.vue
- _COMMUNITY_fetchOffsetAdvances
- _COMMUNITY_isImageFile
- _COMMUNITY_loadBizAttachmentsTo
- _COMMUNITY_findRootForItem
God Nodes (most connected - your core abstractions)
formatAmount()- 28 edgesstatusLabel()- 19 edgescompilerOptions- 18 edgesresolveExpenseDisplay()- 17 edgesformatApplyDateTime()- 14 edgesadvanceApi- 11 edgesreimburseApi- 11 edgesuseKeywordSearch()- 11 edgesattachmentApi- 10 edgesuseExpenseItemTree()- 10 edges
Surprising Connections (you probably didn't know these)
moneyOrDash()--calls-->formatAmount()[EXTRACTED] src/views/reimburse/ReimburseListPage.vue → src/utils/format.tsallReimburseLineSubtitle()--calls-->resolveExpenseDisplay()[EXTRACTED] src/views/all/AllPage.vue → src/hooks/useExpenseItemTree.tsreimburseLineSubtitle()--calls-->resolveExpenseDisplay()[EXTRACTED] src/views/approval/ApprovalPage.vue → src/hooks/useExpenseItemTree.tsmineReimburseLineSubtitle()--calls-->resolveExpenseDisplay()[EXTRACTED] src/views/mine/MinePage.vue → src/hooks/useExpenseItemTree.tspayCardTitle()--calls-->resolveExpenseDisplay()[EXTRACTED] src/views/payment/PaymentPage.vue → src/hooks/useExpenseItemTree.ts
Import Cycles
- None detected.
Communities (43 total, 8 thin omitted)
Community 0 - "HomePage.vue"
Cohesion: 0.05 Nodes (33): reimburseApi, BX_MENU_CATALOG, BxMenuEntry, BxMenuPhase, app, router, routes, MenuItem (+25 more)
Community 1 - "ApprovalPage.vue"
Cohesion: 0.08 Nodes (25): actionLoading, actionType, bizKind, confirmAction(), currentItem, fetchPage(), finished, { flatList } (+17 more)
Community 2 - "PaymentPage.vue"
Cohesion: 0.05 Nodes (33): activeTab, actualAmount, detailApplyAttachments, detailData, detailLoading, detailOffsetAttachments, detailOffsetRecords, detailPayAttachments (+25 more)
Community 3 - "RoleManagePage.vue"
Cohesion: 0.06 Nodes (36): allUsers, collectAllParentIds(), currentPage, editingId, finished, form, handleAssignUserSubmit(), handleDelete() (+28 more)
Community 4 - "InvoiceWalletAdminPage.vue"
Cohesion: 0.07 Nodes (38): detailInvoices, detailSummary, detailUser, fetchInvoices(), fetchWallets(), invFinished, invLoading, InvoiceAtt (+30 more)
Community 5 - "InvoiceWalletMinePage.vue"
Cohesion: 0.07 Nodes (36): activeTab, allLedgers, ensureLedgersLoaded(), fetchInvoices(), fetchLedgersPage(), invFinished, invLoading, InvoiceAtt (+28 more)
Community 6 - "format.ts"
Cohesion: 0.13 Nodes (17): advanceApi, activeTab, currentPage, fetchPage(), finished, handleDelete(), handleSubmit(), { keyword, clearKeyword, flushSearch } (+9 more)
Community 7 - "MinePage.vue"
Cohesion: 0.07 Nodes (34): activeTab, addActions, advanceFinished, advanceList, advanceLoadingMore, advancePage, advanceRefreshing, advanceStatus (+26 more)
Community 8 - "ReimburseApplyPage.vue"
Cohesion: 0.05 Nodes (29): applicantKeyword, applicantLabel, { applicantOptions, loadApplicantOptions }, applicantPickerColumns, auth, balanceInsufficient, DetailLine, detailTotalAmount (+21 more)
Community 9 - "AdvanceApprovePage.vue"
Cohesion: 0.06 Nodes (32): actionLoading, actionType, activeTab, confirmAction(), currentItem, detailData, downloadPopupFile(), fetchPage() (+24 more)
Community 10 - "AdvanceIssuePage.vue"
Cohesion: 0.06 Nodes (27): activeTab, actualAmount, confirmIssue(), detailApplyAttachments, detailData, detailIssueAttachments, detailOffsetRecords, fetchList() (+19 more)
Community 11 - "ReimburseApprovePage.vue"
Cohesion: 0.07 Nodes (31): actionLoading, actionType, activeTab, cardTitle(), confirmAction(), currentItem, detailData, fetchPage() (+23 more)
Community 12 - "MenuManagePage.vue"
Cohesion: 0.07 Nodes (26): Props, Props, variantClass, menuTypeLabel(), editingId, form, handleDelete(), handleSubmit() (+18 more)
Community 13 - "UserManagePage.vue"
Cohesion: 0.07 Nodes (29): currentPage, editingId, finished, form, handleDelete(), handleSearch(), handleSubmit(), handleToggleStatus() (+21 more)
Community 14 - "AllPage.vue"
Cohesion: 0.06 Nodes (44): advanceIssueRecordStatusLabel(), advanceIssueRecordStatusTagClass(), formatApplyDate(), formatApplyDateTime(), formatDate(), formatDateTime(), paymentDetailTicketToneClass(), paymentRecordRawStatus() (+36 more)
Community 15 - "ReimburseDetailPage.vue"
Cohesion: 0.07 Nodes (30): actionButtons, applyAttachments, approvals, canWithdraw, checkResubmitPrompt(), deleteLoading, detail, detailTab (+22 more)
Community 16 - "ExpenseProjectPage.vue"
Cohesion: 0.09 Nodes (24): dialogMode, dialogTitle, expandedIds, expenseTree, form, handleDelete(), handleSubmit(), isEdit (+16 more)
Community 17 - "dependencies"
Cohesion: 0.08 Nodes (25): dependencies, axios, dayjs, jsencrypt, pinia, vant, @vant/use, vue (+17 more)
Community 18 - "WfReimbursePage.vue"
Cohesion: 0.12 Nodes (22): workflowApi, approverDisplay, buildNodePayload(), formData, handleDelete(), handleSubmit(), isEdit, loading (+14 more)
Community 19 - "ReimburseListPage.vue"
Cohesion: 0.11 Nodes (22): activeTab, cardTitle(), currentStatus(), fetchList(), finished, { flatList }, handleDelete(), handleSubmit() (+14 more)
Community 20 - "WfAdvancePage.vue"
Cohesion: 0.12 Nodes (22): approverDisplay, approverKeyword, buildNodePayload(), formData, handleDelete(), handleSubmit(), isEdit, loading (+14 more)
Community 21 - "ApprovalDetailPage.vue"
Cohesion: 0.07 Nodes (23): actionType, advanceOffsetRecords, advanceOffsetTotalDisplay, approvals, bizType, detail, detailTab, dialogSubmitting (+15 more)
Community 22 - "AdvanceDetailPage.vue"
Cohesion: 0.10 Nodes (20): paymentApi, actionLoading, approvals, AttachmentInfo, attachments, checkResubmitPrompt(), detail, detailTab (+12 more)
Community 23 - "compilerOptions"
Cohesion: 0.09 Nodes (21): compilerOptions, allowImportingTsExtensions, baseUrl, isolatedModules, jsx, lib, module, moduleResolution (+13 more)
Community 24 - "LoginPage.vue"
Cohesion: 0.13 Nodes (14): portalAdminApi, portalAuthApi, portalClient, PortalError, useApplicantOptions(), buildWebEncryptedLoginBody(), auth, clearError() (+6 more)
Community 25 - "AdvanceApplyPage.vue"
Cohesion: 0.08 Nodes (22): BizError, bxClient, attachmentApi, BxId, invoiceApi, invoiceWalletApi, SUBMIT_APPROVE_BUTTON_COLOR, AttachmentFile (+14 more)
Community 26 - "useExpenseItemTree.ts"
Cohesion: 0.22 Nodes (8): expenseItemApi, ExpenseItem, formatExpenseName(), pickExpenseItemId(), resolveExpenseDisplay(), useExpenseItemTree(), payCardTitle(), lineExpenseDisplay()
Community 27 - "index.ts"
Cohesion: 0.14 Nodes (14): formatAmount(), actualIssuedDisplay(), popupOffsetTotalDisplay(), actualIssuedDisplay(), detailOffsetTotalDisplay(), actualIssuedDisplay(), actualIssuedDisplay(), moneyOrDash() (+6 more)
Community 28 - "compilerOptions"
Cohesion: 0.25 Nodes (7): compilerOptions, allowSyntheticDefaultImports, composite, module, moduleResolution, skipLibCheck, include
Community 31 - "fetchPage"
Cohesion: 0.33 Nodes (6): confirmIssue(), confirmOffset(), fetchPage(), onLoad(), onRefresh(), remainingOffset()
Community 32 - "loadEditData"
Cohesion: 0.40 Nodes (5): loadEditData(), onApplicantConfirm(), refreshTitle(), refreshWallet(), todayYmd()
Community 34 - "onSubmit"
Cohesion: 0.67 Nodes (3): buildInvoicePayload(), onSubmit(), validateReimburseApplyForm()
Knowledge Gaps
- 481 isolated node(s):
GlobalComponents,name,private,version,type(+476 more) These have ≤1 connection - possible missing edges or undocumented components. - 8 thin communities (<3 nodes) omitted from report — run
graphify queryto explore isolated nodes.
Suggested Questions
Questions this graph is uniquely positioned to answer:
- Why does
statusLabel()connectAllPage.vuetoApprovalPage.vue,RoleManagePage.vue,format.ts,MinePage.vue,AdvanceApprovePage.vue,ReimburseApprovePage.vue,MenuManagePage.vue,UserManagePage.vue,ReimburseDetailPage.vue,ExpenseProjectPage.vue,WfReimbursePage.vue,ReimburseListPage.vue,WfAdvancePage.vue,ApprovalDetailPage.vue,AdvanceDetailPage.vue? High betweenness centrality (0.053) - this node is a cross-community bridge. - Why does
formatAmount()connectindex.tstoApprovalPage.vue,PaymentPage.vue,format.ts,MinePage.vue,AdvanceApprovePage.vue,AdvanceIssuePage.vue,ReimburseApprovePage.vue,AllPage.vue,ReimburseDetailPage.vue,ReimburseListPage.vue,ApprovalDetailPage.vue,AdvanceDetailPage.vue? High betweenness centrality (0.034) - this node is a cross-community bridge. - Why does
attachmentApiconnectAdvanceApplyPage.vuetoPaymentPage.vue,InvoiceWalletAdminPage.vue,InvoiceWalletMinePage.vue,AdvanceApprovePage.vue,AdvanceIssuePage.vue,ReimburseApprovePage.vue,ReimburseDetailPage.vue,AdvanceDetailPage.vue? High betweenness centrality (0.024) - this node is a cross-community bridge. - What connects
GlobalComponents,name,privateto the rest of the system? 481 weakly-connected nodes found - possible documentation gaps or missing edges. - Should
HomePage.vuebe split into smaller, more focused modules? Cohesion score 0.05176470588235294 - nodes in this community are weakly interconnected. - Should
ApprovalPage.vuebe split into smaller, more focused modules? Cohesion score 0.07956989247311828 - nodes in this community are weakly interconnected. - Should
PaymentPage.vuebe split into smaller, more focused modules? Cohesion score 0.046511627906976744 - nodes in this community are weakly interconnected.