wsw右键功能

This commit is contained in:
wyuu 2025-12-02 18:06:39 +08:00
parent ccc7165298
commit 75b2b75065
12 changed files with 611 additions and 314 deletions

View File

@ -15,9 +15,10 @@
</div> </div>
</template> </template>
<script setup> <script setup lang="ts">
import { ref, computed, watch, onMounted } from 'vue'; import { ref, computed, watch, onMounted } from 'vue';
import { queryXmInfo } from '@/api/liswork/work/LisWork' import { queryXmInfo } from '@/api/liswork/work/LisWork'
// @ts-ignore
import { getFirstLetter } from '@/utils/pinyin.js'; // 引入拼音处理工具 import { getFirstLetter } from '@/utils/pinyin.js'; // 引入拼音处理工具
// 组件参数 // 组件参数
const props = defineProps({ const props = defineProps({
@ -55,7 +56,7 @@ const loadDictData = async () => {
}; };
const response = await queryXmInfo(requestParams); const response = await queryXmInfo(requestParams);
const rawData = response.data.map((item, index) => { const rawData = response.data.map((item: any, index: number) => {
return { return {
value: item.xmdh || `未知编码_${index}`, // 确保value存在 value: item.xmdh || `未知编码_${index}`, // 确保value存在
label: item.xmmc || `未知名称_${index}`, // 确保label存在 label: item.xmmc || `未知名称_${index}`, // 确保label存在
@ -64,7 +65,7 @@ const loadDictData = async () => {
}; };
}); });
// 为每个字典项添加简拼字段 // 为每个字典项添加简拼字段
dictData.value = (rawData || []).map(item => ({ dictData.value = (rawData || []).map((item: any) => ({
...item, ...item,
pinyin: getFirstLetter(item.label) // 新增pinyin字段存储简拼 pinyin: getFirstLetter(item.label) // 新增pinyin字段存储简拼
})); }));
@ -87,7 +88,7 @@ const filterDictData = () => {
return; return;
} }
filteredDictData.value = dictData.value.filter(item => { filteredDictData.value = dictData.value.filter((item: any) => {
// 1. 模糊搜索:匹配label(名称)或value(编码) // 1. 模糊搜索:匹配label(名称)或value(编码)
const matchLabel = item.label.toLowerCase().includes(key); const matchLabel = item.label.toLowerCase().includes(key);
const matchValue = String(item.value).toLowerCase().includes(key); const matchValue = String(item.value).toLowerCase().includes(key);
@ -123,7 +124,7 @@ const openDictSelector = async () => {
// 选择字典项 // 选择字典项
const selectItem = (item) => { const selectItem = (item: any) => {
emit('select', item); emit('select', item);
dialogVisible.value = false; dialogVisible.value = false;
}; };

View File

@ -1,20 +1,20 @@
<template> <template>
<div> <div>
<el-dialog v-model="visible" :title="title" :width="500" :close-on-click-modal="false" :draggable="true"> <el-dialog v-model="visible" :title="title" :width="500" :close-on-click-modal="false" :draggable="true">
<el-form ref="formRef" :model="formValue" label-width="100px"> <el-form ref="formRef" :model="formData" label-width="100px">
<!-- 用户代号 --> <!-- 用户代号 -->
<el-form-item label="用户代号:" prop="yhdh" :rules="[{ required: true, message: '请输入用户代号', trigger: 'change' }]"> <el-form-item label="用户代号:" prop="yhdh" :rules="[{ required: true, message: '请输入用户代号', trigger: 'change' }]">
<el-input ref="yhdhRef" v-model="formValue.yhdh" @change="handleChange" /> <el-input ref="yhdhRef" v-model="formData.yhdh" @change="handleChange" />
</el-form-item> </el-form-item>
<!-- 用户姓名 --> <!-- 用户姓名 -->
<el-form-item label="用户姓名:"> <el-form-item label="用户姓名:">
<el-input v-model="formValue.userName" disabled /> <el-input v-model="formData.userName" disabled />
</el-form-item> </el-form-item>
<!-- 密码输入 --> <!-- 密码输入 -->
<el-form-item label="密码:" prop="mm" :rules="[{ required: true, message: '请输入密码', trigger: 'change' }]"> <el-form-item label="密码:" prop="mm" :rules="[{ required: true, message: '请输入密码', trigger: 'change' }]">
<el-input v-model="formValue.mm" type="password" @keyup.enter="handleConfirm" /> <el-input v-model="formData.mm" type="password" @keyup.enter="handleConfirm" />
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -36,14 +36,6 @@ interface UserInfo {
nickName: string, nickName: string,
} }
const props = defineProps({ const props = defineProps({
formValue: {
type: Object,
default: {
yhdh: '',
userName: '',
mm: '',
}
},
labPatKey: { labPatKey: {
type: Object, type: Object,
@ -61,7 +53,11 @@ const props = defineProps({
}); });
const visible = ref(false); const visible = ref(false);
// 表单数据 // 表单数据
const formData = ref({
yhdh: '',
userName: '',
mm: '',
})
const formRef = ref(); const formRef = ref();
const yhdhRef = ref(); const yhdhRef = ref();
@ -74,7 +70,7 @@ const open = () => {
}); });
} }
const emit = defineEmits(["confirm", "cancel",]); const emit = defineEmits(["confirm"]);
// 处理确定按钮点击 // 处理确定按钮点击
const handleConfirm = async () => { const handleConfirm = async () => {
if (!formRef.value) return; if (!formRef.value) return;
@ -82,9 +78,9 @@ const handleConfirm = async () => {
// 表单验证 // 表单验证
const valid = await formRef.value.validate(); const valid = await formRef.value.validate();
if (valid) { if (valid) {
checkYsUser({ ...props.formValue, ...props.labPatKey }).then((res: any) => { checkYsUser({ ...formData.value, ...props.labPatKey }).then((res: any) => {
if (res.code == 0) { if (res.code == 0) {
emit('confirm', props.formValue) emit('confirm', formData.value)
} }
}) })
@ -93,14 +89,18 @@ const handleConfirm = async () => {
// 处理取消按钮点击 // 处理取消按钮点击
const cancel = () => { const cancel = () => {
formData.value = {
yhdh: '',
userName: '',
mm: '',
}
formRef.value?.resetFields(); formRef.value?.resetFields();
visible.value = false visible.value = false
emit('cancel',)
}; };
const handleChange = (value: string) => { const handleChange = (value: string) => {
props.formValue.userName = props.userList.find((item: any) => item.userName == value)?.nickName formData.value.userName = props.userList.find((item: any) => item.userName == value)?.nickName || value
}; };

View File

@ -67,7 +67,8 @@
<el-tab-pane label="鉴定(终报)结果" name="first"> <el-tab-pane label="鉴定(终报)结果" name="first">
<ZbReport ref="labResultRef" v-model:labPat="labPat" :labPatKey="queryParams" <ZbReport ref="labResultRef" v-model:labPat="labPat" :labPatKey="queryParams"
@update:labPatKey="queryParams = $event" :dictData="dictData" :labResutsData="zbLabResuts" @update:labPatKey="queryParams = $event" :dictData="dictData" :labResutsData="zbLabResuts"
@fetchLabResults="resultsHandle" @changeStatus="changeStatus" @previewHandle="previewHandle" /> :userList="userList" @fetchLabResults="resultsHandle" @changeStatus="changeStatus"
@previewHandle="previewHandle" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="初级和二级报告" name="second"> <el-tab-pane label="初级和二级报告" name="second">
<CbReport v-model:labPat="labPat" :labPatKey="queryParams" @update:labPatKey="queryParams = $event" <CbReport v-model:labPat="labPat" :labPatKey="queryParams" @update:labPatKey="queryParams = $event"
@ -120,10 +121,10 @@
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
<el-date-picker v-model="queryParams.jyrq" type="date" :size="aotuSize" @change="fetchlabPatList" <el-date-picker v-model="queryParams.jyrq" type="date" :size="aotuSize" @change="fetchlabPatList"
style="width: 9.375rem;" /> value-format="YYYY-MM-DD" style="width: 9.375rem;" />
</div> </div>
<LabPatList ref="labPatListRef" :labPatList="labPatList" :loading="loading" @select="selectJob" <LabPatList ref="labPatListRef" :labPatList="labPatList" :loading="loading" @select="selectJob"
:tableKey="queryParams" :dictData="dictData" @search="searchJobs" /> :tableKey="{ ...queryParams, jyrq: ybJyrq }" :dictData="dictData" @search="searchJobs" />
<div class="button-group"> <div class="button-group">
<el-pagination v-model:current-page="queryParams.pageNum" v-model:page-size="queryParams.pageSize" <el-pagination v-model:current-page="queryParams.pageNum" v-model:page-size="queryParams.pageSize"
@ -192,7 +193,6 @@ import { listUser } from '@/api/system/user.js'
import dayjs from 'dayjs' import dayjs from 'dayjs'
const aotuSize = classCom.useAutoSize(); const aotuSize = classCom.useAutoSize();
import { initWebSocket, sendWebSocketMessage, closeWebSocket, getWebSocketState } from '@/utils/webSocket'; import { initWebSocket, sendWebSocketMessage, closeWebSocket, getWebSocketState } from '@/utils/webSocket';
import Labpat from './labpat.vue';
const previewShow = ref(false); const previewShow = ref(false);
const lbFlag = ref(false); const lbFlag = ref(false);
@ -706,10 +706,6 @@ const handleCurrentChange = (page: number) => {
//载入样本列表(右边labpatlist.vue组件) //载入样本列表(右边labpatlist.vue组件)
const fetchlabPatList = () => { const fetchlabPatList = () => {
// if (!queryParams.value.jyrq) {
// queryParams.value.jyrq = lastRow.value.jyrq
// return ElMessage.warning('请选择检验日期')
// }
loading.value = true; loading.value = true;
wswsamplelistpage(queryParams.value).then((res: any) => { wswsamplelistpage(queryParams.value).then((res: any) => {
if (res.code == 200) { if (res.code == 200) {

View File

@ -10,6 +10,7 @@
plain @click="handleBatchDelete">删除</el-button> plain @click="handleBatchDelete">删除</el-button>
<el-button class="btn_green btns_box" :size="autoSize" @click="zhHandel">组合项目</el-button> <el-button class="btn_green btns_box" :size="autoSize" @click="zhHandel">组合项目</el-button>
</div> </div>
<ContextMenu :items="contextMenuItems" @select="handleMenuSelect">
<CustomTable ref="tableRef" :data="tableData" :columns="columns" :config="tableConfig" :enable-column-drag="true" <CustomTable ref="tableRef" :data="tableData" :columns="columns" :config="tableConfig" :enable-column-drag="true"
@column-drag-end="handleColumnDragEnd" @row-click="rowHandle"> @column-drag-end="handleColumnDragEnd" @row-click="rowHandle">
<template #xmdh="{ column }"> <template #xmdh="{ column }">
@ -50,6 +51,7 @@
{{ formatDict(row.germclass, 'germclass') }} {{ formatDict(row.germclass, 'germclass') }}
</template> </template>
</CustomTable> </CustomTable>
</ContextMenu>
<div class="tabs_btns"> <div class="tabs_btns">
<el-tabs v-model="activeName2" type="card" class="demo-tabs" :size="autoSize"> <el-tabs v-model="activeName2" type="card" class="demo-tabs" :size="autoSize">
<el-tab-pane label="药敏结果" name="first"> <el-tab-pane label="药敏结果" name="first">
@ -152,6 +154,22 @@
<!-- 危急值结果上报 --> <!-- 危急值结果上报 -->
<UploadWarning ref="uploadwarningRef" :warningMsgdata="warningMsgdata" :tableKey="labPatKey" <UploadWarning ref="uploadwarningRef" :warningMsgdata="warningMsgdata" :tableKey="labPatKey"
@onupload="shHandleCheck" /> @onupload="shHandleCheck" />
<!-- 用户校验 -->
<userVerification ref="formRef" :title="verTitle" :userList="userList" @confirm="handleConfirm" />
<!-- 合并当前病人其他结果 -->
<MergeResults ref="mergeRef" :tableKey="{ ...labPatKey, jyrq: labPat.jyrq }" :dictData="dictData" />
<!-- 查看备份数据 -->
<ViewBackup ref="backRef" :tableKey="{ ...labPatKey, jyrq: labPat.jyrq }" :userList="userList"
:dictData="dictData" />
<!-- 双工流水线 -->
<DlDialog ref="dlRef" :tableKey="{ ...labPatKey, jyrq: labPat.jyrq }" :dictData="dictData" />
<!-- 未建项目结果 -->
<BuiltDialog ref="builtRef" :tableKey="{ ...labPatKey, jyrq: labPat.jyrq }" @clearPro="clearProHandle" />
</div> </div>
</template> </template>
@ -162,7 +180,11 @@ import {
getresultmedList, savetestResult, changeresult, saveresult, newresult, getmeddictList, savemedresult, getresultmedList, savetestResult, changeresult, saveresult, newresult, getmeddictList, savemedresult,
savemedresultall, deletemedresult, getmedgroupMbList savemedresultall, deletemedresult, getmedgroupMbList
} from '@/api/liswork/micro/index'; } from '@/api/liswork/micro/index';
import { check2, uncheck2, unconfirmlog, checkuser, deleteresult, queryXmVal, setinputmdl, } from "@/api/liswork/work/LisWork"; import {
check2, uncheck2, unconfirmlog, checkuser, deleteresult, queryXmVal, setinputmdl, clearPrintflag,
clearnotComplete, emrquery, allPatquery, lockSample, unLockSample,
printListwork,
} from "@/api/liswork/work/LisWork";
import { useCommonStore } from "@/store/modules/commonStore"; import { useCommonStore } from "@/store/modules/commonStore";
import CheckUser from "../../work/components/CheckUser.vue"; import CheckUser from "../../work/components/CheckUser.vue";
import Unconfirmlog from "../../work/components/unconfirmlog.vue"; import Unconfirmlog from "../../work/components/unconfirmlog.vue";
@ -179,7 +201,13 @@ import { ElMessage, ElMessageBox } from "element-plus";
import emitter from "@/utils/mitt"; import emitter from "@/utils/mitt";
const autoSize = classCom.useAutoSize(); const autoSize = classCom.useAutoSize();
import { LabResultItem, ymTableDataItem } from '@/types/index'; import { LabResultItem, ymTableDataItem } from '@/types/index';
import ContextMenu from "@/components/contextMenu/index.vue";
import { ContextMenuItem } from '@/types/index'
import BuiltDialog from "../../work/components/builtDialog.vue"
import ViewBackup from "../../work/components/viewBackup.vue"
import userVerification from "@/components/userVerification/index.vue";
import DlDialog from "../../work/components/dlDialog.vue";
import MergeResults from "../../work/components/mergeResults.vue";
const props = defineProps({ const props = defineProps({
labPat: { labPat: {
@ -198,6 +226,10 @@ const props = defineProps({
dictData: { dictData: {
type: Object, type: Object,
default: () => { } default: () => { }
},
userList: {
type: Array as PropType<any[]>,
default: () => []
} }
}); });
const { labPat, labPatKey, labResutsData, dictData } = toRefs(props); const { labPat, labPatKey, labResutsData, dictData } = toRefs(props);
@ -249,8 +281,6 @@ const CellStyleHd = ({ row, column, rowIndex, columnIndex }: {
if (column.label == "检验结果" && row.jgbz == "Q") { if (column.label == "检验结果" && row.jgbz == "Q") {
return { background: '#ffff80 !important', color: '#606266' }; return { background: '#ffff80 !important', color: '#606266' };
} }
if (column.label == "阴阳性" && row.jgbz == "H") { if (column.label == "阴阳性" && row.jgbz == "H") {
return { background: '#ffc0c0 !important', color: '#606266' }; return { background: '#ffc0c0 !important', color: '#606266' };
} }
@ -276,11 +306,206 @@ const handleColumnDragEnd = (data: any) => {
columns.value = data.columns; columns.value = data.columns;
} }
// 右键菜单配置
const contextMenuItems = computed<ContextMenuItem[]>(() => [
{ label: '打印预览', action: 'view', shortcut: 'V', },
{ label: 'PDF报告预览', action: 'bgyl', shortcut: 'P', },
{ label: '合并病人当前其他结果', action: 'merge', shortcut: 'B', },
{ type: 'divider' },
{ label: '锁定报告', action: 'Lock', shortcut: 'L', },
{ label: '解除报告锁定', action: 'lift', shortcut: 'W', },
{ type: 'divider' },
// { label: '删除记录', action: 'delete', danger: true, shortcut: 'd', },
{ label: '查看电子病历', action: 'emrquery', shortcut: 'E', },
{ label: '查看360全景视图', action: 'patquery', shortcut: 'Y', },
{ label: '查看备份数据', action: 'viewbackup', shortcut: 'P', },
{ label: '双工流水线', action: 'datalink', shortcut: 'F', },
{ type: 'divider' },
{ label: '解除审核', action: 'unblock', shortcut: 'C', },
{ label: '清除打印标志', action: 'clearPrint', shortcut: 'U', },
{ label: '清除所有未做项目', action: 'clearPro', shortcut: 'T', },
{ type: 'divider' },
{ label: '未建项目结果', action: 'unbuilt', shortcut: 'N', },
]);
// 处理菜单选择
const handleMenuSelect = (item: any) => {
switch (item.action) {
case 'view':
previewHandle(1) //打印预览
break;
case 'bgyl':
previewHandle(2) //PDF报告预览
break;
case 'merge':
mergeHandle()
// alert(`合并病人当前其他结果`);
break;
case 'Lock':
lockHandle(); //锁定
break;
case 'lift':
unlockHandle() //解锁
break;
case 'emrquery':
emrqueryHandle() //电子病历查询
break;
case 'patquery':
patqueryHandle() //360视图
break;
case 'viewbackup':
viewbackupHandle() //查看备份数据
break;
case 'datalink':
datalinkHandle() //流水线
break;
case 'unblock':
handleCheck(3) //解除审核
break;
case 'clearPrint':
clearPrintHandle() //清除打印标志
break;
case 'clearPro':
clearProHandle() //清除所有未做项目
break;
case 'unbuilt':
unbuiltHandle() //未建项目结果
break;
case 'delete':
if (confirm(`确定要删除患者的记录吗?`)) {
}
break;
}
};
const previewHandle = (type: number) => { //1 打印预览 2 PDF报告预览
const data = {
jyrq: labPat.value.jyrq,
yq: labPat.value.yq,
ybh: labPat.value.ybh,
sqh: labPat.value.sqh
}
printListwork(data).then((res: any) => {
if (res.code == 0) {
if (type == 1) {
classCom.printBase64PDF(res.data)
} else {
emits('previewHandle', res.data);
}
}
})
};
const mergeRef = ref()
const mergeHandle = () => {
mergeRef.value.open()
};
const formRef = ref();
const verTitle = ref('请输入锁定人员账号密码')
const lockType = ref(1)
// 锁定报告
const lockHandle = () => {
if (props.labPat.jgbz != 0) return ElMessage.warning('样本已审核,不能锁定!')
lockType.value = 1
formRef.value.open()
verTitle.value = '请输入锁定人员账号密码'
}
// 解除锁定报告
const unlockHandle = () => {
if (props.labPat.jgbz != 5) return ElMessage.warning('目标标本未锁定,不可解除锁定!')
lockType.value = 2
verTitle.value = '请输入解除锁定人员账号密码'
formRef.value.open()
}
// 锁定样本
const handleConfirm = (data: { yhdh: string, userName: string, mm: string }) => {
const obj = {
...labPatKey.value,
jyrq: labPat.value.jyrq,
yhdh: data.yhdh,
}
emits('update:labPatKey', {
...labPatKey.value,
yhdh: data.yhdh,
});
if (lockType.value == 1) {
lockSample(obj).then((res: any) => {
if (res.code == 0) {
formRef.value?.cancel()
ElMessage.success(res.msg)
emits('changeStatus', labPat.value)
}
});
} else {
unLockSample(obj).then((res: any) => {
if (res.code == 0) {
formRef.value?.cancel()
ElMessage.success(res.msg)
emits('changeStatus', labPat.value)
}
});
}
}
const emrqueryHandle = () => {
emrquery({ ...labPatKey.value, jyrq: labPat.value.jyrq }).then((res: any) => {
if (res.data) {
window.open(res.data)
}
})
};
const patqueryHandle = () => {
allPatquery({ ...labPatKey.value, jyrq: labPat.value.jyrq }).then((res: any) => {
if (res.data) {
window.open(res.data)
}
})
};
const dlRef = ref()
const datalinkHandle = () => {
dlRef.value.open()
};
const backRef = ref()
const viewbackupHandle = () => {
backRef.value.openDialog()
};
const builtRef = ref()
const unbuiltHandle = () => {
builtRef.value.open()
};
const clearPrintHandle = () => {
clearPrintflag({ ...labPatKey.value, jyrq: labPat.value.jyrq }).then((res: any) => {
if (res.code == 0) {
emits('changeStatus', labPat.value)
}
})
};
const clearProHandle = () => {
clearnotComplete({ ...labPatKey.value, jyrq: labPat.value.jyrq }).then((res: any) => {
if (res.code == 0) {
emits('fetchLabResults')
}
})
};
const reasonText = ref(''); const reasonText = ref('');
const warningMsgdata = ref(''); const warningMsgdata = ref('');
const checktitle = ref(''); const checktitle = ref('');
const checkUserRef = ref(); const checkUserRef = ref();
const runnextstepname = ref(-1); const runnextstepname = ref(-1); // 审核类型
const handleCheck = (checkType: number) => { const handleCheck = (checkType: number) => {
runnextstepname.value = checkType runnextstepname.value = checkType
labPatKey.value.problemId = 0; labPatKey.value.problemId = 0;
@ -299,7 +524,10 @@ const handleCheckUserConfirm = (info: { yhdh: string, mm: string }) => {
...labPatKey.value, ...labPatKey.value,
yhdh: info.yhdh yhdh: info.yhdh
}); });
// 异步处理 等待yhdh数据更新
setTimeout(() => {
proceedCheck(runnextstepname.value) proceedCheck(runnextstepname.value)
}, 100);
} }
}) })
} }
@ -320,7 +548,7 @@ const proceedCheck = (type: number) => {
} }
const uploadwarningRef = ref(); const uploadwarningRef = ref();
const shHandleCheck = () => { const shHandleCheck = () => {
check2({ ...labPatKey.value, jyrq: labPat.value.jyrq, yhdh: props.labPat.yhdh }).then((res: any) => { check2({ ...labPatKey.value, jyrq: labPat.value.jyrq }).then((res: any) => {
emits("changeStatus", props.labPat); emits("changeStatus", props.labPat);
if (res.code == "4" && res.problemId === 4) { if (res.code == "4" && res.problemId === 4) {
labPatKey.value.problemId = res.problemId; labPatKey.value.problemId = res.problemId;
@ -332,7 +560,7 @@ const shHandleCheck = () => {
const unconfirmlogRef = ref(); const unconfirmlogRef = ref();
const unShHandle = () => { const unShHandle = () => {
uncheck2({ ...labPatKey.value, jyrq: labPat.value.jyrq, yhdh: props.labPat.yhdh }).then((res: any) => { uncheck2({ ...labPatKey.value, jyrq: labPat.value.jyrq }).then((res: any) => {
if (res.code == "4") { if (res.code == "4") {
labPatKey.value.problemId = res.problemId; labPatKey.value.problemId = res.problemId;
reasonText.value = res.msg; reasonText.value = res.msg;
@ -342,10 +570,6 @@ const unShHandle = () => {
}) })
}; };
const itemDictRef = ref(); const itemDictRef = ref();
const openItemDictDialog = () => { const openItemDictDialog = () => {
itemDictRef.value.openDictSelector(); itemDictRef.value.openDictSelector();
@ -706,7 +930,6 @@ const delMed = () => {
ymselectedRows.value = []; ymselectedRows.value = [];
} }
const medSelect = (row: any) => { const medSelect = (row: any) => {
console.log('row==>', row);
const ymFlag = tableData.value.some((item: any) => item.ywdh === row.value); const ymFlag = tableData.value.some((item: any) => item.ywdh === row.value);
if (ymFlag) return ElMessage.warning(`抗生素【${row.label}】已存在`); if (ymFlag) return ElMessage.warning(`抗生素【${row.label}】已存在`);
// 1. 构造新增行数据 // 1. 构造新增行数据

View File

@ -0,0 +1,130 @@
<template>
<div>
<el-dialog v-model="dlShow" title="双工流水线申请单列表" width="40vw" :close-on-click-modal="false" :draggable="true">
<div class="mb10">
<el-button type="primary" @click="getDlList">刷新</el-button>
<el-button type="primary" @click="cfHandle">重发申请单</el-button>
<el-button @click="closeHandle">取消申请单</el-button>
</div>
<CustomTable :data="dlTableData" :columns="dlColumns" :config="dlTableConfig" :enable-column-drag="true"
@column-drag-end="dlDragEnd" @selection-change="dlSelectionChange">
<template #instrid="{ row }">
{{ row.instrid ? dlObj[row.instrid] : '未发送指令' }}
</template>
<template #brxb="{ row }">
{{ formatDict(row.brxb, 'SX') }}
</template>
<template #nldw="{ row }">
{{ formatDict(row.nldw, 'AU') }}
</template>
</CustomTable>
<div class="mt5" style="text-align: center;color:blue;">样本总数:{{ dlTableData.length }}</div>
</el-dialog>
</div>
</template>
<script setup lang="ts">
import { changeLinkList, datalink } from '@/api/liswork/work/LisWork'
import { ElMessage } from 'element-plus'
import CustomTable from '@/components/elTable/index.vue'
const props = defineProps({
tableKey: {
type: Object,
required: true
},
dictData: {
type: Object,
default: () => ({})
},
})
const { tableKey } = toRefs(props)
const dlObj: any = {
0: '申请发送',
1: '已发送指令',
2: '申请撤销中'
}
const dlShow = ref(false)
const dlTableData = ref([])
const dlColumns = ref([
{ label: "选择", type: 'selection', align: 'center', width: 40, visible: true, },
{ label: "动作状态", prop: "instrid", align: 'center', visible: true, slot: 'instrid' },
{ label: "申请号", prop: "sqh", align: 'center', visible: true, },
{ label: "样本号", prop: "ybh", align: 'center', visible: true, },
{ label: "姓名", prop: "brxm", align: 'center', visible: true, },
{ label: "性别", prop: "brxb", width: 30, align: 'center', visible: true, slot: 'brxb' },
{ label: "年", prop: "nl", width: 30, align: 'center', visible: true, },
{ label: "龄", prop: "nldw", width: 30, align: 'center', visible: true, slot: "nldw" },
{ label: "检验目的", prop: "jymd", width: 180, visible: true, },
])
const dlTableConfig = ref({
border: true,
height: '500px',
cellStyle: ({ row, column }: any) => {
if (row.instrid == 1) {
return { background: '#c0c0c0 !important' }
}
},
})
const dlDragEnd = (data: any) => {
dlColumns.value = data.columns
}
const dlList = ref([])
const dlSelectionChange = (selection: any) => {
dlList.value = selection
}
const getDlList = () => {
datalink(tableKey.value).then((res: any) => {
dlTableData.value = res.data;
})
}
const cfHandle = () => {
if (dlList.value.length < 0) return ElMessage.warning('请选择数据')
const arr = dlList.value.filter((item: any) => item.instrid == 1)
arr.forEach((v: any) => {
v.instrid = null
})
changeLinkList(arr).then((res: any) => {
if (res.code == 0) {
getDlList()
}
})
}
const closeHandle = () => {
dlList.value.forEach((v: any) => {
v.instrid = 2
})
changeLinkList(dlList.value).then((res: any) => {
if (res.code == 0) {
getDlList()
}
})
}
const open = () => {
getDlList()
dlShow.value = true
}
defineExpose({
open
})
const formatDict = (v: string, dictType: string) => {
return props.dictData[dictType]?.find((item: any) => item.value == v)?.label || v;
}
</script>
<style scoped></style>

View File

@ -0,0 +1,113 @@
<template>
<div>
<el-dialog v-model="jgShow" title="绑定其他结果" width="40vw" :close-on-click-modal="false" :draggable="true">
<el-row>
<el-col :span="8">
<el-radio-group v-model="radio1">
<el-radio value="1">5天内</el-radio>
<el-radio value="2">10天内</el-radio>
<el-radio value="3">20天内</el-radio>
<el-radio value="4">30天内</el-radio>
</el-radio-group>
</el-col>
<el-col :span="4">
<el-radio-group v-model="radio2">
<el-radio value="1">复制</el-radio>
<el-radio value="2">移动</el-radio>
</el-radio-group>
</el-col>
<el-col :span="4">
<el-radio-group v-model="radio3">
<el-radio value="1">覆盖</el-radio>
<el-radio value="2">不覆盖</el-radio>
</el-radio-group>
</el-col>
<el-col :span="8">
<div> <el-checkbox>只显示同一申请单号</el-checkbox> </div>
<div>
<el-button type="primary">合并</el-button>
<el-button>取消</el-button>
</div>
</el-col>
</el-row>
<CustomTable :data="mTableData" :columns="mColumns" :config="mTableConfig" :enable-column-drag="true"
@column-drag-end="mDragEnd" @selection-change="mSelectionChange">
<template #brxb="{ row }">
{{ formatDict(row.brxb, 'SX') }}
</template>
<template #nldw="{ row }">
{{ formatDict(row.nldw, 'AU') }}
</template>
</CustomTable>
</el-dialog>
</div>
</template>
<script setup lang="ts">
import CustomTable from '@/components/elTable/index.vue'
const props = defineProps({
tableKey: {
type: Object,
required: true
},
dictData: {
type: Object,
default: () => ({})
},
})
const { tableKey } = toRefs(props)
const jgShow = ref(false)
const radio1 = ref('1')
const radio2 = ref('1')
const radio3 = ref('1')
const mTableData = ref([])
const mColumns = ref([
{ label: "选择", type: 'selection', align: 'center', width: 40, visible: true, },
{ label: "仪器", prop: "yq", visible: true, },
{ label: "检验日期", prop: "jyrq", visible: true, },
{ label: "样本号", prop: "ybh", visible: true, },
{ label: "病历号", prop: "brdh", visible: true, },
{ label: "病人姓名", prop: "brxm", visible: true, },
{ label: "年", prop: "nl", width: 40, visible: true, },
{ label: "龄", prop: "nldw", width: 30, visible: true, slot: "nldw" },
{ label: "检验项目", prop: "xmdh", visible: true, },
{ label: "检验结果", prop: "csjg", width: 60, visible: true, },
{ label: "申请号", prop: "sqh", visible: true, },
])
const mTableConfig = {
border: true,
height: '500px'
}
const mDragEnd = (data: any) => {
mColumns.value = data.columns
}
const mSelectionChange = (data: any) => {
}
const open = () => {
jgShow.value = true
}
defineExpose({
open
})
const formatDict = (v: string, dictType: string) => {
return props.dictData[dictType]?.find((item: any) => item.value == v)?.label || v;
}
</script>
<style scoped></style>

View File

@ -105,17 +105,15 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { viewBackup } from '@/api/liswork/work/LisWork';
import SelectTable from '@/components/SelectTable/index.vue'; import SelectTable from '@/components/SelectTable/index.vue';
const props = defineProps({ const props = defineProps({
backTableData: { tableKey: {
type: Array,
default: () => [],
},
backLabInfo: {
type: Object, type: Object,
default: () => { }, required: true,
}, },
userList: { userList: {
type: Array as PropType<object[]>, type: Array as PropType<object[]>,
default: () => [], default: () => [],
@ -143,6 +141,12 @@ const backTableData = ref([])
const backLabInfo: any = ref({}) const backLabInfo: any = ref({})
const openDialog = () => { const openDialog = () => {
viewBackup(props.tableKey).then((res: any) => {
if (res.data) {
backTableData.value = res.data.labresultbk
backLabInfo.value = res.data.labpatbk || {}
}
})
backShow.value = true backShow.value = true
} }

View File

@ -133,8 +133,8 @@ import {
import { querylabInstrList, querylabInstrListByLisgroup } from "../../../api/liswork/dict/LabInstr"; import { querylabInstrList, querylabInstrListByLisgroup } from "../../../api/liswork/dict/LabInstr";
import { getComDicts, queryComDictListService } from "../../../api/liswork/dict/ComDict"; import { getComDicts, queryComDictListService } from "../../../api/liswork/dict/ComDict";
import LabPatForm from './components/labpat.vue' import LabPatForm from './components/labpat.vue'
import LabResultForm from './components/labresult.vue' import LabResultForm from './labresult.vue'
import LabPatListForm from './components/labpatlist.vue' import LabPatListForm from './labpatlist.vue'
import Unconfirmlog from './components/unconfirmlog.vue' import Unconfirmlog from './components/unconfirmlog.vue'
import Ddlb from './components/ddlb.vue' import Ddlb from './components/ddlb.vue'
import CheckUser from './components/CheckUser.vue' import CheckUser from './components/CheckUser.vue'

View File

@ -123,14 +123,14 @@
<script setup lang="ts"> <script setup lang="ts">
import { ref, nextTick, onMounted, toRaw } from 'vue'; import { ref, nextTick, onMounted, toRaw } from 'vue';
import LabPat from './components/labpat.vue'; import LabPat from './labpat.vue';
import SelectTable from '@/components/SelectTable/index.vue'; import SelectTable from '@/components/SelectTable/index.vue';
import tabView from '@/components/tabViews/index.vue'; import tabView from '@/components/tabViews/index.vue';
// @ts-ignore // @ts-ignore
import iFrame from "@/components/iFrame/index.vue"; import iFrame from "@/components/iFrame/index.vue";
// @ts-ignore // @ts-ignore
import LabResult from './components/labresult.vue'; import LabResult from './labresult.vue';
import LabPatList from './components/labpatlist.vue'; import LabPatList from './labpatlist.vue';
// @ts-ignore // @ts-ignore
import { comDict } from '@/utils/dict' import { comDict } from '@/utils/dict'
import { queryLabPatList, queryLabResults, loadDefault, queryLabPat, instrdconfig, delSample, getGroupInstrdList } from "@/api/liswork/work/LisWork"; import { queryLabPatList, queryLabResults, loadDefault, queryLabPat, instrdconfig, delSample, getGroupInstrdList } from "@/api/liswork/work/LisWork";

View File

@ -71,7 +71,7 @@
import { ref, reactive, watch, toRaw, computed, onMounted, nextTick } from 'vue'; import { ref, reactive, watch, toRaw, computed, onMounted, nextTick } from 'vue';
import { changepatcolumn, updateLabPat, checkYsUser } from "@/api/liswork/work/LisWork"; import { changepatcolumn, updateLabPat, checkYsUser } from "@/api/liswork/work/LisWork";
import SelectTable from '@/components/SelectTable/index.vue'; import SelectTable from '@/components/SelectTable/index.vue';
import YhVerification from './yhVerification.vue'; import YhVerification from './components/yhVerification.vue';
import emitter from '@/utils/mitt'; import emitter from '@/utils/mitt';
import { classCom } from '@/utils/classCom'; import { classCom } from '@/utils/classCom';

View File

@ -11,8 +11,8 @@
@click="handleBatchDelete">删除</el-button> @click="handleBatchDelete">删除</el-button>
</div> </div>
<div> <div>
<el-button type="primary" plain icon="Files" :size="aotuSize" @click="printHandle">打印</el-button> <el-button type="primary" plain icon="Files" :size="aotuSize" @click="previewHandle(1)">打印</el-button>
<el-button type="primary" plain icon="View" :size="aotuSize" @click="previewHandle">预览</el-button> <el-button type="primary" plain icon="View" :size="aotuSize" @click="previewHandle(2)">预览</el-button>
</div> </div>
</div> </div>
<ContextMenu :items="contextMenuItems" @select="handleMenuSelect"> <ContextMenu :items="contextMenuItems" @select="handleMenuSelect">
@ -77,87 +77,26 @@
<!-- 校验用户 --> <!-- 校验用户 -->
<CheckUser ref="checkUserRef" :title="checktitle" @onConfirm="handleCheckUserConfirm" /> <CheckUser ref="checkUserRef" :title="checktitle" @onConfirm="handleCheckUserConfirm" />
<!-- 危急值结果上报 --> <!-- 危急值结果上报 -->
<UploadWarning ref="uploadwarningRef" :warningMsgdata="warningMsgdata" :tableKey="tableKey" <UploadWarning ref="uploadwarningRef" :warningMsgdata="warningMsgdata" :tableKey="tableKey"
@onupload="shHandleCheck" /> @onupload="shHandleCheck" />
<!-- 操作原因 --> <!-- 操作原因 -->
<Unconfirmlog ref="unconfirmlogRef" :reasonText="reasonText" :tableKey="tableKey" @onConfirm="unShHandle" /> <Unconfirmlog ref="unconfirmlogRef" :reasonText="reasonText" :tableKey="tableKey" @onConfirm="unShHandle" />
<!-- 合并当前病人其他结果 --> <!-- 合并当前病人其他结果 -->
<el-dialog v-model="jgShow" title="绑定其他结果" width="40vw" :close-on-click-modal="false" :draggable="true"> <MergeResults ref="mergeRef" :tableKey="tableKey" :dictData="dictData" />
<el-row>
<el-col :span="8">
<el-radio-group v-model="radio2">
<el-radio value="1">5天内</el-radio>
<el-radio value="2">10天内</el-radio>
<el-radio value="2">20天内</el-radio>
<el-radio value="2">30天内</el-radio>
</el-radio-group>
</el-col>
<el-col :span="4">
<el-radio-group v-model="radio2">
<el-radio value="1">复制</el-radio>
<el-radio value="2">移动</el-radio>
</el-radio-group>
</el-col>
<el-col :span="4">
<el-radio-group v-model="radio2">
<el-radio value="1">覆盖</el-radio>
<el-radio value="2">不覆盖</el-radio>
</el-radio-group>
</el-col>
<el-col :span="8">
<div> <el-checkbox>只显示同一申请单号</el-checkbox> </div>
<div>
<el-button type="primary">合并</el-button>
<el-button>取消</el-button>
</div>
</el-col>
</el-row>
<CustomTable :data="mTableData" :columns="mColumns" :config="mTableConfig" :enable-column-drag="true"
@column-drag-end="mDragEnd" @selection-change="mSelectionChange">
<template #brxb="{ row }">
{{ formatDict(row.brxb, 'SX') }}
</template>
<template #nldw="{ row }">
{{ formatDict(row.nldw, 'AU') }}
</template>
</CustomTable>
</el-dialog>
<!-- 用户校验 --> <!-- 用户校验 -->
<userVerification ref="formRef" :title="verTitle" :form-value="formData" :userList="userList" <userVerification ref="formRef" :title="verTitle" :userList="userList" @confirm="handleConfirm" />
@confirm="handleConfirm" @cancel="handleCancel" />
<!-- 双工流水线 --> <!-- 双工流水线 -->
<el-dialog v-model="dlShow" title="双工流水线申请单列表" width="40vw" :close-on-click-modal="false" :draggable="true"> <DlDialog ref="dlRef" :tableKey="tableKey" :dictData="dictData" />
<div class="mb10">
<el-button type="primary" @click="getDlList">刷新</el-button>
<el-button type="primary" @click="cfHandle">重发申请单</el-button>
<el-button @click="closeHandle">取消申请单</el-button>
</div>
<CustomTable :data="dlTableData" :columns="dlColumns" :config="dlTableConfig" :enable-column-drag="true"
@column-drag-end="dlDragEnd" @selection-change="dlSelectionChange">
<template #instrid="{ row }">
{{ row.instrid ? dlObj[row.instrid] : '未发送指令' }}
</template>
<template #brxb="{ row }">
{{ formatDict(row.brxb, 'SX') }}
</template>
<template #nldw="{ row }">
{{ formatDict(row.nldw, 'AU') }}
</template>
</CustomTable>
<div class="mt5" style="text-align: center;color:blue;">样本总数:{{ dlTableData.length }}</div>
</el-dialog>
<!-- 查看备份数据 --> <!-- 查看备份数据 -->
<ViewBackup ref="backRef" :backLabInfo="backLabInfo" :backTableData="backTableData" :userList="userList" <ViewBackup ref="backRef" :tableKey="tableKey" :userList="userList" :dictData="dictData" />
:dictData="dictData" />
<!-- 未建项目结果 --> <!-- 未建项目结果 -->
<BuiltDialog ref="builtRef" :tableKey="tableKey" @clearPro="clearProHandle" /> <BuiltDialog ref="builtRef" :tableKey="tableKey" @clearPro="clearProHandle" />
</div> </div>
@ -167,24 +106,26 @@
import { ref, toRefs, watch, nextTick, onMounted, computed } from "vue"; import { ref, toRefs, watch, nextTick, onMounted, computed } from "vue";
import userVerification from "@/components/userVerification/index.vue"; import userVerification from "@/components/userVerification/index.vue";
import { import {
check1, check2, uncheck2, unconfirmlog, checkuser, reglimit, deleteresult, changeresult, allPatquery, emrquery, datalink, changeLinkList, check1, check2, uncheck2, checkuser, deleteresult, changeresult, allPatquery, emrquery,
viewBackup, newresult, queryXmVal, printListwork, getresultchangelog, setinputmdl, saveResult, lockSample, unLockSample, clearnotComplete, clearPrintflag, newresult, queryXmVal, printListwork, getresultchangelog, setinputmdl, saveResult, lockSample, unLockSample, clearnotComplete, clearPrintflag
noiteMresult, queryXmInfo, setitemInter
} from "@/api/liswork/work/LisWork"; } from "@/api/liswork/work/LisWork";
import { ElMessageBox, ElMessage } from "element-plus"; import { ElMessageBox, ElMessage } from "element-plus";
import ProjectDetails from "@/components/projectDetails/index.vue"; import ProjectDetails from "@/components/projectDetails/index.vue";
import projectsJg from "@/components/projectsjg/index.vue" import projectsJg from "@/components/projectsjg/index.vue"
import BuiltDialog from "./builtDialog.vue"; import BuiltDialog from "./components/builtDialog.vue";
import { classCom } from '@/utils/classCom' import { classCom } from '@/utils/classCom'
import CustomTable from '@/components/elTable/index.vue' import CustomTable from '@/components/elTable/index.vue'
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import emitter from "@/utils/mitt"; import emitter from "@/utils/mitt";
import CheckUser from "./CheckUser.vue"; import CheckUser from "./components/CheckUser.vue";
import Unconfirmlog from './unconfirmlog.vue'; import Unconfirmlog from './components/unconfirmlog.vue';
import UploadWarning from "./uploadwarning.vue"; import UploadWarning from "./components/uploadwarning.vue";
import { useCommonStore } from "@/store/modules/commonStore"; import { useCommonStore } from "@/store/modules/commonStore";
import ContextMenu from "@/components/contextMenu/index.vue"; import ContextMenu from "@/components/contextMenu/index.vue";
import ViewBackup from "./viewBackup.vue"; import ViewBackup from "./components/viewBackup.vue";
import DlDialog from "./components/dlDialog.vue";
import MergeResults from "./components/mergeResults.vue";
import { dictData } from "@/hooks";
// 组件属性定义 // 组件属性定义
const props = defineProps({ const props = defineProps({
resultSysList: { type: Array, required: true }, resultSysList: { type: Array, required: true },
@ -289,10 +230,10 @@ const contextMenuItems = computed(() => [
const handleMenuSelect = (item) => { const handleMenuSelect = (item) => {
switch (item.action) { switch (item.action) {
case 'view': case 'view':
printHandle() //打印预览 previewHandle(1) //打印预览
break; break;
case 'bgyl': case 'bgyl':
previewHandle() //PDF报告预览 previewHandle(2) //PDF报告预览
break; break;
case 'merge': case 'merge':
mergeHandle() mergeHandle()
@ -357,36 +298,9 @@ const clearProHandle = () => {
} }
}) })
}; };
const mTableData = ref([]) const mergeRef = ref()
const mColumns = ref([
{ label: "选择", type: 'selection', align: 'center', width: 40, visible: true, },
{ label: "仪器", prop: "yq", visible: true, },
{ label: "检验日期", prop: "jyrq", visible: true, },
{ label: "样本号", prop: "ybh", visible: true, },
{ label: "病历号", prop: "brdh", visible: true, },
{ label: "病人姓名", prop: "brxm", visible: true, },
{ label: "年", prop: "nl", width: 40, visible: true, },
{ label: "龄", prop: "nldw", width: 30, visible: true, slot: "nldw" },
{ label: "检验项目", prop: "xmdh", visible: true, },
{ label: "检验结果", prop: "csjg", width: 60, visible: true, },
{ label: "申请号", prop: "sqh", visible: true, },
])
const mTableConfig = {
border: true
}
const mDragEnd = (data) => {
mColumns.value = data.columns
}
const mSelectionChange = (data) => {
}
const mergeHandle = () => { const mergeHandle = () => {
jgShow.value = true; mergeRef.value.open()
}; };
const emrqueryHandle = () => { const emrqueryHandle = () => {
@ -404,94 +318,17 @@ const patqueryHandle = () => {
}) })
}; };
const backRef = ref() const backRef = ref()
const backLabInfo = ref({})
const backTableData = ref([])
const viewbackupHandle = () => { const viewbackupHandle = () => {
viewBackup(tableKey.value).then(res => {
if (res.data) {
backTableData.value = res.data.labresultbk
backLabInfo.value = res.data.labpatbk
}
})
backRef.value.openDialog() backRef.value.openDialog()
}; };
const dlObj = {
0: '申请发送',
1: '已发送指令',
2: '申请撤销中'
}
const dlShow = ref(false)
const dlTableData = ref([])
const dlColumns = ref([
{ label: "选择", type: 'selection', align: 'center', width: 40, visible: true, },
{ label: "动作状态", prop: "instrid", align: 'center', visible: true, slot: 'instrid' },
{ label: "申请号", prop: "sqh", align: 'center', visible: true, },
{ label: "样本号", prop: "ybh", align: 'center', visible: true, },
{ label: "姓名", prop: "brxm", align: 'center', visible: true, },
{ label: "性别", prop: "brxb", width: 30, align: 'center', visible: true, slot: 'brxb' },
{ label: "年", prop: "nl", width: 30, align: 'center', visible: true, },
{ label: "龄", prop: "nldw", width: 30, align: 'center', visible: true, slot: "nldw" },
{ label: "检验目的", prop: "jymd", width: 180, visible: true, },
])
const dlTableConfig = ref({
border: true, const dlRef = ref()
maxHeight: 500,
cellStyle: ({ row, column }) => {
if (row.instrid == 1) {
return { background: '#c0c0c0 !important' }
}
},
})
const dlDragEnd = (data) => {
dlColumns.value = data.columns
}
const dlList = ref([])
const dlSelectionChange = (selection) => {
dlList.value = selection
}
const datalinkHandle = () => { const datalinkHandle = () => {
getDlList() dlRef.value.open()
dlShow.value = true;
}; };
const getDlList = () => {
datalink(tableKey.value).then(res => {
dlTableData.value = res.data;
})
}
const cfHandle = () => {
if (dlList.value.length < 0) return ElMessage.warning('请选择数据')
const arr = dlList.value.filter(item => item.instrid == 1)
arr.forEach(v => {
v.instrid = null
})
changeLinkList(arr).then(res => {
if (res.code == 0) {
getDlList()
}
})
}
const closeHandle = () => {
dlList.value.forEach(v => {
v.instrid = 2
})
changeLinkList(dlList.value).then(res => {
if (res.code == 0) {
getDlList()
}
})
}
const formRef = ref();
const formData = ref({
yhdh: '',
userName: '',
mm: '',
})
const verTitle = ref('请输入锁定人员账号密码') const verTitle = ref('请输入锁定人员账号密码')
const lockType = ref(1) const lockType = ref(1)
// 锁定报告 // 锁定报告
@ -513,9 +350,13 @@ const unlockHandle = () => {
// 锁定样本 // 锁定样本
const handleConfirm = (data) => { const handleConfirm = (data) => {
const obj = { const obj = {
...tableKey.value,
yhdh: data.yhdh, yhdh: data.yhdh,
...tableKey.value
} }
emits('update:tableKey', {
...tableKey.value,
yhdh: info.yhdh
});
if (lockType.value == 1) { if (lockType.value == 1) {
lockSample(obj).then((res) => { lockSample(obj).then((res) => {
if (res.code == 0) { if (res.code == 0) {
@ -534,13 +375,7 @@ const handleConfirm = (data) => {
}); });
} }
} }
const handleCancel = () => {
formData.value = {
yhdh: '',
userName: '',
mm: '',
}
}
const columns = ref([ const columns = ref([
{ label: 'No', prop: 'index', width: 30, align: 'center', visible: true, slot: "index" }, { label: 'No', prop: 'index', width: 30, align: 'center', visible: true, slot: "index" },
{ label: "复", prop: "redo_flag", width: 30, align: 'center', visible: true, }, { label: "复", prop: "redo_flag", width: 30, align: 'center', visible: true, },
@ -650,7 +485,11 @@ const handleCheckUserConfirm = (info) => {
...tableKey.value, ...tableKey.value,
yhdh: info.yhdh yhdh: info.yhdh
}); });
// 异步处理 等待yhdh数据更新
setTimeout(() => {
proceedCheck(runnextstepname.value) proceedCheck(runnextstepname.value)
}, 100);
} }
}) })
} }
@ -658,7 +497,7 @@ const handleCheckUserConfirm = (info) => {
const proceedCheck = (checkType) => { const proceedCheck = (checkType) => {
switch (checkType) { switch (checkType) {
case 1: // 初审 case 1: // 初审
check1({ ...tableKey.value, yhdh: props.labPat.yhdh }).then(res => { check1({ ...tableKey.value }).then(res => {
emits("changeStatus", props.labPat); emits("changeStatus", props.labPat);
}) })
break; break;
@ -676,7 +515,7 @@ const proceedCheck = (checkType) => {
} }
const uploadwarningRef = ref(); const uploadwarningRef = ref();
const shHandleCheck = () => { const shHandleCheck = () => {
check2({ ...props.tableKey, yhdh: props.labPat.yhdh }).then(res => { check2({ ...props.tableKey }).then(res => {
emits("changeStatus", props.labPat); emits("changeStatus", props.labPat);
if (res.code == "4" && res.problemId === 4) { if (res.code == "4" && res.problemId === 4) {
tableKey.value.problemId = res.problemId; tableKey.value.problemId = res.problemId;
@ -689,8 +528,7 @@ const shHandleCheck = () => {
const unconfirmlogRef = ref(); const unconfirmlogRef = ref();
const unShHandle = () => { const unShHandle = () => {
uncheck2({ ...tableKey.value, yhdh: props.labPat.yhdh }).then(res => { uncheck2({ ...tableKey.value }).then(res => {
console.log('res', res);
if (res.code == "4") { if (res.code == "4") {
tableKey.value.problemId = res.problemId; tableKey.value.problemId = res.problemId;
reasonText.value = res.msg; reasonText.value = res.msg;
@ -912,7 +750,8 @@ const handleBatchDelete = () => {
}); });
}; };
const printHandle = () => {
const previewHandle = (type) => {
const data = { const data = {
jyrq: tableKey.value.jyrq, jyrq: tableKey.value.jyrq,
yq: tableKey.value.yq, yq: tableKey.value.yq,
@ -921,21 +760,12 @@ const printHandle = () => {
} }
printListwork(data).then(res => { printListwork(data).then(res => {
if (res.code == 0) { if (res.code == 0) {
if (type == 1) {
classCom.printBase64PDF(res.data) classCom.printBase64PDF(res.data)
} } else {
})
};
const previewHandle = () => {
const data = {
jyrq: tableKey.value.jyrq,
yq: tableKey.value.yq,
ybh: tableKey.value.ybh,
sqh: tableKey.value.sqh
}
printListwork(data).then(res => {
if (res.code == 0) {
emits('previewHandle', res.data); emits('previewHandle', res.data);
} }
}
}) })
}; };