306 lines
6.4 KiB
TypeScript
306 lines
6.4 KiB
TypeScript
import { cloneDeep } from 'lodash-es';
|
||
import { onMounted, ref } from 'vue';
|
||
import { allSecondaryDeparts } from '/@/components/secondaryScreen/commonApi';
|
||
|
||
export const watchIcon = new URL('/@/assets/img/watch.png', import.meta.url).href;
|
||
|
||
export function useDepart() {
|
||
const orgCode = ref();
|
||
const option = ref([]);
|
||
const fieldNames = { label: 'departName', value: 'orgCode' };
|
||
onMounted(() => {
|
||
getOptionData();
|
||
});
|
||
|
||
function setOrgCode(val) {
|
||
orgCode.value = val;
|
||
}
|
||
|
||
function setOption(data) {
|
||
option.value = data;
|
||
orgCode.value = data[0]?.orgCode;
|
||
}
|
||
|
||
async function getOptionData() {
|
||
const { result, code } = await allSecondaryDeparts();
|
||
if (code == 200) {
|
||
setOption(result);
|
||
}
|
||
}
|
||
|
||
return {
|
||
orgCode,
|
||
setOrgCode,
|
||
option,
|
||
setOption,
|
||
fieldNames,
|
||
};
|
||
}
|
||
|
||
export function useTimeType(t) {
|
||
const type = ref(t || '');
|
||
const timeRangeOption = [
|
||
{
|
||
label: '近一周',
|
||
value: 'week',
|
||
},
|
||
{
|
||
label: '近一月',
|
||
value: 'month',
|
||
},
|
||
{
|
||
label: '近一年',
|
||
value: 'year',
|
||
},
|
||
];
|
||
return {
|
||
type,
|
||
timeRangeOption,
|
||
};
|
||
}
|
||
|
||
export function useFooterTable() {
|
||
const isShowAlarm = ref(false);
|
||
|
||
function setIsShowAlarm(type: boolean) {
|
||
isShowAlarm.value = type;
|
||
}
|
||
|
||
const footerList = ref([
|
||
{
|
||
name: '单位名称',
|
||
value: '',
|
||
key: 'orgName',
|
||
extData: {},
|
||
},
|
||
{
|
||
name: '单位人数',
|
||
value: '',
|
||
key: 'userCount',
|
||
extData: {},
|
||
},
|
||
{
|
||
name: '入库设备数量',
|
||
value: '',
|
||
key: 'deviceNum',
|
||
extData: {},
|
||
},
|
||
{
|
||
name: '佩戴手表人数',
|
||
value: '',
|
||
key: 'allotDeviceNum',
|
||
extData: {},
|
||
},
|
||
{
|
||
name: '近一周活跃人数',
|
||
value: '',
|
||
key: 'sevenDayNum',
|
||
extData: {},
|
||
},
|
||
{
|
||
name: '近一月活跃人数',
|
||
value: '',
|
||
key: 'thirtyDayNum',
|
||
extData: {},
|
||
},
|
||
{
|
||
name: '近一年活跃人数',
|
||
value: '',
|
||
key: 'yearDayNum',
|
||
extData: {},
|
||
},
|
||
]);
|
||
|
||
function setFooterList(res: any) {
|
||
const arrList = cloneDeep(footerList.value);
|
||
if (res) {
|
||
console.log('resssss', res);
|
||
arrList.forEach((item) => {
|
||
item.value = res[item.key];
|
||
item.extData = res;
|
||
});
|
||
}
|
||
footerList.value = arrList;
|
||
}
|
||
|
||
return {
|
||
footerList,
|
||
setFooterList,
|
||
setIsShowAlarm,
|
||
isShowAlarm,
|
||
};
|
||
}
|
||
|
||
export function useAlarmDetail() {
|
||
const detailLeft = ref([
|
||
{
|
||
name: '员工姓名',
|
||
value: '',
|
||
key: 'realName',
|
||
},
|
||
{
|
||
name: '工具编码',
|
||
value: '',
|
||
key: 'watchNo',
|
||
},
|
||
{
|
||
name: '单位名称',
|
||
value: '',
|
||
key: 'orgName2',
|
||
},
|
||
]);
|
||
const detailRight = ref([
|
||
{
|
||
name: '部门名称',
|
||
value: '',
|
||
key: 'orgName',
|
||
},
|
||
{
|
||
name: '事件类型',
|
||
value: '',
|
||
key: 'eventType_dictText',
|
||
},
|
||
{
|
||
name: '异常数据',
|
||
value: '',
|
||
key: 'dataValue',
|
||
},
|
||
{
|
||
name: '报警时间',
|
||
value: '',
|
||
key: 'warnTime',
|
||
},
|
||
]);
|
||
|
||
function setDetail(res) {
|
||
if (res) {
|
||
detailLeft.value.forEach((item) => {
|
||
item.value = res[item.key];
|
||
});
|
||
detailRight.value.forEach((item) => {
|
||
item.value = res[item.key];
|
||
});
|
||
}
|
||
}
|
||
|
||
return {
|
||
detailLeft,
|
||
detailRight,
|
||
setDetail,
|
||
};
|
||
}
|
||
|
||
export function useMoveClass() {
|
||
const isShow = ref(false);
|
||
const className = ref('slide-bottom');
|
||
|
||
function setIsShow(type: boolean) {
|
||
isShow.value = type;
|
||
className.value = type ? 'slide-top' : 'slide-bottom';
|
||
}
|
||
|
||
return {
|
||
isShow,
|
||
className,
|
||
setIsShow,
|
||
};
|
||
}
|
||
|
||
export function useTree() {
|
||
const treeOption = [
|
||
{
|
||
value: 'Chinese delicious food',
|
||
label: '中国美食',
|
||
children: [
|
||
{
|
||
value: 'key3',
|
||
label: '月饼',
|
||
},
|
||
],
|
||
},
|
||
{
|
||
value: 'Russia delicious food',
|
||
label: '俄罗斯美食',
|
||
children: [
|
||
{
|
||
value: 'key6',
|
||
label: '红肠',
|
||
},
|
||
],
|
||
},
|
||
];
|
||
const orgCode = ref([]);
|
||
return {
|
||
orgCode,
|
||
treeOption,
|
||
};
|
||
}
|
||
|
||
export const columns = [
|
||
{
|
||
title: '员工名称',
|
||
dataIndex: 'realName',
|
||
align: 'center',
|
||
key: 'realName',
|
||
},
|
||
{
|
||
title: '单位名称',
|
||
dataIndex: 'orgName',
|
||
align: 'center',
|
||
key: 'orgName',
|
||
},
|
||
{
|
||
title: '部门名称',
|
||
dataIndex: 'orgName1',
|
||
align: 'center',
|
||
key: 'orgName1',
|
||
},
|
||
{
|
||
title: '工具编码',
|
||
dataIndex: 'watchNo',
|
||
align: 'center',
|
||
key: 'watchNo',
|
||
},
|
||
{
|
||
title: '心率(次/分)',
|
||
dataIndex: 'heartRate',
|
||
align: 'center',
|
||
key: 'heartRate',
|
||
},
|
||
{
|
||
title: '血氧(%)',
|
||
dataIndex: 'spo2',
|
||
align: 'center',
|
||
key: 'spo2',
|
||
},
|
||
{
|
||
title: '压力',
|
||
dataIndex: 'stress',
|
||
align: 'center',
|
||
key: 'stress',
|
||
},
|
||
{
|
||
title: '睡眠',
|
||
dataIndex: 'sleep',
|
||
align: 'center',
|
||
key: 'sleep',
|
||
},
|
||
{
|
||
title: '体温(℃)',
|
||
dataIndex: 'temp',
|
||
align: 'center',
|
||
key: 'temp',
|
||
},
|
||
{
|
||
title: '锻炼(千卡)',
|
||
dataIndex: 'exercise',
|
||
align: 'center',
|
||
key: 'exercise',
|
||
},
|
||
{
|
||
title: '步数(米)',
|
||
dataIndex: 'workout',
|
||
align: 'center',
|
||
key: 'workout',
|
||
},
|
||
]; |