<template>
|
<div class="tree-container">
|
<div class="tree-content">
|
<Tree :data="data" :load-data="loadData" @on-select-change="handlerSelectChange"></Tree>
|
</div>
|
</div>
|
</template>
|
<script>
|
import {ajax} from '../libs/common'
|
export default {
|
props: {
|
homeName: {
|
type: String,
|
default: ''
|
},
|
groupName: {
|
type: String,
|
default: ''
|
}
|
},
|
data() {
|
return {
|
first: true,
|
data: []
|
}
|
},
|
methods: {
|
loadData: function(item, callback) {
|
switch(item.type) {
|
case 'home':
|
this.battGroup(item, callback);
|
break;
|
}
|
},
|
home: function() {
|
var self = this;
|
// 获取机房列表
|
ajax({
|
type: "post",
|
url: "BattInfAction!serchAllStation",
|
async:true,
|
dataType:'json',
|
data:null,
|
success: function(res){
|
var rs = JSON.parse(res.result);
|
if(rs.code == 1) {
|
var data = rs.data;
|
var expand = 0;
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
_data.type = "home";
|
_data.loading = false;
|
_data.title = _data.StationName;
|
_data.children = [];
|
_data.expand = false;
|
// 判断是否展开
|
if(_data.StationName == self.homeName) {
|
expand = i;
|
}
|
}
|
self.data = data;
|
// 设置被展开的机房
|
data[expand].expand = true;
|
// 查询被展开机房的电池组
|
self.battGroup(data[0], function(res) {
|
for(var i=0; i<res.length; i++) {
|
data[0].children.push(res[i]);
|
}
|
});
|
}
|
},
|
error: function() {
|
|
}
|
});
|
},
|
battGroup: function(item, callback) {
|
var self = this;
|
// 根据机房的id获取电池组列表
|
ajax({
|
type: "post",
|
url: "BattInfAction!serchBattByStation",
|
async:true,
|
dataType:'json',
|
data:"json = "+JSON.stringify({
|
StationId: item.StationId
|
}),
|
success: function(res){
|
var rs = JSON.parse(res.result);
|
if(rs.code == 1) {
|
var data = rs.data;
|
var selected = 0;
|
for(var i=0; i<data.length; i++) {
|
var _data = data[i];
|
_data.type="group";
|
_data.title = _data.BattGroupName;
|
_data.selected = false;
|
// 判断被选中的电池组
|
if(_data.BattGroupName == self.groupName) {
|
selected = i;
|
}
|
}
|
callback(data);
|
if(self.first) {
|
data[selected].selected = true;
|
// 触发选中电池组后的事件并通知父组件
|
self.handlerSelectChange([data[0]]);
|
self.first = false;
|
}
|
|
}
|
}
|
});
|
},
|
handlerSelectChange: function(item) {
|
var data = item[0];
|
this.$emit('on-select-change', data);
|
}
|
},
|
mounted: function() {
|
this.home(); // 查询机房列表
|
}
|
}
|
</script>
|
<style scoped>
|
.tree-content {
|
padding-left: 16px;
|
}
|
</style>
|