<template>
|
<div>
|
<van-collapse v-model="activeNames" @change="changeList()">
|
<van-collapse-item v-for="(item,i) in dataList" :key="i" :title="item.label" :name="i">
|
<span>
|
<ul>
|
<li v-for="(element,i) in item.list" class="group_name" @click="toRouter(element)" :key="i">
|
{{ element.BattGroupName }}</li>
|
</ul>
|
</span>
|
</van-collapse-item>
|
</van-collapse>
|
<!-- <van-list
|
:finished="finished"
|
finished-text="没有更多了"
|
@load="searchStation()"
|
>
|
<van-cell v-for="(item,i) in dataList" :key="i" :title="item.label" to="/functionList"/>
|
</van-list> -->
|
</div>
|
</template>
|
<script>
|
import {
|
searchStation,
|
searchBattInfo
|
} from "@/assets/js/api";
|
export default {
|
data() {
|
return {
|
finished: false,
|
dataList: [],
|
activeNames: [],
|
}
|
},
|
mounted() {
|
this.searchStation();
|
},
|
methods: {
|
searchStation: function () {
|
let self = this;
|
searchStation({
|
StationName1: "",
|
StationName2: "",
|
StationName5: "",
|
}).then((res) => {
|
let rs = JSON.parse(res.data.result);
|
let data = [];
|
if (rs.code == 1) {
|
data = rs.data;
|
console.log(data)
|
}
|
// 格式化数据
|
this.formatData(data);
|
});
|
},
|
formatData(data) {
|
let self = this;
|
let homeList = [];
|
// 遍历数据构造树状
|
data.forEach((item, i) => {
|
let tmp = {};
|
tmp.label = item.StationName1 + "-" + item.StationName2 + "-" + item.StationName5 + "-" +
|
item.StationName3;
|
tmp.key = item.FBSDeviceId + Math.random();
|
tmp.id = item.FBSDeviceId;
|
tmp.data = item;
|
let index = this.checkValIsIn(tmp.label, homeList);
|
if (index == -1) {
|
tmp.list = [];
|
homeList.push(tmp);
|
}
|
});
|
self.dataList = homeList;
|
self.finished = true;
|
},
|
checkValIsIn(val, arr) {
|
for (let i = 0; i < arr.length; i++) {
|
if (arr[i].label == val) {
|
return i;
|
}
|
}
|
return -1;
|
},
|
// 查询电池组
|
changeList() {
|
let self = this;
|
self.$nextTick(() => {
|
self.activeNames.forEach(item => {
|
let arr = self.dataList[item].list;
|
if (arr.length < 1) {
|
console.log(self.dataList[item])
|
let objs = self.dataList[item].data;
|
searchBattInfo({
|
StationName1: objs.StationName1,
|
StationName2: objs.StationName2,
|
StationName5: objs.StationName5,
|
StationName3: objs.StationName3
|
}).then(res => {
|
let re = JSON.parse(res.data.result)
|
re.data.forEach(element => {
|
self.dataList[item].list.push(element);
|
});
|
})
|
}
|
});
|
})
|
|
},
|
// 跳转
|
toRouter(element) {
|
let self = this;
|
self.$router.push({
|
path: '/functionList',
|
query: element
|
})
|
}
|
}
|
|
}
|
</script>
|
<style scoped>
|
.group_name {
|
margin-bottom: 14px;
|
margin-left: 10px;
|
}
|
</style>
|