update: 大屏接口

This commit is contained in:
xf
2025-07-09 15:10:30 +08:00
parent f6e5bb78da
commit 91abcfd78d
22 changed files with 418 additions and 78 deletions
+16
View File
@@ -64,6 +64,22 @@ export const get = (url, params = {}) => {
});
});
};
export const Dictget = (url, params = {}) => {
return new Promise((resolve, reject) => {
service
.get(url, { params: params })
.then((res) => {
if (res.status === 200) {
resolve(res.data);
} else {
reject(res.data);
}
})
.catch((err) => {
reject(err.data);
});
});
};
export const post = (url: string, params: any) =>
new Promise((resolve, reject) => {
service
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

+3
View File
@@ -152,6 +152,9 @@ export const Map = {
if (latitude) {
lat = latitude;
}
if (lng) {
lon = lng;
}
if (!longitude || !latitude || !type) {
continue;
}
+3
View File
@@ -7,6 +7,8 @@ export enum Api {
complaint = '/health-emergency/emergency/tblHelpCenter/sicknessTypeStatistic',
orderDetail = '/health-emergency/emergency/order/list',
listCustom = '/health-watch/watch/watchMonitorData/listCustom',
listCustomNew = 'health-watch/watch/watchMonitorData/largeScreen/listCustom',
}
//获取全部部门
@@ -21,3 +23,4 @@ export const getDetail = (params: any) => get(Api.getDetail, params);
export const getOrderDetail = (params: any) => get(Api.orderDetail, params);
//副屏预警查看详情
export const getEarlyWarningDetail = (params: any) => get(Api.listCustom, params);
export const getEarlyWarningDetailNew = (params: any) => get(Api.listCustomNew, params);
+11 -10
View File
@@ -1,8 +1,8 @@
// 步数
import {visibleChartLabel} from "/@/utils/utils.ts";
import { visibleChartLabel } from '/@/utils/utils.ts';
export function screenPie(chartData) {
const data = visibleChartLabel(chartData)
const data = visibleChartLabel(chartData);
return {
color: ['#B750BE', '#6C63F0', '#3AACFF', '#ED589D', '#FB466C'],
tooltip: {
@@ -24,7 +24,7 @@ export function screenPie(chartData) {
color: '#ffffff',
fontSize: 16,
},
selectedMode: false
selectedMode: false,
},
series: [
{
@@ -35,13 +35,14 @@ export function screenPie(chartData) {
label: {
show: true,
position: 'outside',
formatter: '{c}人次',
color: '#ffffff',
fontSize: 14,
},
labelLine: {
show: true,
length: 6,
length2: 10,
length2: 30,
minTurnAngle: 120,
},
data: data,
@@ -52,7 +53,7 @@ export function screenPie(chartData) {
//左侧圆
export function circleRing(chartData, total, color) {
const data = visibleChartLabel(chartData)
const data = visibleChartLabel(chartData);
return {
color: color,
tooltip: {
@@ -74,7 +75,7 @@ export function circleRing(chartData, total, color) {
color: '#ffffff',
fontSize: 16,
},
selectedMode: false
selectedMode: false,
},
series: [
{
@@ -95,18 +96,18 @@ export function circleRing(chartData, total, color) {
label: {
show: true,
position: 'outside',
formatter: '{d}%',
formatter: '{d}%\n{c}人次',
color: '#ffffff',
fontSize: 14,
},
labelLine: {
show: true,
length: 4,
length2: 12,
length: 6,
length2: 30,
minTurnAngle: 120,
},
data: data,
},
],
};
}
}
@@ -7,6 +7,7 @@ export enum Api {
sleepApi = '/health-watch/watch/watchData/getSleep',
stepApi = '/health-watch/watch/watchData/getSdc',
listCustom = 'health-watch/watch/watchMonitorData/listCustom',
listCustomNew = 'health-watch/watch/watchMonitorData/largeScreen/listCustom',
}
// 单位-
@@ -24,3 +25,4 @@ export const getStep = (params: any) => post(Api.stepApi, params);
//副屏-预警
export const getCustom = (params: any) => get(Api.listCustom, params);
export const getCustomNew = (params: any) => get(Api.listCustomNew, params);
@@ -26,14 +26,14 @@
</a-table>
</div>
<!--预警查看详情-->
<EarlyWarningDialog ref="earlyWarningRef" />
<EarlyWarningDialog ref="earlyWarningRef" :org-codes="orgCode" />
</div>
</template>
<script lang="ts" setup>
import { onUnmounted, ref, watch } from 'vue';
import PublicTitle from '/@/components/publicTitle.vue';
import EarlyWarningDialog from '/@/views/components/earlyWarningDialog.vue';
import { getCustom, getMonitorList } from '/@/components/secondaryScreen/commonApi.ts';
import { getCustom, getCustomNew, getMonitorList } from '/@/components/secondaryScreen/commonApi.ts';
import { monitorColumns } from '/@/components/secondaryScreen/screen-right/screenRightHooks.ts';
import $bus from '/@/utils/bus.ts';
import { earlyWarning } from '/@/utils/busConstant.ts';
@@ -64,7 +64,7 @@
function handlePoliceDetail(record) {
$bus.emit(earlyWarning, record);
}
const threeCodes = ref();
watch(
props,
() => {
@@ -75,7 +75,12 @@
},
{ immediate: true, deep: true }
);
watch(
() => props.orgCode,
() => {
threeCodes.value = props.orgCode;
}
);
onUnmounted(() => {
window.removeEventListener('resize', setHeight);
});
@@ -89,7 +94,8 @@
async function init(page) {
try {
const { pageSize } = pagination.value;
const { code, result } = await getCustom({ pageSize, pageNo: page, orgCode: props.orgCode });
// const { code, result } = await getCustom({ pageSize, pageNo: page, orgCode: props.orgCode });
const { code, result } = await getCustomNew({ pageSize, pageNo: page, orgCodes: props.orgCode });
if (code == 200) {
setSession(PAGE2_RIGHT3, JSON.stringify({ page, result }));
setValue(result, page);
@@ -31,6 +31,7 @@
type: Function,
},
apiParams: {
type: Object,
default: () => {},
},
afterFetch: {
@@ -12,12 +12,21 @@
<div v-show="isShow" :class="className" class="footer-data" style="--moveUp: 20px; --moveDown: -80px">
<div
v-for="item in footerList"
:style="{ cursor: item.key == 'allotDeviceNum' ? 'pointer' : 'default' }"
:style="{
cursor: item.key == 'allotDeviceNum' ? 'pointer' : 'default',
}"
class="col-item nowrap"
@click="openWatchList(item)"
>
<div class="col-text">{{ item?.name }}</div>
<div :title="item.value" class="col-value nowrap">{{ item?.value }}</div>
<div
:title="item.value"
class="col-value nowrap"
:style="{
color: item.key == 'allotDeviceNum' ? '#0098fa' : '#fff',
}"
>{{ item?.value }}</div
>
</div>
</div>
<div
@@ -103,7 +112,7 @@
async (val) => {
let params = {
orgCodeLeaf: val.orgCode,
orgCode: null,
orgCode: props.orgCode,
};
const { code, result } = await footerApi(params);
if (code == 200) {
-1
View File
@@ -50,7 +50,6 @@ const router: Router = createRouter({
});
router.beforeEach((to, from, next) => {
debugger;
if (to.path !== '/login') {
setCurrentPath(to.path);
}
+58 -1
View File
@@ -63,7 +63,7 @@ export const initatorTypee = [
export const normalTypeList = [
{
label: '全部',
value: '2',
value: '',
},
{
label: '正常',
@@ -75,6 +75,63 @@ export const normalTypeList = [
},
];
export const checkTypeList = [
{
label: '全部',
value: '',
},
{
label: 'BMI',
value: '11',
},
{
label: '收缩压',
value: '21',
},
{
label: '舒张压',
value: '22',
},
{
label: '血糖',
value: '31',
},
{
label: '低密度脂蛋白',
value: '41',
},
{
label: '总胆固醇',
value: '42',
},
{
label: '甘油三酯',
value: '43',
},
{
label: '尿酸',
value: '51',
},
{
label: '同型半胱氨酸',
value: '61',
},
];
export const isTrueOfFalse = [
{
label: '全部',
value: '',
},
{
label: '是',
value: '1',
},
{
label: '否',
value: '0',
},
];
export interface Settings {
dataType: string;
orgCode?: string;
+4 -2
View File
@@ -8,7 +8,8 @@
:class="[themeType]"
:key="visible"
:columns="columns"
:api="getEarlyWarningDetail"
:api-params="{ orgCodes: orgCodes }"
:api="getEarlyWarningDetailNew"
></BasicTable>
</template>
</Dialog>
@@ -16,7 +17,7 @@
<script setup lang="ts">
import Dialog from '/@/components/dialog/Dialog.vue';
import { h, ref, watch } from 'vue';
import { getEarlyWarningDetail } from '/@/components/body-d-left/left.api.ts';
import { getEarlyWarningDetail, getEarlyWarningDetailNew } from '/@/components/body-d-left/left.api.ts';
import BasicTable from '/@/components/secondaryScreen/secondMap/components/basicTable/BasicTable.vue';
import { useDialog } from '/@/views/components/dialogHooks.ts';
import { useTheme } from '/@/hooks/theme/useTheme.ts';
@@ -26,6 +27,7 @@
const registerTable = ref(null);
const props = defineProps({
title: String,
orgCodes: String,
});
const { themeType } = useTheme();
const columns = [
+7 -2
View File
@@ -1,8 +1,13 @@
import { get } from '/@/api/request';
import { get, Dictget } from '/@/api/request';
export enum Api {
organizationTree = '',
getDictByCode = '/sys/dict/getDictItems',
getDictByCode2 = '/sys/api/getDictItems',
}
// 组织机构tree
export const getOrganizationTree = () => get(Api.organizationTree);
export const getOrganizationTree = () => get(Api.organizationTree);
export const getDictByCode = (params) => get(Api.getDictByCode + `/${params.code}`);
export const getDictByCode2 = (params) => Dictget(Api.getDictByCode2, params);
+34 -11
View File
@@ -19,13 +19,7 @@
<div class="body-d-middle">
<SecondMap :orgCode="orgCode" :type="type">
<template #rightForm>
<a-select
placeholder="选择单位"
v-model:value="orgCode"
class="type-select bg-000"
:options="option"
:field-names="fieldNames"
/>
<a-select placeholder="选择单位" v-model:value="orgCode" class="type-select bg-000 select-dept" :options="option1" />
<a-select placeholder="选择时间范围" v-model:value="type" class="type-select bg-000" :options="timeRangeOption" />
</template>
</SecondMap>
@@ -56,7 +50,9 @@
import { onUnmounted } from 'vue';
import { useTheme } from '/@/hooks/theme/useTheme.ts';
import { ThemeType } from '/@/utils/settings.ts';
import { allSecondaryDepartsApi } from '/@/views/indexSun/indexSun.api.ts';
const option1 = ref([{ label: '全部', value: '' }]);
const { refreshState } = useRefresh(DEFAULT_TIME);
const store = useUserStore();
@@ -66,18 +62,42 @@
});
const { themeType } = useTheme();
const useStore = useUserStore();
const { orgCode, option, fieldNames, setOrgCode } = useDepart();
const orgCode = ref();
const { option, fieldNames, setOrgCode } = useDepart();
onMounted(() => {
const userInfo = useStore.getUserInfo;
let orgCode = userInfo?.secondDepart?.orgCode;
if (orgCode) {
let orgCodes = userInfo?.secondDepart?.orgCode;
if (orgCodes) {
nextTick(() => {
setOrgCode(orgCode);
// orgCode.value = orgCodes;
orgCode.value = userInfo?.secondDepart?.orgCode;
setOrgCode(orgCodes);
});
}
init();
document.addEventListener('visibilitychange', checkTabState);
getSecondDepart();
});
function getSecondDepart() {
allSecondaryDepartsApi({})
.then((res: any) => {
if (res.code === 200) {
const op: any[] = res?.result
? res.result.map((it: any) => {
return {
label: it.departName,
value: it.orgCode,
};
})
: [];
option1.value = option1.value.concat(op);
} else {
}
})
.catch((err) => {
console.log(err);
});
}
onUnmounted(() => {
document.removeEventListener('visibilitychange', checkTabState);
});
@@ -218,6 +238,9 @@
color: #fff !important;
}
}
.select-dept {
width: 200px;
}
}
.bottom-d {
+34 -3
View File
@@ -25,6 +25,7 @@
:hospitalList="hospitalList"
@clear-hospital-list="clearHospitalList"
:show-rest-b="showRestB"
@handle-detail="handleCenterMapClick"
@show-rest-b="
() => {
showRestB = false;
@@ -80,7 +81,16 @@
import threeR from '/@/views/indexSun/threeR.vue';
import CenterMap from '/@/views/indexSun/centerMap.vue';
import { ServerDetailType } from '/@/components/body-d-left/bodyLeftHooks.ts';
import { columns, fromLists, threeRModalColumns, threeRModalFromList, towRcolumns, twoRform } from '/@/views/indexSun/indexSun.ts';
import {
centerMapColumns,
centerMapFromList,
columns,
fromLists,
threeRModalColumns,
threeRModalFromList,
towRcolumns,
twoRform,
} from '/@/views/indexSun/indexSun.ts';
import { nextTick, onMounted, onUnmounted, ref, watch } from 'vue';
import PhoneDialog from '/@/views/components/phoneDialog/phoneDialog.vue';
import { DataType, getSettings } from '/@/utils/settings.ts';
@@ -96,7 +106,15 @@
import { useUserStore } from '/@/store/modules/user.ts';
const { getCenterInfo } = useUserStore();
import { oneLApi, threeRModalApi, twoLModalApi, twoRModal1Api, twoRModal2Api, twoRModal3Api } from '/@/views/indexSun/indexSun.api.ts';
import {
oneLApi,
roomDetailApi,
threeRModalApi,
twoLModalApi,
twoRModal1Api,
twoRModal2Api,
twoRModal3Api,
} from '/@/views/indexSun/indexSun.api.ts';
import dayjs from 'dayjs';
//0:处置 1:处理 2:呼入 3:全部
const phoneType = ref('');
@@ -397,7 +415,20 @@
}
apiParams.value = params;
modalApi.value = apiArr[data.type - 1];
firstFormOne.value = twoRform(data.normal == 2 ? '1' : '2');
firstFormOne.value = twoRform(data.normal == 2 ? '1' : '');
nextTick(() => {
indexModalRef.value.openDialog();
});
}
function handleCenterMapClick(res) {
console.log(res, 'centerres');
indexColumn.value = centerMapColumns;
firstFormOne.value = centerMapFromList;
const params = {
healthRoomId: res.id,
};
modalApi.value = roomDetailApi;
apiParams.value = params;
nextTick(() => {
indexModalRef.value.openDialog();
});
+17 -9
View File
@@ -74,7 +74,7 @@
</template>
<script setup lang="ts">
import { nextTick, onMounted, ref, watch } from 'vue';
import { infoContent, legendList, tabList } from '/@/views/indexSun/indexSun.ts';
import { infoContent, infoContent1, legendList, tabList } from '/@/views/indexSun/indexSun.ts';
import { message } from 'ant-design-vue';
import { innerLineLight, outerLineOption } from '/@/assets/mapUtils/mapConstant.ts';
import { Map } from '/@/assets/mapUtils/map.ts';
@@ -122,7 +122,7 @@
const panelTitle = ref();
const level = ref(0);
const routeList = ref([]);
const emits = defineEmits(['clearHospitalList', 'showRestB']);
const emits = defineEmits(['clearHospitalList', 'showRestB', 'handleDetail']);
watch(
() => props.showHospitalList,
@@ -150,7 +150,6 @@
document.addEventListener('click', (e) => {
let t = e.target.closest('.viewBtn');
if (t) {
console.log(t.id);
if (t.id) {
handleClcikDetail(JSON.parse(t.id));
}
@@ -184,7 +183,9 @@
function changeTab(item: any, i: number) {
closeDrivingElement();
currentIndex.value = i;
tab(item);
if (item.type) {
tab(item);
}
}
function tab(item: any) {
@@ -280,8 +281,12 @@
},
},
async (val) => {
console.log(val);
Map.createInfoModal({ option: val, content: infoContent(val) });
if (val.type == '2') {
Map.createInfoModal({ option: val, content: infoContent(val) });
} else {
Map.createInfoModal({ option: val, content: infoContent1(val) });
}
// const viewBtn = document.getElementById(val.id);
// viewBtn.onclick = () => {
// handleClcikDetail(val);
@@ -307,7 +312,7 @@
}
function handleClcikDetail(res) {
console.log(res);
emits('handleDetail', res);
}
function setTitle({ time, distance }) {
@@ -560,7 +565,10 @@
}
}
}
:deep(.modal-box-normal) {
width: 330px;
height: 110px;
}
.hospital-list {
position: absolute;
bottom: 160px;
@@ -590,7 +598,7 @@
z-index: 99;
position: absolute;
right: 0;
top: 54px;
top: 100px;
width: 288px;
padding: 9px 18px;
min-height: 200px;
+42 -12
View File
@@ -20,17 +20,17 @@
<a-select placeholder="选择部门" v-model:value="orgCode2" :options="option2" />
</a-form-item>
<slot name="searchSecond"></slot>
<div class="form-btn">
<a-button @click="handleClickReset" style="border-color: #00ccff">重置</a-button>
<a-button
@click="handleClicksearch"
:loading="loading"
style="margin-left: 10px; background: #00ccff; border-color: #00ccff; color: #ffffff"
>
搜索
</a-button>
</div>
</Form>
<div class="form-btn">
<a-button @click="handleClickReset" style="border-color: #00ccff">重置</a-button>
<a-button
@click="handleClicksearch"
:loading="loading"
style="margin-left: 10px; background: #00ccff; border-color: #00ccff; color: #ffffff"
>
搜索
</a-button>
</div>
</div>
<div class="top-bottom-center" v-if="twoROnly">
<div class="date-change">
@@ -134,6 +134,35 @@
if (type == dataActity.value) return;
dataActity.value = type;
getField();
if (props.twoROnly) {
const twoRData = localStorage.getItem('twoRList');
const newData = JSON.parse(twoRData);
if (props.twoROnly.type == 1) {
if (type == 1) {
normalNum.value = newData.weightLossCountDay;
abnormalNum.value = newData.weightLossAbnormalCountDay;
} else {
normalNum.value = newData.weightLossCountMonth;
abnormalNum.value = newData.weightLossAbnormalCountMonth;
}
} else if (props.twoROnly.type == 2) {
if (type == 1) {
normalNum.value = newData.bloodSugarCountDay;
abnormalNum.value = newData.bloodSugarAbnormalCountDay;
} else {
normalNum.value = newData.bloodSugarCountMonth;
abnormalNum.value = newData.bloodSugarAbnormalCountMonth;
}
} else {
if (type == 1) {
normalNum.value = newData.bloodPressureCountDay;
abnormalNum.value = newData.bloodPressureAbnormalCountDay;
} else {
normalNum.value = newData.bloodPressureCountMonth;
abnormalNum.value = newData.bloodPressureAbnormalCountMonth;
}
}
}
if (type == 1) {
formState.value.inputDateBegin = dayjs().format('YYYY-MM-DD');
formState.value.inputDateEnd = dayjs().format('YYYY-MM-DD');
@@ -212,7 +241,7 @@
abnormalNum.value = newData.weightLossAbnormalCountDay;
} else {
normalNum.value = newData.weightLossCountMonth;
abnormalNum.value = newData.weightLossCountMonth;
abnormalNum.value = newData.weightLossAbnormalCountMonth;
}
} else if (props.twoROnly.type == 2) {
if (props.twoROnly.date == 1) {
@@ -270,6 +299,7 @@
orgCode2.value = '';
orgCode1.value = '';
getField();
formRecord.value = {};
formState.value = {
...formState.value,
...formRecord.value,
@@ -303,7 +333,7 @@
border-radius: 4px !important;
}
:deep(.ant-form) {
width: 80%;
width: 100%;
display: flex;
.ant-form-item {
flex: 1;
+2
View File
@@ -15,6 +15,7 @@ enum Api {
twoRModal1 = '/health-emergency/emergency/LargeScreenNew/healthWeightLoss',
twoRModal2 = '/health-emergency/emergency/LargeScreenNew/healthBloodSugar',
twoRModal3 = '/health-emergency/emergency/LargeScreenNew/healthBloodPressure',
roomDetail = '/health-emergency/emergency/LargeScreenNew/healthRoomDetail',
getSecondaryDepartment = '/sys/sysDepart/allSecondaryDeparts',
}
@@ -31,6 +32,7 @@ export const threeRModalApi = (params) => post(Api.threeRModal, params);
export const twoRModal1Api = (params) => post(Api.twoRModal1, params);
export const twoRModal2Api = (params) => post(Api.twoRModal2, params);
export const twoRModal3Api = (params) => post(Api.twoRModal3, params);
export const roomDetailApi = (params) => post(Api.roomDetail, params);
export const getSecondaryDepartmentList = () => get({ url: Api.getSecondaryDepartment });
export const allSecondaryDepartsApi = (params) => get(Api.allSecondaryDeparts, params);
export const getThreeDepartByOrgCodeApi = (params) => get(Api.getThreeDepartByOrgCode, params);
+134 -14
View File
@@ -1,9 +1,17 @@
import * as echarts from 'echarts';
import { legend1, legend2, legend3, legend4, legend5 } from '/@/components/xianMap/xianMapHooks.ts';
import { initatorTypee, normalTypeList, SexType, sexTypeList, sexTypeListNew } from '/@/utils/settings.ts';
import { checkTypeList, initatorTypee, isTrueOfFalse, normalTypeList, SexType, sexTypeList, sexTypeListNew } from '/@/utils/settings.ts';
import { getDictByCode, getDictByCode2 } from '/@/views/index.api.ts';
import { get } from '/@/api/request';
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;
async function getDict(code) {
return await getDictByCode2({ dictCode: code });
}
export const checkData = await getDict('xj_check_type');
export function getClassCharts(dx, dy, m) {
return {
grid: {
@@ -129,7 +137,7 @@ export function infoContent(res) {
<span class="item-one">单位:</span>
<span class="item-two">${res.orgName ? res.orgName : '--'}</span>
</div>
<div class="modal-item">
<div class="modal-item" >
<span class="item-one">关爱人数:</span>
<span class="item-two">${res.loveNum ? res.loveNum : '--'}</span>
</div>
@@ -142,7 +150,19 @@ export function infoContent(res) {
</div>
</div> `;
}
export function infoContent1(res) {
return `
<div class="modal-box modal-box-normal">
<div class="modal-item">
<span class="item-one">单位:</span>
<span class="item-two">${res.orgName ? res.orgName : '--'}</span>
</div>
<div class="modal-item">
<span class="item-one">地点:</span>
<span class="item-two">${res.name ? res.name : '--'}</span>
</div>
</div> `;
}
const columns1 = [
{
title: '姓名',
@@ -320,6 +340,13 @@ export const threeRModalFromList = [
placeholder: '请输入体检医院',
defaultValue: '',
},
{
label: '单位',
field: 'departName',
type: 'input',
placeholder: '请输入单位',
defaultValue: '',
},
];
const towRcolumn1 = [
@@ -360,8 +387,8 @@ const towRcolumn1 = [
},
{
title: 'BMI是否异常',
dataIndex: 'bmiException',
key: 'bmiException',
dataIndex: 'bmiFlag',
key: 'bmiFlag',
},
{
title: '腰围(cm)',
@@ -370,8 +397,8 @@ const towRcolumn1 = [
},
{
title: '填报日期',
dataIndex: 'createTime',
key: 'createTime',
dataIndex: 'inputDate',
key: 'inputDate',
},
];
const towRcolumn2 = [
@@ -397,13 +424,13 @@ const towRcolumn2 = [
},
{
title: '血糖值(mmol/L)',
dataIndex: 'height',
key: 'height',
dataIndex: 'bsVal',
key: 'bsVal',
},
{
title: '血糖是否异常',
dataIndex: 'weight',
key: 'weight',
dataIndex: 'bmiFlag',
key: 'bmiFlag',
},
{
title: '腰围(cm)',
@@ -412,8 +439,8 @@ const towRcolumn2 = [
},
{
title: '填报日期',
dataIndex: 'createTime',
key: 'createTime',
dataIndex: 'inputDate',
key: 'inputDate',
},
];
const towRcolumn3 = [
@@ -476,7 +503,7 @@ export function twoRform(type) {
label: '异常标记',
field: 'abFlag',
type: 'select',
placeholder: '请选择性别',
placeholder: '请选择',
options: normalTypeList,
defaultValue: type,
},
@@ -489,3 +516,96 @@ export function twoRform(type) {
];
}
export const towRcolumns = [towRcolumn1, towRcolumn2, towRcolumn3];
export const centerMapColumns = [
{
title: '单位',
dataIndex: 'departName',
key: 'departName',
},
{
title: '姓名',
dataIndex: 'name',
key: 'name',
},
{
title: '检查日期',
dataIndex: 'checkInDate',
key: 'checkInDate',
},
{
title: '检查类型',
dataIndex: 'checkType',
key: 'checkType',
customRender: ({ text }) => {
console.log(text, checkData);
const dddd = checkData.filter((item) => item.value == text);
return dddd[0].label;
},
},
{
title: '去年检查值',
dataIndex: 'lastVal',
key: 'lastYearCheckVal',
},
{
title: '控降目标',
dataIndex: 'goalVal',
key: 'targetVal',
},
{
title: '本次测量值',
dataIndex: 'currentVal',
key: 'thisCheckVal',
},
{
title: '控降差值',
dataIndex: 'compareVal',
key: 'diffVal',
},
{
title: '是否成功控降',
dataIndex: 'successFlag',
key: 'successFlag',
customRender: ({ text }) => {
if (text == '1') {
return '是';
} else {
return '否';
}
},
},
];
export const centerMapFromList = [
{
label: '员工姓名',
field: 'name',
type: 'input',
placeholder: '请输入姓名',
defaultValue: '',
},
{
label: '检查类型',
field: 'checkType',
type: 'select',
placeholder: '请输入检查类型',
options: checkData,
defaultValue: '',
},
{
label: '是否成功控降',
field: 'successFlag',
type: 'select',
placeholder: '请输入是否成功控降',
options: isTrueOfFalse,
defaultValue: '',
},
{
label: '单位名称',
field: 'departName',
type: 'input',
placeholder: '请输入单位名称',
defaultValue: '',
},
];
+13 -3
View File
@@ -21,7 +21,7 @@
</template>
<template v-else>
<div style="height: 100%; width: 100%; display: flex; align-items: center; justify-content: center">
<Empty :description="'暂无数据'" />
<Empty :description="'暂无数据'" :image="nomalPng" />
</div>
</template>
</div>
@@ -34,6 +34,7 @@
import { onMounted, ref, watch } from 'vue';
import hospitalPng from '/@/assets/indexSun/hospital.png';
import { threeLApi } from '/@/views/indexSun/indexSun.api.ts';
import nomalPng from '/@/assets/indexSun/nomal.png';
const scrollList = ref<any[]>([]);
const props = defineProps({
bKey: {
@@ -98,14 +99,23 @@
font-size: 14px;
letter-spacing: 0;
margin-bottom: 20px;
cursor: pointer;
img {
display: inline-block;
width: 32px;
height: 32px;
cursor: pointer;
}
}
:deep(.ant-empty-image) {
height: auto;
img {
display: inline-block;
width: 51px;
height: 54px;
}
}
:deep(.ant-empty-description) {
color: #c9daff;
}
}
}
}
+13 -1
View File
@@ -34,7 +34,7 @@
</template>
<template v-else>
<div style="height: 100%; width: 100%; display: flex; align-items: center; justify-content: center">
<Empty :description="'暂无数据'" />
<Empty :description="'暂无数据'" :image="nomalPng" />
</div>
</template>
</div>
@@ -44,6 +44,7 @@
<script setup lang="ts">
import { Empty } from 'ant-design-vue';
import { ref, onMounted, watch } from 'vue';
import nomalPng from '/@/assets/indexSun/nomal.png';
import { threeRApi } from '/@/views/indexSun/indexSun.api.ts';
const scrollList = ref();
const emit = defineEmits(['handleClick']);
@@ -116,6 +117,17 @@
color: #fff;
justify-content: space-between;
}
:deep(.ant-empty-image) {
height: auto;
img {
display: inline-block;
width: 51px;
height: 54px;
}
}
:deep(.ant-empty-description) {
color: #c9daff;
}
}
}
}
+1 -1
View File
@@ -37,7 +37,7 @@
<div>
<span class="clock-text">异常人数</span>
<span class="clock-num2" @click="handleClickNum1(1, 2, 2)"
>{{ twoRList?.weightLossCountMonth ? twoRList?.weightLossAbnormalCountMonth : '--' }}</span
>{{ twoRList?.weightLossAbnormalCountMonth ? twoRList?.weightLossAbnormalCountMonth : '--' }}</span
>
</div>
</div>