/**
* 顶部header
*/
Vue.component("technical-disclosure-chart", {
template: `
{{item.name}}
{{item.value}}
{{item.prop}} %
`,
props: {
height:{
type: Number,
},
datas:{
type:Array
},
number:{
type: Number,
},
},
data() {
return {
interval: '',
index:0,
listData:[],
num:0
}
},
mounted() {
this.init()
},
methods: {
init() {
this.getListDataChart()
//计划时间
this.interval = setInterval(this.scroll, 3000);
},
getListDataChart(){
if(this.datas.length>0){
var data = this.datas
var arr = []
for(let i = 0;i< data.length;i++){
arr.push(data[i].value)
}
var max = Math.max(...arr)
data.map(x => {
x.prop =((x.value / max ) * 100) .toFixed(2)
return x
})
this.listData = data
}
},
scroll() {
const height = $('.technical-disclosure-for').innerHeight()
let n = this.number ? this.number:0;
if(this.index == this.listData.length - n){
this.$refs.list.scrollTop = 0
this.index = 1
}else{
this.index+=1
}
$(this.$refs.list).animate({scrollTop:(height * this.index)+'px'})
},
mouseEnter() {//鼠标移入停止滚动
clearInterval(this.interval);
},
mouseLeave() {//鼠标离开继续滚动
this.interval = setInterval(this.scroll, 3000);
},
onChart(item){
this.$emit('value',item);
}
},
watch:{
datas:function () {
this.getListDataChart()
}
},
})