This commit is contained in:
zlwu committed 2026-06-16 11:25:02 +08:00
1 parent 5679d7981c
commit 7e04ebecc4
25 files changed
+790 -373

No files matched your search

+66 -66
View File
@@ -12549,21 +12549,21 @@
"label": "loadTaskDetail()",
"file_type": "code",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L81"
"source_location": "L83"
},
{
"id": "production_work_order_edittaskinfodialog_handleclose",
"label": "handleClose()",
"file_type": "code",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L93"
"source_location": "L95"
},
{
"id": "production_work_order_edittaskinfodialog_handlesubmit",
"label": "handleSubmit()",
"file_type": "code",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L100"
"source_location": "L102"
},
{
"id": "views_production_production_work_order_taskoutputlist_vue",
@@ -14894,7 +14894,7 @@
"label": "if()",
"file_type": "code",
"source_file": "views/pilot-service/channel/ChannelServiceOrderTab.vue",
"source_location": "L1287"
"source_location": "L1343"
},
{
"id": "views_pilot_service_clinical_refund_confirm_index_vue",
@@ -15300,28 +15300,28 @@
"label": "validate()",
"file_type": "code",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2091"
"source_location": "L2115"
},
{
"id": "pilot_application_applicationdetaildialog_if",
"label": "if()",
"file_type": "code",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2355"
"source_location": "L2379"
},
{
"id": "pilot_application_applicationdetaildialog_async",
"label": "async()",
"file_type": "code",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2947"
"source_location": "L2971"
},
{
"id": "pilot_application_applicationdetaildialog_initdata",
"label": "initData()",
"file_type": "code",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L3386"
"source_location": "L3410"
},
{
"id": "views_pilot_service_pilot_application_pilotapplicationtab_vue",
@@ -15657,14 +15657,14 @@
"label": "if()",
"file_type": "code",
"source_file": "views/pilot-service/pilot-application/ApplicationFormDialog.vue",
"source_location": "L1454"
"source_location": "L1456"
},
{
"id": "pilot_application_applicationformdialog_remotesearchcustomers",
"label": "remoteSearchCustomers()",
"file_type": "code",
"source_file": "views/pilot-service/pilot-application/ApplicationFormDialog.vue",
"source_location": "L2498"
"source_location": "L2500"
},
{
"id": "views_pilot_service_pilot_application_checkupmanagementtab_vue",
@@ -16280,91 +16280,91 @@
"label": "txnAmountLabel()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L571"
"source_location": "L574"
},
{
"id": "channel_service_order_finance_index_txntypehasproducts",
"label": "txnTypeHasProducts()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L581"
"source_location": "L584"
},
{
"id": "channel_service_order_finance_index_financesubmitremarkdisplay",
"label": "financeSubmitRemarkDisplay()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L585"
"source_location": "L588"
},
{
"id": "channel_service_order_finance_index_financesubmitattachmentdisplayfiles",
"label": "financeSubmitAttachmentDisplayFiles()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L590"
"source_location": "L593"
},
{
"id": "channel_service_order_finance_index_fullfileurl",
"label": "fullFileUrl()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L607"
"source_location": "L610"
},
{
"id": "channel_service_order_finance_index_isimagefile",
"label": "isImageFile()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L614"
"source_location": "L617"
},
{
"id": "channel_service_order_finance_index_isvideofile",
"label": "isVideoFile()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L624"
"source_location": "L627"
},
{
"id": "channel_service_order_finance_index_formatlocaldate",
"label": "formatLocalDate()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L644"
"source_location": "L647"
},
{
"id": "channel_service_order_finance_index_loaddata",
"label": "loadData()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L680"
"source_location": "L683"
},
{
"id": "channel_service_order_finance_index_handlesearch",
"label": "handleSearch()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L707"
"source_location": "L710"
},
{
"id": "channel_service_order_finance_index_handlereset",
"label": "handleReset()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L712"
"source_location": "L715"
},
{
"id": "channel_service_order_finance_index_handletabchange",
"label": "handleTabChange()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L721"
"source_location": "L724"
},
{
"id": "channel_service_order_finance_index_switchtab",
"label": "switchTab()",
"file_type": "code",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L730"
"source_location": "L733"
},
{
"id": "views_pilot_service_project_price_system_index_vue",
@@ -38498,7 +38498,7 @@
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L55",
"source_location": "L57",
"weight": 1.0
},
{
@@ -38507,7 +38507,7 @@
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L56",
"source_location": "L58",
"weight": 1.0
},
{
@@ -38516,7 +38516,7 @@
"relation": "imports_from",
"confidence": "EXTRACTED",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L57",
"source_location": "L59",
"weight": 1.0
},
{
@@ -38525,7 +38525,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L81",
"source_location": "L83",
"weight": 1.0
},
{
@@ -38534,7 +38534,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L93",
"source_location": "L95",
"weight": 1.0
},
{
@@ -38543,7 +38543,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L100",
"source_location": "L102",
"weight": 1.0
},
{
@@ -38552,7 +38552,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L113",
"source_location": "L115",
"weight": 1.0
},
{
@@ -43079,7 +43079,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel/ChannelServiceOrderTab.vue",
"source_location": "L1287",
"source_location": "L1343",
"weight": 1.0
},
{
@@ -43088,7 +43088,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel/ChannelServiceOrderTab.vue",
"source_location": "L1567",
"source_location": "L1623",
"weight": 1.0
},
{
@@ -43808,7 +43808,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2091",
"source_location": "L2115",
"weight": 1.0
},
{
@@ -43817,7 +43817,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2155",
"source_location": "L2179",
"weight": 1.0
},
{
@@ -43826,7 +43826,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2355",
"source_location": "L2379",
"weight": 1.0
},
{
@@ -43835,7 +43835,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2932",
"source_location": "L2956",
"weight": 1.0
},
{
@@ -43844,7 +43844,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2947",
"source_location": "L2971",
"weight": 1.0
},
{
@@ -43853,7 +43853,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L3363",
"source_location": "L3387",
"weight": 1.0
},
{
@@ -43862,7 +43862,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L3386",
"source_location": "L3410",
"weight": 1.0
},
{
@@ -44546,7 +44546,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/pilot-application/ApplicationFormDialog.vue",
"source_location": "L1454",
"source_location": "L1456",
"weight": 1.0
},
{
@@ -44555,7 +44555,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/pilot-application/ApplicationFormDialog.vue",
"source_location": "L2498",
"source_location": "L2500",
"weight": 1.0
},
{
@@ -45824,7 +45824,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L571",
"source_location": "L574",
"weight": 1.0
},
{
@@ -45833,7 +45833,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L581",
"source_location": "L584",
"weight": 1.0
},
{
@@ -45842,7 +45842,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L585",
"source_location": "L588",
"weight": 1.0
},
{
@@ -45851,7 +45851,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L590",
"source_location": "L593",
"weight": 1.0
},
{
@@ -45860,7 +45860,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L607",
"source_location": "L610",
"weight": 1.0
},
{
@@ -45869,7 +45869,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L614",
"source_location": "L617",
"weight": 1.0
},
{
@@ -45878,7 +45878,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L624",
"source_location": "L627",
"weight": 1.0
},
{
@@ -45887,7 +45887,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L644",
"source_location": "L647",
"weight": 1.0
},
{
@@ -45896,7 +45896,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L680",
"source_location": "L683",
"weight": 1.0
},
{
@@ -45905,7 +45905,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L707",
"source_location": "L710",
"weight": 1.0
},
{
@@ -45914,7 +45914,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L712",
"source_location": "L715",
"weight": 1.0
},
{
@@ -45923,7 +45923,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L721",
"source_location": "L724",
"weight": 1.0
},
{
@@ -45932,7 +45932,7 @@
"relation": "contains",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L730",
"source_location": "L733",
"weight": 1.0
},
{
@@ -45941,7 +45941,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L709",
"source_location": "L712",
"weight": 1.0
},
{
@@ -45950,7 +45950,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L718",
"source_location": "L721",
"weight": 1.0
},
{
@@ -45959,7 +45959,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L727",
"source_location": "L730",
"weight": 1.0
},
{
@@ -45968,7 +45968,7 @@
"relation": "calls",
"confidence": "EXTRACTED",
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L733",
"source_location": "L736",
"weight": 1.0
},
{
@@ -53395,7 +53395,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L84",
"source_location": "L86",
"weight": 1.0
},
{
@@ -53405,7 +53405,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L102",
"source_location": "L104",
"weight": 1.0
},
{
@@ -53415,7 +53415,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L106",
"source_location": "L108",
"weight": 1.0
},
{
@@ -53425,7 +53425,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/production/production-work-order/EditTaskInfoDialog.vue",
"source_location": "L112",
"source_location": "L114",
"weight": 1.0
},
{
@@ -54625,7 +54625,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2939",
"source_location": "L2963",
"weight": 1.0
},
{
@@ -54635,7 +54635,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2952",
"source_location": "L2976",
"weight": 1.0
},
{
@@ -54645,7 +54645,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/pilot-service/pilot-application/ApplicationDetailDialog.vue",
"source_location": "L2955",
"source_location": "L2979",
"weight": 1.0
},
{
@@ -55465,7 +55465,7 @@
"confidence": "INFERRED",
"confidence_score": 0.8,
"source_file": "views/pilot-service/channel-service-order-finance/index.vue",
"source_location": "L697",
"source_location": "L700",
"weight": 1.0
},
{
+1 -1
View File
@@ -1,7 +1,7 @@
# Graph Report - src (2026-06-16)
## Corpus Check
- Large corpus: 737 files · ~515,188 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
- Large corpus: 737 files · ~515,551 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
## Summary
- 2481 nodes · 3433 edges · 54 communities detected
+9 -9
View File
@@ -17,8 +17,8 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/common/index.ts": 1781272556.3597305,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/directive/directive.d.ts": 1781272556.3601494,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/api/api.d.ts": 1781272556.3606477,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1781569153.182714,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1781569059.7134671,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1781578293.5062833,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1781577687.92576,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/store/index.ts": 1781272556.364766,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/router/index.ts": 1781272556.3652694,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/locales/index.ts": 1781272556.3657222,
@@ -286,7 +286,7 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/PaymentInfoTab.vue": 1781568168.6100461,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue": 1781563767.3149889,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/MaterialUsageTab.vue": 1781503550.8574874,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/MaterialStockCheckTab.vue": 1781563767.3140159,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/MaterialStockCheckTab.vue": 1781578349.395239,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue": 1781272556.719875,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-entry-info/index.vue": 1781272556.7201529,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue": 1781568150.9471092,
@@ -355,7 +355,7 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/SampleReceptionDialog.vue": 1781536124.877992,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/TaskExecutionDialog.vue": 1781563767.3564525,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/useProductionWorkOrderViewDialog.ts": 1781447123.1291173,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue": 1781272556.829831,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue": 1781577178.2471955,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/TaskOutputList.vue": 1781535597.897779,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/DispatchTaskDialog.vue": 1781563767.354078,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/TaskPaperAttachmentsPanel.vue": 1781530960.805927,
@@ -425,10 +425,10 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/infusion-schedule-management/ScheduleEditDialog.vue": 1781566575.2629325,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/index.vue": 1781272556.9223943,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/ServiceOrderTxnTable.vue": 1781272556.9230614,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/ServiceOrderTxnDialog.vue": 1781563767.3295007,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/ServiceOrderTxnDialog.vue": 1781578003.3778918,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue": 1781563767.3325548,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelViewDialog.vue": 1781563767.3317409,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue": 1781563767.3310668,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue": 1781577344.6964703,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-refund-confirm/index.vue": 1781272556.946893,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-payment-confirm/index.vue": 1781567163.924653,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-payment-confirm/RefundConfirmTab.vue": 1781567168.9172702,
@@ -437,11 +437,11 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseReviewDialog.vue": 1781563767.3399522,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseMaterialDialog.vue": 1781566437.9508846,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/index.vue": 1781562919.470491,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue": 1781563767.3412404,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue": 1781577212.7558515,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue": 1781272557.1928792,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationViewDialog.vue": 1781566821.0961015,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/InfusionScheduleTab.vue": 1781566659.2158477,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue": 1781566354.4880795,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue": 1781577432.582126,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/CheckupManagementTab.vue": 1781435201.7785301,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ClinicalPaymentTab.vue": 1781566977.5142796,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-price/index.vue": 1781272557.4568446,
@@ -454,7 +454,7 @@
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/CheckupFillDialog.vue": 1781563767.3352747,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/CheckupMarkCheckedDialog.vue": 1781563767.335626,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-payment-info/index.vue": 1781272558.0460358,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue": 1781563767.3288455,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue": 1781576862.9434006,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue": 1781272558.2950988,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-spec/index.vue": 1781272558.3464932,
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/sample-code/index.vue": 1781272558.356484,
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelserviceordertab_vue", "label": "ChannelServiceOrderTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1"}, {"id": "channel_channelserviceordertab_validate", "label": "validate()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1540"}, {"id": "channel_channelserviceordertab_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1624"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelserviceordertab_vue", "target": "channel_channelserviceordertab_validate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1540", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelserviceordertab_vue", "target": "channel_channelserviceordertab_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1624", "weight": 1.0}], "raw_calls": [{"caller_nid": "channel_channelserviceordertab_if", "callee": "error", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1625"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelserviceordertab_vue", "label": "ChannelServiceOrderTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1"}, {"id": "channel_channelserviceordertab_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1343"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelserviceordertab_vue", "target": "channel_channelserviceordertab_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1343", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelserviceordertab_vue", "target": "channel_channelserviceordertab_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1623", "weight": 1.0}], "raw_calls": [{"caller_nid": "channel_channelserviceordertab_if", "callee": "handleChannelSearch", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1344"}, {"caller_nid": "channel_channelserviceordertab_if", "callee": "error", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1624"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationformdialog_vue", "label": "ApplicationFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L1"}, {"id": "pilot_application_applicationformdialog_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L1456"}, {"id": "pilot_application_applicationformdialog_remotesearchcustomers", "label": "remoteSearchCustomers()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L2500"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationformdialog_vue", "target": "pilot_application_applicationformdialog_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L1456", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationformdialog_vue", "target": "pilot_application_applicationformdialog_remotesearchcustomers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L2500", "weight": 1.0}], "raw_calls": [{"caller_nid": "pilot_application_applicationformdialog_if", "callee": "warning", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L1457"}, {"caller_nid": "pilot_application_applicationformdialog_remotesearchcustomers", "callee": "mapUrlsToAttachmentFiles", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L2574"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_import_components_d_ts", "label": "components.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelserviceordertab_vue", "label": "ChannelServiceOrderTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1"}, {"id": "channel_channelserviceordertab_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1326"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelserviceordertab_vue", "target": "channel_channelserviceordertab_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1326", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelserviceordertab_vue", "target": "channel_channelserviceordertab_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1606", "weight": 1.0}], "raw_calls": [{"caller_nid": "channel_channelserviceordertab_if", "callee": "handleChannelSearch", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1327"}, {"caller_nid": "channel_channelserviceordertab_if", "callee": "error", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue", "source_location": "L1607"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationdetaildialog_vue", "label": "ApplicationDetailDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L1"}, {"id": "pilot_application_applicationdetaildialog_validate", "label": "validate()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2115"}, {"id": "pilot_application_applicationdetaildialog_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2379"}, {"id": "pilot_application_applicationdetaildialog_async", "label": "async()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2971"}, {"id": "pilot_application_applicationdetaildialog_initdata", "label": "initData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L3410"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationdetaildialog_vue", "target": "pilot_application_applicationdetaildialog_validate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2115", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationdetaildialog_vue", "target": "pilot_application_applicationdetaildialog_validate", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2179", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationdetaildialog_vue", "target": "pilot_application_applicationdetaildialog_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2379", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationdetaildialog_vue", "target": "pilot_application_applicationdetaildialog_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2956", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationdetaildialog_vue", "target": "pilot_application_applicationdetaildialog_async", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2971", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationdetaildialog_vue", "target": "pilot_application_applicationdetaildialog_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L3387", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationdetaildialog_vue", "target": "pilot_application_applicationdetaildialog_initdata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L3410", "weight": 1.0}], "raw_calls": [{"caller_nid": "pilot_application_applicationdetaildialog_if", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2533"}, {"caller_nid": "pilot_application_applicationdetaildialog_if", "callee": "parseAttachmentUrls", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue", "source_location": "L2963"}, {"caller_nid": "pilot_application_applicationdetaildialog_async", "callee": "append", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/AppLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationformdialog_vue", "label": "ApplicationFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L1"}, {"id": "pilot_application_applicationformdialog_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L1457"}, {"id": "pilot_application_applicationformdialog_remotesearchcustomers", "label": "remoteSearchCustomers()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L2501"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationformdialog_vue", "target": "pilot_application_applicationformdialog_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L1457", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_applicationformdialog_vue", "target": "pilot_application_applicationformdialog_remotesearchcustomers", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L2501", "weight": 1.0}], "raw_calls": [{"caller_nid": "pilot_application_applicationformdialog_if", "callee": "warning", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L1458"}, {"caller_nid": "pilot_application_applicationformdialog_remotesearchcustomers", "callee": "mapUrlsToAttachmentFiles", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue", "source_location": "L2575"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_import_components_d_ts", "label": "components.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_service_order_serviceordertxndialog_vue", "label": "ServiceOrderTxnDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/ServiceOrderTxnDialog.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_materialstockchecktab_vue", "label": "MaterialStockCheckTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/MaterialStockCheckTab.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_service_order_finance_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L1"}, {"id": "channel_service_order_finance_index_txnamountlabel", "label": "txnAmountLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L574"}, {"id": "channel_service_order_finance_index_txntypehasproducts", "label": "txnTypeHasProducts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L584"}, {"id": "channel_service_order_finance_index_financesubmitremarkdisplay", "label": "financeSubmitRemarkDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L588"}, {"id": "channel_service_order_finance_index_financesubmitattachmentdisplayfiles", "label": "financeSubmitAttachmentDisplayFiles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L593"}, {"id": "channel_service_order_finance_index_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L610"}, {"id": "channel_service_order_finance_index_isimagefile", "label": "isImageFile()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L617"}, {"id": "channel_service_order_finance_index_isvideofile", "label": "isVideoFile()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L627"}, {"id": "channel_service_order_finance_index_formatlocaldate", "label": "formatLocalDate()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L647"}, {"id": "channel_service_order_finance_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L683"}, {"id": "channel_service_order_finance_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L710"}, {"id": "channel_service_order_finance_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L715"}, {"id": "channel_service_order_finance_index_handletabchange", "label": "handleTabChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L724"}, {"id": "channel_service_order_finance_index_switchtab", "label": "switchTab()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L733"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_service_order_finance_index_vue", "target": "channel_service_order_finance_index_txnamountlabel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L574", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_service_order_finance_index_vue", "target": "channel_service_order_finance_index_txntypehasproducts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L584", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_service_order_finance_index_vue", "target": "channel_service_order_finance_index_financesubmitremarkdisplay", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue", "source_location": "L588"Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_service_order_serviceordertxndialog_vue", "label": "ServiceOrderTxnDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/ServiceOrderTxnDialog.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_edittaskinfodialog_vue", "label": "EditTaskInfoDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L1"}, {"id": "production_work_order_edittaskinfodialog_loadtaskdetail", "label": "loadTaskDetail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L83"}, {"id": "production_work_order_edittaskinfodialog_handleclose", "label": "handleClose()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L95"}, {"id": "production_work_order_edittaskinfodialog_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L102"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_edittaskinfodialog_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L57", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_edittaskinfodialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_production_task", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L58", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_edittaskinfodialog_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L59", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_edittaskinfodialog_vue", "target": "production_work_order_edittaskinfodialog_loadtaskdetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L83", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_edittaskinfodialog_vue", "target": "production_work_order_edittaskinfodialog_handleclose", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L95", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_edittaskinfodialog_vue", "target": "production_work_order_edittaskinfodialog_handlesubmit", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L102", "weight": 1.0}, {"source": "production_work_order_edittaskinfodialog_handlesubmit", "target": "production_work_order_edittaskinfodialog_handleclose", "relation": "calls", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L115", "weight": 1.0}], "raw_calls": [{"caller_nid": "production_work_order_edittaskinfodialog_loadtaskdetail", "callee": "fetchProductionTaskDetail", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L86"}, {"caller_nid": "production_work_order_edittaskinfodialog_handlesubmit", "callee": "validate", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L104"}, {"caller_nid": "production_work_order_edittaskinfodialog_handlesubmit", "callee": "fetchUpdateProductionTask", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L108"}, {"caller_nid": "production_work_order_edittaskinfodialog_handlesubmit", "callee": "success", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue", "source_location": "L113"}, {"caller_nid": "production_work_order_edittaskinfodialLine truncated
@@ -72,8 +72,20 @@
header-align="center"
:index="(index) => (pagination.page - 1) * pagination.pageSize + index + 1"
/>
<el-table-column prop="title" label="盘点标题" min-width="180" align="center" header-align="center" />
<el-table-column prop="checkTime" label="盘点时间" min-width="170" align="center" header-align="center" />
<el-table-column
prop="title"
label="盘点标题"
min-width="180"
align="center"
header-align="center"
/>
<el-table-column
prop="checkTime"
label="盘点时间"
min-width="170"
align="center"
header-align="center"
/>
<el-table-column label="状态" min-width="100" align="center" header-align="center">
<template #default="{ row }">
<el-tag :type="statusTagType(row.status)" size="small">{{ row.statusLabel }}</el-tag>
@@ -88,7 +100,13 @@
<el-table-column label="创建人" min-width="100" align="center" header-align="center">
<template #default="{ row }">{{ row.createByName || row.createBy || '—' }}</template>
</el-table-column>
<el-table-column prop="completeTime" label="完成时间" min-width="170" align="center" header-align="center">
<el-table-column
prop="completeTime"
label="完成时间"
min-width="170"
align="center"
header-align="center"
>
<template #default="{ row }">{{ row.completeTime || '—' }}</template>
</el-table-column>
<el-table-column
@@ -207,7 +225,9 @@
<aside class="unused-list-panel">
<div class="unused-list-panel__head">
<span class="unused-list-panel__title">领用记录</span>
<span class="stat-pill">共 {{ requisitionTotalCount }} · 已登记 {{ requisitionRegisteredCount }}</span>
<span class="stat-pill"
>共 {{ requisitionTotalCount }} · 已登记 {{ requisitionRegisteredCount }}</span
>
</div>
<div class="unused-list-search-wrap">
<el-input
@@ -229,7 +249,9 @@
>
<div class="unused-line-item__top">
<span class="unused-line-item__name">{{ req.materialName }}</span>
<span v-if="isRequisitionEntryRegistered(req.id)" class="unused-reg-tag">已登记</span>
<span v-if="isRequisitionEntryRegistered(req.id)" class="unused-reg-tag"
>已登记</span
>
</div>
<div class="unused-line-item__meta">
<span>{{ req.requisitionQty }}{{ req.unit || '' }}</span>
@@ -292,29 +314,41 @@
</aside>
<section class="unused-detail-panel">
<div
v-if="editMode === 'requisition' && activeRequisition"
class="unused-detail-body"
>
<div v-if="editMode === 'requisition' && activeRequisition" class="unused-detail-body">
<div class="unused-detail-head">
<div>
<h3 class="unused-detail-title">{{ activeRequisition.materialName }}</h3>
<p class="unused-detail-sub">
{{ activeRequisition.stockInNo || '—' }} · 批号 {{ activeRequisition.batchNo || '—' }} ·
领用 {{ activeRequisition.requisitionQty }}{{ activeRequisition.unit || '' }}
{{ activeRequisition.stockInNo || '—' }} · 批号
{{ activeRequisition.batchNo || '—' }} · 领用 {{ activeRequisition.requisitionQty
}}{{ activeRequisition.unit || '' }}
<template v-if="activeRequisition.taskConsumedQty > 0">
· 任务已消耗 {{ activeRequisition.taskConsumedQty }}{{ activeRequisition.unit || '' }}
· 任务已消耗 {{ activeRequisition.taskConsumedQty
}}{{ activeRequisition.unit || '' }}
</template>
</p>
</div>
</div>
<div class="unused-readonly-grid">
<div><span class="ro-label">领用人</span>{{ activeRequisition.receiverName || activeRequisition.receiver || '—' }}</div>
<div><span class="ro-label">领用时间</span>{{ activeRequisition.useTime || '—' }}</div>
<div
><span class="ro-label">领用人</span
>{{ activeRequisition.receiverName || activeRequisition.receiver || '—' }}</div
>
<div
><span class="ro-label">领用时间</span>{{ activeRequisition.useTime || '—' }}</div
>
<div><span class="ro-label">规格</span>{{ activeRequisition.specModel || '—' }}</div>
<div><span class="ro-label">厂家</span>{{ activeRequisition.manufacturer || '—' }}</div>
<div><span class="ro-label">单价</span>{{ displayMoney(activeRequisition.unitPrice) }}</div>
<div><span class="ro-label">过期日期</span>{{ activeRequisition.expireDate || '—' }}</div>
<div
><span class="ro-label">厂家</span>{{ activeRequisition.manufacturer || '—' }}</div
>
<div
><span class="ro-label">单价</span
>{{ displayMoney(activeRequisition.unitPrice) }}</div
>
<div
><span class="ro-label">过期日期</span
>{{ activeRequisition.expireDate || '—' }}</div
>
</div>
<el-form label-position="top" class="unused-edit-form">
<div class="form-grid-2">
@@ -330,7 +364,9 @@
</el-form-item>
<el-form-item label="剩余金额(元)">
<el-input
:model-value="displayMoney(calcLineAmount(activeDraft.unitPrice, activeDraft.unusedQty))"
:model-value="
displayMoney(calcLineAmount(activeDraft.unitPrice, activeDraft.unusedQty))
"
disabled
/>
</el-form-item>
@@ -348,7 +384,9 @@
<div class="unused-detail-head">
<div>
<h3 class="unused-detail-title">手工登记</h3>
<p class="unused-detail-sub">检索入库批次带出物料信息,填写未用完数量、持有人与备注。</p>
<p class="unused-detail-sub"
>检索入库批次带出物料信息,填写未用完数量、持有人与备注。</p
>
</div>
</div>
<el-form label-position="top" class="unused-edit-form">
@@ -365,11 +403,19 @@
:remote-method="searchUnusedBatchOptions"
@change="onManualBatchPick"
>
<el-option v-for="opt in batchOptions" :key="opt.id" :label="opt.label" :value="opt.id">
<el-option
v-for="opt in batchOptions"
:key="opt.id"
:label="opt.label"
:value="opt.id"
>
<div class="batch-option-item">
<span class="batch-option-main">{{ opt.stockInNo }} · {{ opt.materialName }}</span>
<span class="batch-option-main"
>{{ opt.stockInNo }} · {{ opt.materialName }}</span
>
<span class="batch-option-sub">
批号:{{ opt.batchNo || '—' }} · 剩余 {{ opt.remainingQty }}{{ opt.unit || '' }}
批号:{{ opt.batchNo || '—' }} · 剩余 {{ opt.remainingQty
}}{{ opt.unit || '' }}
</span>
</div>
</el-option>
@@ -381,7 +427,9 @@
<div><span class="ro-label">批号</span>{{ manualDraft.batchNo || '—' }}</div>
<div><span class="ro-label">规格</span>{{ manualDraft.specModel || '—' }}</div>
<div><span class="ro-label">厂家</span>{{ manualDraft.manufacturer || '—' }}</div>
<div><span class="ro-label">单价</span>{{ displayMoney(manualDraft.unitPrice) }}</div>
<div
><span class="ro-label">单价</span>{{ displayMoney(manualDraft.unitPrice) }}</div
>
</div>
<div class="form-grid-2">
<el-form-item label="未用完数量" required>
@@ -395,7 +443,9 @@
</el-form-item>
<el-form-item label="剩余金额(元)">
<el-input
:model-value="displayMoney(calcLineAmount(manualDraft.unitPrice, manualDraft.unusedQty))"
:model-value="
displayMoney(calcLineAmount(manualDraft.unitPrice, manualDraft.unusedQty))
"
disabled
/>
</el-form-item>
@@ -423,7 +473,12 @@
<el-button class="btn-ghost" @click="unusedVisible = false">
<el-icon><Close /></el-icon>取消
</el-button>
<el-button class="btn-main" type="primary" :loading="unusedLoading" @click="handleSaveUnused">
<el-button
class="btn-main"
type="primary"
:loading="unusedLoading"
@click="handleSaveUnused"
>
<el-icon><Check /></el-icon>保存
</el-button>
</template>
@@ -440,130 +495,286 @@
modal-class="protocol-dialog-mask"
destroy-on-close
>
<div v-if="viewDetail" class="stock-check-view">
<div class="view-head-grid">
<div><span class="view-label">盘点时间</span>{{ viewDetail.checkTime }}</div>
<div>
<span class="view-label">状态</span>
<el-tag :type="statusTagType(viewDetail.status)" size="small">{{ viewDetail.statusLabel }}</el-tag>
<DialogFormBody :loading="false" body-class="min-h-[200px]">
<div v-if="viewDetail" class="stock-check-view">
<div class="view-head-grid">
<div><span class="view-label">盘点时间</span>{{ viewDetail.checkTime }}</div>
<div>
<span class="view-label">状态</span>
<el-tag :type="statusTagType(viewDetail.status)" size="small">{{
viewDetail.statusLabel
}}</el-tag>
</div>
<div
><span class="view-label">创建人</span
>{{ viewDetail.createByName || viewDetail.createBy || '—' }}</div
>
<div><span class="view-label">完成时间</span>{{ viewDetail.completeTime || '—' }}</div>
<div class="view-head-remark"
><span class="view-label">备注</span>{{ viewDetail.remark || '—' }}</div
>
</div>
<div class="stock-check-lines-section">
<h3 class="detail-section-title"
>系统库存快照({{ viewDetail.batchLines?.length || 0 }} 行)</h3
>
<div class="list-body list-wrap view-inner-table-wrap stock-check-inner-list-wrap">
<el-table
v-if="viewDetail.batchLines?.length"
:data="viewDetail.batchLines"
stripe
class="list-table inner-table"
max-height="320"
>
<el-table-column
type="index"
label="序号"
min-width="52"
align="center"
header-align="center"
/>
<el-table-column
label="入库编号"
min-width="110"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.stockInNo) }}</template>
</el-table-column>
<el-table-column
label="入库日期"
min-width="110"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.stockInDate) }}</template>
</el-table-column>
<el-table-column
label="过期日期"
min-width="110"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.expireDate) }}</template>
</el-table-column>
<el-table-column
label="物料编码"
min-width="110"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.materialCode) }}</template>
</el-table-column>
<el-table-column
label="物料名称"
min-width="130"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">{{ displayText(row.materialName) }}</template>
</el-table-column>
<el-table-column
label="规格型号"
min-width="100"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">{{ displayText(row.specModel) }}</template>
</el-table-column>
<el-table-column label="单位" min-width="72" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.unit) }}</template>
</el-table-column>
<el-table-column label="货号" min-width="100" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.catalogNo) }}</template>
</el-table-column>
<el-table-column label="批号" min-width="90" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.batchNo) }}</template>
</el-table-column>
<el-table-column
label="厂家"
min-width="110"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">{{ displayText(row.manufacturer) }}</template>
</el-table-column>
<el-table-column
label="单价(元)"
min-width="100"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayMoney(row.unitPrice) }}</template>
</el-table-column>
<el-table-column
label="剩余金额(元)"
min-width="120"
align="center"
header-align="center"
>
<template #default="{ row }">
{{
displayMoney(
row.remainingAmount ?? calcLineAmount(row.unitPrice, row.remainingQty)
)
}}
</template>
</el-table-column>
<el-table-column
label="剩余数量"
min-width="100"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.remainingQty) }}</template>
</el-table-column>
</el-table>
<el-empty v-else description="暂无系统库存快照数据" :image-size="48" />
</div>
</div>
<div class="stock-check-lines-section">
<h3 class="detail-section-title"
>领用未用完登记({{ viewDetail.unusedLines?.length || 0 }} 行)</h3
>
<div class="list-body list-wrap view-inner-table-wrap stock-check-inner-list-wrap">
<el-table
v-if="viewDetail.unusedLines?.length"
:data="viewDetail.unusedLines"
stripe
class="list-table inner-table"
max-height="320"
>
<el-table-column
type="index"
label="序号"
min-width="52"
align="center"
header-align="center"
/>
<el-table-column
label="入库编号"
min-width="110"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.stockInNo) }}</template>
</el-table-column>
<el-table-column
label="入库日期"
min-width="110"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.stockInDate) }}</template>
</el-table-column>
<el-table-column
label="过期日期"
min-width="110"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.expireDate) }}</template>
</el-table-column>
<el-table-column
label="物料编码"
min-width="110"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.materialCode) }}</template>
</el-table-column>
<el-table-column
label="物料名称"
min-width="130"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">{{ displayText(row.materialName) }}</template>
</el-table-column>
<el-table-column
label="规格型号"
min-width="100"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">{{ displayText(row.specModel) }}</template>
</el-table-column>
<el-table-column label="单位" min-width="72" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.unit) }}</template>
</el-table-column>
<el-table-column label="货号" min-width="100" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.catalogNo) }}</template>
</el-table-column>
<el-table-column label="批号" min-width="90" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.batchNo) }}</template>
</el-table-column>
<el-table-column
label="厂家"
min-width="110"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">{{ displayText(row.manufacturer) }}</template>
</el-table-column>
<el-table-column
label="单价(元)"
min-width="100"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayMoney(row.unitPrice) }}</template>
</el-table-column>
<el-table-column
label="剩余金额(元)"
min-width="120"
align="center"
header-align="center"
>
<template #default="{ row }">
{{
displayMoney(
row.remainingAmount ?? calcLineAmount(row.unitPrice, row.unusedQty)
)
}}
</template>
</el-table-column>
<el-table-column
label="未用完数量"
min-width="110"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.unusedQty) }}</template>
</el-table-column>
<el-table-column
label="持有人"
min-width="100"
align="center"
header-align="center"
>
<template #default="{ row }">{{ displayText(row.holder) }}</template>
</el-table-column>
<el-table-column
label="备注"
min-width="120"
align="center"
header-align="center"
show-overflow-tooltip
>
<template #default="{ row }">{{ displayText(row.remark) }}</template>
</el-table-column>
</el-table>
<el-empty v-else description="暂无领用未用完登记数据" :image-size="48" />
</div>
</div>
<div><span class="view-label">创建人</span>{{ viewDetail.createByName || viewDetail.createBy || '—' }}</div>
<div><span class="view-label">完成时间</span>{{ viewDetail.completeTime || '—' }}</div>
<div class="view-head-remark"><span class="view-label">备注</span>{{ viewDetail.remark || '—' }}</div>
</div>
<h3 class="view-section-title">系统库存快照({{ viewDetail.batchLines?.length || 0 }} 行)</h3>
<div class="inner-table-scroll">
<el-table
:data="viewDetail.batchLines || []"
stripe
:fit="false"
table-layout="auto"
class="list-table inner-table"
>
<el-table-column type="index" label="序号" min-width="52" align="center" header-align="center" />
<el-table-column label="入库编号" min-width="110" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.stockInNo) }}</template>
</el-table-column>
<el-table-column label="入库日期" min-width="110" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.stockInDate) }}</template>
</el-table-column>
<el-table-column label="过期日期" min-width="110" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.expireDate) }}</template>
</el-table-column>
<el-table-column label="物料编码" min-width="110" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.materialCode) }}</template>
</el-table-column>
<el-table-column label="物料名称" min-width="130" align="center" header-align="center" show-overflow-tooltip>
<template #default="{ row }">{{ displayText(row.materialName) }}</template>
</el-table-column>
<el-table-column label="规格型号" min-width="100" align="center" header-align="center" show-overflow-tooltip>
<template #default="{ row }">{{ displayText(row.specModel) }}</template>
</el-table-column>
<el-table-column label="单位" min-width="72" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.unit) }}</template>
</el-table-column>
<el-table-column label="货号" min-width="100" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.catalogNo) }}</template>
</el-table-column>
<el-table-column label="批号" min-width="90" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.batchNo) }}</template>
</el-table-column>
<el-table-column label="厂家" min-width="110" align="center" header-align="center" show-overflow-tooltip>
<template #default="{ row }">{{ displayText(row.manufacturer) }}</template>
</el-table-column>
<el-table-column label="单价(元)" min-width="100" align="center" header-align="center">
<template #default="{ row }">{{ displayMoney(row.unitPrice) }}</template>
</el-table-column>
<el-table-column label="剩余金额(元)" min-width="120" align="center" header-align="center">
<template #default="{ row }">
{{ displayMoney(row.remainingAmount ?? calcLineAmount(row.unitPrice, row.remainingQty)) }}
</template>
</el-table-column>
<el-table-column label="剩余数量" min-width="100" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.remainingQty) }}</template>
</el-table-column>
</el-table>
</div>
<h3 class="view-section-title">领用未用完登记({{ viewDetail.unusedLines?.length || 0 }} 行)</h3>
<div class="inner-table-scroll">
<el-table
:data="viewDetail.unusedLines || []"
stripe
:fit="false"
table-layout="auto"
class="list-table inner-table"
>
<el-table-column type="index" label="序号" min-width="52" align="center" header-align="center" />
<el-table-column label="入库编号" min-width="110" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.stockInNo) }}</template>
</el-table-column>
<el-table-column label="入库日期" min-width="110" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.stockInDate) }}</template>
</el-table-column>
<el-table-column label="过期日期" min-width="110" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.expireDate) }}</template>
</el-table-column>
<el-table-column label="物料编码" min-width="110" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.materialCode) }}</template>
</el-table-column>
<el-table-column label="物料名称" min-width="130" align="center" header-align="center" show-overflow-tooltip>
<template #default="{ row }">{{ displayText(row.materialName) }}</template>
</el-table-column>
<el-table-column label="规格型号" min-width="100" align="center" header-align="center" show-overflow-tooltip>
<template #default="{ row }">{{ displayText(row.specModel) }}</template>
</el-table-column>
<el-table-column label="单位" min-width="72" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.unit) }}</template>
</el-table-column>
<el-table-column label="货号" min-width="100" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.catalogNo) }}</template>
</el-table-column>
<el-table-column label="批号" min-width="90" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.batchNo) }}</template>
</el-table-column>
<el-table-column label="厂家" min-width="110" align="center" header-align="center" show-overflow-tooltip>
<template #default="{ row }">{{ displayText(row.manufacturer) }}</template>
</el-table-column>
<el-table-column label="单价(元)" min-width="100" align="center" header-align="center">
<template #default="{ row }">{{ displayMoney(row.unitPrice) }}</template>
</el-table-column>
<el-table-column label="剩余金额(元)" min-width="120" align="center" header-align="center">
<template #default="{ row }">
{{ displayMoney(row.remainingAmount ?? calcLineAmount(row.unitPrice, row.unusedQty)) }}
</template>
</el-table-column>
<el-table-column label="未用完数量" min-width="110" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.unusedQty) }}</template>
</el-table-column>
<el-table-column label="持有人" min-width="100" align="center" header-align="center">
<template #default="{ row }">{{ displayText(row.holder) }}</template>
</el-table-column>
<el-table-column label="备注" min-width="120" align="center" header-align="center" show-overflow-tooltip>
<template #default="{ row }">{{ displayText(row.remark) }}</template>
</el-table-column>
</el-table>
</div>
</div>
</DialogFormBody>
<template #footer>
<el-button class="btn-ghost" @click="viewVisible = false">
<el-icon><Close /></el-icon>关闭
@@ -599,6 +810,7 @@
import * as XLSX from 'xlsx'
import FileSaver from 'file-saver'
import { formatMoneyDisplay } from '@/utils/money-format'
import DialogFormBody from '@/components/business/dialog-form-body/index.vue'
import { fetchMaterialBatchOptions, type MaterialBatchOption } from '@/api/material'
import { fetchMarkMaterialUsageFullyUsed } from '@/api/material-usage'
import {
@@ -960,7 +1172,8 @@
}
const manualDetailKey = computed(
() => `manual-detail-${editingManualKey.value || 'new'}-${manualDraft.value.batchPickId || 'empty'}`
() =>
`manual-detail-${editingManualKey.value || 'new'}-${manualDraft.value.batchPickId || 'empty'}`
)
function rebuildRegisteredUsageMap() {
@@ -1133,7 +1346,9 @@
activeKey.value = `req:${req.id}`
activeRequisition.value = req
applyActiveDraft(
requisitionDrafts.value[req.id] ? { ...requisitionDrafts.value[req.id] } : lineFromRequisition(req)
requisitionDrafts.value[req.id]
? { ...requisitionDrafts.value[req.id] }
: lineFromRequisition(req)
)
if (prevUsageId && prevDraft) {
@@ -1244,11 +1459,15 @@
async function handleMarkFullyUsed(usageId: string) {
dbgLog('handleMarkFullyUsed START', { usageId })
try {
await ElMessageBox.confirm('确认该领用记录已全部使用完?标记后将不再出现在待登记列表。', '标记已使用完', {
type: 'warning',
confirmButtonText: '确认',
cancelButtonText: '取消'
})
await ElMessageBox.confirm(
'确认该领用记录已全部使用完?标记后将不再出现在待登记列表。',
'标记已使用完',
{
type: 'warning',
confirmButtonText: '确认',
cancelButtonText: '取消'
}
)
} catch {
return
}
@@ -1428,7 +1647,11 @@
return Number(v)
}
function lineAmount(unitPrice?: number | null, qty?: number | null, remainingAmount?: number | null) {
function lineAmount(
unitPrice?: number | null,
qty?: number | null,
remainingAmount?: number | null
) {
if (remainingAmount != null && !Number.isNaN(Number(remainingAmount))) {
return Number(remainingAmount)
}
@@ -1605,9 +1828,13 @@
}
async function handleComplete(row: MaterialStockCheck) {
await ElMessageBox.confirm(`确定完成盘点「${row.title}」吗?完成后不可再修改登记。`, '完成盘点', {
type: 'warning'
})
await ElMessageBox.confirm(
`确定完成盘点「${row.title}」吗?完成后不可再修改登记。`,
'完成盘点',
{
type: 'warning'
}
)
await fetchCompleteMaterialStockCheck(row.id)
ElMessage.success('盘点已完成')
loadData()
@@ -1774,7 +2001,9 @@
border-radius: 6px;
background: #fff;
cursor: pointer;
transition: border-color 0.12s, background 0.12s;
transition:
border-color 0.12s,
background 0.12s;
&:hover {
border-color: #a7f3d0;
@@ -2123,33 +2352,47 @@
}
/*
* 弹窗内宽表横向滚动(对齐 order/index.vue order-detail-items-scroll):
* OpenSpec 列 min-width + :fit="false" + body-wrapper overflow-x,覆盖全局 width:100%!important
* 弹窗内宽表横向滚动:OpenSpec 标准 list-body + view-inner-table-wrap,
* 列 min-width 驱动横向滚动,覆盖全局 width:100%!important
*/
.inner-table-scroll {
width: 100%;
max-width: 100%;
overflow-x: hidden;
overflow-y: visible;
-webkit-overflow-scrolling: touch;
}
.stock-check-inner-list-wrap.view-inner-table-wrap.list-body.list-wrap {
border: 1px solid var(--mint-border, #e2e8f0);
border-radius: var(--mint-radius, 10px);
overflow: hidden;
background: #fff;
.inner-table-scroll :deep(.el-table.inner-table) {
width: 100% !important;
min-width: 100%;
}
:deep(.el-table) {
--el-table-header-bg-color: var(--mint-table-head, #f8fafc);
--el-table-border-color: var(--mint-border, #e2e8f0);
--el-table-row-hover-bg-color: var(--mint-row-hover, #f0fdf4);
--el-table-text-color: var(--mint-text, #0f172a);
--el-table-header-text-color: var(--mint-text-muted, #64748b);
font-size: 14px;
}
.inner-table-scroll :deep(.el-table.inner-table .el-table__inner-wrapper) {
width: 100% !important;
min-width: 100%;
}
:deep(.el-table th.el-table__cell) {
font-size: 12px;
font-weight: 600;
color: var(--mint-text-muted, #64748b);
}
.inner-table-scroll :deep(.el-table.inner-table .el-table__body-wrapper) {
overflow-x: auto !important;
}
:deep(.el-table td.el-table__cell) {
font-size: 14px;
font-weight: 500;
color: var(--mint-text, #0f172a);
}
.inner-table-scroll :deep(.el-table.inner-table .el-table__header-wrapper) {
overflow-x: hidden !important;
:deep(.el-table.inner-table .el-table__body-wrapper) {
overflow-x: auto !important;
}
:deep(.el-table.inner-table .el-table__header-wrapper) {
overflow-x: hidden !important;
}
:deep(.el-empty) {
padding: 24px 0;
}
}
.inner-cell-input {
@@ -2203,11 +2446,22 @@
color: var(--mint-text-muted, #64748b);
}
.view-section-title {
margin: 16px 0 8px;
.stock-check-lines-section {
margin-top: 20px;
&:first-of-type {
margin-top: 0;
}
}
.detail-section-title {
margin: 0 0 12px;
padding-left: 10px;
font-size: 14px;
font-weight: 600;
color: var(--mint-text, #0f172a);
color: #1e293b;
border-left: 3px solid #047857;
line-height: 1.4;
}
}
</style>
@@ -258,10 +258,13 @@
title="确认操作"
:width="txnTypeHasProducts(currentRow?.txnType) ? '960px' : '640px'"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
:close-on-click-modal="false"
class="finance-receipt-dialog"
class="finance-receipt-dialog dialog-form-layout"
style="backdrop-filter: none"
>
<div v-if="currentRow" v-loading="confirmDetailLoading" class="dialog-form-layout">
<div v-if="currentRow" v-loading="confirmDetailLoading">
<!-- 流水摘要 -->
<div class="detail-section">
<h4 class="detail-section-title">流水信息</h4>
@@ -8,7 +8,8 @@
align-center
append-to-body
:close-on-click-modal="false"
class="service-order-txn-dialog"
class="service-order-txn-dialog dialog-form-layout"
modal-class="protocol-dialog-mask"
style="backdrop-filter: none"
>
<div v-loading="loading" class="txn-dialog-body">
@@ -1276,9 +1277,6 @@
<style lang="scss" scoped>
.txn-dialog-body {
min-height: 120px;
max-height: calc(100vh - 220px);
overflow-y: auto;
padding-right: 4px;
}
.txn-dialog-summary {
@@ -353,10 +353,12 @@
destroy-on-close
:close-on-click-modal="false"
@close="handleFormClose"
class="service-order-dialog"
class="service-order-dialog dialog-form-layout"
align-center
modal-class="protocol-dialog-mask"
style="backdrop-filter: none"
>
<div class="dialog-form-layout">
<el-form
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
@@ -442,7 +444,6 @@
</el-form-item>
</div>
</el-form>
</div>
<template #footer>
<el-button class="btn-ghost" @click="formVisible = false">
@@ -467,6 +468,10 @@
width="560px"
destroy-on-close
:close-on-click-modal="false"
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
>
<p v-if="currentOrderForTxn" class="order-context-bar">{{
formatOrderContext(currentOrderForTxn)
@@ -574,6 +579,10 @@
width="640px"
destroy-on-close
:close-on-click-modal="false"
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
>
<p v-if="currentOrderForTxn" class="order-context-bar">{{
formatOrderContext(currentOrderForTxn)
@@ -691,67 +700,110 @@
width="880px"
destroy-on-close
:close-on-click-modal="false"
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
>
<p v-if="currentOrderForTxn" class="order-context-bar">{{
formatOrderContext(currentOrderForTxn)
}}</p>
<el-form label-position="top">
<div class="product-detail-table-wrap">
<el-table :data="purchaseForm.items" stripe size="small" class="list-table inner-table">
<el-table-column type="index" label="序号" min-width="60" align="center" />
<el-table-column label="项目/规格" min-width="260">
<template #default="{ row, $index }">
<el-select
v-model="row.priceId"
class="product-detail-cell-control"
placeholder="选择项目"
filterable
@change="(v: string) => handlePurchasePriceChange(v, $index)"
>
<el-option
v-for="p in getAvailablePriceOptionsForPurchase($index)"
:key="p.priceId"
:label="formatProjectOptionLabel(p)"
:value="p.priceId"
/>
</el-select>
</template>
</el-table-column>
<el-table-column label="单价(元)" min-width="100" align="right">
<template #default="{ row }">¥{{ formatAmount(row.unitPrice) }}</template>
</el-table-column>
<el-table-column label="份数" min-width="100">
<template #default="{ row }">
<el-input-number
v-model="row.quantity"
class="product-detail-cell-control"
:min="1"
:precision="0"
controls-position="right"
@change="calcItemAmount(row)"
/>
</template>
</el-table-column>
<el-table-column label="金额(元)" min-width="100" align="right">
<template #default="{ row }">¥{{ formatAmount(row.amount) }}</template>
</el-table-column>
<el-table-column label="操作" min-width="60" align="center">
<template #default="{ $index }">
<el-button type="danger" link size="small" @click="removePurchaseItem($index)">
<el-icon><Delete /></el-icon>删除
<div class="product-detail-table-wrap product-detail-table-wrap--standard-list">
<div class="purchase-product-list">
<div class="list-toolbar">
<div class="list-toolbar-row">
<el-button class="btn-main" type="primary" @click="addPurchaseItem">
<el-icon><Plus /></el-icon>添加产品
</el-button>
</template>
</el-table-column>
</el-table>
<div class="product-detail-footer">
<el-button size="small" @click="addPurchaseItem"
><el-icon><Plus /></el-icon>添加产品</el-button
</div>
</div>
<div class="list-body list-wrap product-detail-list-body">
<el-table
v-if="purchaseForm.items.length"
:data="purchaseForm.items"
stripe
class="list-table inner-table"
max-height="360"
>
<el-table-column
type="index"
label="序号"
min-width="68"
align="center"
header-align="center"
/>
<el-table-column label="项目/规格" min-width="260">
<template #default="{ row, $index }">
<el-select
v-model="row.priceId"
class="product-detail-cell-control"
placeholder="选择项目"
filterable
popper-class="project-option-popper"
@change="(v: string) => handlePurchasePriceChange(v, $index)"
>
<el-option
v-for="p in getAvailablePriceOptionsForPurchase($index)"
:key="p.priceId"
:label="formatProjectOptionLabel(p)"
:value="p.priceId"
/>
</el-select>
</template>
</el-table-column>
<el-table-column
label="单价(元)"
min-width="100"
align="right"
header-align="center"
>
<template #default="{ row }">¥{{ formatAmount(row.unitPrice) }}</template>
</el-table-column>
<el-table-column label="份数" min-width="100" align="center" header-align="center">
<template #default="{ row }">
<el-input-number
v-model="row.quantity"
class="product-detail-cell-control"
:min="1"
:precision="0"
controls-position="right"
@change="calcItemAmount(row)"
/>
</template>
</el-table-column>
<el-table-column
label="金额(元)"
min-width="100"
align="right"
header-align="center"
>
<template #default="{ row }">¥{{ formatAmount(row.amount) }}</template>
</el-table-column>
<el-table-column
label="操作"
fixed="right"
min-width="80"
align="center"
header-align="center"
>
<template #default="{ $index }">
<el-button type="danger" link @click="removePurchaseItem($index)">
<el-icon><Delete /></el-icon>删除
</el-button>
</template>
</el-table-column>
</el-table>
<el-empty v-else description="暂无产品,点击上方按钮添加" :image-size="48" />
</div>
<div
v-if="purchaseForm.items.length"
class="product-detail-total product-detail-total--summary"
>
<span class="product-detail-total">
合计:<span class="product-detail-total-value"
>¥{{ formatAmount(purchaseTotalAmount) }}(元)</span
>
</span>
</div>
</div>
</div>
<el-form-item label="备注" style="margin-top: 12px">
@@ -786,6 +838,10 @@
width="860px"
destroy-on-close
:close-on-click-modal="false"
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
>
<p v-if="currentOrderForTxn" class="order-context-bar">{{
formatOrderContext(currentOrderForTxn)
@@ -2082,11 +2138,6 @@
}
}
.dialog-form-layout {
max-height: calc(100vh - 100px);
overflow-y: auto;
padding-right: 4px;
}
.amount-text {
font-weight: 600;
@@ -2141,6 +2192,13 @@
.product-detail-table-wrap {
width: 100%;
.purchase-product-list {
border: 1px solid var(--mint-border, #e2e8f0);
border-radius: var(--mint-radius, 10px);
overflow: hidden;
background: #fff;
}
.product-detail-footer {
display: flex;
align-items: center;
@@ -2157,6 +2215,14 @@
text-align: right;
}
&--summary {
margin: 0;
padding: 10px 16px;
text-align: right;
border-top: 1px solid var(--mint-border, #e2e8f0);
background: var(--mint-table-head, #f8fafc);
}
.product-detail-total-value {
font-weight: 600;
color: var(--primary, #047857);
@@ -2173,6 +2239,58 @@
height: 32px;
box-sizing: border-box;
}
&--standard-list {
.list-toolbar {
padding: 0;
background: var(--mint-table-head, #f8fafc);
border-bottom: none;
}
.list-toolbar-row {
padding: 8px 16px;
gap: 8px;
display: flex;
align-items: center;
flex-wrap: wrap;
justify-content: flex-start;
:deep(.el-button + .el-button) {
margin-left: 0 !important;
}
}
.product-detail-list-body {
border-top: 1px solid var(--mint-border, #e2e8f0);
border-radius: 0;
overflow: hidden;
}
:deep(.list-table.el-table) {
--el-table-header-bg-color: var(--mint-table-head, #f8fafc);
--el-table-border-color: var(--mint-border, #e2e8f0);
--el-table-row-hover-bg-color: var(--mint-row-hover, #f0fdf4);
--el-table-text-color: var(--mint-text, #0f172a);
--el-table-header-text-color: var(--mint-text-muted, #64748b);
font-size: 14px;
}
:deep(.list-table th.el-table__cell) {
color: var(--mint-text-muted, #64748b);
font-size: 12px;
font-weight: 600;
}
:deep(.list-table td.el-table__cell) {
color: var(--mint-text, #0f172a);
font-size: 14px;
font-weight: 500;
}
:deep(.el-empty) {
padding: 24px 0;
}
}
}
:global(.project-option-popper .el-select-dropdown__item) {
@@ -1127,10 +1127,13 @@
:title="checkupData ? '编辑体检信息' : '新增体检信息'"
width="640px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<div class="dialog-form-layout">
<el-form ref="checkupFormRef" :model="checkupForm" label-position="top" class="dialog-form">
<el-form ref="checkupFormRef" :model="checkupForm" label-position="top" class="dialog-form">
<div class="form-grid-2">
<el-form-item label="预约时间">
<el-date-picker
@@ -1227,7 +1230,6 @@
</el-form-item>
</div>
</el-form>
</div>
<template #footer>
<el-button @click="checkupDialogVisible = false"
><el-icon><Close /></el-icon>取消</el-button
@@ -1245,10 +1247,13 @@
title="添加预约项目"
width="420px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<div class="dialog-form-layout">
<el-form :model="reserveItemForm" label-position="top" class="dialog-form">
<el-form :model="reserveItemForm" label-position="top" class="dialog-form">
<el-form-item label="项目名称">
<el-input v-model="reserveItemForm.itemName" placeholder="请输入项目名称" />
</el-form-item>
@@ -1262,7 +1267,6 @@
/>
</el-form-item>
</el-form>
</div>
<template #footer>
<el-button @click="reserveItemDialogVisible = false"
><el-icon><Close /></el-icon>取消</el-button
@@ -1280,10 +1284,13 @@
title="添加实际项目"
width="420px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<div class="dialog-form-layout">
<el-form :model="actualItemForm" label-position="top" class="dialog-form">
<el-form :model="actualItemForm" label-position="top" class="dialog-form">
<el-form-item label="项目名称">
<el-input v-model="actualItemForm.itemName" placeholder="请输入项目名称" />
</el-form-item>
@@ -1297,7 +1304,6 @@
/>
</el-form-item>
</el-form>
</div>
<template #footer>
<el-button @click="actualItemDialogVisible = false"
><el-icon><Close /></el-icon>取消</el-button
@@ -1315,6 +1321,10 @@
title="交付详情"
width="720px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<el-tabs v-model="deliveryDetailTab">
@@ -1492,10 +1502,13 @@
title="添加物料"
width="420px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<div class="dialog-form-layout">
<el-form :model="addMaterialForm" label-position="top" class="dialog-form">
<el-form :model="addMaterialForm" label-position="top" class="dialog-form">
<el-form-item label="物料名称">
<el-input v-model="addMaterialForm.materialName" placeholder="请输入物料名称" />
</el-form-item>
@@ -1514,7 +1527,6 @@
<el-input v-model="addMaterialForm.remark" placeholder="请输入备注" />
</el-form-item>
</el-form>
</div>
<template #footer>
<el-button @click="addMaterialDialogVisible = false"
><el-icon><Close /></el-icon>取消</el-button
@@ -1532,6 +1544,10 @@
title="选择客户"
width="800px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<div class="customer-dialog-content">
@@ -1603,11 +1619,14 @@
:title="planDialogMode === 'add' ? '新增输注方案' : '编辑输注方案'"
width="640px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
@close="planFormRef?.resetFields()"
>
<div class="dialog-form-layout">
<el-form
<el-form
ref="planFormRef"
:model="planForm"
:rules="planRules"
@@ -1647,7 +1666,6 @@
</el-form-item>
</div>
</el-form>
</div>
<template #footer>
<el-button @click="planDialogVisible = false"
><el-icon><Close /></el-icon>取消</el-button
@@ -1665,10 +1683,13 @@
:title="scheduleDialogMode === 'add' ? '添加输注计划' : '编辑输注计划'"
width="500px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<div class="dialog-form-layout">
<el-form
<el-form
ref="scheduleFormRef"
:model="scheduleForm"
label-position="top"
@@ -1714,7 +1735,6 @@
</div>
</el-form-item>
</el-form>
</div>
<template #footer>
<el-button @click="scheduleDialogVisible = false"
><el-icon><Close /></el-icon>取消</el-button
@@ -1732,10 +1752,13 @@
:title="localPlanEditIndex >= 0 ? '编辑输注方案' : '新增输注方案'"
width="640px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<div class="dialog-form-layout">
<el-form
<el-form
ref="localPlanFormRef"
:model="localPlanForm"
:rules="localPlanRules"
@@ -1774,7 +1797,6 @@
</el-form-item>
</div>
</el-form>
</div>
<template #footer>
<el-button @click="localPlanDialogVisible = false"
><el-icon><Close /></el-icon>取消</el-button
@@ -1792,10 +1814,13 @@
title="新增客户"
width="500px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<div class="dialog-form-layout">
<el-form
<el-form
ref="newCustomerFormRef"
:model="newCustomerForm"
:rules="newCustomerRules"
@@ -1828,7 +1853,6 @@
</el-form-item>
</div>
</el-form>
</div>
<template #footer>
<el-button @click="newCustomerDialogVisible = false"
><el-icon><Close /></el-icon>取消</el-button
@@ -963,9 +963,12 @@
title="新增客户"
width="500px"
destroy-on-close
align-center
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
>
<div class="dialog-form-layout">
<el-form
ref="newCustomerFormRef"
:model="newCustomerForm"
@@ -999,7 +1002,6 @@
</el-form-item>
</div>
</el-form>
</div>
<template #footer>
<el-button @click="newCustomerDialogVisible = false">
<el-icon><Close /></el-icon>取消
@@ -7,6 +7,9 @@
destroy-on-close
align-center
append-to-body
modal-class="protocol-dialog-mask"
class="dialog-form-layout"
style="backdrop-filter: none"
:close-on-click-modal="false"
@close="handleClose"
>
@@ -15,7 +18,6 @@
:model="form"
:rules="rules"
label-position="top"
class="dialog-form-layout"
>
<div class="form-grid-2">
<el-form-item label="任务名称" prop="taskName" class="form-col-span-2">
@@ -63,16 +63,16 @@
<el-option label="已完成" value="ywc" />
</el-select>
</el-form-item>
<el-form-item label="任务类型">
<el-select
v-model="searchForm.taskType"
placeholder="全部"
clearable
<el-form-item :label="filterTimeLabel">
<el-date-picker
v-model="createTimeRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD"
style="width: 100%"
>
<el-option label="实验室自检" value="sysz" />
<el-option label="第三方检测" value="dsfjc" />
</el-select>
/>
</el-form-item>
</div>
@@ -100,16 +100,16 @@
<el-option label="基础实验" value="basic_experiment" />
</el-select>
</el-form-item>
<el-form-item :label="filterTimeLabel">
<el-date-picker
v-model="createTimeRange"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="YYYY-MM-DD"
<el-form-item label="任务类型">
<el-select
v-model="searchForm.taskType"
placeholder="全部"
clearable
style="width: 100%"
/>
>
<el-option label="实验室自检" value="sysz" />
<el-option label="第三方检测" value="dsfjc" />
</el-select>
</el-form-item>
</div>
</div>
@@ -194,7 +194,7 @@
const activeTypeTab = ref<WorkOrderTypeTab>('inbound')
const filterExpanded = ref(false)
const filterTimeLabel = computed(() =>
activeTypeTab.value === 'outbound' ? '输注时间' : '创建时间'
activeTypeTab.value === 'outbound' ? '输注/交付时间' : '创建时间'
)
const filterHint = computed(() => {
const timeHint =
@@ -57,7 +57,7 @@
<el-icon><Upload /></el-icon>
入库
</el-button>
<el-button class="btn-ghost" @click="handleBatchStockIn">
<el-button v-if="batchStockInButtonVisible" class="btn-ghost" @click="handleBatchStockIn">
<el-icon><Upload /></el-icon>
批量入库
</el-button>
@@ -1183,6 +1183,9 @@
defineOptions({ name: 'QualityInspectionQcMaterial' })
/** 暂时隐藏批量入库入口,恢复时改为 true */
const batchStockInButtonVisible = false
const route = useRoute()
const QC_MATERIAL_TABS = [