|
@@ -1,63 +1,171 @@
|
|
|
<template>
|
|
|
- <el-dialog v-model="dialog" title="自动上传信息" @closed="emit('close')">
|
|
|
- <el-form label-width="120px">
|
|
|
- <el-form-item label="日期">
|
|
|
- <el-date-picker
|
|
|
- v-model="dateRange"
|
|
|
- type="daterange"
|
|
|
- format="YYYY-MM-DD"
|
|
|
- placeholder="开始日期"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- :shortcuts="shortcuts"
|
|
|
- style="width: 120px"
|
|
|
- value-format="YYYY-MM-DD"
|
|
|
- />
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
-
|
|
|
- <template #footer>
|
|
|
- <el-button type="primary" @click="ExportToExcel">导出Excel</el-button>
|
|
|
+ <page-layer>
|
|
|
+ <template #header>
|
|
|
+ <el-input v-model="queryuploadTerm.patNo" clearable placeholder="住院号"
|
|
|
+ @blur="patNo = $event.target.value.trim()" @keyup.enter="queryPage" style="width: 110px"></el-input>
|
|
|
+ <el-input v-model="queryuploadTerm.times" clearable placeholder="住院次数"
|
|
|
+ @blur="times = $event.target.value.trim()" style="width: 80px"></el-input>
|
|
|
+ <el-select v-model="queryuploadTerm.typeFlag" placeholder="上传类型" style="width: 110px">
|
|
|
+ <el-option label="全部" value="0" />
|
|
|
+ <el-option label="自动上传" value="1" />
|
|
|
+ <el-option label="手动上传" value="2" />
|
|
|
+ </el-select>
|
|
|
+ <el-select v-model="queryuploadTerm.flag" placeholder="上传结果标识" style="width: 110px" >
|
|
|
+ <el-option label="全部" value="0" />
|
|
|
+ <el-option label="上传成功" value="1" />
|
|
|
+ <el-option label="上传失败" value="2" />
|
|
|
+ </el-select>
|
|
|
+ <span>上传时间</span>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="queryuploadTerm.uploadDateRange"
|
|
|
+ type="daterange"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ placeholder="上传开始日期"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="上传开始日期"
|
|
|
+ end-placeholder="上传结束日期"
|
|
|
+ :shortcuts="clockinShortcuts"
|
|
|
+ style="width: 180px"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ />
|
|
|
+ <span>结算时间</span>
|
|
|
+ <el-date-picker
|
|
|
+ v-model="queryuploadTerm.setlDateRange"
|
|
|
+ type="daterange"
|
|
|
+ format="YYYY-MM-DD"
|
|
|
+ placeholder="结算开始日期"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="结算开始日期"
|
|
|
+ end-placeholder="结算结束日期"
|
|
|
+ :shortcuts="clockinShortcuts"
|
|
|
+ style="width: 180px"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ />
|
|
|
+ <el-button icon="Search" type="primary" @click="queryPage">查询</el-button>
|
|
|
+ <el-button type="primary" @click="ExportToExcel">导出Excel</el-button>
|
|
|
</template>
|
|
|
- </el-dialog>
|
|
|
+ <template #main>
|
|
|
+ <el-table ref="uploadTableRef" :data="queryuploadTerm.list" :height="tableHeight" border highlight-current-row >
|
|
|
+ <el-table-column prop="patNo" label="住院号" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="times" label="住院次数" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="ledgerSn" label="账页号" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="typeFlagName" label="上传类型" width="80"></el-table-column>
|
|
|
+ <el-table-column prop="flagName" label="上传结果标识" width="90"></el-table-column>
|
|
|
+ <el-table-column prop="createdDate" label="上传时间" width="130"></el-table-column>
|
|
|
+ <el-table-column prop="setlTime" label="患者结算时间" width="130"></el-table-column>
|
|
|
+ <el-table-column prop="logText" label="日志" ></el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination
|
|
|
+ :current-page="queryuploadTerm.currentPage"
|
|
|
+ :page-size="queryuploadTerm.pageSize"
|
|
|
+ :page-sizes="[10, 20, 30, 40, 50, 100]"
|
|
|
+ :total="queryuploadTerm.total"
|
|
|
+ layout="total, sizes, prev, pager, next, jumper"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ @current-change="handleCurrentChange"
|
|
|
+ ></el-pagination>
|
|
|
+ </template>
|
|
|
+ </page-layer>
|
|
|
</template>
|
|
|
|
|
|
<script setup name='ExportAutoUploadInfo'>
|
|
|
-import {shortcuts} from '@/data/shortcuts'
|
|
|
-import {onMounted} from "vue";
|
|
|
+import {clockinShortcuts} from '@/data/shortcuts'
|
|
|
+import {onMounted,ref,onActivated} from "vue";
|
|
|
import {getServerDateApi} from "@/api/public-api";
|
|
|
import moment from "moment";
|
|
|
-import {getFormatDatetime} from "@/utils/date";
|
|
|
+import {getDateRangeFormatDate} from "@/utils/date";
|
|
|
import {downloadExcel} from "@/utils/excel";
|
|
|
-
|
|
|
+import PageLayer from "@/layout/PageLayer";
|
|
|
+import store from '@/store';
|
|
|
+import router from "@/router";
|
|
|
+import sleep from "@/utils/sleep";
|
|
|
+import {
|
|
|
+ queryUploadInfo
|
|
|
+} from '@/api/medical-insurance/si-setl-upload';
|
|
|
+const windowSize = store.state.app.windowSize;
|
|
|
+const tableHeight = ref(windowSize.h - 70)
|
|
|
const emit = defineEmits(['close'])
|
|
|
|
|
|
const dialog = ref(true)
|
|
|
-let dateRange = $ref([])
|
|
|
+const uploadInfoData = ref([])
|
|
|
+const queryuploadTerm = ref({
|
|
|
+ patNo:"",
|
|
|
+ times:null,
|
|
|
+ ledgerSn:null,
|
|
|
+ typeFlag:'0',
|
|
|
+ flag:'0',
|
|
|
+ updateStartTime:"",
|
|
|
+ updateEndTime:"",
|
|
|
+ setlStartTime:"",
|
|
|
+ setlEndTime:"",
|
|
|
+ uploadDateRange:[clockinShortcuts[0].value[0], clockinShortcuts[0].value[1]],
|
|
|
+ setlDateRange:[],
|
|
|
+ currentPage:1,
|
|
|
+ pageSize:40,
|
|
|
+ list:[],
|
|
|
+ total: 0
|
|
|
+})
|
|
|
|
|
|
const ExportToExcel = async () => {
|
|
|
- if (!dateRange) return
|
|
|
+ createQuery()
|
|
|
const data = {
|
|
|
- param: {startTime: dateRange[0], endTime: dateRange[1]},
|
|
|
+ param: queryuploadTerm.value,
|
|
|
url: '/setlListUpld/exportAutoUploadInfo',
|
|
|
- fileName: `${dateRange[0]}至${dateRange[1]}.xlsx`,
|
|
|
+ fileName: '上传日志.xlsx',
|
|
|
}
|
|
|
setTimeout(() => {
|
|
|
downloadExcel(data)
|
|
|
}, 500)
|
|
|
}
|
|
|
|
|
|
-onMounted(async () => {
|
|
|
- let res = await getServerDateApi()
|
|
|
- let date = getFormatDatetime(res, 'YYYY-MM-DD')
|
|
|
- let date1 = getFormatDatetime(moment(date).subtract(1, 'days')._d, 'YYYY-MM-DD')
|
|
|
- dateRange[0] = date1
|
|
|
- dateRange[1] = date1
|
|
|
+function createQuery() {
|
|
|
+ let uploadDates = getDateRangeFormatDate(queryuploadTerm.value.uploadDateRange)
|
|
|
+ let setlDates = getDateRangeFormatDate(queryuploadTerm.value.setlDateRange)
|
|
|
+ queryuploadTerm.value.updateStartTime =uploadDates.startTime
|
|
|
+ queryuploadTerm.value.updateEndTime =uploadDates.endTime
|
|
|
+
|
|
|
+ queryuploadTerm.value.setlStartTime =setlDates.startTime
|
|
|
+ queryuploadTerm.value.setlEndTime =setlDates.endTime
|
|
|
+}
|
|
|
+const queryPage=async () =>{
|
|
|
+ createQuery()
|
|
|
+ queryUploadInfo(queryuploadTerm.value).then((res) => {
|
|
|
+ queryuploadTerm.value.list = res.records?res.records:[]
|
|
|
+ queryuploadTerm.value.total =res.total
|
|
|
+ })
|
|
|
+
|
|
|
+}
|
|
|
+onActivated(async () => {
|
|
|
+ const params = router.currentRoute.value.query
|
|
|
+ if (params && params.patNo && params.times && params.ledgerSn) {
|
|
|
+ queryuploadTerm.value.times = params.times
|
|
|
+ queryuploadTerm.value.patNo = params.patNo
|
|
|
+ queryuploadTerm.value.ledgerSn = params.ledgerSn
|
|
|
+ queryuploadTerm.value.uploadDateRange = []
|
|
|
+ queryuploadTerm.value.setlDateRange = []
|
|
|
+ await sleep(300);
|
|
|
+ }
|
|
|
+ await queryPage()
|
|
|
})
|
|
|
|
|
|
+onMounted( () => {
|
|
|
+
|
|
|
+})
|
|
|
+
|
|
|
+const handleSizeChange = (val) => {
|
|
|
+ queryuploadTerm.value.pageSize = val
|
|
|
+ queryPage()
|
|
|
+
|
|
|
+}
|
|
|
+const handleCurrentChange = (val) => {
|
|
|
+ queryuploadTerm.value.currentPage = val
|
|
|
+ queryPage()
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
-
|
|
|
+ .maxhight{
|
|
|
+ height: 950px;
|
|
|
+ overflow: auto;
|
|
|
+ }
|
|
|
</style>
|