Former-commit-id: 0ce0fddbd477d91bb747c4116b34b1f898cd4482
TangShanKaiPing
wanggang 6 years ago
parent cb88bdb378
commit 517728c6e4

@ -2,8 +2,10 @@
using Infrastructure.Data;
using Infrastructure.Extensions;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Configuration;
using System;
using System.ComponentModel.DataAnnotations;
using System.Linq;
namespace UserCenter.Controllers
@ -14,33 +16,27 @@ namespace UserCenter.Controllers
public class DeviceController : ControllerBase
{
private readonly IConfiguration _cfg;
private readonly IRepository<Product> _productRepo;
private readonly IRepository<Category> _categoryRepo;
private readonly IRepository<Device> _deviceRepo;
public DeviceController(IConfiguration cfg,
IRepository<Product> productRepo,
IRepository<Category> categoryRepo)
IRepository<Device> deviceRepo)
{
this._cfg = cfg;
this._productRepo = productRepo;
this._categoryRepo = categoryRepo;
this._deviceRepo = deviceRepo;
}
[HttpPost]
public ActionResult GetProducts()
public ActionResult GetDevice([Required]string number)
{
try
{
var model = this._productRepo.ReadOnlyTable()
.OrderBy(o => o.DisplayOrder)
.Select(o => new
{
o.Name,
o.Number,
o.Image,
o.DisplayOrder,
Count = o.Devices.Count()
});
var model = this._deviceRepo.ReadOnlyTable()
.Include(o => o.Data)
.Include(o => o.Product)
.ThenInclude(o => o.Apis)
.ThenInclude(o => o.Parameters)
.Where(o => o.Number == number)
.FirstOrDefault();
return Ok(model);
}
catch (Exception ex)

@ -11,7 +11,7 @@
<div class="weui-grid__icon">
<img :src="'/IoTCenter'+node.image" />
</div>
<p class="weui-grid__label">{{node.name}}</p>
<p class="weui-grid__label">{{node.name}}{{node.count}}</p>
</router-link>
</template>
</div>

@ -11,7 +11,7 @@
<div class="weui-grid__icon">
<img :src="'/IoTCenter'+product.image" />
</div>
<p class="weui-grid__label">{{product.name}}</p>
<p class="weui-grid__label">{{product.name}}{{product.count}}</p>
</router-link>
</template>
</div>

@ -116,7 +116,7 @@ namespace UserCenter.Controllers
return Ok(new
{
AccessToken = Request.HttpContext.GetToken(userName, _cfg, DateTime.Now.AddHours(_cfg.GetValue<double>("AccessTokenHours", 0.5))),
RefreshToken = Request.HttpContext.GetToken(userName, _cfg, DateTime.Now.AddHours(_cfg.GetValue<double>("AccessTokenHours", 720))),
RefreshToken = Request.HttpContext.GetToken(userName, _cfg, DateTime.Now.AddHours(_cfg.GetValue<double>("RefreshToken", 720))),
});
}
catch (Exception ex)

File diff suppressed because one or more lines are too long

@ -20,6 +20,9 @@
password: /^[^\s]+$/
}
};
},
user: function () {
return this.$store.user;
}
},
methods: {

@ -26,6 +26,7 @@
<script src="lib/weui.js/weui.min.js"></script>
<script src="lib/vue/vue.min.js"></script>
<script src="lib/vue-router/vue-router.min.js"></script>
<script src="lib/vuex/vuex.min.js"></script>
<script src="lib/mint-ui/index.js"></script>
<script src="lib/signalr/signalr.min.js"></script>
<script src="pc.js"></script>

@ -1,4 +1,22 @@
var userAgent = navigator.userAgent;
Vue.use(Vuex);
const store = new Vuex.Store({
state: {
accessToken: localStorage.getItem("accessToken"),
refreshToken: localStorage.getItem("refreshToken"),
user: null,
products: [],
nodes: [],
},
mutations: {
setUser(state, user) {
console.log('~~~~');
console.log(store);
state.user = user;
}
},
})
///
var userAgent = navigator.userAgent;
var isApp = userAgent.indexOf('isapp') !== -1;
var hubUrl = "/IoTCenter/hub?group=page";
var connection = new signalR.HubConnectionBuilder().withUrl(hubUrl).build();
@ -60,7 +78,7 @@ axios.interceptors.response.use(function (response) {
localStorage.setItem("accessToken", token);
refreshToken = response.data.refreshToken;
localStorage.setItem("refreshToken", refreshToken);
config.headers['Authorization'] = 'Bearer ' + token;
error.config.headers['Authorization'] = 'Bearer ' + token;
console.log('刷新token后重发api请求');
axios.request(error.config);
})
@ -123,6 +141,7 @@ router.afterEach((route, redirect) => {
})
///
const app = new Vue({
store:store,
router,
data: {
},
@ -130,5 +149,5 @@ const app = new Vue({
console.log('mounted:app');
},
methods: {
}
},
}).$mount('#app');

@ -23,14 +23,14 @@
</div>
</div>
<div class="weui-tab__content">
<div class="weui-cells" v-if="model">
<div class="weui-cells" v-if="user">
<div class="weui-cell">
<div class="weui-cell__hd" style="position: relative;margin-right: 10px;">
<img :src="model.avatar?model.avatar:'/images/empty.png'" style="width: 50px;display: block">
<img :src="user.avatar?user.avatar:'/images/empty.png'" style="width: 50px;display: block">
</div>
<div class="weui-cell__bd">
<p>{{model.nickName}}</p>
<p style="font-size: 13px;color: #888888;">{{model.userName}}</p>
<p>{{user.nickName}}</p>
<p style="font-size: 13px;color: #888888;">{{user.userName}}</p>
</div>
</div>
</div>

@ -5,17 +5,15 @@
template: response.data,
data() {
return {
model: null
};
},
mounted: function () {
console.log('mounted:home');
weui.tab('#tab', { defaultIndex: 1 });
var url = '/UserCenter/api/v1/user/getUserInfo';
var component = this;
axios.get(url)
.then(function (response) {
component.model = response.data;
store.commit('setUser', response.data);
})
.catch(function (error) {
})
@ -28,7 +26,12 @@
localStorage.removeItem('refreshToken');
router.push('/login');
}
}
},
computed: {
user: function () {
return store.state.user;
}
},
})
});
});

@ -32,6 +32,7 @@
"urijs": "1.19.2",
"vue": "2.6.10",
"vue-router": "3.1.3",
"vuex": "3.1.2",
"metro4": "4.3.3",
"toastr": "2.1.4",
"weui": "2.1.3",

Loading…
Cancel
Save