riku
2025-06-09 38ff09bd2a638bc43a365efe0390cc3510d62e68
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<template>
  <BaseMap></BaseMap>
  <el-row class="overlay-container" v-if="false">
    <el-col :span="7" class="page-right">
      <el-scrollbar height="var(--fy-body-height)" class="p-events-auto">
        <ManagementView></ManagementView>
      </el-scrollbar>
    </el-col>
    <el-col :span="17">
      <el-scrollbar class="page-left-top">
        <VisualizationView></VisualizationView>
      </el-scrollbar>
      <el-scrollbar class="page-left-bottom p-events-auto">
        <!-- <InspectionView></InspectionView> -->
      </el-scrollbar>
    </el-col>
    <!-- <el-col :span="7" class="page-right">
      <el-scrollbar height="var(--fy-body-height)">
        <StatisticView></StatisticView>
      </el-scrollbar>
    </el-col> -->
  </el-row>
  <SupervisionVisual class="supervision-view"></SupervisionVisual>
  <TaskStats class="task-stats"></TaskStats>
  <WorkStream class="work-stream"></WorkStream>
</template>
 
<script setup>
import { provide, ref, unref } from 'vue'
 
import { useAreaStore } from '@/stores/area.js'
import { useSubtaskStore } from '@/stores/subtask.js'
import { useMapStore } from '@/stores/map.js'
 
import taskApi from '@/api/fysp/taskApi.js'
import marks from '@/utils/map/marks.js'
import mapUtil from '@/utils/map/util.js'
import scene_1 from '@/assets/icon/scene_1.png'
 
import InspectionView from '@/views/inspection/InspectionView.vue'
import ManagementView from '@/views/management/ManagementView.vue'
import StatisticView from '@/views/management/StatisticView.vue'
import VisualizationView from '@/views/visualization/VisualizationView.vue'
import SupervisionVisual from '@/views/visualization/SupervisionVisual.vue'
import WorkStream from '@/views/inspection/WorkStream.vue'
import TaskStats from '@/views/management/TaskStats.vue'
 
// provide('mapHeight', 'calc(var(--fy-body-height) / 4 * 3)')
provide('mapHeight', 'calc(var(--fy-body-height))')
provide('excludeMapHeight', 'calc(var(--fy-body-height) / 4 * 1)')
const windowHeight = ref(window.innerHeight)
 
const areaStore = useAreaStore()
const subtaskStore = useSubtaskStore()
const mapStore = useMapStore()
 
// 初始化查询范围
areaStore.setTimeOneMonth()
areaStore.setLocation({
  pCode: '31',
  pName: '上海市',
  cCode: '3100',
  cName: '上海市',
  dCode: '310106',
  dName: '静安区'
})
areaStore.setSceneType({ label: '工地', value: '1' })
 
// 获取本月的所有巡查统计信息
subtaskStore.fetchTopTaskProgress(areaStore.area)
// subtaskStore.subtaskLoading = true
// taskApi.fetchTopTaskProgress(areaStore.area).then((res) => {
//   if (res.data.length == 0) return
//   const data = res.data[0]
//   // 存储为全局数据
//   subtaskStore.setSummary(data)
//   subtaskStore.subtaskLoading = false
//   // 绘制地图标记
//   marks.createLabelMarks(scene_1, unref(data.subTaskSummary), (v) => {
//     mapStore.focusMarker = v
//   })
//   mapUtil.setFitView()
// })
</script>
 
<style scoped>
.page-left-top {
  height: calc(var(--fy-body-height) / 4 * 3);
  /* background-color: aquamarine; */
}
.page-left-bottom {
  height: calc(var(--fy-body-height) / 4 * 1);
  /* background-color: bisque; */
}
 
.page-right {
  /* background-color: aliceblue; */
}
 
.overlay-container {
  /* background: aliceblue; */
  position: absolute;
  width: 100%;
  /* height: 100vh; */
  top: 0;
  left: 0;
  /* padding: 4px; */
  pointer-events: none;
}
 
.work-stream {
  position: absolute;
  bottom: 0;
  right: 0;
}
 
.task-stats {
  position: absolute;
  top: 0;
  left: 0;
}
 
.supervision-view {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}
</style>