@aochuang/client-sdk 1.0.347 → 1.0.349

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/components/index.js +1 -6
  2. package/components/session-select/session-select-item.vue +9 -8
  3. package/components/wechat-chat-control/url/url-miniprogram.vue +5 -1
  4. package/components/wework-chat-control/company-card/company-card.vue +1 -1
  5. package/components/wework-chat-control/file-url/file-url.vue +5 -2
  6. package/components/wework-chat-control/image/image.vue +2 -137
  7. package/components/wework-chat-control/index.js +6 -6
  8. package/components/wework-chat-control/text/text.vue +3 -22
  9. package/components/wework-chat-control/util.js +6 -12
  10. package/components/wework-chat-control/video/video.vue +2 -10
  11. package/components/wework-chat-control/voice/voice.vue +1 -1
  12. package/components/wework-chat-panel/chat-panel-controls/company-card/company-card.vue +35 -0
  13. package/components/wework-chat-panel/chat-panel-controls/expression/expression.vue +36 -0
  14. package/components/wework-chat-panel/chat-panel-controls/file-url/file-url.vue +35 -0
  15. package/components/wework-chat-panel/chat-panel-controls/image/image.vue +36 -0
  16. package/components/wework-chat-panel/chat-panel-controls/index.js +35 -0
  17. package/components/wework-chat-panel/chat-panel-controls/jx-sys-text/jx-sys-text.vue +28 -0
  18. package/components/wework-chat-panel/chat-panel-controls/link/link.vue +35 -0
  19. package/components/wework-chat-panel/chat-panel-controls/location/location.vue +35 -0
  20. package/components/wework-chat-panel/chat-panel-controls/text/text.vue +43 -0
  21. package/components/wework-chat-panel/chat-panel-controls/unkonw/unkonw.vue +39 -0
  22. package/components/wework-chat-panel/chat-panel-controls/video/video.vue +37 -0
  23. package/components/wework-chat-panel/chat-panel-controls/voice/voice.vue +35 -0
  24. package/components/wework-chat-panel/chat-panel-item.vue +35 -12
  25. package/components/wework-chat-panel/chat-panel.vue +12 -95
  26. package/package.json +3 -10
  27. package/services/client-chat/client-chat-wework/client-chat-concats.js +17 -81
  28. package/services/client-chat/client-chat-wework/client-chat-message.js +6 -46
  29. package/services/client-chat/client-chat-wework/client-chat-session.js +2 -50
  30. package/services/client-chat/client-chat-wework/client-chat-socket.js +1 -9
  31. package/services/client-chat/client-chat-wework/client-chat.js +11 -281
  32. package/services/client-chat/client-chat-wework/utils.js +5 -5
  33. package/uni-common/account-portray/account-portray.vue +51 -0
  34. package/uni-common/account-select/account-select-item.vue +172 -0
  35. package/uni-common/account-select/account-select.vue +252 -0
  36. package/uni-common/all-friend-avatar/all-friend-avatar.vue +49 -0
  37. package/uni-common/friend-avatar/default.svg +1 -0
  38. package/uni-common/friend-avatar/friend-avatar.vue +27 -0
  39. package/uni-common/friend-avatar/index.js +3 -0
  40. package/uni-common/friend-loader/friend-loader.vue +53 -0
  41. package/uni-common/friend-portray/friend-portray.vue +56 -0
  42. package/uni-common/group-avatar/default.svg +1 -0
  43. package/uni-common/group-avatar/group-avatar.vue +18 -0
  44. package/uni-common/group-avatar/index.js +3 -0
  45. package/uni-common/room-avatar/default.svg +6 -0
  46. package/uni-common/room-avatar/index.js +3 -0
  47. package/uni-common/room-avatar/room-avatar.vue +27 -0
  48. package/uni-common/room-loader/room-loader.vue +53 -0
  49. package/uni-common/room-portray/room-portray.vue +56 -0
  50. package/uni-components/chat-control/calling/calling.vue +91 -0
  51. package/uni-components/chat-control/calling/phone-fill.svg +1 -0
  52. package/uni-components/chat-control/calling/vidicon-fill.svg +1 -0
  53. package/uni-components/chat-control/channel-video/channel-video.vue +89 -0
  54. package/uni-components/chat-control/channel-video-card/channel-video-card.vue +105 -0
  55. package/uni-components/chat-control/channel-video-live/channel-video-live.vue +92 -0
  56. package/uni-components/chat-control/chat-control-config-item/chat-control-config-item.vue +20 -0
  57. package/uni-components/chat-control/chat-control-config-item/index.js +3 -0
  58. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-app.vue +25 -0
  59. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-h5.vue +21 -0
  60. package/{components/wework-chat-control/wework-chat-control-config.vue → uni-components/chat-control/chat-control-config.vue} +13 -16
  61. package/uni-components/chat-control/chat-control.vue +218 -0
  62. package/uni-components/chat-control/company-card/company-card.vue +123 -0
  63. package/uni-components/chat-control/const.js +28 -0
  64. package/uni-components/chat-control/expression/expression.vue +41 -0
  65. package/uni-components/chat-control/image/image.vue +68 -0
  66. package/uni-components/chat-control/index.js +89 -0
  67. package/uni-components/chat-control/location/location.vue +110 -0
  68. package/uni-components/chat-control/member-change/member-change.vue +32 -0
  69. package/uni-components/chat-control/quote-message/quote-message.vue +216 -0
  70. package/uni-components/chat-control/real-time-position/real-time-position.vue +62 -0
  71. package/uni-components/chat-control/redpacket/red-envelope.svg +1 -0
  72. package/uni-components/chat-control/redpacket/redpacket.vue +75 -0
  73. package/uni-components/chat-control/share-card/share-card.vue +101 -0
  74. package/uni-components/chat-control/system/system.vue +69 -0
  75. package/uni-components/chat-control/system-batch-message/system-batch-message.vue +30 -0
  76. package/uni-components/chat-control/system-text/system-text.vue +32 -0
  77. package/uni-components/chat-control/text/text.vue +67 -0
  78. package/uni-components/chat-control/text-with-at/text-with-at.vue +51 -0
  79. package/uni-components/chat-control/transfer/red-transfer.svg +1 -0
  80. package/uni-components/chat-control/transfer/transfer.vue +80 -0
  81. package/uni-components/chat-control/unkonw/unkonw.vue +37 -0
  82. package/uni-components/chat-control/url/icons/file-excel-line.svg +1 -0
  83. package/uni-components/chat-control/url/icons/file-info-line.svg +1 -0
  84. package/uni-components/chat-control/url/icons/file-music-line.svg +1 -0
  85. package/uni-components/chat-control/url/icons/file-pdf-line.svg +1 -0
  86. package/uni-components/chat-control/url/icons/file-ppt-line.svg +1 -0
  87. package/uni-components/chat-control/url/icons/file-settings-line.svg +1 -0
  88. package/uni-components/chat-control/url/icons/file-text-line.svg +1 -0
  89. package/uni-components/chat-control/url/icons/file-unknow-line.svg +1 -0
  90. package/uni-components/chat-control/url/icons/file-word-line.svg +1 -0
  91. package/uni-components/chat-control/url/icons/file-zip-line.svg +1 -0
  92. package/uni-components/chat-control/url/icons/index.js +24 -0
  93. package/uni-components/chat-control/url/miniprogram.svg +1 -0
  94. package/uni-components/chat-control/url/url-miniprogram.vue +116 -0
  95. package/uni-components/chat-control/url/url.vue +306 -0
  96. package/uni-components/chat-control/url-new/icons/file-excel-line.svg +1 -0
  97. package/uni-components/chat-control/url-new/icons/file-info-line.svg +1 -0
  98. package/uni-components/chat-control/url-new/icons/file-music-line.svg +1 -0
  99. package/uni-components/chat-control/url-new/icons/file-pdf-line.svg +1 -0
  100. package/uni-components/chat-control/url-new/icons/file-ppt-line.svg +1 -0
  101. package/uni-components/chat-control/url-new/icons/file-settings-line.svg +1 -0
  102. package/uni-components/chat-control/url-new/icons/file-text-line.svg +1 -0
  103. package/uni-components/chat-control/url-new/icons/file-unknow-line.svg +1 -0
  104. package/uni-components/chat-control/url-new/icons/file-word-line.svg +1 -0
  105. package/uni-components/chat-control/url-new/icons/file-zip-line.svg +1 -0
  106. package/uni-components/chat-control/url-new/icons/index.js +24 -0
  107. package/uni-components/chat-control/url-new/url-new.vue +110 -0
  108. package/uni-components/chat-control/utils.js +12 -0
  109. package/uni-components/chat-control/video/video.vue +156 -0
  110. package/uni-components/chat-control/voice/voice.vue +166 -0
  111. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-collect.vue +84 -0
  112. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-system.vue +28 -0
  113. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet.vue +85 -0
  114. package/uni-components/chat-editor/chat-editor-func/chat-editor-func.vue +157 -0
  115. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at-panel.vue +158 -0
  116. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at.vue +61 -0
  117. package/uni-components/chat-editor/chat-editor-func-button/chat-editor-func-button.vue +58 -0
  118. package/uni-components/chat-editor/chat-editor-func-file/chat-editor-func-file.vue +54 -0
  119. package/uni-components/chat-editor/chat-editor-func-image/chat-editor-func-image.vue +42 -0
  120. package/uni-components/chat-editor/chat-editor-func-video/chat-editor-func-video.vue +42 -0
  121. package/uni-components/chat-editor/chat-editor-func-voice/chat-editor-func-voice.vue +25 -0
  122. package/uni-components/chat-editor/chat-editor-message-send/chat-editor-message-send.vue +158 -0
  123. package/uni-components/chat-editor/chat-editor-quote/chat-editor-quote.vue +75 -0
  124. package/uni-components/chat-editor/chat-editor.vue +257 -0
  125. package/uni-components/chat-editor/index.js +10 -0
  126. package/uni-components/chat-editor/util.js +65 -0
  127. package/uni-components/chat-panel/chat-panel-chats-box.vue +238 -0
  128. package/uni-components/chat-panel/chat-panel-chats-forward/chat-panel-chats-forward.vue +273 -0
  129. package/uni-components/chat-panel/chat-panel-chats-item.vue +578 -0
  130. package/uni-components/chat-panel/chat-panel-chats-status/chat-panel-chats-status.vue +71 -0
  131. package/uni-components/chat-panel/chat-panel-chats.vue +368 -0
  132. package/uni-components/chat-panel/chat-panel.vue +227 -0
  133. package/uni-components/contacts-group-select/contacts-group-select-item.vue +85 -0
  134. package/uni-components/contacts-group-select/contacts-group-select-panel.vue +119 -0
  135. package/uni-components/contacts-group-select/contacts-group-select.vue +150 -0
  136. package/components/wework-chat-control/wework-chat-control-config-item.vue +0 -24
  137. package/components/wework-chat-control/wework-chat-control-config-msg.vue +0 -25
  138. package/components/wework-chat-panel/chat-panel-chat-status/chat-panel-chat-status.vue +0 -73
@@ -0,0 +1,218 @@
1
+ <template>
2
+ <view class="sdk-chat-control">
3
+ <template v-if="MESSAGE_TYPE.TEXT === msgType">
4
+ <chat-control-text
5
+ :type="type"
6
+ :data="msgContent"
7
+ ></chat-control-text>
8
+ </template>
9
+ <template v-else-if="MESSAGE_TYPE.IMAGE === msgType">
10
+ <chat-control-image
11
+ :type="type"
12
+ :data="msgContent"
13
+ ></chat-control-image>
14
+ </template>
15
+ <template v-else-if="MESSAGE_TYPE.URLNew === msgType">
16
+ <chat-control-url-new
17
+ :type="type"
18
+ :data="msgContent"
19
+ ></chat-control-url-new>
20
+ </template>
21
+ <template v-else-if="MESSAGE_TYPE.READ_ENVELOPES === msgType">
22
+ <chat-control-redpacket
23
+ :type="type"
24
+ :data="msgContent"
25
+ ></chat-control-redpacket>
26
+ </template>
27
+ <template v-else-if="MESSAGE_TYPE.ACCOUNT_TRANSFER === msgType">
28
+ <chat-control-transfer
29
+ :type="type"
30
+ :data="msgContent"
31
+ ></chat-control-transfer>
32
+ </template>
33
+ <template v-else-if="MESSAGE_TYPE.URL === msgType">
34
+ <chat-control-url
35
+ :type="type"
36
+ :data="msgContent"
37
+ ></chat-control-url>
38
+ </template>
39
+ <template v-else-if="MESSAGE_TYPE.CUSTOM_EXPRESSION === msgType">
40
+ <chat-control-expression
41
+ :type="type"
42
+ :data="msgContent"
43
+ ></chat-control-expression>
44
+ </template>
45
+ <template v-else-if="MESSAGE_TYPE.CHANNEL_VIDEO_LIVE === msgType">
46
+ <chat-control-channel-video-live
47
+ :type="type"
48
+ :data="msgContent"
49
+ ></chat-control-channel-video-live>
50
+ </template>
51
+ <template v-else-if="MESSAGE_TYPE.CHANNEL_VIDEO_CARD === msgType">
52
+ <chat-control-channel-video-card
53
+ :type="type"
54
+ :data="msgContent"
55
+ ></chat-control-channel-video-card>
56
+ </template>
57
+ <template v-else-if="MESSAGE_TYPE.CHANNEL_VIDEO === msgType">
58
+ <chat-control-channel-video
59
+ :type="type"
60
+ :data="msgContent"
61
+ ></chat-control-channel-video>
62
+ </template>
63
+ <template v-else-if="MESSAGE_TYPE.VIDEO === msgType">
64
+ <chat-control-video
65
+ :type="type"
66
+ :data="msgContent"
67
+ ></chat-control-video>
68
+ </template>
69
+ <template v-else-if="MESSAGE_TYPE.SHARE_CARD === msgType">
70
+ <chat-control-share-card
71
+ :type="type"
72
+ :data="msgContent"
73
+ ></chat-control-share-card>
74
+ </template>
75
+ <template v-else-if="MESSAGE_TYPE.COMPANY_CARD === msgType">
76
+ <chat-control-company-card
77
+ :type="type"
78
+ :data="msgContent"
79
+ ></chat-control-company-card>
80
+ </template>
81
+ <template v-else-if="MESSAGE_TYPE.LOCATION === msgType">
82
+ <chat-control-location
83
+ :type="type"
84
+ :data="msgContent"
85
+ ></chat-control-location>
86
+ </template>
87
+ <template v-else-if="MESSAGE_TYPE.CALLING === msgType">
88
+ <chat-control-calling
89
+ :type="type"
90
+ :data="msgContent"
91
+ ></chat-control-calling>
92
+ </template>
93
+ <template v-else-if="MESSAGE_TYPE.VOICE === msgType">
94
+ <chat-control-voice
95
+ :type="type"
96
+ :data="msgContent"
97
+ ></chat-control-voice>
98
+ </template>
99
+ <template v-else-if="MESSAGE_TYPE.REAL_TIME_POSITION === msgType">
100
+ <chat-control-real-time-position
101
+ :type="type"
102
+ :data="msgContent"
103
+ ></chat-control-real-time-position>
104
+ </template>
105
+ <template v-else-if="MESSAGE_TYPE.TEXT_WITH_AT === msgType">
106
+ <chat-control-text-with-at
107
+ :type="type"
108
+ :data="msgContent"
109
+ ></chat-control-text-with-at>
110
+ </template>
111
+ <template v-else-if="MESSAGE_TYPE.QUOTE_MESSAGE === msgType">
112
+ <chat-control-quote-message
113
+ :type="type"
114
+ :data="msgContent"
115
+ >
116
+ </chat-control-quote-message>
117
+ </template>
118
+ <template v-else-if="MESSAGE_TYPE.MEMBER_CHANGE === msgType">
119
+ <chat-control-member-change
120
+ :type="type"
121
+ :data="msgContent"
122
+ ></chat-control-member-change>
123
+ </template>
124
+ <template v-else-if="MESSAGE_TYPE.SYSTEM === msgType">
125
+ <chat-control-system
126
+ :type="type"
127
+ :data="msgContent"
128
+ ></chat-control-system>
129
+ </template>
130
+ <template v-else-if="MESSAGE_TYPE.JX_SYS_TEXT === msgType">
131
+ <chat-control-system-text
132
+ :type="type"
133
+ :data="msgContent"
134
+ ></chat-control-system-text>
135
+ </template>
136
+ </view>
137
+ </template>
138
+
139
+ <script>
140
+ import {
141
+ MESSAGE_TYPE
142
+ } from './const.js'
143
+
144
+ import ChatControlText from './text/text.vue'
145
+ import ChatControlSystemText from './system-text/system-text.vue'
146
+ import ChatControlUnkonw from './unkonw/unkonw.vue'
147
+ import ChatControlImage from './image/image.vue'
148
+ import ChatControlUrlNew from './url-new/url-new.vue'
149
+ import ChatControlRedpacket from './redpacket/redpacket.vue'
150
+ import ChatControlTransfer from './transfer/transfer.vue'
151
+ import ChatControlUrl from './url/url.vue'
152
+ import ChatControlExpression from './expression/expression.vue'
153
+ import ChatControlMemberChange from './member-change/member-change.vue'
154
+ import ChatControlVideo from './video/video.vue'
155
+ import ChatControlChannelVideoLive from './channel-video-live/channel-video-live.vue'
156
+ import ChatControlChannelVideoCard from './channel-video-card/channel-video-card.vue'
157
+ import ChatControlChannelVideo from './channel-video/channel-video.vue'
158
+ import ChatControlShareCard from './share-card/share-card.vue'
159
+ import ChatControlSystem from './system/system.vue'
160
+ import ChatControlCompanyCard from './company-card/company-card.vue'
161
+ import ChatControlLocation from './location/location.vue'
162
+ import ChatControlCalling from './calling/calling.vue'
163
+ import ChatControlVoice from './voice/voice.vue'
164
+ import ChatControlRealTimePosition from './real-time-position/real-time-position.vue'
165
+ import ChatControlTextWithAt from './text-with-at/text-with-at.vue'
166
+ import ChatControlQuoteMessage from './quote-message/quote-message.vue'
167
+
168
+ export default {
169
+ name: 'SdkChatControl',
170
+ components: {
171
+ ChatControlSystemText,
172
+ ChatControlUnkonw,
173
+ ChatControlText,
174
+ ChatControlImage,
175
+ ChatControlUrl,
176
+ ChatControlUrlNew,
177
+ ChatControlRedpacket,
178
+ ChatControlTransfer,
179
+ ChatControlExpression,
180
+ ChatControlMemberChange,
181
+ ChatControlVideo,
182
+ ChatControlChannelVideo,
183
+ ChatControlChannelVideoLive,
184
+ ChatControlChannelVideoCard,
185
+ ChatControlShareCard,
186
+ ChatControlSystem,
187
+ ChatControlLocation,
188
+ ChatControlCalling,
189
+ ChatControlVoice,
190
+ ChatControlTextWithAt,
191
+ ChatControlCompanyCard,
192
+ ChatControlRealTimePosition,
193
+ ChatControlQuoteMessage
194
+ },
195
+ props: {
196
+ type: {
197
+ type: String
198
+ },
199
+ msgType: {
200
+ type: [Number, String]
201
+ },
202
+ content: {
203
+ type: [Object, String],
204
+ required: true
205
+ }
206
+ },
207
+ data () {
208
+ return {
209
+ MESSAGE_TYPE
210
+ }
211
+ },
212
+ computed: {
213
+ msgContent () {
214
+ return this.content
215
+ }
216
+ }
217
+ }
218
+ </script>
@@ -0,0 +1,123 @@
1
+ <template>
2
+ <view class="bi-chat-control-company-card" :class="['bi-chat-control-company-card--' + type]">
3
+ <div class="bi-chat-control-company-card__main">
4
+ <div class="bi-chat-control-company-card__avatar">
5
+ <bi-avatar :src="avatar"></bi-avatar>
6
+ </div>
7
+ <div class="bi-chat-control-company-card__fields">
8
+ <div class="bi-chat-control-company-card__title">{{name}}</div>
9
+ <div class="bi-chat-control-company-card__other">
10
+ <view
11
+ v-if="icon"
12
+ class="bi-chat-control-company-card__icon"
13
+ :style="{'background-image': `url(${icon})`}"
14
+ ></view>
15
+ <view class="bi-chat-control-company-card__name">
16
+ {{description}}
17
+ </view>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ <div class="bi-chat-control-company-card__foot">
22
+ <span class="bi-chat-control-company-card__category">企业微信名片</span>
23
+ </div>
24
+ </view>
25
+ </template>
26
+ <script>
27
+ import BiAvatar from '@aochuang/common/uni-components/avatar/avatar.vue'
28
+ import { toJson } from '../../../utils/data'
29
+
30
+ export default {
31
+ name: 'AcChatControlCompanyCard',
32
+ components: {
33
+ BiAvatar
34
+ },
35
+ props: {
36
+ type: {
37
+ type: String,
38
+ default: 'default',
39
+ validator (value) {
40
+ return ['default', 'thumb'].includes(value)
41
+ }
42
+ },
43
+ data: {
44
+ type: String
45
+ }
46
+ },
47
+ computed: {
48
+ content () {
49
+ return toJson(this.data)
50
+ },
51
+ description () {
52
+ return this.content.openimdesc
53
+ },
54
+ icon () {
55
+ return this.content.openimdescicon
56
+ },
57
+ name () {
58
+ return this.content.nickname
59
+ },
60
+ avatar () {
61
+ return this.content.bigheadimgurl || this.content.smallheadimgurl
62
+ }
63
+ }
64
+ }
65
+ </script>
66
+ <style type="less">
67
+ .bi-chat-control-company-card--thumb {
68
+ &.bi-chat-control-company-card{
69
+ width: 100%;
70
+ border: 1px solid #eee;
71
+ border-radius: 3px;
72
+ box-sizing: border-box;
73
+ }
74
+ }
75
+ .bi-chat-control-company-card__main{
76
+ display: flex;
77
+ flex-direction: row;
78
+ padding: 10px;
79
+ width: 216px;
80
+ max-width: 100%;
81
+ }
82
+ .bi-chat-control-company-card__fields{
83
+ flex: 1;
84
+ min-width: 0;
85
+ padding-left: 10px;
86
+ }
87
+ .bi-chat-control-company-card__title{
88
+ font-size: 14px;
89
+ overflow: hidden;
90
+ text-overflow: ellipsis;
91
+ white-space: nowrap;
92
+ margin-bottom: 4px;
93
+ }
94
+ .bi-chat-control-company-card__foot{
95
+ border-top: 1px solid #eee;
96
+ height: 24px;
97
+ line-height: 24px;
98
+ padding: 0 10px;
99
+ box-sizing: content-box;
100
+ }
101
+ .bi-chat-control-company-card__category{
102
+ color: #999;
103
+ font-size: 12px;
104
+ }
105
+ .bi-chat-control-company-card__other{
106
+ color: #888;
107
+ font-size: 12px;
108
+ overflow: hidden;
109
+ text-overflow: ellipsis;
110
+ white-space: nowrap;
111
+ display: flex;
112
+ flex-direction: row;
113
+ align-items: center;
114
+ }
115
+ .bi-chat-control-company-card__icon{
116
+ width: 14px;
117
+ height: 14px;
118
+ background-position: 50% 50%;
119
+ background-repeat: no-repeat;
120
+ background-size: cover;
121
+ margin-right: 4px;
122
+ }
123
+ </style>
@@ -0,0 +1,28 @@
1
+ export const MESSAGE_TYPE = {
2
+ TEXT: 1,
3
+ IMAGE: 3,
4
+ VOICE: 34,
5
+ SYS_VOICE: 64,
6
+ SHARE_CARD: 42,
7
+ COMPANY_CARD: 66,
8
+ VIDEO: 43,
9
+ CUSTOM_EXPRESSION: 47,
10
+ LOCATION: 48,
11
+ URL: 49,
12
+ URLNew: 1090519089,
13
+ CALLING: 50,
14
+ REAL_TIME_POSITION: -1879048186,
15
+ READ_ENVELOPES: 436207665,
16
+ ACCOUNT_TRANSFER: 419430449,
17
+ SYSTEM: 10000,
18
+ SYSTEM_BATCH_MESSAGE: 10002,
19
+ JX_SYS_TEXT: 90000,
20
+ MEMBER_CHANGE: 570425393,
21
+ SYSTEM_MONEY: -10001,
22
+ TIME_DIVIDER: -12346789,
23
+ TEXT_WITH_AT: 90001,
24
+ QUOTE_MESSAGE: 822083633,
25
+ CHANNEL_VIDEO: 754974769,
26
+ CHANNEL_VIDEO_CARD: 771751985, // 视频号名片
27
+ CHANNEL_VIDEO_LIVE: 973078577 // 视频号直播
28
+ }
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <view class="bi-chat-control-expression">
3
+ <image class="bi-chat-control-expression__control" mode="widthFix" :src="innerSrc" @click="handleImageClick"></image>
4
+ </view>
5
+ </template>
6
+
7
+ <script>
8
+ import { formatOssPath } from '@aochuang/common/utils/oss'
9
+
10
+ export default {
11
+ name: 'BiChatControlExpression',
12
+ props: {
13
+ data: {
14
+ type: String
15
+ }
16
+ },
17
+ computed: {
18
+ innerSrc () {
19
+ return formatOssPath(this.data)
20
+ }
21
+ },
22
+ methods: {
23
+ handleImageClick () {
24
+ if (!this.data) {
25
+ return
26
+ }
27
+ uni.previewImage({
28
+ urls: [this.data]
29
+ })
30
+ }
31
+ }
32
+ }
33
+ </script>
34
+
35
+ <style lang="less">
36
+ .bi-chat-control-expression__control{
37
+ max-width: 140px;
38
+ width: 140px;
39
+ height: auto;
40
+ }
41
+ </style>
@@ -0,0 +1,68 @@
1
+ <template>
2
+ <view class="bi-chat-control-image" :class="['bi-chat-control-image--' + type]">
3
+ <image class="bi-chat-control-image__control" mode="widthFix" :src="innerSrc" @click="handleImageClick"></image>
4
+ </view>
5
+ </template>
6
+
7
+ <script>
8
+ import { formatOssPath } from '@aochuang/common/utils/oss'
9
+
10
+ export default {
11
+ name: 'BiChatControlImage',
12
+ props: {
13
+ data: {
14
+ type: String
15
+ },
16
+ type: {
17
+ type: String,
18
+ default: 'default',
19
+ validator (value) {
20
+ return ['default', 'quote', 'thumb'].includes(value)
21
+ }
22
+ }
23
+ },
24
+ computed: {
25
+ innerSrc () {
26
+ return formatOssPath(this.data)
27
+ }
28
+ },
29
+ methods: {
30
+ handleImageClick () {
31
+ if (!this.data) {
32
+ return
33
+ }
34
+ uni.previewImage({
35
+ urls: [this.data]
36
+ })
37
+ }
38
+ }
39
+ }
40
+ </script>
41
+
42
+ <style lang="less">
43
+ .bi-chat-control-image--default {
44
+ .bi-chat-control-image__control{
45
+ max-width: 180px;
46
+ width: 180px;
47
+ }
48
+ }
49
+ .bi-chat-control-image--thumb {
50
+ .bi-chat-control-image__control{
51
+ max-width: 100%;
52
+ max-height: 120px;
53
+ object-fit: cover;
54
+ background-color: #f8f8f8;
55
+ /deep/ div {
56
+ background-position: 50% 50%;
57
+ background-size: contain!important;
58
+ }
59
+ /deep/ img {
60
+ object-fit: cover;
61
+ }
62
+ }
63
+ }
64
+ .bi-chat-control-image__control{
65
+ height: auto;
66
+ vertical-align: top;
67
+ }
68
+ </style>
@@ -0,0 +1,89 @@
1
+ import { toJson } from '../../utils/data'
2
+ import { formatSystemMessage } from './utils'
3
+ import * as CONST from './const'
4
+
5
+ export const MESSAGE_TYPE = CONST.MESSAGE_TYPE
6
+
7
+ /**
8
+ * 格式化为短消息
9
+ */
10
+ export function formatShortMessage (msgType, msgContent) {
11
+ let shortMessage = msgContent
12
+ switch (msgType) {
13
+ case MESSAGE_TYPE.TEXT:
14
+ shortMessage = msgContent
15
+ break
16
+ case MESSAGE_TYPE.TEXT_WITH_AT:
17
+ let {atId, content, text} = toJson(msgContent) || {}
18
+ shortMessage = text
19
+ break
20
+ case MESSAGE_TYPE.IMAGE:
21
+ shortMessage = '[图片消息]'
22
+ break
23
+ case MESSAGE_TYPE.VIDEO:
24
+ shortMessage = '[视频消息]'
25
+ break
26
+ case MESSAGE_TYPE.CUSTOM_EXPRESSION:
27
+ shortMessage = '[自定义表情消息]'
28
+ break
29
+ case MESSAGE_TYPE.VOICE:
30
+ shortMessage = '[语音消息]'
31
+ break
32
+ case MESSAGE_TYPE.JX_SYS_TEXT:
33
+ case MESSAGE_TYPE.MEMBER_CHANGE:
34
+ case MESSAGE_TYPE.SYSTEM_MONEY:
35
+ shortMessage = '[系统消息]'
36
+ break
37
+ case MESSAGE_TYPE.SYSTEM:
38
+ shortMessage = formatSystemMessage(msgContent)
39
+ break
40
+ case MESSAGE_TYPE.URL:
41
+ case MESSAGE_TYPE.URLNew:
42
+ const jsonObj = toJson(msgContent)
43
+ if (typeof jsonObj === 'object') {
44
+ if(jsonObj.type === 'file') {
45
+ shortMessage = '[文件消息]'
46
+ } else if(jsonObj.type === 'link') {
47
+ shortMessage = '[链接消息]'
48
+ } else if(jsonObj.type === 'miniprogram') {
49
+ shortMessage = '[小程序消息]'
50
+ } else if (jsonObj.type === 'music') {
51
+ shortMessage = '[音乐消息]'
52
+ }
53
+ } else {
54
+ shortMessage = '[链接消息]'
55
+ }
56
+ break
57
+ case MESSAGE_TYPE.READ_ENVELOPES:
58
+ shortMessage = '[红包消息]'
59
+ break
60
+ case MESSAGE_TYPE.ACCOUNT_TRANSFER:
61
+ shortMessage = '[转账消息]'
62
+ break
63
+ case MESSAGE_TYPE.COMPANY_CARD:
64
+ case MESSAGE_TYPE.SHARE_CARD:
65
+ shortMessage = '[名片消息]'
66
+ break
67
+ case MESSAGE_TYPE.LOCATION:
68
+ shortMessage = '[位置消息]'
69
+ break
70
+ case MESSAGE_TYPE.QUOTE_MESSAGE:
71
+ shortMessage = '[引用消息]'
72
+ break
73
+ case MESSAGE_TYPE.CHANNEL_VIDEO:
74
+ shortMessage = '[视频号消息]'
75
+ break
76
+ case MESSAGE_TYPE.CHANNEL_VIDEO_CARD:
77
+ shortMessage = '[视频号名片]'
78
+ break
79
+ case MESSAGE_TYPE.CHANNEL_VIDEO_LIVE:
80
+ shortMessage = '[视频号直播]'
81
+ break
82
+ default:
83
+ if (msgContent) {
84
+ shortMessage = '[未知消息]'
85
+ }
86
+ break
87
+ }
88
+ return shortMessage
89
+ }
@@ -0,0 +1,110 @@
1
+ <template>
2
+ <view class="bi-chat-control-location" :class="['bi-chat-control-location--' + type]">
3
+ <template v-if="content">
4
+ <template v-if="type === 'default'">
5
+ <view class="bi-chat-control-location__main">
6
+ <view class="bi-chat-control-location__head">
7
+ <view class="bi-chat-control-location__title">{{address}}</view>
8
+ </view>
9
+ <view class="bi-chat-control-location__body">
10
+ <view v-if="offline" class="bi-chat-control-location__offline">
11
+ <view class="bi-chat-control-location__offline-label">腾讯地图经纬度坐标:</view>
12
+ <view class="bi-chat-control-location__offline-value">{{longitude}}、{{latitude}}</view>
13
+ <view class="bi-chat-control-location__offline-tips">提示:离线模式无法显示地图</view>
14
+ </view>
15
+ <bi-static-map v-else width="220" height="160" :lng="longitude" :lat="latitude"></bi-static-map>
16
+ </view>
17
+ </view>
18
+ </template>
19
+ <template v-else-if="type === 'quote'">
20
+ <view class="bi-chat-control-location__main">
21
+ <view class="bi-chat-control-location__title">{{address}}</view>
22
+ <view class="bi-chat-control-location__map">
23
+ <bi-static-map width="54" height="54" :lng="longitude" :lat="latitude"></bi-static-map>
24
+ </view>
25
+ </view>
26
+ </template>
27
+ </template>
28
+ <template v-else>
29
+ <view class="bi-chat-control-location__exception">
30
+ 无法解析地理位置数据
31
+ </view>
32
+ </template>
33
+ </view>
34
+ </template>
35
+
36
+ <script>
37
+ import BiStaticMap from '@/common/static-map/static-map.vue'
38
+ import { parseXml } from '@/utils/data'
39
+
40
+
41
+ export default {
42
+ name: 'BiChatControlLocation',
43
+ components: {
44
+ BiStaticMap
45
+ },
46
+ props: {
47
+ type: {
48
+ type: String,
49
+ default: 'default',
50
+ validator (value) {
51
+ return ['default', 'quote'].includes(value)
52
+ }
53
+ },
54
+ data: {
55
+ type: String
56
+ }
57
+ },
58
+ computed: {
59
+ offline () {
60
+ return false
61
+ },
62
+ content () {
63
+ // 政企版有这种数据,需要去除一下
64
+ // jojo4943:<br><msg><br> <location x="28.231337" y="113.041611" scale="15" label="湖南省长沙市开福区国润月湖郡7栋" maptype="roadmap" poiname="马栏山博创园" poiid="qqmap_1533871097335282393" buildingId="" floorName="" poiCategoryTips="房产小区:产业园区" poiBusinessHour="" poiPhone="" poiPriceTips="" isFromPoiList="true" adcode="430105" cityname="长沙市" fromusername="jojo4943" /><br></msg><br>
65
+ const content = parseXml((this.data || '').replace(/^.*?(?=<)/, '').replace(/<br>/ig, '')) || {}
66
+ if (!content || !content.msg || !content.msg.location) {
67
+ return
68
+ }
69
+ return content
70
+ },
71
+ address () {
72
+ return (this.content.msg.location.cityname || '') + (this.content.msg.location.label || '') + (this.content.msg.location.poiname || '')
73
+ },
74
+ latitude () {
75
+ return Number(this.content.msg.location.x)
76
+ },
77
+ longitude () {
78
+ return Number(this.content.msg.location.y)
79
+ }
80
+ }
81
+ }
82
+ </script>
83
+
84
+ <style lang="less">
85
+ .bi-chat-control-location--default {
86
+ .bi-chat-control-location__main{
87
+ width: 220px;
88
+ }
89
+ .bi-chat-control-location__title{
90
+ padding: 12px;
91
+ }
92
+ .bi-chat-control-location__exception{
93
+ color: #999;
94
+ }
95
+ }
96
+ .bi-chat-control-location--quote {
97
+ .bi-chat-control-location__title{
98
+ display: -webkit-box;
99
+ -webkit-box-orient: vertical;
100
+ -webkit-line-clamp: 2; /* 限制为3行 */
101
+ overflow: hidden;
102
+ margin-right: 8px;
103
+ }
104
+ .bi-chat-control-location__main{
105
+ display: flex;
106
+ flex-direction: row;
107
+ align-items: center;
108
+ }
109
+ }
110
+ </style>