zlwu hai 5 meses
pai
achega
07ed8c7a60
Modificáronse 92 ficheiros con 786 adicións e 335 borrados
  1. 1 1
      backend/app.pid
  2. 3 13
      backend/app/crud/sample_sms_notification.py
  3. 8 15
      backend/app/crud/storage_entry_sms_notification.py
  4. 86 82
      web-admin/graphify-out/.graphify_analysis.json
  5. 7 0
      web-admin/graphify-out/.graphify_extract.json
  6. 4 4
      web-admin/graphify-out/GRAPH_REPORT.md
  7. 1 1
      web-admin/graphify-out/graph.html
  8. 91 82
      web-admin/graphify-out/graph.json
  9. 73 72
      web-admin/graphify-out/manifest.json
  10. 253 22
      web-admin/src/components/core/views/exception/ArtException.vue
  11. 132 0
      web-admin/src/components/core/views/exception/ExceptionIllustration.vue
  12. 0 0
      web-admin/src/graphify-out/cache/ast/0072b2a8948fe23e63c8999ac257446534691e72c486195a9360ebe426e7212d.json
  13. 1 0
      web-admin/src/graphify-out/cache/ast/00c37503d2dabfa62dc712f4b35fbf6628750c96d13a954edce425d500b850a4.json
  14. 0 0
      web-admin/src/graphify-out/cache/ast/0320bd4fe423dcf4d90a968dfeaedfb243939a2ca78b32e6b409d9c0b19ed56c.json
  15. 1 0
      web-admin/src/graphify-out/cache/ast/044588b545cb8d19162a5962d16904eb258d1cbdf5e179f6be4d39ac47365fde.json
  16. 1 0
      web-admin/src/graphify-out/cache/ast/077c28dba15779e2a67a4a94d35c1d6bbd5043eb457ed18fee9258e07df69975.json
  17. 1 0
      web-admin/src/graphify-out/cache/ast/0b27bc547e176485dbda7afaa52a860a97e5682c4905eb44e60d972d2832ac98.json
  18. 1 0
      web-admin/src/graphify-out/cache/ast/0e24e34c5c9eabea2075a7ca8f57f7b315759bb1e6ea48bf9b8716de11079cbc.json
  19. 0 0
      web-admin/src/graphify-out/cache/ast/0f049ce22cab9ace5ebcd994b2a499abee6f4452bc04903d8fa35d097be6b98f.json
  20. 1 0
      web-admin/src/graphify-out/cache/ast/0faa674a519306ce4877fb26547e95c73ec352b0587fa10ce99f503b81eec333.json
  21. 1 0
      web-admin/src/graphify-out/cache/ast/10e90901145cbd40724beb18e3430c85548ae8f0d5a217005967b7da5e0bd096.json
  22. 1 0
      web-admin/src/graphify-out/cache/ast/1217103dbe144b1ae3d40757a195e1744bd45d0ca00f7fe1efafb9a3afbce8e3.json
  23. 0 0
      web-admin/src/graphify-out/cache/ast/1340a59629df8e19d70e2413528c523114b730c18bd9eb3442757749c216e427.json
  24. 1 0
      web-admin/src/graphify-out/cache/ast/190efe26c19afb6e976f8b855eb66b40c47463dab853fa627b54881f08fe0bfa.json
  25. 0 0
      web-admin/src/graphify-out/cache/ast/1961b36858e0b9b324f7e1bb49417363486fc620697d961a2f2c12db307de237.json
  26. 0 0
      web-admin/src/graphify-out/cache/ast/1b188a76e356c00910b30d152cd8f562ba66efdf518c60805581770e6a72e0d8.json
  27. 0 0
      web-admin/src/graphify-out/cache/ast/1ddc881a3fdf5d4614b39a6105317606d8cd67b9c7544513a370b4bb4a01d786.json
  28. 1 0
      web-admin/src/graphify-out/cache/ast/1f34e6c62246c2b6ba977bd180a061fb131b056a00884592b0c51bebe5efdf93.json
  29. 1 0
      web-admin/src/graphify-out/cache/ast/2332c35b2537f3df87a031c8a54d782ea399cdef4e050724830413be21d0c21a.json
  30. 1 0
      web-admin/src/graphify-out/cache/ast/28d6e354082595b176a736b2bcdd6fcfe9f93ae496d310e890de6bb96dfc5344.json
  31. 1 0
      web-admin/src/graphify-out/cache/ast/2f4a1821efdee87ebbdce18d34b87f475724b35ba63de57282f908c632e3d7d5.json
  32. 1 0
      web-admin/src/graphify-out/cache/ast/42b432a889d589acc63a860a0c39a3d345dfb710f7ae3d8ad8f50b3232a0a39b.json
  33. 1 0
      web-admin/src/graphify-out/cache/ast/47f9ff65ee5114dd90d480ade6cb8cc39661cef990fe0aee251779657bbac5c1.json
  34. 0 0
      web-admin/src/graphify-out/cache/ast/48a8319d12ac7f633b57e0010ad07c7b1e9f11050a2c67d98b379f98e36f5286.json
  35. 0 0
      web-admin/src/graphify-out/cache/ast/494be2f936c9ee88f65b1a6adbf1f1c009380fcadfbbde83311271f41c8b6716.json
  36. 1 0
      web-admin/src/graphify-out/cache/ast/4b160ec5e9657a80c31f4b97ccaa0bdcd3b9854fd509993b9ab89d4a17ba3921.json
  37. 1 0
      web-admin/src/graphify-out/cache/ast/4d6054b77b21ba44862deb3174c252400a870d14ed624eaa245f5a5b37e04f7d.json
  38. 1 0
      web-admin/src/graphify-out/cache/ast/5050247d6983dd63e1052b3063605e680912bafe81176337c9fff6a06686b5fa.json
  39. 1 0
      web-admin/src/graphify-out/cache/ast/5669713c7d04754125e1a52f3748b3ca914677b050046e450cd8c7a6e6c4bd57.json
  40. 0 0
      web-admin/src/graphify-out/cache/ast/5b48933397f159ae91757bcad9566933002ca53787b6af8be7cc8853f7200dfc.json
  41. 1 0
      web-admin/src/graphify-out/cache/ast/5c8b6dd8a777ed2aa0f6f200a7089ef9a84a06f063ac1325ee121997f9ced2d3.json
  42. 0 0
      web-admin/src/graphify-out/cache/ast/5ddd4f204bfb836b4bdaa282262b88615d9193624f2b87b035f0bcc6e0ce7847.json
  43. 1 0
      web-admin/src/graphify-out/cache/ast/69b2e03eca913ed988233f5e14ac1e49491cfc99c701b9c89510f4485d46b9dd.json
  44. 1 0
      web-admin/src/graphify-out/cache/ast/6aff15a880ff8b2972130a917e58ed087c19628389c86589afddb74eb8c068cb.json
  45. 1 0
      web-admin/src/graphify-out/cache/ast/6cf319658214cc87e6c2663e168753dde7b80138ed32e3686177773d43606896.json
  46. 1 0
      web-admin/src/graphify-out/cache/ast/6dfeda98cbcd0411eeb6d4a1c223862cf4b740980e3b24d4e4448ee75ec08e9a.json
  47. 0 0
      web-admin/src/graphify-out/cache/ast/71bea4c8f03516a6591383d0b288be2bbae22bdb51337dd03e9c4056364a4de6.json
  48. 0 0
      web-admin/src/graphify-out/cache/ast/720977b08d462ae53896850bedd7f1ebf4ec0a08df540fbc2c3a86b71772d280.json
  49. 0 0
      web-admin/src/graphify-out/cache/ast/725131afca5628bbfa8c3169a40a02c555f2e122ccbd6c55a3c31205eea986ae.json
  50. 0 0
      web-admin/src/graphify-out/cache/ast/7460aee295cd280c3116cab99a9aca26a0e2255cd1db1d560bb671aa6db00faa.json
  51. 1 0
      web-admin/src/graphify-out/cache/ast/753c2fdb75b5784273f151f56e42793e2527a0abb0ba42db96d53a0dd229cd21.json
  52. 1 0
      web-admin/src/graphify-out/cache/ast/78d3515d03cc24388f4953d90a1d20c3cbefb30f7aab8c62c50d4a6dc870e85a.json
  53. 0 0
      web-admin/src/graphify-out/cache/ast/7e617f4c96c71fad8741dc8c97310f5af39988f2358a340ba2ad31dbc714c4fc.json
  54. 1 0
      web-admin/src/graphify-out/cache/ast/7f7fba5247eb177974cab672ecd1d1f2f053545ca1586e37d2746e9a67fd099a.json
  55. 1 0
      web-admin/src/graphify-out/cache/ast/8435ee9dc41e0f967335b06a644a7a8401fec4dd5a97b418cbc7350b8329c240.json
  56. 1 0
      web-admin/src/graphify-out/cache/ast/86730d7f800caf8913cf71f471ee03fada0499c57b27c4a9cdb85b3c71f19b63.json
  57. 1 0
      web-admin/src/graphify-out/cache/ast/87817030237fa40fb77c27ba939abc353aa4705a7974bc2a7a280237e0a23fc3.json
  58. 1 0
      web-admin/src/graphify-out/cache/ast/8b7212470593a5797c8cb7c68e3da2ab2dc945cac5dd50eb2c7af8467430e5a8.json
  59. 0 0
      web-admin/src/graphify-out/cache/ast/92b76ea267f9e326153dff02ba9f892bec22fe8b974b432669d41d0ac0fab477.json
  60. 1 0
      web-admin/src/graphify-out/cache/ast/94bc146d696ccfc4dc3c14dbdc82324161d6bdbf09551dae5ec8a95de82a6779.json
  61. 1 0
      web-admin/src/graphify-out/cache/ast/9acbeeaf4096c1d0e956f48ecab51f5326f1ba83a14d56d154bd6b873a25a7ed.json
  62. 1 0
      web-admin/src/graphify-out/cache/ast/9cca8511183a655e26b6b2b8c8d2c0c4c920aab833996c3691cf1cdc8eea0da4.json
  63. 1 0
      web-admin/src/graphify-out/cache/ast/a2006f22ce9d964abfec473af4ccf8a50805b50ca85e6d3f04d50f90dc5ce0db.json
  64. 1 0
      web-admin/src/graphify-out/cache/ast/aa71f14b17bec1565cc769bc1ba07e74d59f392fc3d9129173433117df62aeb3.json
  65. 1 0
      web-admin/src/graphify-out/cache/ast/aee1eff7ff8453a70a757c3ee8e9f89b4b57dc28864efb4b4a4bc8598531d83b.json
  66. 1 0
      web-admin/src/graphify-out/cache/ast/b020ac8f0780443633112f11b7b5ca9ab8574fac277c5d63e89f04f3e9f0f9d0.json
  67. 1 0
      web-admin/src/graphify-out/cache/ast/b2fe361f7a9d114776130c0dc17d8e62ba9938e0cccab2988b8d885b9dbf1f03.json
  68. 1 0
      web-admin/src/graphify-out/cache/ast/b3cedd7ff1671556eb09885d106c242103f3356eac40df2b714001b79ee1e991.json
  69. 0 0
      web-admin/src/graphify-out/cache/ast/b7601d79d7e626a4f0dd09873caf3a204d0f164580e2a4398403a7a0c486140b.json
  70. 1 0
      web-admin/src/graphify-out/cache/ast/bc5dbc0dcd7da3fe3fc49cbeed4a09d7ceb3f2a723b8498fe572eafcc1798843.json
  71. 1 0
      web-admin/src/graphify-out/cache/ast/bfb3eb5ad1b50751cb74dd8c73fa94afea8f5f23242c91049061e1b303ca23ae.json
  72. 1 0
      web-admin/src/graphify-out/cache/ast/c220ee3f883c75fb001d6c5ffe6f03bd4135aaaf58498d452ea14ec7758a3171.json
  73. 1 0
      web-admin/src/graphify-out/cache/ast/c6545299c675c9647522a8983f3d6e6fc1131eed66afa813890a32b7a552cace.json
  74. 1 0
      web-admin/src/graphify-out/cache/ast/cb8f27af6531c943949377f41f0ee57bb93981f2db36e0f961e9913eaf4da833.json
  75. 1 0
      web-admin/src/graphify-out/cache/ast/cce7b303d7c48944e62b48cf54189f889dd0116f166b2ff8905d2b19116b3646.json
  76. 1 0
      web-admin/src/graphify-out/cache/ast/cdace11e7ea493bb087649a3b24d772611a66208c2b6c75fb8f3c5db34e5ee97.json
  77. 0 0
      web-admin/src/graphify-out/cache/ast/d3701077fdc6d3b1cd7e1e08848398ff0d1ac08ed6ebd671460e1705240a19f9.json
  78. 1 0
      web-admin/src/graphify-out/cache/ast/d650a1ef73d19f3dff5a0ecd4a30ae18c592f9edadc9cd51708ad90c8fc98e00.json
  79. 0 0
      web-admin/src/graphify-out/cache/ast/dd65f61d89ced5571181c919f01d36163de8ac723fbf26f2a2068664a2920ea3.json
  80. 1 0
      web-admin/src/graphify-out/cache/ast/df1f26b9d820d8a1f8d5f6c150835c7f895d05b664f2d0beda006f7b27784a2b.json
  81. 1 0
      web-admin/src/graphify-out/cache/ast/e1a2ae191f89aef4241b51b769d7d21396bfa1fa5ef1251bf62b115a4c34c363.json
  82. 0 0
      web-admin/src/graphify-out/cache/ast/e34ee99f7f7fdae444b95f4f2e9fa39faa54fbfab6d5fd4ffafe0022910f0d7c.json
  83. 1 0
      web-admin/src/graphify-out/cache/ast/e4d954b74860aba7ece8f83ae1ebcd08f5b814d0d9bb13597d10a81e51d1caf5.json
  84. 1 0
      web-admin/src/graphify-out/cache/ast/f23789989b8e0d79f76256e34f3dc7618df270d6bad5ad974f33be6c6546d4b6.json
  85. 16 3
      web-admin/src/locales/langs/en.json
  86. 16 3
      web-admin/src/locales/langs/zh.json
  87. 1 1
      web-admin/src/router/guards/beforeEach.ts
  88. 2 2
      web-admin/src/router/modules/exception.ts
  89. 16 10
      web-admin/src/router/routes/staticRoutes.ts
  90. 8 8
      web-admin/src/views/exception/403/index.vue
  91. 8 8
      web-admin/src/views/exception/404/index.vue
  92. 8 8
      web-admin/src/views/exception/500/index.vue

+ 1 - 1
backend/app.pid

@@ -1 +1 @@
-43673
+4602

+ 3 - 13
backend/app/crud/sample_sms_notification.py

@@ -5,7 +5,7 @@ import math
 from datetime import datetime
 from typing import Any, Dict, List, Optional, Tuple
 
-from sqlalchemy import and_, func, or_, select as sa_select
+from sqlalchemy import and_, or_
 from sqlalchemy.orm import Session
 
 from app.core.utils import generate_uuid
@@ -77,17 +77,6 @@ def _row_to_dict(
 
 
 def _base_query(db: Session, tenant_no: str):
-    # Subquery: protocol IDs that have at least one cell_storage reception
-    cell_storage_protocol_ids = (
-        db.query(BizSampleReception.collection_protocol_id)
-        .filter(
-            BizSampleReception.reception_source == "cell_storage",
-            BizSampleReception.del_flag == 0,
-        )
-        .distinct()
-        .subquery()
-    )
-
     return (
         db.query(
             BizProtocolSample,
@@ -131,7 +120,6 @@ def _base_query(db: Session, tenant_no: str):
         .filter(
             BizProtocolSample.tenant_no == tenant_no,
             BizProtocolSample.del_flag == 0,
-            BizProtocolSample.collection_protocol_id.in_(sa_select(cell_storage_protocol_ids)),
         )
     )
 
@@ -292,11 +280,13 @@ def list_notifications(
     page_size = min(max(1, page_size), 100)
 
     # MySQL 5.7 不支持 NULLS LAST;用 IS NULL 升序把空接收时间排到最后
+    # 末尾加 BizProtocolSample.id 作为确定性排序,避免相同时间的记录顺序不确定
     rows = (
         q.order_by(
             BizSampleReception.reception_time.is_(None),
             BizSampleReception.reception_time.desc(),
             BizProtocolSample.create_time.desc(),
+            BizProtocolSample.id.desc(),
         )
         .offset((page - 1) * page_size)
         .limit(page_size)

+ 8 - 15
backend/app/crud/storage_entry_sms_notification.py

@@ -5,7 +5,7 @@ import math
 from datetime import datetime
 from typing import Any, Dict, List, Optional, Tuple
 
-from sqlalchemy import and_, func, or_, select as sa_select
+from sqlalchemy import and_, or_
 from sqlalchemy.orm import Session
 
 from app.core.utils import generate_uuid
@@ -14,7 +14,6 @@ from app.models.models import (
     BizCollectionProtocol,
     BizProtocolPartyCustomer,
     BizProtocolSample,
-    BizSampleReception,
     BizStorageEntrySmsNotification,
     BizStorageReleaseReview,
     SysUser,
@@ -83,17 +82,6 @@ def _row_to_dict(
 
 
 def _base_query(db: Session, tenant_no: str):
-    # Subquery: protocol IDs that have at least one cell_storage reception
-    cell_storage_protocol_ids = (
-        db.query(BizSampleReception.collection_protocol_id)
-        .filter(
-            BizSampleReception.reception_source == "cell_storage",
-            BizSampleReception.del_flag == 0,
-        )
-        .distinct()
-        .subquery()
-    )
-
     return (
         db.query(
             BizProtocolSample,
@@ -137,7 +125,6 @@ def _base_query(db: Session, tenant_no: str):
         .filter(
             BizProtocolSample.tenant_no == tenant_no,
             BizProtocolSample.del_flag == 0,
-            BizProtocolSample.collection_protocol_id.in_(sa_select(cell_storage_protocol_ids)),
         )
     )
 
@@ -288,8 +275,14 @@ def list_notifications(
     page = max(1, page)
     page_size = min(max(1, page_size), 100)
 
+    # 末尾加 BizProtocolSample.id 作为确定性排序,避免相同时间的记录顺序不确定
     rows = (
-        q.order_by(BizProtocolSample.create_time.desc())
+        q.order_by(
+            BizStorageReleaseReview.storage_time.is_(None),
+            BizStorageReleaseReview.storage_time.desc(),
+            BizProtocolSample.create_time.desc(),
+            BizProtocolSample.id.desc(),
+        )
         .offset((page - 1) * page_size)
         .limit(page_size)
         .all()

+ 86 - 82
web-admin/graphify-out/.graphify_analysis.json

@@ -1754,249 +1754,252 @@
       "components_core_views_result_artresultpage_vue"
     ],
     "161": [
-      "components_core_views_exception_artexception_vue"
+      "components_core_views_exception_exceptionillustration_vue"
     ],
     "162": [
-      "components_core_views_login_authtopbar_vue"
+      "components_core_views_exception_artexception_vue"
     ],
     "163": [
-      "components_core_views_login_loginleftview_vue"
+      "components_core_views_login_authtopbar_vue"
     ],
     "164": [
-      "components_core_text_effect_art_festival_text_scroll_index_vue"
+      "components_core_views_login_loginleftview_vue"
     ],
     "165": [
-      "components_core_base_art_svg_icon_index_vue"
+      "components_core_text_effect_art_festival_text_scroll_index_vue"
     ],
     "166": [
-      "components_core_base_art_back_to_top_index_vue"
+      "components_core_base_art_svg_icon_index_vue"
     ],
     "167": [
-      "components_core_base_art_logo_index_vue"
+      "components_core_base_art_back_to_top_index_vue"
     ],
     "168": [
-      "components_core_media_art_video_player_index_vue"
+      "components_core_base_art_logo_index_vue"
     ],
     "169": [
-      "components_core_media_art_cutter_img_index_vue"
+      "components_core_media_art_video_player_index_vue"
     ],
     "170": [
-      "components_business_protocol_finance_confirm_fields_index_vue"
+      "components_core_media_art_cutter_img_index_vue"
     ],
     "171": [
-      "components_business_protocol_payment_detail_readonly_index_vue"
+      "components_business_protocol_finance_confirm_fields_index_vue"
     ],
     "172": [
-      "hooks_index_ts"
+      "components_business_protocol_payment_detail_readonly_index_vue"
     ],
     "173": [
-      "views_auth_login_index_vue"
+      "hooks_index_ts"
     ],
     "174": [
-      "views_cell_storage_refund_confirm_index_vue"
+      "views_auth_login_index_vue"
     ],
     "175": [
-      "views_cell_storage_protocol_index_vue"
+      "views_cell_storage_refund_confirm_index_vue"
     ],
     "176": [
-      "views_cell_storage_sample_reception_info_index_vue"
+      "views_cell_storage_protocol_index_vue"
     ],
     "177": [
-      "views_cell_storage_payment_info_index_vue"
+      "views_cell_storage_sample_reception_info_index_vue"
     ],
     "178": [
-      "views_cell_storage_storage_cert_index_vue"
+      "views_cell_storage_payment_info_index_vue"
     ],
     "179": [
-      "views_cell_storage_protocol_audit_index_vue"
+      "views_cell_storage_storage_cert_index_vue"
     ],
     "180": [
-      "views_cell_storage_storage_entry_info_index_vue"
+      "views_cell_storage_protocol_audit_index_vue"
     ],
     "181": [
-      "views_cell_storage_payment_confirm_index_vue"
+      "views_cell_storage_storage_entry_info_index_vue"
     ],
     "182": [
-      "views_cell_storage_material_stock_log_index_vue"
+      "views_cell_storage_payment_confirm_index_vue"
     ],
     "183": [
-      "views_outside_iframe_vue"
+      "views_cell_storage_material_stock_log_index_vue"
     ],
     "184": [
-      "views_operations_demo_index_vue"
+      "views_outside_iframe_vue"
     ],
     "185": [
-      "views_operations_exhibition_appointment_index_vue"
+      "views_operations_demo_index_vue"
     ],
     "186": [
-      "views_research_donation_audit_index_vue"
+      "views_operations_exhibition_appointment_index_vue"
     ],
     "187": [
-      "views_research_donation_list_index_vue"
+      "views_research_donation_audit_index_vue"
     ],
     "188": [
-      "views_dashboard_console_index_vue"
+      "views_research_donation_list_index_vue"
     ],
     "189": [
-      "views_system_tenant_index_vue"
+      "views_dashboard_console_index_vue"
     ],
     "190": [
-      "views_system_order_index_vue"
+      "views_system_tenant_index_vue"
     ],
     "191": [
-      "views_system_unit_index_vue"
+      "views_system_order_index_vue"
     ],
     "192": [
-      "views_system_express_index_vue"
+      "views_system_unit_index_vue"
     ],
     "193": [
-      "views_system_user_detail_vue"
+      "views_system_express_index_vue"
     ],
     "194": [
-      "views_system_workflow_my_applications_index_vue"
+      "views_system_user_detail_vue"
     ],
     "195": [
-      "views_system_workflow_task_pending_index_vue"
+      "views_system_workflow_my_applications_index_vue"
     ],
     "196": [
-      "views_system_workflow_task_completed_index_vue"
+      "views_system_workflow_task_pending_index_vue"
     ],
     "197": [
-      "views_system_workflow_components_processstatustag_vue"
+      "views_system_workflow_task_completed_index_vue"
     ],
     "198": [
-      "views_system_workflow_process_index_vue"
+      "views_system_workflow_components_processstatustag_vue"
     ],
     "199": [
-      "views_system_dict_index_vue"
+      "views_system_workflow_process_index_vue"
     ],
     "200": [
-      "views_system_leave_index_vue"
+      "views_system_dict_index_vue"
     ],
     "201": [
-      "views_production_output_type_index_vue"
+      "views_system_leave_index_vue"
     ],
     "202": [
-      "views_production_cell_product_index_vue"
+      "views_production_output_type_index_vue"
     ],
     "203": [
-      "views_production_sop_index_vue"
+      "views_production_cell_product_index_vue"
     ],
     "204": [
-      "views_production_production_task_index_vue"
+      "views_production_sop_index_vue"
     ],
     "205": [
-      "views_production_reagent_index_vue"
+      "views_production_production_task_index_vue"
     ],
     "206": [
-      "views_production_production_work_order_taskinputenhancedtable_vue"
+      "views_production_reagent_index_vue"
     ],
     "207": [
-      "views_production_production_work_order_taskexecutiondialog_vue"
+      "views_production_production_work_order_taskinputenhancedtable_vue"
     ],
     "208": [
-      "views_production_production_work_order_taskoutputlist_vue"
+      "views_production_production_work_order_taskexecutiondialog_vue"
     ],
     "209": [
-      "views_production_production_work_order_taskoutputproductdialog_vue"
+      "views_production_production_work_order_taskoutputlist_vue"
     ],
     "210": [
-      "views_production_consumable_pack_index_vue"
+      "views_production_production_work_order_taskoutputproductdialog_vue"
     ],
     "211": [
-      "views_production_consumable_index_vue"
+      "views_production_consumable_pack_index_vue"
     ],
     "212": [
-      "views_production_process_index_vue"
+      "views_production_consumable_index_vue"
     ],
     "213": [
-      "views_production_process_category_index_vue"
+      "views_production_process_index_vue"
     ],
     "214": [
-      "views_index_index_vue"
+      "views_production_process_category_index_vue"
     ],
     "215": [
-      "views_quality_inspection_sample_reception_check_item_index_vue"
+      "views_index_index_vue"
     ],
     "216": [
-      "views_quality_inspection_lab_test_item_index_vue"
+      "views_quality_inspection_sample_reception_check_item_index_vue"
     ],
     "217": [
-      "views_quality_inspection_storage_release_review_index_vue"
+      "views_quality_inspection_lab_test_item_index_vue"
     ],
     "218": [
-      "views_quality_inspection_qc_material_usage_index_vue"
+      "views_quality_inspection_storage_release_review_index_vue"
     ],
     "219": [
-      "views_quality_inspection_third_party_company_index_vue"
+      "views_quality_inspection_qc_material_usage_index_vue"
     ],
     "220": [
-      "views_exception_500_index_vue"
+      "views_quality_inspection_third_party_company_index_vue"
     ],
     "221": [
-      "views_exception_403_index_vue"
+      "views_exception_500_index_vue"
     ],
     "222": [
-      "views_exception_404_index_vue"
+      "views_exception_403_index_vue"
     ],
     "223": [
-      "views_pilot_service_cell_product_type_index_vue"
+      "views_exception_404_index_vue"
     ],
     "224": [
-      "views_pilot_service_checkup_institution_index_vue"
+      "views_pilot_service_cell_product_type_index_vue"
     ],
     "225": [
-      "views_pilot_service_checkup_institution_checkuppackagepanel_vue"
+      "views_pilot_service_checkup_institution_index_vue"
     ],
     "226": [
-      "views_pilot_service_cell_product_price_index_vue"
+      "views_pilot_service_checkup_institution_checkuppackagepanel_vue"
     ],
     "227": [
-      "views_pilot_service_cell_product_spec_index_vue"
+      "views_pilot_service_cell_product_price_index_vue"
     ],
     "228": [
-      "views_basic_info_cell_sample_type_index_vue"
+      "views_pilot_service_cell_product_spec_index_vue"
     ],
     "229": [
-      "views_basic_info_insurance_company_index_vue"
+      "views_basic_info_cell_sample_type_index_vue"
     ],
     "230": [
-      "assets_svg_loading_ts"
+      "views_basic_info_insurance_company_index_vue"
     ],
     "231": [
-      "store_modules_worktab_ts"
+      "assets_svg_loading_ts"
     ],
     "232": [
-      "store_modules_table_ts"
+      "store_modules_worktab_ts"
     ],
     "233": [
-      "store_modules_menu_ts"
+      "store_modules_table_ts"
     ],
     "234": [
-      "store_modules_setting_ts"
+      "store_modules_menu_ts"
     ],
     "235": [
-      "store_modules_user_ts"
+      "store_modules_setting_ts"
     ],
     "236": [
-      "router_routesalias_ts"
+      "store_modules_user_ts"
     ],
     "237": [
-      "router_core_index_ts"
+      "router_routesalias_ts"
     ],
     "238": [
-      "router_modules_sqxp_ts"
+      "router_core_index_ts"
     ],
     "239": [
-      "router_modules_index_ts"
+      "router_modules_sqxp_ts"
     ],
     "240": [
-      "router_modules_exception_ts"
+      "router_modules_index_ts"
     ],
     "241": [
-      "router_routes_staticroutes_ts"
+      "router_modules_exception_ts"
     ],
     "242": [
+      "router_routes_staticroutes_ts"
+    ],
+    "243": [
       "router_routes_asyncroutes_ts"
     ]
   },
@@ -2243,7 +2246,8 @@
     "239": 1.0,
     "240": 1.0,
     "241": 1.0,
-    "242": 1.0
+    "242": 1.0,
+    "243": 1.0
   },
   "gods": [
     {

+ 7 - 0
web-admin/graphify-out/.graphify_extract.json

@@ -3122,6 +3122,13 @@
       "source_file": "components/core/views/result/ArtResultPage.vue",
       "source_location": "L1"
     },
+    {
+      "id": "components_core_views_exception_exceptionillustration_vue",
+      "label": "ExceptionIllustration.vue",
+      "file_type": "code",
+      "source_file": "components/core/views/exception/ExceptionIllustration.vue",
+      "source_location": "L1"
+    },
     {
       "id": "components_core_views_exception_artexception_vue",
       "label": "ArtException.vue",

+ 4 - 4
web-admin/graphify-out/GRAPH_REPORT.md

@@ -1,10 +1,10 @@
 # Graph Report - src  (2026-05-23)
 
 ## Corpus Check
-- Large corpus: 594 files · ~323,157 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
+- Large corpus: 595 files · ~325,194 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
 
 ## Summary
-- 1513 nodes · 1894 edges · 39 communities detected
+- 1514 nodes · 1894 edges · 39 communities detected
 - Extraction: 78% EXTRACTED · 22% INFERRED · 0% AMBIGUOUS · INFERRED: 412 edges (avg confidence: 0.8)
 - Token cost: 0 input · 0 output
 
@@ -263,9 +263,9 @@ _Questions this graph is uniquely positioned to answer:_
 - **Why does `get()` connect `Community 0` to `Community 1`, `Community 2`, `Community 3`, `Community 4`, `Community 5`, `Community 6`, `Community 8`, `Community 12`, `Community 13`, `Community 14`, `Community 16`, `Community 17`, `Community 18`, `Community 22`, `Community 24`, `Community 25`, `Community 26`, `Community 32`, `Community 38`, `Community 39`?**
   _High betweenness centrality (0.295) - this node is a cross-community bridge._
 - **Why does `push()` connect `Community 3` to `Community 1`, `Community 7`, `Community 10`, `Community 13`, `Community 17`, `Community 27`?**
-  _High betweenness centrality (0.084) - this node is a cross-community bridge._
+  _High betweenness centrality (0.085) - this node is a cross-community bridge._
 - **Why does `fetchGetLatestUpgradeLog()` connect `Community 17` to `Community 0`?**
-  _High betweenness centrality (0.043) - this node is a cross-community bridge._
+  _High betweenness centrality (0.044) - this node is a cross-community bridge._
 - **Are the 162 inferred relationships involving `get()` (e.g. with `buildTreePathLabelFromFlat()` and `alignFqPaymentDetailsForDisplay()`) actually correct?**
   _`get()` has 162 INFERRED edges - model-reasoned connections that need verification._
 - **Are the 18 inferred relationships involving `push()` (e.g. with `fetchAllPagedRecords()` and `calcInstallmentDueAmounts()`) actually correct?**

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 1 - 1
web-admin/graphify-out/graph.html


+ 91 - 82
web-admin/graphify-out/graph.json

@@ -4017,13 +4017,22 @@
       "community": 160,
       "norm_label": "artresultpage.vue"
     },
+    {
+      "label": "ExceptionIllustration.vue",
+      "file_type": "code",
+      "source_file": "components/core/views/exception/ExceptionIllustration.vue",
+      "source_location": "L1",
+      "id": "components_core_views_exception_exceptionillustration_vue",
+      "community": 161,
+      "norm_label": "exceptionillustration.vue"
+    },
     {
       "label": "ArtException.vue",
       "file_type": "code",
       "source_file": "components/core/views/exception/ArtException.vue",
       "source_location": "L1",
       "id": "components_core_views_exception_artexception_vue",
-      "community": 161,
+      "community": 162,
       "norm_label": "artexception.vue"
     },
     {
@@ -4032,7 +4041,7 @@
       "source_file": "components/core/views/login/AuthTopBar.vue",
       "source_location": "L1",
       "id": "components_core_views_login_authtopbar_vue",
-      "community": 162,
+      "community": 163,
       "norm_label": "authtopbar.vue"
     },
     {
@@ -4041,7 +4050,7 @@
       "source_file": "components/core/views/login/LoginLeftView.vue",
       "source_location": "L1",
       "id": "components_core_views_login_loginleftview_vue",
-      "community": 163,
+      "community": 164,
       "norm_label": "loginleftview.vue"
     },
     {
@@ -4158,7 +4167,7 @@
       "source_file": "components/core/text-effect/art-festival-text-scroll/index.vue",
       "source_location": "L1",
       "id": "components_core_text_effect_art_festival_text_scroll_index_vue",
-      "community": 164,
+      "community": 165,
       "norm_label": "index.vue"
     },
     {
@@ -4167,7 +4176,7 @@
       "source_file": "components/core/base/art-svg-icon/index.vue",
       "source_location": "L1",
       "id": "components_core_base_art_svg_icon_index_vue",
-      "community": 165,
+      "community": 166,
       "norm_label": "index.vue"
     },
     {
@@ -4176,7 +4185,7 @@
       "source_file": "components/core/base/art-back-to-top/index.vue",
       "source_location": "L1",
       "id": "components_core_base_art_back_to_top_index_vue",
-      "community": 166,
+      "community": 167,
       "norm_label": "index.vue"
     },
     {
@@ -4185,7 +4194,7 @@
       "source_file": "components/core/base/art-logo/index.vue",
       "source_location": "L1",
       "id": "components_core_base_art_logo_index_vue",
-      "community": 167,
+      "community": 168,
       "norm_label": "index.vue"
     },
     {
@@ -4194,7 +4203,7 @@
       "source_file": "components/core/media/art-video-player/index.vue",
       "source_location": "L1",
       "id": "components_core_media_art_video_player_index_vue",
-      "community": 168,
+      "community": 169,
       "norm_label": "index.vue"
     },
     {
@@ -4203,7 +4212,7 @@
       "source_file": "components/core/media/art-cutter-img/index.vue",
       "source_location": "L1",
       "id": "components_core_media_art_cutter_img_index_vue",
-      "community": 169,
+      "community": 170,
       "norm_label": "index.vue"
     },
     {
@@ -4212,7 +4221,7 @@
       "source_file": "components/business/protocol-finance-confirm-fields/index.vue",
       "source_location": "L1",
       "id": "components_business_protocol_finance_confirm_fields_index_vue",
-      "community": 170,
+      "community": 171,
       "norm_label": "index.vue"
     },
     {
@@ -4374,7 +4383,7 @@
       "source_file": "components/business/protocol-payment-detail-readonly/index.vue",
       "source_location": "L1",
       "id": "components_business_protocol_payment_detail_readonly_index_vue",
-      "community": 171,
+      "community": 172,
       "norm_label": "index.vue"
     },
     {
@@ -4419,7 +4428,7 @@
       "source_file": "hooks/index.ts",
       "source_location": "L1",
       "id": "hooks_index_ts",
-      "community": 172,
+      "community": 173,
       "norm_label": "index.ts"
     },
     {
@@ -9189,7 +9198,7 @@
       "source_file": "views/auth/login/index.vue",
       "source_location": "L1",
       "id": "views_auth_login_index_vue",
-      "community": 173,
+      "community": 174,
       "norm_label": "index.vue"
     },
     {
@@ -9198,7 +9207,7 @@
       "source_file": "views/cell-storage/refund-confirm/index.vue",
       "source_location": "L1",
       "id": "views_cell_storage_refund_confirm_index_vue",
-      "community": 174,
+      "community": 175,
       "norm_label": "index.vue"
     },
     {
@@ -9207,7 +9216,7 @@
       "source_file": "views/cell-storage/protocol/index.vue",
       "source_location": "L1",
       "id": "views_cell_storage_protocol_index_vue",
-      "community": 175,
+      "community": 176,
       "norm_label": "index.vue"
     },
     {
@@ -9567,7 +9576,7 @@
       "source_file": "views/cell-storage/sample-reception-info/index.vue",
       "source_location": "L1",
       "id": "views_cell_storage_sample_reception_info_index_vue",
-      "community": 176,
+      "community": 177,
       "norm_label": "index.vue"
     },
     {
@@ -9576,7 +9585,7 @@
       "source_file": "views/cell-storage/payment-info/index.vue",
       "source_location": "L1",
       "id": "views_cell_storage_payment_info_index_vue",
-      "community": 177,
+      "community": 178,
       "norm_label": "index.vue"
     },
     {
@@ -9585,7 +9594,7 @@
       "source_file": "views/cell-storage/storage-cert/index.vue",
       "source_location": "L1",
       "id": "views_cell_storage_storage_cert_index_vue",
-      "community": 178,
+      "community": 179,
       "norm_label": "index.vue"
     },
     {
@@ -9594,7 +9603,7 @@
       "source_file": "views/cell-storage/protocol-audit/index.vue",
       "source_location": "L1",
       "id": "views_cell_storage_protocol_audit_index_vue",
-      "community": 179,
+      "community": 180,
       "norm_label": "index.vue"
     },
     {
@@ -9639,7 +9648,7 @@
       "source_file": "views/cell-storage/storage-entry-info/index.vue",
       "source_location": "L1",
       "id": "views_cell_storage_storage_entry_info_index_vue",
-      "community": 180,
+      "community": 181,
       "norm_label": "index.vue"
     },
     {
@@ -9648,7 +9657,7 @@
       "source_file": "views/cell-storage/payment-confirm/index.vue",
       "source_location": "L1",
       "id": "views_cell_storage_payment_confirm_index_vue",
-      "community": 181,
+      "community": 182,
       "norm_label": "index.vue"
     },
     {
@@ -9657,7 +9666,7 @@
       "source_file": "views/cell-storage/material-stock-log/index.vue",
       "source_location": "L1",
       "id": "views_cell_storage_material_stock_log_index_vue",
-      "community": 182,
+      "community": 183,
       "norm_label": "index.vue"
     },
     {
@@ -9666,7 +9675,7 @@
       "source_file": "views/outside/Iframe.vue",
       "source_location": "L1",
       "id": "views_outside_iframe_vue",
-      "community": 183,
+      "community": 184,
       "norm_label": "iframe.vue"
     },
     {
@@ -9675,7 +9684,7 @@
       "source_file": "views/operations/demo/index.vue",
       "source_location": "L1",
       "id": "views_operations_demo_index_vue",
-      "community": 184,
+      "community": 185,
       "norm_label": "index.vue"
     },
     {
@@ -9936,7 +9945,7 @@
       "source_file": "views/operations/exhibition-appointment/index.vue",
       "source_location": "L1",
       "id": "views_operations_exhibition_appointment_index_vue",
-      "community": 185,
+      "community": 186,
       "norm_label": "index.vue"
     },
     {
@@ -9945,7 +9954,7 @@
       "source_file": "views/research-donation/audit/index.vue",
       "source_location": "L1",
       "id": "views_research_donation_audit_index_vue",
-      "community": 186,
+      "community": 187,
       "norm_label": "index.vue"
     },
     {
@@ -9954,7 +9963,7 @@
       "source_file": "views/research-donation/list/index.vue",
       "source_location": "L1",
       "id": "views_research_donation_list_index_vue",
-      "community": 187,
+      "community": 188,
       "norm_label": "index.vue"
     },
     {
@@ -10278,7 +10287,7 @@
       "source_file": "views/dashboard/console/index.vue",
       "source_location": "L1",
       "id": "views_dashboard_console_index_vue",
-      "community": 188,
+      "community": 189,
       "norm_label": "index.vue"
     },
     {
@@ -10287,7 +10296,7 @@
       "source_file": "views/system/tenant/index.vue",
       "source_location": "L1",
       "id": "views_system_tenant_index_vue",
-      "community": 189,
+      "community": 190,
       "norm_label": "index.vue"
     },
     {
@@ -10296,7 +10305,7 @@
       "source_file": "views/system/order/index.vue",
       "source_location": "L1",
       "id": "views_system_order_index_vue",
-      "community": 190,
+      "community": 191,
       "norm_label": "index.vue"
     },
     {
@@ -10305,7 +10314,7 @@
       "source_file": "views/system/unit/index.vue",
       "source_location": "L1",
       "id": "views_system_unit_index_vue",
-      "community": 191,
+      "community": 192,
       "norm_label": "index.vue"
     },
     {
@@ -10431,7 +10440,7 @@
       "source_file": "views/system/express/index.vue",
       "source_location": "L1",
       "id": "views_system_express_index_vue",
-      "community": 192,
+      "community": 193,
       "norm_label": "index.vue"
     },
     {
@@ -10593,7 +10602,7 @@
       "source_file": "views/system/user/detail.vue",
       "source_location": "L1",
       "id": "views_system_user_detail_vue",
-      "community": 193,
+      "community": 194,
       "norm_label": "detail.vue"
     },
     {
@@ -10683,7 +10692,7 @@
       "source_file": "views/system/workflow/my-applications/index.vue",
       "source_location": "L1",
       "id": "views_system_workflow_my_applications_index_vue",
-      "community": 194,
+      "community": 195,
       "norm_label": "index.vue"
     },
     {
@@ -10692,7 +10701,7 @@
       "source_file": "views/system/workflow/task-pending/index.vue",
       "source_location": "L1",
       "id": "views_system_workflow_task_pending_index_vue",
-      "community": 195,
+      "community": 196,
       "norm_label": "index.vue"
     },
     {
@@ -10701,7 +10710,7 @@
       "source_file": "views/system/workflow/task-completed/index.vue",
       "source_location": "L1",
       "id": "views_system_workflow_task_completed_index_vue",
-      "community": 196,
+      "community": 197,
       "norm_label": "index.vue"
     },
     {
@@ -10710,7 +10719,7 @@
       "source_file": "views/system/workflow/components/ProcessStatusTag.vue",
       "source_location": "L1",
       "id": "views_system_workflow_components_processstatustag_vue",
-      "community": 197,
+      "community": 198,
       "norm_label": "processstatustag.vue"
     },
     {
@@ -10764,7 +10773,7 @@
       "source_file": "views/system/workflow/process/index.vue",
       "source_location": "L1",
       "id": "views_system_workflow_process_index_vue",
-      "community": 198,
+      "community": 199,
       "norm_label": "index.vue"
     },
     {
@@ -11124,7 +11133,7 @@
       "source_file": "views/system/dict/index.vue",
       "source_location": "L1",
       "id": "views_system_dict_index_vue",
-      "community": 199,
+      "community": 200,
       "norm_label": "index.vue"
     },
     {
@@ -11133,7 +11142,7 @@
       "source_file": "views/system/leave/index.vue",
       "source_location": "L1",
       "id": "views_system_leave_index_vue",
-      "community": 200,
+      "community": 201,
       "norm_label": "index.vue"
     },
     {
@@ -11142,7 +11151,7 @@
       "source_file": "views/production/output-type/index.vue",
       "source_location": "L1",
       "id": "views_production_output_type_index_vue",
-      "community": 201,
+      "community": 202,
       "norm_label": "index.vue"
     },
     {
@@ -11151,7 +11160,7 @@
       "source_file": "views/production/cell-product/index.vue",
       "source_location": "L1",
       "id": "views_production_cell_product_index_vue",
-      "community": 202,
+      "community": 203,
       "norm_label": "index.vue"
     },
     {
@@ -11196,7 +11205,7 @@
       "source_file": "views/production/sop/index.vue",
       "source_location": "L1",
       "id": "views_production_sop_index_vue",
-      "community": 203,
+      "community": 204,
       "norm_label": "index.vue"
     },
     {
@@ -11205,7 +11214,7 @@
       "source_file": "views/production/production-task/index.vue",
       "source_location": "L1",
       "id": "views_production_production_task_index_vue",
-      "community": 204,
+      "community": 205,
       "norm_label": "index.vue"
     },
     {
@@ -11214,7 +11223,7 @@
       "source_file": "views/production/reagent/index.vue",
       "source_location": "L1",
       "id": "views_production_reagent_index_vue",
-      "community": 205,
+      "community": 206,
       "norm_label": "index.vue"
     },
     {
@@ -11376,7 +11385,7 @@
       "source_file": "views/production/production-work-order/TaskInputEnhancedTable.vue",
       "source_location": "L1",
       "id": "views_production_production_work_order_taskinputenhancedtable_vue",
-      "community": 206,
+      "community": 207,
       "norm_label": "taskinputenhancedtable.vue"
     },
     {
@@ -11385,7 +11394,7 @@
       "source_file": "views/production/production-work-order/TaskExecutionDialog.vue",
       "source_location": "L1",
       "id": "views_production_production_work_order_taskexecutiondialog_vue",
-      "community": 207,
+      "community": 208,
       "norm_label": "taskexecutiondialog.vue"
     },
     {
@@ -11430,7 +11439,7 @@
       "source_file": "views/production/production-work-order/TaskOutputList.vue",
       "source_location": "L1",
       "id": "views_production_production_work_order_taskoutputlist_vue",
-      "community": 208,
+      "community": 209,
       "norm_label": "taskoutputlist.vue"
     },
     {
@@ -11457,7 +11466,7 @@
       "source_file": "views/production/production-work-order/TaskOutputProductDialog.vue",
       "source_location": "L1",
       "id": "views_production_production_work_order_taskoutputproductdialog_vue",
-      "community": 209,
+      "community": 210,
       "norm_label": "taskoutputproductdialog.vue"
     },
     {
@@ -11466,7 +11475,7 @@
       "source_file": "views/production/consumable-pack/index.vue",
       "source_location": "L1",
       "id": "views_production_consumable_pack_index_vue",
-      "community": 210,
+      "community": 211,
       "norm_label": "index.vue"
     },
     {
@@ -11475,7 +11484,7 @@
       "source_file": "views/production/consumable/index.vue",
       "source_location": "L1",
       "id": "views_production_consumable_index_vue",
-      "community": 211,
+      "community": 212,
       "norm_label": "index.vue"
     },
     {
@@ -11484,7 +11493,7 @@
       "source_file": "views/production/process/index.vue",
       "source_location": "L1",
       "id": "views_production_process_index_vue",
-      "community": 212,
+      "community": 213,
       "norm_label": "index.vue"
     },
     {
@@ -11493,7 +11502,7 @@
       "source_file": "views/production/process-category/index.vue",
       "source_location": "L1",
       "id": "views_production_process_category_index_vue",
-      "community": 213,
+      "community": 214,
       "norm_label": "index.vue"
     },
     {
@@ -11502,7 +11511,7 @@
       "source_file": "views/index/index.vue",
       "source_location": "L1",
       "id": "views_index_index_vue",
-      "community": 214,
+      "community": 215,
       "norm_label": "index.vue"
     },
     {
@@ -11619,7 +11628,7 @@
       "source_file": "views/quality-inspection/sample-reception-check-item/index.vue",
       "source_location": "L1",
       "id": "views_quality_inspection_sample_reception_check_item_index_vue",
-      "community": 215,
+      "community": 216,
       "norm_label": "index.vue"
     },
     {
@@ -11628,7 +11637,7 @@
       "source_file": "views/quality-inspection/lab-test-item/index.vue",
       "source_location": "L1",
       "id": "views_quality_inspection_lab_test_item_index_vue",
-      "community": 216,
+      "community": 217,
       "norm_label": "index.vue"
     },
     {
@@ -11808,7 +11817,7 @@
       "source_file": "views/quality-inspection/storage-release-review/index.vue",
       "source_location": "L1",
       "id": "views_quality_inspection_storage_release_review_index_vue",
-      "community": 217,
+      "community": 218,
       "norm_label": "index.vue"
     },
     {
@@ -11943,7 +11952,7 @@
       "source_file": "views/quality-inspection/qc-material-usage/index.vue",
       "source_location": "L1",
       "id": "views_quality_inspection_qc_material_usage_index_vue",
-      "community": 218,
+      "community": 219,
       "norm_label": "index.vue"
     },
     {
@@ -11952,7 +11961,7 @@
       "source_file": "views/quality-inspection/third-party-company/index.vue",
       "source_location": "L1",
       "id": "views_quality_inspection_third_party_company_index_vue",
-      "community": 219,
+      "community": 220,
       "norm_label": "index.vue"
     },
     {
@@ -11961,7 +11970,7 @@
       "source_file": "views/exception/500/index.vue",
       "source_location": "L1",
       "id": "views_exception_500_index_vue",
-      "community": 220,
+      "community": 221,
       "norm_label": "index.vue"
     },
     {
@@ -11970,7 +11979,7 @@
       "source_file": "views/exception/403/index.vue",
       "source_location": "L1",
       "id": "views_exception_403_index_vue",
-      "community": 221,
+      "community": 222,
       "norm_label": "index.vue"
     },
     {
@@ -11979,7 +11988,7 @@
       "source_file": "views/exception/404/index.vue",
       "source_location": "L1",
       "id": "views_exception_404_index_vue",
-      "community": 222,
+      "community": 223,
       "norm_label": "index.vue"
     },
     {
@@ -11988,7 +11997,7 @@
       "source_file": "views/pilot-service/cell-product-type/index.vue",
       "source_location": "L1",
       "id": "views_pilot_service_cell_product_type_index_vue",
-      "community": 223,
+      "community": 224,
       "norm_label": "index.vue"
     },
     {
@@ -11997,7 +12006,7 @@
       "source_file": "views/pilot-service/checkup-institution/index.vue",
       "source_location": "L1",
       "id": "views_pilot_service_checkup_institution_index_vue",
-      "community": 224,
+      "community": 225,
       "norm_label": "index.vue"
     },
     {
@@ -12006,7 +12015,7 @@
       "source_file": "views/pilot-service/checkup-institution/CheckupPackagePanel.vue",
       "source_location": "L1",
       "id": "views_pilot_service_checkup_institution_checkuppackagepanel_vue",
-      "community": 225,
+      "community": 226,
       "norm_label": "checkuppackagepanel.vue"
     },
     {
@@ -12033,7 +12042,7 @@
       "source_file": "views/pilot-service/cell-product-price/index.vue",
       "source_location": "L1",
       "id": "views_pilot_service_cell_product_price_index_vue",
-      "community": 226,
+      "community": 227,
       "norm_label": "index.vue"
     },
     {
@@ -12060,7 +12069,7 @@
       "source_file": "views/pilot-service/cell-product-spec/index.vue",
       "source_location": "L1",
       "id": "views_pilot_service_cell_product_spec_index_vue",
-      "community": 227,
+      "community": 228,
       "norm_label": "index.vue"
     },
     {
@@ -12231,7 +12240,7 @@
       "source_file": "views/basic-info/cell-sample-type/index.vue",
       "source_location": "L1",
       "id": "views_basic_info_cell_sample_type_index_vue",
-      "community": 228,
+      "community": 229,
       "norm_label": "index.vue"
     },
     {
@@ -12240,7 +12249,7 @@
       "source_file": "views/basic-info/insurance-company/index.vue",
       "source_location": "L1",
       "id": "views_basic_info_insurance_company_index_vue",
-      "community": 229,
+      "community": 230,
       "norm_label": "index.vue"
     },
     {
@@ -12708,7 +12717,7 @@
       "source_file": "assets/svg/loading.ts",
       "source_location": "L1",
       "id": "assets_svg_loading_ts",
-      "community": 230,
+      "community": 231,
       "norm_label": "loading.ts"
     },
     {
@@ -12735,7 +12744,7 @@
       "source_file": "store/modules/worktab.ts",
       "source_location": "L1",
       "id": "store_modules_worktab_ts",
-      "community": 231,
+      "community": 232,
       "norm_label": "worktab.ts"
     },
     {
@@ -12744,7 +12753,7 @@
       "source_file": "store/modules/table.ts",
       "source_location": "L1",
       "id": "store_modules_table_ts",
-      "community": 232,
+      "community": 233,
       "norm_label": "table.ts"
     },
     {
@@ -12753,7 +12762,7 @@
       "source_file": "store/modules/menu.ts",
       "source_location": "L1",
       "id": "store_modules_menu_ts",
-      "community": 233,
+      "community": 234,
       "norm_label": "menu.ts"
     },
     {
@@ -12762,7 +12771,7 @@
       "source_file": "store/modules/setting.ts",
       "source_location": "L1",
       "id": "store_modules_setting_ts",
-      "community": 234,
+      "community": 235,
       "norm_label": "setting.ts"
     },
     {
@@ -12771,7 +12780,7 @@
       "source_file": "store/modules/user.ts",
       "source_location": "L1",
       "id": "store_modules_user_ts",
-      "community": 235,
+      "community": 236,
       "norm_label": "user.ts"
     },
     {
@@ -12780,7 +12789,7 @@
       "source_file": "router/routesAlias.ts",
       "source_location": "L1",
       "id": "router_routesalias_ts",
-      "community": 236,
+      "community": 237,
       "norm_label": "routesalias.ts"
     },
     {
@@ -13329,7 +13338,7 @@
       "source_file": "router/core/index.ts",
       "source_location": "L1",
       "id": "router_core_index_ts",
-      "community": 237,
+      "community": 238,
       "norm_label": "index.ts"
     },
     {
@@ -13428,7 +13437,7 @@
       "source_file": "router/modules/sqxp.ts",
       "source_location": "L1",
       "id": "router_modules_sqxp_ts",
-      "community": 238,
+      "community": 239,
       "norm_label": "sqxp.ts"
     },
     {
@@ -13437,7 +13446,7 @@
       "source_file": "router/modules/index.ts",
       "source_location": "L1",
       "id": "router_modules_index_ts",
-      "community": 239,
+      "community": 240,
       "norm_label": "index.ts"
     },
     {
@@ -13446,7 +13455,7 @@
       "source_file": "router/modules/exception.ts",
       "source_location": "L1",
       "id": "router_modules_exception_ts",
-      "community": 240,
+      "community": 241,
       "norm_label": "exception.ts"
     },
     {
@@ -13455,7 +13464,7 @@
       "source_file": "router/routes/staticRoutes.ts",
       "source_location": "L1",
       "id": "router_routes_staticroutes_ts",
-      "community": 241,
+      "community": 242,
       "norm_label": "staticroutes.ts"
     },
     {
@@ -13464,7 +13473,7 @@
       "source_file": "router/routes/asyncRoutes.ts",
       "source_location": "L1",
       "id": "router_routes_asyncroutes_ts",
-      "community": 242,
+      "community": 243,
       "norm_label": "asyncroutes.ts"
     },
     {

+ 73 - 72
web-admin/graphify-out/manifest.json

@@ -17,8 +17,8 @@
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/common/index.ts": 1778582068.0254738,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/directive/directive.d.ts": 1778582068.026978,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/api/api.d.ts": 1778582068.0246184,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1779542778.2260356,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1779542662.509773,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1779546068.5041292,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1779544019.472885,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/store/index.ts": 1778582068.0293276,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/router/index.ts": 1778775532.895603,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/locales/index.ts": 1778582068.004279,
@@ -156,7 +156,8 @@
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/layouts/art-header-bar/widget/ArtUserMenu.vue": 1779525781.599607,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/theme/theme-svg/index.vue": 1779525781.6001027,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/views/result/ArtResultPage.vue": 1779525781.6004124,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/views/exception/ArtException.vue": 1779525781.6006413,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/views/exception/ExceptionIllustration.vue": 1779546067.8755696,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/views/exception/ArtException.vue": 1779546135.8850055,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/views/login/AuthTopBar.vue": 1779525781.6009717,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/views/login/LoginLeftView.vue": 1779525781.6012564,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/text-effect/art-text-scroll/index.vue": 1779525781.6015408,
@@ -223,64 +224,64 @@
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/qc-work-order.ts": 1779431182.2279022,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/auth/login/index.vue": 1779525781.6116724,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/refund-confirm/index.vue": 1779525781.6125906,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/index.vue": 1779525781.613203,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/index.vue": 1779543540.7143836,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolStatusChangeDialog.vue": 1779525781.613681,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue": 1779542542.2435133,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolAttachmentReadonly.vue": 1779525781.6162472,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue": 1779525781.6179993,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolAuditDialog.vue": 1779525781.6193507,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/sample-reception-info/index.vue": 1779532990.7233062,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-info/index.vue": 1779525781.6211276,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-cert/index.vue": 1779532977.810864,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/index.vue": 1779525781.622669,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue": 1779525781.6235693,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue": 1779532982.7949343,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-entry-info/index.vue": 1779532987.2376103,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/sample-reception-info/index.vue": 1779543540.7133334,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-info/index.vue": 1779543540.712599,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-cert/index.vue": 1779543540.7106564,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/index.vue": 1779543540.7095993,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue": 1779543540.7084875,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue": 1779543540.7066376,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-entry-info/index.vue": 1779543540.7045276,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue": 1779525781.6252205,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material-stock-log/index.vue": 1779525781.6262383,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material-stock-log/index.vue": 1779543540.7038007,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/outside/Iframe.vue": 1779525781.6271372,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/demo/index.vue": 1779525781.6276834,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue": 1779525781.628219,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue": 1779543540.7327104,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue": 1779525781.6296828,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/exhibition-appointment/index.vue": 1779525781.6300507,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/audit/index.vue": 1779525781.6307259,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/index.vue": 1779525781.6313932,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/exhibition-appointment/index.vue": 1779543540.7309666,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/audit/index.vue": 1779543540.7356243,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/index.vue": 1779543540.734046,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationAuditDialog.vue": 1779525781.6319423,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue": 1779525781.6333172,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue": 1779525781.635114,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationStatusChangeDialog.vue": 1779525781.6357327,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/dashboard/console/index.vue": 1779525781.636181,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/tenant/index.vue": 1779525781.6367157,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/order/index.vue": 1779525781.6384022,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/unit/index.vue": 1779525781.638913,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue": 1779525781.6396842,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue": 1779525781.640936,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue": 1779525781.6417673,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/express/index.vue": 1779525781.6422172,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue": 1779525781.642794,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/tenant/index.vue": 1779543443.6733122,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/order/index.vue": 1779543540.74551,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/unit/index.vue": 1779543540.7397332,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue": 1779543540.7380679,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue": 1779543540.7481663,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue": 1779543540.749298,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/express/index.vue": 1779543540.7485101,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue": 1779543540.7475703,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/detail.vue": 1779525781.6442838,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/modules/user-dialog.vue": 1779525781.6434622,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/modules/user-search.vue": 1779525781.643876,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue": 1779525781.6493268,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/my-applications/index.vue": 1779525781.6504369,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-pending/index.vue": 1779525781.6510475,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-completed/index.vue": 1779525781.6516535,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue": 1779543540.7469623,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/my-applications/index.vue": 1779543540.753526,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-pending/index.vue": 1779543540.7526875,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-completed/index.vue": 1779543540.7515533,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/components/ProcessStatusTag.vue": 1779525781.652574,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/components/ApprovalDialog.vue": 1779525781.652955,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/designer/FlowDesigner.vue": 1779525781.654024,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/process/index.vue": 1779525781.6545622,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue": 1779525781.655625,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue": 1779525781.6561098,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/dept/index.vue": 1779525781.6570637,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/dict/index.vue": 1779525781.6580963,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/leave/index.vue": 1779525781.6586697,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/output-type/index.vue": 1779525781.659694,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/index.vue": 1779525781.6640263,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue": 1779525781.6684961,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue": 1779525781.670313,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-task/index.vue": 1779533256.730038,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/reagent/index.vue": 1779525781.6759937,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/index.vue": 1779533228.0596917,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/process/index.vue": 1779543540.7500994,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue": 1779543540.7434807,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue": 1779543540.7420557,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/dept/index.vue": 1779543540.7411766,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/dict/index.vue": 1779543540.7390752,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/leave/index.vue": 1779543540.7368186,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/output-type/index.vue": 1779543540.722031,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/index.vue": 1779543540.7214005,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue": 1779543540.7289982,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue": 1779543540.726837,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-task/index.vue": 1779543540.72572,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/reagent/index.vue": 1779543540.724915,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/index.vue": 1779543540.72322,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/useTaskStepEditor.ts": 1779506613.3205173,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/StepDetailPanel.vue": 1779525781.678735,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/TaskInputEnhancedTable.vue": 1779525781.679505,
@@ -289,39 +290,39 @@
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/TaskOutputList.vue": 1779525781.6822913,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/DispatchTaskDialog.vue": 1779525781.6835842,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/TaskOutputProductDialog.vue": 1779525781.6850414,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable-pack/index.vue": 1779525781.686277,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/index.vue": 1779525781.6908708,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process/index.vue": 1779525781.6928895,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-category/index.vue": 1779525781.6938353,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable-pack/index.vue": 1779543540.719702,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/index.vue": 1779543540.7187445,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process/index.vue": 1779543540.717012,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-category/index.vue": 1779543540.7154598,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/index/index.vue": 1779525781.6949234,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue": 1779533161.1145132,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception-check-item/index.vue": 1779525781.6972027,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/index.vue": 1779525781.7002125,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue": 1779525781.719415,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception/index.vue": 1779533116.523646,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue": 1779533188.6950603,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/storage-release-review/index.vue": 1779525781.7285833,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue": 1779543540.7031858,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception-check-item/index.vue": 1779543540.7019148,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/index.vue": 1779543540.7013087,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue": 1779543540.7000535,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception/index.vue": 1779543540.698455,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue": 1779543540.69689,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/storage-release-review/index.vue": 1779543540.695075,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/storage-release-review/StorageReleaseReviewDialog.vue": 1779525781.7374997,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/storage-release-review/StorageReleaseViewDialog.vue": 1779525781.743236,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material-usage/index.vue": 1779525781.746434,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/third-party-company/index.vue": 1779525781.7537758,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/exception/500/index.vue": 1779525781.7559195,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/exception/403/index.vue": 1779525781.7567637,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/exception/404/index.vue": 1779525781.7575808,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/index.vue": 1779525781.7580643,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-institution/index.vue": 1779525781.7587295,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material-usage/index.vue": 1779543540.693297,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/third-party-company/index.vue": 1779543540.692346,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/exception/500/index.vue": 1779546148.0553653,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/exception/403/index.vue": 1779546144.3909206,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/exception/404/index.vue": 1779546146.242008,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/index.vue": 1779543540.6913223,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-institution/index.vue": 1779543540.6905549,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-institution/CheckupPackagePanel.vue": 1779525781.7596755,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue": 1779525781.7612138,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue": 1779543540.6894271,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelViewDialog.vue": 1779525781.762359,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-price/index.vue": 1779525781.7630467,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue": 1779525781.7639887,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-spec/index.vue": 1779525781.7651124,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/sample-code/index.vue": 1779525781.765924,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/cell-sample-type/index.vue": 1779525781.7668881,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/insurance-company/index.vue": 1779525781.7686036,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue": 1779525781.76913,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/customer/index.vue": 1779525781.769695,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/index.vue": 1779525781.771138,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-price/index.vue": 1779543540.6862803,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue": 1779543540.6854389,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-spec/index.vue": 1779543540.6845775,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/sample-code/index.vue": 1779543540.6835444,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/cell-sample-type/index.vue": 1779543540.6821191,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/insurance-company/index.vue": 1779543540.6812408,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue": 1779543540.6802733,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/customer/index.vue": 1779543540.6792767,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/index.vue": 1779543540.6782162,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/assets/svg/loading.ts": 1778582067.932299,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/index.ts": 1778582068.0218356,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/worktab.ts": 1779240489.093459,
@@ -341,10 +342,10 @@
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/IframeRouteManager.ts": 1778582068.0121944,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts": 1779528258.7914715,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/index.ts": 1778598510.6043763,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/exception.ts": 1778600310.4085584,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/routes/staticRoutes.ts": 1778582786.832072,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/exception.ts": 1779546186.993006,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/routes/staticRoutes.ts": 1779546226.1088154,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/routes/asyncRoutes.ts": 1778582068.0206802,
-  "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts": 1778910254.9760995,
+  "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts": 1779546205.411209,
   "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/afterEach.ts": 1778582068.0146143,
   "/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,

+ 253 - 22
web-admin/src/components/core/views/exception/ArtException.vue

@@ -1,44 +1,80 @@
 <template>
-  <div class="page-content !border-0 !bg-transparent min-h-screen flex-cc">
-    <div class="flex-cc max-md:!block max-md:text-center">
-      <ThemeSvg :src="data.imgUrl" size="100%" class="!w-100" />
-      <div class="ml-15 w-75 max-md:mx-auto max-md:mt-10 max-md:w-full max-md:text-center">
-        <p class="text-xl leading-7 text-g-600 max-md:text-lg">{{ data.desc }}</p>
-        <ElButton type="primary" size="large" @click="backHome" v-ripple class="mt-5">{{
-          data.btnText
-        }}</ElButton>
-      </div>
+  <div class="exception-page">
+    <div class="exception-page__bg" aria-hidden="true">
+      <span class="exception-page__blob exception-page__blob--1" />
+      <span class="exception-page__blob exception-page__blob--2" />
     </div>
+
+    <header class="exception-page__brand">
+      <img src="/logo.png" alt="中科兴皖" class="exception-page__logo" />
+      <span class="exception-page__brand-name">中科兴皖</span>
+    </header>
+
+    <main class="exception-page__main">
+      <div class="exception-page__card">
+        <div class="exception-page__visual">
+          <ExceptionIllustration :variant="variant" />
+        </div>
+
+        <div class="exception-page__content">
+          <span class="exception-page__code">{{ code }}</span>
+          <h1 class="exception-page__title">{{ title }}</h1>
+          <p class="exception-page__desc">{{ desc }}</p>
+          <p v-if="hint" class="exception-page__hint">{{ hint }}</p>
+
+          <div class="exception-page__actions">
+            <ElButton size="large" class="exception-page__btn-back" @click="goBack">
+              <ElIcon :size="16"><ArrowLeft /></ElIcon>
+              <span>{{ backText }}</span>
+            </ElButton>
+            <ElButton type="primary" size="large" class="exception-page__btn-home" @click="backHome">
+              <ElIcon :size="16"><HomeFilled /></ElIcon>
+              <span>{{ homeText }}</span>
+            </ElButton>
+          </div>
+        </div>
+      </div>
+    </main>
+
+    <footer class="exception-page__footer">一体化管理门户</footer>
   </div>
 </template>
 
 <script setup lang="ts">
+  import { ArrowLeft, HomeFilled } from '@element-plus/icons-vue'
+  import ExceptionIllustration from './ExceptionIllustration.vue'
   import { useCommon } from '@/hooks/core/useCommon'
   import { useUserStore } from '@/store/modules/user'
 
   const router = useRouter()
   const userStore = useUserStore()
 
-  interface ExceptionData {
-    /** 标题 */
-    title: string
-    /** 描述 */
-    desc: string
-    /** 按钮文本 */
-    btnText: string
-    /** 图片地址 */
-    imgUrl: string
-  }
-
   withDefaults(
     defineProps<{
-      data: ExceptionData
+      code: string
+      title: string
+      desc: string
+      hint?: string
+      variant: 'forbidden' | 'not-found' | 'server-error'
+      homeText?: string
+      backText?: string
     }>(),
-    {}
+    {
+      homeText: '返回首页',
+      backText: '返回上页'
+    }
   )
 
   const { homePath } = useCommon()
 
+  const goBack = () => {
+    if (window.history.length > 1) {
+      router.back()
+      return
+    }
+    backHome()
+  }
+
   const backHome = () => {
     const targetHomePath = homePath.value || '/'
 
@@ -53,3 +89,198 @@
     router.push(targetHomePath)
   }
 </script>
+
+<style scoped lang="scss">
+  .exception-page {
+    position: relative;
+    display: flex;
+    flex-direction: column;
+    min-height: 100vh;
+    overflow: hidden;
+    background: var(--mint-bg-page);
+  }
+
+  .exception-page__bg {
+    position: absolute;
+    inset: 0;
+    pointer-events: none;
+  }
+
+  .exception-page__blob {
+    position: absolute;
+    border-radius: 50%;
+    filter: blur(60px);
+    opacity: 0.55;
+  }
+
+  .exception-page__blob--1 {
+    top: -120px;
+    right: -80px;
+    width: 360px;
+    height: 360px;
+    background: rgba(16, 185, 129, 0.18);
+  }
+
+  .exception-page__blob--2 {
+    bottom: -100px;
+    left: -60px;
+    width: 320px;
+    height: 320px;
+    background: rgba(5, 150, 105, 0.12);
+  }
+
+  .exception-page__brand {
+    position: relative;
+    z-index: 1;
+    display: flex;
+    align-items: center;
+    gap: 12px;
+    padding: 28px 32px 0;
+  }
+
+  .exception-page__logo {
+    width: 40px;
+    height: 40px;
+    object-fit: contain;
+    border-radius: 8px;
+    background: #fff;
+    padding: 4px;
+    box-shadow: var(--mint-shadow);
+  }
+
+  .exception-page__brand-name {
+    font-size: 16px;
+    font-weight: 600;
+    color: var(--mint-text);
+  }
+
+  .exception-page__main {
+    position: relative;
+    z-index: 1;
+    flex: 1;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    padding: 32px 24px 48px;
+  }
+
+  .exception-page__card {
+    display: flex;
+    align-items: center;
+    gap: 48px;
+    width: min(920px, 100%);
+    padding: 40px 48px;
+    background: var(--mint-surface);
+    border: 1px solid var(--mint-border);
+    border-radius: var(--mint-radius);
+    box-shadow: 0 16px 48px rgba(15, 23, 42, 0.06);
+  }
+
+  .exception-page__visual {
+    flex: 0 0 auto;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+
+  .exception-page__content {
+    flex: 1;
+    min-width: 0;
+  }
+
+  .exception-page__code {
+    display: inline-block;
+    font-size: 72px;
+    font-weight: 700;
+    line-height: 1;
+    letter-spacing: -2px;
+    background: linear-gradient(135deg, var(--mint-primary) 0%, var(--mint-primary-dark) 100%);
+    background-clip: text;
+    -webkit-background-clip: text;
+    color: transparent;
+  }
+
+  .exception-page__title {
+    margin: 12px 0 0;
+    font-size: 24px;
+    font-weight: 600;
+    line-height: 1.3;
+    color: var(--mint-text);
+  }
+
+  .exception-page__desc {
+    margin: 12px 0 0;
+    font-size: 15px;
+    line-height: 1.6;
+    color: var(--mint-text-muted);
+  }
+
+  .exception-page__hint {
+    margin: 8px 0 0;
+    font-size: 13px;
+    line-height: 1.5;
+    color: var(--mint-text-muted);
+    opacity: 0.85;
+  }
+
+  .exception-page__actions {
+    display: flex;
+    flex-wrap: wrap;
+    gap: 12px;
+    margin-top: 28px;
+  }
+
+  .exception-page__btn-back,
+  .exception-page__btn-home {
+    :deep(.el-icon) {
+      margin-right: 6px;
+    }
+  }
+
+  .exception-page__btn-back {
+    --el-button-bg-color: var(--mint-surface);
+    --el-button-border-color: var(--mint-border);
+    --el-button-text-color: var(--mint-text);
+    --el-button-hover-bg-color: var(--mint-row-hover);
+    --el-button-hover-border-color: var(--mint-primary);
+    --el-button-hover-text-color: var(--mint-primary-dark);
+  }
+
+  .exception-page__footer {
+    position: relative;
+    z-index: 1;
+    padding: 0 24px 24px;
+    text-align: center;
+    font-size: 12px;
+    color: var(--mint-text-muted);
+  }
+
+  @media screen and (max-width: 768px) {
+    .exception-page__brand {
+      padding: 20px 20px 0;
+    }
+
+    .exception-page__main {
+      padding: 24px 16px 32px;
+    }
+
+    .exception-page__card {
+      flex-direction: column;
+      gap: 24px;
+      padding: 28px 24px;
+      text-align: center;
+    }
+
+    .exception-page__code {
+      font-size: 56px;
+    }
+
+    .exception-page__title {
+      font-size: 20px;
+    }
+
+    .exception-page__actions {
+      justify-content: center;
+    }
+  }
+</style>

+ 132 - 0
web-admin/src/components/core/views/exception/ExceptionIllustration.vue

@@ -0,0 +1,132 @@
+<template>
+  <svg
+    class="exception-illustration"
+    :class="`exception-illustration--${variant}`"
+    viewBox="0 0 320 240"
+    fill="none"
+    xmlns="http://www.w3.org/2000/svg"
+    aria-hidden="true"
+  >
+  <template v-if="variant === 'forbidden'">
+    <rect x="48" y="52" width="224" height="156" rx="16" fill="var(--mint-primary-bg)" />
+    <rect x="48" y="52" width="224" height="156" rx="16" stroke="var(--mint-border)" stroke-width="2" />
+    <path
+      d="M160 88c-14.9 0-27 12.1-27 27v12h54v-12c0-14.9-12.1-27-27-27Z"
+      fill="#fff"
+      stroke="var(--mint-primary-dark)"
+      stroke-width="2"
+      stroke-linejoin="round"
+    />
+    <rect
+      x="118"
+      y="127"
+      width="84"
+      height="58"
+      rx="10"
+      fill="#fff"
+      stroke="var(--mint-primary-dark)"
+      stroke-width="2"
+    />
+    <circle cx="160" cy="156" r="10" fill="var(--mint-primary-bg)" stroke="var(--mint-primary)" stroke-width="2" />
+    <path
+      d="M160 162v8"
+      stroke="var(--mint-primary-dark)"
+      stroke-width="2.5"
+      stroke-linecap="round"
+    />
+    <path
+      d="M96 118h128"
+      stroke="var(--mint-border)"
+      stroke-width="2"
+      stroke-linecap="round"
+      stroke-dasharray="6 6"
+    />
+    <circle cx="248" cy="72" r="22" fill="var(--mint-primary)" opacity="0.15" />
+    <path
+      d="M248 64v16M240 72h16"
+      stroke="var(--mint-primary-dark)"
+      stroke-width="2.5"
+      stroke-linecap="round"
+    />
+  </template>
+
+  <template v-else-if="variant === 'not-found'">
+    <circle cx="160" cy="120" r="78" fill="var(--mint-primary-bg)" />
+    <circle cx="160" cy="120" r="78" stroke="var(--mint-border)" stroke-width="2" />
+    <path
+      d="M160 62v24M160 154v24M82 120h24M214 120h24"
+      stroke="var(--mint-primary)"
+      stroke-width="2"
+      stroke-linecap="round"
+      opacity="0.45"
+    />
+    <circle cx="160" cy="120" r="34" fill="#fff" stroke="var(--mint-primary-dark)" stroke-width="2" />
+    <path
+      d="M148 120c0-6.6 5.4-12 12-12s12 5.4 12 12-5.4 12-12 12"
+      stroke="var(--mint-primary-dark)"
+      stroke-width="2.5"
+      stroke-linecap="round"
+    />
+    <circle cx="172" cy="108" r="3" fill="var(--mint-primary-dark)" />
+    <path
+      d="M72 188c18-10 38-15 88-15s70 5 88 15"
+      stroke="var(--mint-primary)"
+      stroke-width="2"
+      stroke-linecap="round"
+      opacity="0.35"
+    />
+    <rect x="208" y="48" width="56" height="36" rx="8" fill="#fff" stroke="var(--mint-border)" stroke-width="2" />
+    <path
+      d="M220 66h32M220 58h20"
+      stroke="var(--mint-text-muted)"
+      stroke-width="2"
+      stroke-linecap="round"
+    />
+  </template>
+
+  <template v-else>
+    <rect x="56" y="64" width="208" height="128" rx="14" fill="var(--mint-primary-bg)" />
+    <rect x="56" y="64" width="208" height="128" rx="14" stroke="var(--mint-border)" stroke-width="2" />
+    <rect x="76" y="84" width="168" height="18" rx="6" fill="#fff" stroke="var(--mint-border)" stroke-width="1.5" />
+    <rect x="76" y="112" width="120" height="12" rx="4" fill="#fff" stroke="var(--mint-border)" stroke-width="1.5" />
+    <rect x="76" y="132" width="148" height="12" rx="4" fill="#fff" stroke="var(--mint-border)" stroke-width="1.5" />
+    <rect x="76" y="152" width="96" height="12" rx="4" fill="#fff" stroke="var(--mint-border)" stroke-width="1.5" />
+    <circle cx="228" cy="92" r="5" fill="var(--mint-primary)" />
+    <circle cx="244" cy="92" r="5" fill="#fbbf24" />
+    <circle cx="260" cy="92" r="5" fill="#f87171" />
+    <path
+      d="M248 176l18-30 18 30"
+      stroke="var(--mint-primary-dark)"
+      stroke-width="2.5"
+      stroke-linecap="round"
+      stroke-linejoin="round"
+    />
+    <path
+      d="M266 176v14H230v-14"
+      stroke="var(--mint-primary-dark)"
+      stroke-width="2.5"
+      stroke-linecap="round"
+      stroke-linejoin="round"
+    />
+    <path
+      d="M160 44l8 14h16l-13 10 5 14-16-11-16 11 5-14-13-10h16l8-14Z"
+      fill="var(--mint-primary)"
+      opacity="0.85"
+    />
+  </template>
+  </svg>
+</template>
+
+<script setup lang="ts">
+  defineProps<{
+    variant: 'forbidden' | 'not-found' | 'server-error'
+  }>()
+</script>
+
+<style scoped lang="scss">
+  .exception-illustration {
+    display: block;
+    width: min(320px, 72vw);
+    height: auto;
+  }
+</style>

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/0072b2a8948fe23e63c8999ac257446534691e72c486195a9360ebe426e7212d.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/00c37503d2dabfa62dc712f4b35fbf6628750c96d13a954edce425d500b850a4.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_fullmoon_todo_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L1"}, {"id": "fullmoon_todo_index_for", "label": "for()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L758"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_fullmoon_todo_index_vue", "target": "fullmoon_todo_index_for", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L758", "weight": 1.0}], "raw_calls": [{"caller_nid": "fullmoon_todo_index_for", "callee": "getCell", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L759"}]}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/0320bd4fe423dcf4d90a968dfeaedfb243939a2ca78b32e6b409d9c0b19ed56c.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/044588b545cb8d19162a5962d16904eb258d1cbdf5e179f6be4d39ac47365fde.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_category_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-category/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/077c28dba15779e2a67a4a94d35c1d6bbd5043eb457ed18fee9258e07df69975.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_dict_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/dict/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/0b27bc547e176485dbda7afaa52a860a97e5682c4905eb44e60d972d2832ac98.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_order_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/order/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/0e24e34c5c9eabea2075a7ca8f57f7b315759bb1e6ea48bf9b8716de11079cbc.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_cell_product_spec_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-spec/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/0f049ce22cab9ace5ebcd994b2a499abee6f4452bc04903d8fa35d097be6b98f.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/0faa674a519306ce4877fb26547e95c73ec352b0587fa10ce99f503b81eec333.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_cell_product_type_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/10e90901145cbd40724beb18e3430c85548ae8f0d5a217005967b7da5e0bd096.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_audit_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/audit/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/1217103dbe144b1ae3d40757a195e1744bd45d0ca00f7fe1efafb9a3afbce8e3.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_protocol_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/1340a59629df8e19d70e2413528c523114b730c18bd9eb3442757749c216e427.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/190efe26c19afb6e976f8b855eb66b40c47463dab853fa627b54881f08fe0bfa.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_workflow_my_applications_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/my-applications/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/1961b36858e0b9b324f7e1bb49417363486fc620697d961a2f2c12db307de237.json


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/1b188a76e356c00910b30d152cd8f562ba66efdf518c60805581770e6a72e0d8.json


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/1ddc881a3fdf5d4614b39a6105317606d8cd67b9c7544513a370b4bb4a01d786.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/1f34e6c62246c2b6ba977bd180a061fb131b056a00884592b0c51bebe5efdf93.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_storage_entry_info_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-entry-info/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/2332c35b2537f3df87a031c8a54d782ea399cdef4e050724830413be21d0c21a.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/28d6e354082595b176a736b2bcdd6fcfe9f93ae496d310e890de6bb96dfc5344.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_consumable_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/2f4a1821efdee87ebbdce18d34b87f475724b35ba63de57282f908c632e3d7d5.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_info_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-info/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/42b432a889d589acc63a860a0c39a3d345dfb710f7ae3d8ad8f50b3232a0a39b.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_exception_500_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/exception/500/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/47f9ff65ee5114dd90d480ade6cb8cc39661cef990fe0aee251779657bbac5c1.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_workflow_task_pending_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-pending/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/48a8319d12ac7f633b57e0010ad07c7b1e9f11050a2c67d98b379f98e36f5286.json


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/494be2f936c9ee88f65b1a6adbf1f1c009380fcadfbbde83311271f41c8b6716.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/4b160ec5e9657a80c31f4b97ccaa0bdcd3b9854fd509993b9ab89d4a17ba3921.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_components_core_views_exception_artexception_vue", "label": "ArtException.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/views/exception/ArtException.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/4d6054b77b21ba44862deb3174c252400a870d14ed624eaa245f5a5b37e04f7d.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_exception_ts", "label": "exception.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/exception.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_exception_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/modules/exception.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/5050247d6983dd63e1052b3063605e680912bafe81176337c9fff6a06686b5fa.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_third_party_company_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/third-party-company/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/5669713c7d04754125e1a52f3748b3ca914677b050046e450cd8c7a6e6c4bd57.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_project_price_system_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L1"}, {"id": "project_price_system_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L499"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_project_price_system_index_vue", "target": "project_price_system_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L499", "weight": 1.0}], "raw_calls": [{"caller_nid": "project_price_system_index_if", "callee": "fetchDeleteProjectSystemItem", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L500"}]}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/5b48933397f159ae91757bcad9566933002ca53787b6af8be7cc8853f7200dfc.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/5c8b6dd8a777ed2aa0f6f200a7089ef9a84a06f063ac1325ee121997f9ced2d3.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_cell_product_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/5ddd4f204bfb836b4bdaa282262b88615d9193624f2b87b035f0bcc6e0ce7847.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/69b2e03eca913ed988233f5e14ac1e49491cfc99c701b9c89510f4485d46b9dd.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_exhibition_appointment_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/exhibition-appointment/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/6aff15a880ff8b2972130a917e58ed087c19628389c86589afddb74eb8c068cb.json

@@ -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": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/6cf319658214cc87e6c2663e168753dde7b80138ed32e3686177773d43606896.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_basic_info_insurance_company_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/insurance-company/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/6dfeda98cbcd0411eeb6d4a1c223862cf4b740980e3b24d4e4448ee75ec08e9a.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_tenant_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/tenant/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/71bea4c8f03516a6591383d0b288be2bbae22bdb51337dd03e9c4056364a4de6.json


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/720977b08d462ae53896850bedd7f1ebf4ec0a08df540fbc2c3a86b71772d280.json


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/725131afca5628bbfa8c3169a40a02c555f2e122ccbd6c55a3c31205eea986ae.json


A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/7460aee295cd280c3116cab99a9aca26a0e2255cd1db1d560bb671aa6db00faa.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/753c2fdb75b5784273f151f56e42793e2527a0abb0ba42db96d53a0dd229cd21.json

@@ -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": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/78d3515d03cc24388f4953d90a1d20c3cbefb30f7aab8c62c50d4a6dc870e85a.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_consumable_pack_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable-pack/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/7e617f4c96c71fad8741dc8c97310f5af39988f2358a340ba2ad31dbc714c4fc.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/7f7fba5247eb177974cab672ecd1d1f2f053545ca1586e37d2746e9a67fd099a.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_storage_release_review_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/storage-release-review/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/8435ee9dc41e0f967335b06a644a7a8401fec4dd5a97b418cbc7350b8329c240.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_sop_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/86730d7f800caf8913cf71f471ee03fada0499c57b27c4a9cdb85b3c71f19b63.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_components_core_views_exception_exceptionillustration_vue", "label": "ExceptionIllustration.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/core/views/exception/ExceptionIllustration.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/87817030237fa40fb77c27ba939abc353aa4705a7974bc2a7a280237e0a23fc3.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_exception_403_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/exception/403/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/8b7212470593a5797c8cb7c68e3da2ab2dc945cac5dd50eb2c7af8467430e5a8.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_express_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/express/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/92b76ea267f9e326153dff02ba9f892bec22fe8b974b432669d41d0ac0fab477.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/94bc146d696ccfc4dc3c14dbdc82324161d6bdbf09551dae5ec8a95de82a6779.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_unit_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/unit/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/9acbeeaf4096c1d0e956f48ecab51f5326f1ba83a14d56d154bd6b873a25a7ed.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_workflow_process_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/process/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/9cca8511183a655e26b6b2b8c8d2c0c4c920aab833996c3691cf1cdc8eea0da4.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_basic_info_cell_sample_type_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/cell-sample-type/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/a2006f22ce9d964abfec473af4ccf8a50805b50ca85e6d3f04d50f90dc5ce0db.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/aa71f14b17bec1565cc769bc1ba07e74d59f392fc3d9129173433117df62aeb3.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_exception_404_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/exception/404/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/aee1eff7ff8453a70a757c3ee8e9f89b4b57dc28864efb4b4a4bc8598531d83b.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_task_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-task/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/b020ac8f0780443633112f11b7b5ca9ab8574fac277c5d63e89f04f3e9f0f9d0.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_storage_cert_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-cert/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/b2fe361f7a9d114776130c0dc17d8e62ba9938e0cccab2988b8d885b9dbf1f03.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_cell_product_price_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-price/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/b3cedd7ff1671556eb09885d106c242103f3356eac40df2b714001b79ee1e991.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_routes_staticroutes_ts", "label": "staticRoutes.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/routes/staticRoutes.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_routes_staticroutes_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/router/routes/staticRoutes.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/b7601d79d7e626a4f0dd09873caf3a204d0f164580e2a4398403a7a0c486140b.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/bc5dbc0dcd7da3fe3fc49cbeed4a09d7ceb3f2a723b8498fe572eafcc1798843.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_role_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue", "source_location": "L1"}, {"id": "role_index_walk", "label": "walk()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue", "source_location": "L517"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_role_index_vue", "target": "role_index_walk", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue", "source_location": "L517", "weight": 1.0}], "raw_calls": [{"caller_nid": "role_index_walk", "callee": "push", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue", "source_location": "L519"}]}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/bfb3eb5ad1b50751cb74dd8c73fa94afea8f5f23242c91049061e1b303ca23ae.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_checkup_institution_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-institution/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/c220ee3f883c75fb001d6c5ffe6f03bd4135aaaf58498d452ea14ec7758a3171.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/c6545299c675c9647522a8983f3d6e6fc1131eed66afa813890a32b7a552cace.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_protocol_audit_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/cb8f27af6531c943949377f41f0ee57bb93981f2db36e0f961e9913eaf4da833.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_reagent_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/reagent/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/cce7b303d7c48944e62b48cf54189f889dd0116f166b2ff8905d2b19116b3646.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_sample_reception_info_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/sample-reception-info/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/cdace11e7ea493bb087649a3b24d772611a66208c2b6c75fb8f3c5db34e5ee97.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_output_type_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/output-type/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/d3701077fdc6d3b1cd7e1e08848398ff0d1ac08ed6ebd671460e1705240a19f9.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/d650a1ef73d19f3dff5a0ecd4a30ae18c592f9edadc9cd51708ad90c8fc98e00.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_leave_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/leave/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/dd65f61d89ced5571181c919f01d36163de8ac723fbf26f2a2068664a2920ea3.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/df1f26b9d820d8a1f8d5f6c150835c7f895d05b664f2d0beda006f7b27784a2b.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_workflow_task_completed_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-completed/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/e1a2ae191f89aef4241b51b769d7d21396bfa1fa5ef1251bf62b115a4c34c363.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_stock_log_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material-stock-log/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 0 - 0
web-admin/src/graphify-out/cache/ast/e34ee99f7f7fdae444b95f4f2e9fa39faa54fbfab6d5fd4ffafe0022910f0d7c.json


+ 1 - 0
web-admin/src/graphify-out/cache/ast/e4d954b74860aba7ece8f83ae1ebcd08f5b814d0d9bb13597d10a81e51d1caf5.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_sample_reception_check_item_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception-check-item/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 1 - 0
web-admin/src/graphify-out/cache/ast/f23789989b8e0d79f76256e34f3dc7618df270d6bad5ad974f33be6c6546d4b6.json

@@ -0,0 +1 @@
+{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_usage_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material-usage/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}

+ 16 - 3
web-admin/src/locales/langs/en.json

@@ -204,9 +204,22 @@
   },
   "exceptionPage": {
     "gohome": "Go Home",
-    "403": "Sorry, you do not have permission to access this page",
-    "404": "Sorry, the page you are trying to access does not exist",
-    "500": "Sorry, there was an error on the server"
+    "goback": "Go Back",
+    "403": {
+      "title": "Access Denied",
+      "desc": "Sorry, you do not have permission to access this page",
+      "hint": "Contact your administrator if you need access"
+    },
+    "404": {
+      "title": "Page Not Found",
+      "desc": "Sorry, the page you are trying to access does not exist or has been removed",
+      "hint": "Check the URL or return to the home page"
+    },
+    "500": {
+      "title": "Server Error",
+      "desc": "Sorry, the server is temporarily unable to handle your request",
+      "hint": "Please try again later or contact support if the issue persists"
+    }
   },
   "menus": {
     "login": {

+ 16 - 3
web-admin/src/locales/langs/zh.json

@@ -204,9 +204,22 @@
   },
   "exceptionPage": {
     "gohome": "返回首页",
-    "403": "抱歉,您无权访问该页面",
-    "404": "抱歉,您访问的页面不存在",
-    "500": "抱歉,服务器出错了"
+    "goback": "返回上页",
+    "403": {
+      "title": "访问受限",
+      "desc": "抱歉,您无权访问该页面",
+      "hint": "如需开通权限,请联系系统管理员"
+    },
+    "404": {
+      "title": "页面不存在",
+      "desc": "抱歉,您访问的页面不存在或已被移除",
+      "hint": "请检查地址是否正确,或返回首页继续浏览"
+    },
+    "500": {
+      "title": "服务器异常",
+      "desc": "抱歉,服务器暂时无法处理您的请求",
+      "hint": "请稍后重试,若问题持续存在请联系技术支持"
+    }
   },
   "menus": {
     "login": {

+ 1 - 1
web-admin/src/router/guards/beforeEach.ts

@@ -228,7 +228,7 @@ function isStaticRoute(path: string): boolean {
     return routes.some((route) => {
       // 404 catch-all 路由不应视为可匿名访问的静态页,
       // 否则未登录时手动输入任意地址会直接落到 404,无法跳转登录页。
-      if (route.name === 'Exception404') {
+      if (route.name === 'Exception404CatchAll') {
         return false
       }
 

+ 2 - 2
web-admin/src/router/modules/exception.ts

@@ -10,7 +10,7 @@ export const exceptionRoutes: AppRouteRecord = {
   },
   children: [
     {
-      path: '403',
+      path: '300',
       name: 'Exception403',
       component: '/exception/403/index',
       meta: {
@@ -21,7 +21,7 @@ export const exceptionRoutes: AppRouteRecord = {
       }
     },
     {
-      path: '404',
+      path: '400',
       name: 'Exception404',
       component: '/exception/404/index',
       meta: {

+ 16 - 10
web-admin/src/router/routes/staticRoutes.ts

@@ -11,13 +11,6 @@ import { AppRouteRecordRaw } from '@/utils/router'
  * 2、静态路由不管是否登录都可以访问
  */
 export const staticRoutes: AppRouteRecordRaw[] = [
-  // 不需要登录就能访问的路由示例
-  // {
-  //   path: '/welcome',
-  //   name: 'WelcomeStatic',
-  //   component: () => import('@views/dashboard/console/index.vue'),
-  //   meta: { title: 'menus.dashboard.title' }
-  // },
   {
     path: '/auth/login',
     name: 'Login',
@@ -25,13 +18,13 @@ export const staticRoutes: AppRouteRecordRaw[] = [
     meta: { title: 'menus.login.title', isHideTab: true }
   },
   {
-    path: '/403',
+    path: '/300',
     name: 'Exception403',
     component: () => import('@views/exception/403/index.vue'),
     meta: { title: '403', isHideTab: true }
   },
   {
-    path: '/:pathMatch(.*)*',
+    path: '/400',
     name: 'Exception404',
     component: () => import('@views/exception/404/index.vue'),
     meta: { title: '404', isHideTab: true }
@@ -42,13 +35,20 @@ export const staticRoutes: AppRouteRecordRaw[] = [
     component: () => import('@views/exception/500/index.vue'),
     meta: { title: '500', isHideTab: true }
   },
+  {
+    path: '/403',
+    redirect: '/300'
+  },
+  {
+    path: '/404',
+    redirect: '/400'
+  },
   {
     path: '/outside',
     component: () => import('@views/index/index.vue'),
     name: 'Outside',
     meta: { title: 'menus.outside.title' },
     children: [
-      // iframe 内嵌页面
       {
         path: '/outside/iframe/:path',
         name: 'Iframe',
@@ -56,5 +56,11 @@ export const staticRoutes: AppRouteRecordRaw[] = [
         meta: { title: 'iframe' }
       }
     ]
+  },
+  {
+    path: '/:pathMatch(.*)*',
+    name: 'Exception404CatchAll',
+    component: () => import('@views/exception/404/index.vue'),
+    meta: { title: '404', isHideTab: true }
   }
 ]

+ 8 - 8
web-admin/src/views/exception/403/index.vue

@@ -1,16 +1,16 @@
-<!-- 403页面 -->
+<!-- 403 / 访问受限 -->
 <template>
   <ArtException
-    :data="{
-      title: '403',
-      desc: $t('exceptionPage.403'),
-      btnText: $t('exceptionPage.gohome'),
-      imgUrl
-    }"
+    code="403"
+    variant="forbidden"
+    :title="$t('exceptionPage.403.title')"
+    :desc="$t('exceptionPage.403.desc')"
+    :hint="$t('exceptionPage.403.hint')"
+    :home-text="$t('exceptionPage.gohome')"
+    :back-text="$t('exceptionPage.goback')"
   />
 </template>
 
 <script setup lang="ts">
-  import imgUrl from '@imgs/svg/403.svg'
   defineOptions({ name: 'Exception403' })
 </script>

+ 8 - 8
web-admin/src/views/exception/404/index.vue

@@ -1,16 +1,16 @@
-<!-- 404页面 -->
+<!-- 404 / 页面不存在 -->
 <template>
   <ArtException
-    :data="{
-      title: '404',
-      desc: $t('exceptionPage.404'),
-      btnText: $t('exceptionPage.gohome'),
-      imgUrl
-    }"
+    code="404"
+    variant="not-found"
+    :title="$t('exceptionPage.404.title')"
+    :desc="$t('exceptionPage.404.desc')"
+    :hint="$t('exceptionPage.404.hint')"
+    :home-text="$t('exceptionPage.gohome')"
+    :back-text="$t('exceptionPage.goback')"
   />
 </template>
 
 <script setup lang="ts">
-  import imgUrl from '@imgs/svg/404.svg'
   defineOptions({ name: 'Exception404' })
 </script>

+ 8 - 8
web-admin/src/views/exception/500/index.vue

@@ -1,16 +1,16 @@
-<!-- 500页面 -->
+<!-- 500 / 服务器错误 -->
 <template>
   <ArtException
-    :data="{
-      title: '500',
-      desc: $t('exceptionPage.500'),
-      btnText: $t('exceptionPage.gohome'),
-      imgUrl
-    }"
+    code="500"
+    variant="server-error"
+    :title="$t('exceptionPage.500.title')"
+    :desc="$t('exceptionPage.500.desc')"
+    :hint="$t('exceptionPage.500.hint')"
+    :home-text="$t('exceptionPage.gohome')"
+    :back-text="$t('exceptionPage.goback')"
   />
 </template>
 
 <script setup lang="ts">
-  import imgUrl from '@imgs/svg/500.svg'
   defineOptions({ name: 'Exception500' })
 </script>

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio