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