update: 新疆大屏

This commit is contained in:
xf
2025-07-06 18:03:41 +08:00
parent 86ed8341e2
commit aa71fd5c7e
9 changed files with 146 additions and 44 deletions
+9 -5
View File
@@ -6,6 +6,12 @@
<slot name="searchFirst"></slot>
<a-form-item v-for="(item, index) in firstForm" :label="item.label" :key="index">
<a-input :placeholder="item.placeholder" v-if="item.type == 'input'" v-model:value="formRecord[item.field]" />
<a-select
v-if="item.type == 'select'"
:placeholder="item.placeholder"
v-model:value="formRecord[item.field]"
:options="item.options"
/>
</a-form-item>
<a-form-item label="单位">
<a-select placeholder="选择单位" v-model:value="orgCode" :options="option" :field-names="fieldNames" />
@@ -14,12 +20,10 @@
<a-select placeholder="选择单位" @focus="changeDept" v-model:value="orgCode" :options="option" :field-names="fieldNames" />
</a-form-item>
<slot name="searchSecond"></slot>
<a-form-item label="性别">
<a-select v-model:value="formRecord.sex" placeholder="请选择" :options="sexTypeList" />
</a-form-item>
</Form>
<div class="form-btn">
<a-button @click="handleClicksearch">搜索</a-button>
<a-button @click="handleClicksearch" style="margin-left: 10px">重置</a-button>
</div>
</div>
<BasicTable ref="registerTable" class="table-container" :key="visible" :columns="column" :apiParams="formState" />
@@ -66,7 +70,7 @@
}
const formItemLayout = {
labelCol: {
style: { width: '60px' },
style: { width: '80px' },
...props.labelCol,
},
wrapperCol: {
@@ -82,7 +86,7 @@
function getField() {
let result = {};
props.firstForm.map((item) => {
result[item.field] = '';
result[item.field] = item.defaultValue || '';
});
formRecord.value = {
...formRecord.value,
+9 -1
View File
@@ -1,7 +1,15 @@
import { post } from '/@/api/request.ts';
import { post, get } from '/@/api/request.ts';
enum Api {
statisticsNew = '/health-emergency/emergency/LargeScreenNew/statisticsNew',
threeL = '/health-emergency/emergency/LargeScreenNew/medicalPeopleNumStatistics',
oneR = '/health-watch/watch/watchMonitorData/getMonitorList',
threeR = '/health-emergency/emergency/LargeScreenNew/medicalAbnormalStatistics',
twoR = '/health-emergency/emergency/LargeScreenNew/healthSign',
}
export const statisticsNewApi = (params) => post(Api.statisticsNew, params);
export const threeLApi = (params) => post(Api.threeL, params);
export const oneRApi = (params) => get(Api.oneR, params);
export const threeRApi = (params) => post(Api.threeR, params);
export const twoRApi = (params) => post(Api.twoR, params);
+37 -1
View File
@@ -1,5 +1,6 @@
import * as echarts from 'echarts';
import { legend1, legend2, legend3, legend4, legend5 } from '/@/components/xianMap/xianMapHooks.ts';
import { SexType, sexTypeList } from '/@/utils/settings.ts';
export const legend1 = new URL('/@/assets/img/legend1.png', import.meta.url).href;
export const legend2 = new URL('/@/assets/img/legend5.png', import.meta.url).href;
export const legend3 = new URL('/@/assets/img/legend3.png', import.meta.url).href;
@@ -222,9 +223,44 @@ const fromList = [
field: 'realName',
type: 'input',
placeholder: '请输入姓名',
defaultValue: '',
},
{
label: '性别',
field: 'sex',
type: 'select',
placeholder: '请选择性别',
options: sexTypeList,
defaultValue: SexType.all,
},
];
const fromList2 = [
{
label: '救助人',
field: 'realName',
type: 'input',
placeholder: '请输入',
defaultValue: '',
},
{
label: '性别',
field: 'sex',
type: 'select',
placeholder: '请选择性别',
options: sexTypeList,
defaultValue: SexType.all,
},
{
label: '救助方式',
field: 'sex',
type: 'select',
placeholder: '请选择性别',
options: sexTypeList,
defaultValue: SexType.all,
},
];
export const columns = [columns1, columns2];
export const fromLists = [fromList];
export const fromLists = [fromList, fromList2];
+15 -4
View File
@@ -9,9 +9,9 @@
<template v-if="scrollList.length > 0">
<vue3-seamless-scroll :list="scrollList" class="scroll" :hover="true" :copyNum="3" :limitScrollNum="5" v-bind="{ step: 0.2 }">
<div class="item-d" v-for="(item, index) in scrollList" :key="index">
<div>张二雷{{ index }}</div>
<div style="color: #f6ff00">压力异常(82)</div>
<div>2025-10-26 22:29:58</div>
<div>{{ item.realName }}</div>
<div style="color: #f6ff00">{{ item.eventType_dictText }}({{ item.dataValue }})</div>
<div>{{ item.warnTime }}</div>
<div class="item-d-img">
<img :src="pointPng" alt="" />
<img :src="addressPng" alt="" />
@@ -34,10 +34,21 @@
import { ref, onMounted } from 'vue';
import pointPng from '/@/assets/indexSun/point.png';
import addressPng from '/@/assets/indexSun/address.png';
import { oneRApi } from '/@/views/indexSun/indexSun.api.ts';
const loading = ref(true);
const scrollList = ref<any[]>([{}, {}, {}, {}, {}, {}, {}, {}]);
const scrollList = ref<any[]>([]);
const emit = defineEmits(['handleView']);
onMounted(() => {
getList();
});
function getList() {
oneRApi({}).then((res) => {
if (res.code == 200) {
scrollList.value = res.result.records;
}
});
}
function handleView() {
emit('handleView');
}
+14 -2
View File
@@ -31,9 +31,21 @@
<script setup lang="ts">
import { Vue3SeamlessScroll } from 'vue3-seamless-scroll';
import { Empty } from 'ant-design-vue';
import { ref } from 'vue';
import { onMounted, ref } from 'vue';
import hospitalPng from '/@/assets/indexSun/hospital.png';
const scrollList = ref<any[]>([{}, {}, {}, {}, {}, {}, {}, {}]);
import { threeLApi } from '/@/views/indexSun/indexSun.api.ts';
const scrollList = ref<any[]>([]);
onMounted(() => {
getList();
});
function getList() {
threeLApi({}).then((res) => {
if (res.code == 200) {
console.log(res.result);
scrollList.value = res.result;
}
});
}
</script>
<style lang="less" scoped>
.three-new-l {
+16 -8
View File
@@ -7,12 +7,12 @@
<div class="content">
<div class="content-item">
<template v-if="scrollList.length > 0">
<vue3-seamless-scroll :list="scrollList" class="scroll" :hover="true" :copyNum="3" :limitScrollNum="4" v-bind="{ step: 0.2 }">
<div class="item-d" v-for="(item, index) in scrollList" :key="index">
<div>体检总人数</div>
<div style="font-weight: bold">18000</div>
</div>
</vue3-seamless-scroll>
<!-- <vue3-seamless-scroll :list="scrollList" class="scroll" :hover="true" :copyNum="3" :limitScrollNum="4" v-bind="{ step: 0.2 }">-->
<div class="item-d" v-for="(item, index) in scrollList" :key="index">
<div>体检总人数</div>
<div style="font-weight: bold">18000</div>
</div>
<!-- </vue3-seamless-scroll>-->
</template>
<template v-else>
<div style="height: 100%; width: 100%; display: flex; align-items: center; justify-content: center">
@@ -25,9 +25,17 @@
</template>
<script setup lang="ts">
import { Vue3SeamlessScroll } from 'vue3-seamless-scroll';
const scrollList = ref<any[]>([{}, {}, {}, {}, {}, {}, {}, {}]);
import { Empty } from 'ant-design-vue';
import { ref } from 'vue';
import { ref, onMounted } from 'vue';
import { threeRApi } from '/@/views/indexSun/indexSun.api.ts';
const scrollList = ref<any[]>([]);
onMounted(() => {
threeRApi({}).then((res) => {
if (res.code == 200) {
scrollList.value = res.result;
}
});
});
</script>
<style lang="less" scoped>
.three-r-box {
+41 -19
View File
@@ -16,21 +16,23 @@
<div class="content-item-clock">
<div>
<span class="clock-text">今日打卡人数</span>
<span class="clock-num1">86</span>
<span class="clock-num1">{{ twoRList?.weightLossCountDay ? twoRList?.weightLossCountDay : '--' }}</span>
</div>
<div>
<span class="clock-text">异常人数</span>
<span class="clock-num2">86</span>
<span class="clock-num2">{{ twoRList?.weightLossAbnormalCountDay ? twoRList?.weightLossAbnormalCountDay : '--' }}</span>
</div>
</div>
<div class="content-item-clock" style="margin-bottom: 0">
<div>
<span class="clock-text">今日打卡人数</span>
<span class="clock-num1">86</span>
<span class="clock-text">本月打卡人数</span>
<span class="clock-num1">{{ twoRList?.weightLossCountMonth ? twoRList?.weightLossCountMonth : '--' }}</span>
</div>
<div>
<span class="clock-text">异常人数</span>
<span class="clock-num2">86</span>
<span class="clock-num2"
>{{ twoRList?.weightLossAbnormalCountMonth ? twoRList?.weightLossAbnormalCountMonth : '--' }}</span
>
</div>
</div>
</div>
@@ -39,28 +41,30 @@
<div class="content-item-info">
<div class="content-item-name" style="font-size: 16px">
<div class="content-item-img">
<img :src="WeightPng" alt="" />
<img :src="FatPng" alt="" />
</div>
减重打卡
血糖打卡
</div>
<div class="content-item-clock">
<div>
<span class="clock-text">今日打卡人数</span>
<span class="clock-num1">86</span>
<span class="clock-num1">{{ twoRList?.bloodSugarCountDay ? twoRList?.bloodSugarCountDay : '--' }}</span>
</div>
<div>
<span class="clock-text">异常人数</span>
<span class="clock-num2">86</span>
<span class="clock-num2">{{ twoRList?.bloodSugarAbnormalCountDay ? twoRList?.bloodSugarAbnormalCountDay : '--' }}</span>
</div>
</div>
<div class="content-item-clock" style="margin-bottom: 0">
<div>
<span class="clock-text">今日打卡人数</span>
<span class="clock-num1">86</span>
<span class="clock-text">本月打卡人数</span>
<span class="clock-num1">{{ twoRList?.bloodSugarCountMonth ? twoRList?.bloodSugarCountMonth : '--' }}</span>
</div>
<div>
<span class="clock-text">异常人数</span>
<span class="clock-num2">86</span>
<span class="clock-num2"
>{{ twoRList?.bloodSugarAbnormalCountMonth ? twoRList?.bloodSugarAbnormalCountMonth : '--' }}</span
>
</div>
</div>
</div>
@@ -69,28 +73,32 @@
<div class="content-item-info">
<div class="content-item-name" style="font-size: 16px">
<div class="content-item-img">
<img :src="WeightPng" alt="" />
<img :src="BloodPng" alt="" />
</div>
减重打卡
血压打卡
</div>
<div class="content-item-clock">
<div>
<span class="clock-text">今日打卡人数</span>
<span class="clock-num1">12386</span>
<span class="clock-num1">{{ twoRList?.bloodPressureCountDay ? twoRList?.bloodPressureCountDay : '--' }}</span>
</div>
<div>
<span class="clock-text">异常人数</span>
<span class="clock-num2">86</span>
<span class="clock-num2"
>{{ twoRList?.bloodPressureAbnormalCountDay ? twoRList?.bloodPressureAbnormalCountDay : '--' }}</span
>
</div>
</div>
<div class="content-item-clock" style="margin-bottom: 0">
<div>
<span class="clock-text">今日打卡人数</span>
<span class="clock-num1">86</span>
<span class="clock-text">本月打卡人数</span>
<span class="clock-num1">{{ twoRList?.bloodPressureCountMonth ? twoRList?.bloodPressureCountMonth : '--' }}</span>
</div>
<div>
<span class="clock-text">异常人数</span>
<span class="clock-num2">86</span>
<span class="clock-num2"
>{{ twoRList?.bloodPressureAbnormalCountMonth ? twoRList?.bloodPressureAbnormalCountMonth : '--' }}</span
>
</div>
</div>
</div>
@@ -102,6 +110,19 @@
import WeightPng from '/@/assets/indexSun/weightClock.png';
import FatPng from '/@/assets/indexSun/fatClock.png';
import BloodPng from '/@/assets/indexSun/bloodClock.png';
import { onMounted, ref } from 'vue';
import { twoRApi } from '/@/views/indexSun/indexSun.api.ts';
const twoRList = ref();
onMounted(() => {
getList();
});
function getList() {
twoRApi({}).then((res) => {
if (res.code == 200) {
twoRList.value = res.result;
}
});
}
</script>
<style lang="less" scoped>
.two-r-box {
@@ -173,6 +194,7 @@
.clock-num1,
.clock-num2 {
font-size: 16px;
cursor: pointer;
}
.clock-num1 {
color: #22e8ff;