提交
This commit is contained in:
1 parent
7145c6c683
commit
c137b46939
311 files changed
+41432
-30702
No files matched your search
+1
-1
@@ -1 +1 @@
|
||||
60905
|
||||
73984
|
||||
@@ -24,6 +24,7 @@ from app.api.pilot_delivery import router as pilot_delivery_router
|
||||
from app.api.pilot_infusion_confirm import router as pilot_infusion_confirm_router
|
||||
from app.api.pilot_infusion_schedule_mgmt import router as pilot_infusion_schedule_mgmt_router
|
||||
from app.api.outbound_release_review import router as outbound_release_review_router
|
||||
from app.api.clinical_payment import router as clinical_payment_router
|
||||
|
||||
__all__ = [
|
||||
"public_router",
|
||||
@@ -51,4 +52,5 @@ __all__ = [
|
||||
"pilot_infusion_confirm_router",
|
||||
"pilot_infusion_schedule_mgmt_router",
|
||||
"outbound_release_review_router",
|
||||
"clinical_payment_router",
|
||||
]
|
||||
@@ -0,0 +1,337 @@
|
||||
from typing import List, Optional
|
||||
|
||||
from fastapi import APIRouter, Depends, Query
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.database import get_db
|
||||
from app.core.menu_guard import require_admin_or_super_admin
|
||||
from app.core.response import error_response, success_response
|
||||
from app.crud import clinical_payment
|
||||
from app.models.models import SysUser
|
||||
|
||||
router = APIRouter(prefix="/web/admin", tags=["临床应用缴费管理"])
|
||||
|
||||
|
||||
def _get_tenant_no(db: Session, user: dict) -> str:
|
||||
user_id = user.get("user_id")
|
||||
if not user_id:
|
||||
raise PermissionError("用户身份信息缺失,无法确定租户")
|
||||
sys_user = db.query(SysUser).filter(SysUser.id == user_id).first()
|
||||
if not sys_user or not sys_user.tenant_no:
|
||||
raise PermissionError("用户租户信息缺失")
|
||||
return sys_user.tenant_no
|
||||
|
||||
|
||||
class PaymentIdBody(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
id: str
|
||||
|
||||
|
||||
class BatchPaymentIdsBody(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
payment_ids: List[str] = Field(..., alias="paymentIds")
|
||||
|
||||
|
||||
class ConfirmReceiptBody(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
id: str
|
||||
finance_confirm_attachments: Optional[str] = Field(None, alias="financeConfirmAttachments")
|
||||
finance_remark: Optional[str] = Field(None, alias="financeRemark")
|
||||
|
||||
|
||||
class SubmitRefundBody(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
id: str
|
||||
refund_amount: float = Field(..., alias="refundAmount")
|
||||
refund_remark: Optional[str] = Field(None, alias="refundRemark")
|
||||
refund_attachments: Optional[str] = Field(None, alias="refundAttachments")
|
||||
|
||||
|
||||
class BatchSubmitRefundBody(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
payment_ids: List[str] = Field(..., alias="paymentIds")
|
||||
refund_amount: float = Field(..., alias="refundAmount")
|
||||
refund_remark: Optional[str] = Field(None, alias="refundRemark")
|
||||
refund_attachments: Optional[str] = Field(None, alias="refundAttachments")
|
||||
|
||||
|
||||
class ConfirmRefundBody(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
id: str
|
||||
refund_finance_confirm_attachments: Optional[str] = Field(
|
||||
None, alias="refundFinanceConfirmAttachments"
|
||||
)
|
||||
refund_finance_remark: Optional[str] = Field(None, alias="refundFinanceRemark")
|
||||
|
||||
|
||||
@router.get("/clinical-payments")
|
||||
async def api_list_payments(
|
||||
page: int = Query(1, ge=1),
|
||||
pageSize: int = Query(10, ge=1, le=100, alias="pageSize"),
|
||||
payStatus: Optional[str] = Query(None, alias="payStatus"),
|
||||
keyword: Optional[str] = Query(None, alias="keyword"),
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
rows, total = clinical_payment.list_payments(
|
||||
db,
|
||||
page=page,
|
||||
page_size=pageSize,
|
||||
pay_status=payStatus,
|
||||
keyword=keyword,
|
||||
tenant_no=tenant_no,
|
||||
user_info=user,
|
||||
)
|
||||
return success_response({"rows": rows, "total": total})
|
||||
except Exception as e:
|
||||
return error_response(500, str(e))
|
||||
|
||||
|
||||
@router.get("/clinical-payments/{payment_id}")
|
||||
async def api_get_payment_detail(
|
||||
payment_id: str,
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
result = clinical_payment.get_payment_detail(
|
||||
db, payment_id=payment_id, tenant_no=tenant_no
|
||||
)
|
||||
if result is None:
|
||||
return error_response(404, "缴费记录不存在")
|
||||
return success_response(result)
|
||||
except ValueError as e:
|
||||
return error_response(404, str(e))
|
||||
|
||||
|
||||
@router.post("/clinical-payments/{payment_id}/submit-receipt")
|
||||
async def api_submit_receipt(
|
||||
payment_id: str,
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
clinical_payment.submit_receipt(
|
||||
db,
|
||||
payment_id=payment_id,
|
||||
tenant_no=tenant_no,
|
||||
user_id=user.get("user_id"),
|
||||
)
|
||||
return success_response(None, message="提交缴费确认成功")
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/clinical-payments/submit-receipt-batch")
|
||||
async def api_batch_submit_receipt(
|
||||
body: BatchPaymentIdsBody,
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
count = clinical_payment.batch_submit_receipt(
|
||||
db,
|
||||
payment_ids=body.payment_ids,
|
||||
tenant_no=tenant_no,
|
||||
user_id=user.get("user_id"),
|
||||
)
|
||||
return success_response({"count": count}, message=f"批量提交成功,共{count}条")
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/clinical-payments/{payment_id}/confirm-receipt")
|
||||
async def api_confirm_receipt(
|
||||
payment_id: str,
|
||||
body: ConfirmReceiptBody,
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
clinical_payment.confirm_receipt(
|
||||
db,
|
||||
payment_id=payment_id,
|
||||
tenant_no=tenant_no,
|
||||
user_id=user.get("user_id"),
|
||||
finance_confirm_attachments=body.finance_confirm_attachments,
|
||||
finance_remark=body.finance_remark,
|
||||
)
|
||||
return success_response(None, message="确认收款成功")
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/clinical-payments/{payment_id}/submit-refund")
|
||||
async def api_submit_refund(
|
||||
payment_id: str,
|
||||
body: SubmitRefundBody,
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
clinical_payment.submit_refund(
|
||||
db,
|
||||
payment_id=payment_id,
|
||||
tenant_no=tenant_no,
|
||||
user_id=user.get("user_id"),
|
||||
refund_amount=body.refund_amount,
|
||||
refund_remark=body.refund_remark,
|
||||
refund_attachments=body.refund_attachments,
|
||||
)
|
||||
return success_response(None, message="提交退费申请成功")
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/clinical-payments/submit-refund-batch")
|
||||
async def api_batch_submit_refund(
|
||||
body: BatchSubmitRefundBody,
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
count = clinical_payment.batch_submit_refund(
|
||||
db,
|
||||
payment_ids=body.payment_ids,
|
||||
tenant_no=tenant_no,
|
||||
user_id=user.get("user_id"),
|
||||
refund_amount=body.refund_amount,
|
||||
refund_remark=body.refund_remark,
|
||||
refund_attachments=body.refund_attachments,
|
||||
)
|
||||
return success_response({"count": count}, message=f"批量提交退费成功,共{count}条")
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.post("/clinical-payments/{payment_id}/confirm-refund")
|
||||
async def api_confirm_refund(
|
||||
payment_id: str,
|
||||
body: ConfirmRefundBody,
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
clinical_payment.confirm_refund(
|
||||
db,
|
||||
payment_id=payment_id,
|
||||
tenant_no=tenant_no,
|
||||
user_id=user.get("user_id"),
|
||||
refund_finance_confirm_attachments=body.refund_finance_confirm_attachments,
|
||||
refund_finance_remark=body.refund_finance_remark,
|
||||
)
|
||||
return success_response(None, message="确认退费成功")
|
||||
except ValueError as e:
|
||||
return error_response(400, str(e))
|
||||
|
||||
|
||||
@router.get("/clinical-payments/receipt-pending")
|
||||
async def api_receipt_pending(
|
||||
page: int = Query(1, ge=1),
|
||||
pageSize: int = Query(10, ge=1, le=100, alias="pageSize"),
|
||||
keyword: Optional[str] = Query(None, alias="keyword"),
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
rows, total = clinical_payment.list_payments(
|
||||
db,
|
||||
page=page,
|
||||
page_size=pageSize,
|
||||
pay_status="jfqrz",
|
||||
keyword=keyword,
|
||||
tenant_no=tenant_no,
|
||||
user_info=user,
|
||||
)
|
||||
return success_response({"rows": rows, "total": total})
|
||||
except Exception as e:
|
||||
return error_response(500, str(e))
|
||||
|
||||
|
||||
@router.get("/clinical-payments/receipt-confirmed")
|
||||
async def api_receipt_confirmed(
|
||||
page: int = Query(1, ge=1),
|
||||
pageSize: int = Query(10, ge=1, le=100, alias="pageSize"),
|
||||
keyword: Optional[str] = Query(None, alias="keyword"),
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
rows, total = clinical_payment.list_payments(
|
||||
db,
|
||||
page=page,
|
||||
page_size=pageSize,
|
||||
pay_status="yjf",
|
||||
keyword=keyword,
|
||||
tenant_no=tenant_no,
|
||||
user_info=user,
|
||||
)
|
||||
return success_response({"rows": rows, "total": total})
|
||||
except Exception as e:
|
||||
return error_response(500, str(e))
|
||||
|
||||
|
||||
@router.get("/clinical-payments/refund-pending")
|
||||
async def api_refund_pending(
|
||||
page: int = Query(1, ge=1),
|
||||
pageSize: int = Query(10, ge=1, le=100, alias="pageSize"),
|
||||
keyword: Optional[str] = Query(None, alias="keyword"),
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
rows, total = clinical_payment.list_payments(
|
||||
db,
|
||||
page=page,
|
||||
page_size=pageSize,
|
||||
pay_status="tfqrz",
|
||||
keyword=keyword,
|
||||
tenant_no=tenant_no,
|
||||
user_info=user,
|
||||
)
|
||||
return success_response({"rows": rows, "total": total})
|
||||
except Exception as e:
|
||||
return error_response(500, str(e))
|
||||
|
||||
|
||||
@router.get("/clinical-payments/refund-confirmed")
|
||||
async def api_refund_confirmed(
|
||||
page: int = Query(1, ge=1),
|
||||
pageSize: int = Query(10, ge=1, le=100, alias="pageSize"),
|
||||
keyword: Optional[str] = Query(None, alias="keyword"),
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
try:
|
||||
rows, total = clinical_payment.list_payments(
|
||||
db,
|
||||
page=page,
|
||||
page_size=pageSize,
|
||||
pay_status="ytf",
|
||||
keyword=keyword,
|
||||
tenant_no=tenant_no,
|
||||
user_info=user,
|
||||
)
|
||||
return success_response({"rows": rows, "total": total})
|
||||
except Exception as e:
|
||||
return error_response(500, str(e))
|
||||
+571
-197
@@ -1,4 +1,4 @@
|
||||
"""运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,供后端菜单模式联调)"""
|
||||
"""运营端菜单接口(与 web-admin 前端静态路由 sqxp.ts 对齐,13 个一级菜单)"""
|
||||
from fastapi import APIRouter, Depends
|
||||
|
||||
from app.core.menu_guard import require_admin_or_super_admin
|
||||
@@ -6,11 +6,559 @@ from app.core.response import success_response
|
||||
|
||||
router = APIRouter(prefix="/web/menu", tags=["菜单管理"])
|
||||
|
||||
# 与 web-admin/src/router/modules/sqxp.ts 一致:系统管理、基础信息管理 等
|
||||
# 与 web-admin/src/router/modules/sqxp.ts 一致:13 个一级菜单
|
||||
STATIC_MENU_TREE = [
|
||||
# ────────────────────────────────────────────
|
||||
# 1. 细胞存储
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "100",
|
||||
"name": "System",
|
||||
"id": "CEL00000000000000000000000000001",
|
||||
"name": "CellStorage",
|
||||
"path": "/cell-storage",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "细胞存储",
|
||||
"icon": "ri:test-tube-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "50000000000000000000000000000002",
|
||||
"name": "CellStorageProtocol",
|
||||
"path": "protocol",
|
||||
"component": "/cell-storage/protocol/index",
|
||||
"meta": {"title": "采集协议单录入", "keepAlive": True, "menuCode": "biz:cellStorageProtocol:list"},
|
||||
},
|
||||
{
|
||||
"id": "50000000000000000000000000000003",
|
||||
"name": "CellStorageProtocolAudit",
|
||||
"path": "protocol-audit",
|
||||
"component": "/cell-storage/protocol-audit/index",
|
||||
"meta": {"title": "采集协议单管理", "keepAlive": True, "menuCode": "biz:cellStorageProtocolAudit:list"},
|
||||
},
|
||||
{
|
||||
"id": "50000000000000000000000000000004",
|
||||
"name": "CellStoragePaymentConfirm",
|
||||
"path": "payment-confirm",
|
||||
"component": "/cell-storage/payment-confirm/index",
|
||||
"meta": {"title": "缴退费财务确认", "keepAlive": True, "menuCode": "biz:cellStoragePaymentConfirm:list"},
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000011",
|
||||
"name": "CellStorageStorageReleaseReview",
|
||||
"path": "storage-release-review",
|
||||
"component": "/quality-inspection/storage-release-review/index",
|
||||
"meta": {"title": "入库放行审核", "keepAlive": True, "menuCode": "biz:storageReleaseReview:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 2. 科研捐赠
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "RSC00000000000000000000000000001",
|
||||
"name": "ResearchDonation",
|
||||
"path": "/research-donation",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "科研捐赠",
|
||||
"icon": "ri:hand-heart-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "60000000000000000000000000000002",
|
||||
"name": "ResearchDonationList",
|
||||
"path": "list",
|
||||
"component": "/research-donation/list/index",
|
||||
"meta": {"title": "捐赠协议单录入", "keepAlive": True, "menuCode": "biz:researchDonation:list"},
|
||||
},
|
||||
{
|
||||
"id": "60000000000000000000000000000003",
|
||||
"name": "ResearchDonationAudit",
|
||||
"path": "audit",
|
||||
"component": "/research-donation/audit/index",
|
||||
"meta": {"title": "捐赠协议单管理", "keepAlive": True, "menuCode": "biz:researchDonationAudit:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 3. 中试服务
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "PIL00000000000000000000000000001",
|
||||
"name": "PilotService",
|
||||
"path": "/pilot-service",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "中试服务",
|
||||
"icon": "ri:flask-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "80000000000000000000000000000010",
|
||||
"name": "PilotApplication",
|
||||
"path": "pilot-application",
|
||||
"component": "/pilot-service/pilot-application/index",
|
||||
"meta": {"title": "中试服务申请单", "keepAlive": True, "menuCode": "pilot-service:pilot-application:list"},
|
||||
},
|
||||
{
|
||||
"id": "PIL00000000000000000000000000004",
|
||||
"name": "PilotOutboundRelease",
|
||||
"path": "outbound-release-review",
|
||||
"component": "/pilot-service/outbound-release-review/index",
|
||||
"meta": {"title": "出库放行审核", "keepAlive": True, "menuCode": "pilot-service:outbound-release-review:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 4. 临床应用
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "CLI00000000000000000000000000001",
|
||||
"name": "ClinicalApplication",
|
||||
"path": "/clinical-application",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "临床应用",
|
||||
"icon": "ri:heart-pulse-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "CLI00000000000000000000000000002",
|
||||
"name": "ClinicalApplicationList",
|
||||
"path": "clinical-application",
|
||||
"component": "/pilot-service/pilot-application/index",
|
||||
"meta": {"title": "临床申请单", "keepAlive": True, "menuCode": "clinical-application:application:list"},
|
||||
},
|
||||
{
|
||||
"id": "CLI00000000000000000000000000003",
|
||||
"name": "ClinicalCheckupManagement",
|
||||
"path": "clinical-checkup-management",
|
||||
"component": "/pilot-service/checkup-management/index",
|
||||
"meta": {"title": "体检管理", "keepAlive": True, "menuCode": "clinical-application:checkup-management:list"},
|
||||
},
|
||||
{
|
||||
"id": "CLI00000000000000000000000000004",
|
||||
"name": "ClinicalInfusionSchedule",
|
||||
"path": "clinical-infusion-schedule-management",
|
||||
"component": "/pilot-service/infusion-schedule-management/index",
|
||||
"meta": {"title": "输注计划管理", "keepAlive": True, "menuCode": "clinical-application:infusion-schedule-management:list"},
|
||||
},
|
||||
{
|
||||
"id": "CLI00000000000000000000000000005",
|
||||
"name": "ClinicalPaymentInfo",
|
||||
"path": "clinical-payment-info",
|
||||
"component": "/pilot-service/clinical-payment-info/index",
|
||||
"meta": {"title": "缴费信息", "keepAlive": True, "menuCode": "clinical-application:payment-info:list"},
|
||||
},
|
||||
{
|
||||
"id": "CLI00000000000000000000000000006",
|
||||
"name": "ClinicalPaymentConfirm",
|
||||
"path": "clinical-payment-confirm",
|
||||
"component": "/pilot-service/clinical-payment-confirm/index",
|
||||
"meta": {"title": "缴费确认(财务)", "keepAlive": True, "menuCode": "clinical-application:payment-confirm:list"},
|
||||
},
|
||||
{
|
||||
"id": "CLI00000000000000000000000000007",
|
||||
"name": "ClinicalRefundConfirm",
|
||||
"path": "clinical-refund-confirm",
|
||||
"component": "/pilot-service/clinical-refund-confirm/index",
|
||||
"meta": {"title": "退费确认(财务)", "keepAlive": True, "menuCode": "clinical-application:refund-confirm:list"},
|
||||
},
|
||||
{
|
||||
"id": "CLI00000000000000000000000000008",
|
||||
"name": "ClinicalOutboundRelease",
|
||||
"path": "clinical-outbound-release-review",
|
||||
"component": "/pilot-service/outbound-release-review/index",
|
||||
"meta": {"title": "出库放行审核", "keepAlive": True, "menuCode": "clinical-application:outbound-release-review:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 5. 质检管理
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "QCM00000000000000000000000000001",
|
||||
"name": "QualityManage",
|
||||
"path": "/quality-manage",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "质检管理",
|
||||
"icon": "ri:shield-check-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "70000000000000000000000000000002",
|
||||
"name": "QualityInspectionSampleReception",
|
||||
"path": "sample-reception",
|
||||
"component": "/quality-inspection/sample-reception/index",
|
||||
"meta": {"title": "样本接收", "keepAlive": True, "menuCode": "biz:sampleReception:list"},
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000007",
|
||||
"name": "QualityInspectionQcWorkOrder",
|
||||
"path": "qc-work-order",
|
||||
"component": "/quality-inspection/qc-work-order/index",
|
||||
"meta": {"title": "质检管理", "keepAlive": True, "menuCode": "biz:qcWorkOrder:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 6. 生产管理
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "PRM00000000000000000000000000001",
|
||||
"name": "ProductionManage",
|
||||
"path": "/production",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "生产管理",
|
||||
"icon": "grid",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "61000000000000000000000000000003",
|
||||
"name": "ProductionStorageFacility",
|
||||
"path": "storage-facility",
|
||||
"component": "/operations/storage-facility/index",
|
||||
"meta": {"title": "库位管理", "keepAlive": True, "menuCode": "operations:storage-facility:list"},
|
||||
},
|
||||
{
|
||||
"id": "90000000000000000000000000000013",
|
||||
"name": "CellProduct",
|
||||
"path": "cell-product",
|
||||
"component": "/production/cell-product/index",
|
||||
"meta": {"title": "细胞产品库", "keepAlive": True, "menuCode": "production:cell-product:list"},
|
||||
},
|
||||
{
|
||||
"id": "90000000000000000000000000000011",
|
||||
"name": "ProductionWorkOrder",
|
||||
"path": "production-work-order",
|
||||
"component": "/production/production-work-order/index",
|
||||
"meta": {"title": "生产管理", "keepAlive": True, "menuCode": "production:work-order:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 7. 运营支撑
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "OPS00000000000000000000000000001",
|
||||
"name": "Operations",
|
||||
"path": "/operations",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "运营支撑",
|
||||
"icon": "operation",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "61000000000000000000000000000002",
|
||||
"name": "CleanRoom",
|
||||
"path": "clean-room",
|
||||
"component": "/operations/clean-room/index",
|
||||
"meta": {"title": "洁净室管理", "keepAlive": True, "menuCode": "operations:clean-room:list"},
|
||||
},
|
||||
{
|
||||
"id": "61000000000000000000000000000004",
|
||||
"name": "ExhibitionAppointment",
|
||||
"path": "exhibition-appointment",
|
||||
"component": "/operations/exhibition-appointment/index",
|
||||
"meta": {"title": "展馆预约", "keepAlive": True, "menuCode": "operations:exhibition-appointment:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 8. 市场基础信息
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "MKT00000000000000000000000000001",
|
||||
"name": "MarketInfo",
|
||||
"path": "/market-info",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "市场基础信息",
|
||||
"icon": "ri:price-tag-3-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "122",
|
||||
"name": "BizCellSampleType",
|
||||
"path": "cell-sample-type",
|
||||
"component": "/basic-info/cell-sample-type/index",
|
||||
"meta": {"title": "细胞样本基础信息维护", "keepAlive": True, "menuCode": "biz:cellSampleType:list"},
|
||||
},
|
||||
{
|
||||
"id": "123",
|
||||
"name": "BizCollectionRegion",
|
||||
"path": "collection-region",
|
||||
"component": "/basic-info/collection-region/index",
|
||||
"meta": {"title": "细胞采集基础信息维护", "keepAlive": True, "menuCode": "biz:collectionRegion:list"},
|
||||
},
|
||||
{
|
||||
"id": "80000000000000000000000000000002",
|
||||
"name": "CellProductType",
|
||||
"path": "cell-product-type",
|
||||
"component": "/pilot-service/cell-product-type/index",
|
||||
"meta": {"title": "细胞产品基础信息维护", "keepAlive": True, "menuCode": "pilot-service:cell-product-type:list"},
|
||||
},
|
||||
{
|
||||
"id": "40000000000000000000000000000007",
|
||||
"name": "BasicInfoInsuranceCompany",
|
||||
"path": "insurance-company",
|
||||
"component": "/basic-info/insurance-company/index",
|
||||
"meta": {"title": "保险公司及险种价格", "keepAlive": True, "menuCode": "basic-info:insurance-company:list"},
|
||||
},
|
||||
{
|
||||
"id": "80000000000000000000000000000007",
|
||||
"name": "CheckupInstitution",
|
||||
"path": "checkup-institution",
|
||||
"component": "/pilot-service/checkup-institution/index",
|
||||
"meta": {"title": "体检机构及项目价格", "keepAlive": True, "menuCode": "pilot-service:checkup-institution:list"},
|
||||
},
|
||||
{
|
||||
"id": "50000000000000000000000000000009",
|
||||
"name": "MarketMaterial",
|
||||
"path": "material",
|
||||
"component": "/cell-storage/material/index",
|
||||
"meta": {"title": "市场物料库", "keepAlive": True, "menuCode": "biz:material:list"},
|
||||
},
|
||||
{
|
||||
"id": "121",
|
||||
"name": "BizCustomer",
|
||||
"path": "customer",
|
||||
"component": "/basic-info/customer/index",
|
||||
"meta": {"title": "客户管理", "keepAlive": True, "menuCode": "biz:customer:list"},
|
||||
},
|
||||
{
|
||||
"id": "80000000000000000000000000000006",
|
||||
"name": "Channel",
|
||||
"path": "channel",
|
||||
"component": "/pilot-service/channel/index",
|
||||
"meta": {"title": "渠道信息管理", "keepAlive": True, "menuCode": "pilot-service:channel:list"},
|
||||
},
|
||||
{
|
||||
"id": "80000000000000000000000000000009",
|
||||
"name": "ChannelServiceOrderFinance",
|
||||
"path": "channel-service-order-finance",
|
||||
"component": "/pilot-service/channel-service-order-finance/index",
|
||||
"meta": {"title": "渠道服务订单(财务确认)", "keepAlive": True, "menuCode": "pilot-service:channel-service-order-finance:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 9. 质检基础信息
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "QCB00000000000000000000000000001",
|
||||
"name": "QualityBase",
|
||||
"path": "/quality-base",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "质检基础信息",
|
||||
"icon": "ri:clipboard-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "70000000000000000000000000000003",
|
||||
"name": "QualityInspectionSampleReceptionCheckItem",
|
||||
"path": "sample-reception-check-item",
|
||||
"component": "/quality-inspection/sample-reception-check-item/index",
|
||||
"meta": {"title": "接收检查项配置", "keepAlive": True, "menuCode": "biz:sampleReceptionCheckItem:list"},
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000006",
|
||||
"name": "QualityInspectionLabTestItem",
|
||||
"path": "lab-test-item",
|
||||
"component": "/quality-inspection/lab-test-item/index",
|
||||
"meta": {"title": "质检项目管理", "keepAlive": True, "menuCode": "biz:qcLabTestItem:list"},
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000009",
|
||||
"name": "QualityInspectionQcMaterial",
|
||||
"path": "qc-material",
|
||||
"component": "/quality-inspection/qc-material/index",
|
||||
"meta": {"title": "质检物料库", "keepAlive": True, "menuCode": "biz:qcMaterial:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 10. 生产基础信息
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "PRB00000000000000000000000000001",
|
||||
"name": "ProductionBase",
|
||||
"path": "/production-base",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "生产基础信息",
|
||||
"icon": "ri:tools-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "90000000000000000000000000000002",
|
||||
"name": "ProductionConsumable",
|
||||
"path": "consumable",
|
||||
"component": "/production/consumable/index",
|
||||
"meta": {"title": "耗材管理", "keepAlive": True, "menuCode": "production:consumable:list"},
|
||||
},
|
||||
{
|
||||
"id": "90000000000000000000000000000003",
|
||||
"name": "ProductionReagent",
|
||||
"path": "reagent",
|
||||
"component": "/production/reagent/index",
|
||||
"meta": {"title": "试剂管理", "keepAlive": True, "menuCode": "production:reagent:list"},
|
||||
},
|
||||
{
|
||||
"id": "90000000000000000000000000000004",
|
||||
"name": "ProductionSop",
|
||||
"path": "sop",
|
||||
"component": "/production/sop/index",
|
||||
"meta": {"title": "SOP文档", "keepAlive": True, "menuCode": "production:sop-document:list"},
|
||||
},
|
||||
{
|
||||
"id": "90000000000000000000000000000005",
|
||||
"name": "ProductionProcessCategory",
|
||||
"path": "process-category",
|
||||
"component": "/production/process-category/index",
|
||||
"meta": {"title": "工艺基础信息维护", "keepAlive": True, "menuCode": "production:process-category:list"},
|
||||
},
|
||||
{
|
||||
"id": "90000000000000000000000000000008",
|
||||
"name": "ProductionProcess",
|
||||
"path": "process",
|
||||
"component": "/production/process/index",
|
||||
"meta": {"title": "工艺库管理", "keepAlive": True, "menuCode": "production:process:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 11. 系统基础信息
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "SYSB000000000000000000000000000001",
|
||||
"name": "SystemBase",
|
||||
"path": "/system-base",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "系统基础信息",
|
||||
"icon": "ri:archive-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "107",
|
||||
"name": "Site",
|
||||
"path": "site",
|
||||
"component": "/system/site/index",
|
||||
"meta": {"title": "站点管理", "keepAlive": True, "menuCode": "system:site:list"},
|
||||
},
|
||||
{
|
||||
"id": "109",
|
||||
"name": "Unit",
|
||||
"path": "unit",
|
||||
"component": "/system/unit/index",
|
||||
"meta": {"title": "物品单位管理", "keepAlive": True, "menuCode": "system:unit:list"},
|
||||
},
|
||||
{
|
||||
"id": "110",
|
||||
"name": "Express",
|
||||
"path": "express",
|
||||
"component": "/system/express/index",
|
||||
"meta": {"title": "快递公司", "keepAlive": True, "menuCode": "system:express:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 12. 工作流管理
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "WKF00000000000000000000000000001",
|
||||
"name": "Workflow",
|
||||
"path": "/workflow",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "工作流管理",
|
||||
"icon": "workflow",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "10000000000000000000000000000wf01",
|
||||
"name": "WorkflowProcess",
|
||||
"path": "process",
|
||||
"component": "/system/workflow/process/index",
|
||||
"meta": {"title": "流程配置", "keepAlive": True, "menuCode": "workflow:process"},
|
||||
},
|
||||
{
|
||||
"id": "10000000000000000000000000000wf02",
|
||||
"name": "WorkflowPending",
|
||||
"path": "pending",
|
||||
"component": "/system/workflow/task-pending/index",
|
||||
"meta": {"title": "待办中心", "keepAlive": True, "menuCode": "workflow:pending"},
|
||||
},
|
||||
{
|
||||
"id": "10000000000000000000000000000wf03",
|
||||
"name": "WorkflowCompleted",
|
||||
"path": "completed",
|
||||
"component": "/system/workflow/task-completed/index",
|
||||
"meta": {"title": "已办中心", "keepAlive": True, "menuCode": "workflow:completed"},
|
||||
},
|
||||
{
|
||||
"id": "10000000000000000000000000000wf05",
|
||||
"name": "WorkflowMyApplications",
|
||||
"path": "my-applications",
|
||||
"component": "/system/workflow/my-applications/index",
|
||||
"meta": {"title": "我的申请", "keepAlive": True, "menuCode": "workflow:myApplications"},
|
||||
},
|
||||
{
|
||||
"id": "10000000000000000000000000000wf04",
|
||||
"name": "LeaveRequest",
|
||||
"path": "leave",
|
||||
"component": "/system/leave/index",
|
||||
"meta": {"title": "请假申请", "keepAlive": True, "menuCode": "workflow:leave"},
|
||||
},
|
||||
],
|
||||
},
|
||||
|
||||
# ────────────────────────────────────────────
|
||||
# 13. 系统管理
|
||||
# ────────────────────────────────────────────
|
||||
{
|
||||
"id": "SYSM000000000000000000000000000001",
|
||||
"name": "SystemManage",
|
||||
"path": "/system",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
@@ -34,6 +582,13 @@ STATIC_MENU_TREE = [
|
||||
"component": "/system/dict/index",
|
||||
"meta": {"title": "字典管理", "keepAlive": True, "menuCode": "system:dict:list"},
|
||||
},
|
||||
{
|
||||
"id": "106",
|
||||
"name": "Menu",
|
||||
"path": "menu",
|
||||
"component": "/system/menu/index",
|
||||
"meta": {"title": "菜单管理", "keepAlive": True, "menuCode": "system:menu:list"},
|
||||
},
|
||||
{
|
||||
"id": "103",
|
||||
"name": "Dept",
|
||||
@@ -41,20 +596,6 @@ STATIC_MENU_TREE = [
|
||||
"component": "/system/dept/index",
|
||||
"meta": {"title": "组织管理", "keepAlive": True, "menuCode": "system:dept:list"},
|
||||
},
|
||||
{
|
||||
"id": "104",
|
||||
"name": "User",
|
||||
"path": "user",
|
||||
"component": "/system/user/index",
|
||||
"meta": {"title": "用户管理", "keepAlive": True, "menuCode": "system:user:list"},
|
||||
},
|
||||
{
|
||||
"id": "10000000000000000000000000000008",
|
||||
"name": "UserDetail",
|
||||
"path": "user/detail",
|
||||
"component": "/system/user/detail",
|
||||
"meta": {"title": "用户详情", "isHide": True, "keepAlive": True},
|
||||
},
|
||||
{
|
||||
"id": "105",
|
||||
"name": "Role",
|
||||
@@ -63,18 +604,11 @@ STATIC_MENU_TREE = [
|
||||
"meta": {"title": "角色管理", "keepAlive": True, "menuCode": "system:role:list"},
|
||||
},
|
||||
{
|
||||
"id": "106",
|
||||
"name": "Menu",
|
||||
"path": "menu",
|
||||
"component": "/system/menu/index",
|
||||
"meta": {"title": "菜单管理", "keepAlive": True, "menuCode": "system:menu:list"},
|
||||
},
|
||||
{
|
||||
"id": "107",
|
||||
"name": "Site",
|
||||
"path": "site",
|
||||
"component": "/system/site/index",
|
||||
"meta": {"title": "站点管理", "keepAlive": True, "menuCode": "system:site:list"},
|
||||
"id": "104",
|
||||
"name": "User",
|
||||
"path": "user",
|
||||
"component": "/system/user/index",
|
||||
"meta": {"title": "用户管理", "keepAlive": True, "menuCode": "system:user:list"},
|
||||
},
|
||||
{
|
||||
"id": "108",
|
||||
@@ -84,175 +618,15 @@ STATIC_MENU_TREE = [
|
||||
"meta": {"title": "职位管理", "keepAlive": True, "menuCode": "system:post:list"},
|
||||
},
|
||||
{
|
||||
"id": "109",
|
||||
"name": "Unit",
|
||||
"path": "unit",
|
||||
"component": "/system/unit/index",
|
||||
"meta": {"title": "物品单位管理", "keepAlive": True, "menuCode": "system:unit:list"},
|
||||
},
|
||||
{
|
||||
"id": "110",
|
||||
"name": "Express",
|
||||
"path": "express",
|
||||
"component": "/system/express/index",
|
||||
"meta": {"title": "快递公司", "keepAlive": True, "menuCode": "system:express:list"},
|
||||
"id": "10000000000000000000000000000008",
|
||||
"name": "UserDetail",
|
||||
"path": "user/detail",
|
||||
"component": "/system/user/detail",
|
||||
"meta": {"title": "用户详情", "isHide": True, "keepAlive": True},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "40000000000000000000000000000001",
|
||||
"name": "BasicInfo",
|
||||
"path": "/basic-info",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "基础信息管理",
|
||||
"icon": "ri:folder-user-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "40000000000000000000000000000002",
|
||||
"name": "BizCustomer",
|
||||
"path": "customer",
|
||||
"component": "/basic-info/customer/index",
|
||||
"meta": {"title": "客户管理", "keepAlive": True, "menuCode": "biz:customer:list"},
|
||||
},
|
||||
{
|
||||
"id": "40000000000000000000000000000003",
|
||||
"name": "BizCellSampleType",
|
||||
"path": "cell-sample-type",
|
||||
"component": "/basic-info/cell-sample-type/index",
|
||||
"meta": {"title": "细胞样本类型管理", "keepAlive": True, "menuCode": "biz:cellSampleType:list"},
|
||||
},
|
||||
{
|
||||
"id": "40000000000000000000000000000004",
|
||||
"name": "BizCollectionRegion",
|
||||
"path": "collection-region",
|
||||
"component": "/basic-info/collection-region/index",
|
||||
"meta": {"title": "采集地区及医院管理", "keepAlive": True, "menuCode": "biz:collectionRegion:list"},
|
||||
},
|
||||
{
|
||||
"id": "40000000000000000000000000000005",
|
||||
"name": "BizCollectionProtocolNo",
|
||||
"path": "collection-protocol-no",
|
||||
"component": "/basic-info/collection-protocol-no/index",
|
||||
"meta": {"title": "采集协议号管理", "keepAlive": True, "menuCode": "biz:collectionProtocolNo:list"},
|
||||
},
|
||||
{
|
||||
"id": "40000000000000000000000000000006",
|
||||
"name": "BizSampleCode",
|
||||
"path": "sample-code",
|
||||
"component": "/basic-info/sample-code/index",
|
||||
"meta": {"title": "样本编码管理", "keepAlive": True, "menuCode": "biz:sampleCode:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "50000000000000000000000000000001",
|
||||
"name": "CellStorage",
|
||||
"path": "/cell-storage",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "细胞存储管理",
|
||||
"icon": "ri:test-tube-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "50000000000000000000000000000002",
|
||||
"name": "CellStorageProtocol",
|
||||
"path": "protocol",
|
||||
"component": "/cell-storage/protocol/index",
|
||||
"meta": {"title": "采集协议单录入", "keepAlive": True},
|
||||
},
|
||||
{
|
||||
"id": "50000000000000000000000000000003",
|
||||
"name": "CellStorageProtocolAudit",
|
||||
"path": "protocol-audit",
|
||||
"component": "/cell-storage/protocol-audit/index",
|
||||
"meta": {"title": "采集协议单管理", "keepAlive": True},
|
||||
},
|
||||
{
|
||||
"id": "50000000000000000000000000000007",
|
||||
"name": "CellStoragePaymentInfo",
|
||||
"path": "payment-info",
|
||||
"component": "/cell-storage/payment-info/index",
|
||||
"meta": {"title": "缴费信息", "keepAlive": True},
|
||||
},
|
||||
{
|
||||
"id": "50000000000000000000000000000004",
|
||||
"name": "CellStoragePaymentConfirm",
|
||||
"path": "payment-confirm",
|
||||
"component": "/cell-storage/payment-confirm/index",
|
||||
"meta": {"title": "缴费确认(财务)", "keepAlive": True},
|
||||
},
|
||||
{
|
||||
"id": "50000000000000000000000000000005",
|
||||
"name": "CellStorageRefundConfirm",
|
||||
"path": "refund-confirm",
|
||||
"component": "/cell-storage/refund-confirm/index",
|
||||
"meta": {"title": "退费确认(财务)", "keepAlive": True},
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000001",
|
||||
"name": "QualityInspection",
|
||||
"path": "/quality-inspection",
|
||||
"component": "/index/index",
|
||||
"meta": {
|
||||
"title": "质量检测",
|
||||
"icon": "ri:shield-check-line",
|
||||
"keepAlive": False,
|
||||
"roles": ["admin"],
|
||||
},
|
||||
"children": [
|
||||
{
|
||||
"id": "70000000000000000000000000000002",
|
||||
"name": "QualityInspectionSampleReception",
|
||||
"path": "sample-reception",
|
||||
"component": "/quality-inspection/sample-reception/index",
|
||||
"meta": {"title": "样本接收", "keepAlive": True},
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000003",
|
||||
"name": "QualityInspectionSampleReceptionCheckItem",
|
||||
"path": "sample-reception-check-item",
|
||||
"component": "/quality-inspection/sample-reception-check-item/index",
|
||||
"meta": {"title": "接收检查项配置", "keepAlive": True},
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000004",
|
||||
"name": "QualityInspectionThirdPartyCompany",
|
||||
"path": "third-party-company",
|
||||
"component": "/quality-inspection/third-party-company/index",
|
||||
"meta": {"title": "第三方检测公司及项目", "keepAlive": True, "menuCode": "biz:qcThirdPartyCompany:list"},
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000006",
|
||||
"name": "QualityInspectionLabTestItem",
|
||||
"path": "lab-test-item",
|
||||
"component": "/quality-inspection/lab-test-item/index",
|
||||
"meta": {"title": "实验室自检项目", "keepAlive": True, "menuCode": "biz:qcLabTestItem:list"},
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000007",
|
||||
"name": "QualityInspectionQcWorkOrder",
|
||||
"path": "qc-work-order",
|
||||
"component": "/quality-inspection/qc-work-order/index",
|
||||
"meta": {"title": "入库质检工单", "keepAlive": True, "menuCode": "biz:qcWorkOrder:list"},
|
||||
},
|
||||
{
|
||||
"id": "70000000000000000000000000000008",
|
||||
"name": "QualityInspectionQcTask",
|
||||
"path": "qc-task",
|
||||
"component": "/quality-inspection/qc-task/index",
|
||||
"meta": {"title": "质检任务", "keepAlive": True, "menuCode": "biz:qcTask:list"},
|
||||
},
|
||||
],
|
||||
},
|
||||
}
|
||||
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -44,8 +44,9 @@ class PlanIdBody(BaseModel):
|
||||
class ApplicationCreateBody(BaseModel):
|
||||
model_config = ConfigDict(populate_by_name=True)
|
||||
|
||||
channel_service_order_id: str = Field(..., alias="channelServiceOrderId")
|
||||
channel_service_order_id: Optional[str] = Field(None, alias="channelServiceOrderId")
|
||||
remark: Optional[str] = None
|
||||
biz_type: Optional[str] = Field(None, alias="bizType")
|
||||
|
||||
|
||||
class ApplicationUpdateBody(BaseModel):
|
||||
@@ -111,6 +112,7 @@ class ScheduleCreateBody(BaseModel):
|
||||
plan_id: str = Field(..., alias="infusionPlanId")
|
||||
infusion_time: Optional[str] = Field(None, alias="infusionTime")
|
||||
remark: Optional[str] = None
|
||||
amount: Optional[float] = None
|
||||
|
||||
|
||||
# --- 复合保存 Schema(参考采集协议单一次性保存模式)---
|
||||
@@ -202,6 +204,7 @@ async def api_list_applications(
|
||||
channelId: Optional[str] = Query(None, alias="channelId"),
|
||||
applicationStatus: Optional[str] = Query(None, alias="applicationStatus"),
|
||||
channelServiceOrderId: Optional[str] = Query(None, alias="channelServiceOrderId"),
|
||||
bizType: Optional[str] = Query(None, alias="bizType"),
|
||||
user: dict = Depends(require_admin_or_super_admin),
|
||||
db: Session = Depends(get_db),
|
||||
):
|
||||
@@ -215,6 +218,7 @@ async def api_list_applications(
|
||||
application_status=applicationStatus,
|
||||
channel_service_order_id=channelServiceOrderId,
|
||||
keyword=keyword,
|
||||
biz_type=bizType,
|
||||
)
|
||||
return success_response(result)
|
||||
|
||||
@@ -241,8 +245,9 @@ async def api_create_application(
|
||||
try:
|
||||
tenant_no = _get_tenant_no(db, user)
|
||||
data = {
|
||||
"channelServiceOrderId": body.channel_service_order_id,
|
||||
"channelServiceOrderId": body.channel_service_order_id or "",
|
||||
"remark": body.remark,
|
||||
"bizType": body.biz_type or "pilot_service",
|
||||
}
|
||||
result = pilot_application.create_application(
|
||||
db,
|
||||
@@ -638,6 +643,7 @@ async def api_create_schedule(
|
||||
data = {
|
||||
"infusionTime": body.infusion_time,
|
||||
"remark": body.remark,
|
||||
"amount": body.amount,
|
||||
}
|
||||
result = pilot_application.create_schedule(
|
||||
db,
|
||||
|
||||
@@ -0,0 +1,383 @@
|
||||
"""临床应用缴费 CRUD"""
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from decimal import Decimal
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
from sqlalchemy import and_, func
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.models.clinical_payment import BizPilotPayment
|
||||
from app.models.models import (
|
||||
BizPilotApplication,
|
||||
BizPilotPatient,
|
||||
BizPilotInfusionPlan,
|
||||
BizPilotInfusionSchedule,
|
||||
)
|
||||
|
||||
|
||||
# ─── helpers ──────────────────────────────────────────────
|
||||
|
||||
|
||||
def _row_to_dict(row: BizPilotPayment, *, extra: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
|
||||
d: Dict[str, Any] = {
|
||||
"id": row.id,
|
||||
"pilotApplicationId": row.pilot_application_id or "",
|
||||
"infusionScheduleId": row.infusion_schedule_id or "",
|
||||
"bizType": row.biz_type or "clinical_application",
|
||||
"amount": float(row.amount) if row.amount else 0,
|
||||
"transferType": row.transfer_type or "",
|
||||
"transferAmount": float(row.transfer_amount) if row.transfer_amount else None,
|
||||
"transferTime": row.transfer_time.strftime("%Y-%m-%d %H:%M:%S") if row.transfer_time else "",
|
||||
"transferAttachments": row.transfer_attachments or "",
|
||||
"payStatus": row.pay_status or "dfj",
|
||||
"financeConfirmAttachments": row.finance_confirm_attachments or "",
|
||||
"financeRemark": row.finance_remark or "",
|
||||
"financeConfirmTime": row.finance_confirm_time.strftime("%Y-%m-%d %H:%M:%S") if row.finance_confirm_time else "",
|
||||
"refundAmount": float(row.refund_amount) if row.refund_amount else None,
|
||||
"refundRemark": row.refund_remark or "",
|
||||
"refundAttachments": row.refund_attachments or "",
|
||||
"refundApplyBy": row.refund_apply_by or "",
|
||||
"refundApplyTime": row.refund_apply_time.strftime("%Y-%m-%d %H:%M:%S") if row.refund_apply_time else "",
|
||||
"refundFinanceConfirmAttachments": row.refund_finance_confirm_attachments or "",
|
||||
"refundFinanceRemark": row.refund_finance_remark or "",
|
||||
"refundFinanceConfirmTime": row.refund_finance_confirm_time.strftime("%Y-%m-%d %H:%M:%S") if row.refund_finance_confirm_time else "",
|
||||
"tenantNo": row.tenant_no or "",
|
||||
"remark": row.remark or "",
|
||||
"createBy": row.create_by or "",
|
||||
"createTime": row.create_time.strftime("%Y-%m-%d %H:%M:%S") if row.create_time else "",
|
||||
"updateTime": row.update_time.strftime("%Y-%m-%d %H:%M:%S") if row.update_time else "",
|
||||
}
|
||||
if extra:
|
||||
d.update(extra)
|
||||
return d
|
||||
|
||||
|
||||
def _get_or_raise(db: Session, *, payment_id: str, tenant_no: str) -> BizPilotPayment:
|
||||
row = (
|
||||
db.query(BizPilotPayment)
|
||||
.filter(
|
||||
and_(
|
||||
BizPilotPayment.id == payment_id,
|
||||
BizPilotPayment.tenant_no == tenant_no,
|
||||
BizPilotPayment.del_flag == 0,
|
||||
)
|
||||
)
|
||||
.first()
|
||||
)
|
||||
if not row:
|
||||
raise ValueError("缴费记录不存在")
|
||||
return row
|
||||
|
||||
|
||||
def _enrich_payment(db: Session, row: BizPilotPayment) -> Dict[str, Any]:
|
||||
"""关联查询申请单、患者、输注计划信息,附加到 dict"""
|
||||
app_row = (
|
||||
db.query(BizPilotApplication)
|
||||
.filter(BizPilotApplication.id == row.pilot_application_id)
|
||||
.first()
|
||||
)
|
||||
patient_row = None
|
||||
schedule_row = (
|
||||
db.query(BizPilotInfusionSchedule)
|
||||
.filter(BizPilotInfusionSchedule.id == row.infusion_schedule_id)
|
||||
.first()
|
||||
)
|
||||
if app_row:
|
||||
patient_row = (
|
||||
db.query(BizPilotPatient)
|
||||
.filter(
|
||||
BizPilotPatient.pilot_application_id == app_row.id,
|
||||
BizPilotPatient.del_flag == 0,
|
||||
)
|
||||
.first()
|
||||
)
|
||||
extra = {
|
||||
"applicationNo": app_row.application_no if app_row else "",
|
||||
"applicationName": app_row.application_name if app_row else "",
|
||||
"channelName": app_row.channel_name if app_row else "",
|
||||
"patientName": patient_row.patient_name if patient_row else "",
|
||||
"cellType": schedule_row.cell_type if schedule_row else "",
|
||||
"specText": schedule_row.spec_text if schedule_row else "",
|
||||
"infusionTime": schedule_row.infusion_time.strftime("%Y-%m-%d %H:%M:%S") if schedule_row and schedule_row.infusion_time else "",
|
||||
}
|
||||
return _row_to_dict(row, extra=extra)
|
||||
|
||||
|
||||
# ─── create (auto) ────────────────────────────────────────
|
||||
|
||||
|
||||
def auto_create_payment(
|
||||
db: Session,
|
||||
*,
|
||||
application_id: str,
|
||||
schedule_id: str,
|
||||
amount: Any,
|
||||
tenant_no: str,
|
||||
user_id: str,
|
||||
dept_id: str,
|
||||
) -> Optional[BizPilotPayment]:
|
||||
"""输注计划创建时自动调用,生成 dfj 缴费记录"""
|
||||
if amount is None or Decimal(str(amount)) <= 0:
|
||||
return None
|
||||
now = datetime.now()
|
||||
row = BizPilotPayment(
|
||||
id=str(uuid.uuid4()),
|
||||
pilot_application_id=application_id,
|
||||
infusion_schedule_id=schedule_id,
|
||||
biz_type="clinical_application",
|
||||
amount=Decimal(str(amount)),
|
||||
pay_status="dfj",
|
||||
tenant_no=tenant_no,
|
||||
order_num=0,
|
||||
create_by=user_id,
|
||||
create_dept_id=dept_id or "",
|
||||
create_time=now,
|
||||
update_by=user_id,
|
||||
update_time=now,
|
||||
del_flag=0,
|
||||
)
|
||||
db.add(row)
|
||||
return row
|
||||
|
||||
|
||||
# ─── list ─────────────────────────────────────────────────
|
||||
|
||||
|
||||
def list_payments(
|
||||
db: Session,
|
||||
*,
|
||||
page: int = 1,
|
||||
page_size: int = 10,
|
||||
pay_status: Optional[str] = None,
|
||||
keyword: Optional[str] = None,
|
||||
tenant_no: str = "",
|
||||
user_info=None,
|
||||
) -> Tuple[List[Dict[str, Any]], int]:
|
||||
q = (
|
||||
db.query(BizPilotPayment)
|
||||
.filter(
|
||||
BizPilotPayment.del_flag == 0,
|
||||
BizPilotPayment.tenant_no == tenant_no,
|
||||
)
|
||||
)
|
||||
if pay_status and pay_status.strip():
|
||||
q = q.filter(BizPilotPayment.pay_status == pay_status.strip())
|
||||
if keyword and keyword.strip():
|
||||
kw = f"%{keyword.strip()}%"
|
||||
sub = (
|
||||
db.query(BizPilotApplication.id)
|
||||
.filter(
|
||||
BizPilotApplication.del_flag == 0,
|
||||
BizPilotApplication.application_no.like(kw),
|
||||
)
|
||||
.subquery()
|
||||
)
|
||||
q = q.filter(BizPilotPayment.pilot_application_id.in_(sub))
|
||||
if user_info:
|
||||
from app.core.data_scope import apply_data_scope
|
||||
q = apply_data_scope(q, BizPilotPayment, user_info, db, tenant_no)
|
||||
total = q.order_by(None).with_entities(func.count(BizPilotPayment.id)).scalar() or 0
|
||||
page = max(1, page)
|
||||
page_size = min(max(1, page_size), 100)
|
||||
rows = (
|
||||
q.order_by(BizPilotPayment.create_time.desc())
|
||||
.offset((page - 1) * page_size)
|
||||
.limit(page_size)
|
||||
.all()
|
||||
)
|
||||
out = [_enrich_payment(db, r) for r in rows]
|
||||
return out, int(total)
|
||||
|
||||
|
||||
# ─── submit receipt (dfj → jfqrz) ────────────────────────
|
||||
|
||||
|
||||
def submit_receipt(
|
||||
db: Session,
|
||||
*,
|
||||
payment_id: str,
|
||||
tenant_no: str,
|
||||
user_id: Optional[str],
|
||||
) -> BizPilotPayment:
|
||||
row = _get_or_raise(db, payment_id=payment_id, tenant_no=tenant_no)
|
||||
if row.pay_status != "dfj":
|
||||
raise ValueError("仅待缴费状态可提交缴费确认")
|
||||
row.pay_status = "jfqrz"
|
||||
row.update_by = user_id
|
||||
row.update_time = datetime.now()
|
||||
db.add(row)
|
||||
db.commit()
|
||||
db.refresh(row)
|
||||
return row
|
||||
|
||||
|
||||
def batch_submit_receipt(
|
||||
db: Session,
|
||||
*,
|
||||
payment_ids: List[str],
|
||||
tenant_no: str,
|
||||
user_id: Optional[str],
|
||||
) -> int:
|
||||
ids = [str(i).strip() for i in (payment_ids or []) if str(i).strip()]
|
||||
if not ids:
|
||||
raise ValueError("请选择缴费记录")
|
||||
for pid in ids:
|
||||
row = _get_or_raise(db, payment_id=pid, tenant_no=tenant_no)
|
||||
if row.pay_status != "dfj":
|
||||
continue
|
||||
row.pay_status = "jfqrz"
|
||||
row.update_by = user_id
|
||||
row.update_time = datetime.now()
|
||||
db.add(row)
|
||||
db.commit()
|
||||
return len(ids)
|
||||
|
||||
|
||||
# ─── confirm receipt (jfqrz → yjf) ──────────────────────
|
||||
|
||||
|
||||
def confirm_receipt(
|
||||
db: Session,
|
||||
*,
|
||||
payment_id: str,
|
||||
tenant_no: str,
|
||||
user_id: Optional[str],
|
||||
finance_confirm_attachments: Optional[str] = None,
|
||||
finance_remark: Optional[str] = None,
|
||||
) -> BizPilotPayment:
|
||||
row = _get_or_raise(db, payment_id=payment_id, tenant_no=tenant_no)
|
||||
if row.pay_status != "jfqrz":
|
||||
if row.pay_status == "yjf":
|
||||
raise ValueError("该记录已确认收款")
|
||||
raise ValueError("当前状态不可确认收款")
|
||||
row.pay_status = "yjf"
|
||||
if finance_confirm_attachments is not None:
|
||||
row.finance_confirm_attachments = finance_confirm_attachments.strip() or None
|
||||
if finance_remark is not None:
|
||||
row.finance_remark = finance_remark.strip() or None
|
||||
row.finance_confirm_time = datetime.now()
|
||||
row.update_by = user_id
|
||||
row.update_time = datetime.now()
|
||||
db.add(row)
|
||||
db.commit()
|
||||
db.refresh(row)
|
||||
return row
|
||||
|
||||
|
||||
# ─── submit refund (yjf → tfqrz) ─────────────────────────
|
||||
|
||||
|
||||
def submit_refund(
|
||||
db: Session,
|
||||
*,
|
||||
payment_id: str,
|
||||
tenant_no: str,
|
||||
user_id: Optional[str],
|
||||
refund_amount: Any,
|
||||
refund_remark: Optional[str] = None,
|
||||
refund_attachments: Optional[str] = None,
|
||||
) -> BizPilotPayment:
|
||||
row = _get_or_raise(db, payment_id=payment_id, tenant_no=tenant_no)
|
||||
if row.pay_status != "yjf":
|
||||
raise ValueError("仅已缴费状态可发起退费")
|
||||
if refund_amount is None or Decimal(str(refund_amount)) <= 0:
|
||||
raise ValueError("请填写有效的退费金额")
|
||||
row.pay_status = "tfqrz"
|
||||
row.refund_amount = Decimal(str(refund_amount))
|
||||
row.refund_remark = (refund_remark or "").strip() or None
|
||||
row.refund_attachments = (refund_attachments or "").strip() or None
|
||||
row.refund_apply_by = user_id
|
||||
row.refund_apply_time = datetime.now()
|
||||
row.update_by = user_id
|
||||
row.update_time = datetime.now()
|
||||
db.add(row)
|
||||
db.commit()
|
||||
db.refresh(row)
|
||||
return row
|
||||
|
||||
|
||||
def batch_submit_refund(
|
||||
db: Session,
|
||||
*,
|
||||
payment_ids: List[str],
|
||||
tenant_no: str,
|
||||
user_id: Optional[str],
|
||||
refund_amount: Any,
|
||||
refund_remark: Optional[str] = None,
|
||||
refund_attachments: Optional[str] = None,
|
||||
) -> int:
|
||||
ids = [str(i).strip() for i in (payment_ids or []) if str(i).strip()]
|
||||
if not ids:
|
||||
raise ValueError("请选择缴费记录")
|
||||
for pid in ids:
|
||||
row = _get_or_raise(db, payment_id=pid, tenant_no=tenant_no)
|
||||
if row.pay_status != "yjf":
|
||||
continue
|
||||
if refund_amount is None or Decimal(str(refund_amount)) <= 0:
|
||||
continue
|
||||
row.pay_status = "tfqrz"
|
||||
row.refund_amount = Decimal(str(refund_amount))
|
||||
row.refund_remark = (refund_remark or "").strip() or None
|
||||
row.refund_attachments = (refund_attachments or "").strip() or None
|
||||
row.refund_apply_by = user_id
|
||||
row.refund_apply_time = datetime.now()
|
||||
row.update_by = user_id
|
||||
row.update_time = datetime.now()
|
||||
db.add(row)
|
||||
db.commit()
|
||||
return len(ids)
|
||||
|
||||
|
||||
# ─── confirm refund (tfqrz → ytf) ───────────────────────
|
||||
|
||||
|
||||
def confirm_refund(
|
||||
db: Session,
|
||||
*,
|
||||
payment_id: str,
|
||||
tenant_no: str,
|
||||
user_id: Optional[str],
|
||||
refund_finance_confirm_attachments: Optional[str] = None,
|
||||
refund_finance_remark: Optional[str] = None,
|
||||
) -> BizPilotPayment:
|
||||
row = _get_or_raise(db, payment_id=payment_id, tenant_no=tenant_no)
|
||||
if row.pay_status != "tfqrz":
|
||||
if row.pay_status == "ytf":
|
||||
raise ValueError("该记录已确认退费")
|
||||
raise ValueError("当前状态不可确认退费")
|
||||
row.pay_status = "ytf"
|
||||
if refund_finance_confirm_attachments is not None:
|
||||
row.refund_finance_confirm_attachments = refund_finance_confirm_attachments.strip() or None
|
||||
if refund_finance_remark is not None:
|
||||
row.refund_finance_remark = refund_finance_remark.strip() or None
|
||||
row.refund_finance_confirm_time = datetime.now()
|
||||
row.update_by = user_id
|
||||
row.update_time = datetime.now()
|
||||
db.add(row)
|
||||
db.commit()
|
||||
db.refresh(row)
|
||||
return row
|
||||
|
||||
|
||||
# ─── detail ───────────────────────────────────────────────
|
||||
|
||||
|
||||
def get_payment_detail(db: Session, *, payment_id: str, tenant_no: str) -> Optional[Dict[str, Any]]:
|
||||
row = _get_or_raise(db, payment_id=payment_id, tenant_no=tenant_no)
|
||||
return _enrich_payment(db, row)
|
||||
|
||||
|
||||
def get_payment_by_schedule(db: Session, *, schedule_id: str, tenant_no: str) -> Optional[Dict[str, Any]]:
|
||||
row = (
|
||||
db.query(BizPilotPayment)
|
||||
.filter(
|
||||
BizPilotPayment.infusion_schedule_id == schedule_id,
|
||||
BizPilotPayment.tenant_no == tenant_no,
|
||||
BizPilotPayment.del_flag == 0,
|
||||
)
|
||||
.first()
|
||||
)
|
||||
if not row:
|
||||
return None
|
||||
return _enrich_payment(db, row)
|
||||
@@ -71,9 +71,9 @@ def _release_application_no_for_soft_delete(application_no: str, row_id: str) ->
|
||||
return f"{base[:max_base_len]}{suffix}"
|
||||
|
||||
|
||||
def _generate_application_no(db: Session, tenant_no: str) -> str:
|
||||
def _generate_application_no(db: Session, tenant_no: str, biz_type: str = "pilot_service") -> str:
|
||||
today_str = datetime.now().strftime("%Y%m%d")
|
||||
prefix = f"ZSSQ{today_str}"
|
||||
prefix = f"LCSQ{today_str}" if biz_type == "clinical_application" else f"ZSSQ{today_str}"
|
||||
existing = (
|
||||
db.query(BizPilotApplication.application_no)
|
||||
.filter(
|
||||
@@ -99,6 +99,7 @@ def _row_to_dict_application(row, db=None, tenant_no=None) -> Dict[str, Any]:
|
||||
"applicationNo": row.application_no or "",
|
||||
"applicationName": row.application_name or "",
|
||||
"applicationStatus": row.application_status or "",
|
||||
"bizType": row.biz_type or "pilot_service",
|
||||
"channelServiceOrderId": row.channel_service_order_id or "",
|
||||
"channelId": row.channel_id or "",
|
||||
"channelName": row.channel_name or "",
|
||||
@@ -268,6 +269,7 @@ def _row_to_dict_infusion_schedule(row, cell_products: Optional[List[Dict[str, A
|
||||
"qcStatus": row.qc_status or "dzc",
|
||||
"cellProducts": cell_products if cell_products is not None else [],
|
||||
"attachments": row.attachments or "",
|
||||
"amount": float(row.amount) if row.amount else None,
|
||||
"tenantNo": row.tenant_no or "",
|
||||
"remark": row.remark or "",
|
||||
"createBy": row.create_by or "",
|
||||
@@ -290,6 +292,7 @@ def list_applications(
|
||||
application_status: Optional[str] = None,
|
||||
channel_service_order_id: Optional[str] = None,
|
||||
keyword: Optional[str] = None,
|
||||
biz_type: Optional[str] = None,
|
||||
):
|
||||
q = db.query(BizPilotApplication).filter(
|
||||
BizPilotApplication.tenant_no == tenant_no,
|
||||
@@ -303,6 +306,8 @@ def list_applications(
|
||||
q = q.filter(BizPilotApplication.application_status.in_(statuses))
|
||||
if channel_service_order_id:
|
||||
q = q.filter(BizPilotApplication.channel_service_order_id == channel_service_order_id)
|
||||
if biz_type:
|
||||
q = q.filter(BizPilotApplication.biz_type == biz_type)
|
||||
kw = (keyword or "").strip()
|
||||
if kw:
|
||||
like = f"%{kw}%"
|
||||
@@ -390,25 +395,28 @@ def create_application(
|
||||
dept_id: str,
|
||||
) -> Dict[str, Any]:
|
||||
channel_service_order_id = data.get("channelServiceOrderId") or ""
|
||||
if not channel_service_order_id:
|
||||
biz_type = data.get("bizType") or "pilot_service"
|
||||
if not channel_service_order_id and biz_type != "clinical_application":
|
||||
raise ValueError("请选择渠道服务订单")
|
||||
|
||||
# Validate service order exists and is active
|
||||
svc_order = (
|
||||
db.query(BizChannelServiceOrder)
|
||||
.filter(
|
||||
BizChannelServiceOrder.id == channel_service_order_id,
|
||||
BizChannelServiceOrder.del_flag == 0,
|
||||
svc_order = None
|
||||
if channel_service_order_id:
|
||||
svc_order = (
|
||||
db.query(BizChannelServiceOrder)
|
||||
.filter(
|
||||
BizChannelServiceOrder.id == channel_service_order_id,
|
||||
BizChannelServiceOrder.del_flag == 0,
|
||||
)
|
||||
.first()
|
||||
)
|
||||
.first()
|
||||
)
|
||||
if not svc_order:
|
||||
raise ValueError("渠道服务订单不存在")
|
||||
if svc_order.order_status != "sxz":
|
||||
raise ValueError("渠道服务订单未生效,无法创建中试申请")
|
||||
if not svc_order:
|
||||
raise ValueError("渠道服务订单不存在")
|
||||
if svc_order.order_status != "sxz":
|
||||
raise ValueError("渠道服务订单未生效,无法创建中试申请")
|
||||
|
||||
now = datetime.now()
|
||||
application_no = _generate_application_no(db, tenant_no)
|
||||
application_no = _generate_application_no(db, tenant_no, biz_type=biz_type)
|
||||
|
||||
row = BizPilotApplication(
|
||||
id=str(uuid.uuid4()),
|
||||
@@ -416,8 +424,8 @@ def create_application(
|
||||
application_name=data.get("applicationName") or "",
|
||||
application_status="dks",
|
||||
channel_service_order_id=channel_service_order_id,
|
||||
channel_id=svc_order.channel_id or "",
|
||||
channel_name=svc_order.channel_name or "",
|
||||
channel_id=svc_order.channel_id or "" if svc_order else "",
|
||||
channel_name=svc_order.channel_name or "" if svc_order else "",
|
||||
tenant_no=tenant_no,
|
||||
order_num=0,
|
||||
remark=data.get("remark") or "",
|
||||
@@ -427,6 +435,7 @@ def create_application(
|
||||
update_by=user_id,
|
||||
update_time=now,
|
||||
del_flag=0,
|
||||
biz_type=biz_type,
|
||||
)
|
||||
db.add(row)
|
||||
db.commit()
|
||||
@@ -1129,6 +1138,7 @@ def create_schedule(
|
||||
infusion_status=data.get("infusionStatus") or "dtz",
|
||||
qc_status=data.get("qcStatus") or "dzc",
|
||||
attachments=data.get("attachments") or "",
|
||||
amount=data.get("amount") if data.get("amount") else None,
|
||||
tenant_no=tenant_no,
|
||||
order_num=data.get("sortNo") or data.get("orderNum") or 0,
|
||||
remark=data.get("remark") or "",
|
||||
@@ -1164,6 +1174,33 @@ def create_schedule(
|
||||
user_id=user_id,
|
||||
create_dept_id=dept_id,
|
||||
)
|
||||
# 临床应用自动创建缴费记录
|
||||
plan_row = (
|
||||
db.query(BizPilotInfusionPlan)
|
||||
.filter(BizPilotInfusionPlan.id == plan_id, BizPilotInfusionPlan.del_flag == 0)
|
||||
.first()
|
||||
)
|
||||
if plan_row:
|
||||
application = (
|
||||
db.query(BizPilotApplication)
|
||||
.filter(
|
||||
BizPilotApplication.id == plan_row.pilot_application_id,
|
||||
BizPilotApplication.del_flag == 0,
|
||||
)
|
||||
.first()
|
||||
)
|
||||
if application and application.biz_type == "clinical_application" and data.get("amount"):
|
||||
from app.crud.clinical_payment import auto_create_payment
|
||||
|
||||
auto_create_payment(
|
||||
db,
|
||||
application_id=application.id,
|
||||
schedule_id=schedule_id,
|
||||
amount=data["amount"],
|
||||
tenant_no=tenant_no,
|
||||
user_id=user_id,
|
||||
dept_id=dept_id,
|
||||
)
|
||||
if commit:
|
||||
db.commit()
|
||||
db.refresh(row)
|
||||
|
||||
@@ -179,6 +179,49 @@ def _enrich_outbound_items(db: Session, items: List[Dict[str, Any]]) -> List[Dic
|
||||
return items
|
||||
|
||||
|
||||
def _outbound_work_order_ids_by_keyword(db: Session, tenant_no: str, keyword: str) -> List[str]:
|
||||
"""出库工单关键词:按关联申请单号、申请单名称匹配。"""
|
||||
from app.models.models import (
|
||||
BizPilotApplication,
|
||||
BizPilotInfusionPlan,
|
||||
BizPilotInfusionSchedule,
|
||||
)
|
||||
|
||||
kw = (keyword or "").strip()
|
||||
if not kw:
|
||||
return []
|
||||
like = f"%{kw}%"
|
||||
rows = (
|
||||
db.query(BizProductionWorkOrder.id)
|
||||
.join(
|
||||
BizPilotInfusionSchedule,
|
||||
BizProductionWorkOrder.infusion_schedule_id == BizPilotInfusionSchedule.id,
|
||||
)
|
||||
.join(
|
||||
BizPilotInfusionPlan,
|
||||
BizPilotInfusionSchedule.infusion_plan_id == BizPilotInfusionPlan.id,
|
||||
)
|
||||
.join(
|
||||
BizPilotApplication,
|
||||
BizPilotInfusionPlan.pilot_application_id == BizPilotApplication.id,
|
||||
)
|
||||
.filter(
|
||||
BizProductionWorkOrder.del_flag == 0,
|
||||
BizProductionWorkOrder.tenant_no == tenant_no,
|
||||
BizProductionWorkOrder.work_order_type == "outbound",
|
||||
BizPilotInfusionSchedule.del_flag == 0,
|
||||
BizPilotInfusionPlan.del_flag == 0,
|
||||
BizPilotApplication.del_flag == 0,
|
||||
or_(
|
||||
BizPilotApplication.application_no.like(like),
|
||||
BizPilotApplication.application_name.like(like),
|
||||
),
|
||||
)
|
||||
.all()
|
||||
)
|
||||
return [r[0] for r in rows]
|
||||
|
||||
|
||||
def _reception_source_label(source: Optional[str]) -> str:
|
||||
key = (source or "").strip() or "cell_storage"
|
||||
return _RECEPTION_SOURCE_LABELS.get(key, key)
|
||||
@@ -410,13 +453,15 @@ def list_production_work_orders(
|
||||
kw = (query.keyword or "").strip()
|
||||
if kw:
|
||||
like = f"%{kw}%"
|
||||
q0 = q0.filter(
|
||||
or_(
|
||||
BizProductionWorkOrder.work_order_no.like(like),
|
||||
BizProductionWorkOrder.protocol_no.like(like),
|
||||
BizProductionWorkOrder.sample_code.like(like),
|
||||
)
|
||||
)
|
||||
keyword_conditions = [
|
||||
BizProductionWorkOrder.work_order_no.like(like),
|
||||
BizProductionWorkOrder.protocol_no.like(like),
|
||||
BizProductionWorkOrder.sample_code.like(like),
|
||||
]
|
||||
outbound_ids = _outbound_work_order_ids_by_keyword(db, tenant_no, kw)
|
||||
if outbound_ids:
|
||||
keyword_conditions.append(BizProductionWorkOrder.id.in_(outbound_ids))
|
||||
q0 = q0.filter(or_(*keyword_conditions))
|
||||
elif query.work_order_no and query.work_order_no.strip():
|
||||
like = f"%{query.work_order_no.strip()}%"
|
||||
q0 = q0.filter(BizProductionWorkOrder.work_order_no.like(like))
|
||||
|
||||
@@ -195,6 +195,45 @@ def _enrich_outbound_work_orders(
|
||||
return items
|
||||
|
||||
|
||||
def _outbound_qc_work_order_ids_by_keyword(
|
||||
db: Session, tenant_no: str, keyword: str
|
||||
) -> List[str]:
|
||||
"""出库质检工单关键词:按关联申请单号、申请单名称匹配。"""
|
||||
kw = (keyword or "").strip()
|
||||
if not kw:
|
||||
return []
|
||||
like = f"%{kw}%"
|
||||
rows = (
|
||||
db.query(BizQcWorkOrder.id)
|
||||
.join(
|
||||
BizPilotInfusionSchedule,
|
||||
BizQcWorkOrder.infusion_schedule_id == BizPilotInfusionSchedule.id,
|
||||
)
|
||||
.join(
|
||||
BizPilotInfusionPlan,
|
||||
BizPilotInfusionSchedule.infusion_plan_id == BizPilotInfusionPlan.id,
|
||||
)
|
||||
.join(
|
||||
BizPilotApplication,
|
||||
BizPilotInfusionPlan.pilot_application_id == BizPilotApplication.id,
|
||||
)
|
||||
.filter(
|
||||
BizQcWorkOrder.del_flag == 0,
|
||||
BizQcWorkOrder.tenant_no == tenant_no,
|
||||
BizQcWorkOrder.work_order_type == "outbound",
|
||||
BizPilotInfusionSchedule.del_flag == 0,
|
||||
BizPilotInfusionPlan.del_flag == 0,
|
||||
BizPilotApplication.del_flag == 0,
|
||||
or_(
|
||||
BizPilotApplication.application_no.like(like),
|
||||
BizPilotApplication.application_name.like(like),
|
||||
),
|
||||
)
|
||||
.all()
|
||||
)
|
||||
return [r[0] for r in rows]
|
||||
|
||||
|
||||
def _accept_conclusion_label(v: Optional[str]) -> str:
|
||||
key = (v or "").strip()
|
||||
return _ACCEPT_CONCLUSION_LABELS.get(key, key)
|
||||
@@ -565,13 +604,16 @@ def list_work_orders(
|
||||
kw = (keyword or "").strip()
|
||||
if kw:
|
||||
like = f"%{kw}%"
|
||||
q0 = q0.filter(
|
||||
or_(
|
||||
BizQcWorkOrder.work_order_no.like(like),
|
||||
BizQcWorkOrder.protocol_no.like(like),
|
||||
BizQcWorkOrder.sample_code.like(like),
|
||||
)
|
||||
)
|
||||
keyword_conditions = [
|
||||
BizQcWorkOrder.work_order_no.like(like),
|
||||
BizQcWorkOrder.protocol_no.like(like),
|
||||
BizQcWorkOrder.sample_code.like(like),
|
||||
]
|
||||
if tenant_no:
|
||||
outbound_ids = _outbound_qc_work_order_ids_by_keyword(db, tenant_no, kw)
|
||||
if outbound_ids:
|
||||
keyword_conditions.append(BizQcWorkOrder.id.in_(outbound_ids))
|
||||
q0 = q0.filter(or_(*keyword_conditions))
|
||||
st = (work_order_status or "").strip()
|
||||
if st:
|
||||
q0 = q0.filter(BizQcWorkOrder.work_order_status == st)
|
||||
|
||||
+2
-1
@@ -13,7 +13,7 @@ from app.core.database import SessionLocal
|
||||
from app.core.api_request_log_middleware import ApiRequestLogMiddleware
|
||||
from app.core.api_crypto_middleware import ApiCryptoMiddleware
|
||||
from app.models import models # noqa: F401
|
||||
from app.api import public_router, menu_router, admin_router, workflow_router, basic_info_router, collection_protocol_router, leave_router, operations_router, ethnic_router, sample_reception_router, qc_router, research_donation_router, production_router, pilot_service_router, insurance_company_router, material_router, storage_release_review_router, sample_sms_notification_router, storage_entry_sms_notification_router, pilot_application_router, pilot_checkup_router, pilot_delivery_router, pilot_infusion_confirm_router, pilot_infusion_schedule_mgmt_router, outbound_release_review_router
|
||||
from app.api import public_router, menu_router, admin_router, workflow_router, basic_info_router, collection_protocol_router, leave_router, operations_router, ethnic_router, sample_reception_router, qc_router, research_donation_router, production_router, pilot_service_router, insurance_company_router, material_router, storage_release_review_router, sample_sms_notification_router, storage_entry_sms_notification_router, pilot_application_router, pilot_checkup_router, pilot_delivery_router, pilot_infusion_confirm_router, pilot_infusion_schedule_mgmt_router, outbound_release_review_router, clinical_payment_router
|
||||
|
||||
|
||||
@asynccontextmanager
|
||||
@@ -123,6 +123,7 @@ app.include_router(pilot_delivery_router, prefix=settings.API_V1_PREFIX)
|
||||
app.include_router(pilot_infusion_confirm_router, prefix=settings.API_V1_PREFIX)
|
||||
app.include_router(pilot_infusion_schedule_mgmt_router, prefix=settings.API_V1_PREFIX)
|
||||
app.include_router(outbound_release_review_router, prefix=settings.API_V1_PREFIX)
|
||||
app.include_router(clinical_payment_router, prefix=settings.API_V1_PREFIX)
|
||||
|
||||
|
||||
def _mask_secret(value: str) -> str:
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
"""临床应用缴费记录模型"""
|
||||
from sqlalchemy import Column, String, Text, SmallInteger, Numeric, DateTime
|
||||
from sqlalchemy.sql import func
|
||||
from app.models.base import Base
|
||||
|
||||
|
||||
class BizPilotPayment(Base):
|
||||
"""临床应用缴费记录 biz_pilot_payment"""
|
||||
|
||||
__tablename__ = "biz_pilot_payment"
|
||||
|
||||
id = Column(String(64), primary_key=True, comment="主键ID")
|
||||
pilot_application_id = Column(String(64), nullable=False, comment="临床申请单ID")
|
||||
infusion_schedule_id = Column(String(64), nullable=False, comment="输注计划ID")
|
||||
biz_type = Column(String(20), nullable=False, default="clinical_application", comment="业务类型")
|
||||
amount = Column(Numeric(18, 2), nullable=False, comment="缴费金额")
|
||||
transfer_type = Column(String(16), nullable=True, comment="转账方式: wxzz/zzfbzz/yhkzz/xj")
|
||||
transfer_amount = Column(Numeric(18, 2), nullable=True, comment="实际转账金额")
|
||||
transfer_time = Column(DateTime, nullable=True, comment="转账时间")
|
||||
transfer_attachments = Column(Text, nullable=True, comment="转账凭证附件")
|
||||
pay_status = Column(String(32), nullable=False, default="dfj", comment="缴费状态: dfj/jfqrz/yjf/tfqrz/ytf")
|
||||
finance_confirm_attachments = Column(Text, nullable=True, comment="财务确认收款附件")
|
||||
finance_remark = Column(String(512), nullable=True, comment="财务确认收款备注")
|
||||
finance_confirm_time = Column(DateTime, nullable=True, comment="财务确认收款时间")
|
||||
refund_amount = Column(Numeric(18, 2), nullable=True, comment="退费金额")
|
||||
refund_remark = Column(String(512), nullable=True, comment="退费备注")
|
||||
refund_attachments = Column(Text, nullable=True, comment="退费附件")
|
||||
refund_apply_by = Column(String(64), nullable=True, comment="退费申请人ID")
|
||||
refund_apply_time = Column(DateTime, nullable=True, comment="退费申请时间")
|
||||
refund_finance_confirm_attachments = Column(Text, nullable=True, comment="退费财务确认附件")
|
||||
refund_finance_remark = Column(String(512), nullable=True, comment="退费财务确认备注")
|
||||
refund_finance_confirm_time = Column(DateTime, nullable=True, comment="退费财务确认时间")
|
||||
tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
|
||||
order_num = Column(SmallInteger, nullable=True, comment="排序号")
|
||||
remark = Column(String(512), nullable=True, comment="备注")
|
||||
create_by = Column(String(64), nullable=True, comment="创建人id")
|
||||
create_dept_id = Column(String(64), nullable=False, default="", comment="创建人部门ID")
|
||||
create_time = Column(DateTime, nullable=False, server_default=func.now(), comment="创建时间")
|
||||
update_by = Column(String(64), nullable=True, comment="更新人id")
|
||||
update_time = Column(DateTime, nullable=False, server_default=func.now(), onupdate=func.now(), comment="更新时间")
|
||||
del_flag = Column(SmallInteger, nullable=False, default=0, comment="删除标记")
|
||||
@@ -2826,6 +2826,7 @@ class BizPilotApplication(Base):
|
||||
channel_service_order_id = Column(String(64), nullable=False, comment="渠道服务购买订单ID")
|
||||
channel_id = Column(String(64), nullable=True, comment="渠道ID(缓存自服务订单)")
|
||||
channel_name = Column(String(200), nullable=True, comment="渠道名称(缓存)")
|
||||
biz_type = Column(String(20), nullable=False, default="pilot_service", comment="业务类型: pilot_service=中试服务, clinical_application=临床应用")
|
||||
tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
|
||||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||||
remark = Column(String(512), nullable=True, comment="备注")
|
||||
@@ -2907,6 +2908,7 @@ class BizPilotInfusionSchedule(Base):
|
||||
infusion_status = Column(String(16), nullable=False, default="dtz", comment="dtz待输注 yrqr已用户确认 yqx已取消 ywc已完成")
|
||||
cancel_reason = Column(String(512), nullable=True, default=None, comment="取消原因")
|
||||
qc_status = Column(String(16), nullable=False, default="dzc", comment="dzc待质检 yzj已质检 yqx已取消")
|
||||
amount = Column(Numeric(18, 2), nullable=True, comment="临床应用-手动填写的输注金额(中试为NULL)")
|
||||
attachments = Column(String(4000), nullable=True, comment="附件逗号分隔")
|
||||
tenant_no = Column(String(64), nullable=False, default="zkxw", comment="租户编号")
|
||||
order_num = Column(Integer, nullable=True, comment="排序号")
|
||||
@@ -3251,3 +3253,4 @@ class BizOutboundReleaseReview(Base):
|
||||
from app.models.qc_param import BizQcItemParam, BizQcTaskResult # noqa: E402,F401
|
||||
from app.models.qc_material import BizQcMaterial, BizQcMaterialUsage # noqa: E402,F401
|
||||
from app.models.material import BizMaterial, BizMaterialStockLog # noqa: E402,F401
|
||||
from app.models.clinical_payment import BizPilotPayment # noqa: E402,F401
|
||||
@@ -0,0 +1,245 @@
|
||||
#!/usr/bin/env python3
|
||||
"""重排 Web 端一级菜单顺序,并生成 sys_menu 初始化 SQL。"""
|
||||
from __future__ import annotations
|
||||
|
||||
import ast
|
||||
import re
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
MENU_PY = ROOT / "backend/app/api/menu.py"
|
||||
SQXP_TS = ROOT / "web-admin/src/router/modules/sqxp.ts"
|
||||
SQL_OUT = ROOT / "docs/sql/sys_menu_web_init.sql"
|
||||
|
||||
BLOCK_ORDER = [2, 3, 4, 5, 7, 9, 10, 1, 6, 8, 11, 12, 13]
|
||||
|
||||
BLOCK_TITLES = {
|
||||
1: "市场基础信息",
|
||||
2: "细胞存储",
|
||||
3: "科研捐赠",
|
||||
4: "中试服务",
|
||||
5: "临床应用",
|
||||
6: "质检基础信息",
|
||||
7: "质检管理",
|
||||
8: "生产基础信息",
|
||||
9: "生产管理",
|
||||
10: "运营支撑",
|
||||
11: "系统基础信息",
|
||||
12: "工作流管理",
|
||||
13: "系统管理",
|
||||
}
|
||||
|
||||
SQXP_HEADER = """import type { AppRouteRecord } from '@/types/router'
|
||||
|
||||
/**
|
||||
* 前端路由(13 个一级菜单:细胞存储、科研捐赠、中试服务、临床应用、
|
||||
* 质检管理、生产管理、运营支撑、市场基础信息、质检基础信息、生产基础信息、
|
||||
* 系统基础信息、工作流管理、系统管理)
|
||||
* 与后端菜单对齐时请同步 `backend/app/api/menu.py`。
|
||||
*/
|
||||
export const sqxpAdminRoutes: AppRouteRecord[] = [
|
||||
"""
|
||||
|
||||
MENU_TAIL = (
|
||||
"\n]\n\n\n"
|
||||
'@router.get("/list")\n'
|
||||
"async def get_menu_list(_user: dict = Depends(require_admin_or_super_admin)):\n"
|
||||
' """获取菜单列表(与当前前端路由一致)"""\n'
|
||||
' return success_response({"menuList": STATIC_MENU_TREE})\n'
|
||||
)
|
||||
|
||||
BLOCK_RE_TS = re.compile(
|
||||
r" // ──+\n // (\d+)\. ([^\n]+)\n // ──+\n",
|
||||
re.MULTILINE,
|
||||
)
|
||||
BLOCK_RE_PY = re.compile(
|
||||
r" # ──+\n # (\d+)\. ([^\n]+)\n # ──+\n",
|
||||
re.MULTILINE,
|
||||
)
|
||||
|
||||
|
||||
def split_menu_blocks(
|
||||
content: str, array_start_marker: str, block_re: re.Pattern
|
||||
) -> tuple[str, dict[int, str]]:
|
||||
start = content.index(array_start_marker) + len(array_start_marker)
|
||||
depth = 1
|
||||
i = start
|
||||
while i < len(content) and depth > 0:
|
||||
if content[i] == "[":
|
||||
depth += 1
|
||||
elif content[i] == "]":
|
||||
depth -= 1
|
||||
i += 1
|
||||
array_body = content[start : i - 1]
|
||||
prefix = content[:start]
|
||||
|
||||
parts = block_re.split(array_body)
|
||||
blocks: dict[int, str] = {}
|
||||
idx = 1
|
||||
while idx < len(parts):
|
||||
num = int(parts[idx])
|
||||
block = parts[idx + 2].rstrip()
|
||||
if block.endswith(","):
|
||||
block = block[:-1]
|
||||
blocks[num] = block.rstrip()
|
||||
idx += 3
|
||||
return prefix, blocks
|
||||
|
||||
|
||||
def reorder_blocks(blocks: dict[int, str]) -> list[tuple[int, str, str]]:
|
||||
ordered = []
|
||||
for new_idx, old_num in enumerate(BLOCK_ORDER, start=1):
|
||||
ordered.append((new_idx, BLOCK_TITLES[old_num], blocks[old_num]))
|
||||
return ordered
|
||||
|
||||
|
||||
def assemble_blocks(ordered: list[tuple[int, str, str]], *, ts: bool) -> str:
|
||||
chunks = []
|
||||
for num, title, body in ordered:
|
||||
if ts:
|
||||
sep = " // " + "─" * 46
|
||||
chunks.append(f"{sep}\n // {num}. {title}\n{sep}\n{body}")
|
||||
else:
|
||||
sep = " # " + "─" * 44
|
||||
chunks.append(f"{sep}\n # {num}. {title}\n{sep}\n{body}")
|
||||
return ",\n\n".join(chunks) + "\n"
|
||||
|
||||
|
||||
def load_static_menu_tree() -> list:
|
||||
content = MENU_PY.read_text(encoding="utf-8")
|
||||
marker = "STATIC_MENU_TREE = "
|
||||
start = content.index(marker) + len(marker)
|
||||
depth = 0
|
||||
i = start
|
||||
while i < len(content):
|
||||
ch = content[i]
|
||||
if ch == "[":
|
||||
depth += 1
|
||||
elif ch == "]":
|
||||
depth -= 1
|
||||
if depth == 0:
|
||||
i += 1
|
||||
break
|
||||
i += 1
|
||||
literal = content[start:i]
|
||||
return ast.literal_eval(literal)
|
||||
|
||||
|
||||
def sql_escape(val: str | None) -> str:
|
||||
if val is None:
|
||||
return "NULL"
|
||||
return "'" + str(val).replace("'", "''") + "'"
|
||||
|
||||
|
||||
def walk_routes(nodes: list, parent_id: str, order_counter: dict, rows: list) -> None:
|
||||
for node in nodes:
|
||||
node_id = node["id"]
|
||||
meta = node.get("meta") or {}
|
||||
title = meta.get("title") or node.get("name") or ""
|
||||
path = node.get("path") or ""
|
||||
component = node.get("component") or ""
|
||||
children = node.get("children") or []
|
||||
is_hide = meta.get("isHide") is True
|
||||
menu_code = meta.get("menuCode")
|
||||
perms = menu_code if menu_code else None
|
||||
|
||||
if parent_id == "2":
|
||||
order_counter["web"] += 1
|
||||
order_num = order_counter["web"]
|
||||
else:
|
||||
order_counter.setdefault(parent_id, 0)
|
||||
order_counter[parent_id] += 1
|
||||
order_num = order_counter[parent_id]
|
||||
|
||||
menu_type = "M" if children else "C"
|
||||
visible = "0" if is_hide else "1"
|
||||
|
||||
rows.append(
|
||||
(
|
||||
node_id,
|
||||
title,
|
||||
parent_id,
|
||||
menu_type,
|
||||
path,
|
||||
component or None,
|
||||
perms,
|
||||
visible,
|
||||
order_num,
|
||||
)
|
||||
)
|
||||
|
||||
if children:
|
||||
walk_routes(children, node_id, order_counter, rows)
|
||||
|
||||
|
||||
def generate_sql(tree: list) -> str:
|
||||
rows: list = []
|
||||
order_counter: dict = {"web": 0}
|
||||
walk_routes(tree, "2", order_counter, rows)
|
||||
|
||||
lines = [
|
||||
"-- Web 端 sys_menu 初始化(根节点 + 13 个一级业务菜单及子菜单)",
|
||||
"-- 生成:backend/scripts/reorder_web_menus.py",
|
||||
"-- 一级顺序:细胞存储 → 科研捐赠 → 中试服务 → 临床应用 → 质检管理 → 生产管理",
|
||||
"-- → 运营支撑 → 市场基础信息 → 质检基础信息 → 生产基础信息",
|
||||
"-- → 系统基础信息 → 工作流管理 → 系统管理",
|
||||
"",
|
||||
"SET NAMES utf8mb4;",
|
||||
"",
|
||||
"INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES",
|
||||
"('1', '移动端菜单', '0', 'M', '/mini', NULL, NULL, 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),",
|
||||
"('2', 'Web端菜单', '0', 'M', '/web', NULL, NULL, 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0);",
|
||||
"",
|
||||
"INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES",
|
||||
]
|
||||
|
||||
value_lines = []
|
||||
for row in rows:
|
||||
(
|
||||
node_id,
|
||||
title,
|
||||
parent_id,
|
||||
menu_type,
|
||||
path,
|
||||
component,
|
||||
perms,
|
||||
visible,
|
||||
order_num,
|
||||
) = row
|
||||
value_lines.append(
|
||||
f"({sql_escape(node_id)}, {sql_escape(title)}, {sql_escape(parent_id)}, "
|
||||
f"{sql_escape(menu_type)}, {sql_escape(path)}, {sql_escape(component)}, "
|
||||
f"{sql_escape(perms)}, 1, {sql_escape(visible)}, '1', 'zkxw', {order_num}, "
|
||||
f"NULL, NULL, '', NOW(), NULL, NOW(), 0)"
|
||||
)
|
||||
|
||||
lines.append(",\n".join(value_lines) + ";")
|
||||
lines.append("")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
menu_content = MENU_PY.read_text(encoding="utf-8")
|
||||
pre, blocks = split_menu_blocks(menu_content, "STATIC_MENU_TREE = [\n", BLOCK_RE_PY)
|
||||
body = assemble_blocks(reorder_blocks(blocks), ts=False)
|
||||
MENU_PY.write_text(pre + body + MENU_TAIL, encoding="utf-8")
|
||||
print(f"updated {MENU_PY.relative_to(ROOT)}")
|
||||
|
||||
ts_content = SQXP_TS.read_text(encoding="utf-8")
|
||||
_, blocks_ts = split_menu_blocks(
|
||||
ts_content, "export const sqxpAdminRoutes: AppRouteRecord[] = [\n", BLOCK_RE_TS
|
||||
)
|
||||
body_ts = assemble_blocks(reorder_blocks(blocks_ts), ts=True)
|
||||
SQXP_TS.write_text(SQXP_HEADER + body_ts + "]\n", encoding="utf-8")
|
||||
print(f"updated {SQXP_TS.relative_to(ROOT)}")
|
||||
|
||||
tree = load_static_menu_tree()
|
||||
sql = generate_sql(tree)
|
||||
SQL_OUT.write_text(sql, encoding="utf-8")
|
||||
row_count = sql.count("('") - 2 # minus root inserts
|
||||
print(f"wrote {SQL_OUT.relative_to(ROOT)} (~{row_count} menu rows, {len(tree)} top-level menus)")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,953 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>方案 B · 耗材管理融合页 UI Demo</title>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap"
|
||||
rel="stylesheet"
|
||||
/>
|
||||
<style>
|
||||
:root {
|
||||
--primary: #10b981;
|
||||
--primary-dark: #059669;
|
||||
--primary-bg: #ecfdf5;
|
||||
--text: #1e293b;
|
||||
--text-muted: #64748b;
|
||||
--border: #d9e8e2;
|
||||
--bg-page: #f8fafc;
|
||||
--surface: #ffffff;
|
||||
--table-head: #f8fafc;
|
||||
--row-alt: #fafafa;
|
||||
--row-hover: #f1f5f9;
|
||||
--shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
|
||||
--radius: 10px;
|
||||
--sidebar-w: 220px;
|
||||
--header-h: 56px;
|
||||
--danger: #ef4444;
|
||||
--danger-bg: #fef2f2;
|
||||
--warning: #d97706;
|
||||
--warning-bg: #fffbeb;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
color: var(--text);
|
||||
background: var(--bg-page);
|
||||
}
|
||||
|
||||
.layout {
|
||||
display: flex;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.sidebar {
|
||||
width: var(--sidebar-w);
|
||||
flex-shrink: 0;
|
||||
background: var(--surface);
|
||||
border-right: 1px solid var(--border);
|
||||
padding: 20px 14px;
|
||||
}
|
||||
|
||||
.logo {
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
padding: 0 8px 16px;
|
||||
margin-bottom: 8px;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.logo span {
|
||||
color: var(--primary);
|
||||
}
|
||||
|
||||
.nav-item {
|
||||
display: block;
|
||||
padding: 8px 12px;
|
||||
border-radius: 8px;
|
||||
color: var(--text-muted);
|
||||
font-size: 13px;
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
|
||||
.nav-item.is-active {
|
||||
background: var(--primary-bg);
|
||||
color: var(--primary-dark);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.nav-group {
|
||||
font-size: 11px;
|
||||
font-weight: 700;
|
||||
color: var(--text-muted);
|
||||
padding: 12px 12px 6px;
|
||||
letter-spacing: 0.02em;
|
||||
}
|
||||
|
||||
.main {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.topbar {
|
||||
height: var(--header-h);
|
||||
background: var(--surface);
|
||||
border-bottom: 1px solid var(--border);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 24px;
|
||||
font-size: 13px;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.topbar strong {
|
||||
color: var(--text);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.content {
|
||||
flex: 1;
|
||||
padding: 24px;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.demo-banner {
|
||||
background: linear-gradient(90deg, #ecfdf5, #f0fdf4);
|
||||
border: 1px solid rgba(16, 185, 129, 0.25);
|
||||
border-radius: var(--radius);
|
||||
padding: 12px 16px;
|
||||
margin-bottom: 16px;
|
||||
font-size: 13px;
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.demo-banner strong {
|
||||
color: var(--primary-dark);
|
||||
}
|
||||
|
||||
.demo-banner code {
|
||||
background: rgba(255, 255, 255, 0.7);
|
||||
padding: 1px 6px;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.panel {
|
||||
background: var(--surface);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: var(--radius);
|
||||
box-shadow: var(--shadow);
|
||||
}
|
||||
|
||||
.panel-top {
|
||||
padding: 10px 16px;
|
||||
border-bottom: 1px solid var(--border);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.panel-top h2 {
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.panel-top h2::before {
|
||||
content: '';
|
||||
width: 4px;
|
||||
height: 14px;
|
||||
border-radius: 999px;
|
||||
background: var(--primary);
|
||||
}
|
||||
|
||||
.panel-top .badge-demo {
|
||||
font-size: 11px;
|
||||
font-weight: 600;
|
||||
color: var(--primary-dark);
|
||||
background: var(--primary-bg);
|
||||
border: 1px solid rgba(16, 185, 129, 0.2);
|
||||
padding: 2px 8px;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
/* 一级 Tab:实体类型 */
|
||||
.tabs-l1 {
|
||||
display: flex;
|
||||
gap: 0;
|
||||
padding: 0 16px;
|
||||
border-bottom: 1px solid var(--border);
|
||||
background: var(--surface);
|
||||
}
|
||||
|
||||
.tabs-l1 button {
|
||||
appearance: none;
|
||||
border: none;
|
||||
background: transparent;
|
||||
font-family: inherit;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: var(--text-muted);
|
||||
padding: 12px 20px;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
margin-bottom: -1px;
|
||||
}
|
||||
|
||||
.tabs-l1 button:hover {
|
||||
color: var(--primary-dark);
|
||||
}
|
||||
|
||||
.tabs-l1 button.is-active {
|
||||
color: var(--primary-dark);
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.tabs-l1 button.is-active::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
height: 2px;
|
||||
background: var(--primary);
|
||||
border-radius: 2px 2px 0 0;
|
||||
}
|
||||
|
||||
/* 二级 Tab:仅「耗材」下 */
|
||||
.sub-tabs-wrap {
|
||||
padding: 12px 16px 0;
|
||||
background: var(--surface);
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.sub-tabs-wrap[hidden] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.sub-tabs-label {
|
||||
font-size: 11px;
|
||||
color: var(--text-muted);
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.tabs-l2 {
|
||||
display: inline-flex;
|
||||
gap: 4px;
|
||||
padding: 3px;
|
||||
background: var(--table-head);
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 8px;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.tabs-l2 button {
|
||||
appearance: none;
|
||||
border: none;
|
||||
background: transparent;
|
||||
font-family: inherit;
|
||||
font-size: 13px;
|
||||
font-weight: 500;
|
||||
color: var(--text-muted);
|
||||
padding: 6px 14px;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabs-l2 button:hover {
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.tabs-l2 button.is-active {
|
||||
background: var(--surface);
|
||||
color: var(--primary-dark);
|
||||
font-weight: 600;
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
.tab-panel {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.tab-panel.is-active {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.filter-block {
|
||||
padding: 12px 16px 10px;
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.filter-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
gap: 10px 14px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
@media (max-width: 1100px) {
|
||||
.filter-grid {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
|
||||
.filter-field label {
|
||||
display: block;
|
||||
font-size: 11px;
|
||||
font-weight: 500;
|
||||
color: var(--text-muted);
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.input,
|
||||
.select {
|
||||
width: 100%;
|
||||
height: 36px;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 8px;
|
||||
padding: 0 10px;
|
||||
font-size: 14px;
|
||||
font-family: inherit;
|
||||
color: var(--text);
|
||||
background: var(--surface);
|
||||
}
|
||||
|
||||
.input:focus,
|
||||
.select:focus {
|
||||
outline: none;
|
||||
border-color: var(--primary);
|
||||
box-shadow: 0 0 0 2px rgba(16, 185, 129, 0.2);
|
||||
}
|
||||
|
||||
.filter-actions-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: 12px;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.filter-hint {
|
||||
font-size: 12px;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.filter-actions-end {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.btn {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
height: 36px;
|
||||
padding: 0 14px;
|
||||
border-radius: 8px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
font-family: inherit;
|
||||
cursor: pointer;
|
||||
border: 1px solid var(--border);
|
||||
background: var(--surface);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
background: var(--row-alt);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background: var(--primary);
|
||||
border-color: var(--primary);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background: var(--primary-dark);
|
||||
border-color: var(--primary-dark);
|
||||
}
|
||||
|
||||
.btn-danger {
|
||||
color: var(--danger);
|
||||
border-color: #fecaca;
|
||||
}
|
||||
|
||||
.btn-danger:hover {
|
||||
background: var(--danger-bg);
|
||||
}
|
||||
|
||||
.btn:disabled {
|
||||
opacity: 0.45;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.list-toolbar {
|
||||
padding: 10px 16px;
|
||||
background: var(--table-head);
|
||||
border-bottom: 1px solid var(--border);
|
||||
}
|
||||
|
||||
.list-toolbar-row {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.list-toolbar-selected {
|
||||
font-size: 13px;
|
||||
color: var(--text-muted);
|
||||
margin-right: 4px;
|
||||
}
|
||||
|
||||
.sel-num {
|
||||
color: var(--primary-dark);
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.list-body {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.table-wrap {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
table.list-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
table.list-table th,
|
||||
table.list-table td {
|
||||
padding: 10px 12px;
|
||||
text-align: center;
|
||||
border-bottom: 1px solid var(--border);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
table.list-table th {
|
||||
background: var(--table-head);
|
||||
color: var(--text-muted);
|
||||
font-weight: 600;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
table.list-table tbody tr:nth-child(even) {
|
||||
background: var(--row-alt);
|
||||
}
|
||||
|
||||
table.list-table tbody tr:hover {
|
||||
background: var(--row-hover);
|
||||
}
|
||||
|
||||
.tag {
|
||||
display: inline-block;
|
||||
padding: 2px 8px;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.tag.success {
|
||||
background: var(--primary-bg);
|
||||
color: var(--primary-dark);
|
||||
}
|
||||
|
||||
.tag.danger {
|
||||
background: var(--danger-bg);
|
||||
color: var(--danger);
|
||||
}
|
||||
|
||||
.tag.warning {
|
||||
background: var(--warning-bg);
|
||||
color: var(--warning);
|
||||
}
|
||||
|
||||
.tag.info {
|
||||
background: #f1f5f9;
|
||||
color: #64748b;
|
||||
}
|
||||
|
||||
.tag.primary {
|
||||
background: #eff6ff;
|
||||
color: #2563eb;
|
||||
}
|
||||
|
||||
.btn-op {
|
||||
height: 28px;
|
||||
padding: 0 8px;
|
||||
font-size: 12px;
|
||||
border-radius: 6px;
|
||||
border: 1px solid var(--border);
|
||||
background: var(--surface);
|
||||
cursor: pointer;
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.btn-op:hover {
|
||||
border-color: var(--primary);
|
||||
color: var(--primary-dark);
|
||||
}
|
||||
|
||||
.pagination {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
gap: 12px;
|
||||
padding: 12px 16px;
|
||||
border-top: 1px solid var(--border);
|
||||
font-size: 13px;
|
||||
color: var(--text-muted);
|
||||
}
|
||||
|
||||
.pager-btns {
|
||||
display: flex;
|
||||
gap: 4px;
|
||||
}
|
||||
|
||||
.pager-btns button {
|
||||
min-width: 32px;
|
||||
height: 32px;
|
||||
border: 1px solid var(--border);
|
||||
background: var(--surface);
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
.pager-btns button.is-active {
|
||||
background: var(--primary);
|
||||
border-color: var(--primary);
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.structure-hint {
|
||||
margin: 16px;
|
||||
padding: 12px 14px;
|
||||
background: #f8fafc;
|
||||
border: 1px dashed var(--border);
|
||||
border-radius: 8px;
|
||||
font-size: 12px;
|
||||
color: var(--text-muted);
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
.structure-hint b {
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.ic {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
display: inline-block;
|
||||
vertical-align: -2px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layout">
|
||||
<aside class="sidebar">
|
||||
<div class="logo">中科兴皖 <span>管理端</span></div>
|
||||
<div class="nav-group">生产管理</div>
|
||||
<div class="nav-item">工艺管理</div>
|
||||
<div class="nav-item is-active">耗材管理</div>
|
||||
<div class="nav-item" style="opacity: 0.45; text-decoration: line-through">耗材包管理</div>
|
||||
<div class="nav-item">试剂管理</div>
|
||||
<div class="nav-item">生产工单</div>
|
||||
</aside>
|
||||
|
||||
<div class="main">
|
||||
<header class="topbar">
|
||||
生产管理 / <strong>耗材管理</strong>
|
||||
<span style="margin-left: auto; font-size: 12px">方案 B 静态 Demo · 非真实数据</span>
|
||||
</header>
|
||||
|
||||
<main class="content">
|
||||
<div class="demo-banner">
|
||||
<strong>方案 B:两级 Tab</strong> — 一级区分「耗材 / 耗材包」;仅在「耗材」下出现二级 Tab「耗材列表 /
|
||||
变动记录」。侧栏合并后仅保留一个菜单「耗材管理」(灰线划掉的为将移除的菜单项示意)。
|
||||
用浏览器直接打开本文件即可预览,路径:<code>docs/demos/consumable-merge-plan-b-demo.html</code>
|
||||
</div>
|
||||
|
||||
<section class="panel" id="main-panel">
|
||||
<div class="panel-top">
|
||||
<h2>耗材管理</h2>
|
||||
<span class="badge-demo">融合页 · 方案 B</span>
|
||||
</div>
|
||||
|
||||
<!-- 一级 Tab -->
|
||||
<div class="tabs-l1" role="tablist" aria-label="实体类型">
|
||||
<button type="button" class="is-active" data-l1="consumable" role="tab" aria-selected="true">
|
||||
耗材
|
||||
</button>
|
||||
<button type="button" data-l1="pack" role="tab" aria-selected="false">耗材包</button>
|
||||
</div>
|
||||
|
||||
<!-- 二级 Tab(仅耗材) -->
|
||||
<div class="sub-tabs-wrap" id="sub-tabs-wrap">
|
||||
<div class="sub-tabs-label">耗材视图</div>
|
||||
<div class="tabs-l2" role="tablist" aria-label="耗材子视图">
|
||||
<button type="button" class="is-active" data-l2="list" role="tab">耗材列表</button>
|
||||
<button type="button" data-l2="logs" role="tab">变动记录</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="structure-hint" id="structure-hint">
|
||||
当前结构:<b>一级「耗材」</b> → <b>二级「耗材列表」</b>(筛选 + 工具栏 + 表格 + 分页)
|
||||
</div>
|
||||
|
||||
<!-- ========== 耗材 · 列表 ========== -->
|
||||
<div class="tab-panel is-active" id="panel-consumable-list">
|
||||
<div class="filter-block">
|
||||
<div class="filter-grid">
|
||||
<div class="filter-field">
|
||||
<label>关键词</label>
|
||||
<input class="input" placeholder="耗材编码/名称" />
|
||||
</div>
|
||||
<div class="filter-field">
|
||||
<label>状态</label>
|
||||
<select class="select">
|
||||
<option>全部</option>
|
||||
<option>启用</option>
|
||||
<option>停用</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="filter-actions-row">
|
||||
<span class="filter-hint">按编码、名称模糊查询,可按状态筛选。</span>
|
||||
<div class="filter-actions-end">
|
||||
<button type="button" class="btn">重置</button>
|
||||
<button type="button" class="btn btn-primary">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-toolbar">
|
||||
<div class="list-toolbar-row">
|
||||
<span class="list-toolbar-selected">已选 <span class="sel-num">0</span> 项</span>
|
||||
<button type="button" class="btn btn-primary">新增耗材</button>
|
||||
<button type="button" class="btn">批量入库</button>
|
||||
<button type="button" class="btn">批量出库</button>
|
||||
<button type="button" class="btn btn-danger" disabled>批量删除</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-body">
|
||||
<div class="table-wrap">
|
||||
<table class="list-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" /></th>
|
||||
<th>序号</th>
|
||||
<th>耗材编码</th>
|
||||
<th>耗材名称</th>
|
||||
<th>规格型号</th>
|
||||
<th>当前库存</th>
|
||||
<th>库存状态</th>
|
||||
<th>状态</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><input type="checkbox" /></td>
|
||||
<td>1</td>
|
||||
<td>HC-2024-001</td>
|
||||
<td>细胞培养瓶 25cm²</td>
|
||||
<td>25cm²</td>
|
||||
<td>128</td>
|
||||
<td><span class="tag success">正常</span></td>
|
||||
<td><span class="tag success">启用</span></td>
|
||||
<td>
|
||||
<button class="btn-op">入库</button>
|
||||
<button class="btn-op">出库</button>
|
||||
<button class="btn-op">更多</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="checkbox" /></td>
|
||||
<td>2</td>
|
||||
<td>HC-2024-018</td>
|
||||
<td>无菌离心管 15mL</td>
|
||||
<td>15mL</td>
|
||||
<td>12</td>
|
||||
<td><span class="tag danger">库存预警</span></td>
|
||||
<td><span class="tag success">启用</span></td>
|
||||
<td>
|
||||
<button class="btn-op">入库</button>
|
||||
<button class="btn-op">出库</button>
|
||||
<button class="btn-op">更多</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="checkbox" /></td>
|
||||
<td>3</td>
|
||||
<td>HC-2023-092</td>
|
||||
<td>胰酶-EDTA 0.25%</td>
|
||||
<td>100mL</td>
|
||||
<td>45</td>
|
||||
<td><span class="tag success">正常</span></td>
|
||||
<td><span class="tag info">停用</span></td>
|
||||
<td>
|
||||
<button class="btn-op">入库</button>
|
||||
<button class="btn-op">出库</button>
|
||||
<button class="btn-op">更多</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span>共 86 条</span>
|
||||
<div class="pager-btns">
|
||||
<button type="button">‹</button>
|
||||
<button type="button" class="is-active">1</button>
|
||||
<button type="button">2</button>
|
||||
<button type="button">›</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ========== 耗材 · 变动记录 ========== -->
|
||||
<div class="tab-panel" id="panel-consumable-logs">
|
||||
<div class="filter-block">
|
||||
<div class="filter-grid">
|
||||
<div class="filter-field">
|
||||
<label>关键词</label>
|
||||
<input class="input" placeholder="耗材编码/名称" />
|
||||
</div>
|
||||
<div class="filter-field">
|
||||
<label>变动类型</label>
|
||||
<select class="select">
|
||||
<option>全部</option>
|
||||
<option>入库</option>
|
||||
<option>出库</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-field">
|
||||
<label>时间范围</label>
|
||||
<input class="input" placeholder="开始 — 结束" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="filter-actions-row">
|
||||
<span class="filter-hint">按耗材编码/名称、变动类型和时间范围查询变动记录。</span>
|
||||
<div class="filter-actions-end">
|
||||
<button type="button" class="btn">重置</button>
|
||||
<button type="button" class="btn btn-primary">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-body">
|
||||
<div class="table-wrap">
|
||||
<table class="list-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>序号</th>
|
||||
<th>耗材编码</th>
|
||||
<th>耗材名称</th>
|
||||
<th>变动类型</th>
|
||||
<th>变动数量</th>
|
||||
<th>变动后库存</th>
|
||||
<th>操作人</th>
|
||||
<th>变动时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>HC-2024-001</td>
|
||||
<td>细胞培养瓶 25cm²</td>
|
||||
<td><span class="tag success">入库</span></td>
|
||||
<td>+50</td>
|
||||
<td>128</td>
|
||||
<td>张三</td>
|
||||
<td>2026-05-26 14:32</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>HC-2024-018</td>
|
||||
<td>无菌离心管 15mL</td>
|
||||
<td><span class="tag warning">出库</span></td>
|
||||
<td>-20</td>
|
||||
<td>12</td>
|
||||
<td>李四</td>
|
||||
<td>2026-05-25 09:15</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span>共 312 条</span>
|
||||
<div class="pager-btns">
|
||||
<button type="button">‹</button>
|
||||
<button type="button" class="is-active">1</button>
|
||||
<button type="button">2</button>
|
||||
<button type="button">›</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- ========== 耗材包(无二级 Tab) ========== -->
|
||||
<div class="tab-panel" id="panel-pack-list">
|
||||
<div class="filter-block">
|
||||
<div class="filter-grid">
|
||||
<div class="filter-field">
|
||||
<label>关键词</label>
|
||||
<input class="input" placeholder="编号/名称" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="filter-actions-row">
|
||||
<span class="filter-hint">按编号、名称模糊查询。</span>
|
||||
<div class="filter-actions-end">
|
||||
<button type="button" class="btn">重置</button>
|
||||
<button type="button" class="btn btn-primary">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-toolbar">
|
||||
<div class="list-toolbar-row">
|
||||
<span class="list-toolbar-selected">已选 <span class="sel-num">0</span> 项</span>
|
||||
<button type="button" class="btn btn-primary">新增耗材包</button>
|
||||
<button type="button" class="btn btn-danger" disabled>批量删除</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-body">
|
||||
<div class="table-wrap">
|
||||
<table class="list-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><input type="checkbox" /></th>
|
||||
<th>序号</th>
|
||||
<th>编号</th>
|
||||
<th>名称</th>
|
||||
<th>使用场景</th>
|
||||
<th>类型</th>
|
||||
<th>状态</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><input type="checkbox" /></td>
|
||||
<td>1</td>
|
||||
<td>PK-STD-01</td>
|
||||
<td>标准细胞制备包</td>
|
||||
<td>间充质干细胞制备</td>
|
||||
<td><span class="tag primary">标准耗材包</span></td>
|
||||
<td><span class="tag success">启用</span></td>
|
||||
<td>
|
||||
<button class="btn-op">查看</button>
|
||||
<button class="btn-op">编辑</button>
|
||||
<button class="btn-op">删除</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="checkbox" /></td>
|
||||
<td>2</td>
|
||||
<td>PK-CUS-12</td>
|
||||
<td>质检取样专用包</td>
|
||||
<td>质检取样</td>
|
||||
<td><span class="tag warning">自定义耗材包</span></td>
|
||||
<td><span class="tag success">启用</span></td>
|
||||
<td>
|
||||
<button class="btn-op">查看</button>
|
||||
<button class="btn-op">编辑</button>
|
||||
<button class="btn-op">删除</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<span>共 24 条</span>
|
||||
<div class="pager-btns">
|
||||
<button type="button">‹</button>
|
||||
<button type="button" class="is-active">1</button>
|
||||
<button type="button">›</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
;(function () {
|
||||
const l1Buttons = document.querySelectorAll('.tabs-l1 button')
|
||||
const l2Buttons = document.querySelectorAll('.tabs-l2 button')
|
||||
const subTabsWrap = document.getElementById('sub-tabs-wrap')
|
||||
const structureHint = document.getElementById('structure-hint')
|
||||
const panels = {
|
||||
'consumable-list': document.getElementById('panel-consumable-list'),
|
||||
'consumable-logs': document.getElementById('panel-consumable-logs'),
|
||||
'pack-list': document.getElementById('panel-pack-list')
|
||||
}
|
||||
|
||||
let l1 = 'consumable'
|
||||
let l2 = 'list'
|
||||
|
||||
function updatePanels() {
|
||||
Object.values(panels).forEach((p) => p.classList.remove('is-active'))
|
||||
|
||||
if (l1 === 'consumable') {
|
||||
subTabsWrap.hidden = false
|
||||
const key = l2 === 'logs' ? 'consumable-logs' : 'consumable-list'
|
||||
panels[key].classList.add('is-active')
|
||||
structureHint.innerHTML =
|
||||
l2 === 'logs'
|
||||
? '当前结构:<b>一级「耗材」</b> → <b>二级「变动记录」</b>(无批量入库/出库,仅查询日志)'
|
||||
: '当前结构:<b>一级「耗材」</b> → <b>二级「耗材列表」</b>(筛选 + 工具栏 + 表格 + 分页)'
|
||||
} else {
|
||||
subTabsWrap.hidden = true
|
||||
panels['pack-list'].classList.add('is-active')
|
||||
structureHint.innerHTML =
|
||||
'当前结构:<b>一级「耗材包」</b>(无二级 Tab,直接进入包列表 CRUD)'
|
||||
}
|
||||
}
|
||||
|
||||
l1Buttons.forEach((btn) => {
|
||||
btn.addEventListener('click', () => {
|
||||
l1 = btn.dataset.l1
|
||||
l1Buttons.forEach((b) => {
|
||||
b.classList.toggle('is-active', b === btn)
|
||||
b.setAttribute('aria-selected', b === btn ? 'true' : 'false')
|
||||
})
|
||||
updatePanels()
|
||||
})
|
||||
})
|
||||
|
||||
l2Buttons.forEach((btn) => {
|
||||
btn.addEventListener('click', () => {
|
||||
l2 = btn.dataset.l2
|
||||
l2Buttons.forEach((b) => {
|
||||
b.classList.toggle('is-active', b === btn)
|
||||
})
|
||||
updatePanels()
|
||||
})
|
||||
})
|
||||
|
||||
updatePanels()
|
||||
})()
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,112 @@
|
||||
-- Web 端 sys_menu 初始化(根节点 + 13 个一级业务菜单及子菜单)
|
||||
-- 生成:backend/scripts/reorder_web_menus.py
|
||||
-- 一级顺序:细胞存储 → 科研捐赠 → 中试服务 → 临床应用 → 质检管理 → 生产管理
|
||||
-- → 运营支撑 → 市场基础信息 → 质检基础信息 → 生产基础信息
|
||||
-- → 系统基础信息 → 工作流管理 → 系统管理
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES
|
||||
('1', '移动端菜单', '0', 'M', '/mini', NULL, NULL, 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('2', 'Web端菜单', '0', 'M', '/web', NULL, NULL, 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0);
|
||||
|
||||
INSERT INTO `sys_menu` (`id`, `menu_name`, `parent_id`, `menu_type`, `path`, `component`, `perms`, `is_frame`, `visible`, `status`, `tenant_no`, `order_num`, `remark`, `create_by`, `create_dept_id`, `create_time`, `update_by`, `update_time`, `del_flag`) VALUES
|
||||
('CEL00000000000000000000000000001', '细胞存储', '2', 'M', '/cell-storage', '/index/index', NULL, 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('50000000000000000000000000000002', '采集协议单录入', 'CEL00000000000000000000000000001', 'C', 'protocol', '/cell-storage/protocol/index', 'biz:cellStorageProtocol:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('50000000000000000000000000000003', '采集协议单管理', 'CEL00000000000000000000000000001', 'C', 'protocol-audit', '/cell-storage/protocol-audit/index', 'biz:cellStorageProtocolAudit:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 缴费信息/样本接收/样本入库/储存证/满月待办已并入采集协议单管理 Tab;已有库可执行:
|
||||
-- UPDATE sys_menu SET del_flag=1 WHERE id IN ('904b5173519411f1944300163e3bdd96','50000000000000000000000000000011','50000000000000000000000000000012','50000000000000000000000000000006','50000000000000000000000000000008');
|
||||
('50000000000000000000000000000004', '缴退费财务确认', 'CEL00000000000000000000000000001', 'C', 'payment-confirm', '/cell-storage/payment-confirm/index', 'biz:cellStoragePaymentConfirm:list', 1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('70000000000000000000000000000011', '入库放行审核', 'CEL00000000000000000000000000001', 'C', 'storage-release-review', '/quality-inspection/storage-release-review/index', 'biz:storageReleaseReview:list', 1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 退费确认已并入缴退费财务确认 Tab;已有库可执行:UPDATE sys_menu SET menu_name='缴退费财务确认' WHERE id='50000000000000000000000000000004'; UPDATE sys_menu SET del_flag=1 WHERE id='50000000000000000000000000000005';
|
||||
-- 入库放行审核已移至细胞存储;已有库可执行:UPDATE sys_menu SET parent_id='CEL00000000000000000000000000001', order_num=5 WHERE id='70000000000000000000000000000011';
|
||||
('RSC00000000000000000000000000001', '科研捐赠', '2', 'M', '/research-donation', '/index/index', NULL, 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('60000000000000000000000000000002', '捐赠协议单录入', 'RSC00000000000000000000000000001', 'C', 'list', '/research-donation/list/index', 'biz:researchDonation:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('60000000000000000000000000000003', '捐赠协议单管理', 'RSC00000000000000000000000000001', 'C', 'audit', '/research-donation/audit/index', 'biz:researchDonationAudit:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('PIL00000000000000000000000000001', '中试服务', '2', 'M', '/pilot-service', '/index/index', NULL, 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('80000000000000000000000000000010', '中试服务申请单', 'PIL00000000000000000000000000001', 'C', 'pilot-application', '/pilot-service/pilot-application/index', 'pilot-service:pilot-application:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 体检管理/输注计划已并入中试服务申请单 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id IN ('PIL00000000000000000000000000002','PIL00000000000000000000000000003');
|
||||
('PIL00000000000000000000000000004', '出库放行审核', 'PIL00000000000000000000000000001', 'C', 'outbound-release-review', '/pilot-service/outbound-release-review/index', 'pilot-service:outbound-release-review:list', 1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('CLI00000000000000000000000000001', '临床应用', '2', 'M', '/clinical-application', '/index/index', NULL, 1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('CLI00000000000000000000000000002', '临床申请单', 'CLI00000000000000000000000000001', 'C', 'clinical-application', '/pilot-service/pilot-application/index', 'clinical-application:application:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('CLI00000000000000000000000000003', '体检管理', 'CLI00000000000000000000000000001', 'C', 'clinical-checkup-management', '/pilot-service/checkup-management/index', 'clinical-application:checkup-management:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('CLI00000000000000000000000000004', '输注计划管理', 'CLI00000000000000000000000000001', 'C', 'clinical-infusion-schedule-management', '/pilot-service/infusion-schedule-management/index', 'clinical-application:infusion-schedule-management:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('CLI00000000000000000000000000005', '缴费信息', 'CLI00000000000000000000000000001', 'C', 'clinical-payment-info', '/pilot-service/clinical-payment-info/index', 'clinical-application:payment-info:list', 1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('CLI00000000000000000000000000006', '缴费确认(财务)', 'CLI00000000000000000000000000001', 'C', 'clinical-payment-confirm', '/pilot-service/clinical-payment-confirm/index', 'clinical-application:payment-confirm:list', 1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('CLI00000000000000000000000000007', '退费确认(财务)', 'CLI00000000000000000000000000001', 'C', 'clinical-refund-confirm', '/pilot-service/clinical-refund-confirm/index', 'clinical-application:refund-confirm:list', 1, '1', '1', 'zkxw', 6, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('CLI00000000000000000000000000008', '出库放行审核', 'CLI00000000000000000000000000001', 'C', 'clinical-outbound-release-review', '/pilot-service/outbound-release-review/index', 'clinical-application:outbound-release-review:list', 1, '1', '1', 'zkxw', 7, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('QCM00000000000000000000000000001', '质检管理', '2', 'M', '/quality-manage', '/index/index', NULL, 1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('70000000000000000000000000000002', '样本接收', 'QCM00000000000000000000000000001', 'C', 'sample-reception', '/quality-inspection/sample-reception/index', 'biz:sampleReception:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('70000000000000000000000000000007', '质检管理', 'QCM00000000000000000000000000001', 'C', 'qc-work-order', '/quality-inspection/qc-work-order/index', 'biz:qcWorkOrder:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 质检任务已并入质检管理 Tab;已有库可执行:
|
||||
-- UPDATE sys_menu SET menu_name='质检管理' WHERE id='70000000000000000000000000000007';
|
||||
-- UPDATE sys_menu SET del_flag=1 WHERE id='70000000000000000000000000000008';
|
||||
('PRM00000000000000000000000000001', '生产管理', '2', 'M', '/production', '/index/index', NULL, 1, '1', '1', 'zkxw', 6, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('61000000000000000000000000000003', '库位管理', 'PRM00000000000000000000000000001', 'C', 'storage-facility', '/operations/storage-facility/index', 'operations:storage-facility:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('90000000000000000000000000000013', '细胞产品库', 'PRM00000000000000000000000000001', 'C', 'cell-product', '/production/cell-product/index', 'production:cell-product:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('90000000000000000000000000000011', '生产管理', 'PRM00000000000000000000000000001', 'C', 'production-work-order', '/production/production-work-order/index', 'production:work-order:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 生产任务已并入生产管理 Tab;已有库可执行:
|
||||
-- UPDATE sys_menu SET menu_name='生产管理' WHERE id='90000000000000000000000000000011';
|
||||
-- UPDATE sys_menu SET del_flag=1 WHERE id='90000000000000000000000000000012';
|
||||
('OPS00000000000000000000000000001', '运营支撑', '2', 'M', '/operations', '/index/index', NULL, 1, '1', '1', 'zkxw', 7, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('61000000000000000000000000000002', '洁净室管理', 'OPS00000000000000000000000000001', 'C', 'clean-room', '/operations/clean-room/index', 'operations:clean-room:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('61000000000000000000000000000004', '展馆预约', 'OPS00000000000000000000000000001', 'C', 'exhibition-appointment', '/operations/exhibition-appointment/index', 'operations:exhibition-appointment:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('MKT00000000000000000000000000001', '市场基础信息', '2', 'M', '/market-info', '/index/index', NULL, 1, '1', '1', 'zkxw', 8, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('122', '细胞样本基础信息维护', 'MKT00000000000000000000000000001', 'C', 'cell-sample-type', '/basic-info/cell-sample-type/index', 'biz:cellSampleType:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('123', '细胞采集基础信息维护', 'MKT00000000000000000000000000001', 'C', 'collection-region', '/basic-info/collection-region/index', 'biz:collectionRegion:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('80000000000000000000000000000002', '细胞产品基础信息维护', 'MKT00000000000000000000000000001', 'C', 'cell-product-type', '/pilot-service/cell-product-type/index', 'pilot-service:cell-product-type:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('40000000000000000000000000000007', '保险公司及险种价格', 'MKT00000000000000000000000000001', 'C', 'insurance-company', '/basic-info/insurance-company/index', 'basic-info:insurance-company:list', 1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('80000000000000000000000000000007', '体检机构及项目价格', 'MKT00000000000000000000000000001', 'C', 'checkup-institution', '/pilot-service/checkup-institution/index', 'pilot-service:checkup-institution:list', 1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('50000000000000000000000000000009', '市场物料库', 'MKT00000000000000000000000000001', 'C', 'material', '/cell-storage/material/index', 'biz:material:list', 1, '1', '1', 'zkxw', 6, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('121', '客户管理', 'MKT00000000000000000000000000001', 'C', 'customer', '/basic-info/customer/index', 'biz:customer:list', 1, '1', '1', 'zkxw', 7, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('80000000000000000000000000000006', '渠道信息管理', 'MKT00000000000000000000000000001', 'C', 'channel', '/pilot-service/channel/index', 'pilot-service:channel:list', 1, '1', '1', 'zkxw', 8, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('80000000000000000000000000000009', '渠道服务订单(财务确认)', 'MKT00000000000000000000000000001', 'C', 'channel-service-order-finance', '/pilot-service/channel-service-order-finance/index', 'pilot-service:channel-service-order-finance:list', 1, '1', '1', 'zkxw', 9, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 采集协议号已并入细胞采集基础信息维护 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id='124';
|
||||
-- 样本编码已并入细胞样本基础信息维护 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id='125';
|
||||
-- 变动记录已并入市场物料库 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id='50000000000000000000000000000010';
|
||||
-- 规格/价格体系/项目价格已并入细胞产品基础信息维护 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id IN ('80000000000000000000000000000003','80000000000000000000000000000004','80000000000000000000000000000005');
|
||||
-- 服务购买订单已并入渠道信息管理 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id='80000000000000000000000000000008';
|
||||
-- 市场基础信息二级菜单排序与更名(已有库可执行):
|
||||
-- UPDATE sys_menu SET order_num=1 WHERE id='122';
|
||||
-- UPDATE sys_menu SET order_num=2 WHERE id='123';
|
||||
-- UPDATE sys_menu SET order_num=3 WHERE id='80000000000000000000000000000002';
|
||||
-- UPDATE sys_menu SET order_num=4 WHERE id='40000000000000000000000000000007';
|
||||
-- UPDATE sys_menu SET order_num=5 WHERE id='80000000000000000000000000000007';
|
||||
-- UPDATE sys_menu SET order_num=6 WHERE id='50000000000000000000000000000009';
|
||||
-- UPDATE sys_menu SET order_num=7 WHERE id='121';
|
||||
-- UPDATE sys_menu SET order_num=8 WHERE id='80000000000000000000000000000006';
|
||||
-- UPDATE sys_menu SET order_num=9, menu_name='渠道服务订单(财务确认)' WHERE id='80000000000000000000000000000009';
|
||||
('QCB00000000000000000000000000001', '质检基础信息', '2', 'M', '/quality-base', '/index/index', NULL, 1, '1', '1', 'zkxw', 9, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('70000000000000000000000000000003', '接收检查项配置', 'QCB00000000000000000000000000001', 'C', 'sample-reception-check-item', '/quality-inspection/sample-reception-check-item/index', 'biz:sampleReceptionCheckItem:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('70000000000000000000000000000006', '质检项目管理', 'QCB00000000000000000000000000001', 'C', 'lab-test-item', '/quality-inspection/lab-test-item/index', 'biz:qcLabTestItem:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 第三方检测已并入质检项目管理 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id='70000000000000000000000000000004'; UPDATE sys_menu SET menu_name='质检项目管理' WHERE id='70000000000000000000000000000006';
|
||||
('70000000000000000000000000000009', '质检物料库', 'QCB00000000000000000000000000001', 'C', 'qc-material', '/quality-inspection/qc-material/index', 'biz:qcMaterial:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 变动记录已并入质检物料库 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id='70000000000000000000000000000010';
|
||||
('PRB00000000000000000000000000001', '生产基础信息', '2', 'M', '/production-base', '/index/index', NULL, 1, '1', '1', 'zkxw', 10, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('90000000000000000000000000000002', '耗材管理', 'PRB00000000000000000000000000001', 'C', 'consumable', '/production/consumable/index', 'production:consumable:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 耗材包已并入耗材管理 Tab,不再单独挂菜单;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id='90000000000000000000000000000007';
|
||||
('90000000000000000000000000000003', '试剂管理', 'PRB00000000000000000000000000001', 'C', 'reagent', '/production/reagent/index', 'production:reagent:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('90000000000000000000000000000004', 'SOP文档', 'PRB00000000000000000000000000001', 'C', 'sop', '/production/sop/index', 'production:sop-document:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('90000000000000000000000000000005', '工艺基础信息维护', 'PRB00000000000000000000000000001', 'C', 'process-category', '/production/process-category/index', 'production:process-category:list', 1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 产出物类型已并入工艺基础信息维护 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id='90000000000000000000000000000006';
|
||||
('90000000000000000000000000000008', '工艺库管理', 'PRB00000000000000000000000000001', 'C', 'process', '/production/process/index', 'production:process:list', 1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
-- 工艺路线已并入工艺库管理 Tab;已有库可执行:UPDATE sys_menu SET del_flag=1 WHERE id='90000000000000000000000000000010';
|
||||
('SYSB000000000000000000000000000001', '系统基础信息', '2', 'M', '/system-base', '/index/index', NULL, 1, '1', '1', 'zkxw', 11, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('107', '站点管理', 'SYSB000000000000000000000000000001', 'C', 'site', '/system/site/index', 'system:site:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('109', '物品单位管理', 'SYSB000000000000000000000000000001', 'C', 'unit', '/system/unit/index', 'system:unit:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('110', '快递公司', 'SYSB000000000000000000000000000001', 'C', 'express', '/system/express/index', 'system:express:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('WKF00000000000000000000000000001', '工作流管理', '2', 'M', '/workflow', '/index/index', NULL, 1, '1', '1', 'zkxw', 12, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('10000000000000000000000000000wf01', '流程配置', 'WKF00000000000000000000000000001', 'C', 'process', '/system/workflow/process/index', 'workflow:process', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('10000000000000000000000000000wf02', '待办中心', 'WKF00000000000000000000000000001', 'C', 'pending', '/system/workflow/task-pending/index', 'workflow:pending', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('10000000000000000000000000000wf03', '已办中心', 'WKF00000000000000000000000000001', 'C', 'completed', '/system/workflow/task-completed/index', 'workflow:completed', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('10000000000000000000000000000wf05', '我的申请', 'WKF00000000000000000000000000001', 'C', 'my-applications', '/system/workflow/my-applications/index', 'workflow:myApplications', 1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('10000000000000000000000000000wf04', '请假申请', 'WKF00000000000000000000000000001', 'C', 'leave', '/system/leave/index', 'workflow:leave', 1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('SYSM000000000000000000000000000001', '系统管理', '2', 'M', '/system', '/index/index', NULL, 1, '1', '1', 'zkxw', 13, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('101', '租户管理', 'SYSM000000000000000000000000000001', 'C', 'tenant', '/system/tenant/index', 'system:tenant:list', 1, '1', '1', 'zkxw', 1, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('102', '字典管理', 'SYSM000000000000000000000000000001', 'C', 'dict', '/system/dict/index', 'system:dict:list', 1, '1', '1', 'zkxw', 2, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('106', '菜单管理', 'SYSM000000000000000000000000000001', 'C', 'menu', '/system/menu/index', 'system:menu:list', 1, '1', '1', 'zkxw', 3, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('103', '组织管理', 'SYSM000000000000000000000000000001', 'C', 'dept', '/system/dept/index', 'system:dept:list', 1, '1', '1', 'zkxw', 4, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('105', '角色管理', 'SYSM000000000000000000000000000001', 'C', 'role', '/system/role/index', 'system:role:list', 1, '1', '1', 'zkxw', 5, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('104', '用户管理', 'SYSM000000000000000000000000000001', 'C', 'user', '/system/user/index', 'system:user:list', 1, '1', '1', 'zkxw', 6, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('108', '职位管理', 'SYSM000000000000000000000000000001', 'C', 'post', '/system/post/index', 'system:post:list', 1, '1', '1', 'zkxw', 7, NULL, NULL, '', NOW(), NULL, NOW(), 0),
|
||||
('10000000000000000000000000000008', '用户详情', 'SYSM000000000000000000000000000001', 'C', 'user/detail', '/system/user/detail', NULL, 1, '0', '1', 'zkxw', 8, NULL, NULL, '', NOW(), NULL, NOW(), 0);
|
||||
File diff suppressed because it is too large.
Load diff
@@ -54,6 +54,23 @@ Web 管理端弹窗 SHALL 遵循规范:表单 `label-position="top"`;遮罩
|
||||
- **WHEN** 展示商品列表缩略图
|
||||
- **THEN** 图片区域 SHALL 为 1:1 且使用 `aspectFill`(与规范 §7.0.1 一致)
|
||||
|
||||
### Requirement: 页面不展示顶部 page-head 大标题与描述
|
||||
|
||||
`web-admin` 所有左侧菜单对应的页面 **SHALL NOT** 包含顶部 `<header class="page-head">`(或 `<div class="page-head">`)区块,即不在页面顶部展示 `<h1>` 大标题和 `<p class="page-desc">` 描述文字。页面内容 SHALL 直接从 `<section class="panel">`(或 `<div class="panel">`)开始。
|
||||
|
||||
**理由**:左侧菜单已提供当前页面名称,顶部大标题和描述属于冗余信息,移除后页面更简洁、内容区更大。
|
||||
|
||||
#### Scenario: 新增菜单页面无 page-head
|
||||
|
||||
- **WHEN** 新增一个左侧菜单对应的页面
|
||||
- **THEN** 该页面 SHALL NOT 包含 `<header class="page-head">` 或 `<div class="page-head">` 元素
|
||||
- **THEN** 页面模板 SHALL 直接以 `<section class="panel">` 或 `<div class="panel">` 作为第一个子内容块
|
||||
|
||||
#### Scenario: Code review 检查 page-head
|
||||
|
||||
- **WHEN** PR 包含新增或修改的页面文件(`src/views/**/*.vue`)
|
||||
- **THEN** 审查者 SHALL 确认该页面不包含 `class="page-head"` 元素
|
||||
|
||||
### Requirement: 列表面板主标题装饰
|
||||
|
||||
`web-admin` 中列表面板 `panel-top` 下的主标题(`h2.title-bar-heading`)SHALL 在标题文案前展示 **主色竖条**(与全局 `app.scss` 中 `h2.title-bar-heading::before` 一致);含「租户」「用户」等易歧义文案的标题 SHALL 通过 `App.vue` 中 `panelTitleBarTextRules` 显式纳入竖条样式,避免子串误匹配为其它图标。
|
||||
@@ -907,7 +924,7 @@ import { protocolStatusLabel, protocolStatusTagType } from '@/utils/status-tag-r
|
||||
|
||||
**各模式 SHALL 级要点(摘要):**
|
||||
|
||||
- **P01**:`page-head` → `filter-block` → `list-toolbar`(已选 N 项在前)→ `list-table stripe` → 分页;`dialog-form-layout` 编辑 + `SystemViewDialog` 查看。
|
||||
- **P01**:`filter-block` → `list-toolbar`(已选 N 项在前)→ `list-table stripe` → 分页;`dialog-form-layout` 编辑 + `SystemViewDialog` 查看。
|
||||
- **P02**:在 P01 基础上增加状态筛选、操作列多按钮、业务弹窗(审核/状态变更)。
|
||||
- **P03**:`el-table` 树形、无分页;路径展示遵循「树形主数据展示规则」Requirement。
|
||||
- **P04**:左 `el-tree` + 右 P01 列表;组织全路径用 `tree-path.ts`。
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -1,11 +1,11 @@
|
||||
# Graph Report - src (2026-05-27)
|
||||
|
||||
## Corpus Check
|
||||
- Large corpus: 641 files · ~402,748 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
|
||||
- Large corpus: 668 files · ~412,407 words. Semantic extraction will be expensive (many Claude tokens). Consider running on a subfolder, or use --no-semantic to run AST-only.
|
||||
|
||||
## Summary
|
||||
- 1845 nodes · 2395 edges · 48 communities detected
|
||||
- Extraction: 77% EXTRACTED · 23% INFERRED · 0% AMBIGUOUS · INFERRED: 550 edges (avg confidence: 0.8)
|
||||
- 1875 nodes · 2391 edges · 41 communities detected
|
||||
- Extraction: 78% EXTRACTED · 22% INFERRED · 0% AMBIGUOUS · INFERRED: 535 edges (avg confidence: 0.8)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Community Hubs (Navigation)
|
||||
@@ -39,32 +39,25 @@
|
||||
- [[_COMMUNITY_Community 27|Community 27]]
|
||||
- [[_COMMUNITY_Community 29|Community 29]]
|
||||
- [[_COMMUNITY_Community 30|Community 30]]
|
||||
- [[_COMMUNITY_Community 31|Community 31]]
|
||||
- [[_COMMUNITY_Community 32|Community 32]]
|
||||
- [[_COMMUNITY_Community 33|Community 33]]
|
||||
- [[_COMMUNITY_Community 34|Community 34]]
|
||||
- [[_COMMUNITY_Community 35|Community 35]]
|
||||
- [[_COMMUNITY_Community 36|Community 36]]
|
||||
- [[_COMMUNITY_Community 37|Community 37]]
|
||||
- [[_COMMUNITY_Community 38|Community 38]]
|
||||
- [[_COMMUNITY_Community 39|Community 39]]
|
||||
- [[_COMMUNITY_Community 42|Community 42]]
|
||||
- [[_COMMUNITY_Community 43|Community 43]]
|
||||
- [[_COMMUNITY_Community 45|Community 45]]
|
||||
- [[_COMMUNITY_Community 46|Community 46]]
|
||||
- [[_COMMUNITY_Community 47|Community 47]]
|
||||
- [[_COMMUNITY_Community 48|Community 48]]
|
||||
- [[_COMMUNITY_Community 50|Community 50]]
|
||||
- [[_COMMUNITY_Community 52|Community 52]]
|
||||
- [[_COMMUNITY_Community 59|Community 59]]
|
||||
- [[_COMMUNITY_Community 60|Community 60]]
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `get()` - 196 edges
|
||||
2. `push()` - 34 edges
|
||||
1. `get()` - 203 edges
|
||||
2. `push()` - 35 edges
|
||||
3. `WebSocketClient` - 26 edges
|
||||
4. `withFullscreenLoading()` - 17 edges
|
||||
5. `emit()` - 16 edges
|
||||
6. `MenuProcessor` - 16 edges
|
||||
4. `emit()` - 16 edges
|
||||
5. `MenuProcessor` - 16 edges
|
||||
6. `withFullscreenLoading()` - 15 edges
|
||||
7. `VersionManager` - 15 edges
|
||||
8. `handleDynamicRoutes()` - 15 edges
|
||||
9. `TableCache` - 14 edges
|
||||
@@ -72,260 +65,218 @@
|
||||
|
||||
## Surprising Connections (you probably didn't know these)
|
||||
- `handleBatchDelete()` --calls--> `withFullscreenLoading()` [INFERRED]
|
||||
views/basic-info/collection-region/index.vue → utils/fullscreen-loading.ts
|
||||
- `handleAttachmentDownload()` --calls--> `downloadAttachmentFile()` [INFERRED]
|
||||
views/cell-storage/refund-confirm/index.vue → utils/download-attachment.ts
|
||||
views/production/consumable/ConsumablePackTab.vue → utils/fullscreen-loading.ts
|
||||
- `handleBatchDelete()` --calls--> `withFullscreenLoading()` [INFERRED]
|
||||
views/basic-info/customer/index.vue → utils/fullscreen-loading.ts
|
||||
- `handleReceptionAttachmentDownload()` --calls--> `downloadAttachmentFile()` [INFERRED]
|
||||
views/quality-inspection/qc-work-order/QcTaskTab.vue → utils/download-attachment.ts
|
||||
- `subscribeTokenRefresh()` --calls--> `push()` [INFERRED]
|
||||
utils/http/index.ts → views/operations/storage-facility/index.vue
|
||||
- `handleUnauthorizedResponse()` --calls--> `fetchRefreshToken()` [INFERRED]
|
||||
utils/http/index.ts → api/auth.ts
|
||||
- `toLogin()` --calls--> `logOut()` [INFERRED]
|
||||
components/core/layouts/art-screen-lock/index.vue → utils/http/index.ts
|
||||
- `fetchLeaveList()` --calls--> `get()` [INFERRED]
|
||||
api/leave.ts → views/production/process-route/index.vue
|
||||
|
||||
## Communities
|
||||
|
||||
### Community 0 - "Community 0"
|
||||
Cohesion: 0.01
|
||||
Nodes (112): fetchAccessLogList(), fetchActiveRegions(), fetchCategoryList(), fetchCategoryParameters(), fetchCellProductPriceList(), fetchCellProductSpecList(), fetchCellProductTypeList(), fetchCellSampleTypeList() (+104 more)
|
||||
Nodes (136): fetchAccessLogList(), fetchActiveRegions(), fetchCategoryList(), fetchCategoryParameters(), fetchCellProductPriceList(), fetchCellProductSpecList(), fetchCellProductTypeList(), fetchCellSampleTypeList() (+128 more)
|
||||
|
||||
### Community 1 - "Community 1"
|
||||
Cohesion: 0.02
|
||||
Nodes (67): fetchBatchGenerateProtocolNos(), fetchBatchGenerateSampleCodes(), fetchBatchIssueProtocolNos(), fetchBatchIssueSampleCodes(), fetchCollectionProtocolNoList(), fetchCreateCollectionProtocolNo(), fetchCreateSampleCode(), fetchDeleteCollectionProtocolNo() (+59 more)
|
||||
Cohesion: 0.01
|
||||
Nodes (6): fetchDeleteProjectSystemItem(), fetchGetRoleList(), fetchNotDeletedRegions(), fetchRegionList(), if(), loadRoleList()
|
||||
|
||||
### Community 2 - "Community 2"
|
||||
Cohesion: 0.03
|
||||
Nodes (40): fetchGetMenuList(), fetchGetMenuCodes(), fetchGetUserInfo(), fetchLogin(), fetchRefreshToken(), clickTab(), handleTouchEnd(), setTransition() (+32 more)
|
||||
Nodes (82): batchSavePilotCheckup(), deletePilotCheckupActualItem(), fetchCheckupInstitutionPackageDetail(), fetchCheckupInstitutionPackages(), fetchCheckupInstitutionProjects(), fetchPilotCheckupActualItems(), fetchPilotCheckupDetail(), fetchPilotCheckupReserveItems() (+74 more)
|
||||
|
||||
### Community 3 - "Community 3"
|
||||
Cohesion: 0.04
|
||||
Nodes (65): batchSavePilotCheckup(), deletePilotCheckupActualItem(), fetchCheckupInstitutionList(), fetchCheckupInstitutionPackageDetail(), fetchCheckupInstitutionPackages(), fetchCheckupInstitutionProjects(), fetchPilotCheckupActualItems(), fetchPilotCheckupDetail() (+57 more)
|
||||
Cohesion: 0.03
|
||||
Nodes (40): fetchGetMenuList(), fetchGetMenuCodes(), fetchGetUserInfo(), fetchLogin(), fetchRefreshToken(), clickTab(), handleTouchEnd(), setTransition() (+32 more)
|
||||
|
||||
### Community 4 - "Community 4"
|
||||
Cohesion: 0.04
|
||||
Nodes (39): fetchUploadAttachment(), FireworkSystem, reload(), handleReportUpload(), handleReportUpload(), handleAttachmentChange(), subscribeTokenRefresh(), handleMenuJump() (+31 more)
|
||||
Cohesion: 0.03
|
||||
Nodes (43): fetchCollectionRegionList(), fetchCreateCollectionRegion(), fetchCreateHospital(), fetchDeleteCollectionRegion(), fetchDeleteHospital(), fetchHospitalList(), fetchUpdateCollectionRegion(), fetchUpdateHospital() (+35 more)
|
||||
|
||||
### Community 5 - "Community 5"
|
||||
Cohesion: 0.05
|
||||
Nodes (35): fetchServiceOrderTxnList(), fetchCollectionProtocolAuditList(), fetchCollectionProtocolList(), fetchPaymentDetailList(), fetchReceiptConfirmedList(), fetchReceiptConfirmList(), fetchReceiptConfirmSubmit(), fetchRefundConfirmedList() (+27 more)
|
||||
Cohesion: 0.03
|
||||
Nodes (37): fetchAllConsumablePacks(), fetchAllConsumables(), fetchAllConsumableStockLogs(), fetchAllOutputTypes(), fetchAllProcessCategories(), fetchAllProcesses(), fetchAllReagents(), fetchAllReagentStockLogs() (+29 more)
|
||||
|
||||
### Community 6 - "Community 6"
|
||||
Cohesion: 0.07
|
||||
Nodes (8): updateInfusionScheduleStatus(), handleSubmit(), handleReset(), handleSearch(), WebSocketClient, TableCache, emit(), handleSubmit()
|
||||
Cohesion: 0.06
|
||||
Nodes (11): fetchGetLatestUpgradeLog(), getDefaultLanguage(), checkStorageCompatibility(), StorageConfig, getSystemStorage(), getSysVersion(), StorageKeyManager, StorageCompatibilityManager (+3 more)
|
||||
|
||||
### Community 7 - "Community 7"
|
||||
Cohesion: 0.04
|
||||
Nodes (29): fetchAttachmentDownloadUrl(), fetchOrderAdjusts(), fetchOrderDetail(), fetchOrderItems(), fetchOrderList(), fetchPriceVersionDetail(), fetchSystemConfig(), handleDownloadAttachment() (+21 more)
|
||||
Cohesion: 0.05
|
||||
Nodes (31): fetchAttachmentDownloadUrl(), formatLocalDate(), fullFileUrl(), handleDownloadAttachment(), handlePreviewAttachment(), isVideoFile(), handleDownloadAttachment(), attachmentFullUrl() (+23 more)
|
||||
|
||||
### Community 8 - "Community 8"
|
||||
Cohesion: 0.08
|
||||
Nodes (7): updateInfusionScheduleStatus(), handleSubmit(), handleReset(), handleSearch(), WebSocketClient, TableCache, emit()
|
||||
|
||||
### Community 9 - "Community 9"
|
||||
Cohesion: 0.05
|
||||
Nodes (30): fetchCreateUser(), fetchDeleteUser(), fetchDeptTree(), fetchPostBoundUserIds(), fetchResetPassword(), fetchRoleOptions(), fetchUpdateUser(), fetchUserDetail() (+22 more)
|
||||
|
||||
### Community 10 - "Community 10"
|
||||
Cohesion: 0.07
|
||||
Nodes (21): auditorDisplay(), dash(), expressName(), formatYm(), formatYmd(), sampleTypeName(), siteName(), unitName() (+13 more)
|
||||
|
||||
### Community 9 - "Community 9"
|
||||
Cohesion: 0.07
|
||||
Nodes (22): handleBlur(), handleFocus(), handleInput(), fetchEthnicList(), addSample(), applyDonationBundleToForm(), confirmBatchTransportApply(), createEmptyTransport() (+14 more)
|
||||
|
||||
### Community 10 - "Community 10"
|
||||
Cohesion: 0.09
|
||||
Nodes (30): base64ToBytes(), bytesToBase64(), decryptJson(), deriveKey(), encryptJson(), fromBase64Url(), hexToBytes(), sha256Hex() (+22 more)
|
||||
|
||||
### Community 11 - "Community 11"
|
||||
Cohesion: 0.09
|
||||
Nodes (8): getDefaultLanguage(), checkStorageCompatibility(), StorageConfig, getSystemStorage(), getSysVersion(), StorageKeyManager, StorageCompatibilityManager, validateStorageData()
|
||||
Cohesion: 0.08
|
||||
Nodes (32): toLogin(), base64ToBytes(), bytesToBase64(), decryptJson(), deriveKey(), encryptJson(), fromBase64Url(), hexToBytes() (+24 more)
|
||||
|
||||
### Community 12 - "Community 12"
|
||||
Cohesion: 0.07
|
||||
Nodes (17): fetchCreateMenu(), fetchDeleteMenu(), fetchMenuTree(), fetchUpdateMenu(), collectIds(), postorder(), preorder(), applyTreeExpand() (+9 more)
|
||||
Nodes (22): handleBlur(), handleFocus(), handleInput(), fetchEthnicList(), addSample(), applyDonationBundleToForm(), confirmBatchTransportApply(), createEmptyTransport() (+14 more)
|
||||
|
||||
### Community 13 - "Community 13"
|
||||
Cohesion: 0.07
|
||||
Nodes (24): fetchCreateSite(), fetchDeleteSite(), fetchDictDataOptions(), fetchSiteList(), fetchUpdateSite(), fetchUserList(), formatNowDatetime(), formatHandoverUserLabel() (+16 more)
|
||||
Nodes (21): for(), set(), walk(), annotateForkEdges(), chainApiToElements(), nextAncestorLink(), if(), ensureCategoryPathDataLoaded() (+13 more)
|
||||
|
||||
### Community 14 - "Community 14"
|
||||
Cohesion: 0.08
|
||||
Nodes (11): maskIdCard(), buildOutboundPilotContextSections(), applicationStatusLabel(), applicationStatusTagType(), infusionMethodLabel(), infusionStatusLabel(), infusionStatusTagType(), qcStatusLabel() (+3 more)
|
||||
|
||||
### Community 15 - "Community 15"
|
||||
Cohesion: 0.09
|
||||
Nodes (9): fetchGetAllUpgradeLogs(), fetchGetChinaMapData(), fetchGetComments(), fetchGetCurrentVersion(), fetchGetLatestUpgradeLog(), fetchGetSystemConfig(), fetchGetUpgradeLogs(), systemUpgrade() (+1 more)
|
||||
|
||||
### Community 16 - "Community 16"
|
||||
Cohesion: 0.11
|
||||
Nodes (21): fetchFullmoonTodoList(), fetchUpdateFullmoonTodoInsurance(), fetchCollectionProtocolDetail(), buildInsuranceAttachmentsValue(), buildInsurancePayload(), formatYmdFromAny(), fullFileUrl(), handleBatchEdit() (+13 more)
|
||||
|
||||
### Community 17 - "Community 17"
|
||||
### Community 16 - "Community 16"
|
||||
Cohesion: 0.1
|
||||
Nodes (19): fetchCollectionRegionList(), fetchCreateCollectionRegion(), fetchCreateHospital(), fetchDeleteCollectionRegion(), fetchDeleteHospital(), fetchHospitalList(), fetchUpdateCollectionRegion(), fetchUpdateHospital() (+11 more)
|
||||
Nodes (21): fetchCreateSite(), fetchDeleteSite(), fetchDictDataOptions(), fetchSiteList(), fetchUpdateSite(), fetchUserList(), remoteSearchHandoverUsers(), formatContactUserLabel() (+13 more)
|
||||
|
||||
### Community 18 - "Community 18"
|
||||
Cohesion: 0.13
|
||||
Nodes (18): completePilotApplication(), deletePilotApplication(), fetchPilotApplicationList(), startPilotApplication(), voidPilotApplication(), clearTableSelection(), handleBatchComplete(), handleBatchStart() (+10 more)
|
||||
|
||||
### Community 19 - "Community 19"
|
||||
Cohesion: 0.11
|
||||
Nodes (19): fetchCreateUser(), fetchDeleteUser(), fetchResetPassword(), fetchRoleOptions(), fetchUpdateUser(), fetchUserDetail(), formatUserDeptDisplay(), handleAdd() (+11 more)
|
||||
|
||||
### Community 20 - "Community 20"
|
||||
### Community 17 - "Community 17"
|
||||
Cohesion: 0.12
|
||||
Nodes (15): addCopyButton(), highlightCode(), insertLineNumbers(), isBlockProcessed(), markBlockAsProcessed(), processBlock(), setupHighlightDirective(), setupRippleDirective() (+7 more)
|
||||
|
||||
### Community 21 - "Community 21"
|
||||
### Community 18 - "Community 18"
|
||||
Cohesion: 0.1
|
||||
Nodes (6): fetchProductionTaskDetail(), fetchProductionTaskList(), fetchUpdateProductionTask(), handleClose(), handleSubmit(), loadTaskDetail()
|
||||
|
||||
### Community 22 - "Community 22"
|
||||
Cohesion: 0.12
|
||||
Nodes (12): fetchApproveTask(), fetchBusinessAllTasks(), fetchCompletedTasks(), fetchDesignerData(), fetchInstanceDetail(), fetchMyInstances(), fetchPendingTasks(), fetchProcessDefList() (+4 more)
|
||||
### Community 19 - "Community 19"
|
||||
Cohesion: 0.14
|
||||
Nodes (19): fetchCreateMenu(), fetchDeleteMenu(), fetchMenuTree(), fetchUpdateMenu(), postorder(), preorder(), applyTreeExpand(), handleAdd() (+11 more)
|
||||
|
||||
### Community 23 - "Community 23"
|
||||
### Community 20 - "Community 20"
|
||||
Cohesion: 0.14
|
||||
Nodes (17): completePilotApplication(), deletePilotApplication(), fetchPilotApplicationList(), startPilotApplication(), voidPilotApplication(), handleBatchComplete(), handleBatchStart(), handleBatchVoid() (+9 more)
|
||||
|
||||
### Community 21 - "Community 21"
|
||||
Cohesion: 0.17
|
||||
Nodes (14): fetchCreateCustomer(), fetchCustomerList(), fetchDeleteCustomer(), fetchUpdateCustomer(), handleAdd(), handleBatchDelete(), handleDelete(), handleDropdownCommand() (+6 more)
|
||||
|
||||
### Community 22 - "Community 22"
|
||||
Cohesion: 0.16
|
||||
Nodes (10): useTable(), useTableImpl(), getColumnChecks(), useTableColumns(), createErrorHandler(), createSmartDebounce(), defaultResponseAdapter(), extractPagination() (+2 more)
|
||||
|
||||
### Community 24 - "Community 24"
|
||||
### Community 23 - "Community 23"
|
||||
Cohesion: 0.2
|
||||
Nodes (2): ComponentLoader, RouteTransformer
|
||||
|
||||
### Community 25 - "Community 25"
|
||||
### Community 24 - "Community 24"
|
||||
Cohesion: 0.27
|
||||
Nodes (14): useChart(), useChartComponent(), useChartOps(), colourBlend(), getCssVar(), getDarkColor(), getLightColor(), handleElementThemeColor() (+6 more)
|
||||
|
||||
### Community 26 - "Community 26"
|
||||
Cohesion: 0.17
|
||||
Nodes (11): fetchCreateCustomer(), fetchCustomerList(), fetchDeleteCustomer(), fetchUpdateCustomer(), handleAdd(), handleDelete(), handleReset(), handleSearch() (+3 more)
|
||||
### Community 25 - "Community 25"
|
||||
Cohesion: 0.16
|
||||
Nodes (8): fetchCheckupInstitutionList(), fetchPilotCheckupList(), handleReset(), handleSearch(), loadData(), loadInstitutions(), onBatchReserveSuccess(), onFillSuccess()
|
||||
|
||||
### Community 27 - "Community 27"
|
||||
### Community 26 - "Community 26"
|
||||
Cohesion: 0.14
|
||||
Nodes (8): useSettingsHandlers(), useSettingsPanel(), useSettingsState(), useCeremony(), useTheme(), themeAnimation(), toggleTheme(), toggleTransition()
|
||||
|
||||
### Community 27 - "Community 27"
|
||||
Cohesion: 0.18
|
||||
Nodes (5): fetchServiceOrderTxnList(), handleReset(), handleSearch(), handleTabChange(), loadData()
|
||||
|
||||
### Community 29 - "Community 29"
|
||||
Cohesion: 0.17
|
||||
Nodes (3): fetchResearchDonationAuditList(), fetchResearchDonationDetail(), fetchResearchDonationList()
|
||||
|
||||
### Community 30 - "Community 30"
|
||||
Cohesion: 0.18
|
||||
Nodes (3): fetchMaterialList(), fetchMaterialOptions(), fetchMaterialStockLogList()
|
||||
|
||||
### Community 30 - "Community 30"
|
||||
### Community 31 - "Community 31"
|
||||
Cohesion: 0.2
|
||||
Nodes (2): fetchQcMaterialList(), fetchQcMaterialOptions()
|
||||
|
||||
### Community 32 - "Community 32"
|
||||
Cohesion: 0.28
|
||||
Nodes (1): FireworkSystem
|
||||
|
||||
### Community 34 - "Community 34"
|
||||
Cohesion: 0.39
|
||||
Nodes (6): isIgnorableScriptError(), normalizeErrorMessage(), registerPromiseErrorHandler(), registerResourceErrorHandler(), scriptErrorHandler(), setupErrorHandle()
|
||||
|
||||
### Community 33 - "Community 33"
|
||||
### Community 35 - "Community 35"
|
||||
Cohesion: 0.36
|
||||
Nodes (1): TableHeightCalculator
|
||||
|
||||
### Community 34 - "Community 34"
|
||||
Cohesion: 0.25
|
||||
Nodes (2): fetchProductionWorkOrderDetail(), fetchProductionWorkOrderList()
|
||||
|
||||
### Community 35 - "Community 35"
|
||||
Cohesion: 0.25
|
||||
Nodes (2): fetchQcTaskDetail(), fetchQcTaskList()
|
||||
|
||||
### Community 36 - "Community 36"
|
||||
Cohesion: 0.25
|
||||
Nodes (3): fetchOutboundQcDetail(), fetchQcWorkOrderDetail(), fetchQcWorkOrderList()
|
||||
Nodes (2): fetchQcTaskDetail(), fetchQcTaskList()
|
||||
|
||||
### Community 37 - "Community 37"
|
||||
Cohesion: 0.33
|
||||
Nodes (2): logApiCryptoBootInfo(), maskSecret()
|
||||
|
||||
### Community 38 - "Community 38"
|
||||
Cohesion: 0.29
|
||||
Nodes (2): fetchLeaveDetail(), fetchLeaveList()
|
||||
|
||||
### Community 39 - "Community 39"
|
||||
Cohesion: 0.47
|
||||
Nodes (3): isPaymentDueWithinWarnWindow(), parsePaymentDueYmd(), startOfLocalDay()
|
||||
|
||||
### Community 42 - "Community 42"
|
||||
Cohesion: 0.33
|
||||
Nodes (2): fetchSampleReceptionCheckItemList(), fetchSampleReceptionCheckItemsActive()
|
||||
|
||||
### Community 43 - "Community 43"
|
||||
Cohesion: 0.33
|
||||
Nodes (2): fetchQcThirdPartyCompanyList(), fetchQcThirdPartyCompanyOptions()
|
||||
|
||||
### Community 45 - "Community 45"
|
||||
Cohesion: 0.5
|
||||
Nodes (2): focusInput(), handleKeydown()
|
||||
|
||||
### Community 46 - "Community 46"
|
||||
### Community 43 - "Community 43"
|
||||
Cohesion: 0.67
|
||||
Nodes (2): if(), logSidebarMenu()
|
||||
|
||||
### Community 47 - "Community 47"
|
||||
Cohesion: 0.5
|
||||
Nodes (1): fetchStorageEntrySmsList()
|
||||
|
||||
### Community 48 - "Community 48"
|
||||
Cohesion: 0.5
|
||||
Nodes (1): fetchSampleSmsNotificationList()
|
||||
|
||||
### Community 50 - "Community 50"
|
||||
### Community 45 - "Community 45"
|
||||
Cohesion: 1.0
|
||||
Nodes (2): getSettingDefaults(), resetToDefaults()
|
||||
|
||||
### Community 52 - "Community 52"
|
||||
### Community 47 - "Community 47"
|
||||
Cohesion: 1.0
|
||||
Nodes (2): defaultAvatarPathByRole(), resolveUserAvatarUrl()
|
||||
|
||||
### Community 59 - "Community 59"
|
||||
Cohesion: 0.67
|
||||
Nodes (1): fetchInfusionScheduleOutboundHandover()
|
||||
|
||||
### Community 60 - "Community 60"
|
||||
Cohesion: 0.67
|
||||
Nodes (2): fetchDeleteProjectSystemItem(), if()
|
||||
|
||||
## Knowledge Gaps
|
||||
- **Thin community `Community 24`** (17 nodes): `ComponentLoader`, `.constructor()`, `.createEmptyComponent()`, `.createErrorComponent()`, `.load()`, `.loadIframe()`, `.loadLayout()`, `.load()`, `RouteTransformer`, `.extractFirstSegment()`, `.handleFirstLevelRoute()`, `.handleIframeRoute()`, `.handleNormalRoute()`, `.isFirstLevelRoute()`, `.transform()`, `ComponentLoader.ts`, `RouteTransformer.ts`
|
||||
- **Thin community `Community 23`** (17 nodes): `ComponentLoader`, `.constructor()`, `.createEmptyComponent()`, `.createErrorComponent()`, `.load()`, `.loadIframe()`, `.loadLayout()`, `.load()`, `RouteTransformer`, `.extractFirstSegment()`, `.handleFirstLevelRoute()`, `.handleIframeRoute()`, `.handleNormalRoute()`, `.isFirstLevelRoute()`, `.transform()`, `ComponentLoader.ts`, `RouteTransformer.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 30`** (10 nodes): `fetchBatchStockInQcMaterial()`, `fetchBatchStockOutQcMaterial()`, `fetchCreateQcMaterial()`, `fetchDeleteQcMaterial()`, `fetchQcMaterialList()`, `fetchQcMaterialOptions()`, `fetchStockInQcMaterial()`, `fetchStockOutQcMaterial()`, `fetchUpdateQcMaterial()`, `qc-material.ts`
|
||||
- **Thin community `Community 31`** (10 nodes): `fetchBatchStockInQcMaterial()`, `fetchBatchStockOutQcMaterial()`, `fetchCreateQcMaterial()`, `fetchDeleteQcMaterial()`, `fetchQcMaterialList()`, `fetchQcMaterialOptions()`, `fetchStockInQcMaterial()`, `fetchStockOutQcMaterial()`, `fetchUpdateQcMaterial()`, `qc-material.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 33`** (8 nodes): `TableHeightCalculator`, `.calculate()`, `.calculateOffset()`, `.calculatePaginationOffset()`, `.constructor()`, `.getHeaderHeight()`, `useTableHeight()`, `useTableHeight.ts`
|
||||
- **Thin community `Community 32`** (9 nodes): `FireworkSystem`, `.constructor()`, `.createFirework()`, `.createParticle()`, `.getAvailableParticle()`, `.initializePool()`, `.preloadAllImages()`, `.preloadImage()`, `index.vue`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 34`** (8 nodes): `fetchCompleteProductionWorkOrder()`, `fetchConfigureProductionWorkOrder()`, `fetchCreateProductionWorkOrder()`, `fetchDeleteProductionWorkOrder()`, `fetchProductionWorkOrderDetail()`, `fetchProductionWorkOrderList()`, `fetchUpdateProductionWorkOrder()`, `production-work-order.ts`
|
||||
- **Thin community `Community 35`** (8 nodes): `TableHeightCalculator`, `.calculate()`, `.calculateOffset()`, `.calculatePaginationOffset()`, `.constructor()`, `.getHeaderHeight()`, `useTableHeight()`, `useTableHeight.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 35`** (8 nodes): `fetchCompleteQcTask()`, `fetchCreateQcTask()`, `fetchDeleteQcTask()`, `fetchQcTaskDetail()`, `fetchQcTaskList()`, `fetchStartQcTask()`, `fetchUpdateQcTaskAttachments()`, `qc-task.ts`
|
||||
- **Thin community `Community 36`** (8 nodes): `fetchCompleteQcTask()`, `fetchCreateQcTask()`, `fetchDeleteQcTask()`, `fetchQcTaskDetail()`, `fetchQcTaskList()`, `fetchStartQcTask()`, `fetchUpdateQcTaskAttachments()`, `qc-task.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 37`** (7 nodes): `App.vue`, `main.ts`, `refreshButtonAutoIcons()`, `refreshPanelTitleIcons()`, `logApiCryptoBootInfo()`, `maskSecret()`, `console.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 38`** (7 nodes): `fetchCreateLeave()`, `fetchDeleteLeave()`, `fetchLeaveDetail()`, `fetchLeaveList()`, `fetchSubmitLeave()`, `fetchUpdateLeave()`, `leave.ts`
|
||||
- **Thin community `Community 42`** (5 nodes): `focusInput()`, `handleKeydown()`, `if()`, `search()`, `index.vue`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 42`** (6 nodes): `fetchCreateSampleReceptionCheckItem()`, `fetchDeleteSampleReceptionCheckItem()`, `fetchSampleReceptionCheckItemList()`, `fetchSampleReceptionCheckItemsActive()`, `fetchUpdateSampleReceptionCheckItem()`, `sample-reception-check-item.ts`
|
||||
- **Thin community `Community 43`** (4 nodes): `if()`, `logSidebarMenu()`, `index.vue`, `SidebarSubmenu.vue`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 43`** (6 nodes): `fetchCreateQcThirdPartyCompany()`, `fetchDeleteQcThirdPartyCompany()`, `fetchQcThirdPartyCompanyList()`, `fetchQcThirdPartyCompanyOptions()`, `fetchUpdateQcThirdPartyCompany()`, `qc-third-party-company.ts`
|
||||
- **Thin community `Community 45`** (3 nodes): `getSettingDefaults()`, `resetToDefaults()`, `setting.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 45`** (5 nodes): `focusInput()`, `handleKeydown()`, `if()`, `search()`, `index.vue`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 46`** (4 nodes): `if()`, `logSidebarMenu()`, `index.vue`, `SidebarSubmenu.vue`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 47`** (4 nodes): `fetchGenerateStorageEntrySms()`, `fetchStorageEntrySmsList()`, `fetchToggleStorageEntrySmsNotified()`, `storage-entry-sms-notification.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 48`** (4 nodes): `fetchGenerateSms()`, `fetchSampleSmsNotificationList()`, `fetchToggleSmsNotified()`, `sample-sms-notification.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 50`** (3 nodes): `getSettingDefaults()`, `resetToDefaults()`, `setting.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 52`** (3 nodes): `defaultAvatarPathByRole()`, `resolveUserAvatarUrl()`, `user-avatar.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 59`** (3 nodes): `fetchInfusionScheduleOutboundHandover()`, `saveInfusionScheduleOutboundHandover()`, `infusion-schedule-handover.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
- **Thin community `Community 60`** (3 nodes): `fetchDeleteProjectSystemItem()`, `if()`, `index.vue`
|
||||
- **Thin community `Community 47`** (3 nodes): `defaultAvatarPathByRole()`, `resolveUserAvatarUrl()`, `user-avatar.ts`
|
||||
Too small to be a meaningful cluster - may be noise or needs more connections extracted.
|
||||
|
||||
## Suggested Questions
|
||||
_Questions this graph is uniquely positioned to answer:_
|
||||
|
||||
- **Why does `get()` connect `Community 0` to `Community 1`, `Community 2`, `Community 3`, `Community 4`, `Community 5`, `Community 7`, `Community 8`, `Community 9`, `Community 12`, `Community 13`, `Community 15`, `Community 16`, `Community 17`, `Community 18`, `Community 19`, `Community 21`, `Community 22`, `Community 26`, `Community 29`, `Community 30`, `Community 34`, `Community 35`, `Community 36`, `Community 38`, `Community 42`, `Community 43`, `Community 47`, `Community 48`, `Community 59`?**
|
||||
_High betweenness centrality (0.265) - this node is a cross-community bridge._
|
||||
- **Why does `push()` connect `Community 4` to `Community 0`, `Community 3`, `Community 6`, `Community 7`, `Community 9`, `Community 13`, `Community 14`, `Community 15`, `Community 16`?**
|
||||
_High betweenness centrality (0.120) - this node is a cross-community bridge._
|
||||
- **Are the 195 inferred relationships involving `get()` (e.g. with `collectLeafFacilityNodesInTreeOrder()` and `buildTreePathLabelFromFlat()`) actually correct?**
|
||||
_`get()` has 195 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 33 inferred relationships involving `push()` (e.g. with `collectLeafFacilityNodesInTreeOrder()` and `fetchAllPagedRecords()`) actually correct?**
|
||||
_`push()` has 33 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 16 inferred relationships involving `withFullscreenLoading()` (e.g. with `.close()` and `handleSubmit()`) actually correct?**
|
||||
_`withFullscreenLoading()` has 16 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Why does `get()` connect `Community 0` to `Community 1`, `Community 2`, `Community 3`, `Community 4`, `Community 5`, `Community 6`, `Community 9`, `Community 12`, `Community 13`, `Community 15`, `Community 16`, `Community 18`, `Community 19`, `Community 20`, `Community 21`, `Community 25`, `Community 27`, `Community 29`, `Community 30`, `Community 31`, `Community 36`?**
|
||||
_High betweenness centrality (0.254) - this node is a cross-community bridge._
|
||||
- **Why does `push()` connect `Community 2` to `Community 32`, `Community 1`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 15`, `Community 16`?**
|
||||
_High betweenness centrality (0.130) - this node is a cross-community bridge._
|
||||
- **Are the 202 inferred relationships involving `get()` (e.g. with `collectLeafFacilityNodesInTreeOrder()` and `buildTreePathLabelFromFlat()`) actually correct?**
|
||||
_`get()` has 202 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 34 inferred relationships involving `push()` (e.g. with `collectLeafFacilityNodesInTreeOrder()` and `fetchAllPagedRecords()`) actually correct?**
|
||||
_`push()` has 34 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Are the 15 inferred relationships involving `emit()` (e.g. with `handleSubmit()` and `handleBlur()`) actually correct?**
|
||||
_`emit()` has 15 INFERRED edges - model-reasoned connections that need verification._
|
||||
- **Should `Community 0` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.01 - nodes in this community are weakly interconnected._
|
||||
- **Should `Community 1` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.01 - nodes in this community are weakly interconnected._
|
||||
@@ -57,12 +57,12 @@
|
||||
</div>
|
||||
<div id="legend"></div>
|
||||
</div>
|
||||
<div id="stats">1845 nodes · 2395 edges · 269 communities</div>
|
||||
<div id="stats">1875 nodes · 2391 edges · 289 communities</div>
|
||||
</div>
|
||||
<script>
|
||||
const RAW_NODES = [{"id": "app_vue", "label": "App.vue", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "App.vue", "community": 37, "community_name": "Community 37", "source_file": "App.vue", "file_type": "code", "degree": 3}, {"id": "src_app_refreshbuttonautoicons", "label": "refreshButtonAutoIcons()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "refreshButtonAutoIcons()", "community": 37, "community_name": "Community 37", "source_file": "App.vue", "file_type": "code", "degree": 1}, {"id": "src_app_refreshpaneltitleicons", "label": "refreshPanelTitleIcons()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "refreshPanelTitleIcons()", "community": 37, "community_name": "Community 37", "source_file": "App.vue", "file_type": "code", "degree": 1}, {"id": "main_ts", "label": "main.ts", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.4, "font": {"size": 0, "color": "#ffffff"}, "title": "main.ts", "community": 37, "community_name": "Community 37", "source_file": "main.ts", "file_type": "code", "degree": 4}, {"id": "src_main_masksecret", "label": "maskSecret()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "maskSecret()", "community": 37, "community_name": "Community 37", "source_file": "main.ts", "file_type": "code", "degree": 2}, {"id": "src_main_logapicryptobootinfo", "label": "logApiCryptoBootInfo()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "logApiCryptoBootInfo()", "community": 37, "community_name": "Community 37", "source_file": "main.ts", "file_type": "code", "degree": 2}, {"id": "env_d_ts", "label": "env.d.ts", "color": {"background": "#B07AA1", "border": "#B07AA1", "highlight": {"background": "#ffffff", "border": "#B07AA1"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "env.d.ts", "community": 86, "community_name": "Community 86", "source_file": "env.d.ts", "file_type": "code", "degree": 0}, {"id": "shims_loose_d_ts", "label": "shims-loose.d.ts", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "shims-loose.d.ts", "community": 87, "community_name": "Community 87", "source_file": "shims-loose.d.ts", "file_type": "code", "degree": 0}, {"id": "directives_index_ts", "label": "index.ts", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "index.ts", "community": 20, "community_name": "Community 20", "source_file": "directives/index.ts", "file_type": "code", "degree": 1}, {"id": "directives_index_setupglobdirectives", "label": "setupGlobDirectives()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.5, "font": {"size": 0, "color": "#ffffff"}, "title": "setupGlobDirectives()", "community": 20, "community_name": "Community 20", "source_file": "directives/index.ts", "file_type": "code", "degree": 5}, {"id": "directives_core_roles_ts", "label": "roles.ts", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "roles.ts", "community": 20, "community_name": "Community 20", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 3}, {"id": "core_roles_checkrolepermission", "label": "checkRolePermission()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "checkRolePermission()", "community": 20, "community_name": "Community 20", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 2}, {"id": "core_roles_removeelement", "label": "removeElement()", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "removeElement()", "community": 20, "community_name": "Community 20", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 2}, {"id": "core_roles_setuprolesdirective", "laLine truncated
|
||||
const RAW_EDGES = [{"from": "app_vue", "to": "src_app_refreshbuttonautoicons", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_vue", "to": "src_app_refreshpaneltitleicons", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_vue", "to": "main_ts", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "utils_sys_console_ts", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "src_main_masksecret", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "src_main_logapicryptobootinfo", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_main_masksecret", "to": "src_main_logapicryptobootinfo", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_index_ts", "to": "directives_index_setupglobdirectives", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_index_setupglobdirectives", "to": "core_auth_setupauthdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "core_roles_setuprolesdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "business_highlight_setuphighlightdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "business_ripple_setuprippledirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_core_roles_ts", "to": "core_roles_checkrolepermission", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_roles_ts", "to": "core_roles_removeelement", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_roles_ts", "to": "core_roles_setuprolesdirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "core_roles_checkrolepermission", "to": "core_roles_removeelement", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_checkauthpermission", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_removeelement", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_setupauthdirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "core_auth_checkauthpermission", "to": "core_auth_removeelement", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_ripple_ts", "to": "business_ripple_setuprippledirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_highlightcode", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_insertlinenumbers", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_addcopybutton", "label": "contains", "title": "contains [EXTRACTED]", "dLine truncated
|
||||
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Community 0", "count": 353}, {"cid": 1, "color": "#F28E2B", "label": "Community 1", "count": 113}, {"cid": 2, "color": "#E15759", "label": "Community 2", "count": 103}, {"cid": 3, "color": "#76B7B2", "label": "Community 3", "count": 87}, {"cid": 4, "color": "#59A14F", "label": "Community 4", "count": 70}, {"cid": 5, "color": "#EDC948", "label": "Community 5", "count": 57}, {"cid": 6, "color": "#B07AA1", "label": "Community 6", "count": 54}, {"cid": 7, "color": "#FF9DA7", "label": "Community 7", "count": 54}, {"cid": 8, "color": "#9C755F", "label": "Community 8", "count": 43}, {"cid": 9, "color": "#BAB0AC", "label": "Community 9", "count": 40}, {"cid": 10, "color": "#4E79A7", "label": "Community 10", "count": 38}, {"cid": 11, "color": "#F28E2B", "label": "Community 11", "count": 36}, {"cid": 12, "color": "#E15759", "label": "Community 12", "count": 35}, {"cid": 13, "color": "#76B7B2", "label": "Community 13", "count": 35}, {"cid": 14, "color": "#59A14F", "label": "Community 14", "count": 31}, {"cid": 15, "color": "#EDC948", "label": "Community 15", "count": 31}, {"cid": 16, "color": "#B07AA1", "label": "Community 16", "count": 27}, {"cid": 17, "color": "#FF9DA7", "label": "Community 17", "count": 27}, {"cid": 18, "color": "#9C755F", "label": "Community 18", "count": 24}, {"cid": 19, "color": "#BAB0AC", "label": "Community 19", "count": 23}, {"cid": 20, "color": "#4E79A7", "label": "Community 20", "count": 22}, {"cid": 21, "color": "#F28E2B", "label": "Community 21", "count": 22}, {"cid": 22, "color": "#E15759", "label": "Community 22", "count": 19}, {"cid": 23, "color": "#76B7B2", "label": "Community 23", "count": 17}, {"cid": 24, "color": "#59A14F", "label": "Community 24", "count": 17}, {"cid": 25, "color": "#EDC948", "label": "Community 25", "count": 16}, {"cid": 26, "color": "#B07AA1", "label": "Community 26", "count": 16}, {"cid": 27, "color": "#FF9DA7", "label": "Community 27", "count": 15}, {"cid": 28, "color": "#9C755F", "label": "Community 28", "count": 13}, {"cid": 29, "color": "#BAB0AC", "label": "Community 29", "count": 11}, {"cid": 30, "color": "#4E79A7", "label": "Community 30", "count": 10}, {"cid": 31, "color": "#F28E2B", "label": "Community 31", "count": 9}, {"cid": 32, "color": "#E15759", "label": "Community 32", "count": 8}, {"cid": 33, "color": "#76B7B2", "label": "Community 33", "count": 8}, {"cid": 34, "color": "#59A14F", "label": "Community 34", "count": 8}, {"cid": 35, "color": "#EDC948", "label": "Community 35", "count": 8}, {"cid": 36, "color": "#B07AA1", "label": "Community 36", "count": 8}, {"cid": 37, "color": "#FF9DA7", "label": "Community 37", "count": 7}, {"cid": 38, "color": "#9C755F", "label": "Community 38", "count": 7}, {"cid": 39, "color": "#BAB0AC", "label": "Community 39", "count": 6}, {"cid": 40, "color": "#4E79A7", "label": "Community 40", "count": 6}, {"cid": 41, "color": "#F28E2B", "label": "Community 41", "count": 6}, {"cid": 42, "color": "#E15759", "label": "Community 42", "count": 6}, {"cid": 43, "color": "#76B7B2", "label": "Community 43", "count": 6}, {"cid": 44, "color": "#59A14F", "label": "Community 44", "count": 6}, {"cid": 45, "color": "#EDC948", "label": "Community 45", "count": 5}, {"cid": 46, "color": "#B07AA1", "label": "Community 46", "count": 4}, {"cid": 47, "color": "#FF9DA7", "label": "Community 47", "count": 4}, {"cid": 48, "color": "#9C755F", "label": "Community 48", "count": 4}, {"cid": 49, "color": "#BAB0AC", "label": "Community 49", "count": 4}, {"cid": 50, "color": "#4E79A7", "label": "Community 50", "count": 3}, {"cid": 51, "color": "#F28E2B", "label": "Community 51", "count": 3}, {"cid": 52, "color": "#E15759", "label": "Community 52", "count": 3}, {"cid": 53, "color": "#76B7B2", "label": "Community 53", "count": 3}, {"cid": 54, "color": "#59A14F", "label": "Community 54", "count": 3}, {"cid": 55, "color": "#EDC948", "label": "Community 55", "count": 3}, {"cid": 56, "color": "#B07AA1", "label": "Community 56", "count": 3}, {"cid": 57, "color": "#FF9DA7", "label": "Community 57", "count": 3}, {"cid": 58, "color": "#9C755F", "label": "Community 58", "count": 3}, {"cid": 59, "color": "#BAB0AC", "label": "Community 59", "count": 3}, {"cid": 60, "color": "#4E79A7", "label": "Community 60", "count": 3}, {"cid": 61, "color": "#F28E2B", "label": "Community 61", "count": 2}, {"cid": 62, "color": "#E15759", "label": "Community 62", "count": 2}, {"cid": 63, "color": "#76B7B2", "label": "Community 63", "count": 2}, {"cid": 64, "color": "#59A14F", "label": "Community 64", "count": 2}, {"cid": 65, "color": "#EDC948", "label": "Community 65", "count": 2}, {"cid": 66, "color": "#B07AA1", "label": "Community 66", "count": 2}, {"cid": 67, "color": "#FF9DA7", "label": "Community 67", "count": 2}, {"cid": 68, "color": "#9C755F", "label": "Community 68", "count": 2}, {"cid": 69, "color": "#BAB0AC", "label": "Community 69", "count": 2}, {"cid": 70, "color": "#4E79A7", "label": "Community 70", "count": 2},Line truncated
|
||||
const RAW_NODES = [{"id": "app_vue", "label": "App.vue", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "App.vue", "community": 37, "community_name": "Community 37", "source_file": "App.vue", "file_type": "code", "degree": 3}, {"id": "src_app_refreshbuttonautoicons", "label": "refreshButtonAutoIcons()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "refreshButtonAutoIcons()", "community": 37, "community_name": "Community 37", "source_file": "App.vue", "file_type": "code", "degree": 1}, {"id": "src_app_refreshpaneltitleicons", "label": "refreshPanelTitleIcons()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "refreshPanelTitleIcons()", "community": 37, "community_name": "Community 37", "source_file": "App.vue", "file_type": "code", "degree": 1}, {"id": "main_ts", "label": "main.ts", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.4, "font": {"size": 0, "color": "#ffffff"}, "title": "main.ts", "community": 37, "community_name": "Community 37", "source_file": "main.ts", "file_type": "code", "degree": 4}, {"id": "src_main_masksecret", "label": "maskSecret()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "maskSecret()", "community": 37, "community_name": "Community 37", "source_file": "main.ts", "file_type": "code", "degree": 2}, {"id": "src_main_logapicryptobootinfo", "label": "logApiCryptoBootInfo()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "logApiCryptoBootInfo()", "community": 37, "community_name": "Community 37", "source_file": "main.ts", "file_type": "code", "degree": 2}, {"id": "env_d_ts", "label": "env.d.ts", "color": {"background": "#4E79A7", "border": "#4E79A7", "highlight": {"background": "#ffffff", "border": "#4E79A7"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "env.d.ts", "community": 80, "community_name": "Community 80", "source_file": "env.d.ts", "file_type": "code", "degree": 0}, {"id": "shims_loose_d_ts", "label": "shims-loose.d.ts", "color": {"background": "#F28E2B", "border": "#F28E2B", "highlight": {"background": "#ffffff", "border": "#F28E2B"}}, "size": 10.0, "font": {"size": 0, "color": "#ffffff"}, "title": "shims-loose.d.ts", "community": 81, "community_name": "Community 81", "source_file": "shims-loose.d.ts", "file_type": "code", "degree": 0}, {"id": "directives_index_ts", "label": "index.ts", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.1, "font": {"size": 0, "color": "#ffffff"}, "title": "index.ts", "community": 17, "community_name": "Community 17", "source_file": "directives/index.ts", "file_type": "code", "degree": 1}, {"id": "directives_index_setupglobdirectives", "label": "setupGlobDirectives()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.5, "font": {"size": 0, "color": "#ffffff"}, "title": "setupGlobDirectives()", "community": 17, "community_name": "Community 17", "source_file": "directives/index.ts", "file_type": "code", "degree": 5}, {"id": "directives_core_roles_ts", "label": "roles.ts", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.3, "font": {"size": 0, "color": "#ffffff"}, "title": "roles.ts", "community": 17, "community_name": "Community 17", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 3}, {"id": "core_roles_checkrolepermission", "label": "checkRolePermission()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "checkRolePermission()", "community": 17, "community_name": "Community 17", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 2}, {"id": "core_roles_removeelement", "label": "removeElement()", "color": {"background": "#FF9DA7", "border": "#FF9DA7", "highlight": {"background": "#ffffff", "border": "#FF9DA7"}}, "size": 10.2, "font": {"size": 0, "color": "#ffffff"}, "title": "removeElement()", "community": 17, "community_name": "Community 17", "source_file": "directives/core/roles.ts", "file_type": "code", "degree": 2}, {"id": "core_roles_setuprolesdirective", "laLine truncated
|
||||
const RAW_EDGES = [{"from": "app_vue", "to": "src_app_refreshbuttonautoicons", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_vue", "to": "src_app_refreshpaneltitleicons", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "app_vue", "to": "main_ts", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "utils_sys_console_ts", "label": "imports_from", "title": "imports_from [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "src_main_masksecret", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "main_ts", "to": "src_main_logapicryptobootinfo", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "src_main_masksecret", "to": "src_main_logapicryptobootinfo", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_index_ts", "to": "directives_index_setupglobdirectives", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_index_setupglobdirectives", "to": "core_auth_setupauthdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "core_roles_setuprolesdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "business_highlight_setuphighlightdirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_index_setupglobdirectives", "to": "business_ripple_setuprippledirective", "label": "calls", "title": "calls [INFERRED]", "dashes": true, "width": 1, "color": {"opacity": 0.35}, "confidence": "INFERRED"}, {"from": "directives_core_roles_ts", "to": "core_roles_checkrolepermission", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_roles_ts", "to": "core_roles_removeelement", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_roles_ts", "to": "core_roles_setuprolesdirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "core_roles_checkrolepermission", "to": "core_roles_removeelement", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_checkauthpermission", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_removeelement", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_core_auth_ts", "to": "core_auth_setupauthdirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "core_auth_checkauthpermission", "to": "core_auth_removeelement", "label": "calls", "title": "calls [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_ripple_ts", "to": "business_ripple_setuprippledirective", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_highlightcode", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_insertlinenumbers", "label": "contains", "title": "contains [EXTRACTED]", "dashes": false, "width": 2, "color": {"opacity": 0.7}, "confidence": "EXTRACTED"}, {"from": "directives_business_highlight_ts", "to": "business_highlight_addcopybutton", "label": "contains", "title": "contains [EXTRACTED]", "dLine truncated
|
||||
const LEGEND = [{"cid": 0, "color": "#4E79A7", "label": "Community 0", "count": 230}, {"cid": 1, "color": "#F28E2B", "label": "Community 1", "count": 185}, {"cid": 2, "color": "#E15759", "label": "Community 2", "count": 119}, {"cid": 3, "color": "#76B7B2", "label": "Community 3", "count": 104}, {"cid": 4, "color": "#59A14F", "label": "Community 4", "count": 88}, {"cid": 5, "color": "#EDC948", "label": "Community 5", "count": 82}, {"cid": 6, "color": "#B07AA1", "label": "Community 6", "count": 55}, {"cid": 7, "color": "#FF9DA7", "label": "Community 7", "count": 53}, {"cid": 8, "color": "#9C755F", "label": "Community 8", "count": 51}, {"cid": 9, "color": "#BAB0AC", "label": "Community 9", "count": 48}, {"cid": 10, "color": "#4E79A7", "label": "Community 10", "count": 41}, {"cid": 11, "color": "#F28E2B", "label": "Community 11", "count": 40}, {"cid": 12, "color": "#E15759", "label": "Community 12", "count": 39}, {"cid": 13, "color": "#76B7B2", "label": "Community 13", "count": 36}, {"cid": 14, "color": "#59A14F", "label": "Community 14", "count": 31}, {"cid": 15, "color": "#EDC948", "label": "Community 15", "count": 27}, {"cid": 16, "color": "#B07AA1", "label": "Community 16", "count": 26}, {"cid": 17, "color": "#FF9DA7", "label": "Community 17", "count": 22}, {"cid": 18, "color": "#9C755F", "label": "Community 18", "count": 22}, {"cid": 19, "color": "#BAB0AC", "label": "Community 19", "count": 22}, {"cid": 20, "color": "#4E79A7", "label": "Community 20", "count": 22}, {"cid": 21, "color": "#F28E2B", "label": "Community 21", "count": 17}, {"cid": 22, "color": "#E15759", "label": "Community 22", "count": 17}, {"cid": 23, "color": "#76B7B2", "label": "Community 23", "count": 17}, {"cid": 24, "color": "#59A14F", "label": "Community 24", "count": 16}, {"cid": 25, "color": "#EDC948", "label": "Community 25", "count": 16}, {"cid": 26, "color": "#B07AA1", "label": "Community 26", "count": 15}, {"cid": 27, "color": "#FF9DA7", "label": "Community 27", "count": 14}, {"cid": 28, "color": "#9C755F", "label": "Community 28", "count": 13}, {"cid": 29, "color": "#BAB0AC", "label": "Community 29", "count": 12}, {"cid": 30, "color": "#4E79A7", "label": "Community 30", "count": 11}, {"cid": 31, "color": "#F28E2B", "label": "Community 31", "count": 10}, {"cid": 32, "color": "#E15759", "label": "Community 32", "count": 9}, {"cid": 33, "color": "#76B7B2", "label": "Community 33", "count": 9}, {"cid": 34, "color": "#59A14F", "label": "Community 34", "count": 8}, {"cid": 35, "color": "#EDC948", "label": "Community 35", "count": 8}, {"cid": 36, "color": "#B07AA1", "label": "Community 36", "count": 8}, {"cid": 37, "color": "#FF9DA7", "label": "Community 37", "count": 7}, {"cid": 38, "color": "#9C755F", "label": "Community 38", "count": 6}, {"cid": 39, "color": "#BAB0AC", "label": "Community 39", "count": 6}, {"cid": 40, "color": "#4E79A7", "label": "Community 40", "count": 6}, {"cid": 41, "color": "#F28E2B", "label": "Community 41", "count": 6}, {"cid": 42, "color": "#E15759", "label": "Community 42", "count": 5}, {"cid": 43, "color": "#76B7B2", "label": "Community 43", "count": 4}, {"cid": 44, "color": "#59A14F", "label": "Community 44", "count": 4}, {"cid": 45, "color": "#EDC948", "label": "Community 45", "count": 3}, {"cid": 46, "color": "#B07AA1", "label": "Community 46", "count": 3}, {"cid": 47, "color": "#FF9DA7", "label": "Community 47", "count": 3}, {"cid": 48, "color": "#9C755F", "label": "Community 48", "count": 3}, {"cid": 49, "color": "#BAB0AC", "label": "Community 49", "count": 3}, {"cid": 50, "color": "#4E79A7", "label": "Community 50", "count": 3}, {"cid": 51, "color": "#F28E2B", "label": "Community 51", "count": 3}, {"cid": 52, "color": "#E15759", "label": "Community 52", "count": 3}, {"cid": 53, "color": "#76B7B2", "label": "Community 53", "count": 3}, {"cid": 54, "color": "#59A14F", "label": "Community 54", "count": 2}, {"cid": 55, "color": "#EDC948", "label": "Community 55", "count": 2}, {"cid": 56, "color": "#B07AA1", "label": "Community 56", "count": 2}, {"cid": 57, "color": "#FF9DA7", "label": "Community 57", "count": 2}, {"cid": 58, "color": "#9C755F", "label": "Community 58", "count": 2}, {"cid": 59, "color": "#BAB0AC", "label": "Community 59", "count": 2}, {"cid": 60, "color": "#4E79A7", "label": "Community 60", "count": 2}, {"cid": 61, "color": "#F28E2B", "label": "Community 61", "count": 2}, {"cid": 62, "color": "#E15759", "label": "Community 62", "count": 2}, {"cid": 63, "color": "#76B7B2", "label": "Community 63", "count": 2}, {"cid": 64, "color": "#59A14F", "label": "Community 64", "count": 2}, {"cid": 65, "color": "#EDC948", "label": "Community 65", "count": 2}, {"cid": 66, "color": "#B07AA1", "label": "Community 66", "count": 2}, {"cid": 67, "color": "#FF9DA7", "label": "Community 67", "count": 2}, {"cid": 68, "color": "#9C755F", "label": "Community 68", "count": 2}, {"cid": 69, "color": "#BAB0AC", "label": "Community 69", "count": 2}, {"cid": 70, "color": "#4E79A7", "label": "Community 70", "count": 2Line truncated
|
||||
|
||||
// HTML-escape helper — prevents XSS when injecting graph data into innerHTML
|
||||
function esc(s) {
|
||||
|
||||
+5691
-4320
File diff suppressed because it is too large.
Load diff
@@ -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": 1779833050.885841,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1779833011.8080041,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts": 1779866585.5492244,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/auto-imports.d.ts": 1779861830.81665,
|
||||
"/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,
|
||||
@@ -206,7 +206,7 @@
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/sample-reception-check-item.ts": 1779007909.2933023,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/production.ts": 1779790323.3656075,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/infusion-schedule-handover.ts": 1779828287.9085703,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/outbound-release-review.ts": 1779827106.6848028,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/outbound-release-review.ts": 1779841832.5347204,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/qc-third-party-item.ts": 1779017836.101254,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/storage-release-review.ts": 1779615813.3431153,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/workflow.ts": 1779790323.5709383,
|
||||
@@ -216,7 +216,7 @@
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/collection-protocol.ts": 1779790323.1950388,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/chinaRegion.ts": 1778582067.8620915,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/storage-entry-sms-notification.ts": 1779691739.8547683,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts": 1779159587.6033742,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts": 1779835904.885018,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts": 1779809235.6101413,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/ethnic.ts": 1778929297.3919344,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/qc-lab-test-item.ts": 1779017838.8231559,
|
||||
@@ -234,60 +234,68 @@
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/auth.ts": 1778582067.8610063,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/api/qc-work-order.ts": 1779800625.4572983,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/auth/login/index.vue": 1779790342.0297484,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/refund-confirm/index.vue": 1779790347.4764113,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/index.vue": 1779790344.8150065,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/refund-confirm/index.vue": 1779866933.9349332,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/index.vue": 1779859546.0906804,
|
||||
"/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": 1779790347.193558,
|
||||
"/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": 1779790345.8260312,
|
||||
"/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": 1779790347.58232,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-info/index.vue": 1779790344.50928,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-cert/index.vue": 1779790347.9803133,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/index.vue": 1779790344.752764,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue": 1779805190.0284903,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue": 1779790343.5693362,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-entry-info/index.vue": 1779790348.068867,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue": 1779790344.275864,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material-stock-log/index.vue": 1779790343.6764247,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/sample-reception-info/index.vue": 1779868497.86612,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-info/index.vue": 1779868497.867598,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-cert/index.vue": 1779868507.4286838,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/index.vue": 1779869021.9650846,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/StorageEntryInfoTab.vue": 1779868423.6222289,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/SampleReceptionInfoTab.vue": 1779868409.0059524,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/StorageCertTab.vue": 1779868926.5850313,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/FullmoonTodoTab.vue": 1779868452.5295193,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/ProtocolAuditTab.vue": 1779868352.051264,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/PaymentInfoTab.vue": 1779869209.0174851,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue": 1779864743.0373998,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/MaterialStockLogTab.vue": 1779864756.1772933,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue": 1779868513.7250044,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-entry-info/index.vue": 1779868498.117794,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue": 1779867772.5397694,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/RefundConfirmTab.vue": 1779867795.4548714,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material-stock-log/index.vue": 1779864743.0962036,
|
||||
"/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": 1779790349.081157,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue": 1779790348.9002414,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue": 1779790350.0887375,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/exhibition-appointment/index.vue": 1779790349.238472,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/audit/index.vue": 1779790362.817819,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/index.vue": 1779790365.0578604,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/demo/index.vue": 1779857058.9436853,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue": 1779859632.4029214,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue": 1779857056.5652542,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/exhibition-appointment/index.vue": 1779859537.3908546,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/audit/index.vue": 1779859635.6573696,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/index.vue": 1779859565.175567,
|
||||
"/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": 1779790364.8471587,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue": 1779790363.9991233,
|
||||
"/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": 1779790348.117465,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/tenant/index.vue": 1779790371.124599,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/order/index.vue": 1779790369.2332938,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/unit/index.vue": 1779790371.1791637,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue": 1779790370.8834825,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue": 1779790369.3803756,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue": 1779790365.9680545,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/express/index.vue": 1779790366.8246427,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue": 1779833149.3494532,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/dashboard/console/index.vue": 1779857063.389745,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/tenant/index.vue": 1779858296.9440098,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/order/index.vue": 1779856873.200306,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/unit/index.vue": 1779858300.774436,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue": 1779858382.6288393,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue": 1779858367.1503367,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue": 1779859746.1898513,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/express/index.vue": 1779858275.4881697,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue": 1779856885.5607417,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/detail.vue": 1779790371.4357243,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/modules/user-dialog.vue": 1779790371.5651114,
|
||||
"/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": 1779790370.3924873,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/my-applications/index.vue": 1779790371.8490593,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-pending/index.vue": 1779790371.9362392,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-completed/index.vue": 1779790371.905801,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue": 1779859799.4894958,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/my-applications/index.vue": 1779856891.19533,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-pending/index.vue": 1779856887.2818847,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-completed/index.vue": 1779856889.6368642,
|
||||
"/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": 1779790371.6886575,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/designer/FlowDesigner.vue": 1779790371.8114932,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/process/index.vue": 1779790371.873463,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue": 1779790367.3382716,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue": 1779790371.0245295,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/dept/index.vue": 1779790366.3484023,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/dict/index.vue": 1779790366.560137,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/leave/index.vue": 1779790367.065677,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/output-type/index.vue": 1779790358.8951325,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/index.vue": 1779790358.007445,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/process/index.vue": 1779859839.5932422,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue": 1779858346.0258229,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue": 1779858286.7791865,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/dept/index.vue": 1779858319.5899463,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/dict/index.vue": 1779857764.622668,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/leave/index.vue": 1779856871.1846657,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/output-type/index.vue": 1779864076.2860792,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/index.vue": 1779859699.7487218,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/SourceChainGraph.vue": 1779790358.2354698,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/source-chain/ChainLinkEdge.vue": 1779790358.0472064,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/source-chain/chainInject.ts": 1779790358.0222821,
|
||||
@@ -296,11 +304,11 @@
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/source-chain/ChainNodeCard.vue": 1779790358.117102,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/source-chain/SampleCustomerViewDialog.vue": 1779790358.1609333,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cell-product/source-chain/chainToFlow.ts": 1779790358.1472504,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue": 1779790359.1428778,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue": 1779790360.846551,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-task/index.vue": 1779805190.0299485,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/reagent/index.vue": 1779805190.0304468,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/index.vue": 1779801416.9937282,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue": 1779864194.7572825,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue": 1779859676.6089735,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-task/index.vue": 1779865978.3645008,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/reagent/index.vue": 1779863928.5798419,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/index.vue": 1779867247.37809,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/useTaskStepEditor.ts": 1779790360.26504,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/StepDetailPanel.vue": 1779790359.9189978,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/CompleteProductionTaskDialog.vue": 1779790359.5464847,
|
||||
@@ -309,50 +317,66 @@
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/EditTaskInfoDialog.vue": 1779790359.6398873,
|
||||
"/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": 1779801620.1553593,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/ProductionTaskTab.vue": 1779865978.3645222,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/TaskOutputProductDialog.vue": 1779701250.4415438,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable-pack/index.vue": 1779790358.448969,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/index.vue": 1779805190.029252,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process/index.vue": 1779790359.3889246,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-category/index.vue": 1779790358.9345891,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable-pack/index.vue": 1779863746.111673,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/index.vue": 1779863845.5777776,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue": 1779863731.2002044,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process/index.vue": 1779864193.702132,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process/ProcessRouteTab.vue": 1779864199.4381752,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-category/index.vue": 1779864070.4019275,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-category/OutputTypeTab.vue": 1779864078.964701,
|
||||
"/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": 1779829827.0884113,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue": 1779866566.2752438,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/OutboundQcViewDialog.vue": 1779801046.9472926,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception-check-item/index.vue": 1779790362.415862,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/index.vue": 1779790361.1549423,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue": 1779805190.0313084,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception/index.vue": 1779790362.5893314,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue": 1779801145.0078545,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/storage-release-review/index.vue": 1779790362.6423476,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/QcTaskTab.vue": 1779866109.6946545,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception-check-item/index.vue": 1779857055.2939715,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/index.vue": 1779864504.1085482,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue": 1779864511.579237,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue": 1779864345.8312566,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/QcMaterialUsageTab.vue": 1779864348.32489,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception/index.vue": 1779857050.0924282,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue": 1779866074.1503296,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/storage-release-review/index.vue": 1779857044.9472554,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/storage-release-review/StorageReleaseReviewDialog.vue": 1779701230.688804,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/storage-release-review/StorageReleaseViewDialog.vue": 1779790362.6831455,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material-usage/index.vue": 1779790361.21638,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/third-party-company/index.vue": 1779805190.032101,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material-usage/index.vue": 1779864358.234948,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/third-party-company/index.vue": 1779864494.1133437,
|
||||
"/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": 1779790350.9383118,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-institution/index.vue": 1779790354.3513076,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/index.vue": 1779864907.18862,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/CellProductPriceTab.vue": 1779864890.0905852,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/ProjectPriceSystemTab.vue": 1779864896.060257,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/CellProductSpecTab.vue": 1779864875.1171246,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-institution/index.vue": 1779857037.63053,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-institution/CheckupPackagePanel.vue": 1779790354.1964018,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/infusion-schedule-management/index.vue": 1779828418.9739575,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/infusion-schedule-management/index.vue": 1779869699.206076,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/infusion-schedule-management/InfusionScheduleHandoverDialog.vue": 1779830388.4782345,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/infusion-schedule-management/ScheduleViewDialog.vue": 1779830147.6915238,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/infusion-schedule-management/ScheduleCancelDialog.vue": 1779785733.3155978,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/infusion-schedule-management/ScheduleEditDialog.vue": 1779790355.024449,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/index.vue": 1779792910.3544722,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/index.vue": 1779865135.982138,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/ServiceOrderTxnTable.vue": 1779790352.443069,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/ServiceOrderTxnDialog.vue": 1779792403.5058112,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue": 1779790353.7514098,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue": 1779865147.5832708,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelViewDialog.vue": 1779790352.7457726,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/index.vue": 1779825987.213009,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/ChannelServiceOrderTab.vue": 1779865117.5842717,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-refund-confirm/index.vue": 1779857041.790119,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-payment-confirm/index.vue": 1779857039.564749,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/index.vue": 1779857036.1353672,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseViewDialog.vue": 1779830031.9999688,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseReviewDialog.vue": 1779824973.037717,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/OutboundReleaseMaterialDialog.vue": 1779829323.2023485,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/index.vue": 1779805793.0933356,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue": 1779790355.5310535,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/index.vue": 1779869680.1829238,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationDetailDialog.vue": 1779841841.9942307,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue": 1779869549.0167937,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationViewDialog.vue": 1779830501.0475526,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue": 1779791712.2092516,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-price/index.vue": 1779790350.411278,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/index.vue": 1779790354.8558528,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/InfusionScheduleTab.vue": 1779869607.3844721,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/ApplicationFormDialog.vue": 1779835904.8876522,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/CheckupManagementTab.vue": 1779869646.5775056,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-price/index.vue": 1779864955.5971668,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/index.vue": 1779869699.1782947,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/CheckupReserveItemsTable.vue": 1779790354.7691844,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/CheckupViewDialog.vue": 1779790354.8122675,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/CheckupRegisterDialog.vue": 1779790354.7432914,
|
||||
@@ -360,15 +384,18 @@
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/checkup-reserve-items.ts": 1779790354.395297,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/CheckupFillDialog.vue": 1779790354.549774,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/CheckupMarkCheckedDialog.vue": 1779790354.6605508,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue": 1779792415.6059427,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue": 1779790357.5665202,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-spec/index.vue": 1779790350.6137238,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/sample-code/index.vue": 1779790343.3701625,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/cell-sample-type/index.vue": 1779790342.17897,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/insurance-company/index.vue": 1779790343.1390862,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue": 1779790342.3408816,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/customer/index.vue": 1779790342.9238243,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/index.vue": 1779790342.7358267,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-payment-info/index.vue": 1779857023.6723864,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order-finance/index.vue": 1779857021.6808643,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue": 1779864957.7299743,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-spec/index.vue": 1779864953.7554574,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/sample-code/index.vue": 1779865418.7580743,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/cell-sample-type/index.vue": 1779865418.756565,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/cell-sample-type/SampleCodeTab.vue": 1779865418.7762907,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/insurance-company/index.vue": 1779859621.3750057,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue": 1779865978.354038,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/customer/index.vue": 1779859512.0221999,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/index.vue": 1779865978.354022,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue": 1779865978.3539536,
|
||||
"/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": 1779790340.7550395,
|
||||
@@ -386,7 +413,7 @@
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/RoutePermissionValidator.ts": 1778582068.0127926,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/index.ts": 1778582068.0138035,
|
||||
"/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": 1779809233.3957787,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts": 1779869731.666819,
|
||||
"/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": 1779546186.993006,
|
||||
"/Users/wuzilong/work/00code/zkxw/web-admin/src/router/routes/staticRoutes.ts": 1779546226.1088154,
|
||||
|
||||
@@ -151,3 +151,87 @@ export function fetchSystemConfig() {
|
||||
url: '/web/admin/system-config/settings'
|
||||
})
|
||||
}
|
||||
|
||||
// ─── 临床应用缴费 ─────────────────────────────────────
|
||||
|
||||
export function fetchClinicalPayments(params: any) {
|
||||
return request.get({
|
||||
url: '/web/admin/clinical-payments',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchClinicalPaymentDetail(id: string) {
|
||||
return request.get({
|
||||
url: `/web/admin/clinical-payments/${id}`
|
||||
})
|
||||
}
|
||||
|
||||
export function submitClinicalReceipt(id: string) {
|
||||
return request.post({
|
||||
url: `/web/admin/clinical-payments/${id}/submit-receipt`
|
||||
})
|
||||
}
|
||||
|
||||
export function batchSubmitClinicalReceipt(ids: string[]) {
|
||||
return request.post({
|
||||
url: '/web/admin/clinical-payments/submit-receipt-batch',
|
||||
params: { ids }
|
||||
})
|
||||
}
|
||||
|
||||
export function confirmClinicalReceipt(id: string, data: any) {
|
||||
return request.post({
|
||||
url: `/web/admin/clinical-payments/${id}/confirm-receipt`,
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
export function submitClinicalRefund(id: string, data: any) {
|
||||
return request.post({
|
||||
url: `/web/admin/clinical-payments/${id}/submit-refund`,
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
export function batchSubmitClinicalRefund(ids: string[], data: any) {
|
||||
return request.post({
|
||||
url: '/web/admin/clinical-payments/submit-refund-batch',
|
||||
params: { ...data, ids }
|
||||
})
|
||||
}
|
||||
|
||||
export function confirmClinicalRefund(id: string, data: any) {
|
||||
return request.post({
|
||||
url: `/web/admin/clinical-payments/${id}/confirm-refund`,
|
||||
params: data
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchClinicalReceiptPending(params: any) {
|
||||
return request.get({
|
||||
url: '/web/admin/clinical-payments/receipt-pending',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchClinicalReceiptConfirmed(params: any) {
|
||||
return request.get({
|
||||
url: '/web/admin/clinical-payments/receipt-confirmed',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchClinicalRefundPending(params: any) {
|
||||
return request.get({
|
||||
url: '/web/admin/clinical-payments/refund-pending',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchClinicalRefundConfirmed(params: any) {
|
||||
return request.get({
|
||||
url: '/web/admin/clinical-payments/refund-confirmed',
|
||||
params
|
||||
})
|
||||
}
|
||||
@@ -203,6 +203,25 @@ export function fetchOutboundReleaseMaterial(scheduleId: string) {
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchReleaseReviewList(params: { scheduleId: string }) {
|
||||
return request.get<any>({
|
||||
url: `/web/admin/pilot-release-reviews/${params.scheduleId}/detail`,
|
||||
})
|
||||
}
|
||||
|
||||
export function updateReleaseReview(data: { id: string; reviewConclusion: string }) {
|
||||
return request.put<any>({
|
||||
url: `/web/admin/pilot-release-reviews/${data.id}/review`,
|
||||
data: { reviewConclusion: data.reviewConclusion },
|
||||
})
|
||||
}
|
||||
|
||||
export function deleteReleaseReview(data: { id: string }) {
|
||||
return request.delete<any>({
|
||||
url: `/web/admin/pilot-release-reviews/${data.id}`,
|
||||
})
|
||||
}
|
||||
|
||||
export function saveOutboundReleaseMaterial(
|
||||
scheduleId: string,
|
||||
data: {
|
||||
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_ts", "label": "sqxp.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_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/sqxp.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_ts", "label": "sqxp.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_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/sqxp.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -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,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,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"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_productiontasktab_vue", "label": "ProductionTaskTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/ProductionTaskTab.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_ts", "label": "sqxp.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_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/sqxp.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L1"}, {"id": "post_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L410"}, {"id": "post_index_findpostbinddeptnodebyid", "label": "findPostBindDeptNodeById()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L441"}, {"id": "post_index_collectpostbinddeptsubtreeids", "label": "collectPostBindDeptSubtreeIds()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L455"}, {"id": "post_index_collectallpostbinddeptids", "label": "collectAllPostBindDeptIds()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L461"}, {"id": "post_index_expandpostbinddepttree", "label": "expandPostBindDeptTree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L473"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L320", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L321", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_dialog_form_body_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L334", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L335", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fetch_paged_list", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L336", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fullscreen_loading", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L337", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L338", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "post_index_handleview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L410", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "post_index_findpostbinddeptnodebyid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L441", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "post_index_collectpostbinddeptsubtreeids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L455", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "post_index_collectallpostbinddeptids", "relation": "contains", "confidence": "EXTRACTED", "source_file"Line truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_clinical_payment_confirm_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-payment-confirm/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_ts", "label": "sqxp.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_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/sqxp.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_checkup_management_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-management/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_ts", "label": "sqxp.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_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/sqxp.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -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,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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_ts", "label": "sqxp.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_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/sqxp.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_consumable_consumablepacktab_vue", "label": "ConsumablePackTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L1"}, {"id": "consumable_consumablepacktab_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L580"}, {"id": "consumable_consumablepacktab_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L584"}, {"id": "consumable_consumablepacktab_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L599"}, {"id": "consumable_consumablepacktab_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L604"}, {"id": "consumable_consumablepacktab_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L610"}, {"id": "consumable_consumablepacktab_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L621"}, {"id": "consumable_consumablepacktab_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L629"}, {"id": "consumable_consumablepacktab_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L638"}, {"id": "consumable_consumablepacktab_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L660"}, {"id": "consumable_consumablepacktab_handledropdowncommand", "label": "handleDropdownCommand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L696"}, {"id": "consumable_consumablepacktab_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L701"}, {"id": "consumable_consumablepacktab_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L714"}, {"id": "consumable_consumablepacktab_openaddconsumabledialog", "label": "openAddConsumableDialog()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L735"}, {"id": "consumable_consumablepacktab_filterconsumables", "label": "filterConsumables()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L750"}, {"id": "consumable_consumablepacktab_handleconsumableselectionchange", "label": "handleConsumableSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L763"}, {"id": "consumable_consumablepacktab_confirmaddconsumable", "label": "confirmAddConsumable()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L767"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_consumable_consumablepacktab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/ConsumablePackTab.vue", "source_location": "L494", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_consumable_consumablepacktab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confideLine truncated
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_ts", "label": "sqxp.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_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/sqxp.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_pilotapplicationtab_vue", "label": "PilotApplicationTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L1"}, {"id": "pilot_application_pilotapplicationtab_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L361"}, {"id": "pilot_application_pilotapplicationtab_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L383"}, {"id": "pilot_application_pilotapplicationtab_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L388"}, {"id": "pilot_application_pilotapplicationtab_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L400"}, {"id": "pilot_application_pilotapplicationtab_handlecreate", "label": "handleCreate()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L409"}, {"id": "pilot_application_pilotapplicationtab_caneditapplication", "label": "canEditApplication()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L415"}, {"id": "pilot_application_pilotapplicationtab_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L417"}, {"id": "pilot_application_pilotapplicationtab_onformsaved", "label": "onFormSaved()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L422"}, {"id": "pilot_application_pilotapplicationtab_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L427"}, {"id": "pilot_application_pilotapplicationtab_runbatchstatusaction", "label": "runBatchStatusAction()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L440"}, {"id": "pilot_application_pilotapplicationtab_handlebatchstart", "label": "handleBatchStart()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L508"}, {"id": "pilot_application_pilotapplicationtab_handlebatchcomplete", "label": "handleBatchComplete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L517"}, {"id": "pilot_application_pilotapplicationtab_handlebatchvoid", "label": "handleBatchVoid()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L526"}, {"id": "pilot_application_pilotapplicationtab_handlestart", "label": "handleStart()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L536"}, {"id": "pilot_application_pilotapplicationtab_handlecomplete", "label": "handleComplete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L553"}, {"id": "pilot_application_pilotapplicationtab_handlevoid", "label": "handleVoid()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L570"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_pilot_application_pilotapplicationtab_vue", "target": "pilot_application_pilotapplicationtab_loaddata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/pilot-application/PilotApplicationTab.vue", "source_location": "L361", "weiLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_dashboard_console_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/dashboard/console/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "label": "ThirdPartyCompanyTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L465", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L466", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L479", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L480", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_qc_third_party_company", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L481", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_qc_third_party_item", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L488", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_qc_item_param", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L495", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L496", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_common_amount_input_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L497", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_thirdpartycompanytab_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_money_format", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/ThirdPartyCompanyTab.vue", "source_location": "L498", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -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,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": []}
|
||||
+1
@@ -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": "L1298"}], "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": "L1298", "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": "L1299"}]}
|
||||
+1
@@ -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,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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L1"}, {"id": "user_index_loadroleoptions", "label": "loadRoleOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L325"}, {"id": "user_index_formatuserdeptdisplay", "label": "formatUserDeptDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L348"}, {"id": "user_index_formatuserroledisplay", "label": "formatUserRoleDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L354"}, {"id": "user_index_filterdeptnode", "label": "filterDeptNode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L397"}, {"id": "user_index_handledeptnodeclick", "label": "handleDeptNodeClick()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L406"}, {"id": "user_index_loaddepttree", "label": "loadDeptTree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L412"}, {"id": "user_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L421"}, {"id": "user_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L438"}, {"id": "user_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L443"}, {"id": "user_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L452"}, {"id": "user_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L468"}, {"id": "user_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L479"}, {"id": "user_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L505"}, {"id": "user_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L545"}, {"id": "user_index_requiresingleselection", "label": "requireSingleSelection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L549"}, {"id": "user_index_handletoolbarview", "label": "handleToolbarView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L557"}, {"id": "user_index_handletoolbaredit", "label": "handleToolbarEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L562"}, {"id": "user_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L567"}, {"id": "user_index_handlebatchresetpwd", "label": "handleBatchResetPwd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L586"}, {"id": "user_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L638"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L297", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_basic_info_collection_protocol_no_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L1"}, {"id": "collection_protocol_no_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L484"}, {"id": "collection_protocol_no_index_resolveissuedusername", "label": "resolveIssuedUserName()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L531"}, {"id": "collection_protocol_no_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L566"}, {"id": "collection_protocol_no_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L570"}, {"id": "collection_protocol_no_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L586"}, {"id": "collection_protocol_no_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L591"}, {"id": "collection_protocol_no_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L598"}, {"id": "collection_protocol_no_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L609"}, {"id": "collection_protocol_no_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L618"}, {"id": "collection_protocol_no_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L634"}, {"id": "collection_protocol_no_index_handledropdowncommand", "label": "handleDropdownCommand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L669"}, {"id": "collection_protocol_no_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L676"}, {"id": "collection_protocol_no_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L683"}, {"id": "collection_protocol_no_index_handlebatchrevoke", "label": "handleBatchRevoke()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L697"}, {"id": "collection_protocol_no_index_openbatchgenerate", "label": "openBatchGenerate()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L713"}, {"id": "collection_protocol_no_index_handlebatchgenerate", "label": "handleBatchGenerate()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L722"}, {"id": "collection_protocol_no_index_openbatchissue", "label": "openBatchIssue()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L745"}, {"id": "collection_protocol_no_index_handlebatchissue", "label": "handleBatchIssue()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L752"}, {"id": "collection_protocol_no_index_loaduseroptions", "label": "loadUserOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-protocol-no/index.vue", "source_location": "L77Line truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_clean_room_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1"}, {"id": "product_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1305"}, {"id": "product_index_scrolltofirsterror", "label": "scrollToFirstError()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1761"}, {"id": "product_index_revokelocalpreview", "label": "revokeLocalPreview()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L2431"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1305", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1316", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1360", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1710", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1739", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_scrolltofirsterror", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1761", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_revokelocalpreview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L2431", "weight": 1.0}], "raw_calls": [{"caller_nid": "product_index_if", "callee": "revokeObjectURL", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1307"}, {"caller_nid": "product_index_if", "callee": "revokeObjectURL", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1318"}, {"caller_nid": "product_index_if", "callee": "applyCategoryPriceCoefficientIfNeeded", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1361"}, {"caller_nid": "product_index_if", "callee": "loadCategoryParameters", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1362"}, {"caller_nid": "product_index_if", "callee": "error", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1711"}, {"caller_nid": "product_index_if", "callee": "error", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1712"}, {"caller_nid": "product_index_if", "callee": "error", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1740"}, {"caller_nid": "product_index_scrolltofirsterror", "callee": "nextTick", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1762"}, {"caller_nid": "product_index_scrolltofirsterror", "callee": "querySelector", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1765"}, {"caller_nid": "product_index_scrolltofirsterror", "callee": "scrollIntoView", "source_file": "/Users/wuzilong/work/00code/zkxw/web-adminLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_ts", "label": "sqxp.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/modules/sqxp.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_modules_sqxp_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/sqxp.ts", "source_location": "L1", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_api_business_ts", "label": "business.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L1"}, {"id": "api_business_fetchorderlist", "label": "fetchOrderList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L7"}, {"id": "api_business_fetchorderdetail", "label": "fetchOrderDetail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L33"}, {"id": "api_business_fetchassigndelivery", "label": "fetchAssignDelivery()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L39"}, {"id": "api_business_fetchreviewcancel", "label": "fetchReviewCancel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L55"}, {"id": "api_business_fetchcancelorder", "label": "fetchCancelOrder()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L62"}, {"id": "api_business_fetchorderadjusts", "label": "fetchOrderAdjusts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L78"}, {"id": "api_business_fetchadjustorder", "label": "fetchAdjustOrder()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L84"}, {"id": "api_business_fetchorderitems", "label": "fetchOrderItems()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L109"}, {"id": "api_business_fetchpriceversiondetail", "label": "fetchPriceVersionDetail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L115"}, {"id": "api_business_fetchuploadattachment", "label": "fetchUploadAttachment()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L121"}, {"id": "api_business_fetchattachmentdownloadurl", "label": "fetchAttachmentDownloadUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L135"}, {"id": "api_business_fetchuploadproductimage", "label": "fetchUploadProductImage()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L142"}, {"id": "api_business_fetchsystemconfig", "label": "fetchSystemConfig()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L149"}, {"id": "api_business_fetchclinicalpayments", "label": "fetchClinicalPayments()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L157"}, {"id": "api_business_fetchclinicalpaymentdetail", "label": "fetchClinicalPaymentDetail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L164"}, {"id": "api_business_submitclinicalreceipt", "label": "submitClinicalReceipt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L170"}, {"id": "api_business_batchsubmitclinicalreceipt", "label": "batchSubmitClinicalReceipt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L176"}, {"id": "api_business_confirmclinicalreceipt", "label": "confirmClinicalReceipt()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L183"}, {"id": "api_business_submitclinicalrefund", "label": "submitClinicalRefund()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L190"}, {"id": "api_business_batchsubmitclinicalrefund", "label": "batchSubmitClinicalRefund()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L197"}, {"id": "api_business_confirmclinicalrefund", "label": "confirmClinicalRefund()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L204"}, {"id": "api_business_fetchclinicalreceiptpending", "label": "fetchClinicalReceiptPending()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/business.ts", "source_location": "L211"}, {"id": "api_business_fetchclinicalreceiptconfirmed", "label": "fetchClinicalReceiptConfirmed()", "file_type": "code", "source_file": "/Users/wuzilong/work/0Line truncated
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L1"}, {"id": "qc_material_index_pad", "label": "pad()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L1011"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L796", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L797", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L811", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L812", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_qc_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L813", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_qc_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L823", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_index_vue", "target": "qc_material_index_pad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L1011", "weight": 1.0}], "raw_calls": [{"caller_nid": "qc_material_index_pad", "callee": "padStart", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L1011"}, {"caller_nid": "qc_material_index_pad", "callee": "String", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L1011"}]}
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_clinical_payment_info_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-payment-info/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_outbound_release_review_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/outbound-release-review/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L1"}, {"id": "material_index_pad", "label": "pad()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L1053"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L830", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L831", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L845", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L846", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L847", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_material", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L857", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_materialstocklogtab_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L858", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "material_index_pad", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L1053", "weight": 1.0}], "raw_calls": [{"caller_nid": "material_index_pad", "callee": "padStart", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L1053"}, {"caller_nid": "material_index_pad", "callee": "String", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L1053"}]}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_protocol_audit_paymentinfotab_vue", "label": "PaymentInfoTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/PaymentInfoTab.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_service_order_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/index.vue", "source_location": "L1"}, {"id": "channel_service_order_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/index.vue", "source_location": "L1304"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_service_order_index_vue", "target": "channel_service_order_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/index.vue", "source_location": "L1304", "weight": 1.0}], "raw_calls": [{"caller_nid": "channel_service_order_index_if", "callee": "handleChannelSearch", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel-service-order/index.vue", "source_location": "L1305"}]}
|
||||
+1
@@ -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_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L626"}, {"id": "fullmoon_todo_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L644"}, {"id": "fullmoon_todo_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L649"}, {"id": "fullmoon_todo_index_formatymdfromany", "label": "formatYmdFromAny()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L657"}, {"id": "fullmoon_todo_index_normalizenewbornsex", "label": "normalizeNewbornSex()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L665"}, {"id": "fullmoon_todo_index_handleexportinsurancesheet", "label": "handleExportInsuranceSheet()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L673"}, {"id": "fullmoon_todo_index_resolveprotocolid", "label": "resolveProtocolId()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L822"}, {"id": "fullmoon_todo_index_resetformfields", "label": "resetFormFields()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L846"}, {"id": "fullmoon_todo_index_resetdialogcontext", "label": "resetDialogContext()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L862"}, {"id": "fullmoon_todo_index_handleinsurancedialogclosed", "label": "handleInsuranceDialogClosed()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L869"}, {"id": "fullmoon_todo_index_parseinsuranceattachmentsfromurls", "label": "parseInsuranceAttachmentsFromUrls()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L873"}, {"id": "fullmoon_todo_index_buildinsuranceattachmentsvalue", "label": "buildInsuranceAttachmentsValue()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L885"}, {"id": "fullmoon_todo_index_buildinsurancepayload", "label": "buildInsurancePayload()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L892"}, {"id": "fullmoon_todo_index_handlebatchedit", "label": "handleBatchEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L909"}, {"id": "fullmoon_todo_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L922"}, {"id": "fullmoon_todo_index_handleinsurancecompanychange", "label": "handleInsuranceCompanyChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L945"}, {"id": "fullmoon_todo_index_handleinsurancetypechange", "label": "handleInsuranceTypeChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L953"}, {"id": "fullmoon_todo_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L960"}, {"id": "fullmoon_todo_index_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L1022"}, {"id": "fullmoon_todo_index_isimagefile", "label": "isImageFile()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admiLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_protocol_audit_storageentryinfotab_vue", "label": "StorageEntryInfoTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol-audit/StorageEntryInfoTab.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_refundconfirmtab_vue", "label": "RefundConfirmTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/RefundConfirmTab.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L1"}, {"id": "user_index_loadroleoptions", "label": "loadRoleOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L330"}, {"id": "user_index_formatuserdeptdisplay", "label": "formatUserDeptDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L353"}, {"id": "user_index_formatuserroledisplay", "label": "formatUserRoleDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L359"}, {"id": "user_index_filterdeptnode", "label": "filterDeptNode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L402"}, {"id": "user_index_handledeptnodeclick", "label": "handleDeptNodeClick()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L411"}, {"id": "user_index_loaddepttree", "label": "loadDeptTree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L417"}, {"id": "user_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L426"}, {"id": "user_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L443"}, {"id": "user_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L448"}, {"id": "user_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L457"}, {"id": "user_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L473"}, {"id": "user_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L484"}, {"id": "user_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L510"}, {"id": "user_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L550"}, {"id": "user_index_requiresingleselection", "label": "requireSingleSelection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L554"}, {"id": "user_index_handletoolbarview", "label": "handleToolbarView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L562"}, {"id": "user_index_handletoolbaredit", "label": "handleToolbarEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L567"}, {"id": "user_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L572"}, {"id": "user_index_handlebatchresetpwd", "label": "handleBatchResetPwd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L591"}, {"id": "user_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L643"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L302", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vLine truncated
|
||||
+1
@@ -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": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L1"}, {"id": "menu_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L372"}, {"id": "menu_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L377"}, {"id": "menu_index_applytreeexpand", "label": "applyTreeExpand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L382"}, {"id": "menu_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L405"}, {"id": "menu_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L421"}, {"id": "menu_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L425"}, {"id": "menu_index_toggleexpand", "label": "toggleExpand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L430"}, {"id": "menu_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L437"}, {"id": "menu_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L452"}, {"id": "menu_index_handleaddchild", "label": "handleAddChild()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L461"}, {"id": "menu_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L470"}, {"id": "menu_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L489"}, {"id": "menu_index_handledropdowncommand", "label": "handleDropdownCommand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L521"}, {"id": "menu_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L535"}, {"id": "menu_index_handledialogclose", "label": "handleDialogClose()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L551"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L268", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L269", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L281", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L282", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "menu_index_handleview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L372", "weight": 1.0}, {"sourceLine truncated
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -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,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": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_cell_product_type_projectpricesystemtab_vue", "label": "ProjectPriceSystemTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/ProjectPriceSystemTab.vue", "source_location": "L1"}, {"id": "cell_product_type_projectpricesystemtab_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/ProjectPriceSystemTab.vue", "source_location": "L605"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_cell_product_type_projectpricesystemtab_vue", "target": "cell_product_type_projectpricesystemtab_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/ProjectPriceSystemTab.vue", "source_location": "L605", "weight": 1.0}], "raw_calls": [{"caller_nid": "cell_product_type_projectpricesystemtab_if", "callee": "fetchDeleteProjectSystemItem", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/ProjectPriceSystemTab.vue", "source_location": "L606"}]}
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_refundconfirmtab_vue", "label": "RefundConfirmTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/RefundConfirmTab.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L1"}, {"id": "payment_confirm_index_handleattachmentpreview", "label": "handleAttachmentPreview()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L465"}, {"id": "payment_confirm_index_handleattachmentdownload", "label": "handleAttachmentDownload()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L471"}, {"id": "payment_confirm_index_buildlistparams", "label": "buildListParams()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L475"}, {"id": "payment_confirm_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L485"}, {"id": "payment_confirm_index_switchtab", "label": "switchTab()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L500"}, {"id": "payment_confirm_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L507"}, {"id": "payment_confirm_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L512"}, {"id": "payment_confirm_index_openconfirm", "label": "openConfirm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L519"}, {"id": "payment_confirm_index_openviewconfirm", "label": "openViewConfirm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L527"}, {"id": "payment_confirm_index_handlerowdblclick", "label": "handleRowDblClick()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L533"}, {"id": "payment_confirm_index_submitconfirm", "label": "submitConfirm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L537"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "target": "payment_confirm_index_handleattachmentpreview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L465", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "target": "payment_confirm_index_handleattachmentdownload", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L471", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "target": "payment_confirm_index_buildlistparams", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L475", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "target": "payment_confirm_index_loaddata", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L485", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "target": "payment_confirm_index_switchtab", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L500", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "target": "payment_confirm_index_handlesearch", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirLine truncated
|
||||
+1
@@ -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_sortprojectsystemdetailitems", "label": "sortProjectSystemDetailItems()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L467"}, {"id": "project_price_system_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L479"}, {"id": "project_price_system_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L517"}, {"id": "project_price_system_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L532"}, {"id": "project_price_system_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L537"}, {"id": "project_price_system_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L544"}, {"id": "project_price_system_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L554"}, {"id": "project_price_system_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L563"}, {"id": "project_price_system_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L585"}, {"id": "project_price_system_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L647"}, {"id": "project_price_system_index_handledropdowncommand", "label": "handleDropdownCommand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L659"}, {"id": "project_price_system_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L665"}, {"id": "project_price_system_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L681"}, {"id": "project_price_system_index_handleopenpriceselector", "label": "handleOpenPriceSelector()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L698"}, {"id": "project_price_system_index_handlepriceselectorchange", "label": "handlePriceSelectorChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L721"}, {"id": "project_price_system_index_handleconfirmpriceselector", "label": "handleConfirmPriceSelector()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L725"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_project_price_system_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L381", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_project_price_system_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L382", "weighLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L1"}, {"id": "category_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L599"}, {"id": "category_index_handlecategorytableselectionchange", "label": "handleCategoryTableSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L604"}, {"id": "category_index_collectids", "label": "collectIds()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L697"}, {"id": "category_index_catch", "label": "catch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L1089"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L526", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fullscreen_loading", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L527", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L528", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "vue_draggable_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L541", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L542", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L543", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L544", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fetch_paged_list", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L554", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "category_index_handleview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L599", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "category_index_handlecategorytableselectionchange", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L604", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "category_index_collectids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L697", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "category_index_caLine truncated
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_basic_info_collection_region_collectionprotocolnotab_vue", "label": "CollectionProtocolNoTab.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L1"}, {"id": "collection_region_collectionprotocolnotab_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L479"}, {"id": "collection_region_collectionprotocolnotab_resolveissuedusername", "label": "resolveIssuedUserName()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L526"}, {"id": "collection_region_collectionprotocolnotab_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L561"}, {"id": "collection_region_collectionprotocolnotab_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L565"}, {"id": "collection_region_collectionprotocolnotab_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L581"}, {"id": "collection_region_collectionprotocolnotab_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L586"}, {"id": "collection_region_collectionprotocolnotab_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L593"}, {"id": "collection_region_collectionprotocolnotab_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L604"}, {"id": "collection_region_collectionprotocolnotab_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L613"}, {"id": "collection_region_collectionprotocolnotab_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L629"}, {"id": "collection_region_collectionprotocolnotab_handledropdowncommand", "label": "handleDropdownCommand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L664"}, {"id": "collection_region_collectionprotocolnotab_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L671"}, {"id": "collection_region_collectionprotocolnotab_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L678"}, {"id": "collection_region_collectionprotocolnotab_handlebatchrevoke", "label": "handleBatchRevoke()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L692"}, {"id": "collection_region_collectionprotocolnotab_openbatchgenerate", "label": "openBatchGenerate()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L708"}, {"id": "collection_region_collectionprotocolnotab_handlebatchgenerate", "label": "handleBatchGenerate()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L717"}, {"id": "collection_region_collectionprotocolnotab_openbatchissue", "label": "openBatchIssue()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/collection-region/CollectionProtocolNoTab.vue", "source_location": "L740"}, {"id": "cLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1"}, {"id": "process_route_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1437"}, {"id": "process_route_index_get", "label": "get()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1646"}, {"id": "process_route_index_set", "label": "set()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1656"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_protocol_protocolattachmentreadonly_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1069", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_download_attachment", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1070", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "vue_draggable_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1071", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_production", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1072", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1095", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "process_route_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1437", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "process_route_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1557", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "process_route_index_get", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1646", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "process_route_index_set", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1656", "weight": 1.0}], "raw_calls": [{"caller_nid": "process_route_index_if", "callee": "some", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1438"}, {"caller_nid": "process_route_index_if", "callee": "mapReagentOptionLabel", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1440"}, {"caller_nid": "process_route_index_if", "callee": "some", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1558"}, {"caller_nid": "process_route_index_if", "callee": "mapConsumableOptionLabel", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1Line truncated
|
||||
+1
@@ -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": []}
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_demo_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/demo/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_work_order_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1"}, {"id": "qc_work_order_index_formatconfiguredlabitems", "label": "formatConfiguredLabItems()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1027"}, {"id": "qc_work_order_index_formatconfiguredthirditems", "label": "formatConfiguredThirdItems()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1033"}, {"id": "qc_work_order_index_buildtasktypesections", "label": "buildTaskTypeSections()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1044"}, {"id": "qc_work_order_index_buildconfiguredonlysection", "label": "buildConfiguredOnlySection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1102"}, {"id": "qc_work_order_index_formatdetectmethods", "label": "formatDetectMethods()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1120"}, {"id": "qc_work_order_index_formatmetric", "label": "formatMetric()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1127"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_work_order_index_vue", "target": "qc_work_order_index_formatconfiguredlabitems", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1027", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_work_order_index_vue", "target": "qc_work_order_index_formatconfiguredthirditems", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1033", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_work_order_index_vue", "target": "qc_work_order_index_buildtasktypesections", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1044", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_work_order_index_vue", "target": "qc_work_order_index_buildconfiguredonlysection", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1102", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_work_order_index_vue", "target": "qc_work_order_index_formatdetectmethods", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1120", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_work_order_index_vue", "target": "qc_work_order_index_formatmetric", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1127", "weight": 1.0}], "raw_calls": [{"caller_nid": "qc_work_order_index_formatconfiguredlabitems", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1029"}, {"caller_nid": "qc_work_order_index_formatconfiguredlabitems", "callee": "map", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1029"}, {"caller_nid": "qc_work_order_index_formatconfiguredthirditems", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1035"}, {"caller_nid": "qc_work_order_index_formatconfiguredthirditems", "callee": "map", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1035"}, {"caller_nid": "qc_wLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_basic_info_sample_code_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/sample-code/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -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,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_clinical_refund_confirm_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/clinical-refund-confirm/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
Loaded 100 of 311 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user