top-notice.vue 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <template>
  2. <el-popover placement="bottom"
  3. width="350"
  4. trigger="click">
  5. <el-tabs v-model="activeName">
  6. <el-tab-pane label="消息"
  7. name="first">
  8. </el-tab-pane>
  9. </el-tabs>
  10. <el-scrollbar style="height:300px">
  11. <avue-notice :data="data"
  12. :option="option"
  13. @page-change="pageChange"></avue-notice>
  14. </el-scrollbar>
  15. <div slot="reference">
  16. <el-badge :value="badge">
  17. <i class="el-icon-bell"></i>
  18. </el-badge>
  19. </div>
  20. </el-popover>
  21. </template>
  22. <script>
  23. export default {
  24. name: "top-notice",
  25. data () {
  26. return {
  27. activeName: 'first',
  28. option: {
  29. props: {
  30. img: 'img',
  31. title: 'title',
  32. subtitle: 'subtitle',
  33. tag: 'tag',
  34. status: 'status'
  35. },
  36. },
  37. data: [],
  38. path:"ws://192.168.1.151:8104/websocket?user=1",
  39. socket:"",
  40. badge:''
  41. }
  42. },
  43. created () {
  44. // this.webSocket();
  45. },
  46. mounted() {
  47. this.init();
  48. },
  49. methods: {
  50. //初始化
  51. init(){
  52. if(typeof(WebSocket) === "undefined"){
  53. alert("您的浏览器不支持socket")
  54. }else{
  55. // 实例化socket
  56. this.socket = new WebSocket(this.path)
  57. // 监听socket连接
  58. this.socket.onopen = this.open
  59. // 监听socket错误信息
  60. this.socket.onerror = this.error
  61. // 监听socket消息
  62. this.socket.onmessage = this.getMessage
  63. }
  64. },
  65. open() {
  66. console.log("socket连接成功")
  67. console.log()
  68. },
  69. error() {
  70. console.log("连接错误")
  71. },
  72. getMessage(msg){
  73. console.log(msg.data)
  74. // let msgData = JSON.stringify(msg.data);
  75. // console.log(msgData)
  76. // if(msg.data.unRead){
  77. // this.badge = msg.data.unReadNum
  78. // }else{
  79. // this.badge = ''
  80. // }
  81. },
  82. send() {
  83. // this.socket.send(params)
  84. },
  85. close() {
  86. console.log("socket已经关闭")
  87. },
  88. pageChange (page, done) {
  89. setTimeout(() => {
  90. this.$message.success('页码' + page)
  91. this.data = this.data.concat(list);
  92. done();
  93. }, 1000)
  94. },
  95. }
  96. };
  97. </script>
  98. <style lang="scss" scoped>
  99. </style>