|
@@ -1,7 +1,9 @@
|
|
<template>
|
|
<template>
|
|
<div class="report-header flex items-center justify-between">
|
|
<div class="report-header flex items-center justify-between">
|
|
- <div class="title flex items-center"
|
|
|
|
- ><span style="margin-right: 10px">{{ props.title }}</span>
|
|
|
|
|
|
+ <div class="title flex items-center">
|
|
|
|
+ <span class="report-header-title" style="margin-right: 10px">{{
|
|
|
|
+ props.title
|
|
|
|
+ }}</span>
|
|
<slot />
|
|
<slot />
|
|
<CustomDatePicker
|
|
<CustomDatePicker
|
|
v-if="!props.hideTimePicker"
|
|
v-if="!props.hideTimePicker"
|
|
@@ -13,7 +15,21 @@
|
|
<div class="right-box flex h-full items-center">
|
|
<div class="right-box flex h-full items-center">
|
|
<img class="time-icon" src="../../../assets//imgs/time.png" />
|
|
<img class="time-icon" src="../../../assets//imgs/time.png" />
|
|
<p>{{ timeText }} {{ getCurrentWeek() }}</p>
|
|
<p>{{ timeText }} {{ getCurrentWeek() }}</p>
|
|
- <t-button variant="outline" class="m-l-16px">
|
|
|
|
|
|
+ <t-button
|
|
|
|
+ v-if="appStore.isFullscreen"
|
|
|
|
+ variant="outline"
|
|
|
|
+ class="m-l-16px"
|
|
|
|
+ @click="switchFullscreen"
|
|
|
|
+ >
|
|
|
|
+ <template #icon><SwapLeftIcon /></template>
|
|
|
|
+ 返回
|
|
|
|
+ </t-button>
|
|
|
|
+ <t-button
|
|
|
|
+ v-else
|
|
|
|
+ variant="outline"
|
|
|
|
+ class="m-l-16px"
|
|
|
|
+ @click="switchFullscreen"
|
|
|
|
+ >
|
|
<template #icon><Fullscreen2Icon /></template>
|
|
<template #icon><Fullscreen2Icon /></template>
|
|
全屏
|
|
全屏
|
|
</t-button>
|
|
</t-button>
|
|
@@ -26,7 +42,11 @@ import { useIntervalFn } from '@vueuse/core';
|
|
import { dateFormat } from '@/utils/tool';
|
|
import { dateFormat } from '@/utils/tool';
|
|
import { useVModel } from '@vueuse/core';
|
|
import { useVModel } from '@vueuse/core';
|
|
import CustomDatePicker from '../custom-date-picker';
|
|
import CustomDatePicker from '../custom-date-picker';
|
|
-import { Fullscreen2Icon } from 'tdesign-icons-vue-next';
|
|
|
|
|
|
+import { Fullscreen2Icon, SwapLeftIcon } from 'tdesign-icons-vue-next';
|
|
|
|
+import { useAppStore } from '@/store';
|
|
|
|
+import useFullscreen from '@/hooks/useFullscreen';
|
|
|
|
+const { switchFullscreen } = useFullscreen();
|
|
|
|
+
|
|
const emit = defineEmits(['update:dateRange', 'timeChange']);
|
|
const emit = defineEmits(['update:dateRange', 'timeChange']);
|
|
const timeChange = (value) => {
|
|
const timeChange = (value) => {
|
|
emit('timeChange', value);
|
|
emit('timeChange', value);
|
|
@@ -36,6 +56,7 @@ const props = defineProps({
|
|
dateRange: Array,
|
|
dateRange: Array,
|
|
hideTimePicker: Boolean,
|
|
hideTimePicker: Boolean,
|
|
});
|
|
});
|
|
|
|
+const appStore = useAppStore();
|
|
const range = useVModel(props, 'dateRange', emit);
|
|
const range = useVModel(props, 'dateRange', emit);
|
|
const currentTime = ref(Date.now());
|
|
const currentTime = ref(Date.now());
|
|
const updateTime = () => {
|
|
const updateTime = () => {
|