forked from drone/command-center-dashboard

罗广辉
2025-04-03 dfe5ba4f8b390ebeff0f51ce3f80cd02dc27fd9a
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>
    <el-dialog
    append-to-body
        modal-class="detailsOfHistoricalTasks"
        v-model="isShow"
        title="历史任务详情"
        :width="pxToRem(1500)"
        :close-on-click-modal="false"
        :destroy-on-close="true"
    >
        <div class="content">
            <div class="contentLeft">
                <el-divider content-position="left">详情</el-divider>
                <div class="infoBox">
                    <div class="itemBox" v-for="item in infoList">
                        <div class="itemTitle">{{ item.name }}:</div>
                        <div class="itemValue">{{ item.value }}</div>
                    </div>
                </div>
                <JobRelatedEvents v-if="isShow" />
                <el-divider content-position="left">任务成果 xxx个</el-divider>
                <div class="imgListBox">
                    <div v-for="item in imgList" class="imgItem">xxx图片</div>
                </div>
            </div>
            <div class="contentRight">map</div>
        </div>
    </el-dialog>
</template>
 
<script setup>
import { pxToRem } from '@/utils/rem'
import JobRelatedEvents from './JobRelatedEvents.vue'
 
const isShow = defineModel('show')
 
 
const imgList = ref([
    { name: '图片1', url: 'xxx' },
    { name: '图片1', url: 'xxx' },
    { name: '图片1', url: 'xxx' },
    { name: '图片1', url: 'xxx' },
])
 
const infoList = ref([
    { name: '任务编号', value: 'xxx' },
    { name: '任务所属机巢', value: 'xxx' },
    { name: '关联算法', value: 'xxx' },
    { name: '任务名称', value: 'xxx' },
    { name: '所属单位', value: 'xxx' },
    { name: '任务类型', value: 'xxx' },
    { name: '任务周期', value: 'xxx' },
    { name: '飞行事件', value: 'xxx' },
    { name: '任务频次', value: 'xxx' },
    { name: '任务描述', value: 'xxx' },
])
 
</script>
 
<style lang="scss">
.detailsOfHistoricalTasks {
    .el-dialog {
        --el-dialog-margin-top: 5vh;
    }
 
    .el-pagination {
        justify-content: center;
        padding: 20px;
    }
 
    .el-dialog__body {
        height: 80vh;
    }
}
</style>
 
<style lang="scss" scoped>
.content {
    display: flex;
    height: 100%;
 
    .contentLeft {
        width: 900px;
        overflow: auto;
 
        .infoBox {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 10px; // 列之间的间距
            padding: 10px;
 
            .itemBox {
                background-color: #fff;
                border: 1px solid #ddd;
                border-radius: 4px;
                padding: 15px;
                box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
                display: flex;
                align-items: center;
            }
 
            .itemTitle {
                font-weight: bold;
                color: #333;
            }
 
            .itemValue {
                color: #666;
            }
        }
 
        .imgListBox {
            display: flex;
 
            .imgItem {
                width: 200px;
                height: 200px;
            }
        }
    }
 
    .contentRight {
        width: 0;
        flex-grow: 1;
        background: #19ad8d;
    }
}
</style>