|
@@ -79,10 +79,13 @@
|
|
|
<div style="position: fixed; top: 180px; left: 1230px">
|
|
|
<img v-if="sheet.zyDismissWay === '4'" :src="patientdead" alt="">
|
|
|
<div v-if="sheet.duplicated">
|
|
|
- <img :src="baduplicated" alt="">
|
|
|
+ <img class="img-state" :src="baduplicated" alt="" @click="showMarkStateDetail('DUPLICATE')">
|
|
|
+ </div>
|
|
|
+ <div v-if="sheet.lendout">
|
|
|
+ <img class="img-state" :src="balendout" alt="" @click="showLendOutDetail">
|
|
|
</div>
|
|
|
<div v-if="sheet.closedown">
|
|
|
- <img :src="baclosedown" alt="">
|
|
|
+ <img class="img-state" :src="baclosedown" alt="" @click="showMarkStateDetail('CLOSEDOWN')">
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -305,39 +308,100 @@
|
|
|
|
|
|
<el-dialog v-model="showMarkStateDialog" :title="markStateTitle" width="450px">
|
|
|
<div style="margin-top: 30px;display: flex">
|
|
|
- <div style="width: 80px">
|
|
|
+ <div style="width: 90px">
|
|
|
+ 病案管理员:
|
|
|
+ </div>
|
|
|
+ <el-input style="width: 300px" v-model="markStateRequest.userName" disabled></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 12px;display: flex">
|
|
|
+ <div style="width: 90px">
|
|
|
住院号:
|
|
|
</div>
|
|
|
<el-input style="width: 300px" v-model="markStateRequest.bah" disabled></el-input>
|
|
|
</div>
|
|
|
<div style="margin-top: 12px;display: flex">
|
|
|
- <div style="width: 80px">
|
|
|
+ <div style="width: 90px">
|
|
|
住院次数:
|
|
|
</div>
|
|
|
<el-input style="width: 300px" v-model="markStateRequest.times" disabled></el-input>
|
|
|
</div>
|
|
|
<div style="margin-top: 12px;display: flex">
|
|
|
- <div style="width: 80px">
|
|
|
+ <div style="width: 90px">
|
|
|
+ {{markStateTitle}}时间:
|
|
|
+ </div>
|
|
|
+ <el-input style="width: 300px" v-model="markStateRequest.markTime" disabled></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 12px;display: flex">
|
|
|
+ <div style="width: 90px">
|
|
|
来访人员:
|
|
|
</div>
|
|
|
<el-input style="width: 300px" v-model="markStateRequest.visitStaff"></el-input>
|
|
|
</div>
|
|
|
<div style="margin-top: 12px;display: flex">
|
|
|
- <div style="width: 80px">
|
|
|
+ <div style="width: 90px">
|
|
|
备注:
|
|
|
</div>
|
|
|
<el-input type="textarea" style="width: 300px" v-model="markStateRequest.remark"></el-input>
|
|
|
</div>
|
|
|
+
|
|
|
<template #footer>
|
|
|
- <div>
|
|
|
- <el-button type="primary" @click="executeDuplicateOrClosedown">提交</el-button>
|
|
|
- <el-button @click="printMarkStateRequest">打印</el-button>
|
|
|
+ <div style="margin-top: -12px">
|
|
|
+ <el-button type="primary" @click="executeDuplicateOrClosedown(false)">提交</el-button>
|
|
|
+ <el-button type="primary" @click="printMarkStateRequest">打印</el-button>
|
|
|
+ <el-button type="success" @click="submitAndPrint">提交并打印</el-button>
|
|
|
</div>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
|
|
|
+
|
|
|
+ <el-dialog v-model="lendOutDetailVisible" title="借阅详情" width="450px">
|
|
|
+ <div style="margin-top: 30px;display: flex">
|
|
|
+ <div style="width: 100px">
|
|
|
+ 病案管理员:
|
|
|
+ </div>
|
|
|
+ <el-input style="width: 300px" v-model="lendOutDetail.opStaff" readonly></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 12px;display: flex">
|
|
|
+ <div style="width: 100px">
|
|
|
+ 住院号:
|
|
|
+ </div>
|
|
|
+ <el-input style="width: 300px" v-model="lendOutDetail.bah" readonly></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 12px;display: flex">
|
|
|
+ <div style="width: 100px">
|
|
|
+ 住院次数:
|
|
|
+ </div>
|
|
|
+ <el-input style="width: 300px" v-model="lendOutDetail.times" readonly></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 12px;display: flex">
|
|
|
+ <div style="width: 100px">
|
|
|
+ 借阅时间:
|
|
|
+ </div>
|
|
|
+ <el-input style="width: 300px" v-model="lendOutDetail.lendTime" readonly></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 12px;display: flex">
|
|
|
+ <div style="width: 100px">
|
|
|
+ 借阅人员:
|
|
|
+ </div>
|
|
|
+ <el-input style="width: 300px" v-model="lendOutDetail.lendStaff" readonly></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 12px;display: flex">
|
|
|
+ <div style="width: 100px">
|
|
|
+ 借阅人员电话:
|
|
|
+ </div>
|
|
|
+ <el-input style="width: 300px" v-model="lendOutDetail.lendStaffPhone" readonly></el-input>
|
|
|
+ </div>
|
|
|
+ <div style="margin-top: 12px;display: flex">
|
|
|
+ <div style="width: 100px">
|
|
|
+ 备注:
|
|
|
+ </div>
|
|
|
+ <el-input type="textarea" style="width: 300px" v-model="lendOutDetail.remark" readonly></el-input>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
<el-dialog v-model="showLendOut" title="借阅管理" style="width: 600px">
|
|
|
- <LendOut />
|
|
|
+ <LendOut :lend-time="currentTime" :user-name="userName" />
|
|
|
</el-dialog>
|
|
|
</template>
|
|
|
</page-layer>
|
|
@@ -357,7 +421,7 @@ import {
|
|
|
executeUnArchiveBa,
|
|
|
getAllDictionary,
|
|
|
getAllWards,
|
|
|
- getSheetInfo, markClosedown, markDuplicate,
|
|
|
+ getSheetInfo, markClosedown, markDuplicate, getMarkStateDetail, getLendOutDetail,
|
|
|
sheetSearch, signedByDateCount,
|
|
|
} from '@/api/case-front-sheet'
|
|
|
import maleIcon from '@/assets/male-icon.png'
|
|
@@ -374,9 +438,9 @@ import SheetQuality from '@/components/inpatient/CaseFrontSheetQuality.vue'
|
|
|
import PageLayer from "@/layout/PageLayer";
|
|
|
import patientdead from '@/assets/case-frontsheet/patient-dead.png'
|
|
|
import baduplicated from '@/assets/case-frontsheet/ba-duplicated.png'
|
|
|
+import balendout from '@/assets/case-frontsheet/ba-lendout.png'
|
|
|
import baclosedown from '@/assets/case-frontsheet/ba-closedown.png'
|
|
|
import LendOut from "@/components/inpatient/frontsheet-printpage/LendOut.vue";
|
|
|
-import {isDev} from "@/utils/public";
|
|
|
|
|
|
const showSheetQuality = ref(false)
|
|
|
const currentPage = ref(1)
|
|
@@ -385,6 +449,7 @@ const handleCurrentPageChange = (val) => {
|
|
|
}
|
|
|
const userWards = ref([])
|
|
|
const windowSize = store.state.app.windowSize
|
|
|
+const userName = store.state.user.info.name
|
|
|
const tableHeight = windowSize.h - 50
|
|
|
const overview = ref([])
|
|
|
let sheet = ref({
|
|
@@ -550,8 +615,8 @@ const signData = ref({})
|
|
|
const currentSignStaff = ref('')
|
|
|
|
|
|
const dateOffset = (val) => {
|
|
|
- let currentTime = new Date(signDate.value).getTime()
|
|
|
- signDate.value = new Date(currentTime + (3600 * 24 * val * 1000) )
|
|
|
+ let nowtime = new Date(signDate.value).getTime()
|
|
|
+ signDate.value = new Date(nowtime + (3600 * 24 * val * 1000))
|
|
|
handleSignDateChange(signDate.value)
|
|
|
}
|
|
|
|
|
@@ -569,7 +634,7 @@ const clickSignStaff = (key) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-const showLendOut = ref(isDev)
|
|
|
+const showLendOut = ref(false)
|
|
|
const handleCommand = (val) => {
|
|
|
switch (val) {
|
|
|
case 'dismissCount':
|
|
@@ -607,6 +672,7 @@ const handleCommand = (val) => {
|
|
|
beforeDuplicateOrClosedown('CLOSEDOWN')
|
|
|
break
|
|
|
case 'lendout':
|
|
|
+ currentTime.value = formatDatetime(new Date())
|
|
|
showLendOut.value = true
|
|
|
break
|
|
|
}
|
|
@@ -845,20 +911,19 @@ const handleCurrentDismissCountPageChange = (val) => {
|
|
|
currentDismissCountPage.value = val
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
const showMarkStateDialog = ref(false)
|
|
|
const markStateType = ref('')
|
|
|
+const currentTime = ref('')
|
|
|
const markStateTitle = computed(() => {
|
|
|
return markStateType.value === 'DUPLICATE' ? '复印' : '封存'
|
|
|
})
|
|
|
const markStateRequest = reactive({
|
|
|
+ userName: null,
|
|
|
bah: null,
|
|
|
times: null,
|
|
|
visitStaff: null,
|
|
|
remark: null,
|
|
|
+ markTime: null,
|
|
|
})
|
|
|
|
|
|
const beforeDuplicateOrClosedown = (type) => {
|
|
@@ -869,42 +934,76 @@ const beforeDuplicateOrClosedown = (type) => {
|
|
|
return
|
|
|
}
|
|
|
markStateType.value = type
|
|
|
+ markStateRequest.userName = userName
|
|
|
markStateRequest.bah = sheet.value.bah
|
|
|
markStateRequest.times = sheet.value.admissTimes
|
|
|
+ markStateRequest.markTime = formatDatetime(new Date())
|
|
|
showMarkStateDialog.value = true
|
|
|
}
|
|
|
|
|
|
-const executeDuplicateOrClosedown = () => {
|
|
|
- if (markStateType.value === 'DUPLICATE') {
|
|
|
- markDuplicate(markStateRequest).then(res => {
|
|
|
- ElMessage({
|
|
|
- message: '操作成功',
|
|
|
- type: 'success'
|
|
|
+const executeDuplicateOrClosedown = (keepDialogVisible) => {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ if (markStateType.value === 'DUPLICATE') {
|
|
|
+ markDuplicate(markStateRequest).then(res => {
|
|
|
+ ElMessage({
|
|
|
+ message: '操作成功',
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ sheet.value.duplicated += 1
|
|
|
+ showMarkStateDialog.value = keepDialogVisible
|
|
|
+ resolve()
|
|
|
})
|
|
|
- sheet.value.duplicated += 1
|
|
|
- showMarkStateDialog.value = false
|
|
|
- })
|
|
|
- } else {
|
|
|
- markClosedown(markStateRequest).then(res => {
|
|
|
- ElMessage({
|
|
|
- message: '操作成功',
|
|
|
- type: 'success'
|
|
|
+ } else {
|
|
|
+ markClosedown(markStateRequest).then(res => {
|
|
|
+ ElMessage({
|
|
|
+ message: '操作成功',
|
|
|
+ type: 'success'
|
|
|
+ })
|
|
|
+ sheet.value.closedown += 1
|
|
|
+ showMarkStateDialog.value = keepDialogVisible
|
|
|
+ resolve()
|
|
|
})
|
|
|
- sheet.value.closedown += 1
|
|
|
- showMarkStateDialog.value = false
|
|
|
- })
|
|
|
- }
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
|
|
|
const printMarkStateRequest = () => {
|
|
|
window.print()
|
|
|
}
|
|
|
|
|
|
+const submitAndPrint = () => {
|
|
|
+ executeDuplicateOrClosedown(true).then(() => {
|
|
|
+ printMarkStateRequest()
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+function showMarkStateDetail(type) {
|
|
|
+ getMarkStateDetail(sheet.value.bah, sheet.value.admissTimes, type).then(res => {
|
|
|
+ markStateRequest.bah = res.bah
|
|
|
+ markStateRequest.times = res.times
|
|
|
+ markStateRequest.opStaff = res.opStaff
|
|
|
+ markStateRequest.userName = res.opStaff
|
|
|
+ markStateRequest.visitStaff = res.visitStaff
|
|
|
+ markStateRequest.remark = res.remark
|
|
|
+ markStateRequest.markTime = res.markTime
|
|
|
+ showMarkStateDialog.value = true
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+const lendOutDetail = ref({})
|
|
|
+const lendOutDetailVisible = ref(false)
|
|
|
+function showLendOutDetail() {
|
|
|
+ getLendOutDetail(sheet.value.bah, sheet.value.admissTimes).then(res => {
|
|
|
+ lendOutDetail.value = res
|
|
|
+ lendOutDetailVisible.value = true
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
onActivated(() => {
|
|
|
initLodop()
|
|
|
})
|
|
|
|
|
|
-onMounted(() => {
|
|
|
+ onMounted(() => {
|
|
|
getAllDictionary().then((res) => {
|
|
|
res.getOperations = operations
|
|
|
res.getYesOrNo = yesOrNo
|
|
@@ -976,4 +1075,9 @@ onMounted(() => {
|
|
|
font-size: 18px;
|
|
|
color: gray;
|
|
|
}
|
|
|
+
|
|
|
+.img-state:hover {
|
|
|
+ scale: 1.08;
|
|
|
+ cursor: pointer;
|
|
|
+}
|
|
|
</style>
|