This commit is contained in:
zlwu committed 2026-05-20 18:06:21 +08:00
1 parent 276299ff27
commit c6c3a37fa7
241 files changed
+17841 -15059

No files matched your search

+13
View File
@@ -1341,6 +1341,19 @@ export function fetchBatchCreateSlots(data: { facilityNodeId: string; rows: numb
return request.post({ url: '/web/admin/storage-facility-slots/batch', params: data })
}
export function fetchClearStorageSlots(data: { facilityNodeId: string }) {
return request.post({ url: '/web/admin/storage-facility-slots/clear', params: data })
}
export function fetchInsertStorageSlotRow(data: {
facilityNodeId: string
afterRowNum: number
cols: number
codePrefix?: string
}) {
return request.post({ url: '/web/admin/storage-facility-slots/insert-row', params: data })
}
export function fetchUpdateStorageSlot(id: string, data: Record<string, any>) {
return request.put({ url: `/web/admin/storage-facility-slots/${id}`, params: data })
}
@@ -27,8 +27,15 @@
<!-- sections -->
<div v-for="section in sections" :key="section.title" class="view-section">
<h3>{{ section.title }}</h3>
<dl class="view-kv-grid" :class="`view-kv-grid--cols-${gridColumns}`">
<h3 v-if="section.title && section.titleStyle !== 'field'">{{ section.title }}</h3>
<div v-else-if="section.title && section.titleStyle === 'field'" class="view-field-label">
{{ section.title }}
</div>
<dl
v-if="section.fields.length"
class="view-kv-grid"
:class="`view-kv-grid--cols-${gridColumns}`"
>
<div
v-for="field in section.fields"
:key="field.label"
@@ -38,11 +45,23 @@
<dt>{{ field.label }}</dt>
<dd>
<el-tag v-if="field.tagType" :type="field.tagType" size="small">{{ field.value ?? '—' }}</el-tag>
<ul v-else-if="field.items?.length" class="view-plain-list">
<li v-for="(item, idx) in field.items" :key="idx">{{ item }}</li>
</ul>
<template v-else>{{ field.value ?? '—' }}</template>
</dd>
</div>
</dl>
<slot v-if="section.slot" :name="section.slot" />
<div
v-if="section.slotTitle && section.slotTitleStyle === 'field'"
class="view-field-label"
>
{{ section.slotTitle }}
</div>
<h3 v-else-if="section.slotTitle">{{ section.slotTitle }}</h3>
<div v-if="section.slot" class="view-section-slot">
<slot :name="section.slot" />
</div>
</div>
<slot name="append" />
</div>
@@ -63,7 +82,9 @@
export interface ViewField {
label: string
value: string | number | boolean | null | undefined
value?: string | number | boolean | null | undefined
/** 无编号列表(ul),与 value / tagType 二选一 */
items?: string[]
span?: boolean
/** 传入后以 el-tag 渲染,值为 el-tag 的 type 属性 */
tagType?: TagType
@@ -72,6 +93,11 @@
export interface ViewSection {
title: string
fields: ViewField[]
/** section=区块绿条标题;field=与 KV 字段 label(dt)一致 */
titleStyle?: 'section' | 'field'
/** 插槽上方标题(可与 fields 同区块,避免额外分割线) */
slotTitle?: string
slotTitleStyle?: 'section' | 'field'
/** 区块内追加内容(如附件列表),对应具名插槽名 */
slot?: string
}
@@ -219,6 +245,41 @@
grid-column: 1 / -1;
}
.view-plain-list {
margin: 0;
padding-left: 1.15em;
list-style: disc;
li + li {
margin-top: 4px;
}
}
.view-field-label {
margin: 0 0 8px;
font-size: 13px;
font-weight: 500;
color: #64748b;
line-height: 1.5;
}
.view-section-slot {
margin-top: 4px;
&:not(:first-child) {
margin-top: 12px;
}
}
.view-field-label + .view-section-slot,
.view-kv-grid + .view-field-label {
margin-top: 0;
}
.view-kv-grid + .view-field-label {
margin-top: 12px;
}
@media (max-width: 900px) {
.view-kv-grid--cols-3 {
grid-template-columns: repeat(2, minmax(0, 1fr));
@@ -283,6 +344,11 @@
font-size: 12px;
grid-template-columns: 84px 1fr;
}
.view-field-label {
margin-bottom: 6px;
font-size: 12px;
}
}
</style>
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L1"}, {"id": "material_index_getcategorylabel", "label": "getCategoryLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L432"}, {"id": "material_index_getcategorytagtype", "label": "getCategoryTagType()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L438"}, {"id": "material_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L444"}, {"id": "material_index_loaddictoptions", "label": "loadDictOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L483"}, {"id": "material_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L492"}, {"id": "material_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L509"}, {"id": "material_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L514"}, {"id": "material_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L522"}, {"id": "material_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L533"}, {"id": "material_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L541"}, {"id": "material_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L556"}, {"id": "material_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L584"}, {"id": "material_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L589"}, {"id": "material_index_handlestockin", "label": "handleStockIn()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L596"}, {"id": "material_index_handlestockinsubmit", "label": "handleStockInSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L604"}, {"id": "material_index_handlestockout", "label": "handleStockOut()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L622"}, {"id": "material_index_handlestockoutsubmit", "label": "handleStockOutSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L633"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L356", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material/index.vue", "source_location": "L357", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/vLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_site_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L1"}, {"id": "site_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L287"}, {"id": "site_index_formatcontactuserlabel", "label": "formatContactUserLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L332"}, {"id": "site_index_remotesearchcontactusers", "label": "remoteSearchContactUsers()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L342"}, {"id": "site_index_oncontactuserchange", "label": "onContactUserChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L370"}, {"id": "site_index_resolvecontactuserforedit", "label": "resolveContactUserForEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L388"}, {"id": "site_index_loaddictoptions", "label": "loadDictOptions()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L427"}, {"id": "site_index_getsitetypelabel", "label": "getSiteTypeLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L442"}, {"id": "site_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L448"}, {"id": "site_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L452"}, {"id": "site_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L467"}, {"id": "site_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L472"}, {"id": "site_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L478"}, {"id": "site_index_handledialogclose", "label": "handleDialogClose()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L495"}, {"id": "site_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L500"}, {"id": "site_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L508"}, {"id": "site_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L529"}, {"id": "site_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L560"}, {"id": "site_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L567"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_site_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L231", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_site_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L232", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_site_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fullscreen_loading", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/site/index.vue", "source_location": "L233", "weight": 1.0}, {Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_output_type_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/output-type/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_express_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/express/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_workflow_task_pending_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-pending/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L1"}, {"id": "menu_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L358"}, {"id": "menu_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L363"}, {"id": "menu_index_applytreeexpand", "label": "applyTreeExpand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L368"}, {"id": "menu_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L391"}, {"id": "menu_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L407"}, {"id": "menu_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L411"}, {"id": "menu_index_toggleexpand", "label": "toggleExpand()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L416"}, {"id": "menu_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L423"}, {"id": "menu_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L438"}, {"id": "menu_index_handleaddchild", "label": "handleAddChild()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L447"}, {"id": "menu_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L456"}, {"id": "menu_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L475"}, {"id": "menu_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L507"}, {"id": "menu_index_handledialogclose", "label": "handleDialogClose()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L523"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L272", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L273", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L274", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L275", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "menu_index_handleview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/menu/index.vue", "source_location": "L358", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_menu_index_vue", "target": "menu_index_handleselectionchange", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/Line truncated
@@ -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
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_role_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue", "source_location": "L1"}, {"id": "role_index_walk", "label": "walk()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue", "source_location": "L516"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_role_index_vue", "target": "role_index_walk", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue", "source_location": "L516", "weight": 1.0}], "raw_calls": [{"caller_nid": "role_index_walk", "callee": "push", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/role/index.vue", "source_location": "L518"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_task_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-task/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1"}, {"id": "product_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1179"}, {"id": "product_index_revokelocalpreview", "label": "revokeLocalPreview()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L2277"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1179", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1190", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1231", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1573", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_product_index_vue", "target": "product_index_revokelocalpreview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L2277", "weight": 1.0}], "raw_calls": [{"caller_nid": "product_index_if", "callee": "revokeObjectURL", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1181"}, {"caller_nid": "product_index_if", "callee": "revokeObjectURL", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1192"}, {"caller_nid": "product_index_if", "callee": "applyCategoryPriceCoefficientIfNeeded", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1232"}, {"caller_nid": "product_index_if", "callee": "loadCategoryParameters", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1233"}, {"caller_nid": "product_index_if", "callee": "error", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1574"}, {"caller_nid": "product_index_if", "callee": "error", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L1575"}, {"caller_nid": "product_index_revokelocalpreview", "callee": "withFullscreenLoading", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L2280"}, {"caller_nid": "product_index_revokelocalpreview", "callee": "error", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/product/index.vue", "source_location": "L2284"}]}
@@ -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": "L234"}, {"id": "user_index_formatuserdeptdisplay", "label": "formatUserDeptDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L257"}, {"id": "user_index_formatuserroledisplay", "label": "formatUserRoleDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L263"}, {"id": "user_index_filterdeptnode", "label": "filterDeptNode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L305"}, {"id": "user_index_handledeptnodeclick", "label": "handleDeptNodeClick()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L314"}, {"id": "user_index_loaddepttree", "label": "loadDeptTree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L320"}, {"id": "user_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L329"}, {"id": "user_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L346"}, {"id": "user_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L351"}, {"id": "user_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L360"}, {"id": "user_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L376"}, {"id": "user_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L387"}, {"id": "user_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L413"}, {"id": "user_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L453"}, {"id": "user_index_handleresetpwd", "label": "handleResetPwd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L459"}, {"id": "user_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L493"}], "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": "L217", "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": "L218", "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": "L219", "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": "L220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "users_wuLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_consumable_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/components/business/system-view-dialog/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_basic_info_insurance_company_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/basic-info/insurance-company/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -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
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_fullmoon_todo_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L1"}, {"id": "fullmoon_todo_index_for", "label": "for()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L741"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_fullmoon_todo_index_vue", "target": "fullmoon_todo_index_for", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L741", "weight": 1.0}], "raw_calls": [{"caller_nid": "fullmoon_todo_index_for", "callee": "getCell", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L742"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L1"}, {"id": "category_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L489"}, {"id": "category_index_handlecategorytableselectionchange", "label": "handleCategoryTableSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L494"}, {"id": "category_index_collectids", "label": "collectIds()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L585"}, {"id": "category_index_catch", "label": "catch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L969"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L441", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fullscreen_loading", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L442", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L443", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "vue_draggable_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L444", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L445", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L446", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L447", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fetch_paged_list", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L457", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "category_index_handleview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L489", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "category_index_handlecategorytableselectionchange", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L494", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "category_index_collectids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/category/index.vue", "source_location": "L585", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_category_index_vue", "target": "category_index_catLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_workflow_process_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/process/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_consumable_pack_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/consumable-pack/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_production_work_order_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/production-work-order/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_material_stock_log_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/material-stock-log/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L1"}, {"id": "process_route_index_get", "label": "get()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L879"}, {"id": "process_route_index_set", "label": "set()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L889"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "vue_draggable_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L628", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_production", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L629", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L650", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "process_route_index_get", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L879", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_route_index_vue", "target": "process_route_index_set", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L889", "weight": 1.0}], "raw_calls": [{"caller_nid": "process_route_index_get", "callee": "isArray", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L883"}, {"caller_nid": "process_route_index_get", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L883"}, {"caller_nid": "process_route_index_get", "callee": "filter", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L884"}, {"caller_nid": "process_route_index_get", "callee": "map", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L884"}, {"caller_nid": "process_route_index_get", "callee": "split", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L884"}, {"caller_nid": "process_route_index_get", "callee": "String", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L884"}, {"caller_nid": "process_route_index_set", "callee": "join", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-route/index.vue", "source_location": "L891"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue", "source_location": "L1"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue", "source_location": "L1031", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue", "source_location": "L1032", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_channelviewdialog_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue", "source_location": "L1033", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fullscreen_loading", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue", "source_location": "L1034", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_index_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/pilot-service/channel/index.vue", "source_location": "L1035", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_download_attachment", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/channel/index.vue", "source_location": "L1036", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_index_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/pilot-service/channel/index.vue", "source_location": "L1037", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_channel_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/pilot-service/channel/index.vue", "source_location": "L1050", "weight": 1.0}], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_exhibition_appointment_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/exhibition-appointment/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_reagent_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/reagent/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_sop_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L1"}, {"id": "sop_index_fullfileurl", "label": "fullFileUrl()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L360"}, {"id": "sop_index_getfilename", "label": "getFileName()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L367"}, {"id": "sop_index_attachmentsfromurls", "label": "attachmentsFromUrls()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L373"}, {"id": "sop_index_attachmentsfromapifiles", "label": "attachmentsFromApiFiles()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L386"}, {"id": "sop_index_resolveattachments", "label": "resolveAttachments()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L396"}, {"id": "sop_index_syncsopattachmentsfromlist", "label": "syncSopAttachmentsFromList()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L403"}, {"id": "sop_index_isimagefile", "label": "isImageFile()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L410"}, {"id": "sop_index_isvideofile", "label": "isVideoFile()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L420"}, {"id": "sop_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L430"}, {"id": "sop_index_handleattachmentchange", "label": "handleAttachmentChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L457"}, {"id": "sop_index_removeattachment", "label": "removeAttachment()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L505"}, {"id": "sop_index_handlepreviewattachment", "label": "handlePreviewAttachment()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L510"}, {"id": "sop_index_handledownloadattachment", "label": "handleDownloadAttachment()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L517"}, {"id": "sop_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L521"}, {"id": "sop_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L536"}, {"id": "sop_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L541"}, {"id": "sop_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L547"}, {"id": "sop_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L557"}, {"id": "sop_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L565"}, {"id": "sop_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L579"}, {"id": "sop_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L606"}, {"id": "sop_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/sop/index.vue", "source_location": "L611"}, {"id": "sop_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "sourLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_task_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L1"}, {"id": "qc_task_index_canfillresult", "label": "canFillResult()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L339"}, {"id": "qc_task_index_onmaterialselect", "label": "onMaterialSelect()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L361"}, {"id": "qc_task_index_handlereceptionattachmentdownload", "label": "handleReceptionAttachmentDownload()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L422"}, {"id": "qc_task_index_normalizeresultparams", "label": "normalizeResultParams()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L426"}, {"id": "qc_task_index_toresultnumber", "label": "toResultNumber()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L434"}, {"id": "qc_task_index_setresultnumber", "label": "setResultNumber()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L440"}, {"id": "qc_task_index_hasresultvalue", "label": "hasResultValue()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L444"}, {"id": "qc_task_index_formatmetric", "label": "formatMetric()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L448"}, {"id": "qc_task_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L454"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_task_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L289", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_task_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L290", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_task_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_protocol_finance_confirm_fields_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L291", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_task_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_protocol_protocolattachmentreadonly_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L292", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_task_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L293", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_task_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-task/index.vue", "source_location": "L294", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_task_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_protocol_finance_confirm_fields_finance_attachments", "relation": "imports_from", "confidence": "EXTRACTED", "Line truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_cell_product_type_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-type/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L1"}, {"id": "post_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L349"}, {"id": "post_index_findpostbinddeptnodebyid", "label": "findPostBindDeptNodeById()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L383"}, {"id": "post_index_collectpostbinddeptsubtreeids", "label": "collectPostBindDeptSubtreeIds()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L394"}, {"id": "post_index_collectallpostbinddeptids", "label": "collectAllPostBindDeptIds()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L400"}, {"id": "post_index_expandpostbinddepttree", "label": "expandPostBindDeptTree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L412"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L274", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L275", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_components_business_system_view_dialog_index_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L276", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fetch_paged_list", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L277", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_utils_fullscreen_loading", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L278", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "users_wuzilong_work_00code_zkxw_web_admin_src_api_admin", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L279", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "post_index_handleview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L349", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "post_index_findpostbinddeptnodebyid", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L383", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "post_index_collectpostbinddeptsubtreeids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L394", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "post_index_collectallpostbinddeptids", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/post/index.vue", "source_location": "L400", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_post_index_vue", "target": "post_index_expandpostbinddepttree", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/Line truncated
@@ -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": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_refund_confirm_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/refund-confirm/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_storage_facility_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L1"}, {"id": "storage_facility_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L550"}, {"id": "storage_facility_index_push", "label": "push()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L553"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_storage_facility_index_vue", "target": "storage_facility_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L550", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_storage_facility_index_vue", "target": "storage_facility_index_push", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L553", "weight": 1.0}], "raw_calls": [{"caller_nid": "storage_facility_index_if", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L551"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_material_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-material/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -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": "L234"}, {"id": "user_index_formatuserdeptdisplay", "label": "formatUserDeptDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L257"}, {"id": "user_index_formatuserroledisplay", "label": "formatUserRoleDisplay()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L263"}, {"id": "user_index_filterdeptnode", "label": "filterDeptNode()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L305"}, {"id": "user_index_handledeptnodeclick", "label": "handleDeptNodeClick()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L314"}, {"id": "user_index_loaddepttree", "label": "loadDeptTree()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L320"}, {"id": "user_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L329"}, {"id": "user_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L346"}, {"id": "user_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L351"}, {"id": "user_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L360"}, {"id": "user_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L376"}, {"id": "user_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L387"}, {"id": "user_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L413"}, {"id": "user_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L453"}, {"id": "user_index_handleresetpwd", "label": "handleResetPwd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L459"}, {"id": "user_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/user/index.vue", "source_location": "L493"}], "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": "L217", "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": "L218", "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": "L219", "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": "L220", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_user_index_vue", "target": "users_wuLine truncated
@@ -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": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_lab_test_item_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/lab-test-item/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_fullmoon_todo_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/fullmoon-todo/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_sample_reception_check_item_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/sample-reception-check-item/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_third_party_company_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/third-party-company/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_cell_product_price_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-price/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_checkup_institution_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-institution/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_storage_cert_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/storage-cert/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_cell_product_spec_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/cell-product-spec/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_unit_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/unit/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_quality_inspection_qc_work_order_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/quality-inspection/qc-work-order/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_clean_room_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L1"}, {"id": "clean_room_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L430"}, {"id": "clean_room_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L454"}, {"id": "clean_room_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L469"}, {"id": "clean_room_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L474"}, {"id": "clean_room_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L481"}, {"id": "clean_room_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L491"}, {"id": "clean_room_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L499"}, {"id": "clean_room_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L513"}, {"id": "clean_room_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L540"}, {"id": "clean_room_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L545"}, {"id": "clean_room_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L552"}, {"id": "clean_room_index_formatuserlabel", "label": "formatUserLabel()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L601"}, {"id": "clean_room_index_remotesearchusers", "label": "remoteSearchUsers()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L611"}, {"id": "clean_room_index_onpersonselectchange", "label": "onPersonSelectChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L630"}, {"id": "clean_room_index_loaddeptdata", "label": "loadDeptData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L644"}, {"id": "clean_room_index_resolvepersonforedit", "label": "resolvePersonForEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L661"}, {"id": "clean_room_index_handleaccesslog", "label": "handleAccessLog()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L683"}, {"id": "clean_room_index_loadaccesslogdata", "label": "loadAccessLogData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L690"}, {"id": "clean_room_index_resetlogform", "label": "resetLogForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L706"}, {"id": "clean_room_index_handleaddlog", "label": "handleAddLog()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L718"}, {"id": "clean_room_index_handleeditlog", "label": "handleEditLog()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/clean-room/index.vue", "source_location": "L726"}, {"id": "clean_room_index_handlelogsubmit", "label": "handleLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_project_price_system_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L1"}, {"id": "project_price_system_index_handleselectionchange", "label": "handleSelectionChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L351"}, {"id": "project_price_system_index_loaddata", "label": "loadData()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L389"}, {"id": "project_price_system_index_handlesearch", "label": "handleSearch()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L404"}, {"id": "project_price_system_index_handlereset", "label": "handleReset()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L409"}, {"id": "project_price_system_index_resetform", "label": "resetForm()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L416"}, {"id": "project_price_system_index_handleadd", "label": "handleAdd()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L426"}, {"id": "project_price_system_index_handleedit", "label": "handleEdit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L435"}, {"id": "project_price_system_index_handlesubmit", "label": "handleSubmit()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L455"}, {"id": "project_price_system_index_handleview", "label": "handleView()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L514"}, {"id": "project_price_system_index_handledelete", "label": "handleDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L526"}, {"id": "project_price_system_index_handlebatchdelete", "label": "handleBatchDelete()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L540"}, {"id": "project_price_system_index_handleopenpriceselector", "label": "handleOpenPriceSelector()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L555"}, {"id": "project_price_system_index_handlepriceselectorchange", "label": "handlePriceSelectorChange()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L578"}, {"id": "project_price_system_index_handleconfirmpriceselector", "label": "handleConfirmPriceSelector()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L582"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_project_price_system_index_vue", "target": "element_plus", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L278", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_project_price_system_index_vue", "target": "icons_vue", "relation": "imports_from", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/project-price-system/index.vue", "source_location": "L279", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_project_price_system_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/pilot-service/project-price-system/index.vue", "source_location": "L280", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_project_priceLine truncated
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_storage_facility_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L1"}, {"id": "storage_facility_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L545"}, {"id": "storage_facility_index_push", "label": "push()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L548"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_storage_facility_index_vue", "target": "storage_facility_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L545", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_storage_facility_index_vue", "target": "storage_facility_index_push", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L548", "weight": 1.0}], "raw_calls": [{"caller_nid": "storage_facility_index_if", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L546"}]}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_cell_storage_payment_confirm_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/cell-storage/payment-confirm/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_pilot_service_checkup_institution_checkuppackagepanel_vue", "label": "CheckupPackagePanel.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/pilot-service/checkup-institution/CheckupPackagePanel.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_workflow_my_applications_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/my-applications/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_production_process_category_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/production/process-category/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_system_workflow_task_completed_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/system/workflow/task-completed/index.vue", "source_location": "L1"}], "edges": [], "raw_calls": []}
@@ -0,0 +1 @@
{"nodes": [{"id": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_storage_facility_index_vue", "label": "index.vue", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L1"}, {"id": "storage_facility_index_if", "label": "if()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L544"}, {"id": "storage_facility_index_push", "label": "push()", "file_type": "code", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L547"}], "edges": [{"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_storage_facility_index_vue", "target": "storage_facility_index_if", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L544", "weight": 1.0}, {"source": "users_wuzilong_work_00code_zkxw_web_admin_src_views_operations_storage_facility_index_vue", "target": "storage_facility_index_push", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L547", "weight": 1.0}], "raw_calls": [{"caller_nid": "storage_facility_index_if", "callee": "set", "source_file": "/Users/wuzilong/work/00code/zkxw/web-admin/src/views/operations/storage-facility/index.vue", "source_location": "L545"}]}
+60 -43
View File
@@ -97,7 +97,8 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
]
},
{
id: '60000000000000000000000000000001',
// 注意:原先使用 6000... 与「科研捐赠管理」sys_menu.id 冲突,改为独立 id 段
id: '61000000000000000000000000000001',
name: 'Operations',
path: '/operations',
component: '/index/index',
@@ -109,30 +110,42 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
},
children: [
{
id: '60000000000000000000000000000002',
id: '61000000000000000000000000000002',
name: 'CleanRoom',
path: 'clean-room',
component: '/operations/clean-room/index',
meta: { title: '洁净室管理', keepAlive: true }
meta: {
title: '洁净室管理',
keepAlive: true,
menuCode: 'operations:clean-room:list'
}
},
{
id: '60000000000000000000000000000003',
id: '61000000000000000000000000000003',
name: 'StorageFacility',
path: 'storage-facility',
component: '/operations/storage-facility/index',
meta: { title: '库位管理', keepAlive: true }
meta: {
title: '库位管理',
keepAlive: true,
menuCode: 'operations:storage-facility:list'
}
},
{
id: '60000000000000000000000000000004',
id: '61000000000000000000000000000004',
name: 'ExhibitionAppointment',
path: 'exhibition-appointment',
component: '/operations/exhibition-appointment/index',
meta: { title: '展馆预约', keepAlive: true }
meta: {
title: '展馆预约',
keepAlive: true,
menuCode: 'operations:exhibition-appointment:list'
}
}
]
},
{
id: '40000000000000000000000000000001',
id: '120',
name: 'BasicInfo',
path: '/basic-info',
component: '/index/index',
@@ -144,46 +157,50 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
},
children: [
{
id: '40000000000000000000000000000002',
id: '121',
name: 'BizCustomer',
path: 'customer',
component: '/basic-info/customer/index',
meta: { title: '客户管理', keepAlive: true }
meta: { title: '客户管理', keepAlive: true, menuCode: 'biz:customer:list' }
},
{
id: '40000000000000000000000000000003',
id: '122',
name: 'BizCellSampleType',
path: 'cell-sample-type',
component: '/basic-info/cell-sample-type/index',
meta: { title: '细胞样本类型管理', keepAlive: true }
meta: { title: '细胞样本类型管理', keepAlive: true, menuCode: 'biz:cellSampleType:list' }
},
{
id: '40000000000000000000000000000004',
id: '123',
name: 'BizCollectionRegion',
path: 'collection-region',
component: '/basic-info/collection-region/index',
meta: { title: '采集地区及医院管理', keepAlive: true }
meta: { title: '采集地区及医院管理', keepAlive: true, menuCode: 'biz:collectionRegion:list' }
},
{
id: '40000000000000000000000000000005',
id: '124',
name: 'BizCollectionProtocolNo',
path: 'collection-protocol-no',
component: '/basic-info/collection-protocol-no/index',
meta: { title: '采集协议号管理', keepAlive: true }
meta: { title: '采集协议号管理', keepAlive: true, menuCode: 'biz:collectionProtocolNo:list' }
},
{
id: '40000000000000000000000000000006',
id: '125',
name: 'BizSampleCode',
path: 'sample-code',
component: '/basic-info/sample-code/index',
meta: { title: '样本编码管理', keepAlive: true }
meta: { title: '样本编码管理', keepAlive: true, menuCode: 'biz:sampleCode:list' }
},
{
id: '40000000000000000000000000000007',
name: 'BasicInfoInsuranceCompany',
path: 'insurance-company',
component: '/basic-info/insurance-company/index',
meta: { title: '保险公司及险种价格', keepAlive: true }
meta: {
title: '保险公司及险种价格',
keepAlive: true,
menuCode: 'basic-info:insurance-company:list'
}
}
]
},
@@ -204,63 +221,63 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
name: 'CellStorageProtocol',
path: 'protocol',
component: '/cell-storage/protocol/index',
meta: { title: '采集协议单录入', keepAlive: true }
meta: { title: '采集协议单录入', keepAlive: true, menuCode: 'biz:cellStorageProtocol:list' }
},
{
id: '50000000000000000000000000000003',
name: 'CellStorageProtocolAudit',
path: 'protocol-audit',
component: '/cell-storage/protocol-audit/index',
meta: { title: '采集协议单管理', keepAlive: true }
meta: { title: '采集协议单管理', keepAlive: true, menuCode: 'biz:cellStorageProtocolAudit:list' }
},
{
id: '50000000000000000000000000000007',
id: '904b5173519411f1944300163e3bdd96',
name: 'CellStoragePaymentInfo',
path: 'payment-info',
component: '/cell-storage/payment-info/index',
meta: { title: '缴费信息', keepAlive: true }
meta: { title: '缴费信息', keepAlive: true, menuCode: 'cellStorage:paymentInfo:list' }
},
{
id: '50000000000000000000000000000004',
name: 'CellStoragePaymentConfirm',
path: 'payment-confirm',
component: '/cell-storage/payment-confirm/index',
meta: { title: '缴费确认(财务)', keepAlive: true }
meta: { title: '缴费确认(财务)', keepAlive: true, menuCode: 'biz:cellStoragePaymentConfirm:list' }
},
{
id: '50000000000000000000000000000005',
name: 'CellStorageRefundConfirm',
path: 'refund-confirm',
component: '/cell-storage/refund-confirm/index',
meta: { title: '退费确认(财务)', keepAlive: true }
meta: { title: '退费确认(财务)', keepAlive: true, menuCode: 'biz:cellStorageRefundConfirm:list' }
},
{
id: '50000000000000000000000000000006',
name: 'CellStorageStorageCert',
path: 'storage-cert',
component: '/cell-storage/storage-cert/index',
meta: { title: '储存证管理', keepAlive: true }
meta: { title: '储存证管理', keepAlive: true, menuCode: 'cell-storage:storage-cert:list' }
},
{
id: '50000000000000000000000000000008',
name: 'CellStorageFullmoonTodo',
path: 'fullmoon-todo',
component: '/cell-storage/fullmoon-todo/index',
meta: { title: '满月待办管理', keepAlive: true }
meta: { title: '满月待办管理', keepAlive: true, menuCode: 'cell-storage:fullmoon-todo:list' }
},
{
id: '50000000000000000000000000000009',
name: 'CellStorageMaterial',
path: 'material',
component: '/cell-storage/material/index',
meta: { title: '物料库', keepAlive: true }
meta: { title: '物料库', keepAlive: true, menuCode: 'biz:material:list' }
},
{
id: '50000000000000000000000000000010',
name: 'CellStorageMaterialStockLog',
path: 'material-stock-log',
component: '/cell-storage/material-stock-log/index',
meta: { title: '物料变动记录', keepAlive: true }
meta: { title: '物料变动记录', keepAlive: true, menuCode: 'biz:materialStockLog:list' }
}
]
},
@@ -281,14 +298,14 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
name: 'ResearchDonationList',
path: 'list',
component: '/research-donation/list/index',
meta: { title: '捐赠协议单录入', keepAlive: true }
meta: { title: '捐赠协议单录入', keepAlive: true, menuCode: 'biz:researchDonation:list' }
},
{
id: '60000000000000000000000000000003',
name: 'ResearchDonationAudit',
path: 'audit',
component: '/research-donation/audit/index',
meta: { title: '捐赠协议单管理', keepAlive: true }
meta: { title: '捐赠协议单管理', keepAlive: true, menuCode: 'biz:researchDonationAudit:list' }
}
]
},
@@ -399,35 +416,35 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
name: 'WorkflowProcess',
path: 'process',
component: '/system/workflow/process/index',
meta: { title: '流程配置', keepAlive: true, icon: 'workflow' }
meta: { title: '流程配置', keepAlive: true, icon: 'workflow', menuCode: 'workflow:process' }
},
{
id: '10000000000000000000000000000wf02',
name: 'WorkflowPending',
path: 'pending',
component: '/system/workflow/task-pending/index',
meta: { title: '待办中心', keepAlive: true }
meta: { title: '待办中心', keepAlive: true, menuCode: 'workflow:pending' }
},
{
id: '10000000000000000000000000000wf03',
name: 'WorkflowCompleted',
path: 'completed',
component: '/system/workflow/task-completed/index',
meta: { title: '已办中心', keepAlive: true }
meta: { title: '已办中心', keepAlive: true, menuCode: 'workflow:completed' }
},
{
id: '10000000000000000000000000000wf05',
name: 'WorkflowMyApplications',
path: 'my-applications',
component: '/system/workflow/my-applications/index',
meta: { title: '我的申请', keepAlive: true }
meta: { title: '我的申请', keepAlive: true, menuCode: 'workflow:myApplications' }
},
{
id: '10000000000000000000000000000wf04',
name: 'LeaveRequest',
path: 'leave',
component: '/system/leave/index',
meta: { title: '请假申请', keepAlive: true }
meta: { title: '请假申请', keepAlive: true, menuCode: 'workflow:leave' }
}
]
},
@@ -490,7 +507,7 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
name: 'ProductionSop',
path: 'sop',
component: '/production/sop/index',
meta: { title: 'SOP文档', keepAlive: true, menuCode: 'production:sop:list' }
meta: { title: 'SOP文档', keepAlive: true, menuCode: 'production:sop-document:list' }
},
{
id: '90000000000000000000000000000010',
@@ -539,42 +556,42 @@ export const sqxpAdminRoutes: AppRouteRecord[] = [
name: 'CellProductType',
path: 'cell-product-type',
component: '/pilot-service/cell-product-type/index',
meta: { title: '细胞产品类型管理', keepAlive: true }
meta: { title: '细胞产品类型管理', keepAlive: true, menuCode: 'pilot-service:cell-product-type:list' }
},
{
id: '80000000000000000000000000000003',
name: 'CellProductSpec',
path: 'cell-product-spec',
component: '/pilot-service/cell-product-spec/index',
meta: { title: '细胞产品规格管理', keepAlive: true }
meta: { title: '细胞产品规格管理', keepAlive: true, menuCode: 'pilot-service:cell-product-spec:list' }
},
{
id: '80000000000000000000000000000004',
name: 'CellProductPrice',
path: 'cell-product-price',
component: '/pilot-service/cell-product-price/index',
meta: { title: '细胞产品价格体系管理', keepAlive: true }
meta: { title: '细胞产品价格体系管理', keepAlive: true, menuCode: 'pilot-service:cell-product-price:list' }
},
{
id: '80000000000000000000000000000005',
name: 'ProjectPriceSystem',
path: 'project-price-system',
component: '/pilot-service/project-price-system/index',
meta: { title: '细胞产品项目价格管理', keepAlive: true }
meta: { title: '细胞产品项目价格管理', keepAlive: true, menuCode: 'pilot-service:project-price-system:list' }
},
{
id: '80000000000000000000000000000006',
name: 'Channel',
path: 'channel',
component: '/pilot-service/channel/index',
meta: { title: '渠道信息管理', keepAlive: true }
meta: { title: '渠道信息管理', keepAlive: true, menuCode: 'pilot-service:channel:list' }
},
{
id: '80000000000000000000000000000007',
name: 'CheckupInstitution',
path: 'checkup-institution',
component: '/pilot-service/checkup-institution/index',
meta: { title: '体检机构及项目价格', keepAlive: true }
meta: { title: '体检机构及项目价格', keepAlive: true, menuCode: 'pilot-service:checkup-institution:list' }
}
]
}
@@ -77,7 +77,7 @@
<el-tag :type="row.status == '1' ? 'success' : 'info'" size="small">{{ row.status == '1' ? '正常' : '停用' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="400" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="400" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看</el-button>
<el-button class="btn-op-item primary" @click="openItemDialog(row)"><el-icon><Setting /></el-icon>险种价格配置</el-button>
@@ -208,7 +208,7 @@
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" min-width="140" align="center" header-align="center" show-overflow-tooltip />
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleEditItem(row)"><el-icon><Edit /></el-icon>编辑</el-button>
<el-button class="btn-op-item" @click="handleDeleteItem(row)"><el-icon><Delete /></el-icon>删除</el-button>
@@ -26,7 +26,12 @@
/>
</el-form-item>
<el-form-item label="待办状态">
<el-select v-model="searchForm.todoStatus" placeholder="全部" clearable style="width: 100%">
<el-select
v-model="searchForm.todoStatus"
placeholder="全部"
clearable
style="width: 100%"
>
<el-option label="全部" value="" />
<el-option label="未办保险" value="0" />
<el-option label="已办保险" value="1" />
@@ -58,6 +63,15 @@
>
<el-icon><EditPen /></el-icon>批量办理保险
</el-button>
<el-button
class="btn-ghost"
:loading="exportInsuranceLoading"
:disabled="selectedRows.length === 0"
@click="handleExportInsuranceSheet"
>
<el-icon><Download /></el-icon>
生成投保单
</el-button>
</div>
</div>
@@ -82,27 +96,81 @@
header-align="center"
:index="(i) => (pagination.page - 1) * pagination.pageSize + i + 1"
/>
<el-table-column prop="protocolNo" label="采集协议号" min-width="160" align="center" header-align="center" />
<el-table-column prop="motherName" label="母亲姓名" min-width="100" align="center" header-align="center" />
<el-table-column prop="newbornDeliveryTime" label="新生儿分娩时间" min-width="160" align="center" header-align="center" />
<el-table-column prop="fullmoonDate" label="满月日期" min-width="120" align="center" header-align="center" />
<el-table-column prop="todoStatus" label="待办状态" min-width="100" align="center" header-align="center">
<el-table-column
prop="protocolNo"
label="采集协议号"
min-width="160"
align="center"
header-align="center"
/>
<el-table-column
prop="motherName"
label="母亲姓名"
min-width="100"
align="center"
header-align="center"
/>
<el-table-column
prop="newbornDeliveryTime"
label="新生儿分娩时间"
min-width="160"
align="center"
header-align="center"
/>
<el-table-column
prop="fullmoonDate"
label="满月日期"
min-width="120"
align="center"
header-align="center"
/>
<el-table-column
prop="todoStatus"
label="待办状态"
min-width="100"
align="center"
header-align="center"
>
<template #default="{ row }">
<el-tag :type="row.todoStatus == 1 ? 'success' : 'warning'" size="small">
{{ row.todoStatus == 1 ? '已办保险' : '未办保险' }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="insuranceSubscribed" label="是否已订购保险" min-width="130" align="center" header-align="center">
<el-table-column
prop="insuranceSubscribed"
label="是否已订购保险"
min-width="130"
align="center"
header-align="center"
>
<template #default="{ row }">
<el-tag :type="row.insuranceSubscribed == 1 ? 'success' : 'info'" size="small">
{{ row.insuranceSubscribed == 1 ? '是' : '否' }}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="insuranceCompanyName" label="保险公司" min-width="140" align="center" header-align="center" />
<el-table-column prop="insuranceType" label="保险险种" min-width="120" align="center" header-align="center" />
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column
prop="insuranceCompanyName"
label="保险公司"
min-width="140"
align="center"
header-align="center"
/>
<el-table-column
prop="insuranceType"
label="保险险种"
min-width="120"
align="center"
header-align="center"
/>
<el-table-column
label="操作"
width="260"
fixed="right"
align="center"
header-align="center"
>
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -148,8 +216,12 @@
@closed="handleInsuranceDialogClosed"
>
<div v-if="isBatchMode" class="batch-insurance-tip">
将为已选 <strong>{{ batchEditingRows.length }}</strong> 条记录统一填写保险信息(适用于团体险等场景)。
<div v-if="batchProtocolSummary" class="batch-protocol-nos">{{ batchProtocolSummary }}</div>
将为已选
<strong>{{ batchEditingRows.length }}</strong>
条记录统一填写保险信息(适用于团体险等场景)。
<div v-if="batchProtocolSummary" class="batch-protocol-nos">{{
batchProtocolSummary
}}</div>
</div>
<el-form
ref="formRef"
@@ -323,7 +395,12 @@
</div>
</el-form-item>
<el-form-item label="办理备注" class="form-col-span-2">
<el-input v-model="formData.remark" type="textarea" :rows="3" placeholder="请输入办理备注" />
<el-input
v-model="formData.remark"
type="textarea"
:rows="3"
placeholder="请输入办理备注"
/>
</el-form-item>
</div>
</el-form>
@@ -353,6 +430,8 @@
</template>
<script setup lang="ts">
import ExcelJS from 'exceljs'
import FileSaver from 'file-saver'
import { ref, reactive, computed, nextTick, onMounted } from 'vue'
import { ElMessage } from 'element-plus'
import {
@@ -370,7 +449,10 @@
Delete
} from '@element-plus/icons-vue'
import ProtocolViewDialog from '../protocol/ProtocolViewDialog.vue'
import type { CollectionProtocolRow } from '@/api/collection-protocol'
import {
fetchCollectionProtocolDetail,
type CollectionProtocolRow
} from '@/api/collection-protocol'
import { fetchUploadAttachment } from '@/api/business'
import { downloadAttachmentFile } from '@/utils/download-attachment'
import {
@@ -391,6 +473,7 @@
const selectedRows = ref<any[]>([])
const loading = ref(false)
const pagination = reactive({ page: 1, pageSize: 10, total: 0 })
const exportInsuranceLoading = ref(false)
function handleSelectionChange(rows: any[]) {
selectedRows.value = rows
@@ -536,6 +619,152 @@
loadData()
}
function formatYmdFromAny(val: unknown) {
const text = String(val ?? '').trim()
if (!text) return ''
const digits = text.replace(/\D/g, '')
if (digits.length >= 8) return digits.slice(0, 8)
return ''
}
function normalizeNewbornSex(val: unknown) {
const text = String(val ?? '').trim()
if (!text) return ''
if (text === '男' || text === 'M' || text === 'm' || text === '1') return '男'
if (text === '女' || text === 'F' || text === 'f' || text === '2') return '女'
return text
}
async function handleExportInsuranceSheet() {
if (!selectedRows.value.length) {
ElMessage.warning('请先选择待办记录')
return
}
exportInsuranceLoading.value = true
try {
const workbook = new ExcelJS.Workbook()
const worksheet = workbook.addWorksheet('新契约+批改')
const rows: Array<Array<string | number>> = [
[
'投保单位:安徽中科兴皖医学研究有限公司',
'',
'',
'',
'',
'',
'保单号:',
'',
'',
'',
'',
'',
'',
'',
'',
''
],
['表格中打*号是必填项', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''],
[
'序号',
'类型',
'姓名*',
'证件类型*',
'证件号码*',
'出生日期',
'性别',
'计划名称*',
'生效日期*',
'职业(职业代码)*',
'职业类别',
'特别约定*',
'手机号码',
'监护人姓名',
'监护人证件类型',
'监护人证件号码'
]
]
let index = 1
for (const row of selectedRows.value) {
const protocolId = String(row?.protocolId || row?.id || '').trim()
if (!protocolId) continue
const detail = await fetchCollectionProtocolDetail(protocolId)
const partyCustomer = (detail?.partyCustomer || {}) as Record<string, unknown>
const newbornName = String(partyCustomer.newbornName || '').trim()
if (!newbornName) continue
const newbornIdCard = String(partyCustomer.newbornIdCard || '').trim()
const newbornBirth = formatYmdFromAny(partyCustomer.newbornDeliveryTime)
const newbornSex = normalizeNewbornSex(partyCustomer.newbornSex)
const motherPhone = String(partyCustomer.motherPhone || '').trim()
const motherName = String(partyCustomer.motherName || '').trim()
const motherIdCard = String(partyCustomer.motherIdCard || '').trim()
rows.push([
index,
'新契约',
newbornName,
'身份证',
newbornIdCard,
newbornBirth,
newbornSex,
'',
'',
'1201002',
'1类',
'新保',
motherPhone,
motherName,
'身份证',
motherIdCard
])
index += 1
}
if (index === 1) {
ElMessage.warning('未找到可导出的新生儿数据')
return
}
rows.forEach((r) => worksheet.addRow(r))
worksheet.mergeCells('A1:E1')
worksheet.columns = [30, 10, 12, 12, 22, 12, 8, 14, 12, 16, 10, 10, 14, 12, 14, 22].map(
(wch) => ({ width: wch })
)
const borderStyle: Partial<ExcelJS.Borders> = {
top: { style: 'thin' },
bottom: { style: 'thin' },
left: { style: 'thin' },
right: { style: 'thin' }
}
for (let rowNum = 3; rowNum <= rows.length; rowNum += 1) {
for (let colNum = 1; colNum <= 16; colNum += 1) {
worksheet.getCell(rowNum, colNum).border = borderStyle
}
}
for (let colNum = 1; colNum <= 16; colNum += 1) {
worksheet.getCell(3, colNum).fill = {
type: 'pattern',
pattern: 'solid',
fgColor: { argb: 'FFFFFF00' }
}
}
const fileName = `${new Date().toISOString().slice(0, 10).replace(/-/g, '')}投保单.xlsx`
const excelBuffer = await workbook.xlsx.writeBuffer()
const blob = new Blob([excelBuffer], {
type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
})
FileSaver.saveAs(blob, fileName)
ElMessage.success(`已生成投保单,共 ${index - 1} 条`)
} catch (error) {
console.error(error)
ElMessage.error('生成投保单失败,请重试')
} finally {
exportInsuranceLoading.value = false
}
}
// ---------------------------------------------------------------------------
// 办理保险弹窗
// ---------------------------------------------------------------------------
@@ -663,8 +892,7 @@
formData.insuranceCompanyName = row.insuranceCompanyName || ''
formData.insuranceType = row.insuranceType || ''
formData.insurancePolicyNo = row.insurancePolicyNo || ''
formData.policyEffectiveDate =
row.insuranceEffectiveDate || row.policyEffectiveDate || ''
formData.policyEffectiveDate = row.insuranceEffectiveDate || row.policyEffectiveDate || ''
formData.policyExpiryDate = row.insuranceExpiryDate || row.policyExpiryDate || ''
formData.insuranceSubscribed = Number(row.insuranceSubscribed ?? 0)
formData.insuranceFee = row.insuranceFee ?? 0
@@ -127,7 +127,7 @@
align="center"
header-align="center"
/>
<el-table-column label="操作" width="160" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="160" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)">
<el-icon><View /></el-icon>查看
@@ -125,7 +125,7 @@
</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="400" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="400" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleStockIn(row)"><el-icon><Upload /></el-icon>入库</el-button>
<el-button class="btn-op-item" @click="handleStockOut(row)"><el-icon><Download /></el-icon>出库</el-button>
@@ -119,7 +119,7 @@
align="center"
header-align="center"
/>
<el-table-column label="操作" width="140" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="140" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button
v-if="activeTab === 'pending'"
@@ -132,7 +132,7 @@
align="center"
header-align="center"
/>
<el-table-column label="操作" width="140" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="140" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button
v-if="activeTab === 'pending'"
@@ -76,7 +76,7 @@
</template>
</el-table-column>
<el-table-column prop="makeDate" label="制作日期" width="120" align="center" header-align="center" />
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleUpload(row)">
<el-icon><Upload /></el-icon>上传储存证
@@ -72,7 +72,7 @@
<el-table-column prop="roomName" label="名称" min-width="160" align="center" header-align="center" />
<el-table-column label="等级" width="100" align="center" header-align="center">
<template #default="{ row }">
<el-tag :type="gradeTagType(row.roomGrade)" effect="plain">
<el-tag class="clean-room-grade-tag" :class="gradeTagClass(row.roomGrade)" effect="light">
{{ gradeLabel(row.roomGrade) }}
</el-tag>
</template>
@@ -85,7 +85,7 @@
</template>
</el-table-column>
<el-table-column prop="areaSqm" label="面积(m²)" width="120" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -153,7 +153,7 @@
<el-option label="异常" value="yc" />
</el-select>
</el-form-item>
<el-form-item label="面积" prop="areaSqm">
<el-form-item label="面积(m²)" prop="areaSqm">
<el-input
type="number"
step="any"
@@ -231,7 +231,8 @@
<el-table-column prop="bodyTemp" label="体温(℃)" width="90" align="center" header-align="center">
<template #default="{ row }">{{ row.bodyTemp != null ? row.bodyTemp + '℃' : '-' }}</template>
</el-table-column>
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column prop="remark" label="备注" min-width="160" align="center" header-align="center" show-overflow-tooltip />
<el-table-column label="操作" min-width="260" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleViewLog(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -374,7 +375,7 @@
import { Plus, Close, Check, View, Edit, Delete, User, OfficeBuilding, RefreshLeft, Search } from '@element-plus/icons-vue'
import { withFullscreenLoading, fullscreenLoadingText } from '@/utils/fullscreen-loading'
import { buildTreePathLabelFromFlat } from '@/utils/tree-path'
import { cleanRoomGradeLabel, cleanRoomGradeTagType } from '@/utils/status-tag-registry'
import { cleanRoomGradeLabel } from '@/utils/status-tag-registry'
import {
fetchCleanRoomList,
fetchCreateCleanRoom,
@@ -420,8 +421,11 @@
}
// ── 等级映射(使用 registry 函数) ──────────────────
const gradeTagType = cleanRoomGradeTagType
const gradeLabel = cleanRoomGradeLabel
const gradeTagClass = (grade?: string) => {
const code = (grade || '').toUpperCase()
return code ? `clean-room-grade-tag--${code}` : ''
}
// ── 选择 ──────────────────────────────────────────
const handleSelectionChange = (rows: any[]) => {
@@ -805,6 +809,35 @@
</script>
<style scoped lang="scss">
.clean-room-grade-tag {
border-width: 1px;
border-style: solid;
}
.clean-room-grade-tag--A {
color: #065f46;
background-color: #d1fae5;
border-color: #10b981;
}
.clean-room-grade-tag--B {
color: #047857;
background-color: #ecfdf5;
border-color: #6ee7b7;
}
.clean-room-grade-tag--C {
color: #059669;
background-color: #f0fdf4;
border-color: #a7f3d0;
}
.clean-room-grade-tag--D {
color: #10b981;
background-color: #f6fef9;
border-color: #d1fae5;
}
.clean-room-dialog-form {
:deep(.el-form-item) {
margin-bottom: 0;
@@ -74,7 +74,7 @@
<el-table-column prop="visitDate" label="到访日期" min-width="180" align="center" header-align="center" />
<el-table-column prop="visitorCount" label="人数" min-width="80" align="center" header-align="center" />
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -9,10 +9,10 @@
<section class="panel">
<div class="flex gap-4">
<!-- 左侧:库位树 -->
<!-- 左侧:库位 -->
<div class="w-[280px] shrink-0 border-r border-[var(--mint-border)] pr-4">
<div class="panel-top storage-aside__head">
<h2>库位树</h2>
<h2>库位</h2>
<el-button type="primary" size="small" @click="handleAddRoot">
<el-icon><Plus /></el-icon>
新增
@@ -92,7 +92,11 @@
</div>
<div class="storage-toolbar">
<el-button type="primary" @click="batchDialogVisible = true">
<el-button
type="primary"
:disabled="slotList.length > 0"
@click="batchDialogVisible = true"
>
批量生成格子
</el-button>
<el-button
@@ -123,14 +127,14 @@
<span class="add-icon">+</span>
</div>
<div
v-for="cell in row.cells"
v-for="(cell, cellIndex) in row.cells"
:key="cell.id"
class="shelf-cell"
:class="{ occupied: cell.slotStatus === '占用' }"
@click="handleEditSlot(cell)"
>
<button class="cell-delete-btn" @click.stop="handleDeleteSlot(cell)" title="删除">×</button>
<span class="cell-code">{{ cell.slotCode }}</span>
<span class="cell-code">{{ cellIndex + 1 }}</span>
</div>
</div>
</div>
@@ -193,6 +197,9 @@
<el-form-item label="是否存储格">
<el-switch v-model="nodeFormData.isLeaf" :active-value="1" :inactive-value="0" />
</el-form-item>
<el-form-item label="排序">
<el-input-number v-model="nodeFormData.orderNum" :min="0" :step="1" controls-position="right" style="width: 100%" />
</el-form-item>
<el-form-item label="备注" class="form-col-span-2">
<el-input v-model="nodeFormData.remark" placeholder="可选" />
</el-form-item>
@@ -332,7 +339,7 @@
>
<el-form :model="addRowForm" label-position="top" class="storage-dialog-form">
<el-form-item label="列数">
<el-input type="number" step="any" v-model="addRowForm.cols" :min="1" :max="20" style="width: 100%" />
<el-input type="number" step="any" v-model="addRowForm.cols" :min="1" style="width: 100%" />
</el-form-item>
<div class="storage-batch-preview">
将在当前行下方新增 <strong>{{ addRowForm.cols }}</strong> 个格子
@@ -368,6 +375,8 @@
fetchDeleteStorageFacility,
fetchStorageSlotList,
fetchBatchCreateSlots,
fetchClearStorageSlots,
fetchInsertStorageSlotRow,
fetchCreateStorageSlot,
fetchUpdateStorageSlot,
fetchDeleteStorageSlot
@@ -385,6 +394,12 @@
const treeRef = ref()
const treeKeyword = ref('')
const getNodeOrderNum = (item: any): number => {
const raw = item?.orderNum ?? item?.order_num ?? item?.sortOrder ?? item?.sort_order ?? 0
const parsed = Number(raw)
return Number.isFinite(parsed) ? parsed : 0
}
const buildTree = (list: any[]) => {
const map = new Map<string, any>()
const roots: any[] = []
@@ -399,6 +414,18 @@
roots.push(node)
}
})
const sortNodes = (nodes: any[]) => {
nodes.sort((a, b) => {
const orderDiff = getNodeOrderNum(a) - getNodeOrderNum(b)
if (orderDiff !== 0) return orderDiff
return String(a.nodeName || '').localeCompare(String(b.nodeName || ''), 'zh-Hans-CN')
})
nodes.forEach((node) => {
if (node.children?.length) sortNodes(node.children)
})
}
sortNodes(roots)
return roots
}
@@ -573,6 +600,7 @@
nodeName: '',
nodeType: 'facility',
isLeaf: 0 as 0 | 1,
orderNum: 0,
remark: ''
})
@@ -589,6 +617,7 @@
nodeName: '',
nodeType: 'facility',
isLeaf: 0,
orderNum: 0,
remark: ''
})
nodeDialogVisible.value = true
@@ -604,6 +633,7 @@
nodeName: '',
nodeType: 'layer',
isLeaf: 0,
orderNum: 0,
remark: ''
})
nodeDialogVisible.value = true
@@ -615,10 +645,11 @@
nodeDialogTitle.value = '编辑节点'
Object.assign(nodeFormData, {
id: data.id,
parentId: data.parentId || '',
parentId: data.parentId && data.parentId !== '0' ? data.parentId : '',
nodeName: data.nodeName || '',
nodeType: data.nodeType || 'facility',
isLeaf: data.isLeaf ?? 0,
orderNum: getNodeOrderNum(data),
remark: data.remark || ''
})
nodeDialogVisible.value = true
@@ -634,6 +665,7 @@
nodeName: nodeFormData.nodeName.trim(),
nodeType: nodeFormData.nodeType,
isLeaf: nodeFormData.isLeaf,
orderNum: Number(nodeFormData.orderNum) || 0,
remark: nodeFormData.remark?.trim() || undefined
}
if (isNodeEdit.value && nodeFormData.id) {
@@ -658,6 +690,7 @@
nodeName: '',
nodeType: 'facility',
isLeaf: 0,
orderNum: 0,
remark: ''
})
nodeFormRef.value?.clearValidate?.()
@@ -796,11 +829,10 @@
{ type: 'warning' }
)
clearSlotsLoading.value = true
for (const slot of slotList.value) {
await fetchDeleteStorageSlot(slot.id)
}
ElMessage.success('已清空所有格子')
slotList.value = []
const res: any = await fetchClearStorageSlots({ facilityNodeId: selectedNode.value.id })
const clearedCount = Number(res?.clearedCount ?? 0)
ElMessage.success(clearedCount > 0 ? `已清空 ${clearedCount} 个格子` : '已清空所有格子')
await loadSlots(selectedNode.value.id)
} catch (error: any) {
if (error !== 'cancel') console.error('清空失败:', error)
} finally {
@@ -863,35 +895,25 @@
if (rowIndex < 0 || rowIndex >= shelfRows.value.length) return
const currentRow = shelfRows.value[rowIndex]
const insertRowNum = currentRow.rowNum + 1
const prefix = currentRow.prefix
const numCols = addRowForm.cols
const numCols = Number(addRowForm.cols)
if (!Number.isFinite(numCols)) {
ElMessage.warning('列数必须是数字')
return
}
const normalizedCols = Math.floor(numCols)
if (normalizedCols < 1) {
ElMessage.warning('列数必须大于 0')
return
}
addSlotLoading.value = true
try {
// 1. 将当前行之后的所有行号 +1(从大到小排,避免行号冲突)
const rowsToShift = shelfRows.value
.filter((r) => r.rowNum > currentRow.rowNum)
.sort((a, b) => b.rowNum - a.rowNum)
for (const row of rowsToShift) {
for (const cell of row.cells) {
const parsed = parseSlotCode(cell.slotCode || '')
if (parsed) {
const newCode = `${parsed.prefix}${parsed.row + 1}-${parsed.col}`
await fetchUpdateStorageSlot(cell.id, { slotCode: newCode })
}
}
}
// 2. 在插入位置创建新行的格子
for (let c = 1; c <= numCols; c++) {
await fetchCreateStorageSlot({
facilityNodeId: selectedNode.value.id,
slotCode: `${prefix}${insertRowNum}-${c}`,
slotStatus: '空'
})
}
await fetchInsertStorageSlotRow({
facilityNodeId: selectedNode.value.id,
afterRowNum: currentRow.rowNum,
cols: normalizedCols,
codePrefix: currentRow.prefix || ''
})
ElMessage.success('新增行成功')
addRowDialogVisible.value = false
@@ -1174,7 +1196,7 @@
.shelf-label {
width: 28px;
flex-shrink: 0;
background: #059669;
background: #ea580c;
color: #fff;
display: flex;
align-items: center;
@@ -1193,7 +1215,7 @@
.shelf-cell {
width: 40px;
height: 40px;
border: 1px solid #d1fae5;
border: 1px solid #fed7aa;
display: flex;
flex-direction: column;
align-items: center;
@@ -1205,16 +1227,16 @@
flex-shrink: 0;
&:hover {
background: #ecfdf5;
background: #fff7ed;
}
/* 占用状态 — 深绿背景 */
/* 占用状态 — 深橙背景 */
&.occupied {
background: #059669;
border-color: #047857;
background: #ea580c;
border-color: #c2410c;
&:hover {
background: #047857;
background: #c2410c;
}
.cell-code {
@@ -1224,22 +1246,22 @@
/* 新增格子按钮 */
&--add {
border: 1px dashed #a7f3d0;
border: 1px dashed #fdba74;
background: transparent;
&:hover {
background: #ecfdf5;
border-color: #10b981;
background: #fff7ed;
border-color: #f97316;
}
.add-icon {
font-size: 20px;
color: #6ee7b7;
color: #fb923c;
line-height: 1;
}
&:hover .add-icon {
color: #10b981;
color: #f97316;
}
}
}
@@ -79,7 +79,7 @@
</el-table-column>
<el-table-column prop="remark" label="备注" min-width="150" align="center" header-align="center" />
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -72,7 +72,7 @@
<el-table-column prop="specName" label="规格名称" min-width="150" align="center" header-align="center" />
<el-table-column prop="remark" label="备注" min-width="150" align="center" header-align="center" />
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -72,7 +72,7 @@
<el-table-column prop="productTypeName" label="类型名称" min-width="150" align="center" header-align="center" />
<el-table-column prop="remark" label="备注" min-width="150" align="center" header-align="center" />
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -116,7 +116,7 @@
align="center"
header-align="center"
/>
<el-table-column label="操作" width="400" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="400" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)">
<el-icon><View /></el-icon>查看
@@ -44,7 +44,7 @@
align="center"
show-overflow-tooltip
/>
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleEdit(row)"
><el-icon><Edit /></el-icon>编辑</el-button
@@ -130,7 +130,7 @@
<el-input v-model="row.remark" placeholder="可选" clearable />
</template>
</el-table-column>
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center" header-align="center">
<template #default="{ $index }">
<el-button class="btn-op-item" @click="detailItems.splice($index, 1)">
<el-icon><Delete /></el-icon>删除
@@ -77,7 +77,7 @@
<el-tag :type="row.status == '1' ? 'success' : 'info'" size="small">{{ row.status == '1' ? '正常' : '停用' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="400" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="400" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看</el-button>
<el-button class="btn-op-item primary" @click="openItemDialog(row)"><el-icon><Setting /></el-icon>项目价格配置</el-button>
@@ -209,7 +209,7 @@
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" min-width="140" align="center" header-align="center" show-overflow-tooltip />
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleEditItem(row)"><el-icon><Edit /></el-icon>编辑</el-button>
<el-button class="btn-op-item" @click="handleDeleteItem(row)"><el-icon><Delete /></el-icon>删除</el-button>
@@ -97,7 +97,7 @@
align="center"
header-align="center"
/>
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -190,7 +190,7 @@
/>
</template>
</el-table-column>
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center" header-align="center">
<template #default="{ $index }">
<el-button class="btn-op-item" type="danger" link size="small" @click="detailItems.splice($index, 1)">
<el-icon><Delete /></el-icon>删除
@@ -126,7 +126,7 @@
align="center"
header-align="center"
/>
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)">
<el-icon><View /></el-icon>查看
@@ -79,7 +79,7 @@
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -71,7 +71,7 @@
<el-table-column prop="typeCode" label="类型编码" min-width="150" align="center" header-align="center" />
<el-table-column prop="typeName" label="类型名称" min-width="150" align="center" header-align="center" />
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -71,7 +71,7 @@
<el-table-column prop="categoryCode" label="分类编码" min-width="150" align="center" header-align="center" />
<el-table-column prop="categoryName" label="分类名称" min-width="150" align="center" header-align="center" />
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -110,7 +110,7 @@
</el-table-column>
<el-table-column prop="remark" label="备注" min-width="120" align="center" header-align="center" show-overflow-tooltip />
<el-table-column prop="createTime" label="创建时间" min-width="170" align="center" header-align="center" />
<el-table-column label="操作" width="340" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="340" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleOpenConfig(row)">
<el-icon><Rank /></el-icon>路线图配置
@@ -124,7 +124,7 @@
align="center"
header-align="center"
/>
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleEdit(row)">编辑</el-button>
<el-button class="btn-op-item" @click="handleDelete(row)">删除</el-button>
@@ -67,7 +67,7 @@
<el-table-column prop="completedTime" label="完成时间" min-width="170" align="center">
<template #default="{ row }">{{ row.completedTime || '—' }}</template>
</el-table-column>
<el-table-column label="操作" width="260" fixed="right" align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleEnterExecution(row)"><el-icon><VideoPlay /></el-icon>进入执行</el-button>
<el-button class="btn-op-item" @click="handleViewDetail(row)"><el-icon><View /></el-icon>查看详情</el-button>
@@ -55,7 +55,7 @@
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="170" align="center" />
<el-table-column label="操作" width="280" fixed="right" align="center">
<el-table-column label="操作" min-width="280" fixed="right" align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看详情</el-button>
<el-button
@@ -79,7 +79,7 @@
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
+1 -1
View File
@@ -77,7 +77,7 @@
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
@@ -61,7 +61,7 @@
<el-tag :type="row.status === '1' ? 'success' : 'info'" size="small">{{ row.status === '1' ? '启用' : '停用' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="320" fixed="right" align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看</el-button>
<el-button class="btn-op-item primary" @click="handleEdit(row)"><el-icon><Edit /></el-icon>编辑</el-button>
@@ -110,7 +110,7 @@
</el-table-column>
<el-table-column prop="remark" label="备注" min-width="140" align="center" header-align="center" show-overflow-tooltip />
<el-table-column prop="createTime" label="创建时间" min-width="170" align="center" header-align="center" />
<el-table-column label="操作" width="400" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="400" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)">
<el-icon><View /></el-icon>查看
@@ -118,7 +118,7 @@
<el-table-column prop="remark" label="备注" min-width="140" align="center" show-overflow-tooltip>
<template #default="{ row }">{{ row.remark || '—' }}</template>
</el-table-column>
<el-table-column label="操作" width="260" fixed="right" align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center">
<template #default="{ row }">
<template v-if="row.taskType === 'sysz' && row.taskStatus === 'dzx'">
<el-button class="btn-op-item primary" @click="handleStart(row)"><el-icon><VideoPlay /></el-icon>开始</el-button>
@@ -70,7 +70,7 @@
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="170" align="center" />
<el-table-column label="操作" width="280" fixed="right" align="center">
<el-table-column label="操作" min-width="280" fixed="right" align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看</el-button>
<el-button
@@ -85,7 +85,7 @@
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="170" align="center" header-align="center" />
<el-table-column label="操作" width="260" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleEdit(row)">编辑</el-button>
<el-button class="btn-op-item" @click="handleDelete(row)">删除</el-button>
@@ -76,7 +76,7 @@
<el-tag :type="row.status === '1' ? 'success' : 'info'" size="small">{{ row.status === '1' ? '启用' : '停用' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="400" fixed="right" align="center">
<el-table-column label="操作" min-width="400" fixed="right" align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看</el-button>
<el-button class="btn-op-item primary" @click="openItemDialog(row)"><el-icon><Setting /></el-icon>检测项目配置</el-button>
@@ -209,7 +209,7 @@
<el-tag :type="row.status === '1' ? 'success' : 'info'" size="small">{{ row.status === '1' ? '启用' : '停用' }}</el-tag>
</template>
</el-table-column>
<el-table-column label="操作" width="260" fixed="right" align="center">
<el-table-column label="操作" min-width="260" fixed="right" align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleEditItem(row)"><el-icon><Edit /></el-icon>编辑</el-button>
<el-button class="btn-op-item" @click="handleDeleteItem(row)"><el-icon><Delete /></el-icon>删除</el-button>
@@ -145,7 +145,7 @@
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间" width="180" align="center" header-align="center" />
<el-table-column label="操作" width="400" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="400" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看</el-button>
<el-button class="btn-op-item primary" @click="handleAddChild(row)" v-if="!row.parentId">
+1 -1
View File
@@ -71,7 +71,7 @@
<el-table-column prop="expressCode" label="快递编码" min-width="120" align="center" header-align="center" />
<el-table-column prop="expressName" label="快递名称" min-width="140" align="center" header-align="center" />
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
+2 -2
View File
@@ -214,7 +214,7 @@
<el-form-item v-if="formData.menuType === 'C'" label="组件路径">
<el-input v-model="formData.component" placeholder="请输入组件路径" />
</el-form-item>
<el-form-item v-if="formData.menuType === 'F'" label="权限标识">
<el-form-item v-if="formData.menuType !== 'M'" label="权限标识">
<el-input v-model="formData.perms" placeholder="如 system:menu:list" />
</el-form-item>
<el-form-item label="显示状态">
@@ -482,7 +482,7 @@
menuType: formData.menuType,
path: formData.path?.trim() || undefined,
component: formData.menuType === 'C' ? formData.component?.trim() || undefined : undefined,
perms: formData.menuType === 'F' ? formData.perms?.trim() || undefined : undefined,
perms: formData.menuType !== 'M' ? formData.perms?.trim() || undefined : undefined,
isFrame: formData.isFrame,
visible: formData.visible,
status: formData.status,
+1 -1
View File
@@ -78,7 +78,7 @@
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="480" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="480" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看</el-button>
<el-button class="btn-op-item primary" @click="handlePostBindUsers(row)">
+1 -1
View File
@@ -139,7 +139,7 @@
</template>
</el-table-column>
<el-table-column prop="createAt" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item primary" @click="handleView(row)">查看</el-button>
<el-button class="btn-op-item" @click="handleEdit(row)">编辑</el-button>
+219 -17
View File
@@ -291,7 +291,7 @@
v-model="dataScopeUserKeyword"
class="data-scope-user-filter"
clearable
placeholder="按姓名、账号过滤"
placeholder="按姓名、工号、联系方式过滤"
/>
<div class="data-scope-user-list-wrap">
<el-checkbox-group
@@ -358,9 +358,48 @@
v-model:visible="viewVisible"
:title="viewRow?.roleName || '角色详情'"
:icon="Stamp"
:meta="`数据权限:${dataScopeLabel(viewRow?.dataScope || '')}${viewRow?.createTime ? ' · ' + viewRow.createTime : ''}`"
width="860px"
:meta="`数据权限:${dataScopeLabel(viewDataScopeCode || viewRow?.dataScope || '')}${viewRow?.createTime ? ' · ' + viewRow.createTime : ''}`"
:sections="viewSections"
/>
>
<template #menuTree>
<div v-loading="viewDetailLoading" class="role-view-tree-block">
<div v-if="viewMenuTreeData.length" class="role-view-tree-scroll">
<el-tree
:key="'menu-' + viewTreeRenderKey"
ref="viewMenuTreeRef"
class="role-view-readonly-tree"
show-checkbox
:data="viewMenuTreeData"
node-key="id"
:props="{ label: 'menuName', children: 'children' }"
:default-checked-keys="viewMenuCheckedKeys"
default-expand-all
/>
</div>
<el-empty v-else-if="!viewDetailLoading" description="暂无菜单数据" :image-size="40" />
</div>
</template>
<template #customDeptTree>
<div v-loading="viewDetailLoading" class="role-view-tree-block">
<div v-if="viewDeptTreeData.length" class="role-view-tree-scroll">
<el-tree
:key="'dept-' + viewTreeRenderKey"
ref="viewDeptTreeRef"
class="role-view-readonly-tree"
show-checkbox
check-strictly
:data="viewDeptTreeData"
node-key="id"
:props="{ label: 'deptName', children: 'children' }"
:default-checked-keys="viewDeptCheckedKeys"
default-expand-all
/>
</div>
<el-empty v-else-if="!viewDetailLoading" description="暂无部门数据" :image-size="40" />
</div>
</template>
</SystemViewDialog>
</section>
</div>
</template>
@@ -369,7 +408,9 @@
import { ref, reactive, computed, onMounted, nextTick, watch } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { Plus, Close, Check, DataAnalysis, View, Stamp, RefreshLeft, Search } from '@element-plus/icons-vue'
import SystemViewDialog from '@/components/business/system-view-dialog/index.vue'
import SystemViewDialog, {
type ViewSection
} from '@/components/business/system-view-dialog/index.vue'
import { MAX_ADMIN_LIST_PAGE_SIZE } from '@/utils/fetch-paged-list'
import { withFullscreenLoading, fullscreenLoadingText } from '@/utils/fullscreen-loading'
import { buildPathLabelMapFromTreeRoots } from '@/utils/tree-path'
@@ -433,7 +474,15 @@
const deptTreeRef = ref()
const deptTreeData = ref<Api.Dept.DeptItem[]>([])
const allUsers = ref<
Array<{ id: string; nickName: string; userNo: string; deptId: string; deptName?: string }>
Array<{
id: string
nickName: string
userNo: string
deptId: string
deptName?: string
phoneNo: string
status: string
}>
>([])
const scopeDeptCheckedKeys = ref<string[]>([])
const scopeUserCheckedKeys = ref<string[]>([])
@@ -499,7 +548,8 @@
if (!kw) return true
const name = (u.nickName || '').toLowerCase()
const no = (u.userNo || '').toLowerCase()
return name.includes(kw) || no.includes(kw)
const phone = (u.phoneNo || '').toLowerCase()
return name.includes(kw) || no.includes(kw) || phone.includes(kw)
})
})
@@ -547,10 +597,21 @@
dataScopeSelectedDeptRows.value.length > 0 || dataScopeSelectedUserSummaries.value.length > 0
)
function userOptionLabel(u: { id: string; nickName: string; userNo: string; deptName?: string }) {
const base = u.nickName || u.userNo || u.id
if (u.deptName) return `${base}(${u.deptName})`
return base
function userStatusText(status: string | undefined) {
return status === '1' ? '正常' : '停用'
}
function userOptionLabel(u: {
id: string
nickName: string
userNo: string
phoneNo?: string
status?: string
}) {
const name = u.nickName || u.userNo || u.id
const no = u.userNo || '—'
const phone = u.phoneNo || '—'
return `${name}(${no}、${phone}、${userStatusText(u.status)})`
}
function handleDataScopeDeptNodeClick(data: Api.Dept.DeptItem) {
@@ -634,7 +695,7 @@
if (isEdit.value && editingId.value) {
await fetchUpdateRole(editingId.value, payload)
} else {
await fetchCreateRole(payload)
await fetchCreateRole({ ...payload, dataScope: '4' })
}
dialogVisible.value = false
await loadData()
@@ -706,7 +767,15 @@
* 分页拉取租户用户列表供「数据权限」多选;单页 pageSize 超过 100 时接口会 422。
*/
async function fetchAllUsersForDataScope(): Promise<
Array<{ id: string; nickName: string; userNo: string; deptId: string; deptName?: string }>
Array<{
id: string
nickName: string
userNo: string
deptId: string
deptName?: string
phoneNo: string
status: string
}>
> {
const pageSize = MAX_ADMIN_LIST_PAGE_SIZE
const raw: any[] = []
@@ -724,7 +793,9 @@
deptId: u.deptId || '',
nickName: u.nickName || u.realName || '',
userNo: u.userNo || '',
deptName: u.deptName
deptName: u.deptName,
phoneNo: u.phoneNo || '',
status: u.status || '0'
}))
}
@@ -794,27 +865,127 @@
// ---- 查看弹窗 ----
const viewVisible = ref(false)
const viewRow = ref<Api.Role.RoleItem | null>(null)
const viewDetailLoading = ref(false)
const viewDataScopeCode = ref('')
const viewMenuTreeData = ref<Api.Menu.MenuItem[]>([])
const viewMenuCheckedKeys = ref<string[]>([])
const viewDeptTreeData = ref<Api.Dept.DeptItem[]>([])
const viewDeptCheckedKeys = ref<string[]>([])
const viewCustomUserLabels = ref<string[]>([])
const viewMenuTreeRef = ref()
const viewDeptTreeRef = ref()
const viewTreeRenderKey = ref(0)
const viewSections = computed(() => {
const viewSections = computed((): ViewSection[] => {
const row = viewRow.value
if (!row) return []
return [
const loadingText = '加载中…'
const scopeCode = viewDataScopeCode.value || row.dataScope
const dataFields: ViewSection['fields'] = [
{
label: '权限范围',
value: viewDetailLoading.value ? loadingText : dataScopeLabel(scopeCode),
tagType: viewDetailLoading.value ? undefined : dataScopeTagType(scopeCode)
}
]
if (scopeCode === '5') {
dataFields.push({
label: '自定义用户',
span: true,
...(viewDetailLoading.value
? { value: loadingText }
: viewCustomUserLabels.value.length
? { items: viewCustomUserLabels.value }
: { value: '—' })
})
}
const sections: ViewSection[] = [
{
title: '基本信息',
fields: [
{ label: '角色名称', value: row.roleName },
{ label: '数据权限', value: dataScopeLabel(row.dataScope) },
{ label: '状态', value: row.status === '1' ? '正常' : '停用', tagType: row.status === '1' ? 'success' : 'info' },
{
label: '状态',
value: row.status === '1' ? '正常' : '停用',
tagType: row.status === '1' ? ('success' as const) : ('info' as const)
},
{ label: '创建时间', value: row.createTime },
{ label: '备注', value: row.remark, span: true }
]
},
{
title: '菜单权限',
titleStyle: 'field',
fields: [],
slot: 'menuTree'
},
{
title: '数据权限',
fields: dataFields,
...(scopeCode === '5'
? {
slot: 'customDeptTree',
slotTitle: '自定义部门',
slotTitleStyle: 'field' as const
}
: {})
}
]
return sections
})
/** 异步灌入勾选数据后重挂载树并同步勾选态(只读展示) */
async function syncViewReadonlyTreeChecks() {
viewTreeRenderKey.value += 1
await nextTick()
viewMenuTreeRef.value?.setCheckedKeys?.(viewMenuCheckedKeys.value, true)
viewDeptTreeRef.value?.setCheckedKeys?.(viewDeptCheckedKeys.value)
}
async function loadViewDetail(row: Api.Role.RoleItem) {
viewDetailLoading.value = true
viewDataScopeCode.value = row.dataScope || ''
viewMenuTreeData.value = []
viewMenuCheckedKeys.value = []
viewDeptTreeData.value = []
viewDeptCheckedKeys.value = []
viewCustomUserLabels.value = []
try {
const [menuTree, menuRes, scopeRes] = await Promise.all([
fetchMenuTree(),
fetchRoleMenuIds(row.id),
fetchRoleDataScope(row.id)
])
viewMenuTreeData.value = menuTree || []
viewMenuCheckedKeys.value = [...(menuRes?.menuIds || [])]
const scope = scopeRes?.dataScope || row.dataScope
viewDataScopeCode.value = scope
if (scope === '5') {
const [deptTree, users] = await Promise.all([fetchDeptTree(), fetchAllUsersForDataScope()])
const details = scopeRes?.scopeDetails || []
viewDeptTreeData.value = deptTree || []
viewDeptCheckedKeys.value = details
.filter((d) => d.scopeType === 'dept')
.map((d) => d.scopeValue)
const userLabels = details
.filter((d) => d.scopeType === 'user')
.map((d) => {
const u = users.find((x) => x.id === d.scopeValue)
return u ? userOptionLabel(u) : d.scopeValue
})
viewCustomUserLabels.value = userLabels
}
await syncViewReadonlyTreeChecks()
} finally {
viewDetailLoading.value = false
}
}
function handleView(row: Api.Role.RoleItem) {
viewRow.value = row
viewVisible.value = true
loadViewDetail(row)
}
onMounted(() => {
@@ -897,6 +1068,11 @@
.data-scope-user-row {
padding: 4px 0;
:deep(.el-checkbox__label) {
line-height: 1.45;
white-space: normal;
}
}
.data-scope-selection-summary {
@@ -949,4 +1125,30 @@
line-height: 1.5;
color: var(--mint-text-muted, var(--el-text-color-secondary));
}
.role-view-tree-block {
min-height: 48px;
}
.role-view-tree-scroll {
max-height: 320px;
overflow-y: auto;
padding: 8px;
border: 1px solid var(--el-border-color-lighter);
border-radius: 8px;
}
.role-view-readonly-tree {
:deep(.el-tree-node__content) {
cursor: default;
}
:deep(.el-checkbox) {
pointer-events: none;
}
:deep(.el-tree-node__expand-icon) {
pointer-events: auto;
}
}
</style>
+1 -1
View File
@@ -86,7 +86,7 @@
<el-table-column prop="contactName" label="联系人" min-width="100" align="center" header-align="center" />
<el-table-column prop="contactPhone" label="联系电话" min-width="140" align="center" header-align="center" />
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看</el-button>
<el-button class="btn-op-item primary" @click="handleEdit(row)">编辑</el-button>
+1 -1
View File
@@ -71,7 +71,7 @@
<el-table-column prop="unitName" label="单位名称" min-width="150" align="center" header-align="center" />
<el-table-column prop="unitCode" label="单位编码" min-width="120" align="center" header-align="center" />
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="320" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="320" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"
><el-icon><View /></el-icon>查看</el-button
+1 -1
View File
@@ -106,7 +106,7 @@
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" min-width="180" align="center" header-align="center" />
<el-table-column label="操作" width="400" fixed="right" align="center" header-align="center">
<el-table-column label="操作" min-width="400" fixed="right" align="center" header-align="center">
<template #default="{ row }">
<el-button class="btn-op-item" @click="handleView(row)"><el-icon><View /></el-icon>查看</el-button>
<el-button class="btn-op-item primary" @click="handleEdit(row)">编辑</el-button>
Loaded 100 of 241 files, more files were not shown because too many files have changed in this diff. Show more