im-ui-mobile 0.0.98 → 0.0.99

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 (40) hide show
  1. package/components/im-avatar/im-avatar.vue +121 -121
  2. package/components/im-button/im-button.vue +630 -626
  3. package/components/im-cell/im-cell.vue +10 -15
  4. package/components/im-cell-group/im-cell-group.vue +16 -16
  5. package/components/im-chat-item/im-chat-item.vue +213 -213
  6. package/components/im-context-menu/im-context-menu.vue +138 -138
  7. package/components/im-file-upload/im-file-upload.vue +309 -309
  8. package/components/im-friend-item/im-friend-item.vue +82 -75
  9. package/components/im-group-item/im-group-item.vue +62 -62
  10. package/components/im-group-member-selector/im-group-member-selector.vue +202 -202
  11. package/components/im-group-rtc-join/im-group-rtc-join.vue +112 -112
  12. package/components/im-image-upload/im-image-upload.vue +94 -94
  13. package/components/im-loading/im-loading.vue +64 -64
  14. package/components/im-mention-picker/im-mention-picker.vue +191 -191
  15. package/components/im-message-item/im-message-item.vue +555 -555
  16. package/components/im-nav-bar/im-nav-bar.vue +98 -98
  17. package/components/im-read-receipt/im-read-receipt.vue +174 -174
  18. package/components/im-virtual-list/im-virtual-list.vue +51 -50
  19. package/components/im-voice-input/im-voice-input.vue +305 -305
  20. package/libs/index.ts +2 -3
  21. package/package.json +58 -58
  22. package/styles/button.scss +1 -1
  23. package/theme.scss +61 -62
  24. package/types/components.d.ts +0 -1
  25. package/types/index.d.ts +94 -94
  26. package/types/libs/index.d.ts +206 -204
  27. package/types/utils/datetime.d.ts +9 -9
  28. package/types/utils/dom.d.ts +11 -11
  29. package/types/utils/emoji.d.ts +8 -8
  30. package/types/utils/enums.d.ts +73 -73
  31. package/types/utils/messageType.d.ts +35 -35
  32. package/types/utils/recorderApp.d.ts +9 -9
  33. package/types/utils/recorderH5.d.ts +9 -9
  34. package/types/utils/requester.d.ts +15 -15
  35. package/types/utils/url.d.ts +5 -5
  36. package/types/utils/useDynamicRefs.d.ts +9 -9
  37. package/types/utils/websocket.d.ts +34 -34
  38. package/utils/enums.js +1 -1
  39. package/components/im-virtual-scroller/im-virtual-scroller.vue +0 -54
  40. package/types/components/virtual-scroller.d.ts +0 -20
@@ -1,76 +1,83 @@
1
- <template>
2
- <view class="friend-item" @click="showFriendInfo()">
3
- <im-avatar :name="friend.nickName" :online="friend.online" :url="friend.headImage" size="small" />
4
- <view class="friend-info">
5
- <view class="friend-name">{{ friend.nickName }}</view>
6
- <view class="friend-online">
7
- <image v-show="friend.onlineWeb" class="online" src="/static/image/online_web.png" title="电脑设备在线" />
8
- <image v-show="friend.onlineApp" class="online" src="/static/image/online_app.png" title="移动设备在线" />
9
- </view>
10
- <slot></slot>
11
- </view>
12
- </view>
13
- </template>
14
-
15
- <script setup lang="ts">
16
- import ImAvatar from '../im-avatar/im-avatar.vue'
17
-
18
- interface Props {
19
- friend?: any;
20
- detail?: boolean;
21
- }
22
-
23
- const props = withDefaults(defineProps<Props>(), {
24
- detail: true
25
- });
26
-
27
- const showFriendInfo = () => {
28
- if (props.detail) {
29
- uni.navigateTo({
30
- url: "/pages/common/user-info?id=" + props.friend.id
31
- });
32
- }
33
- };
34
- </script>
35
-
36
- <style scope lang="scss">
37
- .friend-item {
38
- height: 90rpx;
39
- display: flex;
40
- margin-bottom: 1rpx;
41
- position: relative;
42
- padding: 10rpx;
43
- padding-left: 20rpx;
44
- align-items: center;
45
- background-color: white;
46
- white-space: nowrap;
47
-
48
- &:hover {
49
- background-color: $im-bg;
50
- }
51
-
52
- .friend-info {
53
- flex: 1;
54
- display: flex;
55
- padding-left: 20rpx;
56
- text-align: left;
57
-
58
- .friend-name {
59
- flex: 1;
60
- font-size: $im-font-size;
61
- white-space: nowrap;
62
- overflow: hidden;
63
- }
64
-
65
- .friend-online {
66
- margin-top: 4rpx;
67
-
68
- .online {
69
- padding-right: 4rpx;
70
- width: 24rpx;
71
- height: 24rpx;
72
- }
73
- }
74
- }
75
- }
1
+ <template>
2
+ <view class="friend-item" @click="onClick()">
3
+ <im-avatar :name="friend.nickName" :online="friend.online" :url="friend.headImage" size="small" />
4
+ <view class="friend-info">
5
+ <view class="friend-name">{{ friend.nickName }}</view>
6
+ <view class="friend-online">
7
+ <image v-show="friend.onlineWeb" class="online" src="/static/image/online_web.png" title="电脑设备在线" />
8
+ <image v-show="friend.onlineApp" class="online" src="/static/image/online_app.png" title="移动设备在线" />
9
+ </view>
10
+ <slot></slot>
11
+ </view>
12
+ </view>
13
+ </template>
14
+
15
+ <script setup lang="ts">
16
+ import ImAvatar from '../im-avatar/im-avatar.vue'
17
+
18
+ interface Props {
19
+ friend?: any;
20
+ detail?: boolean;
21
+ }
22
+
23
+ const props = withDefaults(defineProps<Props>(), {
24
+ detail: true
25
+ });
26
+
27
+ interface Emits {
28
+ (e: 'click', friendId: number): void
29
+ }
30
+
31
+ const emit = defineEmits<Emits>()
32
+
33
+ const onClick = () => {
34
+ // if (props.detail) {
35
+ // uni.navigateTo({
36
+ // url: "/pages/common/user-info?id=" + props.friend.id
37
+ // });
38
+ // }
39
+ emit('click', props.friend)
40
+ };
41
+ </script>
42
+
43
+ <style scope lang="scss">
44
+ .friend-item {
45
+ height: 90rpx;
46
+ display: flex;
47
+ margin-bottom: 1rpx;
48
+ position: relative;
49
+ padding: 10rpx;
50
+ padding-left: 20rpx;
51
+ align-items: center;
52
+ background-color: white;
53
+ white-space: nowrap;
54
+
55
+ &:hover {
56
+ background-color: $im-bg;
57
+ }
58
+
59
+ .friend-info {
60
+ flex: 1;
61
+ display: flex;
62
+ padding-left: 20rpx;
63
+ text-align: left;
64
+
65
+ .friend-name {
66
+ flex: 1;
67
+ font-size: $im-font-size;
68
+ white-space: nowrap;
69
+ overflow: hidden;
70
+ }
71
+
72
+ .friend-online {
73
+ margin-top: 4rpx;
74
+
75
+ .online {
76
+ padding-right: 4rpx;
77
+ width: 24rpx;
78
+ height: 24rpx;
79
+ }
80
+ }
81
+ }
82
+ }
76
83
  </style>
@@ -1,62 +1,62 @@
1
- <template>
2
- <view class="group-item" @click="showGroupInfo()">
3
- <im-avatar :name="group.showGroupName" :url="group.headImageThumb" size="small" />
4
- <view class="group-name">
5
- <view>{{ group.showGroupName }}</view>
6
- </view>
7
- </view>
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import ImAvatar from '../im-avatar/im-avatar.vue'
12
-
13
- interface Props {
14
- group?: any;
15
- }
16
-
17
- const props = defineProps<Props>();
18
-
19
- interface Emits {
20
- (e: 'click', targetId: number): void
21
- }
22
-
23
- const emit = defineEmits<Emits>()
24
-
25
- const showGroupInfo = () => {
26
- // TODO:组件化
27
- // uni.navigateTo({
28
- // url: "/pages-contacts/pages/group/info?id=" + props.group?.id
29
- // });
30
-
31
- emit('click', props.group?.id)
32
- };
33
- </script>
34
-
35
- <style scope lang="scss">
36
- .group-item {
37
- height: 90rpx;
38
- display: flex;
39
- margin-bottom: 2rpx;
40
- position: relative;
41
- padding: 18rpx 20rpx;
42
- align-items: center;
43
- background-color: white;
44
- white-space: nowrap;
45
-
46
- &:hover {
47
- background-color: $im-bg-active;
48
- }
49
-
50
- &.active {
51
- background-color: $im-bg-active;
52
- }
53
-
54
- .group-name {
55
- font-size: $im-font-size;
56
- padding-left: 20rpx;
57
- text-align: left;
58
- white-space: nowrap;
59
- overflow: hidden;
60
- }
61
- }
62
- </style>
1
+ <template>
2
+ <view class="group-item" @click="showGroupInfo()">
3
+ <im-avatar :name="group.showGroupName" :url="group.headImageThumb" size="small" />
4
+ <view class="group-name">
5
+ <view>{{ group.showGroupName }}</view>
6
+ </view>
7
+ </view>
8
+ </template>
9
+
10
+ <script setup lang="ts">
11
+ import ImAvatar from '../im-avatar/im-avatar.vue'
12
+
13
+ interface Props {
14
+ group?: any;
15
+ }
16
+
17
+ const props = defineProps<Props>();
18
+
19
+ interface Emits {
20
+ (e: 'click', targetId: number): void
21
+ }
22
+
23
+ const emit = defineEmits<Emits>()
24
+
25
+ const showGroupInfo = () => {
26
+ // TODO:组件化
27
+ // uni.navigateTo({
28
+ // url: "/pages-contacts/pages/group/info?id=" + props.group?.id
29
+ // });
30
+
31
+ emit('click', props.group?.id)
32
+ };
33
+ </script>
34
+
35
+ <style scope lang="scss">
36
+ .group-item {
37
+ height: 90rpx;
38
+ display: flex;
39
+ margin-bottom: 2rpx;
40
+ position: relative;
41
+ padding: 18rpx 20rpx;
42
+ align-items: center;
43
+ background-color: white;
44
+ white-space: nowrap;
45
+
46
+ &:hover {
47
+ background-color: $im-bg-active;
48
+ }
49
+
50
+ &.active {
51
+ background-color: $im-bg-active;
52
+ }
53
+
54
+ .group-name {
55
+ font-size: $im-font-size;
56
+ padding-left: 20rpx;
57
+ text-align: left;
58
+ white-space: nowrap;
59
+ overflow: hidden;
60
+ }
61
+ }
62
+ </style>