批量条码
This commit is contained in:
parent
2a3c19900a
commit
99fadc5563
@ -209,3 +209,19 @@ export function instrdconfig(query?: Object) {
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 医生校验
|
||||
export function checkYsUser(query?: Object) {
|
||||
return request({
|
||||
url: '/liswork/checkuserid',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 删除样本
|
||||
export function delSample(query?: Object) {
|
||||
return request({
|
||||
url: '/lisworkoper/delsample',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
1
src/assets/icons/svg/hongcha.svg
Normal file
1
src/assets/icons/svg/hongcha.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="200.00px" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M436.288 512L144.064 219.84a53.696 53.696 0 0 1 75.776-75.968l292.48 292.48 292.224-292.48a53.696 53.696 0 1 1 75.968 75.968L588.288 512.064l292.224 292.416a53.696 53.696 0 0 1-75.968 75.776L512.256 588.032l-292.416 292.224a53.44 53.44 0 0 1-75.776 0 53.44 53.44 0 0 1 0-75.776L436.288 512z" fill="#FC2530" /></svg>
|
||||
|
After Width: | Height: | Size: 582 B |
1
src/assets/icons/svg/lvgou.svg
Normal file
1
src/assets/icons/svg/lvgou.svg
Normal file
@ -0,0 +1 @@
|
||||
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg class="icon" width="200px" height="171.52px" viewBox="0 0 1194 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M1135.018667 99.84c-29.525333-22.442667-61.952-18.773333-84.992 10.24L469.162667 705.792 151.552 418.56l-5.632-6.229333c-24.064-23.04-56.234667-20.906667-83.370667 0-29.525333 22.698667-23.296 52.906667 0 81.578666l306.005334 394.24 7.168 8.277334a138.24 138.24 0 0 0 183.637333 13.653333c8.618667-6.656 16.384-14.336 23.210667-22.869333l547.669333-704.170667 4.778667-6.826667c17.237333-28.501333 27.477333-55.466667 0-76.202666V99.84z" fill="#009269" /></svg>
|
||||
|
After Width: | Height: | Size: 728 B |
@ -125,7 +125,7 @@
|
||||
word-break: break-word;
|
||||
background-color: #1F6DD3 !important;
|
||||
color: #FFF;
|
||||
height: 40px !important;
|
||||
height: 30px !important;
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
@ -143,8 +143,21 @@
|
||||
}
|
||||
|
||||
.el-scrollbar__thumb {
|
||||
background-color: #6491D6 !important;
|
||||
background-color: #817e7e !important;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.el-scrollbar__thumb:hover {
|
||||
background-color: #817e7e !important;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.cell.el-tooltip {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.el-table__cell {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
/* 修改选中行背景色 */
|
||||
@ -177,18 +190,6 @@
|
||||
border-right: 1px solid #1F6DD3 !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.vxe-table {
|
||||
border: 1px solid #96B8D9 !important;
|
||||
border-top: none !important;
|
||||
/* 蓝色外边框 */
|
||||
border-radius: 8px;
|
||||
/* 可选:添加边框圆角 */
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
|
||||
.el-input__wrapper,
|
||||
.el-select__wrapper {
|
||||
box-shadow: 0 0 0 1px #96B8D9 inset;
|
||||
@ -230,17 +231,38 @@
|
||||
|
||||
|
||||
|
||||
.vxe-table {
|
||||
border: 1px solid #96B8D9 !important;
|
||||
border-top: none !important;
|
||||
/* 蓝色外边框 */
|
||||
border-radius: 8px;
|
||||
/* 可选:添加边框圆角 */
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.mytable-style {
|
||||
.vxe-header--column {
|
||||
word-break: break-word;
|
||||
background-color: #1F6DD3 !important;
|
||||
color: #FFF;
|
||||
height: 40px !important;
|
||||
height: 30px !important;
|
||||
line-height: 30px !important;
|
||||
padding: 0 !important;
|
||||
font-size: 13px;
|
||||
border-color: #1F6DD3 !important;
|
||||
}
|
||||
|
||||
.vxe-table--render-default .vxe-body--column {
|
||||
height: 23px !important;
|
||||
line-height: 23px !important;
|
||||
}
|
||||
|
||||
.el-checkbox {
|
||||
height: 23px !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 高亮
|
||||
@ -255,11 +277,13 @@
|
||||
}
|
||||
|
||||
.mytable-style ::-webkit-scrollbar-thumb {
|
||||
background-color: #e1e9f7;
|
||||
background-color: #817e7e;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.mytable-style ::-webkit-scrollbar-thumb:hover {
|
||||
background-color: #e1e9f7;
|
||||
background-color: #817e7e;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn_green {
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
<template>
|
||||
<div class="select-table-container">
|
||||
<el-select ref="selectTable" v-model="selectShowValue" :placeholder="props.placeholder" :size="props.size"
|
||||
:style="{ width: props.width }" @visible-change="visibleChange" @clear="clearHandle" clearable
|
||||
:style="{ width: props.width }" @visible-change="visibleChange" @clear="clearHandle" :clearable="props.clearable"
|
||||
:disabled="disabled">
|
||||
<template #empty>
|
||||
<div class="select-table-dropdown">
|
||||
@ -70,6 +70,7 @@ interface Props {
|
||||
width?: string | number;
|
||||
disabled?: boolean;
|
||||
dictType?: string;
|
||||
clearable?: boolean;
|
||||
}
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
placeholder: "请选择",
|
||||
@ -79,7 +80,8 @@ const props = withDefaults(defineProps<Props>(), {
|
||||
label: undefined,
|
||||
border: false,
|
||||
width: "100%",
|
||||
dictType: ''
|
||||
dictType: '',
|
||||
clearable: true
|
||||
});
|
||||
|
||||
interface Emits {
|
||||
|
||||
@ -27,7 +27,7 @@
|
||||
:width="item.width" :min-width="item.minWidth" :fixed="item.fixed" :align="item.align || 'left'"
|
||||
:sortable="item.sortable" :show-overflow-tooltip="item.showOverflowTooltip !== false">
|
||||
<template #default="scope">
|
||||
<slot :name="item.slot" :row="scope.row" />
|
||||
<slot :name="item.slot" :row="scope.row" :$index="scope.$index" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@ -362,17 +362,30 @@ defineExpose({
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// 拖拽相关样式
|
||||
:deep(.sortable-ghost) {
|
||||
opacity: 0.5;
|
||||
background-color: #e5e7eb;
|
||||
|
||||
|
||||
// 只在拖拽手柄上显示移动光标
|
||||
:deep(.el-table-header-cell .cell) {
|
||||
cursor: move;
|
||||
/* 恢复默认光标 */
|
||||
}
|
||||
|
||||
:deep(.el-table-header-cell) {
|
||||
cursor: move;
|
||||
user-select: none;
|
||||
// 拖拽手柄样式(使用排序图标作为拖拽手柄)
|
||||
:deep(.el-table-header-cell .sort-caret) {
|
||||
// cursor: move;
|
||||
/* 只在排序图标处显示移动光标 */
|
||||
// margin-left: 1px;
|
||||
}
|
||||
|
||||
// 保留列宽调整的光标样式
|
||||
:deep(.el-table__header-wrapper .el-table__header tr th .el-table__header-drag-icon) {
|
||||
cursor: col-resize !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.pagination-wrapper {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@ -79,7 +79,8 @@
|
||||
@row-click="rowHandle" @selection-change="selectionChange" :enable-column-drag="true"
|
||||
@column-drag-end="handleColumnDragEnd">
|
||||
<template #dy="{ row }">
|
||||
{{ row.zt != 1 ? '✅' : '❌' }}
|
||||
<svg-icon v-if="row.zt != 1" icon-class="lvgou" />
|
||||
<svg-icon v-else icon-class="hongcha" />
|
||||
</template>
|
||||
<template #jzbz="{ row }">
|
||||
{{ row.jzbz == '1' ? '急诊' : '非急诊' }}
|
||||
@ -235,12 +236,12 @@ const loading = ref(true);
|
||||
const tableData = ref([])
|
||||
// 配置项
|
||||
const columns = ref([
|
||||
{ type: 'selection', visible: true, align: 'center', width: 55, label: '多选框' },
|
||||
{ type: 'selection', visible: true, align: 'center', width: 40, label: '多选框' },
|
||||
// { type: 'index', visible: true, align: 'center', width: 60, label: '序号' },
|
||||
{ prop: 'zt', label: '打印', visible: true, align: 'center', slot: 'dy', },
|
||||
{ prop: 'zt', label: '打印', visible: true, align: 'center', slot: 'dy', width: 60 },
|
||||
{ prop: 'ch', label: '床号', visible: true, align: 'center', sortable: true, },
|
||||
{ prop: 'brxm', label: '姓名', align: 'center', visible: true, },
|
||||
{ prop: 'brxbname', label: '性别', align: 'center', visible: true, },
|
||||
{ prop: 'brxbname', label: '性别', align: 'center', visible: true, width: 60 },
|
||||
{ prop: 'jymd', label: '项目名称', align: 'center', visible: true, width: '140px' },
|
||||
{ prop: 'bgddhname', label: '类别', align: 'center', visible: true, width: '120px' },
|
||||
{ prop: 'sampletips', label: '采样提示', align: 'center', visible: true, width: '110px' },
|
||||
|
||||
@ -88,9 +88,11 @@
|
||||
</el-row>
|
||||
|
||||
<CustomTable ref="tableRefs" :data="tableData" :columns="columns" :config="tableConfig" :loading="loading"
|
||||
@selection-change="selectionChange" @row-click="rowHandle">
|
||||
@selection-change="selectionChange" @row-click="rowHandle" :enableColumnDrag="true"
|
||||
@column-drag-end="handleColumnDragEnd">
|
||||
<template #dybz="{ row }">
|
||||
{{ row.dybz == 1 ? '✅' : '❌' }}
|
||||
<svg-icon v-if="row.dybz == 1" icon-class="lvgou" />
|
||||
<svg-icon v-else icon-class="hongcha" />
|
||||
</template>
|
||||
<template #alarmflag="{ row }">
|
||||
{{ row.alarmflag == 1 ? '危' : '' }}
|
||||
@ -131,8 +133,8 @@
|
||||
<div class="flex-between">
|
||||
|
||||
</div>
|
||||
<el-table :data="compareTableData" style="width: 100%" @row-click="handleRowClick" highlight-current-row border
|
||||
max-height="350px">
|
||||
<el-table ref="diaTableRef" :data="compareTableData" style="width: 100%" @row-click="handleRowClick"
|
||||
highlight-current-row border max-height="350px">
|
||||
<el-table-column prop="xmdh" label="项目编号" fixed align="center" width="150px" />
|
||||
<el-table-column prop="xmmc" label="项目名称" fixed align="center" />
|
||||
<template v-for="(period) in periods" :key="period">
|
||||
@ -170,7 +172,7 @@ const compactForm = ref<HTMLElement | null>(null);
|
||||
const heightForm = ref(90);
|
||||
const dialogVisible = ref(false)
|
||||
const tableRefs = ref()
|
||||
|
||||
const diaTableRef = ref()
|
||||
const myEcharts = ref()
|
||||
const options = ref([
|
||||
{ label: '复制全部数据', value: 'All' },
|
||||
@ -254,22 +256,22 @@ const rows = ref<any[]>([])
|
||||
const tableData = ref([])
|
||||
// 配置项
|
||||
const columns = ref([
|
||||
{ type: 'selection', visible: true, align: 'center', width: 55, label: '多选框' },
|
||||
{ prop: 'dybz', label: '打印', align: 'center', visible: true, key: 0, slot: 'dybz', width: 60 },
|
||||
{ prop: 'jzbz', label: '急诊', align: 'center', visible: true, key: 1, slot: 'jzbz', },
|
||||
{ prop: 'alarmflag', label: '危急值', align: 'center', visible: true, key: 2, slot: 'alarmflag' },
|
||||
{ prop: 'jyrq', label: '检验日期', align: 'center', visible: true, key: 3, sortable: true, width: 150 },
|
||||
{ prop: 'brdh', label: '病人代号', align: 'center', visible: true, key: 4, width: 110 },
|
||||
{ prop: 'brxm', label: '病人姓名', align: 'center', visible: true, key: 4, },
|
||||
{ prop: 'brxbname', label: '性别', align: 'center', visible: true, key: 11, },
|
||||
{ prop: 'ch', label: '床号', align: 'center', visible: true, key: 5, },
|
||||
{ prop: 'yqdl', label: '仪器', align: 'center', visible: true, key: 6, width: 110 },
|
||||
{ prop: 'ybh', label: '样本号', align: 'center', visible: true, key: 7, },
|
||||
{ prop: 'yblxname', label: '样本类型', align: 'center', visible: true, key: 8, },
|
||||
{ prop: 'jymd', label: '检验目的', align: 'center', visible: true, key: 9, width: 110 },
|
||||
{ prop: 'brlyname', label: '病人类型', align: 'center', visible: true, key: 10, },
|
||||
{ prop: 'yqmc', label: '仪器名称', align: 'center', visible: true, key: 12, width: 150 },
|
||||
{ prop: 'yljg', label: '医疗机构', align: 'center', visible: true, key: 13, width: 150 },
|
||||
{ type: 'selection', visible: true, align: 'center', width: 45, label: '多选框' },
|
||||
{ prop: 'dybz', label: '印', align: 'center', visible: true, slot: 'dybz', width: 40 },
|
||||
{ prop: 'jzbz', label: '急', align: 'center', visible: true, slot: 'jzbz', width: 40 },
|
||||
{ prop: 'alarmflag', label: '危', align: 'center', visible: true, slot: 'alarmflag', width: 40 },
|
||||
{ prop: 'jyrqname', label: '检验日期', align: 'center', visible: true, sortable: true, width: 120 },
|
||||
{ prop: 'brdh', label: '病人代号', align: 'center', visible: true, width: 110 },
|
||||
{ prop: 'brxm', label: '病人姓名', align: 'center', visible: true, },
|
||||
{ prop: 'brxbname', label: '性别', align: 'center', visible: true, width: 60 },
|
||||
{ prop: 'ch', label: '床号', align: 'center', visible: true, width: 80 },
|
||||
{ prop: 'yqdl', label: '仪器', align: 'center', visible: true, width: 110 },
|
||||
{ prop: 'ybh', label: '样本号', align: 'center', visible: true, },
|
||||
{ prop: 'yblxname', label: '样本类型', align: 'center', visible: true, },
|
||||
{ prop: 'jymd', label: '检验目的', align: 'center', visible: true, width: 110 },
|
||||
{ prop: 'brlyname', label: '病人类型', align: 'center', visible: true, },
|
||||
{ prop: 'yqmc', label: '仪器名称', align: 'center', visible: true, width: 150 },
|
||||
{ prop: 'yljg', label: '医疗机构', align: 'center', visible: true, width: 150 },
|
||||
])
|
||||
|
||||
const selectionChange = (selection: any) => {
|
||||
@ -289,12 +291,18 @@ const rowHandle = (row: any) => {
|
||||
reportResult(data).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
rightTableData.value = res.data
|
||||
nextTick(() => {
|
||||
rightTableRef.value.setCurrentRow(res.data[0])
|
||||
})
|
||||
xmrowHandle(res.data[0])
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const handleColumnDragEnd = (newColumns: any) => {
|
||||
columns.value = newColumns.columns
|
||||
}
|
||||
|
||||
// 打印单张Pdf
|
||||
const printPdf = () => {
|
||||
const printStore = usePrintStore();
|
||||
@ -325,10 +333,10 @@ const cellStyleHd = ({ row, column, rowIndex, columnIndex }: {
|
||||
columnIndex: number;
|
||||
}) => {
|
||||
// console.log(row, column, rowIndex, columnIndex);
|
||||
if (column.label == "急诊" && row.jzbz == "1") {
|
||||
if (column.label == "急" && row.jzbz == "1") {
|
||||
return { background: '#f00 !important', color: '#fff' };
|
||||
}
|
||||
if (column.label == "危急值" && row.alarmflag == "1") {
|
||||
if (column.label == "危" && row.alarmflag == "1") {
|
||||
return { background: '#f00 !important', color: '#fff' };
|
||||
}
|
||||
};
|
||||
@ -425,21 +433,7 @@ const rightCellStyleHd = ({ row, column, rowIndex, columnIndex }: {
|
||||
if (column.label == "检验结果" && (row.alarm_flag ?? "").trim().length > 0) {
|
||||
return { background: '#f00 !important', color: '#FFF' };
|
||||
}
|
||||
if (column.label == "结果标志" && (row.alarm_flag ?? "").trim().length > 0) {
|
||||
return { background: '#f00 !important', color: '#FFF' };
|
||||
}
|
||||
if (column.label == "结果标志" && row.jgbz == "H") {
|
||||
return { background: '#ffc0c0 !important', color: '#606266' };
|
||||
}
|
||||
if (column.label == "结果标志" && row.jgbz == "L") {
|
||||
return { background: '#8080ff !important', color: '#fff' };
|
||||
}
|
||||
if (column.label == "结果标志" && row.jgbz == "P") {
|
||||
return { background: '#ffc0c0 !important', color: '#606266' };
|
||||
}
|
||||
if (column.label == "结果标志" && row.jgbz == "Q") {
|
||||
return { background: '#ffff80 !important', color: '#606266' };
|
||||
}
|
||||
|
||||
if (column.label == "检验结果" && row.jgbz == "H") {
|
||||
return { background: '#ffc0c0 !important', color: '#606266' };
|
||||
}
|
||||
@ -528,6 +522,7 @@ const openDB = () => {
|
||||
compareTableData.value = formatGroupedData(res.data)
|
||||
dialogVisible.value = true
|
||||
nextTick(() => {
|
||||
diaTableRef.value.setCurrentRow(compareTableData.value[0])
|
||||
handleRowClick(compareTableData.value[0])
|
||||
})
|
||||
}
|
||||
|
||||
@ -21,9 +21,9 @@
|
||||
</CustomTable>
|
||||
<el-table :data="bottomTableData" style="width: 100%" highlight-current-row border height="39vh" class="mt10"
|
||||
show-summary :summary-method="getSummaries" sum-text="项目数">
|
||||
<el-table-column prop="xmdh" label="报告项目" fixed align="center" />
|
||||
<el-table-column prop="xmmc" label="项目名称" fixed align="center" />
|
||||
<el-table-column prop="tdh" label="双工代号" fixed align="center" />
|
||||
<el-table-column prop="xmdh" label="报告项目" align="center" />
|
||||
<el-table-column prop="xmmc" label="项目名称" align="center" />
|
||||
<el-table-column prop="tdh" label="双工代号" align="center" />
|
||||
</el-table>
|
||||
</div>
|
||||
</template>
|
||||
@ -82,7 +82,7 @@ const columns = ref([
|
||||
])
|
||||
const tableConfig = ref({
|
||||
border: true, // 边框
|
||||
height: '40vh', // 高度
|
||||
height: '41.5vh', // 高度
|
||||
highlightCurrentRow: true, // 高亮当前行
|
||||
summary: true,
|
||||
summaryField: ['dj'],//计算列总和
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
<template>
|
||||
<div class="labpat_box">
|
||||
<div class="flex-between mb5">
|
||||
<el-input placeholder="条码号" class="mr10" style="width:100%" />
|
||||
<el-input v-model="sqhValue" placeholder="条码号" ref="sqhRef" class="mr10" style="width:100%"
|
||||
@keyup.enter="handleInputFocus" />
|
||||
<el-button type="primary">打印条码</el-button>
|
||||
</div>
|
||||
<el-form :model="labPat" label-width="70px" class="compact-form" label-position="right"
|
||||
:disabled="lastJgbz != null && lastJgbz != 0">
|
||||
<div :class="['sh_box', getColor(lastJgbz)]" v-if="lastJgbz != null && lastJgbz != 0">
|
||||
<div>{{ getLableType(lastJgbz) }}</div>
|
||||
<el-form :model="labPat" label-width="70px" class="compact-form" label-position="right">
|
||||
<div :class="['sh_box', getColor(lastJgbz)]" v-if="lastJgbz != null && lastJgbz != 0 && lastJgbz != 'C'">
|
||||
<div class="text">{{ getLableType(lastJgbz) }}</div>
|
||||
</div>
|
||||
<template v-for="v in labSysList" :key="v.xh">
|
||||
<el-row :gutter="10" v-if="v.mrts == '病人来源'">
|
||||
@ -40,54 +40,81 @@
|
||||
<el-input v-model="labPat[v.zdmc]" @change="handleFieldChange" style="width:100%" size="small" />
|
||||
</el-col>
|
||||
<el-col :span="10">
|
||||
<!-- <el-select v-model="labPat.nldw" style="width: 100%;" filterable size="small" @change="handleFieldChange"
|
||||
placeholder="">
|
||||
<el-option v-for="item in dictData.AU" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select> -->
|
||||
<SelectTable v-model:data="labPat.nldw" :fields="ksdhFields" dictType="AU" label="label" value="value"
|
||||
objKey="value" :border="true" size="small" @getDataValue="handleFieldChange" placeholder="" />
|
||||
</el-col>
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item :label="v.zdts" v-if="v.kj == '1' && v.mrts == '性别'">
|
||||
<el-select v-model="labPat[v.zdmc]" style="width: 100%;" @change="handleFieldChange" size="small"
|
||||
placeholder="" :disabled="v.kybj == '0'">
|
||||
<el-option v-for="item in dictData[v.dict]" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
</el-form-item> -->
|
||||
|
||||
<el-form-item :label="v.zdts"
|
||||
v-if="v.dict && v.kj == '1' && v.mrts != '病人来源' && v.mrts != '年龄单位' && v.mrts != '检验医师' && v.mrts != '核对医师'">
|
||||
<SelectTable v-model:data="labPat[v.zdmc]" :fields="ksdhFields" :dictType="v.dict" label="label" value="value"
|
||||
objKey="value" :border="true" size="small" @getDataValue="handleFieldChange" placeholder="" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- <el-form-item :label="v.zdts" v-if="v.mrts == '科室' && v.kj == '1'">
|
||||
<SelectTable v-model:data="labPat[v.zdmc]" :fields="ksdhFields" :tableData="dictData[v.dict] || []"
|
||||
label="label" value="value" objKey="value" :border="true" size="small" @getDataValue="handleFieldChange"
|
||||
:disabled="v.kybj == '0'" placeholder="" />
|
||||
</el-form-item>
|
||||
-->
|
||||
|
||||
|
||||
<el-form-item :label="v.zdts" v-if="v.mrts == '检验医师' && v.kj == '1'">
|
||||
<SelectTable v-model:data="labPat[v.zdmc]" :fields="ysFields" :tableData="userList || []" label="nickName"
|
||||
value="userName" objKey="userName" :border="true" size="small" @getDataValue="handleFieldChange"
|
||||
value="userName" objKey="userName" :border="true" size="small" @getDataValue="getJyysData"
|
||||
:disabled="v.kybj == '0'" placeholder="" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="v.zdts" v-if="v.mrts == '核对医师' && v.kj == '1'">
|
||||
<SelectTable v-model:data="labPat[v.zdmc]" :fields="ysFields" :tableData="userList || []" label="nickName"
|
||||
value="userName" objKey="userName" :border="true" size="small" @getDataValue="handleFieldChange"
|
||||
value="userName" objKey="userName" :border="true" size="small" @getDataValue="getHdysData"
|
||||
:disabled="v.kybj == '0'" placeholder="" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-form>
|
||||
|
||||
|
||||
<!-- 医生校验 -->
|
||||
<el-dialog v-model="visible" title="请输入审核人员密码..." :width="500" :close-on-click-modal="false" :draggable="true">
|
||||
<el-form ref="formRef" :model="form" label-width="100px">
|
||||
<!-- 用户代号 -->
|
||||
<el-form-item label="用户代号:">
|
||||
<el-input v-model="form.yhdh" disabled placeholder="用户代号" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 用户姓名 -->
|
||||
<el-form-item label="用户姓名:">
|
||||
<el-input v-model="form.userName" disabled placeholder="用户姓名" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 密码输入 -->
|
||||
<el-form-item label="密码:" prop="mm" :rules="[{ required: true, message: '请输入密码', trigger: 'blur' }]">
|
||||
<el-input v-model="form.mm" type="password" placeholder="请输入密码" />
|
||||
</el-form-item>
|
||||
|
||||
<!-- 操作选项 -->
|
||||
<el-form-item label="">
|
||||
<el-radio-group v-model="form.type" @change="handleRadioChange">
|
||||
<el-radio :label="1">仅修改当前标本</el-radio>
|
||||
<el-radio :label="2">修改当天所有未审核并且无核对医生的标本</el-radio>
|
||||
<el-radio :label="3"><span style="color: #f00;">修改当天所有未审核标本(将覆盖原有的核对医生)</span></el-radio>
|
||||
<el-radio :label="4">
|
||||
<el-row :gutter="5">
|
||||
<el-col :span="8">指定样本号区间</el-col>
|
||||
<template v-if="form.type == 4">
|
||||
<el-col :span="8"> <el-input v-model="form.ybh1" size="small" /></el-col>
|
||||
<el-col :span="8"><el-input v-model="form.ybh2" size="small" /></el-col>
|
||||
</template>
|
||||
</el-row>
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<template #footer>
|
||||
<div class="dialog-footer ">
|
||||
<el-button type="primary" @click="handleConfirm"> 确定 </el-button>
|
||||
<el-button @click="handleCancel"> 取消 </el-button>
|
||||
</div>
|
||||
</template>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, watch, toRaw, computed, onMounted } from 'vue';
|
||||
import { changepatcolumn, updateLabPat } from "@/api/liswork/work/LisWork";
|
||||
import { ref, reactive, watch, toRaw, computed, onMounted, nextTick } from 'vue';
|
||||
import { changepatcolumn, updateLabPat, checkYsUser } from "@/api/liswork/work/LisWork";
|
||||
import SelectTable from '@/components/SelectTable/index.vue';
|
||||
// @ts-ignore
|
||||
import { listUser } from '@/api/system/user.js'
|
||||
@ -117,18 +144,17 @@ const props = defineProps({
|
||||
type: Object,
|
||||
default: () => { }
|
||||
},
|
||||
dictData: {
|
||||
type: Object,
|
||||
default: () => { }
|
||||
}
|
||||
|
||||
});
|
||||
const lastJgbz = ref();
|
||||
const sqhValue = ref(''); // 条码号
|
||||
const sqhRef = ref();
|
||||
watch(() => props.labPat, (newVal) => {
|
||||
lastValue.value = JSON.stringify(newVal);
|
||||
lastJgbz.value = newVal.jgbz;
|
||||
})
|
||||
|
||||
const emit = defineEmits(['update:labPat', 'getLabList']);
|
||||
const emit = defineEmits(['update:labPat', 'getLabList', 'changeStatus']);
|
||||
const lastValue = ref('');
|
||||
|
||||
const brlyFields = ref([
|
||||
@ -144,6 +170,86 @@ const ysFields = ref([
|
||||
{ prop: 'userName', label: '用户代号', width: 80, enablePinyinSearch: true },
|
||||
{ prop: 'nickName', label: '用户姓名', width: 150, enablePinyinSearch: true },
|
||||
])
|
||||
|
||||
const visible = ref(false);
|
||||
// 表单数据
|
||||
const form = ref({
|
||||
yhdh: '',
|
||||
userName: '',
|
||||
mm: '',
|
||||
type: 1,
|
||||
zdmc: '',
|
||||
ybh1: '',
|
||||
ybh2: '',
|
||||
});
|
||||
|
||||
const sqhFlag = ref(false);
|
||||
const handleInputFocus = () => {
|
||||
sqhFlag.value = true;
|
||||
props.labPat.sqh = sqhValue.value;
|
||||
handleFieldChange();
|
||||
};
|
||||
|
||||
// 表单引用
|
||||
const formRef = ref();
|
||||
|
||||
// 处理确定按钮点击
|
||||
const handleConfirm = async () => {
|
||||
if (!formRef.value) return;
|
||||
|
||||
// 表单验证
|
||||
const valid = await formRef.value.validate();
|
||||
if (valid) {
|
||||
checkYsUser({ ...form.value, ...props.labPatKey }).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
visible.value = false
|
||||
form.value.mm = ''
|
||||
handleFieldChange()
|
||||
}
|
||||
})
|
||||
}
|
||||
};
|
||||
|
||||
// 处理取消按钮点击
|
||||
const handleCancel = () => {
|
||||
formRef.value?.resetFields();
|
||||
visible.value = false
|
||||
if (form.value.zdmc = 'yhdh') {
|
||||
props.labPat.yhdh = JSON.parse(lastValue.value).yhdh
|
||||
}
|
||||
if (form.value.zdmc = 'hdys') {
|
||||
props.labPat.hdys = JSON.parse(lastValue.value).hdys
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
const handleRadioChange = () => {
|
||||
if (form.value.type == 4) {
|
||||
form.value.ybh1 = ''
|
||||
form.value.ybh2 = ''
|
||||
}
|
||||
}
|
||||
|
||||
// 医生校验
|
||||
const getJyysData = (data: any) => {
|
||||
if (data.userName == JSON.parse(lastValue.value).yhdh) return
|
||||
form.value.yhdh = data.userName;
|
||||
form.value.userName = data.nickName;
|
||||
form.value.zdmc = 'yhdh';
|
||||
nextTick(() => {
|
||||
visible.value = true
|
||||
})
|
||||
}
|
||||
const getHdysData = (data: any) => {
|
||||
if (data.userName == JSON.parse(lastValue.value).hdys) return
|
||||
form.value.yhdh = data.userName;
|
||||
form.value.userName = data.nickName;
|
||||
form.value.zdmc = 'hdys';
|
||||
nextTick(() => {
|
||||
visible.value = true
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 通用字段变化处理(失焦、回车触发)
|
||||
*/
|
||||
@ -160,13 +266,41 @@ const handleFieldChange = async () => {
|
||||
// 这里可以添加实际的更新逻辑,比如调用接口
|
||||
try {
|
||||
if (props.labPat.id) {
|
||||
updateLabPat({ ...props.labPatKey, column: changedField?.field, value: changedField?.newValue }).then((res: any) => {
|
||||
updateLabPat({ ...props.labPatKey, ...props.labPat }).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
emit('getLabList', newObj);
|
||||
if (sqhFlag.value) {
|
||||
sqhValue.value = ''
|
||||
sqhRef.value.focus()
|
||||
}
|
||||
|
||||
if (res.data) {
|
||||
emit('update:labPat', res.data)
|
||||
emit("changeStatus", props.labPat, sqhFlag.value);
|
||||
} else {
|
||||
emit("changeStatus", props.labPat, sqhFlag.value);
|
||||
}
|
||||
sqhFlag.value = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
changepatcolumn({ ...props.labPatKey, column: changedField?.field, value: changedField?.newValue })
|
||||
changepatcolumn({ ...props.labPatKey, column: changedField?.field, value: changedField?.newValue }).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
if (sqhFlag.value) {
|
||||
sqhValue.value = ''
|
||||
sqhRef.value.focus()
|
||||
}
|
||||
|
||||
if (res.data) {
|
||||
emit('update:labPat', res.data)
|
||||
emit("changeStatus", props.labPat, sqhFlag.value);
|
||||
} else {
|
||||
emit("changeStatus", props.labPat, sqhFlag.value);
|
||||
}
|
||||
|
||||
sqhFlag.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
@ -254,7 +388,7 @@ onMounted(() => {
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.labpat_box {
|
||||
height: calc(90vh - 95px);
|
||||
height: calc(90vh - 73px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
@ -331,6 +465,16 @@ onMounted(() => {
|
||||
padding-bottom: 0px;
|
||||
color: #08355E;
|
||||
font-size: 12px;
|
||||
|
||||
}
|
||||
|
||||
:deep(.el-form-item--default .el-form-item__label) {
|
||||
height: 27px !important;
|
||||
line-height: 27px !important;
|
||||
}
|
||||
|
||||
:deep(.el-form-item--default .el-form-item__content) {
|
||||
line-height: 27px !important;
|
||||
}
|
||||
|
||||
// pointer-events: none;
|
||||
@ -367,32 +511,36 @@ onMounted(() => {
|
||||
align-items: center;
|
||||
writing-mode: vertical-rl;
|
||||
font-weight: 500;
|
||||
font-size: 137px;
|
||||
font-size: 100px;
|
||||
|
||||
.text {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
// pointer-events: none;
|
||||
}
|
||||
|
||||
.cs_color {
|
||||
color: rgba(40, 189, 187, 0.44);
|
||||
color: rgba(40, 189, 187, 0.25);
|
||||
}
|
||||
|
||||
.sh_color {
|
||||
color: rgba(238, 8, 8, 0.44);
|
||||
color: rgba(238, 8, 8, 0.25);
|
||||
}
|
||||
|
||||
.cb_color {
|
||||
color: rgba(255, 165, 0, 0.44);
|
||||
color: rgba(255, 165, 0, 0.25);
|
||||
}
|
||||
|
||||
.eb_color {
|
||||
color: rgba(0, 128, 0, 0.44);
|
||||
color: rgba(0, 128, 0, 0.25);
|
||||
}
|
||||
|
||||
.sd_color {
|
||||
color: rgba(128, 128, 128, 0.44);
|
||||
color: rgba(128, 128, 128, 0.25);
|
||||
}
|
||||
|
||||
.default {
|
||||
color: rgba(40, 189, 187, 0.44);
|
||||
color: rgba(40, 189, 187, 0.25);
|
||||
}
|
||||
</style>
|
||||
@ -1,17 +1,19 @@
|
||||
<template>
|
||||
<div class="table-container">
|
||||
<CommonTable :table-data="labPatList" :loading="loading" :columns="tableColumns" :dict-data="dictData"
|
||||
:row-config="{ isHover: true, height: 30, keyField: 'ybh' }" @current-change="handleRowClick" size="small"
|
||||
class="mytable-style" ref="tableRef" :enable-column-drag="true" @column-drag-end="handleColumnDragEnd">
|
||||
:row-config="{ isHover: true, keyField: 'ybh' }" @current-change="handleRowClick" size="small"
|
||||
:cell-style="cellStyle" class="mytable-style" ref="tableRef" :enable-column-drag="true"
|
||||
@column-drag-end="handleColumnDragEnd">
|
||||
<!-- 完成状态列 -->
|
||||
<template #finish="{ row }">
|
||||
<span>{{ row.finish == 1 ? '✅' : '❌' }}</span>
|
||||
<svg-icon v-if="row.finish == 1" icon-class="lvgou" />
|
||||
<svg-icon v-else icon-class="hongcha" />
|
||||
</template>
|
||||
<template #jgbz="{ row }">
|
||||
<el-checkbox v-model="row.jgbz" true-value="2" disabled />
|
||||
<el-checkbox :model-value="row.jgbz == '2'" readonly />
|
||||
</template>
|
||||
<template #alarmflag="{ row }">
|
||||
<el-checkbox :model-value="row.alarmflag == '1'" disabled />
|
||||
<el-checkbox :model-value="row.alarmflag == '1'" readonly />
|
||||
</template>
|
||||
|
||||
<template #brly="{ row }">
|
||||
@ -28,15 +30,15 @@
|
||||
</template>
|
||||
|
||||
<template #autojgbz="{ row }">
|
||||
<el-checkbox :model-value="row.autojgbz === '1'" disabled />
|
||||
<el-checkbox :model-value="row.autojgbz === '1'" readonly />
|
||||
</template>
|
||||
|
||||
<template #dybz="{ row }">
|
||||
<el-checkbox :model-value="row.dybz === '1'" disabled />
|
||||
<el-checkbox :model-value="row.dybz === '1'" readonly />
|
||||
</template>
|
||||
|
||||
<template #fslx="{ row }">
|
||||
<el-checkbox :model-value="row.dybz === '1'" disabled />
|
||||
<el-checkbox :model-value="row.dybz === '1'" readonly />
|
||||
</template>
|
||||
|
||||
<template #yljg="{ row }">
|
||||
@ -47,7 +49,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { ref, nextTick } from 'vue'
|
||||
import { ref, nextTick, onMounted } from 'vue'
|
||||
import CommonTable from '@/components/vxeTable/index.vue'
|
||||
|
||||
const props = defineProps({
|
||||
@ -62,6 +64,10 @@ const props = defineProps({
|
||||
dictData: {
|
||||
type: Object,
|
||||
default: () => ({})
|
||||
},
|
||||
tableKey: {
|
||||
type: Object,
|
||||
default: () => { }
|
||||
}
|
||||
})
|
||||
|
||||
@ -69,27 +75,27 @@ const emits = defineEmits(['select'])
|
||||
|
||||
// 表格列配置
|
||||
const tableColumns = ref([
|
||||
{ field: 'finish', title: '完成', width: 50, align: 'center', slotName: 'finish' },
|
||||
{ field: 'jgbz', title: '审核', width: 50, align: 'center', slotName: 'jgbz' },
|
||||
{ field: 'alarmflag', title: '报警', width: 50, align: 'center', slotName: 'alarmflag' },
|
||||
{ field: 'brly', title: '类型', width: 50, align: 'center', slotName: 'brly' },
|
||||
{ field: 'autojgbz', title: '自审', width: 50, align: 'center', slotName: 'autojgbz' },
|
||||
{ field: 'ybh', title: '样本号', width: 80, align: 'center' },
|
||||
{ field: 'brxm', title: '病人姓名', width: 80, align: 'center' },
|
||||
{ field: 'brdh', title: '病历号', width: 120, align: 'center' },
|
||||
{ field: 'ch', title: '床号', width: 50, align: 'center' },
|
||||
{ field: 'brxb', title: '病人性别', width: 80, align: 'center', slotName: 'brxb' },
|
||||
{ field: 'nl', title: '年', width: 50, align: 'center' },
|
||||
{ field: 'nldw', title: '龄', width: 50, align: 'center', slotName: 'nldw' },
|
||||
{ field: 'ksdh', title: '科室', width: 100, align: 'center', slotName: 'ksdh' },
|
||||
{ field: 'yblx', title: '标本', width: 50, align: 'center' },
|
||||
{ field: 'dybz', title: '打印', width: 50, align: 'center', slotName: 'dybz' },
|
||||
{ field: 'fslx', title: '发送', width: 50, align: 'center', slotName: 'fslx' },
|
||||
{ field: 'shcs', title: '次数', width: 50, align: 'center' },
|
||||
{ field: 'sqh', title: '申请号/条码', width: 150, align: 'center' },
|
||||
{ field: 'jymd', title: '检验目的', width: 120, align: 'center' },
|
||||
{ field: 'yhdh', title: '检验医生', width: 80, align: 'center', },
|
||||
{ field: 'yljg', title: '送检医院', width: 120, align: 'center', slotName: 'yljg' }
|
||||
{ field: 'finish', title: '完', width: 35, align: 'center', slotName: 'finish', resizable: true },
|
||||
{ field: 'jgbz', title: '审', width: 40, align: 'center', slotName: 'jgbz', resizable: true },
|
||||
{ field: 'alarmflag', title: '警', width: 40, align: 'center', slotName: 'alarmflag', resizable: true },
|
||||
{ field: 'brly', title: '类型', width: 50, align: 'center', slotName: 'brly', resizable: true },
|
||||
{ field: 'autojgbz', title: '自', width: 40, align: 'center', slotName: 'autojgbz', resizable: true },
|
||||
{ field: 'ybh', title: '样本号', width: 80, align: 'center', resizable: true },
|
||||
{ field: 'brxm', title: '病人姓名', width: 80, align: 'center', resizable: true },
|
||||
{ field: 'brdh', title: '病历号', width: 120, align: 'center', resizable: true },
|
||||
{ field: 'ch', title: '床号', width: 50, align: 'center', resizable: true },
|
||||
{ field: 'brxb', title: '病人性别', width: 80, align: 'center', slotName: 'brxb', resizable: true },
|
||||
{ field: 'nl', title: '年', width: 50, align: 'center', resizable: true },
|
||||
{ field: 'nldw', title: '龄', width: 50, align: 'center', slotName: 'nldw', resizable: true },
|
||||
{ field: 'ksdh', title: '科室', width: 100, align: 'center', slotName: 'ksdh', resizable: true },
|
||||
{ field: 'yblx', title: '标本', width: 50, align: 'center', resizable: true },
|
||||
{ field: 'dybz', title: '印', width: 40, align: 'center', slotName: 'dybz', resizable: true },
|
||||
{ field: 'fslx', title: '发送', width: 50, align: 'center', slotName: 'fslx', resizable: true },
|
||||
{ field: 'shcs', title: '次数', width: 50, align: 'center', resizable: true },
|
||||
{ field: 'sqh', title: '申请号/条码', width: 150, align: 'center', resizable: true, },
|
||||
{ field: 'jymd', title: '检验目的', width: 120, align: 'center', resizable: true },
|
||||
{ field: 'yhdh', title: '检验医生', width: 80, align: 'center', resizable: true },
|
||||
{ field: 'yljg', title: '送检医院', width: 120, align: 'center', slotName: 'yljg', resizable: true, }
|
||||
])
|
||||
|
||||
// 更新列配置
|
||||
@ -113,11 +119,21 @@ const setCurrentRow = (row: any) => {
|
||||
const clearCurrentRow = () => {
|
||||
tableRef.value.clearCurrentRow()
|
||||
}
|
||||
|
||||
const cellStyle = ({ row, column }: any) => {
|
||||
if (column.title == "警" && row.alarmflag == 1) {
|
||||
return { background: '#f00 !important', color: '#FFF' };
|
||||
}
|
||||
}
|
||||
// 引入公共组件的字典格式化方法
|
||||
const formatDict = (v: string, dictType: string) => {
|
||||
return props.dictData[dictType]?.find((item: any) => item.value == v)?.label
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
const row = props.labPatList.find((item: any) => item.ybh == props.tableKey.ybh)
|
||||
if (!row) return
|
||||
setTimeout(() => { setCurrentRow(row) }, 100)
|
||||
})
|
||||
// 暴露公共方法
|
||||
defineExpose({
|
||||
setCurrentRow,
|
||||
@ -128,7 +144,7 @@ defineExpose({
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.table-container {
|
||||
height: calc(90vh - 250px);
|
||||
height: calc(90vh - 141px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
@ -15,26 +15,46 @@
|
||||
<el-button type="primary" plain icon="View" @click="previewHandle">预览</el-button>
|
||||
</div>
|
||||
</div>
|
||||
<el-table :data="tableData" border ref="tableRef" highlight-current-row class="custom-table-container" height="100%"
|
||||
@row-click="handleRowClick" :cell-style="cellStyle">
|
||||
<el-table-column type="index" prop="id" label="" width="45" :index="getRowIndex"></el-table-column>
|
||||
<el-table-column prop="xmdh" label="项目" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column prop="xmmc" label="名称" align="center" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column prop="csjg" label="结果" align="center">
|
||||
<template #default="scope">
|
||||
<el-input v-model="scope.row.csjg" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
||||
class="full-width-input" @change="handleCsjgEnter(scope.row)" @dblclick="handleInputFocus(scope.row)" />
|
||||
<span v-else>{{ scope.row.csjg }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="refs" label="参考值" align="center" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
<el-table-column prop="dw" label="单位" align="center" show-overflow-tooltip>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<CustomTable ref="tableRef" :data="tableData" :columns="columns" :config="tableConfig" :enable-column-drag="true"
|
||||
@row-click="handleRowClick" @column-drag-end="handleColumnDragEnd" class="custom-table-container">
|
||||
<template #index="{ row, $index }">
|
||||
<el-popover effect="dark" v-if="row.cp_modify == 1">
|
||||
<template #reference>
|
||||
<div style="width: 100%;">{{ $index + 1 }}</div>
|
||||
</template>
|
||||
<template #default>
|
||||
<el-row>
|
||||
<el-col>修改前结果:</el-col>
|
||||
<el-col>修改日期:</el-col>
|
||||
<el-col>修改人:</el-col>
|
||||
<el-col>上次审核时间:</el-col>
|
||||
<el-col>上次审核人:</el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
</el-popover>
|
||||
<span v-else>{{ $index + 1 }}</span>
|
||||
</template>
|
||||
|
||||
<template #csjg="{ row }">
|
||||
<el-input v-model="row.csjg" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
||||
class="full-width-input" @change="handleCsjgEnter(row)" @dblclick="handleInputFocus(row)" />
|
||||
<span v-else>{{ row.csjg }}</span>
|
||||
</template>
|
||||
<template #cp_compa="{ column, $index }">
|
||||
{{ lastjyrq }}
|
||||
</template>
|
||||
<template #od="{ row }">
|
||||
<el-input v-model="row.od" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small" class="full-width-input"
|
||||
@change="handleCsjgEnter(row)" />
|
||||
<span v-else>{{ row.od }}</span>
|
||||
</template>
|
||||
<template #cutoff="{ row }">
|
||||
<el-input v-model="row.cutoff" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
||||
class="full-width-input" @change="handleCsjgEnter(row)" />
|
||||
<span v-else>{{ row.cutoff }}</span>
|
||||
</template>
|
||||
</CustomTable>
|
||||
<!-- <div class="flex-between mt10">
|
||||
<div>
|
||||
<el-button class="btn_green" @click=" ">初报</el-button>
|
||||
@ -141,8 +161,11 @@ import { ElMessageBox, ElMessage } from "element-plus";
|
||||
import ItemInput from "@/views/liswork/work/components/ItemInput.vue";
|
||||
import projectsJg from "@/components/projectsjg/index.vue"
|
||||
import { classCom } from '@/utils/classCom'
|
||||
import CustomTable from '@/components/elTable/index.vue'
|
||||
import dayjs from 'dayjs';
|
||||
// 组件属性定义
|
||||
const props = defineProps({
|
||||
resultSysList: { type: Array, required: true },
|
||||
tableData: { type: Array, default: () => [] },
|
||||
tableKey: {
|
||||
type: Object, default: () => { }
|
||||
@ -153,11 +176,107 @@ const props = defineProps({
|
||||
// 解构props
|
||||
const { tableData, tableKey, } = toRefs(props);
|
||||
const selectedRows = ref([]);
|
||||
|
||||
const lastjyrq = ref('');
|
||||
watch(() => props.tableData, (newVal) => {
|
||||
selectedRows.value = [];
|
||||
if (newVal) {
|
||||
const index = newVal.findIndex((item) => item.cp_lastjyrq)
|
||||
if (index !== -1) {
|
||||
lastjyrq.value = dayjs(newVal[index].cp_lastjyrq).format('YY/MM/DD');
|
||||
} else {
|
||||
lastjyrq.value = '上次结果'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
watch(() => props.resultSysList, (newVal) => {
|
||||
// 深拷贝原避免直接修改响应式对象的引用
|
||||
const newColumns = JSON.parse(JSON.stringify(columns.value));
|
||||
newVal.forEach(v => {
|
||||
const column = newColumns.find(item => item.prop === v.zdmc);
|
||||
if (column) {
|
||||
column.visible = (v.kj === '1' ? true : false);
|
||||
}
|
||||
});
|
||||
columns.value = newColumns;
|
||||
// 强制表格重新渲染
|
||||
nextTick(() => {
|
||||
if (tableRef.value?.doLayout) {
|
||||
tableRef.value.doLayout();
|
||||
}
|
||||
});
|
||||
}, { deep: true });
|
||||
|
||||
|
||||
|
||||
const columns = ref([
|
||||
{ label: 'No', prop: 'index', width: 45, visible: true, slot: "index" },
|
||||
{ label: "复", prop: "redo_flag", width: 30, align: 'center', visible: true, },
|
||||
{ label: "项目", prop: "xmdh", width: 70, visible: true, },
|
||||
{ label: "名称", prop: "xmmc", width: 180, visible: true, },
|
||||
{ label: "结果", prop: "csjg", width: 80, visible: true, slot: "csjg" },
|
||||
{ label: "上次结果", prop: "cp_compa", width: 80, visible: true, headerSlot: "cp_compa" },
|
||||
{ label: "OD", prop: "od", width: 80, visible: true, slot: "od" },
|
||||
{ label: "CUTOFF", prop: "cutoff", width: 80, visible: true, slot: "cutoff" },
|
||||
{ label: "参考值", prop: "refs", width: 100, visible: true, },
|
||||
{ label: "单位", prop: "dw", width: 80, visible: true, },
|
||||
{ label: "子模块", prop: "bz1", width: 100, visible: true, },
|
||||
])
|
||||
|
||||
const cellStyle = ({ row, column, rowIndex, columnIndex }) => {
|
||||
if (column.label == "结果" && (row.alarm_flag ?? "").trim().length > 0) {
|
||||
return { background: '#f00 !important', color: '#FFF' };
|
||||
}
|
||||
if (column.label == "结果" && row.jgbz == "H") {
|
||||
return { background: '#ffc0c0 !important', color: '#606266' };
|
||||
}
|
||||
if (column.label == "结果" && row.jgbz == "L") {
|
||||
return { background: '#8080ff !important', color: '#fff' };
|
||||
}
|
||||
if (column.label == "结果" && row.jgbz == "P") {
|
||||
return { background: '#ffc0c0 !important', color: '#606266' };
|
||||
}
|
||||
if (column.label == "结果" && row.jgbz == "Q") {
|
||||
return { background: '#ffff80 !important', color: '#FFF' };
|
||||
}
|
||||
|
||||
|
||||
if (column.label == "上次结果" && (row.alarm_flag ?? "").trim().length > 0) {
|
||||
return { background: '#f00 !important', color: '#FFF' };
|
||||
}
|
||||
if (column.label == "上次结果" && row.cp_lastflag == "H") {
|
||||
return { background: '#ffc0c0 !important', color: '#606266' };
|
||||
}
|
||||
if (column.label == "上次结果" && row.cp_lastflag == "L") {
|
||||
return { background: '#8080ff !important', color: '#fff' };
|
||||
}
|
||||
if (column.label == "上次结果" && row.cp_lastflag == "P") {
|
||||
return { background: '#ffc0c0 !important', color: '#606266' };
|
||||
}
|
||||
if (column.label == "上次结果" && row.cp_lastflag == "Q") {
|
||||
return { background: '#ffff80 !important', color: '#FFF' };
|
||||
}
|
||||
|
||||
if (column.label == "复" && row.redo_flag == "1") {
|
||||
return { background: '#f00 !important', color: '#FFF' };
|
||||
}
|
||||
if (column.label == "No" && row.cp_modify == "1") {
|
||||
return { background: '#ff00ff !important', color: '#FFF' };
|
||||
}
|
||||
};
|
||||
|
||||
const tableConfig = ref({
|
||||
border: true, // 边框
|
||||
height: '100%', // 高度
|
||||
maxHeight: '77vh', // max高度
|
||||
highlightCurrentRow: true, // 高亮当前行
|
||||
cellStyle: cellStyle,
|
||||
})
|
||||
const handleColumnDragEnd = (data) => {
|
||||
columns.value = data.columns;
|
||||
};
|
||||
|
||||
|
||||
const warningForm = ref({
|
||||
userId: '',
|
||||
phone: '',
|
||||
@ -295,23 +414,7 @@ const handleCheck = (checkType) => {
|
||||
};
|
||||
|
||||
|
||||
const cellStyle = ({ row, column, rowIndex, columnIndex }) => {
|
||||
if (column.label == "结果" && (row.alarm_flag ?? "").trim().length > 0) {
|
||||
return { background: '#f00 !important', color: '#FFF' };
|
||||
}
|
||||
if (column.label == "结果" && row.jgbz == "H") {
|
||||
return { background: '#ffc0c0 !important', color: '#606266' };
|
||||
}
|
||||
if (column.label == "结果" && row.jgbz == "L") {
|
||||
return { background: '#8080ff !important', color: '#fff' };
|
||||
}
|
||||
if (column.label == "结果" && row.jgbz == "P") {
|
||||
return { background: '#ffc0c0 !important', color: '#606266' };
|
||||
}
|
||||
if (column.label == "结果" && row.jgbz == "Q") {
|
||||
return { background: '#ffff80 !important', color: '#606266' };
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const shHandleCheck = () => {
|
||||
check2({ ...props.tableKey, yhdh: 'admin' }).then(res => {
|
||||
@ -595,10 +698,6 @@ const addRowFromDict = async (rowData) => {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*/
|
||||
@ -683,7 +782,7 @@ watch(
|
||||
|
||||
<style scoped lang="scss">
|
||||
.result-container {
|
||||
height: calc(90vh - 95px);
|
||||
height: calc(90vh - 74px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
@ -695,14 +794,9 @@ watch(
|
||||
|
||||
.custom-table-container {
|
||||
flex: 1;
|
||||
|
||||
:deep(.el-table__cell) {
|
||||
padding: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
.full-width-input .el-input__inner {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
@ -5,8 +5,7 @@
|
||||
<div class="box-shadow">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" :rules="rules" class="compact-form">
|
||||
<el-form-item label="样本号:" prop="ybh">
|
||||
<el-input v-model="queryParams.ybh" clearable placeholder="样本编号" prefix-icon="Search"
|
||||
@keyup.enter="handleQuery" @clear="handleQuery" style="width:100px" />
|
||||
<el-input v-model="queryParams.ybh" placeholder="样本编号" @keyup.enter="handleQuery" style="width:160px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="日期:" prop="jyrq">
|
||||
<el-date-picker v-model="queryParams.jyrq" type="date" label-width="20px" placeholder="检验日期"
|
||||
@ -16,11 +15,11 @@
|
||||
<el-form-item label="部门:" prop="instrGroup">
|
||||
<SelectTable v-model:data="queryParams.instrGroup" :fields="instrGroupFields"
|
||||
:tableData="instrGroupOptions" label="zdmc" value="zddh" objKey="zddh" :border="true" width="140px"
|
||||
placeholder="请选择部门" @getDataValue="handleinstrGroupChange" />
|
||||
placeholder="请选择部门" @getDataValue="handleinstrGroupChange" :clearable="false" />
|
||||
</el-form-item>
|
||||
<el-form-item label="仪器:" prop="yq">
|
||||
<SelectTable v-model:data="queryParams.yq" :fields="yqFields" :tableData="instrOptions" label="yqmc"
|
||||
value="yq" objKey="yq" :border="true" width="140px" placeholder="请选择仪器"
|
||||
value="yq" objKey="yq" :border="true" width="140px" placeholder="请选择仪器" :clearable="false"
|
||||
@getDataValue="yqHandleChange" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item>
|
||||
@ -34,12 +33,13 @@
|
||||
</el-form>
|
||||
<el-row :gutter="5">
|
||||
<el-col :span="8">
|
||||
<LabPat ref="labPatRef" v-model:labPat="labPat" :labPatKey="queryParams" :dictData="dictData"
|
||||
:labSysList="labInputcolList" @getLabList="getLabList" />
|
||||
<LabPat ref="labPatRef" v-model:labPat="labPat" :labPatKey="queryParams" :labSysList="labInputcolList"
|
||||
@getLabList="getLabList" @changeStatus="changeStatus" />
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<LabResult ref="labResultRef" v-model:labPat="labPat" :tableData="labResuts" :tableKey="queryParams"
|
||||
@fetchLabResults="fetchLabResults" @changeStatus="changeStatus" @previewHandle="previewHandle" />
|
||||
:resultSysList="resultConfig" @fetchLabResults="fetchLabResults" @changeStatus="changeStatus"
|
||||
@previewHandle="previewHandle" />
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
@ -54,45 +54,23 @@
|
||||
</div>
|
||||
<div class="box-shadow">
|
||||
<template v-if="activeTab == 1">
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" :rules="rules" class="compact-form">
|
||||
<el-form-item label="筛选条件:" prop="ybh" label-width="90px">
|
||||
<el-input clearable placeholder="筛选条件" prefix-icon="Search" @keyup.enter="handleQuery"
|
||||
@clear="handleQuery" style="width:100px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="筛选条件:" prop="ybh" label-width="90px">
|
||||
<el-input clearable placeholder="筛选条件" prefix-icon="Search" @keyup.enter="handleQuery"
|
||||
@clear="handleQuery" style="width:100px" />
|
||||
</el-form-item>
|
||||
<el-form-item label="筛选条件:" prop="ybh" label-width="90px">
|
||||
<el-input clearable placeholder="筛选条件" prefix-icon="Search" @keyup.enter="handleQuery"
|
||||
@clear="handleQuery" style="width:100px" />
|
||||
</el-form-item>
|
||||
<!-- <el-form-item>
|
||||
<el-icon color="#3c80d9" size="20" style="margin-right: 10px;" class="cp">
|
||||
<Search />
|
||||
</el-icon>
|
||||
<el-icon color="#3c80d9" size="20" class="cp">
|
||||
<Menu />
|
||||
</el-icon>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
|
||||
<div class="flex-between mb10">
|
||||
<div>
|
||||
<el-button type="primary" icon="RefreshRight" @click="fetchlabPatList">刷新</el-button>
|
||||
<el-button type="danger" icon="delete">删除</el-button>
|
||||
<el-button type="danger" icon="delete" @click="delSampleHd">删除</el-button>
|
||||
<el-button class="btn_green" icon="top" @click="handlePrev">上一个</el-button>
|
||||
<el-button class="btn_green" icon="bottom" @click="handleNext">下一个</el-button>
|
||||
<el-select placeholder="所有" style="width: 150px" class="ml10">
|
||||
<el-option label="option" value="item.value" />
|
||||
</el-select>
|
||||
<el-input clearable @keyup.enter="handleQuery" @clear="handleQuery" style="width:100px" />
|
||||
</div>
|
||||
<div>
|
||||
<el-checkbox v-model="lbFlag"> 列表翻页 </el-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
<LabPatList ref="labPatListRef" :labPatList="labPatList" :loading="loading" @select="selectJob"
|
||||
:total="total" :dictData="dictData" @search="searchJobs" @page-change="pageChange" />
|
||||
:tableKey="queryParams" :dictData="dictData" @search="searchJobs" />
|
||||
|
||||
<div class="button-group">
|
||||
<div class="text1">样本总数:<span>{{ ybs }}</span></div>
|
||||
@ -151,7 +129,7 @@ import LabResult from './components/labresult.vue';
|
||||
import LabPatList from './components/labpatlist.vue';
|
||||
// @ts-ignore
|
||||
import { comDict } from '@/utils/dict'
|
||||
import { queryLabPatList, queryLabResults, loadDefault, queryLabPat, instrdconfig } from "@/api/liswork/work/LisWork";
|
||||
import { queryLabPatList, queryLabResults, loadDefault, queryLabPat, instrdconfig, delSample } from "@/api/liswork/work/LisWork";
|
||||
import { querylabInstrList, querylabInstrListByLisgroup } from "@/api/liswork/dict/LabInstr";
|
||||
import { getComDicts, queryComDictListService } from "@/api/liswork/dict/ComDict";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
@ -163,12 +141,11 @@ import Combination from './combination/index.vue'
|
||||
import Clinical from './clinical/index.vue'
|
||||
import Sample from './sample/index.vue'
|
||||
import { getNextNumber, getPreviousNumber } from "@/utils/getNextNumber";
|
||||
import { get, set } from '@vueuse/core';
|
||||
|
||||
const previewShow = ref(false);
|
||||
const lbFlag = ref(false);
|
||||
const queryParams = ref({
|
||||
pageNum: 1,
|
||||
pageSize: 2000,
|
||||
jyrq: '2025-08-19',
|
||||
yq: '46',
|
||||
ybh: '1',
|
||||
@ -279,6 +256,7 @@ const highlightRowIndex = ref(-1)
|
||||
const labPatListRef = ref()
|
||||
//样本列表点击切换样本信息,同步载入左边样本信息表单和中间结果表单
|
||||
const selectJob = (job: any) => {
|
||||
lastRow.value = job;
|
||||
// 复制选中的job数据到当前编辑状态
|
||||
// Object.assign(labPat.value, {...job})
|
||||
queryParams.value.jyrq = job.jyrq;
|
||||
@ -303,16 +281,21 @@ const fetchLabPat = () => {
|
||||
})
|
||||
}
|
||||
|
||||
const lastRow: any = ref({})
|
||||
|
||||
const handleQuery = () => {
|
||||
if (!labPatList.value.length) return
|
||||
// fetchlabPatList()
|
||||
if (!queryParams.value.ybh) {
|
||||
highlightRowIndex.value = -1;
|
||||
ElMessage.warning('请输入样本编号')
|
||||
queryParams.value.ybh = lastRow.value.ybh
|
||||
return;
|
||||
}
|
||||
// 查找匹配的行
|
||||
const matchedIndex = labPatList.value.findIndex((item: any) => item.ybh == queryParams.value.ybh);
|
||||
const row = labPatList.value[matchedIndex]
|
||||
|
||||
if (matchedIndex !== -1) {
|
||||
highlightRowIndex.value = matchedIndex;
|
||||
// 等待DOM更新后滚动到目标行
|
||||
@ -334,16 +317,49 @@ const handleCreate = () => {
|
||||
labPat.value = response.data;
|
||||
labPat.value.id = `temp_${Date.now()}_${Math.random().toString(36).substr(2, 8)}`;
|
||||
labResuts.value = []
|
||||
|
||||
labPatListRef.value?.clearCurrentRow();
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
const getLabList = (data: any) => {
|
||||
labPatList.value.push(data)
|
||||
setTimeout(() => { handleQuery(); }, 100)
|
||||
setTimeout(() => { handleQuery(); }, 10)
|
||||
getTotals()
|
||||
}
|
||||
|
||||
// 删除样本
|
||||
const delSampleHd = () => {
|
||||
if (lastRow.value.jgbz == '2') return ElMessage.warning('标本已审核,不能删除!')
|
||||
const data = {
|
||||
jyrq: lastRow.value.jyrq,
|
||||
yq: lastRow.value.yq.trim(),
|
||||
ybh: lastRow.value.ybh,
|
||||
}
|
||||
|
||||
ElMessageBox.confirm(
|
||||
`确定删除当前${lastRow.value.ybh}号标本?`,
|
||||
'提示',
|
||||
{
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
}
|
||||
)
|
||||
.then(() => {
|
||||
delSample(data).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
ElMessage.success('删除成功')
|
||||
labPatList.value = labPatList.value.filter((item: any) => item.ybh != lastRow.value.ybh)
|
||||
getTotals()
|
||||
// 删除跳下一个样本
|
||||
handleNext()
|
||||
}
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
|
||||
})
|
||||
}
|
||||
// 上一个样本
|
||||
const handlePrev = () => {
|
||||
@ -400,35 +416,41 @@ const handleNext = () => {
|
||||
|
||||
|
||||
// 改变样本列表中样本状态
|
||||
const changeStatus = (updatedPat: any) => {
|
||||
const changeStatus = (updatedPat: any, flag: boolean) => {
|
||||
console.log('flag==>', flag, updatedPat);
|
||||
queryLabPat(queryParams.value).then((response: any) => {
|
||||
if (response.code == 0) {
|
||||
labPat.value = response.data[0];
|
||||
const index = labPatList.value.findIndex((item: any) => item.ybh == updatedPat.ybh);
|
||||
if (index !== -1) {
|
||||
labPatList.value[index] = updatedPat;
|
||||
labPat.value = updatedPat;
|
||||
labPatList.value = labPatList.value.map((item, i) =>
|
||||
i === index ? { ...labPat.value } : item
|
||||
);
|
||||
highlightRowIndex.value = index;
|
||||
// 等待DOM更新后滚动到目标行
|
||||
|
||||
nextTick(() => {
|
||||
labPatListRef.value.setCurrentRow(updatedPat);
|
||||
labPatListRef.value.setCurrentRow(labPat.value);
|
||||
});
|
||||
selectJob(updatedPat)
|
||||
// selectJob(labPat.value);
|
||||
// 条码号输入后操作
|
||||
if (flag) {
|
||||
setTimeout(() => { handleNext() }, 10)
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
//样本列表检索时刷新列表信息
|
||||
const searchJobs = async (text: string, page: number, size: number) => {
|
||||
queryParams.value.pageNum = page
|
||||
queryParams.value.pageSize = size
|
||||
fetchlabPatList()
|
||||
}
|
||||
//样本列表翻页时刷新列表信息
|
||||
const pageChange = async (page: number, size: number) => {
|
||||
queryParams.value.pageNum = page
|
||||
queryParams.value.pageSize = size
|
||||
fetchlabPatList()
|
||||
}
|
||||
|
||||
|
||||
//载入样本列表(右边labpatlist.vue组件)
|
||||
const fetchlabPatList = () => {
|
||||
if (!queryParams.value.jyrq) {
|
||||
queryParams.value.jyrq = lastRow.value.jyrq
|
||||
return ElMessage.warning('请选择检验日期')
|
||||
}
|
||||
loading.value = true;
|
||||
queryLabPatList(queryParams.value).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
@ -437,15 +459,23 @@ const fetchlabPatList = () => {
|
||||
if (res.data.length > 0) {
|
||||
highlightRowIndex.value = 0;
|
||||
labPat.value = res.data[0];
|
||||
labPatListRef.value.setCurrentRow(res.data[0]);
|
||||
setTimeout(() => { labPatListRef.value.setCurrentRow(res.data[0]); }, 100)
|
||||
selectJob(res.data[0])
|
||||
ybs.value = res.data.length
|
||||
ws.value = res.data.filter((item: any) => item.jgbz != 2).length
|
||||
wjs.value = res.data.filter((item: any) => item.alarmflag == 1).length
|
||||
getTotals()
|
||||
} else {
|
||||
ybs.value = 0
|
||||
ws.value = 0
|
||||
wjs.value = 0
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
// 计算样本数
|
||||
const getTotals = () => {
|
||||
ybs.value = labPatList.value.length
|
||||
ws.value = labPatList.value.filter((item: any) => item.jgbz != 2).length
|
||||
wjs.value = labPatList.value.filter((item: any) => item.alarmflag == 1).length
|
||||
}
|
||||
|
||||
|
||||
loadinstrGroupOptions()
|
||||
@ -466,30 +496,32 @@ interface DictData {
|
||||
// 字典数据存储
|
||||
const dictData = ref<DictData>({});
|
||||
const labInputcolList = ref([])
|
||||
const resultConfig = ref([])
|
||||
// 获取参数配置
|
||||
const getSysList = () => {
|
||||
instrdconfig({ yq: queryParams.value.yq }).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
labInputcolList.value = res.data.labInputcolList.filter((item: any) => item.mrts != '年龄单位' || item.mrts != '!')
|
||||
resultConfig.value = res.data.ResultConfig
|
||||
}
|
||||
});
|
||||
}
|
||||
getSysList()
|
||||
onMounted(async () => {
|
||||
// // 加载病人来源字典
|
||||
// const dictRefs = await comDict('PT', 'AU', 'SX', 'DP', 'BT', 'SRD', 'HOS', 'ST');
|
||||
// 加载病人来源字典
|
||||
const dictRefs = await comDict('PT', 'AU', 'SX', 'DP', 'BT', 'SRD', 'HOS', 'ST');
|
||||
|
||||
// // 从 ref 中获取实际数据
|
||||
// dictData.value = {
|
||||
// PT: toRaw(dictRefs.PT.value) || [],
|
||||
// AU: toRaw(dictRefs.AU.value) || [],
|
||||
// SX: toRaw(dictRefs.SX.value) || [],
|
||||
// DP: toRaw(dictRefs.DP.value) || [],
|
||||
// BT: toRaw(dictRefs.BT.value) || [],
|
||||
// SRD: toRaw(dictRefs.SRD.value) || [],
|
||||
// HOS: toRaw(dictRefs.HOS.value) || [],
|
||||
// ST: toRaw(dictRefs.ST.value) || [],
|
||||
// };
|
||||
// 从 ref 中获取实际数据
|
||||
dictData.value = {
|
||||
PT: toRaw(dictRefs.PT.value) || [],
|
||||
AU: toRaw(dictRefs.AU.value) || [],
|
||||
SX: toRaw(dictRefs.SX.value) || [],
|
||||
DP: toRaw(dictRefs.DP.value) || [],
|
||||
BT: toRaw(dictRefs.BT.value) || [],
|
||||
SRD: toRaw(dictRefs.SRD.value) || [],
|
||||
HOS: toRaw(dictRefs.HOS.value) || [],
|
||||
ST: toRaw(dictRefs.ST.value) || [],
|
||||
};
|
||||
|
||||
});
|
||||
</script>
|
||||
@ -503,13 +535,17 @@ onMounted(async () => {
|
||||
.box-shadow {
|
||||
box-shadow: 2px 2px 4px 0px rgba(206, 217, 234, 0.7);
|
||||
border-radius: 12px;
|
||||
padding: 12px;
|
||||
padding: 10px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.compact-form {
|
||||
border-bottom: 1px solid #E1E9F7;
|
||||
margin-bottom: 16px;
|
||||
margin-bottom: 10px;
|
||||
|
||||
.el-form-item--default {
|
||||
margin-bottom: 5px !important;
|
||||
}
|
||||
}
|
||||
|
||||
.card-content {
|
||||
@ -524,7 +560,7 @@ onMounted(async () => {
|
||||
.tab-list {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 10px;
|
||||
margin-bottom: 1px;
|
||||
border: 1px solid #fff;
|
||||
border-radius: 12px;
|
||||
background-color: #fff;
|
||||
@ -563,36 +599,17 @@ onMounted(async () => {
|
||||
font-weight: 500;
|
||||
font-size: 16px;
|
||||
color: #28BDBB;
|
||||
margin-top: 20px;
|
||||
// margin-top: 20px;
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
width: 150px;
|
||||
height: 32px;
|
||||
background: rgba(40, 189, 187, 0.1);
|
||||
border-radius: 16px;
|
||||
border: 1px solid #28BDBB;
|
||||
vertical-align: middle;
|
||||
text-align: center;
|
||||
}
|
||||
span {}
|
||||
|
||||
|
||||
.text2 {
|
||||
color: #1F33FF;
|
||||
|
||||
span {
|
||||
background: rgba(212, 229, 255, 0.5);
|
||||
border: 1px solid #96B8D9;
|
||||
}
|
||||
}
|
||||
|
||||
.text3 {
|
||||
color: #FF0000;
|
||||
|
||||
span {
|
||||
background: rgba(255, 193, 193, 0.5);
|
||||
border: 1px solid #FF0000;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<el-row :gutter="5">
|
||||
<el-col :span="8">
|
||||
<el-table :data="tableData" style="width: 100%" @row-click="handleRowClick" highlight-current-row border
|
||||
height="80vh" show-overflow-tooltip>
|
||||
height="81vh" show-overflow-tooltip>
|
||||
<el-table-column prop="yq" label="仪器名称" align="center" width="120">
|
||||
<template #default="scope">
|
||||
{{ formatyq(scope.row.yq) }}
|
||||
@ -19,7 +19,7 @@
|
||||
</el-col>
|
||||
<el-col :span="16">
|
||||
<el-table :data="tableData" style="width: 100%" @row-click="handleRowClick" highlight-current-row border
|
||||
height="80vh">
|
||||
height="81vh">
|
||||
<el-table-column prop="xmmc" label="项目名称" fixed align="center" />
|
||||
<template v-for="(period) in periods" :key="period">
|
||||
<el-table-column :label="period" :prop="period" :width="150" align="center" />
|
||||
@ -77,7 +77,7 @@ const formatyq = (v: string) => {
|
||||
|
||||
<style scoped lang="scss">
|
||||
.others-box {
|
||||
height: 80vh;
|
||||
height: 81.5vh;
|
||||
|
||||
|
||||
:deep(.el-table__cell) {
|
||||
|
||||
@ -53,7 +53,7 @@
|
||||
<!-- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> -->
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="tableData" height="calc(100vh - 300px)">
|
||||
<el-table v-loading="loading" :data="tableData" height="calc(100vh - 300px)" show-overflow-tooltip>
|
||||
<!-- <el-table-column type="selection" width="50" align="center" /> -->
|
||||
<el-table-column label="仪器" align="center" prop="yq" />
|
||||
<el-table-column label="代号" align="center" prop="xxdh" />
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user