|
@@ -1,5 +1,5 @@
|
|
|
<script setup lang="ts">
|
|
<script setup lang="ts">
|
|
|
-import { ref, reactive, onMounted, onUnmounted, nextTick } from 'vue'
|
|
|
|
|
|
|
+import { ref, reactive, computed, onMounted, onUnmounted, nextTick } from 'vue'
|
|
|
import echarts from '@/plugins/echarts'
|
|
import echarts from '@/plugins/echarts'
|
|
|
import 'echarts-gl'
|
|
import 'echarts-gl'
|
|
|
import {
|
|
import {
|
|
@@ -64,6 +64,20 @@ const ageScatter = ref<any[]>([])
|
|
|
const scoreDist = ref<any[]>([])
|
|
const scoreDist = ref<any[]>([])
|
|
|
const signature = ref<any>({})
|
|
const signature = ref<any>({})
|
|
|
const redList = ref<any[]>([])
|
|
const redList = ref<any[]>([])
|
|
|
|
|
+// 红名单按九防筛选:'' = 全部
|
|
|
|
|
+const redRiskFilter = ref<string>('')
|
|
|
|
|
+const nineRiskOptions = computed(() =>
|
|
|
|
|
+ [{ label: '全部', value: '' }].concat(
|
|
|
|
|
+ echartsApi.NINE_RISKS.map((r: any) => ({
|
|
|
|
|
+ label: r.name,
|
|
|
|
|
+ value: r.name.replace('防', '')
|
|
|
|
|
+ }))
|
|
|
|
|
+ )
|
|
|
|
|
+)
|
|
|
|
|
+const filteredRedList = computed(() => {
|
|
|
|
|
+ if (!redRiskFilter.value) return redList.value
|
|
|
|
|
+ return redList.value.filter((r: any) => Array.isArray(r.risks) && r.risks.includes(redRiskFilter.value))
|
|
|
|
|
+})
|
|
|
const assessorWorkload = ref<any[]>([])
|
|
const assessorWorkload = ref<any[]>([])
|
|
|
const nurseLevelRisk = ref<any[]>([])
|
|
const nurseLevelRisk = ref<any[]>([])
|
|
|
const riskCorrelation = ref<any>({})
|
|
const riskCorrelation = ref<any>({})
|
|
@@ -1168,19 +1182,31 @@ onUnmounted(() => {
|
|
|
/>
|
|
/>
|
|
|
<path d="M12 9v4M12 17h.01" />
|
|
<path d="M12 9v4M12 17h.01" />
|
|
|
</svg>
|
|
</svg>
|
|
|
- 重点人群红名单 · 2 项及以上高风险(共 {{ redList.length }} 人)
|
|
|
|
|
- <span class="tip danger">建议:纳入每日护士长巡床必查清单</span>
|
|
|
|
|
|
|
+ 重点人群红名单 · 2 项及以上高风险(共 {{ filteredRedList.length }} 人)
|
|
|
|
|
+ <el-select
|
|
|
|
|
+ v-model="redRiskFilter"
|
|
|
|
|
+ placeholder="全部"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ class="red-risk-select"
|
|
|
|
|
+ >
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="opt in nineRiskOptions"
|
|
|
|
|
+ :key="opt.value"
|
|
|
|
|
+ :label="opt.label"
|
|
|
|
|
+ :value="opt.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="table-wrap" v-if="redList.length > 0">
|
|
|
|
|
|
|
+ <div class="table-wrap" v-if="filteredRedList.length > 0">
|
|
|
<table class="red-table">
|
|
<table class="red-table">
|
|
|
<thead>
|
|
<thead>
|
|
|
<tr>
|
|
<tr>
|
|
|
<th>档案编号</th><th>姓名</th><th>性别</th><th>年龄</th> <th>楼栋</th><th>床号</th
|
|
<th>档案编号</th><th>姓名</th><th>性别</th><th>年龄</th> <th>楼栋</th><th>床号</th
|
|
|
- ><th>护理级别</th><th>评估人</th> <th>高风险项</th><th>数量</th>
|
|
|
|
|
|
|
+ ><th>护理级别</th><th>评估人</th> <th>高风险项</th><th>评估日期</th>
|
|
|
</tr>
|
|
</tr>
|
|
|
</thead>
|
|
</thead>
|
|
|
<tbody>
|
|
<tbody>
|
|
|
- <tr v-for="r in redList" :key="r.id">
|
|
|
|
|
|
|
+ <tr v-for="r in filteredRedList" :key="r.id">
|
|
|
<td class="mono">{{ r.id }}</td>
|
|
<td class="mono">{{ r.id }}</td>
|
|
|
<td class="name">{{ r.name }}</td>
|
|
<td class="name">{{ r.name }}</td>
|
|
|
<td>{{ r.sex }}</td>
|
|
<td>{{ r.sex }}</td>
|
|
@@ -1203,7 +1229,7 @@ onUnmounted(() => {
|
|
|
>
|
|
>
|
|
|
</td>
|
|
</td>
|
|
|
<td
|
|
<td
|
|
|
- ><span class="high-count">{{ r.highCount }}</span></td
|
|
|
|
|
|
|
+ ><span class="high-count">2022-12-12</span></td
|
|
|
>
|
|
>
|
|
|
</tr>
|
|
</tr>
|
|
|
</tbody>
|
|
</tbody>
|
|
@@ -1500,6 +1526,10 @@ onUnmounted(() => {
|
|
|
color: #ff9c8c;
|
|
color: #ff9c8c;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ .red-risk-select {
|
|
|
|
|
+ margin-left: auto;
|
|
|
|
|
+ width: 150px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
.danger-title {
|
|
.danger-title {
|
|
|
border-left-color: #ff5a3c;
|
|
border-left-color: #ff5a3c;
|