源码链接 => ??ConferencesManagement
最近参加了大学生服务外包比赛,我们队伍选做的是智能会议室管理系统的命题,我负责的是前端部分。在做这个项目的时候,因为才接触vue,对vue的用法还不是很熟悉,所以遇到了很多问题,现在来总结一下我遇到的问题。
鼠标滑入时显示button,鼠标滑出时button消失
使用router
进行传参,可以选择params
和query
两种方式传参。
注意:使用params传参时,路径不能使用path,只能使用配置路由时的name,不然取不到传的数据
安装vuex
$ npm install vuex --save
引入vuex
在src
文件夹下创建一个store
的文件夹,并创建一个index.js
文件
import Vue from ‘vue’
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
id: '1'
}
})
在main.js
中引入store
import store from './store'
new Vue({
store
})
使用公用数据
this.$store.state.id
改变公用数据
路径:pages/id/Id.vue
methods:{
handleClick(id) {
this.$store.dispatch('changeId', id)
}
}
路径:store/index.js
export default new Vuex.Store({
state: {
id: '1'
},
actions: {
changeId(ctx, id) {
ctx.commit('changeId', id)
}
},
mutation: {
changeId(state, id){
state.id = id
}
}
})
直接调用commit
,而不使用actions
路径:pages/id/Id.vue
methods:{
handleClick(id) {
this.$store.commit('changeId', id)
}
}
路径:store/index.js
export default new Vuex.Store({
state: {
id: '1'
},
mutation: {
changeId(state, id){
state.id = id
}
}
})
路径:pages/id/Id.vue
methods:{
handleClick(id) {
this.$store.commit('changeId', id)
}
}
路径:store/index.js
let defaultId = 1
try{
if(localStorage.id){
defaultId = localStorage.id
}
}catch(){}
export default new Vuex.Store({
state: {
id: defaultId
},
mutation: {
changeId(state, id){
state.id = id
try{
localStorage.id = id
}catch (e) {}
}
}
})
官方文档 => 文档链接
官方文档的post请求
axios.post('/user', {
firstName: 'Fred',
lastName: 'Flintstone'
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
按照官方文档的要求写的代码,后端的同学说一直没又返回数据,我就很奇怪,到底是哪里出问题了呢?多方查阅资料,这是由于数据解析出了问题,emmmm具体原理我还不是很清楚。具体的解决办法如下:
let params = new URLSearchParams();
params.append('date',this.date);
params.append('boardroomId', this.boardroomID);
params.append('time','all');
axios.post('/getReservationOfSevenDay',params)
.then(this.getBookInfoSucc)
参考博客 => 博客
静态的Echat是在setOption
的属性里填入图表的静态数据。当我们需要从后端取得数据后显示数据,则需要使用通过异步获取数据后,在通过setOption
填入配置项就行。
let myChart = this.$echarts.init(document.getElementById('myChart')) //获取图表
myChart.showLoading(); //数据没加载时显示loading动画
$.post('/getReservationOfCurrentDate').done(function (data) {
// 填入数据
myChart.hideLoading(); //取消loading动画
myChart.setOption({
yAxis: {
max:(data.rooms.length-1),
data: data.rooms,
},
series: [{
// 根据名字对应到相应的系列
name: '使用人数',
data: data.data.map(function (item) {
return [item[1], item[0], item[2]];
})
}],
tooltip: {
position: 'top',
formatter: function (params) {
return hoursList[params.value[0]] +'有'+params.value[2] + '人在'+data.rooms[params.value[1]]+'开会 ';
}
}
});
});
官方文档:异步数据加载和更新
添加开会人员
预定
在用户注册时,需要采集人脸信息,这个时候就需要用到照相机对人脸进行拍照。
参考代码=>源博客
最后推荐大家使用一个日期处理类库Moment.js
官方文档 => Moment.js