Former-commit-id: 8696a62334db2b92f4f1d79b741344713d706cf9
TangShanKaiPing
wanggang 6 years ago
parent dcbeb71a26
commit 40504b9aa5

@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace UserCenter.Controllers
@ -32,16 +33,6 @@ namespace UserCenter.Controllers
{
try
{
//var model = this._nodeCategoryRepo.ReadOnlyTable()
// .Include(o => o.CategoryNodes)
// .ThenInclude(o => o.Node)
// .OrderBy(o => o.DisplayOrder)
// .Select(o => new
// {
// o.Name,
// o.DisplayOrder,
// Nodes = o.CategoryNodes.Select(o => o.Node)
// });
var model = this._nodeRepo.ReadOnlyTable()
.Select(o => new
{
@ -60,5 +51,26 @@ namespace UserCenter.Controllers
return Problem(ex.Message);
}
}
[HttpPost]
public ActionResult GetNode([Required]string number)
{
try
{
var model = this._nodeRepo.ReadOnlyTable()
.Include(o => o.Devices)
.ThenInclude(o => o.Product)
.Include(o => o.Devices)
.ThenInclude(o => o.Data)
.Where(o => o.Number == number)
.FirstOrDefault();
return Ok(model);
}
catch (Exception ex)
{
ex.PrintStack();
return Problem(ex.Message);
}
}
}
}

@ -2,6 +2,7 @@
using Infrastructure.Data;
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
using System.ComponentModel.DataAnnotations;
@ -53,22 +54,15 @@ namespace UserCenter.Controllers
}
[HttpPost]
public ActionResult GetDevices([Required]string number)
public ActionResult GetProduct([Required]string number)
{
try
{
var model = this._deviceRepo.ReadOnlyTable()
.Where(o => o.Product.Number == number)
.OrderBy(o => o.DisplayOrder)
.Select(o => new
{
o.Name,
o.Number,
o.DisplayName,
Image = o.Product.Image,
o.DisplayOrder,
o.Data
});
var model = this._productRepo.ReadOnlyTable()
.Include(o => o.Devices)
.ThenInclude(o => o.Data)
.Where(o => o.Number == number)
.FirstOrDefault();
return Ok(model);
}
catch (Exception ex)

@ -6,7 +6,9 @@ const store = new Vuex.Store({
user: null,
products: [],
nodes: [],
devices:[],
product: null,
node: null,
device:null
},
mutations: {
setToken(state, data) {
@ -30,9 +32,17 @@ const store = new Vuex.Store({
setNodes(state, model) {
state.nodes = model;
},
setProduct(state, model) {
state.product = model;
},
setDevice(state, model) {
state.device = model;
},
setNode(state, model) {
state.node = model;
},
updateNode(state, model) {
updateByNumber(state.nodes, model);
},
insertDevice(state, model) {
updateByNumber(state.devices, model);

@ -1,18 +1,17 @@
<div class="page js_show">
<mt-header title="设备">
<router-link to="/iot/products" slot="left">
<mt-header v-if="device" :title="device.displayName">
<router-link :to="{path:'/pages/iot/product',query:{number:device.product.number}}" slot="left">
<mt-button icon="back">back</mt-button>
</router-link>
</mt-header>
<div class="weui-panel__bd">
<div class="weui-grids">
<template v-if="model" v-for="device in model">
<router-link :to="{path:'/iot/device',query:{number:device.number}}" class="weui-grid">
<div class="weui-grid__icon">
<img :src="'/IoTCenter'+device.image" />
<template v-if="device">
<div v-for="item in device.data" class="weui-grid">
<div class="weui-grid">
<p class="weui-grid__label">{{item.name}}</p>
</div>
<p class="weui-grid__label">{{device.displayName}}</p>
</router-link>
</div>
</template>
</div>
</div>

@ -5,17 +5,13 @@
template: response.data,
data() {
return {
model: null
url: '/IoTCenter/api/v1/device/getDevice?number=' + this.$route.query.number
};
},
mounted: function () {
console.log('当前路由:');
console.log(this.$route);
var url = '/IoTCenter/api/v1/product/getDevices?number='+this.$route.query.number;
var component = this;
axios.post(url)
axios.post(this.url)
.then(function (response) {
component.model = response.data;
store.commit('setDevice',response.data);
})
.catch(function (error) {
})
@ -23,7 +19,15 @@
});
},
destroyed: function () {
store.commit('setDevice',null);
},
methods: {
},
computed: {
device: function () {
return store.state.device;
}
}
})
});

@ -1,18 +1,18 @@
<div class="page js_show">
<mt-header title="设备">
<router-link to="/pages/iot/products" slot="left">
<mt-header v-if="node" :title="node.name">
<router-link to="/pages/iot/nodes" slot="left">
<mt-button icon="back">back</mt-button>
</router-link>
</mt-header>
<div class="weui-panel__bd">
<div class="weui-grids">
<template v-if="model" v-for="device in model">
<router-link :to="{path:'/iot/device',query:{number:device.number}}" class="weui-grid">
<template v-if="node">
<div v-for="device in node.devices" class="weui-grid">
<div class="weui-grid__icon">
<img :src="'/IoTCenter'+device.image" />
<img :src="'/IoTCenter'+device.product.image" />
</div>
<p class="weui-grid__label">{{device.displayName}}</p>
</router-link>
</div>
</template>
</div>
</div>

@ -1,21 +1,17 @@
function pages_iot_node() {
return Vue.component(arguments.callee.toString(), function (resolve, reject) {
axios.get("/IoTCenter/node.html").then(function (response) {
axios.get("/pages/iot/node.html").then(function (response) {
resolve({
template: response.data,
data() {
return {
model: null
url: '/IoTCenter/api/v1/node/getNode?number=' + this.$route.query.number
};
},
mounted: function () {
console.log('当前路由:');
console.log(this.$route);
var url = '/IoTCenter/api/v1/product/getDevices?number='+this.$route.query.number;
var component = this;
axios.post(url)
axios.post(this.url)
.then(function (response) {
component.model = response.data;
store.commit('setNode', response.data);
})
.catch(function (error) {
})
@ -23,8 +19,17 @@
});
},
destroyed: function () {
store.commit('setNode', null);
},
methods: {
}
},
computed: {
node: function () {
return store.state.node;
}
},
})
});
});

@ -6,7 +6,7 @@
</mt-header>
<div class="weui-panel__bd">
<div class="weui-grids">
<router-link v-for="node in nodes" to="/pages/iot/node" class="weui-grid">
<router-link v-for="node in nodes" :to="{path:'/pages/iot/node',query:{number:node.number}}" class="weui-grid">
<div class="weui-grid__icon">
<img :src="'/IoTCenter'+node.image" />
</div>

@ -1,15 +1,15 @@
<div class="page js_show">
<mt-header title="设备">
<mt-header v-if="product" :title="product.name">
<router-link to="/pages/iot/products" slot="left">
<mt-button icon="back">back</mt-button>
</router-link>
</mt-header>
<div class="weui-panel__bd">
<div class="weui-grids">
<template v-if="model" v-for="device in model">
<router-link :to="{path:'/pages/iot/device',query:{number:device.number}}" class="weui-grid">
<template v-if="product">
<router-link v-for="device in product.devices" :to="{path:'/pages/iot/device',query:{number:device.number}}" class="weui-grid">
<div class="weui-grid__icon">
<img :src="'/IoTCenter'+device.image" />
<img :src="'/IoTCenter'+product.image" />
</div>
<p class="weui-grid__label">{{device.displayName}}</p>
</router-link>

@ -5,15 +5,13 @@
template: response.data,
data() {
return {
model: null
url: '/IoTCenter/api/v1/product/getProduct?number=' + this.$route.query.number
};
},
mounted: function () {
var url = '/IoTCenter/api/v1/product/getDevices?number='+this.$route.query.number;
var component = this;
axios.post(url)
axios.post(this.url)
.then(function (response) {
component.model = response.data;
store.commit('setProduct', response.data);
})
.catch(function (error) {
})
@ -21,8 +19,16 @@
});
},
destroyed: function () {
store.commit('setProduct', null);
},
methods: {
}
},
computed: {
product: function () {
return store.state.product;
}
},
})
});
});

Loading…
Cancel
Save