Vue UI + UI server
[e-mobility-charging-stations-simulator.git] / src / ui / web / src / components / charging-stations / CSTable.vue
1 <template>
2 <table id="cs-table">
3 <thead id="cs-table__head">
4 <tr class="cs-table__row">
5 <th scope="col" class="cs-table__action-col">Action</th>
6 <th scope="col" class="cs-table__connector-col">Connector</th>
7 <th scope="col" class="cs-table__status-col">Status</th>
8 <th scope="col" class="cs-table__name-col">Name</th>
9 <th scope="col" class="cs-table__model-col">Model</th>
10 <th scope="col" class="cs-table__vendor-col">Vendor</th>
11 <th scope="col" class="cs-table__firmware-col">Firmware Version</th>
12 </tr>
13 </thead>
14 <tbody id="cs-table__body">
15 <CSData
16 v-for="chargingStation in chargingStations"
17 :key="chargingStation.hashId"
18 :charging-station="chargingStation"
19 :tag="props.tag"
20 />
21 </tbody>
22 </table>
23 </template>
24
25 <script setup lang="ts">
26 import CSData from './CSData.vue';
27 import { ChargingStationData } from '@/type/ChargingStationType';
28
29 const props = defineProps<{
30 chargingStations: ChargingStationData[];
31 tag: string;
32 }>();
33 </script>
34
35 <style>
36 #cs-table {
37 flex-grow: 1;
38
39 background-color: white;
40
41 height: 100%;
42 width: 100%;
43
44 display: flex;
45 flex-direction: column;
46 overflow: auto hidden;
47 border-collapse: collapse;
48 empty-cells: show;
49 }
50
51 #cs-table__head,
52 #cs-table__body {
53 display: block;
54 /* flex-direction: column;
55 justify-content: space-evenly; */
56 width: 100%;
57 min-width: 934px;
58 /* box-sizing: border-box; */
59 }
60 #cs-table__head {
61 /* width: 100%; */
62 /* display: block; */
63 }
64 #cs-table__body {
65 /* width: 100%; */
66 /* direction: rtl; */
67 /* overflow: visible scroll; */
68 overflow: visible overlay;
69 flex-grow: 1;
70 }
71
72 .cs-table__row {
73 /* width: 1647px; */
74 width: 100%;
75 /* display: inline-block; */
76 display: flex;
77 /* align-content: stretch; */
78 /* align-items: baseline; */
79 }
80 #cs-table__head .cs-table__row {
81 background-color: rgb(194, 188, 188);
82 }
83 .cs-table__row:nth-of-type(even) {
84 background-color: rgb(223, 217, 217);
85 }
86
87 .cs-table__action-col,
88 .cs-table__connector-col,
89 .cs-table__status-col,
90 .cs-table__name-col,
91 .cs-table__model-col,
92 .cs-table__vendor-col,
93 .cs-table__firmware-col {
94 /* height: 2em; */
95 width: 14.3%;
96 padding-top: 0.5em;
97 /* background-color: red; */
98 /* width: 14.3%; */
99 text-align: center;
100 /* display: table-cell;
101 vertical-align: middle; */
102 }
103 .cs-table__action-col {
104 /* min-width: 200px; */
105 }
106 .cs-table__connector-col {
107 /* min-width: 120px; */
108 }
109 .cs-table__status-col {
110 /* min-width: 120px; */
111 }
112 .cs-table__name-col {
113 /* min-width: 120px; */
114 }
115 .cs-table__model-col {
116 /* min-width: 120px; */
117 }
118 .cs-table__vendor-col {
119 /* min-width: 120px; */
120 }
121 .cs-table__firmware-col {
122 /* min-width: 120px; */
123 }
124 </style>