Queue.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template>
  2. <div class='sidebar' transition='slide' v-if='$parent.sidebars.queue'>
  3. <div class='inner-wrapper'>
  4. <div class='title'>
  5. Queue
  6. </div>
  7. </div>
  8. </div>
  9. </template>
  10. <script>
  11. export default {
  12. ready: function () {
  13. let _this = this;
  14. let socketInterval = setInterval(() => {
  15. if (!!_this.$parent.$parent.socket) {
  16. _this.socket = _this.$parent.$parent.socket;
  17. _this.socket.emit('stations.getPlaylist', _this.$parent.stationId, data => {
  18. console.log(data);
  19. });
  20. clearInterval(socketInterval);
  21. }
  22. }, 100);
  23. }
  24. }
  25. </script>
  26. <style type='scss' scoped>
  27. .sidebar {
  28. position: fixed;
  29. top: 0;
  30. right: 0;
  31. width: 300px;
  32. height: 100vh;
  33. background-color: #fff;
  34. box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
  35. }
  36. .inner-wrapper {
  37. top: 50px;
  38. position: relative;
  39. }
  40. .slide-transition {
  41. transition: transform 0.6s ease-in-out;
  42. transform: translateX(0);
  43. }
  44. .slide-enter, .slide-leave {
  45. transform: translateX(100%);
  46. }
  47. .title {
  48. background-color: rgb(3, 169, 244);
  49. text-align: center;
  50. padding: 10px;
  51. color: white;
  52. font-weight: 600;
  53. }
  54. </style>