wsw右键功能
This commit is contained in:
parent
ccc7165298
commit
75b2b75065
@ -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;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -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) {
|
||||||
|
|||||||
@ -10,46 +10,48 @@
|
|||||||
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>
|
||||||
<CustomTable ref="tableRef" :data="tableData" :columns="columns" :config="tableConfig" :enable-column-drag="true"
|
<ContextMenu :items="contextMenuItems" @select="handleMenuSelect">
|
||||||
@column-drag-end="handleColumnDragEnd" @row-click="rowHandle">
|
<CustomTable ref="tableRef" :data="tableData" :columns="columns" :config="tableConfig" :enable-column-drag="true"
|
||||||
<template #xmdh="{ column }">
|
@column-drag-end="handleColumnDragEnd" @row-click="rowHandle">
|
||||||
细菌/结果({{ tableData.length }})项
|
<template #xmdh="{ column }">
|
||||||
</template>
|
细菌/结果({{ tableData.length }})项
|
||||||
<template #od="{ row }">
|
</template>
|
||||||
<el-input v-model="row.od" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<template #od="{ row }">
|
||||||
class="full-width-input foucs-input" @change="handleCsjgEnter(row)" />
|
<el-input v-model="row.od" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
||||||
<span v-else>{{ row.od }}</span>
|
class="full-width-input foucs-input" @change="handleCsjgEnter(row)" />
|
||||||
</template>
|
<span v-else>{{ row.od }}</span>
|
||||||
<template #csjg="{ row }">
|
</template>
|
||||||
<el-input v-model="row.csjg" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<template #csjg="{ row }">
|
||||||
class="full-width-input" @change="handleCsjgEnter(row)" @dblclick="handleInputFocus(row)" />
|
<el-input v-model="row.csjg" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
||||||
<span v-else>{{ row.csjg }}</span>
|
class="full-width-input" @change="handleCsjgEnter(row)" @dblclick="handleInputFocus(row)" />
|
||||||
</template>
|
<span v-else>{{ row.csjg }}</span>
|
||||||
<template #jgbz="{ row }">
|
</template>
|
||||||
<el-select v-model="row.jgbz" class="full-width-input" v-if="labPat.jgbz == 0 || labPat.jgbz == null"
|
<template #jgbz="{ row }">
|
||||||
placeholder="" @change="handleCsjgEnter(row)">
|
<el-select v-model="row.jgbz" class="full-width-input" v-if="labPat.jgbz == 0 || labPat.jgbz == null"
|
||||||
<el-option label="阳性" value="P" />
|
placeholder="" @change="handleCsjgEnter(row)">
|
||||||
<el-option label="阴性" value="N" />
|
<el-option label="阳性" value="P" />
|
||||||
</el-select>
|
<el-option label="阴性" value="N" />
|
||||||
<span v-else> {{ formatJgbz(row.jgbz) }}</span>
|
</el-select>
|
||||||
</template>
|
<span v-else> {{ formatJgbz(row.jgbz) }}</span>
|
||||||
<template #cutoff="{ row }">
|
</template>
|
||||||
<el-input v-model="row.cutoff" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
<template #cutoff="{ row }">
|
||||||
class="full-width-input" @change="handleCsjgEnter(row)" />
|
<el-input v-model="row.cutoff" v-if="labPat.jgbz == 0 || labPat.jgbz == null" size="small"
|
||||||
<span v-else>{{ row.cutoff }}</span>
|
class="full-width-input" @change="handleCsjgEnter(row)" />
|
||||||
</template>
|
<span v-else>{{ row.cutoff }}</span>
|
||||||
<template #alarm_flag="{ row }">
|
</template>
|
||||||
<el-select v-model="row.alarm_flag" class="full-width-input" v-if="labPat.jgbz == 0 || labPat.jgbz == null"
|
<template #alarm_flag="{ row }">
|
||||||
placeholder="" @change="handleCsjgEnter(row)">
|
<el-select v-model="row.alarm_flag" class="full-width-input" v-if="labPat.jgbz == 0 || labPat.jgbz == null"
|
||||||
<el-option label="危急值" value="H" />
|
placeholder="" @change="handleCsjgEnter(row)">
|
||||||
<el-option label="无" value="" />
|
<el-option label="危急值" value="H" />
|
||||||
</el-select>
|
<el-option label="无" value="" />
|
||||||
<span v-else> {{ row.alarm_flag == 'H' ? '危急值' : '' }}</span>
|
</el-select>
|
||||||
</template>
|
<span v-else> {{ row.alarm_flag == 'H' ? '危急值' : '' }}</span>
|
||||||
<template #germclass="{ row }">
|
</template>
|
||||||
{{ formatDict(row.germclass, 'germclass') }}
|
<template #germclass="{ row }">
|
||||||
</template>
|
{{ formatDict(row.germclass, 'germclass') }}
|
||||||
</CustomTable>
|
</template>
|
||||||
|
</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
|
||||||
});
|
});
|
||||||
proceedCheck(runnextstepname.value)
|
// 异步处理 等待yhdh数据更新
|
||||||
|
setTimeout(() => {
|
||||||
|
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. 构造新增行数据
|
||||||
|
|||||||
130
src/views/liswork/work/components/dlDialog.vue
Normal file
130
src/views/liswork/work/components/dlDialog.vue
Normal 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>
|
||||||
113
src/views/liswork/work/components/mergeResults.vue
Normal file
113
src/views/liswork/work/components/mergeResults.vue
Normal 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>
|
||||||
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -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'
|
||||||
|
|||||||
@ -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";
|
||||||
|
|||||||
@ -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';
|
||||||
@ -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
|
||||||
});
|
});
|
||||||
proceedCheck(runnextstepname.value)
|
|
||||||
|
// 异步处理 等待yhdh数据更新
|
||||||
|
setTimeout(() => {
|
||||||
|
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,20 +760,11 @@ const printHandle = () => {
|
|||||||
}
|
}
|
||||||
printListwork(data).then(res => {
|
printListwork(data).then(res => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
classCom.printBase64PDF(res.data)
|
if (type == 1) {
|
||||||
}
|
classCom.printBase64PDF(res.data)
|
||||||
})
|
} else {
|
||||||
};
|
emits('previewHandle', res.data);
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
Loading…
x
Reference in New Issue
Block a user