Compare commits
2 Commits
dde3c944ed
...
c484ddb42f
| Author | SHA1 | Date | |
|---|---|---|---|
| c484ddb42f | |||
| fdacc38f17 |
@ -34,6 +34,14 @@ export function getresultmedList(query?: Object) {
|
|||||||
params: query
|
params: query
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 获取专家评语字典
|
||||||
|
export function getgermtextdict(query?: Object) {
|
||||||
|
return request({
|
||||||
|
url: '/lisworkgerm/getgermtextdict',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
// 写入专家评语
|
// 写入专家评语
|
||||||
export function savetestResult(query?: Object) {
|
export function savetestResult(query?: Object) {
|
||||||
return request({
|
return request({
|
||||||
|
|||||||
@ -293,8 +293,8 @@ aside {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
.jtIcon {
|
.jt_btn {
|
||||||
width: 2.5rem;
|
width: 1.5rem;
|
||||||
height: 2rem;
|
height: 2rem;
|
||||||
line-height: 2rem;
|
line-height: 2rem;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
|
|||||||
@ -70,7 +70,7 @@ const scrollToActiveTab = () => {
|
|||||||
// 如果Tab不在可见区域内,则滚动到可见区域
|
// 如果Tab不在可见区域内,则滚动到可见区域
|
||||||
if (tabRect.left < containerRect.left || tabRect.right > containerRect.right) {
|
if (tabRect.left < containerRect.left || tabRect.right > containerRect.right) {
|
||||||
scrollContainer.scrollTo({
|
scrollContainer.scrollTo({
|
||||||
left: tabRect.left - containerRect.left + scrollContainer.scrollLeft - 100,
|
left: tabRect.left - containerRect.left + scrollContainer.scrollLeft - 200,
|
||||||
behavior: 'smooth'
|
behavior: 'smooth'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -535,7 +535,15 @@ const rightTableConfig = ref(
|
|||||||
)
|
)
|
||||||
|
|
||||||
const formatJgbz = (v: string) => {
|
const formatJgbz = (v: string) => {
|
||||||
return v == 'H' ? '高' : v == 'L' ? '低' : v == 'N' ? '阴性' : v == 'P' ? '阳性' : v == 'Q' ? '弱阳性' : v == 'M' ? '正常' : ''
|
const jgbzMap = {
|
||||||
|
'H': '高',
|
||||||
|
'L': '低',
|
||||||
|
'N': '阴性',
|
||||||
|
'P': '阳性',
|
||||||
|
'Q': '弱阳性',
|
||||||
|
'M': '正常'
|
||||||
|
};
|
||||||
|
return jgbzMap[v as keyof typeof jgbzMap] ?? '';
|
||||||
}
|
}
|
||||||
|
|
||||||
const expertComment = ref('')
|
const expertComment = ref('')
|
||||||
|
|||||||
125
src/views/liswork/components/otherInformation/index.vue
Normal file
125
src/views/liswork/components/otherInformation/index.vue
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
<!-- 其他信息 -->
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<!-- 电子签名信息 -->
|
||||||
|
<div class="section">
|
||||||
|
<div class="section-title">电子签名信息</div>
|
||||||
|
<el-row class="info-row">
|
||||||
|
<el-col :span="6" class="info-label">签名证书: </el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-button type="primary" plain size="small">验证签名</el-button>
|
||||||
|
<el-button type="primary" plain size="small">导出签名值</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row class="info-row">
|
||||||
|
<el-col :span="6" class="info-label">签名时间:</el-col>
|
||||||
|
<el-col :span="18" class="info-value">{{ info.sn_tss }} </el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 电子签名值 -->
|
||||||
|
<div class="section signature-section">
|
||||||
|
<div class="section-title">电子签名值</div>
|
||||||
|
<div class="signature-content">
|
||||||
|
<el-scrollbar height="120px">
|
||||||
|
<pre>{{ info.sn_result }} </pre>
|
||||||
|
</el-scrollbar>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { reqinfo } from '@/api/liswork/work/LisWork';
|
||||||
|
|
||||||
|
|
||||||
|
const props = defineProps({
|
||||||
|
// 主键
|
||||||
|
queryParams: {
|
||||||
|
type: Object,
|
||||||
|
required: true
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
const { queryParams } = toRefs(props)
|
||||||
|
|
||||||
|
const info = ref({
|
||||||
|
sn_tss: '',
|
||||||
|
sn_result: ''
|
||||||
|
})
|
||||||
|
watch(queryParams, () => {
|
||||||
|
getInfo()
|
||||||
|
})
|
||||||
|
const getInfo = () => {
|
||||||
|
reqinfo(queryParams.value).then((res: any) => {
|
||||||
|
info.value = res.data[0] || {}
|
||||||
|
}, {
|
||||||
|
immediate: true,
|
||||||
|
deep: true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
/* 区块样式 */
|
||||||
|
.section {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
border: 1px solid #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section-title {
|
||||||
|
background-color: #a6caf0;
|
||||||
|
padding: 3px 10px;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-bottom: 1px solid #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 信息行样式 */
|
||||||
|
.info-row {
|
||||||
|
border-bottom: 1px solid #f0f0f0;
|
||||||
|
|
||||||
|
&:last-child {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-label {
|
||||||
|
padding: 4px 10px;
|
||||||
|
background-color: #fafafa;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #333;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.info-value {
|
||||||
|
padding: 4px 10px;
|
||||||
|
font-size: 13px;
|
||||||
|
color: #666;
|
||||||
|
text-align: left;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 签名区域样式 */
|
||||||
|
.signature-section {
|
||||||
|
border: 1px solid #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.signature-content {
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.signature-content pre {
|
||||||
|
margin: 0;
|
||||||
|
font-family: monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 1.5;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -189,7 +189,7 @@ const lastTimeIndex = computed(() => {
|
|||||||
|
|
||||||
const getInfo = () => {
|
const getInfo = () => {
|
||||||
reqinfo(queryParams.value).then((res: any) => {
|
reqinfo(queryParams.value).then((res: any) => {
|
||||||
info.value = res.data[0]
|
info.value = res.data[0] || {}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -9,18 +9,12 @@
|
|||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="" prop="ybh">
|
<el-form-item label="" prop="ybh">
|
||||||
<div class="next_box">
|
<div class="next_box">
|
||||||
<div class="jtIcon" @click="handlePrev">
|
<el-button type="primary" class="jt_btn" :size="aotuSize" icon="ArrowUpBold"
|
||||||
<el-icon>
|
@click="handlePrev"></el-button>
|
||||||
<ArrowUpBold />
|
|
||||||
</el-icon>
|
|
||||||
</div>
|
|
||||||
<el-input v-model="queryParams.ybh" placeholder="样本编号" @keyup.enter="handleQuery"
|
<el-input v-model="queryParams.ybh" placeholder="样本编号" @keyup.enter="handleQuery"
|
||||||
style="width:100%" />
|
style="width:100%" />
|
||||||
<div class="jtIcon" @click="handleNext">
|
<el-button type="primary" class="jt_btn" :size="aotuSize" icon="ArrowDownBold"
|
||||||
<el-icon>
|
@click="handleNext"></el-button>
|
||||||
<ArrowDownBold />
|
|
||||||
</el-icon>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -94,14 +88,16 @@
|
|||||||
<template v-if="activeTab == 'LabPatList'">
|
<template v-if="activeTab == 'LabPatList'">
|
||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<div>
|
<div>
|
||||||
<el-button type="primary" :size="aotuSize" icon="RefreshRight" @click="fetchlabPatList">刷新</el-button>
|
<el-button type="primary" :size="aotuSize" icon="RefreshRight" circle
|
||||||
<el-button type="danger" :size="aotuSize" @click="delSampleHd">删除</el-button>
|
@click="fetchlabPatList"></el-button>
|
||||||
<el-button class="btn_green" :size="aotuSize" icon="top" @click="handlePrev">上一个</el-button>
|
<el-button type="danger" :size="aotuSize" icon="Delete" circle @click="delSampleHd"></el-button>
|
||||||
<el-button class="btn_green mr5" :size="aotuSize" icon="bottom" @click="handleNext">下一个</el-button>
|
<el-button class="btn_green" :size="aotuSize" icon="top" circle @click="handlePrev"></el-button>
|
||||||
|
<el-button class="btn_green mr5" :size="aotuSize" icon="bottom" circle
|
||||||
|
@click="handleNext"></el-button>
|
||||||
<PatientQueryForm :initial-params="initialParams" @query="handleQueryResult" @reset="handleReset"
|
<PatientQueryForm :initial-params="initialParams" @query="handleQueryResult" @reset="handleReset"
|
||||||
width="9rem" :size="aotuSize" placeholder="查询条件" :dict-data="dictData" :clearable="true" />
|
width="14rem" :size="aotuSize" placeholder="查询条件" :dict-data="dictData" :clearable="true" />
|
||||||
<el-input v-model="searchText" clearable :size="aotuSize" @keyup.enter="searchQuery"
|
<el-input v-model="searchText" clearable :size="aotuSize" @keyup.enter="searchQuery" class="ml10"
|
||||||
@clear="clearSearch" style="width: 6rem" />
|
@clear="clearSearch" style="width: 10rem" />
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<el-checkbox v-model="lbFlag" :size="aotuSize"> 列表翻页 </el-checkbox>
|
<el-checkbox v-model="lbFlag" :size="aotuSize"> 列表翻页 </el-checkbox>
|
||||||
@ -121,7 +117,7 @@
|
|||||||
</el-radio>
|
</el-radio>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
<el-date-picker v-model="queryParams.jyrq" type="date" :size="aotuSize" @change="fetchlabPatList"
|
<el-date-picker v-model="queryParams.jyrq" type="date" :size="aotuSize" @change="fetchlabPatList"
|
||||||
value-format="YYYY-MM-DD" style="width: 9.375rem;" />
|
value-format="YYYY-MM-DD" style="width: 10rem;" />
|
||||||
</div>
|
</div>
|
||||||
<LabPatList ref="labPatListRef" :labPatList="labPatList" :loading="loading" @select="selectJob"
|
<LabPatList ref="labPatListRef" :labPatList="labPatList" :loading="loading" @select="selectJob"
|
||||||
:tableKey="{ ...queryParams, jyrq: ybJyrq }" :dictData="dictData" @search="searchJobs" />
|
:tableKey="{ ...queryParams, jyrq: ybJyrq }" :dictData="dictData" @search="searchJobs" />
|
||||||
@ -134,7 +130,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- tab栏 内容 -->
|
||||||
<component :is="activeTabName" :queryParams="{ ...queryParams, jyrq: ybJyrq }" :dictData="dictData"
|
<component :is="activeTabName" :queryParams="{ ...queryParams, jyrq: ybJyrq }" :dictData="dictData"
|
||||||
:instrOptions="instrOptions" @fetchResults="fetchLabResults" :tablekey="labPat" />
|
:instrOptions="instrOptions" @fetchResults="fetchLabResults" :tablekey="labPat" />
|
||||||
|
|
||||||
@ -164,12 +160,13 @@ import tabView from '@/components/tabViews/index.vue';
|
|||||||
import iFrame from "@/components/iFrame/index.vue";
|
import iFrame from "@/components/iFrame/index.vue";
|
||||||
import LabPatList from './labpatlist.vue';
|
import LabPatList from './labpatlist.vue';
|
||||||
import History from '../components/history/index.vue'
|
import History from '../components/history/index.vue'
|
||||||
import Others from '../components/others/index.vue'
|
import OthersResult from '../components/othersResult/index.vue'
|
||||||
import Reexamination from '../components/reexamination/index.vue'
|
import Reexamination from '../components/reexamination/index.vue'
|
||||||
import Charge from '../components/charge/index.vue'
|
import Charge from '../components/charge/index.vue'
|
||||||
import Combination from '../components/combination/index.vue'
|
import Combination from '../components/combination/index.vue'
|
||||||
import Clinical from '../components/clinical/index.vue'
|
import Clinical from '../components/clinical/index.vue'
|
||||||
import Sample from '../components/sample/index.vue'
|
import Sample from '../components/sample/index.vue'
|
||||||
|
import OtherInformation from '../components/otherInformation/index.vue'
|
||||||
import ResultGraph from '../components/resultGraph/index.vue'
|
import ResultGraph from '../components/resultGraph/index.vue'
|
||||||
import CheckUser from '../work/components/CheckUser.vue';
|
import CheckUser from '../work/components/CheckUser.vue';
|
||||||
// 中间部分
|
// 中间部分
|
||||||
@ -220,23 +217,25 @@ const tabList = ref([
|
|||||||
{ label: '标本列表', value: 'LabPatList' },
|
{ label: '标本列表', value: 'LabPatList' },
|
||||||
{ label: '结果图形', value: 'ResultGraph' },
|
{ label: '结果图形', value: 'ResultGraph' },
|
||||||
{ label: '历史对照', value: 'History' },
|
{ label: '历史对照', value: 'History' },
|
||||||
{ label: '其他结果', value: 'Others' },
|
{ label: '其他结果', value: 'OthersResult' },
|
||||||
{ label: '结果复查', value: 'Reexamination' },
|
{ label: '结果复查', value: 'Reexamination' },
|
||||||
{ label: '收费信息', value: 'Charge' },
|
{ label: '收费信息', value: 'Charge' },
|
||||||
{ label: '组合项目', value: 'Combination' },
|
{ label: '组合项目', value: 'Combination' },
|
||||||
{ label: '临床意义', value: 'Clinical' },
|
{ label: '临床意义', value: 'Clinical' },
|
||||||
{ label: '样本流转', value: 'Sample' },
|
{ label: '样本流转', value: 'Sample' },
|
||||||
|
{ label: '其他信息', value: 'OtherInformation' },
|
||||||
])
|
])
|
||||||
|
|
||||||
const activeTabMap = {
|
const activeTabMap = {
|
||||||
ResultGraph,
|
ResultGraph,
|
||||||
History,
|
History,
|
||||||
Others,
|
OthersResult,
|
||||||
Reexamination,
|
Reexamination,
|
||||||
Charge,
|
Charge,
|
||||||
Combination,
|
Combination,
|
||||||
Clinical,
|
Clinical,
|
||||||
Sample
|
Sample,
|
||||||
|
OtherInformation
|
||||||
}
|
}
|
||||||
|
|
||||||
const activeTabName = computed(() => activeTabMap[activeTab.value as keyof typeof activeTabMap] || 'LabPatList');
|
const activeTabName = computed(() => activeTabMap[activeTab.value as keyof typeof activeTabMap] || 'LabPatList');
|
||||||
@ -498,16 +497,15 @@ const ybhChangeTb = (val: string) => {
|
|||||||
}
|
}
|
||||||
const handleQuery = () => {
|
const handleQuery = () => {
|
||||||
if (!labPatList.value.length) return
|
if (!labPatList.value.length) return
|
||||||
if (!labPat.value.ybh) {
|
if (!queryParams.value.ybh) {
|
||||||
highlightRowIndex.value = -1;
|
highlightRowIndex.value = -1;
|
||||||
ElMessage.warning('请输入样本编号')
|
ElMessage.warning('请输入样本编号')
|
||||||
labPat.value.ybh = lastRow.value.ybh
|
|
||||||
queryParams.value.ybh = lastRow.value.ybh
|
queryParams.value.ybh = lastRow.value.ybh
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// queryParams.value = { ...queryParams.value };
|
// queryParams.value = { ...queryParams.value };
|
||||||
// 查找匹配的行
|
// 查找匹配的行
|
||||||
const matchedIndex = labPatList.value.findIndex((item: any) => item.ybh == labPat.value.ybh);
|
const matchedIndex = labPatList.value.findIndex((item: any) => item.ybh == queryParams.value.ybh);
|
||||||
const row = labPatList.value[matchedIndex]
|
const row = labPatList.value[matchedIndex]
|
||||||
|
|
||||||
if (matchedIndex !== -1) {
|
if (matchedIndex !== -1) {
|
||||||
|
|||||||
@ -72,10 +72,8 @@ import { ref, reactive, watch, toRaw, computed, onMounted, nextTick } from 'vue'
|
|||||||
import { changepatcolumn, updateLabPat, checkYsUser } from "@/api/liswork/work/LisWork";
|
import { changepatcolumn, updateLabPat, checkYsUser } from "@/api/liswork/work/LisWork";
|
||||||
import SelectTable from '@/components/SelectTable/index.vue';
|
import SelectTable from '@/components/SelectTable/index.vue';
|
||||||
import YhVerification from '../work/components/yhVerification.vue';
|
import YhVerification from '../work/components/yhVerification.vue';
|
||||||
|
|
||||||
import emitter from '@/utils/mitt';
|
import emitter from '@/utils/mitt';
|
||||||
import { classCom } from '@/utils/classCom';
|
import { classCom } from '@/utils/classCom';
|
||||||
import Labpat from '../work/components/labpat.vue';
|
|
||||||
const aotuSize = classCom.useAutoSize();
|
const aotuSize = classCom.useAutoSize();
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,22 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="title">
|
|
||||||
<div>
|
|
||||||
<span>初报人:</span>{{ formatUser(cbInfo?.confirmer) }} <span>报告时间:</span>{{ cbInfo?.confirmdt
|
|
||||||
}}
|
|
||||||
</div>
|
|
||||||
<div><span>{{ cbInfo?.jgbz == '2' ? '已初报' : '' }}</span></div>
|
|
||||||
</div>
|
|
||||||
<div>
|
<div>
|
||||||
<el-button class="btn_green btns_box" :size="autoSize" v-if="cbInfo?.jgbz != 2"
|
<el-button class="btn_green btns_box" :size="autoSize" v-if="cbInfo?.jgbz != 2"
|
||||||
@click="handleCheck(3)">初报审核</el-button>
|
:disabled="erInfo?.jgbz == 2 || labPat.jgbz == 2" @click="handleCheck(3)">初报审核</el-button>
|
||||||
<el-button class="btns_box" :size="autoSize" v-if="cbInfo?.jgbz == 2" @click="handleCheck(-3)">取消审核</el-button>
|
<el-button class="btns_box" :size="autoSize" v-if="cbInfo?.jgbz == 2"
|
||||||
<el-button class="btns_box" type="primary" :size="autoSize" plain :disabled="cbInfo?.jgbz == '2'"
|
:disabled="erInfo?.jgbz == 2 || labPat.jgbz == 2" @click="handleCheck(-3)">取消审核</el-button>
|
||||||
|
<el-button class="btns_box" type="primary" :size="autoSize" plain
|
||||||
|
:disabled="cbInfo?.jgbz == '2' || erInfo?.jgbz == 2 || labPat.jgbz == 2"
|
||||||
@click="openItemDictDialog(1)">新增</el-button>
|
@click="openItemDictDialog(1)">新增</el-button>
|
||||||
<el-button class="btns_box" type="danger" :size="autoSize" :disabled="cbInfo?.jgbz == '2'" plain
|
<el-button class="btns_box" type="danger" :size="autoSize"
|
||||||
|
:disabled="cbInfo?.jgbz == '2' || erInfo?.jgbz == 2 || labPat.jgbz == 2" plain
|
||||||
@click="handleBatchDelete(1)">删除</el-button>
|
@click="handleBatchDelete(1)">删除</el-button>
|
||||||
<el-button class="btn_green btns_box" :size="autoSize" :disabled="cbInfo?.jgbz == '2'"
|
<el-button class="btn_green btns_box" :size="autoSize"
|
||||||
@click="zhHandel(1)">组合项目</el-button>
|
:disabled="cbInfo?.jgbz == '2' || erInfo?.jgbz == 2 || labPat.jgbz == 2" @click="zhHandel(1)">组合项目</el-button>
|
||||||
<el-button type="primary" plain class=" btns_box" @click="printHandle(1)">打印</el-button>
|
<el-button type="primary" plain class=" btns_box" @click="printHandle(1)">打印</el-button>
|
||||||
<el-button type="primary" plain class=" btns_box" @click="previewHandle(2)">预览</el-button>
|
<el-button type="primary" plain class=" btns_box" @click="previewHandle(2)">预览</el-button>
|
||||||
</div>
|
</div>
|
||||||
@ -60,24 +56,24 @@
|
|||||||
{{ formatDict(row.germclass, 'germclass') }}
|
{{ formatDict(row.germclass, 'germclass') }}
|
||||||
</template>
|
</template>
|
||||||
</CustomTable>
|
</CustomTable>
|
||||||
|
|
||||||
|
|
||||||
<div class="title ertext">
|
<div class="title ertext">
|
||||||
<div>
|
<div>
|
||||||
<span>二报人:</span>{{ formatUser(erInfo?.confirmer) }} <span>报告时间:</span>{{ erInfo?.confirmdt
|
<span>初报人:<span class="name">{{ formatUser(cbInfo?.confirmer) }}</span></span>
|
||||||
}}
|
<span>报告时间:<span class="time"> {{ cbInfo?.confirmdt }} </span></span>
|
||||||
</div>
|
</div>
|
||||||
<div><span>{{ erInfo?.jgbz == '2' ? '已二报' : '' }}</span></div>
|
<div><span>{{ cbInfo?.jgbz == '2' ? '已初报' : '' }}</span></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<el-button class="btn_green btns_box" :size="autoSize" v-if="erInfo?.jgbz != 2"
|
<el-button class="btn_green btns_box" :size="autoSize" v-if="erInfo?.jgbz != 2" :disabled="labPat.jgbz == 2"
|
||||||
@click="handleCheck(4)">二报审核</el-button>
|
@click="handleCheck(4)">二报审核</el-button>
|
||||||
<el-button class="btns_box" :size="autoSize" v-if="erInfo?.jgbz == 2" @click="handleCheck(-4)">取消审核</el-button>
|
<el-button class="btns_box" :size="autoSize" v-if="erInfo?.jgbz == 2" :disabled="labPat.jgbz == 2"
|
||||||
<el-button class="btns_box" type="primary" :size="autoSize" plain :disabled="erInfo?.jgbz == '2'"
|
@click="handleCheck(-4)">取消审核</el-button>
|
||||||
@click="openItemDictDialog(2)">新增</el-button>
|
<el-button class="btns_box" type="primary" :size="autoSize" plain
|
||||||
<el-button class="btns_box" type="danger" :size="autoSize" :disabled="erInfo?.jgbz == '2'" plain
|
:disabled="erInfo?.jgbz == '2' || labPat.jgbz == 2" @click="openItemDictDialog(2)">新增</el-button>
|
||||||
@click="handleBatchDelete(2)">删除</el-button>
|
<el-button class="btns_box" type="danger" :size="autoSize" :disabled="erInfo?.jgbz == '2' || labPat.jgbz == 2"
|
||||||
<el-button class="btn_green btns_box" :size="autoSize" :disabled="erInfo?.jgbz == '2'"
|
plain @click="handleBatchDelete(2)">删除</el-button>
|
||||||
|
<el-button class="btn_green btns_box" :size="autoSize" :disabled="erInfo?.jgbz == '2' || labPat.jgbz == 2"
|
||||||
@click="zhHandel(2)">组合项目</el-button>
|
@click="zhHandel(2)">组合项目</el-button>
|
||||||
<el-button type="primary" plain class=" btns_box" @click="printHandle(2)">打印</el-button>
|
<el-button type="primary" plain class=" btns_box" @click="printHandle(2)">打印</el-button>
|
||||||
<el-button type="primary" plain class=" btns_box" @click="previewHandle(2)">预览</el-button>
|
<el-button type="primary" plain class=" btns_box" @click="previewHandle(2)">预览</el-button>
|
||||||
@ -122,7 +118,13 @@
|
|||||||
{{ formatDict(row.germclass, 'germclass') }}
|
{{ formatDict(row.germclass, 'germclass') }}
|
||||||
</template>
|
</template>
|
||||||
</CustomTable>
|
</CustomTable>
|
||||||
|
<div class="title">
|
||||||
|
<div>
|
||||||
|
<span>二报人:<span class="name">{{ formatUser(erInfo?.confirmer) }}</span></span>
|
||||||
|
<span>报告时间:<span class="time">{{ erInfo?.confirmdt }}</span> </span>
|
||||||
|
</div>
|
||||||
|
<div><span>{{ erInfo?.jgbz == '2' ? '已二报' : '' }}</span></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- 新增明细 -->
|
<!-- 新增明细 -->
|
||||||
<ProjectDetails ref="itemDictRef" :dialog-title="'选择检验项目'" :tableKey="labPatKey" @select="handleItemSelect" />
|
<ProjectDetails ref="itemDictRef" :dialog-title="'选择检验项目'" :tableKey="labPatKey" @select="handleItemSelect" />
|
||||||
@ -341,7 +343,7 @@ const CellStyleHd = ({ row, column, rowIndex, columnIndex }: {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const tableConfig = ref({
|
const tableConfig = ref({
|
||||||
height: '32vh',
|
height: '33vh',
|
||||||
border: true,
|
border: true,
|
||||||
highlightCurrentRow: true,
|
highlightCurrentRow: true,
|
||||||
cellStyle: CellStyleHd
|
cellStyle: CellStyleHd
|
||||||
@ -618,7 +620,15 @@ const formatDict = (v: string, dictType: string) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const formatJgbz = (v: string) => {
|
const formatJgbz = (v: string) => {
|
||||||
return v == 'H' ? '高' : v == 'L' ? '低' : v == 'N' ? '阴性' : v == 'P' ? '阳性' : v == 'Q' ? '弱阳性' : v == 'M' ? '正常' : ''
|
const jgbzMap = {
|
||||||
|
'H': '高',
|
||||||
|
'L': '低',
|
||||||
|
'N': '阴性',
|
||||||
|
'P': '阳性',
|
||||||
|
'Q': '弱阳性',
|
||||||
|
'M': '正常'
|
||||||
|
};
|
||||||
|
return jgbzMap[v as keyof typeof jgbzMap] ?? '';
|
||||||
}
|
}
|
||||||
const formatUser = (yhdh: string) => {
|
const formatUser = (yhdh: string) => {
|
||||||
return userList.value.find((item: any) => item.userName == yhdh)?.nickName || yhdh
|
return userList.value.find((item: any) => item.userName == yhdh)?.nickName || yhdh
|
||||||
@ -627,22 +637,29 @@ const formatUser = (yhdh: string) => {
|
|||||||
|
|
||||||
<style scoped lang="scss">
|
<style scoped lang="scss">
|
||||||
.title {
|
.title {
|
||||||
border-bottom: 1px solid #e8e8e8;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
padding: 3px 0;
|
// padding: 3px 0;
|
||||||
font-family: SourceHanSansCN, SourceHanSansCN;
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
||||||
|
|
||||||
span {
|
span {
|
||||||
color: #057c34;
|
display: inline-block;
|
||||||
|
color: #1f6dd3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.name {
|
||||||
|
width: 6.25rem;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.time {
|
||||||
|
width: 15rem;
|
||||||
|
color: #000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.ertext {
|
.ertext {
|
||||||
margin-top: 10px;
|
border-bottom: 1px solid #dcdfe6;
|
||||||
|
margin-bottom: .3125rem;
|
||||||
span {
|
|
||||||
color: #e2e20c;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
@ -0,0 +1,89 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-dialog title="编辑项目文字描述" v-model="visible" width="40vw" :close-on-click-modal="false" :draggable="true">
|
||||||
|
<div class="bination_box">
|
||||||
|
<div class="text_area mb5">
|
||||||
|
<div class="title">
|
||||||
|
<div>
|
||||||
|
<el-button type="primary" @click="subHandle">确定</el-button>
|
||||||
|
<el-button @click="close">取消</el-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="tips"> 说明:单击为追加,双击为替换。</div>
|
||||||
|
</div>
|
||||||
|
<el-input v-model="text" type="textarea" placeholder="请输入内容" :rows="8"></el-input>
|
||||||
|
</div>
|
||||||
|
<CustomTable ref="tableRef" :data="tableData" :columns="columns" :config="tableConfig" @row-click="rowClick"
|
||||||
|
@row-dblclick="handleRowDblclick">
|
||||||
|
</CustomTable>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
import CustomTable from "@/components/elTable/index.vue"
|
||||||
|
import { getgermtextdict } from "@/api/liswork/micro"
|
||||||
|
|
||||||
|
const visible = ref(false)
|
||||||
|
const text = ref('')
|
||||||
|
|
||||||
|
const tableData = ref([])
|
||||||
|
|
||||||
|
const columns = ref([
|
||||||
|
{ prop: 'reserve', label: '模板名称', visible: true, align: 'center', width: 100 },
|
||||||
|
{ prop: 'textresult', label: '文字描述', visible: true, showOverflowTooltip: false }
|
||||||
|
])
|
||||||
|
|
||||||
|
const tableConfig = ref({
|
||||||
|
border: true,
|
||||||
|
height: '500px',
|
||||||
|
highlightCurrentRow: true,
|
||||||
|
})
|
||||||
|
|
||||||
|
const emits = defineEmits(['update:text'])
|
||||||
|
|
||||||
|
const rowClick = (row: any) => {
|
||||||
|
text.value += row.textresult
|
||||||
|
}
|
||||||
|
const handleRowDblclick = (row: any) => {
|
||||||
|
text.value = row.textresult
|
||||||
|
}
|
||||||
|
|
||||||
|
const open = () => {
|
||||||
|
text.value = ''
|
||||||
|
getgermtextdict().then((res: any) => {
|
||||||
|
tableData.value = res.data
|
||||||
|
})
|
||||||
|
visible.value = true
|
||||||
|
}
|
||||||
|
|
||||||
|
const subHandle = () => {
|
||||||
|
emits('update:text', text.value)
|
||||||
|
visible.value = false
|
||||||
|
}
|
||||||
|
const close = () => {
|
||||||
|
text.value = ''
|
||||||
|
visible.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
defineExpose({ open })
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.text_area {
|
||||||
|
.title {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
margin-bottom: 5px;
|
||||||
|
|
||||||
|
.tips {
|
||||||
|
color: #0d86e9;
|
||||||
|
font-size: 14px;
|
||||||
|
font-family: SourceHanSansCN, SourceHanSansCN;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@ -4,11 +4,12 @@
|
|||||||
<el-button class="btn_green btns_box" :size="autoSize" v-if="labPat.jgbz != 2"
|
<el-button class="btn_green btns_box" :size="autoSize" v-if="labPat.jgbz != 2"
|
||||||
@click="handleCheck(2)">审核</el-button>
|
@click="handleCheck(2)">审核</el-button>
|
||||||
<el-button class="btns_box" :size="autoSize" v-if="labPat.jgbz == 2" @click="handleCheck(3)">取消审核</el-button>
|
<el-button class="btns_box" :size="autoSize" v-if="labPat.jgbz == 2" @click="handleCheck(3)">取消审核</el-button>
|
||||||
<el-button class="btns_box" type="primary" :size="autoSize" plain
|
<el-button class="btns_box" type="primary" :size="autoSize" plain :disabled="labPat.jgbz == 2"
|
||||||
:disabled="labPat.jgbz != null && labPat.jgbz != 0" @click="openItemDictDialog">新增</el-button>
|
@click="openItemDictDialog">新增</el-button>
|
||||||
<el-button class="btns_box" type="danger" :size="autoSize" :disabled="labPat.jgbz != null && labPat.jgbz != 0"
|
<el-button class="btns_box" type="danger" :size="autoSize" :disabled="labPat.jgbz == 2" plain
|
||||||
plain @click="handleBatchDelete">删除</el-button>
|
@click="handleBatchDelete">删除</el-button>
|
||||||
<el-button class="btn_green btns_box" :size="autoSize" @click="zhHandel">组合项目</el-button>
|
<el-button class="btn_green btns_box" :size="autoSize" :disabled="labPat.jgbz == 2"
|
||||||
|
@click="zhHandel">组合项目</el-button>
|
||||||
</div>
|
</div>
|
||||||
<ContextMenu :items="contextMenuItems" @select="handleMenuSelect">
|
<ContextMenu :items="contextMenuItems" @select="handleMenuSelect">
|
||||||
<CustomTable ref="tableRef" :data="tableData" :columns="columns" :config="tableConfig" :enable-column-drag="true"
|
<CustomTable ref="tableRef" :data="tableData" :columns="columns" :config="tableConfig" :enable-column-drag="true"
|
||||||
@ -17,31 +18,31 @@
|
|||||||
细菌/结果({{ tableData.length }})项
|
细菌/结果({{ tableData.length }})项
|
||||||
</template>
|
</template>
|
||||||
<template #od="{ row }">
|
<template #od="{ row }">
|
||||||
<el-input v-model="row.od" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<el-input v-model="row.od" v-if="labPat.jgbz != 2" size="small" class="full-width-input foucs-input"
|
||||||
class="full-width-input foucs-input" @change="handleCsjgEnter(row)" />
|
@change="handleCsjgEnter(row)" />
|
||||||
<span v-else>{{ row.od }}</span>
|
<span v-else>{{ row.od }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template #csjg="{ row }">
|
<template #csjg="{ row }">
|
||||||
<el-input v-model="row.csjg" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<el-input v-model="row.csjg" v-if="labPat.jgbz != 2" size="small" class="full-width-input"
|
||||||
class="full-width-input" @change="handleCsjgEnter(row)" @dblclick="handleInputFocus(row)" />
|
@change="handleCsjgEnter(row)" @dblclick="handleInputFocus(row)" />
|
||||||
<span v-else>{{ row.csjg }}</span>
|
<span v-else>{{ row.csjg }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template #jgbz="{ row }">
|
<template #jgbz="{ row }">
|
||||||
<el-select v-model="row.jgbz" class="full-width-input" v-if="labPat.jgbz == 0 || labPat.jgbz == null"
|
<el-select v-model="row.jgbz" class="full-width-input" v-if="labPat.jgbz != 2" placeholder=""
|
||||||
placeholder="" @change="handleCsjgEnter(row)">
|
@change="handleCsjgEnter(row)">
|
||||||
<el-option label="阳性" value="P" />
|
<el-option label="阳性" value="P" />
|
||||||
<el-option label="阴性" value="N" />
|
<el-option label="阴性" value="N" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<span v-else> {{ formatJgbz(row.jgbz) }}</span>
|
<span v-else> {{ formatJgbz(row.jgbz) }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template #cutoff="{ row }">
|
<template #cutoff="{ row }">
|
||||||
<el-input v-model="row.cutoff" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<el-input v-model="row.cutoff" v-if="labPat.jgbz != 2" size="small" class="full-width-input"
|
||||||
class="full-width-input" @change="handleCsjgEnter(row)" />
|
@change="handleCsjgEnter(row)" />
|
||||||
<span v-else>{{ row.cutoff }}</span>
|
<span v-else>{{ row.cutoff }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template #alarm_flag="{ row }">
|
<template #alarm_flag="{ row }">
|
||||||
<el-select v-model="row.alarm_flag" class="full-width-input" v-if="labPat.jgbz == 0 || labPat.jgbz == null"
|
<el-select v-model="row.alarm_flag" class="full-width-input" v-if="labPat.jgbz != 2" placeholder=""
|
||||||
placeholder="" @change="handleCsjgEnter(row)">
|
@change="handleCsjgEnter(row)">
|
||||||
<el-option label="危急值" value="H" />
|
<el-option label="危急值" value="H" />
|
||||||
<el-option label="无" value="" />
|
<el-option label="无" value="" />
|
||||||
</el-select>
|
</el-select>
|
||||||
@ -61,23 +62,23 @@
|
|||||||
抗生素({{ ymTableData.length }})项
|
抗生素({{ ymTableData.length }})项
|
||||||
</template>
|
</template>
|
||||||
<template #mic="{ row }">
|
<template #mic="{ row }">
|
||||||
<el-input v-model="row.mic" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<el-input v-model="row.mic" v-if="labPat.jgbz != 2" size="small" class="ymFoucs full-width-input"
|
||||||
class="ymFoucs full-width-input" @change="ymHandleEnter(row)" />
|
@change="ymHandleEnter(row)" />
|
||||||
<span v-else>{{ row.mic }}</span>
|
<span v-else>{{ row.mic }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template #rad="{ row }">
|
<template #rad="{ row }">
|
||||||
<el-input v-model="row.rad" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<el-input v-model="row.rad" v-if="labPat.jgbz != 2" size="small" class="full-width-input"
|
||||||
class="full-width-input" @change="ymHandleEnter(row)" />
|
@change="ymHandleEnter(row)" />
|
||||||
<span v-else>{{ row.rad }}</span>
|
<span v-else>{{ row.rad }}</span>
|
||||||
</template>
|
</template>
|
||||||
<template #csjg="{ row }">
|
<template #csjg="{ row }">
|
||||||
<el-input v-model="row.csjg" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<el-input v-model="row.csjg" v-if="labPat.jgbz != 2" size="small" class="full-width-input"
|
||||||
class="full-width-input" @change="ymHandleEnter(row)" />
|
@change="ymHandleEnter(row)" />
|
||||||
<span v-else>{{ row.csjg }}</span>
|
<span v-else>{{ row.csjg }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #jgbz="{ row }">
|
<template #jgbz="{ row }">
|
||||||
<el-radio-group v-model="row.jgbz" :disabled="labPat.jgbz == 0 || labPat.jgbz == null ? false : true"
|
<el-radio-group v-model="row.jgbz" :disabled="labPat.jgbz != 2 ? false : true"
|
||||||
@change="(val: string) => { jgbzHandle(val, row) }">
|
@change="(val: string) => { jgbzHandle(val, row) }">
|
||||||
<el-radio value="R">R</el-radio>
|
<el-radio value="R">R</el-radio>
|
||||||
<el-radio value="I">I</el-radio>
|
<el-radio value="I">I</el-radio>
|
||||||
@ -88,20 +89,20 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #bz="{ row }">
|
<template #bz="{ row }">
|
||||||
<el-input v-model="row.bz" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<el-input v-model="row.bz" v-if="labPat.jgbz != 2" size="small" class="full-width-input"
|
||||||
class="full-width-input" @change="ymHandleEnter(row)" />
|
@change="ymHandleEnter(row)" />
|
||||||
<span v-else>{{ row.bz }}</span>
|
<span v-else>{{ row.bz }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #txtresult="{ row }">
|
<template #txtresult="{ row }">
|
||||||
<el-input v-model="row.txtresult" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<el-input v-model="row.txtresult" v-if="labPat.jgbz != 2" size="small" class="full-width-input"
|
||||||
class="full-width-input" @change="ymHandleEnter(row)" />
|
@change="ymHandleEnter(row)" />
|
||||||
<span v-else>{{ row.txtresult }}</span>
|
<span v-else>{{ row.txtresult }}</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template #cp_bz="{ row }">
|
<template #cp_bz="{ row }">
|
||||||
<el-input v-model="row.cp_bz" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<el-input v-model="row.cp_bz" v-if="labPat.jgbz != 2" size="small" class="full-width-input"
|
||||||
class="full-width-input" @change="ymHandleEnter(row)" />
|
@change="ymHandleEnter(row)" />
|
||||||
<span v-else>{{ row.cp_bz }}</span>
|
<span v-else>{{ row.cp_bz }}</span>
|
||||||
</template>
|
</template>
|
||||||
</CustomTable>
|
</CustomTable>
|
||||||
@ -113,22 +114,31 @@
|
|||||||
</el-tabs>
|
</el-tabs>
|
||||||
<div class="btns anchor">
|
<div class="btns anchor">
|
||||||
<template v-if="activeName2 == 'first'">
|
<template v-if="activeName2 == 'first'">
|
||||||
<el-button class="btns_box" type="primary" :size="autoSize" plain
|
<el-button class="btns_box" type="primary" :size="autoSize" plain :disabled="labPat.jgbz == 2"
|
||||||
:disabled="labPat.jgbz != null && labPat.jgbz != 0" @click="addMed">新增</el-button>
|
@click="addMed">新增</el-button>
|
||||||
<el-button class="btns_box" type="danger" :size="autoSize" :disabled="labPat.jgbz != null && labPat.jgbz != 0"
|
<el-button class="btns_box" type="danger" :size="autoSize" :disabled="labPat.jgbz == 2" plain
|
||||||
plain @click="delMed">删除</el-button>
|
@click="delMed">删除</el-button>
|
||||||
<el-button type="primary" class="btns_box" plain :size="autoSize" @click="changeKss">更换抗生素组</el-button>
|
<el-button type="primary" class="btns_box" plain :size="autoSize" :disabled="labPat.jgbz == 2"
|
||||||
<el-button type="primary" class="btns_box" plain :size="autoSize" @click="addKss">添加抗生素组</el-button>
|
@click="changeKss">更换抗生素组</el-button>
|
||||||
|
<el-button type="primary" class="btns_box" plain :size="autoSize" :disabled="labPat.jgbz == 2"
|
||||||
|
@click="addKss">添加抗生素组</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template v-if="activeName2 == 'second'">
|
<template v-if="activeName2 == 'second'">
|
||||||
<el-button type="primary" class="btns_box" plain :size="autoSize" @click="handleTextareaEnter">确定</el-button>
|
<el-button class="btns_box" type="primary" :size="autoSize" plain :disabled="labPat.jgbz == 2"
|
||||||
<el-button type="primary" class="btns_box" plain :size="autoSize" @click="textarea = ''">清除</el-button>
|
@click="pyMb">评语模板</el-button>
|
||||||
|
<el-button type="primary" class="btns_box" plain :size="autoSize" :disabled="labPat.jgbz == 2"
|
||||||
|
@click="handleTextarea">确定</el-button>
|
||||||
|
<el-button type="primary" class="btns_box" plain :size="autoSize" :disabled="labPat.jgbz == 2"
|
||||||
|
@click="textarea = ''">清除</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 专家评语 -->
|
||||||
|
<CommentDialog ref="commentRef" @update:text="handleCommentConfirm" />
|
||||||
|
|
||||||
<!-- 新增明细 -->
|
<!-- 新增明细 -->
|
||||||
<ProjectDetails ref="itemDictRef" :dialog-title="'选择检验项目'" :tableKey="labPatKey" @select="handleItemSelect" />
|
<ProjectDetails ref="itemDictRef" :dialog-title="'选择检验项目'" :tableKey="labPatKey" @select="handleItemSelect" />
|
||||||
|
|
||||||
@ -208,6 +218,7 @@ import ViewBackup from "../../work/components/viewBackup.vue"
|
|||||||
import userVerification from "@/components/userVerification/index.vue";
|
import userVerification from "@/components/userVerification/index.vue";
|
||||||
import DlDialog from "../../work/components/dlDialog.vue";
|
import DlDialog from "../../work/components/dlDialog.vue";
|
||||||
import MergeResults from "../../work/components/mergeResults.vue";
|
import MergeResults from "../../work/components/mergeResults.vue";
|
||||||
|
import CommentDialog from "./components/commentDialog.vue";
|
||||||
|
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
labPat: {
|
labPat: {
|
||||||
@ -701,8 +712,9 @@ watch(labResutsData, (newVal: any) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const handleTextareaEnter = () => {
|
const handleTextarea = () => {
|
||||||
if (!rowInfo.value.xmdh) return
|
if (!rowInfo.value.xmdh) return
|
||||||
|
if (!textarea.value) return ElMessage.warning('请填写专家评语!')
|
||||||
savetestResult({ ...rowInfo.value, textresult: textarea.value }).then((res: any) => {
|
savetestResult({ ...rowInfo.value, textresult: textarea.value }).then((res: any) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
ElMessage.success('保存成功');
|
ElMessage.success('保存成功');
|
||||||
@ -714,6 +726,8 @@ const rowHandle = (row: any) => {
|
|||||||
selectedRows.value = [row];
|
selectedRows.value = [row];
|
||||||
emitter.emitWithCache('refreshClinical', row);
|
emitter.emitWithCache('refreshClinical', row);
|
||||||
rowInfo.value = row
|
rowInfo.value = row
|
||||||
|
textarea.value = row.textresult
|
||||||
|
|
||||||
const data = {
|
const data = {
|
||||||
ybh: labPat.value.ybh,
|
ybh: labPat.value.ybh,
|
||||||
yq: labPat.value.yq,
|
yq: labPat.value.yq,
|
||||||
@ -909,6 +923,15 @@ const kssSelect = (row: any) => {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const commentRef = ref()
|
||||||
|
const pyMb = () => {
|
||||||
|
commentRef.value.open()
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleCommentConfirm = (text: string) => {
|
||||||
|
textarea.value = text
|
||||||
|
}
|
||||||
const addMed = () => {
|
const addMed = () => {
|
||||||
medDictRef.value.openDictSelector();
|
medDictRef.value.openDictSelector();
|
||||||
}
|
}
|
||||||
@ -1004,7 +1027,15 @@ const formatDict = (v: string, dictType: string) => {
|
|||||||
return props.dictData[dictType]?.find((item: any) => item.value == v)?.label || v;
|
return props.dictData[dictType]?.find((item: any) => item.value == v)?.label || v;
|
||||||
}
|
}
|
||||||
const formatJgbz = (v: string) => {
|
const formatJgbz = (v: string) => {
|
||||||
return v == 'H' ? '高' : v == 'L' ? '低' : v == 'N' ? '阴性' : v == 'P' ? '阳性' : v == 'Q' ? '弱阳性' : v == 'M' ? '正常' : ''
|
const jgbzMap = {
|
||||||
|
'H': '高',
|
||||||
|
'L': '低',
|
||||||
|
'N': '阴性',
|
||||||
|
'P': '阳性',
|
||||||
|
'Q': '弱阳性',
|
||||||
|
'M': '正常'
|
||||||
|
};
|
||||||
|
return jgbzMap[v as keyof typeof jgbzMap] ?? '';
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@ -132,7 +132,7 @@ import {
|
|||||||
} from "../../../api/liswork/work/LisWork";
|
} from "../../../api/liswork/work/LisWork";
|
||||||
import { querylabInstrList, querylabInstrListByLisgroup } from "../../../api/liswork/dict/LabInstr";
|
import { querylabInstrList, querylabInstrListByLisgroup } from "../../../api/liswork/dict/LabInstr";
|
||||||
import { getComDicts, queryComDictListService } from "../../../api/liswork/dict/ComDict";
|
import { getComDicts, queryComDictListService } from "../../../api/liswork/dict/ComDict";
|
||||||
import LabPatForm from './components/labpat.vue'
|
import LabPatForm from './labpat.vue'
|
||||||
import LabResultForm from './labresult.vue'
|
import LabResultForm from './labresult.vue'
|
||||||
import LabPatListForm from './labpatlist.vue'
|
import LabPatListForm from './labpatlist.vue'
|
||||||
import Unconfirmlog from './components/unconfirmlog.vue'
|
import Unconfirmlog from './components/unconfirmlog.vue'
|
||||||
|
|||||||
@ -9,18 +9,12 @@
|
|||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<el-form-item label="" prop="ybh">
|
<el-form-item label="" prop="ybh">
|
||||||
<div class="next_box">
|
<div class="next_box">
|
||||||
<div class="jtIcon" @click="handlePrev">
|
<el-button type="primary" class="jt_btn" :size="aotuSize" icon="ArrowUpBold"
|
||||||
<el-icon>
|
@click="handlePrev"></el-button>
|
||||||
<ArrowUpBold />
|
|
||||||
</el-icon>
|
|
||||||
</div>
|
|
||||||
<el-input v-model="queryParams.ybh" placeholder="样本编号" @keyup.enter="handleQuery"
|
<el-input v-model="queryParams.ybh" placeholder="样本编号" @keyup.enter="handleQuery"
|
||||||
style="width:100%" />
|
style="width:100%" />
|
||||||
<div class="jtIcon" @click="handleNext">
|
<el-button type="primary" class="jt_btn" :size="aotuSize" icon="ArrowDownBold"
|
||||||
<el-icon>
|
@click="handleNext"></el-button>
|
||||||
<ArrowDownBold />
|
|
||||||
</el-icon>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -79,15 +73,18 @@
|
|||||||
<template v-if="activeTab == 'LabPatList'">
|
<template v-if="activeTab == 'LabPatList'">
|
||||||
<div class="flex-between">
|
<div class="flex-between">
|
||||||
<div>
|
<div>
|
||||||
<el-button type="primary" :size="aotuSize" icon="RefreshRight" @click="fetchlabPatList">刷新</el-button>
|
<el-button type="primary" :size="aotuSize" icon="RefreshRight" circle
|
||||||
<el-button type="danger" :size="aotuSize" @click="delSampleHd">删除</el-button>
|
@click="fetchlabPatList"></el-button>
|
||||||
<el-button class="btn_green" :size="aotuSize" icon="top" @click="handlePrev">上一个</el-button>
|
<el-button type="danger" :size="aotuSize" icon="Delete" circle @click="delSampleHd"></el-button>
|
||||||
<el-button class="btn_green mr5" :size="aotuSize" icon="bottom" @click="handleNext">下一个</el-button>
|
<el-button class="btn_green" :size="aotuSize" icon="top" circle @click="handlePrev"></el-button>
|
||||||
|
<el-button class="btn_green mr5" :size="aotuSize" icon="bottom" circle
|
||||||
|
@click="handleNext"></el-button>
|
||||||
<PatientQueryForm :initial-params="initialParams" @query="handleQueryResult" @reset="handleReset"
|
<PatientQueryForm :initial-params="initialParams" @query="handleQueryResult" @reset="handleReset"
|
||||||
width="9rem" :size="aotuSize" placeholder="查询条件" :dict-data="dictData" :clearable="true" />
|
width="14rem" :size="aotuSize" placeholder="查询条件" :dict-data="dictData" :clearable="true" />
|
||||||
<el-input v-model="searchText" clearable :size="aotuSize" @keyup.enter="searchQuery"
|
<el-input v-model="searchText" clearable :size="aotuSize" @keyup.enter="searchQuery" class="ml10"
|
||||||
@clear="clearSearch" style="width: 6rem" />
|
@clear="clearSearch" style="width: 10rem" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<el-checkbox v-model="lbFlag" :size="aotuSize"> 列表翻页 </el-checkbox>
|
<el-checkbox v-model="lbFlag" :size="aotuSize"> 列表翻页 </el-checkbox>
|
||||||
</div>
|
</div>
|
||||||
@ -102,7 +99,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
<!-- tab栏 内容 -->
|
||||||
<component :is="activeTabName" :queryParams="queryParams" :dictData="dictData" :instrOptions="instrOptions"
|
<component :is="activeTabName" :queryParams="queryParams" :dictData="dictData" :instrOptions="instrOptions"
|
||||||
@fetchResults="fetchLabResults" :tablekey="queryParams" />
|
@fetchResults="fetchLabResults" :tablekey="queryParams" />
|
||||||
|
|
||||||
@ -137,12 +134,13 @@ import { queryLabPatList, queryLabResults, loadDefault, queryLabPat, instrdconfi
|
|||||||
import { getComDicts, queryComDictListService } from "@/api/liswork/dict/ComDict";
|
import { getComDicts, queryComDictListService } from "@/api/liswork/dict/ComDict";
|
||||||
import { ElMessage, ElMessageBox } from "element-plus";
|
import { ElMessage, ElMessageBox } from "element-plus";
|
||||||
import History from '../components/history/index.vue'
|
import History from '../components/history/index.vue'
|
||||||
import Others from '../components/others/index.vue'
|
import OthersResult from '../components/othersResult/index.vue'
|
||||||
import Reexamination from '../components/reexamination/index.vue'
|
import Reexamination from '../components/reexamination/index.vue'
|
||||||
import Charge from '../components/charge/index.vue'
|
import Charge from '../components/charge/index.vue'
|
||||||
import Combination from '../components/combination/index.vue'
|
import Combination from '../components/combination/index.vue'
|
||||||
import Clinical from '../components/clinical/index.vue'
|
import Clinical from '../components/clinical/index.vue'
|
||||||
import Sample from '../components/sample/index.vue'
|
import Sample from '../components/sample/index.vue'
|
||||||
|
import OtherInformation from '../components/otherInformation/index.vue'
|
||||||
import ResultGraph from '../components/resultGraph/index.vue'
|
import ResultGraph from '../components/resultGraph/index.vue'
|
||||||
import { getNextNumber, getPreviousNumber } from "@/utils/getNextNumber";
|
import { getNextNumber, getPreviousNumber } from "@/utils/getNextNumber";
|
||||||
import { useCommonStore } from '@/store/modules/commonStore';
|
import { useCommonStore } from '@/store/modules/commonStore';
|
||||||
@ -174,23 +172,25 @@ const tabList = ref([
|
|||||||
{ label: '标本列表', value: 'LabPatList' },
|
{ label: '标本列表', value: 'LabPatList' },
|
||||||
{ label: '结果图形', value: 'ResultGraph' },
|
{ label: '结果图形', value: 'ResultGraph' },
|
||||||
{ label: '历史对照', value: 'History' },
|
{ label: '历史对照', value: 'History' },
|
||||||
{ label: '其他结果', value: 'Others' },
|
{ label: '其他结果', value: 'OthersResult' },
|
||||||
{ label: '结果复查', value: 'Reexamination' },
|
{ label: '结果复查', value: 'Reexamination' },
|
||||||
{ label: '收费信息', value: 'Charge' },
|
{ label: '收费信息', value: 'Charge' },
|
||||||
{ label: '组合项目', value: 'Combination' },
|
{ label: '组合项目', value: 'Combination' },
|
||||||
{ label: '临床意义', value: 'Clinical' },
|
{ label: '临床意义', value: 'Clinical' },
|
||||||
{ label: '样本流转', value: 'Sample' },
|
{ label: '样本流转', value: 'Sample' },
|
||||||
|
{ label: '其他信息', value: 'OtherInformation' },
|
||||||
])
|
])
|
||||||
|
|
||||||
const activeTabMap = {
|
const activeTabMap = {
|
||||||
ResultGraph,
|
ResultGraph,
|
||||||
History,
|
History,
|
||||||
Others,
|
OthersResult,
|
||||||
Reexamination,
|
Reexamination,
|
||||||
Charge,
|
Charge,
|
||||||
Combination,
|
Combination,
|
||||||
Clinical,
|
Clinical,
|
||||||
Sample
|
Sample,
|
||||||
|
OtherInformation
|
||||||
}
|
}
|
||||||
|
|
||||||
const activeTabName = computed(() => activeTabMap[activeTab.value as keyof typeof activeTabMap] || 'LabPatList');
|
const activeTabName = computed(() => activeTabMap[activeTab.value as keyof typeof activeTabMap] || 'LabPatList');
|
||||||
|
|||||||
@ -544,7 +544,15 @@ const rightTableConfig = ref(
|
|||||||
)
|
)
|
||||||
|
|
||||||
const formatJgbz = (v: string) => {
|
const formatJgbz = (v: string) => {
|
||||||
return v == 'H' ? '高' : v == 'L' ? '低' : v == 'N' ? '阴性' : v == 'P' ? '阳性' : v == 'Q' ? '弱阳性' : v == 'M' ? '正常' : ''
|
const jgbzMap = {
|
||||||
|
'H': '高',
|
||||||
|
'L': '低',
|
||||||
|
'N': '阴性',
|
||||||
|
'P': '阳性',
|
||||||
|
'Q': '弱阳性',
|
||||||
|
'M': '正常'
|
||||||
|
};
|
||||||
|
return jgbzMap[v as keyof typeof jgbzMap] ?? '';
|
||||||
}
|
}
|
||||||
|
|
||||||
const expertComment = ref('')
|
const expertComment = ref('')
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user