提交
This commit is contained in:
1 parent
93c28759d0
commit
b23a2eb350
129 files changed
+28511
-17769
No files matched your search
@@ -23,9 +23,10 @@ export function fetchGetRoleList() {
|
||||
}
|
||||
|
||||
/** 流程设计器:用户下拉选项(label=昵称,value=用户ID) */
|
||||
export function fetchUserOptions() {
|
||||
export function fetchUserOptions(params?: { roleName?: string }) {
|
||||
return request.get<Array<{ label: string; value: string }>>({
|
||||
url: '/web/admin/users/options'
|
||||
url: '/web/admin/users/options',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
@@ -984,6 +985,12 @@ export function fetchHospitalList(
|
||||
params
|
||||
})
|
||||
}
|
||||
export function fetchSearchCollectionHospitals(params: { keyword: string; limit?: number }) {
|
||||
return request.get<{ list: Api.BizCollectionHospital.HospitalItem[] }>({
|
||||
url: '/web/admin/collection-hospitals/search',
|
||||
params
|
||||
})
|
||||
}
|
||||
export function fetchCreateHospital(
|
||||
regionId: string,
|
||||
data: { hospitalName: string; orderNum?: number; remark?: string }
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
import request from '@/utils/http'
|
||||
|
||||
type PageList<T> = {
|
||||
list: T[]
|
||||
total: number
|
||||
page: number
|
||||
pageSize: number
|
||||
totalPages: number
|
||||
}
|
||||
|
||||
export type PreTransitProtocolRow = Record<string, unknown>
|
||||
|
||||
export function fetchPreTransitInTransitList(params?: {
|
||||
page?: number
|
||||
pageSize?: number
|
||||
keyword?: string
|
||||
sourceType?: string
|
||||
createTimeStart?: string
|
||||
createTimeEnd?: string
|
||||
sampleCollectTimeStart?: string
|
||||
sampleCollectTimeEnd?: string
|
||||
}) {
|
||||
return request.get<PageList<PreTransitProtocolRow>>({
|
||||
url: '/web/admin/pre-transit-samples/in-transit',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchPreTransitPreDeliveryList(params?: {
|
||||
page?: number
|
||||
pageSize?: number
|
||||
keyword?: string
|
||||
sourceType?: string
|
||||
createTimeStart?: string
|
||||
createTimeEnd?: string
|
||||
sampleCollectTimeStart?: string
|
||||
sampleCollectTimeEnd?: string
|
||||
}) {
|
||||
return request.get<PageList<PreTransitProtocolRow>>({
|
||||
url: '/web/admin/pre-transit-samples/pre-delivery',
|
||||
params
|
||||
})
|
||||
}
|
||||
@@ -27,6 +27,14 @@ export function fetchResearchDonationList(params?: {
|
||||
})
|
||||
}
|
||||
|
||||
// 下一捐赠样本编码(KYJZ+YYYYMMDD+0001 递增)
|
||||
export function fetchNextDonationSampleCode(params?: { pendingCodes?: string }) {
|
||||
return request.get<{ sampleCode: string }>({
|
||||
url: '/web/admin/research-donations/next-sample-code',
|
||||
params
|
||||
})
|
||||
}
|
||||
|
||||
// 详情
|
||||
export function fetchResearchDonationDetail(id: string) {
|
||||
return request.get<{
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column label="目的站点" min-width="120" show-overflow-tooltip>
|
||||
<template #default="{ row }">{{
|
||||
siteName(String(row.transport?.destSiteId || ''))
|
||||
siteName(String(row.transport?.destSiteId || ''), row.transport)
|
||||
}}</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="预计到达" min-width="150" show-overflow-tooltip>
|
||||
@@ -164,7 +164,14 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="样本编码">
|
||||
<el-input
|
||||
v-if="autoGenerateSampleCode"
|
||||
:model-value="sampleDraft.sampleCode"
|
||||
disabled
|
||||
placeholder="系统自动生成"
|
||||
/>
|
||||
<el-select
|
||||
v-else
|
||||
v-model="sampleDraft.sampleCodeId"
|
||||
placeholder="输入编码检索"
|
||||
filterable
|
||||
@@ -186,7 +193,10 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="!hideCollectDetailFields" label="采集量">
|
||||
<el-form-item
|
||||
v-if="!hideCollectDetailFields && !hideDialogCollectAmountUnit"
|
||||
label="采集量"
|
||||
>
|
||||
<el-input
|
||||
v-model="sampleDraft.collectAmount"
|
||||
type="number"
|
||||
@@ -195,7 +205,10 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="!hideCollectDetailFields" label="单位">
|
||||
<el-form-item
|
||||
v-if="!hideCollectDetailFields && !hideDialogCollectAmountUnit"
|
||||
label="单位"
|
||||
>
|
||||
<el-select
|
||||
v-model="sampleDraft.unitId"
|
||||
placeholder="输入单位检索"
|
||||
@@ -412,6 +425,10 @@
|
||||
expressCompanyOptions: Api.ExpressCompany.ExpressCompanyItem[]
|
||||
showPrice?: boolean
|
||||
hideCollectDetailFields?: boolean
|
||||
/** 添加/编辑样本弹窗内隐藏采集量、单位(不影响列表列与存储年限) */
|
||||
hideDialogCollectAmountUnit?: boolean
|
||||
autoGenerateSampleCode?: boolean
|
||||
reserveSampleCode?: () => Promise<string>
|
||||
sampleCodeUsedKey?: 'usedInProtocol'
|
||||
sampleCodeOptionsLoading?: boolean
|
||||
sampleTypeOptionsLoading?: boolean
|
||||
@@ -422,6 +439,8 @@
|
||||
{
|
||||
showPrice: false,
|
||||
hideCollectDetailFields: false,
|
||||
hideDialogCollectAmountUnit: false,
|
||||
autoGenerateSampleCode: false,
|
||||
sampleCodeUsedKey: 'usedInProtocol',
|
||||
sampleCodeOptionsLoading: false,
|
||||
sampleTypeOptionsLoading: false,
|
||||
@@ -497,6 +516,7 @@
|
||||
expressCompanyId: transportRaw.expressCompanyId || '',
|
||||
waybillNo: transportRaw.waybillNo || '',
|
||||
destSiteId: transportRaw.destSiteId || '',
|
||||
destSiteName: transportRaw.destSiteName || '',
|
||||
expressFee: transportRaw.expressFee ?? null,
|
||||
etaTime: transportRaw.etaTime || '',
|
||||
carrierName: transportRaw.carrierName || '',
|
||||
@@ -544,9 +564,13 @@
|
||||
return name
|
||||
}
|
||||
|
||||
function siteName(id: string) {
|
||||
function siteName(id: string, transport?: Record<string, any>) {
|
||||
if (!id) return '—'
|
||||
return props.siteOptions.find((x) => x.id === id)?.siteName || '—'
|
||||
const fromOpt = props.siteOptions.find((x) => x.id === id)?.siteName
|
||||
if (fromOpt && fromOpt !== id) return fromOpt
|
||||
const fromTransport = String(transport?.destSiteName || '').trim()
|
||||
if (fromTransport && fromTransport !== id) return fromTransport
|
||||
return '—'
|
||||
}
|
||||
|
||||
function expressName(id: string) {
|
||||
@@ -638,7 +662,9 @@
|
||||
|
||||
function refreshSampleDialogOptions() {
|
||||
emit('search-sample-type', '')
|
||||
emit('search-sample-code', '', sampleCodeFilterForRow(sampleDraft))
|
||||
if (!props.autoGenerateSampleCode) {
|
||||
emit('search-sample-code', '', sampleCodeFilterForRow(sampleDraft))
|
||||
}
|
||||
emit('search-unit', '')
|
||||
}
|
||||
|
||||
@@ -664,6 +690,7 @@
|
||||
}
|
||||
row.storageYears = st.storageYears
|
||||
}
|
||||
if (props.autoGenerateSampleCode) return
|
||||
row.sampleCodeId = ''
|
||||
row.sampleCode = ''
|
||||
emit('search-sample-code', '', sampleCodeFilterForRow(row))
|
||||
@@ -694,6 +721,10 @@
|
||||
return
|
||||
}
|
||||
Object.assign(batchTransport, createEmptyTransport())
|
||||
const firstWithTransport = selectedSamples.value.find((row) => row.transport?.destSiteId)
|
||||
if (firstWithTransport?.transport) {
|
||||
Object.assign(batchTransport, { ...firstWithTransport.transport })
|
||||
}
|
||||
batchTransportVisible.value = true
|
||||
refreshBatchTransportOptions()
|
||||
}
|
||||
@@ -715,7 +746,7 @@
|
||||
ElMessage.success(`已为 ${selectedSamples.value.length} 个样本应用运输信息`)
|
||||
}
|
||||
|
||||
function openAddSampleDialog() {
|
||||
async function openAddSampleDialog() {
|
||||
sampleDialogMode.value = 'add'
|
||||
sampleDialogIndex.value = -1
|
||||
Object.assign(
|
||||
@@ -735,6 +766,15 @@
|
||||
props.samples.length
|
||||
)
|
||||
)
|
||||
if (props.autoGenerateSampleCode && props.reserveSampleCode) {
|
||||
try {
|
||||
sampleDraft.sampleCode = await props.reserveSampleCode()
|
||||
sampleDraft.sampleCodeId = ''
|
||||
} catch {
|
||||
ElMessage.error('样本编码生成失败,请稍后重试')
|
||||
return
|
||||
}
|
||||
}
|
||||
sampleDialogVisible.value = true
|
||||
refreshSampleDialogOptions()
|
||||
}
|
||||
@@ -758,7 +798,21 @@
|
||||
ElMessage.warning('请选择样本类型')
|
||||
return
|
||||
}
|
||||
if (!sampleDraft.sampleCodeId) {
|
||||
if (props.autoGenerateSampleCode) {
|
||||
const code = String(sampleDraft.sampleCode || '').trim()
|
||||
if (!code) {
|
||||
ElMessage.warning('样本编码生成失败,请关闭后重试')
|
||||
return
|
||||
}
|
||||
const dup = props.samples.some(
|
||||
(s, i) =>
|
||||
i !== sampleDialogIndex.value && String(s.sampleCode || '').trim() === code
|
||||
)
|
||||
if (dup) {
|
||||
ElMessage.warning('样本编码重复,请重新添加')
|
||||
return
|
||||
}
|
||||
} else if (!sampleDraft.sampleCodeId) {
|
||||
ElMessage.warning('请选择样本编码')
|
||||
return
|
||||
}
|
||||
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_import_components_d_ts", "label": "components.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_api_pre_transit_sample_ts", "label": "pre-transit-sample.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L1"}, {"id": "api_pre_transit_sample_fetchpretransitintransitlist", "label": "fetchPreTransitInTransitList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L13"}, {"id": "api_pre_transit_sample_fetchpretransitpredeliverylist", "label": "fetchPreTransitPreDeliveryList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L29"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_pre_transit_sample_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_pre_transit_sample_ts", "target": "api_pre_transit_sample_fetchpretransitintransitlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_pre_transit_sample_ts", "target": "api_pre_transit_sample_fetchpretransitpredeliverylist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L29", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_pre_transit_sample_fetchpretransitintransitlist", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L23"}, {"caller_nid": "api_pre_transit_sample_fetchpretransitpredeliverylist", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L39"}]}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_import_components_d_ts", "label": "components.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_sample_reception_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "label": "DonationFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1"}, {"id": "list_donationformdialog_createemptytransport", "label": "createEmptyTransport()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L778"}, {"id": "list_donationformdialog_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L796"}, {"id": "list_donationformdialog_loadethnicoptions", "label": "loadEthnicOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L803"}, {"id": "list_donationformdialog_ensureethnicoptioninlist", "label": "ensureEthnicOptionInList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L814"}, {"id": "list_donationformdialog_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L915"}, {"id": "list_donationformdialog_scrolltosection", "label": "scrollToSection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L974"}, {"id": "list_donationformdialog_normalizesamplerow", "label": "normalizeSampleRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L982"}, {"id": "list_donationformdialog_handleopenforadd", "label": "handleOpenForAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1005"}, {"id": "list_donationformdialog_applydonationbundletoform", "label": "applyDonationBundleToForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1052"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L672", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L673", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L674", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L685", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_business", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L691", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_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/research-donation/list/DonationFormDialog.vue", "source_location": "L692", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_weLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocoltable_vue", "label": "PreTransitProtocolTable.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolTable.vue", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocoltable_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_pre_transit_sample", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolTable.vue", "source_location": "L185", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocoltable_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_status_tag_registry", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolTable.vue", "source_location": "L186", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocoltable_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_status_tag_registry", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolTable.vue", "source_location": "L194", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation_ts", "label": "research-donation.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L1"}, {"id": "api_research_donation_fetchresearchdonationlist", "label": "fetchResearchDonationList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L14"}, {"id": "api_research_donation_fetchnextdonationsamplecode", "label": "fetchNextDonationSampleCode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L31"}, {"id": "api_research_donation_fetchresearchdonationdetail", "label": "fetchResearchDonationDetail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L39"}, {"id": "api_research_donation_fetchcreateresearchdonation", "label": "fetchCreateResearchDonation()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L52"}, {"id": "api_research_donation_fetchupdateresearchdonation", "label": "fetchUpdateResearchDonation()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L61"}, {"id": "api_research_donation_fetchdeleteresearchdonation", "label": "fetchDeleteResearchDonation()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L70"}, {"id": "api_research_donation_fetchbatchdeleteresearchdonation", "label": "fetchBatchDeleteResearchDonation()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L78"}, {"id": "api_research_donation_fetchresearchdonationauditlist", "label": "fetchResearchDonationAuditList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L87"}, {"id": "api_research_donation_fetchsubmitdonationaudit", "label": "fetchSubmitDonationAudit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L101"}, {"id": "api_research_donation_fetchdonationstatuschange", "label": "fetchDonationStatusChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L114"}, {"id": "api_research_donation_fetchconvertfromstorage", "label": "fetchConvertFromStorage()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L126"}, {"id": "api_research_donation_fetchconverttostorage", "label": "fetchConvertToStorage()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L135"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation_ts", "target": "api_research_donation_fetchresearchdonationlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L14", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation_ts", "target": "api_research_donation_fetchnextdonationsamplecode", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L31", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation_ts", "target": "api_research_donation_fetchresearchdonationdetail", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L39", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation_ts", "target": "api_research_donation_fetchcreateresearchdonation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/research-donation.ts", "source_location": "L52", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation_ts", "target": "api_research_donation_fetchupdateresearchdonation", "relation": "contains", "confidence": "EXTRACTED"Line truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "label": "beforeEach.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L1"}, {"id": "guards_beforeeach_getpendingloading", "label": "getPendingLoading()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L75"}, {"id": "guards_beforeeach_resetpendingloading", "label": "resetPendingLoading()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L82"}, {"id": "guards_beforeeach_getrouteinitfailed", "label": "getRouteInitFailed()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L89"}, {"id": "guards_beforeeach_resetrouteinitstate", "label": "resetRouteInitState()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L96"}, {"id": "guards_beforeeach_setupbeforeeachguard", "label": "setupBeforeEachGuard()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L104"}, {"id": "guards_beforeeach_closeloading", "label": "closeLoading()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L128"}, {"id": "guards_beforeeach_handlerouteguard", "label": "handleRouteGuard()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L140"}, {"id": "guards_beforeeach_handleloginstatus", "label": "handleLoginStatus()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L204"}, {"id": "guards_beforeeach_isstaticroute", "label": "isStaticRoute()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L232"}, {"id": "guards_beforeeach_handledynamicroutes", "label": "handleDynamicRoutes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L262"}, {"id": "guards_beforeeach_fetchuserinfo", "label": "fetchUserInfo()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L381"}, {"id": "guards_beforeeach_resetrouterstate", "label": "resetRouterState()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L406"}, {"id": "guards_beforeeach_handlerootpathredirect", "label": "handleRootPathRedirect()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L424"}, {"id": "guards_beforeeach_isunauthorizederror", "label": "isUnauthorizedError()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L441"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "vue_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L38", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L39", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "nprogress", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_setting", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L42", "weight": 1.0}, {"source": "users_wuzilong_work_00Line truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationviewdialog_vue", "label": "DonationViewDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L1"}, {"id": "list_donationviewdialog_dash", "label": "dash()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L786"}, {"id": "list_donationviewdialog_formatmetric", "label": "formatMetric()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L791"}, {"id": "list_donationviewdialog_formatymd", "label": "formatYmd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L797"}, {"id": "list_donationviewdialog_formatym", "label": "formatYm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L803"}, {"id": "list_donationviewdialog_auditordisplay", "label": "auditorDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L809"}, {"id": "list_donationviewdialog_sampletypename", "label": "sampleTypeName()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L815"}, {"id": "list_donationviewdialog_unitname", "label": "unitName()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L819"}, {"id": "list_donationviewdialog_ensureunitsinoptions", "label": "ensureUnitsInOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L827"}, {"id": "list_donationviewdialog_sitename", "label": "siteName()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L845"}, {"id": "list_donationviewdialog_expressname", "label": "expressName()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L849"}, {"id": "list_donationviewdialog_samplereceptionchecklist", "label": "sampleReceptionCheckList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L853"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationviewdialog_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/research-donation/list/DonationViewDialog.vue", "source_location": "L614", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationviewdialog_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L615", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationviewdialog_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/research-donation/list/DonationViewDialog.vue", "source_location": "L616", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationviewdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_qc_info_grouped_panel_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationViewDialog.vue", "source_location": "L617", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationviewdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_production_info_cards_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "label": "DonationFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1"}, {"id": "list_donationformdialog_createemptytransport", "label": "createEmptyTransport()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L788"}, {"id": "list_donationformdialog_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L806"}, {"id": "list_donationformdialog_loadethnicoptions", "label": "loadEthnicOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L813"}, {"id": "list_donationformdialog_ensureethnicoptioninlist", "label": "ensureEthnicOptionInList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L824"}, {"id": "list_donationformdialog_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L925"}, {"id": "list_donationformdialog_scrolltosection", "label": "scrollToSection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L984"}, {"id": "list_donationformdialog_normalizesamplerow", "label": "normalizeSampleRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L992"}, {"id": "list_donationformdialog_handleopenforadd", "label": "handleOpenForAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1015"}, {"id": "list_donationformdialog_applydonationbundletoform", "label": "applyDonationBundleToForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1062"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L682", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L683", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L684", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L695", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_business", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L701", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_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/research-donation/list/DonationFormDialog.vue", "source_location": "L702", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_weLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "label": "PreTransitProtocolCardList.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L1"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "label": "statusLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L238"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "label": "statusTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L245"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_sourcetypetagtype", "label": "sourceTypeTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L252"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L238", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L245", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_sourcetypetagtype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L252", "weight": 1.0}], "raw_calls": [{"caller_nid": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "callee": "String", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L239"}, {"caller_nid": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "callee": "donationStatusLabel", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L241"}, {"caller_nid": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "callee": "protocolStatusLabel", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L242"}, {"caller_nid": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "callee": "String", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L246"}, {"caller_nid": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "callee": "donationStatusTagType", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L248"}, {"caller_nid": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "callee": "protocolStatusTagType", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L249"}]}
|
||||
+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": "L375"}], "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": "L345", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L346", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L359", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L360", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_tree_path", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L370", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_user_avatar", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L371", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "user_index_loadroleoptions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L375", "weight": 1.0}], "raw_calls": [{"caller_nid": "user_index_loadroleoptions", "callee": "fetchRoleOptions", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L377"}]}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/sample-transport-form-section/index.vue", "source_location": "L1"}, {"id": "sample_transport_form_section_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/sample-transport-form-section/index.vue", "source_location": "L673"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "target": "sample_transport_form_section_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/sample-transport-form-section/index.vue", "source_location": "L673", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/sample-transport-form-section/index.vue", "source_location": "L1"}, {"id": "sample_transport_form_section_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/sample-transport-form-section/index.vue", "source_location": "L687"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "target": "sample_transport_form_section_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/sample-transport-form-section/index.vue", "source_location": "L687", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_cleanroom_garment_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/cleanroom-garment/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "label": "DonationFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1"}, {"id": "list_donationformdialog_createemptytransport", "label": "createEmptyTransport()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L785"}, {"id": "list_donationformdialog_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L803"}, {"id": "list_donationformdialog_loadethnicoptions", "label": "loadEthnicOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L810"}, {"id": "list_donationformdialog_ensureethnicoptioninlist", "label": "ensureEthnicOptionInList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L821"}, {"id": "list_donationformdialog_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L922"}, {"id": "list_donationformdialog_scrolltosection", "label": "scrollToSection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L981"}, {"id": "list_donationformdialog_normalizesamplerow", "label": "normalizeSampleRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L989"}, {"id": "list_donationformdialog_handleopenforadd", "label": "handleOpenForAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1012"}, {"id": "list_donationformdialog_applydonationbundletoform", "label": "applyDonationBundleToForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1059"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L680", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L681", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L682", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L693", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_business", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L698", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_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/research-donation/list/DonationFormDialog.vue", "source_location": "L699", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_weLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "label": "PreTransitProtocolCardList.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/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_protocolviewdialog_vue", "label": "ProtocolViewDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1"}, {"id": "protocol_protocolviewdialog_fullmoontodostatuslabel", "label": "fullmoonTodoStatusLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1332"}, {"id": "protocol_protocolviewdialog_fullmoontodostatustagtype", "label": "fullmoonTodoStatusTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1336"}, {"id": "protocol_protocolviewdialog_insurancesubscribedlabel", "label": "insuranceSubscribedLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1340"}, {"id": "protocol_protocolviewdialog_insurancesubscribedtagtype", "label": "insuranceSubscribedTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1344"}, {"id": "protocol_protocolviewdialog_fmtmoney", "label": "fmtMoney()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1349"}, {"id": "protocol_protocolviewdialog_storagecertmakestatuslabel", "label": "storageCertMakeStatusLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1354"}, {"id": "protocol_protocolviewdialog_storagecertmakestatustagtype", "label": "storageCertMakeStatusTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1358"}, {"id": "protocol_protocolviewdialog_dash", "label": "dash()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1418"}, {"id": "protocol_protocolviewdialog_formatmetric", "label": "formatMetric()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1423"}, {"id": "protocol_protocolviewdialog_formatymd", "label": "formatYmd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1429"}, {"id": "protocol_protocolviewdialog_formatinstallmentamounts", "label": "formatInstallmentAmounts()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1435"}, {"id": "protocol_protocolviewdialog_formatym", "label": "formatYm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1440"}, {"id": "protocol_protocolviewdialog_paydetailcolorclass", "label": "payDetailColorClass()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1446"}, {"id": "protocol_protocolviewdialog_isreceiptfinanceconfirmed", "label": "isReceiptFinanceConfirmed()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1454"}, {"id": "protocol_protocolviewdialog_financeconfirmattachmentfiles", "label": "financeConfirmAttachmentFiles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1721"}, {"id": "protocol_protocolviewdialog_refundattachmentfiles", "label": "refundAttachmentFiles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1728"}, {"id": "protocol_protocolviewdialog_refundfinanceconfirmattachmentfiles", "label": "refundFinanceConfirmAttachmentFiles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolViewDialog.vue", "source_location": "L1735"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_protocol_protocolviewdialog_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/weLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_import_components_d_ts", "label": "components.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "label": "PreTransitProtocolCardList.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L1"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_rowkey", "label": "rowKey()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L296"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_isexpanded", "label": "isExpanded()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L301"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_expandrow", "label": "expandRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L305"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_collapserow", "label": "collapseRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L310"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "label": "statusLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L316"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "label": "statusTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L323"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_sourcetypetagtype", "label": "sourceTypeTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L330"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_rowkey", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L296", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_isexpanded", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_expandrow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L305", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_collapserow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L316", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L323", "weight": 1.0}, {Line truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_donation_standard_import_parse_ts", "label": "donation-standard-import-parse.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L1"}, {"id": "utils_donation_standard_import_parse_normalizeline", "label": "normalizeLine()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L47"}, {"id": "utils_donation_standard_import_parse_splitkeyvalue", "label": "splitKeyValue()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L53"}, {"id": "utils_donation_standard_import_parse_parsesex", "label": "parseSex()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L59"}, {"id": "utils_donation_standard_import_parse_parsedeliverymode", "label": "parseDeliveryMode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L67"}, {"id": "utils_donation_standard_import_parse_parseweightgram", "label": "parseWeightGram()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L75"}, {"id": "utils_donation_standard_import_parse_parsescore", "label": "parseScore()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L84"}, {"id": "utils_donation_standard_import_parse_parsedatetime", "label": "parseDatetime()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L93"}, {"id": "utils_donation_standard_import_parse_ismaternalbloodempty", "label": "isMaternalBloodEmpty()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L102"}, {"id": "utils_donation_standard_import_parse_parsedonationstandardimporttext", "label": "parseDonationStandardImportText()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L109"}, {"id": "utils_donation_standard_import_parse_matchcellsampletype", "label": "matchCellSampleType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L203"}, {"id": "utils_donation_standard_import_parse_matchexpresscompany", "label": "matchExpressCompany()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L234"}, {"id": "utils_donation_standard_import_parse_isblankstring", "label": "isBlankString()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L256"}, {"id": "utils_donation_standard_import_parse_isemptynumber", "label": "isEmptyNumber()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L260"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_donation_standard_import_parse_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_chinese_datetime_parse", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_donation_standard_import_parse_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_numeric_input_parse", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L2", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_donation_standard_import_parse_ts", "target": "utils_donation_standard_import_parse_normalizeline", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "source_location": "L47", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_donation_standard_import_parse_ts", "target": "utils_donation_standard_import_parse_splitkeyvalue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/utils/donation-standard-import-parse.ts", "souLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "label": "PreTransitProtocolCardList.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "label": "PreTransitProtocolCardList.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_api_d_ts", "label": "api.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/api.d.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_types_api_d_ts", "target": "vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/api.d.ts", "source_location": "L801", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/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_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_core_menuprocessor_ts", "label": "MenuProcessor.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L1"}, {"id": "core_menuprocessor_menuprocessor", "label": "MenuProcessor", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L18"}, {"id": "core_menuprocessor_menuprocessor_normalizemenucode", "label": ".normalizeMenuCode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L23"}, {"id": "core_menuprocessor_menuprocessor_getmenulist", "label": ".getMenuList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L39"}, {"id": "core_menuprocessor_menuprocessor_processfrontendmenu", "label": ".processFrontendMenu()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L59"}, {"id": "core_menuprocessor_menuprocessor_processbackendmenu", "label": ".processBackendMenu()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L88"}, {"id": "core_menuprocessor_menuprocessor_filtermenubyroles", "label": ".filterMenuByRoles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L96"}, {"id": "core_menuprocessor_menuprocessor_filtermenubycodes", "label": ".filterMenuByCodes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L116"}, {"id": "core_menuprocessor_menuprocessor_filteremptymenus", "label": ".filterEmptyMenus()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L142"}, {"id": "core_menuprocessor_menuprocessor_validatemenulist", "label": ".validateMenuList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L184"}, {"id": "core_menuprocessor_menuprocessor_normalizemenupaths", "label": ".normalizeMenuPaths()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L192"}, {"id": "core_menuprocessor_menuprocessor_resolvedefaultredirect", "label": ".resolveDefaultRedirect()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L216"}, {"id": "core_menuprocessor_menuprocessor_isnavigableroute", "label": ".isNavigableRoute()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L238"}, {"id": "core_menuprocessor_menuprocessor_validatemenupaths", "label": ".validateMenuPaths()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L258"}, {"id": "core_menuprocessor_menuprocessor_isvalidabsolutepath", "label": ".isValidAbsolutePath()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L284"}, {"id": "core_menuprocessor_menuprocessor_logpatherror", "label": ".logPathError()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L295"}, {"id": "core_menuprocessor_menuprocessor_buildfullpath", "label": ".buildFullPath()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L317"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_core_menuprocessor_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_types_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L10", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_core_menuprocessor_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/core/MenuProcessor.ts", "source_location": "L11", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_core_menuprocessor_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_hooks_core_useappmode", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00cLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/sample-transport-form-section/index.vue", "source_location": "L1"}, {"id": "sample_transport_form_section_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/sample-transport-form-section/index.vue", "source_location": "L682"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "target": "sample_transport_form_section_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/sample-transport-form-section/index.vue", "source_location": "L682", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "label": "PreTransitProtocolCardList.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L1"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_rowkey", "label": "rowKey()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L296"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_isexpanded", "label": "isExpanded()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L301"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_expandrow", "label": "expandRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L305"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_collapserow", "label": "collapseRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L310"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "label": "statusLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L316"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "label": "statusTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L323"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_sourcetypetagtype", "label": "sourceTypeTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L330"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_rowkey", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L296", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_isexpanded", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L301", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_expandrow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L305", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_collapserow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L316", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L323", "weight": 1.0}, {Line truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_import_components_d_ts", "label": "components.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "label": "beforeEach.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L1"}, {"id": "guards_beforeeach_getpendingloading", "label": "getPendingLoading()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L76"}, {"id": "guards_beforeeach_resetpendingloading", "label": "resetPendingLoading()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L83"}, {"id": "guards_beforeeach_getrouteinitfailed", "label": "getRouteInitFailed()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L90"}, {"id": "guards_beforeeach_resetrouteinitstate", "label": "resetRouteInitState()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L97"}, {"id": "guards_beforeeach_setupbeforeeachguard", "label": "setupBeforeEachGuard()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L105"}, {"id": "guards_beforeeach_closeloading", "label": "closeLoading()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L129"}, {"id": "guards_beforeeach_handlerouteguard", "label": "handleRouteGuard()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L141"}, {"id": "guards_beforeeach_handleloginstatus", "label": "handleLoginStatus()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L205"}, {"id": "guards_beforeeach_isstaticroute", "label": "isStaticRoute()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L233"}, {"id": "guards_beforeeach_handledynamicroutes", "label": "handleDynamicRoutes()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L263"}, {"id": "guards_beforeeach_fetchuserinfo", "label": "fetchUserInfo()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L384"}, {"id": "guards_beforeeach_resetrouterstate", "label": "resetRouterState()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L409"}, {"id": "guards_beforeeach_handlerootpathredirect", "label": "handleRootPathRedirect()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L427"}, {"id": "guards_beforeeach_isunauthorizederror", "label": "isUnauthorizedError()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L444"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "vue_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L38", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L39", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "nprogress", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L40", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_setting", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L41", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/router/guards/beforeEach.ts", "source_location": "L42", "weight": 1.0}, {"source": "users_wuzilong_work_00Line truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_api_pre_transit_sample_ts", "label": "pre-transit-sample.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L1"}, {"id": "api_pre_transit_sample_fetchpretransitintransitlist", "label": "fetchPreTransitInTransitList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L13"}, {"id": "api_pre_transit_sample_fetchpretransitpredeliverylist", "label": "fetchPreTransitPreDeliveryList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L27"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_pre_transit_sample_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_http", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L1", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_pre_transit_sample_ts", "target": "api_pre_transit_sample_fetchpretransitintransitlist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L13", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_api_pre_transit_sample_ts", "target": "api_pre_transit_sample_fetchpretransitpredeliverylist", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L27", "weight": 1.0}], "raw_calls": [{"caller_nid": "api_pre_transit_sample_fetchpretransitintransitlist", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L21"}, {"caller_nid": "api_pre_transit_sample_fetchpretransitpredeliverylist", "callee": "get", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/pre-transit-sample.ts", "source_location": "L35"}]}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "label": "PreTransitProtocolCardList.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.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_quality_inspection_pre_transit_sample_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "label": "DonationFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1"}, {"id": "list_donationformdialog_createemptytransport", "label": "createEmptyTransport()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L788"}, {"id": "list_donationformdialog_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L806"}, {"id": "list_donationformdialog_loadethnicoptions", "label": "loadEthnicOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L813"}, {"id": "list_donationformdialog_ensureethnicoptioninlist", "label": "ensureEthnicOptionInList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L824"}, {"id": "list_donationformdialog_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L925"}, {"id": "list_donationformdialog_scrolltosection", "label": "scrollToSection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L984"}, {"id": "list_donationformdialog_normalizesamplerow", "label": "normalizeSampleRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L992"}, {"id": "list_donationformdialog_handleopenforadd", "label": "handleOpenForAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1015"}, {"id": "list_donationformdialog_applydonationbundletoform", "label": "applyDonationBundleToForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1062"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L682", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L683", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L684", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L695", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_business", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L701", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_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/research-donation/list/DonationFormDialog.vue", "source_location": "L702", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_weLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "label": "DonationFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1"}, {"id": "list_donationformdialog_createemptytransport", "label": "createEmptyTransport()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L785"}, {"id": "list_donationformdialog_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L803"}, {"id": "list_donationformdialog_loadethnicoptions", "label": "loadEthnicOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L810"}, {"id": "list_donationformdialog_ensureethnicoptioninlist", "label": "ensureEthnicOptionInList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L821"}, {"id": "list_donationformdialog_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L924"}, {"id": "list_donationformdialog_scrolltosection", "label": "scrollToSection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L985"}, {"id": "list_donationformdialog_normalizesamplerow", "label": "normalizeSampleRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L993"}, {"id": "list_donationformdialog_handleopenforadd", "label": "handleOpenForAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1016"}, {"id": "list_donationformdialog_applydonationbundletoform", "label": "applyDonationBundleToForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1066"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L680", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L681", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L682", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L693", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_business", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L698", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_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/research-donation/list/DonationFormDialog.vue", "source_location": "L699", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_weLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "label": "PreTransitProtocolCardList.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L1"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_rowkey", "label": "rowKey()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L290"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_isexpanded", "label": "isExpanded()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L295"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_expandrow", "label": "expandRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L299"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_collapserow", "label": "collapseRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L304"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "label": "statusLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L310"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "label": "statusTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L317"}, {"id": "pre_transit_sample_pretransitprotocolcardlist_sourcetypetagtype", "label": "sourceTypeTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L324"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_rowkey", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L290", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_isexpanded", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L295", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_expandrow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L299", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_collapserow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L304", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_statuslabel", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L310", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocolcardlist_vue", "target": "pre_transit_sample_pretransitprotocolcardlist_statustagtype", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue", "source_location": "L317", "weight": 1.0}, {Line truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_protocol_protocolformdialog_vue", "label": "ProtocolFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1"}, {"id": "protocol_protocolformdialog_fmtmoney", "label": "fmtMoney()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L937"}, {"id": "protocol_protocolformdialog_createemptytransport", "label": "createEmptyTransport()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1014"}, {"id": "protocol_protocolformdialog_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1032"}, {"id": "protocol_protocolformdialog_loadethnicoptions", "label": "loadEthnicOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1039"}, {"id": "protocol_protocolformdialog_ensureethnicoptioninlist", "label": "ensureEthnicOptionInList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1050"}, {"id": "protocol_protocolformdialog_initpaymentdetailexpandflags", "label": "initPaymentDetailExpandFlags()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1081"}, {"id": "protocol_protocolformdialog_paymentdetailsummary", "label": "paymentDetailSummary()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1087"}, {"id": "protocol_protocolformdialog_togglepaymentdetailexpand", "label": "togglePaymentDetailExpand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1114"}, {"id": "protocol_protocolformdialog_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1205"}, {"id": "protocol_protocolformdialog_scrolltosection", "label": "scrollToSection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1280"}, {"id": "protocol_protocolformdialog_normalizesamplerow", "label": "normalizeSampleRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1288"}, {"id": "protocol_protocolformdialog_addpaymentdetail", "label": "addPaymentDetail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1311"}, {"id": "protocol_protocolformdialog_defaultinstallmentstartdateymd", "label": "defaultInstallmentStartDateYmd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1341"}, {"id": "protocol_protocolformdialog_datetimetoymd", "label": "datetimeToYmd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1351"}, {"id": "protocol_protocolformdialog_isfqnumericfieldempty", "label": "isFqNumericFieldEmpty()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1359"}, {"id": "protocol_protocolformdialog_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1807"}, {"id": "protocol_protocolformdialog_for", "label": "for()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocol/ProtocolFormDialog.vue", "source_location": "L1818"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_protocol_protocolformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/protocLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "label": "user.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "pinia", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L15", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L16", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_enums_appenum", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L17", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L18", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_worktab", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L19", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_types_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L20", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_router_guards_beforeeach", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L21", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_menu", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L22", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_storage_storage_config", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L23", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_auth", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L24", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_router_routesalias", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L25", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_router", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L26", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_store_modules_user_ts", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_user_avatar", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/store/modules/user.ts", "source_location": "L27", "weight": 1.0}], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin_ts", "label": "admin.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L1"}, {"id": "api_admin_fetchgetmenulist", "label": "fetchGetMenuList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L10"}, {"id": "api_admin_fetchgetrolelist", "label": "fetchGetRoleList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L19"}, {"id": "api_admin_fetchuseroptions", "label": "fetchUserOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L26"}, {"id": "api_admin_fetchroleoptions", "label": "fetchRoleOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L33"}, {"id": "api_admin_fetchtenantlist", "label": "fetchTenantList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L43"}, {"id": "api_admin_fetchcreatetenant", "label": "fetchCreateTenant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L56"}, {"id": "api_admin_fetchupdatetenant", "label": "fetchUpdateTenant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L71"}, {"id": "api_admin_fetchdeletetenant", "label": "fetchDeleteTenant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L89"}, {"id": "api_admin_fetchuserlist", "label": "fetchUserList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L100"}, {"id": "api_admin_fetchuserdetail", "label": "fetchUserDetail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L119"}, {"id": "api_admin_fetchcreateuser", "label": "fetchCreateUser()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L125"}, {"id": "api_admin_fetchupdateuser", "label": "fetchUpdateUser()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L147"}, {"id": "api_admin_fetchdeleteuser", "label": "fetchDeleteUser()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L170"}, {"id": "api_admin_fetchresetpassword", "label": "fetchResetPassword()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L177"}, {"id": "api_admin_fetchuploaduseravatar", "label": "fetchUploadUserAvatar()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L185"}, {"id": "api_admin_fetchregionlist", "label": "fetchRegionList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L196"}, {"id": "api_admin_fetchactiveregions", "label": "fetchActiveRegions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L214"}, {"id": "api_admin_fetchnotdeletedregions", "label": "fetchNotDeletedRegions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L231"}, {"id": "api_admin_fetchcategorylist", "label": "fetchCategoryList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L259"}, {"id": "api_admin_fetchcreatecategory", "label": "fetchCreateCategory()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L277"}, {"id": "api_admin_fetchupdatecategory", "label": "fetchUpdateCategory()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L290"}, {"id": "api_admin_fetchdeletecategory", "label": "fetchDeleteCategory()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L307"}, {"id": "api_admin_fetchuploadcategoryimage", "label": "fetchUploadCategoryImage()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L313"}, {"id": "api_admin_fetchunitlist", "label": "fetchUnitList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L324"}, {"id": "api_admin_fetchcreateunit", "label": "fetchCrLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin_ts", "label": "admin.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L1"}, {"id": "api_admin_fetchgetmenulist", "label": "fetchGetMenuList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L10"}, {"id": "api_admin_fetchgetrolelist", "label": "fetchGetRoleList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L19"}, {"id": "api_admin_fetchuseroptions", "label": "fetchUserOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L26"}, {"id": "api_admin_fetchroleoptions", "label": "fetchRoleOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L34"}, {"id": "api_admin_fetchtenantlist", "label": "fetchTenantList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L44"}, {"id": "api_admin_fetchcreatetenant", "label": "fetchCreateTenant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L57"}, {"id": "api_admin_fetchupdatetenant", "label": "fetchUpdateTenant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L72"}, {"id": "api_admin_fetchdeletetenant", "label": "fetchDeleteTenant()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L90"}, {"id": "api_admin_fetchuserlist", "label": "fetchUserList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L101"}, {"id": "api_admin_fetchuserdetail", "label": "fetchUserDetail()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L120"}, {"id": "api_admin_fetchcreateuser", "label": "fetchCreateUser()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L126"}, {"id": "api_admin_fetchupdateuser", "label": "fetchUpdateUser()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L148"}, {"id": "api_admin_fetchdeleteuser", "label": "fetchDeleteUser()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L171"}, {"id": "api_admin_fetchresetpassword", "label": "fetchResetPassword()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L178"}, {"id": "api_admin_fetchuploaduseravatar", "label": "fetchUploadUserAvatar()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L186"}, {"id": "api_admin_fetchregionlist", "label": "fetchRegionList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L197"}, {"id": "api_admin_fetchactiveregions", "label": "fetchActiveRegions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L215"}, {"id": "api_admin_fetchnotdeletedregions", "label": "fetchNotDeletedRegions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L232"}, {"id": "api_admin_fetchcategorylist", "label": "fetchCategoryList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L260"}, {"id": "api_admin_fetchcreatecategory", "label": "fetchCreateCategory()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L278"}, {"id": "api_admin_fetchupdatecategory", "label": "fetchUpdateCategory()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L291"}, {"id": "api_admin_fetchdeletecategory", "label": "fetchDeleteCategory()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L308"}, {"id": "api_admin_fetchuploadcategoryimage", "label": "fetchUploadCategoryImage()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L314"}, {"id": "api_admin_fetchunitlist", "label": "fetchUnitList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/api/admin.ts", "source_location": "L325"}, {"id": "api_admin_fetchcreateunit", "label": "fetchCrLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "label": "DonationFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1"}, {"id": "list_donationformdialog_createemptytransport", "label": "createEmptyTransport()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L788"}, {"id": "list_donationformdialog_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L806"}, {"id": "list_donationformdialog_loadethnicoptions", "label": "loadEthnicOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L813"}, {"id": "list_donationformdialog_ensureethnicoptioninlist", "label": "ensureEthnicOptionInList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L824"}, {"id": "list_donationformdialog_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L925"}, {"id": "list_donationformdialog_scrolltosection", "label": "scrollToSection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L984"}, {"id": "list_donationformdialog_normalizesamplerow", "label": "normalizeSampleRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L992"}, {"id": "list_donationformdialog_handleopenforadd", "label": "handleOpenForAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1015"}, {"id": "list_donationformdialog_applydonationbundletoform", "label": "applyDonationBundleToForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1062"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L682", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L683", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L684", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L695", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_business", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L701", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_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/research-donation/list/DonationFormDialog.vue", "source_location": "L702", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_weLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "label": "DonationFormDialog.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1"}, {"id": "list_donationformdialog_createemptytransport", "label": "createEmptyTransport()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L778"}, {"id": "list_donationformdialog_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L796"}, {"id": "list_donationformdialog_loadethnicoptions", "label": "loadEthnicOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L803"}, {"id": "list_donationformdialog_ensureethnicoptioninlist", "label": "ensureEthnicOptionInList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L814"}, {"id": "list_donationformdialog_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L915"}, {"id": "list_donationformdialog_scrolltosection", "label": "scrollToSection()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L974"}, {"id": "list_donationformdialog_normalizesamplerow", "label": "normalizeSampleRow()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L982"}, {"id": "list_donationformdialog_handleopenforadd", "label": "handleOpenForAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1006"}, {"id": "list_donationformdialog_applydonationbundletoform", "label": "applyDonationBundleToForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L1053"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_sample_transport_form_section_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L672", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L673", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L674", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_research_donation", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L685", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_business", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/research-donation/list/DonationFormDialog.vue", "source_location": "L691", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_research_donation_list_donationformdialog_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/research-donation/list/DonationFormDialog.vue", "source_location": "L692", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_weLine truncated
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_types_import_components_d_ts", "label": "components.d.ts", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/types/import/components.d.ts", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
+1
@@ -0,0 +1 @@
|
||||
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_pre_transit_sample_pretransitprotocoltable_vue", "label": "PreTransitProtocolTable.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolTable.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
|
||||
@@ -11,7 +11,6 @@ import type { AppRouteRecord } from '@/types/router'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
import { useAppMode } from '@/hooks/core/useAppMode'
|
||||
import { fetchGetMenuList } from '@/api/admin'
|
||||
import { fetchGetMenuCodes } from '@/api/auth'
|
||||
import { asyncRoutes } from '../routes/asyncRoutes'
|
||||
import { RoutesAlias } from '../routesAlias'
|
||||
import { formatMenuTitle } from '@/utils'
|
||||
@@ -72,15 +71,12 @@ export class MenuProcessor {
|
||||
}
|
||||
}
|
||||
|
||||
// 静态菜单模式下,admin 按后端返回的 menuCodes 过滤菜单
|
||||
if (info?.role === 'admin') {
|
||||
const perm = await fetchGetMenuCodes()
|
||||
// 静态菜单模式下,admin 按 fetchUserInfo 已缓存的 menuCodes 过滤菜单(避免重复请求)
|
||||
if (info?.role === 'admin' && !userStore.menuPermAll && !userStore.isSuperAdmin) {
|
||||
const codeSet = new Set(
|
||||
(perm?.menuCodes || []).map((x) => this.normalizeMenuCode(x)).filter(Boolean)
|
||||
(userStore.menuCodes || []).map((x) => this.normalizeMenuCode(x)).filter(Boolean)
|
||||
)
|
||||
if (!perm?.all) {
|
||||
menuList = this.filterMenuByCodes(menuList, codeSet)
|
||||
}
|
||||
menuList = this.filterMenuByCodes(menuList, codeSet)
|
||||
}
|
||||
|
||||
return this.filterEmptyMenus(menuList)
|
||||
|
||||
@@ -49,6 +49,7 @@ import { loadingService } from '@/utils/ui'
|
||||
import { useCommon } from '@/hooks/core/useCommon'
|
||||
import { useWorktabStore } from '@/store/modules/worktab'
|
||||
import { fetchGetUserInfo, fetchGetMenuCodes } from '@/api/auth'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { ApiStatus } from '@/utils/http/status'
|
||||
import { isHttpError } from '@/utils/http/error'
|
||||
import { RouteRegistry, MenuProcessor, IframeRouteManager, RoutePermissionValidator } from '../core'
|
||||
@@ -278,11 +279,15 @@ async function handleDynamicRoutes(
|
||||
// 2. 获取菜单数据
|
||||
const menuList = await menuProcessor.getMenuList()
|
||||
|
||||
// 3. 验证菜单数据:无可用菜单时跳转 403,而非当作系统错误
|
||||
// 3. 验证菜单数据:无可用菜单时清会话并退回登录页
|
||||
if (!menuProcessor.validateMenuList(menuList)) {
|
||||
routeInitInProgress = false
|
||||
closeLoading()
|
||||
next({ name: 'Exception403', replace: true })
|
||||
ElMessage.error('当前账号未分配菜单权限,请联系管理员')
|
||||
const userStore = useUserStore()
|
||||
await userStore.clearSession()
|
||||
resetRouterState(0)
|
||||
next({ name: 'Login', replace: true })
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -937,6 +937,17 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
|
||||
roles: ['admin']
|
||||
},
|
||||
children: [
|
||||
{
|
||||
id: '70000000000000000000000000000001',
|
||||
name: 'QualityInspectionPreTransitSample',
|
||||
path: 'pre-transit-sample',
|
||||
component: '/quality-inspection/pre-transit-sample/index',
|
||||
meta: {
|
||||
title: '预产及在途样本',
|
||||
keepAlive: true,
|
||||
menuCode: 'biz:preTransitSample:list'
|
||||
}
|
||||
},
|
||||
{
|
||||
id: '70000000000000000000000000000002',
|
||||
name: 'QualityInspectionSampleReception',
|
||||
|
||||
@@ -121,12 +121,11 @@ export const useUserStore = defineStore(
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出登录
|
||||
* 通知后端撤销 Redis 会话,然后清空所有用户相关状态并跳转到登录页
|
||||
* 清空本地登录态(可选通知后端登出),不跳转页面
|
||||
*/
|
||||
const logOut = async () => {
|
||||
// 先通知后端撤销 Redis 会话(须在清空 token 之前完成,否则请求无 Authorization)
|
||||
if (accessToken.value) {
|
||||
const clearSession = async (options?: { notifyServer?: boolean }) => {
|
||||
const notifyServer = options?.notifyServer !== false
|
||||
if (notifyServer && accessToken.value) {
|
||||
try {
|
||||
await fetchLogout()
|
||||
} catch {
|
||||
@@ -134,30 +133,32 @@ export const useUserStore = defineStore(
|
||||
}
|
||||
}
|
||||
|
||||
info.value = {} as Api.Auth.UserInfo
|
||||
isSuperAdmin.value = false
|
||||
menuPermAll.value = false
|
||||
menuCodes.value = []
|
||||
isLogin.value = false
|
||||
accessToken.value = ''
|
||||
refreshToken.value = ''
|
||||
searchHistory.value = []
|
||||
isLock.value = false
|
||||
lockPassword.value = ''
|
||||
sessionStorage.removeItem('iframeRoutes')
|
||||
useMenuStore().setHomePath('')
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出登录
|
||||
* 通知后端撤销 Redis 会话,然后清空所有用户相关状态并跳转到登录页
|
||||
*/
|
||||
const logOut = async () => {
|
||||
// 保存当前用户 ID,用于下次登录时判断是否为同一用户
|
||||
const currentUserId = info.value.userId
|
||||
if (currentUserId) {
|
||||
localStorage.setItem(StorageConfig.LAST_USER_ID_KEY, String(currentUserId))
|
||||
}
|
||||
|
||||
// 清空用户信息
|
||||
info.value = {} as Api.Auth.UserInfo
|
||||
isSuperAdmin.value = false
|
||||
menuPermAll.value = false
|
||||
menuCodes.value = []
|
||||
// 重置登录状态
|
||||
isLogin.value = false
|
||||
// 清空访问令牌
|
||||
accessToken.value = ''
|
||||
// 清空刷新令牌
|
||||
refreshToken.value = ''
|
||||
searchHistory.value = []
|
||||
isLock.value = false
|
||||
lockPassword.value = ''
|
||||
// 移除iframe路由缓存
|
||||
sessionStorage.removeItem('iframeRoutes')
|
||||
// 清空主页路径
|
||||
useMenuStore().setHomePath('')
|
||||
await clearSession()
|
||||
// 重置路由状态
|
||||
resetRouterState(500)
|
||||
// 跳转到登录页,携带当前路由作为 redirect 参数
|
||||
@@ -221,6 +222,7 @@ export const useUserStore = defineStore(
|
||||
setSearchHistory,
|
||||
setLockStatus,
|
||||
setLockPassword,
|
||||
clearSession,
|
||||
logOut,
|
||||
checkAndClearWorktabs
|
||||
}
|
||||
|
||||
Vendored
+1
@@ -536,6 +536,7 @@ declare namespace Api {
|
||||
id: string
|
||||
regionId: string
|
||||
hospitalName: string
|
||||
regionName?: string
|
||||
tenantNo: string
|
||||
orderNum: number
|
||||
remark: string
|
||||
|
||||
@@ -0,0 +1,262 @@
|
||||
import { parseChineseDatetimeText } from '@/utils/chinese-datetime-parse'
|
||||
import { extractNumericPart } from '@/utils/numeric-input-parse'
|
||||
|
||||
export type DonationStandardImportParsed = {
|
||||
sampleTypeHeader: string
|
||||
motherName?: string
|
||||
newbornSex?: '1' | '0'
|
||||
newbornWeightGram?: number | null
|
||||
apgarScore?: number | null
|
||||
newbornDeliveryTime?: string
|
||||
sampleCollectTime?: string
|
||||
maternalBloodCollectTime?: string
|
||||
maternalBloodExplicitEmpty?: boolean
|
||||
deliveryMode?: string
|
||||
birthOrder?: number | null
|
||||
medicalStaff?: string
|
||||
hospitalName?: string
|
||||
transportExpressName?: string
|
||||
salesUserName?: string
|
||||
}
|
||||
|
||||
const KEY_ALIASES: Record<string, keyof Omit<DonationStandardImportParsed, 'sampleTypeHeader'>> = {
|
||||
产妇姓名: 'motherName',
|
||||
母亲姓名: 'motherName',
|
||||
新生儿性别: 'newbornSex',
|
||||
新生儿体重: 'newbornWeightGram',
|
||||
'新生儿体重(克)': 'newbornWeightGram',
|
||||
新生儿评分: 'apgarScore',
|
||||
'新生儿评分1分钟': 'apgarScore',
|
||||
'新生儿评分5分钟': 'apgarScore',
|
||||
分娩时间: 'newbornDeliveryTime',
|
||||
新生儿分娩时间: 'newbornDeliveryTime',
|
||||
造血干细胞采集时间: 'sampleCollectTime',
|
||||
样本采集时间: 'sampleCollectTime',
|
||||
母血采集时间: 'maternalBloodCollectTime',
|
||||
分娩方式: 'deliveryMode',
|
||||
胎次: 'birthOrder',
|
||||
采集医护: 'medicalStaff',
|
||||
采集医院: 'hospitalName',
|
||||
运输方式: 'transportExpressName',
|
||||
销售人员: 'salesUserName',
|
||||
采集专员: 'salesUserName'
|
||||
}
|
||||
|
||||
const MATERNAL_BLOOD_EMPTY_MARKERS = ['未采集', '无', '暂无', '—', '-', '未采']
|
||||
|
||||
function normalizeLine(line: string): string {
|
||||
return line
|
||||
.replace(/^[\s【】]+|[\s【】]+$/g, '')
|
||||
.trim()
|
||||
}
|
||||
|
||||
function splitKeyValue(line: string): { key: string; value: string } | null {
|
||||
const match = line.match(/^([^::]+)[::]\s*(.*)$/)
|
||||
if (!match) return null
|
||||
return { key: match[1].trim(), value: match[2].trim() }
|
||||
}
|
||||
|
||||
function parseSex(value: string): '1' | '0' | undefined {
|
||||
const v = value.trim()
|
||||
if (!v) return undefined
|
||||
if (/^男/.test(v)) return '1'
|
||||
if (/^女/.test(v)) return '0'
|
||||
return undefined
|
||||
}
|
||||
|
||||
function parseDeliveryMode(value: string): string | undefined {
|
||||
const v = value.trim()
|
||||
if (!v) return undefined
|
||||
if (/剖宫产|剖腹产/.test(v)) return 'pgc'
|
||||
if (/顺产|自然分娩/.test(v)) return 'sc'
|
||||
return undefined
|
||||
}
|
||||
|
||||
function parseWeightGram(value: string): number | null | undefined {
|
||||
const v = value.trim()
|
||||
if (!v) return undefined
|
||||
const num = extractNumericPart(v)
|
||||
if (num === '' || num == null) return undefined
|
||||
const n = Number(num)
|
||||
return Number.isFinite(n) ? n : undefined
|
||||
}
|
||||
|
||||
function parseScore(value: string): number | null | undefined {
|
||||
const v = value.trim()
|
||||
if (!v) return undefined
|
||||
const num = extractNumericPart(v)
|
||||
if (num === '' || num == null) return undefined
|
||||
const n = Number(num)
|
||||
return Number.isFinite(n) ? n : undefined
|
||||
}
|
||||
|
||||
function parseDatetime(value: string): string | undefined {
|
||||
const v = value.trim()
|
||||
if (!v) return undefined
|
||||
if (MATERNAL_BLOOD_EMPTY_MARKERS.some((m) => v === m || v.includes(m))) {
|
||||
return undefined
|
||||
}
|
||||
return parseChineseDatetimeText(v, 'datetime') || undefined
|
||||
}
|
||||
|
||||
function isMaternalBloodEmpty(value: string): boolean {
|
||||
const v = value.trim()
|
||||
if (!v) return true
|
||||
return MATERNAL_BLOOD_EMPTY_MARKERS.some((m) => v === m || v.includes(m))
|
||||
}
|
||||
|
||||
/** 解析捐赠协议单一键导入标准文本 */
|
||||
export function parseDonationStandardImportText(text: string): DonationStandardImportParsed | null {
|
||||
const raw = (text || '').trim()
|
||||
if (!raw) return null
|
||||
|
||||
const lines = raw
|
||||
.split(/\r?\n/)
|
||||
.map(normalizeLine)
|
||||
.filter(Boolean)
|
||||
|
||||
if (!lines.length) return null
|
||||
|
||||
const result: DonationStandardImportParsed = {
|
||||
sampleTypeHeader: lines[0]
|
||||
}
|
||||
|
||||
for (let i = 1; i < lines.length; i++) {
|
||||
const kv = splitKeyValue(lines[i])
|
||||
if (!kv) continue
|
||||
|
||||
const field = KEY_ALIASES[kv.key]
|
||||
if (!field) continue
|
||||
|
||||
switch (field) {
|
||||
case 'motherName':
|
||||
result.motherName = kv.value
|
||||
break
|
||||
case 'newbornSex': {
|
||||
const sex = parseSex(kv.value)
|
||||
if (sex) result.newbornSex = sex
|
||||
break
|
||||
}
|
||||
case 'newbornWeightGram': {
|
||||
const w = parseWeightGram(kv.value)
|
||||
if (w !== undefined) result.newbornWeightGram = w
|
||||
break
|
||||
}
|
||||
case 'apgarScore': {
|
||||
const s = parseScore(kv.value)
|
||||
if (s !== undefined) result.apgarScore = s
|
||||
break
|
||||
}
|
||||
case 'newbornDeliveryTime': {
|
||||
const dt = parseDatetime(kv.value)
|
||||
if (dt) result.newbornDeliveryTime = dt
|
||||
break
|
||||
}
|
||||
case 'sampleCollectTime': {
|
||||
const dt = parseDatetime(kv.value)
|
||||
if (dt) result.sampleCollectTime = dt
|
||||
break
|
||||
}
|
||||
case 'maternalBloodCollectTime':
|
||||
if (isMaternalBloodEmpty(kv.value)) {
|
||||
result.maternalBloodExplicitEmpty = true
|
||||
} else {
|
||||
const dt = parseDatetime(kv.value)
|
||||
if (dt) result.maternalBloodCollectTime = dt
|
||||
}
|
||||
break
|
||||
case 'deliveryMode': {
|
||||
const mode = parseDeliveryMode(kv.value)
|
||||
if (mode) result.deliveryMode = mode
|
||||
break
|
||||
}
|
||||
case 'birthOrder': {
|
||||
const n = parseScore(kv.value)
|
||||
if (n !== undefined) result.birthOrder = n
|
||||
break
|
||||
}
|
||||
case 'medicalStaff':
|
||||
result.medicalStaff = kv.value
|
||||
break
|
||||
case 'hospitalName':
|
||||
if (!result.hospitalName) result.hospitalName = kv.value
|
||||
break
|
||||
case 'transportExpressName':
|
||||
result.transportExpressName = kv.value
|
||||
break
|
||||
case 'salesUserName':
|
||||
result.salesUserName = kv.value
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
type CellSampleTypeOption = { id: string; typeName: string }
|
||||
|
||||
const SAMPLE_TYPE_SEGMENTS = ['围产期', '造血', '干细胞', '脐带', '间充质', '胎盘', '亚全能', '捐献']
|
||||
|
||||
/** 根据首行文本与细胞样本类型列表做语义匹配 */
|
||||
export function matchCellSampleType(
|
||||
headerLine: string,
|
||||
types: CellSampleTypeOption[]
|
||||
): CellSampleTypeOption | null {
|
||||
const header = normalizeLine(headerLine)
|
||||
if (!header || !types.length) return null
|
||||
|
||||
let best: CellSampleTypeOption | null = null
|
||||
let bestScore = 0
|
||||
|
||||
for (const t of types) {
|
||||
const name = t.typeName || ''
|
||||
let score = 0
|
||||
for (const seg of SAMPLE_TYPE_SEGMENTS) {
|
||||
if (header.includes(seg) && name.includes(seg)) score += 2
|
||||
}
|
||||
if (header.includes('围产期') && name.includes('围产期')) score += 3
|
||||
if (header.includes('捐献') && name.includes('造血')) score += 2
|
||||
if (header.includes('间充质') && name.includes('间充质')) score += 3
|
||||
if (header.includes('胎盘') && name.includes('胎盘')) score += 3
|
||||
if (header.includes('亚全能') && name.includes('亚全能')) score += 2
|
||||
if (score > bestScore) {
|
||||
bestScore = score
|
||||
best = t
|
||||
}
|
||||
}
|
||||
|
||||
return bestScore > 0 ? best : null
|
||||
}
|
||||
|
||||
/** 在快递公司列表中匹配名称(优先完全匹配,否则包含匹配) */
|
||||
export function matchExpressCompany(
|
||||
name: string,
|
||||
companies: Array<{ id: string; expressName: string }>
|
||||
): { id: string; expressName: string } | null {
|
||||
const target = (name || '').trim()
|
||||
if (!target || !companies.length) return null
|
||||
|
||||
const exact = companies.find((c) => c.expressName === target)
|
||||
if (exact) return exact
|
||||
|
||||
const normalized = target.replace(/快递$/, '')
|
||||
const contains = companies.filter(
|
||||
(c) => c.expressName.includes(target) || c.expressName.includes(normalized)
|
||||
)
|
||||
if (contains.length === 1) return contains[0]
|
||||
|
||||
const sf = companies.find((c) => /顺丰/.test(c.expressName) && /顺丰/.test(target))
|
||||
if (sf) return sf
|
||||
|
||||
return contains[0] || null
|
||||
}
|
||||
|
||||
export function isBlankString(val: unknown): boolean {
|
||||
return val == null || String(val).trim() === ''
|
||||
}
|
||||
|
||||
export function isEmptyNumber(val: unknown): boolean {
|
||||
return val == null || val === ''
|
||||
}
|
||||
@@ -271,6 +271,7 @@
|
||||
</div>
|
||||
<SampleTransportFormSection
|
||||
v-model:samples="formData.samples"
|
||||
hide-dialog-collect-amount-unit
|
||||
:sample-type-options="sampleTypeOptions"
|
||||
:sample-type-options-loading="sampleTypeLoading"
|
||||
:sample-code-options="sampleCodeOptions"
|
||||
@@ -461,7 +462,7 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="新生儿评分1分钟">
|
||||
<el-form-item label="新生儿评分">
|
||||
<el-input
|
||||
v-model="formData.apgar1min"
|
||||
type="number"
|
||||
@@ -471,16 +472,6 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="新生儿评分5分钟">
|
||||
<el-input
|
||||
v-model="formData.apgar5min"
|
||||
type="number"
|
||||
step="any"
|
||||
:min="0"
|
||||
:max="10"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -571,13 +571,9 @@
|
||||
><div class="data-value">{{ dash(partyCustomer?.newbornWeightGram) }}</div></div
|
||||
>
|
||||
<div class="data-item"
|
||||
><div class="data-label">新生儿评分1分钟</div
|
||||
><div class="data-label">新生儿评分</div
|
||||
><div class="data-value">{{ dash(partyCustomer?.apgar1min) }}</div></div
|
||||
>
|
||||
<div class="data-item data-item--full"
|
||||
><div class="data-label">新生儿评分5分钟</div
|
||||
><div class="data-value">{{ dash(partyCustomer?.apgar5min) }}</div></div
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -676,8 +676,8 @@
|
||||
const formData = reactive({
|
||||
garmentCode: '',
|
||||
garmentName: '',
|
||||
washDiscardLimit: 10,
|
||||
sterilizeDiscardLimit: 10,
|
||||
washDiscardLimit: 100,
|
||||
sterilizeDiscardLimit: 100,
|
||||
inboundDate: '',
|
||||
remark: ''
|
||||
})
|
||||
@@ -859,8 +859,8 @@
|
||||
function resetForm() {
|
||||
formData.garmentCode = ''
|
||||
formData.garmentName = ''
|
||||
formData.washDiscardLimit = 10
|
||||
formData.sterilizeDiscardLimit = 10
|
||||
formData.washDiscardLimit = 100
|
||||
formData.sterilizeDiscardLimit = 100
|
||||
formData.inboundDate = todayStr()
|
||||
formData.remark = ''
|
||||
editingId.value = null
|
||||
|
||||
+1011
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,285 @@
|
||||
<!-- 质检管理 — 预产及在途样本 -->
|
||||
<!-- eslint-disable vue/no-v-model-argument -->
|
||||
<template>
|
||||
<div class="page-container">
|
||||
<section class="panel">
|
||||
<div class="panel-top">
|
||||
<h2>预产及在途样本</h2>
|
||||
</div>
|
||||
|
||||
<div class="filter-block">
|
||||
<el-form :model="searchForm" class="filter-form" @submit.prevent>
|
||||
<div class="filter-grid">
|
||||
<el-form-item label="关键词">
|
||||
<el-input
|
||||
v-model="searchForm.keyword"
|
||||
placeholder="姓名/身份证号/电话"
|
||||
clearable
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="来源类型">
|
||||
<el-select
|
||||
v-model="searchForm.sourceType"
|
||||
placeholder="全部"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-option label="细胞存储" value="cell_storage" />
|
||||
<el-option label="科研捐赠" value="research_donation" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="创建时间">
|
||||
<el-date-picker
|
||||
v-model="createTimeRange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="样本采集时间">
|
||||
<el-date-picker
|
||||
v-model="sampleCollectTimeRange"
|
||||
type="daterange"
|
||||
range-separator="至"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
value-format="YYYY-MM-DD"
|
||||
clearable
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="filter-actions-row">
|
||||
<span class="filter-hint">列表为概要信息,详情见弹窗。</span>
|
||||
<div class="filter-actions-end">
|
||||
<el-button class="btn-ghost" @click="handleReset">
|
||||
<el-icon><RefreshLeft /></el-icon>重置
|
||||
</el-button>
|
||||
<el-button class="btn-main" type="primary" @click="handleSearch">
|
||||
<el-icon><Search /></el-icon>搜索
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
|
||||
<div class="pre-transit-section">
|
||||
<div class="panel-top pre-transit-section-head">
|
||||
<h2 class="title-bar-heading">在途样本</h2>
|
||||
</div>
|
||||
<PreTransitProtocolCardList
|
||||
mode="in_transit"
|
||||
:rows="inTransitData"
|
||||
:loading="inTransitLoading"
|
||||
:pagination="inTransitPagination"
|
||||
empty-description="暂无在途样本"
|
||||
@view="handleView"
|
||||
@page-size-change="onInTransitPageSizeChange"
|
||||
@page-change="onInTransitPageChange"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="pre-transit-section">
|
||||
<div class="panel-top pre-transit-section-head">
|
||||
<h2 class="title-bar-heading">预产样本</h2>
|
||||
</div>
|
||||
<PreTransitProtocolCardList
|
||||
mode="pre_delivery"
|
||||
:rows="preDeliveryData"
|
||||
:loading="preDeliveryLoading"
|
||||
:pagination="preDeliveryPagination"
|
||||
empty-description="暂无预产样本"
|
||||
@view="handleView"
|
||||
@page-size-change="onPreDeliveryPageSizeChange"
|
||||
@page-change="onPreDeliveryPageChange"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<ProtocolViewDialog
|
||||
v-model="protocolViewVisible"
|
||||
:protocol-id="viewProtocolId"
|
||||
:list-row="protocolViewRow"
|
||||
/>
|
||||
<DonationViewDialog
|
||||
v-model="donationViewVisible"
|
||||
:donation-id="viewDonationId"
|
||||
:list-row="donationViewRow"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onMounted } from 'vue'
|
||||
import { ElMessage } from 'element-plus'
|
||||
import { Search, RefreshLeft } from '@element-plus/icons-vue'
|
||||
import PreTransitProtocolCardList from './PreTransitProtocolCardList.vue'
|
||||
import ProtocolViewDialog from '@/views/cell-storage/protocol/ProtocolViewDialog.vue'
|
||||
import DonationViewDialog from '@/views/research-donation/list/DonationViewDialog.vue'
|
||||
import {
|
||||
fetchPreTransitInTransitList,
|
||||
fetchPreTransitPreDeliveryList,
|
||||
type PreTransitProtocolRow
|
||||
} from '@/api/pre-transit-sample'
|
||||
import type { CollectionProtocolRow } from '@/api/collection-protocol'
|
||||
import type { ResearchDonationRow } from '@/api/research-donation'
|
||||
|
||||
defineOptions({ name: 'QualityInspectionPreTransitSample' })
|
||||
|
||||
const searchForm = reactive({ keyword: '', sourceType: '' })
|
||||
const createTimeRange = ref<[string, string] | null>(null)
|
||||
const sampleCollectTimeRange = ref<[string, string] | null>(null)
|
||||
|
||||
const inTransitData = ref<PreTransitProtocolRow[]>([])
|
||||
const preDeliveryData = ref<PreTransitProtocolRow[]>([])
|
||||
const inTransitLoading = ref(false)
|
||||
const preDeliveryLoading = ref(false)
|
||||
const inTransitPagination = reactive({ page: 1, pageSize: 10, total: 0 })
|
||||
const preDeliveryPagination = reactive({ page: 1, pageSize: 10, total: 0 })
|
||||
|
||||
const protocolViewVisible = ref(false)
|
||||
const donationViewVisible = ref(false)
|
||||
const viewProtocolId = ref<string | null>(null)
|
||||
const viewDonationId = ref<string | null>(null)
|
||||
const protocolViewRow = ref<CollectionProtocolRow | null>(null)
|
||||
const donationViewRow = ref<ResearchDonationRow | null>(null)
|
||||
|
||||
function listParams(page: number, pageSize: number) {
|
||||
return {
|
||||
page,
|
||||
pageSize,
|
||||
keyword: searchForm.keyword || undefined,
|
||||
sourceType: searchForm.sourceType || undefined,
|
||||
createTimeStart: createTimeRange.value?.[0] || undefined,
|
||||
createTimeEnd: createTimeRange.value?.[1] || undefined,
|
||||
sampleCollectTimeStart: sampleCollectTimeRange.value?.[0] || undefined,
|
||||
sampleCollectTimeEnd: sampleCollectTimeRange.value?.[1] || undefined
|
||||
}
|
||||
}
|
||||
|
||||
async function loadInTransit() {
|
||||
inTransitLoading.value = true
|
||||
try {
|
||||
const result = await fetchPreTransitInTransitList(
|
||||
listParams(inTransitPagination.page, inTransitPagination.pageSize)
|
||||
)
|
||||
const res = (result as Record<string, unknown>) || {}
|
||||
inTransitData.value = (res.list as PreTransitProtocolRow[]) || []
|
||||
inTransitPagination.total = Number(res.total) || 0
|
||||
} finally {
|
||||
inTransitLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
async function loadPreDelivery() {
|
||||
preDeliveryLoading.value = true
|
||||
try {
|
||||
const result = await fetchPreTransitPreDeliveryList(
|
||||
listParams(preDeliveryPagination.page, preDeliveryPagination.pageSize)
|
||||
)
|
||||
const res = (result as Record<string, unknown>) || {}
|
||||
preDeliveryData.value = (res.list as PreTransitProtocolRow[]) || []
|
||||
preDeliveryPagination.total = Number(res.total) || 0
|
||||
} finally {
|
||||
preDeliveryLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
async function loadAll() {
|
||||
await Promise.all([loadInTransit(), loadPreDelivery()])
|
||||
}
|
||||
|
||||
function handleSearch() {
|
||||
inTransitPagination.page = 1
|
||||
preDeliveryPagination.page = 1
|
||||
loadAll()
|
||||
}
|
||||
|
||||
function handleReset() {
|
||||
Object.assign(searchForm, { keyword: '', sourceType: '' })
|
||||
createTimeRange.value = null
|
||||
sampleCollectTimeRange.value = null
|
||||
handleSearch()
|
||||
}
|
||||
|
||||
function onInTransitPageSizeChange(val: number) {
|
||||
inTransitPagination.page = 1
|
||||
inTransitPagination.pageSize = val
|
||||
loadInTransit()
|
||||
}
|
||||
|
||||
function onInTransitPageChange(val: number) {
|
||||
inTransitPagination.page = val
|
||||
loadInTransit()
|
||||
}
|
||||
|
||||
function onPreDeliveryPageSizeChange(val: number) {
|
||||
preDeliveryPagination.page = 1
|
||||
preDeliveryPagination.pageSize = val
|
||||
loadPreDelivery()
|
||||
}
|
||||
|
||||
function onPreDeliveryPageChange(val: number) {
|
||||
preDeliveryPagination.page = val
|
||||
loadPreDelivery()
|
||||
}
|
||||
|
||||
function handleView(row: PreTransitProtocolRow) {
|
||||
const source = String(row.sourceType || 'cell_storage')
|
||||
if (source === 'research_donation') {
|
||||
const did = String(row.researchDonationId || '')
|
||||
if (!did) {
|
||||
ElMessage.warning('缺少关联捐赠协议单,无法查看')
|
||||
return
|
||||
}
|
||||
viewDonationId.value = did
|
||||
donationViewRow.value = {
|
||||
id: did,
|
||||
motherName: row.motherName,
|
||||
newbornName: row.newbornName
|
||||
} as ResearchDonationRow
|
||||
donationViewVisible.value = true
|
||||
return
|
||||
}
|
||||
const pid = String(row.collectionProtocolId || row.id || '')
|
||||
if (!pid) {
|
||||
ElMessage.warning('缺少关联协议单,无法查看')
|
||||
return
|
||||
}
|
||||
viewProtocolId.value = pid
|
||||
protocolViewRow.value = {
|
||||
id: pid,
|
||||
motherName: row.motherName,
|
||||
newbornName: row.newbornName
|
||||
} as CollectionProtocolRow
|
||||
protocolViewVisible.value = true
|
||||
}
|
||||
|
||||
watchDebounced(
|
||||
[searchForm, createTimeRange, sampleCollectTimeRange],
|
||||
() => {
|
||||
inTransitPagination.page = 1
|
||||
preDeliveryPagination.page = 1
|
||||
loadAll()
|
||||
},
|
||||
{ debounce: 300, deep: true }
|
||||
)
|
||||
|
||||
onMounted(() => {
|
||||
loadAll()
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.pre-transit-section-head {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.pre-transit-section + .pre-transit-section {
|
||||
margin-top: 24px;
|
||||
padding-top: 8px;
|
||||
}
|
||||
</style>
|
||||
@@ -145,94 +145,95 @@
|
||||
class="protocol-form"
|
||||
>
|
||||
<div id="form-section-sample" class="form-tab-pane">
|
||||
<div v-if="currentRow" class="section-card">
|
||||
<div class="section-title">
|
||||
<div class="section-title-left"><h3>样本信息</h3></div>
|
||||
</div>
|
||||
<div class="data-grid data-grid--4">
|
||||
<div class="data-item">
|
||||
<div class="data-label">协议状态</div>
|
||||
<div class="data-value">
|
||||
<el-tag
|
||||
:type="
|
||||
protocolStatusTagTypeBySource(
|
||||
String(currentRow.protocolStatus || ''),
|
||||
currentRow.sourceType || 'cell_storage'
|
||||
)
|
||||
"
|
||||
size="small"
|
||||
>
|
||||
{{
|
||||
protocolStatusLabelBySource(
|
||||
String(currentRow.protocolStatus || ''),
|
||||
currentRow.sourceType || 'cell_storage'
|
||||
)
|
||||
}}
|
||||
</el-tag>
|
||||
<div v-if="currentRow" class="section-card section-card--sample-transport">
|
||||
<div class="sample-transport-row">
|
||||
<div class="sample-transport-col">
|
||||
<div class="section-title section-title--compact">
|
||||
<div class="section-title-left"><h3>样本信息</h3></div>
|
||||
</div>
|
||||
<div class="data-grid data-grid--2">
|
||||
<div class="data-item">
|
||||
<div class="data-label">协议状态</div>
|
||||
<div class="data-value">
|
||||
<el-tag
|
||||
:type="
|
||||
protocolStatusTagTypeBySource(
|
||||
String(currentRow.protocolStatus || ''),
|
||||
currentRow.sourceType || 'cell_storage'
|
||||
)
|
||||
"
|
||||
size="small"
|
||||
>
|
||||
{{
|
||||
protocolStatusLabelBySource(
|
||||
String(currentRow.protocolStatus || ''),
|
||||
currentRow.sourceType || 'cell_storage'
|
||||
)
|
||||
}}
|
||||
</el-tag>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">样本编码</div>
|
||||
<div class="data-value">{{ currentRow.sampleCode || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">样本类型</div>
|
||||
<div class="data-value">{{ currentRow.sampleTypeName || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">预计到达</div>
|
||||
<div class="data-value">{{ currentRow.etaTime || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item data-item--full">
|
||||
<div class="data-label">客户</div>
|
||||
<div class="data-value">
|
||||
{{ currentRow.motherName || '-' }} / {{ currentRow.newbornName || '-' }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">样本编码</div>
|
||||
<div class="data-value">{{ currentRow.sampleCode || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">样本类型</div>
|
||||
<div class="data-value">{{ currentRow.sampleTypeName || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">预计到达</div>
|
||||
<div class="data-value">{{ currentRow.etaTime || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item data-item--full">
|
||||
<div class="data-label">客户</div>
|
||||
<div class="data-value">
|
||||
{{ currentRow.motherName || '-' }} / {{ currentRow.newbornName || '-' }}
|
||||
<div id="form-section-transport" class="sample-transport-col">
|
||||
<div class="section-title section-title--compact">
|
||||
<div class="section-title-left"><h3>运输信息</h3></div>
|
||||
</div>
|
||||
<div class="data-grid data-grid--2">
|
||||
<div class="data-item">
|
||||
<div class="data-label">运输方式</div>
|
||||
<div class="data-value">
|
||||
{{ transportTypeLabel(String(currentRow.transportType || '')) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">预计到达</div>
|
||||
<div class="data-value">{{ currentRow.etaTime || '-' }}</div>
|
||||
</div>
|
||||
<template v-if="currentRow.transportType === 'kdys'">
|
||||
<div class="data-item">
|
||||
<div class="data-label">快递公司</div>
|
||||
<div class="data-value">{{ currentRow.expressCompanyName || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">快递单号</div>
|
||||
<div class="data-value">{{ currentRow.waybillNo || '-' }}</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else-if="currentRow.transportType === 'ryxd'">
|
||||
<div class="data-item">
|
||||
<div class="data-label">携带人</div>
|
||||
<div class="data-value">{{ currentRow.carrierName || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">携带人电话</div>
|
||||
<div class="data-value">{{ currentRow.carrierPhone || '-' }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="form-section-transport" class="form-tab-pane">
|
||||
<div v-if="currentRow" class="section-card">
|
||||
<div class="section-title">
|
||||
<div class="section-title-left"><h3>运输信息</h3></div>
|
||||
</div>
|
||||
<div class="data-grid data-grid--4">
|
||||
<div class="data-item">
|
||||
<div class="data-label">运输方式</div>
|
||||
<div class="data-value">
|
||||
{{ transportTypeLabel(String(currentRow.transportType || '')) }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">预计到达</div>
|
||||
<div class="data-value">{{ currentRow.etaTime || '-' }}</div>
|
||||
</div>
|
||||
<template v-if="currentRow.transportType === 'kdys'">
|
||||
<div class="data-item">
|
||||
<div class="data-label">快递公司</div>
|
||||
<div class="data-value">{{ currentRow.expressCompanyName || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">快递单号</div>
|
||||
<div class="data-value">{{ currentRow.waybillNo || '-' }}</div>
|
||||
</div>
|
||||
</template>
|
||||
<template v-else-if="currentRow.transportType === 'ryxd'">
|
||||
<div class="data-item">
|
||||
<div class="data-label">携带人</div>
|
||||
<div class="data-value">{{ currentRow.carrierName || '-' }}</div>
|
||||
</div>
|
||||
<div class="data-item">
|
||||
<div class="data-label">携带人电话</div>
|
||||
<div class="data-value">{{ currentRow.carrierPhone || '-' }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="form-section-reception" class="form-tab-pane">
|
||||
<div class="section-card">
|
||||
<div class="section-title">
|
||||
@@ -738,6 +739,9 @@
|
||||
|
||||
defineOptions({ name: 'QualityInspectionSampleReception' })
|
||||
|
||||
/** 经手人下拉:仅展示拥有该角色的用户 */
|
||||
const SAMPLE_RECEPTION_HANDLER_ROLE = '采集接受人'
|
||||
|
||||
const userStore = useUserStore()
|
||||
|
||||
const STATUS_TABS = [
|
||||
@@ -999,18 +1003,15 @@
|
||||
return { userId, label }
|
||||
}
|
||||
|
||||
function ensureCurrentUserInOptions() {
|
||||
const { userId, label } = getCurrentUserHandler()
|
||||
if (!userId) return
|
||||
if (!userOptions.value.some((o) => o.value === userId)) {
|
||||
userOptions.value = [{ label: label || userId, value: userId }, ...userOptions.value]
|
||||
}
|
||||
}
|
||||
|
||||
function applyDefaultHandler() {
|
||||
const { userId, label } = getCurrentUserHandler()
|
||||
receiveForm.handlerUserId = userId
|
||||
receiveForm.handlerName = label
|
||||
if (userId && userOptions.value.some((o) => o.value === userId)) {
|
||||
receiveForm.handlerUserId = userId
|
||||
receiveForm.handlerName = label
|
||||
} else {
|
||||
receiveForm.handlerUserId = ''
|
||||
receiveForm.handlerName = ''
|
||||
}
|
||||
}
|
||||
|
||||
function onHandlerChange(userId: string) {
|
||||
@@ -1173,6 +1174,7 @@
|
||||
|
||||
function createBatchEntry(row: Record<string, unknown>): BatchReceiveEntry {
|
||||
const { userId, label } = getCurrentUserHandler()
|
||||
const hasCurrentUser = userId && userOptions.value.some((o) => o.value === userId)
|
||||
return {
|
||||
protocolSampleId: String(row.protocolSampleId || ''),
|
||||
protocolNo: String(row.protocolNo || ''),
|
||||
@@ -1184,8 +1186,8 @@
|
||||
sourceType: (row.sourceType as 'cell_storage' | 'research_donation') || 'cell_storage',
|
||||
transportType: String(row.transportType || ''),
|
||||
receptionTime: formatNowDatetime(),
|
||||
handlerUserId: userId,
|
||||
handlerName: label,
|
||||
handlerUserId: hasCurrentUser ? userId : '',
|
||||
handlerName: hasCurrentUser ? label : '',
|
||||
receiveTemperature: '',
|
||||
volumeMl: undefined,
|
||||
netWeightG: undefined,
|
||||
@@ -1235,8 +1237,6 @@
|
||||
}
|
||||
if (!userOptions.value.length) {
|
||||
await loadUserOptions()
|
||||
} else {
|
||||
ensureCurrentUserInOptions()
|
||||
}
|
||||
await loadActiveCheckItems()
|
||||
if (!activeCheckItems.value.length) {
|
||||
@@ -1321,15 +1321,13 @@
|
||||
|
||||
async function loadUserOptions() {
|
||||
try {
|
||||
const list = await fetchUserOptions()
|
||||
const list = await fetchUserOptions({ roleName: SAMPLE_RECEPTION_HANDLER_ROLE })
|
||||
userOptions.value = (list || []).map((u) => ({
|
||||
label: String(u.label || ''),
|
||||
value: String(u.value || '')
|
||||
}))
|
||||
ensureCurrentUserInOptions()
|
||||
} catch {
|
||||
userOptions.value = []
|
||||
ensureCurrentUserInOptions()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1414,8 +1412,6 @@
|
||||
currentRow.value = row
|
||||
if (!userOptions.value.length) {
|
||||
await loadUserOptions()
|
||||
} else {
|
||||
ensureCurrentUserInOptions()
|
||||
}
|
||||
await loadActiveCheckItems()
|
||||
resetReceiveForm()
|
||||
@@ -1435,8 +1431,6 @@
|
||||
currentRow.value = row
|
||||
if (!userOptions.value.length) {
|
||||
await loadUserOptions()
|
||||
} else {
|
||||
ensureCurrentUserInOptions()
|
||||
}
|
||||
await loadActiveCheckItems()
|
||||
let detail: Record<string, unknown> = row
|
||||
@@ -1581,6 +1575,26 @@
|
||||
&:hover {
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
&--sample-transport {
|
||||
padding: 16px 20px;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.sample-transport-row {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
||||
gap: 0 20px;
|
||||
}
|
||||
|
||||
.sample-transport-col {
|
||||
min-width: 0;
|
||||
|
||||
& + & {
|
||||
padding-left: 20px;
|
||||
border-left: 1px solid #e2e8f0;
|
||||
}
|
||||
}
|
||||
|
||||
.section-title {
|
||||
@@ -1590,6 +1604,11 @@
|
||||
margin-bottom: 18px;
|
||||
padding-bottom: 12px;
|
||||
border-bottom: 1px solid #e2e8f0;
|
||||
|
||||
&--compact {
|
||||
margin-bottom: 10px;
|
||||
padding-bottom: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.section-title-left {
|
||||
@@ -1620,6 +1639,17 @@
|
||||
&--4 {
|
||||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
&--2 {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
gap: 8px 12px;
|
||||
}
|
||||
}
|
||||
|
||||
.section-card--sample-transport {
|
||||
.data-label {
|
||||
margin-bottom: 2px;
|
||||
}
|
||||
}
|
||||
|
||||
.data-item {
|
||||
|
||||
@@ -32,13 +32,41 @@
|
||||
scroll-to-error
|
||||
class="protocol-form"
|
||||
>
|
||||
<!-- Tab 1: 基本信息 -->
|
||||
<div id="form-section-basic" class="form-tab-pane">
|
||||
<!-- Tab 1: 基本信息(新增时左侧一键导入、右侧基本信息) -->
|
||||
<div
|
||||
id="form-section-basic"
|
||||
class="form-tab-pane"
|
||||
:class="{ 'form-tab-pane--import-basic': !isEdit }"
|
||||
>
|
||||
<div v-if="!isEdit" class="section-card section-card--import">
|
||||
<div class="section-title">
|
||||
<div class="section-title-left"><h3>一键导入</h3></div>
|
||||
</div>
|
||||
<el-form-item label="标准信息">
|
||||
<el-input
|
||||
v-model="standardImportText"
|
||||
type="textarea"
|
||||
:rows="8"
|
||||
placeholder="请粘贴标准格式信息,点击「一键导入」自动填充右侧空白字段"
|
||||
/>
|
||||
</el-form-item>
|
||||
<div class="import-actions">
|
||||
<el-button
|
||||
class="btn-main"
|
||||
type="primary"
|
||||
:loading="standardImportLoading"
|
||||
@click="handleStandardImport"
|
||||
>
|
||||
<el-icon><Upload /></el-icon>
|
||||
一键导入
|
||||
</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="section-card">
|
||||
<div class="section-title">
|
||||
<div class="section-title-left"><h3>基本信息</h3></div>
|
||||
</div>
|
||||
<div class="form-grid form-grid--col4">
|
||||
<div class="form-grid" :class="isEdit ? 'form-grid--col4' : 'form-grid--col2'">
|
||||
<el-form-item label="捐赠状态" prop="donationStatus">
|
||||
<el-select
|
||||
v-model="formData.donationStatus"
|
||||
@@ -219,6 +247,8 @@
|
||||
<SampleTransportFormSection
|
||||
v-model:samples="formData.samples"
|
||||
hide-collect-detail-fields
|
||||
auto-generate-sample-code
|
||||
:reserve-sample-code="reserveDonationSampleCode"
|
||||
:sample-type-options="sampleTypeOptions"
|
||||
:sample-type-options-loading="sampleTypeLoading"
|
||||
:sample-code-options="sampleCodeOptions"
|
||||
@@ -433,7 +463,7 @@
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="新生儿评分1分钟">
|
||||
<el-form-item label="新生儿评分">
|
||||
<el-input
|
||||
v-model="formData.apgar1min"
|
||||
type="number"
|
||||
@@ -443,16 +473,6 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="新生儿评分5分钟">
|
||||
<el-input
|
||||
v-model="formData.apgar5min"
|
||||
type="number"
|
||||
step="any"
|
||||
:min="0"
|
||||
:max="10"
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -659,17 +679,26 @@
|
||||
Document,
|
||||
VideoPlay,
|
||||
Loading,
|
||||
Download
|
||||
Download,
|
||||
Upload
|
||||
} from '@element-plus/icons-vue'
|
||||
import {
|
||||
fetchResearchDonationDetail,
|
||||
fetchCreateResearchDonation,
|
||||
fetchUpdateResearchDonation
|
||||
fetchUpdateResearchDonation,
|
||||
fetchNextDonationSampleCode
|
||||
} from '@/api/research-donation'
|
||||
import { fetchUploadAttachment } from '@/api/business'
|
||||
import { downloadAttachmentFile } from '@/utils/download-attachment'
|
||||
import { handleChineseDatetimePaste } from '@/utils/chinese-datetime-parse'
|
||||
import { extractNumericPart } from '@/utils/numeric-input-parse'
|
||||
import {
|
||||
parseDonationStandardImportText,
|
||||
matchCellSampleType,
|
||||
matchExpressCompany,
|
||||
isBlankString,
|
||||
isEmptyNumber
|
||||
} from '@/utils/donation-standard-import-parse'
|
||||
import {
|
||||
fetchCustomerList,
|
||||
fetchUserList,
|
||||
@@ -678,6 +707,7 @@
|
||||
fetchItemUnitList,
|
||||
fetchCollectionRegionList,
|
||||
fetchHospitalList,
|
||||
fetchSearchCollectionHospitals,
|
||||
fetchSampleCodeList,
|
||||
fetchExpressCompanyList,
|
||||
fetchSiteList
|
||||
@@ -821,6 +851,8 @@
|
||||
const editingId = ref<string | null>(null)
|
||||
const formRef = ref()
|
||||
const activeFormTab = ref('basic')
|
||||
const standardImportText = ref('')
|
||||
const standardImportLoading = ref(false)
|
||||
|
||||
type AttachmentFileItem = {
|
||||
id?: string
|
||||
@@ -936,6 +968,7 @@
|
||||
siteOptions.value = []
|
||||
expressCompanyOptions.value = []
|
||||
activeFormTab.value = 'basic'
|
||||
standardImportText.value = ''
|
||||
}
|
||||
|
||||
function scrollToSection(key: string) {
|
||||
@@ -961,6 +994,7 @@
|
||||
expressCompanyId: transportRaw.expressCompanyId || '',
|
||||
waybillNo: transportRaw.waybillNo || '',
|
||||
destSiteId: transportRaw.destSiteId || '',
|
||||
destSiteName: transportRaw.destSiteName || '',
|
||||
expressFee: transportRaw.expressFee ?? null,
|
||||
etaTime: transportRaw.etaTime || '',
|
||||
carrierName: transportRaw.carrierName || '',
|
||||
@@ -1136,6 +1170,12 @@
|
||||
}
|
||||
await Promise.all(hydrateTasks)
|
||||
if (formData.samples.length) {
|
||||
await Promise.all([
|
||||
remoteSearchSampleTypes(''),
|
||||
remoteSearchSites(''),
|
||||
remoteSearchUnits(''),
|
||||
remoteSearchSampleCodes('')
|
||||
])
|
||||
hydrateSampleLookupOptions()
|
||||
}
|
||||
} catch {
|
||||
@@ -1145,11 +1185,47 @@
|
||||
}
|
||||
}
|
||||
|
||||
async function reserveDonationSampleCode() {
|
||||
const pending = formData.samples
|
||||
.map((s) => String(s.sampleCode || '').trim())
|
||||
.filter(Boolean)
|
||||
const res = await fetchNextDonationSampleCode({
|
||||
pendingCodes: pending.length ? pending.join(',') : undefined
|
||||
})
|
||||
return res.sampleCode
|
||||
}
|
||||
|
||||
async function assignDonationSampleCodeIfMissing(sample: Record<string, any>) {
|
||||
if (String(sample.sampleCode || '').trim()) return
|
||||
sample.sampleCode = await reserveDonationSampleCode()
|
||||
sample.sampleCodeId = ''
|
||||
}
|
||||
|
||||
async function ensureDonationSampleCodesBeforeSave() {
|
||||
for (const sample of formData.samples) {
|
||||
await assignDonationSampleCodeIfMissing(sample)
|
||||
}
|
||||
}
|
||||
|
||||
async function handleSubmit() {
|
||||
if (!formRef.value) return
|
||||
await formRef.value.validate()
|
||||
try {
|
||||
await ensureDonationSampleCodesBeforeSave()
|
||||
} catch {
|
||||
ElMessage.error('样本编码生成失败,请稍后重试')
|
||||
return
|
||||
}
|
||||
if (!isEdit.value) {
|
||||
const seenCodes = new Set<string>()
|
||||
for (const sampleRow of formData.samples) {
|
||||
const code = String(sampleRow.sampleCode || '').trim()
|
||||
if (!code) continue
|
||||
if (seenCodes.has(code)) {
|
||||
ElMessage.warning(`样本编码「${code}」重复,请检查后重试`)
|
||||
return
|
||||
}
|
||||
seenCodes.add(code)
|
||||
if (!sampleRow.sampleCodeId) continue
|
||||
const sc = sampleCodeOptions.value.find((x) => x.id === sampleRow.sampleCodeId)
|
||||
if (sc?.usedInProtocol) {
|
||||
@@ -1450,11 +1526,19 @@
|
||||
const merged = [...siteOptions.value]
|
||||
for (const s of samples) {
|
||||
const id = String(s.transport?.destSiteId || '')
|
||||
if (!id || merged.some((x) => x.id === id)) continue
|
||||
if (!id) continue
|
||||
const name = String(s.transport?.destSiteName || '').trim()
|
||||
const existing = merged.find((x) => x.id === id)
|
||||
if (existing) {
|
||||
if (name && (!existing.siteName || existing.siteName === existing.id)) {
|
||||
existing.siteName = name
|
||||
}
|
||||
continue
|
||||
}
|
||||
merged.push({
|
||||
id,
|
||||
siteCode: '',
|
||||
siteName: id,
|
||||
siteName: name || id,
|
||||
siteType: '',
|
||||
status: '',
|
||||
address: '',
|
||||
@@ -1770,6 +1854,303 @@
|
||||
formData.hospitalId = val
|
||||
}
|
||||
|
||||
function formatNowDatetime(): string {
|
||||
const d = new Date()
|
||||
const pad = (n: number) => String(n).padStart(2, '0')
|
||||
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())} ${pad(d.getHours())}:${pad(d.getMinutes())}:${pad(d.getSeconds())}`
|
||||
}
|
||||
|
||||
function applyUserToCollector(u: Api.User.UserItem) {
|
||||
collectorSnapshot.value = { ...u }
|
||||
collectorUserId.value = u.id
|
||||
formData.collectorUserId = u.id
|
||||
if (!collectorUserOptions.value.some((x) => x.id === u.id)) {
|
||||
collectorUserOptions.value = [u, ...collectorUserOptions.value]
|
||||
}
|
||||
}
|
||||
|
||||
function applyUserToSales(u: Api.User.UserItem) {
|
||||
salesSnapshot.value = { ...u }
|
||||
salesUserId.value = u.id
|
||||
formData.salesUserId = u.id
|
||||
if (!salesUserOptions.value.some((x) => x.id === u.id)) {
|
||||
salesUserOptions.value = [u, ...salesUserOptions.value]
|
||||
}
|
||||
}
|
||||
|
||||
async function applySalesUserByName(name: string): Promise<boolean> {
|
||||
const keyword = (name || '').trim()
|
||||
if (!keyword) return false
|
||||
try {
|
||||
const res = await fetchUserList({
|
||||
page: 1,
|
||||
pageSize: 50,
|
||||
keyword,
|
||||
status: '1'
|
||||
})
|
||||
const list = res.list || []
|
||||
const match =
|
||||
list.find((u) => u.nickName === keyword) ||
|
||||
list.find((u) => (u.nickName || '').includes(keyword))
|
||||
if (!match) return false
|
||||
applyUserToCollector(match)
|
||||
applyUserToSales(match)
|
||||
return true
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
async function applyMotherByName(name: string): Promise<'linked' | 'name-only' | 'skipped'> {
|
||||
const keyword = (name || '').trim()
|
||||
if (!keyword) return 'skipped'
|
||||
if (!isBlankString(formData.customerId)) return 'skipped'
|
||||
if (!isBlankString(formData.motherName)) return 'skipped'
|
||||
|
||||
try {
|
||||
const res = await fetchCustomerList({ page: 1, pageSize: 50, keyword })
|
||||
const list = res.list || []
|
||||
const match =
|
||||
list.find((c) => c.customerName === keyword) ||
|
||||
list.find((c) => (c.customerName || '').includes(keyword))
|
||||
if (match) {
|
||||
customerOptions.value = [match, ...list.filter((c) => c.id !== match.id)]
|
||||
onCustomerChange(match.id)
|
||||
return 'linked'
|
||||
}
|
||||
formData.motherName = keyword
|
||||
return 'name-only'
|
||||
} catch {
|
||||
formData.motherName = keyword
|
||||
return 'name-only'
|
||||
}
|
||||
}
|
||||
|
||||
async function applyHospitalByName(name: string): Promise<boolean> {
|
||||
const keyword = (name || '').trim()
|
||||
if (!keyword || !isBlankString(formData.hospitalId)) return false
|
||||
try {
|
||||
const res = await fetchSearchCollectionHospitals({ keyword, limit: 20 })
|
||||
const list = res.list || []
|
||||
const match =
|
||||
list.find((h) => h.hospitalName === keyword) ||
|
||||
list.find((h) => (h.hospitalName || '').includes(keyword)) ||
|
||||
list[0]
|
||||
if (!match) return false
|
||||
|
||||
const regionStub: Api.BizCollectionRegion.RegionItem = {
|
||||
id: match.regionId,
|
||||
regionName: match.regionName || match.regionId,
|
||||
hospitalNames: [],
|
||||
tenantNo: match.tenantNo || '',
|
||||
orderNum: 0,
|
||||
remark: '',
|
||||
createTime: '',
|
||||
updateTime: ''
|
||||
}
|
||||
if (!regionOptions.value.some((r) => r.id === match.regionId)) {
|
||||
regionOptions.value = [regionStub, ...regionOptions.value]
|
||||
}
|
||||
formData.regionId = match.regionId
|
||||
await loadHospitalsByRegion(match.regionId, keyword)
|
||||
if (!hospitalOptions.value.some((h) => h.id === match.id)) {
|
||||
hospitalOptions.value = [match, ...hospitalOptions.value]
|
||||
}
|
||||
formData.hospitalId = match.id
|
||||
return true
|
||||
} catch {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
async function handleStandardImport() {
|
||||
const parsed = parseDonationStandardImportText(standardImportText.value)
|
||||
if (!parsed) {
|
||||
ElMessage.warning('请粘贴有效的标准信息')
|
||||
return
|
||||
}
|
||||
|
||||
standardImportLoading.value = true
|
||||
const warnings: string[] = []
|
||||
const filledLabels: string[] = []
|
||||
|
||||
try {
|
||||
await remoteSearchSampleTypes('')
|
||||
|
||||
const tasks: Promise<void>[] = []
|
||||
|
||||
if (parsed.motherName) {
|
||||
tasks.push(
|
||||
applyMotherByName(parsed.motherName).then((result) => {
|
||||
if (result === 'linked') filledLabels.push('母亲信息(已关联客户)')
|
||||
else if (result === 'name-only') filledLabels.push('母亲姓名')
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
if (parsed.hospitalName) {
|
||||
tasks.push(
|
||||
applyHospitalByName(parsed.hospitalName).then((ok) => {
|
||||
if (ok) filledLabels.push('采集地区/采集医院')
|
||||
else if (isBlankString(formData.hospitalId)) {
|
||||
warnings.push(`未找到采集医院「${parsed.hospitalName}」`)
|
||||
}
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
if (parsed.salesUserName) {
|
||||
tasks.push(
|
||||
applySalesUserByName(parsed.salesUserName).then((ok) => {
|
||||
if (ok) filledLabels.push('采集专员/销售人员')
|
||||
else warnings.push(`未找到销售人员「${parsed.salesUserName}」`)
|
||||
})
|
||||
)
|
||||
}
|
||||
|
||||
const needsTransport = !!parsed.transportExpressName
|
||||
if (needsTransport) {
|
||||
tasks.push(
|
||||
remoteSearchSites('').then(() => undefined),
|
||||
remoteSearchExpressCompanies(
|
||||
(parsed.transportExpressName || '').replace(/快递$/, '') || '顺丰'
|
||||
).then(() => undefined)
|
||||
)
|
||||
}
|
||||
|
||||
await Promise.all(tasks)
|
||||
|
||||
if (parsed.newbornSex && isBlankString(formData.newbornSex)) {
|
||||
formData.newbornSex = parsed.newbornSex
|
||||
filledLabels.push('新生儿性别')
|
||||
}
|
||||
if (parsed.newbornWeightGram != null && isEmptyNumber(formData.newbornWeightGram)) {
|
||||
formData.newbornWeightGram = parsed.newbornWeightGram
|
||||
filledLabels.push('新生儿体重')
|
||||
}
|
||||
if (parsed.apgarScore != null && isEmptyNumber(formData.apgar1min)) {
|
||||
formData.apgar1min = parsed.apgarScore
|
||||
filledLabels.push('新生儿评分')
|
||||
}
|
||||
if (parsed.newbornDeliveryTime && isBlankString(formData.newbornDeliveryTime)) {
|
||||
formData.newbornDeliveryTime = parsed.newbornDeliveryTime
|
||||
filledLabels.push('新生儿分娩时间')
|
||||
}
|
||||
if (parsed.sampleCollectTime && isBlankString(formData.sampleCollectTime)) {
|
||||
formData.sampleCollectTime = parsed.sampleCollectTime
|
||||
filledLabels.push('样本采集时间')
|
||||
}
|
||||
if (parsed.maternalBloodExplicitEmpty && isBlankString(formData.maternalBloodCollectTime)) {
|
||||
formData.maternalBloodCollectTime = ''
|
||||
filledLabels.push('母血采集时间')
|
||||
} else if (
|
||||
parsed.maternalBloodCollectTime &&
|
||||
isBlankString(formData.maternalBloodCollectTime)
|
||||
) {
|
||||
formData.maternalBloodCollectTime = parsed.maternalBloodCollectTime
|
||||
filledLabels.push('母血采集时间')
|
||||
}
|
||||
if (parsed.deliveryMode && isBlankString(formData.deliveryMode)) {
|
||||
formData.deliveryMode = parsed.deliveryMode
|
||||
filledLabels.push('分娩方式')
|
||||
}
|
||||
if (parsed.birthOrder != null && isEmptyNumber(formData.birthOrder)) {
|
||||
formData.birthOrder = parsed.birthOrder
|
||||
filledLabels.push('胎次')
|
||||
}
|
||||
if (parsed.medicalStaff && isBlankString(formData.medicalStaff)) {
|
||||
formData.medicalStaff = parsed.medicalStaff
|
||||
filledLabels.push('采集医护')
|
||||
}
|
||||
|
||||
const matchedType = matchCellSampleType(parsed.sampleTypeHeader, sampleTypeOptions.value)
|
||||
const needsSampleRow = !!matchedType || needsTransport
|
||||
|
||||
if (needsSampleRow) {
|
||||
if (!formData.samples.length) {
|
||||
formData.samples = [normalizeSampleRow({ sampleTypeId: '', sampleStatus: 'ycj' })]
|
||||
}
|
||||
const sample = formData.samples[0]
|
||||
|
||||
if (matchedType && isBlankString(sample.sampleTypeId)) {
|
||||
sample.sampleTypeId = matchedType.id
|
||||
sample.storageYears = matchedType.storageYears ?? null
|
||||
if (!sampleTypeOptions.value.some((x) => x.id === matchedType.id)) {
|
||||
sampleTypeOptions.value = [matchedType, ...sampleTypeOptions.value]
|
||||
}
|
||||
filledLabels.push('样本类型')
|
||||
} else if (parsed.sampleTypeHeader && !matchedType && isBlankString(sample.sampleTypeId)) {
|
||||
warnings.push(`无法匹配样本类型「${parsed.sampleTypeHeader}」`)
|
||||
}
|
||||
|
||||
if (needsTransport) {
|
||||
const transport = { ...(sample.transport || createEmptyTransport()) }
|
||||
let transportFilled = false
|
||||
if (isBlankString(transport.transportType)) {
|
||||
transport.transportType = 'kdys'
|
||||
transportFilled = true
|
||||
}
|
||||
if (isBlankString(transport.destSiteId) && siteOptions.value.length) {
|
||||
transport.destSiteId = siteOptions.value[0].id
|
||||
transportFilled = true
|
||||
}
|
||||
if (isBlankString(transport.etaTime)) {
|
||||
transport.etaTime = formatNowDatetime()
|
||||
transportFilled = true
|
||||
}
|
||||
if (isBlankString(transport.expressCompanyId)) {
|
||||
const ec = matchExpressCompany(
|
||||
parsed.transportExpressName || '顺丰快递',
|
||||
expressCompanyOptions.value
|
||||
)
|
||||
if (ec) {
|
||||
transport.expressCompanyId = ec.id
|
||||
if (!expressCompanyOptions.value.some((x) => x.id === ec.id)) {
|
||||
expressCompanyOptions.value = [ec, ...expressCompanyOptions.value]
|
||||
}
|
||||
transportFilled = true
|
||||
} else {
|
||||
warnings.push(`未找到快递公司「${parsed.transportExpressName}」`)
|
||||
}
|
||||
}
|
||||
sample.transport = transport
|
||||
if (transportFilled) filledLabels.push('运输信息')
|
||||
}
|
||||
|
||||
try {
|
||||
await assignDonationSampleCodeIfMissing(sample)
|
||||
if (String(sample.sampleCode || '').trim()) {
|
||||
filledLabels.push('样本编码')
|
||||
}
|
||||
} catch {
|
||||
warnings.push('样本编码自动生成失败')
|
||||
}
|
||||
|
||||
hydrateSampleLookupOptions()
|
||||
} else if (parsed.sampleTypeHeader) {
|
||||
const sample = formData.samples[0]
|
||||
const matched = matchCellSampleType(parsed.sampleTypeHeader, sampleTypeOptions.value)
|
||||
if (!matched && (!sample || isBlankString(sample.sampleTypeId))) {
|
||||
warnings.push(`无法匹配样本类型「${parsed.sampleTypeHeader}」`)
|
||||
}
|
||||
}
|
||||
|
||||
const uniqueFilled = [...new Set(filledLabels)]
|
||||
if (uniqueFilled.length) {
|
||||
ElMessage.success(`已填充:${uniqueFilled.join('、')}`)
|
||||
} else if (!warnings.length) {
|
||||
ElMessage.info('没有可填充的空白字段')
|
||||
}
|
||||
if (warnings.length) {
|
||||
ElMessage.warning(warnings.join(';'))
|
||||
}
|
||||
} catch {
|
||||
ElMessage.error('导入失败,请检查标准信息格式')
|
||||
} finally {
|
||||
standardImportLoading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
/* ====== 母亲身份证号 ↔ 出生年月联动 ====== */
|
||||
function calcBirthFromIdCard() {
|
||||
const idCard = (formData.motherIdCard || '').trim()
|
||||
@@ -1950,6 +2331,29 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.section-card--import {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.import-actions {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
padding: 0 0 8px;
|
||||
}
|
||||
|
||||
.form-tab-pane--import-basic {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
|
||||
gap: 16px;
|
||||
align-items: stretch;
|
||||
margin-bottom: 28px;
|
||||
|
||||
.section-card {
|
||||
margin-bottom: 0;
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
/* ═══════════════════════════════════════════
|
||||
SECTION CARDS
|
||||
═══════════════════════════════════════════ */
|
||||
@@ -2302,6 +2706,10 @@
|
||||
RESPONSIVE
|
||||
═══════════════════════════════════════════ */
|
||||
@media (max-width: 900px) {
|
||||
.form-tab-pane--import-basic {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
|
||||
.form-grid {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
|
||||
|
||||
@@ -499,13 +499,9 @@
|
||||
><div class="data-value">{{ dash(party?.newbornWeightGram) }}</div></div
|
||||
>
|
||||
<div class="data-item"
|
||||
><div class="data-label">新生儿评分1分钟</div
|
||||
><div class="data-label">新生儿评分</div
|
||||
><div class="data-value">{{ dash(party?.apgar1min) }}</div></div
|
||||
>
|
||||
<div class="data-item data-item--full"
|
||||
><div class="data-label">新生儿评分5分钟</div
|
||||
><div class="data-value">{{ dash(party?.apgar5min) }}</div></div
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -253,6 +253,23 @@
|
||||
<el-form-item label="用户名" prop="nickName">
|
||||
<el-input v-model="formData.nickName" placeholder="显示名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="所属组织" prop="deptId">
|
||||
<el-tree-select
|
||||
v-model="formData.deptId"
|
||||
:data="deptTreeSelectData"
|
||||
node-key="value"
|
||||
:props="{ label: 'label', children: 'children' }"
|
||||
check-strictly
|
||||
filterable
|
||||
clearable
|
||||
placeholder="请选择所属组织"
|
||||
class="w-full"
|
||||
>
|
||||
<template #label="{ value }">
|
||||
{{ formatDeptPathLabel(value) }}
|
||||
</template>
|
||||
</el-tree-select>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="!isEdit" label="密码" prop="password">
|
||||
<el-input
|
||||
v-model="formData.password"
|
||||
@@ -378,6 +395,24 @@
|
||||
})
|
||||
)
|
||||
|
||||
type DeptTreeSelectNode = { value: string; label: string; children?: DeptTreeSelectNode[] }
|
||||
|
||||
function buildDeptTreeSelectData(nodes: Api.Dept.DeptItem[]): DeptTreeSelectNode[] {
|
||||
return (nodes || []).map((n) => ({
|
||||
value: n.id,
|
||||
label: n.deptName || '',
|
||||
children: n.children?.length ? buildDeptTreeSelectData(n.children) : undefined
|
||||
}))
|
||||
}
|
||||
|
||||
const deptTreeSelectData = computed(() => buildDeptTreeSelectData(deptTree.value))
|
||||
|
||||
function formatDeptPathLabel(nodeId: string | null | undefined) {
|
||||
const id = String(nodeId ?? '').trim()
|
||||
if (!id) return ''
|
||||
return deptPathLabelMap.value.get(id) || ''
|
||||
}
|
||||
|
||||
function formatUserDeptDisplay(row: Api.User.UserItem) {
|
||||
const id = (row.deptId || '').trim()
|
||||
if (!id) return '—'
|
||||
@@ -424,7 +459,8 @@
|
||||
const formRules = {
|
||||
userNo: [{ required: true, message: '请输入用户账号', trigger: 'blur' }],
|
||||
nickName: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
|
||||
password: [{ required: true, message: '请输入密码', trigger: 'blur' }]
|
||||
password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
|
||||
deptId: [{ required: true, message: '请选择所属组织', trigger: 'change' }]
|
||||
}
|
||||
|
||||
function filterDeptNode(value: string, data: Api.Dept.DeptItem) {
|
||||
|
||||
Reference in new issue
Block a user