提交 5fe7bbb4 编写于 作者: 江南一点雨

完成了在线聊天功能

上级 8a199a0e
......@@ -60,8 +60,11 @@
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
......
package org.sang.bean;
/**
* Created by sang on 2018/1/29.
*/
public class ChatResp {
private String msg;
private String from;
public ChatResp() {
}
public ChatResp(String msg, String from) {
this.msg = msg;
this.from = from;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
}
package org.sang.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
import org.springframework.web.socket.config.annotation.AbstractWebSocketMessageBrokerConfigurer;
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
/**
* Created by sang on 2018/1/27.
*/
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void registerStompEndpoints(StompEndpointRegistry stompEndpointRegistry) {
stompEndpointRegistry.addEndpoint("/ws/endpointChat").withSockJS();
}
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
registry.enableSimpleBroker("/queue");
}
}
package org.sang.controller;
import org.sang.bean.Hr;
import org.sang.service.HrService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 处理通知消息的Controller
* 登录即可访问
*/
@RestController
@RequestMapping("/chat")
public class ChatController {
@Autowired
HrService hrService;
@RequestMapping(value = "/hrs",method = RequestMethod.GET)
public List<Hr> getAllHr() {
return hrService.getAllHr();
}
}
package org.sang.controller;
import org.sang.bean.ChatResp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.messaging.handler.annotation.MessageMapping;
import org.springframework.messaging.simp.SimpMessagingTemplate;
import org.springframework.stereotype.Controller;
import java.security.Principal;
/**
* WebSocket 消息处理类
* Created by sang on 2018/1/27.
*/
@Controller
public class WsController {
@Autowired
SimpMessagingTemplate messagingTemplate;
@MessageMapping("/ws/chat")
public void handleChat(Principal principal, String msg) {
String destUser = msg.substring(msg.lastIndexOf(";") + 1, msg.length());
String message = msg.substring(0, msg.lastIndexOf(";"));
messagingTemplate.convertAndSendToUser(destUser, "/queue/chat", new ChatResp(message, principal.getName()));
}
}
\ No newline at end of file
package org.sang.controller.salary;
import org.sang.bean.Department;
import org.sang.service.DepartmentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* Created by sang on 2018/1/26.
*/
@RestController
@RequestMapping("/salary/table")
public class SalaryTableController {
@Autowired
DepartmentService departmentService;
@RequestMapping("/deps")
public List<Department> departments() {
return departmentService.getAllDeps();
}
}
......@@ -27,4 +27,6 @@ public interface HrMapper {
Hr getHrById(Long hrId);
int deleteHr(Long hrId);
List<Hr> getAllHr(@Param("currentId") Long currentId);
}
......@@ -93,4 +93,7 @@
<delete id="deleteHr" parameterType="Long">
DELETE FROM hr WHERE id=#{hrId}
</delete>
<select id="getAllHr" resultType="org.sang.bean.Hr">
select * from hr WHERE id !=#{currentId}
</select>
</mapper>
\ No newline at end of file
package org.sang.service;
import org.sang.bean.Hr;
import org.sang.common.HrUtils;
import org.sang.mapper.HrMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.UserDetails;
......@@ -61,4 +62,8 @@ public class HrService implements UserDetailsService {
public int deleteHr(Long hrId) {
return hrMapper.deleteHr(hrId);
}
public List<Hr> getAllHr() {
return hrMapper.getAllHr(HrUtils.getCurrentHr().getId());
}
}
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>微人事</title><link href=/static/css/app.c1b39e3ca627ecdd4a10889aa59b136c.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.93998db19c305ee4839d.js></script><script type=text/javascript src=/static/js/vendor.59f7a0d2e440c37c0dac.js></script><script type=text/javascript src=/static/js/app.c9854a01d31fe48e8754.js></script></body></html>
\ No newline at end of file
<!DOCTYPE html><html><head><meta charset=utf-8><meta name=viewport content="width=device-width,initial-scale=1"><title>微人事</title><link href=/static/css/app.3ba1b83911ea5c22e854d34fb73c7449.css rel=stylesheet></head><body><div id=app></div><script type=text/javascript src=/static/js/manifest.3fbf2a2cfc0ce328e5e6.js></script><script type=text/javascript src=/static/js/vendor.10926597d7694d067e76.js></script><script type=text/javascript src=/static/js/app.c872104ae3c790049ac7.js></script></body></html>
\ No newline at end of file
因为 它太大了无法显示 source diff 。你可以改为 查看blob
因为 它太大了无法显示 source diff 。你可以改为 查看blob
webpackJsonp([7],{Ad1w:function(e,t){},HP1N:function(e,t){},NHnr:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n("7+uW"),o={render:function(){var e=this.$createElement,t=this._self._c||e;return t("div",{attrs:{id:"app"}},[t("router-view")],1)},staticRenderFns:[]};var a=n("VU/8")({name:"app"},o,!1,function(e){n("Ad1w")},null,null).exports,s=n("/ocq"),i=n("xJsL"),u=n("lO7g");r.default.use(s.a);var l=new s.a({routes:[{path:"/",name:"Login",component:i.default,hidden:!0},{path:"/home",name:"主页",component:u.default,hidden:!0,meta:{requireAuth:!0}}]}),c=n("zL8q"),d=n.n(c),p=(n("tvR6"),n("mvHQ")),m=n.n(p),f=n("NYxO");r.default.use(f.a);var h=new f.a.Store({state:{user:{name:null==window.localStorage.getItem("user")?"未登录":JSON.parse(window.localStorage.getItem("user")).name,userface:null==window.localStorage.getItem("user")?"":JSON.parse(window.localStorage.getItem("user")).userface},routes:[]},mutations:{initMenu:function(e,t){e.routes=t},login:function(e,t){e.user=t,window.localStorage.setItem("user",m()(t))},logout:function(e){window.localStorage.removeItem("user"),e.routes=[]}},actions:{}}),g=n("VsUZ"),v=n("oAV5");r.default.filter("formatDate",w),r.default.prototype.formatDate=w;function w(e){var t=new Date(e),n=t.getFullYear(),r=t.getMonth()+1,o=t.getDate();return r<10&&(r="0"+r),o<10&&(o="0"+o),n+"-"+r+"-"+o}r.default.filter("formatDateTime",function(e){var t=new Date(e),n=t.getFullYear(),r=t.getMonth()+1,o=t.getDate(),a=t.getHours(),s=t.getMinutes();return r<10&&(r="0"+r),o<10&&(o="0"+o),n+"-"+r+"-"+o+" "+a+":"+s});n("e0XP");r.default.config.productionTip=!1,r.default.use(d.a),r.default.prototype.getRequest=g.b,r.default.prototype.postRequest=g.c,r.default.prototype.deleteRequest=g.a,r.default.prototype.putRequest=g.d,r.default.prototype.isNotNullORBlank=v.b,l.beforeEach(function(e,t,n){if("Login"!=e.name){"未登录"==h.state.user.name?e.meta.requireAuth||null==e.name?n({path:"/",query:{redirect:e.path}}):n():(Object(v.a)(l,h),n())}else n()}),new r.default({el:"#app",router:l,store:h,template:"<App/>",components:{App:a}})},VsUZ:function(e,t,n){"use strict";n.d(t,"c",function(){return u}),n.d(t,"d",function(){return l}),n.d(t,"a",function(){return c}),n.d(t,"b",function(){return d});var r=n("//Fk"),o=n.n(r),a=n("mtWM"),s=n.n(a),i=n("zL8q");n.n(i);s.a.interceptors.request.use(function(e){return e},function(e){return i.Message.error({message:"请求超时!"}),o.a.resolve(e)}),s.a.interceptors.response.use(function(e){if(!e.status||200!=e.status||"error"!=e.data.status)return e;i.Message.error({message:e.data.msg})},function(e){return 504==e.response.status||404==e.response.status?i.Message.error({message:"服务器被吃了⊙﹏⊙∥"}):403==e.response.status?i.Message.error({message:"权限不足,请联系管理员!"}):i.Message.error({message:"未知错误!"}),o.a.resolve(e)});var u=function(e,t){return s()({method:"post",url:""+e,data:t,transformRequest:[function(e){var t="";for(var n in e)t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n])+"&";return t}],headers:{"Content-Type":"application/x-www-form-urlencoded"}})},l=function(e,t){return s()({method:"put",url:""+e,data:t,transformRequest:[function(e){var t="";for(var n in e)t+=encodeURIComponent(n)+"="+encodeURIComponent(e[n])+"&";return t}],headers:{"Content-Type":"application/x-www-form-urlencoded"}})},c=function(e){return s()({method:"delete",url:""+e})},d=function(e){return s()({method:"get",url:""+e})}},e0XP:function(e,t){},lO7g:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",[n("el-container",{staticClass:"home-container"},[n("el-header",{staticClass:"home-header"},[n("span",{staticClass:"home_title"},[e._v("微人事")]),e._v(" "),n("div",{staticStyle:{display:"flex","align-items":"center","margin-right":"7px"}},[n("el-dropdown",{on:{command:e.handleCommand}},[n("span",{staticClass:"el-dropdown-link home_userinfo",staticStyle:{display:"flex","align-items":"center"}},[e._v("\n "+e._s(e.user.name)+"\n "),n("i",[""!=e.user.userface?n("img",{staticStyle:{width:"40px",height:"40px","margin-right":"5px","margin-left":"5px","border-radius":"40px"},attrs:{src:e.user.userface}}):e._e()])]),e._v(" "),n("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[n("el-dropdown-item",[e._v("个人中心")]),e._v(" "),n("el-dropdown-item",[e._v("设置")]),e._v(" "),n("el-dropdown-item",{attrs:{command:"logout",divided:""}},[e._v("注销")])],1)],1)],1)]),e._v(" "),n("el-container",[n("el-aside",{staticClass:"home-aside",attrs:{width:"180px"}},[n("div",{staticStyle:{display:"flex","justify-content":"flex-start",width:"180px","text-align":"left"}},[n("el-menu",{staticStyle:{background:"#ececec",width:"180px"},attrs:{"unique-opened":"",router:""}},[e._l(this.routes,function(t,r){return t.hidden?e._e():[n("el-submenu",{key:r,attrs:{index:r+""}},[n("template",{slot:"title"},[n("i",{class:t.iconCls,staticStyle:{color:"#20a0ff",width:"14px"}}),e._v(" "),n("span",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(t.name))])]),e._v(" "),e._l(t.children,function(t){return n("el-menu-item",{key:t.path,staticStyle:{"padding-left":"30px","padding-right":"0px","margin-left":"0px",width:"170px","text-align":"left"},attrs:{width:"180px",index:t.path}},[e._v(e._s(t.name)+"\n ")])})],2)]})],2)],1)]),e._v(" "),n("el-container",[n("el-main",[n("el-breadcrumb",{attrs:{"separator-class":"el-icon-arrow-right"}},[n("el-breadcrumb-item",{attrs:{to:{path:"/home"}}},[e._v("首页")]),e._v(" "),n("el-breadcrumb-item",{domProps:{textContent:e._s(this.$router.currentRoute.name)}})],1),e._v(" "),n("keep-alive",[this.$route.meta.keepAlive?n("router-view"):e._e()],1),e._v(" "),this.$route.meta.keepAlive?e._e():n("router-view")],1)],1)],1)],1)],1)},staticRenderFns:[]};var o=n("VU/8")({mounted:function(){},methods:{devMsg:function(){var e=this;this.$alert("为了确保所有的小伙伴都能看到完整的数据演示,数据库只开放了查询权限和部分字段的更新权限,其他权限都不具备,完整权限的演示需要大家在自己本地部署后,换一个正常的数据库用户后即可查看,这点请大家悉知!","友情提示",{confirmButtonText:"确定",callback:function(t){e.$notify({title:"重要重要!",type:"warning",message:"小伙伴们需要注意的是,目前只有权限管理模块完工了,因此这个项目中你无法看到所有的功能,除了权限管理相关的模块。权限管理相关的模块主要有两个,分别是 [系统管理->基础信息设置->权限组] 可以管理角色和资源的关系, [系统管理->操作员管理] 可以管理用户和角色的关系。",duration:0})}})},handleCommand:function(e){var t=this;"logout"==e&&this.$confirm("注销登录, 是否继续?","提示",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"}).then(function(){t.getRequest("/logout"),t.$store.commit("logout"),t.$router.replace({path:"/"})}).catch(function(){t.$message({type:"info",message:"取消"})})}},data:function(){return{}},computed:{user:function(){return this.$store.state.user},routes:function(){return this.$store.state.routes}}},r,!1,function(e){n("HP1N")},null,null);t.default=o.exports},oAV5:function(e,t,n){"use strict";n.d(t,"b",function(){return a}),n.d(t,"a",function(){return s});var r=n("VsUZ"),o=n("zL8q"),a=(n.n(o),function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];for(var r=0;r<t.length;r++){var a=t[r];if(null==a||""==a||void 0==a)return o.Message.warning({message:"数据不能为空!"}),!1}return!0}),s=function(e,t){t.state.routes.length>0||Object(r.b)("/config/sysmenu").then(function(n){if(n&&200==n.status){var r=i(n.data);e.addRoutes(r),t.commit("initMenu",r)}})},i=function e(t){var r=[];return t.forEach(function(t){var o=t.path,a=t.component,s=t.name,i=t.meta,u=t.iconCls,l=t.children;l&&l instanceof Array&&(l=e(l));var c={path:o,component:function(e){a.startsWith("Home")?n.e(0).then(function(){var t=[n("2eoi")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Emp")?n.e(5).then(function(){var t=[n("8cST")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Per")?n.e(3).then(function(){var t=[n("sALK")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Sal")?n.e(2).then(function(){var t=[n("9Acn")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Sta")?n.e(4).then(function(){var t=[n("nCU1")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe):a.startsWith("Sys")&&n.e(1).then(function(){var t=[n("LJAE")("./"+a+".vue")];e.apply(null,t)}.bind(this)).catch(n.oe)},name:s,iconCls:u,meta:i,children:l};r.push(c)}),r}},oWFQ:function(e,t){},tvR6:function(e,t){},xJsL:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={data:function(){return{rules:{account:[{required:!0,message:"请输入用户名",trigger:"blur"}],checkPass:[{required:!0,message:"请输入密码",trigger:"blur"}]},checked:!0,loginForm:{username:"admin",password:"123"},loading:!1}},methods:{submitClick:function(){var e=this;this.loading=!0,this.postRequest("/login",{username:this.loginForm.username,password:this.loginForm.password}).then(function(t){if(e.loading=!1,t&&200==t.status){var n=t.data;e.$store.commit("login",n.msg);var r=e.$route.query.redirect;e.$router.replace({path:"/"==r||void 0==r?"/home":r})}})}}},o={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("el-form",{directives:[{name:"loading",rawName:"v-loading",value:e.loading,expression:"loading"}],staticClass:"login-container",attrs:{rules:e.rules,"label-position":"left","label-width":"0px"}},[n("h3",{staticClass:"login_title"},[e._v("系统登录")]),e._v(" "),n("el-form-item",{attrs:{prop:"account"}},[n("el-input",{attrs:{type:"text","auto-complete":"off",placeholder:"账号"},model:{value:e.loginForm.username,callback:function(t){e.$set(e.loginForm,"username",t)},expression:"loginForm.username"}})],1),e._v(" "),n("el-form-item",{attrs:{prop:"checkPass"}},[n("el-input",{attrs:{type:"password","auto-complete":"off",placeholder:"密码"},model:{value:e.loginForm.password,callback:function(t){e.$set(e.loginForm,"password",t)},expression:"loginForm.password"}})],1),e._v(" "),n("el-checkbox",{staticClass:"login_remember",attrs:{"label-position":"left"},model:{value:e.checked,callback:function(t){e.checked=t},expression:"checked"}},[e._v("记住密码")]),e._v(" "),n("el-form-item",{staticStyle:{width:"100%"}},[n("el-button",{staticStyle:{width:"100%"},attrs:{type:"primary"},nativeOn:{click:function(t){t.preventDefault(),e.submitClick(t)}}},[e._v("登录")])],1)],1)},staticRenderFns:[]};var a=n("VU/8")(r,o,!1,function(e){n("oWFQ")},null,null);t.default=a.exports}},["NHnr"]);
//# sourceMappingURL=app.c9854a01d31fe48e8754.js.map
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var f,i,u,d=0,s=[];d<r.length;d++)i=r[d],t[i]&&s.push(t[i][0]),t[i]=0;for(f in c)Object.prototype.hasOwnProperty.call(c,f)&&(e[f]=c[f]);for(n&&n(r,c,a);s.length;)s.shift()();if(a)for(d=0;d<a.length;d++)u=o(o.s=a[d]);return u};var r={},t={8:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"73c15b28f6a7dc8abf3e",1:"86ac68dee683d077f76d",2:"59f04c2bf3a406070264",3:"f2af1e5f79c4750ed876",4:"b25d67ddc90d6ac44980",5:"00192f6b258763152047",6:"59f7a0d2e440c37c0dac",7:"c9854a01d31fe48e8754"}[e]+".js";var f=setTimeout(i,12e4);a.onerror=a.onload=i;function i(){a.onerror=a.onload=null,clearTimeout(f);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="/",o.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.93998db19c305ee4839d.js.map
\ No newline at end of file
!function(e){var n=window.webpackJsonp;window.webpackJsonp=function(r,c,a){for(var i,u,f,d=0,s=[];d<r.length;d++)u=r[d],t[u]&&s.push(t[u][0]),t[u]=0;for(i in c)Object.prototype.hasOwnProperty.call(c,i)&&(e[i]=c[i]);for(n&&n(r,c,a);s.length;)s.shift()();if(a)for(d=0;d<a.length;d++)f=o(o.s=a[d]);return f};var r={},t={8:0};function o(n){if(r[n])return r[n].exports;var t=r[n]={i:n,l:!1,exports:{}};return e[n].call(t.exports,t,t.exports,o),t.l=!0,t.exports}o.e=function(e){var n=t[e];if(0===n)return new Promise(function(e){e()});if(n)return n[2];var r=new Promise(function(r,o){n=t[e]=[r,o]});n[2]=r;var c=document.getElementsByTagName("head")[0],a=document.createElement("script");a.type="text/javascript",a.charset="utf-8",a.async=!0,a.timeout=12e4,o.nc&&a.setAttribute("nonce",o.nc),a.src=o.p+"static/js/"+e+"."+{0:"35624cca2791df8b4b91",1:"f2dbcf1fea4fd33c4ba0",2:"630db73e9961e3e74165",3:"f2af1e5f79c4750ed876",4:"b25d67ddc90d6ac44980",5:"00192f6b258763152047",6:"10926597d7694d067e76",7:"c872104ae3c790049ac7"}[e]+".js";var i=setTimeout(u,12e4);a.onerror=a.onload=u;function u(){a.onerror=a.onload=null,clearTimeout(i);var n=t[e];0!==n&&(n&&n[1](new Error("Loading chunk "+e+" failed.")),t[e]=void 0)}return c.appendChild(a),r},o.m=e,o.c=r,o.d=function(e,n,r){o.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},o.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return o.d(n,"a",n),n},o.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},o.p="/",o.oe=function(e){throw console.error(e),e}}([]);
//# sourceMappingURL=manifest.3fbf2a2cfc0ce328e5e6.js.map
\ No newline at end of file
......@@ -17,6 +17,10 @@ module.exports = {
pathRewrite: {
'^/': ''
}
},
'/ws/*': {
target: 'ws://127.0.0.1:8082',
ws: true
}
},
......
此差异已折叠。
......@@ -15,6 +15,7 @@
"font-awesome": "^4.7.0",
"vue": "^2.5.2",
"vue-router": "^3.0.1",
"vue-stomp": "0.0.5",
"vuex": "^3.0.1"
},
"devDependencies": {
......
......@@ -4,6 +4,9 @@
<el-header class="home-header">
<span class="home_title">微人事</span>
<div style="display: flex;align-items: center;margin-right: 7px">
<el-badge style="margin-right: 30px" :is-dot="isDot">
<i class="fa fa-bell-o" @click="goChat" style="cursor: pointer"></i>
</el-badge>
<el-dropdown @command="handleCommand">
<span class="el-dropdown-link home_userinfo" style="display: flex;align-items: center">
{{user.name}}
......@@ -61,6 +64,9 @@
// this.devMsg();
},
methods: {
goChat(){
this.$router.push({path: '/chat'});
},
devMsg(){
this.$alert('为了确保所有的小伙伴都能看到完整的数据演示,数据库只开放了查询权限和部分字段的更新权限,其他权限都不具备,完整权限的演示需要大家在自己本地部署后,换一个正常的数据库用户后即可查看,这点请大家悉知!', '友情提示', {
confirmButtonText: '确定',
......@@ -95,7 +101,9 @@
}
},
data(){
return {}
return {
isDot:false
}
},
computed: {
user(){
......
<template>
<div>
<el-tabs v-model="activeName" @tab-click="handleClick" style="margin-top: 10px">
<el-tab-pane label="好友聊天" name="chat"><fc></fc></el-tab-pane>
<el-tab-pane label="系统通知" name="notification"><nf></nf></el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import FriendChat from '@/components/chat/FriendChat'
import Notification from '@/components/chat/Notification'
export default {
data() {
return {
activeName: 'chat'
};
},
methods: {
handleClick(tab, event) {
console.log(tab, event);
}
},
components:{
'fc':FriendChat,
'nf':Notification
}
};
</script>
此差异已折叠。
<template>
<div>
系统通知
</div>
</template>
<template>
<div>
<h1>
工资表管理
</h1>
<el-container>
<el-header style="text-align: left;padding-left: 0px;margin-top: 10px">
<el-tag size="medium">请选择部门:</el-tag>
<el-select size="mini" v-model="depId" placeholder="请选择">
<el-option
v-for="item in deps"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-header>
<el-main>Main</el-main>
</el-container>
</div>
</template>
<script>
export default{
data(){
return {
depId: 1,
deps: []
}
},
methods: {
loadDeps(){
var _this = this;
this.getRequest("/salary/table/deps").then(resp=> {
if (resp && resp.status == 200) {
_this.deps = resp.data;
}
})
}
},
mounted:function () {
this.loadDeps();
}
}
</script>
此差异已折叠。
此差异已折叠。
此差异已折叠。
......@@ -38,6 +38,8 @@ router.beforeEach((to, from, next)=> {
}
} else {
initMenu(router, store);
if(to.path=='/chat')
store.commit("updateMsgList", []);
next();
}
}
......
此差异已折叠。
此差异已折叠。
......@@ -20,6 +20,7 @@ export const initMenu = (router, store)=> {
var fmtRoutes = formatRoutes(resp.data);
router.addRoutes(fmtRoutes);
store.commit('initMenu', fmtRoutes);
store.dispatch('connect');
}
})
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册