Browse Source

完善分组曲线组件以支持多井显示

chenwen 1 year ago
parent
commit
fdc577aafd

+ 8 - 4
src/components/groupCurve/GroupCurve.vue

@@ -58,13 +58,16 @@
 		zrbox=document.querySelector('.zr-app').getBoundingClientRect()
 	}
 	
-	
-	onUnmounted(()=>{
+	const dispose=()=>{
 		if(groupCurve){
 			console.log('groupCurve.dispose')
 			groupCurve.dispose()
 			
 		}
+	}
+	
+	onUnmounted(()=>{
+		dispose()
 	})
 	
 	watch(bubbleConfig,(newMsg,oldMsg)=>{
@@ -75,14 +78,15 @@
 			if((newMsg.x+160)>zrbox.width){
 				newMsg.x-=40+160
 			}
-			if((newMsg.y+20+newMsg.serials.length*16)>zrbox.height){
+			if((newMsg.y+20+16+newMsg.serials.length*16)>zrbox.height){
 				newMsg.y-=60+newMsg.serials.length*16
 			}
 		}
 	})
 	
 	defineExpose({
-		init
+		init,
+		dispose
 	})
 	
 </script>

+ 13 - 1
src/components/groupCurve/lib/curvePanel.js

@@ -146,6 +146,12 @@ CurvePanel.prototype={
 	drawMultiAxis(){
 		let serialH=this.config.headerH/this.config.serials.length,tbpadding=5
 		let startY=tbpadding
+		if(this.config.panelTitle){
+			let titObj=drawUtils.drawText(this.config.panelTitle,this.config.width/2,startY,'center|top')
+			this.self.add(titObj)
+			startY+=14
+		}
+		
 		let colors=["#ff0000","#00ff00","#0000ff","#e627ff"]
 		for(let i=0,len=this.config.serials.length;i<len;i++){
 			this.config.serials[i].color=i==len-1?'#000000':colors[i%4]
@@ -237,7 +243,13 @@ CurvePanel.prototype={
 		
 		let timeDiff=utils.dateDiff(projary[1],yMin,'minute')
 		
-		return {x:this.origin.x+(projary[0]-min)*ratio,y:this.origin.y+timeDiff*yRatio}
+		let rtn= {x:this.origin.x+(projary[0]-min)*ratio,y:this.origin.y+timeDiff*yRatio}
+		
+		if(rtn.x>this.axisEnd.x){
+			rtn.x=this.axisEnd.x
+		}
+		
+		return rtn
 	},
 	
 	indicateHandle({x,y}){

+ 2 - 2
src/components/groupCurve/lib/groupCurve.js

@@ -100,7 +100,7 @@ GroupCurve.prototype={
 				panel=this.panels[i]
 				panelParamCodes=Object.keys(panel.serialMap)
 				this.paramCodes.splice(this.paramCodes.length,0,...panelParamCodes)
-				resp=await this.outInitLoad(panelParamCodes)
+				resp=await this.outInitLoad(panelParamCodes,panel.config)
 				if(resp==null){
 					console.log('初始加载失败')
 					loadSuccess=false
@@ -143,7 +143,7 @@ GroupCurve.prototype={
 			for(let i=0,len=this.panels.length;i<len;i++){
 				panel=this.panels[i]
 				panelParamCodes=Object.keys(panel.serialMap)
-				resp=await this.outTimeLoad(panelParamCodes)
+				resp=await this.outTimeLoad(panelParamCodes,panel.config)
 				if(resp==null){
 					console.log('定时加载失败')
 				}