@aochuang/client-sdk 1.0.371 → 1.0.373

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 (165) hide show
  1. package/common/.DS_Store +0 -0
  2. package/components/.DS_Store +0 -0
  3. package/components/chat-editor/chat-editor-suggestions/chat-editor-suggestions.vue +28 -2
  4. package/components/chat-editor/chat-editor.vue +62 -1
  5. package/components/index.js +6 -1
  6. package/components/session-select/session-select-item.vue +8 -9
  7. package/components/wechat-chat-control/.DS_Store +0 -0
  8. package/components/wechat-chat-control/transfer/.DS_Store +0 -0
  9. package/components/wechat-chat-control/url/.DS_Store +0 -0
  10. package/components/wechat-chat-control/voice/.DS_Store +0 -0
  11. package/components/wework-chat-control/channel-card/channel-card.vue +144 -0
  12. package/components/wework-chat-control/channel-live/channel-live.vue +7 -2
  13. package/components/wework-chat-control/company-card/company-card.vue +1 -1
  14. package/components/wework-chat-control/custom-expression/custom-expression.vue +2 -1
  15. package/components/wework-chat-control/file-url/file-url.vue +34 -16
  16. package/components/wework-chat-control/image/image.vue +137 -2
  17. package/components/wework-chat-control/index.js +15 -7
  18. package/components/wework-chat-control/link/.DS_Store +0 -0
  19. package/components/wework-chat-control/location/location.vue +3 -3
  20. package/components/wework-chat-control/merge-message/merge-message-panel.vue +63 -0
  21. package/components/wework-chat-control/merge-message/merge-message.vue +84 -0
  22. package/components/wework-chat-control/merge-message/util.js +59 -0
  23. package/components/wework-chat-control/metting/enterprise-wechat.png +0 -0
  24. package/components/wework-chat-control/metting/meeting-video.svg +4 -0
  25. package/components/wework-chat-control/metting/metting.vue +181 -0
  26. package/components/wework-chat-control/red-envelopes/red-envelopes.vue +3 -2
  27. package/components/wework-chat-control/text/text-default.vue +99 -0
  28. package/components/wework-chat-control/text/text-quote.vue +105 -0
  29. package/components/wework-chat-control/text/text.vue +24 -144
  30. package/components/wework-chat-control/url/url-channel-live.vue +53 -0
  31. package/components/wework-chat-control/url/url-miniprogram.vue +6 -7
  32. package/components/wework-chat-control/url/url.vue +26 -2
  33. package/components/wework-chat-control/util.js +26 -17
  34. package/components/wework-chat-control/video/.DS_Store +0 -0
  35. package/components/wework-chat-control/video/video.vue +10 -2
  36. package/components/wework-chat-control/voice/voice.vue +9 -2
  37. package/components/wework-chat-control/wework-chat-control-config-item.vue +24 -0
  38. package/components/wework-chat-control/wework-chat-control-config-msg.vue +25 -0
  39. package/{uni-components/chat-control/chat-control-config.vue → components/wework-chat-control/wework-chat-control-config.vue} +16 -13
  40. package/components/wework-chat-panel/chat-panel-chat-status/chat-panel-chat-status.vue +73 -0
  41. package/components/wework-chat-panel/chat-panel-item.vue +56 -25
  42. package/components/wework-chat-panel/chat-panel.vue +96 -13
  43. package/package.json +10 -3
  44. package/services/.DS_Store +0 -0
  45. package/services/client-chat/client-chat-wework/client-chat-account.js +84 -1
  46. package/services/client-chat/client-chat-wework/client-chat-concats.js +81 -17
  47. package/services/client-chat/client-chat-wework/client-chat-message.js +45 -5
  48. package/services/client-chat/client-chat-wework/client-chat-session.js +59 -4
  49. package/services/client-chat/client-chat-wework/client-chat-socket.js +13 -1
  50. package/services/client-chat/client-chat-wework/client-chat.js +320 -11
  51. package/services/client-chat/client-chat-wework/utils.js +5 -5
  52. package/components/wework-chat-panel/chat-panel-controls/company-card/company-card.vue +0 -35
  53. package/components/wework-chat-panel/chat-panel-controls/expression/expression.vue +0 -36
  54. package/components/wework-chat-panel/chat-panel-controls/file-url/file-url.vue +0 -35
  55. package/components/wework-chat-panel/chat-panel-controls/image/image.vue +0 -36
  56. package/components/wework-chat-panel/chat-panel-controls/index.js +0 -35
  57. package/components/wework-chat-panel/chat-panel-controls/jx-sys-text/jx-sys-text.vue +0 -28
  58. package/components/wework-chat-panel/chat-panel-controls/link/link.vue +0 -35
  59. package/components/wework-chat-panel/chat-panel-controls/location/location.vue +0 -35
  60. package/components/wework-chat-panel/chat-panel-controls/text/text.vue +0 -43
  61. package/components/wework-chat-panel/chat-panel-controls/unkonw/unkonw.vue +0 -39
  62. package/components/wework-chat-panel/chat-panel-controls/video/video.vue +0 -37
  63. package/components/wework-chat-panel/chat-panel-controls/voice/voice.vue +0 -35
  64. package/uni-common/account-portray/account-portray.vue +0 -51
  65. package/uni-common/account-select/account-select-item.vue +0 -172
  66. package/uni-common/account-select/account-select.vue +0 -252
  67. package/uni-common/all-friend-avatar/all-friend-avatar.vue +0 -49
  68. package/uni-common/friend-avatar/default.svg +0 -1
  69. package/uni-common/friend-avatar/friend-avatar.vue +0 -27
  70. package/uni-common/friend-avatar/index.js +0 -3
  71. package/uni-common/friend-loader/friend-loader.vue +0 -53
  72. package/uni-common/friend-portray/friend-portray.vue +0 -56
  73. package/uni-common/group-avatar/default.svg +0 -1
  74. package/uni-common/group-avatar/group-avatar.vue +0 -18
  75. package/uni-common/group-avatar/index.js +0 -3
  76. package/uni-common/room-avatar/default.svg +0 -6
  77. package/uni-common/room-avatar/index.js +0 -3
  78. package/uni-common/room-avatar/room-avatar.vue +0 -27
  79. package/uni-common/room-loader/room-loader.vue +0 -53
  80. package/uni-common/room-portray/room-portray.vue +0 -56
  81. package/uni-components/chat-control/calling/calling.vue +0 -91
  82. package/uni-components/chat-control/calling/phone-fill.svg +0 -1
  83. package/uni-components/chat-control/calling/vidicon-fill.svg +0 -1
  84. package/uni-components/chat-control/channel-video/channel-video.vue +0 -89
  85. package/uni-components/chat-control/channel-video-card/channel-video-card.vue +0 -105
  86. package/uni-components/chat-control/channel-video-live/channel-video-live.vue +0 -92
  87. package/uni-components/chat-control/chat-control-config-item/chat-control-config-item.vue +0 -20
  88. package/uni-components/chat-control/chat-control-config-item/index.js +0 -3
  89. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-app.vue +0 -25
  90. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-h5.vue +0 -21
  91. package/uni-components/chat-control/chat-control.vue +0 -218
  92. package/uni-components/chat-control/company-card/company-card.vue +0 -123
  93. package/uni-components/chat-control/const.js +0 -28
  94. package/uni-components/chat-control/expression/expression.vue +0 -41
  95. package/uni-components/chat-control/image/image.vue +0 -68
  96. package/uni-components/chat-control/index.js +0 -89
  97. package/uni-components/chat-control/location/location.vue +0 -110
  98. package/uni-components/chat-control/member-change/member-change.vue +0 -32
  99. package/uni-components/chat-control/quote-message/quote-message.vue +0 -216
  100. package/uni-components/chat-control/real-time-position/real-time-position.vue +0 -62
  101. package/uni-components/chat-control/redpacket/red-envelope.svg +0 -1
  102. package/uni-components/chat-control/redpacket/redpacket.vue +0 -75
  103. package/uni-components/chat-control/share-card/share-card.vue +0 -101
  104. package/uni-components/chat-control/system/system.vue +0 -69
  105. package/uni-components/chat-control/system-batch-message/system-batch-message.vue +0 -30
  106. package/uni-components/chat-control/system-text/system-text.vue +0 -32
  107. package/uni-components/chat-control/text/text.vue +0 -67
  108. package/uni-components/chat-control/text-with-at/text-with-at.vue +0 -51
  109. package/uni-components/chat-control/transfer/red-transfer.svg +0 -1
  110. package/uni-components/chat-control/transfer/transfer.vue +0 -80
  111. package/uni-components/chat-control/unkonw/unkonw.vue +0 -37
  112. package/uni-components/chat-control/url/icons/file-excel-line.svg +0 -1
  113. package/uni-components/chat-control/url/icons/file-info-line.svg +0 -1
  114. package/uni-components/chat-control/url/icons/file-music-line.svg +0 -1
  115. package/uni-components/chat-control/url/icons/file-pdf-line.svg +0 -1
  116. package/uni-components/chat-control/url/icons/file-ppt-line.svg +0 -1
  117. package/uni-components/chat-control/url/icons/file-settings-line.svg +0 -1
  118. package/uni-components/chat-control/url/icons/file-text-line.svg +0 -1
  119. package/uni-components/chat-control/url/icons/file-unknow-line.svg +0 -1
  120. package/uni-components/chat-control/url/icons/file-word-line.svg +0 -1
  121. package/uni-components/chat-control/url/icons/file-zip-line.svg +0 -1
  122. package/uni-components/chat-control/url/icons/index.js +0 -24
  123. package/uni-components/chat-control/url/miniprogram.svg +0 -1
  124. package/uni-components/chat-control/url/url-miniprogram.vue +0 -116
  125. package/uni-components/chat-control/url/url.vue +0 -306
  126. package/uni-components/chat-control/url-new/icons/file-excel-line.svg +0 -1
  127. package/uni-components/chat-control/url-new/icons/file-info-line.svg +0 -1
  128. package/uni-components/chat-control/url-new/icons/file-music-line.svg +0 -1
  129. package/uni-components/chat-control/url-new/icons/file-pdf-line.svg +0 -1
  130. package/uni-components/chat-control/url-new/icons/file-ppt-line.svg +0 -1
  131. package/uni-components/chat-control/url-new/icons/file-settings-line.svg +0 -1
  132. package/uni-components/chat-control/url-new/icons/file-text-line.svg +0 -1
  133. package/uni-components/chat-control/url-new/icons/file-unknow-line.svg +0 -1
  134. package/uni-components/chat-control/url-new/icons/file-word-line.svg +0 -1
  135. package/uni-components/chat-control/url-new/icons/file-zip-line.svg +0 -1
  136. package/uni-components/chat-control/url-new/icons/index.js +0 -24
  137. package/uni-components/chat-control/url-new/url-new.vue +0 -110
  138. package/uni-components/chat-control/utils.js +0 -12
  139. package/uni-components/chat-control/video/video.vue +0 -156
  140. package/uni-components/chat-control/voice/voice.vue +0 -166
  141. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-collect.vue +0 -84
  142. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-system.vue +0 -28
  143. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet.vue +0 -85
  144. package/uni-components/chat-editor/chat-editor-func/chat-editor-func.vue +0 -157
  145. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at-panel.vue +0 -158
  146. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at.vue +0 -61
  147. package/uni-components/chat-editor/chat-editor-func-button/chat-editor-func-button.vue +0 -58
  148. package/uni-components/chat-editor/chat-editor-func-file/chat-editor-func-file.vue +0 -54
  149. package/uni-components/chat-editor/chat-editor-func-image/chat-editor-func-image.vue +0 -42
  150. package/uni-components/chat-editor/chat-editor-func-video/chat-editor-func-video.vue +0 -42
  151. package/uni-components/chat-editor/chat-editor-func-voice/chat-editor-func-voice.vue +0 -25
  152. package/uni-components/chat-editor/chat-editor-message-send/chat-editor-message-send.vue +0 -158
  153. package/uni-components/chat-editor/chat-editor-quote/chat-editor-quote.vue +0 -75
  154. package/uni-components/chat-editor/chat-editor.vue +0 -257
  155. package/uni-components/chat-editor/index.js +0 -10
  156. package/uni-components/chat-editor/util.js +0 -65
  157. package/uni-components/chat-panel/chat-panel-chats-box.vue +0 -238
  158. package/uni-components/chat-panel/chat-panel-chats-forward/chat-panel-chats-forward.vue +0 -273
  159. package/uni-components/chat-panel/chat-panel-chats-item.vue +0 -578
  160. package/uni-components/chat-panel/chat-panel-chats-status/chat-panel-chats-status.vue +0 -71
  161. package/uni-components/chat-panel/chat-panel-chats.vue +0 -368
  162. package/uni-components/chat-panel/chat-panel.vue +0 -227
  163. package/uni-components/contacts-group-select/contacts-group-select-item.vue +0 -85
  164. package/uni-components/contacts-group-select/contacts-group-select-panel.vue +0 -119
  165. package/uni-components/contacts-group-select/contacts-group-select.vue +0 -150
@@ -4,6 +4,24 @@ import UrlMerge from './url-merge'
4
4
  import UrlMiniprogram from './url-miniprogram'
5
5
  import UrlFile from './url-file'
6
6
  import UrlLink from './url-link'
7
+ import UrlChannelLive from './url-channel-live'
8
+ import ChannelCard from '../channel-card/channel-card'
9
+
10
+ const CHANNEL_CARD_TITLE_PREFIX = '[视频号名片]'
11
+
12
+ function isChannelLiveUrl (url) {
13
+ try {
14
+ return new URL(url).hostname === 'channels.weixin.qq.com'
15
+ } catch (e) {
16
+ return false
17
+ }
18
+ }
19
+
20
+ function isChannelCardContent (content) {
21
+ return isChannelLiveUrl(content && content.url) &&
22
+ typeof content.title === 'string' &&
23
+ content.title.startsWith(CHANNEL_CARD_TITLE_PREFIX)
24
+ }
7
25
 
8
26
  export default {
9
27
  name: 'SdkChatPanelControlsUrl',
@@ -55,7 +73,7 @@ export default {
55
73
  beforeLoad: props.beforeLoadMergeMethod
56
74
  }
57
75
  })
58
- } else if (content.type === 2) {
76
+ } else if (content.contentType === 78) {
59
77
  return h(UrlMiniprogram, {
60
78
  props: {
61
79
  id: props.id,
@@ -88,7 +106,13 @@ export default {
88
106
  }
89
107
  }
90
108
  }
91
- return h(UrlLink, {
109
+ let component = UrlLink
110
+ if (isChannelCardContent(content)) {
111
+ component = ChannelCard
112
+ } else if (isChannelLiveUrl(content && content.url)) {
113
+ component = UrlChannelLive
114
+ }
115
+ return h(component, {
92
116
  props: {
93
117
  id: props.id,
94
118
  content,
@@ -1,14 +1,15 @@
1
1
  export const MESSAGE_TYPE = {
2
2
  TEXT: 0,
3
3
  TEXT_W: 1,
4
+ MERGE_MESSAGE: 4,
4
5
  IMAGE: 14,
6
+ URLFile: 15,
5
7
  VOICE: 16,
6
- VIDEO: 23,
8
+ VIDEO: 22,
7
9
  CUSTOM_EXPRESSION: 29,
8
- CUSTOM_EXPRESSION_W: 104,
9
10
  // MUSIC: 1040187441,
10
11
  // ROOM_CALLING: 64,
11
- SHARE_CARD: 41,
12
+ SHARE_CARD: 31,
12
13
  // COMPANY_CARD: 41,
13
14
  // VIDEO: 43,
14
15
  // CUSTOM_EXPRESSION: 47,
@@ -32,7 +33,8 @@ export const MESSAGE_TYPE = {
32
33
  // QUOTE_MESSAGE: 822083633,
33
34
  CHANNEL_VIDEO: 141,
34
35
  // CHANNEL_VIDEO_CARD: 771751985, // 视频号名片
35
- CHANNEL_VIDEO_LIVE: 146 // 视频号直播
36
+ CHANNEL_VIDEO_LIVE: 146, // 视频号直播
37
+ MEETING: 579
36
38
  }
37
39
 
38
40
  function html2Escape (sHtml) {
@@ -66,6 +68,14 @@ function toJson (data) {
66
68
  return data
67
69
  }
68
70
 
71
+ function getTextContent (content) {
72
+ const data = typeof content === 'string' ? toJson(content) : content
73
+ if (data && typeof data === 'object') {
74
+ return data.text || ''
75
+ }
76
+ return content
77
+ }
78
+
69
79
  /**
70
80
  * 格式化为短消息
71
81
  */
@@ -73,10 +83,8 @@ export function formatShortMessage (msgType, msgContent) {
73
83
  let shortMessage = msgContent
74
84
  switch (msgType) {
75
85
  case MESSAGE_TYPE.TEXT:
76
- shortMessage = msgContent
77
- break
78
86
  case MESSAGE_TYPE.TEXT_W:
79
- shortMessage = msgContent
87
+ shortMessage = getTextContent(msgContent)
80
88
  break
81
89
  case MESSAGE_TYPE.TEXT_WITH_AT:
82
90
  let {atId, content, text} = toJson(msgContent) || {}
@@ -85,6 +93,9 @@ export function formatShortMessage (msgType, msgContent) {
85
93
  case MESSAGE_TYPE.IMAGE:
86
94
  shortMessage = '[图片消息]'
87
95
  break
96
+ case MESSAGE_TYPE.MERGE_MESSAGE:
97
+ shortMessage = '[聊天记录]'
98
+ break
88
99
  case MESSAGE_TYPE.VIDEO:
89
100
  shortMessage = '[视频消息]'
90
101
  break
@@ -105,20 +116,15 @@ export function formatShortMessage (msgType, msgContent) {
105
116
  case MESSAGE_TYPE.SYSTEM:
106
117
  shortMessage = formatSystemMessage(msgContent)
107
118
  break
119
+ case MESSAGE_TYPE.URLFile:
120
+ shortMessage = '[文件消息]'
121
+ break
108
122
  case MESSAGE_TYPE.URL:
109
123
  case MESSAGE_TYPE.URLNew:
110
124
  const jsonObj = toJson(msgContent)
111
125
  if (typeof jsonObj === 'object') {
112
- if(jsonObj.type === 'file') {
113
- shortMessage = '[文件消息]'
114
- } else if(jsonObj.type === 'link') {
115
- shortMessage = '[链接消息]'
116
- } else if(jsonObj.type === 'miniprogram') {
126
+ if(jsonObj.contentType === 78) {
117
127
  shortMessage = '[小程序消息]'
118
- } else if (jsonObj.type === 'music') {
119
- shortMessage = '[音乐消息]'
120
- } else if (jsonObj.type === 'merged') {
121
- shortMessage = '[合并消息]'
122
128
  } else {
123
129
  shortMessage = '[链接消息]'
124
130
  }
@@ -160,6 +166,9 @@ export function formatShortMessage (msgType, msgContent) {
160
166
  case MESSAGE_TYPE.CHANNEL_VIDEO_LIVE:
161
167
  shortMessage = '[视频号直播]'
162
168
  break
169
+ case MESSAGE_TYPE.MEETING:
170
+ shortMessage = '[会议消息]'
171
+ break
163
172
  case MESSAGE_TYPE.ROOM_CALLING:
164
173
  case MESSAGE_TYPE.CALLING:
165
174
  shortMessage = '[语音通话消息]'
@@ -224,4 +233,4 @@ export function formatShortSessionMessage (session, contextFn) {
224
233
  }
225
234
  }
226
235
  return formatShortMessage(session.lastMsgType, session.lastMsgContent)
227
- }
236
+ }
@@ -147,7 +147,9 @@ export default {
147
147
  if (typeof this.nextContent === 'string') {
148
148
  url = this.nextContent
149
149
  } else if (this.nextContent && typeof this.nextContent === 'object') {
150
- if (this.nextContent.videoPath) {
150
+ if (this.nextContent.resPath) {
151
+ url = this.nextContent.resPath
152
+ } else if (this.nextContent.videoPath) {
151
153
  url = this.nextContent.videoPath
152
154
  } else {
153
155
  url = this.nextContent.tencentUrl
@@ -163,7 +165,7 @@ export default {
163
165
  if (!this.nextContent) {
164
166
  return
165
167
  }
166
- return this.nextContent.previewImgUrl
168
+ return this.nextContent.resCoverPath || this.nextContent.previewImgUrl
167
169
  },
168
170
  innerCover () {
169
171
  return formatOssPath(this.cover)
@@ -202,6 +204,12 @@ export default {
202
204
  throw new Error('不支持的更新属性' + prop)
203
205
  }
204
206
  this.$set(this.nextContent, prop, value)
207
+ },
208
+ updateContentProps: (data) => {
209
+ if (!data || typeof data !== 'object' || Array.isArray(data)) {
210
+ throw new Error('updateContentProps只支持更新数据对象')
211
+ }
212
+ this.nextContent = data
205
213
  }
206
214
  })
207
215
  if (rs && rs.finally) {
@@ -53,6 +53,7 @@
53
53
  import { parse } from '../../../utils/json'
54
54
  import { unique } from '../../../utils/string'
55
55
  import AcVoicePlayer from '@aochuang/common/common/voice-player'
56
+ import { formatOssPath } from '@aochuang/common/utils/oss'
56
57
 
57
58
  const ConvertStatusEnum = {
58
59
  NORMAL: -1, // 没有转换
@@ -132,8 +133,14 @@ export default {
132
133
  return parse(this.content) || {}
133
134
  },
134
135
  voiceSrc () {
135
- let url = this.nextContent.url || this.nextContent.resUrl
136
- return url
136
+ if (typeof this.nextContent === 'string') {
137
+ return this.nextContent
138
+ }
139
+ const voiceSrc = this.nextContent.resPath
140
+ if (!voiceSrc) {
141
+ return
142
+ }
143
+ return formatOssPath(voiceSrc)
137
144
  },
138
145
  nextId () {
139
146
  return this.id || unique()
@@ -0,0 +1,24 @@
1
+ <script>
2
+ export default {
3
+ name: 'SdkWeworkChatControlConfigItem',
4
+ functional: true,
5
+ inject: {
6
+ SdkWeworkChatControlConfig: {
7
+ default: null
8
+ }
9
+ },
10
+ props: {
11
+ /**
12
+ * 消息类型
13
+ */
14
+ msgType: {
15
+ type: [Number, String]
16
+ }
17
+ },
18
+ render (h, c) {
19
+ return c.scopedSlots.default({
20
+ configData: c.injections.SdkWeworkChatControlConfig ? c.injections.SdkWeworkChatControlConfig.getControlConfig(c.props.msgType) : null
21
+ })
22
+ }
23
+ }
24
+ </script>
@@ -0,0 +1,25 @@
1
+ <script>
2
+ export default {
3
+ name: 'SdkWeworkChatControlConfigMsg',
4
+ functional: true,
5
+ inject: {
6
+ SdkWeworkChatControlConfig: {
7
+ default: null
8
+ }
9
+ },
10
+ props: {
11
+ /**
12
+ * 标准的企微客户端消息数据
13
+ */
14
+ msgData: {
15
+ type: Object,
16
+ required: true
17
+ }
18
+ },
19
+ render (h, c) {
20
+ return c.scopedSlots.default({
21
+ configData: c.injections.SdkWeworkChatControlConfig ? c.injections.SdkWeworkChatControlConfig.getMessageConfig(c.props.msgData) : null
22
+ })
23
+ }
24
+ }
25
+ </script>
@@ -1,25 +1,20 @@
1
- <template>
2
- <view class="sdk-wechat-chat-control-config">
3
- <slot></slot>
4
- </view>
5
- </template>
6
1
  <script>
7
2
  export default {
8
- name: 'SdkWechatChatControlConfig',
3
+ name: 'SdkWeworkChatControlConfig',
9
4
  provide () {
10
5
  return {
11
- SdkWechatChatControlConfig: this
6
+ SdkWeworkChatControlConfig: this
12
7
  }
13
8
  },
14
9
  inject: {
15
10
  // 可以继承上级的
16
- SdkWechatChatControlConfig: {
11
+ SdkWeworkChatControlConfig: {
17
12
  default: null
18
13
  }
19
- },
14
+ },
20
15
  props: {
21
16
  /**
22
- * 这个是组件级别的配置,wechatChatPanel是消息级别的配置,后面是消息级别配置覆盖组件级别的配置
17
+ * 这个是组件级别的配置,weworkChatPanel是消息级别的配置,后面是消息级别配置覆盖组件级别的配置
23
18
  * {
24
19
  * 1: {
25
20
  * formatter () {
@@ -39,6 +34,9 @@ export default {
39
34
  type: Function
40
35
  }
41
36
  },
37
+ render () {
38
+ return this.$slots.default
39
+ },
42
40
  methods: {
43
41
  getControlConfig (msgType) {
44
42
  if (!this.controlConfig) {
@@ -47,13 +45,18 @@ export default {
47
45
  return this.controlConfig[msgType]
48
46
  },
49
47
  getMessageConfig (msgData) {
48
+ const controlConfig = this.getControlConfig(msgData.msgType)
50
49
  if (!this.messageConfig) {
51
- return
50
+ return controlConfig
52
51
  }
53
- return this.messageConfig({
52
+ const messageConfig = this.messageConfig({
54
53
  item: msgData
55
54
  })
55
+ if (!messageConfig) {
56
+ return controlConfig
57
+ }
58
+ return Object.assign({}, controlConfig, messageConfig)
56
59
  }
57
60
  }
58
61
  }
59
- </script>
62
+ </script>
@@ -0,0 +1,73 @@
1
+ <template>
2
+ <div class="sdk-wework-panel-chat-status">
3
+ <!-- status: 0 success, 1 sending, 2 failed, 3 timeout -->
4
+ <template v-if="data.status === 1">
5
+ <ui-loading size="mini"></ui-loading>
6
+ </template>
7
+ <template v-else-if="data.status === 2">
8
+ <bi-tooltip :text="data.resultMsg || '发送失败'">
9
+ <span class="sdk-wework-panel-chat-status__error">
10
+ <svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M512 938.666667C276.352 938.666667 85.333333 747.648 85.333333 512S276.352 85.333333 512 85.333333s426.666667 191.018667 426.666667 426.666667-191.018667 426.666667-426.666667 426.666667z m0-486.997334L391.338667 330.965333 330.965333 391.338667 451.669333 512l-120.704 120.661333 60.373334 60.373334L512 572.330667l120.661333 120.704 60.373334-60.373334L572.330667 512l120.704-120.661333-60.373334-60.373334L512 451.669333z" fill="currentColor"></path></svg>
11
+ </span>
12
+ </bi-tooltip>
13
+ </template>
14
+ <template v-else-if="data.status === 3">
15
+ <bi-tooltip :text="data.resultMsg || '发送超时'">
16
+ <span class="sdk-wework-panel-chat-status__error">
17
+ <svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M512 938.666667C276.352 938.666667 85.333333 747.648 85.333333 512S276.352 85.333333 512 85.333333s426.666667 191.018667 426.666667 426.666667-191.018667 426.666667-426.666667 426.666667z m42.666667-426.666667V298.666667h-85.333334v298.666666h256v-85.333333h-170.666666z" fill="currentColor"></path></svg>
18
+ </span>
19
+ </bi-tooltip>
20
+ </template>
21
+ <template v-if="data.recalled">
22
+ <bi-tooltip text="消息已撤回">
23
+ <span class="sdk-wework-panel-chat-status__error sdk-wework-panel-chat-status__recalled">
24
+ <svg class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" width="200" height="200"><path d="M512 0c282.752 0 512 229.248 512 512s-229.248 512-512 512S0 794.752 0 512 229.248 0 512 0z m-50.261333 255.317333c-7.765333-39.338667-39.893333-15.36-39.893334-15.36l-213.76 192c-47.616 34.944-2.730667 60.458667-2.730666 60.458667l211.541333 190.933333c42.410667 33.066667 45.866667-17.749333 45.866667-17.749333v-86.442667c215.125333-70.144 303.36 208.341333 303.36 208.341334 7.936 15.957333 13.824 0 13.824 0C862.933333 368.682667 461.952 348.586667 461.952 348.586667z" fill="currentColor"></path></svg>
25
+ </span>
26
+ </bi-tooltip>
27
+ </template>
28
+ </div>
29
+ </template>
30
+
31
+ <script>
32
+ import { Tooltip as BiTooltip } from '@aochuang/common/common'
33
+ import { Loading as UiLoading } from '@aochuang/common/components'
34
+
35
+ export default {
36
+ name: 'SdkWeworkPanelChatStatus',
37
+ components: {
38
+ BiTooltip,
39
+ UiLoading
40
+ },
41
+ props: {
42
+ data: {
43
+ type: Object,
44
+ required: true
45
+ },
46
+ updateChatBoxProp: {
47
+ type: Function
48
+ }
49
+ }
50
+ }
51
+ </script>
52
+
53
+ <style lang="less">
54
+ .sdk-wework-panel-chat-status__error {
55
+ display: flex;
56
+ flex-direction: row;
57
+ align-items: center;
58
+ font-size: 12px;
59
+ color: #c00;
60
+ width: 16px;
61
+ height: 16px;
62
+ svg {
63
+ width: 100%;
64
+ height: 100%;
65
+ }
66
+ }
67
+ .sdk-wework-panel-chat-status__recalled {
68
+ opacity: .6;
69
+ }
70
+ .sdk-wework-panel-chat-status {
71
+ margin: 0 6px;
72
+ }
73
+ </style>
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <wechat-chat-control-config-msg
2
+ <wework-chat-control-config-msg
3
3
  :msgData="item"
4
4
  >
5
5
  <template slot-scope="{ configData }">
@@ -7,7 +7,7 @@
7
7
  <template v-if="item.msgType !== '_EMPTY_'">
8
8
  <slot name="chat-prefix" :item="item"></slot>
9
9
  </template>
10
- <template v-if="[0, 1, 2].includes(item.msgType)">
10
+ <template v-if="item.msgType === MESSAGE_TYPE.TEXT || item.msgType === MESSAGE_TYPE.TEXT_W">
11
11
  <sdk-chat-panel-box
12
12
  :dir="dir"
13
13
  :data="item"
@@ -16,17 +16,20 @@
16
16
  @user-avatar-click="handleUserAvatarClick"
17
17
  @user-avatar-contextmenu="handleUserAvatarContextmenu"
18
18
  >
19
- <sdk-chat-control-text
20
- v-bind="configData"
21
- :id="item.id"
22
- :content="msgContent"
23
- ></sdk-chat-control-text>
19
+ <template slot-scope="{ setFootVnode }">
20
+ <sdk-chat-control-text
21
+ v-bind="configData"
22
+ :id="item.id"
23
+ :content="msgContent"
24
+ :set-chat-box-foot-vnode="setFootVnode"
25
+ ></sdk-chat-control-text>
26
+ </template>
24
27
  <template slot="append" slot-scope="{ updateProp }">
25
28
  <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
26
29
  </template>
27
30
  </sdk-chat-panel-box>
28
31
  </template>
29
- <template v-else-if="[14, 101].includes(item.msgType)">
32
+ <template v-else-if="item.msgType === MESSAGE_TYPE.IMAGE">
30
33
  <sdk-chat-panel-box
31
34
  :dir="dir"
32
35
  :data="item"
@@ -45,7 +48,7 @@
45
48
  </template>
46
49
  </sdk-chat-panel-box>
47
50
  </template>
48
- <template v-else-if="[22, 23, 103].includes(item.msgType)">
51
+ <template v-else-if="item.msgType === MESSAGE_TYPE.VIDEO">
49
52
  <sdk-chat-panel-box
50
53
  :dir="dir"
51
54
  :data="item"
@@ -289,7 +292,7 @@
289
292
  </template>
290
293
  </sdk-chat-panel-box>
291
294
  </template>
292
- <template v-else-if="item.msgType == MESSAGE_TYPE.URL">
295
+ <template v-else-if="item.msgType == MESSAGE_TYPE.URLFile">
293
296
  <sdk-chat-panel-box
294
297
  :dir="dir"
295
298
  :data="item"
@@ -300,19 +303,19 @@
300
303
  @user-avatar-contextmenu="handleUserAvatarContextmenu"
301
304
  >
302
305
  <template slot-scope="{ updateProp }">
303
- <sdk-chat-control-url
306
+ <sdk-chat-control-file-url
304
307
  v-bind="configData"
305
308
  :id="item.id"
306
309
  :content="msgContent"
307
310
  :update-chat-box-prop="updateProp"
308
- ></sdk-chat-control-url>
311
+ ></sdk-chat-control-file-url>
309
312
  </template>
310
313
  <template slot="append" slot-scope="{ updateProp }">
311
314
  <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
312
315
  </template>
313
316
  </sdk-chat-panel-box>
314
317
  </template>
315
- <template v-else-if="[13, 15, 20, 102].includes(item.msgType)">
318
+ <template v-else-if="item.msgType == MESSAGE_TYPE.URL || item.msgType == MESSAGE_TYPE.URLNew">
316
319
  <sdk-chat-panel-box
317
320
  :dir="dir"
318
321
  :data="item"
@@ -323,12 +326,12 @@
323
326
  @user-avatar-contextmenu="handleUserAvatarContextmenu"
324
327
  >
325
328
  <template slot-scope="{ updateProp }">
326
- <sdk-chat-control-file-url
329
+ <sdk-chat-control-url
327
330
  v-bind="configData"
328
331
  :id="item.id"
329
332
  :content="msgContent"
330
333
  :update-chat-box-prop="updateProp"
331
- ></sdk-chat-control-file-url>
334
+ ></sdk-chat-control-url>
332
335
  </template>
333
336
  <template slot="append" slot-scope="{ updateProp }">
334
337
  <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
@@ -353,19 +356,43 @@
353
356
  </template>
354
357
  </sdk-chat-panel-box>
355
358
  </template>
356
- <template v-else-if="item.msgType == MESSAGE_TYPE.CUSTOM_EXPRESSION_W">
359
+ <template v-else-if="item.msgType === MESSAGE_TYPE.MEETING">
357
360
  <sdk-chat-panel-box
358
361
  :dir="dir"
359
362
  :data="item"
360
363
  :fetchUserMethod="fetchUserMethod"
364
+ :blank="true"
361
365
  @user-avatar-click="handleUserAvatarClick"
362
366
  @user-avatar-contextmenu="handleUserAvatarContextmenu"
363
367
  >
364
- <sdk-chat-control-custom-expression
368
+ <template slot-scope="{ updateProp }">
369
+ <sdk-chat-control-metting
370
+ v-bind="configData"
371
+ :id="item.id"
372
+ :content="msgContent"
373
+ :initiator="item.qwAccountName || item.contactName || item.ownerAccountUserName"
374
+ :update-chat-box-prop="updateProp"
375
+ ></sdk-chat-control-metting>
376
+ </template>
377
+ <template slot="append" slot-scope="{ updateProp }">
378
+ <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
379
+ </template>
380
+ </sdk-chat-panel-box>
381
+ </template>
382
+ <template v-else-if="item.msgType === MESSAGE_TYPE.MERGE_MESSAGE">
383
+ <sdk-chat-panel-box
384
+ :dir="dir"
385
+ :data="item"
386
+ :fetchUserMethod="fetchUserMethod"
387
+ :blank="true"
388
+ @user-avatar-click="handleUserAvatarClick"
389
+ @user-avatar-contextmenu="handleUserAvatarContextmenu"
390
+ >
391
+ <sdk-chat-control-merge-message
365
392
  v-bind="configData"
366
393
  :id="item.id"
367
394
  :content="msgContent"
368
- ></sdk-chat-control-custom-expression>
395
+ ></sdk-chat-control-merge-message>
369
396
  <template slot="append" slot-scope="{ updateProp }">
370
397
  <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
371
398
  </template>
@@ -510,7 +537,7 @@
510
537
  :content="msgContent"
511
538
  ></sdk-chat-control-empty>
512
539
  </template>
513
- <!-- <template v-else>
540
+ <template v-else>
514
541
  <sdk-chat-panel-box
515
542
  :dir="dir"
516
543
  :data="item"
@@ -523,10 +550,10 @@
523
550
  :content="msgContent"
524
551
  ></sdk-chat-control-unknow>
525
552
  </sdk-chat-panel-box>
526
- </template> -->
553
+ </template>
527
554
  </div>
528
555
  </template>
529
- </wechat-chat-control-config-msg>
556
+ </wework-chat-control-config-msg>
530
557
  </template>
531
558
  <script>
532
559
  import SdkChatPanelBox from '../chat-panel/chat-panel-box'
@@ -545,6 +572,8 @@ import {
545
572
  channelVideo as SdkChatControlChannelVideo,
546
573
  // channelVideoCard as SdkChatControlChannelVideoCard,
547
574
  channelLive as SdkChatControlChannelLive,
575
+ metting as SdkChatControlMetting,
576
+ mergeMessage as SdkChatControlMergeMessage,
548
577
  url as SdkChatControlUrl,
549
578
  fileUrl as SdkChatControlFileUrl,
550
579
  jxSysText as SdkChatControlJxSysText,
@@ -564,10 +593,10 @@ import {
564
593
  unknow as SdkChatControlUnknow
565
594
  } from '../wework-chat-control'
566
595
  import { MESSAGE_TYPE } from '../wework-chat-control/util'
567
- import WechatChatControlConfigMsg from '../wechat-chat-control/wechat-chat-control-config-msg.vue'
596
+ import WeworkChatControlConfigMsg from '../wework-chat-control/wework-chat-control-config-msg.vue'
568
597
 
569
598
  export default {
570
- name: 'SdkWechatPanelItem',
599
+ name: 'SdkWeworkPanelItem',
571
600
  components: {
572
601
  SdkChatPanelBox,
573
602
  SdkChatControlText,
@@ -583,6 +612,8 @@ export default {
583
612
  SdkChatControlChannelVideo,
584
613
  // SdkChatControlChannelVideoCard,
585
614
  SdkChatControlChannelLive,
615
+ SdkChatControlMetting,
616
+ SdkChatControlMergeMessage,
586
617
  SdkChatControlFileUrl,
587
618
  // SdkChatControlTextWithAt,
588
619
  SdkChatControlUrl,
@@ -601,7 +632,7 @@ export default {
601
632
  // SdkChatControlRevokeMeMessage,
602
633
  // SdkChatControlRevokeOtherMessage,
603
634
  // SdkChatControlRevokeYouMessage,
604
- WechatChatControlConfigMsg
635
+ WeworkChatControlConfigMsg
605
636
  },
606
637
  props: {
607
638
  dir: {
@@ -647,4 +678,4 @@ export default {
647
678
  }
648
679
  }
649
680
  }
650
- </script>
681
+ </script>