diff --git a/src/api/liswork/micro/index.ts b/src/api/liswork/micro/index.ts
new file mode 100644
index 0000000..0fce896
--- /dev/null
+++ b/src/api/liswork/micro/index.ts
@@ -0,0 +1,36 @@
+// @ts-ignore
+import request from '@/utils/request'
+
+
+// 查询微生物数据列表
+export function wswsampleList(query?: Object) {
+ return request({
+ url: '/lisworkgerm/wswsamplelist',
+ method: 'get',
+ params: query
+ })
+}
+// 查询微生物数据列表 分页
+export function wswsamplelistpage(query?: Object) {
+ return request({
+ url: '/lisworkgerm/wswsamplelistpage',
+ method: 'get',
+ params: query
+ })
+}
+// 获取微生物样本信息
+export function sampleMedInfo(query?: Object) {
+ return request({
+ url: '/lisworkgerm/sampleMedInfo',
+ method: 'get',
+ params: query
+ })
+}
+// 获取操作记录
+export function getComLog(query?: Object) {
+ return request({
+ url: '/lisworkgerm/getcomlog',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/src/api/liswork/work/LisWork.ts b/src/api/liswork/work/LisWork.ts
index 0a6209f..4b35c5c 100644
--- a/src/api/liswork/work/LisWork.ts
+++ b/src/api/liswork/work/LisWork.ts
@@ -9,15 +9,6 @@ export function queryLabPatList(query?: Object) {
params: query
})
}
-// 查询微生物数据列表
-export function wswsampleList(query?: Object) {
- return request({
- url: '/lisworkgerm/wswsamplelist',
- method: 'get',
- params: query
- })
-}
-
// 查询数据
export function queryLabPat(query?: Object) {
return request({
diff --git a/src/views/liswork/micro/index.vue b/src/views/liswork/micro/index.vue
index e0aa049..493ee21 100644
--- a/src/views/liswork/micro/index.vue
+++ b/src/views/liswork/micro/index.vue
@@ -8,13 +8,12 @@
-
+
-
@@ -50,9 +49,7 @@
:userList="userList" @changeStatus="changeStatus" @batchShow="handleBatchScan" />
-
+
@@ -78,13 +75,28 @@
列表翻页
+
+
+ 所有
+ 近30天
+ 近60天
+ 近90天
+ 近7天
+ 此日 ->
+
+
+
@@ -115,11 +127,12 @@ import tabView from '@/components/tabViews/index.vue';
// @ts-ignore
import iFrame from "@/components/iFrame/index.vue";
// @ts-ignore
-// import LabResult from './components/labresult.vue';
+import LabResult from './labresult/index.vue';
import LabPatList from './labpatlist.vue';
// @ts-ignore
import { comDict } from '@/utils/dict'
-import { wswsampleList, queryLabResults, loadDefault, queryLabPat, instrdconfig, delSample, getGroupInstrdList } from "@/api/liswork/work/LisWork";
+import { queryLabResults, loadDefault, queryLabPat, instrdconfig, delSample, getGroupInstrdList } from "@/api/liswork/work/LisWork";
+import { wswsamplelistpage, sampleMedInfo } from "@/api/liswork/micro/index";
import { getComDicts, queryComDictListService } from "@/api/liswork/dict/ComDict";
import { ElMessage, ElMessageBox } from "element-plus";
import BatchCode from '../work/components/batchCode.vue';
@@ -129,19 +142,22 @@ import { classCom } from '@/utils/classCom';
import PatientQueryForm from '@/components/selectSearch/index.vue'
// @ts-ignore
import { listUser } from '@/api/system/user.js'
-
+import dayjs from 'dayjs'
const aotuSize = classCom.useAutoSize();
const previewShow = ref(false);
const lbFlag = ref(false);
const queryParams = ref({
- jyrq: '2025-08-20',
+ jyrq: dayjs().format('YYYY-MM-DD'),
yq: 'PHOENI',
- ybh: '1',
instrGroup: '04',
problemId: 0,
days: 90,
+ pageSize: 600,
+ pageNum: 1
})
+
+const total = ref(0)
const ybs = ref(0)
const ws = ref(0)
const wjs = ref(0)
@@ -321,32 +337,33 @@ const resultsHandle = (flag: boolean) => {
}
fetchLabResults()
}
-
+const labInfo: any = ref({})
const highlightRowIndex = ref(-1)
const labPatListRef = ref()
//样本列表点击切换样本信息,同步载入左边样本信息表单和中间结果表单
const selectJob = (job: any) => {
+ labInfo.value = { ...job }
lastRow.value = job;
- // 复制选中的job数据到当前编辑状态
- // Object.assign(labPat.value, {...job})
- queryParams.value.jyrq = job.jyrq;
- queryParams.value.yq = job.yq.trim();
- queryParams.value.ybh = job.ybh;
fetchLabPat();
fetchLabResults();
- highlightRowIndex.value = labPatList.value.findIndex((item: any) => item.ybh == queryParams.value.ybh);
+ highlightRowIndex.value = labPatList.value.findIndex((item: any) => item.ybh == labInfo.value.ybh);
}
const labResuts = ref([])
//载入样本结果表单(中间labresult.vue组件)
const fetchLabResults = async () => {
- queryLabResults({ jyrq: queryParams.value.jyrq, yq: queryParams.value.yq, ybh: queryParams.value.ybh }).then((response: any) => {
+ queryLabResults({ jyrq: queryParams.value.jyrq, yq: queryParams.value.yq, ybh: labInfo.value.ybh }).then((response: any) => {
labResuts.value = response.data;
})
}
//载入样本编辑表单(左边labpat.vue组件)
const fetchLabPat = () => {
- queryLabPat(queryParams.value).then((response: any) => {
+ const data = {
+ jyrq: labInfo.value.jyrq,
+ yq: labInfo.value.yq,
+ ybh: labInfo.value.ybh
+ }
+ queryLabPat(data).then((response: any) => {
labPat.value = response.data;
})
}
@@ -356,20 +373,20 @@ const lastRow: any = ref({})
// 批量扫码ybh同步样本编号
const ybhChangeTb = (val: string) => {
console.log('val==>', val);
- queryParams.value.ybh = val
+ labInfo.value.ybh = val
handleQuery();
}
const handleQuery = () => {
if (!labPatList.value.length) return
- if (!queryParams.value.ybh) {
+ if (!labInfo.value.ybh) {
highlightRowIndex.value = -1;
ElMessage.warning('请输入样本编号')
- queryParams.value.ybh = lastRow.value.ybh
+ labInfo.value.ybh = lastRow.value.ybh
return;
}
- queryParams.value = { ...queryParams.value };
+ // queryParams.value = { ...queryParams.value };
// 查找匹配的行
- const matchedIndex = labPatList.value.findIndex((item: any) => item.ybh == queryParams.value.ybh);
+ const matchedIndex = labPatList.value.findIndex((item: any) => item.ybh == labInfo.value.ybh);
const row = labPatList.value[matchedIndex]
if (matchedIndex !== -1) {
@@ -388,7 +405,8 @@ const handleQuery = () => {
// 创建新样本
const handleCreate = () => {
- loadDefault(queryParams.value).then((response: any) => {
+ labInfo.value.jyrq = ''
+ loadDefault({ ybh: labInfo.value.ybh, ...queryParams.value }).then((response: any) => {
if (response.code == 0) {
labPat.value = response.data;
labPat.value.id = `temp_${Date.now()}_${Math.random().toString(36).substr(2, 8)}`;
@@ -402,15 +420,15 @@ const handleCreate = () => {
// 删除样本
const delSampleHd = () => {
- if (lastRow.value.jgbz == '2') return ElMessage.warning('标本已审核,不能删除!')
+ if (labInfo.value.jgbz == '2') return ElMessage.warning('标本已审核,不能删除!')
const data = {
- jyrq: lastRow.value.jyrq,
- yq: lastRow.value.yq.trim(),
- ybh: lastRow.value.ybh,
+ jyrq: labInfo.value.jyrq,
+ yq: labInfo.value.yq.trim(),
+ ybh: labInfo.value.ybh,
}
ElMessageBox.confirm(
- `确定删除当前${lastRow.value.ybh}号标本?`,
+ `确定删除当前${labInfo.value.ybh}号标本?`,
'提示',
{
confirmButtonText: '确定',
@@ -422,7 +440,7 @@ const delSampleHd = () => {
delSample(data).then((res: any) => {
if (res.code == 0) {
ElMessage.success('删除成功')
- labPatList.value = labPatList.value.filter((item: any) => item.ybh != lastRow.value.ybh)
+ labPatList.value = labPatList.value.filter((item: any) => item.ybh != labInfo.value.ybh)
getTotals()
// 删除跳当前页面下一个样本
// handleNext()
@@ -443,8 +461,8 @@ const delSampleHd = () => {
// 上一个样本
const handlePrev = () => {
if (!lbFlag.value) {
- const ybh = getPreviousNumber(queryParams.value.ybh) as string;
- queryParams.value.ybh = ybh;
+ const ybh = getPreviousNumber(labInfo.value.ybh) as string;
+ labInfo.value.ybh = ybh;
const index = labPatList.value.findIndex((item: any) => item.ybh == ybh)
if (index !== -1) {
highlightRowIndex.value = index;
@@ -468,8 +486,8 @@ const handlePrev = () => {
// 下一个样本
const handleNext = () => {
if (!lbFlag.value) {
- const ybh = getNextNumber(queryParams.value.ybh) as string;
- queryParams.value.ybh = ybh;
+ const ybh = getNextNumber(labInfo.value.ybh) as string;
+ labInfo.value.ybh = ybh;
const index = labPatList.value.findIndex((item: any) => item.ybh == ybh)
if (index !== -1) {
highlightRowIndex.value = index;
@@ -486,14 +504,14 @@ const handleNext = () => {
labPatListRef.value.setCurrentRow(row);
selectJob(row);
} else {
- queryParams.value.ybh = getNextNumber(queryParams.value.ybh) as string;
+ labInfo.value.ybh = getNextNumber(labInfo.value.ybh) as string;
handleCreate();
}
}
}
// 最后一个样本
const handleLast = () => {
- queryParams.value.ybh = labPatList.value[labPatList.value.length - 1].ybh;
+ labInfo.value.ybh = labPatList.value[labPatList.value.length - 1].ybh;
handleNext();
}
const batchRef = ref()
@@ -503,7 +521,12 @@ const handleBatchScan = () => {
}
// 改变样本列表中样本状态
const changeStatus = (updatedPat: any, flag: boolean) => {
- queryLabPat(queryParams.value).then((response: any) => {
+ const data = {
+ jyrq: updatedPat.jyrq,
+ yq: updatedPat.yq.trim(),
+ ybh: updatedPat.ybh,
+ }
+ queryLabPat(data).then((response: any) => {
if (response.code == 0) {
labPat.value = response.data;
const index = labPatList.value.findIndex((item: any) => item.ybh == updatedPat.ybh);
@@ -545,22 +568,32 @@ const searchJobs = async (text: string, page: number, size: number) => {
fetchlabPatList()
}
+const handleSizeChange = (size: number) => {
+ queryParams.value.pageSize = size
+ fetchlabPatList()
+}
+const handleCurrentChange = (page: number) => {
+ queryParams.value.pageNum = page
+ fetchlabPatList()
+}
+
//载入样本列表(右边labpatlist.vue组件)
const fetchlabPatList = () => {
- if (!queryParams.value.jyrq) {
- queryParams.value.jyrq = lastRow.value.jyrq
- return ElMessage.warning('请选择检验日期')
- }
+ // if (!queryParams.value.jyrq) {
+ // queryParams.value.jyrq = lastRow.value.jyrq
+ // return ElMessage.warning('请选择检验日期')
+ // }
loading.value = true;
- wswsampleList(queryParams.value).then((res: any) => {
- if (res.code == 0) {
- labPatList.value = res.data;
- originalLabPatList.value = res.data
+ wswsamplelistpage(queryParams.value).then((res: any) => {
+ if (res.code == 200) {
+ labPatList.value = res.rows;
+ originalLabPatList.value = res.rows;
+ total.value = res.total;
loading.value = false;
- if (res.data.length > 0) {
+ if (res.rows.length > 0) {
highlightRowIndex.value = 0;
- setTimeout(() => { labPatListRef.value.setCurrentRow(res.data[0]); }, 100)
- selectJob(res.data[0])
+ setTimeout(() => { labPatListRef.value.setCurrentRow(res.rows[0]); }, 100)
+ selectJob(res.rows[0])
getTotals()
} else {
ybs.value = 0
@@ -642,13 +675,22 @@ onMounted(async () => {
padding: .5rem;
background-color: #fff;
- .flex-between {
- margin-bottom: .5rem;
+}
+
+.radio_box {
+ display: flex;
+ align-items: center;
+ margin: .125rem 0;
+
+ .el-radio {
+ margin-right: 15px;
}
}
.right_box {
height: calc(90vh - 3.4rem);
+
+
}
.compact-form {
@@ -676,14 +718,15 @@ onMounted(async () => {
.button-group {
- display: flex;
- justify-content: space-around;
- font-family: SourceHanSansCN, SourceHanSansCN;
- font-weight: 500;
- font-size: 1rem;
- color: #28BDBB;
- // margin-top: 20px;
-
+ // display: flex;
+ // justify-content: space-around;
+ // font-family: SourceHanSansCN, SourceHanSansCN;
+ // font-weight: 500;
+ // font-size: 1rem;
+ // color: #28BDBB;
+ width: 100%;
+ margin-top: .1875rem;
+ text-align: right;
.text2 {
diff --git a/src/views/liswork/micro/labpat.vue b/src/views/liswork/micro/labpat.vue
index 24acc83..e13cf5b 100644
--- a/src/views/liswork/micro/labpat.vue
+++ b/src/views/liswork/micro/labpat.vue
@@ -75,6 +75,7 @@ import YhVerification from '../work/components/yhVerification.vue';
import emitter from '@/utils/mitt';
import { classCom } from '@/utils/classCom';
+import Labpat from '../work/components/labpat.vue';
const aotuSize = classCom.useAutoSize();
@@ -245,7 +246,14 @@ const saveLabPat = async (changedField: any) => {
})
} else {
if (!changedField) return
- changepatcolumn({ ...props.labPatKey, column: changedField?.field, value: changedField?.newValue }).then((res: any) => {
+ const data = {
+ ...props.labPatKey,
+ jyrq: props.labPat.jyrq,
+ ybh: props.labPat.ybh,
+ column: changedField?.field,
+ value: changedField?.newValue
+ }
+ changepatcolumn(data).then((res: any) => {
if (res.code == 0) {
if (sqhFlag.value) {
sqhValue.value = ''
@@ -476,11 +484,11 @@ onMounted(() => {
}
.cb_color {
- color: rgba(255, 165, 0, 0.25);
+ color: rgba(0, 128, 0, 0.25);
}
.eb_color {
- color: rgba(0, 128, 0, 0.25);
+ color: rgba(255, 165, 0, 0.25);
}
.sd_color {
diff --git a/src/views/liswork/micro/labpatlist.vue b/src/views/liswork/micro/labpatlist.vue
index 94a4bbb..0d34137 100644
--- a/src/views/liswork/micro/labpatlist.vue
+++ b/src/views/liswork/micro/labpatlist.vue
@@ -1,7 +1,7 @@
-
@@ -200,6 +200,19 @@ const cellStyle = ({ row, column }: any) => {
if (column.title == "警" && row.alarmflag == 1) {
return { background: '#f00 !important' };
}
+ if (column.title == "状态" && row.jgbz == '2') {
+ return {
+ background: 'pink !important',
+ };
+ }
+ if (column.title == "状态" && row.jgbz == '3') {
+ return {
+ background: '#00ff64 !important',
+ };
+ }
+ if (column.title == "状态" && row.jgbz == '4') {
+ return { background: '#ffff64 !important' };
+ }
if (column.title == "类型" && row.brly == '1') { //门诊
return { background: '#e9e930 !important' };
@@ -242,7 +255,7 @@ defineExpose({
\ No newline at end of file
diff --git a/src/views/liswork/micro/labresult/components/cbReport.vue b/src/views/liswork/micro/labresult/components/cbReport.vue
new file mode 100644
index 0000000..83e13d5
--- /dev/null
+++ b/src/views/liswork/micro/labresult/components/cbReport.vue
@@ -0,0 +1,11 @@
+
+
+ 初级
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/liswork/micro/labresult/components/record.vue b/src/views/liswork/micro/labresult/components/record.vue
new file mode 100644
index 0000000..bfd0f93
--- /dev/null
+++ b/src/views/liswork/micro/labresult/components/record.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/liswork/micro/labresult/components/zbReport.vue b/src/views/liswork/micro/labresult/components/zbReport.vue
new file mode 100644
index 0000000..a3aaa1d
--- /dev/null
+++ b/src/views/liswork/micro/labresult/components/zbReport.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
+
+
+ 更换抗生素组
+ 添加抗生素组
+ {{ ymTableData.length }}项
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/liswork/micro/labresult/index.vue b/src/views/liswork/micro/labresult/index.vue
new file mode 100644
index 0000000..459ec30
--- /dev/null
+++ b/src/views/liswork/micro/labresult/index.vue
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file