调用链时间轴的实现

关于调用链时间轴的实现(vue项目 antD树形数据展示),之前的公司是局域网,数据格式无法复现,实现代码只能有个大概。
当时的原型图:
在这里插入图片描述
代码:

methods:{
getTableData(){
	... //请求省略
	this.totalData = res.result
	this.tableData[0] = res.result.tracesDetail

	if(this.tableData !== null || this.tableData !== [] || this.tableData !== undefined){
		this.handleTableData(this.tabledata[0]["childDetailEntity"],"1")
		this.getExpandedRowKeys(this.tableData,this.expandedRowKeys)
	},

handleTableData(tableData,key){
	tableData.forEach((item,index)=>{
		let indexs = index + 1
		item["key"] = key + indexs
		let keys = item["key"]
		if(item["childDetailEntity"] == null){
			this.handleTableData(item["childDetailEntity"],keys)
		}
	})
},
getExpandedRowKeys(tableData,arr){
	tableData.forEach((item)=>{
		if(item["key"]){
			arr.push(item["key"])
			let a = {key:item["key"],times:item["timeAsix"]}
			this.expandedRow.push(a)
			this.useexpandedRow.push(e)
		}
		if(item["children"]){
			this.getExpandedRowKeys(item["children"],arr)
		}else{
			this.expandedRow.push({key:"0"})
		}
	})
},
changeBg(){
	document.getElementByClassName("time"+this.expandedRowKeys[0])[0].style.width="350px"
	document.getElementByClassName("time"+this,expandedRowKeys[0])[0].style.background="#BEDFFF"

	try{
		this.expandedRowKeys.forEach((item,index)=>{
			if(item.length == 2){
				this.spliceexpanded.push(index)
				throw new Error("end")
			}
		})
	}.catch(e){}

	var count = 0
	this.expandedRow.forEach((item,index)=>{
		if(item.key == 0){
			let indexs = index - count
			this.spliceexpanded.push(index - count)
			count++
		}
	})
	this.spliceexpanded.pop()
	
	if(this.spliceexpanded.length > 0){
		this.spliceexpanded.forEach((item,index=)=>{
			this.changetimeCss(this.spliceexpanded[index],this.spliceexpanded[index+1],this.width[index])
		})
	}
},
changetimeCss(indexs,endIndex,left){
	let arr = []
	let r = this.expandedRowKeys.slice(indexs,endIndex)
	arr = arr.concat(r)

	arr.forEach((item,index)=>{
		let time = this.useexpandedRow[index + indexs].times
		if(index+1 !== arr.length){
			document.getElementByClassName("time"+item)[0].style.width=3.5*time + "px"
			document.getElementByClassName("time"+item)[0].style.background="#BEDFFF"
			document.getElementByClassName("time"+item)[0].style.marginLeft=left+"px"
		}else{
			let lefts=this.useexpandedRow[index+indexs-1].times
			left=3.5*lefts+left
			document.getElementByClassName("time"+item)[0].style.marginLeft=left+"px"
			document.getElementByClassName("time"+item)[0].style.display="flex"
			document.getElementByClassName("time"+item)[0].classList.add("spanclass")
			document.getElementByClassName("time"+item)[0].style.width="3px"
			this.widths.push(parseFloat(document.getElementByClassName("time"+time)[0].style.marginLeft))
		}
	})
}
}

时间隔了太久,具体代码看不到,也记不清了,下次一定要随时记录!!!!!!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值