|
@@ -75,6 +75,32 @@
|
|
|
@current-change="handleCurrentChange"
|
|
|
></el-pagination>
|
|
|
</el-main>
|
|
|
+
|
|
|
+ <el-dialog
|
|
|
+ title="耗材查询"
|
|
|
+ v-model="showSuppliesQueryForm"
|
|
|
+ width="420px">
|
|
|
+ <div style="background: lightblue; color:black; padding: 4px; border-radius: 4px">
|
|
|
+ 小提示:每次查询只需填写一项条件。如果填写了多项,程序也只会根据优先级最高的一项来查询。
|
|
|
+ <div style="margin-top: 8px">
|
|
|
+ 优先级:国家编码 > 注册证号 > 耗材名称
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div style="width: 300px;margin-top: 16px">
|
|
|
+ 国家编码:<el-input v-model="currentSupplyRow.nationalCode" placeholder="耗材国家编码 - 精准查询" clearable style="width: 200px"></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="width: 300px;margin-top: 8px">
|
|
|
+ 注册证号:<el-input v-model="currentSupplyRow.approvalNumber" placeholder="耗材注册证号 - 精准查询" clearable style="width: 200px"></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="width: 300px;margin-top: 8px">
|
|
|
+ 耗材名称:<el-input v-model="currentSupplyRow.fuzzyName" placeholder="耗材名称 - 模糊查询" clearable style="width: 200px"></el-input>
|
|
|
+ </div>
|
|
|
+ <template #footer>
|
|
|
+ <el-button type="info" icon="Close" @click="showSuppliesQueryForm = false">取消</el-button>
|
|
|
+ <el-button type="primary" icon="Search" @click="getNationalItems">查询</el-button>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
<el-dialog v-model="showNationalList" top="5vh" width="80%">
|
|
|
<div class="data-title">HIS数据</div>
|
|
|
<el-descriptions :column="4" border>
|
|
@@ -88,7 +114,7 @@
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item v-if="queryParam.type !== 3">
|
|
|
<template #label> 大小包装</template>
|
|
|
- {{ data.row.serial }}
|
|
|
+ {{ data.row.serial === '01' ? '大包装' : '小包装' }}
|
|
|
</el-descriptions-item>
|
|
|
<el-descriptions-item v-if="queryParam.type !== 3">
|
|
|
<template #label> 剂型</template>
|
|
@@ -155,9 +181,14 @@
|
|
|
<el-table-column v-if="queryParam.type === 4" label="耗材企业" prop="factory"></el-table-column>
|
|
|
<el-table-column label="开始时间" prop="startTime"></el-table-column>
|
|
|
<el-table-column label="结束时间" prop="endTime"></el-table-column>
|
|
|
+ <el-table-column label="状态">
|
|
|
+ <template #default="scope">
|
|
|
+ <div v-html="filterMatchedCount(scope.row.matchedCount)"></div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="匹配">
|
|
|
<template #default="scope">
|
|
|
- <el-button circle icon="Thumb" type="success" @click="doMatch(scope.row)"></el-button>
|
|
|
+ <el-button circle icon="Pointer" type="success" @click="doMatch(scope.row)"></el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -223,6 +254,7 @@ import { computed } from '@vue/runtime-core'
|
|
|
import { cptYesOrNo } from '@/utils/computed'
|
|
|
import { revokeCatalogueContrast, uploadCatalogueContrast } from '@/api/medical-insurance/si-manage'
|
|
|
import { Export } from '@/utils/ExportExcel'
|
|
|
+import { clone } from '@/utils/clone'
|
|
|
|
|
|
const windowSize = store.state.app.windowSize
|
|
|
const tableHeight = windowSize.h - 85
|
|
@@ -283,11 +315,7 @@ const queryParam = reactive({
|
|
|
const queryTypeChanged = (val) => {
|
|
|
data.list = []
|
|
|
data.national = []
|
|
|
- if (val === 4) {
|
|
|
- fuzzy.value = true
|
|
|
- } else {
|
|
|
- fuzzy.value = false
|
|
|
- }
|
|
|
+ fuzzy.value = val === 4;
|
|
|
}
|
|
|
|
|
|
const search = () => {
|
|
@@ -353,31 +381,44 @@ const confirmModify = () => {
|
|
|
}
|
|
|
|
|
|
const showNationalList = ref(false)
|
|
|
+const showSuppliesQueryForm = ref(false)
|
|
|
+const currentSupplyRow = ref({})
|
|
|
+
|
|
|
const beforeMatch = (row) => {
|
|
|
- if (fuzzy.value) {
|
|
|
- ElMessageBox.prompt('请调整关联查询的名称:', '提示', {
|
|
|
- inputValue: row.name,
|
|
|
- confirmButtonText: '查询',
|
|
|
- cancelButtonText: '取消',
|
|
|
- })
|
|
|
- .then(({ value }) => {
|
|
|
- row.fuzzyName = value
|
|
|
- getNationalItems(row)
|
|
|
- })
|
|
|
- .catch(() => {})
|
|
|
+ if(queryParam.type === 4) {
|
|
|
+ currentSupplyRow.value = clone(row)
|
|
|
+ currentSupplyRow.value.fuzzyName = null
|
|
|
+ showSuppliesQueryForm.value = true
|
|
|
} else {
|
|
|
- row.fuzzyName = row.name
|
|
|
- getNationalItems(row)
|
|
|
+ if (fuzzy.value) {
|
|
|
+ ElMessageBox.prompt('请调整关联查询的名称:', '提示', {
|
|
|
+ inputValue: row.name,
|
|
|
+ confirmButtonText: '查询',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ })
|
|
|
+ .then(({ value }) => {
|
|
|
+ row.fuzzyName = value
|
|
|
+ getNationalItems(row)
|
|
|
+ })
|
|
|
+ .catch(() => {})
|
|
|
+ } else {
|
|
|
+ row.fuzzyName = row.name
|
|
|
+ getNationalItems(row)
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
const getNationalItems = (row) => {
|
|
|
+ if (queryParam.type === 4) {
|
|
|
+ row = currentSupplyRow.value
|
|
|
+ }
|
|
|
selectNationalItems(row)
|
|
|
.then((res) => {
|
|
|
factory.value = ''
|
|
|
data.row = row
|
|
|
data.national = res
|
|
|
showNationalList.value = true
|
|
|
+ showSuppliesQueryForm.value = false
|
|
|
})
|
|
|
.catch((e) => {
|
|
|
if (e === '没有符合条件的国家目录。') {
|
|
@@ -406,6 +447,10 @@ const getNationalItems = (row) => {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+const filterMatchedCount = (count) => {
|
|
|
+ return count > 0 ? '<span style="color: red">已被匹配</span>' : '<span style="color: green">未被匹配</span>'
|
|
|
+}
|
|
|
+
|
|
|
const doMatch = (row) => {
|
|
|
const header =
|
|
|
'<div style="font-weight: bold">选中的数据为:</div><div style="color: #409EFF">' +
|