forked from integrated_whb/integrated_whb_vue
				
			人员报警增加动画
							parent
							
								
									0f14838296
								
							
						
					
					
						commit
						0167dfcd75
					
				|  | @ -22,7 +22,7 @@ | |||
|         <div | ||||
|           v-for="(item, index) in data.block2OptionsList" | ||||
|           :key="index" | ||||
|           class="list" | ||||
|           :class="['list', { alarm: item.total > 0 }]" | ||||
|           @click="fnAlarmTypeClick(item)" | ||||
|         > | ||||
|           <div class="name">{{ item.label }}</div> | ||||
|  | @ -55,6 +55,17 @@ | |||
|       v-model:pd="data.form" | ||||
|       :ele-type-num="+data.eleType" | ||||
|     /> | ||||
|     <template v-if="data.block2OptionsList.some((item) => item.total > 0)"> | ||||
|       <teleport to="body"> | ||||
|         <div class="alarm_full_screen"> | ||||
|           <div | ||||
|             v-for="item in 4" | ||||
|             :key="item" | ||||
|             :class="['alarm_full_screen_item', 'alarm_full_screen_item' + item]" | ||||
|           /> | ||||
|         </div> | ||||
|       </teleport> | ||||
|     </template> | ||||
|   </div> | ||||
| </template> | ||||
| <script setup> | ||||
|  | @ -67,6 +78,7 @@ import { | |||
|   getAlarmTypeCount, | ||||
|   getPersonnelPositioningCount, | ||||
| } from "@/request/bi/mapApi.js"; | ||||
| 
 | ||||
| const data = reactive({ | ||||
|   block1OptionsList: [ | ||||
|     { | ||||
|  | @ -254,6 +266,24 @@ getPositionData(); | |||
|         justify-content: space-between; | ||||
|         padding: 10px; | ||||
|         cursor: pointer; | ||||
| 
 | ||||
|         &.alarm { | ||||
|           background: rgba(139, 65, 65, 0.5); | ||||
|           border: 1px solid red; | ||||
|           animation: scale 2s infinite; | ||||
|         } | ||||
| 
 | ||||
|         @keyframes scale { | ||||
|           0% { | ||||
|             transform: scale(0.95); | ||||
|           } | ||||
|           50% { | ||||
|             transform: scale(1.05); | ||||
|           } | ||||
|           100% { | ||||
|             transform: scale(0.95); | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
|  | @ -305,26 +335,32 @@ getPositionData(); | |||
|           } | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       .table { | ||||
|         margin-top: 5px; | ||||
| 
 | ||||
|         .tr { | ||||
|           display: flex; | ||||
| 
 | ||||
|           &:nth-child(odd) { | ||||
|             background-color: rgba(42, 86, 158, 0.53); | ||||
|           } | ||||
| 
 | ||||
|           .td { | ||||
|             flex: 1; | ||||
|             text-align: left; | ||||
|             font-size: 12px; | ||||
|             color: #fff; | ||||
|             padding: 6px 10px; | ||||
| 
 | ||||
|             &:nth-child(1) { | ||||
|               flex-basis: 30%; | ||||
|             } | ||||
| 
 | ||||
|             &:nth-child(2) { | ||||
|               flex-basis: 50%; | ||||
|             } | ||||
| 
 | ||||
|             &:nth-child(3) { | ||||
|               flex-basis: 20%; | ||||
|             } | ||||
|  | @ -354,4 +390,56 @@ getPositionData(); | |||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| .alarm_full_screen { | ||||
|   .alarm_full_screen_item { | ||||
|     position: absolute; | ||||
|     box-shadow: 0 0 20px 10px red; | ||||
|     animation: opacity 2s infinite; | ||||
| 
 | ||||
|     &1 { | ||||
|       top: 0; | ||||
|       left: 0; | ||||
|       right: 0; | ||||
|       width: 100vw; | ||||
|       height: 0; | ||||
|     } | ||||
| 
 | ||||
|     &2 { | ||||
|       top: 0; | ||||
|       right: 0; | ||||
|       bottom: 0; | ||||
|       width: 0; | ||||
|       height: 100vh; | ||||
|     } | ||||
| 
 | ||||
|     &3 { | ||||
|       left: 0; | ||||
|       right: 0; | ||||
|       bottom: 0; | ||||
|       width: 100vw; | ||||
|       height: 0; | ||||
|     } | ||||
| 
 | ||||
|     &4 { | ||||
|       top: 0; | ||||
|       left: 0; | ||||
|       bottom: 0; | ||||
|       width: 0; | ||||
|       height: 100vh; | ||||
|     } | ||||
| 
 | ||||
|     @keyframes opacity { | ||||
|       0% { | ||||
|         opacity: 1; | ||||
|       } | ||||
|       50% { | ||||
|         opacity: 0; | ||||
|       } | ||||
|       100% { | ||||
|         opacity: 1; | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| </style> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue