diff options
Diffstat (limited to 'src/components/group')
-rw-r--r-- | src/components/group/GroupSender.vue | 22 | ||||
-rw-r--r-- | src/components/group/Message.vue | 10 |
2 files changed, 29 insertions, 3 deletions
diff --git a/src/components/group/GroupSender.vue b/src/components/group/GroupSender.vue index 160ca76..ba36949 100644 --- a/src/components/group/GroupSender.vue +++ b/src/components/group/GroupSender.vue | |||
@@ -19,12 +19,13 @@ export default { | |||
19 | data() { | 19 | data() { |
20 | return { | 20 | return { |
21 | message: "", | 21 | message: "", |
22 | messages: [] | 22 | messages: [], |
23 | } | 23 | } |
24 | }, | 24 | }, |
25 | 25 | ||
26 | props: { | 26 | props: { |
27 | group: Object | 27 | group: Object, |
28 | socket: Object | ||
28 | }, | 29 | }, |
29 | 30 | ||
30 | methods: { | 31 | methods: { |
@@ -35,6 +36,7 @@ export default { | |||
35 | send_message(e) { | 36 | send_message(e) { |
36 | e.preventDefault() | 37 | e.preventDefault() |
37 | console.log(this.message) | 38 | console.log(this.message) |
39 | this.socket.emit("send_group_message", {message: this.message, group: this.group}) | ||
38 | this.message = "" | 40 | this.message = "" |
39 | }, | 41 | }, |
40 | 42 | ||
@@ -45,6 +47,11 @@ export default { | |||
45 | 47 | ||
46 | if(status===200) | 48 | if(status===200) |
47 | this.messages = data.messages | 49 | this.messages = data.messages |
50 | }, | ||
51 | |||
52 | push_message(message) { | ||
53 | if(message.receiver == this.group.id) | ||
54 | this.messages.push(message) | ||
48 | } | 55 | } |
49 | }, | 56 | }, |
50 | 57 | ||
@@ -56,6 +63,10 @@ export default { | |||
56 | this.$nextTick(function () { | 63 | this.$nextTick(function () { |
57 | this.$refs.input.focus() | 64 | this.$refs.input.focus() |
58 | 65 | ||
66 | this.socket.emit("join_group", {group_id: this.group.id}) | ||
67 | this.socket.on("receive_group_message", ({message}) => { | ||
68 | this.push_message(message) | ||
69 | }) | ||
59 | this.get_messages() | 70 | this.get_messages() |
60 | }) | 71 | }) |
61 | } | 72 | } |
@@ -63,5 +74,12 @@ export default { | |||
63 | </script> | 74 | </script> |
64 | 75 | ||
65 | <style scoped> | 76 | <style scoped> |
77 | .group_view { | ||
78 | width: 25%; | ||
79 | } | ||
66 | 80 | ||
81 | .messages { | ||
82 | overflow:auto; | ||
83 | height: 300px; | ||
84 | } | ||
67 | </style> | 85 | </style> |
diff --git a/src/components/group/Message.vue b/src/components/group/Message.vue index 56e2805..eedcc6e 100644 --- a/src/components/group/Message.vue +++ b/src/components/group/Message.vue | |||
@@ -1,5 +1,5 @@ | |||
1 | <template> | 1 | <template> |
2 | <div class="message"> | 2 | <div class="message" :class="{mine: is_message_mine}"> |
3 | <div class="sender">{{ get_message_user }}</div> | 3 | <div class="sender">{{ get_message_user }}</div> |
4 | <div class="content">{{ get_message_content }}</div> | 4 | <div class="content">{{ get_message_content }}</div> |
5 | <div class="date">{{ get_message_date }}</div> | 5 | <div class="date">{{ get_message_date }}</div> |
@@ -19,6 +19,8 @@ export default { | |||
19 | let date = new Date(this.message.create_date) | 19 | let date = new Date(this.message.create_date) |
20 | return `${date.getDate()}/${date.getMonth()} ${date.getHours()}:${date.getMinutes()}` | 20 | return `${date.getDate()}/${date.getMonth()} ${date.getHours()}:${date.getMinutes()}` |
21 | }, | 21 | }, |
22 | |||
23 | is_message_mine() { return this.message.is_mine } | ||
22 | }, | 24 | }, |
23 | 25 | ||
24 | created() { | 26 | created() { |
@@ -31,5 +33,11 @@ export default { | |||
31 | <style scoped> | 33 | <style scoped> |
32 | .message { | 34 | .message { |
33 | width: 100%; | 35 | width: 100%; |
36 | margin-bottom: 10px; | ||
37 | color: white; | ||
38 | } | ||
39 | |||
40 | .mine { | ||
41 | color: red; | ||
34 | } | 42 | } |
35 | </style> | 43 | </style> |