@aochuang/client-sdk 1.0.343 → 1.0.344

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 (141) hide show
  1. package/components/index.js +6 -1
  2. package/components/session-select/session-select-item.vue +8 -9
  3. package/components/wechat-chat-control/calling/calling.vue +0 -3
  4. package/components/wechat-chat-control/voice/voice.vue +0 -4
  5. package/components/wework-chat-control/company-card/company-card.vue +1 -1
  6. package/components/wework-chat-control/file-url/file-url.vue +2 -5
  7. package/components/wework-chat-control/image/image.vue +137 -2
  8. package/components/wework-chat-control/index.js +6 -6
  9. package/components/wework-chat-control/text/text.vue +22 -3
  10. package/components/wework-chat-control/util.js +12 -6
  11. package/components/wework-chat-control/video/video.vue +10 -2
  12. package/components/wework-chat-control/voice/voice.vue +1 -1
  13. package/components/wework-chat-control/wework-chat-control-config-item.vue +24 -0
  14. package/components/wework-chat-control/wework-chat-control-config-msg.vue +25 -0
  15. package/{uni-components/chat-control/chat-control-config.vue → components/wework-chat-control/wework-chat-control-config.vue} +16 -13
  16. package/components/wework-chat-panel/chat-panel-chat-status/chat-panel-chat-status.vue +73 -0
  17. package/components/wework-chat-panel/chat-panel-item.vue +12 -35
  18. package/components/wework-chat-panel/chat-panel.vue +95 -12
  19. package/package.json +10 -3
  20. package/services/client-chat/client-chat-wechat/client-chat-session.js +3 -4
  21. package/services/client-chat/client-chat-wechat/client-chat.js +8 -20
  22. package/services/client-chat/client-chat-wework/client-chat-concats.js +81 -17
  23. package/services/client-chat/client-chat-wework/client-chat-message.js +5 -5
  24. package/services/client-chat/client-chat-wework/client-chat-session.js +50 -2
  25. package/services/client-chat/client-chat-wework/client-chat-socket.js +9 -1
  26. package/services/client-chat/client-chat-wework/client-chat.js +278 -11
  27. package/services/client-chat/client-chat-wework/utils.js +5 -5
  28. package/components/wework-chat-panel/chat-panel-controls/company-card/company-card.vue +0 -35
  29. package/components/wework-chat-panel/chat-panel-controls/expression/expression.vue +0 -36
  30. package/components/wework-chat-panel/chat-panel-controls/file-url/file-url.vue +0 -35
  31. package/components/wework-chat-panel/chat-panel-controls/image/image.vue +0 -36
  32. package/components/wework-chat-panel/chat-panel-controls/index.js +0 -35
  33. package/components/wework-chat-panel/chat-panel-controls/jx-sys-text/jx-sys-text.vue +0 -28
  34. package/components/wework-chat-panel/chat-panel-controls/link/link.vue +0 -35
  35. package/components/wework-chat-panel/chat-panel-controls/location/location.vue +0 -35
  36. package/components/wework-chat-panel/chat-panel-controls/text/text.vue +0 -43
  37. package/components/wework-chat-panel/chat-panel-controls/unkonw/unkonw.vue +0 -39
  38. package/components/wework-chat-panel/chat-panel-controls/video/video.vue +0 -37
  39. package/components/wework-chat-panel/chat-panel-controls/voice/voice.vue +0 -35
  40. package/uni-common/account-portray/account-portray.vue +0 -51
  41. package/uni-common/account-select/account-select-item.vue +0 -172
  42. package/uni-common/account-select/account-select.vue +0 -252
  43. package/uni-common/all-friend-avatar/all-friend-avatar.vue +0 -49
  44. package/uni-common/friend-avatar/default.svg +0 -1
  45. package/uni-common/friend-avatar/friend-avatar.vue +0 -27
  46. package/uni-common/friend-avatar/index.js +0 -3
  47. package/uni-common/friend-loader/friend-loader.vue +0 -53
  48. package/uni-common/friend-portray/friend-portray.vue +0 -56
  49. package/uni-common/group-avatar/default.svg +0 -1
  50. package/uni-common/group-avatar/group-avatar.vue +0 -18
  51. package/uni-common/group-avatar/index.js +0 -3
  52. package/uni-common/room-avatar/default.svg +0 -6
  53. package/uni-common/room-avatar/index.js +0 -3
  54. package/uni-common/room-avatar/room-avatar.vue +0 -27
  55. package/uni-common/room-loader/room-loader.vue +0 -53
  56. package/uni-common/room-portray/room-portray.vue +0 -56
  57. package/uni-components/chat-control/calling/calling.vue +0 -91
  58. package/uni-components/chat-control/calling/phone-fill.svg +0 -1
  59. package/uni-components/chat-control/calling/vidicon-fill.svg +0 -1
  60. package/uni-components/chat-control/channel-video/channel-video.vue +0 -89
  61. package/uni-components/chat-control/channel-video-card/channel-video-card.vue +0 -105
  62. package/uni-components/chat-control/channel-video-live/channel-video-live.vue +0 -92
  63. package/uni-components/chat-control/chat-control-config-item/chat-control-config-item.vue +0 -20
  64. package/uni-components/chat-control/chat-control-config-item/index.js +0 -3
  65. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-app.vue +0 -25
  66. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-h5.vue +0 -21
  67. package/uni-components/chat-control/chat-control.vue +0 -218
  68. package/uni-components/chat-control/company-card/company-card.vue +0 -123
  69. package/uni-components/chat-control/const.js +0 -28
  70. package/uni-components/chat-control/expression/expression.vue +0 -41
  71. package/uni-components/chat-control/image/image.vue +0 -68
  72. package/uni-components/chat-control/index.js +0 -89
  73. package/uni-components/chat-control/location/location.vue +0 -110
  74. package/uni-components/chat-control/member-change/member-change.vue +0 -32
  75. package/uni-components/chat-control/quote-message/quote-message.vue +0 -216
  76. package/uni-components/chat-control/real-time-position/real-time-position.vue +0 -62
  77. package/uni-components/chat-control/redpacket/red-envelope.svg +0 -1
  78. package/uni-components/chat-control/redpacket/redpacket.vue +0 -75
  79. package/uni-components/chat-control/share-card/share-card.vue +0 -101
  80. package/uni-components/chat-control/system/system.vue +0 -69
  81. package/uni-components/chat-control/system-batch-message/system-batch-message.vue +0 -30
  82. package/uni-components/chat-control/system-text/system-text.vue +0 -32
  83. package/uni-components/chat-control/text/text.vue +0 -67
  84. package/uni-components/chat-control/text-with-at/text-with-at.vue +0 -51
  85. package/uni-components/chat-control/transfer/red-transfer.svg +0 -1
  86. package/uni-components/chat-control/transfer/transfer.vue +0 -80
  87. package/uni-components/chat-control/unkonw/unkonw.vue +0 -37
  88. package/uni-components/chat-control/url/icons/file-excel-line.svg +0 -1
  89. package/uni-components/chat-control/url/icons/file-info-line.svg +0 -1
  90. package/uni-components/chat-control/url/icons/file-music-line.svg +0 -1
  91. package/uni-components/chat-control/url/icons/file-pdf-line.svg +0 -1
  92. package/uni-components/chat-control/url/icons/file-ppt-line.svg +0 -1
  93. package/uni-components/chat-control/url/icons/file-settings-line.svg +0 -1
  94. package/uni-components/chat-control/url/icons/file-text-line.svg +0 -1
  95. package/uni-components/chat-control/url/icons/file-unknow-line.svg +0 -1
  96. package/uni-components/chat-control/url/icons/file-word-line.svg +0 -1
  97. package/uni-components/chat-control/url/icons/file-zip-line.svg +0 -1
  98. package/uni-components/chat-control/url/icons/index.js +0 -24
  99. package/uni-components/chat-control/url/miniprogram.svg +0 -1
  100. package/uni-components/chat-control/url/url-miniprogram.vue +0 -116
  101. package/uni-components/chat-control/url/url.vue +0 -306
  102. package/uni-components/chat-control/url-new/icons/file-excel-line.svg +0 -1
  103. package/uni-components/chat-control/url-new/icons/file-info-line.svg +0 -1
  104. package/uni-components/chat-control/url-new/icons/file-music-line.svg +0 -1
  105. package/uni-components/chat-control/url-new/icons/file-pdf-line.svg +0 -1
  106. package/uni-components/chat-control/url-new/icons/file-ppt-line.svg +0 -1
  107. package/uni-components/chat-control/url-new/icons/file-settings-line.svg +0 -1
  108. package/uni-components/chat-control/url-new/icons/file-text-line.svg +0 -1
  109. package/uni-components/chat-control/url-new/icons/file-unknow-line.svg +0 -1
  110. package/uni-components/chat-control/url-new/icons/file-word-line.svg +0 -1
  111. package/uni-components/chat-control/url-new/icons/file-zip-line.svg +0 -1
  112. package/uni-components/chat-control/url-new/icons/index.js +0 -24
  113. package/uni-components/chat-control/url-new/url-new.vue +0 -110
  114. package/uni-components/chat-control/utils.js +0 -12
  115. package/uni-components/chat-control/video/video.vue +0 -156
  116. package/uni-components/chat-control/voice/voice.vue +0 -166
  117. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-collect.vue +0 -84
  118. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-system.vue +0 -28
  119. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet.vue +0 -85
  120. package/uni-components/chat-editor/chat-editor-func/chat-editor-func.vue +0 -157
  121. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at-panel.vue +0 -158
  122. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at.vue +0 -61
  123. package/uni-components/chat-editor/chat-editor-func-button/chat-editor-func-button.vue +0 -58
  124. package/uni-components/chat-editor/chat-editor-func-file/chat-editor-func-file.vue +0 -54
  125. package/uni-components/chat-editor/chat-editor-func-image/chat-editor-func-image.vue +0 -42
  126. package/uni-components/chat-editor/chat-editor-func-video/chat-editor-func-video.vue +0 -42
  127. package/uni-components/chat-editor/chat-editor-func-voice/chat-editor-func-voice.vue +0 -25
  128. package/uni-components/chat-editor/chat-editor-message-send/chat-editor-message-send.vue +0 -158
  129. package/uni-components/chat-editor/chat-editor-quote/chat-editor-quote.vue +0 -75
  130. package/uni-components/chat-editor/chat-editor.vue +0 -257
  131. package/uni-components/chat-editor/index.js +0 -10
  132. package/uni-components/chat-editor/util.js +0 -65
  133. package/uni-components/chat-panel/chat-panel-chats-box.vue +0 -238
  134. package/uni-components/chat-panel/chat-panel-chats-forward/chat-panel-chats-forward.vue +0 -273
  135. package/uni-components/chat-panel/chat-panel-chats-item.vue +0 -578
  136. package/uni-components/chat-panel/chat-panel-chats-status/chat-panel-chats-status.vue +0 -71
  137. package/uni-components/chat-panel/chat-panel-chats.vue +0 -368
  138. package/uni-components/chat-panel/chat-panel.vue +0 -227
  139. package/uni-components/contacts-group-select/contacts-group-select-item.vue +0 -85
  140. package/uni-components/contacts-group-select/contacts-group-select-panel.vue +0 -119
  141. package/uni-components/contacts-group-select/contacts-group-select.vue +0 -150
@@ -1,43 +0,0 @@
1
- <script>
2
- import SdkChatPanelBox from '../../../chat-panel/chat-panel-box'
3
- import { text } from '../../../wework-chat-control'
4
-
5
- export default {
6
- name: 'SdkWeworkChatPanelControlsText',
7
- functional: true,
8
- props: {
9
- dir: {
10
- type: String
11
- },
12
- data: {
13
- type: Object,
14
- required: true
15
- },
16
- fetchUserMethod: {
17
- type: Function
18
- }
19
- },
20
- render (h, c) {
21
- const { props } = c
22
- return h(SdkChatPanelBox, {
23
- class: 'sdk-chat-panel-controls-text',
24
- props: {
25
- dir: props.dir,
26
- data: props.data,
27
- fetchUserMethod: props.fetchUserMethod
28
- }
29
- }, [h('div', {
30
- class: 'sdk-chat-panel-controls-text__main'
31
- }, [h(text, {
32
- props: {
33
- data: props.data
34
- }
35
- })])])
36
- }
37
- }
38
- </script>
39
- <style>
40
- .sdk-chat-panel-controls-text__main{
41
- padding: 10px;
42
- }
43
- </style>
@@ -1,39 +0,0 @@
1
- <template>
2
- <sdk-chat-panel-box
3
- :data="data"
4
- :dir="dir"
5
- :fetch-user-method="fetchUserMethod"
6
- >
7
- <div class="sdk-wework-chat-panel-controls-unkonw__main">
8
- 未知消息
9
- </div>
10
- </sdk-chat-panel-box>
11
- </template>
12
- <script>
13
- import SdkChatPanelBox from '../../../chat-panel/chat-panel-box'
14
-
15
- export default {
16
- name: 'SdkWeworkChatPanelControlsUnkonw',
17
- components: {
18
- SdkChatPanelBox
19
- },
20
- props: {
21
- dir: {
22
- type: String
23
- },
24
- data: {
25
- type: Object,
26
- required: true
27
- },
28
- fetchUserMethod: {
29
- type: Function
30
- }
31
- }
32
- }
33
- </script>
34
- <style lang="less">
35
- .sdk-wework-chat-panel-controls-unkonw__main{
36
- padding: 12px;
37
- color: #999;
38
- }
39
- </style>
@@ -1,37 +0,0 @@
1
- <template>
2
- <sdk-chat-panel-box
3
- :data="data"
4
- :dir="dir"
5
- :fetch-user-method="fetchUserMethod"
6
- >
7
- <sdk-chat-control-video
8
- :data="data"
9
- width="240px"
10
- height="180px"
11
- ></sdk-chat-control-video>
12
- </sdk-chat-panel-box>
13
- </template>
14
- <script>
15
- import SdkChatPanelBox from '../../../chat-panel/chat-panel-box'
16
- import { video } from '../../../wework-chat-control'
17
-
18
- export default {
19
- name: 'SdkWeworkChatPanelControlsVideo',
20
- components: {
21
- SdkChatPanelBox,
22
- SdkChatControlVideo: video
23
- },
24
- props: {
25
- dir: {
26
- type: String
27
- },
28
- data: {
29
- type: Object,
30
- required: true
31
- },
32
- fetchUserMethod: {
33
- type: Function
34
- }
35
- }
36
- }
37
- </script>
@@ -1,35 +0,0 @@
1
- <script>
2
- import SdkChatPanelBox from '../../../chat-panel/chat-panel-box'
3
- import { voice } from '../../../wework-chat-control'
4
-
5
- export default {
6
- name: 'SdkWeworkChatPanelControlsVoice',
7
- functional: true,
8
- props: {
9
- dir: {
10
- type: String
11
- },
12
- data: {
13
- type: Object,
14
- required: true
15
- },
16
- fetchUserMethod: {
17
- type: Function
18
- }
19
- },
20
- render (h, c) {
21
- const { props } = c
22
- return h(SdkChatPanelBox, {
23
- props: {
24
- dir: props.dir,
25
- data: props.data,
26
- fetchUserMethod: props.fetchUserMethod
27
- }
28
- }, [h(voice, {
29
- props: {
30
- content: props.data.content
31
- }
32
- })])
33
- }
34
- }
35
- </script>
@@ -1,51 +0,0 @@
1
- <template>
2
- <bi-portray
3
- :avatar="accountData && accountData.avatar"
4
- :name="accountData && (accountData.memo || accountData.nickname)"
5
- :loading="loading"
6
- ></bi-portray>
7
- </template>
8
-
9
- <script>
10
- import BiPortray from '@aochuang/common/uni-common/portray/portray.vue'
11
-
12
- export default {
13
- name: 'BiAccountPortray',
14
- components: {
15
- BiPortray
16
- },
17
- props: {
18
- id: {
19
- type: String,
20
- required: true
21
- }
22
- },
23
- data () {
24
- return {
25
- loading: false,
26
- accountData: null
27
- }
28
- },
29
- watch: {
30
- id () {
31
- this.loadData()
32
- }
33
- },
34
- created () {
35
- this.loadData()
36
- },
37
- methods: {
38
- loadData () {
39
- this.loading = true
40
- this.$clientChat.account.getAccount(this.id).then(rs => {
41
- this.accountData = rs.data
42
- }).finally(() => {
43
- this.loading = false
44
- })
45
- }
46
- }
47
- }
48
- </script>
49
-
50
- <style>
51
- </style>
@@ -1,172 +0,0 @@
1
- <template>
2
- <view
3
- class="bi-account-select-item"
4
- :class="['bi-account-select-item--' + type, {'is-active': selected, 'is-online': isAll ? false : data && data.online, 'is-offline': isAll ? false : data && !data.online}]"
5
- >
6
- <view class="bi-account-select-item__icon">
7
- <template v-if="isAll">
8
- <bi-all-friend-avatar :size="avatarSize" :round="type === 'simple'"></bi-all-friend-avatar>
9
- </template>
10
- <template v-else>
11
- <bi-avatar :src="data.avatar" :size="avatarSize" :round="type === 'simple'"></bi-avatar>
12
- </template>
13
- </view>
14
- <view class="bi-account-select-item__text">
15
- <template v-if="isAll">全部好友</template>
16
- <template v-else>
17
- {{ data.memo || data.nickname }}
18
- </template>
19
- </view>
20
- <bi-badge class="bi-account-select-item__count" :value="unreadCount" :max="99" v-if="unreadCount"></bi-badge>
21
- </view>
22
- </template>
23
-
24
- <script>
25
- import BiAvatar from '@aochuang/common/uni-components/avatar/avatar.vue'
26
- import BiBadge from '@aochuang/common/uni-components/badge/badge.vue'
27
- import BiAllFriendAvatar from '../all-friend-avatar/all-friend-avatar.vue'
28
-
29
- export default {
30
- name: 'BiAccountSelectItem',
31
- components: {
32
- BiAvatar,
33
- BiBadge,
34
- BiAllFriendAvatar
35
- },
36
- props: {
37
- isAll: {
38
- type: Boolean
39
- },
40
- type: {
41
- type: String,
42
- validator (value) {
43
- return ['default', 'simple'].includes(value)
44
- }
45
- },
46
- selected: {
47
- type: Boolean
48
- },
49
- data: {
50
- type: Object
51
- }
52
- },
53
- computed: {
54
- avatarSize () {
55
- return this.type === 'default' ? 'small' : 'mini'
56
- },
57
- accountUnreadMessageNumData () {
58
- return this.$clientChat.account.accountUnreadMessageNumData || []
59
- },
60
- unreadCount () {
61
- if (this.isAll) {
62
- return this.accountUnreadMessageNumData.reduce((rs, account) => {
63
- if (account.num) {
64
- rs += account.num
65
- }
66
- return rs
67
- }, 0)
68
- } else {
69
- const unreadMessageNumItem = this.accountUnreadMessageNumData.find(v => v.id === this.data.id)
70
- return unreadMessageNumItem ? unreadMessageNumItem.num : 0
71
- }
72
- }
73
- },
74
- created () {
75
- if (!this.isAll && !this.data) {
76
- throw new Error('缺少data数据')
77
- }
78
- }
79
- }
80
- </script>
81
-
82
- <style lang="less">
83
- .bi-account-select-item{
84
- display: flex;
85
- flex-direction: row;
86
- align-items: center;
87
- position: relative;
88
- transition: all .25s;
89
- max-width: 100%;
90
- &.is-active {
91
- background: #3c9cff;
92
- color: #fff;
93
- &:after {
94
- border-right-color: #fff;
95
- border-bottom-color: #fff;
96
- }
97
- }
98
- &.is-online {
99
- .bi-account-select-item__icon{
100
- &:after {
101
- opacity: 1;
102
- background-color: #40bf48;
103
- border-color: #fff;
104
- }
105
- }
106
- }
107
- &.is-offline {
108
- .bi-account-select-item__icon{
109
- &:after {
110
- opacity: 1;
111
- background-color: #ccc;
112
- border-color: #fff;
113
- }
114
- }
115
- }
116
- }
117
- .bi-account-select-item__icon{
118
- background-color: #eee;
119
- margin-right: 6px;
120
- position: relative;
121
- line-height: 1em;
122
- &:after {
123
- content: '';
124
- width: 8px;
125
- height: 8px;
126
- background-color: transparent;
127
- border-radius: 50%;
128
- border: 2px solid transparent;
129
- position: absolute;
130
- bottom: -2px;
131
- right: -2px;
132
- opacity: 0;
133
- }
134
- }
135
- .bi-account-select-item__text{
136
- flex: 1;
137
- min-width: 0;
138
- overflow: hidden;
139
- text-overflow: ellipsis;
140
- white-space: nowrap;
141
- }
142
- .bi-account-select-item--default {
143
- padding: 6px 24px 6px 12px;
144
- &:after {
145
- content: '';
146
- width: 6px;
147
- height: 6px;
148
- border: 1px solid #ccc;
149
- border-left: 0;
150
- border-top: 0;
151
- transform: rotate(-45deg) translateY(-50%);
152
- position: absolute;
153
- right: 12px;
154
- top: 50%;
155
- }
156
- .bi-account-select-item__icon {
157
- width: 32px;
158
- height: 32px;
159
- border-radius: 3px;
160
- }
161
- }
162
- .bi-account-select-item--simple {
163
- .bi-account-select-item__icon {
164
- width: 24px;
165
- height: 24px;
166
- border-radius: 50%;
167
- }
168
- .bi-account-select-item__count{
169
- transform: scale(.8);
170
- }
171
- }
172
- </style>
@@ -1,252 +0,0 @@
1
- <template>
2
- <view class="bi-account-select">
3
- <view class="bi-account-select__handle" :class="{'is-online': currentAccount && currentAccount.online, 'is-offline': currentAccount && !currentAccount.online}" @click="handleHandleClick">
4
- <account-select-item
5
- type="simple"
6
- :is-all="!currentAccount"
7
- :data="currentAccount"
8
- >
9
- </account-select-item>
10
- </view>
11
- <uv-popup
12
- ref="popup"
13
- mode="bottom"
14
- @change="handlePopupChange"
15
- >
16
- <view class="bi-account-select__main">
17
- <view class="bi-account-select__head">
18
- <view class="bi-account-select__head-left">
19
- <uv-button size="small" @click="handleCancelClick">取消</uv-button>
20
- </view>
21
- <view class="bi-account-select__head-center">
22
- <view class="bi-account-select__title">微号({{ accountData ? accountData.length : 0 }})</view>
23
- </view>
24
- <view class="bi-account-select__head-right">
25
- <uv-button size="small" type="primary" @click="handleConfirmClick">确定</uv-button>
26
- </view>
27
- </view>
28
- <view class="bi-account-select__body">
29
- <scroll-view
30
- scroll-y
31
- :scroll-into-view="scrollToAccountId"
32
- class="bi-account-select__list"
33
- >
34
- <uv-swipe-action ref="swipeAction">
35
- <view
36
- class="bi-account-select__item"
37
- :class="{'is-active': !currentSelectAccount}"
38
- @click="handleAccountClick(null)"
39
- >
40
- <account-select-item
41
- type="default"
42
- :is-all="true"
43
- :selected="!currentSelectAccount"
44
- ></account-select-item>
45
- </view>
46
- <template
47
- v-for="account in accountData"
48
- >
49
- <uv-swipe-action-item :options="swipeActionOptions" @click="handleSwipeActionClick(account, $event)">
50
- <view
51
- :key="account.id"
52
- :id="`account-${account.id}`"
53
- class="bi-account-select__item"
54
- @click="handleAccountClick(account)"
55
- >
56
- <account-select-item
57
- type="default"
58
- :data="account"
59
- :selected="currentSelectAccount && currentSelectAccount.id === account.id"
60
- ></account-select-item>
61
- </view>
62
- </uv-swipe-action-item>
63
- </template>
64
- </uv-swipe-action>
65
- </scroll-view>
66
- <view class="bi-account-select__loading" v-if="loading">
67
- <uv-loading-icon></uv-loading-icon>
68
- </view>
69
- </view>
70
- </view>
71
- </uv-popup>
72
- </view>
73
- </template>
74
- <script>
75
- import BiAvatar from '@aochuang/common/uni-components/avatar/avatar.vue'
76
- import BiAllFriendAvatar from '../all-friend-avatar/all-friend-avatar.vue'
77
- import AccountSelectItem from './account-select-item.vue'
78
-
79
- export default {
80
- name: 'BiAccountSelect',
81
- components: {
82
- BiAvatar,
83
- BiAllFriendAvatar,
84
- AccountSelectItem
85
- },
86
- props: {
87
- allowSelectAll: {
88
- type: Boolean,
89
- default: true
90
- }
91
- },
92
- data () {
93
- return {
94
- loading: false,
95
- showPopup: false,
96
- scrollToAccountId: null,
97
- currentSelectAccount: null
98
- }
99
- },
100
- computed: {
101
- accountData () {
102
- return this.$clientChat.account.accountData || []
103
- },
104
- currentAccount () {
105
- return this.$clientChat.account.currentAccount
106
- },
107
- swipeActionOptions () {
108
- return [{
109
- text: '一键已读',
110
- style: {
111
- backgroundColor: '#16d06f'
112
- },
113
- click: (account) => {
114
- this.$confirm('确定要将此微信号所有会话标记已读吗?', () => {
115
- return this.$clientChat.account.updateAccountMessageRead({
116
- wechatAccountId: account.id
117
- }).then(() => {
118
- this.$success('操作成功')
119
- this.$refs.swipeAction.closeOther()
120
- })
121
- })
122
- }
123
- }, {
124
- text: '清空会话',
125
- style: {
126
- backgroundColor: '#f56c6c'
127
- },
128
- click: (account) => {
129
- this.$confirm('确定要将此微信号所有会话清空吗?', () => {
130
- return this.$clientChat.account.deleteAccountSession({
131
- wechatAccountId: account.id
132
- }).then(() => {
133
- this.$success('操作成功')
134
- this.$refs.swipeAction.closeOther()
135
- })
136
- })
137
- }
138
- }]
139
- }
140
- },
141
- created () {
142
- this.loading = true
143
- this.$clientChat.account.loadData().then(() => {
144
- this.currentSelectAccount = this.currentAccount
145
- }).finally(() => {
146
- this.loading = false
147
- })
148
- },
149
- methods: {
150
- handleSwipeActionClick (account, evt) {
151
- const item = this.swipeActionOptions[evt.index]
152
- if (!item) {
153
- return
154
- }
155
- item.click && item.click(account)
156
- },
157
- handleHandleClick () {
158
- if (this.currentAccount) {
159
- this.scrollToAccountId = 'account-' + this.currentAccount.id
160
- } else {
161
- this.scrollToAccountId = null
162
- }
163
- this.$refs.popup.open()
164
- },
165
- handleCancelClick () {
166
- this.scrollToAccountId = null
167
- this.$refs.popup.close()
168
- },
169
- handleConfirmClick () {
170
- const nextAccount = this.currentSelectAccount ? this.currentSelectAccount.id : null
171
- this.$clientChat.account.setCurrentAccount(nextAccount)
172
- this.$refs.popup.close()
173
- this.$nextTick(() => {
174
- this.$emit('change', {
175
- value: nextAccount
176
- })
177
- })
178
- },
179
- handlePopupChange ({ show }) {
180
- this.showPopup = show
181
- if (show) {
182
- uni.hideTabBar()
183
- } else {
184
- uni.showTabBar()
185
- }
186
- },
187
- handleAccountClick (account) {
188
- this.currentSelectAccount = account
189
- }
190
- }
191
- }
192
- </script>
193
-
194
- <style lang="less">
195
- .bi-account-select__head{
196
- display: flex;
197
- flex-direction: row;
198
- align-items: center;
199
- justify-content: space-between;
200
- padding: 8px 12px;
201
- border-bottom: 1px solid #eee;
202
- }
203
- .bi-account-select__title{
204
- font-weight: 500;
205
- }
206
- .bi-account-select__body{
207
- height: 70vh;
208
- background-color: #fff;
209
- position: relative;
210
- display: flex;
211
- flex-direction: column;
212
- }
213
- .bi-account-select__loading{
214
- position: absolute;
215
- left: 0;
216
- top: 0;
217
- right: 0;
218
- bottom: 0;
219
- display: flex;
220
- flex-direction: column;
221
- justify-content: center;
222
- align-items: center;
223
- }
224
- .bi-account-select__handle{
225
- position: relative;
226
- padding-right: 18px;
227
- padding-top: 1px;
228
- padding-bottom: 1px;
229
- height: 32px;
230
- line-height: 32px;
231
- &:after {
232
- content: '';
233
- width: 6px;
234
- height: 6px;
235
- border: 1px solid #ccc;
236
- border-left: 0;
237
- border-top: 0;
238
- transform: rotate(45deg) translateY(-50%);
239
- position: absolute;
240
- right: 6px;
241
- top: 50%;
242
- margin-top: -3px;
243
- }
244
- }
245
- .bi-account-select__list{
246
- flex: 1;
247
- min-height: 0;
248
- overflow: auto;
249
- padding-top: 6px;
250
- padding-bottom: 6px;
251
- }
252
- </style>
@@ -1,49 +0,0 @@
1
- <template>
2
- <view class="bi-all-friend-avatar" :class="['bi-all-friend-avatar--' + size, {'is-round': round}]">
3
- <bi-icon name="all-friend-line" :size="size === 'medium' ? '20px' : ''"></bi-icon>
4
- </view>
5
- </template>
6
-
7
- <script>
8
- export default {
9
- name: 'BiAllFriendAvatar',
10
- props: {
11
- size: {
12
- type: String,
13
- default: 'small',
14
- validator (value) {
15
- return ['small', 'mini'].includes(value)
16
- }
17
- },
18
- round: {
19
- type: Boolean,
20
- default: false
21
- }
22
- }
23
- }
24
- </script>
25
-
26
- <style lang="less">
27
- .bi-all-friend-avatar {
28
- display: inline-block;
29
- background-color: #2e2d31;
30
- color: rgba(255, 255, 255, .9);
31
- text-align: center;
32
- &.is-round {
33
- border-radius: 50%;
34
- }
35
- &:not(.is-round) {
36
- border-radius: 3px;
37
- }
38
- }
39
- .bi-all-friend-avatar--mini {
40
- width: 24px;
41
- height: 24px;
42
- line-height: 22px;
43
- }
44
- .bi-all-friend-avatar--small {
45
- width: 32px;
46
- height: 32px;
47
- line-height: 32px;
48
- }
49
- </style>
@@ -1 +0,0 @@
1
- <?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1755860383442" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4771" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M0 0m72.576 0l878.848 0q72.576 0 72.576 72.576l0 878.848q0 72.576-72.576 72.576l-878.848 0q-72.576 0-72.576-72.576l0-878.848q0-72.576 72.576-72.576Z" fill="#EFEFEE" p-id="4772"></path><path d="M508.928 750.976h-220.16c-23.808 0-32.512-9.6-33.408-33.408a62.336 62.336 0 0 1 39.68-64c45.952-21.504 91.392-44.416 136.96-66.944 27.776-13.696 32-34.944 12.8-58.368a162.048 162.048 0 0 1-41.088-112.128 309.76 309.76 0 0 1 2.176-64 106.368 106.368 0 0 1 163.712-62.72 102.4 102.4 0 0 1 46.08 87.04 344.704 344.704 0 0 1-3.072 73.472 192 192 0 0 1-41.984 82.432c-15.36 18.688-12.8 38.4 8.704 50.304 40.448 21.376 82.048 40.576 123.136 60.8 19.2 9.344 39.936 15.872 52.736 36.48a72.576 72.576 0 0 1 7.936 48.256c-2.176 15.36-12.8 22.784-30.976 22.784z" fill="#C2C1C1" p-id="4773"></path></svg>
@@ -1,27 +0,0 @@
1
- <template>
2
- <bi-avatar :src="innerSrc" :size="size"></bi-avatar>
3
- </template>
4
- <script>
5
- import BiAvatar from '@aochuang/common/uni-components/avatar/avatar.vue'
6
-
7
- export default {
8
- name: 'SdkFriendAvatar',
9
- components: {
10
- BiAvatar
11
- },
12
- props: {
13
- src: {
14
- type: String
15
- },
16
- size: {
17
- type: String,
18
- default: 'small'
19
- }
20
- },
21
- computed: {
22
- innerSrc () {
23
- return this.src || require('./default.svg')
24
- }
25
- }
26
- }
27
- </script>