检查报告
This commit is contained in:
parent
da40033541
commit
13d8bc41b9
@ -54,9 +54,9 @@ export function fetchCodeReqmain(query?: Object) {
|
||||
// 查询报告单列表
|
||||
export function reportList(query?: Object) {
|
||||
return request({
|
||||
url: '/report/ReportList',
|
||||
method: 'post',
|
||||
data: query,
|
||||
url: '/transitLisReport/lisReportList',
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
// 查询报告Pdf预览
|
||||
@ -70,25 +70,25 @@ export function reportViewPdf(query?: Object) {
|
||||
// 查询报告Pdf打印
|
||||
export function reportPrintPdf(query?: Object) {
|
||||
return request({
|
||||
url: '/report/print',
|
||||
method: 'post',
|
||||
data: query,
|
||||
url: '/transitLisReport/printLisReport',
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
// 查询项目报告
|
||||
export function reportResult(query?: Object) {
|
||||
return request({
|
||||
url: '/report/result',
|
||||
method: 'post',
|
||||
data: query,
|
||||
url: '/transitLisReport/reportDetail',
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
// 查询微生物报告
|
||||
export function reportMedList(query?: Object) {
|
||||
return request({
|
||||
url: '/report/MedList',
|
||||
method: 'post',
|
||||
data: query,
|
||||
url: '/transitLisReport/reportDetailMed',
|
||||
method: 'get',
|
||||
params: query,
|
||||
});
|
||||
}
|
||||
// 查询微生物报告
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 6.7 KiB |
@ -32,7 +32,7 @@
|
||||
<el-tab-pane v-for="item in xmdlList" :key="item.dictCode" :label="item.dictName" :name="item.dictCode">
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<div style="height: calc(60% - 1.875rem)" class="mb5">
|
||||
<div style="height: calc(60% - 50px)" class="mb5">
|
||||
<CustomVxeTable :table-data="filterData" :columns="xmColumns" @cell-dblclick="dbRowclick"
|
||||
:cell-style="xmcellStyle" keyField='applyid'
|
||||
:scrollYConfig="{ enabled: true, rSize: 30, height: '100%', }" class="mytable-style">
|
||||
@ -48,9 +48,9 @@
|
||||
<template #newitemclass="{ row }">
|
||||
{{itemclassList.find((item) => item.itemclassCode == row.newitemclass)?.itemclassName}}
|
||||
</template>
|
||||
<template #newbarcode="{ row }">
|
||||
<!-- <template #newbarcode="{ row }">
|
||||
条码号({{ barcodes }}条)
|
||||
</template>
|
||||
</template> -->
|
||||
<template #itemclass_yblx="{ row }">
|
||||
<SelectTable v-model:data="row.itemclass_yblx" :tableData="dictData.BT" placeholder="请选择"
|
||||
:clearable="false" v-if="labpat.status < 20 || !labpat.status" value="label"
|
||||
@ -65,6 +65,7 @@
|
||||
</template>
|
||||
</CustomVxeTable>
|
||||
</div>
|
||||
<div class="yblxtext">共有{{ barcodes }}个样本类型</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
@ -270,14 +271,12 @@ const handleQuery = () => {
|
||||
)
|
||||
|
||||
labPatList.value = tableData.value
|
||||
if (!labpat.value.status) {
|
||||
const item = res.data.find(item => item.patId == labpat.value.patId)
|
||||
const item = res.data.find(item => item.patId == labpat.value.patId)
|
||||
|
||||
nextTick(() => {
|
||||
tableRef.value.setCurrentRow(item)
|
||||
handleRowClick({ row: item })
|
||||
})
|
||||
}
|
||||
nextTick(() => {
|
||||
tableRef.value.setCurrentRow(item)
|
||||
handleRowClick({ row: item })
|
||||
})
|
||||
})
|
||||
}
|
||||
// 获取病人代号查询信息
|
||||
@ -453,7 +452,7 @@ const sqXmColumns = ref([
|
||||
{ field: 'newitemclass', title: '类别', align: 'center', width: 100, slotName: 'newitemclass', resizable: true },
|
||||
{ field: 'newitemclass_tips', title: '采样提示', align: 'center', width: 80, resizable: true },
|
||||
{ field: 'itemname', title: '简称', align: 'center', resizable: true },
|
||||
{ field: 'newbarcode', title: '条码号', align: 'center', width: 120, resizable: true, headerSlot: 'newbarcode' },
|
||||
{ field: 'newbarcode', title: '条码号', align: 'center', width: 120, resizable: true, },
|
||||
{ field: 'amount', title: '单价', align: 'center', width: 60, resizable: true },
|
||||
{ field: 'itemclass_yblx', title: '样本', align: 'center', width: 80, slotName: 'itemclass_yblx', resizable: true },
|
||||
{ field: 'status', title: '状态', align: 'center', resizable: true, width: 80, slotName: 'status' },
|
||||
@ -484,12 +483,11 @@ const sqxmCzList = computed(() => {
|
||||
// 数据分组
|
||||
const { tableData } = useGroupTableData(
|
||||
sqXmList.value,
|
||||
'itemclass',
|
||||
'barcode',
|
||||
['newitemclass', 'newbarcode', 'newitemclass_tips'],
|
||||
'orderDate',
|
||||
['itemclass', 'barcode', 'itemclass_tips'],
|
||||
)
|
||||
|
||||
return tableData.value
|
||||
})
|
||||
|
||||
@ -562,6 +560,12 @@ const getXmList = () => {
|
||||
getXmItemInfo().then(res => {
|
||||
processedTableData.value = processTableData(res.data);
|
||||
filterData.value = [...processedTableData.value]
|
||||
|
||||
listregdict({ dictType: 'CLASS' }).then(response => {
|
||||
xmdlList.value = response.rows;
|
||||
activeName.value = xmdlList.value.length > 0 ? xmdlList.value[0].dictCode : '';
|
||||
handleTabClick({ paneName: activeName.value });
|
||||
});
|
||||
})
|
||||
}
|
||||
|
||||
@ -569,14 +573,10 @@ const itemclassList = ref([]) // 容器类别
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
changeDays(3)
|
||||
getXmList()
|
||||
changeDays(3)
|
||||
getDictData('PT', 'SX', 'AU', 'ZT', 'ZJLX', 'DEPT', 'DOCTOR', 'SLZQ', 'BT', 'SQDZT')
|
||||
listregdict({ dictType: 'CLASS' }).then(response => {
|
||||
xmdlList.value = response.rows;
|
||||
activeName.value = xmdlList.value.length > 0 ? xmdlList.value[0].dictCode : '';
|
||||
handleTabClick({ paneName: activeName.value });
|
||||
});
|
||||
|
||||
listitemclass({ pageSize: 9999, pageNum: 1 }).then(response => {
|
||||
itemclassList.value = response.rows;
|
||||
})
|
||||
@ -643,6 +643,13 @@ onMounted(() => {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.yblxtext {
|
||||
font-style: 15px;
|
||||
color: #123d64;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 14px;
|
||||
color: #000;
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="用户代号:" prop="username">
|
||||
<el-form-item label="用户工号:" prop="username">
|
||||
<el-input v-model="loginForm.username" type="text" size="large" auto-complete="off" placeholder="账号">
|
||||
<template #prefix>
|
||||
<svg-icon icon-class="user" class="el-input__icon input-icon" />
|
||||
|
||||
@ -96,7 +96,6 @@ const queryParams = ref({
|
||||
pageNum: 1,
|
||||
srcHospName: userStore.sysLoginParam.loginYLJGName,
|
||||
times: [],
|
||||
status: 50
|
||||
})
|
||||
const tableData = ref([])
|
||||
const columns = ref([
|
||||
|
||||
@ -40,7 +40,11 @@
|
||||
:cell-style="tableCellStyle" height="calc(100vh - 250px)">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="序号" align="center" prop="itemclassId" />
|
||||
<el-table-column label="项目大类" align="center" prop="classid" />
|
||||
<el-table-column label="项目大类" align="center" prop="classid">
|
||||
<template #default="scope">
|
||||
{{xmdlList.find(item => item.dictCode == scope.row.classid)?.dictName}}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="项目类别编码" align="center" prop="itemclassCode" />
|
||||
<el-table-column label="项目类别名称" align="center" prop="itemclassName" show-overflow-tooltip />
|
||||
<el-table-column label="试管名称" align="center" prop="itemclassTips" show-overflow-tooltip />
|
||||
@ -49,7 +53,7 @@
|
||||
<el-table-column label="打印次数" align="center" prop="itemclassPrintcnt" />
|
||||
<el-table-column label="抗凝样本" width="80" align="center" prop="itemclassKn">
|
||||
<template #default="scope">
|
||||
<el-checkbox :checked="scope.row.itemclassKn === 1 || scope.row.itemclassKn === '1'" disabled />
|
||||
<el-checkbox :model-value="scope.row.itemclassKn == 1" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="排序" align="center" prop="itemclassSort" />
|
||||
@ -76,7 +80,7 @@
|
||||
|
||||
<!-- 添加或修改项目类别对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="500px" append-to-body>
|
||||
<el-form ref="postRef" :model="form" :rules="rules" label-width="80px">
|
||||
<el-form ref="postRef" :model="form" :rules="rules" label-width="120px">
|
||||
<el-form-item label="项目大类" prop="classid">
|
||||
<el-select v-model="form.classid" placeholder="请选择项目大类" clearable style="width: 100%">
|
||||
<el-option v-for="dict in xmdlList" :key="dict.dictCode" :label="dict.dictName" :value="dict.dictCode" />
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<div class="left_box">
|
||||
<el-input v-model="leftSearchValue" placeholder="请输入类别名称或代号" class="mb10" />
|
||||
<el-table :data="filteredLeftTableData" @row-click="handleLeftRowClick" highlight-current-row border
|
||||
:cell-style="cellStyle" height="80vh" style="width: 100%;">
|
||||
showOverflowTooltip :cell-style="cellStyle" height="80vh" style="width: 100%;">
|
||||
<el-table-column prop="itemclassCode" label="分单类别代号" width="110" />
|
||||
<el-table-column prop="itemclassName" label="类别名称" />
|
||||
</el-table>
|
||||
@ -14,7 +14,7 @@
|
||||
<div class="m_box">
|
||||
<el-input v-model="middleSearchValue" placeholder="请输入项目名称或代号" class="mb10" />
|
||||
<el-table :data="filteredMiddleTableData" @row-dblclick="handleMiddleRowDblClick" highlight-current-row
|
||||
style="width: 100%;" height="80vh" border>
|
||||
showOverflowTooltip style="width: 100%;" height="80vh" border>
|
||||
<el-table-column prop="itemcode" label="项目代号" width="100" />
|
||||
<el-table-column prop="itemname" label="当前类别包含门诊项目" />
|
||||
</el-table>
|
||||
@ -36,7 +36,7 @@
|
||||
|
||||
|
||||
<el-table :data="filteredRightTableData" @row-dblclick="handleRightRowDblClick" highlight-current-row
|
||||
height="80vh" border style="width: 100%;">
|
||||
showOverflowTooltip height="80vh" border style="width: 100%;">
|
||||
<el-table-column prop="itemclass" label="类别" width="100">
|
||||
<template #default="{ row }">
|
||||
{{leftTableData.find(item => item.itemclassCode === row.itemclass)?.itemclassName}}
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange"
|
||||
<el-table v-loading="loading" :data="postList" @selection-change="handleSelectionChange" showOverflowTooltip
|
||||
:cell-style="tableCellStyle" height="calc(100vh - 250px)">
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<el-table-column label="类别" align="center" prop="hospital_type" width="100">
|
||||
@ -168,7 +168,9 @@ function cancel() {
|
||||
}
|
||||
/** 表单重置 */
|
||||
function reset() {
|
||||
form.value = {};
|
||||
form.value = {
|
||||
status: "0"
|
||||
};
|
||||
proxy.resetForm("postRef");
|
||||
}
|
||||
/** 搜索按钮操作 */
|
||||
|
||||
@ -72,62 +72,64 @@
|
||||
</el-form>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="16" class="right-table">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="16">
|
||||
<el-row :gutter="10" class="mb8 mt10">
|
||||
<el-col :span="1.5">
|
||||
<!-- <el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Edit" :size="aotuSize" @click="selectStatusRows">勾选所有未打印</el-button>
|
||||
</el-col>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="primary" plain icon="Upload" :size="aotuSize" @click="printPdf">打印报告</el-button>
|
||||
<el-button type="primary" plain icon="Upload" :loading="printLoading" :size="aotuSize"
|
||||
@click="printPdf">打印报告</el-button>
|
||||
</el-col>
|
||||
|
||||
<!-- <right-toolbar v-model:showSearch="showSearch" @updateColumns="updateColumns" @queryTable="handleQuery"
|
||||
:columns="columns"></right-toolbar> -->
|
||||
</el-row>
|
||||
|
||||
<CustomTable ref="tableRefs" :data="tableData" :columns="columns" :config="tableConfig" :loading="loading"
|
||||
@selection-change="selectionChange" @row-click="rowHandle" :enableColumnDrag="true"
|
||||
@column-drag-end="handleColumnDragEnd">
|
||||
<template #dybz="{ row }">
|
||||
<svg-icon v-if="row.dybz == 1" icon-class="lvgou" />
|
||||
</template>
|
||||
<template #srcHospName="{ row }">
|
||||
武汉市汉阳区江堤街社区卫生服务中心
|
||||
</template>
|
||||
<template #alarmflag="{ row }">
|
||||
{{ row.alarmflag == 1 ? '危' : '' }}
|
||||
</template>
|
||||
<template #jzbz="{ row }">
|
||||
{{ row.jzbz == 1 ? '急' : '' }}
|
||||
</template>
|
||||
</CustomTable>
|
||||
<div>
|
||||
<CustomTable ref="tableRefs" :data="tableData" :columns="columns" :config="tableConfig" :loading="loading"
|
||||
@row-click="rowHandle" :enableColumnDrag="true" @column-drag-end="handleColumnDragEnd">
|
||||
<template #dybz="{ row }">
|
||||
<svg-icon v-if="row.dybz == 1" icon-class="lvgou" />
|
||||
</template>
|
||||
<template #alarmflag="{ row }">
|
||||
{{ row.alarmflag == 1 ? '危' : '' }}
|
||||
</template>
|
||||
<template #jzbz="{ row }">
|
||||
{{ row.jzbz == 1 ? '急' : '' }}
|
||||
</template>
|
||||
</CustomTable>
|
||||
</div>
|
||||
<div class="mt5 mb5">
|
||||
<el-pagination v-model:current-page="queryParams.pageNum" v-model:page-size="queryParams.pageSize"
|
||||
:size="aotuSize" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
|
||||
:total="total" @size-change="handleSizeChange" @current-change="handleCurrentChange" />
|
||||
</div>
|
||||
|
||||
</el-col>
|
||||
<el-col :span="8" class="right-table">
|
||||
<!-- <div class="title">检验结果</div> -->
|
||||
<div class="mb8 mt10">
|
||||
<el-button type="primary" plain :size="aotuSize" @click="openDB">对比历史</el-button>
|
||||
<!-- <el-button type="primary" plain :size="aotuSize" @click="openDB">对比历史</el-button> -->
|
||||
<el-select class="ml10" placeholder="请选择复制" style="width: 140px" @change="copyData" :size="aotuSize">
|
||||
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
||||
</el-select>
|
||||
<!-- <el-button type="primary">知识库</el-button> -->
|
||||
</div>
|
||||
|
||||
<CustomTable :data="rightTableData" :columns="rightColumns" :config="rightTableConfig" @row-click="xmrowHandle"
|
||||
ref="rightTableRef">
|
||||
<template #jgbz="{ row }">
|
||||
{{ formatJgbz(row.jgbz) }}
|
||||
</template>
|
||||
</CustomTable>
|
||||
|
||||
<div>
|
||||
<CustomTable :data="rightTableData" :columns="rightColumns" :config="rightTableConfig"
|
||||
@row-click="xmrowHandle" ref="rightTableRef">
|
||||
<template #jgbz="{ row }">
|
||||
{{ formatJgbz(row.jgbz) }}
|
||||
</template>
|
||||
</CustomTable>
|
||||
</div>
|
||||
<div class="mt10" v-if="bottomTableData.length > 0"></div>
|
||||
<CustomTable v-if="bottomTableData.length > 0" :data="bottomTableData" :columns="bottomColumns"
|
||||
:config="bottomTableConfig">
|
||||
</CustomTable>
|
||||
|
||||
<div>
|
||||
<CustomTable v-if="bottomTableData.length > 0" :data="bottomTableData" :columns="bottomColumns"
|
||||
@row-click="xmrowBottomHandle" :config="bottomTableConfig">
|
||||
</CustomTable>
|
||||
</div>
|
||||
<div v-if="bottomTableData.length > 0" class="expert-comment" :title="expertComment">
|
||||
专家评语:{{ expertComment }}
|
||||
</div>
|
||||
@ -170,24 +172,15 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
import CustomTable from '@/components/elTable/index.vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { reportList, reportPrintPdf, reportResult, reportMedList, reportFsresult } from '@/api/checkCode/index'
|
||||
import dayjs from 'dayjs';
|
||||
import SelectTable from '@/components/SelectTable/index.vue';
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
import { classCom } from '@/utils/classCom'
|
||||
import * as echarts from 'echarts';
|
||||
//@ts-ignore
|
||||
import { comDict } from '@/utils/dict'
|
||||
import { usePrintStore } from '@/store/modules/printStore'
|
||||
//@ts-ignore
|
||||
import useUserStore from '@/store/modules/user'
|
||||
import { useRoute } from 'vue-router'
|
||||
|
||||
const aotuSize = classCom.useAutoSize();
|
||||
const route = useRoute()
|
||||
|
||||
const userStore = useUserStore()
|
||||
const compactForm = ref<HTMLElement | null>(null);
|
||||
const heightForm = ref(90);
|
||||
const dialogVisible = ref(false)
|
||||
@ -210,14 +203,15 @@ interface QueryParams {
|
||||
ch: string,
|
||||
dybz: string,
|
||||
sqh: string,
|
||||
userid: string
|
||||
pageNum: number,
|
||||
pageSize: number
|
||||
}
|
||||
|
||||
// 提交表单数据
|
||||
const queryParams = reactive<QueryParams>({
|
||||
times: ['2025-08-19', '2025-08-19'],
|
||||
// ksdh: '0203',
|
||||
ksdh: '0210',
|
||||
ksdh: '',
|
||||
brlyname: '',
|
||||
sqh: '25080109476',
|
||||
alarmflag: false,
|
||||
@ -226,24 +220,13 @@ const queryParams = reactive<QueryParams>({
|
||||
brdh: '',
|
||||
ch: '',
|
||||
dybz: '',
|
||||
userid: ''
|
||||
pageNum: 1,
|
||||
pageSize: 20
|
||||
});
|
||||
// 获取当前日期(当天)
|
||||
const today = dayjs();
|
||||
|
||||
// 计算前6天的日期(当天 + 前6天 = 7天)
|
||||
const startOfWeek = today.subtract(6, 'day');
|
||||
|
||||
const startDate = route.query.startdate ? String(route.query.startdate) : startOfWeek.format('YYYY-MM-DD');
|
||||
const endDate = route.query.endate ? String(route.query.endate) : today.format('YYYY-MM-DD');
|
||||
|
||||
// queryParams.times = [startDate, endDate];2025-08-19&endate=2025-08-19
|
||||
queryParams.times = ['2025-08-19', '2025-08-19'];
|
||||
queryParams.ksdh = (route.query.deptcode as string) || '0210';
|
||||
queryParams.userid = (route.query.userid as string) || '00910';
|
||||
queryParams.brdh = (route.query.brdh as string) || '';
|
||||
|
||||
const total = ref(0);
|
||||
|
||||
const printLoading = ref(false);
|
||||
const single = ref(true);
|
||||
const multiple = ref(true);
|
||||
const alarmflag = ref()
|
||||
@ -293,6 +276,15 @@ const handleQuery = async () => {
|
||||
if (!valid) return false;
|
||||
getList()
|
||||
}
|
||||
|
||||
const handleSizeChange = (val: number) => {
|
||||
queryParams.pageSize = val
|
||||
handleQuery()
|
||||
}
|
||||
const handleCurrentChange = (val: number) => {
|
||||
queryParams.pageNum = val
|
||||
handleQuery()
|
||||
}
|
||||
// 重置
|
||||
const resetQuery = () => {
|
||||
queryRef.value?.resetFields();
|
||||
@ -307,7 +299,7 @@ const tableData = ref([])
|
||||
// 配置项
|
||||
const columns = ref([
|
||||
{ type: 'selection', visible: true, align: 'center', width: 30, label: '多选框' },
|
||||
{ prop: 'srcHospName', label: '委托机构', align: 'center', visible: true, slot: 'srcHospName', width: 200 },
|
||||
{ prop: 'yljg', label: '委托机构', align: 'center', visible: true, width: 200 },
|
||||
{ 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 },
|
||||
@ -321,12 +313,11 @@ const columns = ref([
|
||||
{ prop: 'confirmtime', label: '报告时间', align: 'center', visible: true, sortable: true, width: 150 },
|
||||
{ prop: 'sjysname', label: '送检医生', align: 'center', visible: true, width: 80 },
|
||||
{ prop: 'brlyname', label: '病人类型', align: 'center', visible: true, width: 80 },
|
||||
{ prop: 'yljg', label: '医疗机构', align: 'center', visible: true, width: 150 },
|
||||
{ prop: 'jyrqname', label: '检验日期', align: 'center', visible: true, width: 100 },
|
||||
{ prop: 'jyrq', label: '检验日期', align: 'center', visible: true, width: 100 },
|
||||
{ prop: 'ybh', label: '样本号', align: 'center', visible: true, width: 60 },
|
||||
{ prop: 'yqmc', label: '仪器名称', align: 'center', visible: true, width: 150 },
|
||||
{ prop: 'yqdl', label: '仪器', align: 'center', visible: true, width: 100 },
|
||||
{ prop: 'yljg', label: '检验机构', align: 'center', visible: true, width: 150 },
|
||||
// { prop: 'yqdl', label: '仪器', align: 'center', visible: true, width: 100 },
|
||||
// { prop: 'yljg', label: '检验机构', align: 'center', visible: true, width: 150 },
|
||||
])
|
||||
|
||||
const selectionChange = (selection: any) => {
|
||||
@ -338,7 +329,7 @@ const selectionChange = (selection: any) => {
|
||||
const rightTableRef = ref()
|
||||
const rowHandle = (row: any) => {
|
||||
console.log('row==>', row);
|
||||
if (row.yqdl == '细菌仪') {
|
||||
if (row.yqdl == 2) {
|
||||
rightColumns.value[1].visible = false
|
||||
rightColumns.value[2].visible = true
|
||||
rightColumns.value[4].visible = false
|
||||
@ -362,12 +353,8 @@ const rowHandle = (row: any) => {
|
||||
]
|
||||
|
||||
Info.value = row
|
||||
const data = {
|
||||
jyrq: row.jyrq,
|
||||
yq: row.yq,
|
||||
ybh: row.ybh,
|
||||
}
|
||||
reportResult(data).then((res: any) => {
|
||||
|
||||
reportResult({ bgdh: row.bgdh }).then((res) => {
|
||||
if (res.code == 0) {
|
||||
rightTableData.value = res.data
|
||||
nextTick(() => {
|
||||
@ -384,23 +371,14 @@ const handleColumnDragEnd = (newColumns: any) => {
|
||||
|
||||
// 打印单张Pdf
|
||||
const printPdf = () => {
|
||||
const printStore = usePrintStore();
|
||||
const merge = rows.value.map((item: any) => { return `${item.jyrqname.replace(/-/g, '')}_${item.yq.trim()}_${item.ybh}` })
|
||||
// const merge = [
|
||||
// "20250819_11_1",
|
||||
// "20250819_11_10",
|
||||
// "20250819_11_11"
|
||||
// ]
|
||||
reportPrintPdf(merge).then((res: any) => {
|
||||
printLoading.value = true
|
||||
reportPrintPdf({ bgdh: Info.value.bgdh }).then((res) => {
|
||||
if (res.code == 0) {
|
||||
if (!res.data) return ElMessage.warning('未找到打印文件')
|
||||
classCom.printBase64PDF(res.data)
|
||||
// if (printStore.isConnected) {
|
||||
// HiprintPrinter.silentPrint([res.data])
|
||||
// } else {
|
||||
// classCom.printBase64PDF(res.data)
|
||||
// }
|
||||
if (!res.data.report) return ElMessage.warning('未找到打印文件')
|
||||
classCom.printBase64PDF(res.data.report)
|
||||
}
|
||||
}).finally(() => {
|
||||
printLoading.value = false
|
||||
})
|
||||
}
|
||||
|
||||
@ -533,7 +511,7 @@ const rightTableConfig = ref(
|
||||
{
|
||||
// stripe: true, // 斑马纹
|
||||
border: true, // 边框
|
||||
height: '25vh', // 高度
|
||||
height: '60vh', // 高度
|
||||
highlightCurrentRow: true, // 高亮当前行
|
||||
cellStyle: rightCellStyleHd
|
||||
}
|
||||
@ -556,24 +534,23 @@ const xmRow = ref<any>({})
|
||||
// 查询抗生素
|
||||
const xmrowHandle = (row: any) => {
|
||||
xmRow.value = row
|
||||
expertComment.value = row.textresult
|
||||
|
||||
const data = {
|
||||
jyrq: Info.value.jyrq,
|
||||
yq: Info.value.yq,
|
||||
ybh: Info.value.ybh,
|
||||
bgdh: row.bgdh,
|
||||
xmdh: row.xmdh
|
||||
}
|
||||
reportMedList(data).then((res: any) => {
|
||||
if (res.code == 200) {
|
||||
bottomTableData.value = res.rows
|
||||
if (res.rows.length > 0) {
|
||||
if (res.code == 0) {
|
||||
bottomTableData.value = res.data
|
||||
expertComment.value = res.data[0]?.txtresult;
|
||||
if (res.data.length > 0) {
|
||||
nextTick(() => {
|
||||
rightTableConfig.value.height = `calc(32vh - ${heightForm.value}px)`
|
||||
rightTableRef.value?.doLayout && rightTableRef.value.doLayout();
|
||||
});
|
||||
} else {
|
||||
nextTick(() => {
|
||||
rightTableConfig.value.height = `calc(74vh - ${heightForm.value}px)`
|
||||
rightTableConfig.value.height = '60vh'
|
||||
rightTableRef.value?.doLayout && rightTableRef.value.doLayout();
|
||||
});
|
||||
}
|
||||
@ -698,7 +675,7 @@ const getEcharts = (data: any) => {
|
||||
);
|
||||
const Intance = echarts.init(myEcharts.value);
|
||||
const xData = dateKeys;
|
||||
let seriesData = []
|
||||
let seriesData: string[] = []
|
||||
seriesData = dateKeys.map(item => data[item]);
|
||||
|
||||
const option = {
|
||||
@ -834,12 +811,10 @@ const dictData = ref<DictData>({});
|
||||
|
||||
onMounted(async () => {
|
||||
// 初始化3天区间(今天-前两天)
|
||||
// const end = dayjs().format('YYYY-MM-DD HH:mm:ss');
|
||||
// const start = dayjs().subtract(1, 'day').format('YYYY-MM-DD HH:mm:ss'); //add 时间往后
|
||||
// queryParams.times = [start, end];
|
||||
const end = dayjs().format('YYYY-MM-DD');
|
||||
const start = dayjs().subtract(2, 'day').format('YYYY-MM-DD'); //add 时间往后
|
||||
queryParams.times = [start, end];
|
||||
// console.log(queryParams.times);
|
||||
// 进入页面单点登录
|
||||
userStore.loginAnonymous({ name: 'admin' })
|
||||
getList()
|
||||
adjustTableHeight();
|
||||
|
||||
@ -855,8 +830,6 @@ onMounted(async () => {
|
||||
|
||||
|
||||
const getList = () => {
|
||||
if (!queryParams.ksdh) return ElMessage.error('科室代号不能为空');
|
||||
if (!queryParams.userid) return ElMessage.error('用户userid不能为空');
|
||||
const data = {
|
||||
alarmflag: alarmflag.value,
|
||||
jzbz: jzbz.value,
|
||||
@ -866,11 +839,10 @@ const getList = () => {
|
||||
brxm: queryParams.brxm,
|
||||
brdh: queryParams.brdh,
|
||||
ch: queryParams.ch,
|
||||
userid: queryParams.userid,
|
||||
st: '',
|
||||
et: '',
|
||||
yljg: 1,
|
||||
|
||||
pageSize: queryParams.pageSize || 10,
|
||||
pageNum: queryParams.pageNum || 1
|
||||
}
|
||||
if (queryParams.times && queryParams.times.length) {
|
||||
data.st = queryParams.times[0]
|
||||
@ -879,13 +851,14 @@ const getList = () => {
|
||||
return ElMessage.error('日期时间段不能为空');
|
||||
}
|
||||
loading.value = true
|
||||
reportList(data).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
reportList(data).then((res) => {
|
||||
if (res.code == 200) {
|
||||
loading.value = false
|
||||
tableData.value = res.data
|
||||
if (res.data.length > 0) {
|
||||
tableRefs.value.setCurrentRow(res.data[0])
|
||||
rowHandle(res.data[0])
|
||||
tableData.value = res.rows
|
||||
total.value = res.total
|
||||
if (res.rows.length > 0) {
|
||||
tableRefs.value.setCurrentRow(res.rows[0])
|
||||
rowHandle(res.rows[0])
|
||||
} else {
|
||||
rightTableData.value = []
|
||||
bottomTableData.value = []
|
||||
@ -906,7 +879,7 @@ function adjustTableHeight() {
|
||||
heightForm.value = compactForm.value.offsetHeight;
|
||||
|
||||
nextTick(() => {
|
||||
tableConfig.value.height = `calc(74vh - ${heightForm.value}px)`
|
||||
tableConfig.value.height = `calc(74vh - ${heightForm.value + 50}px)`
|
||||
tableRefs.value?.doLayout && tableRefs.value.doLayout();
|
||||
});
|
||||
|
||||
|
||||
@ -20,8 +20,8 @@
|
||||
<pane size="84">
|
||||
<el-col>
|
||||
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
|
||||
<el-form-item label="用户代号" prop="userName">
|
||||
<el-input v-model="queryParams.userName" placeholder="请输入用户代号" clearable style="width: 240px"
|
||||
<el-form-item label="用户工号" prop="userName">
|
||||
<el-input v-model="queryParams.userName" placeholder="请输入用户工号" clearable style="width: 240px"
|
||||
@keyup.enter="handleQuery" />
|
||||
</el-form-item>
|
||||
<el-form-item label="手机号码" prop="phonenumber">
|
||||
@ -72,9 +72,9 @@
|
||||
height="calc(100vh - 350px)">
|
||||
<el-table-column type="selection" width="50" align="center" />
|
||||
<el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns.userId.visible" />
|
||||
<el-table-column label="用户代号" align="center" key="userName" prop="userName"
|
||||
<el-table-column label="用户工号" align="center" key="userName" prop="userName"
|
||||
v-if="columns.userName.visible" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="用户昵称" align="center" key="nickName" prop="nickName"
|
||||
<el-table-column label="用户姓名" align="center" key="nickName" prop="nickName"
|
||||
v-if="columns.nickName.visible" :show-overflow-tooltip="true" />
|
||||
<el-table-column label="部门" align="center" key="deptName" prop="dept.deptName"
|
||||
v-if="columns.deptName.visible" :show-overflow-tooltip="true" />
|
||||
@ -125,8 +125,8 @@
|
||||
<el-form :model="form" :rules="rules" ref="userRef" label-width="80px">
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="用户昵称" prop="nickName">
|
||||
<el-input v-model="form.nickName" placeholder="请输入用户昵称" maxlength="30" />
|
||||
<el-form-item label="用户姓名" prop="nickName">
|
||||
<el-input v-model="form.nickName" placeholder="请输入用户姓名" maxlength="30" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@ -151,8 +151,8 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item v-if="form.userId == undefined" label="用户代号" prop="userName">
|
||||
<el-input v-model="form.userName" placeholder="请输入用户代号" maxlength="30" />
|
||||
<el-form-item v-if="form.userId == undefined" label="用户工号" prop="userName">
|
||||
<el-input v-model="form.userName" placeholder="请输入用户工号" maxlength="30" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
@ -292,8 +292,8 @@ const upload = reactive({
|
||||
// 列显隐信息
|
||||
const columns = ref<Record<string, TableShowColumns>>({
|
||||
userId: { label: '用户编号', visible: true },
|
||||
userName: { label: '用户代号', visible: true },
|
||||
nickName: { label: '用户昵称', visible: true },
|
||||
userName: { label: '用户工号', visible: true },
|
||||
nickName: { label: '用户姓名', visible: true },
|
||||
deptName: { label: '部门', visible: true },
|
||||
phonenumber: { label: '手机号码', visible: true },
|
||||
status: { label: '状态', visible: true },
|
||||
@ -311,11 +311,11 @@ const data = reactive({
|
||||
deptId: undefined
|
||||
} as UserQueryParams,
|
||||
rules: {
|
||||
userName: [{ required: true, message: "用户代号不能为空", trigger: "blur" },
|
||||
{ min: 2, max: 20, message: "用户代号长度必须介于 2 和 20 之间", trigger: "blur" },
|
||||
{ pattern: /^[A-Za-z0-9]+$/, message: '用户代号只能输入字母和数字', trigger: ['blur', 'change'] }
|
||||
userName: [{ required: true, message: "用户工号不能为空", trigger: "blur" },
|
||||
{ min: 2, max: 20, message: "用户工号长度必须介于 2 和 20 之间", trigger: "blur" },
|
||||
{ pattern: /^[A-Za-z0-9]+$/, message: '用户工号只能输入字母和数字', trigger: ['blur', 'change'] }
|
||||
],
|
||||
nickName: [{ required: true, message: "用户昵称不能为空", trigger: "blur" }],
|
||||
nickName: [{ required: true, message: "用户姓名不能为空", trigger: "blur" }],
|
||||
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }, { pattern: /^[^<>"'|\\]+$/, message: "不能包含非法字符:< > \" ' \\\ |", trigger: "blur" }],
|
||||
email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
|
||||
phonenumber: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user