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

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

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

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

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

File diff suppressed because one or more lines are too long

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

@ -26,6 +26,7 @@
<script src="lib/weui.js/weui.min.js"></script> <script src="lib/weui.js/weui.min.js"></script>
<script src="lib/vue/vue.min.js"></script> <script src="lib/vue/vue.min.js"></script>
<script src="lib/vue-router/vue-router.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/mint-ui/index.js"></script>
<script src="lib/signalr/signalr.min.js"></script> <script src="lib/signalr/signalr.min.js"></script>
<script src="pc.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 isApp = userAgent.indexOf('isapp') !== -1;
var hubUrl = "/IoTCenter/hub?group=page"; var hubUrl = "/IoTCenter/hub?group=page";
var connection = new signalR.HubConnectionBuilder().withUrl(hubUrl).build(); var connection = new signalR.HubConnectionBuilder().withUrl(hubUrl).build();
@ -60,7 +78,7 @@ axios.interceptors.response.use(function (response) {
localStorage.setItem("accessToken", token); localStorage.setItem("accessToken", token);
refreshToken = response.data.refreshToken; refreshToken = response.data.refreshToken;
localStorage.setItem("refreshToken", refreshToken); localStorage.setItem("refreshToken", refreshToken);
config.headers['Authorization'] = 'Bearer ' + token; error.config.headers['Authorization'] = 'Bearer ' + token;
console.log('刷新token后重发api请求'); console.log('刷新token后重发api请求');
axios.request(error.config); axios.request(error.config);
}) })
@ -123,6 +141,7 @@ router.afterEach((route, redirect) => {
}) })
/// ///
const app = new Vue({ const app = new Vue({
store:store,
router, router,
data: { data: {
}, },
@ -130,5 +149,5 @@ const app = new Vue({
console.log('mounted:app'); console.log('mounted:app');
}, },
methods: { methods: {
} },
}).$mount('#app'); }).$mount('#app');

@ -23,14 +23,14 @@
</div> </div>
</div> </div>
<div class="weui-tab__content"> <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">
<div class="weui-cell__hd" style="position: relative;margin-right: 10px;"> <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>
<div class="weui-cell__bd"> <div class="weui-cell__bd">
<p>{{model.nickName}}</p> <p>{{user.nickName}}</p>
<p style="font-size: 13px;color: #888888;">{{model.userName}}</p> <p style="font-size: 13px;color: #888888;">{{user.userName}}</p>
</div> </div>
</div> </div>
</div> </div>

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

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

Loading…
Cancel
Save