组件调整

This commit is contained in:
zhaotiantian
2023-12-11 18:28:52 +08:00
parent d4f668548c
commit e449d5687b
7 changed files with 349 additions and 328 deletions
+2 -2
View File
@@ -13,7 +13,7 @@
import {useSpin} from '/@/components/body-d-left/bodyLeftHooks.ts'; import {useSpin} from '/@/components/body-d-left/bodyLeftHooks.ts';
import {useHealth} from '/@/components/body-d-right/bodyRightHooks.ts'; import {useHealth} from '/@/components/body-d-right/bodyRightHooks.ts';
import {screenPie} from '/@/components/item-d/pieCharts.ts'; import {screenPie} from '/@/components/item-d/pieCharts.ts';
import { onMounted, ref, unref, watch } from 'vue'; import {onMounted, ref, unref, watch, defineProps} from 'vue';
import * as echarts from 'echarts'; import * as echarts from 'echarts';
const props = defineProps({ const props = defineProps({
@@ -60,7 +60,7 @@
function initChart(chartData, total, color) { function initChart(chartData, total, color) {
let myChart = echarts.init(healthChart.value); let myChart = echarts.init(healthChart.value);
let options = screenPie(chartData, total, color); let options = screenPie(chartData, total, color, '{d}%');
myChart.setOption(options); myChart.setOption(options);
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
myChart.resize(); myChart.resize();
+3 -3
View File
@@ -1,4 +1,4 @@
export function screenPie(chartData, total, color) { export function screenPie(chartData, total, color, formatter) {
return { return {
title: { title: {
text: '总人数', text: '总人数',
@@ -31,7 +31,7 @@ export function screenPie(chartData, total, color) {
top: 'center', top: 'center',
orient: 'vertical', orient: 'vertical',
icon: 'circle', icon: 'circle',
itemGap: 26, itemGap: 16,
textStyle: { textStyle: {
color: '#ffffff', color: '#ffffff',
fontSize: 16, fontSize: 16,
@@ -46,7 +46,7 @@ export function screenPie(chartData, total, color) {
label: { label: {
show: true, show: true,
position: 'inner', position: 'inner',
formatter: '{d}%', formatter: formatter,
color: '#ffffff', color: '#ffffff',
fontSize: 14, fontSize: 14,
}, },
@@ -0,0 +1,58 @@
<template>
<template v-for="(item, index) in dataList" :key="`list${index}`">
<item-d :title="item.title" :data="item.data" :tips="item.tips" :color="item.color"/>
</template>
</template>
<script setup lang="ts">
import {ref} from 'vue';
import ItemD from '/@/components/item-d/item-d.vue';
const dataList = ref([
{
title: '心率',
data: [
{name: '正常', value: 234},
{name: '警戒', value: 204},
{name: '危险', value: 34},
],
color: ['#0098FA', '#FF6648', '#FB466C'],
tips: '正常范围60~100次/分',
},
{
title: '血氧',
data: [
{name: '正常', value: 234},
{name: '警戒', value: 204},
{name: '危险', value: 34},
],
color: ['#0098FA', '#FF6648', '#FB466C'],
tips: '血氧饱和度范围95%~100%',
},
{
title: '压力',
data: [
{name: '正常', value: 234},
{name: '放松', value: 204},
{name: '中等', value: 34},
{name: '偏高', value: 78},
],
color: ['#1DCC79', '#0098FA', '#0CD9B5', '#6C63F0'],
tips: '',
},
{
title: '体温',
data: [
{name: '37.2', value: 234},
{name: '37.2-38', value: 204},
{name: '>38', value: 34},
],
color: ['#0098FA', '#0CD9B5', '#3B72AD'],
tips: '',
},
]);
</script>
<style scoped>
</style>
@@ -6,7 +6,7 @@ export function sleepCharts() {
top: '15%', top: '15%',
left: '8%', left: '8%',
right: '3%', right: '3%',
bottom: '18%', bottom: '20%',
}, },
legend: { legend: {
data: ['清醒', '浅睡', '深睡'], data: ['清醒', '浅睡', '深睡'],
@@ -68,7 +68,7 @@ export function useHealth() {
const healthData = ref([ const healthData = ref([
{ {
name: '5000以下', name: '5000以下',
value: '0', value: '23',
type: '1', type: '1',
type_dictText: '恶性肿瘤', type_dictText: '恶性肿瘤',
}, },
@@ -9,10 +9,10 @@
:pagination="tableInfo.pagination" :pagination="tableInfo.pagination"
:rowClassName="(record, index) => (index % 2 === 1 ? 'table-default' : 'table-striped')" :rowClassName="(record, index) => (index % 2 === 1 ? 'table-default' : 'table-striped')"
> >
<template #address="{text}"> <template #address="{text,record}">
<div class="police-times"> <div class="police-times">
<span class="police-text">{{ text }}</span> <span class="police-text">{{ record.address }}</span>
<span class="police-icon"></span> <span class="police-icon" @click="handlePoliceDetail(record)"></span>
</div> </div>
</template> </template>
</a-table> </a-table>
@@ -59,7 +59,6 @@ const tableInfo = ref({
}, },
{ {
title: '住址', title: '住址',
dataIndex: 'address',
key: 'address', key: 'address',
align: 'center', align: 'center',
slots: {customRender: 'address'} slots: {customRender: 'address'}
@@ -68,9 +67,13 @@ const tableInfo = ref({
pagination: { pagination: {
current: 1, current: 1,
pageSize: 2, pageSize: 2,
total: 2, total: 10,
}, },
}); });
function handlePoliceDetail(record) {
console.log(record)
}
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.inner-screen { .inner-screen {
@@ -32,7 +32,7 @@
setHealth(result); setHealth(result);
const yData = unref(getValue); const yData = unref(getValue);
let total = yData.reduce((accumulator, currentValue) => Number(accumulator) + Number(currentValue), 0); let total = yData.reduce((accumulator, currentValue) => Number(accumulator) + Number(currentValue), 0);
initChart(unref(healthData), total); initChart(unref(healthData), '89');
} catch { } catch {
initChart(unref(healthData), 0); initChart(unref(healthData), 0);
} }
@@ -40,7 +40,7 @@
function initChart(chartData, total) { function initChart(chartData, total) {
let myChart = echarts.init(healthChart.value); let myChart = echarts.init(healthChart.value);
let options = screenPie(chartData, total, color.value); let options = screenPie(chartData, total, color.value, '{c}');
myChart.setOption(options); myChart.setOption(options);
window.addEventListener('resize', () => { window.addEventListener('resize', () => {
myChart.resize(); myChart.resize();
+7 -47
View File
@@ -14,9 +14,7 @@
</div> </div>
<div class="body-d"> <div class="body-d">
<div class="body-d-left"> <div class="body-d-left">
<template v-for="(item, index) in dataList" :key="`list${index}`"> <PieCharts/>
<item-d :title="item.title" :data="item.data" :tips="item.tips" :color="item.color" />
</template>
</div> </div>
<div class="body-d-middle"> <div class="body-d-middle">
<SecondMap> <SecondMap>
@@ -28,7 +26,8 @@
:options="option" :options="option"
:fieldNames="fieldNames" :fieldNames="fieldNames"
></a-select> ></a-select>
<a-select placeholder="选择时间范围" v-model:value="type" class="type-select" :options="timeRangeOption"></a-select> <a-select placeholder="选择时间范围" v-model:value="type" class="type-select"
:options="timeRangeOption"></a-select>
</template> </template>
</SecondMap> </SecondMap>
</div> </div>
@@ -48,55 +47,14 @@
import TwoR from '/@/components/secondaryScreen/screen-right/twoR.vue'; import TwoR from '/@/components/secondaryScreen/screen-right/twoR.vue';
import ThreeR from '/@/components/secondaryScreen/screen-right/threeR.vue'; import ThreeR from '/@/components/secondaryScreen/screen-right/threeR.vue';
import SecondMap from '/@/components/secondaryScreen/secondMap/secondMap'; import SecondMap from '/@/components/secondaryScreen/secondMap/secondMap';
import PieCharts from '/@/components/secondaryScreen/screen-left/PieCharts.vue'
import router from '/@/router'; import router from '/@/router';
import ItemD from '/@/components/item-d/item-d.vue'; import ItemD from '/@/components/item-d/item-d.vue';
import {useDepart, useTimeType} from '/@/components/secondaryScreen/secondMap/secondMapHooks.ts'; import {useDepart, useTimeType} from '/@/components/secondaryScreen/secondMap/secondMapHooks.ts';
import {useTopTime} from '/@/utils/utils.ts'; import {useTopTime} from '/@/utils/utils.ts';
const dayTimeT = ref(); const dayTimeT = ref();
const dataList = ref([
{
title: '心率',
data: [
{ name: '正常', value: 234 },
{ name: '警戒', value: 204 },
{ name: '危险', value: 34 },
],
color: ['#0098FA', '#FF6648', '#FB466C'],
tips: '正常范围60~100次/分',
},
{
title: '血氧',
data: [
{ name: '正常', value: 234 },
{ name: '警戒', value: 204 },
{ name: '危险', value: 34 },
],
color: ['#0098FA', '#FF6648', '#FB466C'],
tips: '血氧饱和度范围95%~100%',
},
{
title: '压力',
data: [
{ name: '正常', value: 234 },
{ name: '放松', value: 204 },
{ name: '中等', value: 34 },
{ name: '偏高', value: 78 },
],
color: ['#1DCC79', '#0098FA', '#0CD9B5', '#6C63F0'],
tips: '',
},
{
title: '体温',
data: [
{ name: '37.2', value: 234 },
{ name: '37.2-38', value: 204 },
{ name: '>38', value: 34 },
],
color: ['#0098FA', '#0CD9B5', '#3B72AD'],
tips: '',
},
]);
function init() { function init() {
getTime(); getTime();
@@ -190,12 +148,14 @@
> :nth-child(1) { > :nth-child(1) {
width: 100%; width: 100%;
height: calc(100% / 4); height: calc(100% / 4);
max-height: calc(100% / 4);
padding: 10px; padding: 10px;
} }
> :nth-child(2) { > :nth-child(2) {
width: 100%; width: 100%;
height: calc(100% / 4); height: calc(100% / 4);
max-height: calc(100% / 4);
padding: 10px; padding: 10px;
} }