Former-commit-id: a50efd382ce91d804e374a5a018dc31e72e421b7
Former-commit-id: b80db6b132ed8da9af10826792d038985e19eb3e
1.0
wanggang 5 years ago
parent b5b5599b3f
commit 2449c518c3

@ -54,8 +54,9 @@ namespace Platform.Controllers
{ {
var organId = User.GetOrganId().Value;//当前用户机构Id var organId = User.GetOrganId().Value;//当前用户机构Id
var organ = this._organRepo.ReadOnlyTable() var organ = this._organRepo.ReadOnlyTable()
.Where(o => o.Id == organId)
.Include(o => o.Buildings) .Include(o => o.Buildings)
.FirstOrDefault(o => o.Id == organId); .FirstOrDefault();
organ.Buildings.ToTree(); organ.Buildings.ToTree();
var rootBuildingId = this._buildingRepo.ReadOnlyTable().Where(o => o.ParentId == null).Select(o => o.Id).FirstOrDefault(); var rootBuildingId = this._buildingRepo.ReadOnlyTable().Where(o => o.ParentId == null).Select(o => o.Id).FirstOrDefault();
organ.Buildings = organ.Buildings organ.Buildings = organ.Buildings
@ -79,6 +80,7 @@ namespace Platform.Controllers
{ {
var organId = User.GetOrganId().Value;//当前用户机构Id var organId = User.GetOrganId().Value;//当前用户机构Id
var building = this._buildingRepo.ReadOnlyTable() var building = this._buildingRepo.ReadOnlyTable()
.Where(o=>o.Id==id)
.Include(o => o.Scenes) .Include(o => o.Scenes)
.Include(o => o.IoTGateways) .Include(o => o.IoTGateways)
.ThenInclude(o => o.Devices).ThenInclude(o => o.Data) .ThenInclude(o => o.Devices).ThenInclude(o => o.Data)

@ -4,7 +4,9 @@
<div class="card"> <div class="card">
<div class="card-header">建筑列表</div> <div class="card-header">建筑列表</div>
<div class="card-body"> <div class="card-body">
<a-tree :tree-data="tree" <a-tree ref="tree"
auto-expand-parent="true"
:tree-data="tree"
:default-expanded-keys="expanded" :default-expanded-keys="expanded"
:replace-fields="{title:'name',key:'id'}" :replace-fields="{title:'name',key:'id'}"
block-node block-node
@ -74,7 +76,7 @@
</template> </template>
<template v-else> <template v-else>
{{model.organ.minTemperature}} {{model.organ.minTemperature}}
</template> </template>
</p> </p>
</div> </div>
@ -103,7 +105,7 @@
</template> </template>
<template v-else> <template v-else>
{{model.organ.minHumidity}} {{model.organ.minHumidity}}
</template> </template>
RH%" RH%"
</p> </p>
</div> </div>
@ -138,7 +140,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="card"> <div class="card" v-if="buildings.length>0">
<div class="card-header">下级建筑</div> <div class="card-header">下级建筑</div>
<div class="card-body"> <div class="card-body">
<div class="row"> <div class="row">
@ -147,15 +149,27 @@
<div class="card-body bg-gray text-center"> <div class="card-body bg-gray text-center">
<img class="card-img-top" :src="item.image" :alt="item.name" style="width:64px;height:64px;margin:0 auto;"> <img class="card-img-top" :src="item.image" :alt="item.name" style="width:64px;height:64px;margin:0 auto;">
<br /> <br />
<a class="btn btn-block btn-primary btn-sm" href="@Url.Action(null,null,new { buildingId = item.Id})">{{item.name}}</a> <a class="btn btn-block btn-primary btn-sm" v-on:click="selectBuilding(item.id)" href="javascript:;">{{item.name}}</a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="card"> <div class="card" v-if="scenes.length>0">
<div class="card-header">场景</div>
<div class="card-body">
<div class="row">
<div class="col-sm-1" v-for="item in scenes">
<div class="card bg-light p-2">
<a class="card-body text-center" href="#" style="padding:0;">
<img class="card-img-top" :src="item.image" :alt="item.name" style="width:64px;height:64px;margin:0 auto;">
<div>{{item.name}}</div>
</a>
</div>
</div>
</div>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -168,7 +182,7 @@
model: { model: {
organ: null, organ: null,
building: null, building: null,
expanded:[], expanded: [],
}, },
events: ['OrganEntityInserted', events: ['OrganEntityInserted',
'OrganEntityUpdated', 'OrganEntityUpdated',
@ -198,20 +212,29 @@
parent.model.organ = response.data; parent.model.organ = response.data;
}); });
}, },
onSelect(selectedKeys, info) { selectBuilding: function (id) {
var parent = this; var keys = [id];
var key = selectedKeys[0]; this.$refs.tree.selectedKeys = keys;
if (key === this.model.organ.organ.id) { this.$refs.tree.expandedKeys = keys;
this.model.building = null; this.onSelect(keys);
} },
else { onSelect: function (selectedKeys, info) {
var url = config.baseUrl + '/Home/GetBuilding/' + key; if (selectedKeys.length > 0) {
axios.get(url).then(function (response) { this.$refs.tree.selectedKeys = selectedKeys;
parent.model.building = response.data; var parent = this;
}); var id = selectedKeys[0];
if (id === this.model.organ.organ.id) {
this.model.building = null;
}
else {
var url = config.baseUrl + '/Home/GetBuilding/' + id;
axios.get(url).then(function (response) {
parent.model.building = response.data;
});
}
} }
}, },
findBuildings: function (buildings,id) { findBuildings: function (buildings, id) {
for (var i in buildings) { for (var i in buildings) {
var item = buildings[i]; var item = buildings[i];
if (item.id == id) { if (item.id == id) {
@ -228,14 +251,14 @@
var result = []; var result = [];
if (this.model.organ != null) { if (this.model.organ != null) {
result.push({ result.push({
id:this.model.organ.organ.id, id: this.model.organ.organ.id,
name:this.model.organ.organ.name, name: this.model.organ.organ.name,
children: this.model.organ.organ.buildings children: this.model.organ.organ.buildings
}); });
} }
return result; return result;
}, },
expanded : function () { expanded: function () {
var result = []; var result = [];
if (this.model.organ != null) { if (this.model.organ != null) {
result.push(this.model.organ.organ.id); result.push(this.model.organ.organ.id);
@ -243,13 +266,19 @@
return result; return result;
}, },
buildings: function () { buildings: function () {
//console.log(this.model.buildingId); if (this.model.building) {
if (!this.model.building) { return this.findBuildings(this.model.organ.organ.buildings, this.model.building.building.id);
return this.model.organ.organ.buildings;
} }
else { else {
return this.findBuildings(this.model.organ.organ.buildings,this.model.building.building.id); return this.model.organ.organ.buildings;
}
},
scenes: function () {
var result = [];
if (this.model.building) {
result = Enumerable.from(this.model.building.building.scenes).orderBy(o => o.displayOrder).toArray();
} }
return result;
} }
} }
}; };

Loading…
Cancel
Save