|
@@ -5,42 +5,11 @@
|
|
|
cancel-text="关闭"
|
|
|
:confirm-click="execPrint"
|
|
|
>
|
|
|
- <div class="layout_display_flex">
|
|
|
- <div>
|
|
|
- <div class="flex-header">
|
|
|
- <el-input v-model="currentPatNo" placeholder="住院号" clearable style="width: 120px"></el-input>
|
|
|
- <el-button type="primary" icon="Search" style="margin-left: 20px" @click="fetchOverview">查询</el-button>
|
|
|
- <el-button type="primary" icon="Upload" style="margin-left: 20px" @click="selfpayUpload">自费上传</el-button>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div style="width: 336px">
|
|
|
- <el-table :data="patList" stripe highlight-current-row
|
|
|
- style="width: calc(100% - 10px)"
|
|
|
- @row-click="fetchBriefPatInfo">
|
|
|
- <el-table-column prop="times" label="次数" width="35"></el-table-column>
|
|
|
- <el-table-column prop="name" label="姓名" width="70"></el-table-column>
|
|
|
- <el-table-column prop="totalCharge" label="总费用" width="75"></el-table-column>
|
|
|
- <el-table-column prop="admdate" label="入院"></el-table-column>
|
|
|
- <el-table-column prop="disdate" label="出院">
|
|
|
- <template #default="scope">
|
|
|
- <span v-html="ajustDisdate(scope.row.disdate)"></span>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
-
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="layout_flex_1-x">
|
|
|
- <ChargeTable :brief-pat-info="briefPatInfo"
|
|
|
- :sumsMap="sumsMap"
|
|
|
- :charge-list-map="chargeListMap"/>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <Charge :patNo :times :showButton/>
|
|
|
</CyDialog>
|
|
|
</template>
|
|
|
|
|
|
-<script>
|
|
|
+<script setup>
|
|
|
import {
|
|
|
selectPatOverviews,
|
|
|
selectBriefPatInfo,
|
|
@@ -49,143 +18,118 @@ import {
|
|
|
} from "@/api/inpatient/charge-list";
|
|
|
import {ElMessage, ElMessageBox} from "element-plus";
|
|
|
import {getLodop, initLodop} from '@/utils/c-lodop'
|
|
|
-import ChargeTable from "@/components/medical-insurance/charge-list/ChargeTable.vue";
|
|
|
+import Charge from "./Charge.vue";
|
|
|
import CyDialog from "@/components/cy/dialog/src/CyDialog.vue";
|
|
|
|
|
|
-export default {
|
|
|
- components: {CyDialog, ChargeTable},
|
|
|
- props: {
|
|
|
- patNo: {
|
|
|
- type: String,
|
|
|
- require: false,
|
|
|
- default: null
|
|
|
- },
|
|
|
- times: {
|
|
|
- type: Number,
|
|
|
- require: false,
|
|
|
- default: null
|
|
|
- },
|
|
|
- showButton: {
|
|
|
- type: Boolean,
|
|
|
- default: true
|
|
|
- }
|
|
|
+const props = defineProps({
|
|
|
+ patNo: {
|
|
|
+ type: String,
|
|
|
+ require: false,
|
|
|
+ default: null
|
|
|
},
|
|
|
- emits: ['close'],
|
|
|
- setup(props, ctx) {
|
|
|
- const patList = ref([])
|
|
|
- const briefPatInfo = ref({})
|
|
|
- const chargeListMap = ref({})
|
|
|
- const sumsMap = ref({})
|
|
|
-
|
|
|
- const currentPatNo = ref('')
|
|
|
-
|
|
|
- const chargeListBoxStyle = {
|
|
|
- height: window.innerHeight - 180 + 'px',
|
|
|
- width: '100%',
|
|
|
- overflowY: 'scroll'
|
|
|
- }
|
|
|
-
|
|
|
- const fetchOverview = () => {
|
|
|
- if (!currentPatNo.value) {
|
|
|
- ElMessage({
|
|
|
- message: '住院号不能为空!',
|
|
|
- type: 'warning',
|
|
|
- duration: 2500,
|
|
|
- showClose: true
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- selectPatOverviews(currentPatNo.value).then(res => {
|
|
|
- patList.value = res
|
|
|
- })
|
|
|
- }
|
|
|
+ times: {
|
|
|
+ type: Number,
|
|
|
+ require: false,
|
|
|
+ default: null
|
|
|
+ },
|
|
|
+ showButton: {
|
|
|
+ type: Boolean,
|
|
|
+ default: true
|
|
|
+ }
|
|
|
+})
|
|
|
+const emits = defineEmits(["close"])
|
|
|
+
|
|
|
+const patList = ref([])
|
|
|
+const briefPatInfo = ref({})
|
|
|
+const chargeListMap = ref({})
|
|
|
+const sumsMap = ref({})
|
|
|
+
|
|
|
+const currentPatNo = ref('')
|
|
|
+const fetchOverview = () => {
|
|
|
+ if (!currentPatNo.value) {
|
|
|
+ ElMessage({
|
|
|
+ message: '住院号不能为空!',
|
|
|
+ type: 'warning',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ selectPatOverviews(currentPatNo.value).then(res => {
|
|
|
+ patList.value = res
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
- const ajustDisdate = (disdate) => {
|
|
|
- return disdate ? disdate : '<span style="color: green">● 在院</span>'
|
|
|
- }
|
|
|
+const ajustDisdate = (disdate) => {
|
|
|
+ return disdate ? disdate : '<span style="color: green">● 在院</span>'
|
|
|
+}
|
|
|
|
|
|
- const fetchBriefPatInfo = (row) => {
|
|
|
- selectBriefPatInfo(row).then(res => {
|
|
|
- briefPatInfo.value = res
|
|
|
- selectChargeList(row).then(rslt => {
|
|
|
- chargeListMap.value = rslt.chargeList
|
|
|
- sumsMap.value = rslt.sumsMap
|
|
|
- })
|
|
|
- })
|
|
|
- }
|
|
|
+const fetchBriefPatInfo = (row) => {
|
|
|
+ selectBriefPatInfo(row).then(res => {
|
|
|
+ briefPatInfo.value = res
|
|
|
+ selectChargeList(row).then(rslt => {
|
|
|
+ chargeListMap.value = rslt.chargeList
|
|
|
+ sumsMap.value = rslt.sumsMap
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
- const selfpayUpload = () => {
|
|
|
- if (!briefPatInfo.value.patNo) {
|
|
|
- ElMessage({
|
|
|
- message: '请先选择住院历史记录。',
|
|
|
- type: 'warning',
|
|
|
- duration: 2500,
|
|
|
- showClose: true
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- executeSelfpayUpload(briefPatInfo.value).then(res => {
|
|
|
- ElMessageBox.alert(res, '上传完成', {
|
|
|
- type: 'info',
|
|
|
- showCancelButton: false,
|
|
|
- })
|
|
|
- })
|
|
|
- }
|
|
|
+const selfpayUpload = () => {
|
|
|
+ if (!briefPatInfo.value.patNo) {
|
|
|
+ ElMessage({
|
|
|
+ message: '请先选择住院历史记录。',
|
|
|
+ type: 'warning',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ executeSelfpayUpload(briefPatInfo.value).then(res => {
|
|
|
+ ElMessageBox.alert(res, '上传完成', {
|
|
|
+ type: 'info',
|
|
|
+ showCancelButton: false,
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
|
|
|
|
|
|
- const execPrint = () => {
|
|
|
- if (!briefPatInfo.value.patNo) {
|
|
|
- ElMessage({
|
|
|
- message: '请先选择住院历史记录。',
|
|
|
- type: 'warning',
|
|
|
- duration: 2500,
|
|
|
- showClose: true
|
|
|
- })
|
|
|
- return
|
|
|
- }
|
|
|
- let LODOP = getLodop();
|
|
|
- const prntStyle = `<style>table, table * {margin: 0;padding: 0;border-collapse: collapse;font-size: 12px}</style>`
|
|
|
- const prntContent = document.getElementById('printArea').innerHTML
|
|
|
- let pagePrint = prntStyle + '<body>' + prntContent + '</body>'
|
|
|
- LODOP.PRINT_INIT('chargelist')
|
|
|
- LODOP.SET_PRINT_PAGESIZE(1, '210mm', '297mm', '')
|
|
|
- LODOP.ADD_PRINT_TABLE('0mm', '3mm', '210mm', '230mm', pagePrint)
|
|
|
- LODOP.SET_PRINT_STYLE('ItemType', 3)
|
|
|
- LODOP.ADD_PRINT_TEXT('280mm', '180mm', '25mm', '10mm', '第#页/共&页')
|
|
|
- LODOP.PRINT();
|
|
|
- // LODOP.PRINT_DESIGN()
|
|
|
- }
|
|
|
+const execPrint = () => {
|
|
|
+ if (!briefPatInfo.value.patNo) {
|
|
|
+ ElMessage({
|
|
|
+ message: '请先选择住院历史记录。',
|
|
|
+ type: 'warning',
|
|
|
+ duration: 2500,
|
|
|
+ showClose: true
|
|
|
+ })
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let LODOP = getLodop();
|
|
|
+ const prntStyle = `<style>table, table * {margin: 0;padding: 0;border-collapse: collapse;font-size: 12px}</style>`
|
|
|
+ const prntContent = document.getElementById('printArea').innerHTML
|
|
|
+ let pagePrint = prntStyle + '<body>' + prntContent + '</body>'
|
|
|
+ LODOP.PRINT_INIT('chargelist')
|
|
|
+ LODOP.SET_PRINT_PAGESIZE(1, '210mm', '297mm', '')
|
|
|
+ LODOP.ADD_PRINT_TABLE('0mm', '3mm', '210mm', '230mm', pagePrint)
|
|
|
+ LODOP.SET_PRINT_STYLE('ItemType', 3)
|
|
|
+ LODOP.ADD_PRINT_TEXT('280mm', '180mm', '25mm', '10mm', '第#页/共&页')
|
|
|
+ LODOP.PRINT();
|
|
|
+ // LODOP.PRINT_DESIGN()
|
|
|
+}
|
|
|
|
|
|
- onMounted(() => {
|
|
|
- initLodop()
|
|
|
- if (props.patNo && props.times) {
|
|
|
- currentPatNo.value = props.patNo
|
|
|
- selectPatOverviews(props.patNo).then(res => {
|
|
|
- patList.value = res
|
|
|
- })
|
|
|
- }
|
|
|
+onMounted(() => {
|
|
|
+ initLodop()
|
|
|
+ if (props.patNo && props.times) {
|
|
|
+ currentPatNo.value = props.patNo
|
|
|
+ selectPatOverviews(props.patNo).then(res => {
|
|
|
+ patList.value = res
|
|
|
})
|
|
|
+ }
|
|
|
+})
|
|
|
|
|
|
- const closeTablet = () => {
|
|
|
- ctx.emit('close')
|
|
|
- }
|
|
|
- return {
|
|
|
- currentPatNo,
|
|
|
- patList,
|
|
|
- briefPatInfo,
|
|
|
- chargeListMap,
|
|
|
- sumsMap,
|
|
|
- chargeListBoxStyle,
|
|
|
- fetchOverview,
|
|
|
- ajustDisdate,
|
|
|
- fetchBriefPatInfo,
|
|
|
- closeTablet,
|
|
|
- selfpayUpload,
|
|
|
- execPrint,
|
|
|
- props,
|
|
|
- }
|
|
|
- },
|
|
|
+const closeTablet = () => {
|
|
|
+ emits('close')
|
|
|
}
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|