|
|
@@ -1,75 +1,78 @@
|
|
|
<template>
|
|
|
- <page-layer>
|
|
|
- <template #header>
|
|
|
- <el-switch
|
|
|
- active-value="intervalPatients"
|
|
|
- inactive-value="admissTimes"
|
|
|
- v-model="timeType"
|
|
|
- active-text="质控时间"
|
|
|
- inactive-text="入院时间"
|
|
|
- />
|
|
|
- <el-date-picker
|
|
|
- :shortcuts="shortcuts"
|
|
|
- style="width: 220px"
|
|
|
- type="daterange"
|
|
|
- v-model="intervalPatients"/>
|
|
|
-
|
|
|
-
|
|
|
- <el-button type="primary"
|
|
|
- :loading="load"
|
|
|
- @click="queryQualityControlData">查询质控数据
|
|
|
- </el-button>
|
|
|
-
|
|
|
- <el-button @click="queryScale">
|
|
|
- {{ proportion }} 比例
|
|
|
- </el-button>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template #main>
|
|
|
- <el-progress :percentage="percentage"/>
|
|
|
- <el-tabs v-model="tabsModel">
|
|
|
- <el-tab-pane label="质控数量" name="质控数量">
|
|
|
- <div ref="divRef"></div>
|
|
|
- <xc-table :localData="numberToArray" :finalHeight="getWindowSize.h / 1.2">
|
|
|
- <el-table-column prop="name" label="质控名称"/>
|
|
|
- <el-table-column prop="total" label="总数"/>
|
|
|
- <el-table-column label="操作">
|
|
|
- <template #default="{row}">
|
|
|
- <el-button text @click="detailClick(row)" plain type="primary">详情</el-button>
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- </xc-table>
|
|
|
- </el-tab-pane>
|
|
|
-
|
|
|
- <el-tab-pane label="详情" name="详情">
|
|
|
- <rule-sift :data="ruleReturnData.patient"/>
|
|
|
- </el-tab-pane>
|
|
|
-
|
|
|
- <template v-for="(val, key) in siftData">
|
|
|
- <el-tab-pane :label="key" :name="key">
|
|
|
- <rule-sift :data="val"/>
|
|
|
+
|
|
|
+ <div class="cy_main_card">
|
|
|
+ <div class="cy_display_flex_y">
|
|
|
+ <div>
|
|
|
+ <el-switch
|
|
|
+ active-value="intervalPatients"
|
|
|
+ inactive-value="admissTimes"
|
|
|
+ v-model="timeType"
|
|
|
+ active-text="质控时间"
|
|
|
+ inactive-text="入院时间"
|
|
|
+ />
|
|
|
+ <el-date-picker
|
|
|
+ :shortcuts="shortcuts"
|
|
|
+ style="width: 220px"
|
|
|
+ type="daterange"
|
|
|
+ v-model="intervalPatients"/>
|
|
|
+
|
|
|
+
|
|
|
+ <el-button type="primary"
|
|
|
+ :loading="load"
|
|
|
+ @click="queryQualityControlData">查询质控数据
|
|
|
+ </el-button>
|
|
|
+
|
|
|
+ <el-button @click="queryScale">
|
|
|
+ {{ proportion }} 比例
|
|
|
+ </el-button>
|
|
|
+
|
|
|
+ <div>
|
|
|
+ <el-progress :percentage="percentage"/>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="cy_flex_1-y">
|
|
|
+ <el-tabs v-model="tabsModel" class="el-tabs_completely_fill">
|
|
|
+ <el-tab-pane label="质控数量" name="质控数量">
|
|
|
+ <CyVxeTable :data="numberToArray">
|
|
|
+ <vxe-column field="name" title="质控名称"/>
|
|
|
+ <vxe-column field="total" title="总数"/>
|
|
|
+ <vxe-column title="操作">
|
|
|
+ <template #default="{row}">
|
|
|
+ <el-button text @click="detailClick(row)" plain type="primary">详情</el-button>
|
|
|
+ </template>
|
|
|
+ </vxe-column>
|
|
|
+ </CyVxeTable>
|
|
|
+ </el-tab-pane>
|
|
|
+
|
|
|
+ <el-tab-pane label="详情" name="详情">
|
|
|
+ <RuleSift :data="ruleReturnData.patient"/>
|
|
|
</el-tab-pane>
|
|
|
- </template>
|
|
|
- </el-tabs>
|
|
|
- </template>
|
|
|
- </page-layer>
|
|
|
+
|
|
|
+ <template v-for="(val, key) in siftData">
|
|
|
+ <el-tab-pane :label="key" :name="key">
|
|
|
+ <RuleSift :data="val"/>
|
|
|
+ </el-tab-pane>
|
|
|
+ </template>
|
|
|
+ </el-tabs>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
import {onMounted, ref} from "vue";
|
|
|
import {getDateRangeFormatDate} from "@/utils/date";
|
|
|
-import PageLayer from "@/layout/PageLayer.vue";
|
|
|
import {shortcuts} from "@/data/shortcuts";
|
|
|
import RuleSift
|
|
|
from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr_control_rule/RuleSift.vue";
|
|
|
import {setCallback} from "@/utils/websocket";
|
|
|
import {linkQualityControl, obtainTheProportionOfMedicalRecords} from "@/api/emr-control/emr-control";
|
|
|
import {makePercentage} from "@/components/progress/progUtils";
|
|
|
-import {getWindowSize} from "@/utils/window-size";
|
|
|
import {BizException, ExceptionEnum} from "@/utils/BizException";
|
|
|
-import XcTable from "@/components/xiao-chan/xc-table/XcTable.vue";
|
|
|
import {openSocket, sid} from "@/views/hospitalization/zhu-yuan-yi-sheng/electronic-medical-record/emr-func/emr-socket";
|
|
|
+import useVxeTable from "@/utils/cy-use/useVxeTable";
|
|
|
|
|
|
const intervalPatients = ref([])
|
|
|
const timeType = ref('intervalPatients')
|
|
|
@@ -84,6 +87,10 @@ const ruleReturnData = ref({
|
|
|
patient: []
|
|
|
})
|
|
|
|
|
|
+const {CyVxeTable} = useVxeTable({
|
|
|
+ localPaging: true
|
|
|
+});
|
|
|
+
|
|
|
const siftData = ref({})
|
|
|
|
|
|
const queryQualityControlData = async () => {
|