This commit is contained in:
zlwu committed 2026-06-14 09:14:11 +08:00
1 parent 5ad07c8cac
commit a79aee2614
61 files changed
+9220 -9348

No files matched your search

File diff suppressed because it is too large. Load diff
+147 -170
View File
@@ -10960,140 +10960,133 @@
"label": "loadRoleOptions()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L325"
"source_location": "L338"
},
{
"id": "user_index_formatuserdeptdisplay",
"label": "formatUserDeptDisplay()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L348"
"source_location": "L361"
},
{
"id": "user_index_formatuserroledisplay",
"label": "formatUserRoleDisplay()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L354"
"source_location": "L367"
},
{
"id": "user_index_filterdeptnode",
"label": "filterDeptNode()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L397"
"source_location": "L410"
},
{
"id": "user_index_handledeptnodeclick",
"label": "handleDeptNodeClick()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L406"
"source_location": "L419"
},
{
"id": "user_index_loaddepttree",
"label": "loadDeptTree()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L412"
"source_location": "L425"
},
{
"id": "user_index_loaddata",
"label": "loadData()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L421"
"source_location": "L434"
},
{
"id": "user_index_handlesearch",
"label": "handleSearch()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L438"
"source_location": "L451"
},
{
"id": "user_index_handlereset",
"label": "handleReset()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L443"
"source_location": "L456"
},
{
"id": "user_index_resetform",
"label": "resetForm()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L452"
"source_location": "L465"
},
{
"id": "user_index_handleadd",
"label": "handleAdd()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L468"
"source_location": "L481"
},
{
"id": "user_index_handleedit",
"label": "handleEdit()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L479"
"source_location": "L492"
},
{
"id": "user_index_handlesubmit",
"label": "handleSubmit()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L505"
"source_location": "L518"
},
{
"id": "user_index_handleselectionchange",
"label": "handleSelectionChange()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L545"
"source_location": "L558"
},
{
"id": "user_index_requiresingleselection",
"label": "requireSingleSelection()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L549"
},
{
"id": "user_index_handletoolbarview",
"label": "handleToolbarView()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L557"
},
{
"id": "user_index_handletoolbaredit",
"label": "handleToolbarEdit()",
"id": "user_index_handlerowdelete",
"label": "handleRowDelete()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L562"
},
{
"id": "user_index_handlerowresetpwd",
"label": "handleRowResetPwd()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L570"
},
{
"id": "user_index_handlebatchdelete",
"label": "handleBatchDelete()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L567"
"source_location": "L580"
},
{
"id": "user_index_handlebatchresetpwd",
"label": "handleBatchResetPwd()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L586"
"source_location": "L599"
},
{
"id": "user_index_handleview",
"label": "handleView()",
"file_type": "code",
"source_file": "views/system/user/index.vue",
"source_location": "L638"
"source_location": "L651"
},
{
"id": "views_system_user_detail_vue",
@@ -15356,63 +15349,63 @@
"label": ".filterEmptyMenus()",
"file_type": "code",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L150"
"source_location": "L146"
},
{
"id": "core_menuprocessor_menuprocessor_validatemenulist",
"label": ".validateMenuList()",
"file_type": "code",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L187"
"source_location": "L183"
},
{
"id": "core_menuprocessor_menuprocessor_normalizemenupaths",
"label": ".normalizeMenuPaths()",
"file_type": "code",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L195"
"source_location": "L191"
},
{
"id": "core_menuprocessor_menuprocessor_resolvedefaultredirect",
"label": ".resolveDefaultRedirect()",
"file_type": "code",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L219"
"source_location": "L215"
},
{
"id": "core_menuprocessor_menuprocessor_isnavigableroute",
"label": ".isNavigableRoute()",
"file_type": "code",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L241"
"source_location": "L237"
},
{
"id": "core_menuprocessor_menuprocessor_validatemenupaths",
"label": ".validateMenuPaths()",
"file_type": "code",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L261"
"source_location": "L257"
},
{
"id": "core_menuprocessor_menuprocessor_isvalidabsolutepath",
"label": ".isValidAbsolutePath()",
"file_type": "code",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L287"
"source_location": "L283"
},
{
"id": "core_menuprocessor_menuprocessor_logpatherror",
"label": ".logPathError()",
"file_type": "code",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L298"
"source_location": "L294"
},
{
"id": "core_menuprocessor_menuprocessor_buildfullpath",
"label": ".buildFullPath()",
"file_type": "code",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L320"
"source_location": "L316"
},
{
"id": "router_core_routeregistry_ts",
@@ -15720,28 +15713,28 @@
"label": "fetchUserInfo()",
"file_type": "code",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L376"
"source_location": "L379"
},
{
"id": "guards_beforeeach_resetrouterstate",
"label": "resetRouterState()",
"file_type": "code",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L387"
"source_location": "L390"
},
{
"id": "guards_beforeeach_handlerootpathredirect",
"label": "handleRootPathRedirect()",
"file_type": "code",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L405"
"source_location": "L408"
},
{
"id": "guards_beforeeach_isunauthorizederror",
"label": "isUnauthorizedError()",
"file_type": "code",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L422"
"source_location": "L425"
},
{
"id": "router_guards_aftereach_ts",
@@ -33675,7 +33668,7 @@
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L297",
"source_location": "L310",
"weight": 1.0
},
{
@@ -33684,7 +33677,7 @@
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L298",
"source_location": "L311",
"weight": 1.0
},
{
@@ -33693,7 +33686,7 @@
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L310",
"source_location": "L323",
"weight": 1.0
},
{
@@ -33702,7 +33695,7 @@
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L311",
"source_location": "L324",
"weight": 1.0
},
{
@@ -33711,7 +33704,7 @@
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L321",
"source_location": "L334",
"weight": 1.0
},
{
@@ -33720,7 +33713,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L325",
"source_location": "L338",
"weight": 1.0
},
{
@@ -33729,7 +33722,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L348",
"source_location": "L361",
"weight": 1.0
},
{
@@ -33738,7 +33731,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L354",
"source_location": "L367",
"weight": 1.0
},
{
@@ -33747,7 +33740,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L397",
"source_location": "L410",
"weight": 1.0
},
{
@@ -33756,7 +33749,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L406",
"source_location": "L419",
"weight": 1.0
},
{
@@ -33765,7 +33758,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L412",
"source_location": "L425",
"weight": 1.0
},
{
@@ -33774,7 +33767,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L421",
"source_location": "L434",
"weight": 1.0
},
{
@@ -33783,7 +33776,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L438",
"source_location": "L451",
"weight": 1.0
},
{
@@ -33792,7 +33785,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L443",
"source_location": "L456",
"weight": 1.0
},
{
@@ -33801,7 +33794,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L452",
"source_location": "L465",
"weight": 1.0
},
{
@@ -33810,7 +33803,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L468",
"source_location": "L481",
"weight": 1.0
},
{
@@ -33819,7 +33812,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L479",
"source_location": "L492",
"weight": 1.0
},
{
@@ -33828,7 +33821,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L505",
"source_location": "L518",
"weight": 1.0
},
{
@@ -33837,43 +33830,34 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L545",
"source_location": "L558",
"weight": 1.0
},
{
"source": "views_system_user_index_vue",
"target": "user_index_requiresingleselection",
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L549",
"weight": 1.0
},
{
"source": "views_system_user_index_vue",
"target": "user_index_handletoolbarview",
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L557",
"weight": 1.0
},
{
"source": "views_system_user_index_vue",
"target": "user_index_handletoolbaredit",
"target": "user_index_handlerowdelete",
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L562",
"weight": 1.0
},
{
"source": "views_system_user_index_vue",
"target": "user_index_handlerowresetpwd",
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L570",
"weight": 1.0
},
{
"source": "views_system_user_index_vue",
"target": "user_index_handlebatchdelete",
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L567",
"source_location": "L580",
"weight": 1.0
},
{
@@ -33882,7 +33866,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L586",
"source_location": "L599",
"weight": 1.0
},
{
@@ -33891,7 +33875,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L638",
"source_location": "L651",
"weight": 1.0
},
{
@@ -33900,7 +33884,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L409",
"source_location": "L422",
"weight": 1.0
},
{
@@ -33909,7 +33893,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L440",
"source_location": "L453",
"weight": 1.0
},
{
@@ -33918,7 +33902,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L449",
"source_location": "L462",
"weight": 1.0
},
{
@@ -33927,7 +33911,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L471",
"source_location": "L484",
"weight": 1.0
},
{
@@ -33936,43 +33920,16 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L537",
"source_location": "L550",
"weight": 1.0
},
{
"source": "user_index_handletoolbarview",
"target": "user_index_requiresingleselection",
"source": "user_index_handlerowdelete",
"target": "user_index_loaddata",
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L558",
"weight": 1.0
},
{
"source": "user_index_handletoolbarview",
"target": "user_index_handleview",
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L559",
"weight": 1.0
},
{
"source": "user_index_handletoolbaredit",
"target": "user_index_requiresingleselection",
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L563",
"weight": 1.0
},
{
"source": "user_index_handletoolbaredit",
"target": "user_index_handleedit",
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L564",
"source_location": "L567",
"weight": 1.0
},
{
@@ -33981,7 +33938,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/system/user/index.vue",
"source_location": "L583",
"source_location": "L596",
"weight": 1.0
},
{
@@ -42063,7 +42020,7 @@
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L150",
"source_location": "L146",
"weight": 1.0
},
{
@@ -42072,7 +42029,7 @@
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L187",
"source_location": "L183",
"weight": 1.0
},
{
@@ -42081,7 +42038,7 @@
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L195",
"source_location": "L191",
"weight": 1.0
},
{
@@ -42090,7 +42047,7 @@
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L219",
"source_location": "L215",
"weight": 1.0
},
{
@@ -42099,7 +42056,7 @@
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L241",
"source_location": "L237",
"weight": 1.0
},
{
@@ -42108,7 +42065,7 @@
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L261",
"source_location": "L257",
"weight": 1.0
},
{
@@ -42117,7 +42074,7 @@
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L287",
"source_location": "L283",
"weight": 1.0
},
{
@@ -42126,7 +42083,7 @@
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L298",
"source_location": "L294",
"weight": 1.0
},
{
@@ -42135,7 +42092,7 @@
"relation": "method",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L320",
"source_location": "L316",
"weight": 1.0
},
{
@@ -42216,7 +42173,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L225",
"source_location": "L221",
"weight": 1.0
},
{
@@ -42828,7 +42785,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L376",
"source_location": "L379",
"weight": 1.0
},
{
@@ -42837,7 +42794,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L387",
"source_location": "L390",
"weight": 1.0
},
{
@@ -42846,7 +42803,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L405",
"source_location": "L408",
"weight": 1.0
},
{
@@ -42855,7 +42812,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L422",
"source_location": "L425",
"weight": 1.0
},
{
@@ -42903,22 +42860,22 @@
"source_location": "L276",
"weight": 1.0
},
{
"source": "guards_beforeeach_handledynamicroutes",
"target": "guards_beforeeach_isstaticroute",
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L301",
"weight": 1.0
},
{
"source": "guards_beforeeach_handledynamicroutes",
"target": "guards_beforeeach_closeloading",
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L326",
"source_location": "L284",
"weight": 1.0
},
{
"source": "guards_beforeeach_handledynamicroutes",
"target": "guards_beforeeach_isstaticroute",
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L304",
"weight": 1.0
},
{
@@ -42927,7 +42884,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "router/guards/beforeEach.ts",
"source_location": "L352",
"source_location": "L355",
"weight": 1.0
},
{
@@ -47169,7 +47126,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L327",
"source_location": "L340",
"weight": 1.0
},
{
@@ -47179,7 +47136,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L351",
"source_location": "L364",
"weight": 1.0
},
{
@@ -47189,7 +47146,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L414",
"source_location": "L427",
"weight": 1.0
},
{
@@ -47199,7 +47156,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L424",
"source_location": "L437",
"weight": 1.0
},
{
@@ -47209,7 +47166,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L484",
"source_location": "L497",
"weight": 1.0
},
{
@@ -47219,7 +47176,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L506",
"source_location": "L519",
"weight": 1.0
},
{
@@ -47229,7 +47186,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L510",
"source_location": "L523",
"weight": 1.0
},
{
@@ -47239,7 +47196,27 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L522",
"source_location": "L535",
"weight": 1.0
},
{
"source": "user_index_handlerowdelete",
"target": "api_admin_fetchdeleteuser",
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L564",
"weight": 1.0
},
{
"source": "user_index_handlerowresetpwd",
"target": "api_admin_fetchresetpassword",
"relation": "calls",
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L576",
"weight": 1.0
},
{
@@ -47249,7 +47226,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L579",
"source_location": "L592",
"weight": 1.0
},
{
@@ -47259,7 +47236,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L598",
"source_location": "L611",
"weight": 1.0
},
{
@@ -47269,7 +47246,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/system/user/index.vue",
"source_location": "L640",
"source_location": "L653",
"weight": 1.0
},
{
@@ -49499,7 +49476,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/core/MenuProcessor.ts",
"source_location": "L309",
"source_location": "L305",
"weight": 1.0
},
{
@@ -49599,7 +49576,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L287",
"source_location": "L290",
"weight": 1.0
},
{
@@ -49609,7 +49586,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L292",
"source_location": "L295",
"weight": 1.0
},
{
@@ -49619,7 +49596,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L295",
"source_location": "L298",
"weight": 1.0
},
{
@@ -49629,7 +49606,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L295",
"source_location": "L298",
"weight": 1.0
},
{
@@ -49639,7 +49616,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L313",
"source_location": "L316",
"weight": 1.0
},
{
@@ -49649,7 +49626,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L314",
"source_location": "L317",
"weight": 1.0
},
{
@@ -49659,7 +49636,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L364",
"source_location": "L367",
"weight": 1.0
},
{
@@ -49669,7 +49646,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L378",
"source_location": "L381",
"weight": 1.0
},
{
@@ -49679,7 +49656,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L410",
"source_location": "L413",
"weight": 1.0
},
{
@@ -49689,7 +49666,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "router/guards/beforeEach.ts",
"source_location": "L423",
"source_location": "L426",
"weight": 1.0
},
{
+97 -97
View File
@@ -1,11 +1,11 @@
# Graph Report - src (2026-06-13)
## Corpus Check
- Large corpus: 719 files · ~476,340 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
- Large corpus: 719 files · ~476,415 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
## Summary
- 2251 nodes · 2973 edges · 49 communities detected
- Extraction: 77% EXTRACTED · 23% INFERRED · 0% AMBIGUOUS · INFERRED: 670 edges (avg confidence: 0.8)
- 2250 nodes · 2971 edges · 49 communities detected
- Extraction: 77% EXTRACTED · 23% INFERRED · 0% AMBIGUOUS · INFERRED: 672 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
## Community Hubs (Navigation)
@@ -41,19 +41,19 @@
- [[_COMMUNITY_Community 29|Community 29]]
- [[_COMMUNITY_Community 30|Community 30]]
- [[_COMMUNITY_Community 31|Community 31]]
- [[_COMMUNITY_Community 33|Community 33]]
- [[_COMMUNITY_Community 32|Community 32]]
- [[_COMMUNITY_Community 34|Community 34]]
- [[_COMMUNITY_Community 35|Community 35]]
- [[_COMMUNITY_Community 36|Community 36]]
- [[_COMMUNITY_Community 37|Community 37]]
- [[_COMMUNITY_Community 38|Community 38]]
- [[_COMMUNITY_Community 39|Community 39]]
- [[_COMMUNITY_Community 40|Community 40]]
- [[_COMMUNITY_Community 41|Community 41]]
- [[_COMMUNITY_Community 43|Community 43]]
- [[_COMMUNITY_Community 44|Community 44]]
- [[_COMMUNITY_Community 42|Community 42]]
- [[_COMMUNITY_Community 45|Community 45]]
- [[_COMMUNITY_Community 46|Community 46]]
- [[_COMMUNITY_Community 47|Community 47]]
- [[_COMMUNITY_Community 49|Community 49]]
- [[_COMMUNITY_Community 48|Community 48]]
- [[_COMMUNITY_Community 50|Community 50]]
- [[_COMMUNITY_Community 51|Community 51]]
- [[_COMMUNITY_Community 52|Community 52]]
- [[_COMMUNITY_Community 54|Community 54]]
@@ -72,6 +72,8 @@
10. `scopeQuery()` - 14 edges
## Surprising Connections (you probably didn't know these)
- `handleBatchDelete()` --calls--> `withFullscreenLoading()` [INFERRED]
views/basic-info/customer/index.vue → utils/fullscreen-loading.ts
- `handleReceptionAttachmentDownload()` --calls--> `downloadAttachmentFile()` [INFERRED]
views/quality-inspection/qc-work-order/QcWorkOrderTaskSubList.vue → utils/download-attachment.ts
- `handleDownloadAttachment()` --calls--> `downloadAttachmentFile()` [INFERRED]
@@ -80,22 +82,20 @@
utils/http/index.ts → views/operations/storage-facility/index.vue
- `handleUnauthorizedResponse()` --calls--> `fetchRefreshToken()` [INFERRED]
utils/http/index.ts → api/auth.ts
- `toLogin()` --calls--> `logOut()` [INFERRED]
components/core/layouts/art-screen-lock/index.vue → utils/http/index.ts
## Communities
### Community 0 - "Community 0"
Cohesion: 0.01
Nodes (119): fetchAccessLogList(), fetchActiveRegions(), fetchCategoryList(), fetchCategoryParameters(), fetchCellProductPriceList(), fetchCellProductSpecList(), fetchCellProductTypeList(), fetchCellSampleTypeList() (+111 more)
Nodes (163): fetchAccessLogList(), fetchActiveRegions(), fetchCategoryList(), fetchCategoryParameters(), fetchCellProductPriceList(), fetchCellProductSpecList(), fetchCellProductTypeList(), fetchCellSampleTypeList() (+155 more)
### Community 1 - "Community 1"
Cohesion: 0.02
Nodes (42): fetchAllConsumablePacks(), fetchAllConsumables(), fetchAllConsumableStockLogs(), fetchAllEquipments(), fetchAllOutputTypes(), fetchAllProcessCategories(), fetchAllProcesses(), fetchAllReagents() (+34 more)
Cohesion: 0.01
Nodes (10): fetchDeleteProjectSystemItem(), fetchDeptTree(), fetchGetRoleList(), fetchNotDeletedRegions(), fetchPostBoundUserIds(), fetchRegionList(), if(), loadRoleList() (+2 more)
### Community 2 - "Community 2"
Cohesion: 0.03
Nodes (76): batchSavePilotCheckup(), deletePilotCheckupActualItem(), fetchCheckupInstitutionList(), fetchCheckupInstitutionPackageDetail(), fetchCheckupInstitutionPackages(), fetchCheckupInstitutionProjects(), fetchPilotCheckupDetail(), markPilotCheckupChecked() (+68 more)
Nodes (82): batchSavePilotCheckup(), deletePilotCheckupActualItem(), fetchCheckupInstitutionList(), fetchCheckupInstitutionPackageDetail(), fetchCheckupInstitutionPackages(), fetchCheckupInstitutionProjects(), fetchPilotCheckupActualItems(), fetchPilotCheckupDetail() (+74 more)
### Community 3 - "Community 3"
Cohesion: 0.03
@@ -103,100 +103,100 @@ Nodes (40): handleBlur(), handleFocus(), handleInput(), fetchEthnicList(), fetch
### Community 4 - "Community 4"
Cohesion: 0.04
Nodes (30): fetchGetUserInfo(), ComponentLoader, IframeRouteManager, RouteRegistry, RouteTransformer, useCommon(), setupAfterEachGuard(), closeLoading() (+22 more)
Nodes (33): fetchGetMenuList(), fetchGetMenuCodes(), fetchGetUserInfo(), IframeRouteManager, MenuProcessor, RouteRegistry, useAppMode(), useAuth() (+25 more)
### Community 5 - "Community 5"
Cohesion: 0.03
Nodes (29): fetchAttachmentDownloadUrl(), fullFileUrl(), handleDownloadAttachment(), handlePreviewAttachment(), isVideoFile(), formatTempEmptyField(), handleReceptionAttachmentDownload(), shouldShowTempEmptyField() (+21 more)
Cohesion: 0.05
Nodes (54): fetchUploadAttachment(), reload(), handleReportUpload(), handleReportUpload(), handleMenuJump(), openExternalLink(), async(), for() (+46 more)
### Community 6 - "Community 6"
Cohesion: 0.04
Nodes (33): collectIds(), useSettingsHandlers(), useSettingsPanel(), useSettingsState(), RoutePermissionValidator, useCeremony(), useTheme(), for() (+25 more)
Nodes (38): fetchUserOptions(), submitOutboundReleaseReview(), fetchConsumablePackDetail(), fetchConsumablePackList(), fetchCreateConsumablePack(), fetchUpdateConsumablePack(), fetchStorageReleaseReviewDetail(), fetchStorageReleaseReviewList() (+30 more)
### Community 7 - "Community 7"
Cohesion: 0.04
Nodes (28): fetchUserOptions(), fetchOutboundReleaseMaterial(), fetchOutboundReleaseReviewDetail(), fetchOutboundReleaseReviewList(), fetchReleaseReviewList(), submitOutboundReleaseReview(), fetchStorageReleaseReviewDetail(), fetchStorageReleaseReviewList() (+20 more)
Cohesion: 0.03
Nodes (29): fetchAttachmentDownloadUrl(), fullFileUrl(), handleDownloadAttachment(), handlePreviewAttachment(), isVideoFile(), formatTempEmptyField(), handleReceptionAttachmentDownload(), shouldShowTempEmptyField() (+21 more)
### Community 8 - "Community 8"
Cohesion: 0.06
Nodes (47): fetchUploadAttachment(), FireworkSystem, reload(), handleReportUpload(), handleReportUpload(), handleMenuJump(), openExternalLink(), async() (+39 more)
### Community 9 - "Community 9"
Cohesion: 0.05
Nodes (46): fetchCreateMenu(), fetchCreateUser(), fetchDeleteMenu(), fetchDeleteUser(), fetchDeptTree(), fetchMenuTree(), fetchPostBoundUserIds(), fetchResetPassword() (+38 more)
### Community 10 - "Community 10"
Cohesion: 0.06
Nodes (11): fetchGetLatestUpgradeLog(), getDefaultLanguage(), checkStorageCompatibility(), StorageConfig, getSystemStorage(), getSysVersion(), StorageKeyManager, StorageCompatibilityManager (+3 more)
### Community 11 - "Community 11"
### Community 9 - "Community 9"
Cohesion: 0.06
Nodes (34): fetchCreateCustomer(), fetchCustomerList(), fetchDeleteCustomer(), fetchUpdateCustomer(), updateInfusionScheduleStatus(), fetchCreateProductionWorkOrder(), fetchProductionWorkOrderCellProductOptions(), fetchProductionWorkOrderDetail() (+26 more)
Nodes (35): fetchCreateCustomer(), fetchCustomerList(), fetchDeleteCustomer(), fetchUpdateCustomer(), updateInfusionScheduleStatus(), fetchCreateProductionWorkOrder(), fetchProductionWorkOrderCellProductOptions(), fetchProductionWorkOrderDetail() (+27 more)
### Community 12 - "Community 12"
### Community 10 - "Community 10"
Cohesion: 0.05
Nodes (25): collectIds(), useSettingsHandlers(), useSettingsPanel(), useSettingsState(), RoutePermissionValidator, useCeremony(), useTheme(), walk() (+17 more)
### Community 11 - "Community 11"
Cohesion: 0.05
Nodes (25): fetchClinicalPaymentDetail(), fetchClinicalPayments(), fetchClinicalReceiptConfirmed(), fetchClinicalReceiptPending(), fetchClinicalRefundConfirmed(), fetchClinicalRefundPending(), fetchOrderAdjusts(), fetchOrderDetail() (+17 more)
### Community 13 - "Community 13"
Cohesion: 0.07
Nodes (23): fetchGetMenuList(), fetchGetMenuCodes(), fetchLogin(), fetchRefreshToken(), fetchUpdateProfile(), fetchUploadProfileAvatar(), MenuProcessor, useAppMode() (+15 more)
### Community 14 - "Community 14"
Cohesion: 0.06
Nodes (28): fetchFullmoonTodoList(), fetchUpdateFullmoonTodoInsurance(), fetchCollectionProtocolAuditList(), fetchCollectionProtocolDetail(), fetchCollectionProtocolList(), fetchPaymentDetailList(), fetchReceiptConfirmedList(), fetchReceiptConfirmList() (+20 more)
### Community 15 - "Community 15"
### Community 12 - "Community 12"
Cohesion: 0.07
Nodes (36): fetchAddTaskStep(), fetchCopyTaskStep(), fetchDeleteTaskStep(), fetchForwardProductionTask(), fetchMyProductionTasks(), fetchProductionTaskDetail(), fetchProductionTaskList(), fetchReassignProductionTask() (+28 more)
### Community 16 - "Community 16"
### Community 13 - "Community 13"
Cohesion: 0.1
Nodes (2): WebSocketClient, TableCache
### Community 17 - "Community 17"
### Community 14 - "Community 14"
Cohesion: 0.07
Nodes (21): auditorDisplay(), dash(), expressName(), formatYm(), formatYmd(), sampleTypeName(), siteName(), unitName() (+13 more)
### Community 18 - "Community 18"
Cohesion: 0.06
Nodes (21): fetchCreateProductionMaterial(), fetchMyProductionMaterialUsageList(), fetchProductionMaterialBatchList(), fetchProductionMaterialBatchOptions(), fetchProductionMaterialFormula(), fetchProductionMaterialLinkedStepUsages(), fetchProductionMaterialList(), fetchProductionMaterialOptions() (+13 more)
### Community 19 - "Community 19"
### Community 15 - "Community 15"
Cohesion: 0.06
Nodes (29): fetchCreateSite(), fetchDeleteSite(), fetchDictDataOptions(), fetchSiteList(), fetchUpdateSite(), fetchUserList(), formatHandoverUserLabel(), formatNowDatetime() (+21 more)
### Community 20 - "Community 20"
### Community 16 - "Community 16"
Cohesion: 0.06
Nodes (21): fetchCreateProductionMaterial(), fetchMyProductionMaterialUsageList(), fetchProductionMaterialBatchList(), fetchProductionMaterialBatchOptions(), fetchProductionMaterialFormula(), fetchProductionMaterialLinkedStepUsages(), fetchProductionMaterialList(), fetchProductionMaterialOptions() (+13 more)
### Community 17 - "Community 17"
Cohesion: 0.09
Nodes (31): base64ToBytes(), bytesToBase64(), decryptJson(), deriveKey(), encryptJson(), fromBase64Url(), hexToBytes(), sha256Hex() (+23 more)
### Community 21 - "Community 21"
### Community 18 - "Community 18"
Cohesion: 0.07
Nodes (13): maskIdCard(), buildBasicExperimentApplicationFields(), buildDefaultApplicationFields(), buildOutboundPilotContextSections(), applicationStatusLabel(), applicationStatusTagType(), infusionMethodLabel(), infusionStatusLabel() (+5 more)
### Community 22 - "Community 22"
### Community 19 - "Community 19"
Cohesion: 0.09
Nodes (28): completePilotApplication(), deletePilotApplication(), fetchPilotApplicationList(), startPilotApplication(), voidPilotApplication(), clearTableSelection(), handleBatchComplete(), handleBatchStart() (+20 more)
### Community 23 - "Community 23"
### Community 20 - "Community 20"
Cohesion: 0.08
Nodes (13): bindPageHeightListeners(), handleReset(), handleSearch(), updatePageHeight(), bindPageHeightListeners(), handleReset(), handleSearch(), syncAppliedFilters() (+5 more)
### Community 24 - "Community 24"
### Community 21 - "Community 21"
Cohesion: 0.11
Nodes (21): fetchFullmoonTodoList(), fetchUpdateFullmoonTodoInsurance(), fetchCollectionProtocolDetail(), buildInsuranceAttachmentsValue(), buildInsurancePayload(), formatYmdFromAny(), fullFileUrl(), handleBatchEdit() (+13 more)
### Community 22 - "Community 22"
Cohesion: 0.11
Nodes (19): fetchCreateMenu(), fetchDeleteMenu(), fetchMenuTree(), fetchUpdateMenu(), postorder(), preorder(), applyTreeExpand(), handleAdd() (+11 more)
### Community 23 - "Community 23"
Cohesion: 0.09
Nodes (11): fetchDeleteQcMaterialBatch(), fetchQcMaterialBatchList(), fetchQcMaterialBatchOptions(), fetchQcMaterialList(), fetchQcMaterialOptions(), fetchUpdateQcMaterialBatch(), handleDelete(), handleReset() (+3 more)
### Community 24 - "Community 24"
Cohesion: 0.13
Nodes (18): fetchLogin(), fetchRefreshToken(), fetchUpdateProfile(), fetchUploadProfileAvatar(), buildWebEncryptedLoginBody(), defaultAvatarPathByRole(), hasCustomUserAvatar(), normalizeAvatarStorageKey() (+10 more)
### Community 25 - "Community 25"
Cohesion: 0.11
Nodes (21): fetchCreateUser(), fetchDeleteUser(), fetchResetPassword(), fetchRoleOptions(), fetchUpdateUser(), fetchUserDetail(), formatUserDeptDisplay(), handleAdd() (+13 more)
### Community 26 - "Community 26"
Cohesion: 0.12
Nodes (15): addCopyButton(), highlightCode(), insertLineNumbers(), isBlockProcessed(), markBlockAsProcessed(), processBlock(), setupHighlightDirective(), setupRippleDirective() (+7 more)
### Community 26 - "Community 26"
### Community 27 - "Community 27"
Cohesion: 0.16
Nodes (14): fetchCreateEnvDetectItem(), fetchDeleteEnvDetectItem(), fetchEnvDetectItemDetail(), fetchEnvDetectItemList(), fetchEnvDetectItemsActive(), fetchUpdateEnvDetectItem(), handleAdd(), handleBatchDelete() (+6 more)
### Community 27 - "Community 27"
Cohesion: 0.12
Nodes (12): fetchApproveTask(), fetchBusinessAllTasks(), fetchCompletedTasks(), fetchDesignerData(), fetchInstanceDetail(), fetchMyInstances(), fetchPendingTasks(), fetchProcessDefList() (+4 more)
### Community 28 - "Community 28"
Cohesion: 0.13
Nodes (5): canDeleteWorkOrder(), canDispatchTask(), formatTempEmptyField(), hasMoreActions(), shouldShowTempEmptyField()
@@ -206,65 +206,65 @@ Cohesion: 0.16
Nodes (10): useTable(), useTableImpl(), getColumnChecks(), useTableColumns(), createErrorHandler(), createSmartDebounce(), defaultResponseAdapter(), extractPagination() (+2 more)
### Community 30 - "Community 30"
Cohesion: 0.2
Nodes (2): ComponentLoader, RouteTransformer
### Community 31 - "Community 31"
Cohesion: 0.27
Nodes (14): useChart(), useChartComponent(), useChartOps(), colourBlend(), getCssVar(), getDarkColor(), getLightColor(), handleElementThemeColor() (+6 more)
### Community 31 - "Community 31"
### Community 32 - "Community 32"
Cohesion: 0.18
Nodes (5): fetchServiceOrderTxnList(), handleReset(), handleSearch(), handleTabChange(), loadData()
### Community 33 - "Community 33"
### Community 34 - "Community 34"
Cohesion: 0.17
Nodes (3): fetchResearchDonationAuditList(), fetchResearchDonationDetail(), fetchResearchDonationList()
### Community 34 - "Community 34"
### Community 35 - "Community 35"
Cohesion: 0.25
Nodes (2): handleTouchEnd(), setTransition()
### Community 36 - "Community 36"
Cohesion: 0.28
Nodes (1): FireworkSystem
### Community 38 - "Community 38"
Cohesion: 0.39
Nodes (6): isIgnorableScriptError(), normalizeErrorMessage(), registerPromiseErrorHandler(), registerResourceErrorHandler(), scriptErrorHandler(), setupErrorHandle()
### Community 37 - "Community 37"
### Community 39 - "Community 39"
Cohesion: 0.36
Nodes (1): TableHeightCalculator
### Community 38 - "Community 38"
### Community 40 - "Community 40"
Cohesion: 0.33
Nodes (2): logApiCryptoBootInfo(), maskSecret()
### Community 39 - "Community 39"
### Community 41 - "Community 41"
Cohesion: 0.29
Nodes (2): fetchMaterialStockCheckDetail(), fetchMaterialStockCheckList()
### Community 40 - "Community 40"
Cohesion: 0.29
Nodes (2): fetchQcMaterialStockCheckDetail(), fetchQcMaterialStockCheckList()
### Community 41 - "Community 41"
### Community 42 - "Community 42"
Cohesion: 0.47
Nodes (3): isPaymentDueWithinWarnWindow(), parsePaymentDueYmd(), startOfLocalDay()
### Community 43 - "Community 43"
Cohesion: 0.33
Nodes (2): fetchQcThirdPartyItemList(), fetchQcThirdPartyItemsActive()
### Community 44 - "Community 44"
Cohesion: 0.33
Nodes (2): fetchQcLabTestItemList(), fetchQcLabTestItemsActive()
### Community 46 - "Community 46"
### Community 45 - "Community 45"
Cohesion: 0.5
Nodes (2): formatProtocolDocDeleteConfirm(), formatProtocolDocSubject()
### Community 47 - "Community 47"
### Community 46 - "Community 46"
Cohesion: 0.5
Nodes (2): focusInput(), handleKeydown()
### Community 49 - "Community 49"
### Community 48 - "Community 48"
Cohesion: 0.67
Nodes (2): if(), logSidebarMenu()
### Community 50 - "Community 50"
Cohesion: 0.5
Nodes (1): fetchStorageEntrySmsList()
### Community 51 - "Community 51"
Cohesion: 0.5
Nodes (1): fetchSampleSmsNotificationList()
@@ -282,27 +282,27 @@ Cohesion: 1.0
Nodes (2): copyTextToClipboard(), copyTextWithFallback()
## Knowledge Gaps
- **Thin community `Community 16`** (42 nodes): `WebSocketClient`, `.calculateReconnectDelay()`, `.clearAllTimers()`, `.clearConnectionTimers()`, `.clearTimer()`, `.close()`, `.closeCurrentSocketForReconnect()`, `.connect()`, `.connectionStatusText()`, `.constructor()`, `.destroyInstance()`, `.flushMessageQueue()`, `.getInstance()`, `.getReadyStateText()`, `.handleClose()`, `.handleConnectionTimeout()`, `.handleError()`, `.handleMessage()`, `.handleOpen()`, `.init()`, `.isWebSocketConnected()`, `.reconnect()`, `.resetHeartbeat()`, `.send()`, `.startHeartbeat()`, `.startPing()`, `TableCache`, `.cleanupExpired()`, `.clear()`, `.clearByTags()`, `.clearCurrentSearch()`, `.clearPagination()`, `.constructor()`, `.evictLRU()`, `.generateKey()`, `.generateTags()`, `.get()`, `.getStats()`, `.log()`, `.set()`, `index.ts`, `tableCache.ts`
- **Thin community `Community 13`** (42 nodes): `WebSocketClient`, `.calculateReconnectDelay()`, `.clearAllTimers()`, `.clearConnectionTimers()`, `.clearTimer()`, `.close()`, `.closeCurrentSocketForReconnect()`, `.connect()`, `.connectionStatusText()`, `.constructor()`, `.destroyInstance()`, `.flushMessageQueue()`, `.getInstance()`, `.getReadyStateText()`, `.handleClose()`, `.handleConnectionTimeout()`, `.handleError()`, `.handleMessage()`, `.handleOpen()`, `.init()`, `.isWebSocketConnected()`, `.reconnect()`, `.resetHeartbeat()`, `.send()`, `.startHeartbeat()`, `.startPing()`, `TableCache`, `.cleanupExpired()`, `.clear()`, `.clearByTags()`, `.clearCurrentSearch()`, `.clearPagination()`, `.constructor()`, `.evictLRU()`, `.generateKey()`, `.generateTags()`, `.get()`, `.getStats()`, `.log()`, `.set()`, `index.ts`, `tableCache.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 34`** (9 nodes): `cleanupEventListeners()`, `handleTouchEnd()`, `handleTouchMove()`, `handleTouchStart()`, `handleWheelScroll()`, `if()`, `setTransition()`, `setupEventListeners()`, `index.vue`
- **Thin community `Community 30`** (17 nodes): `ComponentLoader`, `.constructor()`, `.createEmptyComponent()`, `.createErrorComponent()`, `.load()`, `.loadIframe()`, `.loadLayout()`, `.load()`, `RouteTransformer`, `.extractFirstSegment()`, `.handleFirstLevelRoute()`, `.handleIframeRoute()`, `.handleNormalRoute()`, `.isFirstLevelRoute()`, `.transform()`, `ComponentLoader.ts`, `RouteTransformer.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 37`** (8 nodes): `TableHeightCalculator`, `.calculate()`, `.calculateOffset()`, `.calculatePaginationOffset()`, `.constructor()`, `.getHeaderHeight()`, `useTableHeight()`, `useTableHeight.ts`
- **Thin community `Community 35`** (9 nodes): `cleanupEventListeners()`, `handleTouchEnd()`, `handleTouchMove()`, `handleTouchStart()`, `handleWheelScroll()`, `if()`, `setTransition()`, `setupEventListeners()`, `index.vue`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 38`** (7 nodes): `App.vue`, `main.ts`, `refreshButtonAutoIcons()`, `refreshPanelTitleIcons()`, `logApiCryptoBootInfo()`, `maskSecret()`, `console.ts`
- **Thin community `Community 36`** (9 nodes): `FireworkSystem`, `.constructor()`, `.createFirework()`, `.createParticle()`, `.getAvailableParticle()`, `.initializePool()`, `.preloadAllImages()`, `.preloadImage()`, `index.vue`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 39`** (7 nodes): `fetchCancelMaterialStockCheck()`, `fetchCompleteMaterialStockCheck()`, `fetchCreateMaterialStockCheck()`, `fetchMaterialStockCheckDetail()`, `fetchMaterialStockCheckList()`, `fetchSaveMaterialStockCheckUnusedLines()`, `material-stock-check.ts`
- **Thin community `Community 39`** (8 nodes): `TableHeightCalculator`, `.calculate()`, `.calculateOffset()`, `.calculatePaginationOffset()`, `.constructor()`, `.getHeaderHeight()`, `useTableHeight()`, `useTableHeight.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 40`** (7 nodes): `fetchCancelQcMaterialStockCheck()`, `fetchCompleteQcMaterialStockCheck()`, `fetchCreateQcMaterialStockCheck()`, `fetchQcMaterialStockCheckDetail()`, `fetchQcMaterialStockCheckList()`, `fetchSaveQcMaterialStockCheckUnusedLines()`, `qc-material-stock-check.ts`
- **Thin community `Community 40`** (7 nodes): `App.vue`, `main.ts`, `refreshButtonAutoIcons()`, `refreshPanelTitleIcons()`, `logApiCryptoBootInfo()`, `maskSecret()`, `console.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 43`** (6 nodes): `fetchCreateQcThirdPartyItem()`, `fetchDeleteQcThirdPartyItem()`, `fetchQcThirdPartyItemList()`, `fetchQcThirdPartyItemsActive()`, `fetchUpdateQcThirdPartyItem()`, `qc-third-party-item.ts`
- **Thin community `Community 41`** (7 nodes): `fetchCancelMaterialStockCheck()`, `fetchCompleteMaterialStockCheck()`, `fetchCreateMaterialStockCheck()`, `fetchMaterialStockCheckDetail()`, `fetchMaterialStockCheckList()`, `fetchSaveMaterialStockCheckUnusedLines()`, `material-stock-check.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 44`** (6 nodes): `fetchCreateQcLabTestItem()`, `fetchDeleteQcLabTestItem()`, `fetchQcLabTestItemList()`, `fetchQcLabTestItemsActive()`, `fetchUpdateQcLabTestItem()`, `qc-lab-test-item.ts`
- **Thin community `Community 45`** (5 nodes): `formatProtocolDocBatchDeleteConfirm()`, `formatProtocolDocDeleteConfirm()`, `formatProtocolDocSubject()`, `getProtocolDocTypeLabel()`, `protocol-doc-label.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 46`** (5 nodes): `formatProtocolDocBatchDeleteConfirm()`, `formatProtocolDocDeleteConfirm()`, `formatProtocolDocSubject()`, `getProtocolDocTypeLabel()`, `protocol-doc-label.ts`
- **Thin community `Community 46`** (5 nodes): `focusInput()`, `handleKeydown()`, `if()`, `search()`, `index.vue`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 47`** (5 nodes): `focusInput()`, `handleKeydown()`, `if()`, `search()`, `index.vue`
- **Thin community `Community 48`** (4 nodes): `if()`, `logSidebarMenu()`, `index.vue`, `SidebarSubmenu.vue`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 49`** (4 nodes): `if()`, `logSidebarMenu()`, `index.vue`, `SidebarSubmenu.vue`
- **Thin community `Community 50`** (4 nodes): `fetchGenerateStorageEntrySms()`, `fetchStorageEntrySmsList()`, `fetchToggleStorageEntrySmsNotified()`, `storage-entry-sms-notification.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 51`** (4 nodes): `fetchGenerateSms()`, `fetchSampleSmsNotificationList()`, `fetchToggleSmsNotified()`, `sample-sms-notification.ts`
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
@@ -316,12 +316,12 @@ Nodes (2): copyTextToClipboard(), copyTextWithFallback()
## Suggested Questions
_Questions this graph is uniquely positioned to answer:_
- **Why does `get()` connect `Community 0` to `Community 1`, `Community 2`, `Community 3`, `Community 4`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 15`, `Community 18`, `Community 19`, `Community 22`, `Community 24`, `Community 26`, `Community 27`, `Community 31`, `Community 33`, `Community 39`, `Community 40`, `Community 43`, `Community 44`, `Community 51`, `Community 52`?**
_High betweenness centrality (0.319) - this node is a cross-community bridge._
- **Why does `push()` connect `Community 8` to `Community 0`, `Community 1`, `Community 2`, `Community 3`, `Community 5`, `Community 6`, `Community 9`, `Community 10`, `Community 14`, `Community 16`, `Community 18`, `Community 19`, `Community 20`, `Community 21`, `Community 22`, `Community 23`?**
_High betweenness centrality (0.149) - this node is a cross-community bridge._
- **Why does `handleDynamicRoutes()` connect `Community 4` to `Community 13`, `Community 6`?**
_High betweenness centrality (0.039) - this node is a cross-community bridge._
- **Why does `get()` connect `Community 0` to `Community 1`, `Community 2`, `Community 3`, `Community 4`, `Community 5`, `Community 6`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 15`, `Community 16`, `Community 19`, `Community 21`, `Community 22`, `Community 23`, `Community 25`, `Community 27`, `Community 32`, `Community 34`, `Community 41`, `Community 50`, `Community 51`, `Community 52`?**
_High betweenness centrality (0.325) - this node is a cross-community bridge._
- **Why does `push()` connect `Community 5` to `Community 1`, `Community 2`, `Community 3`, `Community 36`, `Community 6`, `Community 7`, `Community 8`, `Community 10`, `Community 13`, `Community 15`, `Community 16`, `Community 17`, `Community 18`, `Community 19`, `Community 20`, `Community 21`?**
_High betweenness centrality (0.150) - this node is a cross-community bridge._
- **Why does `handleDynamicRoutes()` connect `Community 4` to `Community 10`?**
_High betweenness centrality (0.048) - this node is a cross-community bridge._
- **Are the 246 inferred relationships involving `get()` (e.g. with `buildNodeCodePathFromFlat()` and `collectLeafFacilityNodesInTreeOrder()`) actually correct?**
_`get()` has 246 INFERRED edges - model-reasoned connections that need verification._
- **Are the 44 inferred relationships involving `push()` (e.g. with `collectLeafFacilityNodesInTreeOrder()` and `fetchAllPagedRecords()`) actually correct?**
+4 -4
View File
@@ -57,12 +57,12 @@
</div>
<div id="legend"></div>
</div>
<div id="stats">2251 nodes &middot; 2973 edges &middot; 313 communities</div>
<div id="stats">2250 nodes &middot; 2971 edges &middot; 313 communities</div>
</div>
<script>
const RAW_NODES = [{"id": "app_vue", "label": "App.vue", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "App.vue", "community": 38, "community_name": "Community 38", "source_file": "App.vue", "file_type": "code", "degree": 3}, {"id": "src_app_refreshbuttonautoicons", "label": "refreshButtonAutoIcons()", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "refreshButtonAutoIcons()", "community": 38, "community_name": "Community 38", "source_file": "App.vue", "file_type": "code", "degree": 1}, {"id": "src_app_refreshpaneltitleicons", "label": "refreshPanelTitleIcons()", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "refreshPanelTitleIcons()", "community": 38, "community_name": "Community 38", "source_file": "App.vue", "file_type": "code", "degree": 1}, {"id": "main_ts", "label": "main.ts", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 10.4, "font": {"size": 0, "color": "#ffffff"}, "title": "main.ts", "community": 38, "community_name": "Community 38", "source_file": "main.ts", "file_type": "code", "degree": 4}, {"id": "src_main_masksecret", "label": "maskSecret()", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "maskSecret()", "community": 38, "community_name": "Community 38", "source_file": "main.ts", "file_type": "code", "degree": 2}, {"id": "src_main_logapicryptobootinfo", "label": "logApiCryptoBootInfo()", "color": {"background": "#9C755F", "border": "#9C755F", "highlight": {"background": "#ffffff", "border": "#9C755F"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "logApiCryptoBootInfo()", "community": 38, "community_name": "Community 38", "source_file": "main.ts", "file_type": "code", "degree": 2}, {"id": "env_d_ts", "label": "env.d.ts", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "env.d.ts", "community": 86, "community_name": "Community 86", "source_file": "env.d.ts", "file_type": "code", "degree": 0}, {"id": "shims_loose_d_ts", "label": "shims-loose.d.ts", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "shims-loose.d.ts", "community": 87, "community_name": "Community 87", "source_file": "shims-loose.d.ts", "file_type": "code", "degree": 0}, {"id": "directives_index_ts", "label": "index.ts", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "index.ts", "community": 25, "community_name": "Community 25", "source_file": "directives/index.ts", "file_type": "code", "degree": 1}, {"id": "directives_index_setupglobdirectives", "label": "setupGlobDirectives()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.5, "font": {"size": 0, "color": "#ffffff"}, "title": "setupGlobDirectives()", "community": 25, "community_name": "Community 25", "source_file": "directives/index.ts", "file_type": "code", "degree": 5}, {"id": "directives_core_roles_ts", "label": "roles.ts", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "roles.ts", "community": 25, "community_name": "Community 25", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 3}, {"id": "core_roles_checkrolepermission", "label": "checkRolePermission()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "checkRolePermission()", "community": 25, "community_name": "Community 25", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 2}, {"id": "core_roles_removeelement", "label": "removeElement()", "color": {"background": "#EDC948", "border": "#EDC948", "highlight": {"background": "#ffffff", "border": "#EDC948"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "removeElement()", "community": 25, "community_name": "Community 25", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 2}, {"id": "core_roles_setuprolesdirective", "laLine truncated
const RAW_EDGES = [{"from": "app_vue", "to": "src_app_refreshbuttonautoicons", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_vue", "to": "src_app_refreshpaneltitleicons", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_vue", "to": "main_ts", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "utils_sys_console_ts", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "src_main_masksecret", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "src_main_logapicryptobootinfo", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_main_masksecret", "to": "src_main_logapicryptobootinfo", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_index_ts", "to": "directives_index_setupglobdirectives", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_index_setupglobdirectives", "to": "core_auth_setupauthdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "core_roles_setuprolesdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "business_highlight_setuphighlightdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "business_ripple_setuprippledirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_core_roles_ts", "to": "core_roles_checkrolepermission", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_roles_ts", "to": "core_roles_removeelement", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_roles_ts", "to": "core_roles_setuprolesdirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "core_roles_checkrolepermission", "to": "core_roles_removeelement", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_checkauthpermission", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_removeelement", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_setupauthdirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "core_auth_checkauthpermission", "to": "core_auth_removeelement", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_ripple_ts", "to": "business_ripple_setuprippledirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_highlightcode", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_insertlinenumbers", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_addcopybutton", "label": "contains", "title": "contains [EXTRACTED]", "dLine truncated
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Community 0", "count": 363}, {"cid": 1, "color": "#F28E2B", "label": "Community 1", "count": 104}, {"cid": 2, "color": "#E15759", "label": "Community 2", "count": 99}, {"cid": 3, "color": "#76B7B2", "label": "Community 3", "count": 81}, {"cid": 4, "color": "#59A14F", "label": "Community 4", "count": 77}, {"cid": 5, "color": "#EDC948", "label": "Community 5", "count": 72}, {"cid": 6, "color": "#B07AA1", "label": "Community 6", "count": 71}, {"cid": 7, "color": "#FF9DA7", "label": "Community 7", "count": 66}, {"cid": 8, "color": "#9C755F", "label": "Community 8", "count": 64}, {"cid": 9, "color": "#BAB0AC", "label": "Community 9", "count": 61}, {"cid": 10, "color": "#4E79A7", "label": "Community 10", "count": 55}, {"cid": 11, "color": "#F28E2B", "label": "Community 11", "count": 51}, {"cid": 12, "color": "#E15759", "label": "Community 12", "count": 48}, {"cid": 13, "color": "#76B7B2", "label": "Community 13", "count": 47}, {"cid": 14, "color": "#59A14F", "label": "Community 14", "count": 45}, {"cid": 15, "color": "#EDC948", "label": "Community 15", "count": 44}, {"cid": 16, "color": "#B07AA1", "label": "Community 16", "count": 42}, {"cid": 17, "color": "#FF9DA7", "label": "Community 17", "count": 42}, {"cid": 18, "color": "#9C755F", "label": "Community 18", "count": 41}, {"cid": 19, "color": "#BAB0AC", "label": "Community 19", "count": 41}, {"cid": 20, "color": "#4E79A7", "label": "Community 20", "count": 39}, {"cid": 21, "color": "#F28E2B", "label": "Community 21", "count": 36}, {"cid": 22, "color": "#E15759", "label": "Community 22", "count": 35}, {"cid": 23, "color": "#76B7B2", "label": "Community 23", "count": 31}, {"cid": 24, "color": "#59A14F", "label": "Community 24", "count": 27}, {"cid": 25, "color": "#EDC948", "label": "Community 25", "count": 22}, {"cid": 26, "color": "#B07AA1", "label": "Community 26", "count": 19}, {"cid": 27, "color": "#FF9DA7", "label": "Community 27", "count": 19}, {"cid": 28, "color": "#9C755F", "label": "Community 28", "count": 18}, {"cid": 29, "color": "#BAB0AC", "label": "Community 29", "count": 17}, {"cid": 30, "color": "#4E79A7", "label": "Community 30", "count": 16}, {"cid": 31, "color": "#F28E2B", "label": "Community 31", "count": 14}, {"cid": 32, "color": "#E15759", "label": "Community 32", "count": 13}, {"cid": 33, "color": "#76B7B2", "label": "Community 33", "count": 12}, {"cid": 34, "color": "#59A14F", "label": "Community 34", "count": 9}, {"cid": 35, "color": "#EDC948", "label": "Community 35", "count": 9}, {"cid": 36, "color": "#B07AA1", "label": "Community 36", "count": 8}, {"cid": 37, "color": "#FF9DA7", "label": "Community 37", "count": 8}, {"cid": 38, "color": "#9C755F", "label": "Community 38", "count": 7}, {"cid": 39, "color": "#BAB0AC", "label": "Community 39", "count": 7}, {"cid": 40, "color": "#4E79A7", "label": "Community 40", "count": 7}, {"cid": 41, "color": "#F28E2B", "label": "Community 41", "count": 6}, {"cid": 42, "color": "#E15759", "label": "Community 42", "count": 6}, {"cid": 43, "color": "#76B7B2", "label": "Community 43", "count": 6}, {"cid": 44, "color": "#59A14F", "label": "Community 44", "count": 6}, {"cid": 45, "color": "#EDC948", "label": "Community 45", "count": 6}, {"cid": 46, "color": "#B07AA1", "label": "Community 46", "count": 5}, {"cid": 47, "color": "#FF9DA7", "label": "Community 47", "count": 5}, {"cid": 48, "color": "#9C755F", "label": "Community 48", "count": 5}, {"cid": 49, "color": "#BAB0AC", "label": "Community 49", "count": 4}, {"cid": 50, "color": "#4E79A7", "label": "Community 50", "count": 4}, {"cid": 51, "color": "#F28E2B", "label": "Community 51", "count": 4}, {"cid": 52, "color": "#E15759", "label": "Community 52", "count": 4}, {"cid": 53, "color": "#76B7B2", "label": "Community 53", "count": 4}, {"cid": 54, "color": "#59A14F", "label": "Community 54", "count": 3}, {"cid": 55, "color": "#EDC948", "label": "Community 55", "count": 3}, {"cid": 56, "color": "#B07AA1", "label": "Community 56", "count": 3}, {"cid": 57, "color": "#FF9DA7", "label": "Community 57", "count": 3}, {"cid": 58, "color": "#9C755F", "label": "Community 58", "count": 3}, {"cid": 59, "color": "#BAB0AC", "label": "Community 59", "count": 3}, {"cid": 60, "color": "#4E79A7", "label": "Community 60", "count": 3}, {"cid": 61, "color": "#F28E2B", "label": "Community 61", "count": 3}, {"cid": 62, "color": "#E15759", "label": "Community 62", "count": 2}, {"cid": 63, "color": "#76B7B2", "label": "Community 63", "count": 2}, {"cid": 64, "color": "#59A14F", "label": "Community 64", "count": 2}, {"cid": 65, "color": "#EDC948", "label": "Community 65", "count": 2}, {"cid": 66, "color": "#B07AA1", "label": "Community 66", "count": 2}, {"cid": 67, "color": "#FF9DA7", "label": "Community 67", "count": 2}, {"cid": 68, "color": "#9C755F", "label": "Community 68", "count": 2}, {"cid": 69, "color": "#BAB0AC", "label": "Community 69", "count": 2}, {"cid": 70, "color": "#4E79A7", "label": "Community 70", "count": 2Line truncated
const RAW_NODES = [{"id": "app_vue", "label": "App.vue", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "App.vue", "community": 40, "community_name": "Community 40", "source_file": "App.vue", "file_type": "code", "degree": 3}, {"id": "src_app_refreshbuttonautoicons", "label": "refreshButtonAutoIcons()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "refreshButtonAutoIcons()", "community": 40, "community_name": "Community 40", "source_file": "App.vue", "file_type": "code", "degree": 1}, {"id": "src_app_refreshpaneltitleicons", "label": "refreshPanelTitleIcons()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "refreshPanelTitleIcons()", "community": 40, "community_name": "Community 40", "source_file": "App.vue", "file_type": "code", "degree": 1}, {"id": "main_ts", "label": "main.ts", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.4, "font": {"size": 0, "color": "#ffffff"}, "title": "main.ts", "community": 40, "community_name": "Community 40", "source_file": "main.ts", "file_type": "code", "degree": 4}, {"id": "src_main_masksecret", "label": "maskSecret()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "maskSecret()", "community": 40, "community_name": "Community 40", "source_file": "main.ts", "file_type": "code", "degree": 2}, {"id": "src_main_logapicryptobootinfo", "label": "logApiCryptoBootInfo()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "logApiCryptoBootInfo()", "community": 40, "community_name": "Community 40", "source_file": "main.ts", "file_type": "code", "degree": 2}, {"id": "env_d_ts", "label": "env.d.ts", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "env.d.ts", "community": 86, "community_name": "Community 86", "source_file": "env.d.ts", "file_type": "code", "degree": 0}, {"id": "shims_loose_d_ts", "label": "shims-loose.d.ts", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "shims-loose.d.ts", "community": 87, "community_name": "Community 87", "source_file": "shims-loose.d.ts", "file_type": "code", "degree": 0}, {"id": "directives_index_ts", "label": "index.ts", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "index.ts", "community": 26, "community_name": "Community 26", "source_file": "directives/index.ts", "file_type": "code", "degree": 1}, {"id": "directives_index_setupglobdirectives", "label": "setupGlobDirectives()", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 10.5, "font": {"size": 0, "color": "#ffffff"}, "title": "setupGlobDirectives()", "community": 26, "community_name": "Community 26", "source_file": "directives/index.ts", "file_type": "code", "degree": 5}, {"id": "directives_core_roles_ts", "label": "roles.ts", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "roles.ts", "community": 26, "community_name": "Community 26", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 3}, {"id": "core_roles_checkrolepermission", "label": "checkRolePermission()", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "checkRolePermission()", "community": 26, "community_name": "Community 26", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 2}, {"id": "core_roles_removeelement", "label": "removeElement()", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "removeElement()", "community": 26, "community_name": "Community 26", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 2}, {"id": "core_roles_setuprolesdirective", "laLine truncated
const RAW_EDGES = [{"from": "app_vue", "to": "src_app_refreshbuttonautoicons", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_vue", "to": "src_app_refreshpaneltitleicons", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_vue", "to": "main_ts", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "utils_sys_console_ts", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "src_main_masksecret", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "src_main_logapicryptobootinfo", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_main_masksecret", "to": "src_main_logapicryptobootinfo", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_index_ts", "to": "directives_index_setupglobdirectives", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_index_setupglobdirectives", "to": "core_auth_setupauthdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "core_roles_setuprolesdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "business_highlight_setuphighlightdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "business_ripple_setuprippledirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_core_roles_ts", "to": "core_roles_checkrolepermission", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_roles_ts", "to": "core_roles_removeelement", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_roles_ts", "to": "core_roles_setuprolesdirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "core_roles_checkrolepermission", "to": "core_roles_removeelement", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_checkauthpermission", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_removeelement", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_setupauthdirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "core_auth_checkauthpermission", "to": "core_auth_removeelement", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_ripple_ts", "to": "business_ripple_setuprippledirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_highlightcode", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_insertlinenumbers", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_addcopybutton", "label": "contains", "title": "contains [EXTRACTED]", "dLine truncated
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Community 0", "count": 309}, {"cid": 1, "color": "#F28E2B", "label": "Community 1", "count": 199}, {"cid": 2, "color": "#E15759", "label": "Community 2", "count": 108}, {"cid": 3, "color": "#76B7B2", "label": "Community 3", "count": 81}, {"cid": 4, "color": "#59A14F", "label": "Community 4", "count": 81}, {"cid": 5, "color": "#EDC948", "label": "Community 5", "count": 76}, {"cid": 6, "color": "#B07AA1", "label": "Community 6", "count": 75}, {"cid": 7, "color": "#FF9DA7", "label": "Community 7", "count": 72}, {"cid": 8, "color": "#9C755F", "label": "Community 8", "count": 55}, {"cid": 9, "color": "#BAB0AC", "label": "Community 9", "count": 52}, {"cid": 10, "color": "#4E79A7", "label": "Community 10", "count": 50}, {"cid": 11, "color": "#F28E2B", "label": "Community 11", "count": 48}, {"cid": 12, "color": "#E15759", "label": "Community 12", "count": 44}, {"cid": 13, "color": "#76B7B2", "label": "Community 13", "count": 42}, {"cid": 14, "color": "#59A14F", "label": "Community 14", "count": 42}, {"cid": 15, "color": "#EDC948", "label": "Community 15", "count": 41}, {"cid": 16, "color": "#B07AA1", "label": "Community 16", "count": 41}, {"cid": 17, "color": "#FF9DA7", "label": "Community 17", "count": 39}, {"cid": 18, "color": "#9C755F", "label": "Community 18", "count": 36}, {"cid": 19, "color": "#BAB0AC", "label": "Community 19", "count": 35}, {"cid": 20, "color": "#4E79A7", "label": "Community 20", "count": 31}, {"cid": 21, "color": "#F28E2B", "label": "Community 21", "count": 27}, {"cid": 22, "color": "#E15759", "label": "Community 22", "count": 27}, {"cid": 23, "color": "#76B7B2", "label": "Community 23", "count": 27}, {"cid": 24, "color": "#59A14F", "label": "Community 24", "count": 26}, {"cid": 25, "color": "#EDC948", "label": "Community 25", "count": 25}, {"cid": 26, "color": "#B07AA1", "label": "Community 26", "count": 22}, {"cid": 27, "color": "#FF9DA7", "label": "Community 27", "count": 19}, {"cid": 28, "color": "#9C755F", "label": "Community 28", "count": 18}, {"cid": 29, "color": "#BAB0AC", "label": "Community 29", "count": 17}, {"cid": 30, "color": "#4E79A7", "label": "Community 30", "count": 17}, {"cid": 31, "color": "#F28E2B", "label": "Community 31", "count": 16}, {"cid": 32, "color": "#E15759", "label": "Community 32", "count": 14}, {"cid": 33, "color": "#76B7B2", "label": "Community 33", "count": 13}, {"cid": 34, "color": "#59A14F", "label": "Community 34", "count": 12}, {"cid": 35, "color": "#EDC948", "label": "Community 35", "count": 9}, {"cid": 36, "color": "#B07AA1", "label": "Community 36", "count": 9}, {"cid": 37, "color": "#FF9DA7", "label": "Community 37", "count": 9}, {"cid": 38, "color": "#9C755F", "label": "Community 38", "count": 8}, {"cid": 39, "color": "#BAB0AC", "label": "Community 39", "count": 8}, {"cid": 40, "color": "#4E79A7", "label": "Community 40", "count": 7}, {"cid": 41, "color": "#F28E2B", "label": "Community 41", "count": 7}, {"cid": 42, "color": "#E15759", "label": "Community 42", "count": 6}, {"cid": 43, "color": "#76B7B2", "label": "Community 43", "count": 6}, {"cid": 44, "color": "#59A14F", "label": "Community 44", "count": 6}, {"cid": 45, "color": "#EDC948", "label": "Community 45", "count": 5}, {"cid": 46, "color": "#B07AA1", "label": "Community 46", "count": 5}, {"cid": 47, "color": "#FF9DA7", "label": "Community 47", "count": 5}, {"cid": 48, "color": "#9C755F", "label": "Community 48", "count": 4}, {"cid": 49, "color": "#BAB0AC", "label": "Community 49", "count": 4}, {"cid": 50, "color": "#4E79A7", "label": "Community 50", "count": 4}, {"cid": 51, "color": "#F28E2B", "label": "Community 51", "count": 4}, {"cid": 52, "color": "#E15759", "label": "Community 52", "count": 4}, {"cid": 53, "color": "#76B7B2", "label": "Community 53", "count": 4}, {"cid": 54, "color": "#59A14F", "label": "Community 54", "count": 3}, {"cid": 55, "color": "#EDC948", "label": "Community 55", "count": 3}, {"cid": 56, "color": "#B07AA1", "label": "Community 56", "count": 3}, {"cid": 57, "color": "#FF9DA7", "label": "Community 57", "count": 3}, {"cid": 58, "color": "#9C755F", "label": "Community 58", "count": 3}, {"cid": 59, "color": "#BAB0AC", "label": "Community 59", "count": 3}, {"cid": 60, "color": "#4E79A7", "label": "Community 60", "count": 3}, {"cid": 61, "color": "#F28E2B", "label": "Community 61", "count": 3}, {"cid": 62, "color": "#E15759", "label": "Community 62", "count": 2}, {"cid": 63, "color": "#76B7B2", "label": "Community 63", "count": 2}, {"cid": 64, "color": "#59A14F", "label": "Community 64", "count": 2}, {"cid": 65, "color": "#EDC948", "label": "Community 65", "count": 2}, {"cid": 66, "color": "#B07AA1", "label": "Community 66", "count": 2}, {"cid": 67, "color": "#FF9DA7", "label": "Community 67", "count": 2}, {"cid": 68, "color": "#9C755F", "label": "Community 68", "count": 2}, {"cid": 69, "color": "#BAB0AC", "label": "Community 69", "count": 2}, {"cid": 70, "color": "#4E79A7", "label": "Community 70", "count":Line truncated
// HTML-escape helper — prevents XSS when injecting graph data into innerHTML
function esc(s) {
+7 -7
View File
@@ -1,5 +1,5 @@
{
"/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue": 1781333166.1158648,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue": 1781365969.714535,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/main.ts": 1781272556.3662417,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/env.d.ts": 1781272556.3788364,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/shims-loose.d.ts": 1781272556.417826,
@@ -17,8 +17,8 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/common/index.ts": 1781272556.3597305,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/directive/directive.d.ts": 1781272556.3601494,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/api/api.d.ts": 1781272556.3606477,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1781351055.3335295,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1781350874.5994503,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1781365562.1618752,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1781365494.184794,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/store/index.ts": 1781272556.364766,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/router/index.ts": 1781272556.3652694,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/locales/index.ts": 1781272556.3657222,
@@ -303,7 +303,7 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue": 1781272556.763686,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue": 1781272556.767758,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/express/index.vue": 1781272556.7692223,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue": 1781272556.7710505,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue": 1781365961.1319509,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/detail.vue": 1781272556.7742653,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/modules/user-dialog.vue": 1781272556.7718394,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/modules/user-search.vue": 1781272556.7723653,
@@ -453,13 +453,13 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/table.ts": 1781272559.2465377,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/menu.ts": 1781272559.2476027,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/setting.ts": 1781272559.2570925,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts": 1781272559.2584898,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts": 1781365195.1555984,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/routesAlias.ts": 1781272559.2590332,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/index.ts": 1781272559.4304278,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/RouteTransformer.ts": 1781272559.268035,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/RouteValidator.ts": 1781272559.27879,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/ComponentLoader.ts": 1781272559.4059796,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts": 1781272559.41312,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts": 1781364948.4867418,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/RouteRegistry.ts": 1781272559.4170945,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/RoutePermissionValidator.ts": 1781272559.4235668,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/index.ts": 1781272559.424284,
@@ -469,7 +469,7 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/exception.ts": 1781272559.549901,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/routes/staticRoutes.ts": 1781272559.596198,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/routes/asyncRoutes.ts": 1781272559.619745,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts": 1781272559.6741805,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts": 1781364941.580696,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/afterEach.ts": 1781272559.7019026,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/assets/svg/my-copy.svg": 1778582067.9349968,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/assets/svg/search.svg": 1778582067.9393654,
+3
View File
@@ -116,6 +116,9 @@
if (!preferPanelIcon) return
// 已显式使用绿色竖条标题样式,不再注入图标
if (heading.classList.contains(panelTitleBarClass)) return
heading.classList.remove(panelTitleBarClass)
// 已手写 title-ic(例如 delivery-demo)则不干预
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "label": "user.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "pinia", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_enums_appenum", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_worktab", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_types_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_menu", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_storage_storage_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_auth", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_router_routesalias", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_user_avatar", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L27", "weight": 1.0}], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "label": "beforeEach.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L1"}, {"id": "guards_beforeeach_getpendingloading", "label": "getPendingLoading()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L75"}, {"id": "guards_beforeeach_resetpendingloading", "label": "resetPendingLoading()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L82"}, {"id": "guards_beforeeach_getrouteinitfailed", "label": "getRouteInitFailed()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L89"}, {"id": "guards_beforeeach_resetrouteinitstate", "label": "resetRouteInitState()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L96"}, {"id": "guards_beforeeach_setupbeforeeachguard", "label": "setupBeforeEachGuard()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L104"}, {"id": "guards_beforeeach_closeloading", "label": "closeLoading()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L128"}, {"id": "guards_beforeeach_handlerouteguard", "label": "handleRouteGuard()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L140"}, {"id": "guards_beforeeach_handleloginstatus", "label": "handleLoginStatus()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L204"}, {"id": "guards_beforeeach_isstaticroute", "label": "isStaticRoute()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L232"}, {"id": "guards_beforeeach_handledynamicroutes", "label": "handleDynamicRoutes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L262"}, {"id": "guards_beforeeach_fetchuserinfo", "label": "fetchUserInfo()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L379"}, {"id": "guards_beforeeach_resetrouterstate", "label": "resetRouterState()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L390"}, {"id": "guards_beforeeach_handlerootpathredirect", "label": "handleRootPathRedirect()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L408"}, {"id": "guards_beforeeach_isunauthorizederror", "label": "isUnauthorizedError()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L425"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "vue_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L38", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L39", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "nprogress", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_setting", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L42", "weight": 1.0}, {"source": "users_wuzilong_work_00Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L1"}, {"id": "user_index_loadroleoptions", "label": "loadRoleOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L338"}, {"id": "user_index_formatuserdeptdisplay", "label": "formatUserDeptDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L361"}, {"id": "user_index_formatuserroledisplay", "label": "formatUserRoleDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L367"}, {"id": "user_index_filterdeptnode", "label": "filterDeptNode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L410"}, {"id": "user_index_handledeptnodeclick", "label": "handleDeptNodeClick()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L419"}, {"id": "user_index_loaddepttree", "label": "loadDeptTree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L425"}, {"id": "user_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L434"}, {"id": "user_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L451"}, {"id": "user_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L456"}, {"id": "user_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L465"}, {"id": "user_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L481"}, {"id": "user_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L492"}, {"id": "user_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L518"}, {"id": "user_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L558"}, {"id": "user_index_handlerowdelete", "label": "handleRowDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L562"}, {"id": "user_index_handlerowresetpwd", "label": "handleRowResetPwd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L570"}, {"id": "user_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L580"}, {"id": "user_index_handlebatchresetpwd", "label": "handleBatchResetPwd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L599"}, {"id": "user_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L651"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L311", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_diLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_import_components_d_ts", "label": "components.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_core_menuprocessor_ts", "label": "MenuProcessor.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L1"}, {"id": "core_menuprocessor_menuprocessor", "label": "MenuProcessor", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L19"}, {"id": "core_menuprocessor_menuprocessor_normalizemenucode", "label": ".normalizeMenuCode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L24"}, {"id": "core_menuprocessor_menuprocessor_getmenulist", "label": ".getMenuList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L40"}, {"id": "core_menuprocessor_menuprocessor_processfrontendmenu", "label": ".processFrontendMenu()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L60"}, {"id": "core_menuprocessor_menuprocessor_processbackendmenu", "label": ".processBackendMenu()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L92"}, {"id": "core_menuprocessor_menuprocessor_filtermenubyroles", "label": ".filterMenuByRoles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L100"}, {"id": "core_menuprocessor_menuprocessor_filtermenubycodes", "label": ".filterMenuByCodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L120"}, {"id": "core_menuprocessor_menuprocessor_filteremptymenus", "label": ".filterEmptyMenus()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L146"}, {"id": "core_menuprocessor_menuprocessor_validatemenulist", "label": ".validateMenuList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L183"}, {"id": "core_menuprocessor_menuprocessor_normalizemenupaths", "label": ".normalizeMenuPaths()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L191"}, {"id": "core_menuprocessor_menuprocessor_resolvedefaultredirect", "label": ".resolveDefaultRedirect()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L215"}, {"id": "core_menuprocessor_menuprocessor_isnavigableroute", "label": ".isNavigableRoute()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L237"}, {"id": "core_menuprocessor_menuprocessor_validatemenupaths", "label": ".validateMenuPaths()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L257"}, {"id": "core_menuprocessor_menuprocessor_isvalidabsolutepath", "label": ".isValidAbsolutePath()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L283"}, {"id": "core_menuprocessor_menuprocessor_logpatherror", "label": ".logPathError()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L294"}, {"id": "core_menuprocessor_menuprocessor_buildfullpath", "label": ".buildFullPath()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L316"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_core_menuprocessor_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_types_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_core_menuprocessor_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_core_menuprocessor_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_hooks_core_useappmode", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L1"}, {"id": "user_index_loadroleoptions", "label": "loadRoleOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L325"}, {"id": "user_index_formatuserdeptdisplay", "label": "formatUserDeptDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L348"}, {"id": "user_index_formatuserroledisplay", "label": "formatUserRoleDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L354"}, {"id": "user_index_filterdeptnode", "label": "filterDeptNode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L397"}, {"id": "user_index_handledeptnodeclick", "label": "handleDeptNodeClick()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L406"}, {"id": "user_index_loaddepttree", "label": "loadDeptTree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L412"}, {"id": "user_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L421"}, {"id": "user_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L438"}, {"id": "user_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L443"}, {"id": "user_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L452"}, {"id": "user_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L468"}, {"id": "user_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L479"}, {"id": "user_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L505"}, {"id": "user_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L545"}, {"id": "user_index_requiresingleselection", "label": "requireSingleSelection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L549"}, {"id": "user_index_handletoolbarview", "label": "handleToolbarView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L557"}, {"id": "user_index_handletoolbaredit", "label": "handleToolbarEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L562"}, {"id": "user_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L567"}, {"id": "user_index_handlebatchresetpwd", "label": "handleBatchResetPwd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L586"}, {"id": "user_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L638"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L297", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_import_components_d_ts", "label": "components.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "label": "App.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L1"}, {"id": "src_app_refreshbuttonautoicons", "label": "refreshButtonAutoIcons()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L51"}, {"id": "src_app_refreshpaneltitleicons", "label": "refreshPanelTitleIcons()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L110"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "pinia", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "zh_cn", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "en", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_sys", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_ui_animation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_storage", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_hooks_core_usetheme", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "src_app_refreshbuttonautoicons", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L51", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_app_vue", "target": "src_app_refreshpaneltitleicons", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L110", "weight": 1.0}], "raw_calls": [{"caller_nid": "src_app_refreshbuttonautoicons", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L56"}, {"caller_nid": "src_app_refreshbuttonautoicons", "callee": "forEach", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L57"}, {"caller_nid": "src_app_refreshpaneltitleicons", "callee": "forEach", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/App.vue", "source_location": "L113"}]}
+4 -8
View File
@@ -115,24 +115,20 @@ export class MenuProcessor {
}
/**
* 根据 menu code 过滤菜单(仅补齐顶级父菜单)
* 根据 menu code 过滤菜单(保留有权限的叶子及其各级父目录)
*/
private filterMenuByCodes(
menu: AppRouteRecord[],
codes: Set<string>,
level = 1
): AppRouteRecord[] {
private filterMenuByCodes(menu: AppRouteRecord[], codes: Set<string>): AppRouteRecord[] {
return menu.reduce((acc: AppRouteRecord[], item) => {
const rawCode = (item.meta as any)?.menuCode ?? item.name
const code = this.normalizeMenuCode(rawCode)
const hasSelfPermission = !!code && codes.has(code)
const filteredChildren = item.children?.length
? this.filterMenuByCodes(item.children, codes, level + 1)
? this.filterMenuByCodes(item.children, codes)
: item.children
const shouldKeep =
hasSelfPermission ||
(level === 1 && Array.isArray(filteredChildren) && filteredChildren.length > 0)
(Array.isArray(filteredChildren) && filteredChildren.length > 0)
if (shouldKeep) {
acc.push({
+5 -2
View File
@@ -278,9 +278,12 @@ async function handleDynamicRoutes(
// 2. 获取菜单数据
const menuList = await menuProcessor.getMenuList()
// 3. 验证菜单数据
// 3. 验证菜单数据:无可用菜单时跳转 403,而非当作系统错误
if (!menuProcessor.validateMenuList(menuList)) {
throw new Error('获取菜单列表失败,请重新登录')
routeInitInProgress = false
closeLoading()
next({ name: 'Exception403', replace: true })
return
}
// 4. 注册动态路由
+6 -2
View File
@@ -109,9 +109,13 @@ export const useUserStore = defineStore(
* 通知后端撤销 Redis 会话,然后清空所有用户相关状态并跳转到登录页
*/
const logOut = async () => {
// 先通知后端撤销 Redis 会话(不等待结果,失败也不阻塞退出)
// 先通知后端撤销 Redis 会话(须在清空 token 之前完成,否则请求无 Authorization)
if (accessToken.value) {
fetchLogout().catch(() => {})
try {
await fetchLogout()
} catch {
// 登出接口失败不阻塞本地退出
}
}
// 保存当前用户 ID,用于下次登录时判断是否为同一用户
@@ -232,7 +232,7 @@
<el-dialog
v-model="accessLogVisible"
:title="`人员进出记录 — ${accessLogRoom?.roomName || ''}`"
width="960px"
width="1200px"
class="dialog-form-layout"
align-center
destroy-on-close
@@ -477,7 +477,7 @@
<el-dialog
v-model="uvLogVisible"
:title="`紫外线消毒记录 — ${uvLogRoom?.roomName || ''}`"
width="960px"
width="1200px"
class="dialog-form-layout"
align-center
destroy-on-close
+86 -36
View File
@@ -5,7 +5,7 @@
<section class="panel">
<div class="flex gap-4">
<!-- 左侧:组织树 -->
<div class="w-[280px] shrink-0 border-r border-[var(--mint-border)] pr-4">
<div class="user-dept-aside w-[280px] shrink-0 border-r border-[var(--mint-border)] pr-4">
<!-- 标题与搜索同处 panel-top:避免标题栏底边与独立输入框之间出现不可控的视觉断层 -->
<div class="panel-top user-dept-aside__head">
<h2>组织</h2>
@@ -27,14 +27,19 @@
<!-- 右侧:用户列表 -->
<div class="flex-1 min-w-0">
<div class="panel-top">
<h2>用户列表</h2>
<h2 class="title-bar-heading">用户列表</h2>
</div>
<div class="filter-block">
<el-form :model="searchForm" class="filter-form" @submit.prevent>
<div class="filter-grid">
<el-form-item label="关键词">
<el-input v-model="searchForm.keyword" placeholder="账号/姓名/手机号" clearable />
<el-input
v-model="searchForm.keyword"
placeholder="账号/姓名/手机号"
clearable
@keyup.enter="handleSearch"
/>
</el-form-item>
<el-form-item label="状态">
<el-select v-model="searchForm.status" placeholder="请选择" clearable>
@@ -74,22 +79,6 @@
<el-icon><Key /></el-icon>
重置密码
</el-button>
<el-button
class="btn-ghost"
:disabled="selectedRows.length !== 1"
@click="handleToolbarView"
>
<el-icon><View /></el-icon>
查看
</el-button>
<el-button
class="btn-ghost"
:disabled="selectedRows.length !== 1"
@click="handleToolbarEdit"
>
<el-icon><Edit /></el-icon>
编辑
</el-button>
<el-button
class="btn-ghost"
type="danger"
@@ -97,7 +86,7 @@
@click="handleBatchDelete"
>
<el-icon><Delete /></el-icon>
删除
批量删除
</el-button>
</div>
</div>
@@ -177,6 +166,39 @@
align="center"
header-align="center"
/>
<el-table-column
label="操作"
min-width="260"
fixed="right"
align="center"
header-align="center"
>
<template #default="{ row }">
<div style="display: flex; justify-content: center; gap: 8px">
<el-button class="btn-op-item primary" @click="handleView(row)">
<el-icon><View /></el-icon>查看
</el-button>
<el-dropdown trigger="hover" @command="(cmd: string) => handleDropdownCommand(cmd, row)">
<el-button class="btn-op-item">
<el-icon><More /></el-icon>
</el-button>
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item command="edit">
<el-icon><Edit /></el-icon>编辑
</el-dropdown-item>
<el-dropdown-item command="resetPwd">
<el-icon><Key /></el-icon>重置密码
</el-dropdown-item>
<el-dropdown-item command="delete" divided>
<el-icon><Delete /></el-icon>删除
</el-dropdown-item>
</el-dropdown-menu>
</template>
</el-dropdown>
</div>
</template>
</el-table-column>
</el-table>
<div class="pagination list-pager-bar">
@@ -305,7 +327,8 @@
Search,
Key,
Edit,
Delete
Delete,
More
} from '@element-plus/icons-vue'
import SystemViewDialog from '@/components/business/system-view-dialog/index.vue'
import {
@@ -546,22 +569,36 @@
selectedRows.value = rows
}
function requireSingleSelection(action: string): Api.User.UserItem | null {
if (selectedRows.value.length !== 1) {
ElMessage.warning(`请选择一个用户后再${action}`)
return null
async function handleRowDelete(row: Api.User.UserItem) {
await ElMessageBox.confirm(`确定删除用户「${row.nickName}」吗?`, '提示', { type: 'warning' })
await fetchDeleteUser(row.id)
ElMessage.success('删除成功')
selectedRows.value = selectedRows.value.filter((item) => item.id !== row.id)
await loadData()
}
async function handleRowResetPwd(row: Api.User.UserItem) {
await ElMessageBox.confirm(
`确定将用户「${row.nickName}」的密码重置为 111111 吗?`,
'提示',
{ type: 'warning' }
)
await fetchResetPassword(row.id)
ElMessage.success('密码重置成功')
}
function handleDropdownCommand(command: string, row: Api.User.UserItem) {
switch (command) {
case 'edit':
handleEdit(row)
break
case 'resetPwd':
handleRowResetPwd(row)
break
case 'delete':
handleRowDelete(row)
break
}
return selectedRows.value[0]
}
function handleToolbarView() {
const row = requireSingleSelection('查看')
if (row) handleView(row)
}
function handleToolbarEdit() {
const row = requireSingleSelection('编辑')
if (row) handleEdit(row)
}
async function handleBatchDelete() {
@@ -662,6 +699,19 @@
</script>
<style scoped lang="scss">
/* 左栏贴合 panel 左缘圆角,避免直角白底遮住面板左下/左上圆弧 */
.user-dept-aside {
border-radius: var(--mint-radius) 0 0 var(--mint-radius);
overflow: hidden;
background: var(--mint-surface);
}
/* 分栏布局下仅保留右下圆角,避免列表区左下角与侧栏交界处出现多余弧面 */
:deep(.list-wrap),
:deep(.pagination.list-pager-bar) {
border-radius: 0 0 var(--mint-radius) 0;
}
/* 侧栏标题区纵向排布:与全局 panel-top 横排工具栏区分,收紧标题与搜索的间距节奏 */
.user-dept-aside__head {
flex-direction: column;