2 Commity b74ef43241 ... 7110e78d28

Autor SHA1 Wiadomość Data
  yhfu 7110e78d28 Merge branch 'lifeline_develop_siping' of http://116.142.80.13:3000/sooka_onest/visu_lifeline into lifeline_develop_siping 2 dni temu
  yhfu 929478dba0 Fixed - 应急中心 图片回显 && 视频删除问题修复 2 dni temu

+ 4 - 2
src/components/ImageUpload/index.vue

@@ -122,11 +122,13 @@ export default {
       },
     // 删除图片
     handleRemove(file, fileList) {
+      console.log('file',file)
+      console.log('fileList',fileList)
       const findex = this.fileList.map(f => f.name).indexOf(file.name);
       if(findex > -1) {
         this.fileList.splice(findex, 1);
-        this.$emit("input", this.listToString(this.fileList));
-          // this.ImageUpload.setUrl("")
+         console.log('this.listToString(this.fileList)',this.listToString(this.fileList))
+        this.$emit("input", this.fileList);
       }
     },
     // 上传成功回调

+ 161 - 31
src/views/SentryEmergencyCenter.vue

@@ -124,6 +124,32 @@
 					:total="planTotal">
 			</el-pagination>
 		</div>
+		 <!-- 定位 -->
+        <!-- <div style="width: 50px;height: 50px;position: absolute;left: 10%;background-color: #50A09E;">
+          <el-popover placement="top-start" trigger="manual" width="250" popper-class="position_jwd">
+            <div slot="reference" @click="getLocation">
+              <div class="tc">
+                <span class="icon-location icon-base"></span>
+                <div class="text">定位</div>
+              </div>
+            </div>
+            <div class="jwd_popover">
+              <div>
+                <div>经度:</div>
+                <el-input placeholder="请输入经纬度" clearable v-model="longitude">
+                </el-input>
+              </div>
+              <div>
+                <div>纬度:</div>
+                <el-input placeholder="请输入经纬度" clearable v-model="latitude">
+                </el-input>
+              </div>
+			  <el-button class="butt" @click="selectVicinityCamera">
+                查询附近摄像头
+              </el-button>
+            </div>
+          </el-popover>
+        </div> -->
         <!-- 应急事件详情弹窗 -->
         <el-dialog
             title="应急事件详情"
@@ -194,12 +220,12 @@
                     <div class="transferBg pics">
                         <h3>其他画面</h3>
 						<div class="otherPics">
-              <router-link to="#" v-for="item in emergencyEventDetails.attachPath">
-                <el-image :src="item"
-                          :preview-src-list="assetTypeAnImage(item)"
-                          style="width:8rem; height:8rem;margin: 5px;">
-                </el-image>
-              </router-link>
+							<router-link to="#" v-for="item in emergencyEventDetails.attachPath">
+								<el-image :src="item"
+										:preview-src-list="assetTypeAnImage(item)"
+										style="width:8rem; height:8rem;margin: 5px;">
+								</el-image>
+							</router-link>
 						</div>
                     </div>
                 </div>
@@ -317,6 +343,7 @@
 							accept="video/*"
 							:on-error="handleUploadError"
 							:on-exceed="handleExceed"
+							:on-remove="handleVideoRemove"
 							:on-success="handleVideoUploadSuccess"
 							:show-file-list="false"
 							:headers="headers"
@@ -334,7 +361,7 @@
 									<span class="el-icon-document"> {{ file.webName }} </span>
 								</el-link>
 								<div class="ele-upload-list__item-content-action">
-									<el-link :underline="false" @click="handleDelete(index)" type="danger">删除</el-link>
+									<el-link :underline="false" @click="handleVideoDelete(index)" type="danger">删除</el-link>
 								</div>
 								</li>
 							</transition-group>
@@ -380,13 +407,13 @@
 	import {
 		selectConfigKey
 	} from "@/api/system/config";
-  import {Button} from "@/dahua/lib/iview";
+  	import {Button} from "@/dahua/lib/iview";
 	// import * as echarts from 'echarts'
 	let echarts = require("echarts");
 	export default {
 		name:'MyChart',
 		components: {
-      Button,
+      		Button,
 			supermap,
 			ImageUpload
 		},
@@ -404,7 +431,7 @@
 		},
 		created() {
 			// this.getListDeviceAll()
-      this.getDeptTreeselect();
+      		this.getDeptTreeselect();
 		},
 		mounted() {
 			// 初始化地图数据
@@ -437,6 +464,8 @@
 				headers: {
 					Authorization: 'Bearer ' + getToken()
 				},
+				longitude:'',
+				latitude:'',
 				defaultProps: {
 					children: "children",
 					label: "label",
@@ -514,7 +543,10 @@
 				planListSearch:[],
 				emergencyEventDetails:{},       // 应急事件详情信息
 				attachExamine:[],
-				deptList:[]
+				deptList:[],
+				visible:false,
+				dimensionHighlighted:true,
+				showLatLng:null
 			}
 		},
 		methods: {
@@ -612,8 +644,15 @@
 						videoPath : this.emergencyEventDetails.videoPath || ''
 					}
 				}
-				this.fileList = this.emergencyEventDetails.attachPath || []
-
+				this.fileList = []
+				if(this.emergencyEventDetails.attachPath.length >0){
+					this.emergencyEventDetails.attachPath.forEach(e => {
+						this.fileList.push({
+							url:e,
+							name:e
+						})
+					})
+				}
 				this.videoList = []
 				this.videoUploadList = []
 				try {
@@ -655,25 +694,34 @@
                 this.dropLocation(latitude ,longitude)
             },
             submitForm(formName) {
-          this.$refs[formName].validate((valid) => {
+				this.$refs[formName].validate((valid) => {
 					if (valid) {
-            const deptList = [];
-            let array = this.$refs.LiandongDept.getCheckedNodes();
-            if(array!=null && array.length!=0){
-              for(let item of array){
-                deptList.push({mapDeptId:item.id,mapDeptName:item.label});
-              }
-              this.ruleForm.deptList = deptList;
-            }
+						const deptList = [];
+						let array = this.$refs.LiandongDept.getCheckedNodes();
+						if(array!=null && array.length!=0){
+						for(let item of array){
+							deptList.push({mapDeptId:item.id,mapDeptName:item.label});
+						}
+						this.ruleForm.deptList = deptList;
+						}
 						this.reportParams = this.ruleForm
 						// 整理附件
 						let attachList = []
 						if(this.fileList.length > 0){
-							this.fileList.forEach(e => {
-								attachList.push({
-									attachPath:e.url,
-									fileName:e.webName
-								})
+							this.fileList.forEach((e,idx) => {
+								if(e.url.includes('http')){
+									attachList.push({
+										name:idx,
+										attachPath:e.url.split("/").slice(3).join("/"),
+										fileName:e.webName || e.name || ''
+									})
+								} else {
+									attachList.push({
+										name:idx,
+										attachPath:e.url,
+										fileName:e.webName || e.name || ''
+									})
+								}
 							})
 						} else {
 							attachList = []
@@ -682,7 +730,7 @@
 						if(this.videoList.length > 0){
 							this.reportParams.contingencyDetail.videoPath = this.videoList[0].url
 						}
-						this.reportParams.attachList = this.attachExamine
+						this.reportParams.attachList = attachList
 						console.log('this.videoList',this.videoList)
 						console.log('this.videoUploadList',this.videoUploadList)
 						if(this.currentFormStatus == 0){
@@ -794,6 +842,22 @@
 					this.attachExamine.push(attachPath)
 				});
 			},
+			handleVideoRemove(file, fileList){
+				const findex = this.videoList.map(f => f.name).indexOf(file.name);
+				if(findex > -1) {
+					this.videoList.splice(findex, 1);
+				}
+			},
+			handleInputDelete(urlList) {
+				this.fileList = urlList
+				this.attachExamine = []
+				urlList.forEach(item => {
+					var attachPath = {
+						attachPath: item.name
+					}
+					this.attachExamine.push(attachPath)
+				});
+			},
 			closeDetail(){
 				this.isDetailVisible = false
 				this.isVisible = false
@@ -1177,6 +1241,11 @@
 				this.fileList.splice(index, 1)
 				this.$emit('input', this.listToString(this.fileList))
 			},
+			// 删除视频
+			handleVideoDelete(index) {
+				this.videoList.splice(index, 1)
+				this.videoUploadList.splice(index, 1)
+			},
 			// 对象转成指定字符串分隔
 			listToString(list, separator) {
 				let strs = "";
@@ -1188,14 +1257,17 @@
 			}
 		},
 		watch:{
-      filterText(val) {
-        this.$refs.LiandongDept.filter(val)
-      },
+			filterText(val) {
+				this.$refs.LiandongDept.filter(val)
+			},
 			['eventParams.eventTitle'](){
 				this.getEventList()
 			},
 			['planParams.contingencyPlanName'](){
 				this.getPlanList()
+			},
+			['fileList'](){
+				console.log('this.fileList',this.fileList)
 			}
 		}
 	}
@@ -1563,6 +1635,64 @@
 		}
 	}
 
+	.position_jwd {
+		width: 250px;
+		height: 20vh;
+		border: 1px solid #3db3c8 !important;
+		background: #000d3b !important;
+		padding: 1.5vh;
+		border-radius: 10px;
+		-webkit-box-shadow: inset 0 0 10px 10px rgb(21, 45, 101) !important;
+		position: absolute;
+		top: -153px;
+		right: 2.5vh;
+		z-index: 3;
+		box-shadow: inset 0 0 10px 10px rgb(21, 45, 101) !important;
+
+		.jwd_popover {
+			display: flex;
+			flex-direction: column;
+			justify-content: center;
+			align-items: center;
+
+			>div {
+			widows: 10%;
+			display: flex;
+			margin: 3% 0;
+
+			>div:nth-child(1) {
+				width: 10vh;
+				color: #fff;
+				display: flex;
+				justify-content: center;
+				align-items: center;
+			}
+			.el-input__inner{
+				color: #fff;
+				border: 1px solid #1D3365;
+				background: rgb(15, 43, 90, 0.7) !important;
+			}
+			}
+
+			.el-button--medium {
+			width: 13vh !important;
+			height: 4vh !important;
+			border: 1px solid #1D3365;
+			background: rgb(15, 43, 90, 0.7) !important;
+			margin-top: 10px;
+			}
+		}
+
+		.popper__arrow {
+			display: none;
+		}
+	}
+
+	.leaflet-left .leaflet-control {
+		margin-left: 480px!important;
+		margin-top: 210px!important;
+	}
+
 
 </style>
 <style rel="stylesheet/scss" lang="scss" scoped>