forked from integrated_whb/integrated_whb_vue
				
			Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # src/views/BI/components/rightico.vuepull/3/head
						commit
						abd9830dfd
					
				
							
								
								
									
										2
									
								
								.env
								
								
								
								
							
							
						
						
									
										2
									
								
								.env
								
								
								
								
							|  | @ -1,7 +1,5 @@ | ||||||
| VITE_BASE_URL=http://192.168.0.42:8099/ | VITE_BASE_URL=http://192.168.0.42:8099/ | ||||||
| VITE_PROXY=/api/ | VITE_PROXY=/api/ | ||||||
| VITE_PROXY_QAAQ=/qaaq_api/ |  | ||||||
| VITE_QAAQ_URL=https://gateway.qhdsafety.com/ |  | ||||||
| VITE_FILE_URL=https://file.zcloudchina.com/YTHFile | VITE_FILE_URL=https://file.zcloudchina.com/YTHFile | ||||||
| VITE_TEMPLATE_URL=https://qaaq.qhdsafety.com/file/ | VITE_TEMPLATE_URL=https://qaaq.qhdsafety.com/file/ | ||||||
| VITE_ON_LINE_WEB_SOCKET_URL=wss://qaaq.qhdsafety.com/zxwebsocket/ | VITE_ON_LINE_WEB_SOCKET_URL=wss://qaaq.qhdsafety.com/zxwebsocket/ | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ | ||||||
|     <meta charset="UTF-8" /> |     <meta charset="UTF-8" /> | ||||||
|     <link rel="icon" type="image/svg+xml" href="/vite.svg" /> |     <link rel="icon" type="image/svg+xml" href="/vite.svg" /> | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> |     <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> | ||||||
|     <title>管理平台</title> |     <title>危化安全生产管理平台</title> | ||||||
| 
 | 
 | ||||||
|   </head> |   </head> | ||||||
|   <body> |   <body> | ||||||
|  |  | ||||||
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 3.3 KiB | 
|  | @ -1,7 +1,7 @@ | ||||||
| <template> | <template> | ||||||
|   <div class="header"> |   <div class="header"> | ||||||
|     <div class="left"> |     <div class="left"> | ||||||
|       <div class="logo">管理平台</div> |       <div class="logo" /> | ||||||
|       <div class="menu"> |       <div class="menu"> | ||||||
|         <ul> |         <ul> | ||||||
|           <li @click="router.push({ path: '/large_screen_data_display' })"> |           <li @click="router.push({ path: '/large_screen_data_display' })"> | ||||||
|  | @ -185,14 +185,11 @@ fnSpecialOperationsWarnAmount(); | ||||||
|     width: max-content; |     width: max-content; | ||||||
| 
 | 
 | ||||||
|     .logo { |     .logo { | ||||||
|  |       background-image: url("/src/assets/images/public/logo.png"); | ||||||
|       width: 500px; |       width: 500px; | ||||||
|       height: var(--el-header-height); |       height: 69px; | ||||||
|       line-height: var(--el-header-height); |       background-repeat: no-repeat; | ||||||
|       padding-left: 20px; |       background-size: 100% 100%; | ||||||
|       color: #fff; |  | ||||||
|       font-size: 20px; |  | ||||||
|       font-weight: 700; |  | ||||||
|       font-family: cursive; |  | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     .menu { |     .menu { | ||||||
|  | @ -221,6 +218,7 @@ fnSpecialOperationsWarnAmount(); | ||||||
|             background-size: 100% 100%; |             background-size: 100% 100%; | ||||||
|             border: 1px solid #2870bb; |             border: 1px solid #2870bb; | ||||||
|           } |           } | ||||||
|  | 
 | ||||||
|           .title { |           .title { | ||||||
|             padding-left: 3px; |             padding-left: 3px; | ||||||
|             font-size: 14px; |             font-size: 14px; | ||||||
|  |  | ||||||
|  | @ -130,4 +130,3 @@ export const setCustomInsuranceCoverageSave = (params) => | ||||||
|   post("/hiddenstandardCustom/saveBaoBaoType", params); // 清单管理设置包保责任类型提交
 |   post("/hiddenstandardCustom/saveBaoBaoType", params); // 清单管理设置包保责任类型提交
 | ||||||
| export const getCustomCheckListOtherHiddenList = (params) => | export const getCustomCheckListOtherHiddenList = (params) => | ||||||
|   post("/customHidden/getCheckHidden", params); // 隐患清单检查情况检查记录查看其它隐患列表
 |   post("/customHidden/getCheckHidden", params); // 隐患清单检查情况检查记录查看其它隐患列表
 | ||||||
| export const getCorpinfo = (params) => post("/corpinfo/goEdit", params); // 获取企业信息
 |  | ||||||
|  |  | ||||||
|  | @ -9,25 +9,37 @@ | ||||||
|       <div class="option"> |       <div class="option"> | ||||||
|         <img :src="item.check ? item.imgSelect : item.img" alt="" /> |         <img :src="item.check ? item.imgSelect : item.img" alt="" /> | ||||||
|         <div class="title">{{ item.title }}</div> |         <div class="title">{{ item.title }}</div> | ||||||
|       </div> |         <div class="child_container"> | ||||||
|       <div :class="['child_container', { active: item.check }]"> |           <transition | ||||||
|         <div :class="['child_options', item.type]"> |             enter-active-class="animate__animated animate__bounceIn" | ||||||
|           <div |             leave-active-class="animate__animated animate__bounceOut" | ||||||
|             v-for="(item1, index1) in item.list" |             mode="out-in" | ||||||
|             :key="item1.title" |  | ||||||
|             class="child_option" |  | ||||||
|             @click.stop="fnBottomChildOptionsListChange(index, item1, index1)" |  | ||||||
|           > |           > | ||||||
|             <img :src="item1.check ? item1.imgSelect : item1.img" alt="" /> |             <div | ||||||
|             <div class="tit" :class="item1.check ? 'active' : ''"> |               v-show="item.check" | ||||||
|               {{ item1.title }} |               :class="['child_options', item.type, { active: item.check }]" | ||||||
|  |             > | ||||||
|  |               <div | ||||||
|  |                 v-for="(item1, index1) in item.list" | ||||||
|  |                 :key="item1.title" | ||||||
|  |                 class="child_option" | ||||||
|  |                 @click.stop=" | ||||||
|  |                   fnBottomChildOptionsListChange(index, item1, index1) | ||||||
|  |                 " | ||||||
|  |               > | ||||||
|  |                 <img :src="item1.check ? item1.imgSelect : item1.img" alt="" /> | ||||||
|  |                 <div class="tit" :class="item1.check ? 'active' : ''"> | ||||||
|  |                   {{ item1.title }} | ||||||
|  |                 </div> | ||||||
|  |               </div> | ||||||
|             </div> |             </div> | ||||||
|           </div> |           </transition> | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|     </div> |     </div> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
|  | 
 | ||||||
| <script setup> | <script setup> | ||||||
| import { reactive, markRaw } from "vue"; | import { reactive, markRaw } from "vue"; | ||||||
| import Personnel from "@/views/BI/components/personnel.vue"; | import Personnel from "@/views/BI/components/personnel.vue"; | ||||||
|  | @ -346,27 +358,20 @@ const data = reactive({ | ||||||
|   bottomOptionsList, |   bottomOptionsList, | ||||||
| }); | }); | ||||||
| const fnBottomOptionsListChange = (item, index) => { | const fnBottomOptionsListChange = (item, index) => { | ||||||
|  |   const currentItem = data.bottomOptionsList[index]; | ||||||
|   // ai 视频报警 |   // ai 视频报警 | ||||||
|   if (index === 4) { |   if (index === 4) { | ||||||
|     data.bottomOptionsList[index].action( |     if (currentItem.action) currentItem.action(!currentItem.check, item.type); | ||||||
|       !data.bottomOptionsList[index].check, |  | ||||||
|       item.type |  | ||||||
|     ); |  | ||||||
|   } |   } | ||||||
|   for (let i = 0; i < data.bottomOptionsList.length; i++) { |   for (let i = 0; i < data.bottomOptionsList.length; i++) { | ||||||
|     if (index === i) { |     if (index === i) { | ||||||
|       data.bottomOptionsList[index].check = |       currentItem.check = !currentItem.check; | ||||||
|         !data.bottomOptionsList[index].check; |  | ||||||
|       continue; |       continue; | ||||||
|     } |     } | ||||||
|     data.bottomOptionsList[i].check = false; |     data.bottomOptionsList[i].check = false; | ||||||
|   } |   } | ||||||
|   leftCurrentComponent.value = data.bottomOptionsList[index].check |   leftCurrentComponent.value = currentItem.check ? item.components[0] : ""; | ||||||
|     ? item.components[0] |   rightCurrentComponent.value = currentItem.check ? item.components[1] : ""; | ||||||
|     : ""; |  | ||||||
|   rightCurrentComponent.value = data.bottomOptionsList[index].check |  | ||||||
|     ? item.components[1] |  | ||||||
|     : ""; |  | ||||||
|   rightOption.value = index !== 4; |   rightOption.value = index !== 4; | ||||||
| }; | }; | ||||||
| const fnBottomChildOptionsListChange = (index, item1, index1) => { | const fnBottomChildOptionsListChange = (index, item1, index1) => { | ||||||
|  | @ -402,6 +407,7 @@ const fnBottomChildOptionsListChange = (index, item1, index1) => { | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
| </script> | </script> | ||||||
|  | 
 | ||||||
| <style scoped lang="scss"> | <style scoped lang="scss"> | ||||||
| .container { | .container { | ||||||
|   width: 100%; |   width: 100%; | ||||||
|  | @ -445,22 +451,13 @@ const fnBottomChildOptionsListChange = (index, item1, index1) => { | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     .child_container { |     .child_container { | ||||||
|       position: relative; |       position: absolute; | ||||||
|       width: 80px; |       left: 50%; | ||||||
|       height: 95px; |       top: -100px; | ||||||
|       left: 0; |       transform: translateX(-50%); | ||||||
|       top: -95px; |  | ||||||
|       display: none; |  | ||||||
| 
 |  | ||||||
|       &.active { |  | ||||||
|         display: block; |  | ||||||
|       } |  | ||||||
| 
 | 
 | ||||||
|       .child_options { |       .child_options { | ||||||
|         position: absolute; |         position: relative; | ||||||
|         left: 50%; |  | ||||||
|         top: -120px; |  | ||||||
|         transform: translateX(-50%); |  | ||||||
|         background-image: linear-gradient( |         background-image: linear-gradient( | ||||||
|           to right, |           to right, | ||||||
|           rgba(0, 0, 0, 0) 0%, |           rgba(0, 0, 0, 0) 0%, | ||||||
|  | @ -477,8 +474,11 @@ const fnBottomChildOptionsListChange = (index, item1, index1) => { | ||||||
|           1; |           1; | ||||||
|         border-left: none; |         border-left: none; | ||||||
|         border-right: none; |         border-right: none; | ||||||
|         display: flex; |         display: none; | ||||||
|         animation: 0.5s all; | 
 | ||||||
|  |         &.active { | ||||||
|  |           display: flex; | ||||||
|  |         } | ||||||
| 
 | 
 | ||||||
|         .child_option { |         .child_option { | ||||||
|           text-align: center; |           text-align: center; | ||||||
|  | @ -495,7 +495,7 @@ const fnBottomChildOptionsListChange = (index, item1, index1) => { | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         &.workSafely { |         &.workSafely { | ||||||
|           left: 100%; |           left: 20%; | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  | @ -168,7 +168,6 @@ const tabIndex = ref(0); | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -223,7 +222,6 @@ const tabIndex = ref(0); | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -283,7 +281,6 @@ const tabIndex = ref(0); | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -327,9 +324,9 @@ const tabIndex = ref(0); | ||||||
|           .td { |           .td { | ||||||
|             flex: 1; |             flex: 1; | ||||||
|             text-align: left; |             text-align: left; | ||||||
|             font-size: 14px; |             font-size: 12px; | ||||||
|             color: #fff; |             color: #fff; | ||||||
|             padding: 10px 10px; |             padding: 6px 10px; | ||||||
|             &:nth-child(1) { |             &:nth-child(1) { | ||||||
|               flex-basis: 25%; |               flex-basis: 25%; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -109,7 +109,6 @@ onMounted(() => { | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -174,7 +173,6 @@ onMounted(() => { | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -200,7 +198,6 @@ onMounted(() => { | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -224,9 +221,9 @@ onMounted(() => { | ||||||
|           .td { |           .td { | ||||||
|             flex: 1; |             flex: 1; | ||||||
|             text-align: center; |             text-align: center; | ||||||
|             font-size: 14px; |             font-size: 12px; | ||||||
|             color: #fff; |             color: #fff; | ||||||
|             padding: 10px 10px; |             padding: 6px 10px; | ||||||
| 
 | 
 | ||||||
|             &:nth-child(1) { |             &:nth-child(1) { | ||||||
|               flex-basis: 20px; |               flex-basis: 20px; | ||||||
|  |  | ||||||
|  | @ -23,12 +23,11 @@ | ||||||
|           v-for="(item, index) in data.block2OptionsList" |           v-for="(item, index) in data.block2OptionsList" | ||||||
|           :key="index" |           :key="index" | ||||||
|           class="list" |           class="list" | ||||||
|  |           @click="fnAlarmTypeClick(item)" | ||||||
|         > |         > | ||||||
|           <div @click="fnAlarmTypeClick(item)"> |           <div class="name">{{ item.label }}</div> | ||||||
|             <div class="name">{{ item.label }}</div> |           <div class="num"> | ||||||
|             <div class="num"> |             <count-up :end-val="item.total"></count-up> | ||||||
|               <count-up :end-val="item.total"></count-up> |  | ||||||
|             </div> |  | ||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
|       </div> |       </div> | ||||||
|  | @ -214,7 +213,6 @@ getPositionData(); | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -224,7 +222,7 @@ getPositionData(); | ||||||
|         1; |         1; | ||||||
|       border-top: none; |       border-top: none; | ||||||
|       display: flex; |       display: flex; | ||||||
|       justify-content: space-around; | 
 | ||||||
|       padding: 20px 0; |       padding: 20px 0; | ||||||
|       text-align: center; |       text-align: center; | ||||||
| 
 | 
 | ||||||
|  | @ -269,7 +267,6 @@ getPositionData(); | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -313,7 +310,6 @@ getPositionData(); | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -357,9 +353,9 @@ getPositionData(); | ||||||
|           .td { |           .td { | ||||||
|             flex: 1; |             flex: 1; | ||||||
|             text-align: left; |             text-align: left; | ||||||
|             font-size: 14px; |             font-size: 12px; | ||||||
|             color: #fff; |             color: #fff; | ||||||
|             padding: 10px 10px; |             padding: 6px 10px; | ||||||
|             &:nth-child(1) { |             &:nth-child(1) { | ||||||
|               flex-basis: 30%; |               flex-basis: 30%; | ||||||
|             } |             } | ||||||
|  |  | ||||||
|  | @ -17,8 +17,17 @@ | ||||||
| <script setup> | <script setup> | ||||||
| import { reactive } from "vue"; | import { reactive } from "vue"; | ||||||
| import { flyTo, reduction } from "../js/map"; | import { flyTo, reduction } from "../js/map"; | ||||||
| import { useFullscreen } from "@vueuse/core"; | import { useFullscreen,useVModel } from "@vueuse/core"; | ||||||
| 
 | 
 | ||||||
|  | const props = defineProps({ | ||||||
|  |   isPureMap: { | ||||||
|  |     type: Boolean, | ||||||
|  |     required: true, | ||||||
|  |     default: false, | ||||||
|  |   }, | ||||||
|  | }); | ||||||
|  | const emits = defineEmits(["update:isPureMap"]); | ||||||
|  | const isPureMap = useVModel(props, "isPureMap", emits); | ||||||
| const { isFullscreen, toggle } = useFullscreen(); | const { isFullscreen, toggle } = useFullscreen(); | ||||||
| const data = reactive({ | const data = reactive({ | ||||||
|   rightOptionsList: [ |   rightOptionsList: [ | ||||||
|  | @ -46,23 +55,18 @@ const data = reactive({ | ||||||
|       label: "返回中心点", |       label: "返回中心点", | ||||||
|       action: flyTo, |       action: flyTo, | ||||||
|     }, |     }, | ||||||
|     { |  | ||||||
|       img: new URL("/src/assets/images/map/rico3.png", import.meta.url).href, |  | ||||||
|       checkImg: new URL("/src/assets/images/map/rico3_on.png", import.meta.url) |  | ||||||
|         .href, |  | ||||||
|       check: false, |  | ||||||
|       label: "切换视角", |  | ||||||
|     }, |  | ||||||
|     { |     { | ||||||
|       img: new URL("/src/assets/images/map/rico4.png", import.meta.url).href, |       img: new URL("/src/assets/images/map/rico4.png", import.meta.url).href, | ||||||
|       checkImg: new URL("/src/assets/images/map/rico4_on.png", import.meta.url) |       checkImg: new URL("/src/assets/images/map/rico4_on.png", import.meta.url) | ||||||
|         .href, |         .href, | ||||||
|       check: false, |       check: false, | ||||||
|       label: "纯净地图", |       label: "纯净地图", | ||||||
|  |       action: () => (isPureMap.value = !isPureMap.value), | ||||||
|     }, |     }, | ||||||
|   ], |   ], | ||||||
| }); | }); | ||||||
| </script> | </script> | ||||||
|  | 
 | ||||||
| <style scoped lang="scss"> | <style scoped lang="scss"> | ||||||
| .right_options { | .right_options { | ||||||
|   width: 40px; |   width: 40px; | ||||||
|  |  | ||||||
|  | @ -144,7 +144,6 @@ getCameraAlarmTypeData(); | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -199,7 +198,6 @@ getCameraAlarmTypeData(); | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -225,7 +223,6 @@ getCameraAlarmTypeData(); | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  |  | ||||||
|  | @ -126,7 +126,6 @@ const formatWork = (work) => { | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -181,7 +180,6 @@ const formatWork = (work) => { | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -207,7 +205,6 @@ const formatWork = (work) => { | ||||||
|         rgba(0, 0, 0, 0), |         rgba(0, 0, 0, 0), | ||||||
|         rgba(0, 0, 0, 0.8) |         rgba(0, 0, 0, 0.8) | ||||||
|       ); |       ); | ||||||
|       border-radius: 10px; |  | ||||||
|       border: 1px solid; |       border: 1px solid; | ||||||
|       border-image: linear-gradient( |       border-image: linear-gradient( | ||||||
|           to bottom, |           to bottom, | ||||||
|  | @ -230,10 +227,10 @@ const formatWork = (work) => { | ||||||
| 
 | 
 | ||||||
|           .td { |           .td { | ||||||
|             flex: 1; |             flex: 1; | ||||||
|             text-align: center; |             text-align: left; | ||||||
|             font-size: 14px; |             font-size: 12px; | ||||||
|             color: #fff; |             color: #fff; | ||||||
|             padding: 10px 10px; |             padding: 6px 10px; | ||||||
| 
 | 
 | ||||||
|             &:nth-child(1) { |             &:nth-child(1) { | ||||||
|               flex-basis: 20px; |               flex-basis: 20px; | ||||||
|  |  | ||||||
|  | @ -13,37 +13,62 @@ | ||||||
|         <div class="title" /> |         <div class="title" /> | ||||||
|       </div> |       </div> | ||||||
|     </transition> |     </transition> | ||||||
|     <div v-if="leftCurrentComponent" class="left_container"> |     <transition | ||||||
|       <transition |       enter-active-class="animate__animated animate__fadeInLeft" | ||||||
|         enter-active-class="animate__animated animate__fadeInLeft" |       leave-active-class="animate__animated animate__fadeOutLeft" | ||||||
|         leave-active-class="animate__animated animate__fadeOutLeft" |       mode="out-in" | ||||||
|         mode="out-in" |     > | ||||||
|  |       <div | ||||||
|  |         v-if="leftCurrentComponent && !isPureMap" | ||||||
|  |         :key="Math.random()" | ||||||
|  |         class="left_container" | ||||||
|       > |       > | ||||||
|         <component :is="leftCurrentComponent" /> |         <component :is="leftCurrentComponent" /> | ||||||
|  |       </div> | ||||||
|  |     </transition> | ||||||
|  |     <div class="mid-external-container"> | ||||||
|  |       <transition | ||||||
|  |         enter-active-class="animate__animated animate__fadeInDown" | ||||||
|  |         leave-active-class="animate__animated animate__fadeOutDown" | ||||||
|  |         mode="out-in" | ||||||
|  |       > | ||||||
|  |         <div v-show="!isPureMap" class="mid-container"> | ||||||
|  |           <bottom-options | ||||||
|  |             v-model:left-current-component="leftCurrentComponent" | ||||||
|  |             v-model:right-current-component="rightCurrentComponent" | ||||||
|  |             v-model:right-option="right_option" | ||||||
|  |             v-model:is-historical-trajectory="isHistoricalTrajectory" | ||||||
|  |           /> | ||||||
|  |         </div> | ||||||
|       </transition> |       </transition> | ||||||
|     </div> |     </div> | ||||||
|     <div class="mid-container"> |  | ||||||
|       <bottom-options |  | ||||||
|         v-model:left-current-component="leftCurrentComponent" |  | ||||||
|         v-model:right-current-component="rightCurrentComponent" |  | ||||||
|         v-model:right-option="right_option" |  | ||||||
|         v-model:is-historical-trajectory="isHistoricalTrajectory" |  | ||||||
|       /> |  | ||||||
|     </div> |  | ||||||
|     <transition |     <transition | ||||||
|       enter-active-class="animate__animated animate__fadeInRight" |       enter-active-class="animate__animated animate__fadeInRight" | ||||||
|       leave-active-class="animate__animated animate__fadeOutRight" |       leave-active-class="animate__animated animate__fadeOutRight" | ||||||
|       mode="out-in" |       mode="out-in" | ||||||
|     > |     > | ||||||
|       <div v-if="rightCurrentComponent" class="right_container"> |       <div | ||||||
|  |         v-if="rightCurrentComponent && !isPureMap" | ||||||
|  |         :key="Math.random()" | ||||||
|  |         class="right_container" | ||||||
|  |       > | ||||||
|         <component :is="rightCurrentComponent" /> |         <component :is="rightCurrentComponent" /> | ||||||
|       </div> |       </div> | ||||||
|     </transition> |     </transition> | ||||||
| 
 | 
 | ||||||
|     <div v-show="right_option" class="right_ico"> |     <div v-show="right_option" class="right_ico"> | ||||||
|       <right-ico></right-ico> |       <right-ico v-model:is-pure-map="isPureMap" /> | ||||||
|     </div> |     </div> | ||||||
|     <historical-trajectory-options v-if="isHistoricalTrajectory" /> | 
 | ||||||
|  |     <transition | ||||||
|  |       enter-active-class="animate__animated animate__fadeInDown" | ||||||
|  |       leave-active-class="animate__animated animate__fadeOutDown" | ||||||
|  |       mode="out-in" | ||||||
|  |     > | ||||||
|  |       <historical-trajectory-options | ||||||
|  |         v-if="isHistoricalTrajectory && !isPureMap" | ||||||
|  |       /> | ||||||
|  |     </transition> | ||||||
|   </div> |   </div> | ||||||
| </template> | </template> | ||||||
| 
 | 
 | ||||||
|  | @ -64,9 +89,9 @@ const transitionKey = ref(0); | ||||||
| const leftCurrentComponent = ref(""); | const leftCurrentComponent = ref(""); | ||||||
| const rightCurrentComponent = ref(""); | const rightCurrentComponent = ref(""); | ||||||
| const isHistoricalTrajectory = ref(false); | const isHistoricalTrajectory = ref(false); | ||||||
|  | const isPureMap = ref(false); | ||||||
| const userStore = useUserStore(); | const userStore = useUserStore(); | ||||||
| const CORPINFO_ID = userStore.getUserInfo.CORPINFO_ID; | const CORPINFO_ID = userStore.getUserInfo.CORPINFO_ID; | ||||||
| 
 |  | ||||||
| onMounted(async () => { | onMounted(async () => { | ||||||
|   autofit.init({ |   autofit.init({ | ||||||
|     dh: document.querySelector(".map_bg").offsetHeight, |     dh: document.querySelector(".map_bg").offsetHeight, | ||||||
|  | @ -85,6 +110,7 @@ onBeforeUnmount(() => { | ||||||
|   autofit.off(); |   autofit.off(); | ||||||
| }); | }); | ||||||
| </script> | </script> | ||||||
|  | 
 | ||||||
| <style scoped lang="scss"> | <style scoped lang="scss"> | ||||||
| #bi_container { | #bi_container { | ||||||
|   width: 100%; |   width: 100%; | ||||||
|  | @ -161,6 +187,7 @@ onBeforeUnmount(() => { | ||||||
|     left: 20px; |     left: 20px; | ||||||
|     top: 100px; |     top: 100px; | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|   .right_container { |   .right_container { | ||||||
|     width: 435px; |     width: 435px; | ||||||
|     position: absolute; |     position: absolute; | ||||||
|  | @ -168,15 +195,18 @@ onBeforeUnmount(() => { | ||||||
|     top: 100px; |     top: 100px; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   .mid-container { |   .mid-external-container { | ||||||
|     width: 934px; |     position: absolute; | ||||||
|     height: 88px; |  | ||||||
|     background-image: url("/src/assets/images/map/bottombg.png"); |  | ||||||
|     background-repeat: no-repeat; |  | ||||||
|     position: fixed; |  | ||||||
|     bottom: 0; |     bottom: 0; | ||||||
|     left: 50%; |     left: 50%; | ||||||
|     transform: translateX(-50%); |     transform: translateX(-50%); | ||||||
|  | 
 | ||||||
|  |     .mid-container { | ||||||
|  |       width: 934px; | ||||||
|  |       height: 88px; | ||||||
|  |       background-image: url("/src/assets/images/map/bottombg.png"); | ||||||
|  |       background-repeat: no-repeat; | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   .right_ico { |   .right_ico { | ||||||
|  |  | ||||||
|  | @ -125,7 +125,7 @@ function echarts2(id, data) { | ||||||
|         type: "bar", |         type: "bar", | ||||||
|         barWidth: 20, |         barWidth: 20, | ||||||
|         tooltip: { |         tooltip: { | ||||||
|           show: false, |           show: true, | ||||||
|         }, |         }, | ||||||
|         itemStyle: { |         itemStyle: { | ||||||
|           color: "#1492FF", |           color: "#1492FF", | ||||||
|  |  | ||||||
|  | @ -185,7 +185,6 @@ | ||||||
|         <el-table-column |         <el-table-column | ||||||
|           v-if="data.WHETHER_HAZARDS === 1" |           v-if="data.WHETHER_HAZARDS === 1" | ||||||
|           label="是否包保责任人任务" |           label="是否包保责任人任务" | ||||||
|           width="90" |  | ||||||
|         > |         > | ||||||
|           <template #default="{ row }"> |           <template #default="{ row }"> | ||||||
|             <span v-if="row.BAO_BAO_TYPE !== '1'"> 否 </span> |             <span v-if="row.BAO_BAO_TYPE !== '1'"> 否 </span> | ||||||
|  | @ -234,13 +233,11 @@ import { | ||||||
|   layoutFnGetInventoryType, |   layoutFnGetInventoryType, | ||||||
|   layoutFnGetTroubleshootingCycle, |   layoutFnGetTroubleshootingCycle, | ||||||
| } from "@/assets/js/data_dictionary.js"; | } from "@/assets/js/data_dictionary.js"; | ||||||
| import { | import { getRiskStandardStatusList } from "@/request/hazard_investigation.js"; | ||||||
|   getCorpinfo, |  | ||||||
|   getRiskStandardStatusList, |  | ||||||
| } from "@/request/hazard_investigation.js"; |  | ||||||
| import { useRouter } from "vue-router"; | import { useRouter } from "vue-router"; | ||||||
| import dayjs from "dayjs"; | import dayjs from "dayjs"; | ||||||
| import { reactive } from "vue"; | import { reactive } from "vue"; | ||||||
|  | import { getEnterpriseInfo } from "@/request/enterprise_management.js"; | ||||||
| 
 | 
 | ||||||
| const data = reactive({ | const data = reactive({ | ||||||
|   WHETHER_HAZARDS: "", |   WHETHER_HAZARDS: "", | ||||||
|  | @ -251,11 +248,11 @@ const { list, pagination, searchForm, fnGetData, fnResetPagination } = | ||||||
| const troubleshootingCycleList = await layoutFnGetTroubleshootingCycle(); | const troubleshootingCycleList = await layoutFnGetTroubleshootingCycle(); | ||||||
| const inventoryLevelList = await layoutFnGetInventoryLevel(); | const inventoryLevelList = await layoutFnGetInventoryLevel(); | ||||||
| const inventoryTypeList = await layoutFnGetInventoryType(); | const inventoryTypeList = await layoutFnGetInventoryType(); | ||||||
| const fnGetCorpinfo = async () => { | const fnGetCorpInfo = async () => { | ||||||
|   const resData = await getCorpinfo(); |   const resData = await getEnterpriseInfo(); | ||||||
|   data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS; |   data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS; | ||||||
| }; | }; | ||||||
| fnGetCorpinfo(); | fnGetCorpInfo(); | ||||||
| const fnGetDataTransfer = () => { | const fnGetDataTransfer = () => { | ||||||
|   fnGetData({ |   fnGetData({ | ||||||
|     DEPTIDS: searchForm.value.DEPTIDS?.join(","), |     DEPTIDS: searchForm.value.DEPTIDS?.join(","), | ||||||
|  |  | ||||||
|  | @ -197,7 +197,6 @@ import { | ||||||
|   layoutFnGetTroubleshootingType, |   layoutFnGetTroubleshootingType, | ||||||
| } from "@/assets/js/data_dictionary.js"; | } from "@/assets/js/data_dictionary.js"; | ||||||
| import { | import { | ||||||
|   getCorpinfo, |  | ||||||
|   getDeleteCustomList, |   getDeleteCustomList, | ||||||
|   getDeleteInventoryManagementList, |   getDeleteInventoryManagementList, | ||||||
|   setCustomBatchDelete, |   setCustomBatchDelete, | ||||||
|  | @ -207,6 +206,7 @@ import { | ||||||
| } from "@/request/hazard_investigation.js"; | } from "@/request/hazard_investigation.js"; | ||||||
| import { useRouter } from "vue-router"; | import { useRouter } from "vue-router"; | ||||||
| import { reactive } from "vue"; | import { reactive } from "vue"; | ||||||
|  | import { getEnterpriseInfo } from "@/request/enterprise_management.js"; | ||||||
| 
 | 
 | ||||||
| const tabName = defineProps({ | const tabName = defineProps({ | ||||||
|   name: { |   name: { | ||||||
|  | @ -228,11 +228,11 @@ const buttonJurisdiction = await useButtonJurisdiction("stoplistmanager"); | ||||||
| const inventoryTypeList = await layoutFnGetInventoryType(); | const inventoryTypeList = await layoutFnGetInventoryType(); | ||||||
| const troubleshootingTypeList = await layoutFnGetTroubleshootingType(); | const troubleshootingTypeList = await layoutFnGetTroubleshootingType(); | ||||||
| const inventoryLevelList = await layoutFnGetInventoryLevel(); | const inventoryLevelList = await layoutFnGetInventoryLevel(); | ||||||
| const fnGetCorpinfo = async () => { | const fnGetCorpInfo = async () => { | ||||||
|   const resData = await getCorpinfo(); |   const resData = await getEnterpriseInfo(); | ||||||
|   data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS; |   data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS; | ||||||
| }; | }; | ||||||
| fnGetCorpinfo(); | fnGetCorpInfo(); | ||||||
| const fnGetDataTransfer = () => { | const fnGetDataTransfer = () => { | ||||||
|   fnGetData({ |   fnGetData({ | ||||||
|     DEPTIDS: searchForm.value.DEPTIDS?.join(","), |     DEPTIDS: searchForm.value.DEPTIDS?.join(","), | ||||||
|  |  | ||||||
|  | @ -346,7 +346,6 @@ import { | ||||||
| } from "@/assets/js/data_dictionary.js"; | } from "@/assets/js/data_dictionary.js"; | ||||||
| import { useUserStore } from "@/pinia/user.js"; | import { useUserStore } from "@/pinia/user.js"; | ||||||
| import { | import { | ||||||
|   getCorpinfo, |  | ||||||
|   getCustomList, |   getCustomList, | ||||||
|   getInventoryManagementList, |   getInventoryManagementList, | ||||||
|   getInventoryManagementRouteView, |   getInventoryManagementRouteView, | ||||||
|  | @ -364,6 +363,7 @@ import ListQrCode from "./list_qr_code.vue"; | ||||||
| import InspectionRoute from "./inspection_route.vue"; | import InspectionRoute from "./inspection_route.vue"; | ||||||
| import { useRouter } from "vue-router"; | import { useRouter } from "vue-router"; | ||||||
| import ImportCustom from "./import_custom.vue"; | import ImportCustom from "./import_custom.vue"; | ||||||
|  | import { getEnterpriseInfo } from "@/request/enterprise_management.js"; | ||||||
| 
 | 
 | ||||||
| const tabName = defineProps({ | const tabName = defineProps({ | ||||||
|   name: { |   name: { | ||||||
|  | @ -415,11 +415,11 @@ const data = reactive({ | ||||||
|   }, |   }, | ||||||
|   WHETHER_HAZARDS: "", |   WHETHER_HAZARDS: "", | ||||||
| }); | }); | ||||||
| const fnGetCorpinfo = async () => { | const fnGetCorpInfo = async () => { | ||||||
|   const resData = await getCorpinfo(); |   const resData = await getEnterpriseInfo(); | ||||||
|   data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS; |   data.WHETHER_HAZARDS = resData.pd.WHETHER_HAZARDS; | ||||||
| }; | }; | ||||||
| fnGetCorpinfo(); | fnGetCorpInfo(); | ||||||
| const fnGetDataTransfer = () => { | const fnGetDataTransfer = () => { | ||||||
|   fnGetData({ |   fnGetData({ | ||||||
|     DEPTIDS: searchForm.value.DEPTIDS?.join(","), |     DEPTIDS: searchForm.value.DEPTIDS?.join(","), | ||||||
|  |  | ||||||
|  | @ -1,7 +1,13 @@ | ||||||
| <template> | <template> | ||||||
|   <div class="situation"> |   <div class="situation"> | ||||||
|     <div class="title">双重预防建设情况</div> |     <div class="title">双重预防建设情况</div> | ||||||
|     <div class="map"></div> |     <div class="carousel"> | ||||||
|  |       <el-carousel arrow="always"> | ||||||
|  |         <el-carousel-item v-for="item in fourImgs" :key="item.IMGFILES_ID"> | ||||||
|  |           <img :src="item.url" alt="" /> | ||||||
|  |         </el-carousel-item> | ||||||
|  |       </el-carousel> | ||||||
|  |     </div> | ||||||
|     <div class="statistics"> |     <div class="statistics"> | ||||||
|       <div class="item"> |       <div class="item"> | ||||||
|         <div> |         <div> | ||||||
|  | @ -43,6 +49,8 @@ | ||||||
| import { ref } from "vue"; | import { ref } from "vue"; | ||||||
| import { getHiddenCount } from "@/request/large_screen_data_display.js"; | import { getHiddenCount } from "@/request/large_screen_data_display.js"; | ||||||
| import CountTo from "vue-countup-v3"; | import CountTo from "vue-countup-v3"; | ||||||
|  | import { getEnterpriseInfo } from "@/request/enterprise_management.js"; | ||||||
|  | import { addingPrefixToFile } from "@/assets/js/utils.js"; | ||||||
| 
 | 
 | ||||||
| const info = ref({ | const info = ref({ | ||||||
|   all: 0, |   all: 0, | ||||||
|  | @ -50,20 +58,23 @@ const info = ref({ | ||||||
|   yzg: 0, |   yzg: 0, | ||||||
|   yys: 0, |   yys: 0, | ||||||
| }); | }); | ||||||
|  | const fourImgs = ref([]); | ||||||
| const fnGetData = async () => { | const fnGetData = async () => { | ||||||
|   const resData = await getHiddenCount(); |   const hiddenCountData = await getHiddenCount(); | ||||||
|   for (let i = 0; i < resData.all.length; i++) { |   for (let i = 0; i < hiddenCountData.all.length; i++) { | ||||||
|     info.value.all += Number(resData.all[i]); |     info.value.all += Number(hiddenCountData.all[i]); | ||||||
|   } |   } | ||||||
|   for (let i = 0; i < resData.wzg.length; i++) { |   for (let i = 0; i < hiddenCountData.wzg.length; i++) { | ||||||
|     info.value.wzg += Number(resData.wzg[i]); |     info.value.wzg += Number(hiddenCountData.wzg[i]); | ||||||
|   } |   } | ||||||
|   for (let i = 0; i < resData.yzg.length; i++) { |   for (let i = 0; i < hiddenCountData.yzg.length; i++) { | ||||||
|     info.value.yzg += Number(resData.yzg[i]); |     info.value.yzg += Number(hiddenCountData.yzg[i]); | ||||||
|   } |   } | ||||||
|   for (let i = 0; i < resData.yys.length; i++) { |   for (let i = 0; i < hiddenCountData.yys.length; i++) { | ||||||
|     info.value.yys += Number(resData.yys[i]); |     info.value.yys += Number(hiddenCountData.yys[i]); | ||||||
|   } |   } | ||||||
|  |   const enterpriseInfoData = await getEnterpriseInfo(); | ||||||
|  |   fourImgs.value = addingPrefixToFile(enterpriseInfoData.fourImgs); | ||||||
| }; | }; | ||||||
| fnGetData(); | fnGetData(); | ||||||
| </script> | </script> | ||||||
|  | @ -88,8 +99,21 @@ fnGetData(); | ||||||
|     left: 0; |     left: 0; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   .map { |   .carousel { | ||||||
|     flex: 1; |     flex: 1; | ||||||
|  |     margin: 20px; | ||||||
|  |     img { | ||||||
|  |       width: 100%; | ||||||
|  |       height: 100%; | ||||||
|  |     } | ||||||
|  |     :deep { | ||||||
|  |       .el-carousel { | ||||||
|  |         height: 100%; | ||||||
|  |         .el-carousel__container { | ||||||
|  |           height: 100%; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|  |     } | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   .statistics { |   .statistics { | ||||||
|  |  | ||||||
|  | @ -1,7 +1,7 @@ | ||||||
| <template> | <template> | ||||||
|   <div class="login"> |   <div class="login"> | ||||||
|     <div class="main"> |     <div class="main"> | ||||||
|       <div class="title">管理平台</div> |       <div class="title">危化安全生产管理平台</div> | ||||||
|       <div class="form"> |       <div class="form"> | ||||||
|         <el-form |         <el-form | ||||||
|           ref="formRef" |           ref="formRef" | ||||||
|  |  | ||||||
|  | @ -61,7 +61,7 @@ | ||||||
|             {{ serialNumber(pagination, $index) }} |             {{ serialNumber(pagination, $index) }} | ||||||
|           </template> |           </template> | ||||||
|         </el-table-column> |         </el-table-column> | ||||||
|         <el-table-column prop="CREATOR" label="添加人" /> |         <el-table-column prop="CREATOR_NAME" label="添加人" /> | ||||||
|         <el-table-column label="单位名称"> |         <el-table-column label="单位名称"> | ||||||
|           <template #default="{ row }"> |           <template #default="{ row }"> | ||||||
|             {{ |             {{ | ||||||
|  |  | ||||||
|  | @ -66,12 +66,6 @@ export default ({ mode }) => { | ||||||
|           ws: true, |           ws: true, | ||||||
|           rewrite: (path) => path.replace(/^\/api/, ""), |           rewrite: (path) => path.replace(/^\/api/, ""), | ||||||
|         }, |         }, | ||||||
|         [loadEnv(mode, process.cwd()).VITE_PROXY_QAAQ]: { |  | ||||||
|           target: loadEnv(mode, process.cwd()).VITE_QAAQ_URL, |  | ||||||
|           changeOrigin: true, |  | ||||||
|           ws: true, |  | ||||||
|           rewrite: (path) => path.replace(/^\/qaaq_api/, ""), |  | ||||||
|         }, |  | ||||||
|       }, |       }, | ||||||
|     }, |     }, | ||||||
|     resolve: { |     resolve: { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue