docs(release-notes): 添加住院护士站划价功能说明和发版记录

- 新增住院护士站划价服务流程说明文档,详细描述了从参数预处理到结果响应的五大阶段流程
- 包含耗材类医嘱和诊疗活动类医嘱的差异化处理逻辑
- 添加完整的发版内容记录,涵盖新增菜单功能和各模块优化点
- 记录了住院相关功能的新增和门诊业务流程的修复
```
This commit is contained in:
2025-12-25 14:13:14 +08:00
parent 85fcb7c2e2
commit abc0674531
920 changed files with 107068 additions and 14495 deletions

View File

@@ -0,0 +1,340 @@
// 医保目录各类型字段配置
export const catalogFieldConfigs = {
// 西药中成药目录 (1301)
1301: {
columns: [
{ prop: 'medicalCatalogCode', label: '医疗目录编码' },
{ prop: 'drugTradeName', label: '药品商品名' },
{ prop: 'genericNameId', label: '通用名编号' },
{ prop: 'drugGenericName', label: '药品通用名' },
{ prop: 'chemicalName', label: '化学名称' },
{ prop: 'alias', label: '别名' },
{ prop: 'englishName', label: '英文名称' },
{ prop: 'registeredName', label: '注册名称' },
{ prop: 'drugSupervisionCode', label: '药监本位码' },
{ prop: 'drugForm', label: '药品剂型' },
{ prop: 'drugFormName', label: '药品剂型名称' },
{ prop: 'drugCategory', label: '药品类别' },
{ prop: 'drugCategoryName', label: '药品类别名称' },
{ prop: 'drugSpecification', label: '药品规格' },
{ prop: 'drugSpecCode', label: '药品规格代码' },
{ prop: 'registeredForm', label: '注册剂型' },
{ prop: 'registeredSpec', label: '注册规格' },
{ prop: 'registeredSpecCode', label: '注册规格代码' },
{ prop: 'dosage', label: '每次用量' },
{ prop: 'frequency', label: '使用频次' },
{ prop: 'acidBase', label: '酸根盐基' },
{ prop: 'nationalDrugCode', label: '国家药品编号' },
{ prop: 'usage', label: '用法' },
{ prop: 'tcmFlag', label: '中成药标志' },
{ prop: 'productionAreaType', label: '生产地类别' },
{ prop: 'productionAreaName', label: '生产地类别名称' },
{ prop: 'pricingUnitType', label: '计价单位类型' },
{ prop: 'otcFlag', label: '非处方药标志' },
{ prop: 'otcFlagName', label: '非处方药标志名称' },
{ prop: 'packagingMaterial', label: '包装材质' },
{ prop: 'packagingMaterialName', label: '包装材质名称' },
{ prop: 'packagingSpec', label: '包装规格' },
{ prop: 'packagingQuantity', label: '包装数量' },
{ prop: 'functionIndication', label: '功能主治' },
{ prop: 'administrationRoute', label: '给药途径' },
{ prop: 'instructions', label: '说明书' },
{ prop: 'startDate', label: '开始日期' },
{ prop: 'endDate', label: '结束日期' },
{ prop: 'minUseUnit', label: '最小使用单位' },
{ prop: 'minSaleUnit', label: '最小销售单位' },
{ prop: 'minMeasurementUnit', label: '最小计量单位' },
{ prop: 'minPackageQuantity', label: '最小包装数量' },
{ prop: 'minPackageUnit', label: '最小包装单位' },
{ prop: 'minPreparationUnit', label: '最小制剂单位' },
{ prop: 'minPackageUnitName', label: '最小包装单位名称' },
{ prop: 'minPreparationUnitName', label: '最小制剂单位名称' },
{ prop: 'conversionRatio', label: '转换比' },
{ prop: 'shelfLife', label: '药品有效期' },
{ prop: 'minPricingUnit', label: '最小计价单位' },
{ prop: 'wubiCode', label: '五笔助记码' },
{ prop: 'pinyinCode', label: '拼音助记码' },
{ prop: 'repackager', label: '分包装厂家' },
{ prop: 'manufacturerCode', label: '生产企业编号' },
{ prop: 'manufacturerName', label: '生产企业名称' },
{ prop: 'specialPriceLimitFlag', label: '特殊限价药品标志' },
{ prop: 'specialDrugFlag', label: '特殊药品标志' },
{ prop: 'useRestriction', label: '限制使用范围' },
{ prop: 'useRestrictionFlag', label: '限制使用标志' },
{ prop: 'registrationCertNo', label: '药品注册证号' },
{ prop: 'regCertStartDate', label: '药品注册证号开始日期' },
{ prop: 'regCertEndDate', label: '药品注册证号结束日期' },
{ prop: 'approvalNo', label: '批准文号' },
{ prop: 'approvalNoStartDate', label: '批准文号开始日期' },
{ prop: 'approvalNoEndDate', label: '批准文号结束日期' },
{ prop: 'marketStatus', label: '市场状态' },
{ prop: 'marketStatusName', label: '市场状态名称' },
{ prop: 'regDocumentArchive', label: '药品注册批件电子档案' },
{ prop: 'suppApplicationArchive', label: '药品补充申请批件电子档案' },
{ prop: 'nationalInsuranceNotes', label: '国家医保药品目录备注' },
{ prop: 'essentialDrugFlagName', label: '基本药物标志名称' },
{ prop: 'essentialDrugFlag', label: '基本药物标志' },
{ prop: 'vatAdjustmentFlag', label: '增值税调整药品标志' },
{ prop: 'vatAdjustmentName', label: '增值税调整药品名称' },
{ prop: 'listedDrugFlag', label: '上市药品目录集药品' },
{ prop: 'negotiationDrugFlag', label: '医保谈判药品标志' },
{ prop: 'negotiationDrugName', label: '医保谈判药品名称' },
{ prop: 'nhcDrugCode', label: '卫健委药品编码' },
{ prop: 'remarks', label: '备注' },
{ prop: 'validFlag', label: '有效标志' },
{ prop: 'uniqueRecordId', label: '唯一记录号' },
{ prop: 'createdAt', label: '数据创建时间' },
{ prop: 'updatedAt', label: '数据更新时间' },
{ prop: 'version', label: '版本号' },
{ prop: 'versionName', label: '版本名称' },
{ prop: 'pediatricUse', label: '儿童用药' },
{ prop: 'companyName', label: '公司名称' },
{ prop: 'genericEvaluationFlag', label: '仿制药一致性评价药品' },
{ prop: 'distributionCompany', label: '经销企业' },
{ prop: 'distributionContact', label: '经销企业联系人' },
{ prop: 'distributionAuthArchive', label: '经销企业授权书电子档案' },
{ prop: 'insuranceForm', label: '国家医保药品目录剂型' },
{ prop: 'insuranceClass', label: '国家医保药品目录甲乙类标识' },
{ prop: 'marketingAuthorizationHolder', label: '上市许可证持有人' },
{ prop: 'releaseFlag', label: '下发标志' },
{ prop: 'transmissionDataId', label: '传输数据ID' },
{ prop: 'validFrom', label: '生效时间' },
{ prop: 'validTo', label: '失效时间' },
],
},
// 中药饮片目录 (1302)
1302: {
columns: [
{ prop: 'medicalCatalogCode', label: '医疗目录编码' },
{ prop: 'singleDrugName', label: '单味药名称' },
{ prop: 'singleCompoundFlag', label: '单复方标志' }, //单复方标志(true:复方 false:单方)
{ prop: 'qualityGrade', label: '质量等级' },
{ prop: 'herbalYear', label: '中草药年份' },
{ prop: 'medicinalPart', label: '药用部位' },
{ prop: 'safeDosage', label: '安全剂量' },
{ prop: 'conventionalUsage', label: '常规用法' },
{ prop: 'propertiesTaste', label: '性味' },
{ prop: 'meridianAttribution', label: '归经' },
{ prop: 'species', label: '品种' },
{ prop: 'startDate', label: '开始日期' },
{ prop: 'endDate', label: '结束日期' },
{ prop: 'validFlag', label: '有效标志' }, //有效标志(true:有效 false:无效)
{ prop: 'uniqueRecordId', label: '唯一记录号' },
{ prop: 'createTime', label: '数据创建时间' },
{ prop: 'updateTime', label: '数据更新时间' },
{ prop: 'versionNumber', label: '版本号' },
{ prop: 'versionName', label: '版本名称' },
{ prop: 'herbName', label: '药材名称' },
{ prop: 'indications', label: '功能主治' },
{ prop: 'processingMethod', label: '炮制方法' },
{ prop: 'efficacyClassification', label: '功效分类' },
{ prop: 'herbSource', label: '药材来源' },
{ prop: 'nationalInsurancePolicy', label: '国家医保支付政策' },
{ prop: 'provincialInsurancePolicy', label: '省级医保支付政策' },
{ prop: 'standardName', label: '标准名称' },
{ prop: 'standardPage', label: '标准页码' },
{ prop: 'electronicRecord', label: '标准电子档案' },
{ prop: 'issuanceFlag', label: '下发标志' },
{ prop: 'transferDataId', label: '传输数据ID' },
{ prop: 'effectiveTime', label: '生效时间' },
{ prop: 'expiryTime', label: '失效时间' },
],
},
// 医疗服务项目目录 (1305)
1305: {
columns: [
{ prop: 'medicalCatalogCode', label: '医疗目录编码' },
{ prop: 'billingUnit', label: '计价单位' },
{ prop: 'billingUnitName', label: '计价单位名称' },
{ prop: 'medicalItemDesc', label: '诊疗项目说明' },
{ prop: 'exclusionContent', label: '诊疗除外内容' },
{ prop: 'medicalItemConnotation', label: '诊疗项目内涵' },
{ prop: 'validFlag', label: '有效标志' }, //有效标志(true:有效 false:无效)
{ prop: 'remarks', label: '备注' },
{ prop: 'serviceCategory', label: '服务项目类别' },
{ prop: 'medicalServiceName', label: '医疗服务项目名称' },
{ prop: 'projectDescription', label: '项目说明' },
{ prop: 'startDate', label: '开始日期' },
{ prop: 'endDate', label: '结束日期' },
{ prop: 'uniqueRecordId', label: '唯一记录号' }, //uuid
{ prop: 'versionNumber', label: '版本号' },
{ prop: 'versionName', label: '版本名称' },
{ prop: 'issuanceFlag', label: '下发标志' },
{ prop: 'transferDataId', label: '传输数据ID' },
{ prop: 'effectiveTime', label: '生效时间' },
{ prop: 'expiryTime', label: '失效时间' },
],
},
// 医用耗材目录 (1306)
1306: {
columns: [
{ prop: 'medicalCatalogCode', label: '医疗目录编码' },
{ prop: 'consumableName', label: '耗材名称' },
{ prop: 'deviceUniqueId', label: '医疗器械唯一标识' },
{ prop: 'insuranceGenericCode', label: '医保通用代码' },
{ prop: 'insuranceGenericName', label: '医保通用名称' },
{ prop: 'productModel', label: '产品型号' },
{ prop: 'specCode', label: '规格代码' },
{ prop: 'specification', label: '规格' },
{ prop: 'consumableCategory', label: '耗材分类' },
{ prop: 'specModel', label: '规格型号' },
{ prop: 'materialCode', label: '材质代码' },
{ prop: 'materialType', label: '耗材材质' },
{ prop: 'packageSpec', label: '包装规格' },
{ prop: 'packageQuantity', label: '包装数量' },
{ prop: 'packageMaterial', label: '产品包装材质' },
{ prop: 'packageUnit', label: '包装单位' },
{ prop: 'conversionRatio', label: '产品转换比' },
{ prop: 'minUsageUnit', label: '最小使用单位' },
{ prop: 'productionAreaType', label: '生产地类别' },
{ prop: 'productionAreaName', label: '生产地类别名称' },
{ prop: 'productStandard', label: '产品标准' },
{ prop: 'expiryDate', label: '产品有效期' },
{ prop: 'structureComposition', label: '性能结构与组成' },
{ prop: 'applicableScope', label: '适用范围' },
{ prop: 'usageMethod', label: '产品使用方法' },
{ prop: 'imageCode', label: '产品图片编号' },
{ prop: 'qualityStandard', label: '产品质量标准' },
{ prop: 'instructions', label: '说明书' },
{ prop: 'proofMaterials', label: '其他证明材料' },
{ prop: 'specialDeviceFlag', label: '专机专用标志' },
{ prop: 'specialDeviceName', label: '专机名称' },
{ prop: 'kitName', label: '组套名称' },
{ prop: 'kitFlag', label: '组套标志' },
{ prop: 'usageRestrictionFlag', label: '限制使用标志' },
{ prop: 'insuranceRestriction', label: '医保限用范围' },
{ prop: 'minSaleUnit', label: '最小销售单位' },
{ prop: 'highValueFlag', label: '高值耗材标志' }, //高值耗材标志(true:是 false:否)
{ prop: 'medicalMaterialCode', label: '医用材料分类代码' },
{ prop: 'implantFlag', label: '植入材料和人体器官标志' },
{ prop: 'sterilizationFlag', label: '灭菌标志' },
{ prop: 'sterilizationName', label: '灭菌标志名称' },
{ prop: 'implantInterventionFlag', label: '植入或介入类标志' },
{ prop: 'implantInterventionName', label: '植入或介入类名称' },
{ prop: 'disposableFlag', label: '一次性使用标志' },
{ prop: 'disposableFlagName', label: '一次性使用标志名称' },
{ prop: 'registrantName', label: '注册备案人名称' },
{ prop: 'startDate', label: '开始日期' },
{ prop: 'endDate', label: '结束日期' },
{ prop: 'deviceManagementCategory', label: '医疗器械管理类别' },
{ prop: 'deviceCategoryName', label: '医疗器械管理类别名称' },
{ prop: 'registrationNo', label: '注册备案号' },
{ prop: 'registeredProductName', label: '注册备案产品名称' },
{ prop: 'structureDetails', label: '结构及组成' },
{ prop: 'otherContent', label: '其他内容' },
{ prop: 'approvalDate', label: '批准日期' },
{ prop: 'registrantAddress', label: '注册备案人住所' },
{ prop: 'certEffectiveStart', label: '注册证有效期开始时间' },
{ prop: 'certEffectiveEnd', label: '注册证有效期结束时间' },
{ prop: 'manufacturerCode', label: '生产企业编号' },
{ prop: 'manufacturerName', label: '生产企业名称' },
{ prop: 'productionAddress', label: '生产地址' },
{ prop: 'agentCompany', label: '代理人企业' },
{ prop: 'agentAddress', label: '代理人企业地址' },
{ prop: 'productionCountry', label: '生产国或地区' },
{ prop: 'serviceAgency', label: '售后服务机构' },
{ prop: 'certArchivePath', label: '注册或备案证电子档案' },
{ prop: 'productImages', label: '产品影像' },
{ prop: 'validFlag', label: '有效标志' },
{ prop: 'uniqueRecordId', label: '唯一记录号' },
{ prop: 'versionNumber', label: '版本号' },
{ prop: 'versionName', label: '版本名称' },
],
},
// 疾病与诊断目录 (1307)
1307: {
columns: [
{ prop: 'diseaseId', label: '西医疾病诊断' },
{ prop: 'chapter', label: '章' },
{ prop: 'chapterCodeRange', label: '章代码范围' },
{ prop: 'chapterName', label: '章名称' },
{ prop: 'sectionCodeRange', label: '节代码范围' },
{ prop: 'sectionName', label: '节名称' },
{ prop: 'categoryCode', label: '类目代码' },
{ prop: 'categoryName', label: '类目名称' },
{ prop: 'subcategoryCode', label: '亚目代码' },
{ prop: 'subcategoryName', label: '亚目名称' },
{ prop: 'diagnosisCode', label: '诊断代码' },
{ prop: 'diagnosisName', label: '诊断名称' },
{ prop: 'usageFlag', label: '使用标记' }, //使用标记(true:启用 false:停用)
{ prop: 'gbDiagnosisCode', label: '国标版诊断代码' },
{ prop: 'gbDiagnosisName', label: '国标版诊断名称' },
{ prop: 'clinicalCode', label: '临床版诊断代码' },
{ prop: 'clinicalName', label: '临床版诊断名称' },
{ prop: 'remarks', label: '备注' },
{ prop: 'validFlag', label: '有效标志' }, //有效标志(true:有效 false:无效)
{ prop: 'uniqueRecordId', label: '唯一记录号' },
// { prop: 'createTime', label: '数据创建时间' },
// { prop: 'updateTime', label: '数据更新时间' },
{ prop: 'versionNumber', label: '版本号' },
{ prop: 'versionName', label: '版本名称' },
],
},
// 手术操作目录 (1308)
1308: {
columns: [
{ prop: 'id', label: '手术标准目录ID' },
{ prop: 'chapter', label: '章' },
{ prop: 'chapterCodeRange', label: '章代码范围' },
{ prop: 'chapterName', label: '章名称' },
{ prop: 'categoryCode', label: '类目代码' },
{ prop: 'categoryName', label: '类目名称' },
{ prop: 'subcategoryCode', label: '亚目代码' },
{ prop: 'subcategoryName', label: '亚目名称' },
{ prop: 'itemCode', label: '项目代码' },
{ prop: 'itemName', label: '项目名称' },
{ prop: 'operationCode', label: '手术操作代码' },
{ prop: 'operationName', label: '手术操作名称' },
{ prop: 'usageFlag', label: '使用标记' },
{ prop: 'groupStandardOperationCode', label: '团标版手术操作代码' },
{ prop: 'groupStandardOperationName', label: '团标版手术操作名称' },
{ prop: 'clinicalVersionOperationCode', label: '临床版手术操作代码' },
{ prop: 'clinicalVersionOperationName', label: '临床版手术操作名称' },
{ prop: 'remarks', label: '备注' },
{ prop: 'validFlag', label: '有效标志' },
{ prop: 'uniqueRecordId', label: '唯一记录号' },
{ prop: 'createTime', label: '数据创建时间' },
{ prop: 'updateTime', label: '数据更新时间' },
{ prop: 'versionNumber', label: '版本号' },
{ prop: 'versionName', label: '版本名称' },
],
},
// 中医疾病目录 (1314)
1314: {
columns: [
{ prop: 'id', label: '中医疾病诊断' },
{ prop: 'categoryCode', label: '科别类目编码' },
{ prop: 'categoryName', label: '科别类目名称' },
{ prop: 'specialtySystemCategoryCode', label: '专科系统分类目编码' },
{ prop: 'specialtySystemCategoryName', label: '专科系统分类目名称' },
{ prop: 'diseaseCategoryCode', label: '疾病分类编码' },
{ prop: 'diseaseCategoryName', label: '疾病分类名称' },
{ prop: 'remarks', label: '备注' },
{ prop: 'validFlag', label: '有效标志' },
{ prop: 'uniqueRecordId', label: '唯一记录号' },
// { prop: 'createTime', label: '数据创建时间' },
// { prop: 'updateTime', label: '数据更新时间' },
{ prop: 'versionNumber', label: '版本号' },
{ prop: 'versionName', label: '版本名称' },
],
},
// 中医证候目录 (1315)
1315: {
columns: [
{ prop: 'tcmSyndromeId', label: '中医证候ID' },
{ prop: 'syndromeClassCode', label: '证候类目编码' },
{ prop: 'syndromeClassName', label: '证候分类名称' },
{ prop: 'syndromePropertyCode', label: '证候属性代码' },
{ prop: 'syndromeProperty', label: '证候属性' },
{ prop: 'syndromeTypeCode', label: '证候分类代码' },
{ prop: 'syndromeTypeName', label: '证候分类名称' },
{ prop: 'remark', label: '备注' },
{ prop: 'activeFlag', label: '有效标志' },
{ prop: 'uniqueRecordId', label: '唯一记录号' },
{ prop: 'craetTime', label: '创建时间' },
{ prop: 'updateTime', label: '更新时间' },
{ prop: 'version', label: '版本' },
{ prop: 'versionName', label: '版本名称' },
],
},
};

View File

@@ -0,0 +1,17 @@
import request from '@/utils/request';
// 查询
export function getYbCatalogResult(params) {
return request({
url: '/catalog/page',
method: 'get',
params,
});
}
//更新查询
export function getYbCatalog(address, v) {
return request({
url: `/yb-request/query-catalog?address=${address}&v=${v}`,
method: 'get',
});
}

View File

@@ -0,0 +1,358 @@
<template>
<div class="app-container">
<el-row :gutter="20">
<!--药品目录-->
<el-col :span="4" :xs="24">
<div class="head-container">
<div class="head-title">医保目录</div>
<el-tree
:data="medicationOptions"
:props="{
label: 'info',
children: 'children',
}"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="medicationTreeRef"
node-key="value"
highlight-current
default-expand-all
@node-click="handleNodeClick"
current-node-key="1301"
:default-expand-all="true"
>
<template #default="{ node, data }">
<span :class="{ 'text-light-gray': !data.available }">
{{ data.info }}
</span>
</template>
</el-tree>
</div>
</el-col>
<!--药品目录-->
<el-col :span="20" :xs="24">
<el-row :gutter="10" class="mb8" style="margin-bottom: 20px">
<el-form
:model="queryParams"
ref="queryRef"
:inline="true"
v-show="showSearch"
label-width="68px"
style="display: flex; align-items: center; margin: 0"
>
<el-form-item
label="搜索"
prop="searchKey"
label-width="40"
style="margin: 0; margin-right: 10px"
>
<el-input
v-model="queryParams.searchKey"
:placeholder="searchPlaceholder"
clearable
style="width: 400px"
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item
label="版本号"
prop="versionNumber"
label-width="80"
style="margin: 0; margin-right: 10px"
>
<el-input
v-model="queryParams.v"
placeholder="版本号"
clearable
style="width: 240px"
@keyup.enter="handleQuery"
disabled
/>
</el-form-item>
<el-form-item style="margin: 0 10px">
<el-button type="primary" plain icon="Search" @click="getList">查询</el-button>
</el-form-item>
<el-form-item style="margin: 0 10px">
<el-button type="primary" plain icon="Search" @click="handleUpdateCatalog"
>更新目录</el-button
>
</el-form-item>
</el-form>
</el-row>
<el-table v-loading="loading" :data="medicationList" style="width: 100%" height="70vh">
<template v-for="(column, index) in currentColumns" :key="index">
<el-table-column
:prop="column.prop"
:label="column.label"
:min-width="calculateColumnWidth(column)"
:show-overflow-tooltip="true"
align="center"
>
<template #default="scope">
<template v-if="column.type === 'tag'">
<el-tag v-if="scope.row[column.prop.split('_')[0]] == 2" type="success">
{{ scope.row[column.prop] }}
</el-tag>
<el-tag v-else type="error">{{ scope.row[column.prop] }}</el-tag>
</template>
<template v-else>
{{
scope.row[column.prop] === null ||
scope.row[column.prop] === '' ||
scope.row[column.prop] === undefined ||
scope.row[column.prop] === 'null'
? '--'
: scope.row[column.prop]
}}
</template>
</template>
</el-table-column>
</template>
</el-table>
<pagination
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
layout="total, sizes, prev, pager, next, jumper"
@pagination="getList"
/>
</el-col>
</el-row>
</div>
</template>
<script setup name="Medication">
import { getYbCatalogResult, getYbCatalog } from './components/medicine';
//字段配置文件
import { catalogFieldConfigs } from './components/catalogFields';
const { proxy } = getCurrentInstance();
const medicationList = ref([]);
const loading = ref(true);
const showSearch = ref(true);
const total = ref(0);
const medicationOptions = ref(undefined);
const currentCategoryEnum = ref('1301'); // 默认选中1301
const medicationTreeRef = ref(null); // 医保目录树引用
const currentColumns = ref([]); // 表格列配置
const searchPlaceholder = ref('医疗目录编码/注册名称/批准文号/唯一记录号'); // 默认搜索提示
// 定义有数据的catalogType值
const availableCatalogTypes = ['1301', '1302', '1305', '1306', '1307', '1308', '1314', '1315'];
const data = reactive({
form: {},
queryParams: {
pageNo: 1,
pageSize: 20,
searchKey: undefined, // 搜索关键词(医疗目录编码/注册名称/批准文号/唯一记录号)
catalogType: '1301', // 默认使用有数据的目录类型1301
v: '0', // 版本号
},
});
const { queryParams } = toRefs(data);
/** 通过条件过滤节点 */
const filterNode = (value, data) => {
if (!value) return true;
return data.info.indexOf(value) !== -1;
};
/** 病种目录分类查询下拉树结构 - 使用前端写死的数据 */
function getMedicationCategoryList() {
// 直接使用CatalogType枚举值并为每个选项添加available属性
const catalogTypeOptions = [
{ info: '西药中成药目录', value: '1301', available: true },
{ info: '中药饮片目录', value: '1302', available: true },
{ info: '医疗机构制剂目录', value: '1303', available: false },
{ info: '民族药品目录', value: '1304', available: false },
{ info: '医疗服务项目目录', value: '1305', available: true },
{ info: '医用耗材目录', value: '1306', available: true },
{ info: '疾病与诊断目录', value: '1307', available: true },
{ info: '手术操作目录', value: '1308', available: true },
{ info: '门诊慢特病种目录', value: '1309', available: false },
{ info: '按病种付费病种目录', value: '1310', available: false },
{ info: '日间手术治疗病种', value: '1311', available: false },
{ info: '医保目录信息查询', value: '1312', available: false },
{ info: '肿瘤形态学目录', value: '1313', available: false },
{ info: '中医疾病目录', value: '1314', available: true },
{ info: '中医证候目录', value: '1315', available: true },
{ info: '医疗目录与医保目录匹配信息', value: '1316', available: false },
{ info: '医药机构目录匹配信息', value: '1317', available: false },
{ info: '医保目录限价信息', value: '1318', available: false },
{ info: '医保目录先自付比例信息', value: '1319', available: false },
{ info: '中药配方颗粒目录', value: '1320', available: false },
{ info: '医疗服务项目(新)目录', value: '1321', available: false },
];
medicationOptions.value = catalogTypeOptions;
// 添加全部选项,但设为不可用
medicationOptions.value.unshift({ info: '全部', value: '', available: false });
// 确保默认选中1301
setTimeout(() => {
if (medicationTreeRef.value) {
medicationTreeRef.value.setCurrentKey('1301');
}
}, 0);
}
/** 查询病种目录列表 */
function handleUpdateCatalog() {
// proxy.$message.success('暂未实现目录更新功能');
// loading.value = true;
// 版本号默认传0
getYbCatalog(queryParams.value.catalogType, '0').then((res) => {
// loading.value = false;
if (res && res.data) {
proxy.$message.success('目录更新成功');
}
});
}
/** 查询病种目录列表 */
function getList() {
loading.value = true;
getYbCatalogResult(queryParams.value).then((res) => {
loading.value = false;
if (res && res.data.data && res.data.data.records) {
medicationList.value = res.data.data.records;
total.value = res.data.data.total || res.data.total || medicationList.value.length;
}
// 默认空数据
else {
medicationList.value = [];
total.value = 0;
}
});
}
// 医保目录节点点击事件
function handleNodeClick(data) {
if (data.available) {
queryParams.value.catalogType = data.value;
currentCategoryEnum.value = data.value;
// 切换目录类型时清空搜索框的值
queryParams.value.searchKey = undefined;
// 动态设置表格列配置
if (catalogFieldConfigs[data.value]) {
console.log('catalogFieldConfigs[data.value]', catalogFieldConfigs[data.value]);
currentColumns.value = catalogFieldConfigs[data.value].columns;
} else {
currentColumns.value = []; // 无配置时显示空列
}
// 根据当前目录类型设置搜索提示
setSearchPlaceholder(data.value);
handleQuery();
}
}
/** 根据目录类型设置搜索提示 */
function setSearchPlaceholder(catalogType) {
switch (catalogType) {
case '1301': // 西药中成药目录
searchPlaceholder.value = '医疗目录编码/注册名称/批准文号/唯一记录号';
break;
case '1302': // 中药饮片目录
searchPlaceholder.value = '医疗服务名称/唯一记录号';
break;
case '1305': // 医疗服务目录
searchPlaceholder.value = '医疗目录编码/医疗服务名称/唯一记录号';
break;
case '1306': // 医用耗材目录
searchPlaceholder.value = '医疗目录编码/耗材名称/耗材类别/材质类型/规格';
break;
case '1307': // 疾病与诊断目录
searchPlaceholder.value = '分类名称/子分类名称/章名称/节名称';
break;
case '1308': // 手术标准目录
searchPlaceholder.value = '分类名称/子分类名称/项目名称/手术名称/手术代码';
break;
case '1314': // 中医疾病目录
searchPlaceholder.value = '疾病分类名称/疾病分类代码/唯一记录号';
break;
case '1315': // 中医证候目录
searchPlaceholder.value = '证候类型代码/证候类型名称/唯一记录号';
break;
default:
searchPlaceholder.value = '请输入搜索关键词';
}
}
// 初始化时设置默认列配置和搜索提示
function initColumns() {
const defaultType = '1301'; // 默认目录类型
if (catalogFieldConfigs[defaultType]) {
currentColumns.value = catalogFieldConfigs[defaultType].columns;
}
// 设置默认搜索提示
setSearchPlaceholder(defaultType);
}
// 计算列宽度函数
function calculateColumnWidth(column) {
const baseWidth = 40; // 增加基础边距宽度
const charWidth = 16; // 增加每个字符的平均宽度,确保中文能更好地显示
const textLength = column.label ? column.label.length : 0;
const calculatedWidth = baseWidth + textLength * charWidth;
// 设置最小宽度,确保即使短文本也有良好的显示效果
const minWidth = 120;
return Math.max(calculatedWidth, minWidth);
}
// 在组件挂载时初始化
initColumns();
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNo = 1;
getList();
}
getMedicationCategoryList();
getList();
</script>
<style scoped>
.el-form--inline .el-form-item {
display: inline-flex;
vertical-align: middle;
margin-right: 10px !important;
}
.el-select {
width: 150px !important;
}
/* 确保表格内容完整显示 */
.el-table {
overflow-x: auto;
}
/* 调整表格列样式,允许内容更好地显示 */
.el-table__cell {
padding: 12px 8px;
}
/* 确保分页组件完整显示 */
.pagination-container {
margin-top: 20px;
display: flex;
justify-content: center;
}
/* 自定义样式:使不可用的目录类型文字颜色变浅 */
.text-light-gray {
color: #c0c4cc !important;
}
/* 确保样式能正确应用到树节点 */
:deep(.el-tree-node__label) {
transition: color 0.3s;
}
</style>